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

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

    +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
    static void InitializeRegExGrammar()
            {
                SimpleRegExGrammar[0] = "A->B";
                SimpleRegExGrammar[1] = "A->B|A";
                SimpleRegExGrammar[2] = "B->C";
                SimpleRegExGrammar[3] = "B->C@B";
                SimpleRegExGrammar[4] = "C->D*";
                SimpleRegExGrammar[5] = "C->D";
                SimpleRegExGrammar[6] = "D->(A)";
                SimpleRegExGrammar[7] = "D->a";
                SimpleRegExGrammar[8] = "D->b";
                SimpleRegExGrammar[9] = "D->c";
                SimpleRegExGrammar[10] = "D->d";
                SimpleRegExGrammar[11] = "D->e";
                SimpleRegExGrammar[12] = "D->f";
                SimpleRegExGrammar[13] = "D->g";
                SimpleRegExGrammar[14] = "D->h";
                SimpleRegExGrammar[15] = "D->i";
                SimpleRegExGrammar[16] = "D->j";
                SimpleRegExGrammar[17] = "D->k";
                SimpleRegExGrammar[18] = "D->l";
                SimpleRegExGrammar[19] = "D->m";
                SimpleRegExGrammar[20] = "D->n";
                SimpleRegExGrammar[21] = "D->o";
                SimpleRegExGrammar[22] = "D->p";
                SimpleRegExGrammar[23] = "D->q";
                SimpleRegExGrammar[24] = "D->r";
                SimpleRegExGrammar[25] = "D->s";
                SimpleRegExGrammar[26] = "D->t";
                SimpleRegExGrammar[27] = "D->u";
                SimpleRegExGrammar[28] = "D->v";
                SimpleRegExGrammar[29] = "D->w";
                SimpleRegExGrammar[30] = "D->x";
                SimpleRegExGrammar[31] = "D->y";
                SimpleRegExGrammar[32] = "D->z";
            }

    Пока отправлял, придумал, как лучше сделать =(

    Destiner, 14 Декабря 2014

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

    +132

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    <div class="lfrazrab">
        <div>
            <div class="lfra1"><span>Приёмная</span> 8(123)456-78-90</div>
            <div class="lfra2"><span>Отдел продаж</span> 8(123)456-78-90</div>
        </div>
        <div>
            <img class="daciconhd2" src="/visor.png"> 8(123)456-78-90
            <div class="vxvcdsf">г. ХХХ, ул. ХУZ 10А</div>
        </div>
    </div>

    Сдал веб сайт который делал около нескольки недель. Качество кода было ОК. Сайт видимо взялась допиливать студия http://kiweb.ru/ (т.к. в футере появилась надпись "Сделано студией kiweb.ru"). После некоторого времени меня попросили добавить функционал (за доп. плату), скопировал файлы на локальный сервер и... печаль-беда, добавили куча классов к CSS в формате ".adasadas" (может я их просто не понимаю) и кодировку файлов с отступами (пробелы вместо табов использовали :'( ) попортили.

    TL;DR – они видимо головой стучали по клавиатуре что бы создать такие "чудные" CSS классы :)

    volter9, 08 Декабря 2014

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

    +132

    1. 1
    2. 2
    3. 3
    #ifndef M_PI
    #define M_PI		3.14159265358979323846f	// matches value in gcc v2 math.h
    #endif

    Сишкопроблемы.

    gost, 03 Декабря 2014

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

    +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
    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
    bool bitmap_to_24bit_string(bitmap *bmp, char **str, uint32_t *len)
    {
        if (!bmp || !bmp->pixels)
        return false;
        int I, J;
        uint32_t size = ((bmp->width * 24 + 31) / 32) * 4 * bmp->height;
        rgb24 *pixels = malloc(size);
        if (pixels)
        {
            for (I = 0; I < bmp->height; ++I)
            {
                for (J = 0; J < bmp->width; ++J)
                {
                    pixels[I * bmp->width + J].b = bmp->pixels[I * bmp->width + J].r;
                    pixels[I * bmp->width + J].g = bmp->pixels[I * bmp->width + J].g;
                    pixels[I * bmp->width + J].r = bmp->pixels[I * bmp->width + J].b;
                }
            }
            uint32_t destlen = compressBound(size);
            *str = malloc(destlen);
            if (*str)
            {
                if (compress((Bytef *)*str, (uLongf *)&destlen, (Bytef *)pixels, size) == Z_OK)
                {
                    free(pixels);
                    pixels = NULL;
                    char *b64str;
                    uint32_t b64_len;
                    if (base64encode((const uint8_t *)*str, destlen, &b64str, &b64_len))
                    {
                        free(*str);
                        *str = b64str;
                        *len = b64_len + 2;
                        b64str = malloc(*len);
                        if (b64str)
                        {
                            b64str[0] = 'm';
                            strncpy(&b64str[1], *str, b64_len);
                            free(*str);
                            *str = b64str;
                            (*str)[b64_len + 1] = '';
                            return true;
                        }
                    }
                }
                free(*str);
                *len = 0;
                *str = NULL;
            }
            free(pixels);
        }
        return false;
    }

    Ещё подкину в общую копилку

    Cynicrus, 01 Декабря 2014

    Комментарии (1)
  6. Си / Говнокод #17177

    +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
    LRESULT CALLBACK MainProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
    {
      if (uMsg == WM_CREATE)
      {
        int *lpSBParts;
        int iBorders[3];
        CLIENTCREATESTRUCT ccs;
        DWORD dwClassStyle;
        RECT rcRect;
        HMENU hMenu;
    
        hMainWnd=hWnd;
        hPopupEdit=GetSubMenu(hPopupMenu, MENU_POPUP_EDIT);
        hPopupView=GetSubMenu(hPopupMenu, MENU_POPUP_VIEW);
        hPopupCodepage=GetSubMenu(hPopupMenu, MENU_POPUP_CODEPAGE);
        hPopupOpenCodepage=GetSubMenu(hPopupCodepage, MENU_POPUP_CODEPAGE_OPEN);
        hPopupSaveCodepage=GetSubMenu(hPopupCodepage, MENU_POPUP_CODEPAGE_SAVE);
        hPopupHeadline=GetSubMenu(hPopupMenu, MENU_POPUP_HEADLINE);
    
        hMenu=GetSubMenu(hMainMenu, MENU_FILE_POSITION);
        hMenuRecentFiles=GetSubMenu(hMenu, MENU_FILE_RECENTFILES_4X);
        hMenu=GetSubMenu(hMainMenu, MENU_VIEW_POSITION);
        hMenuLanguage=GetSubMenu(hMenu, MENU_VIEW_LANGUAGE_4X);

    Плотная простынка, спать можно.
    Akelpad.

    gost, 25 Ноября 2014

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

    +132

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    static inline uint64_t eight_bytes_to_uint64(uint8_t *buf) {
        return (uint64_t) four_bytes_to_uint32(buf) << 32 | four_bytes_to_uint32(buf + sizeof(uint32_t));
    }
    
    static inline uint32_t four_bytes_to_uint32(uint8_t *buf) {
        return (uint32_t) two_bytes_to_uint16(buf) << 16 | two_bytes_to_uint16(buf + sizeof(uint16_t));
    }
    
    static inline uint16_t two_bytes_to_uint16(uint8_t *buf) {
        return buf[0] << 8 | buf[1];
    }

    Чё-то вспомнились Schemeовые времена и ФП.

    Buffer overflow исключён на 146%.

    codemonkey, 25 Ноября 2014

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

    +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
    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
    ...
    var word = frame as Word;
    
    var _game = game;
    int couner = 2;
    game.SaveToParse(null);
    
    // fire after save assync
    game.GetParseInstance().FireWhenReadyAsync(() =>
    {
    // spend used iap
    if (word != null && word.CustomWordUsed)
    {
    SpendCustomPhraseByued();
    }
    
    // add game to server
    ParseController.Instance.AddNewGame(_game, _game.IsGameWasContinued() || _game.isGameNew, (error) =>
    {
    if (!string.IsNullOrEmpty(error))
    {
    Debug.LogError("GameController. Error while FinishThatGame: " + error);
    }
    couner--;
    if (couner == 0 && onDone != null)
    {
    CoroutineProcess.Executor.ExecuteInMainThread(() =>
    {
    onDone();
    });
    }
    });
    });
    
    // remove this game from list
    RemoveGameFromGamesList(_game);
    
    // increment games count
    if (!frameContains && _game.gameOwner == parseUser)
    {
    parseUser.IncrementGamesCount();
    }
    
    // save to gallery
    GalleryController.Instance.AddGameToGalery(_game, () =>
    {
    couner--;
    if (couner == 0 && onDone != null)
    {
    onDone();
    }
    });
    
    // finish started game
    game = null;

    Потокобезопасность, замыкания, английский, мьютексы не учи. Код пиши.

    ps. проверка на "couner" не корректно выполнялась, надо было добавить критическую секцию.

    sladkijBubaleh, 24 Октября 2014

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

    +132

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    SqlConnection cmdConnection = GetSKDConnection();
    cmdConnection.Open();
    SqlCommand resetCardCmd = new SqlCommand("UPDATE hPerson SET CurrentCardNr=NULL WHERE PersonalNr='" + pass.Number.TrimStart('0'), cmdConnection);
    resetCardCmd.CommandText = "DELETE FROM bCardData WHERE CardFK=" + (from pf in pass.PassFieldList where pf.FieldTypeName == "radio" select pf).Single().Card.CardNumber;
    resetCardCmd.ExecuteNonQuery();

    Мне кажется, или что то важное точно не произойдет?

    SantePaulinum, 24 Октября 2014

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

    +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
    IEnumerator CalcTimeToEnd()
    		{
    			while (Work.TimeToEnd > 0)
    			{
    				Work.TimeToEnd -= 1;
    				Text timerText = questTimerBg.gameObject.transform.FindChild("Text").GetComponent<Text>();
    				
    				int iHours = 0;
    				int iMunuts = 0;
    				int iSeconds = Quest.TimeToEnd;
    				if (iSeconds > 60)
    				{
    					iMunuts = iSeconds / 60;
    					iSeconds = iSeconds % 60;
    				}
    				if (iMunuts > 60)
    				{
    					iHours = iMunuts / 60;
    					iMunuts = iMunuts % 60;
    				}
    				string strTime = "";
    				if (iHours > 0)
    					strTime = iHours.ToString() + ":";
    				if (iMunuts < 10)
    					strTime += "0"; 
    				strTime += iMunuts.ToString() + ":";
    				if (iSeconds < 10)
    					strTime += "0";
    				strTime += iSeconds.ToString();
    				timerText.text = strTime;
    				yield return new WaitForSeconds(1f);
    			}
    			Work.SetState(EQuestState.eQS_ABORT);
    		}

    перевод времени в текст, на индусском

    govnim, 21 Октября 2014

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

    +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
    37. 37
    Opt("WinTitleMatchMode", 2)             ; нечувствительность к неточным именам заголовков
        WinWaitActive("Total Commander")        ; ждать активации Тотала
        Send("{TAB}")                           ; перейти в соседнюю (от панели, где лежит скрипт) панель
        Send("!^{F12}")                         ; глобал хоткей Ctrl+Alt+F12 Пунто Свитчера = вырубить автопереключение (чтоб не мешал)
        Send("{END}")                           ; перейти в конец списка файлов в Тотале (папок в конце списка точно нет)
        Send("сmd")                            ; вызвать заранее в Тотал-консоли cmd-консоль (у меня Тотал-консоль (sic!) вдруг забастовала насчёт дос-команды move)
        Send("{ENTER}")
        WinWaitActive("cmd.exe")                ; дождаться появления cmd-консоли
        $count = 0                              ; счётчик для цикла-1 в положении "включено"
        Do                                      ; цикл-1
         WinActivate("Total Commander")                 ; повторная активация Тотала
         ClipPut("")                                    ; опустошение буфера
         $namefull = ""                                 ; опустошение переменной памяти, подготовка к циклу-2
         Do                                             ; цикл-2
          Send("{F11}")                                         ; хоткей Тотала F11 = cm_CopyNamesToClip, взять имя файла в буфер
          $namefull = ClipGet()                                 ; заполнить переменную памяти из буфера ("картинка_by_автор-хэш.png")
         Until $namefull <> ""                          ; хреначить цикл-2, пока переменная точно не заполнится
         If StringInStr($namefull, ".") > 0 Then        ; условие-1 если это файл, то
          If StringInStr($namefull, "_by_") > 0 Then            ; условие-2 если этот файл девиантартовский, то
           $nameright = StringSplit ($namefull, "_by_", 1)              ; порвать имя файла на начало и хвост ($nameright[2] = "автор-хэш.png")
           $name = StringSplit ($nameright[2], "-")                     ; у хвоста оторвать кончик (оставив "автор" в name[1])
           WinActivate("cmd.exe")                                       ; активировать cmd-консоль
           $newname = "md " & $name[1] & " & move " & $namefull & " " & $name[1] ; набить цепь из трёх дос-команд на создание папки, перенос картинки в неё
           Send($newname)                                               ; послать эту цепь в cmd-консоль
           Send("{ENTER}")
          Else                                                  ; иначе-2 (напоролся на девиантарт-неформатный файл)
           Send("{UP}")                                                 ; листнуть выше
          EndIf                                                 ; конец условия-2
         Else                                           ; иначе-1 (напоролся на папку)
          $count = 1                                            ; счётчик для цикла-1 в положении "выключено"
         EndIf                                          ; конец условия-1
        Until $count <> 0                       ; хреначить цикл-1, пока не сработает счётчик остановки
        WinActivate("cmd.exe")                  ; активировать cmd-консоль
        Send("exit")                            ; дать команду на выход
        Send("{ENTER}")
        Send("!^{F12}")                         ; врубить автопереключение Пунто Свитчера обратно
        Beep ()                                 ; дать звуковой сигнал

    Скрипт для AutoIt (который сам по себе костыль), который рассортировывает кучу скачанных с девиантарта файлов по папкам. Но КАК он это делает!

    Conner, 17 Октября 2014

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