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

    В номинации:
    За время:
  2. Куча / Говнокод #27668

    +2

    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
    (* https://coq.inria.fr/library/Coq.Init.Datatypes.html *)
    
    (* Basic boolean operators *)
    
    Definition andb (b1 b2:bool) : bool := if b1 then b2 else false.
    
    Definition orb (b1 b2:bool) : bool := if b1 then true else b2.
    
    Definition implb (b1 b2:bool) : bool := if b1 then b2 else true.
    
    Definition xorb (b1 b2:bool) : bool :=
      match b1, b2 with
        | true, true => false
        | true, false => true
        | false, true => true
        | false, false => false
      end.
    
    Definition negb (b:bool) := if b then false else true.
    
    Infix "||" := orb : bool_scope.
    Infix "&&" := andb : bool_scope.

    На первый взгляд этот ваш Coq (питух) выглядит как очередной ML-язычок.

    j123123, 16 Сентября 2021

    Комментарии (170)
  3. Python / Говнокод #25676

    −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
    def _run(self):
        L.debug('CommentsMonitor started.')
        with requests.Session() as sess:
            bormand = Bormand(sess)
            while True:
                comments = bormand.get_comments()
                if comments is not None:
                    for comment_json in comments:
                        comment = Comment(comment_json)
                        if comment.id not in self.replied_cache and comment.user_id not in self.users_blacklist:
                            task = parse_comment(comment)
                            if task is not None:
                                L.debug('Replying to: ' + str(comment))
                                self.replied_cache.add(comment.id)
                                self.tasks_queue.put(task)
                else:  # comments is None
                    L.warning('Failed to load comments')
                if self._stop_ev.wait(timeout=self.pause_time):
                    break
        L.debug('CommentsMonitor stopped.')

    Какой уровень вложенности )))

    gost, 17 Июня 2019

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

    +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
    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
    : ENUM>  ( -- )  ;
    : <ENUM ( xt n -- )
       BEGIN
          BEGIN
             >IN @  BL WORD DUP C@ 0=
          WHILE
             2DROP  REFILL 0= IF EXIT THEN
          REPEAT
          FIND SWAP ['] ENUM> = AND IF DROP 2DROP EXIT THEN
          >IN !
          2DUP SWAP EXECUTE
          1+
       AGAIN
    ;
    WORDLIST CONSTANT ASSEMBLER
    GET-ORDER ASSEMBLER SWAP 1+ SET-ORDER  DEFINITIONS
    HEX
    VARIABLE 'BYTES
    : B,  ( c -- )  C,  1 'BYTES @ +! ;
    : W,  ( u -- )  DUP B,  8 RSHIFT B, ;
    : DB"  ( "ccc<quote>" -- c-addr u )
       [CHAR] " PARSE SWAP OVER HERE >R HERE SWAP DUP ALLOT CMOVE
       R> SWAP DUP 'BYTES @ +!
    ;
    : W!  ( u addr -- )  2DUP C!  SWAP 8 RSHIFT SWAP 1+ C! ;
    ' CONSTANT 0 <ENUM  AX CX DX BX SP BP SI DI  ENUM>
    ' CONSTANT 0 <ENUM  AL CL DL BL AH CH DH BH  ENUM>
    : MEM  ( u "<spaces>name" -- )  DUP 18 AND 3 RSHIFT >R 7 AND R> 2CONSTANT ;
    ' MEM 0 <ENUM
       [BX+SI]   [BX+DI]   [BP+SI]   [BP+DI]   [SI]   [DI]   [W]      [BX]
       [BX+SI]+B [BX+DI]+B [BP+SI]+B [BP+DI]+B [SI]+B [DI]+B [BP]+B   [BX]+B
       [BX+SI]+W [BX+DI]+W [BP+SI]+W [BP+DI]+W [SI]+W [DI]+W [BP]+W   [BX]+W
    ENUM>
    :NONAME  ( reg1 reg2 -- )  3 LSHIFT OR B, ;
    :NONAME  ( reg off u -- )  ROT 3 LSHIFT OR B, W, ;
    :NONAME  ( reg off u -- )  ROT 3 LSHIFT OR B, B, ;
    :NONAME  ( reg off 6 | reg u -- )
       DUP 6 = IF
          ROT 3 LSHIFT OR B, W,
       ELSE
          SWAP 3 LSHIFT OR B,
       THEN 
    ;
    CREATE MOD , , , ,
    3 CONSTANT REG
    : -- ( opcode "<spaces>name" -- )  CREATE C,   DOES> C@ B, CELLS MOD + @ EXECUTE ;
    ' --  0   <ENUM    ADD<B    ADD<W    ADD>B    ADD>W    ENUM>
    ' --  8   <ENUM    OR<B     OR<W     OR>B     OR>W     ENUM>
    ' --  10  <ENUM    ADC<B    ADC<W    ADC>B    ADC>W    ENUM>
    ' --  18  <ENUM    SBB<B    SBB<W    SBB>B    SBB>W    ENUM>
    ' --  20  <ENUM    AND<B    AND<W    AND>B    AND>W    ENUM>
    ' --  28  <ENUM    SUB<B    SUB<W    SUB>B    SUB>W    ENUM>
    ' --  30  <ENUM    XOR<B    XOR<W    XOR>B    XOR>W    ENUM>
    ' --  38  <ENUM    CMP<B    CMP<W    CMP>B    CMP>W    ENUM>
    ' --  85  <ENUM    TESTB    TESTW    XCHGB    XCHGW
                       MOV<B    MOV<W    MOV>B    MOV>W    ENUM>
    8D -- LEA    0C4 -- LES    0C5 -- LDS
    : -- ( opcode "<spaces>name" -- )  CREATE C,   DOES> C@ B, B, ;
    4  -- AL-ADD     0C  -- AL-OR    14  -- AL-ADC   1C  -- AL-SBB
    24 -- AL-AND     2C  -- AL-SUB   34  -- AL-XOR   3C  -- AL-CMP
    6B -- PUSHB      0A8 -- AL-TEST  0CD -- INT      0EB -- JMP-SHORT
    ' --  70  <ENUM  JO JNO JB JAE JZ JNZ JBE JA JS JNS JP JNP  ENUM>
    ' --  0B0 <ENUM    AL-MOV    CL-MOV    DL-MOV    BL-MOV
                       AH-MOV    CH-MOV    DH-MOV    BH-MOV    ENUM>
    ' --  0E0 <ENUM    LOOPNZ    LOOPZ     LOOP      JCXZ
                       INB       INW       OUTB      OUTW      ENUM>
    : -- ( opcode "<spaces>name" -- )  CREATE C,   DOES> C@ B, W, ;
    5   -- AX-ADD    0D  -- AX-OR     15  -- AX-ADC    1D  -- AX-SBB
    25  -- AX-AND    2D  -- AX-SUB    35  -- AX-XOR    3D  -- AX-CMP
    68  -- PUSHW     0A0 -- MEM>AL    0A1 -- MEM>AX    0A2 -- AL>MEM
    0A3 -- AX>MEM    0A9 -- AX-TEST   0C2 -- RETW      0CA -- RETW-FAR
    0E8 -- CALL      0E9 -- JMP
    ' --  0B8  <ENUM    AX-MOV    CX-MOV    DX-MOV   BX-MOV
                        SP-MOV    BP-MOV    SI-MOV   DI-MOV    ENUM>
    : -- ( opcode "<spaces>name" -- )  CREATE C,   DOES> C@ B, ;
    6   -- ES-PUSH             7   -- ES-POP    0E -- CS-PUSH    16 -- SS-PUSH
    17  -- SS-POP              1E  -- DS-PUSH   1F  -- DS-POP     26 -- ES:
    26  -- DAA                 2E  -- CS:       2F  -- DAS        36 -- SS:
    37  -- AAA                 3E  -- DS:       3F  -- AAS        60 -- PUSHA
    61  -- POPA                64  -- FS:       65  -- GS:        66 -- CHANGE-OP-SIZE
    67  -- CHANGE-ADDR-SIZE    0C3 -- RET       0C9 -- LEAVE      0CB -- RET-FAR
    0CC -- INT3                0CE -- INTO      0CF -- IRET       0F0 -- LOCK
    ' --  40  <ENUM    AX-INC  CX-INC  DX-INC  BX-INC  SP-INC  BP-INC  SI-INC  DI-INC
                       AX-DEC  CX-DEC  DX-DEC  BX-DEC  SP-DEC  BP-DEC  SI-DEC  DI-DEC
                       AX-PUSH CX-PUSH DX-PUSH BX-PUSH SP-PUSH BP-PUSH SI-PUSH DI-PUSH
                       AX-POP  CX-POP  DX-POP  BX-POP  SP-POP  BP-POP  SI-POP  DI-POP
    ENUM>
    ' --  6C  <ENUM    INSB          INSW          OUTSB         OUTSW         ENUM>
    ' --  80  <ENUM    NOP           CX-AX-XCHG    DX-AX-XCHG    BX-AX-XCHG
                       SP-AX-XCHG    BP-AX-XCHG    SI-AX-XCHG    DI-AX-XCHG
                       CBW           CWD                                       ENUM>
    ' --  9B  <ENUM    WAIT      PUSHF     POPF       SAHF       LAHF          ENUM>
    ' --  0A4 <ENUM    MOVSB     MOVSW     CMPSB      CMPSW                    ENUM>
    ' --  0AA <ENUM    STOSB     STOSW     LODSB      LODSW      SCASB  SCASW  ENUM>
    ' --  0D4 <ENUM    AAM       AAD       SALC       XLAT                     ENUM>
    ' --  0EC <ENUM    DX-AL-IN  DX-AX-IN  AL-DX-OUT  AX-DX-OUT                ENUM>
    ' --  0F2 <ENUM    REPNZ     REPZ      HLT        CMC                      ENUM>
    ' --  0F8 <ENUM    CLC       STC       CLI        STI        CLD    STD    ENUM>

    Я вчера упоролся подумал, хуля я как лох пешу форт на асме, ТруЪ фротеры пишут форт на ыорте. И начал я с этого —– я представляю вам единственный и неповторимый говно-фрот-асамблец за авторством моего меня.

    Примерим:

    VARIABLE BYTES
    BYTES 'BYTES !
    CREATE PROG

    9 AH-MOV
    0 DX-MOV HERE 2 -
    21 INT
    4C00 AX-MOV
    21 INT

    DB" Hello, Forth-ASSembler!$" DROP PROG - 100 + SWAP W!

    PROG BYTES @ DUMP


    https://ideone.com/UtN1EZ

    another_fake, 29 Ноября 2018

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

    +51

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    int table[4];
    bool exists_in_table(int v)
    {
        for (int i = 0; i <= 4; i++) {
            if (table[i] == v) return true;
        }
        return false;
    }

    C хабра. Возвращает true для любых чисел. http://ideone.com/bL2vGQ
    Я конечно знаю что такое UB, но этот пример повеселил.

    kipar, 16 Июля 2014

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

    +163

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    } else { ?>
    		  <?=$profile[0]->info_height; ?>
    		  <? } ?></dd>
    		  <? /*РОСТ ВЕС*/ ?>
            <?
    		  //Если профиль девушки, то написать про титьки...

    Знакомый программист очень любит открывать и закрывать php код ;)

    Gary, 26 Октября 2011

    Комментарии (170)
  7. C++ / Говнокод #3342

    +170

    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
    struct Obect: public AbsractPrimitiv
    {
    	float X,Y; 
    	Obect(float x, float y)
    	{
    		X=x;
    		Y=x;
    	};
    	
    	Obect(void)
    	{
    		new(this) Obect(0,0);
    	};
    
    	//...
    	//...
    	//...
    
    private://Требование конвенции. Блок private обязан быть в каждом классе.
    };

    Не вру. Вот вам крест! Написано именно так.

    Говногость, 28 Мая 2010

    Комментарии (170)
  8. Си / Говнокод #25585

    0

    1. 1
    2. 2
    (cell)data += sizeof(cell) - 1;
        (cell)data &= ~(sizeof(cell) - 1);

    Блядь, ёбаный tcc! Другие конпилеры отказываются такое конпилить. Теперь дохуя переписывать.

    Hu3KoypoBHeBblunemyx, 03 Мая 2019

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

    0

    1. 1
    2. 2
    Обнаружен критический баг в "PHP":
    https://habr.com/ru/post/416573/

    Полный список лулзов:
    https://habr.com/ru/post/438582/

    guestinxo, 03 Февраля 2019

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

    +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
    int main()
    {
    	asm(
    		mov eax, 2
    		mov ebx, eax
    		mul eax
    		add eax, ebx
    		mov ecx, 16
    		mov ebx, 8
    		lea ebx, ptr [ebx * 16 + ecx + 1]
    		mov ptr [ebx], eax
    		add ptr [ebx], eax
    	);
     
    	printf("eax: %d\n", eax.value);
    	printf("mem:145 = %d\n", *(int*) &a_memory[145]);
     
        return 0;
    }

    На тему ассемблера в пхп
    https://ideone.com/XK7ZQd

    cykablyad, 22 Августа 2017

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

    +141

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    Расскажу одну говно-историю. Про то как разработчики php, заботятся о финансовом состоянии программистов на этом самом php.
    Есть некая фирма которая купила, информационный продукт у другой и все это работала несколько месяцев на серваке предыдущего владельца.  
    И вот неделю назад бывший владелец сказал съезжайте мне сервер нужен.  Новые владельцы вернее их админ благополучно все перетащил на другой сервер, 
    все вроде запустилось.  Но, что все стало работать не правильно и местами даже перестало.  Админ ебся с этим продуктом до вчерашнего дня, но без результата.  
    В общем  звонит мне такой вечером "Вася выручай не заводится, тебе за работу 50к рублей".   Я аж проснулся, этож блядь целая выплата по ипотеке.   
    В общем стал разбираться, проект в кодировке win 1251. Это меня сразу насторожило. Путем не долгой отладки я увидел, что htmlspecialchars при обработке 
    кириллицы возвращает пустоту.  Загуглив я узнал,  что  php от версии 5.4. по дефолту в htmlspecialchars стал использовать UTF-8, что и убило этот проект.  
    
    Я быстро написал функцию htmlspecialchars_a в которой по дефолту кодировка win-1251,  автозаменой прошелся по проекту. Всё завелось.  
    
    Отдельное спасибо разрабам php. Пусть в следующей версии заменят true/false на  True/False.  Ну или + на -.

    Vasiliy, 23 Апреля 2015

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