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

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

    +62.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
    bool failed = true;
    	int count = 0;
    	do
    	{
    		{
    			ADO cnn( service().connectionString() );
    			if (count == 0)
    			{
    				_RecordsetPtr rs = cnn.Command(L"SELECT MAX(MessNo) as MAXNO FROM RobotLog", ADODB::adCmdText)
    					.Execute();
    				if (rs->EndOfFile == VARIANT_FALSE)
    				{
    					vt = rs->Fields->Item[L"MAXNO"]->Value;
    					if (vt.vt != VT_NULL)
    						messNo = vt.lVal + 1;
    				}
    				rs->Close();
    			}
    			else
    				messNo++;
    			try
    			{
    				cnn.Command(L"INSERT INTO RobotLog(MessNo,MessType,MessDate,MessText,Empl_Code,CompName,Robot_Code, "
    					L"Robot_Name,Doc_Name,Doc_No,Doc_CardDate) VALUES(?,?,?,?,?,?,?,?,?,?,?)", ADODB::adCmdText)
    					.CreateParameter(messNo)
    					.CreateParameter((long) messType)
    					.CreateParameter((DATE) COleDateTime::GetCurrentTime())
    					.CreateParameter(bstr_t(messText.AllocSysString()))
    					.CreateParameter((long)m_EmplCode)
    					.CreateParameter(service().computerName())
    					.CreateParameter((long)m_ID)
    					.CreateParameter(sRobotName)
    					.CreateParameter(sDocName, false)
    					.CreateParameter(sDoc_No, false)
    					.CreateParameter(dCardDate)
    					.Execute();
    				failed = false;
    			}
    			catch(_com_error& )
    			{
    //				DebugMsgE("CRobotThread::LogRobotWork[%s] error: 0x%08x::%s - %s. Attempt #:%d", (const char*)m_RobotName, err.Error(), (const char*) err.Description(), 
    //					(const char*) err.ErrorMessage(), count);
    			}
    		}
    		count++;
    		Sleep(100);
    	}while (failed && count < 10000);

    Вычисляемое значение 'messNo' прописывается в PK. Код выполняется мультипоточночно, примерно из 5 - 15 одновременно работающих потоков.
    Вот такая вот попытка 10000 раз прописать неуникальное значение первичного ключа :)
    Но, самое смешное, что на моё предложение перенести заботу об уникальности и инкрементации в SQL, мне было велено "не умничать, ЭТО правильный алгоритм !...".

    UncleVova, 18 Января 2010

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

    +144.2

    1. 1
    if ( strlen(f.ToString()) < 5 )

    Проверку булевской переменной.

    Говногость, 14 Января 2010

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

    +78.2

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    public void pause(){
            Object lock=new Object();
            synchronized(lock){
                try{
                    lock.wait(1000);
                }catch(Exception e){
                    System.out.println(e.getMessage());
                }
            }
        }

    _jk_, 29 Декабря 2009

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

    +155.9

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    <?php 
    
    $Fnm = $mosConfig_absolute_path .'/components/'.$option.'/cron.php';
    $inF = fopen($Fnm,"w");
    fwrite($inF,'<?php $last_cron_date='.$last_cron_date.';?>');
    fclose($inF);

    всеми любимая джумла... а точнее один из её компонентов... строка 1846-ая...

    почему собственно гадость:
    1. а если нету доступа на запись...
    2. не безопасно
    3. если в файле что-нибудь будет не так - обвалится весь сайт, потому как ошибко php
    4. я настороженно отношусь к файлам по 2246 - строк ... уж больно много всего...

    nicolay-punin, 29 Декабря 2009

    Комментарии (9)
  6. Куча / Говнокод #2346

    +124.3

    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
    Functions called:
     fflush (4 times)
     delete (11 times)
     fclose (1 times)
     free (11 times)
     fread (3 times)
     fopen (1 times)
     vsnprintf (4 times)
     new (11 times)
     SysReallocMem (652 times)
     SysFreeMem (13185 times)
     SysGetMem (13188 times)
     lstrlenA (1 times)
     lstrcpynA (4 times)
     calloc (1 times)
     strlen (98 times)
     realloc (1 times)
     strdup (1 times)
     malloc (8 times)
     memcpy (4 times)
    Resource types used:
     object (11 allocs, 11 max)
     memory block (13199 allocs, 4007 max)
     file stream (1 allocs, 1 max)
     file handle (1 allocs, 1 max)

    Nemerle, 29 Декабря 2009

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

    +59.5

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    //и теперь шлём запрос письма
                        reply = QString("<iq type='get' from='%1' to='%2' id='mail-request-%3'>"\
                            "<query xmlns='google:mail:notify' %4 %5/></iq>")
                                .arg(from)
                                .arg(to)
                                .arg(id)
                                .arg((lastCheck.value(QString("%1").arg(account),"")=="")?QString(""):QString("newer-than-time='%1'").arg(lastCheck.value(QString("%1").arg(account))))
                                .arg((lastTid.value(QString("%1").arg(account),"")=="")?QString(""):QString("newer-than-tid='%1'").arg(lastTid.value(QString("%1").arg(account))));
                        stanzaSender->sendStanza(account, reply);

    Раскопано в недрах плагинов к psi:
    Особенно радует шедевральная конвертация int'а в строку при помощи QString("%1").arg(account),"")
    Плюс ко всему комменты на русском в интернациональном проекте это немножко моветон

    Sauron, 29 Декабря 2009

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

    +159.3

    1. 1
    echo '(!009`")24($!9l`342)+%2a' ^ '@@@@@@@@@@@@@@@@@@@@@@@@', PHP_EOL;

    [email protected], [email protected]

    HyperGeek, 23 Декабря 2009

    Комментарии (9)
  9. Pascal / Говнокод #2300

    −96

    1. 1
    2. 2
    {//}l:= a+sqrt(b); 
    {//}r:= c+sqrt(d);

    Ещё из одного исходника олимпиадной задачи. Не удалять же символы комментов, если их можно закомментить?

    Сан Саныч, 19 Декабря 2009

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

    +152.6

    1. 1
    2. 2
    3. 3
    <?php
       unset($_SESSION['ticket']); 
       $_SESSION['ticket'] = $ticket;

    масло маслянное... ну прям как в анекдоте про два джампа...

    nicolay-punin, 09 Декабря 2009

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

    −124.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
    #!/bin/bash
    cc=0
    cf=`cat $1`
    key=$2
    cbc=`cat $1 | wc -c`
    lc=`cat $1 | wc -l`
    while let "lc>=0"
    do
    cfl=`cat $1 | head -n $lc | tail -n 1`
    let lc--
    ccc=`echo $cfl | wc -c`
    cccc=0
    while let "cccc<=ccc"
    do
    sl=`echo -n ${cfl:$cccc:$key} | rev`
    echo $sl
    let "cccc=cccc+key"
    done
    done

    Alice, 06 Декабря 2009

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