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

    В номинации:
    За время:
  2. Куча / Говнокод #20044

    +6

    1. 1
    2. 2
    Что вообще за херня, почему для каждого язычка(рантайма) делают свой пакетный менеджер? pip, npm, cabal, Quicklisp, opam, nuget, NPMчо там еще?
    И притом все они считают что для языка %LanguageName% всенепременно надо писать пакетный менеджер на нем самом.

    Вот например когда я что-то устанавливл через pip, какая-то там херня требует openssl-devel. И узнаю я это только по ошибкам компиляции, ну т.е. там какая-то поебень криптографическая вызывается из питона, оно при установке компилирует через GCC некое говно которое инклудит какое-то .h говно от openssl, но поскольку этого .h нет, оно обламывается на этапе компиляции. Какого хера я про это должен узнавать только на этапе компиляции блядь? Какого хера я должен вручную разруливать эти говнозависимости? А если например будет программа на руби которая использует программу на лиспе, которая использует программу на хаскеле использующую программу на окамле, то что мне, всю эту поеботу тоже руками разруливать по цепочке?

    https://blog.versioneye.com/2014/01/15/which-programming-language-has-the-best-package-manager/

    какие-то уебни еще сравнивают, какой язык имеет лучший пакетный менеджер... Мудачье! Кто вам сказал что делать для каждого ёбаного языка свой пакетный менеждер это хорошая идея и что среди них может быть "лучший"? Они все говно по определению. Нужно или некое стандартное API для общения между разными пакетными менеджеры разных языков, или один единый пакетный менеджер для всего и под все ОС(а не только Gentoo).

    j123123, 19 Мая 2016

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

    +6

    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
    public function generate_hash($options = null) {
            $string_length  = (isset($options["length"])) ? $options["length"] : 10;
            $use_lowercase  = (isset($options["lowercase"])) ? $options["lowercase"] : true;
            $use_uppercase  = (isset($options["uppercase"])) ? $options["uppercase"] : true;
            $lowercase      = array(
                "a",
                "b",
                "c",
                "d",
                "e",
                "f",
                "g",
                "h",
                "i",
                "j",
                "l",
                "m",
                "n",
                "o",
                "p",
                "q",
                "r",
                "s",
                "t",
                "u",
                "v",
                "w",
                "x",
                "y",
                "z"
            );
            $uppercase      = array(
                "A",
                "B",
                "C",
                "D",
                "E",
                "F",
                "G",
                "H",
                "I",
                "J",
                "L",
                "M",
                "N",
                "O",
                "P",
                "Q",
                "R",
                "S",
                "T",
                "U",
                "V",
                "W",
                "X",
                "Y",
                "Z"
            );
            $digits         = array(
                0,
                1,
                2,
                3,
                4,
                5,
                6,
                7,
                8,
                9
            );
            $arrays         = array_merge($lowercase, $uppercase);
            $final_string   = array();
            $final_string[] = $arrays[array_rand($arrays)];
            // чтобы первым символом не была цифра
            $arrays         = array_merge($arrays, $digits);
            for ($i = 0; $i < ($string_length - 1); $i++) {
                $final_string[] = $arrays[array_rand($arrays)];
            }
            $final_string = implode("", $final_string);
            return $final_string;
    }

    dgkj, 18 Мая 2016

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

    +6

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    $startDate = $dayCount != 7 ? ($_REQUEST["wDate"] ? $_REQUEST["wDate"] : date($dateFormat)) : ($_REQUEST["wDate"] ?
                    (date('w', strtotime($_REQUEST["wDate"])) == 1 ? $_REQUEST["wDate"] : (date('w',
                        strtotime($_REQUEST["wDate"])) ? date($dateFormat, strtotime($_REQUEST["wDate"]) -
                        (date('w', strtotime($_REQUEST["wDate"])) - 1) * 24 * 60 * 60) : date($dateFormat,
                        strtotime($_REQUEST["wDate"]) - 6 * 24 * 60 * 60))) : ($cDate == "Sun" ? date($dateFormat,
                        strtotime('Mon last week')) : date($dateFormat, strtotime('Mon this week'))));

    Хз что by ©senior shaurma developer

    pahhan, 06 Мая 2016

    Комментарии (20)
  5. C++ / Говнокод #19938

    +6

    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
    #include <iostream>
        using namespace std;
         
        struct One
        {
          bool operator==(const One &) { cout << "hello from One!" << endl; return true; }
          bool operator==(unsigned int) { cout << "hello from One!" << endl;  return true; }
        };
        One operator "" x( unsigned long long int ) { return One{}; }
        One operator "" xMAGICK( unsigned long long int ) { return One{}; }
         
        int main()
        {
          cout << (0xMAGICK == 0x);
         
          return 0;
        }

    http://ideone.com/gGYFce
    Расширяем множество шестнадцатеричных цифр при помощи UDL
    В C++17 осталось разрешить перегрузку операторов встроенных типов - вот тогда можно будет оторваться по-полной!

    gost, 05 Мая 2016

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

    +6

    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
    public static List<string[]> split(string s)
        {
            bool ins = false;
            int no = 3;
            var L = new List<string>();
            var Res = new List<string[]>();
            var B = new StringBuilder();
            foreach (var c in s)
            {
                switch (c)
                {
                    case '§':
                        if (ins)
                        {
                            ins = false;
                            L.Add(B.ToString());
                            if (no == 0)
                            {
                                Res.Add(L.ToArray<string>());
                                L.Clear();
                                no = 3;
                            }
                        }
                        else
                        {
                            ins = true;
                            B.Clear();
                        }
                        break;
                    case '|':
                        if (!ins) { no--; }
                        else B.Append(c);
                        break;
                    default:
                        if (ins) B.Append(c);
                        break;
                }
            }
            return Res;
        }

    Судя по наименованиям - типичная лаба школьника.
    Однако, автор - Сошников - евангелист мелкософта. Тот самый, который F# пропагандирует (катается с одной и той же лекцией уже несколько лет по разным конференциям; и, кстати, принимают его всегда восторженно).
    Пруф: http://stackoverflow.com/a/36888673/5045688

    koodeer, 27 Апреля 2016

    Комментарии (5)
  7. PHP / Говнокод #19783

    +6

    1. 1
    2. 2
    function pageOutput() {
    	foreach($GLOBALS as $var => $val) $$var = &$GLOBALS[$var];

    очередная находка..
    ...для тех, кто не уверен, какие переменные из global scope понадобятся...

    paulrudy, 08 Апреля 2016

    Комментарии (0)
  8. C++ / Говнокод #19731

    +6

    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
    #ifdef _WIN32
    ...
    #elif defined __linux__
                std::string path;
                char buff[PATH_MAX];
                ssize_t len = ::readlink("/proc/self/exe", buff, sizeof(buff)-1);
                if (len != -1)
                {
                  buff[len] = '\0';
                  path = buff;
                }
                else
                {
                    return -1;
                }
    
                int pos = path.rfind("/");
                if (pos == std::string::npos)
                    return - 1;
    
                path = path.substr(0, pos + 1);
                path += "updater";
                std::string sys_path = path;
                boost::replace_all(sys_path, " ", "\\ ");
                std::string rm = "rm -f ";
                rm += sys_path;
                system(rm.c_str());
                _data.save_2_file(core::tools::from_utf8(path));
                std::string chmod = "chmod 755 ";
                chmod += sys_path;
                system(chmod.c_str());
                system(sys_path.c_str());
    #endif //_WIN32

    Как правильно обновлять #mailru/icqdesktop на Linux, если вы понимаете о чём я.

    gmmephisto, 31 Марта 2016

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

    +6

    1. 1
    2. 2
    http://requests.readthedocs.org/en/master/
    Warning: Recreational use of other HTTP libraries may result in dangerous side-effects, including: security vulnerabilities, verbose code, reinventing the wheel, constantly reading documentation, depression, headaches, or even death.

    Не говнокод, даже не говнокоммент. Наоборот, хороший, годный комментарий.

    хуита, 29 Марта 2016

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

    +6

    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
    function utf8ToCp1251($s,$type="w") {
        if ((is_string($s) && strlen($s)>0) && ((mb_detect_encoding($s,'UTF-8,CP1251')) == "UTF-8"))    { 
            $out="";
            for ($c=0;$c<strlen($s);$c++)         { 
                $i=ord($s[$c]); 
                if ($i<=127) @$out.=$s[$c]; 
                if (@$byte2)     { 
                    $new_c2=($c1&3)*64+($i&63); 
                    $new_c1=($c1>>2)&5; 
                    $new_i=$new_c1*256+$new_c2; 
                    if ($new_i==1025) { 
                        $out_i=168; 
                    } else { 
                        if ($new_i==1105) { 
                            $out_i=184;
                        } else { 
                        $out_i=$new_i-848; 
                        } 
                    } 
                    @$out.=chr($out_i); 
                    $byte2=false; 
                } 
                
                if (($i>>5)==6)  { 
                  $c1=$i; 
                  $byte2=true; 
                } 
            } 
            return $out; 
        } 
        else return $s; 
    }

    Одна из стандартных функций битрикса.
    Видимо iconv им не знаком...

    tanur, 17 Марта 2016

    Комментарии (10)
  11. JavaScript / Говнокод #19639

    +6

    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
    $("#sendme").click(function(){
          $('#error').html('');
          $('.req').css('border-color','#fff');
          var name = $('#name').val();
          var phone = $('#phone').val();
          var email = $('#email').val();
          var day = $('#day').val();
          var year = $('#year').val();
          var msg = $('#message').val();
          if(name.length){
              if(phone.length){
                  if(day.length){
                      if(year.length){
                          if(isEmail(email)==true){
    
                                    //logic
    
                          }else{$('#error').html('Ошибка в адресе электронной почты!'); $('#email').css('border-color','#FF4141');}
                      }else{$('#error').html('Введите год рождения!'); $('#year').css('border-color','#FF4141');}
                  }else{$('#error').html('Введите день рождения!'); $('#day').css('border-color','#FF4141');}
              }else{$('#error').html('Введите номер телефона!'); $('#phone').css('border-color','#FF4141');}
          }else{$('#error').html('Введите свои имя и фамилию!'); $('#name').css('border-color','#FF4141');}
      });

    матрёшка!

    rollback, 16 Марта 2016

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