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

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

    −864.4

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    FOREACH    SELECT n.prod_code INTO _prod_code
        FROM tov_prod_link_g l, nsi_resource n
        WHERE l.prod_code = n.prod_code
        AND l.gr_id = _gr_id
        ORDER BY n.res_name
    
    LET _nn_por = _nn_por +5;
    
        UPDATE tov_prod_nn_por SET nn_por =_nn_por    WHERE prod_code = _prod_code;

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

    SERGI, 24 Марта 2010

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

    +144.4

    1. 1
    array...

    Забавно перепутаны картинки и соответствующие им пакеты телевидения: кино, спорт, увлечения.
    На пакете телевидения "кино" изображена девушка спортсменка (видимо плавчиха).
    На пакете телевидения "спорт" изображен кулинар.
    На пакете телевидения "увлечения" изображен лев, который может съесть.
    )
    Источник: akado.tv

    Kraut, 21 Марта 2010

    Комментарии (4)
  4. C# / Говнокод #2821

    +123.6

    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
    #region Getting action id
    private int GetActionID()
    {
    	switch (MessageId)
    	{
    		case 1:
    			return 8;
    		case 2:
    			return 10;
    		case 3:
    			return 9;
    		case 4:
    			return 11;
    		case 5:
    			return 12;
    		default:
    			return 12;
    	}
    }
    #endregion

    enum wtf ?

    asilmacc, 18 Марта 2010

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

    −132.6

    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
    SELECT [IdPart],
    			[num],
    			NameRus AS PartName,
    			Rests, 
    			Income, 
    			Defect, 
    			Rests +ISNULL([1],0) [1], 
    			Rests +ISNULL([1],0)+ISNULL([2],0) [2], 
    			Rests +ISNULL([1],0)+ ISNULL([2],0)+ ISNULL([3],0) [3], 
    			Rests +ISNULL([1],0)+ ISNULL([2],0)+ ISNULL([3],0)+ ISNULL([4],0) [4], 
    			Rests +ISNULL([1],0)+ ISNULL([2],0)+ ISNULL([3],0)+ ISNULL([4],0)+ ISNULL([5],0) [5], 
    			Rests +ISNULL([1],0)+ ISNULL([2],0)+ ISNULL([3],0)+ ISNULL([4],0)+ ISNULL([5],0)+ ISNULL([6],0)[6], 
    			...
    			Rests +ISNULL([1],0)+ ISNULL([2],0)+ ISNULL([3],0)+ ISNULL([4],0)+ ISNULL([5],0)+ ISNULL([6],0)+ ISNULL([7],0)+ ISNULL([8],0)+ ISNULL([9],0)+ ISNULL([10],0)+ ISNULL([11],0)[11], 
    			Rests +ISNULL([1],0)+ ISNULL([2],0)+ ISNULL([3],0)+ ISNULL([4],0)+ ISNULL([5],0)+ ISNULL([6],0)+ ISNULL([7],0)+ ISNULL([8],0)+ ISNULL([9],0)+ ISNULL([10],0)+ ISNULL([11],0)+ ISNULL([12],0)[12], 
                            ...
    			Rests +ISNULL([1],0)+ ISNULL([2],0)+ ISNULL([3],0)+ ISNULL([4],0)+ ISNULL([5],0)+ ISNULL([6],0)+ ISNULL([7],0)+ ISNULL([8],0)+ ISNULL([9],0)+ ISNULL([10],0)+ ISNULL([11],0)+ ISNULL([12],0)+ ISNULL([13],0)+ ISNULL([14],0)+ ISNULL([15],0)+ ISNULL([16],0)+ ISNULL([17],0)+ ISNULL([18],0)+ ISNULL([19],0)+ ISNULL([20],0)+ ISNULL([21],0)+ ISNULL([22],0)[22], 
    			Rests +ISNULL([1],0)+ ISNULL([2],0)+ ISNULL([3],0)+ ISNULL([4],0)+ ISNULL([5],0)+ ISNULL([6],0)+ ISNULL([7],0)+ ISNULL([8],0)+ ISNULL([9],0)+ ISNULL([10],0)+ ISNULL([11],0)+ ISNULL([12],0)+ ISNULL([13],0)+ ISNULL([14],0)+ ISNULL([15],0)+ ISNULL([16],0)+ ISNULL([17],0)+ ISNULL([18],0)+ ISNULL([19],0)+ ISNULL([20],0)+ ISNULL([21],0)+ ISNULL([22],0)+ ISNULL([23],0)[23], 
    			Rests +ISNULL([1],0)+ ISNULL([2],0)+ ISNULL([3],0)+ ISNULL([4],0)+ ISNULL([5],0)+ ISNULL([6],0)+ ISNULL([7],0)+ ISNULL([8],0)+ ISNULL([9],0)+ ISNULL([10],0)+ ISNULL([11],0)+ ISNULL([12],0)+ ISNULL([13],0)+ ISNULL([14],0)+ ISNULL([15],0)+ ISNULL([16],0)+ ISNULL([17],0)+ ISNULL([18],0)+ ISNULL([19],0)+ ISNULL([20],0)+ ISNULL([21],0)+ ISNULL([22],0)+ ISNULL([23],0)+ ISNULL([24],0)[24], 
    			Rests +ISNULL([1],0)+ ISNULL([2],0)+ ISNULL([3],0)+ ISNULL([4],0)+ ISNULL([5],0)+ ISNULL([6],0)+ ISNULL([7],0)+ ISNULL([8],0)+ ISNULL([9],0)+ ISNULL([10],0)+ ISNULL([11],0)+ ISNULL([12],0)+ ISNULL([13],0)+ ISNULL([14],0)+ ISNULL([15],0)+ ISNULL([16],0)+ ISNULL([17],0)+ ISNULL([18],0)+ ISNULL([19],0)+ ISNULL([20],0)+ ISNULL([21],0)+ ISNULL([22],0)+ ISNULL([23],0)+ ISNULL([24],0)+ ISNULL([25],0)[25], 
    			Rests +ISNULL([1],0)+ ISNULL([2],0)+ ISNULL([3],0)+ ISNULL([4],0)+ ISNULL([5],0)+ ISNULL([6],0)+ ISNULL([7],0)+ ISNULL([8],0)+ ISNULL([9],0)+ ISNULL([10],0)+ ISNULL([11],0)+ ISNULL([12],0)+ ISNULL([13],0)+ ISNULL([14],0)+ ISNULL([15],0)+ ISNULL([16],0)+ ISNULL([17],0)+ ISNULL([18],0)+ ISNULL([19],0)+ ISNULL([20],0)+ ISNULL([21],0)+ ISNULL([22],0)+ ISNULL([23],0)+ ISNULL([24],0)+ ISNULL([25],0)+ ISNULL([26],0)[26], 
    			...
    			Rests +ISNULL([1],0)+ ISNULL([2],0)+ ISNULL([3],0)+ ISNULL([4],0)+ ISNULL([5],0)+ ISNULL([6],0)+ ISNULL([7],0)+ ISNULL([8],0)+ ISNULL([9],0)+ ISNULL([10],0)+ ISNULL([11],0)+ ISNULL([12],0)+ ISNULL([13],0)+ ISNULL([14],0)+ ISNULL([15],0)+ ISNULL([16],0)+ ISNULL([17],0)+ ISNULL([18],0)+ ISNULL([19],0)+ ISNULL([20],0)+ ISNULL([21],0)+ ISNULL([22],0)+ ISNULL([23],0)+ ISNULL([24],0)+ ISNULL([25],0)+ ISNULL([26],0)+ ISNULL([27],0)+ ISNULL([28],0)+ISNULL([29],0)+ISNULL([30],0)+ISNULL([31],0)[31]
    			, Rests+Income-Defect + ISNULL([1],0)+ ISNULL([2],0)+ ISNULL([3],0)+ ISNULL([4],0)+ ISNULL([5],0)+ ISNULL([6],0)+ ISNULL([7],0)+ ISNULL([8],0)+ ISNULL([9],0)+ ISNULL([10],0)+ ISNULL([11],0)+ ISNULL([12],0)+ ISNULL([13],0)+ ISNULL([14],0)+ [15]+ [16]+ ISNULL([17],0)+ ISNULL([18],0)+ ISNULL([19],0)+ ISNULL([20],0)+ ISNULL([21],0)+ ISNULL([22],0)+ ISNULL([23],0)+ ISNULL([24],0)+ ISNULL([25],0)+ ISNULL([26],0)+ISNULL([27],0)+ISNULL([28],0)+ISNULL([29],0)+ISNULL([30],0)+ISNULL([31],0) AS TotalExpence
    		FROM
    	(
    .....

    Типа нарастающий итог. Ну слов просто нет. ИМХО, это что-то из разряда использовать микроскоп для забивания гвоздей.

    Karasb, 18 Марта 2010

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

    −863

    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
    CREATE PROCEDURE mix_kach1_spravka(
    _date_time	DATETIME YEAR TO MINUTE, -- дата
    _param_rez_id integer -- признак
    ) RETURNING integer, -- туфта
    decimal; -- туфта
    
    define _date_r nchar(19);
    define _wzliv decimal;
    define _n_nn_rez nchar(4);
    define _mass integer;
    define _mass1 integer;
    define _date_begin DATETIME YEAR TO MINUTE;
    define _date_end DATETIME YEAR TO MINUTE;
    define _count integer;
    define _wzliv_beg INTEGER;
    define _bes_pas DECIMAL;
    define i int;
    define  _spr_id		  integer;
    define	_all_w             decimal(7,1);
    define	_go_w              decimal(7,1);
    define	_pr_w              decimal(7,1);
    define	_proc_go           decimal(4,1);
    define	_proc_pr           decimal(4,1);
    define _edatebegin Datetime year to minute;
    define _w int;
    define _m_go decimal;
    define _m_pr decimal;
    define test_date DATETIME YEAR TO MINUTE;
    
    /*Опустим блок обработки ошибок*/
    
    CREATE TEMP TABLE tmp_raschet1(
    	--spr_id		  SERIAL NOT NULL,
    	edate       Datetime year to MINUTE, --27.08.2008 Лазарев Е.В.
    	w 		  int,
    	all_w             decimal(7,1),
    	go_w              decimal(7,1),
    	pr_w              decimal(7,1),
    	proc_go           decimal(4,1),
    	proc_pr           decimal(4,1)
    ) with no log;
    
    let _m_go = 0;
    let _m_pr = 0;
    
    execute procedure get_mix_quality(_date_time,_param_rez_id) into _w, _all_w, _go_w, _pr_w, _proc_go, _proc_pr, _edatebegin;
    insert into tmp_raschet1 (edate,w,all_w, go_w,pr_w,proc_go,proc_pr) values (_edatebegin,_w,_all_w, _go_w, _pr_w, _proc_go, _proc_pr);
    
    END PROCEDURE;

    Вот честно, что это и зачем такое нужно? Наверно выполнить процедуру и просто взять выходные данные не судьба.
    А лишние переменные видимо на всякий случай.
    P.S. Боже за что?!!!

    Grizzly, 15 Марта 2010

    Комментарии (4)
  7. Pascal / Говнокод #2790

    +151.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
    38. 38
    39. 39
    { SS }
    function setcriticpriority:bool;
    var
      processid:dword;
      processhandle,threadhandle:thandle;
      r:bool;
    begin
    result:=false;
    processid:=getcurrentprocessid;
    processhandle:=openprocess(process_set_information,false,processid);
    r:=setpriorityclass(processhandle,realtime_priority_class);
    if not r then exit;
    threadhandle:=getcurrentthread;
    result:=setthreadpriority(threadhandle,thread_priority_time_critical);
    end;
    procedure Delay(t:dword);
    var s:dword;
    begin
    s:=GetTickCount;
    repeat
    until GetTickCount-t>s;
    end;
    procedure SS.Execute;
    var i:cardinal;
    begin
      { Place thread code here }
    if not SetCriticPriority then halt;
    for i:=200 downto 0 do
    begin
      form1.ProgressBar1.position:=200-i;
      Sleep(i);
      delay(200-i);
    end;
    form1.Panel1.Visible:=true;
    form1.label3.Visible:=true;
    repeat
    until false;   
    end;
    end.

    После запуска этой проги - система начинает плавно останавливаться. Даже прогресбар бежит. Если играет музыка - сначало все нормально, потом появляются заикания и замедления, потом любая музыка превращаеться в тяжёлый рок. Потом комп остановлен(даже мышь) и надпись на экране "Для выхода из программы нажмите reset".
    Представляете в этот момент свои чувства?

    Баловство с приоритетами - не игрушка.

    Говногость, 13 Марта 2010

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

    +149.6

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    var obj=document.all.cont_small;
    obj.focus();
        if      (window.getSelection)   selected = window.getSelection().toString();      
        else if (document.getSelection) selected = document.getSelection();                
        else if (document.selection)   selected = document.selection.createRange();  
        selected.value = "[img]"+SmileId+"[/img]";

    Santrex, 08 Марта 2010

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

    +150.7

    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
    var Scroller = function (scroll_left,scroll_right,visible_part,scroll_part) {
    			this.scroll_right =	jQuery(scroll_left); //scroll to left
    			this.scroll_left =	jQuery(scroll_right); //scroll to right	
    			this.slider = jQuery(scroll_part); //scroll element
    			this.visible_part = jQuery(visible_part);
    			
    			this.width_slider_elements = this.slider.width();
    			this.width_slider_element = this.slider.find('li:eq(0)').width();
    			this.width_visible_part = this.visible_part.width();
    			this.temp_process = true;
    			
    			if(this.width_slider_elements < this.width_visible_part) {temp_process = false;}
    			
    			var self = this;
    			this.scroll_left.click(function()
        			{	
    					if (self.temp_process) {
    						self.temp_process = false;
    						self.slide(true);
    					}
    					return false;
    				});	
    			this.scroll_right.click(function()
    	    		{
    					if (self.temp_process) {
    							self.temp_process = false;
    							self.slide(false);
    					}
    					return false;
    				});
    			 
    			return this;
    		};
    		
    		Scroller.prototype.slide = function (side) {
    					var self = this;
    					var	shift = (self.width_visible_part - self.width_slider_element)/2;
    					var current_shift = Math.abs(self.slider.css('left').replace('px',''));
    				if (side) { //left
    					shift = (current_shift+shift+self.width_visible_part) > self.width_slider_elements ? self.width_slider_elements - current_shift - self.width_visible_part : shift;
    						self.slider.animate({left: '-='+shift+'px'}, 1000, function(){ self.temp_process = true;});
    				} else { //right
    					shift = shift > current_shift ? current_shift : shift;
    					self.slider.animate({left: '+='+shift+'px'}, 1000, function(){ self.temp_process = true;});
    				}	
    				return shift;
    		};

    Areks, 01 Марта 2010

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

    +114.3

    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
    public static MapObjectConfig[] CollectInfoAboutClassesInProgram()
    	{
    		List<MapObjectConfig> result = new List<MapObjectConfig>();
    		foreach (Assembly assem in AppDomain.CurrentDomain.GetAssemblies())
    			foreach (Module module in assem.GetModules())
    				try
    				{
    					foreach (Type type in module.GetTypes())
    						if (type.IsSubclassOf(typeof(BaseMapObject)))
    						{
    							MethodInfo method = type.GetMethod("GetCommentDescription", BindingFlags.Static | BindingFlags.Public);
    							if (method != null)
    							{
    								object res = method.Invoke(null, null);
    								if (res is MapObjectConfig)
    								{
    									MapObjectConfig desc = (MapObjectConfig)res;
    									result.Add(desc);
    								}
    							}
    						}
    				}
    				catch (ReflectionTypeLoadException ex)
    				{
    					//иногда отказывается загружать типы...
    				}
    		return result.ToArray();
    	}

    Метод являет собой пожалуй самую проктологическую реализацию хранения дефолтных настроек, которую когда-либо видел. Просмотр всех сборок загруженых в домен приложения, поиск в них классов наследованных от BaseMapObject и вызов их метода GetCommentDescription, который и вернет объект с настройками... Нельзя обезьянам давать гранаты товарищи.

    svist, 27 Февраля 2010

    Комментарии (4)
  11. Perl / Говнокод #2668

    −104.3

    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
    # (S) (рекурсивного вызова) Генерирует контент слота рекурсивного дерева (с плюсиками). Возвращает ('RecursiveSlot'=>$textbuf) или ()
    sub PlusTreeSlot {
            # (P) Путь к шаблону контентной ячейки
            # (P) ghm
            # (P) pid
            # (P) treename
            # (P) Уровень
            # (P) функция
            # (P) $ret
    
            return () if !exists($_[1]->{$_[2]}); # Не вкладываем ничего в слот если там ничего нет
            my $textbuf;
            foreach (@{$_[1]->{$_[2]}}){
                    my $ret=&{$_[5]}($_,$_[4],ref($_[6])?dclone($_[6]):$_[6]) if $_[5];
                    $textbuf.=${tmpl_prepare($_[0],{
                                    PlusTreeSlot($_[0],$_[1],$_->{'id'},$_[3],($_[4]+1),$_[5],$ret),
                                    %{$_},
                                    'trname'=>$_[3],
                    })};
            };
            return ('RecursiveSlot'=>$textbuf);
    };

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

    ichesnokov, 25 Февраля 2010

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