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

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

    +135

    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
    /* TODO: make this into something smarter than a linked list */
    typedef struct bunchOfInstances_t {
        ncInstance * instance;
        int count; /* only valid on first node */
        struct bunchOfInstances_t * next;
    } bunchOfInstances;
    
    ncInstance * get_instance (bunchOfInstances **headp)
    {
        static bunchOfInstances * current = NULL;
        
        /* advance static variable, wrapping to head if at the end */
        if ( current == NULL ) current = * headp;
        else current = current->next;
        
        /* return the new value, if any */
        if ( current == NULL ) return NULL;
        else return current->instance;
    }

    raorn, 18 Мая 2010

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

    +135

    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
    #define atfl_calc_opcode_(op) \
    ((op) == (ATFL_OP_PAGE_STORE|ATFL_BUF1|ATFL_PAGE_ERASE) ? 0x83 : (\
    	(op) == (ATFL_OP_PAGE_STORE|ATFL_BUF2|ATFL_PAGE_ERASE) ? 0x86 : (\
    	(op) == (ATFL_OP_PAGE_STORE|ATFL_BUF1|ATFL_PAGE_NO_ERASE) ? 0x88 : (\
    	(op) == (ATFL_OP_PAGE_STORE|ATFL_BUF2|ATFL_PAGE_NO_ERASE) ? 0x89 : (\
    	(op) == (ATFL_OP_PAGE_LOAD|ATFL_BUF1) ? 0x53 : (\
    	(op) == (ATFL_OP_PAGE_LOAD|ATFL_BUF2) ? 0x55 : (\
    	(op) == (ATFL_OP_BUF_READ|ATFL_BUF1) ? 0xD4 : (\
    	(op) == (ATFL_OP_BUF_READ|ATFL_BUF2) ? 0xD6 : (\
    	(op) == (ATFL_OP_BUF_WRITE|ATFL_BUF1) ? 0x84 : (\
    	(op) == (ATFL_OP_BUF_WRITE|ATFL_BUF2) ? 0x87 : (\
    	(op) == (ATFL_OP_PAGE_ERASE) ? 0x81 : (\
    	(op) == (ATFL_OP_PAGE_ERASE|ATFL_PAGE_ERASE) ? 0x81 : (\
    	0)))))))))))))

    Угадайте зачем.

    dmzlj.livejournal.com, 07 Мая 2010

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

    +135

    1. 1
    while( (*(curr_pos++) != 0x0a) && ((UINT)curr_pos - (UINT)buffer < (UINT)length) );

    Ищем новую строку

    dokonvog, 30 Апреля 2010

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

    +135

    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
    // Дефолтный конструктор:
     public Random() 
            : this(Environment.TickCount) {
          }
    
    // Перенаправляемся сюда...
        public Random(int Seed) {
            int ii;
            int mj, mk;
        
            //Initialize our Seed array.
            //This algorithm comes from Numerical Recipes in C (2nd Ed.)
            mj = MSEED - Math.Abs(Seed);

    Очередной "изящный" говнокод в исходниках .NET.
    Говнокод в том, что Environment.TickCount через каждые 24,9 дней возвращает Int32.MinValue, который скормится Math.Abs, который резонно выкинет исключение OverflowException. Вроде бы мелочь, но... Вспомним теперь падение .NET-софта на Лондонской бирже и последующие миллионные убытки. Для загруженных non-stop-серверов непростительно. Хотя в принципе Microsoft аптаймами и не славился :)

    cfdev, 27 Апреля 2010

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

    +135

    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
    private string GetDefaultPolicyNameFromRegistry()
        {
            string registryControlCenterKeyName;
            RegistryKey key;
            try
            {
                if (System.Runtime.InteropServices.Marshal.SizeOf(typeof(IntPtr)) == 8)
                    registryControlCenterKeyName = "SOFTWARE\\Wow6432Node\\xxx\\ControlCenter\\";
                else
                    registryControlCenterKeyName = "SOFTWARE\\xxx\\ControlCenter\\";
    
                key = Registry.LocalMachine.OpenSubKey(registryControlCenterKeyName); ;
    
            }
            catch (Exception ex)
            {
                throw new ArgumentException("Registry open 'ControlCenter' key error: " + ex.Message);
            }
    
           return (string)key.GetValue("DefaultPolicy");
        }

    Замечательно проверили на возможность исключений в ветке реестра с помощью try catch.. И также замечательно вынесли получение нужного значения из try catch
    Как результат - после обновления не открываются две страницы, на которых можно было бы создать, просмотреть и етк нужное значение в реестре. Нормальная работа приложения гарантировано заблокирована.

    Проверка битности системы тоже хорошая)

    eiskalt, 10 Декабря 2009

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

    +135

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    546
    156546652646
    946
    46
    687

    guest, 27 Мая 2009

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

    +134.9

    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
    95. 95
    96. 96
    97. 97
    98. 98
    99. 99
    public Language(string lang)
    {
    if (lang != null)
    {
    if (lang.IndexOf("Afrikaans") > -1) lang = "1078";
    if (lang.IndexOf("Albanian") > -1) lang = "1052";
    if (lang.IndexOf("Arabic") > -1)
    {
    lang = "1025";
    if (lang.IndexOf("Algeria") > -1) lang = "5121";
    if (lang.IndexOf("Bahrain") > -1) lang = "15361";
    if (lang.IndexOf("Egypt") > -1) lang = "3073";
    if (lang.IndexOf("Egypt") > -1) lang = "2049";
    if (lang.IndexOf("Iraq") > -1) lang = "2049";
    if (lang.IndexOf("Jordan") > -1) lang = "11265";
    if (lang.IndexOf("Kuwait") > -1) lang = "13313";
    if (lang.IndexOf("Lebanon") > -1) lang = "12289";
    if (lang.IndexOf("Libya") > -1) lang = "4097";
    if (lang.IndexOf("Morocco") > -1) lang = "6145";
    if (lang.IndexOf("Oman") > -1) lang = "8193";
    if (lang.IndexOf("Qatar") > -1) lang = "16385";
    if (lang.IndexOf("Saudi Arabia") > -1) lang = "1025";
    if (lang.IndexOf("Syria") > -1) lang = "10241";
    if (lang.IndexOf("Tunisia") > -1) lang = "7169";
    if (lang.IndexOf("U.A.E.") > -1) lang = "14337";
    if (lang.IndexOf("Yemen") > -1) lang = "9217";
    }
    if (lang.IndexOf("Armenian") > -1) lang = "1067";
    if (lang.IndexOf("Assamese") > -1) lang = "1101";
    if (lang.IndexOf("Azeri") > -1)
    {
    lang = "2092";
    if (lang.IndexOf("Cyrillic") > -1) lang = "2092";
    if (lang.IndexOf("Latin") > -1) lang = "1068";
    }
    if (lang.IndexOf("Basque") > -1) lang = "1069";
    if (lang.IndexOf("Belarusian") > -1) lang = "1059";
    if (lang.IndexOf("Bengali") > -1) lang = "1093";
    if (lang.IndexOf("Bulgarian") > -1) lang = "1026";
    if (lang.IndexOf("Catalan") > -1) lang = "1027";
    if (lang.IndexOf("Chinese") > -1)
    {
    lang = "2052";
    if (lang.IndexOf("Hong Kong") > -1) lang = "3076";
    if (lang.IndexOf("Macao") > -1) lang = "5124";
    if (lang.IndexOf("PRC") > -1) lang = "2052";
    if (lang.IndexOf("Singapore") > -1) lang = "4100";
    if (lang.IndexOf("Taiwan") > -1) lang = "1028";
    }
    if (lang.IndexOf("Lithuanian") > -1) lang = "2087";
    if (lang.IndexOf("Croatian") > -1) lang = "1050";
    if (lang.IndexOf("Czech") > -1) lang = "1029";
    if (lang.IndexOf("Danish") > -1) lang = "1030";
    if (lang.IndexOf("Divehi") > -1) lang = "1125";
    if (lang.IndexOf("Dutch") > -1)
    {
    lang = "1043";
    if (lang.IndexOf("Belgium") > -1) lang = "2067";
    if (lang.IndexOf("Netherlands") > -1) lang = "1043";
    }
    if (lang.IndexOf("English") > -1)
    {
    lang = "2057";
    if (lang.IndexOf("Australia") > -1) lang = "3081";
    if (lang.IndexOf("Belize") > -1) lang = "10249";
    if (lang.IndexOf("Canada") > -1) lang = "4105";
    if (lang.IndexOf("Caribbean") > -1) lang = "9225";
    if (lang.IndexOf("Ireland") > -1) lang = "6153";
    if (lang.IndexOf("Jamaica") > -1) lang = "8201";
    if (lang.IndexOf("New Zealand") > -1) lang = "5129";
    if (lang.IndexOf("Philippines") > -1) lang = "13321";
    if (lang.IndexOf("South Africa") > -1) lang = "7177";
    if (lang.IndexOf("Trinidad") > -1) lang = "11273";
    if (lang.IndexOf("United Kingdom") > -1) lang = "2057";
    if (lang.IndexOf("United States") > -1) lang = "1033";
    if (lang.IndexOf("Zimbabwe") > -1) lang = "12297";
    }
    if (lang.IndexOf("Estonian") > -1) lang = "1061";
    if (lang.IndexOf("Faeroese") > -1) lang = "1080";
    if (lang.IndexOf("Farsi") > -1) lang = "1065";
    if (lang.IndexOf("Finnish") > -1) lang = "1035";
    if (lang.IndexOf("French") > -1)
    {
    lang = "1036";
    if (lang.IndexOf("Belgium") > -1) lang = "2060";
    if (lang.IndexOf("Canada") > -1) lang = "3084";
    if (lang.IndexOf("France") > -1) lang = "1036";
    if (lang.IndexOf("Luxembourg") > -1) lang = "5132";
    if (lang.IndexOf("Monaco") > -1) lang = "6156";
    if (lang.IndexOf("Switzerland") > -1) lang = "4108";
    }
    if (lang.IndexOf("Macedonian") > -1) lang = "1071";
    if (lang.IndexOf("Galician") > -1) lang = "1110";
    if (lang.IndexOf("Georgian") > -1) lang = "1079";
    if (lang.IndexOf("German") > -1)
    {
    lang = "1031";
    if (lang.IndexOf("Austria") > -1) lang = "3079";
    if (lang.IndexOf("Germany") > -1) lang = "1031";

    Таблица системных языков. http://forum.sources.ru/index.php?showtopic=270133&view=findpost &p=2243892

    TerraGhost, 26 Августа 2009

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

    +134.9

    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
    // Объявлен класс GOSTDocument extends TechDocument ( ввожу в курс дела:) )
    
    public class TechDocument
    {
    
      protected TechDocument(){} //Ибо нефиг
    
      public TechDocument getDocumentA ( Type DocType )
    {
    
            TechDocument tmpl = null;
      switch (DocType)
      {
          case DOCTYPE_GOST : tmpl = (GOSTDocument) new GOSTDocument();
          break;
    // ... Тут еще CASE всякие
          default: tmpl = new TechDocument();
          break;
      }
      return tmpl;
    
    }
    
    }

    Как бы кастинг.:)

    guest, 21 Июля 2009

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

    +134.8

    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
    #include "stdafx.h"
    #include "conio.h"
    #include "time.h"
    #include "stdlib.h"
    #include "windows.h"
    #include <iostream>
    
    
    using namespace std;
    void go()
    { int m[10],maxi,mini,max,min,temp;
    srand(time(NULL));
    for(int i=0;i<10;i++)
    m[i]=rand()%30;
    max=0;
    for(int i=0;i<10;i++)
    {if(m[i]>max) { max=m[i]; maxi=i;};
    }
    
    min=max;
    for(int i=0;i<10;i++)
    {if(m[i]<min) {min=m[i]; mini=i;};
    
    }
    for(int i=0;i<10;i++)
    cout<<m[i]<<endl;
    
    m[maxi],m[mini]=m[mini],m[maxi];
    temp=m[maxi];
    m[maxi]=m[mini];
    m[mini]=temp;
    
    
    cout<<"============"<<endl;
    for(int i=0;i<10;i++)
    cout<<m[i]<<endl;
    
    
    cout<<"alala=="<<max<<endl;
    cout<<"ololo=="<<min<<endl;
    }
    
    int _tmain(int argc, _TCHAR* argv[])
    {
    
    go();
    
    getch();
    
    
    	return 0;
    }

    хе-хе, друг написал , меняет макс и мин элементы местами)

    Bor1k, 02 Февраля 2010

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

    +134.8

    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
    //endExec  - время окончания выполнения операции в миллисекундах
    //startExec  - время окончания выполнения операции в миллисекундах
    //timeInTable - среднее время за которое выполняется операция
    //count  - количество выполненных операций
    //newTime - среднее время выполнения с учётом только что выполненной операции
    
    DateTime startExec = DateTime.Now;
    //выполнение операции
    DateTime endExec = DateTime.Now;
    
                long currentTime = Convert.ToInt64((endExec - startExec).TotalSeconds);
                long timeInTable = report.RptTimeToRun;
                long count = report.RptCountRan;
                long newTime = timeInTable*(count/(count + 1)) + currentTime/(count + 1);

    расчёт среднего времени выполнения операции.
    кто мне скажет где здесь говнокод получит плюсег )))

    Ztranger, 16 Октября 2009

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