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

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

    +144.8

    1. 1
    2. 2
    3. 3
    4. 4
    $div = ($account->typeID == 1) ? true : false;
    if ($div == true) {
      // blablabla
    }

    И ведь не индус, а всё туда же.

    newmindcore, 15 Февраля 2010

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

    +137.5

    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
    void TWindowTID::SetStyle(GtkWidget* widget, const char *form, gint Red_, gint Green_, gint Blue_)
    {
        struct _GtkStyle *style;
        GdkColor bg;
        style=gtk_style_new();
        bg.red = Red_;
        bg.blue = Blue_;
        bg.green = Green_;
        if (form=="TEXT")
        {
            style->fg[GTK_STATE_NORMAL]=bg; //TEXT
        }
        else
            if (form=="BORDER")
            {
                style->base[GTK_STATE_NORMAL]=bg; //BORDER
            }
            else
                if (form=="ALL")
                {
                    style->bg[GTK_STATE_NORMAL]=bg;
                    style->base[GTK_STATE_NORMAL]=bg; //BORDER
                    style->fg[GTK_STATE_NORMAL]=bg; //TEXT
                }
                else
                    if (form=="button")
                    {
                        style->bg[GTK_STATE_PRELIGHT]=bg;
                        style->base[GTK_STATE_PRELIGHT]=bg; //BORDER
                        style->bg[GTK_STATE_SELECTED]=bg;
                        style->base[GTK_STATE_SELECTED]=bg; //BORDER
                    }
                    else
                    {
                        style->bg[GTK_STATE_NORMAL]=bg;
                    }
        style->font = gdk_font_load("-adobe-helvetica-*-r-*-*-12-*-*-*-*-*-*-*");
        if ((GtkWidget *)widget!=NULL) gtk_widget_set_style((GtkWidget *)widget, style);
    }

    Сравнение строк умиляет

    mutanabbi, 12 Февраля 2010

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

    +131.8

    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
    76. 76
    77. 77
    78. 78
    79. 79
    80. 80
    81. 81
    82. 82
    83. 83
    84. 84
    85. 85
    86. 86
    87. 87
    88. 88
    89. 89
    90. 90
    91. 91
    92. 92
    93. 93
    94. 94
    def ad30 // Все понятно из названия, да?
    vgl start_naht 3
    baw gr
    spg ad40
    
    aktuelle_naht = 3 ;
    lad vsp 53 aktuelle_naht ;
    spg up setze_npk_abs ;
    
    vgl start_naht 3
    baw gl
    PPZ # R100 Z1 z1_start Z2 P8 Z3 P9 ;
    
    z1_start = -1590
    z1_ziel =  -2985
    vgl tisch_nr 2
    baw gl
    spg ad31
    z1_start = z1_start + tisch_abstand ;
    z1_ziel  = z1_ziel  + tisch_abstand ;
    def ad31
    z1_soll = z1_start
    
    lad r1 R65
    lad r2 R66
    R1.C = c3_soll ;
    R2.C = c3_soll ;
    R1.B = 0;
    R2.B = 0;
    
    spg up verschiebe_nahtanfang ; 
    
    spg up fahre_z1 ;
    PPZ # A1 -12.13 A2 -15.73 A3 114.05 A4 24 A5 40 A6 -208 Z1 z1_start Z2 P8 Z3 P9
    
    pnd_amp = pnd_amp_laengs ;
    pnd_len = pnd_amp * 0.8
    
    dx = -delta_x_npk
    ges_schweiss = ges_schweiss_orig * 0.85
    npk 4 rel x dx  y 0 z delta_z_npk a 0 b 0 c 0
    
    spg up laengsnaht_ohne_messen ;
    
    ; ------- Veraenderte Punkte speichern
    vgl za_soll 90
    baw kl
    spg ad35
    ; ------- Oberseite -----------------------
    lad r605 r1
    lad r606 r2
    spg ad36
    ; ------- Unterseite ----------------------
    def ad35
    lad r625 r1
    lad r626 r2
    def ad36
    
    lad p1 pos
    
    spg up freifahren
    
    spg up anfahr_ges ;
    p2 = p2 - ( z1_start - z1_ziel )
    liz x p1 y p2 z p3 a p4 b p5 c p6 z1 z1_start z2 p8 z3 p9
    
    spg up grundstellung
    
    spg up brenner_reinigen ;
    
    ; --------------------------------------------------------------
    ; Schweissnaht 4 (Roboterseite)
    ; --------------------------------------------------------------
    def ad40
    vgl start_naht 4
    baw gr
    spg ad50
    
    aktuelle_naht = 4 ;
    lad vsp 53 aktuelle_naht ;
    spg up brenner_reinigen ;
    
    z1_start =   -1590
    z1_ziel  =  -2985
    vgl tisch_nr 2
    baw gl
    spg ad41
    z1_start = z1_start + tisch_abstand ;
    z1_ziel  = z1_ziel  + tisch_abstand ;
    def ad41
    z1_soll  = z1_start ;
    
    lad r1 R67
    lad r2 R68

    Это язык SRCL, используется на некоторых роботах, зовется высокоуровневым. Однако не умеет даже передавать параметры в функции.

    Особенно умиляют команды типа PPZ и LIZ и названия типа aktuelle_naht - писал немец :)

    В конце концов, чтобы запрограммировать этого робота пришлось писать свой конструктор программ, который выдавал эту лажу мегатоннами (а в чем еще измерять разрушительную силу этой хрени??).

    karevn, 11 Февраля 2010

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

    +165.3

    1. 1
    2. 2
    3. 3
    $articles = ServiceArticles::getArticlesList($page->pageID, ARTICLE_TYPE_ARTICLE, 0, 1);
    foreach ($articles as $article) $articleID = $article;
    $article = new ServiceArticles($articleID);

    Обнаружено во время рефизии кода. Блок показа одной новости. Возвращается обычный неассоциативный массив. Нахера foreach вместо $articles[0], даже автор толком объяснить не смог.

    newmindcore, 11 Февраля 2010

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