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

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

    +133

    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
    void DUR_check()
    {
        DUR_tick[DUR_link]=DUR_tmp_tick;
        DUR_tmp_tick=0;
        DUR_link++;
        if(DUR_link > 9) DUR_link=0;
        S32 tmp3 = DUR_tick[0] + DUR_tick[1] + DUR_tick[2] + DUR_tick[3] + DUR_tick[4] + DUR_tick[5] + DUR_tick[6] + DUR_tick[7] + DUR_tick[8] + DUR_tick[9];
        //tmp3=((tmp3-HZ_MIN)*100)/(HZ_MAX-HZ_MIN);
        tmp3=(tmp3/10)-50;
        if(tmp3<0)tmp3=0;
        if(tmp3>100)tmp3=100;
        DUR_level=tmp3;
    }

    Первый блин, возможно комом.
    Один из проектов, который был передан мне.
    Это расчет процента заполнения ёмкости по частотному датчику.
    DUR_tmp_tick - количество прерываний от датчика,
    DUR_level - это и есть рассчитанные проценты.
    Все переменные глобальные, фильтр организован.
    Вызывается функция в другом прерывании, от таймера.
    Впрочем, всё остальное тоже вызывается в прерывании от таймера.

    apparato, 17 Апреля 2013

    Комментарии (3)
  3. bash / Говнокод #12863

    −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
    GetDSFInstallPath()
    {
    	DSF_INSTALL_PATH=`defaults read "/Library/Preferences/com.ubisoft.${PRODUCT_PREF_NAME}.GameUpdate" execPath | sed -n 's/\(.*\)\/.*/\1/p'`
    
    	# Convert from Unicode codes
    	LOC_IN_STR=${DSF_INSTALL_PATH}
    	LOC_CODES=`echo "${LOC_IN_STR}" | grep -oE [\\\\]u[[:xdigit:]]{4} | sort -u | grep -oE [[:xdigit:]]+`
    	if [ -n "${LOC_CODES}" ]; then
    	 if [ `php -v >/dev/null  2>/dev/null; echo $?` -eq 0 ]; then
    		for LOC_CODE_I in ${LOC_CODES}; do 
    			LOC_CHAR=`php -r "echo(mb_convert_encoding(pack('H*','$LOC_CODE_I'),'UTF-8','UTF-16'));"`
    			LOC_IN_STR=`echo "$LOC_IN_STR" | sed "s/[\\\\]u$LOC_CODE_I/$LOC_CHAR/g"`
    		done
    		DSF_INSTALL_PATH="${LOC_IN_STR}"
    		else
    		 echo "Warning: Game path is undefined: ${DSF_INSTALL_PATH}. Please, remove it manualy."
    	 fi
    	fi
    }

    Фрагмент скрипта uninstall`a от Ubisoft на макинтоше. mb_convert_encoding pack вот для чего нужен этот пхп, который кстати идет в комплекте с игрушкой

    stasyan, 08 Апреля 2013

    Комментарии (3)
  4. SQL / Говнокод #12818

    −167

    1. 1
    2. 2
    3. 3
    update sometable
    set value2=convert(char(100),   @int_variable+convert(int,value2))
    where  someconditions

    В цикле колбасится, упростил для понимания.
    Мне кажется эту штуку изначально проектировал человек, который работал с bash и sqlite, а потом оппа, и нет слабой типизации.

    bliznezz, 28 Марта 2013

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

    +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
    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
    void drawAAWave(DWORD *image, WAVE *w, int top, int left, 
    		int width, int height, int offsetPx)
    	{
    		int thd2 = top + height/2;
    		float hm2 = this->height - 2;
    		int x = 0, xc = 0, yc = 0;
    		float mul = amplify;
    		if (invert) mul = -mul;
    		if (x*scale + offsetPx*scale > w->length) return;
    		float yFrom = (thd2 - w->data[offsetPx*scale]*mul);
    		if (yFrom < 2.0f) yFrom = 2.0f;
    		if (yFrom > hm2) yFrom = hm2;
    		float yTo, dist, delta, sdelta, alpha, lc; 
    		int yMin, yMax, xcl, n;
    		for ( ; x < width-1 && (x+offsetPx)*scale < w->length; x++)
    		{
    			yTo = thd2 - w->data[(x + offsetPx)*scale]*mul;
    			if (yTo < 2) yTo = 2; if (yTo > hm2) yTo = hm2;
    			delta = yTo - yFrom;
    			sdelta = 1.0f / sqrtf(1.0f + delta*delta);
    			lc = ((x + 0.5f)*yTo - (x + 1.5f)*yFrom) + 0.5f;
    			yMin = (int)(min(yFrom, yTo)) - 1;
    			yMax = (int)(max(yFrom, yTo)) + 1;
    			xcl = x;
    			if (delta > 1.0f || delta < -1.0f) xcl++;
    			for (xc = x; xc <= xcl; xc++)
    				for (yc = yMin; yc <= yMax; yc++)
    				{
    					dist = ((-delta)*(xc + 0.5f) + yc + lc)*sdelta;
    					alpha = 1.0f - fabs(dist*0.8f);
    					if (alpha < 0.0f) alpha = 0.0f;
    					n = maxWidth*yc + xc;
    					image[n] = clrBlend(image[n], lineColor, alpha);
    				}
    			yFrom = yTo;
    		}
    	}

    Велосипедный метод рисования кривой с антиализингом

    just_nameless, 25 Марта 2013

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

    +158

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    public static function checkWriteToTorrentPath($path)
    {
    	if (file_put_contents($path.'file.txt', ' '))
    	{
    		unlink($path.'file.txt');
    		return TRUE;
    	}
    	else
    		return FALSE;
    }

    is_writable ? Не, не слышал!
    https://github.com/ElizarovEugene/TorrentMonitor/blob/master/class/System.class.php#L48 Эпик!

    DrFreez, 24 Марта 2013

    Комментарии (3)
  7. Perl / Говнокод #12759

    −84

    1. 1
    use constant MAX_INT => 4294967295;

    Code hard.

    P.S. perl -MPOSIX -we 'print INT_MAX'

    Elvenfighter, 17 Марта 2013

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

    +134

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    bool generateEfDbEachRun = false;
     bool.TryParse(config.Get("GenerateEFDBEachRun"), out generateEfDbEachRun);
    
     if (generateEfDbEachRun && bool.Parse(config.Get("GenerateEFDBEachRun")))
     {
       Database.SetInitializer(new SADatabaseInitializer());
     }

    taburetka, 15 Марта 2013

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

    +136

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    public double Supremum()
    {
    	HazardEstimation intensityEstimation = new IntensityEstimation(Sample, new EpanechnikovKernel(), SmoothingParameterMethod.Asymptotic);
    	var s = new List<double>(Sample.Size);
    	for (int i = 0; i < Sample.Size; i++)
    	s.Add(Math.Abs(intensityEstimation.NonParametricEstimation(Sample[i].Value) - rv.h(Sample[i].Value)));
    	return s.Max();
    }

    Дипломники не ищут легких путей

    zontar, 13 Марта 2013

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

    +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
    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
    <html>
        <head>
        <meta http-equiv='Content-Type' content='text/html; charset=windows-1251'>
        <head>
        <title>test</title>
        <script type="text/javascript">
        // Функция, осуществляющая AJAX запрос
        function loadXMLDoc(method, url) {
          if(window.XMLHttpRequest) {
            req = new XMLHttpRequest();
            req.onreadystatechange = processReqChange;
            req.open(method, url, true);
            req.send(null);
          } else if (window.ActiveXObject) {
            req = new ActiveXObject("Microsoft.XMLHTTP");
            req.onreadystatechange = processReqChange;
            req.open(method, url, true);
            req.send();
          }
        }
        // Функция, выполняемая при изменении статуса
        // запроса, если статус  равен 200, данные получены
        function processReqChange() {
          if(req.readyState == 4) {
         
            if(req.status == 200) {
              getNumber(req.responseText);
         
            } else {
              alert("There was a problem retrieving the XML data:\n" + req.statusText);
            }
          }
        }
        // Функция выполняется при клике по кнопке
        function process() {
         
           var v = document.getElementById("flag");
           var url = "ajax.php?flag=" + v.checked;
           loadXMLDoc( "get", url );
           setTimeout('process()', 1000);
        }
         
        // Функция записывает в элемент content значение, полученное от сервера
        function getNumber(text) {
          //для текстового поля
          var content = document.getElementById( "content" );
         content.value = text;
          //для div
         var content = document.getElementById( "content2" );
         content.innerHTML = text;
         
        }
         
        </script>
        </head>
        <body onload='process()'>
        <input type='checkbox' id='flag'>Флажок
        <input type='text' id='content'>
        <div id='content2'></div>
        </body>
        </html>
        .....................................................................................
         
        //файл ajax.php
        <?php
        if (isset($_GET['flag']))
        {
        if($_GET['flag']==='true') echo 'checked';
        else echo 'not checked';
        }
        ?>

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

    Stallman, 13 Марта 2013

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

    +153

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    $_SESSION["db_options"] = array ('host'     => trim($this->IP).":".trim($this->Port),
    										'user'     => trim($this->User),
    										'password' => trim($this->Pass),
    										'database' => trim($this->DB)
    										);

    Наследование? Не, не слышал

    nonamez, 05 Марта 2013

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