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

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

    +133.4

    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
    // parse from the uninstall, the actuall installation path
    		try {
    			int jarLoc = uninstallDir.indexOf("-jar");
    			String s = uninstallDir.substring(jarLoc + 5);
    			// turn it into a normalized file
    			int uniLoc = s.indexOf("uninstaller");
    			s = s.substring(1,uniLoc);
    			s = s.replace("\\", "/");
    			if(s.endsWith("/"))
    				s = s.substring(0,s.length()-1);
    
    			File f = new File(s);
    			if(!f.exists()) {
    				throw new Exception("installation directory does not exist: " + s);
    			}
    			return f;
    		}
    		catch(Exception e) {
                throw new Exception("installation directory could not be parsed from: " + uninstallDir);		    
    		}

    Typical code of one highly paid "tech expert" from USA
    Exception handling makes me cry, this guy doesn't even now about any other exception classes

    guest, 26 Января 2009

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

    +34.7

    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
    } else {
    					$json_array = array('error'	=> $this->log_error('busy', true));
    				}
    			} else {
    				$json_array = array('error'	=> $this->log_error('busy', true));
    			}
    		} else {
    			$json_array = array('error'	=> $this->log_error('busy', true));
    		}
    	} else {
    		$json_array = array('error'	=> $this->log_error('busy', true));
    	}
    	
    	} else {
    		$json_array = array('error'	=> $this->log_error('bad_symbols', false));
    	}
    } else {
    	$json_array = array('error'	=> $this->log_error('check_error', false));
    						//	'errorStr'	=> $this->validation->error_string
    }

    Кусок метода в контроллере регистрации пользователя на одном из наших проектов. Вверху хренова гора ифов а внизу во такое вот счастье. "Авторская" табуляция сохранена

    guest, 25 Января 2009

    Комментарии (1)
  4. PHP / Говнокод #448

    +28

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    $query = "update users set password = '{$cnf['userpass']}', email = '{$cnf['useremail']}' where login = 'root'";
    if (mysql_query($query, $link) === false) {
         throw new Exception(mysql_error($link));
    }
    mysql_close($link);

    удалить)

    guest, 23 Января 2009

    Комментарии (1)
  5. PHP / Говнокод #439

    +28.5

    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 DelFilterEx($arName, $varName, $session=true, $FilterLogic="FILTER_logic")
    {
    	global $strError, $$FilterLogic;
    	if ($session) unset($_SESSION["SESS_ADMIN"][$varName]);
    	for($i=0; $i<count($arName); $i++)
    	{
    		$name = $arName[$i];
    		$bdays = $name."_DAYS_TO_BACK";
    		global $$name, $$bdays;
    		$$name = "";
    		$$bdays = "";
    	}
    	$$FilterLogic = "and";
    }

    Голова недодумала и пришла к переменным переменным

    guest, 22 Января 2009

    Комментарии (1)
  6. PHP / Говнокод #432

    +23.7

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    function _validateDelete($d) {
        $valid = true;
        if (!$d["product_id"]) {
          $this->setError(dgettext("Core", "Product not selected."));
          return false;
        }
        if (!$d["product_id"]) {
          $this->setError(dgettext("Core", "Please select a record to delete."));
          $valid = false;
        }
        return $valid;
      }

    Индусокод классический

    guest, 21 Января 2009

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

    +18.7

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    $path = "a/b/c/d";
    $sections = array_reverse (explode ("/", $path));
    $sql = "SELECT `t1`.`id` FROM ";
    for ($i = 1; $i <= count ($sections); $i ++)
      $from_tables[] = "`test` `t".$i."`";
    $sql = $sql.implode (", ", $from_tables);
    $sql .= " WHERE ";
    for ($i = 1; $i < count ($sections); $i ++)
      $sql .= "`t".$i."`.`parent_id` = `t".($i+1)."`.`id` AND `t".$i."`.`name` = '".$sections[$i-1]."' AND";
    $sql .= " `t".count ($sections)."`.`parent_id` = '0' AND `t".count ($sections)."`.`name` = '".$sections[count($sections)-1]."'";
    echo $sql;

    guest, 20 Января 2009

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

    +22

    1. 1
    2. 2
    3. 3
    set_include_path('.'.PATH_SEPARATOR . './library'
        .PATH_SEPARATOR.'./application/models/'
        .PATH_SEPARATOR.get_include_path());

    "Так и не смог я в тот вечер понять..." что имел в виду автор. Он, видимо, и сам не понял, поэтому сунул библиотеки зенда в несколько папок...

    guest, 20 Января 2009

    Комментарии (1)
  9. JavaScript / Говнокод #423

    +33.4

    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
    <div id="timer">
    Включи JS
    </div>
    
    <script language="Javasсript" type="text/javasсript">
    //<![CDАТА[
    x642=10;
    function countdown() 
    {
    if ((0 <= 100) || (0 > 0))
    {
    x642--;
    if(x642 == 0)
    {
    document.getElementById("timer").innerHTML = '<a href="ссыла">bla<\/a>';
    }
    if(x642 > 0)
    {
    document.getElementById("timer").innerHTML = '<p align=center>Вы будете перенаправлены на страницу загрузки файлов через '+x642+' сек.</p>';
    setTimeout('countdown()',1000);
    }
    }
    }
    countdown();
    //]]>
    </script>

    счетчик...
    взято отсюда: http://vkontakte.ru/topic14311792

    guest, 19 Января 2009

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

    +40.4

    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
    Зачем на сайте по доставке пиццы нужен вот такой массив:
    
    var Ta=new Array(«2»,«2»,«2»,«2»,«2»,«2»,«2»,«2»,«2»,«2», «2»,«2»,«2»,«2»,«2»,«2»,«2»,«2»,«2»,«2», «2»,«2»,«2»,«2»,«2»,«2»,«2»,«2»,«2»,«2», «2»,«2»,«2»,«2»,«2»,«2»,«2»,«2»,«2»,«2», «2»,«2»,«2»,«2»,«2»,«2»,«2»,«2»,«2»,«2», «2»,«2»,«2»,«2»,«2»,«2»,«2»,«2»,«2»,«2»,«2»,«2»,«2»,«2»);?
    
    Этот массив я нашел в коде сайта поддерживаемом компанией, где я работаю.
    На разгадку ушло немного времени, значительно больше времени ушло на осознание… это что, они серьезно?
    
    Отгадка:
    
    В скрипте подсчета суммы заказа встречается
    
    for(i=0; i<Ta.length; i++) { ля-ля-ля, считаем сумму с каждого поля ввода }
    
    То есть количество элементов в массиве — это сколько полей нужно обработать… соответственно добавил 1 товар на страницу — будь добр, добавь «2» в массив.
    
    Что называется хотите верьте, хотите нет.

    Код был взят с http://habrahabr.ru/blogs/humour/42786/

    guest, 14 Января 2009

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

    −5

    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
    82. 82
    83. 83
    84. 84
    85. 85
    86. 86
    87. 87
    88. 88
    89. 89
    90. 90
    91. 91
    92. 92
    93. 93
    94. 94
    95. 95
    96. 96
    97. 97
    98. 98
    99. 99
    ;------------------------------------------------------------------------------------
    ;       Задача. Подсчитать максимальную длину слова входного 
    ; текста. Слово - это последовательность символов, отличных от
    ; пробела. Длина текста и слова не более 80 символов.
    ;------------------------------------------------------------------------------------
    ;------------------------------------------------------------------------------------
    ;                      Макроопределения
    ;     	Вызов функции DOS,  вызывается функция с номером f.
    ;   	Внимание! Изменяется содержимое регистра ah.
    _f      macro   f
            mov     ah,f
            int     21h
            endm
    
    ;--------------------------------------------------------------------------
    ;                   Вывод текста на экран
    ;   Текст  находится  в памяти  по  адресу  adr  и завершается символом "$".
    _puts   macro   adr_str
            push    ax
            push    dx
            lea      dx, adr_str
            _f       9
            pop     dx
            pop     ax
            endm
    ;------------------------------------------------------------------------
            assume  cs:code, ds:data	; назначение регистров 
                                  		; сегмента команд и сегмента данных
    ;------------------------------------------------------------------------
    ; Сегмент данных
    data 	segment	para public 'data'
    soob1   	db   	13,10,'Error open input file',13,10,'$'
    soob2   	db  	13,10,'Error create output file',13,10,'$'
    soob3   	db   	13,10,'Error read file',13,10,'$'
    soob4   	db   	13,10,'Error write file',13,10,'$'
    soob5  	db   	13,10,'Error close input file',13,10,'$'
    soob6   	db   	13,10,'Error close output file',13,10,'$'
    name_in	db	'input.txt',0
    name_out	db	'output.txt',0
    nom_in	dw	?
    nom_out	dw	?
    in_buf	db	80 dup(?)
    out_buf	db	'Max dlina slova = '
    maxdl		db	62 dup( ' ')
    data 		ends
    ;-------------------------------------------------------------
    ; Сегмент кода
    code 		segment	para public 'code'
    main    	proc
            	mov	ax,data        		; инициализация pегистpа
           	mov	ds,ax          		; сегмента данных
    b1:     	lea	dx,name_in         	; Открытие входного файла
             	mov	al,0             		
              	_f	3Dh              		
              	jnc	b2             		; Файл открылся
            	_puts	soob1              	; Файл не открылся
            	jmp	v            	  	
    b2:     	mov	nom_in,ax         	; N вх.файла
            	lea	dx, name_out        	; Открытие выходного файла
            	mov	al,1             		
            	_f 	3Dh              	
            	jnc	b3             		; Файл открылся
            	lea	dx,name_out        	; Создание выходного файла
           	 mov	cx,0             	
            	_f 	3Ch              	
            	jnc	b3             		; Создание успешное
            	_puts	soob2              	; Файл не создался
            	jmp	v2               	
    b3:     	mov	nom_out,ax        	; N вых.файла
    		xor	ax,ax
    		push 	ax			; выходной параметр - к-во введ-х байтов в стек
            	call	vvod               	; Ввод записи
            	jnc	b4             		; Ввод успешный
            	_puts	soob3              	; Файл не читается
            	jmp	v1              	
    b4:     	;pop	ax			; результат - к-во введ-х байтов в ах
    		;push	ax			; входной параметр - к-во введ-х байтов
    		lea	dx,maxdl		; входной параметр – адрес результата
    		push	dx
    call	obrab              	; Обработка данных
            	call	vivod              	; Вывод записи
            	jnc	v1           		; Вывод успешный
            	_puts	soob4              	; Файл не записывается
    v1:   	mov	bx,nom_out       	; Закрытие выходного файла
            	_f	3Eh              	
            	jnc	v2           		; Закрытие успешное
            	_puts	soob6             	; Файл не закрылся
    v2:   	mov	bx,nom_in           	; Закрытие входного файла
            	_f	3Eh              	
            	jnc	v
            	_puts	soob5              	; Файл не закрылся
    v:
            	_f 	4Ch              	; Выход в DOS
    main    	endp
    
    vvod    	proc                		; Ввод записи
    		push 	bp
    		mov	bp,sp
    		push	ax

    Задача:
    Подсчитать в тексте количество слов, содержащих от 3 до 5 символов. Слово - это последовательность символов, отличных от пробела.

    А ниже пример который нужно переделать под задачу...

    guest, 14 Января 2009

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