1. Лучший говнокод

    В номинации:
    За время:
  2. ActionScript / Говнокод #2386

    −190.8

    1. 1
    2. 2
    3. 3
    4. 4
    if (flash.net.getClassByAlias("foo.bar.VO") == null){
              flash.net.registerClassAlias("foo.bar.VO", foo.bar.VO);}
          } catch (e:Error) {
              flash.net.registerClassAlias("foo.bar.VO", foo.bar.VO); }

    Так во флексовом фреймворке регистрируются алиасы для RPC классов... Нелогичность ситуации не сразу очевидна, поэтому опишу:
    При загрузке модулей может возникнуть ситуация, когда алиас уже зарегистрирован для другого класса, поэтому нужно проверить, а не был ли алиас зарегистрирован раньше. Иначе, его нужно зарегистрировать. Исторически, этой проверки сначала не было, данный код - это фикс вышеописаной проблемы. Пытаясь разобраться, что же все-таки случилось - скорее всего "писатель" не подозревал, что getClassByAlias() не может вернуть null - а выяснил он это, когда код вывалился с ошибкой, вот он не долго думая завернул это все в try-catch...
    Из мелких деталей: в рамках AS3 сравнение сложных типов с null - бессмысленная, и более того вредная операция, т.как выражение в условии всегда кастуется к Boolean, и компилятор не умеет делать оптимизации для таких случаев.

    wvxvw, 08 Января 2010

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

    +158.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
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    <?php
    /**
     * @author DanxilLsPro.net16.net
     * @copyright 2010
     * @email [email protected]
     */
     session_start();
    //require_once "include/auth.php";
    require_once "include/config.php";
    require_once "include/function.php";
    if(is_numeric($_GET['theme']) and $_GET['theme'] >= 1){
    $theme = getTheme($_GET['theme']);
    if($theme == false)show_error();
    }
    top("Просмотр всех тем - Знания - народу!",$style,$bg);
    echo<<<FOO
        <TD ROWSPAN=2 bgcolor="122745"> 
          <p>
    FOO;
    if(is_numeric($_GET['theme']) and $_GET['theme'] >= 1)
    showTheme($theme->name,$theme->time,$theme->author,$theme->text,$theme->voted,$theme->view,$style);
    else
    echo show_all_theme();
    echo "</p>";
    bottom("Знания принадлежат народу!",$style);
    ?>

    Это полный как бе ппц. К чему приводят бессонные ночи в количестве более одной ^^

    DanxilLs, 05 Января 2010

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

    +64.4

    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 main(int argc, char **argv){
      QApplication app(argc, argv);
      QWebView view;
      view.load(QUrl("http://www.linuxcertif.com/"));
      view.show();
      app.exec();
      QWebSettings::setIconDatabasePath("/tmp");
      QWebSettings::iconForUrl(QUrl("http://www.linuxcertif.com/"));
      QIcon icon = QWebSettings::iconForUrl(QUrl("http://www.linuxcertif.com/"));
      QPushButton button;
      button.setIcon(icon);
      button.show();
      return app.exec();
    }

    смотрим на восьмую строку и понимаем, что она не делает ничего....
    ошибка то мелкая, было бы не смешно, если тока этот код не распологался бы на багтрекере вебикита - https://bugs.webkit.org/show_bug.cgi?id=29440
    еще в вебките забавно, что если в этом семпле седьмую строку переместить сразу за второй, семпл работает...

    LuCiFer, 29 Декабря 2009

    Комментарии (5)
  5. C# / Говнокод #2324

    +127.8

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    public static int not(this int i)
    {
          string i2 = Convert.ToString(i, 2),
         res = "";
          foreach (char c in i2)
                res += c == '0' ? '1' : '0';
          return Convert.ToInt32(res, 2);
    }

    Дело было вечером, делать было нечего....

    psina-from-ua, 24 Декабря 2009

    Комментарии (5)
  6. Си / Говнокод #2284

    +133.4

    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
    /****************************************************************************
     #if !(TARGET_IS_NT50_OR_LATER)
    #error You need a Windows 2000 or later to run this stub because it uses these features:
    #error   /robust command line switch.
    #error However, your C/C++ compilation flags indicate you intend to run this app on earlier systems.
    #error This app will die there with the RPC_X_WRONG_STUB_VERSION error.
    #endif
    
    
    ...
    
    где-то глубоко
    
    
    *  Macros for targeted platforms
     ****************************************************************************/
    
    #if (0x501 <= _WIN32_WINNT)
    #define TARGET_IS_NT51_OR_LATER                   1
    #else
    #define TARGET_IS_NT51_OR_LATER                   0
    #endif
    
    #if (0x500 <= _WIN32_WINNT)
    #define TARGET_IS_NT50_OR_LATER                   1
    #else
    #define TARGET_IS_NT50_OR_LATER                   0
    #endif
    
    #if (defined(_WIN32_DCOM) || 0x400 <= _WIN32_WINNT)
    #define TARGET_IS_NT40_OR_LATER                   1
    #else
    #define TARGET_IS_NT40_OR_LATER                   0
    #endif
    
    #if (0x400 <= WINVER)
    #define TARGET_IS_NT351_OR_WIN95_OR_LATER         1
    #else
    #define TARGET_IS_NT351_OR_WIN95_OR_LATER         0
    #endif

    Код , сгенерированный компилятором MIDL для dll прокси/заглушки COM объекта.
    VS2005 :)

    4cppMan, 15 Декабря 2009

    Комментарии (5)
  7. Python / Говнокод #2276

    −178.5

    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
    def generate(_len = None, sg = None):
      if sg == None:
        sg = 'aoeuizxcvbn_msdfghjklqwrt_yp123456_7890'
      if _len == None:
        _len = random.Random().randint(1, 100)
      s = ''
      l = len(sg)
      while _len > 0:
        s += sg[random.Random().randint(0, l - 1)]
        _len -= 1
      return s
    
    def loadsrvlists(file, srvlist = {}, prtlist = {}):
      prtlist[0] = 5222
      f = open(file)
      while True:
        s = f.readline().strip()
        if s:
          sr = s[:s.find(':')]
          pr = s[s.find(':') + 1:]
          if not sr in srvlist:
            srvlist[sr] = True
            if pr != prtlist[0]:
              prtlist[sr] = int(pr)
        else: break
      return [srvlist, prtlist]

    По конфам прошла волна спама, автор которого пиарил своего бота.
    Это кусок кода из того бота.
    А тут полный исходник. http://dumpz.org/15156/
    Кто то может для себя почерпнуть нечто новое и неизведанное.

    Apkawa, 14 Декабря 2009

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

    +94.5

    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
    type
     p = ^h;
     h = record
          no:word;
          nx:p;
         end;
    var
     n,k,i:word;
     a,b:p;
    
    begin
    readln(n,k);
    new(b);
    a:=b;
    for i:=1 to n-1 do
    begin
     a^.no:=i;
     new(a^.nx);
     a:=a^.nx;
    end;
    a^.no:=n;
    a^.nx:=b;
    i:=1;
    while true do
    begin
     if a^.nx=a then break;
     if i=k then
     begin
      b:=a^.nx;
      a^.nx:=a^.nx^.nx;
      dispose(b);
      i:=1;
     end;
     a:=a^.nx;
     inc(i);
    end;
    writeln(a^.no);
    end.

    "Гуманитарное" решение задачи Иосифа Флавия (гуглите).
    Тут n - количество людей, убивают каждого k-нного, пока не останется один единственный выживший.

    Lolwho, 11 Декабря 2009

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

    +100.5

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    if (Files[i].NeedCompression)
     {
           CompressFile(Files[i], Files[i].FileNameWithPath);
    }
           else
    {
           CompressFile(Files[i], Files[i].FileNameWithPath);
    }

    Если файл нужно сжать, сжимаем, или сжимаем :D
    ps:// 3 года назад писал подобие архиватора, за компрессию отвечала библиотека zlib.net

    nolka4, 11 Декабря 2009

    Комментарии (5)
  10. SQL / Говнокод #2257

    −161.4

    1. 1
    SELECT result=1 WHERE 1=0

    Тестируем что-то... Но что?

    bolkhovsky, 10 Декабря 2009

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

    +169.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
    <?php
    $message=str_replace("q","<img src=\"bukv_".$cvet."/q.gif\" alt=\"\">",$message); 
    $message=str_replace("w","<img src=\"bukv_".$cvet."/w.gif\" alt=\"\">",$message); 
    $message=str_replace("e","<img src=\"bukv_".$cvet."/e.gif\" alt=\"\">",$message); 
    $message=str_replace("r","<img src=\"bukv_".$cvet."/r.gif\" alt=\"\">",$message); 
    $message=str_replace("t","<img src=\"bukv_".$cvet."/t.gif\" alt=\"\">",$message); 
    $message=str_replace("y","<img src=\"bukv_".$cvet."/y.gif\" alt=\"\">",$message); 
    $message=str_replace("u","<img src=\"bukv_".$cvet."/u.gif\" alt=\"\">",$message); 
    $message=str_replace("i","<img src=\"bukv_".$cvet."/i.gif\" alt=\"\">",$message); 
    $message=str_replace("o","<img src=\"bukv_".$cvet."/o.gif\" alt=\"\">",$message); 
    $message=str_replace("p","<img src=\"bukv_".$cvet."/p.gif\" alt=\"\">",$message);
    
    //вывожу так : 
    
    $namessss=$message; 
    echo "<div class=\"header\"><center><b> $namessss </b></center></div>";
    
    //и получается так
    /*
    g srg src="g src="bukv_greeg src="bukv_green/n.gif" alt="">/b.gif" alt="">ukg src="g src="bukv_greeg src="bukv_green/n.gif" alt="">/b.gif" alt="">ukv_greeg src="bukv_green/n.gif" alt="">/v.gif" alt="">_greeg src="bukv_green/n.gif" alt="">/c.gif" alt="">="g src="bukv_greeg src="bukv_green/n.gif" alt="">
    */
    ?>

    на одном из форумов мое внимание привлекла загадочная тема с названием "что не правильно в стр_реплаке?"

    [email protected], 08 Декабря 2009

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