1. JavaScript / Говнокод #2765

    +170.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
    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
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    56. 56
    57. 57
    58. 58
    59. 59
    60. 60
    61. 61
    62. 62
    63. 63
    64. 64
    65. 65
    66. 66
    67. 67
    Char2Hex = new Object();
    
    Char2Hex['_']='%5F';
    Char2Hex['А']='%C0';
    Char2Hex['Б']='%C1';
    Char2Hex['В']='%C2';
    Char2Hex['Г']='%C3';
    Char2Hex['Д']='%C4';
    Char2Hex['Е']='%C5';
    Char2Hex['Ж']='%C6';
    Char2Hex['З']='%C7';
    Char2Hex['И']='%C8';
    Char2Hex['Й']='%C9';
    Char2Hex['К']='%CA';
    Char2Hex['Л']='%CB';
    Char2Hex['М']='%CC';
    Char2Hex['Н']='%CD';
    Char2Hex['О']='%CE';
    Char2Hex['П']='%CF';
    Char2Hex['Р']='%D0';
    Char2Hex['С']='%D1';
    Char2Hex['Т']='%D2';
    Char2Hex['У']='%D3';
    Char2Hex['Ф']='%D4';
    Char2Hex['Х']='%D5';
    Char2Hex['Ц']='%D6';
    Char2Hex['Ч']='%D7';
    Char2Hex['Ш']='%D8';
    Char2Hex['Щ']='%D9';
    Char2Hex['Ъ']='%DA';
    Char2Hex['Ы']='%DB';
    Char2Hex['Ь']='%DC';
    Char2Hex['Э']='%DD';
    Char2Hex['Ю']='%DE';
    Char2Hex['Я']='%DF';
    Char2Hex['а']='%E0';
    Char2Hex['б']='%E1';
    Char2Hex['в']='%E2';
    Char2Hex['г']='%E3';
    Char2Hex['д']='%E4';
    Char2Hex['е']='%E5';
    Char2Hex['ж']='%E6';
    Char2Hex['з']='%E7';
    Char2Hex['и']='%E8';
    Char2Hex['й']='%E9';
    Char2Hex['к']='%EA';
    Char2Hex['л']='%EB';
    Char2Hex['м']='%EC';
    Char2Hex['н']='%ED';
    Char2Hex['о']='%EE';
    Char2Hex['п']='%EF';
    Char2Hex['р']='%F0';
    Char2Hex['с']='%F1';
    Char2Hex['т']='%F2';
    Char2Hex['у']='%F3';
    Char2Hex['ф']='%F4';
    Char2Hex['х']='%F5';
    Char2Hex['ц']='%F6';
    Char2Hex['ч']='%F7';
    Char2Hex['ш']='%F8';
    Char2Hex['щ']='%F9';
    Char2Hex['ъ']='%FA';
    Char2Hex['ы']='%FB';
    Char2Hex['ь']='%FC';
    Char2Hex['э']='%FD';
    Char2Hex['ю']='%FE';
    Char2Hex['я']='%FF';

    счастливые ользователи mail.ru могут наблюдать этот код в странице чтения входящего сообщения

    danilissimus, 11 Марта 2010

    Комментарии (30)
  2. C++ / Говнокод #2764

    +66.9

    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
    #define DOIT(why, doit) !(why) || ((doit), (why))
    ...
    #define SAFEDOIT(why, doit, ob)\
        try\
        {\
            DOIT((why), (doit));\
        }\
        catch(...)\
        {\
            DOIT((ob), (ob)->Print(__FUNCTION__));\
        }
    ...
    // где-то в коде:
    SAFEDOIT ( ( DOIT ( pScrollBar->IsKindOf ( RUNTIME_CLASS ( CSimpleCtrl ) ) , OnPlay ( 0 ) ) ,
            DOIT ( pScrollBar->IsKindOf ( RUNTIME_CLASS ( CSeekCtrl ) ) , OnSeek ( nPos ) ) ) ,
                CFrameWnd::OnHScroll ( nSBCode, nPos, pScrollBar ) , &log ) ;

    код вполне рабочий:)

    gg_, 11 Марта 2010

    Комментарии (29)
  3. C++ / Говнокод #2763

    +62.4

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    #define DOIT(why, doit) !(why) || ((doit), (why))
    ...
    STDMETHODIMP CSimpleCtrl::SetObjectRects(LPCRECT prcPos,LPCRECT prcClip)
    {
        DOIT(prcPos, ATLTRACE(_T("t: %d | l: %d | b: %d | r: %d"),
            prcPos->top, prcPos->left, prcPos->bottom, prcPos->right));
    
        return IOleInPlaceObject_SetObjectRects(prcPos, prcClip);
    }

    gg_, 11 Марта 2010

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

    +164.1

    1. 1
    $this->get('begin_at') > date('Y-m-32')

    Так я проверяю, что еще не начался месяц даты begin_at (в формате Y-m-d)

    HyperGeek, 11 Марта 2010

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

    +160.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
    41. 41
    <?php
     $ok = true;
            $argsbackup = $args;
            for ($i = 0, $j = count($args); $i < $j; $i++) {
                $arg = array_shift($args);
                $type = array_shift($signature);
                switch ($type) {
                    case 'int':
                    case 'i4':
                        if (is_array($arg) || !is_int($arg)) {
                            $ok = false;
                        }
                        break;
                    case 'base64':
                    case 'string':
                        if (!is_string($arg)) {
                            $ok = false;
                        }
                        break;
                    case 'boolean':
                        if ($arg !== false && $arg !== true) {
                            $ok = false;
                        }
                        break;
                    case 'float':
                    case 'double':
                        if (!is_float($arg)) {
                            $ok = false;
                        }
                        break;
                    case 'date':
                    case 'dateTime.iso8601':
                        if (!is_a($arg, 'IXR_Date')) {
                            $ok = false;
                        }
                        break;
                }
                if (!$ok) {
                    return new IXR_Error(-32602, 'server error. invalid method parameters');
                }
            }

    предыстория. IRX_Library - XML-RPC server

    вот так оно проверяет параметры к функции. так жестко по массиву ходить не стоит... (((

    nicolay-punin, 11 Марта 2010

    Комментарии (8)
  6. Java / Говнокод #2760

    +72.6

    1. 1
    2. 2
    3. 3
    4. 4
    Object[] o = new Object[16];
    for (int i = 0; i < 20; i++) {
        o[i] = "";
    }

    Korwin, 11 Марта 2010

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

    +170.9

    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
    <?php
     $mounths["January"]="01";
     $mounths["February"]="02";
     $mounths["March"]="03";
     $mounths["April"]="04";
     $mounths["May"]="05";
     $mounths["June"]="06";
     $mounths["July"]="07";
     $mounths["August"]="08";
     $mounths["September"]="09";
     $mounths["October"]=10;
     $mounths["November"]=11;
     $mounths["December"]=12;
    
     $m=date("F");
     $d=date("d");
     $Y=date("Y");
     $datetime=date("Y")."-".$mounths[$m]."-".date("d")." ".date("H").":".date("i").":".date("s");
     $date=date("Y")."-".$mounths[$m]."-".date("d");
    ?>

    Ээээ, чо? Нарыл в проекте. Отпаиваюсь чаем.

    azzz, 11 Марта 2010

    Комментарии (15)
  8. PHP / Говнокод #2758

    +161.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
    function formatDate($mysqlDate, $time = false) {
                    $date = "";
                    if (is_int($mysqlDate))
                    $stamp = $mysqlDate;
                    else
                    $stamp = strtotime($mysqlDate);
    
                    $date .= date("j", $stamp) . " ";
                    $date .= $this->months[date("n", $stamp) - 1] . " ";
                    $thisYear = date("Y", time());
                    $year = date("Y", $stamp);
    
                    if ($thisYear != $year)
                            $date .= ", " . date("Y", $stamp);
                    if ($time)
                            $date .= " " . date("H:i", $stamp);
    
                    if ($time) return date("d/m/Y H:i");
    					else return date("d/m/Y");
                    return $date;
    
            }

    интересен ход мыслей программиста=)

    nur, 11 Марта 2010

    Комментарии (2)
  9. Java / Говнокод #2757

    +71

    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
    String ID = httpServletRequest.getParameter("id");
            ChannelData data = new ChannelData();
    
            int pointPos = ID.indexOf(';');
    
            while(pointPos >= 0) {
                String CurrentID = ID.substring(0, pointPos);
                data.setId(new Integer(CurrentID));
    
               ChannelData channel = (ChannelData) channelDao.Get(Integer.valueOf(CurrentID));
    
                channelService.delete(data);
                ID = ID.substring(pointPos + 1, ID.length());
                pointPos = ID.indexOf(';');
            }
            if(ID.length() > 0) {
                ChannelData channel = (ChannelData) channelDao.Get(Integer.valueOf(ID));
                data.setId(new Integer(ID));
                channelService.delete(data);
            }

    prop, 11 Марта 2010

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

    +159.7

    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
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    56. 56
    57. 57
    58. 58
    59. 59
    60. 60
    61. 61
    62. 62
    63. 63
    64. 64
    65. 65
    66. 66
    67. 67
    68. 68
    69. 69
    70. 70
    71. 71
    72. 72
    73. 73
    74. 74
    75. 75
    76. 76
    77. 77
    78. 78
    79. 79
    80. 80
    81. 81
    82. 82
    83. 83
    84. 84
    85. 85
    86. 86
    $q = "SELECT product_id FROM jos_vm_product WHERE product_parent_id=$prodid";
        $res = mysql_query($q);
        if(!$res) die('Error 3: ' . mysql_error());
        
        $td_str=' ';
        $pos_atrribs=array();
        $row=0;
        $sort_by=0;
        $subrows=0;
        $show_cells=0;
        
        while($pos=mysql_fetch_array($res))
        {
          $posid=$pos['product_id'];
          $q1 = "SELECT attribute_value,attribute_name  FROM jos_vm_product_attribute WHERE product_id=$posid ORDER BY attribute_name DESC";
          $res1 = mysql_query($q1);
          if(!$res1) die('Error 4: ' . mysql_error());
          
          $col=0;
          while($posattrib=mysql_fetch_array($res1))
          {
            if($posattrib['attribute_name']=='Код фитинга' || $posattrib['attribute_name']=='Код' || $posattrib['attribute_name']=='Кодфитинга' || $posattrib['attribute_name']=='Ordering code')
            {
              $sort_by=$posattrib['attribute_name'];
            }
            $pos_atrribs[$row][$posattrib['attribute_name']]=$posattrib['attribute_value'];
            $col++;
          }
          
          $q1 = "SELECT product_in_stock FROM jos_vm_product WHERE product_id=$posid";
          $res1 = mysql_query($q1);
          if(!$res1) die('Error 4: ' . mysql_error());
          $stock=mysql_fetch_array($res1);
          
          $pos_atrribs[$row]['Склад']=$stock['product_in_stock'];
          
          $q1 = "SELECT product_price FROM jos_vm_product_price WHERE product_id=$posid";
          $res1 = mysql_query($q1);
          if(!$res1) die('Error 4: ' . mysql_error());
          $price=mysql_fetch_array($res1);
          
          $pos_atrribs[$row]['Цена EUR']=$price['product_price'];
          $pos_atrribs[$row]['posid']=$posid;
          $row++;
        }
    
    function columnSort($sorted, $column) {
            for ($i=0; $i < sizeof($sorted)-1; $i++) 
            {
              for ($j=0; $j<sizeof($sorted)-1-$i; $j++)
                if ($sorted[$j][$column] > $sorted[$j+1][$column]) 
                {
                  $tmp = $sorted[$j];
                  $sorted[$j] = $sorted[$j+1];
                  $sorted[$j+1] = $tmp;
              }
            }
            return $sorted;
        }    
        $sorted = columnSort($pos_atrribs, $sort_by);
        unset($pos_atrribs);
        
        $new_attribs=array();
        $num=0;
        $matches=0;
        for ($i=0; $i < sizeof($sorted); $i++) 
        {
          if(substr($sorted[$i][$sort_by],-2)!='.1' && substr($sorted[$i][$sort_by],-2)!='.4')
          {
            $fs=(int)substr($sorted[$i][$sort_by],0,3);
            $fe=(int)substr($sorted[$i][$sort_by],-3);
            
            for ($j=0; $j<sizeof($sorted); $j++)
            { 
              $ss=(int)substr($sorted[$j][$sort_by],0,3);
              $se=(int)substr($sorted[$j][$sort_by],-3);
              
              if ($fe==$se && $fs<$ss) 
              {
                $new_attribs[$num]=array($sorted[$i],$sorted[$j]);
                $num++;
                $matches++;
              }
            }
          }
        }

    Джомло проект, в ходе запросов(11-46 строки) получает 250+ запросов к БД, и время выполнения только этого куска 40+ секунд. Далее сортировка тоже не слабая.

    kein, 11 Марта 2010

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