1. PHP / Говнокод #12163

    +37

    1. 1
    2. 2
    if (isset($_GET['oneway']))
                $_SESSION['oneway'] = intval($_GET['oneway']) == 1 ? 1 : 0;

    Уточню : надо именно int, а не bool для API сервиса.
    На ум приходят 2 других более красивых способа нормализации. Может и ещё что-то есть.

    kryoz, 21 Ноября 2012

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

    +112

    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
    switch (materialType.MaterialClass)
    {
        case 1:
            xtraTabControl1.SelectedTabPageIndex = 0;
            gridView1.Focus();
            eanSimpleButton.Enabled = true;
            break;
        case 2:
            xtraTabControl1.SelectedTabPageIndex = 1;
            gridView2.Focus();
            eanSimpleButton.Enabled = false;
            break;
        case 3:
            xtraTabControl1.SelectedTabPageIndex = 3;
            gridView4.Focus();
            eanSimpleButton.Enabled = false;
            break;
        default:
            xtraTabControl1.SelectedTabPageIndex = 2;
            gridView3.Focus();
            eanSimpleButton.Enabled = false;
            break;
    }

    Стандартный такой быдло-производственный код.

    В зависимости от магического числа в БД, в поле material_class, показывается один из четырёх гридов. При этом в реальной базе класса 3 вообще нет - это поле принимает значения 1, 2 и NULL.

    someone, 21 Ноября 2012

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

    +150

    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
    (function($) {
      core = {
        verticalOffset: -390,
        horizontalOffset: 0,
        repositionOnResize: true,
        overlayOpacity: 0.2,
        overlayColor: '#ffffff',
        draggable: true,
        send: 'Отправить',
        ok: 'Продолжить',
        close: 'Закрыть',
        save: 'Сохранить',
        cancel: 'Отмена',
        dialogClass: null,
        alert: function(message, title, callback) {
          if( title == null ) title = 'Alert';
          this._show_mess(title, message, null, 'alert', function(result) {
            if(callback) callback(result);
          });
        },
        confirm: function(message, title, callback) {
          if(title == null) title = 'Подтверждение действия';
            this._show_mess(title, message, null, 'confirm', function(result) {
              if(result) callback(result);
            });
        },
        prompt: function(message, value, title, callback) {
          if( title == null ) title = 'Prompt';
            this._show_mess(title, message, value, 'prompt', function(result) {
            if( callback ) callback(result);
          });
        },
        message: function(title){
          if(title == null) title = '';
          this._show_mess(title, '', '', 'message');
        },
        box_close: function() {
          $('#popup_container').fadeOut(200, function(){
            $('#popup_overlay, #popup_container').remove();
          });
        },
        _show_mess: function(title, msg, value, type, callback) {
          if ($('#popup_container').length > 0) {
            $('#popup_overlay, #popup_container').remove();
          }
          var html = "<div id='popup_container'>" +
            "<table>" +
              "<tbody>" +
              "<tr>" +
                "<td class='tl'/><td class='b'/><td class='tr'/>" +
              "</tr>" +
              "<tr>" +
                "<td class='b'/>" +
                "<td class='body'>" +
                  "<div class='popup_title_wrap'><div class='popup_x_button'/><div id='popup_title'/></div>" +
                  "<div id='popup_progress'><img src='/images/progress.gif' alt='Загрузка...' /></div>" +
                  "<div id='popup_content'/>" +
                  "<div id='popup_message'/>" +
                  "<div id='popup_panel'>" +
                    "<span class='ajax-loader'>&nbsp;</span>" +
                    "<div id='popup_info'/>" +
                    "<input id='popup_ok' type='button' class='button_yes' value='" + this.ok + "'/>" +
                    "<input id='popup_cancel' type='button' class='button_no' value='" + this.cancel + "'/>" +
                    "<input id='popup_close' type='button' class='button_no' value='" + this.close + "'/>" +
                  "</div>" +
                "</td>" +
                "<td class='b'/>" +
              "</tr>" +
              "<tr>" +
                "<td class='bl'/><td class='b'/><td class='br'/>" +
              "</tr>" +
              "</tbody>" +
            "</table>" +
          "</div>";
    
          this._overlay('show');
          $('body').append(html);
          $('#popup_panel input').hide();
          if(this.dialogClass) {
            $('#popup_container').addClass(this.dialogClass);
          }
          var pos = (($.browser.msie && parseInt($.browser.version) <= 6 )||(($(window).height()<480)||($(window).width()<700))) ? 'absolute' : 'fixed';
          $('#popup_container').css({
            position: pos,
            zIndex: 999,
            padding: 0,
            margin: 0
          });

    Govnisti_Diavol, 20 Ноября 2012

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

    +21

    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
    //Было:
    int foo()//                              ;
    {                                        ;  
        int a                                ;
        float b                              ; //В правой части старые 
        typedef int testing                  ; //полезные комментарии
        std::cout << "Ho-ho-ho"              ;
        a=0                                  ;
        b=1.0f                               ;
        if (a==b)//                          ;
        {                                    ;
            std::cout <<"Yet another caption";
            std::cout <<"Hi-hi-hi"           ;
            bar()                            ;
                                             ;
        }                                    ;
        using namespace std                  ;
        for (int i =0;i<10;i++)//            ;
        {                                    ;
                                             ;
            std::cout <<"Hello, world!"      ;
            std::cout <<"Yet another line"   ;
        }                                    ;
        return 0                             ;
                                             ;
    }                                        ;
    
    //Кто-то что-то решил поменять
    //Стало:
    int foo()//                              ;
    {                                        ;  
        int a                                ;
        float b                              ; //В правой части старые 
        typedef int testing                  ; //полезные комментарии
        std::cout << "Ho-ho-ho"              ;
        a=0                                  ;
        b=1.0f                               ;
        if (a==b)//                          ;
        {                                    ;
            std::cout <<"Yet another caption";
            std::cout <<"Hi-hi-hi"           ;
            bar()                            ;
                                             ;
        }                                    ;
        double c;
        //Слева комментарии требующие
        //проверки. Wtf???Зачем здесь с???    
        using namespace std                  ;
        for (int i =0;i<10;i++)//            ;
        {                                    ;
                                             ;
            std::cout <<"Hello, world!"      ;
            std::cout <<"Yet another line"   ;
        }                                    ;
        return 6666                             ;
                                             ;
    }                                        ;
    
    //Быстро определили по линии из точек c
    //запятой место в котором произошло изменение.
    //Если согласились с ним восстанавливаем линию.

    Бесплатная распределенная говносистема контроля версий. Git и SVN нервно курят в сторонке.

    igumnovf, 20 Ноября 2012

    Комментарии (41)
  5. JavaScript / Говнокод #12159

    +123

    1. 1
    2. 2
    var EditParameter = eval($('#droppable1').attr("data"));
    var parameter = eval($('#droppable1').attr("data1"));

    А Вам слабо ?!

    Vasiliy, 20 Ноября 2012

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

    +46

    1. 1
    for($i=0;$i<=100;$i++)echo(!$i?$i:($i%3==0&&$i%5==0?'FizzBuzz':($i%3==0?'Fizz':($i%5==0?'Buzz':$i)))).'<br>';

    FizzBuzz - мое решение.

    pkot, 20 Ноября 2012

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

    −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
    -(void) setEditing:(BOOL)editing animated:(BOOL)animate
    {
        if (indexDeleting != nil)
        {
            [[self.tableView cellForRowAtIndexPath:indexDeleting] willTransitionToState:UITableViewCellStateDefaultMask];
    //        if ([self.parentView.delegate sortArrayCount] /*dict array count*/ && [self.parentView.delegate editArrayCount:indexP.section]/*[[[dictArray objectAtIndex:section] valueForKey:@"edit"] count]*/)
    //        {
    //            [self.parentView.delegate setDeleteFlag:indexP value:@"0"];
    //        }        
        }
        indexDeleting = nil;
        isDeleting = NO;
        isEditing = editing;
    	[super setEditing:editing animated:animate];
    	
    	if (self.tableView.editing == editing)
    	{
    		[self.tableView setEditing:!editing animated:NO];
    	}
    	
    	[self.tableView setEditing:editing animated:animate];
    	[self.tableView reloadData];
    }

    По выражению парней, вынужденных поддерживать это месиво, "Это еще образец чистоты и элегантности".

    QuickNick, 20 Ноября 2012

    Комментарии (16)
  8. Си / Говнокод #12156

    +137

    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
    /* ... */
        HWND    mywnd   = NULL;
    /* ... */
    
    #ifdef WIN32
        mywnd = GetForegroundWindow();
        if(GetWindowLong(mywnd, GWL_WNDPROC)) {
            for(i = 1; i < argc; i++) {
                if(verbose_options(argv[i]) < 0) break;
                switch(argv[i][1]) {
                    case 'f': i++;  break;
                    case 'F': i++;  break;
                    case 'L': i++;  break;
                    case 'a': i++;  break;
                    default: break;
                }
            }
            if(i > argc) i = argc;
            i = 3 - (argc - i);
            if(i > 0) {
                fprintf(stderr,
                    "- GUI mode activated, remember that the tool works also from command-line\n"
                    "  where are available various options like folder scanning, filters and so on\n"
                    "\n");
                /* дальше пляски с извлечением параметров из argv */
            }
        }
    #endif

    Наткнулся на утилиту, которая умеет отличать запуск из гуев и из консоли. Полез глядеть, как сделано, а там вот такие чудеса.

    PascalGovno, 20 Ноября 2012

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

    +117

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    data Pitch = Pitch Integer
    
    pitch t o = Pitch (o*12 + t)
    
    freq (Pitch p) = a4 * 2**(i/12) where
    	i = fromIntegral (p - 57)
    	a4 = 440

    Fai, 20 Ноября 2012

    Комментарии (46)
  10. C++ / Говнокод #12154

    +23

    1. 1
    2. 2
    typedef const AbstractParameter ConstAbstractParameter;
    class Parameter: public ConstAbstractParameter{

    GCC это не компилирует, но в 2008 ms vs компилируется без предупреждений. Я это как увидел, так сразу переписал на

    class Parameter: public AbstractParameter{

    А вот теперь я дома и не могу заснуть. Гложет чувство, что я поступил не правильно. Такое чувство как-будто этот const, пусть и не в рамках стандарта С++, но что-то он делал.

    LispGovno, 20 Ноября 2012

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