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

    +126

    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
    check =: 3 : 0
    a=.>;:y
    b=.|:(6,#y) $,'(){}[]'=/a
    b=.(-1 3 5{"(1)b) (1 3 5)}"(1) b
    c=.|:(3 2$i.6)([:+/[{[:|:])"(1 _) b
    no=._1
    n=.#c
    p=. 13 : 'I.*./"(1)(1 _1)="(1)(2+\(x{y))'
    while. n~:no do.
    no=.n
    cc =. |:c
    d=.~.(0 p cc),(1 p cc),(2 p cc)
    c=.((i.#c)-.(d,>:d)){c
    n=.#c
    end.
    n=0
    )
    
    samples =: '({[{}]{}[]})';'({}}{[{}]{}[]})';'({[{}]{}[]}';'({[{}]{}]})';'({[{}{}[]})';'';'{}'
    
    test =: 13 : 'check >y{samples'
    
    test"(0) i.7

    По мотивам http://govnokod.ru/15363

    Abbath, 06 Марта 2014

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

    +84

    1. 1
    // TODO: Add comment here to explain what we do

    нашёл на прасторах праектуса %))

    Pepper-X, 06 Марта 2014

    Комментарии (25)
  3. 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)
  4. Java / Говнокод #15372

    +77

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    List<DataContainer> dataContainers = w2pService.startProcess(type, id, locale.replaceAll("-", "_"), clientToken);
    			
    //prevent memory leak
    if(dataContainers != null){
        dataContainers.clear();
        dataContainers = null;
    }

    Насоздавал - предоврати за собой.

    pingw33n, 06 Марта 2014

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

    +139

    1. 1
    2. 2
    3. 3
    #if _FP_W_TYPE_SIZE < 32
    #error "Here's a nickel, kid. Go buy yourself a real computer."
    #endif

    https://chromium.googlesource.com/chromiumos/third_party/kernel-next/+/master/include/math-emu/quad.h

    absolut, 06 Марта 2014

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

    +147

    1. 1
    2. 2
    3. 3
    4. 4
    if(is_array($_REQUEST[$fieldname]))
    	$value = $_REQUEST[$fieldname];
    else
    	$value = trim($_REQUEST[$fieldname]);

    Если это не массив то всеравно используем его как массив.
    Код с популярной CRM.

    slirx, 06 Марта 2014

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

    −92

    1. 1
    sed 's/\(.*\)\t\(.*\)\t"\(.*\)"\t"\(.*\)"/<tr><td><a href="\2">\3<\/a><\/td><td>\4<\/td><td>\1<\/td><\/tr>/'

    Только sed, только хардкор ;)

    bormand, 06 Марта 2014

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

    −171

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

    NBQ, 06 Марта 2014

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

    +32

    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
    #include <iostream>
    #include <vector>
    #include <map>
    #include <algorithm>
    #include <iterator>
    #include <iomanip>
    using namespace std;
    
    vector<string> bracesExpressionExamples = {
    	"({[{}]{}[]})",
    	"({}}{[{}]{}[]})",
    	"({[{}]{}[]}",
    	"({[{}]{}]})",
    	"({[{}{}[]})",
    	"",
    	"{}"
    };
    
    string openBrace = "({[";
    string closeBrace = ")}]";
    
    typedef map<char, char> otc;
    const otc& openToCloseBrace(){
    	static const otc o2c([](){
    		otc o2c;
    		transform(
    			openBrace.begin(), openBrace.end(),
    			closeBrace.begin(),
    			inserter(o2c, o2c.begin()),
    			[](const char open, const char close){return make_pair(open, close);}
    		);
    		return o2c;
    	}());
    	return o2c; 
    }
    
    bool checkBraces (const string& e){
    	vector<char> s;
    	for(const char b: e)
    		if(string::npos!=openBrace.find(b))
    			s.push_back(openToCloseBrace().at(b));
    		else if(string::npos!=closeBrace.find(b) && (!s.empty()) && b==s.back())
    			s.pop_back();
    		else return false;
    	return s.empty();
    }
    
    int main() {
    	cout<<boolalpha;
    	transform(
    		bracesExpressionExamples.begin(),
    		bracesExpressionExamples.end(),
    		ostream_iterator<bool>(cout, "\n"),
    		checkBraces);
    	return 0;
    }

    http://ideone.com/AbO4tw
    Кот с собеседований.
    Проверка правильности расстановки скобок для каждого выражения из bracesExpressionExamples.

    USB, 05 Марта 2014

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

    +127

    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
    import Data.List
    import Data.Maybe
    checkBraces "" = True
    checkBraces e = checkBrace e [] where
    	openBraces = "({["
    	closeBraces = ")}]"
    	braceToBrace fromBraces toBraces brace = toBraces!!(fromJust $ elemIndex brace fromBraces)
    	otcBrace = braceToBrace openBraces closeBraces
    	checkBrace (c:e) s | elem c openBraces = checkBrace e ((otcBrace c):s)
    	checkBrace (c:e) (h:s) | (elem c closeBraces) && (h==c) = checkBrace e s
    	checkBrace (_:e) _ = False
    	checkBrace [] [] = True
    	checkBrace [] _ = False
    main = mapM_ (print . checkBraces) bracesExpressionExamples where
    	bracesExpressionExamples = 
    		[
    			"({[{}]{}[]})",
    			"({}}{[{}]{}[]})",
    			"({[{}]{}[]}",
    			"({[{}]{}]})",
    			"({[{}{}[]})",
    			"",
    			"{}"
    		]

    http://ideone.com/sZ9tiN
    Кот с собеседований.
    Проверка правильности расстановки скобок для каждого выражения из bracesExpressionExamples.

    USB, 05 Марта 2014

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