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

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

    +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
    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
    //exit;
    
    define("CACHE_USE", false);
    
    require("/usr/home/<path_to_config>/config.php");
    require_once(PATH_CLASSES . "/DB.Class.php");
    
    DB::connect(DBHOST, DBUSERNAME, DBPASSWORD, DBNAME);
    
    checkLongProcesses();
    sleep(30);
    checkLongProcesses();
    
    function checkLongProcesses() {
    	$pslist = DB::query("SHOW PROCESSLIST");
    
    	if (sizeof($pslist) > 25) {
    
    		mail("[email protected]", "SQL Processes Monitor Report", print_r($pslist, true));
    
    		echo "Killing long queries...\n\n";
    		foreach ($pslist as $el) {
    			if ($el['Time']>10) {
    				echo "Killing process: " . $el['Id'] . "\n";
    				echo $el['Info'] . "\n\n";
    				DB::query("KILL " . $el['Id']);
    			}
    		}
    	}
    }

    Достался проект с кодом различной говнистости. Вот такое, например, запускается кроном каждые 10 минут.

    wmmorgun, 21 Декабря 2010

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

    −178

    1. 1
    select count(*) from contacts left join orders on contacts.id = orders.contactId where not ISNULL(orders.contactId)

    Комментарий автора "в inner можно что-то потерять, а left всегда работает"

    Анонимус, 16 Декабря 2010

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

    +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
    public IProjectController ProjectController
            {
                [System.Diagnostics.DebuggerNonUserCode]
                get
                {
                    return _widgets[0].Widget.ProjectController;
                }
                [System.Diagnostics.DebuggerNonUserCode]
                set
                {
                    foreach (var c in _widgets)
                        c.Widget.ProjectController = value;
                }
            }

    Коротко но зато как емко. Моя любимая часть это конечно аттрибуты - что бы дебаггер не заходил туда в момент отладки - а вдруг кто увидит

    eval_2009, 09 Декабря 2010

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

    +161

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    CRect rcHeaderImage;
    rcHeaderImage.left = listColumn.m_strText.IsEmpty() ? ( ( rcHeaderText.left + rcHeaderText.right ) / 2 ) - ( sizeIcon.cx / 2 ) 
            - (( !m_bShowThemed
    #ifndef DISABLE_XP_THEMES
            || m_thmHeader.IsThemeNull()
    #endif
            ) ? 0 : 1 ) : rcHeaderText.left;

    Вот так вот задачка "подвинуть иконку вправо на пару пикселов" превращается в нетривиальную :)

    ryadovoy, 08 Декабря 2010

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

    −181

    1. 1
    function hilight { python2 -c 'import sys, re; map(lambda s: sys.stdout.write(re.sub(r"'$1'", lambda m: "\033[1;31m%s\033[0m" % m.group(0), s)), sys.stdin)' }

    Это в Python или в bash?

    ___, 23 Ноября 2010

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

    +121

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    txtContacts.Text = "";
    bool first = true;
    
    foreach (string contact in contacts)
    {
    	if (first != true)
    		txtContacts.Text += ";";
    	first = false;
    
    	txtContacts.Text += contact;
    }

    Думаю, кто-то хотя бы раз сталкивался с самопальным String.Join'ом

    zheka, 22 Ноября 2010

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

    +145

    1. 1
    2. 2
    3. 3
    [Mon Nov 22 15:52:46 2010] [emerg] [client 217.69.133.30] mod_bartertown_translate: Fatal: STL: cannot find file in include directories `/`
    жгут
    написали бы еще "не могу открыть что-то что должно лежать в '/'"

    программа не смогла открыть файл и написала в логи..

    m0r1k, 22 Ноября 2010

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

    +145

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    if (t) {
    	;	
    } else {
    	printf("%d ", i);
    }

    Ночь. Хочу спать. Выдал вот такое.

    Rusik, 22 Ноября 2010

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

    −103

    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
    '==========================================================================
                'обновляю таблицу okFIO
                lcSQl = "UPDATE okFIO SET"
                If Not (Me.DS_ExportFIO.okFIO.Rows(0)!dateBegin Is System.DBNull.Value) Then
                    lcSQl &= " dateBegin = '" & Format(Me.DS_ExportFIO.okFIO.Rows(0)!dateBegin, "yyyyMMdd") & "'"
                End If
                If Not (Me.DS_ExportFIO.okFIO.Rows(0)!Prim Is System.DBNull.Value) Then
                    lcSQl &= ", Prim = '" & Me.DS_ExportFIO.okFIO.Rows(0)!Prim.ToString & "'"
                End If
               If Not (Me.DS_ExportFIO.okFIO.Rows(0)!oldFam Is System.DBNull.Value) Then
                    lcSQl &= ", oldFam = '" & Me.DS_ExportFIO.okFIO.Rows(0)!oldFam.ToString & "'"
                End If
                'If Not (Format(Me.DS_ExportFIO.okFIO.Rows(0)!dateFill.ToString, "yyyyMMdd")) = "" Then
                '    lcSQl &= ", dateFill = " & Format(Me.DS_ExportFIO.okFIO.Rows(0)!dateFill.ToString, "yyyyMMdd") & ""
                'End If
                If Not (Me.DS_ExportFIO.okFIO.Rows(0)!FIOR Is System.DBNull.Value) Then
                    lcSQl &= ", FIOR = '" & Me.DS_ExportFIO.okFIO.Rows(0)!FIOR.ToString & "'"
                End If
                If Not (Me.DS_ExportFIO.okFIO.Rows(0)!FIOD Is System.DBNull.Value) Then
                    lcSQl &= ", FIOD = '" & Me.DS_ExportFIO.okFIO.Rows(0)!FIOD.ToString & "'"
                End If
    
                ......
    
                If Not (Me.DS_ExportFIO.okFIO.Rows(0)!isSoprPF Is System.DBNull.Value) Then
                    lcSQl &= ", isSoprPF = " & Me.DS_ExportFIO.okFIO.Rows(0)!isSoprPF.ToString & ""
                End If
                If Not (Me.DS_ExportFIO.okFIO.Rows(0)!isReadyFotoPC Is System.DBNull.Value) Then
                    lcSQl &= ", isReadyFotoPC = " & Me.DS_ExportFIO.okFIO.Rows(0)!isReadyFotoPC.ToString & ""
                End If
                If Not (Me.DS_ExportFIO.okFIO.Rows(0)!isReadySignPC Is System.DBNull.Value) Then
                    lcSQl &= ", isReadySignPC = " & Me.DS_ExportFIO.okFIO.Rows(0)!isReadySignPC.ToString & ""
                End If
                If Not (Me.DS_ExportFIO.okFIO.Rows(0)!SNILS Is System.DBNull.Value) Then
                    lcSQl &= ", SNILS = '" & Me.DS_ExportFIO.okFIO.Rows(0)!SNILS.ToString & "'"
                End If
                If Not (Me.DS_ExportFIO.okFIO.Rows(0)!idPrivilege Is System.DBNull.Value) Then
                    lcSQl &= ", idPrivilege = " & Me.DS_ExportFIO.okFIO.Rows(0)!idPrivilege.ToString & ""
                End If
                lcSQl &= " WHERE(id = " & Me.idFIO & ")"
                myCommand = New SqlClient.SqlCommand(lcSQl, myConn)
                myCommand.CommandTimeout = 0
                myCommand.ExecuteNonQuery(

    И так далее... всего около 150ти строк кода (весь сюда запихнуть не могу) на формирования SQL-запроса.

    HellMaster_HaiL, 18 Ноября 2010

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

    +95

    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
    function  TForm1.beta(i:integer) : integer;
    var bt:integer;
    begin
    bt:=0;
    curI:=i;
    if (alf=1) and (cad=0) then
    begin
    if i<=26 then bt:=2;
    if (i<=36) and (i>=27) then bt:=3;
    if (i<=48) and (i>=37) then  begin  bt:=1; addortolexlist(cT);  end;
    if i=49 then bt:=4;
    if i=50 then bt:=5;
    if i=51 then bt:=6;
    if i=52 then bt:=7;
    end;
    if (alf=2) and (cad=0) then
    begin
    if i<=26 then bt:=2;
    if (i<=36) and (i>=27) then bt:=2;
    end;
    if (alf=3) and (cad=0) then
    begin
    if (i<=36) and (i>=27) then bt:=3;
    end;
    if (alf=4) and (cad=0) then
    begin
    if i=50 then
    begin
     Tl[lexnow].n:=jj;
      Tl[lexnow].subst:='<>';
      Tl[lexnow].lexcod:=21;
      Tl[lexnow].index:=0;
      bt:=1;
       inc(lexnow);
       ii:=ii+1;
    end;
    if i=51 then
    begin
      Tl[lexnow].n:=jj;
      Tl[lexnow].subst:='<=';
      Tl[lexnow].lexcod:=24;
      Tl[lexnow].index:=0;
     bt:=1;
     ii:=ii+1;
        inc(lexnow);
    end;

    Кусок кода из лабораторной работы по трансляторам. Как сказал парень - "Я не умею пользоваться функциями, поэтому я все пишу на массивах" О_о
    Дальше в коде заполнение массивов размерностью в сотню элементов вручную!
    Главное, что всё работает...

    niravzi, 17 Ноября 2010

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