1. C++ / Говнокод #2888

    +144.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
    #define THIS_FILE __FILE__
    #define Default 0xFFFFFFFF
    
    void* __cdecl operator new(size_t nSize, LPCSTR lpszFileName, int nLine=Default)
    {
    void * v = ::operator new(nSize, _NORMAL_BLOCK, lpszFileName, nLine);
    return v;
    }
    
    void __cdecl operator delete(void * _P, char*){
    ::delete (_P);
    }

    Какие страсти...

    Говногость, 29 Марта 2010

    Комментарии (10)
  2. PHP / Говнокод #2887

    +169

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    <?php 
    function findAttribute($object, $attribute) { 
      foreach($object->attributes() as $a => $b) { 
        if ($a == $attribute) { 
          $return = $b; 
        } 
      } 
      if($return) { 
        return $return; 
      } 
    } 
    ?>

    так человек предлагает возвращать нужный аттрибут из xml ноды.
    http://ru.php.net/manual/en/simplexmlelement.attributes.php#42692

    striker, 29 Марта 2010

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

    +143.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
    //...
    int a[65535],i;
    //...
    while(a[i]>0)
    {
    i++;
    a[i]++;
    a[i]++;
    a[i]++;
    a[i]++;
    //еще 60 раз a[i]++;
    i--;
    a[i]--;
    }

    Вот что значит компилятор Brainfuck => C без примитивнейшего оптимизатора.
    (приведенный обрывок кода соответствует [>++++еще 60 плюсов<-])

    frp, 28 Марта 2010

    Комментарии (13)
  4. 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)
  5. 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)
  6. 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)
  7. 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)
  8. 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)
  9. 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)
  10. 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)