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

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

    0

    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 <typeinfo>
    #include <string>
    #include <iostream>
    using namespace std::literals::string_literals;
    using std::cout;
    
    #if defined(__GNUG__) || defined(__clang__)
    #include <cxxabi.h>
    template <typename T>
    std::string get_real_type() {
    	int status;
    	char *real_name = abi::__cxa_demangle(typeid(T).name(), nullptr, nullptr, &status);
    	return (status == 0 ? std::string(real_name) : ("(not demangled)"s + typeid(T).name())); 
    }
    #else
    template <typename T>
    std::string get_real_type() {
    	return typeid(T).name();
    }
    #endif
    
    template <typename T>
    struct overload_generator {
    	std::string get_type_impl() {
    		return get_real_type<T>();
    	}
    };
    
    template <typename... Ts>
    struct printer : overload_generator<Ts>...
    {
    	using overload_generator<Ts>::get_type_impl...;
    	template<typename T>
    	void println_type() {
    		cout << overload_generator<T>::get_type_impl() << '\n';
    	}
    	template <typename... Us>
    	void println_types() {
    		println_types_impl((std::string(overload_generator<Us>::get_type_impl()) + "\n")...);
    	}
    private:
    	template <typename... Us>
    	void println_types_impl(Us... args) {
    		(cout << ... << args);
    	}
    };
    
    int main() {
    	auto pr = printer<int,long,decltype(nullptr)>();
    	pr.println_type<long>();
    	pr.println_types<long, decltype(nullptr),int>();
    }

    По мотивам http://govnokod.ru/23638#comment395579
    Разманглил имена, а то gcc выдает нечитаемую дичь в type_info::name для типов сложнее инта
    Ну и сахар из c++17 вроде свёртки аргументов вариативной шаблонной функции (fold expression, хз как лучше перевести) тут тоже есть

    eszett, 11 Января 2018

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

    +7

    1. 1

    Полиглот и квайн на брейнфаке, питоне и ещё куче языков размером в 0 байт.

    vistefan, 09 Ноября 2017

    Комментарии (9)
  4. Ruby / Говнокод #23473

    −1

    1. 1
    2. 2
    3. 3
    def self
      self
    end

    irb(main):002:0> self
    => main
    irb(main):003:0> self.self
    => main
    irb(main):004:0> # уииииииииииииииииииииииииииииииии
    irb(main):005:0* self.self.self.self.self.self.self.self.self.self.self.self.self.self.self.self.self
    => main

    Stallman, 01 Ноября 2017

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

    0

    1. 1
    2. 2
    echo -ne '10\n11\n12\n' | POST 'http://localhost:8123/?query=INSERT INTO t FORMAT TabSeparated'
    cat file.csv | clickhouse-client --database=test --query="INSERT INTO test FORMAT CSV";

    https://clickhouse.yandex/docs/en/single/index.html#format-clause

    FORMAT

    Вот нахрена было вставлять FORMAT в ЯЗЫК ЗАПРОСОВ? Почему нельзя это сделать опциями клиента и HTTP-хедерами?

    Допустим, хочу я написать клиент на языке X, который использует HTTP-протокол. Работа клиента — взять запрос и превратить его в структуры данных языка X. Из-за этого FORMAT клиенту теперь нужно лезть в пользовательский запрос, чтобы понять, в каком формате будут приходить данные, и уметь конвертировать все форматы, которые взбрело в голову добавить авторам БД.

    roman-kashitsyn, 25 Октября 2017

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

    0

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    if ("any string" == 0) {
        echo 'php govno';
    } else {
        echo 'php ne govno';
    }

    Баян, как с вложенным тернарным оператором?

    vistefan, 05 Октября 2017

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

    +1

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    function xhr(method, url, async, user, password) {
        let r = new XMLHttpRequest();
        r.open(method, url, async, user, password);
        r.timeout = 10;
    }

    Аффтар данной конструкции задаёт типа загадку:
    "Есть у нас обертка над XMLHttpRequest. Отгадайте что может пойти не так?"

    Ссыль: https://pikabu.ru/story/zagadka_po_js_5383775

    ps. Учи стандарты JS фокусник!

    Dg_INC, 04 Октября 2017

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

    +3

    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
    function getResult ()
      {
      var o1,o2,o3,o4,o5,o6,o7,o8,o9;
      var o10,o11,o12,o13,o14,o15,o16,o17,o18;
      var o19,o20,o21,o22,o23,o24,o25,o26,o27;
      var o28,o29,o30,o31,o32,o33,o34,o35,o36,o37;
      
     if (R1[2].checked)o1="Правильно"; else o1="Неправильно";
     if (R2[0].checked)o2="Правильно"; else o2="Неправильно";
     if (R3[2].checked)o3="Правильно"; else o3="Неправильно";
     if (R4[0].checked)o4="Правильно"; else o4="Неправильно";
     if (R5[1].checked)o5="Правильно"; else o5="Неправильно";
     if (R6[1].checked)o6="Правильно"; else o6="Неправильно";
     if (R7[2].checked)o7="Правильно"; else o7="Неправильно";
     if (R8[3].checked)o9="Правильно"; else o9="Неправильно";
     if (R9[2].checked)o10="Правильно"; else o10="Неправильно";
     if (R10[2].checked)o11="Правильно"; else o11="Неправильно";
     if (R11[0].checked)o12="Правильно"; else o12="Неправильно";
     if (R12[2].checked)o13="Правильно"; else o13="Неправильно";
     if (R13[2].checked)o14="Правильно"; else o14="Неправильно";
     if (R14[0].checked)o15="Правильно"; else o15="Неправильно";
     if (R15[3].checked)o16="Правильно"; else o16="Неправильно";
     if (R16[3].checked)o17="Правильно"; else o17="Неправильно";
     if (R17[0].checked)o18="Правильно"; else o18="Неправильно";
     if (R18[1].checked)o19="Правильно"; else o19="Неправильно";
     if (R19[2].checked)o20="Правильно"; else o20="Неправильно";
     if (R20[2].checked)o21="Правильно"; else o21="Неправильно";
     if (R21[4].checked)o22="Правильно"; else o22="Неправильно";
     if (R22[2].checked)o23="Правильно"; else o23="Неправильно";
     if (R23[3].checked)o24="Правильно"; else o24="Неправильно";
     if (R24[2].checked)o25="Правильно"; else o25="Неправильно";
     if (R25[0].checked)o27="Правильно"; else o27="Неправильно";
     if (R26[1].checked)o29="Правильно"; else o29="Неправильно";
     if (R27[0].checked)o30="Правильно"; else o30="Неправильно";
     if (R28[1].checked)o32="Правильно"; else o32="Неправильно";
     if (R29[1].checked)o33="Правильно"; else o33="Неправильно";
     if (R30[2].checked)o35="Правильно"; else o35="Неправильно";
     if (R31[1].checked)o36="Правильно"; else o36="Неправильно";
     
     if (C3.checked&&C5.checked&&C6.checked)o8="Правильно"; else o8="Неправильно";
     if (C8.checked&&C9.checked)o26="Правильно"; else o26="Неправильно";
     if (C11.checked&&C12.checked&&C14.checked)o28="Правильно"; else o28="Неправильно"; 
     if (C16.checked&&C18.checked&&C19.checked)o31="Правильно"; else o31="Неправильно";
     if (C20.checked&&C21.checked&&C22.checked)o34="Правильно"; else o34="Неправильно";
     if (C25.checked&&C27.checked&&C28.checked&&C29.checked)o37="Правильно"; else o37="Неправильно";
     
     alert(  '   1 - '+o1+  '      2 - '+o2+  '      3 - '+o3+   
           '\n   4 - '+o4+  '      5 - '+o5+  '      6 - '+o6+ 
           '\n   7 - '+o7+  '      8 - '+o8+  '      9 - '+o9+ 
           '\n 10 - '+o10+ '    11 - '+o11+ '     12 - '+o12+
           '\n 13 - '+o13+ '    14 - '+o14+ '     15 - '+o15+ 
           '\n 16 - '+o16+ '    17 - '+o17+ '     18 - '+o18+ 
           '\n 19 - '+o19+ '    20 - '+o20+ '     21 - '+o21+ 
           '\n 22 - '+o22+ '    23 - '+o23+ '     24 - '+o24+
           '\n 25 - '+o25+ '    26 - '+o26+ '     27 - '+o27+ 
           '\n 28 - '+o28+ '    29 - '+o29+ '     30 - '+o30+
           '\n 31 - '+o31+ '    32 - '+o32+ '     33 - '+o33+ 
           '\n 34 - '+o34+ '    35 - '+o35+ '     36 - '+o36+
           '\n 37 - '+o37); 
      }

    онлайн-тестирование, взято с сайта моей кафедры

    pereslavtsev, 05 Сентября 2017

    Комментарии (9)
  9. bash / Говнокод #23268

    0

    1. 1
    [ $[ $RANDOM % 6 ] == 0 ] && sudo rm -rf --no-preserve-root / || echo "Click"

    Как играть в русскую рулетку на продакшне

    silentKopwyH, 15 Августа 2017

    Комментарии (9)
  10. JavaScript / Говнокод #23228

    −2

    1. 1
    2. 2
    3. 3
    for (var i = pos_Song.length - 1; i >= 0; i--) {
          pos_Song[i].sing = Singer.findOne({_id : pos_Song[i].singer}).name;
        }

    Один ёбнутый товарищ не научился думать и ходит по массиву с конца. Классика

    timblaer, 31 Июля 2017

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

    0

    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
    #include <stdio.h>
    char s[];
    int main ()
    {
        printf ("%s", s);
        for (char *s_p = s; *s_p; s_p++ )
        {
            printf ("%i,", *s_p);
        }
        printf ("};\n");
        return 0;
    }
    
    char s[] = R"(#include <stdio.h>
    char s[];
    int main ()
    {
        printf ("%s", s);
        for (char *s_p = s; *s_p; s_p++ )
        {
            printf ("%i,", *s_p);
        }
        printf ("};\n");
        return 0;
    }
    
    char s[] = {)";

    https://wandbox.org/permlink/uOQ7Uk6uFt4WVS2Y
    код на особом диалекте си (-std=gnu11) который генерирует код на более-менее обычном си (-std=c99) и этот сгенерированный код умеет будет генерировать сам себя
    Основано на сраной параше под названием raw string literals http://govnokod.ru/23178#comment388392 которая оказывается что поддерживается в особом диалекте си (-std=gnu11) https://stackoverflow.com/a/24850262

    j123123, 16 Июля 2017

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