1. Ruby / Говнокод #2885

    −116.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
    # TODO: выбросить нахер метод with_company_and_state и правильно написать
    # этот named scope
    named_scope :with_company_and_state_non_uniq, lambda { |company, state|
      { :conditions => [ 'products.company_id = :company_id AND ' +
            'state_mask = :state_mask', { :company_id => company,
            :state_mask => OrderSet::STATES.index(state) || 0 } ],
        :order => 'order_sets.created_at DESC',
        :joins => 'INNER JOIN products' }
    }
    
    def self.with_company_and_state(company, state)
      with_company_and_state_non_uniq(company, state).uniq
    end

    Бывает, что SELECT DISTINCT сделать не всегда возможно. На самом деле, такая выборка сосёт.

    eveel, 28 Марта 2010

    Комментарии (2)
  2. bash / Говнокод #2884

    −133.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
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    nettest() {
      ping -c $1 $2 > /dev/null 2>&1
      if [ "$?" -eq "0" ] ; then
         true
      else
         false
      fi
    }
    
    idroot() {
      if [ "`id -u`" -eq "0" ] ; then
         true
      else
         false
      fi
    }
    
    greenc() {
      printf "\033[1;32;40m$1"
    }
    
    redc() {
      printf "\033[1;31;40m$1"
    }
    
    yellowc() {
      printf "\033[1;33;40m$1"
    }
    
    whitec() {
      printf "\033[1;37;40m$1"
    }
    
    normc() {
      printf "\033[0;37;40m$1"
    }
    
    grayc() {
      printf "\033[1;30;40m$1"
    }

    Мудак который это написал - я :))
    Нужна была небольшая библиотека для скрипта.

    buildworld, 28 Марта 2010

    Комментарии (21)
  3. Python / Говнокод #2883

    −107.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
    response = conn.getresponse()
    data = response.read()
    s_list = list(data)
    i, j = 0, 0
    while i < len(s_list):
    	if s_list[i] == '<':
    		while s_list[i] != '>':
    			s_list.pop(i)
    		s_list.pop(i)
    	elif s_list[i] == '\n':
    		s_list.pop(i)
    	elif s_list[i] == '\t':
    		s_list.pop(i)
    	else:
    		i = i+1
    
    data = str(s_list).replace('\'','').replace(' ','').replace(',','').\
    replace('&nbsp','').replace('SERegistru','').replace('[','').\
    replace(']','').replace(':','').replace(';','').\
    replace('IDNP','').replace('LastName',' ').\
    replace('FirstName',' ').replace('SecondName',' ').replace('Alive',' ')

    Простой парсер HTML странички.. ^_^

    krowler, 28 Марта 2010

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

    +91.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
    {  Длинная арифметика. 
        [0] - длина числа
        [1..1000] - цифры в системе с основанием 10000, записанные в обратном порядке
    }
    type TLong = array[0..1000] of integer;
    
    procedure Add(A,B:TLong;var C:TLong);
    {Здесь идет процедура сложения в столбик - ничего интересного}
    procedure MulByShort(A:TLong;B:integer;var C:TLong); {умножение длинного на короткое}
        var i:integer;
    begin
        initByZero(C);{инициализация C нулями}
        for i:=1 to B do Add(C,A,C);
    end;

    Найдено в решении олимпиадной задачи на FreePascal. Обратите внимание на особо остроумный алгоритм умножения: надо же до такого додуматься. Также интересно, чем мотивирована передача массивов по значению.

    frp, 28 Марта 2010

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

    +170.2

    1. 1
    2. 2
    3. 3
    ...
    <title><?php echo iconv('utf-8', 'windows-1251', 'Какой-то текст'); ?>
    ...

    и такие извращения для каждого куска текста в шаблоне
    вот такой вот оригинальный способ перевести шаблон в utf-8
    подозреваю, что человеку очень мешали BOM, от которых он не мог избавится, других причин не вижу

    develx0, 28 Марта 2010

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

    +116.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
    SendMessage("PRIVMSG " + channel + " :Name: " + ObjectManager.Me.Name + " Health: " + ObjectManager.Me.CurrentHealth + "/" + ObjectManager.Me.MaxHealth + " Mana: " + ObjectManager.Me.CurrentMana + "/" + ObjectManager.Me.MaxMana + " Level: " + ObjectManager.Me.Level + " Race: " + ObjectManager.Me.Race + " Class: " + ObjectManager.Me.Class + " Xp to LeveL: " + ObjectManager.Me.XP + "/" + ObjectManager.Me.NextLevelXP + " Combat: " + ObjectManager.Me.Combat + " Time to level: " + hours + " Hours " + minutes + " Minutes");                   
    
    /* немного дальше */
                        if (CommandUsed("!zone", messageLine))
                        {
                            SendMessage("PRIVMSG " + channel + " :Zone: " +ObjectManager.Me.RealZoneText);
                            SendMessage("PRIVMSG " + channel + " :SubZone: "+ ObjectManager.Me.SubZoneText);
                        }
                        if (CommandUsed("!free", messageLine))
                        {
                            SendMessage("PRIVMSG " + channel + " : i have "+ Global.FreeSlots + " free slots");
                        }
    /* и тд */
                        if (CommandUsed("!guild", messageLine))
                        {
                            if (accCheck.CanUseCommand(loginCheckLine))
                            {
                                SendGuild(messageLine);
                            }
                        }

    вот как надо шпарить ботов для irc
    http://pastebin.org/126516

    xXx_totalwar, 28 Марта 2010

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

    +167

    1. 1
    2. 2
    $is_alias=substr($_SERVER[SCRIPT_FILENAME],-strlen($_SERVER[SCRIPT_NAME])) != $_SERVER[SCRIPT_NAME] ? true : false;
    define('HOSTROOT',($is_alias ? $root_dir : realpath(substr($_SERVER[SCRIPT_FILENAME],0,-strlen($_SERVER[SCRIPT_NAME])))));

    Определяем путь до папки со скриптом. (c) RapidGet

    dmOx, 28 Марта 2010

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

    +164.6

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    function setStyle (id, style, val) {
    if (document.getElementById(id).getAttribute('style').indexOf(style) != -1) {
    document.getElementById(id).setAttribute('style', document.getElementById(id).getAttribute('style').replace(style, val))} else {
    document.getElementById(id).setAttribute('style', document.getElementById(id).getAttribute('style') + style + ':' + val + ';')
    }
    }

    Функция для установки CSS-свойств от китайских умельцев.

    eval, 27 Марта 2010

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

    −151.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
    CREATE TABLE IF NOT EXISTS `upmenu_block` (
      `id_foto_b` int(5) NOT NULL auto_increment,
      `id_sec` int(5) NOT NULL,
      `f_b1` varchar(100) NOT NULL,
      `f_b2` varchar(100) NOT NULL,
      `f_b3` varchar(100) NOT NULL,
      `f_b4` varchar(100) NOT NULL,
      `f_o1` varchar(200) NOT NULL,
      `f_o2` varchar(200) NOT NULL,
      `f_o3` varchar(200) NOT NULL,
      `f_o4` varchar(200) NOT NULL
      PRIMARY KEY  (`id_foto_b`)
    )

    В зависимости от таба (1-4), в котором будет показана фотка, ее название и имя файла записываются в поля f_bN, f_oN.

    deraider, 27 Марта 2010

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

    +156.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
    function getElementsByClass(searchClass,node,tag) {
    	var classElements = new Array();
    	if ( node == null )
    		node = document;
    	if ( tag == null )
    		tag = '*';
    	var els = node.getElementsByTagName(tag);
    	var elsLen = els.length;
    	var pattern = new RegExp("(^|\\s)"+searchClass+"(\\s|$)");
    	for (i = 0, j = 0; i < elsLen; i++) {
    		if ( pattern.test(els[i].className) ) {
    			classElements[j] = els[i];
    			j++;
    		}
    	}
    	return classElements;
    }
    
    function show_im_gal (id)
    {
    .............
    	$("#tabs"+id+" img").css({opacity:1});
    	tab = getElementsByClass ('tabNavigation',null,null);
    .............
    }

    Судя по строке 22, автор знает, что проект использует jQuery. Но дальше юзает додревний getElementsByClass, выкопанный на лучших складах говноскриптов 1990-х!

    deraider, 27 Марта 2010

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