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

    Всего: 202

  2. ActionScript / Говнокод #3776

    −172

    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
    UTF8 = {
        encode: function(str){
            for(var c:String, i:Number = -1, l:Number = (str = str.split("")).length, o:Function = String.fromCharCode; ++i < l;
                str[i] = (c = str[i].charCodeAt(0)) >= 127 ? o(0xc0 | (c >>> 6)) + o(0x80 | (c & 0x3f)) : str[i]
            );
            return str.join("");
        },
        decode: function(str){
            for(var a:Array, b:Array, i:Number = -1, l:Number = (str = str.split("")).length, o:Function = String.fromCharCode, c:String = "charCodeAt"; ++i < l;
                ((a = str[i][c](0)) & 0x80) &&
                (str[i] = (a & 0xfc) == 0xc0 && ((b = str[i + 1][c](0)) & 0xc0) == 0x80 ?
                o(((a & 0x03) << 6) + (b & 0x3f)) : o(128), str[++i] = "")
            );
            return str.join("");
        }
    };

    Это чудо народного зодчества было предложено в качестве конвертора из ASCII в UTF8 и обратно. Проблема осложняется тем, что человек так делает в полной уверенности, что он что-то соптимизировал. (Ну и конечно, китайцы со своими иероглифами, как всегда в пролете, а так же французы со своими диакритиками, поляки, немцы и т.д.). То что страдает типизация и инкапсуляция, просто меркнет перед форматированием и полным отсутствием здравого смысла.
    http://www.kirupa.com/forum/showthread.php?t=351816

    wvxvw, 25 Июля 2010

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

    +122

    1. 1
    Warning: file_get_contents(http://www.bbc.co.uk/radio1/programmes/schedules.xml) [function.file-get-contents]: failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found in /home/atomzone/public_html/beta/at0m.rss.class.php on line 65

    Случайно найдено на: http://atomzone.co.uk/beta/audio/Blue%20Sky%20Black%20Death
    Я все понимаю, бета и все такое, но это же паблик бета...

    wvxvw, 23 Июля 2010

    Комментарии (15)
  4. ActionScript / Говнокод #3402

    −172

    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
    private static function copyByteArray(source:ByteArray, destination:ByteArray, length:uint = 0):void
        {
            var oldPosition:int = source.position;
    
            source.position = 0;
            destination.position = 0;
            var i:uint = 0;
    
            while (source.bytesAvailable > 0 && i < length)
            {
                destination.writeByte(source.readByte());
                i++;
            }
    
            source.position = oldPosition;
            destination.position = 0;
        }

    Только вы не думайте, что это школьная лаба. Это все он же родимый, Flex framework, mx.utils.Base64Decoder, прошу любить и жаловать! :)
    Для тех, кто не в курсе, у ByteArray есть "родные" методы readBytes и writeBytes которые делают то, что описано в этом методе, ну только в пару раз быстрее...

    wvxvw, 05 Июня 2010

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

    −86

    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
    _data_provider.request(DataProvider.GET_USER_INFO,
    {
    	onComplete: function(data) 
    	{
    		self._user_info.user_id = data.user_id; 
    		self._user_info.user_name = data.user_name;
    
    		// Make next request after 500 ms delay because of API restriction (3 reqsts per second)
    		setTimeout(function()
    		{
    			self._data_provider.request(DataProvider.GET_SERVER_TIME, 
    			{
    				onComplete: function(data) 
    				{
    					var current_time = (new Date()).getTime();
    					self._time_offset = current_time - parseInt(data) * 1000;
    					dispatchEvent(new DataAccessEvent(DataAccessor.INIT));
    				}
    			});
    		}, 500);
    	}
    });

    http://vkontakte.ru/apps.php?act=s&mid=1&id=2
    [пруф]

    Обсуждение можно почитать тут, спасибо XDiaBLo за находку.
    http://flasher.ru/forum/showthread.php?t=139847

    wvxvw, 12 Мая 2010

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

    +143

    1. 1
    !<>

    Просто очень короткий говнокод:
    Читается как не больше и не меньше.
    Конечно, выдумано, но тем не менее :)

    wvxvw, 26 Апреля 2010

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

    −186.1

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    var topItem:Object;
    var rowNum:int;
    var rowCount:int;
    ...
    else if (!topItem && !rowNum == rowCount)
    ...

    Чтобы не утомлять вас догадками, во что же это превратится и в каком порядке произойдут операции: это условие выполниться только когда:
    topItem == null
    rowNum != 0
    rowCount == 0
    Как следует из названий переменных, человек, написавший это ожидал, что количество строк может быть меньше, чем порядковый номер одной из строк...
    Взято, опять же из Flex Framework mx.controls::Tree.
    Скорее всего автор имел в виду следующее:

    else if (!topItem && rowNum !== rowCount)

    Но булевые переменные, они ж такие коварные :)

    wvxvw, 27 Февраля 2010

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

    +160

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    var today = new Date();
    var d_names = new Array("Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday");
    var m_names = new Array("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December");
    var d_postfix = new Array("never_used","st", "nd", "rd", "th", "th", "th", "th", "th", "th", "th", "th", "th", "th", "th", "th", "th", "th", "th", "th", "th", "st", "nd", "rd", "th", "th", "th", "th", "th", "th", "th", "th");
    document.write(d_names[today.getDay()]+", "+m_names[today.getMonth()]+" "+today.getDate()+d_postfix[today.getDate()]+", "+today.getFullYear());

    Банально, но все равно приятно :)

    wvxvw, 21 Февраля 2010

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

    +133.3

    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
    <target name="test-boolean">
    		<condition property="if-true" value="true" else="false">
    			<!-- 
    				Попробуйте попереключайте true / false 
    				и посмотрите на результат - вам однозначно понравится :) 
    			-->
    			<istrue value="false"/>
    		</condition>
    		<antcall target="test-boolean-true"/>
    		<antcall target="test-boolean-false"/>
    	</target>
    	
    	<target name="test-boolean-true" if="if-true">
    		<echo>The condition evaluates to "true"</echo>
    	</target>
    	
    	<target name="test-boolean-false" unless="if-true">
    		<echo>The condition evaluates to "false"</echo>
    	</target>

    Язык - Ant, для тех, кто не в курсе. Я думаю, можно спокойно зачислить в говноязыки.

    wvxvw, 18 Февраля 2010

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

    +124.6

    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
    <item>
    	<title>Mixed Up and Maxi-ed Out at Peter Som</title>
    	<link>http://www.fashionwiredaily.com/first_word/fashion/article.weml?id=3056</link>
    	<description>Good news for gym-goers this fall: you can forget about the lunges, the squats and the leg presses,</description>
    	<pubDate>Sat, 13 Feb 2010 18:25:00 EST</pubDate>
    	<enclosure url="http://www.fashionwiredaily.com/common_images/feed_images/498955.jpg" length="20713" type="image/jpg" />
    </item>
    <item>
    	<title>Mixed Up and Maxi-ed Out at Peter Som</title>
    	<link>http://www.fashionwiredaily.com/first_word/fashion/article.weml?id=3056</link>
    	<description>Good news for gym-goers this fall: you can forget about the lunges, the squats and the leg presses,</description>
    	<pubDate>Sat, 13 Feb 2010 18:25:00 EST</pubDate>
    	<enclosure url="http://www.fashionwiredaily.com/common_images/feed_images/498953.jpg" length="21716" type="image/jpg" />
    </item>
    <item>
    	<title>Mixed Up and Maxi-ed Out at Peter Som</title>
    	<link>http://www.fashionwiredaily.com/first_word/fashion/article.weml?id=3056</link>
    	<description>Good news for gym-goers this fall: you can forget about the lunges, the squats and the leg presses,</description>
    	<pubDate>Sat, 13 Feb 2010 18:25:00 EST</pubDate>
    	<enclosure url="http://www.fashionwiredaily.com/common_images/feed_images/498951.jpg" length="22238" type="image/jpg" />
    </item>

    Опять же, обнаружилось на сателитном сайте нашей конторы. Обратите внимание, что все данные в rss повторяются по 3 раза за исключением картинок. Понятно, что rss генерится, но это ж каким... недалеким надо быть, чтобы так сгенерить...
    [url]http://www.fashionwiredaily.com/first_word/feed.xml[/url]

    wvxvw, 15 Февраля 2010

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

    −184.5

    1. 1
    2. 2
    3. 3
    4. 4
    override public function toString():String
        {
            return Object(container).toString() + "." + super.toString();
        }

    Еще одно украшение Флексового фреймворка: mx.core::Repeater.
    Для тех, кто не в курсе: toString() вызываетйса автоматически когда мы пытаемся вывести информацию об объекте в консоль. (Т.е. жизненно необходим для тестирования). Свойство container у репитера радко, но может буть null, но изза того, что флексовые разработчики не категорически никогда не кастуют ничего, то это должно было бы выкинуть исключение, но, конвертация используемая в примере (вместо каста) в силу особенностей языка вместо того чтобы просто умереть с исключением создаст новый динамический объект, врезультате получим что-то типа:
    "[Object object].имяКомпонента".
    т.е. на самом деле код должен был выглядеть примерно так:

    return (this.container ? this.container.toString() + "." : "") + super.toString();

    wvxvw, 05 Февраля 2010

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