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

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

    +153

    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 checkTags(object, numberOfTags) {
        var tags = object.value.split(",");
        var k = tags.length;
        var tmp = new Array();
        for (var i = 0; i < k; ++i) {
            var temp = tags[i].replace(/(^\s+)|(\s+$)/g, '');
            temp = temp.replace(/[\s]{2,}/g, ' ');
            if (temp != '') { // отсеиваем пустые
                temp = temp.toLowerCase(); // переводим в нижний регистр
                // Первую букву в верхний регистр(захотелось мне так!!!)
                temp = temp.match(/(.{1})/g);
                temp[0] = temp[0].toUpperCase();
                temp = temp.join("");
                if (tmp.length > 0 && in_array(temp, tmp)) { // отсеиваем повторяющиеся
                    continue;
                }
                tmp.push(temp);
                if (tmp.length == numberOfTags) { // отсеиваем те что превышат лимит
                    break;
                }
            }
        }
        tags = tmp;
        $('entryTagsLeft').innerHTML = numberOfTags - tags.length;
        object.value = tags.join(', ');
    }

    Функция для проверки меток вводимых пользователем. Убираем лишние пробелы, переводить все символы в нижний регистр, переводит первую букву в верхний, удаляет повторы, отсеивает лишние метки(лимит на количество меток нужен так как они добавляются в цикле) в случае использования

    komprenda, 20 Декабря 2010

    Комментарии (73)
  3. PHP / Говнокод #3587

    +164

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    function banByIP($ip) {
    	$result = mysql_query("SELECT * FROM `" . $GLOBALS['mysql_bans_table'] . "` WHERE `ip` = '" . mysql_real_escape_string($ip) . "' LIMIT 1");
    	while ($ban = mysql_fetch_assoc($result)) {
    		return $ban;
    	}
    }

    Из движка TinyIB.

    telnet, 29 Июня 2010

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

    +1

    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
    (set-logic UF)
    ; https://smtlib.cs.uiowa.edu/logics.shtml
    ; UF for the extension allowing free sort and function symbols 
    
    (set-option :produce-proofs true)
    
    (declare-sort M_wff)
    
    
    ; AND2
    (declare-fun M_a2 (M_wff M_wff) M_wff)
    
    ; AND3
    (declare-fun M_a3 (M_wff M_wff M_wff) M_wff)
    
    
    
    ; (AND2 a b) <=> (AND2 b a)
    
    (assert 
      (forall ( (a M_wff) (b M_wff) )
        (=
          (M_a2 a b)
          (M_a2 b a)
        )
      )
    )
    
    
    
    ; (AND2 a a) <=> a
    
    (assert 
      (forall ( (a M_wff) )
        (=
          (M_a2 a a)
          a
        )
      )
    )
    
    
    
    ; (AND2 a (AND2 b c)) <=> (AND3 a b c)
    
    (assert 
      (forall ( (a M_wff) (b M_wff) (c M_wff) )
        (=
          (M_a2 a (M_a2 b c))
          (M_a3 a b c)
        )
      )
    )
    
    
    
    ; (AND3 a b c) <=> (AND3 b a c)
    
    (assert
      (forall ( (a M_wff) (b M_wff) (c M_wff) )
        (=
          (M_a3 a b c)
          (M_a3 b a c)
        )
      )
    )
    
    
    
    ; IMPL - implication
    (declare-fun M_impl (M_wff M_wff) M_wff)
    
    
    
    ; http://us.metamath.org/ileuni/ax-1.html
    ; Axiom Simp
    ; (IMPL a (IMPL b a)) <=> (AND2 a b)
    
    (assert
      (forall ( (a M_wff) (b M_wff) )
        (=
          (M_impl a (M_impl b a))
          (M_a2 a b)
        )
      )
    )
    
    ...

    Весь код не влазит.

    https://rise4fun.com/Z3/GnfIH
    https://paste.debian.net/hidden/38ef8493/ (запасная ссылка)

    Переписывал Metamath на язык из SMT солверов https://smtlib.cs.uiowa.edu/language.shtml
    Z3 даже умеет доказывать какую-то питушню там.

    j123123, 28 Апреля 2021

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

    +4

    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
    int main()
    {
        using Human = NamedTuple<
            Field<"name", std::string>,
            Field<"age", int>
        >;
        using User = NamedTuple<
            Field<"login", std::string>,
            Field<"password", std::string>
        >;
    
        Human vasya{ "Vasya", 16 };
        vasya.get<"age">() = 17;
    
        User user{ "xXxBaCRHxXx", "p4ssword" };
    
        auto vasyaMerged = mergeNamedTuples(vasya, user);
    
        std::cout << vasyaMerged.get<"name">() << " is " << vasyaMerged.get<"age">() << " years old!" << std::endl;
        std::cout << "Login is " << vasyaMerged.get<"login">() << " and password is " << vasyaMerged.get<"password">() << std::endl;
    }

    Как похорошел C++ при C++20!

    https://wandbox.org/permlink/llpXuy7IOSugtxHo

    PolinaAksenova, 18 Апреля 2021

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

    +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
    include std/socket.e as s
    include std/error.e as err
    
    constant PORT = 5050
    constant BACKLOG = 5
    
    procedure die(object result, sequence action) 
    	printf(2, "Error %d in %s", {result, action})
    	err:crash(action)
    end procedure
    
    procedure ensure_zero(integer result, sequence action)
    	if result != 0 then
    		die(result, action)
    	end if 
    end procedure
    
    function ensure_seq(object result, sequence action)
    	if atom(result) then
    		die(result, action)
    	end if
    	return result
    end function
    
    enum SOCKET, READ, WRITE, ERROR
    constant PHRASE = "Hello from Euphoria\n"
    
    procedure client_proc(sequence socket)
    while 1 do
    		for i = 1 to length(PHRASE) do
    			sequence result = s:select({}, socket, {}, 0, 100)
    			sequence result_s = result[1]
    			if result_s[WRITE] = 1 then
    				s:send(socket, {PHRASE[i]}, 0)
    			end if 
    			task_yield()
    		end for
    end while
    end procedure
    
    constant client_proc_id = routine_id("client_proc")
    
    sequence server = ensure_seq(s:create(s:AF_INET, s:SOCK_STREAM, 0), "create")
    ensure_zero(s:bind(server, "127.0.0.1", PORT), "bind")
    ensure_zero(s:listen(server, BACKLOG), "listen")
    
    while 1 do
    	sequence listen_result = s:select(server, {}, {}, 0, 100)
    	if listen_result[1][READ] = 1 then
    		sequence client = ensure_seq(s:accept(server), "accept")
    		printf(1, "Here comes %s\n", {client[2]})
    		atom task = task_create(client_proc_id, {client[1]})
    		task_schedule(task, {0.5, 0.5})
    	end if
    	task_yield()
    end while

    MAKAKA, 27 Октября 2020

    Комментарии (72)
  7. Go / Говнокод #26841

    0

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    switch platform {
    case "Azure":
    	heartbeat = "500"
    default:
    	heartbeat = "100"
    }

    Инфраструктуру для мимосервисов чай тоже люди пишут.

    https://github.com/openshift/cluster-etcd-operator/blob/release-4.5/pkg/cmd/render/env.go#L52-L81

    [size=8]там еще и табы[/size]

    Fike, 04 Августа 2020

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

    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
    https://hi-tech.mail.ru/review/ajtishniki-razoblachayut-mify-o-sebe/
    
    >>>"Айтишники разоблачают мифы о себе"
    
    >>>"Айтишники могут взломать что угодно"
    
    >>>"Можете что-нибудь взломать?"
    
    >>>"Дмитрий Иванчиков, разработчик SEO-сервиса: «Программисты могут взломать что угодно» — раз в месяц стабильно пишет умник,
    которому надо взломать ВК. Приходится отвечать, что я в душе не знаю, как это делать. Я не криптограф какой-нибудь, а разработчик ПО."
    
    >>>"Александр Буложенко, программист 1С: Это киношный миф. Для того чтобы что нибудь взломать нужно знать как оно устроено и какие
    есть уязвимости. Это интересно далеко не всем, объем информации большой и она периодически устаревает, если говорить о сложных способах
    взлома. Элементарные виды взлома есть и в интернете, с ними может справиться даже школьник."
    
    >>>"Елизавета Тишина, младший инженер: Программист — это программист, а взломщик — это взломщик. Я, например, не имею малейшего понятия
    о том, как пишут инструменты, которые взламывают лицензионные программы, генерируют ключи к ним и т.п. Не нужно забывать о том, что программисты
    как врачи имеют специализацию: один пишет код для встраиваемых систем, другой веб-приложения, третий вообще только анализом данных занимается."
    
    
    
    Они юродствуют или действительно, разрабатывая какой-либо сервис, не представляют, как примерно можно взломать нечто аналогичное? Всегда считал,
    что программист, кругозор которого не ограничен "HTML", "CSS" и "1С", имеет неплохой потенциал наебнуть что-либо, использующее технологию,
    которой он владеет; более того, я уверен, что даже среди постояльцев настоящего сайтика не найдётся ни одного, не имеющего потенциал, а то и опыт
    взлома какого-либо сайта или сервиса.

    KOHTPArEHTTBOEuMAMKu, 27 Июля 2018

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

    +5

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    if (isset($response['initialize'])) {
    	$initialize = $response['initialize'];
    	unset($response['initialize']);
    	$response['initialize'] = $initialize;
    }

    cometchat
    (Как говорится, шаг вперед и два назад)

    slavavitrenko, 29 Августа 2016

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

    +139

    1. 1
    2. 2
    3. 3
    — Здравствуйте, это канал об аниме?
    — Да.
    — Как мне пропатчить KDE2 под FreeBSD?

    laMer007, 04 Июня 2015

    Комментарии (72)
  11. Pascal / Говнокод #17941

    +128

    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
    program st1r;
    uses crt;
    var
    st:string;
    n0,n1,n2,n3,n4,n5,n6,n7,n8,n9,i:integer;
    begin
    clrscr;
    n0:=0; n1:=0; n2:=0; n3:=0; n4:=0;
    n5:=0; n6:=0; n7:=0; n8:=0; n9:=0;
    Write('Введите строку, состоящую из цифр: ');
    Readln (st);
    for i:=1 to length (st) do
    begin
    if Pos('0',st[i])<>0 then n0:=n0+1;
    if Pos('1',st[i])<>0 then n1:=n1+1;
    if Pos('2',st[i])<>0 then n2:=n2+1;
    if Pos('3',st[i])<>0 then n3:=n3+1;
    if Pos('4',st[i])<>0 then n4:=n4+1;
    if Pos('5',st[i])<>0 then n5:=n5+1;
    if Pos('6',st[i])<>0 then n6:=n6+1;
    if Pos('7',st[i])<>0 then n7:=n7+1;
    if Pos('8',st[i])<>0 then n8:=n8+1;
    if Pos('9',st[i])<>0 then n9:=n9+1;
    end;
    
    Writeln ('Количество вхождений в строку из цифр ',st);
    Writeln ('0: ',n0);
    Writeln ('1: ',n1);
    Writeln ('2: ',n2);
    Writeln ('3: ',n3);
    Writeln ('4: ',n4);
    Writeln ('5: ',n5);
    Writeln ('6: ',n6);
    Writeln ('7: ',n7);
    Writeln ('8: ',n8);
    Writeln ('9: ',n9);
    readln(st);
    end.

    студенту было дано задание: "Для каждой цифры '0', '1', ... '9' подсчитать количество их вхождений в строку S".

    shipushek, 06 Апреля 2015

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