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

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

    +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
    private boolean checkRule(SchedulerPlanedTaskRuleBase rule, Date nowDate)
    {
        boolean result = (null != rule) && rule.isExecutionPlaned(nowDate, _lastExecutionDate);
        if (result)
        {
            //Проверка, выполнялось ли уже это действие в эту минуту. Таймер настроен на 30 сек, поэтому эта задача может запускаться 2 раза в минуту.
            //Этого нельзя допустить. Если разница между текущим временем и временем последнего запуска этой задачи меньше 2х минут - задача не запускается
            if (_lastExecutionDate != null)
            {
                Calendar lastTime = DateUtils.createCalendar(_lastExecutionDate);
                Calendar nowTime = DateUtils.createCalendar(nowDate);
                if (Math.abs(nowTime.getTimeInMillis() - lastTime.getTimeInMillis()) < 120000)
                    return false;
            }
        }
        return result;
    }

    vistefan, 05 Декабря 2018

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

    +2

    1. 1
    https://youtu.be/ITupdZ4TmkI?t=96

    Goh, 05 Декабря 2018

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

    +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
    internal class DeviceState
    {
        internal string PrimaryState { get; private set; }
        private HashSet<string> _multiplieStates;
    
        // много кода...
    
        internal string[] GetStates()
        {
            string states = PrimaryState;
            if (_multiplieStates.Count > 0)
            {
                states += '|' + string.Join("|", _multiplieStates);
            };
            return states.Split('|');
        }
    }

    spectrezero, 11 Ноября 2018

    Комментарии (12)
  5. Python / Говнокод #25066

    +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
    from itertools import groupby
    
    In [31]: [list(g) for k, g in groupby('AAAABBBCCDAABBB')]
    Out[31]:
    [['A', 'A', 'A', 'A'],
     ['B', 'B', 'B'],
     ['C', 'C'],
     ['D'],
     ['A', 'A'],
     ['B', 'B', 'B']]
    
    In [30]: [list(g) for k, g in list(groupby('AAAABBBCCDAABBB'))]
    Out[30]: [[], ['B'], [], [], [], []]

    ЧЗХ?

    syoma, 09 Ноября 2018

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

    +2

    1. 1
    https://github.com/klacke/yaws/blob/ba31d14a24842e047e7fa856257df6e3f994ac96/src/yaws_api.erl#L2596

    Сертификат сменился? А давайте пол-ноды ёбнем

    CHayT, 06 Ноября 2018

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

    +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
    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
    92. 92
    93. 93
    94. 94
    95. 95
    96. 96
    97. 97
    98. 98
    99. 99
    //macrolib.h
    
    #ifndef MACRO_LIB
    #define MACRO_LIB
    
    #include <stdio.h>
    
    typedef void proc(void);
    
    #ifdef DEBUG
      #define TRACE printf
    #else
      #define TRACE(...)
    #endif
    
    #ifdef TRACE_CALLS
      #define ON_ENTER_TRACE(name) char __CUR_FUNC_NAME__[] = #name; TRACE("<entering %s>", __CUR_FUNC_NAME__);
      #define ON_EXIT_TRACE(...) TRACE(__VA_ARGS__)
    #else
      #define ON_ENTER_TRACE(name) ;
      #define ON_EXIT_TRACE(...)
    #endif
    
    #define def(type, name, ...) type name __VA_ARGS__ { ON_ENTER_TRACE(name)
    #define ret(ret_val) {ON_EXIT_TRACE("<leaving %s>", __CUR_FUNC_NAME__); return ret_val;}
    #define end(ret_val) ret(ret_val);}
    
    #define with(type, x, on_exit) { type __CUR_WITH_VAR__ = x; int (*__ON_EXIT__)() = (int(*)())on_exit;
    #define endwith __ON_EXIT__(__CUR_WITH_VAR__);}
    
    #define dup(d, ...) __VA_ARGS__ d __VA_ARGS__
    #define dupwithcomma(...) __VA_ARGS__, __VA_ARGS__
    
    #endif
    
    
    
    
    //chain.h
    
    #ifdef I0
      #undef I0
      #if defined(I1) || defined(I2) || defined(I3)
        ELEMENT DELIMETER
        #include "chain.h"
      #else
        ELEMENT
        #undef ELEMENT
        #undef DELIMETER
      #endif
    #else
      #ifdef I1
        #undef I1
        #define I0
        ELEMENT DELIMETER
        #include "chain.h"
      #else
        #ifdef I2
          #undef I2
          #define I1
          #define I0
          ELEMENT DELIMETER
          #include "chain.h"
        #else
          #ifdef I3
            #undef I3
            #define I2
            #define I1
            #define I0
            ELEMENT DELIMETER
            #include "chain.h"
          #endif
        #endif
      #endif
    #endif
    
    //test.c
    
    #define DEBUG
    #define TRACE_CALLS
    
    #include "macrolib.h"
    
    def(int, main, ())
      printf(dup(" ", "%s"), dupwithcomma("Чот мне понравилось макроёбить..."));
      FILE *f = fopen("file", "w");
      with(FILE*, f, fclose)
        fputs(
          #define ELEMENT "o"
          #define DELIMETER "l"
          #define I3
          #define I2
          #define I1
          #define I0
          #include "chain.h"
          , f
        );
      endwith
    end(0)

    Мне понравилось. то ещё можно намакроёбить? ;D

    adrnin, 30 Октября 2018

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

    +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
    #include <stdio.h>
    
    #ifdef DEBUG
      #define TRACE printf
    #else
      #define TRACE(...)
    #endif
    
    #define DEF(type, name, ...) type name __VA_ARGS__ { TRACE("<вызвали " #name ">");
    #define RET(name, ret_val) {TRACE("<" #name " не упала>"); return (ret_val);}
    #define END(name, ret_val) RET(name, ret_val);}
    
    DEF(int, main, (int argc, char **argv))
        puts("Моя супер-мего отладка ;D");
    END(main, 0)

    Моя супир-мего отладка ;D

    adrnin, 29 Октября 2018

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

    +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
    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
    #include <stdio.h>
    #include <stdlib.h>
    #include <stdalign.h>
    #include <inttypes.h>
    #include <string.h>
    
    float sum_f(const float arr[], const size_t len);
    int32_t sum_i32t(const int32_t arr[], const size_t len);
    
    #define sum(a, b) _Generic((a), float*:   sum_f, \
                                 const float*:   sum_f, \
                                 int32_t*: sum_i32t,\
                                 const int32_t*: sum_i32t)(a, b)
    
    
    // foldl (+) 0 arr
    float sum_f(const float arr[], const size_t len)
    {
      return (len != 0) ? ( sum(arr+1, len-1) + arr[0] ) : 0;
    }
    
    int32_t sum_i32t(const int32_t arr[], const size_t len)
    {
      return (len != 0) ? ( sum(arr+1, len-1) + arr[0] ) : 0;
    }
    
    enum { we_want_int, we_want_float } what_we_want;
    
    void test(int www)
    {
      void *a;
      if (www == we_want_int)
      {
        uint8_t buf[sizeof(int32_t[10])] __attribute__ ((aligned (alignof(int32_t[10]))));
        a = (void *) buf;
        memcpy ( a, (int32_t[10]){1,2,3,4,5,6,7,8,9,10},
                 sizeof((int32_t[10]){1,2,3,4,5,6,7,8,9,10})
                );
        printf("%" PRIi32 "\n", sum((int32_t *)a, 10));
      }
      else if (www == we_want_float)
      {
        uint8_t buf[sizeof(float[10])] __attribute__ ((aligned (alignof(float[10]))));
        a = (void *) buf;
        memcpy ( a, (float[10]){1,2,3,4,5,6,7,8,9,10},
                 sizeof((float[10]){1,2,3,4,5,6,7,8,9,10})
                );
        printf("%f\n", sum((float *)a, 10));    
      }
    }
    
    int main(void)
    {
      test(we_want_int);
      test(we_want_float);
      return EXIT_SUCCESS;
    }

    https://wandbox.org/permlink/TwbKHE8l7ZJc6PNI
    https://govnokod.ru/25005#comment436646
    https://i.imgur.com/yFYfuED.jpg

    j123123, 23 Октября 2018

    Комментарии (454)
  10. PHP / Говнокод #24940

    +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
    <?php
    define('+1', 16384);
    ${'*.'} = function ($a, $b) {
        return floor($a * $b / constant('+1'));
    };
    
    ${'/.'} = function ($a, $b) {
        return floor($a * constant('+1') / $b);
    };
    
    echo ${'/.'}(1, 1) . "\n";
    echo ${'/.'}(1, 2) . "\n";
    echo ${'/.'}(7, 34) + ${'/.'}(23, 99) . "\n";

    Где-то за кулисами прячется факт, что в "PHP" в качестве имён констант и переменных можно использовать произвольные строки.

    https://ideone.com/3MCnCW

    4EPTA_KyJIuC, 19 Октября 2018

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

    +2

    1. 1
    2. 2
    3. 3
    4. 4
    private static final int EXPIRATION_DATE = 93*24*60*60*1000;
     if (fileAttribute.creationTime().toMillis() + EXPIRATION_DATE < System.currentTimeMillis()) {
                   ...
                }

    в мастер-ветке...

    justtrash, 15 Октября 2018

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