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

    В номинации:
    За время:
  2. 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)
  3. Си / Говнокод #25585

    0

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

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

    Hu3KoypoBHeBblunemyx, 03 Мая 2019

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

    +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
    /*
     * Copyright (c) 2008, Oracle and/or its affiliates. All rights reserved.
     * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     *
     * This code is free software; you can redistribute it and/or modify it
     * under the terms of the GNU General Public License version 2 only, as
     * published by the Free Software Foundation.
     *
     * This code is distributed in the hope that it will be useful, but WITHOUT
     * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
     * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
     * version 2 for more details (a copy is included in the LICENSE file that
     * accompanied this code).
     *
     * You should have received a copy of the GNU General Public License version
     * 2 along with this work; if not, write to the Free Software Foundation,
     * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
     *
     * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
     * or visit www.oracle.com if you need additional information or have any
     * questions.
     */
    
    /* @test
       @bug 4890726
       @summary Check the correctness of KOI8_U by comparing to KOI8_R
     */
    
    import java.util.*;
    import static java.lang.Character.UnicodeBlock;
    
    public class UkrainianIsNotRussian {
        private static String decode(byte[] bytes, String encoding) throws Throwable {
            String s = new String(bytes, encoding);
            equal(s.length(), 1);
            check(Arrays.equals(s.getBytes(encoding), bytes));
            return s;
        }
    
        private static void realMain(String[] args) throws Throwable {
            final byte[] bytes = new byte[1];
            int differences = 0;
            for (int i = 0; i < 0xff; i++) {
                bytes[0] = (byte) i;
                final String r = decode(bytes, "KOI8_R");
                final String u = decode(bytes, "KOI8_U");
                if (! r.equals(u)) {
                    differences++;
                    final char rc = r.charAt(0);
                    final char uc = u.charAt(0);
                    final UnicodeBlock rcb = UnicodeBlock.of(rc);
                    final UnicodeBlock ucb = UnicodeBlock.of(uc);
                    System.out.printf("%02x => %04x %s, %04x %s%n",
                                      i, (int) rc, rcb, (int) uc, ucb);
                    check(rcb == UnicodeBlock.BOX_DRAWING &&
                          ucb == UnicodeBlock.CYRILLIC);
                }
            }
            equal(differences, 8);
        }
    
        //--------------------- Infrastructure ---------------------------
        static volatile int passed = 0, failed = 0;
        static void pass() {passed++;}
        static void fail() {failed++; Thread.dumpStack();}
        static void fail(String msg) {System.out.println(msg); fail();}
        static void unexpected(Throwable t) {failed++; t.printStackTrace();}
        static void check(boolean cond) {if (cond) pass(); else fail();}
        static void equal(Object x, Object y) {
            if (x == null ? y == null : x.equals(y)) pass();
            else fail(x + " not equal to " + y);}
        public static void main(String[] args) throws Throwable {
            try {realMain(args);} catch (Throwable t) {unexpected(t);}
            System.out.printf("%nPassed = %d, failed = %d%n%n", passed, failed);
            if (failed > 0) throw new AssertionError("Some tests failed");}
    }

    https://github.com/AdoptOpenJDK/openjdk-jdk11/blob/master/test/jdk/sun/nio/cs/UkrainianIsNotRussian.java

    j123123, 21 Февраля 2019

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

    0

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

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

    guestinxo, 03 Февраля 2019

    Комментарии (169)
  6. 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)
  7. Куча / Говнокод #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)
  8. Куча / Говнокод #15791

    +133

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    Lol = "Lol"
    Put Lol
    Lol1 = "1", Lol2 = "2"
    Put Lol1+Lol2
    Set lol = string
    Lol = "HELLO LOLLED GUYS!"
    Put lol.lowcase
    Lolka="lolka"
    Put lolka.upcase

    Так сказать, новый язык программирования - название не придумал (помогите!!!).
    Результат выполнения программы:

    Lol
    3
    hello lolled guys!
    LOLKA

    Жду комментариев (напишите название для япа).

    Mobac, 19 Апреля 2014

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

    0

    1. 1
    Как вы думаете, что может делать функция getAlabamaTimezone(now: Date) ?

    JaneBurt, 25 Ноября 2021

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

    −1

    1. 1
    https://habr.com/post/417047/

    Гвидо уходит напитон из питона

    guestinxo, 13 Июля 2018

    Комментарии (168)
  11. C# / Говнокод #20267

    +3

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    Оффтоп
    
    Пишу либу для гуя в консоли. Столкнулся с проблемой медленного вывода в консоль на линуксе.
    На винде есть няшный WriteConsoleOutput, который может вывести буфер разом на консоль, в линупсе ничего подобного не нашел.
    Если использовать Console.WriteLine или libc-шный puts, все лагает неимоверно
    
    Есть идеи?

    cykablyad, 24 Июня 2016

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