1. C# / Говнокод #2183

    +128.8

    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
    public static T Parse<T>(string txt)
            {
                if (string.IsNullOrEmpty(txt))
                    return default(T);
    
                txt = txt.Trim();
    
                Type[] typeArray = new Type[] {
                    typeof(string),
                    typeof(T).MakeByRefType()};
    
                MethodInfo mi = typeof(T).GetMethod("TryParse", typeArray);
    
                T value = default(T);
    
                if (mi != null)
                {
                    object[] prms = new object[]{
                    txt,
                    value};
    
                    if ((bool)mi.Invoke(null, prms) && prms[1] != null)
                        value = (T)prms[1];
                }
    
                return value;
            }

    Не скажу что это такой уж говнокод, но что то говнистое в нем есть =)

    sven47, 26 Ноября 2009

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

    +135.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
    public class Singleton<T> where T : class
        {
            private static T _Instance = null;
            protected static readonly object locker = new object();
    
            public static T Instance
            {
                get
                {
                    if (_Instance == null)
                    {
                        lock (locker)
                        {
                            if (_Instance == null)
                            {
                                ConstructorInfo[] info = typeof(T).GetConstructors(BindingFlags.Instance | BindingFlags.NonPublic);
                                if (info.Length > 0)
                                    _Instance = (T)info[0].Invoke(null);
                            }
                        }
                    }
                    return _Instance;
                }
            }
    
            protected Singleton() { }
    
            static Singleton() { }
    
        }

    Вот такой вот универсальный сиглтон нашел в проекте

    sven47, 26 Ноября 2009

    Комментарии (10)
  3. Куча / Говнокод #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)
  4. Pascal / Говнокод #2180

    +115.9

    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
    function TFilesStrings.LastSlash(FileString: string): byte;
    {*
      Функция для вычисления положения последнего слеша в строке
    *}
    var
      i: byte;
    begin
      Result := 0;
      for i := 1 to Length(FileString) do
        if (FileString[i] = #92) then Result := i;
    end;
    {==============================================================================}
    
    
    {******************************************************************************}
    function TFilesStrings.GetPath(FullFileName: string): string;
    {*
      Функция возвращает оконечный путь у заданному Файлу
    *}
    var
      SlNum: byte;
    begin
      Result := '';
      SlN um := LastSlash(FullFileName);
    
      Result := Copy(FullFileName, 1, SlNum);
    end;

    Вот ещё вспомнил... Не мог понять почему у меня не работает функция ExtractFilePath, пришлось писать вручную :)

    S@nderS, 25 Ноября 2009

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

    +92.4

    1. 1
    2. 2
    if (a<0) or (a=0) 
    then ...

    Почему в универститах вместо того, чтобы ставить автоматы за такие вещи, не оценивают оптимизацию кода?

    Теперь понятно почему когда берёшь чьи-нибудь сорцы, пытаешься час понять логику в 10 строчек.

    S@nderS, 25 Ноября 2009

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

    +156

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    if(strstr($username, '**')) {
    
    $admin = 1;
    $username = str_replace('**', '', $username);
    $_SESSION['admin'] = 1;
    
    } else {
    
    $admin = 0;
    
    }

    Вот нашел случайно... Судя по всему этот кусок в каком-то коммерческом проекте
    "Actually, it turns out there’s an even simpler way, and that Adam P’s predecessor discovered and implemented it for their client’s fairly large ecommerce website."

    furang, 25 Ноября 2009

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

    +156.8

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    #topBlock
    <script language="JavaScript">
    function process(){}
    today = new Date()
    if((today.getHours() < 12) && (today.getHours() >= 6)) {background:url('http://site/1.png') top center no-repeat;height:243px;}
    if((today.getHours() >= 12) && (today.getHours() < 18)) {background:url('http://site/2.png') top center no-repeat;height:243px;}
    if((today.getHours() >= 18) && (today.getHours() <= 23)) {background:url('http://site/3.png') top center no-repeat;height:243px;}
    if((today.getHours() >= 0) && (today.getHours() < 6)) {background:url('http://site/4.png') top center no-repeat;height:243px;}
    </script>
    #tobTable.... ну и дальше неважно

    Отчаянная попытка сделать логотип, сменяющий цвет в зависимости от времени суток =) Как выяснилос, поциент вставлял это в CSS. http://helper.ucoz.ru/forum/20-6633

    fuckyounoob, 25 Ноября 2009

    Комментарии (11)
  8. PHP / Говнокод #2176

    +170.8

    1. 1
    /* Читайте описание, не пожалеете =) */

    Коллеги!
    Сейчас кода уже нет, но могу объяснить в двух словах, это было гениально!

    Интерфейс наподобие CRM с выводом записей в HTML таблицу.

    Таблица MySQL с 130 000 записями, без (!) индексов.
    Брались ВСЕ 130 000 (!) записей и загонялись в PHP массив!
    И потом делалась пагинация с выводом по 20 на странице!
    И КАК! Делался цикл по всему (!) массиву, т. е. 1 до 130 000.
    И функция, которая проверяла, входит ли $i (индекс цикла) в промежуток типа от ($page-1)*$on_page до $page*$on_page! Если $i наша - выводим, нет - идем дальше (!) по циклу без остановки.

    Это похоже на программы со специальной задержкой для видимости бурной вычислительной деятельности, которые делали на Delphi в школе - со StatusBar'ами и Sleep'ами.

    Вся эта шняга даже на арендованном сервере работала по 30 секунд.
    Про HTML в стиле <font color="red".. size="2" и т. д. - отдельная история.

    Создавал это 35-летний штатный программист, получавший непомерную зарплату.

    matveev, 25 Ноября 2009

    Комментарии (18)
  9. Куча / Говнокод #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)
  10. PHP / Говнокод #2174

    +154.8

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    $srv_id=$_POST['srv_id'];
    $result = mysql_query("
    SELECT *
    FROM srv
    WHERE
    srv_id='$srv_id'");
    $data = mysql_fetch_array($result);
    // ...
    $srv_id=$data['srv_id'];

    marten.spb, 25 Ноября 2009

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