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

    Всего: 332

  2. C++ / Говнокод #21566

    −17

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    #if !defined(COMPILER_MSVC)
    #define ARRAYSIZE(a)              \
        ((sizeof(a) / sizeof(*(a))) / \
        static_cast<size_t>(!(sizeof(a) % sizeof(*(a)))))
    #endif

    https://github.com/tensorflow/tensorflow/blob/754048a0453a04a761e112ae5d99c149eb9910dd/tensorflow/stream_executor/platform/port.h#L42-L46


    Суть этого говновыражения !(sizeof(a) % sizeof(*(a))) судя по всему в том, чтоб оно становилось нулем, если по каким-то причинам размер массива оказывается не кратен размеру элемента этого массива. И тогда эта макропоебень развернется в деление на ноль. Но как такое вообще может быть?

    j123123, 25 Октября 2016

    Комментарии (22)
  3. C# / Говнокод #21550

    −74

    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
    public static TSource Single<TSource>(this TSource[] array)
            {
                if (array.Length > 1) throw new InvalidOperationException("Sequence contains more than one element");
                return array[0];
            }
            public static TSource Single<TSource>(this List<TSource> array)
            {
                if (array.Count > 1) throw new InvalidOperationException("Sequence contains more than one element");
                return array[0];
            }
            public static TSource First<TSource>(this TSource[] array)
            {
                return array[0];
            }
            public static TSource First<TSource>(this List<TSource> array)
            {
                return array[0];
            }
            public static TSource First<TSource>(this TSource[] array, Func<TSource, bool> condition)
            {
                for (int i = 0; i < array.Length; i++)
                {
                    if (condition(array[i])) return array[i];
                }
                throw new InvalidOperationException("No items match the specified search criteria.");
            }
    
            public static TSource First<TSource>(this List<TSource> array, Func<TSource, bool> condition)
            {
                var len = array.Count;
                for (int i = 0; i < len; i++)
                {
                    if (condition(array[i])) return array[i];
                }
                throw new InvalidOperationException("No items match the specified search criteria.");
    }

    https://github.com/antiufo/roslyn-linq-rewrite/blob/master/RoslynLinqRewrite/Shaman.FastLinq.Sources/FastLinqExtensions.cs#L12


    Зачем тут повторяющиеся функции, отличающиеся только "TSource[]" "List<TSource>" ? В говношарп не завезли аналог плюсовых шаблонов?

    j123123, 24 Октября 2016

    Комментарии (31)
  4. bash / Говнокод #21548

    −72

    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
    You gotta get God to talk! Praise God for something like water springs and press over and over at the command or in a document!
    
    Then, it won't seem so crazy!
    
    Here's a bash shell script to get God to talk.
    
    ----
    
    #!/bin/bash
    
    #This prints ten random words.
    
    echo "$(shuf -n 10 /usr/share/dict/words --random-source=/dev/urandom | tr '\n' ' ')"

    На говнохабре хуиктаймсе https://geektimes.ru/post/281754/ написали про легендарног шизика, создателя легендарной Temple OS, со своим особым встроенным языком HolyC ("священный си"):

    >В системе есть интерфейс командной строки, который реализован оригинально. Дэвис никак не мог запомнить команды bash, а вот синтаксис С/С++ он знал хорошо. Поэтому скрипты пишутся на C, вернее, его модификации. Для своей операционки Дэвис изменил стандартный C и назвал полученное HolyC («святой си»).

    >За исключением низких уровней, где есть язык 64-битного ассемблера, вся система написана на этом HolyC. Он отличается от обычного. Нет main(), всё, что написано, выполняется. Весь код TempleOS JIT-компилируется по запросу. Если набрать #include из командной строки, то указанная программа будет запущена в пространстве имён оболочки.

    >Система напоминает, что это — цифровой оракул. Раньше Дэвис подкидывал монетку и выбирал случайное число, чтобы открыть Библию, прочитать фрагмент и истолковать его. В TempleOS в любом месте нажатие F7 принесёт случайное слово. Если нажать F7 несколько раз, получится вореция фрагмент текста, в котором можно искать смысл. Shift + F7 выдаст фрагмент Библии.

    В вышеозначенном говнокоде приведен код от самого создателя Temple OS, который генерирует вореции позволяет общаться с Богом. Код взят из Его комментария к статье, посвященной портированию какой-то фигни на его Божественную Храм ОС http://blog.jwhitham.org/2015/07/porting-third-party-programs-to-templeos.html

    См такжеhttp://govnokod.ru/20277 http://govnokod.ru/19117

    j123123, 24 Октября 2016

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

    −16

    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
    /*! Brainfuck Update based on Symbol */
    #define BF_UPDATE_SYM($, S, X) JOIN(BF_UPDATE_SYM_, S)($, X)
    #define BF_UPDATE_SYM_R($, X) (INC(BF_IP(X)), INC(BF_DP(X)), BF_IA(X), BF_DA(X))      /*!< Increment Data Pointer             */
    #define BF_UPDATE_SYM_L($, X) (INC(BF_IP(X)), DEC(BF_DP(X)), BF_IA(X), BF_DA(X))      /*!< Decrement Data Pointer             */
    #define BF_UPDATE_SYM_U($, X) (INC(BF_IP(X)), BF_DP(X), BF_IA(X), BF_DATA_INC($, X))  /*!< Increment Item at Data Pointer     */
    #define BF_UPDATE_SYM_D($, X) (INC(BF_IP(X)), BF_DP(X), BF_IA(X), BF_DATA_DEC($, X))  /*!< Decrement Item at Data Pointer     */
    #define BF_UPDATE_SYM_O($, X) (INC(BF_IP(X)), BF_DP(X), BF_IA(X), BF_DA(X))           /*!< Do Nothing (Output as side effect) */
    #define BF_UPDATE_SYM_F($, X) (BF_JUMP_F($, X), BF_DP(X), BF_IA(X), BF_DA(X))         /*!< Conditional Jump Forwards          */
    #define BF_UPDATE_SYM_B($, X) (BF_JUMP_B($, X), BF_DP(X), BF_IA(X), BF_DA(X))         /*!< Conditional Jump Backwards           */
    #define BF_UPDATE_SYM_($, X)  (INC(BF_IP(X)), BF_DP(X), BF_IA(X), BF_DA(X))           /*!< Do Nothing on empty instruction    */
    
    /*! Main Brainfuck loop */
    #define BF_COND($, X) NOT(BF_IS_BLANK(BF_INSTR($, X)))                        /*!< Terminate on end of input          */
    #define BF_MACRO($, X) IF(BF_IS_OUTPUT(BF_INSTR($, X)), CHAR(BF_DATA($, X)))  /*!< Output on O instruction            */
    #define BF_UPDATE($, X) BF_UPDATE_SYM($, BF_INSTR($, X), X)                   /*!< Update based on instruction symbol */
    #define BF_FINALLY($, X)                                                      /*!< Do nothing on termination          */
    #define BF_RECR($, X) JOIN(RECR_D, $)(INC($), BF_COND, BF_MACRO, BF_UPDATE, BF_FINALLY, X)
    
    /*! Empty Data Array - Extend for more Cells */
    #define BF_DATA_EMPTY() (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)

    https://github.com/orangeduck/CPP_COMPLETE/ A Brainfuck interpreter written in the C preprocessor.

    j123123, 19 Октября 2016

    Комментарии (14)
  6. C++ / Говнокод #21425

    −18

    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
    uint64_t ObjectLoadListener::getRelocationAddend(uint64_t LLVMRelocationType,
                                                     uint8_t *FixupAddress) {
      uint64_t Addend = 0;
      switch (LLVMRelocationType) {
      case IMAGE_REL_AMD64_ABSOLUTE:
        Addend = *(uint32_t *)FixupAddress;
        break;
      case IMAGE_REL_AMD64_ADDR64:
        Addend = *(uint64_t *)FixupAddress;
        break;
      case IMAGE_REL_AMD64_REL32:
        Addend = *(uint32_t *)FixupAddress;
        break;
      default:
        llvm_unreachable("Unknown reloc type.");
      }
      return Addend;
    }

    https://github.com/dotnet/llilc/blob/97cf48ea9a3cdf4a2582a95683a74b572f4cfe45/lib/Jit/LLILCJit.cpp#L770-L787

    Надеюсь, мне не нужно объяснять, в чем тут говно?

    j123123, 12 Октября 2016

    Комментарии (142)
  7. Python / Говнокод #21168

    −50

    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
    # my_first_calculator.py by AceLewis
    # TODO: Make it work for all floating point numbers too
    
    if 3/2 == 1:  # Because Python 2 does not know maths
        input = raw_input  # Python 2 compatibility
    
    print('Welcome to this calculator!')
    print('It can add, subtract, multiply and divide whole numbers from 0 to 50')
    num1 = int(input('Please choose your first number: '))
    sign = input('What do you want to do? +, -, /, or *: ')
    num2 = int(input('Please choose your second number: '))
    
    if num1 == 0 and sign == '+' and num2 == 0:
        print("0+0 = 0")
    if num1 == 0 and sign == '+' and num2 == 1:
        print("0+1 = 1")
    if num1 == 0 and sign == '+' and num2 == 2:
        print("0+2 = 2")
    if num1 == 0 and sign == '+' and num2 == 3:
        print("0+3 = 3")
    if num1 == 0 and sign == '+' and num2 == 4:
        print("0+4 = 4")
    if num1 == 0 and sign == '+' and num2 == 5:
        print("0+5 = 5")
    if num1 == 0 and sign == '+' and num2 == 6:
        print("0+6 = 6")
    ...

    https://github.com/AceLewis/my_first_calculator.py/blob/master/my_first_calculator.py оптимизация!

    j123123, 11 Сентября 2016

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

    +1004

    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
    // shit.h :
    
    #if END_SHIT == 0
    bagor++;
      #if BIT0 == 0
        #undef  BIT0
        #define BIT0 1
      #else
        #undef  BIT0
        #define BIT0 0
        #if BIT1 == 0
          #undef  BIT1
          #define BIT1 1
        #else
          #undef  BIT1
          #define BIT1 0
          #if BIT2 == 0
            #undef  BIT2
            #define BIT2 1
          #else
            #undef  BIT0
            #undef  BIT1
            #undef  BIT2
            #define END_SHIT 1
          #endif
        #endif
      #endif
      #include "shit.h"
    #endif
    
    //shit.c
    
    #include <stdio.h>
    
    int main(void) {
      int bagor = 0;
      #define BIT0 0
      #define BIT1 0
      #define BIT2 0
      #include "shit.h"
      printf("bagor = %i\n", bagor);
      return 0;
    }

    http://govnokod.ru/20947#comment348047
    CHayT 3 часа назад # 0
    > нет ни циклов, ни рекурсий

    Можно, думаю, файлы сами в себя инклудить, чем не рекурсия. Не очень понятно, что с этим делать, правда.

    -----

    Но ведь совершенно очевидно, что с этим можно делать. Очередной шедевр макроговна

    j123123, 25 Августа 2016

    Комментарии (46)
  9. C++ / Говнокод #20947

    +2302

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    http://govnokod.ru/20924
    
    Запрашиваемая страница не найдена!
    
    Возможно, её и не было никогда

    http://dump.bitcheese.net/files/pimarut/%D0%93%D0%BE%D0%B2%D0%BD%D0%BE%D0%BA%D0%BE%D0%B4_%2320924_%E2%80%94_C___%E2%80%94_%D0%93%D0%BE%D0%B2%D0%BD%D0%BE%D0%BA%D0%BE%D0%B4.%D1%80%D1%83.html
    но бекап я сделал, так что хуй вам. Я требую продолжения банкета.

    j123123, 24 Августа 2016

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

    +7

    1. 1
    http://dump.bitcheese.net/images/aditoso/sc.png

    Умножение двух трехбитных чисел с применением https://ru.wikipedia.org/wiki/Дешифратор

    Для сравнения - вот умножение через сумматоры https://i.imgur.com/9JCy2D2.png

    j123123, 06 Августа 2016

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

    +7

    1. 1
    https://twitter.com/neuromzan

    Нейросеть научилась писать твиты за Рамзана Кадырова https://nplus1.ru/news/2016/08/05/neurokad
    Вореции

    j123123, 06 Августа 2016

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