1. Си / Говнокод #20900

    +2000

    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
    unsigned int get_spoofed() {
        char spa[21];
        int a, b, c, d;
    
        srand(time(0));
    
        random_ct = rand();
        random_num = ((random_ct % 254) + 1);
        a = random_num;
    
        random_ct = rand();
        random_num = ((random_ct % 254) + 1);
        b = random_num;
    
        random_ct = rand();
        random_num = ((random_ct % 254) + 1);
        c = random_num;
    
        random_ct = rand();
        random_num = ((random_ct % 254) + 1);
        d = random_num;
    
        snprintf(spa, sizeof(spa), "%d.%d.%d.%d", a, b, c, d);
    
        return ((unsigned int)host2ip(spa));
    }

    Ддосбот для роутеров https://github.com/eurialo/lightaidra/blob/master/source/utils.c

    nyaknyan, 20 Августа 2016

    Комментарии (59)
  2. Pascal / Говнокод #20875

    +1873

    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
    function translate_a_name_of_the_winter_to_the_foreign_language(language: String): String;
      begin
        if      language = 'авестийский'    Result := 'zimō'
        else if language = 'белорусский'    Result := 'зіма'
        else if language = 'болгарский'     Result := 'зима'
        else if language = 'верхнелужицкий' Result := 'zyma'
        else if language = 'греческий'      Result := 'χειμώνας'
        else if language = 'древнепрусский' Result := 'semo'
        else if language = 'латинский'      Result := 'hiems'
        else if language = 'латышский'      Result := 'ziema'
        else if language = 'литовский'      Result := 'žiema'
        else if language = 'македонский'    Result := 'зима'
        else if language = 'нижнелужицкий'  Result := 'zyma'
        else if language = 'осетинский'     Result := 'зымӕг'
        else if language = 'польский'       Result := 'zima'
        else if language = 'русский'        Result := 'зима'
        else if language = 'санскрит'       Result := 'hima'
        else if language = 'сербский'       Result := 'зима'
        else if language = 'словацкий'      Result := 'zima'
        else if language = 'словенский'     Result := 'zima'
        else if language = 'талышский'      Result := 'зымыстон'
        else if language = 'таджикский'     Result := 'зимистон'
        else if language = 'украинский'     Result := 'зима'
        else if language = 'хорватский'     Result := 'zima'
        else if language = 'чешский'        Result := 'zima'
      end;

    Из одного очень серьёзного проекта.

    Amayak_Akopyan, 20 Августа 2016

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

    +352

    1. 1
    15000 гет!

    Багровые войны гетам не помеха.

    15k_user_get, 19 Августа 2016

    Комментарии (157)
  4. Python / Говнокод #20869

    +1345

    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
    # Далее перечислены все флаги, с помощью которых выбирается то или иное поведение различных копий сайтов.
    #
    # INSTANCE_SPECIFIC_DJANGO_DEBUG
    #     В какое значение установить DEBUG переменную Джанго (желтые страницы с ошибками 500).
    #     True - показывать желтые страницы (для копий программистов)
    #     False - не показывать (вместо этого показаь 500.html шаблон) - для боевой копии
    #
    # INSTANCE_SPECIFIC_DJANGO_DEBUG_STATIC
    #     Надо ли в Урл Паттернс Джанги добавить media и static и обслуживать их Джангой
    #     True - да, используется для копии сайта программистов
    #     False - нет, используется для демонстрационной и боевой копии
    #     (там nginx обрабатывает статику и STATIC_URL в этом случае будет такой чтобы указывать на nginx)
    
    # Все копии программистов. Что значает эта секция см. комменты чуть выше.
    if INSTANCE_ROOT.startswith('/var/www/elin_800'):
        INSTANCE_SPECIFIC_DJANGO_DEBUG = True
        INSTANCE_SPECIFIC_DJANGO_DEBUG_STATIC = True
    
    # Демонстрационная копия. Что значает эта секция см. комменты чуть выше.
    elif INSTANCE_ROOT == '/var/www/dev.example.ru':
        INSTANCE_SPECIFIC_DJANGO_DEBUG = False
        INSTANCE_SPECIFIC_DJANGO_DEBUG_STATIC = False

    Файл настроек джанги, доставшийся мне от аутсорсера

    defaultvoice, 19 Августа 2016

    Комментарии (5)
  5. Java / Говнокод #20867

    +2009

    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
    KeyFactory keyFactory = new KeyFactory();
    KeyObj keyObj = keyFactory.getKeyObj(wParam);
    keyObj.doStuff();
    
    
    class VK_F11 extends KeyObj {
       boolean val;
       public void doStuff() {
          val = !val;
       }
    }
    
    class VK_F12 extends KeyObj {
       boolean val;
       public void doStuff() {
          val = !val;
       }
    }
    
    class KeyFactory {
       public KeyObj getKeyObj(int param) {
          switch(param) {
             case VK_F11:
                return new VK_F11();
             case VK_F12:
                return new VK_F12();
          }
          throw new KeyNotFoundException("Key " + param + " was not found!");
       }
    }

    Казалось бы, что может быть проще работы с GPIO?

    CYB3R, 19 Августа 2016

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

    +2591

    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
    KeyFactory keyFactory = new KeyFactory();
    KeyObj keyObj = keyFactory.getKeyObj(wParam);
    keyObj.doStuff();
    
    
    class VK_F11 extends KeyObj {
       boolean val;
       public void doStuff() {
          val = !val;
       }
    }
    
    class VK_F12 extends KeyObj {
       boolean val;
       public void doStuff() {
          val = !val;
       }
    }
    
    class KeyFactory {
       public KeyObj getKeyObj(int param) {
          switch(param) {
             case VK_F11:
                return new VK_F11();
             case VK_F12:
                return new VK_F12();
          }
          throw new KeyNotFoundException("Key " + param + " was not found!");
       }
    }

    Казалось бы, что может быть проще работы с GPIO?

    CYB3R, 19 Августа 2016

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

    +1514

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    [151] ns-flow-pair-entry(n,c) ::= ns-flow-pair-yaml-key-entry(n,c)
                                    | c-ns-flow-map-empty-key-entry(n,c)
                                    | c-ns-flow-pair-json-key-entry(n,c)
    [152] ns-flow-pair-yaml-key-entry(n,c) ::= ns-s-implicit-yaml-key(flow-key)
                                               c-ns-flow-map-separate-value(n,c)
    [153] c-ns-flow-pair-json-key-entry(n,c) ::= c-s-implicit-json-key(flow-key)
                                                 c-ns-flow-map-adjacent-value(n,c)
    [154] ns-s-implicit-yaml-key(c) ::= ns-flow-yaml-node(n/a,c) s-separate-in-line?
                                       /* At most 1024 characters altogether */
    [155] c-s-implicit-json-key(c) ::= c-flow-json-node(n/a,c) s-separate-in-line?
                                       /* At most 1024 characters altogether */

    If the “?” indicator is omitted, parsing needs to see past the implicit key to recognize it as such. To limit the amount of lookahead required, the “:” indicator must appear at most 1024 Unicode characters beyond the start of the key. In addition, the key is restricted to a single line.

    Note that YAML allows arbitrary nodes to be used as keys. In particular, a key may be a sequence or a mapping. Thus, without the above restrictions, practical one-pass parsing would have been impossible to implement.


    Столкнулся, значит, с проблемой. ЙАМЛ парсер для Го не может распарсить даже примеры из спецификации.
    Заглянул в исходники - ад и погибель. Копипаста сишного кода из libyaml с косметическими изменениями. Функции по 200+ строк с кучей ифов, регулярками и т.п. Решил заглянуть в спецификацию в надежде, что может можно самому как-то... в спецификации - ад и погибель. Копипаста с грамматическими ошибками, и тьма их. Ну а как дошел до этого места, так сразу и понял, что тут уже делать больше нечего.

    wvxvw, 19 Августа 2016

    Комментарии (23)
  8. PHP / Говнокод #20864

    +452

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    const CHANGE_TYPE_ADD        = 'add';//add elem in groups
        const CHANGE_TYPE_CHANGE    = 'change';//add elem
        const CHANGE_TYPE_RECHANGE    = 'rechange';//edit elem
        const CHANGE_TYPE_EDIT        = 'edit';//delete element from groups
        const CHANGE_TYPE_DEL        = 'del';//delete element

    Кручу-верчу, запутать хочу

    _dk, 19 Августа 2016

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

    −256

    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
    var handler = new HttpClientHandler
    {
        Proxy = usingProxy ? new WebProxy(proxyURI) : null,
        UseProxy = usingProxy,
        UseCookies = true,
        CookieContainer = new CookieContainer()
    };
    
    if (session != null)
    {
        handler.CookieContainer.Add(new Uri(URL), new Cookie("PHPSESSID", session));
    }
    
    using (var client = new HttpClient(handler))
    {
        var content = new FormUrlEncodedContent(postParams);
        var responseTask = client.PostAsync(url, content);
        responseTask.Wait();
    
        var responseStringTask = responseTask.Result.Content.ReadAsStringAsync();
        responseStringTask.Wait();
    
        var cookies = handler.CookieContainer.GetCookies(new Uri(URL));
        session = cookies["PHPSESSID"].Value;
    
        return responseStringTask.Result;
    }

    Синхронный асинхронный код.

    Antibagor_100, 19 Августа 2016

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

    −320

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    string Char2Hex(char ch)
    {
    	StringWriter w = new StringWriter();
    	w.Write("\\u{0:x4}", (int)ch);
    	return w.ToString();
    }

    d_fomenok, 19 Августа 2016

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