1. PHP / Говнокод #9424

    +151

    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
    <?
    if (!file_exists("count.txt")) {
        $fp = fopen("count.txt","w");
        fwrite($fp,0);
        fclose($fp);
    }
    $fp = fopen("count.txt","r");
    $count = fread($fp,10);
    fclose($fp);
    $visitor = $_COOKIE['visitor'];
    if (!isset($visitor)) {
    setcookie("visitor", "yes");
    $count++;
    $fp = fopen("count.txt","w");
    fwrite($fp,$count);
    fclose($fp);
    }
    $string = strlen($count);
    for ($search=0;$search<$string;$search++) {
        $digit = substr($count,$search,1);
        $count_graphic .= "<img src=\"img/$digit.gif\">";
    }
    ?>

    Tony_, 15 Февраля 2012

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

    +159

    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
    void CXMLParser::Parse(std::map< std::pair<int, int>, int >& link)
    {
      _di_IXMLNode areaNode = MessageNode->ChildNodes->FindNode( WideString("area") );
      if( areaNode )
      {
        Area.reset( new CAreaPart( areaNode ) );
        IXMLNodeList* pointList = areaNode->ChildNodes;
        if( pointList )
        {
          for(int pointIndex=0; pointIndex<pointList->GetCount(); pointIndex++)
          {
            _di_IXMLNode pointNode = pointList->Get( pointIndex );
            int typePoint = -1;
            if( pointNode->GetNodeName() == WideString("measuringpoint") )
              typePoint = MEASURING;
            if( pointNode->GetNodeName() == WideString("accountpoint") )
              typePoint = ACCOUNT;
            if( pointNode->GetNodeName() == WideString("deliverypoint") )
              typePoint = DELIVERY;
            switch( typePoint )
            {
            case MEASURING:
            case ACCOUNT:
            case DELIVERY:
              {
                const int pointCode    = pointNode->GetAttribute( WideString("code") );
                const String pointName = pointNode->GetAttribute( WideString("name") );
                IXMLNodeList* channelList = pointNode->ChildNodes;
                if( channelList )
                {
                  for(int channelIndex=0; channelIndex<channelList->GetCount(); channelIndex++)
                  {
                    _di_IXMLNode channelNode = channelList->Get( channelIndex );
                    if( channelNode->GetNodeName() == WideString("measuringchannel") )
                    {
                      const int channelCode    = channelNode->GetAttribute( WideString("code") );
                      const String channelDesc = channelNode->GetAttribute( WideString("desc") );
                      IXMLNodeList* periodList = channelNode->ChildNodes;
                      if( periodList )
                      {
                        for(int periodIndex=0; periodIndex<periodList->GetCount(); periodIndex++)
                        {
                          _di_IXMLNode periodNode = periodList->Get( periodIndex );
                          if( periodNode )
                          {
                            String str = periodNode->GetAttribute( WideString("start") );
                            periodNode->GetAttribute( WideString("end") );
                            TDateTime time;
                            time = TDateTime( StrToInt( str.SubString( 1, 2 ) ), StrToInt( str.SubString( 3, 2 ) ), 0, 0 );
                            periodNode->GetAttribute( WideString("summer") );
                            time = IncMinute( time, 30 );
                            _di_IXMLNode valueNode = periodNode->ChildNodes->FindNode( WideString("value") );
                            if( valueNode )
                            {
                              const int status = valueNode->GetAttribute( WideString("status") );
                              const int value = StrToInt( valueNode->Text );
                              if( RTDBWrite )
                              {
                                map< pair<int, int>, int >::iterator i = link.find( make_pair( pointCode, channelCode ) );
                                if( i!=link.end() )
                                {
                                  (*RTDBWrite)( Date->DateInterval.first + time, (*i).second, value, status );
                                }
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      RTDBWrite->Flush();
    }

    Древний legacy-код на БорландЦэпэпэБыдлере, обнаруживаемый на текущей работе (почти госпредприятие), выглядит в основной своей массе примерно так. Новый код на C# чуть получше, но в целом тоже жуткое мракобесие.
    Сил больше нет работать с подобным, увольняюсь и ищу норм работу.

    invi, 15 Февраля 2012

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

    +162

    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
    $orders = $DB->Query("INSERT INTO `zcrm_orders` SET 
        `ORDER_NUMBER` = '09/".str_pad($arEventFields['ORDER_ID'], 6, '0', STR_PAD_LEFT)."', 
        `DATETIME` = '".$dateOrder."', 
        `FIO` = '".$arEventFields['ORDER_PROP_7']."', 
        `NAME_ORGANIZATION` = '".$arEventFields['ORDER_PROP_1']."', 
        `TELEFON` = '".$arEventFields['ORDER_PROP_4']."', 
        `TELEFON_MOD` = '".preg_replace('/[^\d]+/','', $arEventFields['ORDER_PROP_4'])."',
        `EMAIL` = '".$arEventFields['ORDER_PROP_6']."', 
        `OPLATA` = '8', 
        `DOSTAVKA` = '".$_POST["id_dostavka"]."', 
        `CITY` ='".$arEventFields['NASPUNKT_DOSTAVKA']."',
        `PUNKT_DOSTAVKA` = '".$arEventFields['ADRESS_DOSTAVKA']." ".$arEventFields['SKLAD_DOSTAVKA']."',
        `DATE_DOSTAVKA` = '".$arEventFields['DATE_DOSTAVKA']."', 
        `TIME_DOSTAVKA` = '".$arEventFields['TIME_DOSTAVKA']."', 
        `PRICE_DOSTAVKA` = '".$arEventFields['PRICE_DELIVERY2']."', 
        `COMMENTS` = '".$arOrder['USER_DESCRIPTION']."' ");

    Внимательно смотрим на 10 строчку.

    ast, 15 Февраля 2012

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

    +999

    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
    #include <iostream>
    #include <algorithm>
    #include <stdlib.h>
    
    const size_t MB = 1024*1024;
    size_t MOD = 0;
    
    unsigned char uniqueNumber () {
      static unsigned char number = 0;
      return ++number % MOD;
    }
    
    int main(int argc, char** argv) {
      if (argc < 3) {
        return 1;
      }
    
      size_t BLOCK_SIZE = atoi(argv[1]) * MB;
      MOD = atoi(argv[2]);
    
      unsigned char* garbage = (unsigned char *) malloc(BLOCK_SIZE);
    
      std::generate_n(garbage, BLOCK_SIZE, uniqueNumber);
      std::sort(garbage, garbage + BLOCK_SIZE);
    
      free(garbage);
    
      return 0;
    }

    http://habrahabr.ru/blogs/cpp/138132/

    It makes me cry. Понятно, что это всего лишь демонстрационный пример. Но все таки это не оправдание. Итак, начнем по порядку с самого худшего:
    1. Сишные malloc/free вперемешку с STL-алгоритмами. WTF? Зачем?
    2. Глобальная переменная? Автор не осилил хотя бы bind? Который, к тому же, уже давно std::bind.
    3. Uppercase для локальной переменной.
    4. Отступ в джва пробела.

    invi, 15 Февраля 2012

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

    +997

    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
    void TexQ::Move()
    {
    	mx = quad.v[0].x;
    	my = quad.v[0].y;
    	if(hge->Input_GetKeyState(HGEK_RBUTTON) || hge->Input_KeyDown(HGEK_LBUTTON))
    	{
    		hge->Input_GetMousePos(&nx, &ny);
    		move = true;
    		sx = GetPositionX();
    		sy = GetPositionY();
    		subx = nx - sx;
    		suby = ny - sy;
    
    		if ( abs(subx) > abs(suby) ) 
    		{
    			iter = abs(subx);
    			ms = subx;
    			subx = (subx < 0) ? -1.0f : 1.0f;
    			suby = (suby < 0 ) ? suby/abs(ms) : abs(suby/ms);
    		}
    		else 
    		{
    			iter = abs(suby);
    			ms = suby;
    			suby = (suby < 0) ? -1.0f : 1.0f;
    			subx = (subx < 0 ) ? subx/abs(ms) : abs(subx/ms);
    		}
    	}
    
    	if (move) 
    	{	
    		if (iter >= shift)
    		{
    			iter-=shift;
    			this->SetPosition(
    				GetPositionX() + subx * shift, 
    				GetPositionY() + suby * shift);
    		}
    		else
    		{
    			this->SetPosition(nx , ny);
    			move = false;
    		}
    
    	}
    
    }

    Хреновый из меня математик. Этот метод втыкается в функцию фрейминга. И текстура едет по прямой туда, куда мышью тыкнешь.
    Позже узнал, как можно тригонометрией в 5 строк написать такую же )

    idec, 14 Февраля 2012

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

    +153

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    dData->RowCount++;
    
             for (int i = 0; i < dData->RowCount - 1; i++)
                   for (int j = 0; j < dData->ColumnCount; j++)
                        dData->Rows[i]->Cells[j]->Value = dData->Rows[i + 1]->Cells[j]->Value;

    Мучил седня DataGridView, при dData->RowCount++ создавалась новая строчка в таблице, но только сверху. Остальное съезжало вниз на 1 ячейку. Я боролся полчаса с этим, пока не объяснил проблему товарищу. он предложил свой вариант всего кода:
    dData->Rows->Add();
    :DDDD

    idec, 14 Февраля 2012

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

    +152

    1. 1
    2. 2
    3. 3
    4. 4
    if ($current['username'] == 'admin')
    {
            $admin = true;
    }

    kafeman, 14 Февраля 2012

    Комментарии (7)
  8. Куча / Говнокод #9417

    +130

    1. 1
    2. 2
    3. 3
    li.sexy-diigo, li.sexy-diigo:hover, li.sexy-digg, li.sexy-digg:hover, li.sexy-reddit, li.sexy-reddit:hover, li.sexy-stumbleupon, li.sexy-stumbleupon:hover, li.sexy-delicious, li.sexy-delicious:hover, li.sexy-yahoobuzz, li.sexy-yahoobuzz:hover, li.sexy-blinklist, li.sexy-blinklist:hover, li.sexy-technorati, li.sexy-technorati:hover, li.sexy-facebook, li.sexy-facebook:hover, li.sexy-twitter, li.sexy-twitter:hover, li.sexy-myspace, li.sexy-myspace:hover, li.sexy-mixx, li.sexy-mixx:hover, li.sexy-scriptstyle, li.sexy-scriptstyle:hover, li.sexy-designfloat, li.sexy-designfloat:hover, li.sexy-mail, li.sexy-mail:hover, li.sexy-comfeed, li.sexy-comfeed:hover, li.sexy-newsvine, li.sexy-newsvine:hover, li.sexy-devmarks, li.sexy-devmarks:hover, li.sexy-linkedin, li.sexy-linkedin:hover, li.sexy-google, li.sexy-google:hover, li.sexy-misterwong, li.sexy-misterwong:hover, li.sexy-izeby, li.sexy-izeby:hover, li.sexy-twittley, li.sexy-twittley:hover, li.sexy-tipd, li.sexy-tipd:hover, li.sexy-pfbuzz, li.sexy-pfbuzz:hover, li.sexy-friendfeed, li.sexy-friendfeed:hover, li.sexy-blogmarks, li.sexy-blogmarks:hover, li.sexy-fwisp, li.sexy-fwisp:hover, li.sexy-designmoo, li.sexy-designmoo:hover, li.sexy-bobrdobr, li.sexy-bobrdobr:hover, li.sexy-yandex, li.sexy-yandex:hover, li.sexy-memoryru, li.sexy-memoryru:hover, li.sexy-100zakladok, li.sexy-100zakladok:hover, li.sexy-moemesto, li.sexy-moemesto:hover, li.sexy-ning, li.sexy-ning:hover, li.sexy-hackernews, li.sexy-hackernews:hover, li.sexy-identica, li.sexy-identica:hover, li.sexy-printfriendly, li.sexy-printfriendly:hover, li.sexy-designbump, li.sexy-designbump:hover, li.sexy-fleck, li.sexy-fleck:hover, li.sexy-netvibes, li.sexy-netvibes:hover, li.sexy-netvouz, li.sexy-netvouz:hover, li.sexy-nujij, li.sexy-nujij:hover, li.sexy-globalgrind, li.sexy-globalgrind:hover, li.sexy-wikio, li.sexy-wikio:hover, li.sexy-xerpi, li.sexy-xerpi:hover, li.sexy-sphinn, li.sexy-sphinn:hover, li.sexy-blogospherenews, li.sexy-blogospherenews:hover, li.sexy-posterous, li.sexy-posterous:hover, li.sexy-techmeme, li.sexy-techmeme:hover, li.sexy-ekudos, li.sexy-ekudos:hover, li.sexy-pingfm, li.sexy-pingfm:hover, li.sexy-tomuse, li.sexy-tomuse:hover {
    	background:url('sexy-sprite.png') no-repeat !important;
    }

    Красивая реализация знатных социальных кнопок... Хотя можно и
    ul.socials li {
    background:url('sexy-sprite.png') no-repeat;
    }

    nonamez, 14 Февраля 2012

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

    +1013

    1. 1
    if (!done && (done = true)) setlocale(LC_CTYPE, "");

    из свежих ворнингов компилера.

    Dummy00001, 14 Февраля 2012

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

    +115

    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
    try
    {
    	foreach (MapObjectBase item in objects)
    	{
    		GisTrack track = item as GisTrack;
    
    		if (track != null)
    		{
    			//ToolTipContent - наследник TextContent
    			ToolTipContent oToolTip = (ToolTipContent)track.ContentList.FirstOrDefault<IContent>(a => a is TextContent);
    			if (oToolTip != null)
    			{
    				track.ContentList.Remove(oToolTip);
    			}
    		}
    	}
    
    	this.map.Redraw(false);
    }
    catch (Exception ex)
    {
    	MonitoringManager.Instance.WriteLog(ex.ToString());
    }

    Linq - как граната. Смотря в чьих руках.

    ICELedyanoj, 14 Февраля 2012

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