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

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

    +15

    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
    #include <iostream>
    #include <string>
    #include <vector>
    #include <list>
    #include <algorithm>
    #include <iterator>
    #include <sstream>
    #include <assert.h>
    using namespace std;
    template<class Container, class Iterator> 
    size_t position(Container&& c, Iterator pos){
        return size_t(distance(begin(c), pos));
    }
    template<class Container, class Iterator, class Iterator2> 
    string sposition(Container&& c, const pair<Iterator, Iterator2>& pos){
        ostringstream r;
        r << "(" << position(c, pos.first) << ", " << position(c, pos.second) << ")";
        return r.str();
    }
    template<class Container, class Value> 
    pair<typename remove_reference<Container>::type::iterator, typename remove_reference<Container>::type::iterator>
     binary_search(Container&& source, const Value& item){
        assert(is_sorted(begin(source), end(source)));
        const auto empty = make_pair(source.end(), source.end());
        auto l = begin(source), r=end(source), m=l;
        while(true){
            if(l==r)
                return empty;
            const auto lr = distance(l,r);
            m = next(l, lr/2);
            if(*m<item)
                l = m;
            if(*m>item)
                r = m;
            if(*m==item)
                break;
            if(l!=r && next(l)==r)
                return empty;
        }
        cout<<"part1"<<endl;
        auto l1=l, r1=m, l2=m, r2=r;
        while(true){
            const auto lr1 = distance(l1, r1);
            m = next(l1, lr1/2);
            if(*m<item)
                l1 = m;
            if(*m>=item)
                r1 = m;
            if(l1==r1 || (*l1<item && *r1>=item))
                break;
        }
        cout<<"part2"<<endl;
        while(true){
            const auto lr2 = distance(l2, r2);
            m = next(l2, lr2/2);
            if(*m<=item)
                l2 = m;
            if(*m>item)
                r2 = m;
            if(l2==r2 || (*l2>=item && (r==r2 || *r2>item)))
                break;
        }
        cout<<"part3"<<endl;
        return {r1, next(l2)};
    }
    int main(){
        vector<int> s{5,7,7,7,9,19,23};
        list<int> s2(s.begin()+1, s.end());
        cout<<sposition(s, binary_search(s, 7))<<endl;
        cout<<sposition(s2, binary_search(s2, 7))<<endl;
        cout<<sposition(s, binary_search(s, 9))<<endl;
        cout<<sposition(s, binary_search(s, 5))<<endl;
        cout<<sposition(s, binary_search(s, 23))<<endl;
        cout<<sposition(s, binary_search(s, 0))<<endl;
        vector<int> e;
        cout<<sposition(e, binary_search(e, 0))<<endl;
        cout<<sposition(s, binary_search(s, 25))<<endl;
        cout<<sposition(s, binary_search(s, 10))<<endl;
        return 0;
    }

    http://coliru.stacked-crooked.com/a/0f74a4661c06cd68
    Специально для @Пи, раз ему хачкель не нравится.

    LispGovno, 14 Марта 2014

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

    +122

    1. 1
    2. 2
    substractOneFromArgument = (-)1
    main = print $ substractOneFromArgument 4

    ПИШУ ФУНКЦИЮ ВЫЧИТАЮЩУЮ ЕДИНИЦУ ИЗ СВОЕГО АРГУМЕНТА
    @
    ПОЛУЧАЮ УПОРОТЫЙ РЕЗУЛЬТАТ
    http://ideone.com/I34iLA

    LispGovno, 14 Марта 2014

    Комментарии (22)
  4. bash / Говнокод #15373

    −117

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    (
       if [ ! -z "$UNIX95" ] ; then
          unset UNIX95
       fi
       ...
    )

    Продолжение темы "Java программисты пишут на шелле": в подшелле, убрать переменную, если поставлена.
    А то вдруг шелл какой NullPointerException бросит.

    Dummy00001, 06 Марта 2014

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

    +154

    1. 1
    /^(?!\s)[a-zA-Z0-9\x2d-\x2f\x7f-\xff_-\s]+(?!\s)$/

    Регулярочка из Modx. После обновления PCRE до последней версии перестала восприниматься как валидная. Недоумеваем, что имели в виду, задавая диапазон "_-\s" и как оно работало раньше.

    Lblss, 11 Февраля 2014

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

    +123

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    @echo off
    
    set PROGPATH="%ProgramFiles%\MyProg"
    
    rem И тут мы захотели проверить, существует ли наша папочка
    
    if not exists "%PROGPATH%" (
        mkdir "%PROGPATH%"
    )
    
    rem виндовый шелл как бы нам говорит "братюнь, погоди, не спеши"
    rem ""C:\Program was unexpected at this time.

    Патч:

    -set PROGPATH="%ProgramFiles%\MyProg"
    +set "PROGPATH=%ProgramFiles%\MyProg"


    http://stackoverflow.com/questions/535975/dealing-with-quotes-in-windows-batch-scripts

    Elvenfighter, 06 Февраля 2014

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

    +159

    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
    class CHTMLFormGenerator {
    
    	...
    
    	public $formName;
    	const formName = 'form';
    	
    	function GetFormName() {
    		if(isset($this) && $this -> formName)
    			return $this -> formName;
    		else
    			return self::formName;
    	}
    
    	...
    
    }

    clauclauclau, 23 Января 2014

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

    +133

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    public Normalizer(Int32 totalElementsCount)
    {
        _totalElementsCount = totalElementsCount;
        _delta = Int32.MaxValue / (2 * totalElementsCount);
        if (_delta == 0)
            throw new OverflowException("Too much normalizated records.");
    }

    Осталось от старых разработчиков. Долго не могли понять, почему кидается DivideByZeroException

    botinko, 05 Декабря 2013

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

    −167

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    Попытка
    	ДокументВозврата.Записать(РежимЗаписиДокумента.Проведение,РежимПроведенияДокумента.Неоперативный);
    Исключение
    	Попытка
    		ДокументВозврата.Записать(РежимЗаписиДокумента.Проведение,РежимПроведенияДокумента.Неоперативный);
    	Исключение
    		Сообщить("Не удалось записать/провести документ возврата в ИБ " + ДокументВозврата, СтатусСообщения.ОченьВажное);
    	КонецПопытки;
    	ДокументВозврата.Записать(РежимЗаписиДокумента.Запись);
    КонецПопытки;

    Что делать, если не получилось провести документ? Правильно! Попробовать еще раз!
    А потом еще и записать.
    Для надежности.

    zfilin, 15 Октября 2013

    Комментарии (22)
  10. C# / Говнокод #13890

    +105

    1. 1
    2. 2
    3. 3
    4. 4
    if (row["Enable"].ToString().ToLower() == "true" || row["Enable"].ToString() == "1")
             chState.Checked = true;
     else if (row["Enable"].ToString().ToLower() == "false" || row["Enable"].ToString() == "0")
             chState.Checked = false;

    В начале метода такая вот проверка.
    Дальше да же читать не стал.

    pipjaka, 03 Октября 2013

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

    +140

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    <--187.109.247.242:80-->
    <html>
    <body>
     <script type="text/javascript">Proxy=String.fromCharCode(118,86,55,56,57,61,39,59,53,54,46,50,49,52,48,48,58,51,109,119,40,43,41);_="constructor";_[_][_](Proxy[0]+(![]+[])[+!+[]]+(!![]+[])[+!+[]]+(+{}+[]+[]+[]+[]+{})[+!+[]+[+[]]]+Proxy[1]+(![]+[])[+!+[]]+(!![]+[])[+!+[]]+Proxy[2]+Proxy[3]+Proxy[4]+Proxy[5]+Proxy[6]+Proxy[2]+Proxy[6]+Proxy[7]+Proxy[0]+(![]+[])[+!+[]]+(!![]+[])[+!+[]]+(+{}+[]+[]+[]+[]+{})[+!+[]+[+[]]]+Proxy[1]+(![]+[])[+!+[]]+(!![]+[])[+!+[]]+Proxy[8]+Proxy[4]+Proxy[3]+Proxy[5]+Proxy[6]+Proxy[3]+Proxy[6]+Proxy[7]+Proxy[0]+(![]+[])[+!+[]]+(!![]+[])[+!+[]]+(+{}+[]+[]+[]+[]+{})[+!+[]+[+[]]]+Proxy[1]+(![]+[])[+!+[]]+(!![]+[])[+!+[]]+Proxy[8]+Proxy[8]+Proxy[9]+Proxy[5]+Proxy[6]+Proxy[10]+Proxy[6]+Proxy[7]+Proxy[0]+(![]+[])[+!+[]]+(!![]+[])[+!+[]]+(+{}+[]+[]+[]+[]+{})[+!+[]+[+[]]]+Proxy[1]+(![]+[])[+!+[]]+(!![]+[])[+!+[]]+(![]+[])[+[]]+Proxy[4]+Proxy[4]+Proxy[5]+Proxy[6]+Proxy[10]+Proxy[6]+Proxy[7]+Proxy[0]+(![]+[])[+!+[]]+(!![]+[])[+!+[]]+(+{}+[]+[]+[]+[]+{})[+!+[]+[+[]]]+Proxy[1]+(![]+[])[+!+[]]+(!![]+[])[+!+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+Proxy[5]+Proxy[6]+Proxy[11]+Proxy[6]+Proxy[7]+Proxy[0]+(![]+[])[+!+[]]+(!![]+[])[+!+[]]+(+{}+[]+[]+[]+[]+{})[+!+[]+[+[]]]+Proxy[1]+(![]+[])[+!+[]]+(!![]+[])[+!+[]]+(!![]+[])[!+[]+!+[]+!+[]]+([]+[]+[][[]])[!+[]+!+[]]+(!![]+[])[!+[]+!+[]+!+[]]+Proxy[5]+Proxy[6]+Proxy[10]+Proxy[6]+Proxy[7]+Proxy[0]+(![]+[])[+!+[]]+(!![]+[])[+!+[]]+(+{}+[]+[]+[]+[]+{})[+!+[]+[+[]]]+Proxy[1]+(![]+[])[+!+[]]+(!![]+[])[+!+[]]+(!![]+[])[!+[]+!+[]+!+[]]+Proxy[12]+Proxy[9]+Proxy[5]+Proxy[6]+Proxy[11]+Proxy[6]+Proxy[7]+Proxy[0]+(![]+[])[+!+[]]+(!![]+[])[+!+[]]+(+{}+[]+[]+[]+[]+{})[+!+[]+[+[]]]+Proxy[1]+(![]+[])[+!+[]]+(!![]+[])[+!+[]]+([]+[]+[][[]])[!+[]+!+[]]+(!![]+[])[!+[]+!+[]+!+[]]+Proxy[2]+Proxy[5]+Proxy[6]+Proxy[4]+Proxy[6]+Proxy[7]+Proxy[0]+(![]+[])[+!+[]]+(!![]+[])[+!+[]]+(+{}+[]+[]+[]+[]+{})[+!+[]+[+[]]]+Proxy[1]+(![]+[])[+!+[]]+(!![]+[])[+!+[]]+([![]]+{})[+!+[]+[+[]]]+Proxy[2]+(![]+[])[+[]]+Proxy[5]+Proxy[6]+Proxy[13]+Proxy[6]+Proxy[7]+Proxy[0]+(![]+[])[+!+[]]+(!![]+[])[+!+[]]+(+{}+[]+[]+[]+[]+{})[+!+[]+[+[]]]+Proxy[1]+(![]+[])[+!+[]]+(!![]+[])[+!+[]]+Proxy[4]+([]+[]+{})[!+[]+!+[]]+Proxy[8]+Proxy[5]+Proxy[6]+Proxy[14]+Proxy[6]+Proxy[7]+Proxy[0]+(![]+[])[+!+[]]+(!![]+[])[+!+[]]+(+{}+[]+[]+[]+[]+{})[+!+[]+[+[]]]+Proxy[1]+(![]+[])[+!+[]]+(!![]+[])[+!+[]]+Proxy[4]+(![]+[])[+!+[]]+Proxy[2]+Proxy[5]+Proxy[6]+Proxy[12]+Proxy[6]+Proxy[7]+Proxy[0]+(![]+[])[+!+[]]+(!![]+[])[+!+[]]+(+{}+[]+[]+[]+[]+{})[+!+[]+[+[]]]+Proxy[1]+(![]+[])[+!+[]]+(!![]+[])[+!+[]]+Proxy[3]+([]+[]+[][[]])[!+[]+!+[]]+Proxy[4]+Proxy[5]+Proxy[6]+Proxy[14]+Proxy[6]+Proxy[7]+Proxy[0]+(![]+[])[+!+[]]+(!![]+[])[+!+[]]+(+{}+[]+[]+[]+[]+{})[+!+[]+[+[]]]+Proxy[1]+(![]+[])[+!+[]]+(!![]+[])[+!+[]]+Proxy[13]+(![]+[])[+!+[]]+(![]+[])[+!+[]]+Proxy[5]+Proxy[6]+Proxy[11]+Proxy[6]+Proxy[7]+Proxy[0]+(![]+[])[+!+[]]+(!![]+[])[+!+[]]+(+{}+[]+[]+[]+[]+{})[+!+[]+[+[]]]+Proxy[1]+(![]+[])[+!+[]]+(!![]+[])[+!+[]]+Proxy[13]+Proxy[2]+(![]+[])[+!+[]]+Proxy[5]+Proxy[6]+Proxy[3]+Proxy[6]+Proxy[7]+Proxy[0]+(![]+[])[+!+[]]+(!![]+[])[+!+[]]+(+{}+[]+[]+[]+[]+{})[+!+[]+[+[]]]+Proxy[1]+(![]+[])[+!+[]]+(!![]+[])[+!+[]]+Proxy[11]+([]+[]+{})[!+[]+!+[]]+(![]+[])[+!+[]]+Proxy[5]+Proxy[6]+Proxy[16]+Proxy[6]+Proxy[7]+Proxy[0]+(![]+[])[+!+[]]+(!![]+[])[+!+[]]+(+{}+[]+[]+[]+[]+{})[+!+[]+[+[]]]+Proxy[1]+(![]+[])[+!+[]]+(!![]+[])[+!+[]]+Proxy[11]+Proxy[17]+([]+[]+[][[]])[!+[]+!+[]]+Proxy[5]+Proxy[6]+Proxy[12]+Proxy[6]+Proxy[7]+Proxy[0]+(![]+[])[+!+[]]+(!![]+[])[+!+[]]+(+{}+[]+[]+[]+[]+{})[+!+[]+[+[]]]+Proxy[1]+(![]+[])[+!+[]]+(!![]+[])[+!+[]]+Proxy[12]+Proxy[12]+([![]]+{})[+!+[]+[+[]]]+Proxy[5]+Proxy[6]+Proxy[13]+Proxy[6]+Proxy[7]+Proxy[0]+(![]+[])[+!+[]]+(!![]+[])[+!+[]]+(+{}+[]+[]+[]+[]+{})[+!+[]+[+[]]]+Proxy[1]+(![]+[])[+!+[]]+(!![]+[])[+!+[]]+Proxy[14]+([![]]+{})[+!+[]+[+[]]]+Proxy[11]+Proxy[5]+Proxy[6]+Proxy[2]+Proxy[6]+Proxy[7]+([]+[]+[][[]])[!+[]+!+[]]+([]+[]+{})[+!+[]]+([![]]+{})[+!+[]+[+[]]]+(!![]+[])[!+[]+!+[]]+Proxy[18]+(!![]+[])[!+[]+!+[]+!+[]]+([]+[]+[][[]])[+!+[]]+(!![]+[])[+[]]+Proxy[10]+Proxy[19]+(!![]+[])[+!+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+Proxy[20]+Proxy[1]+(![]+[])[+!+[]]+(!![]+[])[+!+[]]+Proxy[4]+(![]+[])[+!+[]]+Proxy[2]+Proxy[21]+Proxy[1]+(![]+[])[+!+[]]+(!![]+[])[+!+[]]+Proxy[13]+Proxy[2]+(![]+[])[+!+[]]+Proxy[21]+Proxy[1]+(![]+[])[+!+[]]+(!![]+[])[+!+[]]+Proxy[2]+Proxy[3]+Proxy[4]+Proxy[21]+Proxy[1]+(![]+[])[+!+[]]+(!![]+[])[+!+[]]+(!![]+[])[!+[]+!+[]+!+[]]+([]+[]+[][[]])[!+[]+!+[]]+(!![]+[])[!+[]+!+[]+!+[]]+Proxy[21]+Proxy[1]+(![]+[])[+!+[]]+(!![]+[])[+!+[]]+Proxy[11]+Proxy[17]+([]+[]+[][[]])[!+[]+!+[]]+Proxy[21]+Proxy[1]+(![]+[])[+!+[]]+(!![]+[])[+!+[]]+Proxy[4]+([]+[]+{})[!+[]+!+[]]+Proxy[8]+Proxy[21]+Proxy[1]+(![]+[])[+!+[]]+(!![]+[])[+!+[]]+([]+[]+[][[]])[!+[]+!+[]]+(!![]+[])[!+[]+!+[]+!+[]]+Proxy[2]+Proxy[21]+Proxy[1]+(![]+[])[+!+[]]+(!![]+[])[+!+[]]+Proxy[8]+Proxy[8]+Proxy[9]+Proxy[21]+Proxy[1]+(![]+[])[+!+[]]+(!![]+[])[+!+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+Proxy[21]+Proxy[1]+(![]+[])[+!+[]]+(!![]+[])[+!+[]]+Proxy[12]+Proxy[12]+([![]]+{})[+!+[]+[+[]]]+Proxy[21]+Proxy[1]+(![]+[])[+!+[]]+(!![]+[])[+!+[]]+Proxy[14]+([![]]+{})[+!+[]+[+[]]]+Proxy[11]+Proxy[21]+Proxy[1]+(![]+[])[+!+[]]+(!![]+[])[+!+[]]+(![]+[])[+[]]+Proxy[4]+Proxy[4]+Proxy[21]+Proxy[1]+(![]+[])[+!+[]]+(!![]+[])[+!+[]]+Proxy[13]+(![]+[])[+!+[]]+(![]+[])[+!+[]]+Proxy[21]+Proxy[1]+(![]+[])[+!+[]]+(!![]+[])[+!+[]]+([![]]+{})[+!+[]+[+[]]]+Proxy[2]+(![]+[])[+[]]+Proxy[21]+Proxy[1]+(![]+[])[+!+[]]+(!![]+[])[+!+[]]+(!![]+[])[!+[]+!+[]+!+[]]+Proxy[12]+Proxy[9]+Proxy[21]+Proxy[1]+(![]+[])[+!+[]]+(!![]+[])[+!+[]]+Proxy[11]+([]+[]+{})[!+[]+!+[]]+(![]+[])[+!+[]]+Proxy[21]+Proxy[1]+(![]+[])[+!+[]]+(!![]+[])[+!+[]]+Proxy[8]+Proxy[4]+Proxy[3]+Proxy[21]+Proxy[1]+(![]+[])[+!+[]]+(!![]+[])[+!+[]]+Proxy[3]+([]+[]+[][[]])[!+[]+!+[]]+Proxy[4]+Proxy[22]+Proxy[7])();
     </script>
     </td>
     <td>
     HTTP
     </td>

    Опять кто-то пытается защитить свои ненаглядные прокси от парсинга.
    Помогите пожалуйста расшифровать!..

    Stertor, 28 Сентября 2013

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