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

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

    −2

    1. 1
    labelViewData.CreateTextPainterAccordingAllowedBoundsForLabels

    По Макконнеллу. Название метода должно отражать всю его суть и даже немножко деталей реализации. Ну как немножко, почти все.

    Ekze, 09 Августа 2017

    Комментарии (3)
  3. bash / Говнокод #23210

    −1

    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
    #/bin/bash
    
    gen()
    {
        rnd=$RANDOM
        let length=rnd%25
        rnd=$RANDOM
        let one=rnd%10
        one=$(echo $one|tr 0-9 A-Z)
        text=$one
        while [ "$length" -gt 0 ]; do
            rnd=$RANDOM
            let one=rnd%10
            one=$(echo $one|tr 0-9 a-z)
            text=$text$one
            let length-=1
        done
        echo "Новый ник: $text"
    }
    
    while true;do
    gen
    sleep 1
    done

    Генератор ников который реально иногда выдает четкие ники

    botC, 21 Июля 2017

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

    −1

    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
    <CustomTimePicker
                        ref={ref => {
                            if (!ref || this.moved || this.handled)
                                return;
    
                            this.handled = true;
    
                            ref.picker.addEventListener('click', () => {
                                if (this.moved)
                                    return;
    
                                setTimeout(() => {
                                    const panel = ref.panelInstance;
    
                                    if (!panel || !panel._reactInternalInstance)
                                        return;
    
                                    const node = panel._reactInternalInstance._renderedComponent._hostNode.parentNode.parentNode.parentNode;
    
                                    this.moved = true;
                                    this.refs.container.appendChild(node);
    
                                    ref.picker.click();
                                    ref.picker.click();
                                }, 0);
                            });
                        }}
                        showSecond={false}
                        value={this.props.value || moment()}
                        className="timepicker"
                        onChange={(e) => this.handleChange(e)}
                        format={this.format}
                        use12Hours
                    />

    Efog, 07 Июля 2017

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

    −1

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    TServerThread = class(TThread)
      private
        procedure DoReadData;
      protected
        ThreadOwner: TIPCServer;
        procedure Execute; override;
        constructor Create(AThreadOwner: TIPCServer);
        destructor Destroy; override;
      public
      end;

    Мы кодили, кодили и наконец накодили!

    antipattern, 27 Июня 2017

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

    0

    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
    import java.util.*;
    
    public class Main
    {
    	public static void main(String[] args)
    	{
    		two s = new two(25);
    		s.get();
    	}
    }
    
    class one
    {
    	private int a;
    	
    	one(int a)
    	{
    		this.a = a*2;
    	}
    	
    	void get()
    	{
    		System.out.println(a);
    	}
    }
    
    class two extends one
    {
    	void get()
    	{
    		get();
        }
    	
    	two(int a)
    	{
    		super(a);
    	}
    }

    Когда пытаешься вызвать функцию подкласса из класса

    blondi, 20 Июня 2017

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

    0

    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
    95. 95
    procedure TForm1.ProcListAdvancedCustomDrawItem(Sender: TCustomListView;
      Item: TListItem; State: TCustomDrawState; Stage: TCustomDrawStage;
      var DefaultDraw: Boolean);
    var
      TP:TprocessInfo;
      xColor: TColor;
      xRect: TRect;
      xBitmap: TBitmap;
      I, L, R: Integer;
    begin
      DefaultDraw:=False;
      TP:=TProcessInfo(Item.SubItems.Objects[0]);
      if (Item.Selected) then
      begin
        if Sender.Focused then
        begin
          if (FItemAtCursor <> -1) and (Item.Index = FItemAtCursor) then
            xColor:=clNavy
          else
            xColor:=$00C56A31;
        end
        else
          xColor:=$00D8E9EC
      end
      else
      begin
        if (TP.New<2) or (TP.Terminated<2) or (TP.Hidden) then
        begin
    
          if ShowDangerousProcesses then
          if TP.Hidden then
          xColor:=$00DBDBDB;
    
          if ShowNewProcesses then
          if TP.New <2 then
          xColor:=$001DEB2D;
    
          if ShowTerminatedProcesses then
          if TP.Terminated < 2 then
          xColor:=$001D2DEB;
        end
        else
    
        if (Item.Index mod 2 = 1) then
        xColor:=RGB(245,245,255)
        else
        xColor:=clWindow;
      end;
      Sender.Canvas.Brush.Color:=xColor;
      DefaultDraw:=True;
    
      if (Item.Selected) and Sender.Focused
      then Sender.Canvas.Font.Color:=clWindow
      else Sender.Canvas.Font.Color:=clWindowText;
      Sender.Canvas.FillRect(Item.DisplayRect(drLabel));
      DefaultDraw:=True;
    
      Exit; 
    
      xRect:=Item.DisplayRect(drLabel);
      Sender.Canvas.TextRect(xRect,xRect.Left+2,xRect.Top,Item.Caption);
    
      for I:=0 to TListView(Sender).Columns.Count-1 do
      begin
        if TListView(Sender).Columns[TListView(Sender).Columns[I].ID].Width<=0 then Continue;
        if (I=0) and (TListView(Sender).Columns[I].ID <> 0) then
        begin
          xRect.Left:=0;
          xRect.Right:=xRect.Left+TListView(Sender).Columns.Items[TListView(Sender).Columns[I].ID].Width-1;
          Sender.Canvas.FillRect(xRect);
          Sender.Canvas.TextRect(xRect,xRect.Left+2,xRect.Top,Item.SubItems[TListView(Sender).Columns[I].ID-1]);
        end
        else
        begin
        if I>0 then
        begin
          xRect.Left:=xRect.Right+1;
          xRect.Right:=xRect.Left+TListView(Sender).Columns.Items[TListView(Sender).Columns[I].ID].Width-1;
          Sender.Canvas.FillRect(xRect);
          if TListView(Sender).Columns[I].ID >0 then
          Sender.Canvas.TextRect(xRect,xRect.Left+5,xRect.Top,Item.SubItems[Pred(TListView(Sender).Columns[I].ID)])
          else
          begin
            L:=(Item.DisplayRect(drIcon).Right-Item.DisplayRect(drIcon).Left)+6;
          Sender.Canvas.TextRect(xRect,xRect.Left+L,xRect.Top, Item.Caption)
        end;
        end;
    
        end;
      end;
      Sender.Canvas.Brush.Color:=clWindow;
      Sender.Canvas.FillRect(Item.DisplayRect(drIcon));
      if Item.ImageIndex=-1 then Exit;
      xBitmap:=TBitmap.Create;
      TListView(Sender).SmallImages.GetBitmap(Item.ImageIndex,xBitmap);

    ListView - великий и ужасный! - в режиме OwnerDraw.
    Писал диспетчер процессов. Когда я разрешил прятать столбцы и включил свойство FullDrag, моя жизнь круто изменилась.

    antipattern, 19 Июня 2017

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

    −1

    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
    public function sendChat ($msg) {
    	if($this->isLogged()){
    		if($this->checkAd($this->sql($msg)) !== '' || $this->checkAd($this->sql($msg))[0] !== ' '){
    			$q = $this->db->row("SELECT * FROM `chat` WHERE `user` = '".intval($_SESSION['steamid'])."' ORDER BY `id` DESC LIMIT 1");
    			if($q->time+1 <= time()){
    				if($q->text != $this->checkAd($this->sql($msg))) {
    					$r = $this->db->query("INSERT INTO `chat` (`user`,`text`,`time`) VALUES ('".intval($_SESSION['steamid'])."', '".$this->sql($this->checkAd($msg))."', ".time().")");
    					return json_encode(array("success" => true,));
    				} else {
    					return json_encode(array("success" => false, "msg" => "flood"));
    				}
    			} else {
    				return json_encode(array("success" => false, "msg" => "flood"));
    			}
    		} else {
    			json_encode(array("success" => false, "msg" => "null_msg"));
    		}
    	} else {
    		return json_encode(array("success" => false, "msg" => "not_auth"));
    	}
    }

    enly1, 14 Июня 2017

    Комментарии (3)
  9. Python / Говнокод #23092

    −2

    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
    from threading import Thread 
    from time import sleep
    
    for i in range(4):
        print(type(i))
        def f(i):
            if int(i) == 1:
                print('i=',i)
            
            elif i == 2:
                print('i=',i)
            
            elif i == 3:
                print('i=', i)
            
        t = Thread(target=f, args=(i,))
        t.start()
        sleep(1)
        print(i)

    dmitriiweb, 01 Июня 2017

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

    0

    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
    OleDbCommand command = new OleDbCommand("select * from Прейскурант where ID = 1", bd);
                    OleDbDataReader dataReader1 = command.ExecuteReader();
                    string st;
                    dataReader1.Read();
    
                    int i = 0;
    
                    while (i < dataReader1.FieldCount)
                    {
                        st = dataReader1.GetValue(i).ToString();
                        switch (i)
                        {
                            case 0:
                                textBox1.Text = st;
                                break;
                            case 1:
                                textBox2.Text = st;
                                break;
                            case 2:
                                textBox3.Text = st;
                                break;
                            case 3:
                                textBox4.Text = st;
                                break;
                            case 4:
                                textBox5.Text = st;
                                break;
                            case 5:
                                textBox6.Text = st;
                                break;
                            case 6:
                                textBox7.Text = st;
                                break;
                            case 7:
                                textBox8.Text = st;
                                break;
                            case 8:
                                textBox9.Text = st;
                                break;
                            case 9:
                                textBox10.Text = st;
                                break;
                            case 10:
                                textBox11.Text = st;
                                break;
                            case 11:
                                textBox12.Text = st;
                                break;
                            case 12:
                                textBox13.Text = st;
                                break;
                            case 13:
                                textBox14.Text = st;
                                break;
                            case 14:
                                textBox15.Text = st;
                                break;
                        }
                        i++;
    
    
                    }
                    dataReader1.Close();
                    bd.Close();

    Заполнение текстбоксов WinForms данными из бд. Пацан на 4-м курсе.

    IWillBeHokage, 30 Мая 2017

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

    −1

    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
    for (int i = 0; i < WorkedVerts.count(); i++)
    	{
    		int R0 = (i + Offset0) % WorkedVerts.count();
    		int R1 = (i + Offset1) % WorkedVerts.count();
    		int R2 = (i + Offset2) % WorkedVerts.count();
    
    		XA << WorkedVerts.at(R0).Position;
    		XB << WorkedVerts.at(R1).Position;
    		XC << WorkedVerts.at(R2).Position;
    	}
    	PrepareDataPointers(XA, XB, XC);
    	Inset_Cuda(InputData0, InputData1, InputData2, OutputData, XA.count(), -Amount);
    
    	for (int x = 0; x < XA.count(); x++)
    	{
    		if (fabs(OutputData[x].x) < 0.0001f && fabs(OutputData[x].y) < 0.0001f && fabs(OutputData[x].z < 0.0001f))
    		{
    			int Start = x;
    			int Start1 = (x + (XA.count() - 1)) % XA.count();
    			QVector3D StartVec = QVector3D(OutputData[Start1].x, OutputData[Start1].y, OutputData[Start1].z);
    			QVector3D EndVec = StartVec;
    			int End = 0;
    			while (true)
    			{
    				End = Start++;
    				if (fabs(OutputData[End].x) > 0.0001f && fabs(OutputData[End].y) > 0.0001f && fabs(OutputData[End].z > 0.0001f))
    				{
    					EndVec = QVector3D(OutputData[End].x, OutputData[End].y, OutputData[End].z);
    					break;
    				}
    			}
    			QVector3D OffsetX0 = WorkedVerts.at(Start).Position - StartVec;
    			QVector3D OffsetX1 = WorkedVerts.at(End).Position - EndVec;
    			QVector3D Mid2 = OffsetX0 + (OffsetX1 - OffsetX0) * 0.5f;
    			OutputData[x].x = Mid2.x();
    			OutputData[x].y = Mid2.y();
    			OutputData[x].z = Mid2.z();
    		}
    	}
    	int VertsCounter = SharedVerts.count();
    	for (int i = 0; i < WorkedVerts.count(); i++)
    	{
    		SharedVertex NewVert;
    		int Count3 = WorkedVerts.count();
    		int index = (i + (Count3 - 1)) % Count3;
    		NewVert.Position = QVector3D(OutputData[index].x, OutputData[index].y, OutputData[index].z);
    		NewVert.Index = VertsCounter++;
    		SV2 << NewVert;
    	}

    Код нахождения копии контура вершин с оффсетом.

    IVK, 26 Мая 2017

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