1. SQL / Говнокод #8161

    −110

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    ...
          IF  i.R_LITHOLOG_1_UPD_173 IS NOT NULL  AND i.R_LITHOLOG_1_INS_69 IS NOT NULL  THEN
           INSERT INTO R_LITHOLOGY( SOURCE,DESCRIPTION,CODE,NAME,ACTIVE_FLAG)
             VALUES(i.SOURCE,i.DESCRIPTION,i.R_LITHOLOG_1_UPD_173,i.CODE,NVL(i.R_LITHOLOG_1_INS_69,'1'));
    ...

    Вдруг i.R_LITHOLOG_1_INS_69 IS NULL ?
    Но почему тогда к i.R_LITHOLOG_1_UPD_173 такое доверие?

    slbsomeone, 11 Октября 2011

    Комментарии (3)
  2. bash / Говнокод #8160

    −122

    1. 1
    2. 2
    # mount /var/run or /run (DONTFIXME: obscure black magic)
    mount_directory "$timestamp_base_dir" "$chroot_env_root"'/var/run'

    монтирование /var/run или /run (в зависимости от дистрибутива) в chroot, тоже в /var/run или /run, в зависимости от дистрибутива в chroot

    Shnatsel, 11 Октября 2011

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

    +157

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    function ru_date($date) {
        $ru_m = array("января","февраля","марта","апреля","мая","июня","июля","августа","сентября","октября","ноября","декабря");
        $el = explode(".",$date);
        for($i=0;$i<12;$i++) if($i+1==str_replace("0","", $el[1])) $el[1] = $ru_m[$i];
        $date = implode(" ", $el);
        return $date;
    }

    функция превращения даты вида 'd.m.Y' в 'd месяц Y'

    pahhan, 11 Октября 2011

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

    +104

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    if (!fragment || !texture)
      {
        return (1); /* Валидность параметров не пройдена. Дальнейшие действия бесмыслены */
      }
      else
      {
        /* Ничего не делать*/
      }

    Эпичный комментарий, найденный в коде

    x0rb0t, 11 Октября 2011

    Комментарии (24)
  5. VisualBasic / Говнокод #8157

    −97

    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
    Private Sub CommandButton1_Click() 'необходимо
        For q = 2 To 500
        For w = 25 To 34
        For e = 3 To 13
            If Лист1.Cells(q, 4) = "Затрачено [...]" Or Лист1.Cells(q, 4) = "Затрачено на [...]" Then
            If Лист1.Cells(q, 7) = Лист11.Cells(w, 1) Then
            If Лист1.Cells(q, 6) = Лист11.Cells(3, e) Then
                Лист11.Cells(w, e) = Лист11.Cells(w, e) + Лист1.Cells(q, 5)
                Rem Лист1.Cells(q, 11) = 151
            End If
            End If
            End If
        Next
        Next
        Next
    End Sub
    
    ...
    
    TextBox4.Value = CLng(cdop1 * (TextBox15.Value * Лист5.Cells(10, 11)) + cdop2 * (TextBox15.Value * Лист5.Cells(10, 11))) + CLng(TextBox53.Value)
    
    ...
    
    Лист1.Cells(a, 45) = TextBox32.Value ' отсрочка
    
    If IsDate(TextBox58.Value) And IsDate(TextBox62.Value) Then
    Лист1.Cells(a, 46) = CDate(TextBox62.Value) - CDate(TextBox58.Value) ' прошло дней
    End If
    Лист1.Cells(a, 47) = TextBox55.Value ' зарплата
    Лист1.Cells(a, 48) = TextBox63.Value ' штраф
    
    If CheckBox6.Value = True Then
    Лист1.Cells(a, 49) = 1 ' комплект
    Else
    Лист1.Cells(a, 49) = 0
    End If

    Ну и так далее.

    Беда, коль пироги начнёт печи сапожник, а макросы писать бухгалтер.

    lucidfox, 11 Октября 2011

    Комментарии (15)
  6. SQL / Говнокод #8156

    −153

    1. 1
    2. 2
    3. 3
    SELECT COUNT(*) INTO v_inserted_data FROM f2s.column_map 
    WHERE old_id='TYPE='||i.pk_0 AND migration_id='fin95_aral' 
    AND fndr_table='R_ALLOWABLE' AND UPPER(NVL(fndr_constraint,'null'))=UPPER('NULL');

    Oracle 10.2 PL/SQL. продакшн код.
    Условие поиска NULL убило...

    slbsomeone, 11 Октября 2011

    Комментарии (7)
  7. SQL / Говнокод #8155

    −113

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    CURSOR v_cursor IS
      SELECT
       ...
       NVL(DECODE(record_status,'CURRENT',1,0),'1')       r_grain_ro_1_ins_64,
      ...

    Это в продакшн коде.
    Oracle 10.2, PL/SQL

    slbsomeone, 11 Октября 2011

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

    +166

    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
    void sort(student x[], perech *&py)
         { int l;
           perech t;
           //perech *y;
           py=new perech[n];
           l=1; k=0;
           for(i=0; i<n; i++)
    	  { fl=0;
    	    for(j=0; j<l; j++)
    	       { if((strcmp(x[i].fam,py[j].fam)==0)&&((strcmp(x[i].im,py[j].im)!=0)||(strcmp(x[i].gr,py[j].gr)!=0)))
    		   { fl=1;
    	    py[j].ng++; break;
    		   }
    		 if(fl==0) { strcmp(py[l-1].fam,x[i].fam);
    			     py[l].ng=1; l++;
    			   }
    	       }
    	  }
           for(i=0; i<(l-1); i++)
    	  for(j=i+1; j<l; j++)
    	     if(py[i].ng<py[j].ng)
    	       { t=py[i];
    		 py[i]=py[j];
    		 py[j]=py[i];
    	       }
           for(i=1; i<l; i++)
    	  if(py[0].ng=py[i].ng)
    	    k++;
           k++;
           py=new perech[k];
           if(py==NULL) {
    		      cout<<"Net pamyati"; getch();
    		      k=0; delete []py; return;
    		    }
           for(i=0; i<l; i++)
    	  py[i]=py[i];
           delete []py;
           cout<<"Perechen' sformirovan:\n";
           getch();
           for(i=0; i<l; i++)
    	  cout<<py[i].fam<<" "<<py[i].ng<<endl;
           getch();
         }
    void outputFileStudent(perech x[])
         { int l;
           ofstream fout;
           char file[L];
           cout<<"Vvedite imya faila:\n"; cin>>file;
           fout.open(file);
           if(fout.fail()) { cout<<"Error... Press any key for exit";
    			 getch(); return;
    		       }
           for(i=0; i<l; i++)
    	  fout<<x[i].fam<<" "<<x[i].ng<<endl;
           cout<<"File save\n";
           getch();
         }
    void outputFileStudentBin(perech y[])
         { ofstream fout;
           char file[L];
           cout<<"Vvedite imya save fila:\n"; cin>>file;
           fout.open(file, ios::binary);
           if(fout.fail()) { cout<<file<<"ne sozdan\n"; getch(); return; }
           fout.write((char *) y, k*sizeof(perech()));
           if(fout.fail()) { cout<<"Oshibka zapisi\n"; getch(); return; }
           cout<<"Perechen save\n";
           getch();
           fout.close();
         }
    void inputFileStudentBin(perech *&px)
         { ifstream fin;
           char file[20];
           int l;
           perech t;
           cout<<"Vvedite imya save faila:\n"; cin>>file;
           fin.open(file);
           if(fin.fail()) { cout<<"Error\n"; getch(); return();}
           for(i=0; i<l; i++)
    	   fin>>t.fam>>t.ng;
           fin.close();
    
           if(px!=NULL) delete []px;
           fin.open(file);
           if(fin.fail()) { cout<<"Povtornaya oshibka\n"; getch();
    			delete []px; k=0; return; }
           for(i=0; i<k; i++)
    	  fin>>px[i].fam>>px[i].ng;
           cout<<"file vveden\n"; getch();
           for(i=0; i<l; i++)
    	  cout<<px[i].fam<<" "<<px[i].ng<<endl;
           getch();
           fin.close();
         }

    Новый стажер решил задачу про студентов, вызывая их в компилированном виде из модуля 1С.
    Не знал в какой раздел запостить, поэтому пощу в 1С
    Вообще-то в 1С своя база.

    alexoy, 10 Октября 2011

    Комментарии (11)
  9. bash / Говнокод #8153

    −105

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    Предлагаю конкурс на лучшую реализацию задачи про стеки.
    Язык - bash, python или любой скриптовый.
    Номинируются такие стадии
    1. Ленивая стека, push - o(n) pop o(1) top o(1) 
    2. Забывчивая стека, push - o(1), pop o(1) top o(1), для любого l : len(l)>=n push(l,x) = l
    3. Стека-очередь, push переводит стеку в режим очереди, pop переводит в режим стеки. top - O(1)
    4. Маразматическая стека, map (push l) (x1,x2,x3,x4) -> [x1, x1, x3, x3] o(n), pop(l) -> (x1,x1,x4) - номер сиротливого брата определяется старшим номером брата
    5. Бинарная стека - push o(1) pop o(1) top o(1), sort o(1), shuffle o(log(n))
    Номинантам лучших стадий будут достанутся приз

    Главное - не программировать стеку, а показывать всем, как я это делаю.
    До второй стадии осталось 22 часа. Второй шаг алгоритма

    alexoy, 10 Октября 2011

    Комментарии (19)
  10. Куча / Говнокод #8152

    +144

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    Уж извиняйте, сегодня без говнокода на С++ с геймдева.
    Ну, что-то я стал сильно жирный. Пора принимать фери внутриутробно.
    Я ухожу, чтобы не толстеть и дальше. It's last day.
    Нужно забанить RS-232 c паролем RS и ohlol с паролем ohlol.
    Я разлогинился и удалил ящики.
    Пожелайте мне удачного пути, да чтоб в двери не застрял. Я Вас всех полюбил, как и С++.
    Мне будет Вас всех не хватать, друзья.
    Ещё раз извините. До свидания в лучшем месте. Желаю вам всем удачи и хорошего настроения. ^_^

    http://www.youtube.com/watch?feature=player_detailpage&v=KUYhqUgg-ig#t=503s

    RS-232, 10 Октября 2011

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