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

    В номинации:
    За время:
  2. 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)
  3. 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)
  4. 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)
  5. 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)
  6. 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)
  7. 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)
  8. PHP / Говнокод #5031

    +152

    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
    $src = $_GET["src"];
    $w = $_GET["w"];
    $h = $_GET["h"];
    $q = $_GET["q"];
    $info = pathinfo($src);
    $ext = $info["extension"];
    if($ext == "jpg" or $ext == "jpeg"){
        $img = imagecreatefromjpeg($src);
    }
    else if($ext == "gif"){
        $img = imagecreatefromgif($src);
    }
    else if($ext == "png"){
        $img = imagecreatefrompng($src);
    }
    $x = $w / imagesx($img);
    $y = $h / imagesy($img);
    $k = ($x > $y) ? $y : $x;
    $nw = intval(imagesx($img) * $k);
    $nh = intval(imagesy($img) * $k);
    $img1 = imagecreatetruecolor($nw, $nh);
    // $img1 = imagecreatefromjpeg("bj.jpg");
    imagecopyresampled($img1, $img, 0, 0, 0, 0, $nw, $nh, imagesx($img), imagesy($img));
    header("Content-type: image/jpeg");
    imagejpeg($img1, null, $q);
    imagedestroy($img);
    imagedestroy($img1);

    Кусман отборного калища руки Великого уё... Гудвина =)

    Ice, 23 Декабря 2010

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

    +110

    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
    protected void Page_Load(object sender, EventArgs e)
            {
                Common.CheckAuthorization(Response, Session);     
    
                string uniqueID = Request["__EVENTTARGET"];
                if (uniqueID != null)
                {
                    UpdatePanel.ContentTemplateContainer.Controls.Clear();
                    string controlPath;
                    Control control = GetViewControlOnEvent(uniqueID, out controlPath);
    
                    if (control != null)
                    {
                        UpdatePanel.ContentTemplateContainer.Controls.Add(control);
                        Helpers.SetKeyInSession(Common.CATALOG_KEYS.CONTROL_PATH, controlPath, Session);
                    }
                    else
                    {
                        UpdatePanel.ContentTemplateContainer.Controls.Add(
                            GetViewControlOnSession());
                    }
                }
                else
                {
                    if (ControlParam == null)
                        Helpers.SetKeyInSession(Common.CATALOG_KEYS.CONTROL_PATH, Common.PATHS.USER_CONTROLS.MAIN_CONTROL, Session);   
    
                    UpdatePanel.ContentTemplateContainer.Controls.Add(
                        GetViewControlOnSession());
                }
                TreeViewState.SaveTreeView(treeCatalogs, this.GetType().ToString());
    
                this.PreRender += OnPreRender;
            }

    Nigma143, 22 Декабря 2010

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

    +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
    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
    //exit;
    
    define("CACHE_USE", false);
    
    require("/usr/home/<path_to_config>/config.php");
    require_once(PATH_CLASSES . "/DB.Class.php");
    
    DB::connect(DBHOST, DBUSERNAME, DBPASSWORD, DBNAME);
    
    checkLongProcesses();
    sleep(30);
    checkLongProcesses();
    
    function checkLongProcesses() {
    	$pslist = DB::query("SHOW PROCESSLIST");
    
    	if (sizeof($pslist) > 25) {
    
    		mail("[email protected]", "SQL Processes Monitor Report", print_r($pslist, true));
    
    		echo "Killing long queries...\n\n";
    		foreach ($pslist as $el) {
    			if ($el['Time']>10) {
    				echo "Killing process: " . $el['Id'] . "\n";
    				echo $el['Info'] . "\n\n";
    				DB::query("KILL " . $el['Id']);
    			}
    		}
    	}
    }

    Достался проект с кодом различной говнистости. Вот такое, например, запускается кроном каждые 10 минут.

    wmmorgun, 21 Декабря 2010

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

    −178

    1. 1
    select count(*) from contacts left join orders on contacts.id = orders.contactId where not ISNULL(orders.contactId)

    Комментарий автора "в inner можно что-то потерять, а left всегда работает"

    Анонимус, 16 Декабря 2010

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