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

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

    −171

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    #param - строка
    if(param[0]=='"' and param[-1]=='"'):
                param = param.strip('"')
            else:
               param = param.strip("'")

    Приближенный алгоритм убирания кавычек. И ведь работает... как правило.

    Gukl, 29 Июля 2010

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

    +125

    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
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    $string="привет мир";
    
    $string=encodeURI($string);
    
    echo($string);
    
    function encodeURI($string) {
       $result = "";
       for ($i = 0; $i < strlen($string); $i++) {
          $result .= encodeURIbycharacter(urlencode(iconv ( "windows-1251","utf-8" , $string[$i])));
       }
       return $result;
    }
    
    function encodeURIbycharacter($char) {
       if ($char == "+") { return "%20"; }
       if ($char == "%21") { return "!"; }
       if ($char == "%23") { return "#"; }
       if ($char == "%24") { return "$"; }
       if ($char == "%26") { return "&"; }
       if ($char == "%27") { return "\""; }
       if ($char == "%28") { return "("; }
       if ($char == "%29") { return ")"; }
       if ($char == "%2A") { return "*"; }
       if ($char == "%2B") { return "+"; }
       if ($char == "%2C") { return ","; }
       if ($char == "%2F") { return "/"; }
       if ($char == "%3A") { return ":"; }
      .... Очень много строк
       if ($char == "%9A") { return "%C5%A1"; }
       if ($char == "%9B") { return "%E2%80%BA"; }
       if ($char == "%9C") { return "%C5%93"; }
       if ($char == "%B1") { return "%C2%B1"; }
       if ($char == "%B2") { return "%C2%B2"; }
       if ($char == "%B3") { return "%C2%B3"; }
       if ($char == "%B4") { return "%C2%B4"; }
       if ($char == "%B5") { return "%C2%B5"; }
       if ($char == "%B6") { return "%C2%B6"; }
       if ($char == "%B7") { return "%C2%B7"; }
       if ($char == "%B8") { return "%C2%B8"; }
       if ($char == "%B9") { return "%C2%B9"; }
       if ($char == "%BA") { return "%C2%BA"; }
       if ($char == "%BB") { return "%C2%BB"; }
       if ($char == "%BC") { return "%C2%BC"; }
       if ($char == "%BD") { return "%C2%BD"; }
       if ($char == "%BE") { return "%C2%BE"; }
       if ($char == "%BF") { return "%C2%BF"; }
       if ($char == "%C0") { return "%C3%80"; }
       if ($char == "%C1") { return "%C3%81"; }
       if ($char == "%C2") { return "%C3%82"; }

    По моему школьникам на каникулах скучно они прожат. Вот что я нашел

    Vasiliy, 29 Июля 2010

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

    +119

    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
    session_start();
    @include("config.php");
    //Необходимо подключиться к БД
    $link = mysql_connect($DBSERVER, $DBUSER, $DBPASS)
    or die("Не могу подключиться" );
    // сделать $DB текущей базой данных
    mysql_select_db($DB, $link) or die ('Не могу выбрать БД');
    echo "<h2>Страница активации</h2>";
    $uniq = $_GET['id'];
    if($_GET['id']='') { echo "Вы зашли на страницу без кода подтверждения"; }
    elseif ($_GET['id'] != '') {
    $log = mysql_query("SELECT * FROM users WHERE uniq_id='$uniq'");
    $idi = mysql_query("SELECT status FROM users WHERE uniq_id='$uniq'");
    if (empry($log)) { echo "Такой профиль не существует"; }
    elseif(isset($log) AND $idi = 1) {echo "Данный профиль уже активирован"; }
    elseif(isset($log) AND $idi = 0) {
    $r=@mysql_query("UPDATE users SET status=1 WHERE status=0 AND uniq_id='$uniq' ");
    echo '<h2>Ваша учетная запись активирована.</h2><br> Теперь вы можете <a href="index.php">войти на сайт</a> используя данные указанные при регистрации';
    }
    }
    ?>

    Vasiliy, 27 Июля 2010

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

    −94

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    @timestart = MyModel.lastUpdateTime - 1.hour
    
    day = "#{@timestart.day}"
    day = "0#{day}" if day.size<2
    mon = "#{@timestart.mon}"
    mon = "0#{mon}" if mon.size<2
    
    start1 = "'#{@timestart.year}-#{mon}-#{day} #{@timestart.hour}:#{@timestart.min}:#{@timestart.sec}'"
    a = MyModel.find(:all, :conditions=>[ "`datetime` > #{start1}" ]

    без комментариев

    vlad-druzh, 27 Июля 2010

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

    +164

    1. 1
    $black = imagecolorallocate($img, 255, 255, 255);

    Не совсем говнокод, конечно, но все же.

    Uchkuma, 20 Июля 2010

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

    +112

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    private void UpdateLayerLOBStatus(bool allDisable)
        {
          bool enable = true;
    
          if (allDisable)
          {
            enable = false;
          }
    
          SetStatuses(luLOBusiness, enable, true);
    ...........
     }

    Я не понимаю не то, что не я не говорю.

    Progreso, 17 Июля 2010

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

    −126

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    .........................................
     if [[ "$rez" = "0%" ]]
     then
     let "i = i + 1"
     else
    #Ещё чуток индийского кода:)
     let "i = i + 0"
     fi
     done
    .........................................

    ccoder, 13 Июля 2010

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

    −864

    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
    Гавнокод --
    
    SELECT * FROM  Table1
    WHERE [Id] not in 
    		(
    		SELECT min([Id]) FROM Table1
    		WHERE [Code] in 
    				(
    				SELECT [Code] FROM Table1
    				GROUP BY [Code]									HAVING count([Code]) > 1
    				)
    					GROUP BY [Code]
    		)
    	and [Id] in 
    		(
    				SELECT [Id] FROM Table1
    				WHERE [Code] in (
    						SELECT [Code] FROM Table1
    						GROUP BY [Code]
    						HAVING count([Code]) > 1
    						)
    		)
    
    
    Нормальний варіант --
    
    SELECT * FROM Table1 AS a
    WHERE [Id] not in 
    		(
    			SELECT min([Id]) FROM a_ListParam
    			WHERE a_ListParam.[Code] = a.[Code]
    		)

    O_O, 12 Июля 2010

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

    +144

    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
    ...
    <body>
    <form action="top1.php" method="get">
    <input type="checkbox" value="f1()" name="a1"  > Windows 2000
    <input type="checkbox" value="f2()" name="a2"  > Windows 7
    </form>
    </body>
    </html>
     
    <?php
    function f1(){
    if($_POST['a1']){
    echo 'Good';
    }else
    echo 'bad';
    }
    ?>

    Автор этого чуда хотел, чтоб
    "При отметке галочкой первого чекбокса должно ниже самих чекбоксов вывестись слово good"

    administation, 11 Июля 2010

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

    +117

    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
    static int ReadEvent (byte [] source, int off, int size, out InotifyEvent evt)
    {
        evt = new InotifyEvent ();
        if (size <= 0 || off > size - 16) {
            return -1;
        }
    
        int len;
        if (BitConverter.IsLittleEndian) {
            evt.WatchDescriptor = source [off] + (source [off + 1] << 8) +
                        (source [off + 2] << 16) + (source [off + 3] << 24);
            evt.Mask = (InotifyMask) (source [off + 4] + (source [off + 5] << 8) +
                        (source [off + 6] << 16) + (source [off + 7] << 24));
            // Ignore Cookie -> +4
            len = source [off + 12] + (source [off + 13] << 8) +
                (source [off + 14] << 16) + (source [off + 15] << 24);
        } else {
            evt.WatchDescriptor = source [off + 3] + (source [off + 2] << 8) +
                        (source [off + 1] << 16) + (source [off] << 24);
            evt.Mask = (InotifyMask) (source [off + 7] + (source [off + 6] << 8) +
                        (source [off + 5] << 16) + (source [off + 4] << 24));
            // Ignore Cookie -> +4
            len = source [off + 15] + (source [off + 14] << 8) +
                (source [off + 13] << 16) + (source [off + 12] << 24);
        }
    
        if (len > 0) {
            if (off > size - 16 - len)
                return -1;
            string name = Encoding.UTF8.GetString (source, off + 16, len);
            evt.Name = name.Trim ('\0');
        } else {
            evt.Name = null;
        }
    
        return 16 + len;
    }

    Mono, обёртка вокруг INotify (вокруг папки INotify создаёт поток (файл?), который нужно с помощью read читать в буфер, и в буфере будет лежать объект-событие в говносериализованной форме).

    Давно столько магических чисел в одном месте не видел o_O

    Можно ли в C# решить элегантнее?
    Аналог всего этого кода на Си: struct inotify_event *event = ( struct inotify_event*) &buffer[i]

    cfdev, 11 Июля 2010

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