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

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

    +97

    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
    if MethodName = AnsiUpperCase('Зробити_все_чудово_пречудово') then
      begin
        Screen.Cursor := crHourGlass;
        try
          for LowIndex := 0 to 200 do
          begin
            Application.ProcessMessages;
            Sleep(10);
          end;
          ShowInfo('Тепер все чудово-пречудово.'#13#10'Посміхніться!');
        finally
          Screen.Cursor := crDefault;
        end;
      end

    Внутренний скрипотвый язык

    stokito, 12 Января 2011

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

    +158

    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
    if(($res = GetMysqlRes("SELECT id,name,price,anons2,colors,sizes,anons,content2,content,maker,title FROM {$oCfg->prefX}core WHERE top=".$pid." and act=1 ORDER BY date DESC LIMIT ".($pnum-1)*$eop.",".$eop."",array($pid),false)) != false)
    {
    while (($row = $db->fetch_row($res)) !== false)
    		{
    
    	...<script type='text/javascript'>
    		function chs".$row[0]."() {
    			document.getElementById(\"s_size".$row[0]."\").innerHTML = document.getElementById(\"sel_size".$row[0]."\").value;
    		}
    		function chc".$row[0]."() {
    			document.getElementById(\"s_color".$row[0]."\").innerHTML = document.getElementById(\"sel_color".$row[0]."\").value;
    		}
    	</script>...
    
    }
    }

    это находилось в цикле. К этому же потом обращались для добавления в корзину товара.

    Три точки значат что там есть еще код.

    P.S. Опять же привет мазе.

    De-Luxis, 12 Января 2011

    Комментарии (1)
  4. VisualBasic / Говнокод #5198

    −102

    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
    Private Sub DoIt()
            System.Threading.Thread.Sleep(3000)
            SetCursorPos(1012, 373)
            LeftClick()
            
            System.Threading.Thread.Sleep(4000)
            SetCursorPos(526, 273)
            LeftClick()
            
            System.Threading.Thread.Sleep(2000)
            SetCursorPos(412, 330)
            LeftClick()
           
            System.Threading.Thread.Sleep(3000)
            SetCursorPos(414, 503)
            LeftClick()
            
            System.Threading.Thread.Sleep(5000)
            SetCursorPos(659, 333)
            LeftClick()
           
            System.Threading.Thread.Sleep(3000)
            SetCursorPos(622, 390)
            LeftClick()
            
            System.Threading.Thread.Sleep(7000)
            SetCursorPos(659, 333)
            LeftClick()
    
            System.Threading.Thread.Sleep(3000)
            SetCursorPos(622, 390)
            LeftClick()
    
            System.Threading.Thread.Sleep(8000)
            SetCursorPos(659, 333)
            LeftClick()
    
            System.Threading.Thread.Sleep(2000)
            SetCursorPos(622, 390)
            LeftClick()
    
            System.Threading.Thread.Sleep(6000)
            SetCursorPos(659, 333)
            LeftClick()
    
            System.Threading.Thread.Sleep(3000)
            SetCursorPos(622, 390)
            LeftClick()
    
            System.Threading.Thread.Sleep(5000)
            SetCursorPos(660, 533)
            LeftClick()
        End Sub

    Мой древний код одного кликера. Обратите внимание на отличный способ таймаута между командами (а ведь у проги и GUI есть, как его так обновлять?) Как потом позже скажет один мой знакомый - "Время между командами - важно".

    RaZeR, 10 Января 2011

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

    +134

    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
    void epilog()
    {  
    	fprintf(fvih,"\tINCLUDE\tstd.asm\n");
    	fprintf(fvih,"_KOM\tENDS\n");
    	fprintf(fvih,"_STEK\tSEGMENT USE16\tSTACK\n");
    	fprintf(fvih,"\tDW\t100 DUP (?)\n");
    	fprintf(fvih,"_DNOST\tDW\t?\n");
    	fprintf(fvih,"_STEK\tENDS\n");
    	if (kolglb > 0) {  
    		fprintf(fvih,"_DAN\tSEGMENT USE16\n");
    		for (i = 1; i <= kolglb; i++)
    			if (tabim[i].vidob == 1)      /* пеpеменная */
    				if (tabim[i].typ == int_t)
    					fprintf(fvih,"%s\tDW\t?\n",tabim[i].imja);
    				else
    					fprintf(fvih,"%s\tDD\t?\n",tabim[i].imja);
    		fprintf(fvih,"_DAN\tENDS\n");
    	}
    	if (est6_main)
    		fprintf(fvih,"\tEND\t_main\n");
    	else fprintf(fvih,"\tEND\n");
    	fprintf(fvih,";Компилятоp С0 от 9/10/92:\n;колич. ошибок %d\n",kolosh);	
    	printf("Компилятоp С0 от 9/10/92:\nколич. ошибок %d\n",kolosh);
    }
    
         /**********************************************/
         /*             Основная пpогpамма             */
         /**********************************************/
    int main(int agrc, char *argv[])
    {  
    	int i;
    	for (i=0; i<=255; i++) leksim[i]=osh;
    	leksim['+']=plus;  leksim['-']=minus;  leksim['*']=umn;
    	leksim['/']=del;   leksim['%']=ost;    leksim['=']=prisv;
    	leksim['<']=men;   leksim['>']=bol;    leksim['(']=lskob;
    	leksim[')']=pskob; leksim['{']=flskob; leksim['}']=fpskob;
    	leksim[',']=zpt;   leksim[';']=tchzpt; 
    
        /* множество начальных лексем выpажения */
    	nvir = st2[ident] | st2[chislo] | st2[minus] | st2[lskob];
    
    	/* мн-во нач-х лексем оп-pа */
    	noper = st2[flskob] | st2[ifsl] | st2[whilesl] | st2[retsl] | st2[tchzpt] | st2[dosl] | nvir; 
    	vhstr[0]=' '; 
    	vhstr[1]='\0'; 
    	usim = vhstr;kolglb =kolim =ef =	tipop =est6_main =kolosh =kmet =0;
    	is_leave_old = false;
    	fvh=fopen("C://p.c0","r");
    	//fvh=fopen(argv[1],"r");            /* откpыть входной файл  */
    	fvih=fopen("C://p.asm","w"); 
    	//fvih=fopen(argv[2],"w");          /* откpыть выходной файл */
    	if ((fvh == NULL) || (fvih == NULL))
    		oshibka(8);                      /*  файлы не откpылись */
    	else {
    		prolog();
    		while (!ef) {
    			chleks();
    			if (leksema == intsl) {              /* слово int        */
    				opisper(0); 
    				kolglb=kolim; 
    			}/*описание глоб-х пер-х*/
    			else if (leksema == longsl) {              /* слово int        */
    				opisper_long(0); 
    				kolglb=kolim; 
    			}/*описание глоб-х пер-х*/
    			else if (leksema == ident)      /* имя                 */
    				oprfun();                  /* опpеделение функции */
    			else if (!ef)    /* тpебуется опис-е пеp-х или ф-ции */
    				test(st2[intsl] | st2[ident],st2[pskob] | st2[tchzpt],3);
    		}
    		epilog();
    		fclose(fvh);
    	    fclose(fvih);
    	}
    	return 0;
    }

    qbasic, 07 Января 2011

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

    +145

    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
    #include "qrselector.h"
    
    QRSelector::QRSelector(QWidget *parent) :
        QWidget(parent){
        setupUi(this);
        showMaximized();
        //showFullScreen();
        rubberBand = 0;
        //this->autoFillBackground();
    
    
    
    
        //this->setWindowOpacity(0.2);
        //this->setAttribute(Qt::WA_TranslucentBackground);
        //this->setWindowFlags(Qt::FramelessWindowHint);
    }
    
    void QRSelector::changeEvent(QEvent *e)
    {
        QWidget::changeEvent(e);
        switch (e->type()) {
        case QEvent::LanguageChange:
            retranslateUi(this);
            break;
        default:
            break;
        }
    }
    
    void QRSelector::mousePressEvent(QMouseEvent *e)
    {
        if(rubberBand)
            rubberBand->hide();
        origin = e->pos();
        if (!rubberBand)
            rubberBand = new QRubberBand(QRubberBand::Rectangle, this);
        rubberBand->setGeometry(QRect(origin, QSize()));
    
        //rubberBand->setWindowOpacity(0.9);
        rubberBand->setPalette(QPalette (Qt::red));
        rubberBand->setStyleSheet("background-color: #F5EEA7;");
        rubberBand->show();
    
    }
    
    void QRSelector::mouseMoveEvent(QMouseEvent *e)
    {
        rubberBand->setGeometry(QRect(origin, e->pos()).normalized());
        int ww, hh;
        ww = origin.x() - e->x();
        hh = origin.y() - e->y();
        if(ww < 0) ww *= -1;
        if(hh < 0) hh *= -1;
        label->setText("height: "+QString::number(hh)+" width: "+QString::number(ww));
    }

    qrselector.cpp

    Resager, 06 Января 2011

    Комментарии (1)
  7. JavaScript / Говнокод #5063

    +169

    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
    for (i = 0; i < 1000; i++)  /** Уничтожаем потоки **/ /** УНИЧТОЖИТЬ ЭТУ ХЕРЬ И НАПИСАТЬ ЧТОТО ПРИЛИЧНОЕ **/
    { 
    	clear = true;
    	
    	if (hash_interval != i)
    	{
    		for (k in flowException)
    		{
    			if (k == i)
    			{
    				clear = false;
    				
    				break;
    			}
    		}
    		
    		if (clear == true)
    		{
    			clearInterval(i); 
    		}
    	}
    }

    Собственно потоками в данном случае называются индикаторы setInterval

    Genka, 26 Декабря 2010

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

    +157

    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
    function pages($table,$id,$page,$func,$num,$p,$count=false){
    global $db,$basepref;
    $outpages = array();
     
    if($count==0){
     $item_num = $db->fetchrow($db->query("SELECT COUNT(".$id.") AS total FROM ".$basepref."_".$table.""));
    } else {
     $item_num['total'] = $count;
    }
     
    $nums = @ceil($item_num['total']/$num);
     
    if($nums <= 1){
    $outpages[]=("<span class=\"pagesempty\">1</span>");
    } else {
    if($p > 1){
    $goback=$p-1;
    $outpages[]=("<a class=\"pages\" href=\"".$page.".php?dn=".$func."&p=1\"><<</a>");
    $outpages[]=("<a class=\"pages\" href=\"".$page.".php?dn=".$func."&amp;p=$goback\"><</a>");
    }
    for($i=1; $i<$nums+1; $i++) {
    if($i==$p){
    $outpages[]=("<span class=\"pagesempty\">$i</span>");
    } else {
    if(($i > $p) && ($i < $p+5) || ($i < $p) && ($i > $p-5)){ $outpages[]=("<a class=\"pages\" href=\"".$page.".php?dn=".$func."&amp;p=$i\">$i</a>"); }
    }
    }
    if($p<$nums){
    $gonext=$p+1;
    $outpages[]=("<a class=\"pages\" href=\"".$page.".php?dn=".$func."&amp;p=$gonext\">></a>");
    $outpages[]=("<a class=\"pages\" href=\"".$page.".php?dn=".$func."&p=$nums\">>></a>");
    }
    }
    return implode('&nbsp;',$outpages);
    }

    qbasic, 24 Декабря 2010

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

    +157

    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
    $count_per_page = 15;
    $page = 1;
     
                    mysql_select_db($DB);
                    $result = mysql_query('SELECT round(count(id)/' . $count_per_page . ') FROM PRICELIST');
       $counts = mysql_fetch_row($result);
    $page_max = $counts[0];
    if (!empty($_GET['page'])) {
    $page = (int) $_GET['page'];
    if ($page > $page_max)
    $page = $page_max;
    if ($page < 1)
    $page = 1;
    }
                    $result=mysql_query('SELECT SQL_CALC_FOUND_ROWS * from PRICELIST  LIMIT ' .(($page - 1) * $count_per_page). ', ' .$count_per_page ); 
                     $cnt  = mysql_result(mysql_query('SELECT FOUND_ROWS()'), 0);
    if(mysql_num_rows($result)) { // выводим таблицу 
      echo "<td valign='right width='12%' height='15px' align='center' bgcolor=#FFFFFF>Артикул</td>
                    <td valign='right width='58%' height='' align='center' bgcolor=#FFFFFF>Наименование изделий</td>
     
                    <td valign='right width='10%' height='' align='center' bgcolor=#FFFFFF>Страна</td>
                    <td valign='right width='10%' height='' align='center' bgcolor=#FFFFFF>Ед</td>
                    <td valign='right width='15%' height='' align='center' bgcolor=#FFFFFF>Цена</td>
                    <td valign='right width='5%' height='' align='center' bgcolor=#FFFFFF>картинка</td>";
    while($row = mysql_fetch_assoc($result)) { 
    echo "</tr>";
    echo "<tr>";
    echo '<td align=left width=12% height=10% bgcolor=#FFFFFF>'.$row['artikul'].'</td><td width=48%  align=left bgcolor=#FFFFFF height=30px>'.$row['nametovar'].'</td><td width=15% align=left bgcolor=#FFFFFF height=10px>'.$row['country'].'</td><td width=10% align=left bgcolor=#FFFFFF height=10px>'.$row['edin'].'</td><td width=10% align=left bgcolor=#FFFFFF height=10px>'.$row['cena'].'</td><td width=5% align=left bgcolor=#FFFFFF height=5px><a id="example1" href="kartinki/' . $row['image'] .'"><img src="kartinki/' . $row['image'] .'" width=75px height=75px></a></td>'; 
     } 
    echo '</tr></table><table height=1% width=100%><tr><td align="center" colspan="5" bgcolor=#FFFFFF>';
    echo $i;
    for ($i=1; $i<=$page_max; ++$i) {
    if ($i != $page) {
    echo '<a href="?page='.$i.'"><font color=#1007b8>'.$i.'</font></a> ';
    }
    else {
    echo '<font color=#e59001>'.$i.' </font>';
            }
        }
    echo '<h5 align=center><font color=#e59001>Всего в прайс-листе '. $cnt .' позиций</font></h5>';
    }

    qbasic, 24 Декабря 2010

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

    +145

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    case "exit":
                unset($_SESSION["SITE_ADMIN"]);
                header("location: {$_SERVER["PHP_SELF"]}");
                die;
            break;

    выход "по-мишустински"
    не знаю как вам, а я словил лулзы

    цопырайты уходят komprenda, он же "Istem"

    Lure Of Chaos, 24 Декабря 2010

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

    +163

    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
    AClass::AClass()
    {
            char c;
    	pipe( m_ThreadPipeA );
    	pipe( m_ThreadPipeB );
            write( m_ThreadPipeA[0], &c, sizeof(c) );
    }
    
    void AClass::JobCreatorThread()
    {
    	char c;
    	do {
    		/* prepare new job and pass it to the thread pool */
    		read( m_ThreadPipeA[1], &c, sizeof(c) );
    		m_CurrJob = IncomingJob;
    		write( m_ThreadPipeB[0], &c, sizeof(c) );
    	} while (!m_Shutdown);
    }
    
    void AClass::ThreadPoolMethod()
    {
    	char c;
    	do {
    		Job j;
    		read( m_ThreadPipeB[1], &c, sizeof(c) );
    		j = m_CurrJob;
    		write( m_ThreadPipeA[0], &c, sizeof(c) );
    		/* handle the job j */
    	} while (!m_Shutdown);
    }

    из архивов.

    дала как-то архетиктура задание модуль распаралелить потоками - но при этом как можно меньше использовать локи, что бы проблем вертикального скалирования не возникало. и три месяца спустся они родили -о чудо!- многопоточный модуль ВООБЩЕ без локов. тока с производительностью проблемы - но это не могут быть локи потому что модуль ими ВООБЩЕ не пользуется - почему мне и дали задание посмотреть что там можно еще усовершенствовать.

    мне несколько часов понадобилось что бы мой примитивный мозг смог осознать величие полета мысли моих коллег. а потом (когда я наконец из моря кода выцедил приведенную сверху эссенцию) у меня волосы дыбом встали....

    лопата: чудаки пайпами симулировали мутексы/ивенты. и ведь не придерешься: архитекторы сказали локи избегать, а про пайпы ничего сказано не было.

    ЗЫ ну и то что в джоб объекте еще и строковых массивов на 80К, и они постоянно копировались туды сюды, это было cherry topping ко всему этому счастью.

    Dummy00001, 23 Декабря 2010

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