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

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

    +78

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    public String work(String src){
    	char[] chr = new char[((src.length() + 5) / 6) * 6];
    	for(int n = 0; n < chr.length; n++)
    	{
    		// vyznaji se =)
    		chr[n]=(n%6>2)?(n%6==4)?(n-4<src.length())?src.charAt(n-4):' ':(n<src.length())?src.charAt(n):' ':(n%6<2)?(n%6==1)?(n+3<src.length())?src.charAt(n+3):' ':(n+1<src.length())?src.charAt(n+1):' ':(n<src.length())?src.charAt(n):' ';
    	}
    	return new String(chr);
    }

    Метод шифрования перестановками по 6 символов. Думал. Работает

    Selden, 05 Февраля 2012

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

    +91

    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
    if IsThemeActive then
    begin
      ThemePartName := 'TAB';
      ThemeHandle := OpenThemeData(TabSheetQA.Handle, PWideChar(ThemePartName));
      if ThemeHandle <> 0 then
      begin
        ImageClipRect := ImageForBkColorRecalc.ClientRect;
        DrawThemeBackground(ThemeHandle, ImageForBkColorRecalc.Canvas.Handle,
          TABP_BODY, 0, ImageForBkColorRecalc.ClientRect, @ImageClipRect);
        BkColor := ImageForBkColorRecalc.Canvas.Pixels[0, 0];
      end;
      Exit;
    end;

    Надыбано в компоненте Delphi. Код получает начальный цвет градиента панелей Таб-контрола при включенных стилях XP и Aero. Для этого рисует на скрытом TImage его небольшой фрагмент и выдирает угловой пиксель.

    Durik, 03 Февраля 2012

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

    +145

    1. 1
    2. 2
    3. 3
    if($('headerForm:topCancelLink')){
        $('headerForm:topCancelLink').style.display='block';
    }

    Зачем использовать CSS, если есть prototype?

    roman-kashitsyn, 03 Февраля 2012

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

    +148

    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
    <?php
    function demotivator($image, $wheresave, $slogan1, $slogan2, $copyright) {
    $ext = getimagesize($image);
    // Открываем изображение
    switch($ext[2]) {
    
    	case 2: {$img = ImageCreateFromJPEG($image); break;}
    	case 1: {$img = ImageCreateFromGIF($image); break; }
    	case 3: {$img = ImageCreateFromPNG($image); break;}
    	case 6: {$img = ImageCreateFromBMP($image); break;}
    	default : {
    		unlink ($image);
    		return 2;
    	}
    }
    // Получение размеров изображения
    $x = ImageSX($img); // X
    $y = ImageSY($img); // Y
    // Размер черного прямоугольника, который будем рисовать
    $tx = $x * 0.1;
    $ty = $x * 0.1;
    $bx = $x + $tx;
    $by = $y + $ty;
    $dx= $x * 0.01; // Смещение. Необходимо для рисования рамки
    $dy= $x * 0.01;
    // Черный фон
    $black = ImageColorAllocate($img, 0, 0, 0);
    // Создаем новое изображение
    $img2 = ImageCreateTrueColor($bx + $tx, $by + $tx * 2.6);
    $black = ImageColorAllocate($img2, 0, 0, 0);
    // Масштабирование
    ImageCopyResized($img2, $img, $tx, $ty, 0, 0, $bx-$tx, $y, $x, $y);
    // Расчет смещений для рисования рамки
    $x1 = $tx;
    $y1 = $ty;
    $x2 = $bx;
    $y2 = $y + $ty;
    // Цвета рамки, слоганов и копирайта
    $col = ImageColorAllocate($img2, 255, 255, 255); // Цвет слоганов
    $col2 = ImageColorAllocate($img2, 255, 255, 255); // Цвет копирайта
    $col3 = ImageColorAllocate($img2, 255, 255, 255); // Цвет рамки
    // Рамки на изображении
    ImageRectangle($img2, $x1 - 5, $y1 - 5, $x2 + 4, $y2 + 4, $col3);
    ImageRectangle($img2, $x1 - 6, $y1 - 6, $x2 + 5, $y2 + 5, $col3);
    // Пишем слоганы, сначала с X=0, чтобы получить линейные размеры текста
    $s1 = ImageTTFText($img2, 0.06 * $bx, 0, $dx, $by + $ty, $col, "/times.ttf", $slogan1);
    $s2 = ImageTTFText($img2, 0.035 * $bx, 0, $dx, $by + $ty + 0.08 * $bx, $col, "/arial.ttf", $slogan2);
    // 1-й слоган не помещается в картинку - ошибка!
    if (($s1[2] - $s1[0]) > $bx + $tx) $sl1 = 1;
    $dx = (($bx + $tx) - ($s1[2] - $s1[0]))/2; // Смещение. Эта величина определяет центровку текста для 1-го слогана
    // Непосредственно текст. 1-й слоган
    ImageFilledRectangle($img2, 0, $y2 + 10, $bx + $tx, $by + $tx * 2.8, $black);
    ImageTTFText($img2, 0.06 * $bx, 0, $dx, $by + 1.1*$ty, $col, "/times.ttf", $slogan1);
    $dx = (($bx + $tx) - ($s2[2] - $s2[0]))/2; // Смещение. Эта величина определяет центровку текста для 2-го слогана
    // Непосредственно текст. 2-й слоган (таглайн)
    if ($dx < 0)  {
    	// Текст не умещается в картинку, масштабируем.
    	$s = $s2[2] - $s2[0];
    	$size = (0.035 * $bx * $bx) /$s;
    	$s2 = ImageTTFText($img2, $size, 0, $dx, $by + $ty + 0.08 * $bx, $col, "/arial.ttf", $slogan2);
    	$dx = (($bx + $tx) - ($s2[2] - $s2[0]))/2;
    	ImageFilledRectangle($img2, 0, $by + 1.2* $tx, $bx + $tx, $by + $tx * 2.6, $black);
    	ImageTTFText($img2, $size, 0, $dx, $by + $ty + 0.08 * $bx, $col, "/arial.ttf", $slogan2);
    } else  {
    	$size = 0.035 * $bx;
    	ImageFilledRectangle($img2, 0, $by + 1.4*$tx, $bx + $tx, $by + $tx * 2.3, $black);
    	ImageTTFText($img2, $size, 0, $dx, $by + $ty + 0.08 * $bx, $col, "/arial.ttf", $slogan2);
    }
    // Copyright
    ImageTTFText($img2, $size/1.7, 0, 10, $by + $tx * 2.5, $col2, "/arial.ttf", $copyright);
    ImageJpeg($img2, $wheresave);
    ImageDestroy($img2);
    return 0;
    }
    ?>

    Код не мой, я просто разместил объяву.

    varg242, 31 Января 2012

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

    +148

    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
    /*
     @param array $menu_array Array of pages
     @param string $current Current page
     @return string $menu Menu.
    */
    function CreateMenu($menu_array, $current)
    {
        foreach($menu_array as $key => $value)
        {
            if($key == $current) $active = " class=\"active\"";
            
            $menu .= "<li$active><a href=\"$key\">$value</a></li>\n";
            unset($active);
        }
        
        return $menu;
    }

    varg242, 31 Января 2012

    Комментарии (6)
  7. Ruby / Говнокод #9269

    −101

    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
    def actual?
        if self.from <= Date.today
          if self.to
            if self.to >= Date.today
              true
            else
              false
            end
          else
            true
          end
        else
          false
        end
      end

    метод в модели, проверяющий ее актуальность

    MikDiet, 31 Января 2012

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

    +155

    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
    lili at nikha dot org 04-Apr-2011 04:02 
     Keep it simple! 
     For associative arrays, my replacement for list() is this:
    <?php
    foreach ($associative_array as $key => $value) { $$key = $value; }
    ?>
    
     Example:
    <?php
     $petnames = array();
    $petnames['dog'] = 'Paul';
    $petnames['cat'] = 'Lili';
    
     foreach ($petnames as $name => $value) { $$name = $value; }
    
     echo 'my pets are '.$dog.' and '.$cat;
    ?>
    
     Will give you:
     my pets are Paul and Lili

    Коммент к функции list() в мануале. В See Also был extract(), но видимо далбоёбов это не останавливает.

    DrFreez, 30 Января 2012

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

    +167

    1. 1
    $sredn['Итог']['Е']=$sredn['Итог']['Е']+$sredn['Цех монтажа, ремонта вооружения и ремонта электрооборудования N 2']['Е'];$sredn['Итог']['Я']=$sredn['Итог']['Я']+$sredn['Цех монтажа, ремонта вооружения и ремонта электрооборудования N 2']['Я']; $sredn['Итог']['Яч']=$sredn['Итог']['Яч']+$sredn['Цех монтажа, ремонта вооружения и ремонта электрооборудования N 2']['Яч']; $sredn['Итог']['К']=$sredn['Итог']['К']+$sredn['Цех монтажа, ремонта вооружения и ремонта электрооборудования N 2']['К']; $sredn['Итог']['О']=$sredn['Итог']['О']+$sredn['Цех монтажа, ремонта вооружения и ремонта электрооборудования N 2']['О']; $sredn['Итог']['Ж']=$sredn['Итог']['Ж']+$sredn['Цех монтажа, ремонта вооружения и ремонта электрооборудования N 2']['Ж']; $sredn['Итог']['Б']=$sredn['Итог']['Б']+$sredn['Цех монтажа, ремонта вооружения и ремонта электрооборудования N 2']['Б']; $sredn['Итог']['Р']=$sredn['Итог']['Р']+$sredn['Цех монтажа, ремонта вооружения и ремонта электрооборудования N 2']['Р']; $sredn['Итог']['ОЖ']=$sredn['Итог']['ОЖ']+$sredn['Цех монтажа, ремонта вооружения и ремонта электрооборудования N 2']['ОЖ']; $sredn['Итог']['У']=$sredn['Итог']['У']+$sredn['Цех монтажа, ремонта вооружения и ремонта электрооборудования N 2']['У']; $sredn['Итог']['А']=$sredn['Итог']['А']+$sredn['Цех монтажа, ремонта вооружения и ремонта электрооборудования N 2']['А']; $sredn['Итог']['Г']=$sredn['Итог']['Г']+$sredn['Цех монтажа, ремонта вооружения и ремонта электрооборудования N 2']['Г']; $sredn['Итог']['ОАД']=$sredn['Итог']['ОАД']+$sredn['Цех монтажа, ремонта вооружения и ремонта электрооборудования N 2']['ОАД']; $sredn['Итог']['ПР']=$sredn['Итог']['ПР']+$sredn['Цех монтажа, ремонта вооружения и ремонта электрооборудования N 2']['ПР']; $sredn['Итог']['В']=$sredn['Итог']['В']+$sredn['Цех монтажа, ремонта вооружения и ремонта электрооборудования N 2']['В']; $sredn['Итог']['дни']=$sredn['Итог']['дни']+$sredn['Цех монтажа, ремонта вооружения и ремонта электрооборудования N 2']['дни']; $sredn['Итог']['днич']=$sredn['Итог']['днич']+$sredn['Цех монтажа, ремонта вооружения и ремонта электрооборудования N 2']['днич']; $sredn['Итог']['srednespisRaschet']=$sredn['Итог']['srednespisRaschet']+round($sredn['Цех монтажа, ремонта вооружения и ремонта электрооборудования N 2']['srednespisRaschet']/$datn,1); $sredn['Итог']['neiavki']=$sredn['Итог']['neiavki']+$sredn['Цех монтажа, ремонта вооружения и ремонта электрооборудования N 2']['neiavki'];

    это только маленькая частичка того поистине огромного наследства, которое досталось мне и моему коллеге.
    человек писавший это отличался полным нехотение использовать хотя бы оператор +=
    и циклы конечно же.

    p.s. да-да это одна строка
    p.p.s. и, как вы понимаете, она там не одна

    drugged_monkey, 28 Января 2012

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

    +125

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    .middleWrapper .countryPreviewWrapper .countryPreviewContainer {}
    .middleWrapper .countryPreviewWrapper .countryPreviewContainer .item {}
    .middleWrapper .countryPreviewWrapper .countryPreviewContainer .item h2 {}
    .middleWrapper .countryPreviewWrapper .countryPreviewContainer .item hr {}
    .middleWrapper .countryPreviewWrapper .countryPreviewContainer .item span {}

    адовые цепочки

    alex_ok, 23 Января 2012

    Комментарии (6)
  11. Java / Говнокод #9193

    +70

    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
    public class Brakets {
    	public static void main(String args[]) {
    		String sample;
    		if (args.length > 0 && args[0] != "")
    			sample = args[0];
    		else
    			sample = "asdf(sd{sd}sdfgs[sdfg{}]_)){}sdfg[sdfg{sdfg}]";
    		// init handler and add patterns
    		BracketHandler b = new BracketHandler();
    		b.add("[", "]");
    		b.add("{", "}");
    		b.add("[", "]");
    		b.add("(", ")");
    
    		// init input stack
    		CommonStack<BracketTemplate> result = new CommonStack<BracketTemplate>();
    
    		for (int i = 0; i < sample.length(); i++) {
    			// Assert that pattern is one characted length
    			String subString = sample.substring(i, i + 1);
    			BracketTemplate tmp = b.getTemplate(subString);
    			if (tmp != null) {
    				if (tmp.isStartPattern(subString)) {
    					result.push(tmp);
    				} else {
    					BracketTemplate t = result.pop();
    					if (t == null || !t.isEndPAttern(subString)) {
    						System.out.print("Check failed");
    						return;
    					}
    				}
    
    			}
    		}
    		System.out.print("Check passed");
    	}
    }

    Ещё одна реализация Brackets, теперь и на Java (от автора предыдущего класса стека)

    varg242, 21 Января 2012

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