1. PHP / Говнокод #25237

    +1

    1. 1
    $today = new \DateTime('@'.strtotime(date("y-m-d", time())));

    Today

    makaka16, 27 Декабря 2018

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

    0

    1. 1
    Сумма = Цел(Окр(Сумма * 1000, 0, 1)) / 1000;

    Или я мандаринов переел, или от этого портал должен открыться

    valchara, 27 Декабря 2018

    Комментарии (42)
  3. PHP / Говнокод #25234

    +2

    1. 1
    2. 2
    Дайте инвайт этому господину
    https://habr.com/sandbox/125898/

    LinuxGovno, 27 Декабря 2018

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

    0

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    const size_t page_num = 2000000;
      const size_t page_size = sysconf(_SC_PAGE_SIZE);
      assert(page_size == 4096);
      const size_t buf_len = page_num * page_size;
      size_t tmp = 0;

    Того рот ебал, пыхамакаки в деле

    dicklover, 26 Декабря 2018

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

    +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 <string.h>
    #include <stdlib.h>
    
    #define SQARESZ 3
    
    
    void rotateclockwise(char *ptra, size_t sz)
    {
        char (*a_ar)[sz] = (void *)ptra;
        char b_ar[sz][sz];
        for (size_t y = 0; y < sz; y++)
        {
            for (size_t x = 0; x < sz; x++)
            {
                b_ar[y][x] = a_ar[sz-1-x][y];
            }
        }
        memcpy(a_ar, b_ar, sz*sz);
    }
    
    void print_ar(char *ptra, size_t sz)
    {
        char (*a_ar)[sz] = (void *)ptra;
        for (size_t y = 0; y < sz; y++)
        {
            for (size_t x = 0; x < sz; x++)
            {
                printf("%i ", a_ar[y][x]);
            }
            printf("\n");
        }
    }
    
    int main()
    {
        char a[SQARESZ][SQARESZ] =
        {
          {1,2,3},
          {4,5,6},
          {7,8,9}
        };
        
        print_ar((char *)a, SQARESZ);
        printf("\n");
        rotateclockwise((char *)a, SQARESZ);
        
        print_ar((char *)a, SQARESZ);
        printf("\n");
        rotateclockwise((char *)a, SQARESZ);
        
        print_ar((char *)a, SQARESZ);
        printf("\n");
        rotateclockwise((char *)a, SQARESZ);
        
        print_ar((char *)a, SQARESZ);
        printf("\n");
        rotateclockwise((char *)a, SQARESZ);
        
        print_ar((char *)a, SQARESZ);
        printf("\n");
    
        return 0;
    }

    https://habr.com/post/317300/ В C++17 до сих пор нет нормальных многомерных массивов, которые были в Fortran начиная с Fortran 90

    > UPD от 2016-12-10 14:03. Посмотрел на этот коммент от @selgjos, поэкспериментировал с компилятором и понял, что с помощью C99 VLA всё-таки можно добиться нужного мне эффекта.
    > В общем, окей, в C есть нужные мне массивы. Как и в Fortran. А в C++ их по-прежнему нет.

    j123123, 26 Декабря 2018

    Комментарии (144)
  6. Assembler / Говнокод #25228

    +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
    /*
    x86-64 clang (trunk) -O3
    https://godbolt.org/z/t8NDGG
    
    #include <inttypes.h>
    
    uint32_t saturation_add(uint32_t a, uint32_t b)
    {
        const uint64_t tmp = (uint64_t)a + b;
        if (tmp > UINT32_MAX)
        {
            return UINT32_MAX;
        }
        return tmp;
    }
    */
    
    saturation_add:
            mov     edx, esi
            mov     eax, edi
            add     edi, esi
            add     rax, rdx
            mov     edx, 4294967295
            cmp     rax, rdx
            mov     eax, -1   // ЗАЧЕМ???
            cmovbe  eax, edi
            ret

    https://en.wikipedia.org/wiki/Saturation_arithmetic
    Почему компиляторы до сих пор такое говно

    j123123, 26 Декабря 2018

    Комментарии (94)
  7. JavaScript / Говнокод #25227

    0

    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
    protected setElementModel(formModel: any): any {
                var self = this;
    
                var workModel = jQuery.extend(true, {}, formModel, {
                    onSave: function (e) { e.preventDefault(); self._onSave(e); },
                    onSaveExit: function (e) { e.preventDefault(); self._onSaveExit(e); },
                    onCancel: function (e) { e.preventDefault(); self._onCancel(e); },
                    }
                );
    
                return self.setModel(workModel);
            }
    
            protected setModel(formModel: any): any {
                return formModel;
            }

    typescript at its best

    phpMASTER666, 26 Декабря 2018

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

    +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
    typedef void proc();
    
    proc nop{}
    void swap(int *a, int *b) {*a^=*b^=*a^=*b;}
    
    void sort_(int *arr, unsigned len)
    {
        (proc*[]){nop, swap}[*arr > arr[1]](arr, arr+1);
        (proc*[]){nop, sort_}[len > 2](arr+1, len-1);
    }
    void sort(int *arr, unsigned len)
    {
        (proc*[]){sort_, nop}[len <= 1](arr, len);
        (proc*[]){nop, sort}[len > 2](arr, len-1);
    }

    По поводу апнутого #19105.
    Ветвление легко имитируеься массивом функий, цикол —– рукурсией. Получилось даже короче и понятнее чем обычный код.

    Morgoth, 26 Декабря 2018

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

    +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
    template<class T, class U> bool convertStrToInt(const char* str, int base, T &res, T def, U (*strto)(const char *, char **, int ))
    {
        char *endptr = NULL;
        errno = 0;//man wants it
        if ( ! str || *str == '\0' )
        {
            res = def;
            return false;
        }
        U result =  strto(str, &endptr, base);
        if (errno == ERANGE || (*endptr != '\0') || ! *str) {
            std::stringstream errorStr;
            errorStr << "convertStrToInt failed ; string = '" << str << "' result ='" << result << "' endptr = '" << endptr << "' errno = '" << errno << "'";
            res = def;
            log_error("%s", errorStr.str().c_str());
            return false;
        }
        res = static_cast<T>(result);
        return true;
    }

    Преобразование строки в число

    patzantre, 26 Декабря 2018

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

    +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
    <?php
        function japanize($s) {
            $syl = array('н',
                'а','ка','са','та','на','ха','ма','я','ра','ва','га','дза','да','ба','па',
                'и','ки','си','ти','ни','хи','ми','и','ри',     'ги','дзи',     'би','пи',
                'у','ку','су','цу','ну','фу','му','ю','ру',     'гу','дзу',     'бу','пу',
                'э','кэ','сэ','тэ','нэ','хэ','мэ','е','рэ',     'гэ','дзэ','дэ','бэ','пэ',
                'о','ко','со','то','но','хо','мо','ё','ро','во','го','дзо','до','бо','по',
                    'кя','ся','тя','ня','хя','мя',    'ря',     'гя','дзя',     'бя','пя',
                    'кю','сю','тю','ню','хю','мю',    'рю',     'гю','дзю',     'бю','пю',
                    'кё','сё','тё','нё','хё','мё',    'рё',     'гё','дзё',     'бё','пё'
            );
            $modulo = count($syl);
            $parts = str_split(substr(sha1($s), 0, 16), 2);
            array_walk($parts, function(&$value, $key) use($syl, $modulo) {$value = $syl[intval($value, 16) % $modulo];});
            return implode('', $parts);
        }
         
        echo japanize('bormand') . PHP_EOL;

    Куд-кудах:
    https://ideone.com/l3WdCD

    nemyx, 26 Декабря 2018

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