1. Python / Говнокод #18477

    −146

    1. 1
    http://bugs.python.org/issue16203

    Меня всегда интересовало, зачем в питоне аж 3 функции поиска в регекспах re.search, re.match, который re.search("^"+regexp) и re.findall, который просто возващает список без всяких извратов (как в перле?). И вот я узнал, что этого гавна мало - в 3.4 добавили re.fullmatch, который re.search("^"+regexp+"$"). Нахуя так жить?

    3_14dar, 14 Июля 2015

    Комментарии (49)
  2. PHP / Говнокод #18476

    +141

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    /* Костылек START */
    // Ибо всё тлен
    function m_r_e_s(&$arr){
    	foreach($arr as $k=>$v){
    		if(is_array($v)) m_r_e_s($v);
    		else $arr[$k]=mysql_real_escape_string($v);
    	}
    }
    m_r_e_s($_GET);
    m_r_e_s($_POST);
    /* Костылек END */

    VokaMut, 13 Июля 2015

    Комментарии (3)
  3. Java / Говнокод #18475

    +70

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    List<Integer> positionList = new ArrayList<Integer>(positions.keySet());
    Collections.sort(positionList, new Comparator<Integer>() {
        @Override
        public int compare(Integer lhs, Integer rhs) {
            if (lhs > rhs) {
                return 1;
            } else if (lhs < rhs) {
                return -1;
            }
            return 0;
        }
    });

    Видать разработчику за кол-во написанных строк платили...

    tony777, 13 Июля 2015

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

    +144

    1. 1
    uint8_t value = arg & 1 ? arg ^ 1 : arg;

    jangolare, 13 Июля 2015

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

    +143

    1. 1
    2. 2
    container.append(renderer.domElement);
         container.find('canvas').attr('id', 'mCanvas');

    меня часто минусуют тут, но всё же рискну запостить этот самородок из мира threejs

    makc3d, 13 Июля 2015

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

    +142

    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
    int do_execve(const char *filename,
    	const char __user *const __user *__argv,
    	const char __user *const __user *__envp,
    	struct pt_regs *regs)
    {
    	struct user_arg_ptr argv = { .ptr.native = __argv };
    	struct user_arg_ptr envp = { .ptr.native = __envp };
        /* exec mt_debug*/
        int ret;
        int retry = 3;
        do{
            ret = do_execve_common(filename, argv, envp, regs);
            printk(KERN_DEBUG"[exec] %s(%d)\n", filename, retry);
        }while( -999 == ret && retry-- > 0);
    	return ret;
    }

    Ядро от MTK. Они логгируют каждый exec на уровне ядра.

    Azq2, 12 Июля 2015

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

    +153

    1. 1
    2. 2
    3. 3
    Оторвемся чуть от политики. 
    Вопрос у меня такой.
    Надо мне зарегать около полу сотни доменных имен. Вот собственно вопрос кто знает регистратор имен. подешевле и что бы мог регать  имена из файлика например.

    Сразу же улучшу
    https://codebabes.com/

    Vasiliy, 11 Июля 2015

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

    −99

    1. 1
    2. 2
    3. 3
    # Напишите псевдокод который инвертирует строки, например, "abc" -> "cba"
    
    "abc".split("").reverse.join("").to_pseudocode

    Вопрос в анкете на должность Ruby-программиста

    zoer, 11 Июля 2015

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

    +138

    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
    /*
    
    Исходный код бутлоадера непонятными букафками
    vk.com/wctstudio
    
    */
    
    Lp BP hm	// В регистр SI помещаем адрес сообщения
    Pi AL aa	// Вызываем функцию печати строки
    Pl OP		// Вечный цикл для корректной работы программы
    
    /* Процедура печати символа (процедура 1) */
    
    Le AP		// Помещаем в регистр AH число AP (15). Объясняем БИОС-у то, 
    		// что нам нужно вывести один символ на экран. В регистре AL
    		// хранится ASCII значение нашего сообщения
    Lh AA		// В регистр BH - 0, соответственно, это и есть номер страницы
    Ld AH		// Ну а в регистр BL - 7, это значит, что у нас будет выводиться
    		// светло-серый текст на черном фоне
    
    Mn BA		// Как только видим Mn - сразу вспоминаем, что это прерывание
    		// На данный момент это прерывание 16 (десятичная система)
    		// а в hex - знакомое нам прерывание 0x10.
    		// Это прерывание BIOS - видео сервис
    
    Md		// Выходим из процедуры
    
    /* Процедура вывода строки на экран (процедура 2) */
    
    // вывод символа (процедура 3)
    
    Ik AE		// Помещаем в регистр AL значение из SI
    Eg		// Инкренмент (увеличение на единицу) регистра SI
    
    Ai MA		// Если значение регистра AL - 0 (т.е. строка закончилась), то
    He AF		// заканчиваем выполнение программы (выполнение процедуры 4)
    		// - 5 байт вперед на команду Md (выход из программы)
    
    Pi PN oo	// Если же строка не закончилась, то выполняем процедуру 1
    		// т.е. выводим символ, который находится в AL
    
    Pl OE           // Берем следующий символ из строки (выполнение процедуры 3)
    
    Md		// Все, закругляемся и выходим из программы
    
    FH GD HE CA	// ASCII: Wct (пробел)
    GO GP GF CA 	// 	  one (пробел)
    GM GO HG GF	//	  love
    Aa		// Конец строки обязан заканчиваться нулем, т.е. Aa :)
    
    /* У нас осталось свободное место, до 512 байт нам нужно написать недостающие Aa (0) */
    
    Aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa
    aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa 
    aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa 
    aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa 
    aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa 
    aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa 
    aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa 
    aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa 
    aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa 
    aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa 
    aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa 
    aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa 
    aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa 
    aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa 
    aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa 
    aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa 
    aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa 
    aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa 
    aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa 
    aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa 
    aa aa aa aa aa aa aa
    
    // До 512 байт нам не хватает всего двух байтов..
    
    Ff KK		// FF KK - подпись загрузчика, чтобы компьютер понял,
    		// что это загрузчик, и его необходимо загрузить в
    		// память. В windows есть подписи "MZ" & "PE", а тут
    		// такое вот дело.

    Не многие поймут этот код. Вернее, не многие лишь поймут код сей. Зачем это? Отвечаю: для того, чтобы помять моск.
    github.com/Mihip/Wct

    Mihip, 10 Июля 2015

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

    +145

    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
    Xml: {
                parse: function (text) {
                    var xmlDocument;
                    if (window.DOMParser) {
                        var parser = new DOMParser();
                        xmlDocument = parser.parseFromString(text, "text/xml")
                    } else {
                        if (window.ActiveXObject) {
                            try {
                                xmlDocument = new ActiveXObject("Msxml2.DOMDocument.6.0")
                            } catch (err6) {
                                try {
                                    xmlDocument = new ActiveXObject("Msxml2.DOMDocument.5.0")
                                } catch (err5) {
                                    try {
                                        xmlDocument = new ActiveXObject("Msxml2.DOMDocument.4.0")
                                    } catch (err4) {
                                        try {
                                            xmlDocument = new ActiveXObject("MSXML2.DOMDocument.3.0")
                                        } catch (err3) {
                                            try {
                                                xmlDocument = new ActiveXObject("Microsoft.XMLDOM")
                                            } catch (err2) {
                                                Wicket.Log.error("Cannot create DOM document: " + err2)
                                            }
                                        }
                                    }
                                }
                            }
                            if (xmlDocument) {
                                xmlDocument.async = "false";
                                if (!xmlDocument.loadXML(text)) {
                                    Wicket.Log.error("Error parsing response: " + text)
                                }
                            }
                        }
                    }
                    return xmlDocument
                }
            },

    http://trudvsem.ru/

    alek0585, 10 Июля 2015

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