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

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

    +130.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
    //private byte[] dB; - строка, символ=1байт. Выше 128 - русские буквы.
    
                StringBuilder sb = new StringBuilder(len);
                for (int k = 0; k < len; k++)
                    if (dB[k] < 127)
                        sb.Append((char)dB[k]);
                    else
                    {
                        if (dB[k] != 185)
                            sb.Append((char)(dB[k] + 848)); // Преобразование в нужную кодировку.
                        else
                            sb.Append((char)8470);      // Отдельное преобразование символа №
                    }

    Преобразование строки (скорее всего в кодировке CP-1251) в юникод.
    Не знаю как сделать по-человечески. Может кто подскажет?

    greeny, 20 Октября 2009

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

    +159.2

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    /******************  Fixed Header GridView  *******************/
    th, th.locked
    {
    	top:expression(parentNode.parentNode.parentNode.parentNode.scrollTop); 
    	position:relative;
    }
    
    td.locked, th.locked
    {
    	left:expression(parentNode.parentNode.parentNode.parentNode.scrollLeft);
    	font-weight:bold;
    }

    CSS+Javascript. Непередаваемые ощущение говна.

    plsc_rover, 19 Октября 2009

    Комментарии (3)
  4. 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)
  5. Java / Говнокод #1967

    +74.7

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    else if (i == '\n')
                {
                    if (lastb != '\r')
                    {                                 
                       // imagine my joy...
                        if (!(isCrlfStream && lastb == '\n'))
                        {
                            out.write(newline);
                        }
                    }
                    else

    Довольно известная опенсорсовая библиотека bouncycatle(bcmail-jdk15-143) разбирался в подписке eMail сообщений и вот где то на вторые- третьи сутки неравной борьбы и вкуривания доки дошел до этого куска кода, комент меня убил
    ЗЫ. Библиотека и ее писатели действительно круты но видно и они устают писать нетленный код.

    tsval, 12 Октября 2009

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

    +159.4

    1. 1
    2. 2
    3. 3
    4. 4
    if (Auth_OpenID_noMathSupport()) {
            $null = null;
            return $null;
        }

    взято в PHP OpenID, модуль BigMath.php, function Auth_OpenID_getMathLib

    scanterkk, 09 Октября 2009

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

    +60

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    //метод некоего класса
    IMission * startMission_ScenarioMission(tID mission_name,bool isChannelImmediate,tID P1,tID P2,tID P3,double coef_time_pickup,double coef_time_complete,double coef_reward_money,double coef_reward_rate,double coef_reward_rank,double coef_forfeit_money,double coef_forfeit_rate,double coef_forfeit_rank,double time_on_mission,bool move_time,bool needFinishPointactivator);
    
    //вызов этого же метода
    mission = startMission_ScenarioMission(CONSTANTSTRING->regString(mission_name),isStartChannelImmediate,CONSTANTSTRING->regString(p1),CONSTANTSTRING->regString(p2),CONSTANTSTRING->regStrinп(p3),coef_time_pickup,coef_time_complete,coef_reward_money,coef_reward_rate,coef_reward_rank,coef_forfeit_money,coef_forfeit_rate,coef_forfeit_rank,time_on_mission,move_time,needFinishPointactivator);

    Неслабый такой метод :)

    generalgda, 09 Октября 2009

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

    +170.6

    1. 1
    2. 2
    3. 3
    $s = md5('1') . '<br />';
        echo md5('2' . $s) . '<br />';
        echo md5('2' . md5('1')) . '<br />';

    Программист пришёл с жалобой на то что получаются разные значения. =)

    qbel, 03 Октября 2009

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

    +166.9

    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
    /*....*/
     $info = ldap_get_entries($ds, $sr);
    
     $Number=0;
     for ($i=0; $i<$info["count"]; $i++) {$Number++;}
    
     for ($i=0; $i<$Number; $i++)
     {
      if (!($info[$i]["cn"] == ""))
      {
       $user=$info[$i]["cn"][0];
       echo $user."\n";
      }
     }
     /*....*/

    vugluskr, 30 Сентября 2009

    Комментарии (3)
  10. Java / Говнокод #1917

    +86.6

    1. 1
    2. 2
    3. 3
    for (int j = 0; j < ch.length; j++) { 
    		ch[j] = "0".charAt (0); 
    }

    lian, 30 Сентября 2009

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

    +62.3

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    void func(const char* str)
    {
      std::map<std::string, int>::iterator = my_map.find(str);
    
      .....
    }
    
    std::string str = "key";
    func(str.c_str());

    Уверен что это может найти каждый из вас в своих проектах, но может не в таком очевидном виде...

    pushkoff, 25 Сентября 2009

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