1. Список говнокодов пользователя wvxvw

    Всего: 202

  2. JavaScript / Говнокод #10507

    +161

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    ISQ.Tools.RGBtoHex=function(c,b,a){
        return ISQ.Tools.toHex(c)+ISQ.Tools.toHex(b)+ISQ.Tools.toHex(a)
    };
    
    ISQ.Tools.RGBtoHex2=function(a){
        a=a.match(/^rgb\((\d+),\s*(\d+),\s*(\d+)\)$/);
        return "#"+ISQ.Tools.toHex(a[1])+ISQ.Tools.toHex(a[2])+ISQ.Tools.toHex(a[3])
    };
    
    ISQ.Tools.toHex=function(a){
        if(typeof(a)==="string"){
    	a=parseInt(a)
        }
        if(typeof(a)!=="number"||a===0){
    	return "00"
        }
        a=Math.max(0,a);
        a=Math.min(a,255);
        a=Math.round(a);
        return "0123456789ABCDEF".charAt((a-a%16)/16)+"0123456789ABCDEF".charAt(a%16)
    };

    ОК, это последний на сегодня, просто сил нет...

    wvxvw, 31 Мая 2012

    Комментарии (4)
  3. JavaScript / Говнокод #10505

    +157

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    ISQ.Tools.getNumber=function(c,a){
        var d=typeof(c);
        if(typeof(c)==="number"){
    	return c
        }
        if(typeof(c)!=="string"){
    	c=c.toString()
        }
        var b;
        if(c.contains(".")){
    	b=parseFloat(c)
        }
        else
        {
    	b=parseInt(c)
        }
        if(isNaN(b)){
    	return typeof(a)==="number"?a:NaN
        }
        return b
    };

    Того же автора, что и предыдущий пост:
    Борьба идиота и динамической типизации, где в итоге динамическая типизация все же побеждает, но какой ценой...

    wvxvw, 31 Мая 2012

    Комментарии (4)
  4. JavaScript / Говнокод #10503

    +152

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    56. 56
    57. 57
    58. 58
    59. 59
    60. 60
    61. 61
    62. 62
    63. 63
    64. 64
    65. 65
    66. 66
    67. 67
    68. 68
    69. 69
    70. 70
    71. 71
    72. 72
    73. 73
    74. 74
    75. 75
    76. 76
    77. 77
    78. 78
    79. 79
    80. 80
    String.prototype.startsWith=function(b){
        if(this.length<b.length){
    	return false
        }
        for(var a=0;a<b.length;++a){
    	if(this.charAt(a)!==b.charAt(a)){
    	    return false
    	}
        }
        return true
    };
    
    String.prototype.endsWith=function(b){
        if(this.length<b.length){
    	return false
        }
        var c=b.length-1;
        for(var a=this.length-1;a>this.length-1-b.length;--a){
    	if(b.charAt(c--)!==this.charAt(a)){
    	    return false
    	}
        }
        return true
    };
    
    String.prototype.contains=function(a){
        return this.indexOf(a)!==-1
    };
    
    String.prototype.LastIndexOf=function(d,c){
        if(this.length===0||d===null){
    	return -1
        }
        if(d.length>this.length){
    	return -1
        }
        if(isNaN(c)){
    	c=this.length-d.length
        }
        var a=false;
        for(var b=c;b>=0;--b){
    	a=true;
    	for(var e=0;e<d.length;++e){
    	    if(this.charAt(b+e)!==d.charAt(e)){
    		a=false;
    		break
    	    }
    	}
    	if(a){
    	    return b
    	}
        }
        return -1
    };
    
    String.prototype.LastIndexOf_char=function(a){
        for(var b=this.length-1;b>=0;--b){
    	if(this.charAt(b)===a){
    	    return b
    	}
        }
        return -1
    };
    
    String.prototype.setCharAt=function(b,a){
        if(b>this.length-1){
    	return str
        }
        return this.substr(0,b)+a+this.substr(b+1)
    };
    
    String.prototype.countCharAppearances=function(a){
        var b=0;
        for(var c=0;c<this.length;++c){
    	if(this.charAt(c)==a){
    	    ++b
    	}
        }
        return b
    };

    Сорри, что много буков, но тут каждую функцию можно воспринимать как отдельное произведение.
    Разбираю бред какого-то безымянного идиота :(

    wvxvw, 31 Мая 2012

    Комментарии (53)
  5. Куча / Говнокод #10404

    +125

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    (defun question-2 ()
      (let ((b '(1 2 3))
            (a '(1 2 3 4))
            (com (make-hash-table :test #'equal)))
        (labels ((put-sorted (x)
                   (let ((key
                          (sort
                           (flatten
                            (copy-tree x)) #'<)))
                     (if (gethash key com)
                         (incf (gethash key com))
                         (setf (gethash key com) 1)))))
          (values (remove-if
           #'(lambda (x)
               (prog ((results
                      (do ((x x (cdr x)) (r))
                          (nil)
                        (setf r (append (cadar x) r))
                        (when (null (cdr x))
                          (return r)))))
                 (dolist (y a)
                   (when (not (member y results))
                     (go remove-it)))
                 (put-sorted results)
                 (go keep-it)
                 remove-it (return t)
                 keep-it nil))
           (all-functions b (cartesian-product a))) com))))

    Ну, чем бы еще порадовать. Вот, родилось во время проверки домашних заданий :)

    wvxvw, 29 Мая 2012

    Комментарии (11)
  6. ActionScript / Говнокод #10243

    −172

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    // Generates a mask.
    var mask:ByteArray = new ByteArray();
    for (var i:int = 0; i < 4; i++) {
        mask.writeByte(randomInt(0, 255));
    }

    https://github.com/gimite/web-socket-js/blob/master/flash-src/src/net/gimite/websocket/WebSocket.as

    Мелочь, конечно, но все равно приятно.

    wvxvw, 11 Мая 2012

    Комментарии (7)
  7. Куча / Говнокод #10202

    +117

    1. 1
    http://www.haskell.org/hoogle/?hoogle=%60

    :P

    wvxvw, 05 Мая 2012

    Комментарии (17)
  8. ActionScript / Говнокод #10165

    −204

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    // avm+ specific utility method
     public static function throwError(type:Class, index:uint, ... rest)
     {
         // This implements the same error string formatting as the native
         // method PrintWriter::formatP(...) any changes to this method should
         // also be made there to keep the two in sync.
         var i=0;
         var f=function(match, pos, string)
         {
             var arg_num = -1;
             switch(match.charAt(1))
             {
                 case '1':
                     arg_num = 0;
                     break;
                 case '2':
                     arg_num = 1;
                     break;
                 case '3':
                     arg_num = 2;
                     break;
                 case '4':
                     arg_num = 3;
                     break;
                 case '5':
                     arg_num = 4;
                     break;
                 case '6':
                     arg_num = 5;
                     break;
             }
             if( arg_num > -1 && rest.length > arg_num )
                 return rest[arg_num];
             else
                 return "";
         }
         throw new type(Error.getErrorMessage(index).replace(/%[0-9]/g, f), index);
     }

    http://hg.mozilla.org/tamarin-redux/file/fdf1416a3536/core/Error.as
    Проблемы с устным счетом, да и не только...

    wvxvw, 02 Мая 2012

    Комментарии (9)
  9. ActionScript / Говнокод #9925

    −122

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    // If the new value for styleProp is different from the one returned
            // from the defaultFactory function, then store the new value on the
            // overrides object. That way, future clones will get the new value.
            if (defaultFactory != null)
            {
                o = new defaultFactory();
                if (o[styleProp] !== value) // must use !==
                {
                    if (!overrides)
                        overrides = {};
                    overrides[styleProp] = value;
                }
                else if (overrides)
                {
                    delete overrides[styleProp];
                }
            }
    
            // If the new value for styleProp is different from the one returned
            // from the factory function, then store the new value on the
            // overrides object. That way, future clones will get the new value.
            if (factory != null)
            {
                o = new factory();
                if (o[styleProp] !== value) // must use !==
                {
                    if (!overrides)
                        overrides = {};
                    overrides[styleProp] = value;
                }
                else if (overrides)
                {
                    delete overrides[styleProp];
                }
            }

    Опять Adobe.

    wvxvw, 11 Апреля 2012

    Комментарии (1)
  10. ActionScript / Говнокод #9918

    −121

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    public function isTopLevelWindow(object:DisplayObject):Boolean
        {
            return object is IUIComponent &&
                   IUIComponent(object) == topLevelWindow;
        }

    Адоб, еще один не справился с приведением типов... код в SystemManager.

    wvxvw, 11 Апреля 2012

    Комментарии (6)
  11. ActionScript / Говнокод #9759

    −124

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    /**
         *  @private
         *  Causes to re-measure the natural width/height
         *  if size changes, parent size is invalidated as well.
         */
        protected function invalidateSize():void
        {
            var curWidth:Number = naturalWidth;
            var curHeight:Number = naturalHeight;
    
            measure();
    
            if (curWidth != naturalWidth || curHeight != naturalHeight)
            {
                var parent:DisplayObjectContainer = this.parent;
    
                // Search for an ancestor SpriteVisualElement to inform them that
                // they need to re-measure as their size has been invalidated.
                while (nestedSpriteVisualElement)
                {
                    if (parent is SpriteVisualElement || parent == null || parent.parent == null)
                    {
                        break;
                    }
                    else
                    {
                        parent = parent.parent;
                    }
                }
    
                if (parent is SpriteVisualElement)
                    SpriteVisualElement(parent).invalidateSize();
                else
                    invalidateParentSizeAndDisplayList();
            }
        }

    Тут нужно немного объяснить. Дело в том, что это один из очень важных классов в серии компонентов "Спарк". Эта функция, фактически, отвечает за перерисовку компонента. Но вот вместо того, чтобы сделать так, чтобы контейнер сообщал содержанию когда перерисовываться или, по крайней мере сам решал, когда перерисовываться получается наоборот - и, фактически, любое мало мельски значимое изменение в ребенке полезет перерисовывать родителей. Просто уже са саму идею invalidateParentSizeAndDisplayList хочется пальцы в двери...

    wvxvw, 25 Марта 2012

    Комментарии (8)