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

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

    +158

    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
    String.prototype.toCamelCase = function () {
    	var symbols = [], ready = '';
    	for (var z = 0; z < this.length; z++) {
    		symbols[z] = this.charAt(z);
    	} 
    	for (var i = 0; i < symbols.length; i++) {
    		if (symbols[i] == '-') {
    			symbols[i + 1] = symbols[i + 1].toUpperCase();
    		}
    	}
    	for (var q = 0; q < symbols.length; q++) {
    		ready = ready + symbols[q];
    	}
    	ready = ready.replace('-', '');
    	return ready;
    };

    margin-left => marginLeft

    eval, 25 Июня 2010

    Комментарии (126)
  3. C++ / Говнокод #3463

    +158

    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
    #include <math.h>
    #include <stdio.h>
    double zero = 0, three = 3, four = 4;
    class Complex
         {
            public:
            double &x, &y;
            Complex() : x(zero), y(zero) { }
            Complex( double &z ) : x(y), y(z) { }
            Complex( double &_x, double &_y ) : x(_x), y(_y) { }
         };
         double square( double const &x ) { return x * x; }
         double absValue( Complex &c ) { return sqrt( square(c.x)+square(c.y) ); }
         int main()
         {
             Complex c(four);
             printf( "absolute value is %g\n", absValue( c ) );
             return 0;
         }

    говно отсюда http://www.gimpel.com/html/bugs.htm

    xXx_totalwar, 13 Июня 2010

    Комментарии (13)
  4. C++ / Говнокод #3430

    +158

    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
    double** QRSLAU_check(matrix n1, matrix n0, double eps){
        double** x;
        x = (double**) calloc(2,sizeof(double*));
        x[0]= (double*) calloc(n1.i,sizeof(double));
        x[1]=(double*) calloc(n1.i,sizeof(double));
        for (int a=0; a<n1.i; a++){ x[0][a]=1; x[1][a]=1;}
    
        for (int a=0; a<n1.i; a++)
            for (int b=a+1; b<n1.i; b++)
                if(n1.M[b][a]>eps || n1.M[b][a]<-eps) x[0][a]=0;
        for (int a=0; a<n1.i-1; a++)
            if(((n1.M[a][a]+n1.M[a+1][a+1])-(n0.M[a][a]+ n0.M[a+1][a+1]))>eps ||
               ((n1.M[a][a]+n1.M[a+1][a+1])-(n0.M[a][a]+ n0.M[a+1][a+1])) <-eps ||
               ((sqrt(-(n1.M[a][a]*n1.M[a][a]+ n1.M[a+1][a+1]*n1.M[a+1][a+1]-2*n1.M[a+1][a+1]*n1.M[a][a]+4*n1.M[a][a+1]*n1.M[a+1][a])))-
                (sqrt(-(n0.M[a][a]*n0.M[a][a]+ n0.M[a+1][a+1]*n0.M[a+1][a+1]-2*n0.M[a+1][a+1]*n0.M[a][a]+4*n0.M[a][a+1]*n0.M[a+1][a]))))>eps ||
               ((sqrt(-(n1.M[a][a]*n1.M[a][a]+ n1.M[a+1][a+1]*n1.M[a+1][a+1]-2*n1.M[a+1][a+1]*n1.M[a][a]+4*n1.M[a][a+1]*n1.M[a+1][a])))-
                (sqrt(-(n0.M[a][a]*n0.M[a][a]+ n0.M[a+1][a+1]*n0.M[a+1][a+1]-2*n0.M[a+1][a+1]*n0.M[a][a]+4*n0.M[a][a+1]*n0.M[a+1][a]))))<-eps){
            x[1][a]=0;
            if(a==n1.i-2)x[1][a+1]=0;
        }
        else a++;
        return x;
    }

    какая-та штука для QR-алгоритма и поиска собственных значений

    Shiz89, 09 Июня 2010

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

    +158

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    for (int i = 0; i < m_pTableWidget->rowCount(); i++) {
            m_pFilterList->addFilter(m_pTableWidget->item(i, 0)->text(), 
                                     (qobject_cast<QComboBox*>(m_pTableWidget->cellWidget(i, 1)))->currentText(),
                                     (qobject_cast<QComboBox*>(m_pTableWidget->cellWidget(i, 2)))->itemData((qobject_cast<QComboBox*>(m_pTableWidget->cellWidget(i, 2)))->currentIndex()).toString(),
                                     m_pTableWidget->item(i, 3)->text(),
                                     (qobject_cast<QComboBox*>(m_pTableWidget->cellWidget(i, 4)))->itemData((qobject_cast<QComboBox*>(m_pTableWidget->cellWidget(i, 4)))->currentIndex()).toString(),
                                     ((qobject_cast<QComboBox*>(m_pTableWidget->cellWidget(i, 2)))->currentText().contains("конца") ? "'%" : (qobject_cast<QComboBox*>(m_pTableWidget->cellWidget(i, 2)))->currentText().contains("любой") ? "'%" : "'"),
                                     ((qobject_cast<QComboBox*>(m_pTableWidget->cellWidget(i, 2)))->currentText().contains("начала") ? "%'" : (qobject_cast<QComboBox*>(m_pTableWidget->cellWidget(i, 2)))->currentText().contains("любой") ? "'%" : "'")
                                     );
        }

    Вот так вот брутально выглядит код "в одну строчку"

    JC_NVKZ, 08 Июня 2010

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

    +158

    1. 1
    2. 2
    3. 3
    if ($('#block').is(':hidden')) {
    $('#block').toggle();
    }

    eval, 04 Июня 2010

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

    +158

    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
    /**
     * Метод проверяет права доступа на использование этого модуля, возвращает результат проверки.
     * Кроме этого, происходит запись в лог
     *
     * @return boolean
     */
    private function check_access() {
    	Logger::log_exception($_SERVER['REQUEST_URI'].'?'.$_SERVER['QUERY_STRING'], $this->log_file_name);
    	return true;
    }
    
    // [...]
    
    /**
     * Попытка переключить рабочую базу данных
     */
    public function actionChange_db() {
    	if (!$this->check_access()) {
    		echo strval($this->err_failure_access);
    		return;
    	}
    
    // [...]

    Вот такое иногда встречается в коде коллеги, про название метода "log_exception" я промолчу, т.к. это тоже его рук дело, а общий для всех метод Logger::log() ему почему-то не понравился? Я уже просто устал ругаться с ним...

    cr0t, 02 Июня 2010

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

    +158

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    # массив вывода BB-кодов
      $BBcode = array(
      "SIZE" => "<select class='nc_bbcode_bar_size' onChange=\"insert_bbcode('".$winID."','".$formID."','".$textareaID."', '[SIZE=' + this.value + ']', '[/SIZE]'); this.selectedIndex=0;\"  name='bb_fontsize' title='".NETCAT_BBCODE_SIZE."' ".($help ? "onMouseOver=\"show_bbcode_tips('".$winID."','".$formID."','".$textareaID."','".NETCAT_BBCODE_HELP_SIZE."');\"" : "").">\r\n<option value=''>-- ".NETCAT_BBCODE_SIZE_DEF." --\r\n<option value='8'>8px\r\n<option value='10'>10px\r\n<option value='12'>12px\r\n<option value='14'>14px\r\n<option value='16'>16px\r\n<option value='18'>18px\r\n<option value='20'>20px\r\n<option value='22'>22px\r\n<option value='24'>24px\r\n</select>\r\n",
      "COLOR" => "<a href='#' onClick=\"show_color_buttons('".$textareaID."'); return false;\" id='nc_bbcode_color_button_".$textareaID."' ".($help ? "onMouseOver=\"show_bbcode_tips('".$winID."','".$formID."','".$textareaID."','".NETCAT_BBCODE_HELP_COLOR."');\"" : "")."><img src='".$SUB_FOLDER."/images/i_color.gif' alt='".NETCAT_BBCODE_COLOR."' class='nc_bbcode_wicon'></a>\r\n",
      "SMILE" => "<a href='#' onClick=\"show_smile_buttons('".$textareaID."'); return false;\" id='nc_bbcode_smile_button_".$textareaID."' ".($help ? "onMouseOver=\"show_bbcode_tips('".$winID."','".$formID."','".$textareaID."','".NETCAT_BBCODE_HELP_SMILE."');\"" : "")."><img src='".$SUB_FOLDER."/images/i_smile.gif' alt='".NETCAT_BBCODE_SMILE."' class='nc_bbcode_wicon'></a>\r\n",
      "B" => "<a href='#' onClick=\"insert_bbcode('".$winID."','".$formID."','".$textareaID."','[B]','[/B]'); return false;\" ".($help ? "onMouseOver=\"show_bbcode_tips('".$winID."','".$formID."','".$textareaID."','".NETCAT_BBCODE_HELP_B."');\"" : "")."><img src='".$SUB_FOLDER."/images/i_bold.gif' alt='".NETCAT_BBCODE_B."' class='nc_bbcode_icon'></a>\r\n",
      // ... ещё 8 подобных строк ...
      "CUT" => "<a href='#' onClick=\"insert_bbcode('".$winID."','".$formID."','".$textareaID."','[CUT=\'".NETCAT_BBCODE_CUT_MORE."\']','[/CUT]'); return false;\" ".($help ? "onMouseOver=\"show_bbcode_tips('".$winID."','".$formID."','".$textareaID."','".NETCAT_BBCODE_HELP_CUT."');\"" : "")."><img src='".$SUB_FOLDER."/images/i_cut.gif' alt='".NETCAT_BBCODE_CUT."' class='nc_bbcode_icon'></a>\r\n");

    Нет, это не Битрикс, это хуже. Зовётся сие чудо NetCat. Моё личное впечатление от CMSки - ТЗ составлял кто-то весьма неглупый, потому что пользоваться довольно удобно и в концепцию заложены прикольные идеи, но вот код писать посадили младшекурсников за экзамен автоматом. Без переписывания половины кода будущего у неё нет. Уже на PHP 5.3 или на MySQL старше 5.0 она отказывается работать. И тем не менее всё больше хостеров гордо пишут на своих сайтах, что поддерживают её.

    telnet, 16 Мая 2010

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

    +158

    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
    function GrataPressMain()
    {
    	//#region pre
    	var i = 0; //+
    	var iArray = new Array();
    	var iCellSelected = 0; //номер активной ячейки в верхнем меню.+
    	var s = "";
    	var sSite = ""; //+
    	var sSiteTrue = ""; //+
    	var sStatistics = "";
    	var sTitle = ""; //заголовок окна.+
    	var sTitleCell0 = ""; //заголовок в нулевой закладке.+
    	var sTitleCell1 = ""; //заголовок в первой закладке.+
    	var sTitleCell2 = ""; //заголовок в второй закладке.+
    	var sTitleCell3 = ""; //заголовок в третьей закладке.+
    	var sTitleCell4 = ""; //заголовок в четвёртой закладке.+
    	var sTitleCell5 = ""; //заголовок в пятой закладке.+
    	var sTitleCell6 = ""; //заголовок в шестой закладке.+
    страшно? нееет. страшно дальше
    sSiteTrue = "3bz3az36z2yz33z2rz2tz36z33";
    	if (!bSite()) return;
    	sTitle = "Грата Пресс"; //заголовок окна.
    а так?
    sImgUrl5 = "gifCF61B397.gif"; //открытая папка.
    	sImgUrl6 = "gif00BB7312.gif"; //конечный файл.
    	sImgUrl7 = "gif4F60E1FC.gif"; //выделенный уровень.
    	sImgUrl8 = "gifC1ED3F33.gif"; //пустое место под значок.
    	iArray = [104, 116, 116, 112, 58, 47, 47, 111, 107, 110, 111, 46, 109, 111, 115, 46, 114, 117, 47];
    	for (i = 0; i <= 18; i++) sUrlOkno += String.fromCharCode(iArray[i]);
    	iArray = [83, 116, 97, 116, 105, 115, 116, 105, 99, 115, 46, 97, 115, 104, 120, 63, 115, 83, 105, 116, 101, 61];
    	for (i = 0; i <= 21; i++) sStatistics += String.fromCharCode(iArray[i]);
    а так?
    
    divAny=divAny.parentNode.appendChild(document.createElement("div"));
    	divAny.appendChild(document.createTextNode(sTitleRow0));
    	divAny.style.display="inline";
    	divAny=divAny.parentNode.parentNode.appendChild(document.createElement("div"));
    	divAny.style.width="400px";
    	divAny.style.position="absolute";
    	divAny.style.top="1px";
    	divAny.style.left="1px";
    	divAny.style.color="white";
    	imgAny=new Image();
    	if(bIsAttachEvent)imgAny.style.verticalAlign="middle";else imgAny.style.verticalAlign="sub";
    	imgAny.src=sUrlGranit5;
    	divAny=divAny.appendChild(document.createElement("div"));
    	divAny.appendChild(imgAny);
    	divAny.style.display="inline";
    	divAny=divAny.parentNode.appendChild(document.createElement("div"));
    	divAny.appendChild(document.createTextNode(sTitleRow0));
    	divAny.style.display="inline";
    а цсс изгавнякать слабо?
    divAny.style.top="1px";
    	divAny.style.left="1px";
    	divAny.style.color="white";
    
    слабо????? сынки!!!!
    function HomePageLang()
    	{
    		//#region var
    		var oInputSearchValue;
    		var oTextWhiteData0;//белый блок
    		var oTextWhiteData1;
    		var oTextWhiteData2;
    		var oTextWhiteData3;
    		var oTextWhiteData4;
    		var oTextX1Y1Data0;//главная
    		var oTextX1Y1Data1;
    		var oTextX1Y1Data2;
    		var oTextX1Y2Data0;//услуги
    		var oTextX1Y2Data1;
    		var oTextX1Y2Data2;
    		var oTextX1Y2Data3;
    		var oTextX2Y1Data0;//откройте для себя
    		var oTextX2Y1Data1;
    		var oTextX2Y1Data2;
    		var oTextX2Y1Data3;
    		var oTextX2Y1Data4;
    		var oTextX2Y1Data5;
    		var oTextX2Y1Data6;
    		var oTextX2Y2Data0;//почему у нас
    		var oTextX2Y2Data1;
    		var oTextX3Y1Data0;//наши проекты
    		var oTextX3Y1Data1;
    		var oTextX3Y1Data2;
    		var oTextX3Y1Data3;
    		var oTextX3Y1Data4;
    		var divHome;
    		var divAny;
    		var tableWhite;
    		var tableAny;
    		var trAny;
    		var tdAny;

    Сайт имени максима прохорова. чистый яваскрипт.

    ursus, 23 Апреля 2010

    Комментарии (2)
  10. PHP / Говнокод #2185

    +158

    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
    $GLOBALS['_utf8win1251'] = array(
    "\xD0\x90"=>"\xC0","\xD0\x91"=>"\xC1","\xD0\x92"=>"\xC2","\xD0\x93"=>"\xC3","\xD0\x94"=>"\xC4",
    ............
    "\xD1\x96"=>"\xB3","\xD1\x97"=>"\xBF","\xD1\x94"=>"\xBA","\xD1\x9E"=>"\xA2");
    $GLOBALS['_win1251utf8'] = array(
    "\xC0"=>"\xD0\x90","\xC1"=>"\xD0\x91","\xC2"=>"\xD0\x92","\xC3"=>"\xD0\x93","\xC4"=>"\xD0\x94",
    ............
    "\xB3"=>"\xD1\x96","\xBF"=>"\xD1\x97","\xBA"=>"\xD1\x94","\xA2"=>"\xD1\x9E");
    
    function utf8_win1251($a) {
    //    global $_utf8win1251;
        if (is_array($a)){
            foreach ($a as $k => $v) {
                if (is_array($v)) {
                    $a[$k] = utf8_win1251($v);
                } else {
                    $a[$k] = strtr($v, $GLOBALS['_utf8win1251']);
                }
            }
            return $a;
        } else {
            return strtr($a, $GLOBALS['_utf8win1251']);
        }
    }
    
    function win1251_utf8($a) {
    //    global $_win1251utf8;
        if (is_array($a)){
            foreach ($a as $k=>$v) {
                if (is_array($v)) {
                    $a[$k] = win1251_utf8($v);
                } else {
                    $a[$k] = strtr($v, $GLOBALS['_win1251utf8']);
                }
            }
            return $a;
        } else {
            return strtr($a, $GLOBALS['_win1251utf8']);
        }
    }

    а сколько всего...
    mb_convert_encoding и array_walk_recursive отменили...
    ну или хотя-бы от вложенных if избавиться можно

    ivan.borzenkov, 26 Ноября 2009

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

    +158

    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
    <?php
    /**
     * хелпер подсчитывает кол-во дней между двух дат
     */
    class ********_View_Helper_DateDiff 
    {
    	/**
    	 * из дня, месяца и года формирует время в формате кол-ва дней
    	 * @return integer
    	 */
    	protected function dateToDays($day, $month, $year)
        {
            if ($month > 2) {
                // March = 0, April = 1, ..., December = 9,
                // January = 10, February = 11
                $month -= 3;
            } else {
                $month += 9;
                --$year;
            }
    
            $hb_negativeyear = $year < 0;
            $century         = intval($year / 100);
            $year            = $year % 100;
    
            if ($hb_negativeyear) {
                return intval((14609700 * $century + ($year == 0 ? 1 : 0)) / 400) +
                       intval((1461 * $year + 1) / 4) +
                       intval((153 * $month + 2) / 5) +
                       $day + 1721118;
            } else {
                return intval(146097 * $century / 4) +
                       intval(1461 * $year / 4) +
                       intval((153 * $month + 2) / 5) +
                       $day + 1721119;
            }
        }
    	/**
    	 * высчитывает разницу между двух дат
    	 * @return integer
    	 */
    	public function dateDiff($day1,$month1,$year1,$day2,$month2,$year2) {	
    		$days1 = $this->dateToDays($day1,$month1,$year1);
    		$days2 = $this->dateToDays($day2,$month2,$year2);
    		return ($days1-$days2);
    	}
    }

    кусок самописного расширения ZF.
    про gregoriantojd() люди не знали.

    fatlazyanimal, 12 Октября 2009

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