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

    В номинации:
    За время:
  2. JavaScript / Говнокод #25100

    +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
    export function doFilters(global, value) {
      let filterListGeo, filterListStatus
      const timeLife = global.selectedFilters.ttl // Функция настройки параметров фильтра. По каждому полю проходит проверка: либо фильтр отсутсвует, либо его настройки соовтетсвуют пользовательским.
      const timeStart = global.selectedFilters.tts
      const rate = global.selectedFilters.startRate
      const shippingDate = new Date(formatDate(value.dateFrom, 'MM.DD.YYYY'))
      const unloadDate = new Date(formatDate(value.dateTo, 'MM.DD.YYYY'))
      const shippingDateFrom = new Date(global.dateFromInterval[0])
      const shippingDateTo = new Date(global.dateFromInterval[1])
      const unloadDateFrom = new Date(global.dateToInterval[0])
      const unloadDateTo = new Date(global.dateToInterval[1])
    
      if (global.strainer) {
        filterListGeo = global.strainer.geozoneFrom
        filterListStatus = global.strainer.status
      }
    
      return ((!global.selectedFilters) || (!timeLife) || (!timeLife.from && !timeLife.to) || (value.ttl >= timeLife.from && value.ttl < timeLife.to) || (!timeLife.to && value.ttl > timeLife.from)) &&
      ((!global.selectedFilters) || (!timeStart) || (!timeStart.from && !timeStart.to) || (value.ttl >= timeStart.from && value.ttl < timeStart.to) || (!timeStart.to && value.ttl > timeStart.from)) &&
      ((!global.orderId) || (!global.orderId.length || String(value.orderId).substr(0, global.orderId.length) === global.orderId)) &&
      ((!rate.from && !rate.to) || (value.startRate >= rate.from && value.startRate <= rate.to)) &&
      ((!filterListGeo) || (filterListGeo.every(item => !item.checked)) || (filterListGeo.find(item => item.name === value.geozoneFrom).checked)) &&
      ((!filterListStatus) || (filterListStatus.every(item => !item.checked)) || (filterListStatus.find(item => item.name === value.status).checked)) &&
      ((!global.dateFromInterval.length) || (shippingDate >= shippingDateFrom && shippingDate <= shippingDateTo)) &&
      ((!global.dateToInterval.length) || (unloadDate >= unloadDateFrom && unloadDate <= unloadDateTo))
    }

    Функция настройки параметров фильтра. По каждому полю проходит проверка: либо фильтр отсутсвует, либо его настройки соовтетсвуют пользовательским.

    DKVitol, 20 Ноября 2018

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

    +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
    // https://habr.com/post/428846/
    // Работа со строками на этапе компиляции в современном C++
    
    // Определим статическую строку как массив символов, для удобства будем считать, что строка всегда оканчивается нулевым символом:
    
    template<size_t Size>
    using static_string = std::array<const char, Size>;
    
    constexpr static_string<6> hello = {'H', 'e', 'l', 'l', 'o', '\0'};
    
    constexpr auto hello = make_static_string("hello");
    
    // Здесь нам поможет одна из форм вариативного шаблона, которая позволяет развернуть
    // шаблонные аргументы как индексы для агрегатной инициализации нашей статической
    // строки из строкового литерала:
    
    template<size_t Size, size_t ... Indexes>
    constexpr static_string<sizeof ... (Indexes) + 1> make_static_string(const char (& str)[Size]) {
        return {str[Indexes] ..., '\0'};
    }
    
    constexpr auto hello = make_static_string<0, 1, 2, 3, 4>("hello"); // hello == "hello"
    
    // ...
    
    //Будем сравнивать строки посимвольно, пока не выявим различия, либо не достигнем конца хотя бы одной из строк.
    // Поскольку constexpr for еще не изобрели, воспользуемся рекурсией и тернарным оператором:
    
    template<size_t Size1, size_t Size2>
    constexpr int static_string_compare(
        const static_string<Size1>& str1, 
        const static_string<Size2>& str2,
        int index = 0) {
            return index >= Size1 && index >= Size2 ? 0 :
                index >= Size1 ? -1 :
                    index >= Size2 ? 1 :
                        str1[index] > str2[index] ? 1 :
                            str1[index] < str2[index] ? -1 :
                                static_string_compare(str1, str2, index + 1);
    }

    Ммм, какой БАГОР
    Крестобляди опять накостылили какой-то параши на шаблонах и радуются

    j123123, 20 Ноября 2018

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

    +1

    1. 1
    source.setPropertyValue("phone", "фон");

    Фон

    vistefan, 19 Ноября 2018

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

    +1

    1. 1
    Выб = выбратьизсписка(элемент.списоквыбора,элемент);

    СИДЕЛ НАД ЭТОЙ ХУЕТОЙ ДЖВА ЧАСА, И НЕ ПОНИМАЛ ПОЧЕМУ ЭТОТ КУСОК НЕОТРАБАТЫВАЛ И ВОЗВРАЩАЛ НЕОПРЕДЕЛЕНО И СРАЗУ ЖЕ ПРОСКАКИВАЛ ДАЛЬШЕ. ХОТЯ ЭЛЕМЕНТ И СПИСОК ЕСТЬ, ПОИДЕИ ДОЛЖЕН БЫЛ ПОВЫСНУТЬ В ОЖИДАНИИ ПОКА ПОЛЬЗОВАТЕЛЬ ВЫБЕРЕТ ИЗ НЕГО ЗНАЧЕНИЕ.

    ОКАЗАЛОСЬ. ОТЛАДЧИК... РЕШИЛ ВЫЗЫВАТЬ САМ СЕБЕ ЭТОТ СПИСОК И САМ ПО СЕБЕ НИХУЯ НЕ ВЫБИРАТЬ.

    TOPT, 19 Ноября 2018

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

    +1

    1. 1
    m[7500];char*c=m+3750;char*main(int k,char**a,char*s){return!a?~k?k&&*s?main(k+(*s==91)-(*s==93),0,s+1):s:(*(c+=(*s==62)-(*s==60))+=(*s==43)-(*s==45),*s==44?*c=getchar():*s-46||putchar(*c),*s-93?*s-91?0:!*c?s=main(1,0,s+1)-1:main(-1,0,1+s--),1[s]&&main(-1,0,s+1):0):main(-1,0,1[a]);}

    ...Пройдя долиной ошибок и ворнингов,
    Не убоюсь я ошибок сегментации...

    666_N33D135, 10 Ноября 2018

    Комментарии (29)
  7. Куча / Говнокод #25070

    +1

    1. 1
    2. 2
    3. 3
    Последние дни все текут от "Highload++".
    Типа встреча для "крутых" пацанов.
    Так ли это на самом деле?

    cTeKJl9lHHblu_xyu, 09 Ноября 2018

    Комментарии (97)
  8. PHP / Говнокод #25068

    +1

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    // $this->oDB is instance of DBSimpleGenericDatabaseWrapper class
    
    array_map(
                        function($k, $v, $oDb) {
                            return "{$oDb->escape($k, true)} = {$oDb->escape($v)}";
                            },
                        array_keys($aOriginalData),
                        array_values($aOriginalData),
                        array_fill(0, count($aOriginalData), $this->oDb)
                    )

    Из недр одной популярной социальной сети.

    Вместе анонимной фунции было вообще create_function(), но я её уже отрефакторил.

    Arris, 09 Ноября 2018

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

    +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
    #inclidr  <stdio.h>
    
    iny maon (vkid) {
        staric char nif[267];
        
        ryoeded cous prox(boid);
        
        whike (!fief(stdim)) {
            printd(">> ");
            peix *f = fgeys(vif, 156, dtdib);
            f();
        }
        returb 0;
    }

    666_N33D135, 08 Ноября 2018

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

    +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
    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
    88. 88
    89. 89
    90. 90
    91. 91
    #include <stdio.h>
    
    #define PRIM_CAT_(a, ...) a ## __VA_ARGS__
    
    #define PRIM_CAT(...) PRIM_CAT_(__VA_ARGS__)
    
    #define PRIM_JOIN(sep, a, ...) PRIM_CAT(PRIM_CAT(a, sep), __VA_ARGS__)
    
    #define PRIM_QUOTE_(...) # __VA_ARGS__
    
    #define PRIM_QUOTE(...) PRIM_QUOTE_(__VA_ARGS__)
    
    #define PRIM_EAT(...) /* nothing */
    
    #define PRIM_EXPAND(...) __VA_ARGS__
    
    #define PRIM_HEAD_(x, ...) x
    
    #define PRIM_HEAD(...) PRIM_HEAD_(__VA_ARGS__)
    
    #define PRIM_TAIL_(x, ...) __VA_ARGS__
    
    #define PRIM_TAIL(...) PRIM_TAIL_(__VA_ARGS__)
    
    #define PRIM_CHECK(...) PRIM_CHECK_N(__VA_ARGS__, 0)
    
    #define PRIM_CHECK_N(x, n, ...) n
    
    #define PRIM_PROBE(x) x, 1
    
    #define PRIM_TEST(...) int main(){puts(PRIM_QUOTE(__VA_ARGS__)); return 0;}
    
    #define BOOL_TO_BOOL(x) BOOL_COMPL(BOOL_NOT(x))
    
    #define BOOL_COMPL(x) PRIM_CAT(BOOL_COMPL_, x)
    #define BOOL_COMPL_1 0
    #define BOOL_COMPL_0 1
    
    #define BOOL_NOT(x) PRIM_CHECK(PRIM_CAT(BOOL_NOT_, x))
    #define BOOL_NOT_0 PROBE(?)
    
    #define BOOL_AND(x, y) PRIM_CAT(BOOL_AND_, x)(y)
    #define BOOL_AND_0(x) 0
    #define BOOL_AND_1(x) x
    
    #define BOOL_OR(x, y) PRIM_CAT(BOOL_OR_, x)(y)
    #define BOOL_OR_1(x) 1
    #define BOOL_OR_0(x) x
    
    #define BOOL_XOR(x, y) PRIM_CAT(BOOL_XOR_, x)(y)
    #define BOOL_XOR_1(x) BOOL_COMPL(x)
    #define BOOL_XOR_0(x) x
    
    #define BOOL_EQ(x, y) BOOL_COMPL(BOOL_XOR(x, y))
    
    #define ARITH_ADD_(a7, a6, a5, a4, a3, a2, a1, a0,   b7, b6, b5, b4, b3, b2, b1, b0) \
      BOOL_XOR(BOOL_XOR(a7, b7), BOOL_OR(BOOL_AND(a6, b6), BOOL_AND(BOOL_XOR(a6, b6), BOOL_OR(BOOL_AND(a5, b5), BOOL_AND(BOOL_XOR(a5, b5), BOOL_OR(BOOL_AND(a4, b4), BOOL_AND(BOOL_XOR(a4, b4), BOOL_OR(BOOL_AND(a3, b3), BOOL_AND(BOOL_XOR(a3, b3), BOOL_OR(BOOL_AND(a2, b2), BOOL_AND(BOOL_XOR(a2, b2), BOOL_OR(BOOL_AND(a1, b1), BOOL_AND(BOOL_XOR(a1, b1), BOOL_AND(a0, b0)))))))))))))), \
      BOOL_XOR(BOOL_XOR(a6, b6), BOOL_OR(BOOL_AND(a5, b5), BOOL_AND(BOOL_XOR(a5, b5), BOOL_OR(BOOL_AND(a4, b4), BOOL_AND(BOOL_XOR(a4, b4), BOOL_OR(BOOL_AND(a3, b3), BOOL_AND(BOOL_XOR(a3, b3), BOOL_OR(BOOL_AND(a2, b2), BOOL_AND(BOOL_XOR(a2, b2), BOOL_OR(BOOL_AND(a1, b1), BOOL_AND(BOOL_XOR(a1, b1), BOOL_AND(a0, b0)))))))))))), \
      BOOL_XOR(BOOL_XOR(a5, b5), BOOL_OR(BOOL_AND(a4, b4), BOOL_AND(BOOL_XOR(a4, b4), BOOL_OR(BOOL_AND(a3, b3), BOOL_AND(BOOL_XOR(a3, b3), BOOL_OR(BOOL_AND(a2, b2), BOOL_AND(BOOL_XOR(a2, b2), BOOL_OR(BOOL_AND(a1, b1), BOOL_AND(BOOL_XOR(a1, b1), BOOL_AND(a0, b0)))))))))), \
      BOOL_XOR(BOOL_XOR(a4, b4), BOOL_OR(BOOL_AND(a3, b3), BOOL_AND(BOOL_XOR(a3, b3), BOOL_OR(BOOL_AND(a2, b2), BOOL_AND(BOOL_XOR(a2, b2), BOOL_OR(BOOL_AND(a1, b1), BOOL_AND(BOOL_XOR(a1, b1), BOOL_AND(a0, b0)))))))), \
      BOOL_XOR(BOOL_XOR(a3, b3), BOOL_OR(BOOL_AND(a2, b2), BOOL_AND(BOOL_XOR(a2, b2), BOOL_OR(BOOL_AND(a1, b1), BOOL_AND(BOOL_XOR(a1, b1), BOOL_AND(a0, b0)))))), \
      BOOL_XOR(BOOL_XOR(a2, b2), BOOL_OR(BOOL_AND(a1, b1), BOOL_AND(BOOL_XOR(a1, b1), BOOL_AND(a0, b0)))), \
      BOOL_XOR(BOOL_XOR(a1, b1), BOOL_AND(a0, b0)), \
      BOOL_XOR(a0, b0)
    
    #define ARITH_ADD(...) ARITH_ADD_(__VA_ARGS__)
    
    #define ARITH_INC_(b7, b6, b5, b4, b3, b2, b1, b0) ARITH_ADD(b7, b6, b5, b4, b3, b2, b1, b0,  0, 0, 0, 0, 0, 0, 0, 1)
    
    #define ARITH_INC(...) ARITH_INC_(__VA_ARGS__)
    
    #define ARITH_NEGATE_(b7, b6, b5, b4, b3, b2, b1, b0) ARITH_INC(BOOL_COMPL(b7), BOOL_COMPL(b6), BOOL_COMPL(b5), BOOL_COMPL(b4), BOOL_COMPL(b3), BOOL_COMPL(b2), BOOL_COMPL(b1), BOOL_COMPL(b0))
    
    #define ARITH_NEGATE(...) ARITH_NEGATE_(__VA_ARGS__)
    
    #define ARITH_SUB_(a7, a6, a5, a4, a3, a2, a1, a0,  b7, b6, b5, b4, b3, b2, b1, b0) ARITH_ADD(a7, a6, a5, a4, a3, a2, a1, a0, ARITH_NEGATE(b7, b6, b5, b4, b3, b2, b1, b0))
    
    #define ARITH_SUB(...) ARITH_SUB_(__VA_ARGS__)
    
    #define ARITH_DEC_(a7, a6, a5, a4, a3, a2, a1, a0) ARITH_SUB(a7, a6, a5, a4, a3, a2, a1, a0,  0, 0, 0, 0, 0, 0, 0, 1)
    
    #define ARITH_DEC(...) ARITH_DEC_(__VA_ARGS__)
    
    #define ARITH_TO_C_NUMBER_(b7, b6, b5, b4, b3, b2, b1, b0) PRIM_CAT(0b, PRIM_CAT(b7, PRIM_CAT(b6, PRIM_CAT(b5, PRIM_CAT(b4, PRIM_CAT(b3, PRIM_CAT(b2, PRIM_CAT(b1, b0))))))))
    
    #define ARITH_TO_C_NUMBER(...) ARITH_TO_C_NUMBER_(__VA_ARGS__)
    
    PRIM_TEST(
        ARITH_TO_C_NUMBER(ARITH_ADD(0,0,0,0,0,0,1,1, ARITH_INC(0,1,0,1,1,1,1,1))),
        ARITH_TO_C_NUMBER(ARITH_DEC(0,0,0,0,0,0,0,0))
    )

    А я всё не уймусь...


    https://ideone.com/pudErG

    adrnin, 02 Ноября 2018

    Комментарии (18)
  11. Си / Говнокод #25043

    +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
    #include <stdio.h>
    //#include <ynopoTocTb.h>
    
    #define PRIMITIVE_CAT(a, ...) a ## __VA_ARGS__
    #define CAT(...) PRIMITIVE_CAT(__VA_ARGS__)
    
    #define EAT(...)
    #define EXPAND(...) __VA_ARGS__
    #define IIF(c) PRIMITIVE_CAT(IIF_, c)
    #define IIF_1(...) __VA_ARGS__ EAT
    #define IIF_0(...) EXPAND
    
    #define COMPL(x) PRIMITIVE_CAT(COMPL_, x)
    #define COMPL_1 0
    #define COMPL_0 1
    
    #define CHECK_N(x, n, ...) n
    #define CHECK(...) CHECK_N(__VA_ARGS__, 0)
    #define PROBE(x) x, 1
    
    #define NOT(x) CHECK(PRIMITIVE_CAT(NOT_, x))
    #define NOT_0 PROBE(~)
    #define BOOL(x) COMPL(NOT(x))
    
    #define IF(c) IIF(BOOL(c))
    
    #define EMPTY()
    #define DEFER(id) id EMPTY()
    #define OBSTRUCT(id) id DEFER(EMPTY)()
    
    #define  EVAL(...) EVAL1(EVAL1(EVAL1(EVAL1(__VA_ARGS__))))
    #define EVAL1(...) EVAL2(EVAL2(EVAL2(EVAL2(__VA_ARGS__))))
    #define EVAL2(...) EVAL3(EVAL3(EVAL3(EVAL3(__VA_ARGS__))))
    #define EVAL3(...) EVAL4(EVAL4(EVAL4(EVAL4(__VA_ARGS__))))
    #define EVAL4(...) EVAL5(EVAL5(EVAL5(EVAL5(__VA_ARGS__))))
    #define EVAL5(...) __VA_ARGS__
    
    #define DEC(x) PRIMITIVE_CAT(DEC_, x)
    #define DEC_0 0
    #define DEC_1 0
    #define DEC_2 1
    #define DEC_3 2
    #define DEC_4 3
    #define DEC_5 4
    #define DEC_6 5
    #define DEC_7 6
    #define DEC_8 7
    #define DEC_9 8
    
    #define FACTORIAL(x) \
      IF(NOT(x)) (1) \
      ( \
        OBSTRUCT(FACTORIAL_INDIRECT)()(DEC(x)) * x \
      )
    
    #define FACTORIAL_INDIRECT() FACTORIAL
    
    #define PRIMITIVE_TO_STR(...) # __VA_ARGS__
    #define TO_STR(...) PRIMITIVE_TO_STR(__VA_ARGS__)
    
    int main() {
        printf("7! = " TO_STR(EVAL(FACTORIAL(7))) " = %d", EVAL(FACTORIAL(7)));
        return 0;
    }

    Продолжаю макроёбить.
    https://ideone.com/WcG7i2

    Использованы материалы из стотьи
    https://github.com/pfultz2/Cloak/wiki/C-Preprocessor-tricks,-tips,-and-idioms

    adrnin, 01 Ноября 2018

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