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

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

    −83

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    public class XXX
    {
        private Object m_ForLock = new object();
        private String m_Path = "";
        public XXX(String Path)
        {
            lock (m_ForLock)
            {
                 m_Path = Path;
            }
         }
    }

    BlackMonolit, 15 Апреля 2011

    Комментарии (12)
  3. Куча / Говнокод #6308

    +143

    1. 1
    2. 2
    3. 3
    <div class="menu_bit" onclick="location.href="index.php?page=teachers"">
    	Преподаватели
    </div>

    Сайт университетской кафедры. Ну и ладно! я сделаю свой <a> с джаваскриптом и дивами.

    SevInf, 11 Апреля 2011

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

    +158

    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
    94. 94
    #ifndef _header_hpp_included_
    #define _header_hpp_included_
     
    #include <iostream>
    #include <cstdio>
    #include <boost/bind.hpp>
    #include <boost/asio.hpp>
    #include <boost/thread.hpp>
    #include <boost/lexical_cast.hpp>
     
    enum { recv_buffer_size = 13 };
    enum { send_buffer_size = 13 };
     
    volatile size_t counter = 0;
     
    void client_readed(
       boost::asio::ip::tcp::socket&,
       char*,
       FILE*,
       const boost::system::error_code&
    );
     
    void client_read(
       boost::asio::ip::tcp::socket& sock,
       FILE* out
    ) {
       char* buf = new char[recv_buffer_size];
       boost::asio::async_read(
          sock,
          boost::asio::buffer(buf, recv_buffer_size),
          boost::bind(
             &client_readed,
             boost::ref(sock),
             buf,
             out,
             boost::asio::placeholders::error));}
     
    void client_readed(
       boost::asio::ip::tcp::socket& sock,
       char* buf,
       FILE* out,
       const boost::system::error_code& e) {
       if ( e ) {
          if ( !counter ) return;
          std::cout << "read handler: " << e.message() << std::endl;
          return;
       }
        fwrite(buf, recv_buffer_size, 1, out);
        counter--;
     
    #ifdef _my_debug_
       printf("client_readed(): %s", buf);
       fflush(stdout);
    #endif
     
       static size_t idx = 0;
       size_t tmp = 0;
       char* p = strchr(buf, ':');
       if ( p ) {
          p++;
          sscanf(p, "%8d", &tmp);
       } else
          throw std::runtime_error("input data error!");
       delete[] buf;
       if ( idx != tmp ) {
          std::ostringstream os;
          os << "read error. expected " << idx << " get " << tmp;
          throw std::runtime_error(os.str());
       }
       idx++;
       client_read(sock, out);
    }
     
    void writen(
       char*,
       FILE*,
       const boost::system::error_code&
    );
     
    void start_write(
       boost::asio::ip::tcp::socket& sock,
       char* buf,
       FILE* out) {
       counter++;
       boost::asio::async_write(
          sock,
          boost::asio::buffer(buf, send_buffer_size),
          boost::bind(
             &writen,
             buf,
             out,
             boost::asio::placeholders::error) 
        ); 
    }

    qbasic, 08 Апреля 2011

    Комментарии (12)
  5. Куча / Говнокод #6255

    +146

    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
    <table cellspacing="0" id="captcha"><tbody><tr><td><table cellspacing="0">
    <tbody><tr>
    <td class="fill"><div> </div></td>
    <td class="fill"><div> </div></td>
    <td class="fill"><div> </div></td>
    </tr><tr>
    <td><div> </div></td>
    <td><div> </div></td>
    <td class="fill"><div> </div></td>
    </tr><tr>
    <td><div> </div></td>
    <td class="fill"><div> </div></td>
    <td><div> </div></td>
    </tr><tr>
    <td class="fill"><div> </div></td>
    <td><div> </div></td>
    <td><div> </div></td>
    </tr><tr>
    <td class="fill"><div> </div></td>
    <td><div> </div></td>
    <td><div> </div></td>
    </tr>
    </tbody></table>
    </td><td><table cellspacing="0">
    <tbody><tr>
    <td class="fill"><div> </div></td>
    <td class="fill"><div> </div></td>
    <td class="fill"><div> </div></td>
    </tr><tr>
    <td class="fill"><div> </div></td>
    <td><div> </div></td>
    <td class="fill"><div> </div></td>
    </tr><tr>
    <td class="fill"><div> </div></td>
    <td class="fill"><div> </div></td>
    <td class="fill"><div> </div></td>
    </tr><tr>
    <td class="fill"><div> </div></td>
    <td><div> </div></td>
    <td class="fill"><div> </div></td>
    </tr><tr>
    <td class="fill"><div> </div></td>
    <td class="fill"><div> </div></td>
    <td class="fill"><div> </div></td>
    </tr>
    </tbody></table>
    </td><td><table cellspacing="0">
    <tbody><tr>
    <td class="fill"><div> </div></td>
    <td class="fill"><div> </div></td>
    <td class="fill"><div> </div></td>
    </tr><tr>
    <td class="fill"><div> </div></td>
    <td><div> </div></td>
    <td><div> </div></td>
    </tr><tr>
    <td class="fill"><div> </div></td>
    <td class="fill"><div> </div></td>
    <td class="fill"><div> </div></td>
    </tr><tr>
    <td><div> </div></td>
    <td><div> </div></td>
    <td class="fill"><div> </div></td>
    </tr><tr>
    <td class="fill"><div> </div></td>
    <td class="fill"><div> </div></td>
    <td class="fill"><div> </div></td>
    </tr>
    </tbody></table>
    </td><td><table cellspacing="0">
    <tbody><tr>
    <td class="fill"><div> </div></td>
    <td class="fill"><div> </div></td>
    <td class="fill"><div> </div></td>
    </tr><tr>
    <td><div> </div></td>
    <td><div> </div></td>
    <td class="fill"><div> </div></td>
    </tr><tr>
    <td class="fill"><div> </div></td>
    <td class="fill"><div> </div></td>
    <td class="fill"><div> </div></td>
    </tr><tr>
    <td><div> </div></td>
    <td><div> </div></td>
    <td class="fill"><div> </div></td>
    </tr><tr>
    <td class="fill"><div> </div></td>
    <td class="fill"><div> </div></td>
    <td class="fill"><div> </div></td>
    </tr>
    </tbody></table>
    </td></tr></tbody></table>

    Реализация капчи на сайте http://rus.in.ua/
    class="fill" - чёрный фон
    Парсить HTML в автоматическом режиме ещё проще, чем картинки распознавать.

    chubatyj, 06 Апреля 2011

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

    +171

    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
    ...
    
    bool GameLocations::checkButtonsEnabled() const
    {
    	GameClassT& gc = GameClass::instance();
    	return
    		!gc.getCurrentLocationPopup() &&
    		!gc.getHud().getCurrentWindowFore() &&
    		!gc.isMenuOpen() &&
    		!gc.isEndOfDay() &&
    		!GameClass::instance().isMouseConsumedThisFrame();
    }
    
    ...
    
    void LocationPopupBase::update(float dt)
    {
    	...
    
    	const bool inputEnabled =
    		m_isActive &&
    		!m_talentUsedWindowActive &&
    		!m_dialogueManager.isVisible() &&
    		!GameClass::instance().getHud().getCurrentWindowBack() &&
    		!GameClass::instance().getHud().getCurrentWindowFore() &&
    		(!m_currentAction ||
    		 ((*m_currentActionPhase == AP_Finalize) && !m_currentAction->m_immediateFinalize)) &&
    		 m_actionSequenceCallbacks.empty();
    
    	setInputEnabled(inputEnabled);
    }
    
    ...

    Вот во что со временем превращаются игровые проекты, в которых нет никакой стейт-машины или хоть какого-нибудь её аналога.

    Это - только вершина айсберга. Разнообразные (старые и новые) баги обработки ввода постоянно появляются из ниоткуда, исчезают в никуда, а фиксить их приходится минимум по пять раз в неделю.

    Kirinyale, 06 Апреля 2011

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

    +161

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    $query = 'SELECT `views` FROM `'.PREFIX.'_newsi` WHERE `id` = '.$item["id"];			
    $result = $kernel->runSQL($query);
    $count;
    if (mysql_num_rows($result)) {
        $count = mysql_result($result,"views");				
        $query = 'UPDATE `'.PREFIX.'_newsi` SET `views` = "'.++$count.'" WHERE `id` ='.$item["id"];
        $kernel->runSQL($query);
    }

    Увеличиваем счетчик количества просмотров новости

    gorky, 05 Апреля 2011

    Комментарии (12)
  8. Куча / Говнокод #6175

    +113

    1. 1
    Говнокод поломался. Гуесты теперь везде.

    Vasiliy, 01 Апреля 2011

    Комментарии (12)
  9. PHP / Говнокод #6100

    +149

    1. 1
    $txt['aeva_gallery'] = isset($txt['aeva_gallery']) ? $txt['aeva_gallery'] : 'Media';

    Кусочек языкового файла модуля медиагалереи

    prodigy, 27 Марта 2011

    Комментарии (12)
  10. bash / Говнокод #6070

    −126

    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
    #!/bin/bash
    
    sed -e 's/й/y/g' -i $1
    sed -e 's/ц/c/g' -i $1
    sed -e 's/у/u/g' -i $1
    sed -e 's/к/k/g' -i $1
    sed -e 's/е/e/g' -i $1
    sed -e 's/н/n/g' -i $1
    sed -e 's/г/g/g' -i $1
    sed -e 's/ш/sh/g' -i $1
    sed -e 's/щ/sch/g' -i $1
    sed -e 's/з/z/g' -i $1
    sed -e 's/х/h/g' -i $1
    sed -e 's/ф/f/g' -i $1
    sed -e 's/ы/i/g' -i $1
    sed -e 's/в/v/g' -i $1
    sed -e 's/а/a/g' -i $1
    sed -e 's/п/p/g' -i $1
    sed -e 's/р/r/g' -i $1
    sed -e 's/о/o/g' -i $1
    sed -e 's/л/l/g' -i $1
    sed -e 's/д/d/g' -i $1
    sed -e 's/ж/j/g' -i $1
    sed -e 's/э/e/g' -i $1
    sed -e 's/я/ya/g' -i $1
    sed -e 's/ч/ch/g' -i $1
    sed -e 's/с/s/g' -i $1
    sed -e 's/м/m/g' -i $1
    sed -e 's/и/i/g' -i $1
    sed -e 's/т/t/g' -i $1
    sed -e 's/б/b/g' -i $1
    sed -e 's/ю/yu/g' -i $1

    Перевод в английские буквы

    AliceGoth, 23 Марта 2011

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

    +134

    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
    /// <summary>
            /// попытка парсинга потока в bool {true,false,1,0} поддерживатеся любой регистр 
            /// </summary>
            /// <param name="lpwcstr">указатель текущую позицию потока</param>
            /// <param name="result">результат</param>
            /// <returns>см. ParseSucces</returns>
            static public ParseSuccess TryParse(ref char* lpwcstr, out bool result)
            {
                char* cur = lpwcstr;
            to_begin:
                switch (*cur++)
                {
                    case ' ':
                    case '\t':
                    case '\n':
                    case '\r':goto to_begin;
                    case '0': lpwcstr = cur; goto to_fail;
                    case '1': lpwcstr = cur; result = true; return ParseSuccess.Success;
                    case 't':
                    case 'T':
                        switch (*cur++)
                        {
                            case 'r':
                            case 'R': switch (*cur++)
                                {
                                    case 'u':
                                    case 'U': switch (*cur++)
                                        {
                                            case 'e':
                                            case 'E': lpwcstr = cur; result = true; return ParseSuccess.Success;
                                            default: result = false; return (ParseSuccess)(lpwcstr - cur + 1);
                                        }
                                    default: goto to_fail;
                                }
                            default: goto to_fail;
                        }
                    case 'f':
                    case 'F': switch (*cur++)
                        {
                            case 'a':
                            case 'A': switch (*cur++)
                                {
                                    case 'l':
                                    case 'L': switch (*cur++)
                                        {
                                            case 's':
                                            case 'S': switch (*cur++)
                                                {
                                                    case 'e':
                                                    case 'E': lpwcstr = cur; result = false; return ParseSuccess.Success;
                                                    default: goto to_fail;
                                                }
                                            default: goto to_fail;
                                        }
                                    default: goto to_fail;
                                }
                            default: goto to_fail;
                        }
                    default: goto to_fail;
                }
            to_fail:
                result = false; 
                return (ParseSuccess)(lpwcstr - cur + 1);
            }

    FMB, 23 Марта 2011

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