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

    В номинации:
    За время:
  2. Куча / Говнокод #11633

    +115

    1. 1
    2. 2
    3. 3
    4. 4
    -- Настало время запостить самое главное гавно Хаскеля:
    -- http://www.johndcook.com/blog/2010/05/18/pure-functions-have-side-effects/
    -- У чистых функций всегда есть side-effects, которые выражаются в пожирании памяти и CPU. 
    -- Очевидно конечно, но почему об этом не орут на первой странице каждой книги по функциональному программированию?

    Я проверил, код компилируется:
    http://ideone.com/sozuV

    HaskellGovno, 23 Августа 2012

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

    +115

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    count c l = length $ filter (c==) l
     
    main = do 
            l <- getLine
            let
                    f = count '(' l
                    s = count ')' l
            in
            print $ f s (f==s)

    Посоны, как смешивать монадический код и не монадический?
    http://ideone.com/yRGDk
    Чистый код let in не хочет в монду.

    HaskellGovno, 14 Мая 2012

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

    +115

    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
    foreach (var sheet in paper.Decomposed)
    {
                    if (ct > 0 && sheet.Equals(paper.Decomposed[ct]))
                    {
                        paper.PaperPrice += paperPrice;
                        paper.PrintingPrice += printingPrice;
                        paper.PlatesPrice += platesPrice;
                        ct++;
                        continue;
                    }
                    ct++;
    ...
    }

    UniXoiD, 04 Мая 2012

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

    +115

    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
    if (DialogResult.OK == openFileDialog.ShowDialog())
                {
                    CleanUp();
    
                    m_objFilterGraph = new FilgraphManager();
                    m_objFilterGraph.RenderFile(openFileDialog.FileName);
    
                    m_objBasicAudio = m_objFilterGraph as IBasicAudio;
                    
                    try
                    {
                        m_objVideoWindow = m_objFilterGraph as IVideoWindow;
                        m_objVideoWindow.Owner = (int) panel1.Handle;
                        m_objVideoWindow.WindowStyle = WS_CHILD | WS_CLIPCHILDREN;
                        m_objVideoWindow.SetWindowPosition(panel1.ClientRectangle.Left,
                            panel1.ClientRectangle.Top,
                            panel1.ClientRectangle.Width,
                            panel1.ClientRectangle.Height);
                    }
                    catch (Exception)
                    {
                        m_objVideoWindow = null;
                    }
    
                    m_objMediaEvent = m_objFilterGraph as IMediaEvent;
    
                    m_objMediaEventEx = m_objFilterGraph as IMediaEventEx;
                    m_objMediaEventEx.SetNotifyWindow((int) this.Handle,WM_GRAPHNOTIFY, 0);
    
                    m_objMediaPosition = m_objFilterGraph as IMediaPosition;
    
                    m_objMediaControl = m_objFilterGraph as IMediaControl;
    
                    this.Text = "DirectShow - [" + openFileDialog.FileName + "]";
    
                    m_objMediaControl.Run();
                    m_CurrentStatus = MediaStatus.Running;
    
                    UpdateStatusBar();
                    UpdateToolBar();
                }
            }
    
            private void CleanUp()
            {
                if (m_objMediaControl != null)
                    m_objMediaControl.Stop();
    
                m_CurrentStatus = MediaStatus.Stopped;
    
                if (m_objMediaEventEx != null)
                    m_objMediaEventEx.SetNotifyWindow(0, 0, 0);
    
                if (m_objVideoWindow != null)
                {
                    m_objVideoWindow.Visible = 0;
                    m_objVideoWindow.Owner = 0;
                }
    
                if (m_objMediaControl != null) m_objMediaControl = null;
                if (m_objMediaPosition != null) m_objMediaPosition = null;
                if (m_objMediaEventEx != null) m_objMediaEventEx = null;
                if (m_objMediaEvent != null) m_objMediaEvent = null;
                if (m_objVideoWindow != null) m_objVideoWindow = null;
                if (m_objBasicAudio != null) m_objBasicAudio = null;
                if (m_objFilterGraph != null) m_objFilterGraph = null;
            }
    
            private void menuItem4_Click(object sender, System.EventArgs e)
            {
                this.Close();
            }
    
            private void Form1_SizeChanged(object sender, System.EventArgs e)
            {
                if (m_objVideoWindow != null)
                {
                    m_objVideoWindow.SetWindowPosition(panel1.ClientRectangle.Left,
                        panel1.ClientRectangle.Top,
                        panel1.ClientRectangle.Width,
                        panel1.ClientRectangle.Height);
                }
            }

    Воспроизводим видео.
    Нестандартный путь.

    Govnisti_Diavol, 18 Марта 2012

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

    +115

    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
    try
    {
    	foreach (MapObjectBase item in objects)
    	{
    		GisTrack track = item as GisTrack;
    
    		if (track != null)
    		{
    			//ToolTipContent - наследник TextContent
    			ToolTipContent oToolTip = (ToolTipContent)track.ContentList.FirstOrDefault<IContent>(a => a is TextContent);
    			if (oToolTip != null)
    			{
    				track.ContentList.Remove(oToolTip);
    			}
    		}
    	}
    
    	this.map.Redraw(false);
    }
    catch (Exception ex)
    {
    	MonitoringManager.Instance.WriteLog(ex.ToString());
    }

    Linq - как граната. Смотря в чьих руках.

    ICELedyanoj, 14 Февраля 2012

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

    +115

    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
    switch (pList)
                    {
                        #region Формы контейнера        |
                        case TObjects.ContainerForm         :
                            frmList                                         =   new TfrmContainerForm();
                            pnlMain                                         =   ((TfrmContainerForm)frmList).pnlMain;
                            Result                                          =   ((TfrmContainerForm)frmList).grList;
                            break;
                        #endregion
                        #region Тип контейнера          |
                        case TObjects.ContainerType         :
                            frmList                                         =   new TfrmContainerType();
                            pnlMain                                         =   ((TfrmContainerType)frmList).pnlMain;
                            Result                                          =   ((TfrmContainerType)frmList).grList;
                            break;
                        #endregion
                        #region Объект НВАЭС            |
                        case TObjects.Object                :
                            frmList                                         =   new TfrmObjects();
                            pnlMain                                         =   ((TfrmObjects)frmList).pnlMain;
                            Result                                          =   ((TfrmObjects)frmList).grList;
                            break;
                        #endregion
                        #region Исполнитель работ       |
                        case TObjects.DepSource             :
                            frmList                                         =   new TfrmDepSource();
                            pnlMain                                         =   ((TfrmDepSource)frmList).pnlMain;
                            Result                                          =   ((TfrmDepSource)frmList).grList;
                            break;
                        #endregion
                        #region Установка переработки   |
                        case TObjects.TreatSet              :
                            frmList                                         =   new TfrmTreatSet();
                            pnlMain                                         =   ((TfrmTreatSet)frmList).pnlMain;
                            Result                                          =   ((TfrmTreatSet)frmList).grList;
                            break;
                        #endregion
                        #region Контейнер               |
                        case TObjects.Container             :
                            frmList                                         =   new TfrmContainer();
                            pnlMain                                         =   ((TfrmContainer)frmList).pnlMain;
                            Result                                          =   ((TfrmContainer)frmList).grList;
                            break;
                        #endregion
                        #region Хранилище               |
                        case TObjects.Storage               :
                            frmList                                         =   new TfrmStorage();
                            pnlMain                                         =   ((TfrmStorage)frmList).pnlMain;
                            Result                                          =   ((TfrmStorage)frmList).grList;
                            break;
                        #endregion
    ...

    А тут ок. 400 таких вот строк.

    gcoder, 08 Февраля 2012

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

    +115

    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
    //1
    directory = WebConfigurationManager.ConnectionStrings[Page.Server.MachineName.ToUpper() + Request.QueryString["number"]].ConnectionString;
    //2
    web.config:
    <connectionStrings>
      <add name="ServerName1" connectionString="D:\bla\incoming\" /> 
      <add name="ServerName2" connectionString="D:\bla\outcoming\" /> 
      ...
     </connectionStrings>
    //3
    function Upload(currFile) {
    if (grafWin == null || grafWin.closed) {
    	grafWin = open('UpLoad.aspx?number=' + currFile,'Attachment','width=300,height=150,scrollbars=no,left=800,top=400');
    	self.name = "winPARENT";
    }
    }
    //4
    <input type="button" name="filePlus1" value=" + " style="visible;" onclick="javascript: Upload('1')">

    1) Сохранение документов на стороне сервера выбор папки назначения
    2) web.config
    3) js-function для вызова страницы
    4) html контрол для вызова страницы которая сохранит документ в папку D:\bla\incoming

    TasmX, 17 Августа 2011

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

    +115

    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 void chkStatus_OnCheckedChanged(object sender, EventArgs e)
    {
        CheckBox chkStatus = (CheckBox)sender;
        GridViewRow row = (GridViewRow)chkStatus.NamingContainer;
    
        
        string cid = row.Cells[1].Text;
        bool status = chkStatus.Checked;
    
        
        string constr = @"Server=.\SQLEXPRESS;Database=TestDB;uid=waqas;pwd=sql;";
        string query = "UPDATE Categories SET Approved = @Approved WHERE CategoryID = @CategoryID";
            
        SqlConnection con = new SqlConnection(constr);
        SqlCommand com = new SqlCommand(query, con);
    
        
        com.Parameters.Add("@Approved", SqlDbType.Bit).Value = status;
        com.Parameters.Add("@CategoryID", SqlDbType.Int).Value = cid;
    
        
        con.Open();
        com.ExecuteNonQuery();
        con.Close();
    
        
        LoadData();
    }

    Полезный говнокод

    in4man, 23 Июня 2011

    Комментарии (24)
  10. Pascal / Говнокод #7033

    +115

    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
    procedure info_();
      var
       i:integer;
       ActivityCategory,stroka,strok,stroka_sopr,http1100,http_sopr,tag,tag_sopr,until_date,date_:string;
       f1100,f_sopr,inf:textfile;
    begin  //главный
    clear();
    if form1.radioGroup1.ItemIndex=0 then begin
                                          http1100:='\\server1\Отдел 1\Program Files\Prof\profiki\1100\'+m+'.smc';
                                          http_sopr:='\\server1\Отдел 1\Program Files\prof\profiki\сопроводительное\'+m+'.smc';
                                          end;
    if form1.radioGroup1.ItemIndex=1 then begin
                                          http1100:='\\server1\Отдел 1\Program Files\Prof\banki\1100\'+m+'.smc';
                                          http_sopr:='\\server1\Отдел 1\Program Files\prof\banki\сопроводительное\'+m+'.smc';
                                          end;
    if form1.radioGroup1.ItemIndex=2 then begin
                                          http1100:='\\server1\Отдел 1\Program Files\Prof\YK\1100\'+m+'.smc';
                                          http_sopr:='\\server1\Отдел 1\Program Files\prof\YK\сопроводительное\'+m+'.smc';
                                          end;
    if form1.radioGroup1.ItemIndex=3 then begin
                                          http1100:='\\server1\Отдел 1\Program Files\Prof\NPF\1100\'+m+'.smc';
                                          http_sopr:='\\server1\Отдел 1\Program Files\prof\NPF\сопроводительное\'+m+'.smc';
                                          end;
    if form1.radioGroup1.ItemIndex=4 then begin
                                          http1100:='\\server1\Отдел 1\Program Files\Prof\REGISTRATOR\1100\'+m+'.smc';
                                          http_sopr:='\\server1\Отдел 1\Program Files\prof\REGISTRATOR\сопроводительное\'+m+'.smc';
                                          end;

    Пытался перенести в другую папку программу, после чего она по сути перестала работать, ругаясь ошибкой 63. Нашел ее исходники и увидел ЭТО... это лишь 5-10% всей процедуры, которая мало того, что ищет XML-файлы по определенному пути, так еще и парсит их...

    GhOsTMZ, 23 Июня 2011

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

    +115

    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
    private object[] select ( string tablename, Type type, string addict ) 
            {
                object[] returned_objects = new object[0];
                string sql = "SELECT ";
                sql += this.buildFieldNames( type );
                sql += " FROM `" + tablename + "`" + addict;
                MySqlDataReader reader = this.TryQueryReader( sql );
                while (reader.Read( ))
                {
                    var obj = Activator.CreateInstance( type );
                    FieldInfo[] fields = type.GetFields( );
                    foreach (FieldInfo finfo in fields)
                    {
                        if (finfo.FieldType == typeof( int ))
                        {
                            finfo.SetValue( obj, reader.GetInt32( finfo.Name ) );
                        }
                        else if (finfo.FieldType == typeof( bool ))
                        {
                            if (reader.GetString( finfo.Name ).Equals( "true" ))
                            {
                                finfo.SetValue( obj, true );
                            }
                            else
                            {
                                finfo.SetValue( obj, false );
                            }
                        }
                        else if (finfo.FieldType == typeof( float ))
                        {
                            finfo.SetValue( obj, reader.GetFloat( finfo.Name ) );
                        }
                        else if (finfo.FieldType == typeof( double ))
                        {
                            finfo.SetValue( obj, reader.GetDouble( finfo.Name ) );
                        }
                        else if (finfo.FieldType == typeof( string ))
                        {
                            finfo.SetValue( obj, reader.GetString( finfo.Name ) );
                        }
                    }
                    provider.IncreaseLength( ref returned_objects, 1 );
                    returned_objects.SetValue( obj, returned_objects.Length - 1 );
    
                }
                reader.Close( );
                return returned_objects;
            }

    самопальный орм, нот комментс

    glilya, 30 Мая 2011

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