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

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

    +156

    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
    // в данном случае count($xls_data) не подойдет, потому что
    // он меньше изза того что индексы не всегда по +1 идут
    end($xls_data);
    list($xls_dataCount,$unused) = each($xls_data);
    
    // тут некоторый код, тоже пахнет
    
    for($i = 3; $i <= $xls_dataCount; $i++){
    	$row = $xls_data[$i];
    	if(count($row) == 1 && $estnames[$row[1]])$ename = $row[1];
    	else{
    		foreach($years as $yindex => $year)
    			$data[$ename][$row[1]][$year] = $row[$yindex];
    	}
    }

    Сижу и ковыряюсь в говнице, по уши увяз((((

    asics, 30 Июля 2010

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

    +75

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    PriceWithInterval pwi = new PriceWithInterval();
                pwi.setPrice(p);
                pwi.setStart(dateFormat.parse(dateFormat.format(p.getStartDate())).getTime());
                Long endTm = dateFormat.parse(dateFormat.format(p.getEndDate())).getTime();
                //Больше 50 лет - техническая бесконечность
                if (((endTm-pwi.getStart())/1000/3600/24/365)>50)
                {
                    endTm = dateFormat.parse("31.12.9999").getTime();
                }
    
                // Где dateFormat объявлен как
                new SimpleDateFormat("dd.MM.yyyy");

    Вот такое вот масло масляное. Думается, что этот трюк применён здесь для того, чтобы получить начало дня. Чем не устраивает Calendar, неясно. Ну в крайнем случае, можно было целочисленно поделить и умножить на 1000 * 3600 * 24. Ну и вычисление в общем-то константной "технической бесконечности" радует неимоверно.

    konsoletyper, 30 Июля 2010

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

    +161

    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
    function posit(texta,  textb)
    {
    	texta = texta + "";
    	return texta.indexOf(textb+"");
    }
    function trimme(texta)
    {
    	var trimming = true;
    	while(trimming == true)
    	{
    		if((posit(texta, "  ")+1)>0)
    		{
    			texta = texta+" ";
    			texta = texta.substr(0, posit(texta, "  "));	
    		}
    		if((posit(texta, "  ")+1) == 0)
    		{
    			trimming = false;
    		}
    	}
    	return texta;
    }

    Тихий ужас

    XyHb, 29 Июля 2010

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

    +100

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    f = fopen(file_name, "w");
    if (!f) {
      f = fopen(file_name, "w+");
      if (!f)
        logprintfl(EUCAWARN, "Cannot create %s!\n", file_name);
      else {
        len = fileno(f);
        if (len > 0)
          fchmod(len, S_IRUSR|S_IWUSR);
      }
    }

    Суровые калифорнийские парни сурово создают суровые файлы...

    raorn, 29 Июля 2010

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

    +163

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    if (($state_client=='DEL')||(empty($descr)))
    	print "<!--";
    ?>
    тут код HTML всякий с использованием <?=$var?> и прочей красоты
    <?
    if (($state_client=='DEL')||(empty($descr)))
    	print "-->";

    В описании не нуждается

    Werdn, 28 Июля 2010

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

    +144

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    # Подключаем MySQL класс
    a_import('libraries/mysql');
    $db = new MySQL();
    $db->debugging = TRUE;
    $db->connect();
    $db->charset('utf8');

    Код взят из CMS http://mobilecms.ru/

    Нет чтобы объявить свойства приватными, а начальные параметры передать в конструктор

    Aligan, 28 Июля 2010

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

    +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
    $query = "
    	SELECT 	packet, info FROM packet ORDER BY info";
    $result = mysql_query($query);
    while ($row = mysql_fetch_array($result)) /* Тут очень много строк */
    {
    	/*Тут один очень жирный запрос*/
    	/* ... */
    	$res8 = mysql_query("SELECT date FROM analiz_packet2 WHERE date='$dnow' LIMIT 1");
    		
    	if (mysql_num_rows($res8) == 0)
    	{
    		echo "<td align=right>{$r[2]}</td>";
    	}
    	
    	echo "<td align=right>{$r[3]}</td>";
    	
    	$res2 = mysql_query("SELECT date FROM analiz_packet2 WHERE date='$dnow' LIMIT 1	");
    	/* Unknown date */
    	if (mysql_num_rows($res2) == 1)
    	{
    		/*Тут еще несколько SQL запросов*/
    	}
    	
    	/* ... */
    }

    Два ядра грузятся на 178% по данным top-а

    Werdn, 26 Июля 2010

    Комментарии (2)
  9. SQL / Говнокод #3739

    −864

    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
    -- Процедура предназначена для выделения часов из времени
    CREATE PROCEDURE _hour(
    	_date_time	DATETIME YEAR TO SECOND DEFAULT NULL
    )RETURNING INTEGER;
    
    DEFINE _str	CHAR(20);
    
    IF _date_time IS NULL THEN
    	LET _date_time = CURRENT;
    END IF;
    
    LET _str = _date_time;
    LET _str = SUBSTR(_str,12,2);
    
    RETURN _str;
    
    END PROCEDURE;

    СУБД infomix
    а ведь можно сделать так
    CAST(CURRENT AS DATETIME HOUR TO HOUR)
    или так
    EXTEND(CURRENT, HOUR TO HOUR)

    и таких перлов с вычислением дат тьма тьмущая

    Grizzly, 20 Июля 2010

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

    +113

    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
    public static byte[] GetMonthlyFinancialReport(
            //...
            DateTime dateInterested)
        {
    // ...
    
            DateTime monthAgoDate = dateInterested;
    
            int dayInterested = dateInterested.Day;
            int daysInMonthInterested = DateTime.DaysInMonth(dateInterested.Year, dateInterested.Month);
            int daysInPreviousMonth = DateTime.DaysInMonth(dateInterested.Year, (dateInterested.Month == 1) ? 12 : (dateInterested.Month - 1));
    
            if (dayInterested == daysInMonthInterested)
            {
                monthAgoDate = monthAgoDate.AddDays(-1 * monthAgoDate.Day);
            }
            else
            {
                monthAgoDate = monthAgoDate.AddDays(-1 * Math.Max(daysInPreviousMonth, Math.Min(daysInMonthInterested, dayInterested)));
            }
    
    // ...
        }

    Головоломочка для любителей поиграться с датами... :)

    svkandroid, 19 Июля 2010

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

    +109

    1. 1
    if (embededDatasourceItem.Text.Localized(language) == string.Empty)

    Это вместо string.IsNullOrEmpty

    imshaman, 16 Июля 2010

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