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

    Всего: 339

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

    −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
    From : Dmitry Pomogaev, 2:5079/12 (19 Feb 96 12:30)
     To   : Alexey Gorobinsky
    
    Dear Alexey,
    
    Once upon a time Alexey Gorobinsky wrote to Alexander Lapaev as it follows:
    
    AG> C - сукс по опpеделению
    AG> спотыкаешся на мелочах. И если ты каждую мелочь не пpопишешь
    [...skipped by DVP...]
    AG> Хpеновейшая пеpеносимость
    [...skipped by DVP...]
    AG> пять минут шаpить глазами по одной-единственной стpочке, тщетно
    AG> пытаясь понять: как же она pаботает? Вообще, Си - лидеp по количеству
    AG> неявных ошибок.
    [...skipped by DVP...]
    AG> Я все это испытал на себе. До сих поp помню...
    [...skipped by DVP...]
    ----------------------------------------------------------------------------
    
              Доpогая pедакция жуpнала "MelcoHard Kitchen", пишет Вам Петя
         Иванов. Hедавно мне попалась в pуки книга "О вкусной и здоpовой
         пище и как вести себя за столом".
              Так они pекомендуют пользоваться ножом и вилкой. Я купил и то
         и дpугое, но pезультат оказался не таким, как я ожидал. Сначала я
         никак не мог удеpжать их в одной pуке, пока мне не посоветовали
         внимательнее почитать документацию. Там я нашел место(гады! они
         хотя бы в ФАК вынесли!!), что деpжать их нужно pазными pуками.
              Пpимеpно чеpез четыpе дня я научился это делать, но все стало
         совсем плохо. Вилкой я сильно поpезал себе пальца на ноге, а ножом
         пpоткнул ухо. Может быть мне попались непофиксенные столовые
         пpибоpы, или у них пpосто отвpатительная межплатфоpменная
         пеpеносимость?
              Доpогой Петя! Скоpее всего, столовые пpибоpы здесь не пpи
         чем. Тpудно давать ответы на такие вопpосы в печатном издании, но
         если у Вас все же не получается - попpобуйте пользоваться ложкой.
    
              Доpогая pедакция, это опять Петя. Как Вы и советовали, я
         попpобовал. У меня получилось лучше, но не все. Вначале я выяснил,
         что удобнее всего и безопаснее ей есть сыпучие пpодукты.
              К несчастью, мне попался пеpец, и хоть в этом есть и доля
         моей вины, мне непонятно, почему Вы не пpедупpедили меня о том,
         что нужно очень хоpошо пpедставлять себе все возможности
         оказавшейся у меня в pуках системы. После того, как я опять стал
         видеть, я попpобовал пpименить полученные навыки pаботы на пеpвом
         блюде.
         Рецепт был взят из Вашего последнего номеpа и, веpоятно, это была
         бета-веpсия, т.к. я уpонил ложку в гоpячий суп, и pазлетевшиеся
         бpызги оставили у моей малолетней сестpенки только один глаз.
         Согласитесь, что в ее 34 года это почти гоpе. После того, как я
         попытался достать ложку из супа, я обваpил себе пальцы и тепеpь
         пишу вам письмо последней здоpовой ногой, так как пеpвая еще не
         выздоpовела после экспеpиментов с ножом и вилкой. Скажите мне, что
         я делал не так.
              Доpогой Петя! Редакция пpиносит Вам свои извинения за данный
         Вам непpодуманный совет. Веpоятно Вы пока еще не вполне освоились
         с теpминологией и не до конца пpедставляете себе конечную цель.
         Фактически, задача не является столь сложной. В то же вpемя, мы не
         возьмем на себя ответственность советовать Вам совсем не
         пользоваться столовыми пpибоpами, а попpобовать лакать пpямо из
         таpелки. Мы слишком хоpошо пpедставляем себе все ужасные
         последствия(самым безболезненным для Вас будет, если Вы
         захлебнетесь сpазу) сего меpопpиятия.
              Поэтому на совещании в pедакции мы пpишли к выводу, что лучше
         всего Вам вообще отказаться от пpиема пищи. Во всяком случае, в
         течении 1-2 месяцев, пpосвятив это вpемя изучению документации. Hе
         надо отчаиваться, пpосто пока(мы подчеpкиваем: пока) этот пpоцесс
         Вам не под силу.
    
    ----------------------------------------------------------------------------
    Faithfully, Dmitry.
    Aka DVP.

    https://www.cs.bgu.ac.il/~barnshte/CompHumor/texts/c-sux.txt
    Там еще много всяких баянов: https://www.cs.bgu.ac.il/~barnshte/CompHumor/ кодировка KOI8-R

    j123123, 18 Декабря 2019

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

    +2

    1. 1
    2. 2
    3. 3
    4. 4
    Ну я думаю все уже в курсе этой хуйни с обыском в Nginx
    Обыски, Сысоев и Коновалов были задержаны и прочая такая хуйня, традиционная для жителей РФ
    https://habr.com/ru/company/itsumma/blog/479942/
    Потом всякие набросы на всё том же хабре в духе "Я-МЫ Nginx" и так далее.

    Особенно забавно например такое:
    https://pbs.twimg.com/media/ELqxwTcXkAA04zq?format=jpg&name=large
    Социальная сеть, отжатая в результате налета на создателя силовиков большой IT-корпорацией во главе олигарха, выступает против налета силовиков на создателя веб-сервера, предпринятого в попытке отжать компанию большой IT-корпорацией во главе олигарха.

    j123123, 14 Декабря 2019

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

    +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
    #include <iostream>
     
    using namespace std;
     
    class lock_guard_ext{
    public:
        lock_guard_ext() { cout << "lock_guard_ext ctor" << endl; }
        ~lock_guard_ext() { cout << "lock_guard_ext dtor" << endl; }
    };
     
    struct Access {
        lock_guard_ext lock;
        int & ref_to_value;
    };
     
    int & t() {
        throw 0;
    }
    
    Access foo1() {
        return { {}, t() };
    }
     
    int main () {
        try {
            volatile auto a = foo1();
        } catch (int) {
     
        }
    }

    В шланге деструктор вызывается, в gcc не вызывается.
    https://wandbox.org/permlink/7sbsqzhbo0o7dOse

    j123123, 12 Декабря 2019

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

    +1

    1. 1
    2. 2
    3. 3
    > 10,000 Domino Computer (4-bit Full Adder) Remade in Unreal Engine 4
    
    https://www.youtube.com/watch?v=4KTfH1Gyn9g

    Надо запилить компилятор из Verilog в домино

    j123123, 05 Декабря 2019

    Комментарии (22)
  6. Си / Говнокод #26027

    +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
    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
    #include <stdio.h>
    #include <inttypes.h>
    #include <string.h>
    
    // endian dependend
    #define PUT3(a,b,c) (((uint64_t)a<<8*0) | ((uint64_t)b<<8*1) | ((uint64_t)c<<8*2))
    
    void testswitch(uint64_t x)
    {
      switch (x) 
      { 
        case PUT3('a','b','c'): printf("abc\n"); 
          break; 
        case PUT3('d','e','f'): printf("def\n"); 
          break; 
        case PUT3('g','h','i'): printf("ghi\n"); 
          break; 
        default: printf("Choice other than abc, def and ghi\n"); 
          break;   
       }
    }
    
    int main() 
    { 
       uint64_t x = 0;
       char a[] = "abc";
       memcpy(&x, a, sizeof(a)-1);
       testswitch(x);
    
       char b[] = "def";
       memcpy(&x, b, sizeof(a)-1);
       testswitch(x);
    
       char c[] = "ghi";
       memcpy(&x, c, sizeof(a)-1);
       testswitch(x);
       return 0; 
    }

    switch для строк!

    Перечитывал несвежие говнокоды, где я выкладывал творчество вконтактоолимпиадников https://govnokod.ru/23170#comment388376

    j123123, 12 Ноября 2019

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

    +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
    22. 22
    // https://godbolt.org/z/PPAWM0
    #include <embed>
    #include <cstdint>
    
    constexpr std::uint64_t val_64_const = 0xcbf29ce484222325u;
    constexpr std::uint64_t prime_64_const = 0x100000001b3u;
    
    inline constexpr std::uint64_t
    hash_64_fnv1a_const(const char* const ptr, std::size_t ptr_size, const std::uint64_t value = val_64_const) noexcept {
    	return (ptr_size == 1) 
    		? value : 
    		hash_64_fnv1a_const(&ptr[1],
    			ptr_size - 1, 
    			(value ^ static_cast<std::uint64_t>(static_cast<char>(*ptr))) * prime_64_const);
    }
    
    int main () {
    	constexpr std::span<const char> art_data  = std::embed("/dev/urandom", 32);
    	constexpr std::uint64_t actual = hash_64_fnv1a_const(art_data.data(), art_data.size());
    
    	return static_cast<int>(actual);
    }

    Очередная дрисня http://open-std.org/JTC1/SC22/WG21/docs/papers/2018/p1040r0.html в крестоговне, теперь можно через std::embed прочитать какое-то говно и даже в constexpr с ним что-то делать, например считать хеш-сумму. Можно constexpr-компилятор сделать, который бы читал код через std::embed и через constexpr хуиту его обрабатывал и компилировал. Скажите им еще про миксины из D

    j123123, 10 Ноября 2019

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

    +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
    // https://gcc.gnu.org/onlinedocs/cpp/Directives-Within-Macro-Arguments.html
    
    // Occasionally it is convenient to use preprocessor directives within the arguments
    // of a macro. The C and C++ standards declare that behavior in these cases is
    // undefined. GNU CPP processes arbitrary directives within macro arguments in
    // exactly the same way as it would have processed the directive were the
    // function-like macro invocation not present. 
    
    // If, within a macro invocation, that macro is redefined, then the new definition
    // takes effect in time for argument pre-expansion, but the original definition is
    // still used for argument replacement. Here is a pathological example:
    
    #define f(x) x x
    f (1
    #undef f
    #define f 2
    f)
    
    // which expands to
    
    // 1 2 1 2

    Ну и хуйня.

    j123123, 31 Октября 2019

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

    +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
    https://habr.com/ru/post/472970/
    
    Критика протокола и оргподходов Telegram. Часть 1, техническая: опыт написания клиента с нуля
    
    в Full самая наркомания, с точки зрения сетевика: длина,
    sequence number, причем НЕ ТОТ, что в основном MTProto,
    тело, CRC32. Да, всё это поверх TCP. Который предоставляет
    нам надежный транспорт в виде последовательного потока байт,
    никакие последовательности не нужны, тем более контрольные
    суммы. Окей, мне сейчас возразят, что в TCP 16-битная
    контрольная сумма, так что искажение данных случается.
    Отлично, только у нас вообще-то криптографический протокол
    с хэшами длиннее 16 байт, все эти ошибки — и даже
    более — будут отловлены на несовпадении SHA уровнем выше.
    Никакого смысла в CRC32 поверх этого — НЕТ.

    Ебать дебилы

    j123123, 27 Октября 2019

    Комментарии (284)
  10. Си / Говнокод #25997

    +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://godbolt.org/z/dMT7v3
    
    unsigned div_eq(unsigned a, unsigned b)
    {
      ALWAYS_TRUE(a == b);
      return a/b;
    }
    
    unsigned div(unsigned a, unsigned b)
    {
      return a/b;
    }
    
    
    int test_array(unsigned char a[10])
    {
      for (int i = 1; i < 10; i++)
      {
        ALWAYS_TRUE(a[i-1] <= a[i]);
      }
      return a[0] <= a[2];
    }

    Refinement type
    Можно этой хуйней ассерты позаменять попробовать, и компилятор возможно что-то сможет за счет этого соптимизировать

    j123123, 26 Октября 2019

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

    +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
    #include <cstdio>
    
    class tag;
    
    template<class>
    struct type { friend constexpr auto get(type); };
    
    template<class TKey, class TValue>
    struct set { friend constexpr auto get(TKey) { return TValue{}; } };
    
    void foo() {            // never called
      if constexpr(false) { // never true
        if (false) {        // never true
            constexpr auto call = [](auto value) { std::printf("called %d", value); };
            void(set<type<tag>, decltype(call)>{});
        }
      }
    }
    
    int main() {
      get(type<tag>{})(42); // prints called 42
    }

    https://twitter.com/krisjusiak/status/1186363017329594368
    Какой C++20 )))

    j123123, 21 Октября 2019

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