1. Куча / Говнокод #25983

    +1

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    <p oncopy="return false" ondragstart="return false"></p>
    <p oncopy="return false" ondragstart="return false"></p>
    <p oncopy="return false" ondragstart="return false"></p>
    <p oncopy="return false" ondragstart="return false"></p>
    <p oncopy="return false" ondragstart="return false"></p>
    <p oncopy="return false" ondragstart="return false"></p>
    <p oncopy="return false" ondragstart="return false"></p>
    <p oncopy="return false" ondragstart="return false"></p>
    <p oncopy="return false" ondragstart="return false"></p>

    Защита контента для самых маленьких

    bootcamp_dropout, 22 Октября 2019

    Комментарии (10)
  2. 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

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

    0

    1. 1
    А вот операторов сравнения между всеми типами умных указателей, я как понял, нету, и даже по стандарту.

    OlegUP, 21 Октября 2019

    Комментарии (83)
  4. PHP / Говнокод #25980

    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
    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
    <?
    class CHISLO {
        private $arr = array('', 'один', 'два', 'три', 'четыре', 'пять', 'шесть', 'семь', 'восемь', 'девять', 'десять',
                             'одиннадцать', 'двенадцать', 'тринадцать', 'четырнадцать', 'пятнадцать',
                             'шестнадцать', 'семнадцать', 'восемнадцать', 'девятнадцать');
        private $arr2 = array('', 'сто', 'двести', 'триста', 'четыреста');
        private $ar = array(
            1=>array('тысяч', 'тысяча', 'тысячи', 'тысячи', 'тысячи', 'тысяч', 'тысяч', 'тысяч', 'тысяч', 'тысяч'),
            array('миллионов', 'миллион', 'миллиона', 'миллиона', 'миллиона', 'миллионов', 'миллионов',
                  'миллионов', 'миллионов', 'миллионов'),
            array('миллиардов', 'миллиард', 'миллиарда', 'миллиарда', 'миллиарда', 'миллиардов', 'миллиардов',
                  'миллиардов', 'миллиардов', 'миллиардов'),
            array('триллионов', 'триллион', 'триллиона', 'триллиона', 'триллиона', 'триллионов', 'триллионов',
                  'триллионов', 'триллионов', 'триллионов')
        );
     
        public function get_chislo($ch) {
            if( $ch<1000 )
                return $this->get_100($ch);
            $ch = preg_split('/(?=(\d{3})+(?!\d))/is', $ch, -1, PREG_SPLIT_NO_EMPTY);
            $ch = array_reverse($ch);
            $result[] = $this->get_100($ch[0]);
            for($i=1; $i<count($ch); $i++) {
                @$result[] = $this->get_100($ch[$i]) .' '. $this->ar[$i]{$ch[$i]%10};
            }
            $result[1] = str_replace('один', 'одна', $result[1]);
            // $result[1] = str_replace('два', 'две', $result[1]);
            return join(' ', array_reverse($result));
        }
        private function get_100($ch) {
            $c1 = (int)($ch / 100);
            $c2 = $ch % 100;
            if( $c1<5 )
                $result = $this->arr2[$c1];
            else 
                $result = $this->arr[$c1] . 'сот';
            return @$result .' '. $this->get_10($c2);
        }
        private function get_10($ch) {
            $c1 = (int)($ch / 10);
            $c2 = $ch % 10;
            if( $ch<20 ) {
                $result = $this->arr[$ch];
            } else if( $ch<40 ) {
                $result = $this->arr[$c1] . 'дцать';
            } else if( $ch<50 ) {
                $result = 'сорок';
            } else if( $ch<90 ) {
                $result = substr( $this->arr[$c1], 0, -1 ) . 'десят';
            } else if( $ch<100 ) {
                $result = 'девяносто';
            }
            if( $ch>20 && $c2!=0 )
                $result .= ' ' . $this->arr[$c2];
            return $result;
        }
    }?>

    Bitrix❤️

    eskrano, 21 Октября 2019

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

    +1

    1. 1
    "Performance is easy. All you need to know is everything" (c) S. Kuksenko (@kuksenk0)

    Умеете профилировать программы?
    Знаете, что такое flame diagram? Умеете посмотреть стектрейс от входа в тред до какого-нить спинлока в ядре? Смотрите асм своего компилятора или джита? Знаете, какая инструкция сколько занимает?
    Умеете по vmstat/iostat или xperf/perf counters увидать проблему и соотнести ее с программой? Используете dtrace голый или с instruments? yourkit? vTune? valgrind? bpf?
    Или такие же дебилы, как я?

    MAKAKA, 20 Октября 2019

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

    0

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    begin 644 /dev/stdout
    M,$M$4FMD0V<P6E11;TU+=S!+1%%H9$-H,%I046]D0T1,0T11;TU+,3!+2%%G
    M.4-G=W)V46].1U))3D-H-&]#83!+2&EG3&MG,$M(:6=+2%%O3D=2,$M(:6=*
    M<E%O34MW,$M$0W1D0V@T;TMS,$M(46EI1%%O9$--,$M(:6=*<E%O3D=624,P
    M=$E.0V<P26)1;V5+075D0V<T;U-7,$M$4VMD0V<P6D5G,$M$46AD0V=W<D%G
    M,$M(46<Y0V<P26)1;V1#4#!+1$-T.4-H,$EO9S!+2%%G.4-H,$E,46].1U8P
    42TAI9TM(46].0T8P2T12;%$]/0H`
    `
    end

    MAPTbIwKA, 19 Октября 2019

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

    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
    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
    /* --- PRINTF_BYTE_TO_BINARY macro's --- */
    #define PRINTF_BINARY_PATTERN_INT8 "%c%c%c%c%c%c%c%c"
    #define PRINTF_BYTE_TO_BINARY_INT8(i)    \
        (((i) & 0x80ll) ? '1' : '0'), \
        (((i) & 0x40ll) ? '1' : '0'), \
        (((i) & 0x20ll) ? '1' : '0'), \
        (((i) & 0x10ll) ? '1' : '0'), \
        (((i) & 0x08ll) ? '1' : '0'), \
        (((i) & 0x04ll) ? '1' : '0'), \
        (((i) & 0x02ll) ? '1' : '0'), \
        (((i) & 0x01ll) ? '1' : '0')
    
    #define PRINTF_BINARY_PATTERN_INT16 \
        PRINTF_BINARY_PATTERN_INT8              PRINTF_BINARY_PATTERN_INT8
    #define PRINTF_BYTE_TO_BINARY_INT16(i) \
        PRINTF_BYTE_TO_BINARY_INT8((i) >> 8),   PRINTF_BYTE_TO_BINARY_INT8(i)
    #define PRINTF_BINARY_PATTERN_INT32 \
        PRINTF_BINARY_PATTERN_INT16             PRINTF_BINARY_PATTERN_INT16
    #define PRINTF_BYTE_TO_BINARY_INT32(i) \
        PRINTF_BYTE_TO_BINARY_INT16((i) >> 16), PRINTF_BYTE_TO_BINARY_INT16(i)
    #define PRINTF_BINARY_PATTERN_INT64    \
        PRINTF_BINARY_PATTERN_INT32             PRINTF_BINARY_PATTERN_INT32
    #define PRINTF_BYTE_TO_BINARY_INT64(i) \
        PRINTF_BYTE_TO_BINARY_INT32((i) >> 32), PRINTF_BYTE_TO_BINARY_INT32(i)
    /* --- end macros --- */
    
    #include <stdio.h>
    int main() {
        long long int flag = 1648646756487983144ll;
        printf("My Flag "
               PRINTF_BINARY_PATTERN_INT64 "\n",
               PRINTF_BYTE_TO_BINARY_INT64(flag));
        return 0;
    }

    govnokod3r, 18 Октября 2019

    Комментарии (68)
  8. Assembler / Говнокод #25970

    −1

    1. 1
    stwu      r1, -0x18(r1)

    PPC как бы говорит нам

    nymuHckuu_nemyx, 17 Октября 2019

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

    +1

    1. 1
    public int HowManyHoursWillGoBackForConvertingUkToUtc(DateTime ukTime) => IsAlreadyGoForward(ukTime) ? 1 : 0;

    когда название говорит само за себя

    govnoBet, 17 Октября 2019

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

    +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
    <?php
    
    require_once '../vendor/autoload.php';
    require_once 'functions.php';
    require_once 'KPFile.php';
    require_once 'KPLogger.php';
    
    use Intervention\Image\ImageManagerStatic as Шакализатор;
    
    Шакализатор::configure(array('driver' => 'imagick'));
    
    $logger = new KPLogger();
    
    function сжать(KPFile $шакал, $степеньСжатия, Array $ебучесть, $output) {
        $индексЕбучести = 0;
        if (!is_null($ебучесть[0])) {
            $индексЕбучести = $ебучесть[0];
        }
        if (!is_null($ебучесть[1]) && ($ебучесть[1] > $ебучесть[0])) {
            $индексЕбучести = $ебучесть[1];
        }
    
        $img = Шакализатор::make($шакал->path);
        $img->resize($ебучесть[0], $ебучесть[1], function ($constraint) {
            $constraint->aspectRatio();
            $constraint->upsize();
        });
        if ($img->mime() !== 'image/jpeg') {
            $img->encode('jpg', 100);
        }
        $img->save($output."$шакал->name-$индексЕбучести.jpg", $степеньСжатия);
    }
    
    function сжатьВсехШакалов($path, $степеньСжатия, $ебучестьШакалов, $output) {
        global $logger;
        $files = scandir($path);
        foreach($files as $key => $file) {
            $logger->colorLogWithFiles('blue', $file, $key);
            try {
                $шакал = new KPFile($path.$file);
                if ($шакал->type !== KPFile::FILE_TYPE_IMAGE) {
                    continue;
                }
                if (trim($шакал->name) == '') {
                    throw new Exception("file=$file, kpFileName=$шакал->name");
                }
                foreach ($ебучестьШакалов as $ебучесть) {
                    сжать($шакал, $степеньСжатия, $ебучесть, $output);
                }
            } catch (Exception $e) {
                $logger->exception($e, $key);
            }
        }
    }
    
    $степеньСжатия = 22;
    $ебучестьШакалов = [
        [60, 60],
        [38, 38]
    ];
    сжатьВсехШакалов('dataHeavy/carsOrig/', $степеньСжатия, $ебучестьШакалов, "../public/img/cars/");
    
    
    $logger->colorLogWithFiles('blue', '10/10 *** еб/шакалов', null, "\n");

    shakal of jpeg-street

    raduloh, 17 Октября 2019

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