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

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

    +1003

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    /c/Qt/4.7.4/src/plugins/bearer/symbian/symbianengine.cpp:1336..1344
    
    // Waits for 2..6 seconds.
    void SymbianEngine::updateConfigurationsAfterRandomTime()
    {
        int iTimeToWait = qMax(1000, (qAbs(qrand()) % 68) * 100);
    #ifdef QT_BEARERMGMT_SYMBIAN_DEBUG
        qDebug("QNCM waiting random time: %d ms", iTimeToWait);
    #endif
        QTimer::singleShot(iTimeToWait, this, SLOT(delayedConfigurationUpdate()));
    }

    68 будет в самый раз, да.

    overloop, 11 Ноября 2011

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

    +160

    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
    $bError=true;
    do { 
    	$logistType = $_REQUEST['logistType'];
    	if (!preg_match("|^\d+$|", $logistType)) { break; }
    	if ($_SESSION['cartaddon']['***'] and $logistType>=1 and $logistType<=5) {
    	} elseif (!$_SESSION['cartaddon']['***'] and $logistType>=3 and $logistType<=5) {
    	} else {
    		break;
    	}
    	$_SESSION['cartaddon']['logistType'] = $logistType;
    	$bError = false;
    	$text = $_REQUEST['text'];
    	$text = trim(strip_tags($text));
    	$_SESSION['cartaddon']['pozhelania'] = $text;
    } while (0);

    Проверка если ли ошибки при оформлении заказа
    На месте звездочек - палевное название, так что зацензурил

    ПыСы: код не мой. И спасибо богам за это

    kindofbear, 25 Октября 2011

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

    +172

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    class sImg
    {
       function getRatio()
       {
          $i = ($this->getWidth()) / ($this->getHeight());
          return substr($i,0,4);
          unset($i);
       }
    
    }

    Разбирал заметки в evernotes и обнаружил класс, который добавил туда три года назад с какого-то "образовательного" сайте. Класс создаст превьюшки.
    Особую пикантность добавляет то что методы получения высоты/ширины возвращают результат imagesx и imagesy.

    VanSanblch, 16 Октября 2011

    Комментарии (23)
  5. Си / Говнокод #8202

    +147

    1. 1
    write_ext = ".pgm\0.ppm\0.ppm\0.pam" + colors*5-5;

    из dcraw.c - кладезь вот таких перлов. то ли говнокодер писал - то ли гений. настолько лаконичного кода давно уже не видел.

    http://www.cybercom.net/~dcoffin/dcraw/

    Dummy00001, 15 Октября 2011

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

    +169

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    class Banners_object extends DomainObject
    {
        function setDefaultProperties()
        {
            $this->properties = array(
              'oid' => null,
              `priority` => null,
              `title` => null,
              `link` => null,
            );
        }
    }

    При попытке создать новый объект в STDOUT вылезает что-то типа этого:

    sh: priority: command not found
    sh: title: command not found
    link: missing operand
    Try `link --help' for more information.

    Очень долго ржали

    travka, 28 Сентября 2011

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

    −141

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    Для К = 1 По 11 Цикл
    Если Форм = 1 Тогда
    ExcelApp.Cells(КолЗ,К).Font.Bold = 1;
    ExcelApp.Cells(КолЗ,К).Font.Color = 16732963; 
    КонецЕсли;      
    КонецЦикла;

    "Орфография автора сохранена" =)

    HellMaster_HaiL, 23 Сентября 2011

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

    +168

    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
    ...
            echo '<td width="219" height="18" class="lnk" ><a href="?ierh=6&cat=i_octa">'.gettags("str_octa").'</a></td>';
            echo '</tr>';
            echo '<tr>';
            echo '<td width="219" height="18" class="lnk" ><a href="?ierh=6&cat=i_accident">'.gettags("str_sluch").'</a></td>';
            echo '</tr>';
            echo '<tr>';
            echo '<td width="219" height="18" class="lnk" ><a href="?ierh=6&cat=i_travel">'.gettags("str_travel").'</a></td>';
            echo '</tr>';
            echo '<tr>';
            echo '<td width="219" height="18" class="lnk" ><a href="?ierh=6&cat=i_history">'.gettags("str_history").'</a></td>';
            echo '</tr>';
            echo '<tr>';
            echo '<td width="219" height="8" class="lnk"><img src="images/spacer.gif" width="10" height="8" /></td>';
            echo '</tr>';
            echo '</table>';
            echo '</DIV>';
            echo '<!---  end of left menu area ---></td></tr>';
            break;        
    // Spravochniki    
        case 7:
            echo '<td width="5"   bgcolor="#FFFFFF"><img src="images/spacer.gif" width="5" height="700" /></td>';
            echo '<td width="219" valign="top" ><!---  left area --->';
            echo '<table width="219" height="100%" border="0" cellpadding="0" cellspacing="0" bgcolor="#FFFFFF">';
            echo '<tr>';
            echo '<td width="219" height="89"><!---  left menu area --->            <DIV class="left-menu">';
            echo '<table width="219" cellpadding="0" cellspacing="0" class="left-menu" border="0">';
            echo '<tr>';
            echo '<td width="219" height="27" background="images/LMenuBG.gif" class="txtTitleWhite">'.gettags("spr_notarius").'</td>';
            echo '</tr>';
            echo '<tr>';
            echo '<td width="219" height="3" class="lnk"><img src="images/spacer.gif" width="10" height="3" /></td>';
            echo '</tr>';
            echo '<tr>';
            echo '<td width="219" height="18" class="lnk" ><a href="?ierh=7&cat=s_help">'.gettags("spr_nothelp").'</a></td>';
            echo '</tr>';
            echo '<tr>';
            echo '<td width="219" height="18" class="lnk" ><a href="?ierh=7&cat=s_functions">'.gettags("spr_funct").'</a></td>';
            echo '</tr>';
            echo '<tr>';
            echo '<td width="219" height="18" class="lnk" ><a href="?ierh=7&cat=s_when">'.gettags("spr_notwhen").'</a></td>';
            echo '</tr>';
            echo '<tr>';
            echo '<td width="219" height="27" background="images/LMenuBG.gif" class="txtTitleWhite">'.gettags("spr_zemsl").'</td>';
    ...

    Переделываем сайт одной компании. Пока суд да дело, их "текущий" сайт переехал к нам на хостинг. Из любопытства залез в код.
    Лучше бы я этого не делал.
    Собственно, ЭТО (и сотни, если не тысячи строк в том же духе) и выводят все странички.

    havelock, 12 Сентября 2011

    Комментарии (23)
  9. Pascal / Говнокод #7838

    +98

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    for j:=k+1 to n+1 do
    	begin
    	r:=a[j,k]/a[k,k];
    	for i:=k to n do
                    begin
                    a[j,i]:=power(((a[j,i]-r*a[k,i]):a[i,j]),a[j,i]);
                    end;

    К сожалению, я уже забыл, какой идентификатор что значит :(
    Придется переписывать.

    Lioncure, 12 Сентября 2011

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

    +78

    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
    public class LoadManager
    {
        public static Integer DEFAULT_MAX_LOAD_COUNTER = 2;
    
        private ConcurrentHashMap<Class, Integer> loadCounters = new ConcurrentHashMap<Class, Integer>();
    
        public void incLoadCounter(Class clazz)
        {
            synchronized (loadCounters)
            {
                if (!loadCounters.containsKey(clazz))
                {
                    loadCounters.put(clazz, 0);
                }
    
                if (loadCounters.get(clazz) <= DEFAULT_MAX_LOAD_COUNTER)
                {
                    loadCounters.put(clazz, loadCounters.get(clazz) + 1);
                }
            }
        }
    
        public void testLoadCounterAndWait(Class clazz)
        {
            synchronized (loadCounters)
            {
                if (!loadCounters.containsKey(clazz))
                {
                    loadCounters.put(clazz, 0);
                }
            }
            
            try
            {
                while (loadCounters.get(clazz) > DEFAULT_MAX_LOAD_COUNTER)
                {                
                    Thread.sleep(3000L + (long)Math.floor(5000 * Math.random()));
                }
            }
            catch (InterruptedException e) {}        
        }
    
        public void decLoadCounter(Class clazz)
        {
            synchronized (loadCounters)
            {
                if (!loadCounters.containsKey(clazz))
                {
                    loadCounters.put(clazz, 0);
                }
    
                if (loadCounters.get(clazz) > 0)
                {
                    loadCounters.put(clazz, loadCounters.get(clazz) - 1);
                }
            }
        }
    }

    Наверное, нужно было вот это: http://download.oracle.com/javase/1,5.0/docs/api/java/util/concurrent/Semaphore.html
    Ну и ещё порадовал способ постановки потоков в "очередь".

    konsoletyper, 17 Августа 2011

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

    +118

    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
    private SqlConnection SqlConnection;
    private SqlTransaction SqlTransaction;
    private SqlCommand SqlCommand;
    private SqlDataReader SqlDataReader;
    
    protected void BtnRegister_Click(object sender, EventArgs e)
    {
    using(SqlConnection connection = new SqlConnection())
    {
    if(textBoxUsername != null)
    {
    if(textBoxPassword != null)
    {
    if(textBoxCountry !=null)
    {
    if(textBoxCity !=null)
    {
    SqlCommand.CommandText = "INSERT INTO SiteDB (Username, Password, Email, City, Country)"+
       "VALUES ('textBoxUsername', 'textBoxPassword', 'textBoxCountry', 'textBoxCity')";
    SqlCommand.ExecuteNonQuery;
    }
    }
    }
    }
    }
    }

    Прислали недавно пример кода вместе с резюме на поизицию ASP.NET Developper.

    IJobs, 06 Августа 2011

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