1. C++ / Говнокод #12396

    +10

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    for (int i = 0; i < 15; i++) {
        // Прикольное место, надо прокомментировать
        // Если наша функция Fork() вернула true, то мы
        // в дочернем процессе и форкаться больше не надо
        // Форканье - это задача родителя
        // Дети этим заниматься не должны
        if (Fork()) break;
    }

    Создание дочерних процессов. Вот такой костыль. Есть идеи, как улучшить?

    kafeman, 07 Января 2013

    Комментарии (53)
  2. Куча / Говнокод #12394

    +127

    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
    Название: Регистрация заказчика.
    Основное действующее лицо: Менеджеру по работе с заказчиками
    Область действия: Система
    Уровень: Пользователя
    Минимальные гарантии: Система останется в рабочем состоянии
    Гарантии успеха: Клиент загеристрирован
    Триггер: Клиент обратился к менеджеру по работе с заказчиками с просьбой зарегистрироваться
    Основной сценарий:
    1. Клиент обращается к менеджеру по работе с заказчиками, менеджер открывает регистрацию, система запоминает.
    2. Менеджер по работе с заказчиками запрашивает у клиента, имя, клиент сообщает имя, менеджер вводит имя в соответвующую форму, система запоминает.
    3. Менеджер по работе с заказчиками запрашивает у клиента, отчество, клиент сообщает отчество, менеджер вводит отчество в соответвующую форму, система запоминает.
    4. Менеджер по работе с заказчиками запрашивает у клиента, фамилию, клиент сообщает фамилию, менеджер вводит фамилию в соответвующую форму, система запоминает.
    5. Менеджер по работе с заказчиками запрашивает у клиента, номер паспорта, клиент сообщает номер паспорта, менеджер вводит номер паспорта пв соответвующую форму, система подтверждает правильность номера паспорта.
    6. Менеджер по работе с заказчиками запрашивает у клиента, дату выдачи паспорта, клиент сообщает дату выдачи паспорта, менеджер вводит дату выдачи паспорта в соответвующую форму, система подтверждает.
    7. Менеджер по работе с заказчиками запрашивает у клиента, контактный номер, клиент сообщает контактный номер, менеджер вводит контактный номер в соответвующую форму, система подтверждает.
    8. Менеджер по работе с заказчиками закрывает регистрацию, система сохраняет информацию о клиенте и подтверждает успешность регистрации.
    Альтернативы:
    5.а. Введен неверный номер паспорта.
    	1. Система сообщает об ошибке
    	2. Переход к пункту 5 основного сценария.
    6.а. Клиент уже зарегистрирован.
    	1. Система сообщает об ошибке.

    Моя боль...

    myzone, 06 Января 2013

    Комментарии (30)
  3. VisualBasic / Говнокод #12393

    −110

    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
    Sub WriteCategories(number, choice)
        
        strSql = ""
        strSql2 = ""
        
        If number = 1 Then
            strSql = "SELECT name, category_type_id" '... the rest is skipped
        Elseif number = 2 Or number = 3 Then
            strSql = "SELECT goco.category_order, goco.category_type_id," '... the rest is skipped
        End If
        
        If number = 1 And choice = 1 Then
            strSql2 = "SELECT gosct.category_type_id, goct.operator_id," '... the rest is skipped
            
        Set RS2 = db.Execute(strSql2)
            
        ' --- No sub categories are displayed if choice = 3
        Elseif choice <> 3 Then
            strSql2 = "SELECT goco.category_type_id, goco.sub_category_order, ..." 'the rest is skipped
            
            Set RS2 = db.Execute(strSql2)
        End If
        
        Set RS = db.Execute(strSql)
        
        ' --- CategoryListCurrent should not display selected category in categoryListMoveTo and vice versa.
        If number = 2 And choice = 1 Then
            '... the real code is skipped
            
            Do Until RS.EOF
                '... the real code is skipped
            Loop
        End If
        
        If number = 2 And choice = 2 Then
            '... the real code is skipped
            
            Do Until RS.EOF
                '... the real code is skipped
            Loop
        End If
        
        
        ' --- Loop through the recordset and print categories and sub categories.
        Do Until RS.EOF
            '... the real code is skipped
            
            If number = 2 And choice = 1 Then
                '... the real code is skipped
            End If
    
            If number = 2 And choice = 2 Then
                '... the real code is skipped
            End If
            
            If number = 3 And choice = 3 And subConfigCatId <> -1 Then
                '... the real code is skipped
            End If
            
            ' --- Print main categories
            Response.Write ("<option style=""color:"& color &""" value=""" & RS("category_type_id") & "_0"" " & tempSel & " " & disabled & ">" & RS("name") &  "</option>" &vbCrLf)
            
            If choice <> 3 Then
                ' --- Print sub categories
                RS2.MoveFirst
                If Not RS2.EOF Then
                    Do Until RS2.EOF
                        '... the real code is skipped
                        
                        If catId1 <> -1 And number = 2 And choice = 1 And subCatId1 > 0 Then
                            '... the real code is skipped
                        End If
                        
                        If catId2 <> -1 And number = 2 And choice = 2 And subCatId2 > 0 Then
                            '... the real code is skipped
                        End If
                        
                        ' --- Only print sub categories under a matching category
                        If CLng(RS2("category_type_id")) = CLng(RS("category_type_id")) Then
                            Response.Write ("<option value=""" & RS2("category_type_id") & "_" & RS2("sub_category_type_id") & """ " & tempSelSub & ">  - " & RS2("name") &  "</option>" &vbCrLf)
                        End If
                        RS2.MoveNext
                    Loop
                End If
            End If
            
            '... the real code is skipped
        Loop
    End Sub

    Один параметр числовой. Назовём его number (C) Captain Obvious.
    Второй параметр тоже числовой. Но так как имя number занято, назовём его choice.
    Именованные константы?.. Анти-паттерн «Spaghetti Code»? Не, не слышал…

    wissenstein, 06 Января 2013

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

    +61

    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
    /**
    	 * Convert unix timestamp into: (no leading zeros)
    	 * array( 'day' => x, 'month' => x, 'year' => x, 'hour' => x, 'minute' => x );
    	 * Written into separate static public function to allow for timezone to be used easily
    	 *
    	 * @param	integer	[$unix]	Timestamp
    	 * @return	array 	Date parts
    	 */
        static public function unixstamp_to_human( $unix=0 )
        {
        	$tmp = gmdate( 'j,n,Y,G,i', $unix );
    
        	list( $day, $month, $year, $hour, $min ) = explode( ',', $tmp );
    
        	return array( 'day'    => $day,
        				  'month'  => $month,
        				  'year'   => $year,
        				  'hour'   => $hour,
        				  'minute' => $min );
        }

    IPB 3.x
    Интересно сделали? А как бы сделали PRO :) ?

    111111, 05 Января 2013

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

    +129

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    static int multipart_buffer_eof(multipart_buffer *self TSRMLS_DC)
    {
    	if ( (self->bytes_in_buffer == 0 && fill_buffer(self TSRMLS_CC) < 1) ) {
    		return 1;
    	} else {
    		return 0;
    	}
    }

    nyaknyan, 05 Января 2013

    Комментарии (4)
  6. Куча / Говнокод #12390

    +132

    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
    Программа Елочки
    Сместиться_В(4,11)
    Треугольник
    Треугольник
    Треугольник
    Сместиться_На(6,9)
    Ветки
    Ветки
    Ветки
    Сместиться_На(6,9)
    Треугольник
    Треугольник
    Треугольник
    Сместиться_На(6,9)
    Ветки
    Ветки
    Ветки
    Конец_Программы
    Программа Треугольник
    Опустить_Перо
    Сместиться_На(2,-3)
    Сместиться_На(-4,0)
    Сместиться_На(2,3)
    Поднять_Перо
    Сместиться_На(-2,-3)
    Сместиться_На(2,0)
    Конец_Программы
    Программа Ветки
    Опустить_Перо
    Сместиться_На(2,-3)
    Сместиться_На(-2,3)
    Сместиться_На(-2,-3)
    Сместиться_На(2,3)
    Сместиться_На(0,-3)
    Поднять_Перо
    Конец_Программы

    Лежало в архиве вместе с тем самым могучим интерпретатором. Я аж прослезился.

    Stallman, 05 Января 2013

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

    +63

    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
    package javaapplication2;
    import java.util.*;
    public class JavaApplication2 {
    
        public static void main(String[] args) {
              int temp; byte n;
             
              Scanner in = new Scanner(System.in);
              System.out.print("Введите разрядность искомых чисел: "); n = in.nextByte();
              
              if (n < 1 | n > 5) {
                System.out.println("Всего чисел: 0");
                return;
              }
              
              int i = (int)Math.pow(10, (n - 1)); // i - минимальное число. Пр: 1, 10, 100, 1000, 10000
              int count = 0;
                
              while ( (int)Math.log10(i*2) + 1 == n) { // Цикл выполняется пока кол-во цифр в числе i равно числу n.
                     boolean unqie = false;                             
                     temp = i;
                     int[] g = new int[10];
                     
                     for (int j = 0; j < (n*2); j++) // Цикл выполниться вдвое больше раз, чем разрядность искомых чисел.  
                     { 
                        g[temp % 10]++; 
                        if (g[temp % 10] > 1) { 
                            unqie = true;
                            break;
                        }
                        
                        temp /= 10; // Отбрасываем последнюю проверенную цифру.
                        if (temp <= 0) { // После того, как проверили первое число на уникальность, 
                            temp = i*2; // проверяем второе, которое в 2 раза больше первого.
                        }                           
                     }
                    
                     if ( unqie == false) { // Если число прошло проверку на уникальность, выводим его на экран. 
                      count++;
                      System.out.printf("%s %s \n", i, i*2);
                     }
                 
                 i++;
              }
              System.out.printf("Всего: %s numbers \n", count);           
        }                          
    }

    Моё. Программа выводит те числа, в которых, а также в умноженных на два числах, все цифры уникальные. Только начинаю изучать яву, не бейте, лучше обоссыте.

    Govnocoder#0xFF, 04 Января 2013

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

    −119

    1. 1
    Торм. колодки передние[?(Докум.ТКП_Процент>0,",ост.толщина","")] [?(Докум.ТКП_Процент>0,Докум.ТКП_Процент,"")][?(Докум.ТКП_Процент>0,"мм","")]

    это содержимое одной ячейки таблицы с видом вывода "Шаблон", мало того что автор вынуждает 3 раза обращаться к полю Докум.ТКП_Процент, так ещё и о конкатенации строк видимо ничего не слышал, упрощается до:
    Торм. колодки передние [?(Докум.ТКП_Процент>0,",ост.толщина "+Докум.ТКП_Процент+" мм","")]

    VladC, 04 Января 2013

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

    +125

    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
    <!-- ... -->
    </body>
    </html><noindex>
    <table id="c_add2" name="c_add2" cellpadding="0" cellspacing="0" class="sh0"><tr><td><br></td></tr></table>
    <table id="c_add" name="c_add" cellpadding="0" cellspacing="0" class="sh0 clcart ft11">
    <tr>
    <td width="100%" height="27px" class="c_h"><strong class="fs72">Товар добавлен в корзину</strong></td>
    </tr>
    <tr>
    <td width="100%" height="90px">
    	<table width="100%" cellpadding="2" cellspacing="0" class="fs b fcgr">
    	<tr>
    		<td width="50%" align="right">Товаров в корзине: </td><td> <span id="c_cart" name="c_cart" class="fcz"></span></td>
    	</tr>
    	<tr>
    		<td width="50%" align="right">На сумму: </td><td> <span id="sum_cart" name="sum_cart" class="fcz"></span>&nbsp;р</td>
    	</tr>
    	</table>
    </td>
    </tr>
    <tr>
    <td width="100%" align="center" class="description">Окно будет закрыто через <span name="cl_time" id="cl_time">5</span> секунд</td>
    </tr>
    <tr>
    <td width="100%" align="center">
    <table width="100%" cellpadding="0" cellspacing="0">
    <tr>
    <td width="50%" align="center"><a href="cart.php"><img title="Перейти в корзину" alt="Перейти в корзину" src="img/btn/cartorder.gif" border="0"></a></td>
    <td width="50%" align="center"><a href="#" onclick="clTCart(); return false;"><img border="0" src="img/btn/closewin.gif"></a></td>
    </tr>
    </table>
    </td>
    </tr>
    </table>
    </noindex>

    I love my webmasterz!

    Stallman, 04 Января 2013

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

    +44

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    public function addHeadJS($src){
        $js_tag = '<script language="JavaScript" type="text/javascript" src="/'.$src.'"></script>';
    	if($this->is_ajax) { echo $js_tag; return true; }
    	$this->addHead($js_tag);
        return true;
    }

    Добавляет тег <script> с указанным путем
    @param string $src - Первый слеш не требуется
    @return true

    Govnisti_Diavol, 04 Января 2013

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