1. Комментарий к говнокоду #25380

    • У нас пишут «street» в названиях улиц. А в названиях станций этимологию не раскапывают и оставляют слово «улица» без перевода («ulitsa»), как будто это слитное название.

      Там было что-то безумное вроде «нэкст стэйшн из улитса найнтин оу файф года» или «next station is ulitsa tysacha devyatsot pyatogo goda».
      Ответить
    Показать код ▼

    C# / Говнокод #25380

    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
    public static void Init()
            {            
                LetterOrder = new Dictionary<char, int>
                              {
                                  {'A', 0},
                                  {'B', 1},
                                  {'C', 2},
                                  {'D', 3},
                                  {'E', 4},
                                  {'F', 5},
                                  {'G', 6},
                                  {'H', 7},
                                  {'I', 8},
                                  {'J', 9},
                                  {'K', 10},
                                  {'L', 11},
                                  {'M', 12},
                                  {'N', 13},
                                  {'O', 14},
                                  {'P', 15},
                                  {'Q', 16},
                                  {'R', 17},
                                  {'S', 18},
                                  {'T', 19},
                                  {'U', 20},
                                  {'V', 21},
                                  {'W', 22},
                                  {'X', 23},
                                  {'Y', 24},
                                  {'Z', 25},
                              };
            }

    C#-макака не умеющая, ни в char - 'A' ни в статические конструторы (и еще много чего: см. https://www.codingame.com/training/easy/encryptiondecryption-of-enigma-machine/solution?id=10246815)

    Запостил: Lorip1971, 15 Февраля 2019

    Все комментарии (44)
  2. Комментарий к говнокоду #25382

    • Надо подумать.

      У «Граватара», оказывается, есть API для установки аватарок:
      https://ru.gravatar.com/site/implement/xmlrpc/

      Капчу можно попробовать чем-нибудь распознать. Например, научиться пользоваться «Tesseract» и «FANN». Это, пожалуй, будет самым трудным этапом.

      Остаётся почта. Можно поднять свой почтовый сервер, можно получать письма «Яндексом»/«Гмейлом» через POP3/IMAP, можно использовать какой-нибудь сервер одноразовой почты. В случае «Яндекса»/«Гмейла» даже регистрировать кучу ящиков не нужно: можно использовать адреса вида [email protected] До плюсика идёт логин (на который зарегистрирован ящик), после плюсика случайный набор символов.

      Немного смущает «Граватар». В нём можно использовать несколько е-мейлов для одной учётки, но в API соответствующей функции не нашёл. Нужно будет придумать, как добавлять е-мейлы или как регистрировать новые учётки в «Граватаре».
      Ответить
    Показать код ▼

    Куча / Говнокод #25382

    1. 1
    thispersondoesnotexist.com

    Лицовореций тред. Интересные и упоротые портреты, сгенерированные нейропитухами.

    Предлагаю челлендж: жмём F5 и постим сюда лица, похожие, по вашему мнению, на обитателей ГК. Разумеется, если вы не знали пользователя в лицо или давно видели мутную фотографию и уже забыли, как он выглядит.
    Для чистоты эксперимента рекомендуется не смотреть чужие представления о местных жителях до того, как запостили свои.

    Запостил: 1024--, 15 Февраля 2019

    Все комментарии (73)
  3. Комментарий к говнокоду #25356

    • Меня коснулся золотой хуй, и я превратился в петуха!
      Ответить
    Показать код ▼

    Java / Говнокод #25356

    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
    @Override
    public String toString() {
        return "IndexData{" +
                "id='" + id + '\'' +
                ", regNum='" + regNum + '\'' +
                ", docType='" + docType + '\'' +
                ", customerOrg='" + customerOrg + '\'' +
                ", ownerOrg='" + ownerOrg + '\'' +
                ", responsibleOrg='" + responsibleOrg + '\'' +
                ", publishOrg='" + publishOrg + '\'' +
                ", path='" + path + '\'' +
                ", zipName='" + zipName + '\'' +
                ", xmlName='" + xmlName + '\'' +
                ", fileDate=" + fileDate +
                ", publishDate='" + publishDate + '\'' +
                ", info=" + info +
                '}';
    }

    сериализация в json

    Запостил: vistefan, 04 Февраля 2019

    Все комментарии (140)
  4. Комментарий к говнокоду #25373

    Показать код ▼

    bash / Говнокод #25373

    1. 1
    jopa | parasha

    Допустим jopa бесконечно срёт в STDOUT.
    parasha это всё читает из STDIN.
    Что будет делать ОС, если параша не будет успевать читать высеры?
    Держать в памяти? Сохранять на диск?

    Запостил: Perevedi_na_PHP, 12 Февраля 2019

    Все комментарии (111)
  5. Комментарий к говнокоду #25379

    Показать код ▼

    Куча / Говнокод #25379

    1. 1
    https://www.bellingcat.com/resources/how-tos/2019/02/14/creating-your-own-citizen-database/

    Новые веяния - код в виде скриншотов, сырцы скачать нельзя.

    Запостил: syoma, 15 Февраля 2019

    Все комментарии (100)
  6. Комментарий к говнокоду #25374

    • может быть это чтобы запускать дос и win16?
      у меня на виртуалке три оси, и все три без uefi (потому что я сраный ретроград)

      но про скорость согласен: с момента зпуска виртуалки до момента переключения ее в protected mode проходит так мало времени.
      Ответить
    Показать код ▼

    Куча / Говнокод #25374

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    Офигеть, sql-дамп говнокода весит всего 240Мб.
     
    Может переписать на "C++" и держать все индексы в памяти?
    А на фронте будет только обращение к JSON API. И можно хоть мобильное приложение делать на "Electron.js".
    Клиент будет подписан на интересующие его события, например на сток и на ответы на его коменты.
    Никто не хочет заняться по фану?

    Запостил: guestinxo, 12 Февраля 2019

    Все комментарии (49)
  7. Комментарий к говнокоду #24867

    • > Триггер Шмитта
      Въебал 555 в качестве триггера шмитта. Фронты идеальные. Карточка не отвечает. Ну что за херня :(
      Ответить
    Показать код ▼

    Куча / Говнокод #24867

    1. 1
    IT Оффтоп #9

    #1: http://govnokod.ru/18142 http://govnokod.xyz/_18142
    #2: http://govnokod.ru/18378 http://govnokod.xyz/_18378
    #3: http://govnokod.ru/19667 http://govnokod.xyz/_19667
    #4: http://govnokod.ru/21160 http://govnokod.xyz/_21160
    #5: http://govnokod.ru/21772 http://govnokod.xyz/_21772
    #6: http://govnokod.ru/24063 http://govnokod.xyz/_24063
    #7: http://govnokod.ru/24538 http://govnokod.xyz/_24538
    #8: http://govnokod.ru/24815 (потёр пидор сракер) http://govnokod.xyz/_24815/

    Запостил: syoma, 07 Октября 2018

    Все комментарии (1105)
  8. Комментарий к говнокоду #25381

    Показать код ▼

    C++ / Говнокод #25381

    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://habr.com/ru/post/440388/
    // Интервалы: грядущая эволюция C++ 
     
    // Давайте теперь рассмотрим следующую задачу: имеется вектор, необходимо удалить
    // из него все повторяющиеся элементы. В рамках текущего стандарта мы решали бы её так:
     
    std::vector<T> vec=...;
    std::sort( vec.begin(), vec.end() );
    vec.erase( std::unique( vec.begin(), vec.end() ), vec.end() );
     
     
    // При этом мы указываем имя вектора аж 6 раз! Однако, используя концепцию интервалов
    // (объединив итераторы на начало и конец вектора в один объект), можно написать в разы проще, указав искомый вектор лишь единожды:
     
    tc::unique_inplace( tc::sort(vec) );
     
    //... Че, серьезно? Я так тоже могу:
    // Однако, используя сишный препроцессор™, можно написать в разы проще, указав искомый вектор лишь единожды:
     
    #define DELETE_DUPS(x) do{ std::sort( x.begin(), x.end() ); x.erase( x::unique( x.begin(), x.end() ), x.end() );}while(0)
     
    DELETE_DUPS(vec);

    Тоже мне революция.

    Запостил: j123123, 15 Февраля 2019

    Все комментарии (14)
  9. Комментарий к говнокоду #7487

    Показать код ▼

    Python / Говнокод #7487

    1. 1
    pygame.mouse.set_cursor((16, 19), (0, 0), (128, 0, 192, 0, 160, 0, 144, 0, 136, 0, 132, 0, 130, 0, 129, 0, 128, 128, 128, 64, 128, 32, 128, 16, 129, 240, 137, 0, 148, 128, 164, 128, 194, 64, 2, 64, 1, 128), (128, 0, 192, 0, 224, 0, 240, 0, 248, 0, 252, 0, 254, 0, 255, 0, 255, 128, 255, 192, 255, 224, 255, 240, 255, 240, 255, 0, 247, 128, 231, 128, 195, 192, 3, 192, 1, 128))#костыль))

    Разгребал сорцы одной совей древней программки, нашел это.
    ЗЫ: комент таким и был

    Запостил: TheHamstertamer, 08 Августа 2011

    Все комментарии (33)
  10. Комментарий к говнокоду #24538

    • Из какой подборки?

      Среди претенденток на мисс ворецию есть годные тян
      https://i.imgur.com/pgrt6mg.jpg

      Или вот, https://i.imgur.com/JgmCbsW.jpg
      Ктобневдул?
      Ответить
    Показать код ▼

    Куча / Говнокод #24538

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    IT Оффтоп #7
     
    #1: http://govnokod.ru/18142
    #2: http://govnokod.ru/18378
    #3: http://govnokod.ru/19667
    #4: http://govnokod.ru/21160
    #5: http://govnokod.ru/21772
    #6: http://govnokod.ru/24063

    Запостил: syoma, 25 Июля 2018

    Все комментарии (800)
  11. Комментарий к говнокоду #25375

    Показать код ▼

    Си / Говнокод #25375

    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
    // https://git.zx2c4.com/BruteZip/tree/read.c?id=e4e9c17b99e0d108136b8a07632b1ebaa7d09d28#n26
     
    int main(int argc, char *argv[])
    {
    	union {
    		long int l;
    		char c[sizeof(long int)];
    	} u;
    	u.l = 1;
    	if (u.c[sizeof(long int) - 1] == 1) {
    		printf("This program only runs on little endian archs, because I'm lazy. Sorry.\n");
    		return -2;
    	}

    Хуйня какая-то. Ведь sizeof(long int) может быть равен sizeof(char).

    Но над такой питушней обычно никто не задумывается

    Запостил: j123123, 13 Февраля 2019

    Все комментарии (213)
  12. Комментарий к говнокоду #24868

    • Это бизнес. Ничего личного.

      Или ты в Совок захотел, где упаковка по ГОСТу?
      Ответить
    Показать код ▼

    Куча / Говнокод #24868

    1. 1
    Политота #5

    #1: https://govnokod.ru/15804 http://govnokod.xyz/_15804/ (не открывается)
    #2: https://govnokod.ru/19910 http://govnokod.xyz/_19910/
    #3: https://govnokod.ru/23643 http://govnokod.xyz/_23643/
    #4: https://govnokod.ru/24822 (потер пидарас сракер) http://govnokod.xyz/_24822/

    Русня, сасай!

    Запостил: syoma, 07 Октября 2018

    Все комментарии (125)
  13. Комментарий к говнокоду #25307

    • кстати, если переписать на Си (без заедушной крестоговняной передаче по ссылке), и скомпилировать как Си, то cmov-ы генерируются для тернатрой версии и более старыми версиями GCC
      https://godbolt.org/z/yLGWmR - использована опция "-x c" - если ее убрать, cmov-ы пропадут. Поэтому я за Си.
      Ответить
    Показать код ▼

    Си / Говнокод #25307

    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
    void sort8(uint64_t a[8])
    {
      uint64_t a0;
      uint64_t a1;
      uint64_t a2;
      uint64_t a3;
      uint64_t a4;
      uint64_t a5;
      uint64_t a6;
      uint64_t a7;
     
      SORT2(a[0], a[1], a0, a1);
      SORT2(a[2], a[3], a2, a3);
      SORT2(a[4], a[5], a4, a5);
      SORT2(a[6], a[7], a6, a7);
     
      uint64_t a_tmp[8];
     
      MERGE_2_4(a0, a1, a2, a3, a_tmp[0], a_tmp[1], a_tmp[2], a_tmp[3]);
      MERGE_2_4(a4, a5, a6, a7, a_tmp[4], a_tmp[5], a_tmp[6], a_tmp[7]);
     
      uint64_t *ptra1 = &a_tmp[0];
      uint64_t *ptra2 = &a_tmp[4];
     
      for (size_t i = 0; i < 4; i++)
      {
        if (*ptra1 < *ptra2)
        {
          a[i] = *ptra1;
          ptra1++;
        }
        else
        {
          a[i] = *ptra2;
          ptra2++;
        }
      }
     
      for (size_t i = 4; i < 8; i++)
      {
        if (ptra1 == &a_tmp[4])
        {
          while (ptra2 != &a_tmp[8])
          {
            a[i++] = *ptra2;
            ptra2++;
          }
          break;
        }
     
        if (ptra2 == &a_tmp[8])
        {
          while (ptra1 != &a_tmp[4])
          {
            a[i++] = *ptra1;
            ptra1++;
          }
          break;
        }
     
     
        if (*ptra1 < *ptra2)
        {
          a[i] = *ptra1;
          ptra1++;
        }
        else
        {
          a[i] = *ptra2;
          ptra2++;
        }
     
      }
    }

    Мерж сорт, специализированный на 8 элементов. Вот доказательство корректности https://paste.debian.net/hidden/cce6d31a/

    Запостил: j123123, 13 Января 2019

    Все комментарии (136)
  14. Комментарий к говнокоду #25359

    Показать код ▼

    C++ / Говнокод #25359

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    // https://en.wikipedia.org/wiki/Curiously_recurring_template_pattern
     
    // The Curiously Recurring Template Pattern (CRTP)
    template<class T>
    class Base
    {
        // methods within Base can use template to access members of Derived
    };
    class Derived : public Base<Derived>
    {
        // ...
    };

    > The Microsoft Implementation of CRTP in Active Template Library (ATL) was independently discovered, also in 1995 by Jan Falkin who accidentally derived a base class from a derived class. Christian Beaumont, first saw Jan's code and initially thought it couldn't possibly compile in the Microsoft compiler available at the time. Following this revelation that it did indeed work, Christian based the entire ATL and Windows Template Library (WTL) design on this mistake.

    А какая ошибка по-вашему положена в основу всего дизайна языка C++?

    Запостил: j123123, 06 Февраля 2019

    Все комментарии (114)
  15. Комментарий к говнокоду #25303

    Показать код ▼

    Куча / Говнокод #25303

    1. 1
    https://github.com/NixOS/nixpkgs/blob/1137200d6b7fcf8fc401b54e8292f24f09bfc11d/pkgs/development/tools/build-managers/rebar3/hermetic-rebar3.patch#L56

    Давайте сломаем билд-систему своими говнопатчами и назовём пакет "rebar3", а не "rebar3-zver-edition". Пусть народ поебётся, пытаясь свой код собрать!

    Запостил: CHayT, 12 Января 2019

    Все комментарии (8)
  16. Комментарий к говнокоду #24496

    • Статья о «тьюринг-полноте» инструкции «mov» с косвенной адресацией вдохновила меня на размышления о программировании без if:
      https://www.cl.cam.ac.uk/~sd601/papers/mov.pdf

      А ведь тогда и оператор присвоения для элементов массива оказывается полным по какому-то пидарасу.

      Возьмём пример:
      a[i] = false;
      a[j] = true; // если j == i, то текущее значение a[i] затрётся true
      k = a[i];
      Теперь в переменной k лежит результат сравнения i == j.

      Вместо чистых массивов можно даже использовать крестоблядский класс std::map, чтобы не тратить лишнюю память.

      Более сложный пример:
      tmp = a[i];
      a[N] = false;
      a[i] = true; // текущее значение a[N] затрётся true, если i == N
      j = a[N]; // теперь в j лежит результат сравнения i с N
      a[i] = tmp; // восстанавливаем значение ни в чём не повинного элемента


      Ещё пример. Допустим k –— переменная, хранящая булево значение:
      a[N] = i;
      a[N+1] = j;
      m = a[N + k]; // теперь в m будет лежать i, если k==0, и j, если k==1

      Получили эквивалент тернарного оператора: m = k ? j : i;

      Перевести остальную часть статьи с ассемблера на произвольный императивный ЯП с оператором присвоения предлагается читателю.
      Ответить
    Показать код ▼

    Си / Говнокод #24496

    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
    void sort3(uint32_t a[static 3])
    {
      //                   0     1     2     3     4     5     6     7     8
      uint32_t tmp[9] = {a[0], a[1], a[2], a[0], a[1], a[0], a[2], a[1], a[0]};
      uint8_t bits = (a[0] <= a[1]) | ((a[1] <= a[2]) << 1) | ((a[0] <= a[2]) << 2);
      static const uint8_t b[] =
      {
        [0b000] = 6,
        [0b001] = 2,
        [0b010] = 1,
        [0b101] = 5,
        [0b110] = 4,
        [0b111] = 0,
      };
      memcpy(a, tmp+b[bits], 3*sizeof(uint32_t));
    }

    Новая инновационная сортировка на 3 элемента без if-ов
    https://wandbox.org/permlink/pTLXgxKKQuaiVCxb

    Запостил: j123123, 15 Июля 2018

    Все комментарии (172)
  17. Комментарий к говнокоду #25378

    Показать код ▼

    JavaScript / Говнокод #25378

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    checkDateNP(value) {
            const date = new Date(value)
            const dateValue = date.setDate(date.getDate() + 1)
     
            return formatDate(dateValue, 'DD-MM-YYYY') === formatDate(this.item.date, 'DD-MM-YYYY') &&
            formatDate(dateValue, 'DD-MM-YYYY') === formatDate(this.item.dateEnd, 'DD-MM-YYYY')
          },
     
          checkDateOther(value) { // Проверка корреткности ввода данных по заявкам типа "КА" и "МС".
            return formatDate(this.item.startTime, 'DD-MM-YYYY') >= formatDate(this.item.date, 'DD-MM-YYYY')
          }
        }

    VueJs. Проверка корреткности ввода данных по заявкам

    Запостил: DKVitol, 14 Февраля 2019

    Все комментарии (1)
  18. Комментарий к говнокоду #25376

    Показать код ▼

    PHP / Говнокод #25376

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    public function putSitemapContent(SitemapFile $sitemapFile)
    	{
    //		always write in new empty file - tak nado, a to pechalka ((
    		if ($this->isExists())
    			$this->delete();

    1C-Битрикс - серьезный фреймворк для решения бизнес-задач.
    (код исходников)

    Запостил: quentiam, 14 Февраля 2019

    Все комментарии (1)
  19. Комментарий к говнокоду #25357

    • Похоже, о понятии «обратная совместимость» никто тут не слышал… Изначально было два протокола безопасной передачи — SSL и TLS. В какой-то момент SSL признали недостаточно безопасным протоколом и решили от него отказаться в пользу TLS. Но чтобы не ломать кучу старых программ, параметр EMAIL_USE_SSL убирать не стали, а переделали на включение TLS.
      Ответить
    Показать код ▼

    Куча / Говнокод #25357

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    Как вы думаете, чем отличаются эти два параметра в Django?
     
    use_tls: EMAIL_USE_TLS
    use_ssl: EMAIL_USE_SSL
     
    ответ в комменте

    EMAIL_USE_TLS
    Whether to use a TLS (secure) connection when talking to the SMTP server

    EMAIL_USE_SSL
    Whether to use an implicit TLS (secure) connection when talking to the SMTP server

    Запостил: gueest8, 05 Февраля 2019

    Все комментарии (34)
  20. Комментарий к говнокоду #16039

    • Мосты с минимальным количеством опор выглядят круто, но это получается аналог единственной точки отказа.
      Ответить
    Показать код ▼

    PHP / Говнокод #16039

    1. 1
    <<?='b'.'o'.'d'.'y'?> class="p0 m0">

    Чье-то из какой-то самописной CMS в шаблоне..) таким способом выводятся многие теги))

    Запостил: Cyril, 22 Мая 2014

    Все комментарии (117)