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

    +124.3

    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
    [ $(echo $a|cut -c$((${#a}-1))-) = "gz" ] && echo "Hello, world!"
    
    [ $(echo $a|sed "s/.*\(..\)/\1/") = "gz" ] && echo "Hello, world!"
    echo $a|sed -e"s/.*gz$/Hello, world\!/" -et -eD
    
    expr $a : .*gz >/dev/null && echo "Hello, world!"
    [ $(expr $a : '.*\(..\)') = "gz" ] && echo "Hello, world!"
    
    echo "ifelse(substr($a,eval(len($a)-2)),gz,\`Hello, world! ')"|m4
    
    case $a in *gz) echo "Hello, world!";; esac
    
    echo $a|emacs -batch -eval '(defun f (arg) "M") (if (string= (substring arg -2) "gz") (princ "Hello, world!\n")) )' -f f

    2168-му посвящается...

    Задача: Если последние два символа переменной "gz", то вывести "Hello, world!".
    Решение проблемы от поклонников разных инструментов. awk, perl и всякие tcl не писал, поскольку там не будет говнокода.
    11 строка, то, как обычно пишу я. ИЧСХ, все примеры, кроме последнего, строго соответствуют POSIX.2:)

    nil, 26 Ноября 2009

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

    +126.7

    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
    covered({tee,_,X,Y,1}) -> [{X,Y},{X-1,Y-1},{X-1,Y},{X-1,Y+1}];
    covered({tee,_,X,Y,2}) -> [{X,Y},{X,Y+1},{X+1,Y+1},{X-1,Y+1}];
    covered({tee,_,X,Y,3}) -> [{X,Y},{X+1,Y},{X+1,Y+1},{X+1,Y-1}];
    covered({tee,_,X,Y,4}) -> [{X,Y},{X,Y-1},{X+1,Y-1},{X-1,Y-1}];
    covered({l1,_,X,Y,1})  -> [{X+1,Y-1},{X+1,Y},{X+1,Y+1},{X,Y+1}];
    covered({l1,_,X,Y,2})  -> [{X-1,Y-1},{X,Y-1},{X+1,Y-1},{X+1,Y}];
    covered({l1,_,X,Y,3})  -> [{X-1,Y-1},{X-1,Y},{X-1,Y+1},{X,Y-1}];
    covered({l1,_,X,Y,4})  -> [{X-1,Y+1},{X,Y+1},{X+1,Y+1},{X-1,Y}];
    covered({l2,_,X,Y,1})  -> [{X+1,Y-1},{X+1,Y},{X+1,Y+1},{X,Y-1}];
    covered({l2,_,X,Y,2})  -> [{X-1,Y-1},{X,Y-1},{X+1,Y-1},{X-1,Y}];
    covered({l2,_,X,Y,3})  -> [{X-1,Y-1},{X-1,Y},{X-1,Y+1},{X,Y+1}];
    covered({l2,_,X,Y,4})  -> [{X-1,Y+1},{X,Y+1},{X+1,Y+1},{X+1,Y}];
    covered({bar,_,X,Y,1}) -> [{X,Y},{X-1,Y},{X+1,Y},{X+2,Y}];
    covered({bar,_,X,Y,2}) -> [{X+1,Y},{X+1,Y+1},{X+1,Y-1},{X+1,Y-2}];
    covered({bar,_,X,Y,3}) -> [{X+2,Y-1},{X-1,Y-1},{X,Y-1},{X+1,Y-1}];
    covered({bar,_,X,Y,4}) -> [{X,Y-2},{X,Y-1},{X,Y},{X,Y+1}];
    covered({r1,_,X,Y,1})  -> [{X,Y},{X+1,Y},{X,Y+1},{X-1,Y+1}];
    covered({r1,_,X,Y,2})  -> [{X,Y},{X,Y-1},{X+1,Y},{X+1,Y+1}];
    covered({r1,_,X,Y,3})  -> [{X,Y},{X+1,Y-1},{X,Y-1},{X-1,Y}];
    covered({r1,_,X,Y,4})  -> [{X,Y},{X-1,Y-1},{X-1,Y},{X,Y+1}];
    covered({r2,_,X,Y,1})  -> [{X,Y},{X+1,Y},{X-1,Y-1},{X,Y-1}];
    covered({r2,_,X,Y,2})  -> [{X,Y},{X,Y-1},{X-1,Y+1},{X-1,Y}];
    covered({r2,_,X,Y,3})  -> [{X,Y},{X-1,Y},{X+1,Y+1},{X,Y+1}];
    covered({r2,_,X,Y,4})  -> [{X,Y},{X,Y+1},{X+1,Y},{X+1,Y-1}];
    covered({box,_,X,Y,_})  -> [{X,Y},{X,Y+1},{X+1,Y},{X+1,Y+1}].

    крутой erlang без говнокода не обходиться
    http://www.erlang.org/examples/small_examples/tetris.erl

    zlob.jc, 25 Ноября 2009

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

    +127.8

    1. 1
    _BUILD_FORMAT=`echo ${_FILE_NAME} | awk -F'.' '{ if($5=="gz")printf("%s",1);else printf("%s",2)}'`

    Имя файла имеет вид: xxx.version.src.tar.gz
    Эта проверка на то, какое расширение (и, соответственно, версия того, что внутри. О методе per se не буду, потому что нецензурно). Все бы ничего, пока имя файла не попадает, скажем, ./xxx.version.src.tar.gz

    nil, 23 Ноября 2009

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

    +135.2

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    <?xml version="1.0" encoding="utf-8"?>
    
    < xmlns="*" xmlns:mx="http://www.adobe.com/2006/mxml">
        
    </>

    Это генерирует Flex Builder, если не указать, от какого компонента будет наследоваться вновь создаваемый компонент.

    Lavir_the_Whiolet, 16 Ноября 2009

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

    +131.9

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    np_char=`awk '{
            for(i=1;i<=length($0);i+=1){
                symb=substr($0,i,1);
                if (symb < " ")
                    {
                        print symb;
                        exit 9;
                    }
                    }}' $1`
    
    hex_code=`echo "$np_char" | hexdump -n 1 -e '1/1 "%X" "\n"'`

    Поиск и вывод непечатных символов в файле...
    Это я еще молчу об этической стороне hexdump.

    nil, 16 Ноября 2009

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

    +138.5

    1. 1
    awk '{i=i+1;if(i==2){print($3);}}' 2>/dev/null | awk -F. '{printf $1$2$3}'

    Продолжаю посылать приколы нашего городка.

    Кстати, предложение к разработчикам ресурса: ввести "язык" POSIX.2, или, скажем, "язык командной строки UNIX". Куда пойдут все конвееры с sed, awk, join, cut, группировками, подпроцессами, асинхронностью и прочим. Они порой доставляют!
    Не пихать же это все в bash!

    nil, 06 Ноября 2009

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

    +65.2

    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
    function kub1
    parameters kod
    dimension a(16),b(16)
    for i=16 to 1 step -1
    a(i)=mod(kod,10)
    kod=kod/10
    kod=int(kod)
    endfor
    for i=1 to 16 step 1
    if a(i)=0
    else
    n=i
    exit
    endif
    endfor
    for i=n to 16 step 1
    b(i-(n-1))=a(i)
    endfor
    k=b(5)
    return k

    В принципе, пример относится к FoxPro, но так как я не обнаружил его в списке доступных языков при добавлении говнокода, пришлось остановиться на "куче" :) Наткнулся на этот фрагмент недавно при исследовании чужого исходника под Visual Foxpro. Привожу его в первозданном (с учетом форматирования) виде. Весь фрагмент можно было бы заменить на какое-нибудь

    FUNCTION kub1
    PARAMETERS kod
    RETURN SUBSTR(ALLT(STR(kod)),5,1)

    но автор, видимо, счел нужным не упрощать себе жизнь :)

    ps. Кстати, а как тут в описании код культурно отформатировать ? А то у меня тоже всё влево съехало :)

    tvolf, 30 Октября 2009

    Комментарии (0)
  8. Куча / Говнокод #2075

    +138.7

    1. 1
    Что бы познать рекурсию надо познать рекурсию.

    dim1r, 30 Октября 2009

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

    +144.6

    1. 1
    2. 2
    Правило всегда одно:
    Нет unit-тестов - код - говно.

    bniwredyc, 26 Октября 2009

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

    +75.3

    1. 1
    2. 2
    3. 3
    <meta http-equiv="Тип-содержимое" content="text/html; charset=windows-1251"><meta http-equiv="Тип-содержимое" content="text/html; charset=windows-1251">
    <meta http-equiv="Тип-содержимое" content="text/html; charset=windows-1251"><meta http-equiv="Тип-содержимое" content="text/html; charset=windows-1251">
    <meta http-equiv="Тип-содержимое" content="text/html; charset=windows-1251"><meta http-equiv="Тип-содержимое" content="text/html; charset=windows-1251"><meta http-equiv="Тип-содержимое" content="text/html; charset=windows-1251">

    Случайно открыл исходный код заглавной страницы сайта utel.tv, а там вот так указывают Content-Type, видимо чтобы непонятливые браузеры поняли хотя-бы с седьмого раза. Может объяснить им, что тип контента это конечно оно, но не туда? :)

    eveel, 20 Октября 2009

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