1. Лучший говнокод

    В номинации:
    За время:
  2. JavaScript / Говнокод #16573

    +153

    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
    function parse(input) {
            var options = arguments.length > 1 ? arguments[1] : {},
        
                peg$FAILED = {},
        
                peg$startRuleFunctions = { grammar: peg$parsegrammar },
                peg$startRuleFunction  = peg$parsegrammar,
        
                peg$c0 = peg$FAILED,
                peg$c1 = null,
                peg$c2 = [],
                peg$c3 = function(initializer, rules) {
    . . .
                peg$c142 = { type: "other", description: "whitespace" },
                peg$c143 = /^[ \t\x0B\f\xA0\uFEFF\u1680\u180E\u2000-\u200A\u202F\u205F\u3000]/,
                peg$c144 = { type: "class", value: "[ \\t\\x0B\\f\\xA0\\uFEFF\\u1680\\u180E\\u2000-\\u200A\\u202F\\u205F\\u3000]", description: "[ \\t\\x0B\\f\\xA0\\uFEFF\\u1680\\u180E\\u2000-\\u200A\\u202F\\u205F\\u3000]" },
        
                peg$currPos          = 0,
                peg$reportedPos      = 0,
                peg$cachedPos        = 0,
                peg$cachedPosDetails = { line: 1, column: 1, seenCR: false },
                peg$maxFailPos       = 0,
                peg$maxFailExpected  = [],
                peg$silentFails      = 0,
        
                peg$result;
    . . . // + 3К строк бреда до конца функции

    История моих мытарств и жалких метаний:
    Меня попросило начальство радикально улучшить формат в котором приложение хранит данные. Думал я, думал, и решил, что YAML ка нельзя лучше подходит для задачи (нужно хранить описание слайдов презентации, т.е. много текста и довольно схематичная графика, все это желательно бы иметь возможность комфортно редактировать в текстовом виде, создавать заготовки и т.д.).

    Шаг первый: поиск готового YAML парсера, врезультате обнаружились две штуки для АС3. Один - клон Ява парсера, в котором по класу на токен. Я не шучу. Проект заброшен 5 лет назад. Второй: заброшен 4 года назад, все в одном файле, парсится регулярками и магией, какие-то комментарии имеются, но они только свидетельствуют о несостоятельности писавшего коментарии.

    Подумал: если нет нормального парсера, может есть генератор парсеров?

    Шаг второй: поиск обнаружил одну попытку написать клон ANTLR, но очень ограниченную, и не работающую.

    Думаю: ну бля, если все так херово, может с ж.скрипта портирую чего-нибудь простенькое, PEG как раз должен подойти.

    И тут я нашел это.

    wvxvw, 21 Августа 2014

    Комментарии (11)
  3. 1C / Говнокод #16517

    −163

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    Процедура ЗаполнитьТоЧтоможно()
    
    	СписокТогоЧтоМожно = СоздатьОбъект("СписокЗначений");
    	//Start = _GetPerformanceCounter();
    	ЗапросГрупп = CreateObject("ODBCRECORDSET");

    levxxx, 11 Августа 2014

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

    +159

    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
    81. 81
    var get_day = function(day_name_or_number, return_type) {
    
            var day_name = '';
            var day_number = '';
    
            switch (day_name_or_number) {
                case 0: //sunday
                case 'sun':
                case 'sunday':
    
                    day_name = 'sun';
                    day_number = 0;
                    break;
    
                case 1: //monday
                case 'mon':
                case 'monday':
    
                    day_name = 'mon';
                    day_number = 1;
                    break;
    
                case 2: //tuesday
                case 'tue':
                case 'tuesday':
    
                    day_name = 'tue';
                    day_number = 2;
                    break;
    
                case 3: //wednesday
                case 'wed':
                case 'wednesday':
    
                    day_name = 'wed';
                    day_number = 3;
                    break;
    
                case 4: //thursday
                case 'thu':
                case 'thursday':
    
                    day_name = 'thu';
                    day_number = 4;
                    break;
    
                case 5: //friday
                case 'fri':
                case 'friday':
    
                    day_name = 'fri';
                    day_number = 5;
                    break;
    
                case 6: //saturday
                case 'sat':
                case 'saturday':
    
                    day_name = 'sat';
                    day_number = 6;
                    break;
            }
    
    
            switch (return_type) {
                case 'number':
    
                    return day_number;
                    break;
    
                case 'name':
    
                    return day_name;
                    break;
    
                default:
    
                    return day_name;
                    break;
            }
        };

    Что и кому я сделал, что с таким работать приходиться?

    monstrodev, 08 Августа 2014

    Комментарии (11)
  5. JavaScript / Говнокод #16423

    +162

    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
    $(function(){
            var keyword = '';
            if (typeof crtg_content !== 'undefined' && crtg_content) { keyword = crtg_content; }
            var custom = { 4:ar_duo1 };
            custom[1] = 'soft';
            custom[2] = 'design';
            custom[3] = 'linux';
    
            /* Антоша не удаляй это условие блеать! Как я тестить буду? */
            //if (true)
            //    show_inner_banner_block('ertelecom');
            //else
                new adriver("adriver_banner_132032996", {sid: 176776, bt: 52, bn: 3, custom: custom, keyword: keyword});
    });

    С известного ИТ ресурса.
    Не говнокод, конечно, но коментарий весёлый. :)

    TauSigma, 25 Июля 2014

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

    +71

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    public Move move(final Board board) {
    	for (final Move move : Move.values()) {
    		if ((move.getDx() == Math.signum(this.target.x - board.getCx()))
    			&& (move.getDy() == Math.signum(this.target.y - board.getCy()))) {
    			return move;
    		}
    	}
    	return null;
    }

    выбираем направление движения. как? перебором!

    Lure Of Chaos, 23 Июля 2014

    Комментарии (11)
  7. PHP / Говнокод #16372

    +155

    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
    <?
    $obf = array("0" => "Соединение,,","1" => "Путь","2" => "Контроллер","3" => "DOCUMENT_ROOT",);
    $pm[($obf[((5889-(3114))-2775)])] = end($kk);
    $k[($obf[((5307-(7))-5299)])] = "/pm/Library/4.2/".$pm[($obf[((5889-(3114))-2775)])][($obf[((4174-(685))-3487)])]."/Ready_Script.php"; 
    $k[($obf[((5307-(7))-5299)])] = iconv("UTF-8", "WINDOWS-1251", $k[($obf[((5307-(7))-5299)])]); 
    print $_SERVER[($obf[((8714-(1196))-7515)])].$k[($obf[((5307-(7))-5299)])];
    include $_SERVER[($obf[((8714-(1196))-7515)])].$k[($obf[((5307-(7))-5299)])];
    ?>
    
    
    
    <? 
    $pm["Переключатель"] = "/pm/bibl.php";
     if ($_SERVER["HTTP_HOST"] == "localhost:6448"): 
     	$pm["Переключатель"] = "/pm/k.php";
     endif;
    
     $pm["Чпу"]["Обрабатываем ЧПУ 0/1"] = "1";
     
     if ($pm["Чпу"]["Обрабатываем ЧПУ 0/1"]): 
     	$kk[] = array( 
     		"Контроллер" => "PHP Файл Подключить", 
     		"Файл" => "/pm/Настройки/Главные.php", 
     		); 
    
    	 include $_SERVER["DOCUMENT_ROOT"].$pm["Переключатель"]; 
    	 
    	 $kk[] = array( "Контроллер" => "PHP Файл Подключить", "Файл" => "/pm/Настройки/Чпу.php", );
    	 
    	 include $_SERVER["DOCUMENT_ROOT"].$pm["Переключатель"]; 
    	 
    	 if ( !$pm["Чпу"]["Страница подключена 0/1"] ): 
    	 	$kk[] = array( "Контроллер" => "PHP Файл Подключить", "Файл" => "/pm/Проекты/".$pm["Настройки"]["Проект"]."/_Настройки/Чпу.php", ); 
    	 
    	 	include $_SERVER["DOCUMENT_ROOT"].$pm["Переключатель"]; $pm["Чпу"]["Страница подключена 0/1"] = "1"; 
    	 endif;
     endif;
    ?>

    Заказчик попросил починить сайт, а тут это...

    Genome, 17 Июля 2014

    Комментарии (11)
  8. PHP / Говнокод #16350

    +143

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    <?php
    	echo <<<HERE
    		Чё-т я не врубаюсь, каким образом на ЭТОМ сайте работает система оценивания. Если мой код минусуют, то это, значит, плохой говнокод получился ? Т.е. хороший на самом деле ? И наоборот: как плюсуют, значит хороший говнокод, т.е. риал извращённый ? Лол, параллельная вселенная с парадоксальными искажёнными правилами написания кода. Компиляторы пускают разноспектральные фонтаны жидкости и говнокод делают ПРОСТА АФИГЕССССНЫМ КОДАМ, а TRUE-код закидывает камнями.
    	HERE;
    ?>

    ЙАААААААААЗЬ!!!!! ДОБРО ПОЖАЛОВАТЬ В ПАРАЛЛЕЛЬНУЮ ВСЕЛЕННУЮ!!! УХАХАХАХХА!!!

    CodeStar, 15 Июля 2014

    Комментарии (11)
  9. PHP / Говнокод #16338

    +155

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    $data = "<?php define('DSN', 'mysql:dbname={$_POST['db_name']};host={$_POST['host_mysql']}'); define('DBUSER', '{$_POST['login_mysql']}'); define('DBPASS', '{$_POST['password_mysql']}');";
    $mysql_string = file_get_contents( 'class/mysql.php' );
    $new_mysql = $data . ' ' . $mysql_string;
    if ( !file_put_contents( 'class/mysql.php', $new_mysql ) ) {
    	errorMessage( "Не удалось сохранить файлы конфигураций, пожалуйста обратитесь в службу технической поддержки клиентов" );
    }

    install.php

    kindofbear, 15 Июля 2014

    Комментарии (11)
  10. C++ / Говнокод #16314

    +20

    1. 1
    2. 2
    3. 3
    4. 4
    const char dll[] = "C:\\sperhacks\\superhack.dll";
    LPVOID mem = NULL;
    DWORD PID = 666;
    if (WriteProcessMemory(OpenProcess(PROCESS_VM_READ | PROCESS_VM_WRITE | PROCESS_VM_OPERATION | PROCESS_CREATE_THREAD | PROCESS_QUERY_INFORMATION, FALSE, PID), (mem = VirtualAllocEx(OpenProcess(PROCESS_VM_READ | PROCESS_VM_WRITE | PROCESS_VM_OPERATION | PROCESS_CREATE_THREAD | PROCESS_QUERY_INFORMATION, FALSE, PID), NULL, sizeof(dll), MEM_COMMIT, PAGE_EXECUTE_READWRITE)), dll, sizeof(dll), NULL) && CreateRemoteThread(OpenProcess(PROCESS_VM_READ | PROCESS_VM_WRITE | PROCESS_VM_OPERATION | PROCESS_CREATE_THREAD |PROCESS_QUERY_INFORMATION, FALSE, PID), NULL, 0, (LPTHREAD_START_ROUTINE)GetProcAddress(GetModuleHandleA("kernel32.dll"), "LoadLibraryA"), mem, NULL, NULL));

    Говнопособие для самых маленьких: dll-injection в 4 строки. Можно и без кучи OpenProcess, тогда в 5 строк.

    gost, 12 Июля 2014

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

    +131

    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
    if (SceneTextureIndex == 0)    return float4(CalcSceneColor(UV), 0);
        else if (SceneTextureIndex == 1)    return ScreenSpaceData.GBuffer.Depth;
        else if (SceneTextureIndex == 2)    return float4(ScreenSpaceData.GBuffer.DiffuseColor, 0);
        else if (SceneTextureIndex == 3)    return float4(ScreenSpaceData.GBuffer.SpecularColor, 0);
        else if (SceneTextureIndex == 4)    return float4(ScreenSpaceData.GBuffer.SubsurfaceColor, 0);
        else if (SceneTextureIndex == 5)    return float4(ScreenSpaceData.GBuffer.BaseColor, 0);
        else if (SceneTextureIndex == 6)    return ScreenSpaceData.GBuffer.Specular;
        else if (SceneTextureIndex == 7)    return ScreenSpaceData.GBuffer.Metallic;
        else if (SceneTextureIndex == 8)    return float4(ScreenSpaceData.GBuffer.WorldNormal, 0);
        else if (SceneTextureIndex == 9)    return 1; // todo
        else if (SceneTextureIndex == 10)    return ScreenSpaceData.GBuffer.Opacity;
        else if (SceneTextureIndex == 11)    return ScreenSpaceData.GBuffer.Roughness;
        else if (SceneTextureIndex == 12)    return ScreenSpaceData.GBuffer.GBufferAO;
        else if (SceneTextureIndex == 13)    return ScreenSpaceData.GBuffer.CustomDepth;
        else if (SceneTextureIndex == 14)    return Texture2DSample(PostprocessInput0, PostprocessInput0Sampler, UV);
        else if (SceneTextureIndex == 15)    return Texture2DSample(PostprocessInput1, PostprocessInput1Sampler, UV);
        else if (SceneTextureIndex == 16)    return Texture2DSample(PostprocessInput2, PostprocessInput2Sampler, UV);
        else if (SceneTextureIndex == 17)    return Texture2DSample(PostprocessInput3, PostprocessInput3Sampler, UV);
        else if (SceneTextureIndex == 18)    return Texture2DSample(PostprocessInput4, PostprocessInput4Sampler, UV);
        else if (SceneTextureIndex == 19)    return Texture2DSample(PostprocessInput5, PostprocessInput5Sampler, UV);
        else if (SceneTextureIndex == 20)    return Texture2DSample(PostprocessInput6, PostprocessInput6Sampler, UV);
        else if (SceneTextureIndex == 21)    return ScreenSpaceData.GBuffer.DecalMask;
        else if (SceneTextureIndex == 22)    return float4(GetLightingModelColor(ScreenSpaceData.GBuffer), 1);
        else if (SceneTextureIndex == 23)    return ScreenSpaceData.AmbientOcclusion;

    LispGovno, 08 Июля 2014

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