1. Список говнокодов пользователя 3.14159265

    Всего: 150

  2. Си / Говнокод #19051

    −99

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    #if !defined(M_PI)
    # define M_PI (3.141592653589793238462643)
    #endif
    #include <string.h>
    /*Yes, yes, we're going to hell.*/
    #if defined(_WIN32)
    #include <io.h>
    #include <fcntl.h>
    #endif

    коммент доставил.

    3.14159265, 19 Ноября 2015

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

    +144

    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
    Флоат даёт ошибки только тогда, когда он плывёт. 
    На вычислении всяких косинусов он не плывёт - поэтому ошибки там врядли возможны.
    
    Точность не будет падать - её не будет, вместо неё будет округленчиский мусор.
    
    Каким образом у вас это получилось - я не знаю, ибо у меня cos(M_PI_2) = ноль. 2.0f*2.0f = 4.0.
    
    Конпелятор всегда знает, ибо нормальные про-пацаны юзают фичи конпелятора, и умеют писать код. 
    В гцц есть такие штуки - builtin_*() - ими запиленны аналоги самых популярных libc функций. 
    ГГЦ абсалютно точно умеет определять константы - для этого есть свой builtin_constant_p() - 
    который в любом куске кода тебе 100% скажет - константа эта перменная, либо нет.
    
    Дак вот, в гцц даже можно писать так:
    
      static const double cos_pi = cos(M_PI);//глобальная статик-константа, которая в компилтайме инициализируется результатом вызова функции cos(). Это не особо профитно, ибо издревли система констант в Си лютое говно.
    Так же в гцц есть атрибуты, один из которых const - он говорит, что твоя функция не имеет побочных эффектов. 
    И все функции, которые их не имеют - принято так помечать, особенно в glibc и libgcc.
    
    А всё почему? Патамучто их пишут более-менее про-пацаны. 
    Конпелятору не нужно ничего знать - знает программист, который пишет, а конпелятор должен предоставить ему фичи, 
    с которыми он может пилить нормальный код, а не говно. 
    А неосиляторам подавай оптимизиторы, автоматизаторы и прочую ересь, от которой толка нет, а гонору много.

    http://ru.stackoverflow.com/questions/245261/Неправильная-работа-cos
    Как-то я проебал открытие сего быдлятника. Когда читал ответ сходу какое-то знакомое чувство, будто я знаю автора.

    3.14159265, 10 Июля 2015

    Комментарии (77)
  4. C++ / Говнокод #18107

    +148

    1. 1
    2. 2
    //G++ now allows typename in a template template parameter.
        template<template<typename> typename X> struct D; // xzibit.jpeg

    Пятый gcc вышел. Больше крестоблядства за те же деньги.
    https://gcc.gnu.org/gcc-5/changes.html

    3.14159265, 02 Мая 2015

    Комментарии (2)
  5. JavaScript / Говнокод #17323

    +210

    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
    /*
          _31 - числа  начинаются с _
          _Math_sin - глобальные функции тоже
          $abcd - строки начинаются с $ 
          /\ - символ лямбда. Easter egg:можно писать и / для краткости
          САХАР:
           args = arguments
          _ = args[0]     
    */
    
    log("========CALCULATOR EXAMPLE========");
    //*
    handler= makeHandler(chainer());
    var calc = prox(
        {   //imports
            print:function(x){log(x); return x;}
            ,add:function(a,b){ return a+b;}
            ,set:function(x,y){ return y;}
            ,fma:function(a,b,c){
                return a*b+c;
            }        
        }
    );
    calc
        .set[0]
        .add[2]
        .print //2
        .fma[10][5]
        .print //25
        
        .add._3
        .String
        .add._1111
        .print //281111
        
        ._Math_min._1
        ._Math_max._1000
        .print //100
        
        .String
        ._Math_log10
        .add["$ pow 10"]
        .print //3 pow 10
    ;
    //*/
    handler= makeHandler(chainer());
    var linq = prox(
        {   //imports
            set     :function(inner,y){ return y;}
            ,print  :function(x){log(x); return x;}
            ,map    :function(arr,y){ return arr.map(y)}
            ,filter :function(arr,y){ return arr.filter(y)}
            ,sort   :function(arr,comparator){ return arr.sort(comparator)}
            //Imperatii
            ,IF     :function(context,condition,trueBranch,falseBranch){
                return (condition(context)) ? trueBranch(context) : falseBranch(context);
            }
        }
    );
    
    linq
        .set    ["[5,2,1,3,4]"]
        .print//[5, 2, 1, 3, 4]
        .map    ["/\ _ * 3"]
        .print//[15, 6, 3, 9, 12]   
        .filter ["/\ log('filter='+args[0]),args[0]>5"] //несколько операторов в лямбде.
        .print//[6, 9, 12, 15]
        .sort   ["/\ args[0]-args[1]"]
        .map    ["/\ _ - 6"]
        .print//[0, 3, 6, 9]
        .map    ["/\ 2>_ ? 1 : _ * args.callee(_-1)"]   //анонимная рекурсия и факториал
        .print//[1, 6, 720, 362880]
        
        //имперации
        .filter ["/\ _>100"]
        .IF ["/\ _.length===0"][ 
            "/\ log('array is EMPTY!'), _" 
        ][ 
            "/\ log('Not empty:',_), []"         
        ]    //"Not empty:" [720, 362880]
        .IF ["/\ _.length===0"][ 
            "/\ log('EMPTY!'), ['empty','replacement']" 
        ][ 
            "/\ log(_), _"         
        ].print//['empty','replacement']
           
    ;

    Такой вот DSL на свойствах javascript.
    Осторожно! Все трюки выполнены профессионалами. Не пытайтесь повторить это на работе.
    http://jsfiddle.net/y5og4o9q/1/

    3.14159265, 15 Декабря 2014

    Комментарии (18)
  6. JavaScript / Говнокод #17243

    +215

    1. 1
    if (new Boolean(false)) {

    Отвратная вещь этот new.

    3.14159265, 03 Декабря 2014

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

    +1

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    int i=1;
    Console.WriteLine((i+null)==null); //True			
    Console.WriteLine(1+null);             //1
    Console.WriteLine(null+1);             //1
    Console.WriteLine((1+null).GetType()); //System.Int32

    http://ideone.com/LomfRC

    3.14159265, 07 Ноября 2014

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

    +175

    1. 1
    http://www.intel.com/content/dam/www/public/us/en/documents/specification-updates/xeon-e3-1200v3-spec-update.pdf

    http://www.anandtech.com/show/8376/intel-disables-tsx-instructions-erratum-found-in-haswell-haswelleep-broadwelly
    На этот раз мне зогплатила амд, и принёс вам почитать.

    3.14159265, 24 Сентября 2014

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

    +135

    1. 1
    function e(id){ return document.getElementById(id); }

    Бредогенерации тред.

    3.14159265, 17 Сентября 2014

    Комментарии (585)
  10. Python / Говнокод #16358

    −422

    1. 1
    2. 2
    3. 3
    4. 4
    import math
    print math.pow(2,64) //1.84467440737e+19
    print pow(2,64)         //18446744073709551616
    print 2**64               //18446744073709551616

    http://ideone.com/kmGrBa
    http://ideone.com/otSgCP

    Говно в обоих версиях калькулятора.

    3.14159265, 16 Июля 2014

    Комментарии (58)
  11. Java / Говнокод #16150

    +174

    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
    /*Caused by: java.lang.StackOverflowError
        at com.sun.org.apache.xalan.internal.xsltc.dom.SimpleResultTreeImpl.characters(SimpleResultTreeImpl.java)
        at com.sun.org.apache.xalan.internal.xsltc.dom.SimpleResultTreeImpl.copy(SimpleResultTreeImpl.java:438)
        at com.sun.org.apache.xalan.internal.xsltc.runtime.BasisLibrary.copy(BasisLibrary.java:1317)
        at GregorSamsa.replace()
        at GregorSamsa.replace()
        at GregorSamsa.replace()
        at GregorSamsa.replace()
        at GregorSamsa.replace()
      начали разбираться
    */
        /** 
         * As Gregor Samsa awoke one morning from uneasy dreams he found himself
         * transformed in his bed into a gigantic insect. He was lying on his hard,
         * as it were armour plated, back, and if he lifted his head a little he
         * could see his big, brown belly divided into stiff, arched segments, on
         * top of which the bed quilt could hardly keep in position and was about
         * to slide off completely. His numerous legs, which were pitifully thin
         * compared to the rest of his bulk, waved helplessly before his eyes.
         * "What has happened to me?", he thought. It was no dream....
         */
        protected final static String DEFAULT_TRANSLET_NAME = "GregorSamsa";

    http://grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/6-b14/com/sun/org/apache/xalan/internal/xsltc/trax/TransformerFactoryImpl.java
    transofm, factory, bug - какие начитанные разработчки, а.

    3.14159265, 12 Июня 2014

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