1. SQL / Говнокод #5275

    −859

    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
    "SELECT c.type AS type, 
                                      ELT(c.type, g.genre_id, l.label_id, f.film_id, a.actor_id, s.show_id, ch.channel_id,aw.award_id) AS id,
    				  ELT(c.type, g.value, l.value, f.real_name, a.real_name, s.real_name, ch.name, aw.description) AS real_name,
    				  ELT(c.type, NULL, NULL, f.name, a.name, s.name, NULL, NULL) AS name
    				  FROM connector AS c
    				  LEFT JOIN genres AS g ON (c.second = g.genre_id)
                                      LEFT JOIN labels AS l ON (c.second = l.label_id)
                                      LEFT JOIN films AS f ON (c.second = f.film_id)
                                      LEFT JOIN actors AS a ON (c.second = a.actor_id)
                                      LEFT JOIN shows AS s ON (c.second = s.show_id)
                                      LEFT JOIN channels AS ch ON (c.second = ch.channel_id)
                                      LEFT JOIN awards AS aw ON (c.second = aw.award_id)
                                      WHERE c.first = ".$_SESSION['user_id']

    Вот как это делается!

    Elfet, 14 Января 2011

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

    −179

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    incoming=[2,0,4,6,2,1,0,4,3,0]
    outgoing=[5,0,3,3,0,2,3,5,0,2]
    
    for i in sorted(range(allopers.__len__()), reverse=True):
          if int(incoming[i])==int(outgoing[i])==0:
               del incoming[i]
               del outgoing[i]
               del allopers[i]

    длинна списков allopers, incoming и outgoing равна.
    наговнокожено: пытаюсь исключить из них элементы с номером n, для которых incoming[n]==outgoing[n]==0.
    типа иду с конца, и если совпало - удаляю элемент.

    fr_butch, 14 Января 2011

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

    +145

    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
    public String readMessage(String subject) throws Exception {
        String messageString = null;
        try {
          for (final Message message : Arrays.asList(this.inbox.getMessages())) {
            if (subject.equals(message.getSubject())) {
              messageString = "To: " + Arrays.asList(message.getAllRecipients()) + "n" + "From: " + Arrays.asList(message.getFrom()) + "n" + "Sent: "
                + message.getSentDate() + "n" + "Subject: " + message.getSubject() + "n" + "Text: " + message.getContent();
              break;
            }
          }
        } catch (final MessagingException me) {
          throw new Exception("Error reading Inbox", me);
        } catch (final IOException e) {/* Not using streams, only plain text */
        }
        return messageString;
      }

    тестовый javamail клиент(отправка тест-письма,поиск его и удаление). В методе ищем письмо с нужной темой, возвращаем текстовое представление.

    говно, кроме очевидных ляпов, в том, что мы лазием по всем сообщениям, сверяя тему, а получение письма занимает около секунды. Надо ли говорить, что в современном ящике писем тысячи...
    для сравнения:
    если заменить в 4 строчке конструкцию

    Arrays.asList(this.inbox.getMessages())
    на
    new SubjectTerm(subject)
    , то время выполнения сокращается с (неизвестно,точно более времени чаепития) до пары секунд = )

    Lure Of Chaos, 14 Января 2011

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

    +159

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    function DateFromDBToHr($date)
    {
    	$datetime = explode(" ", $date);
    	$dates = explode("-", $datetime[0]);
    	return (intval($dates[0])) ? date("d-M-Y", mktime(0, 0, 0, $dates[1], $dates[2], $dates[0])) : false;
    }

    про то, что форматировать дату можно в запросе или про существование strtotime автор даже не догадывается

    elw00d, 14 Января 2011

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

    +158

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    (function(){ if(!window.adToken) { window.adToken = Math.floor(Math.random() * 999999999999999999); }
    		var d = new Date();
    		var url = (location.protocol=='https:'?'https://base.kiwi.kz/?':'http://base.kiwi.kz/?');
    		url += 'rnd=' + Math.floor(Math.random() * 99999999999);
    		url	+= '&slot_id=25';
    		url	+= '&type=js';
    		url	+= '&t=' + parseInt(((d.getTime() - (d.getTimezoneOffset() * 60)) / 1000));
    		url	+= '&token=' + window.adToken;
    		url	+= '&r=' + window.location;
    		var js	 = '<sc' + 'ript src="' + url + '"></sc' + 'ript>';
    		document.write(js);
    		}());

    sc' + 'ript ?

    govnozmey, 14 Января 2011

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

    +120

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    public static string GetRedirectUrl(string userName, bool createPersistentCookie)
    {
        if (userName == null)
        {
            return null;
        }
        return GetReturnUrl(true);
    }

    из рефлектора, класс FormsAuthentication
    ахеренная роль у параметров userName и createPersistentCookie

    Semargl, 13 Января 2011

    Комментарии (10)
  7. C++ / Говнокод #5269

    +168

    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
    class TalentsWindow : public PopupWindow {
    	render::Sprite* m_background_sprite, *m_header_sprite, *m_fucking_sprite;
    ...
    ...
    };
    
    ...
    
    TalentsWindow::TalentsWindow()
    {
    ...
    	m_fucking_sprite = m_sprites.addSprite(render::SpriteRect(NOINITIALIZE)
                .setTop(591.0f)
                .setLeft(500.0f)
                .setWidth(411.0f)
                .setHeight(140.0f),
                m_tex,
                0.85f
            );
            m_fucking_sprite->setPosition(math::float2(818.0f, 50.0f));
    		m_fucking_sprite->idiot = true;
    ...
    }

    Самодокументирующий код.

    Kirinyale, 13 Января 2011

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

    +134

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    private static void GetUserData(User user)
        {
            if (user == null)
                return;
    
            var firm = user.Firm;
    
            if (firm == null)
                return;
        }

    Бессмысленно и беспощадно.

    Gizz, 13 Января 2011

    Комментарии (13)
  9. bash / Говнокод #5267

    −137

    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
    <?php                                                                                                                                                                                           
    if($argc<2) exit(0);                                                                                                                                                                            
    print_r($tmp);                                                                                                                                                                                  
    for($i=1;$i<=$argc;$i++)readdir_rec($argv[$i]);                                                                                                                                                 
    function readdir_rec($path){                                                                                                                                                                    
    $dir = opendir($path);
    global $size;
    while($d = readdir($dir)){
    if ($d == '.' || $d == '..') continue;
    if (is_file($path.'/'.$d)){
        echo $path."/".$d."\n";
    }
    else if (is_dir($path.'/'.$d)) readdir_rec($path.'/'.$d);
    }
    }
    ?>
    #!/bin/bash
    
    c=0;
    declare -a fls;
    for fl in `php /home/markus/bin/ps2.php $*`
    do
    let c++;
    fls[$c]=$fl;
    done 
    for((i=0;i<=${#fls[@]}-1;i++))
    {
    for((i2=$i+1;i2<=${#fls[@]};i2++))
    {
      echo "${fls[$i]} ${fls[$i2]}";
    diff -acBi --brief ${fls[$i]} ${fls[$i2]}
    }                                                                                                                                                                                               
    }

    Находит одинаковые файлы по содержанию

    AliceGoth, 13 Января 2011

    Комментарии (8)
  10. bash / Говнокод #5266

    −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
    #!/bin/bash
    c=0;
    declare -a fls;
    cat $*| while read line 
    do                   
    #    echo "line $line №$c"
    fls[$c]=$line;
    let c++;
    for((i=0;i<=${#fls[@]}-1;i++))
    {
    for((i2=$i+1;i2<=${#fls[@]};i2++))
    {
    #  echo "${fls[$i]} ${fls[$i2]}";
    if [ ${fls[$i]} = "${fls[$i2]}" ];then
      echo "Zeile $i ist gleich Zeile $i2";
    #else
    #  echo "Строка $i не равна строке $i2";
    fi
    }
    }
    done

    Находит одинаковые строки в файле

    AliceGoth, 13 Января 2011

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