1. Java / Говнокод #7060

    +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
    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
    96. 96
    97. 97
    98. 98
    99. 99
    import java.awt.Color;
    import java.awt.Graphics;
    import java.awt.image.BufferedImage;
    import javax.swing.JFrame;
    public class Main extends JFrame{
        static int a=100;
        BufferedImage offscreen = new BufferedImage(1, 1, BufferedImage.TYPE_INT_ARGB);
    	static double p1[][]={{-a},{0},{a}};
    	static double p2[][]={{0},{-a},{a}};
    	static double p3[][]={{a},{-a},{a}};
    	static double p4[][]={{a},{a},{a}};
    	static double p5[][]={{-a},{a},{a}};	
    	static double p6[][]={{-a},{0},{-a}};
    	static double p7[][]={{0},{-a},{-a}};
    	static double p8[][]={{a},{-a},{-a}};
    	static double p9[][]={{a},{a},{-a}};
    	static double p10[][]={{-a},{a},{-a}};
    	static double mas[][][]=new double[10][][];
    	
    	public static void main(String[] args) {
    		Main mf=new Main();
    		mf.setVisible(true);
    		mf.setSize(800,800);
    		mf.setDefaultCloseOperation(EXIT_ON_CLOSE);
    		
    		Matrix P1=new Matrix(p1);
    		Matrix P2=new Matrix(p2);
    		Matrix P3=new Matrix(p3);
    		Matrix P4=new Matrix(p4);
    		Matrix P5=new Matrix(p5);
    		Matrix P6=new Matrix(p6);
    		Matrix P7=new Matrix(p7);
    		Matrix P8=new Matrix(p8);
    		Matrix P9=new Matrix(p9);
    		Matrix P10=new Matrix(p10);
    		
    		double a=0;
    		while(true){
    			Matrix ox=new OX(a);
    			Matrix oy=new OY(a);
    			Matrix oz=new OZ(a);
    			Matrix m=ox.multiplication(oy.multiplication(oz));
    			mas[0]=m.multiplication(P1).getData();
    			mas[1]=m.multiplication(P2).getData();	
    			mas[2]=m.multiplication(P3).getData();	
    			mas[3]=m.multiplication(P4).getData();
    			mas[4]=m.multiplication(P5).getData();
    			mas[5]=m.multiplication(P6).getData();	
    			mas[6]=m.multiplication(P7).getData();	
    			mas[7]=m.multiplication(P8).getData();
    			mas[8]=m.multiplication(P9).getData();	
    			mas[9]=m.multiplication(P10).getData();
    			a+=0.06;
    			//a=0;
    			mf.repaint();
    			try {
    				Thread.sleep(100);
    			} catch (InterruptedException e) {
    				// TODO Auto-generated catch block
    				e.printStackTrace();
    			}
    		}
    	}
       
    	public void paint(Graphics g){
    		super.paint(g);
    		this.display(mas);
    	}
    	
    	public void display(double m[][][]){
    		Graphics g= this.getGraphics();
    		g.setColor(Color.BLACK);
    		for(int i=0;i<m.length;i++){
    			m[i][0][0]+=300;
    			m[i][1][0]+=300;
    		}
    		g.drawLine((int)m[0][0][0],(int)m[0][1][0],(int)m[1][0][0],(int)m[1][1][0]);
    		g.drawLine((int)m[1][0][0],(int)m[1][1][0],(int)m[2][0][0],(int)m[2][1][0]);
    		g.drawLine((int)m[2][0][0],(int)m[2][1][0],(int)m[3][0][0],(int)m[3][1][0]);
    		g.drawLine((int)m[3][0][0],(int)m[3][1][0],(int)m[4][0][0],(int)m[4][1][0]);
    		g.drawLine((int)m[4][0][0],(int)m[4][1][0],(int)m[0][0][0],(int)m[0][1][0]);
    		g.drawLine((int)m[5][0][0],(int)m[5][1][0],(int)m[6][0][0],(int)m[6][1][0]);
    		g.drawLine((int)m[6][0][0],(int)m[6][1][0],(int)m[7][0][0],(int)m[7][1][0]);
    		g.drawLine((int)m[7][0][0],(int)m[7][1][0],(int)m[8][0][0],(int)m[8][1][0]);
    		g.drawLine((int)m[8][0][0],(int)m[8][1][0],(int)m[9][0][0],(int)m[9][1][0]);
    		g.drawLine((int)m[9][0][0],(int)m[9][1][0],(int)m[5][0][0],(int)m[5][1][0]);
    		g.drawLine((int)m[0][0][0],(int)m[0][1][0],(int)m[5][0][0],(int)m[5][1][0]);
    		g.drawLine((int)m[1][0][0],(int)m[1][1][0],(int)m[6][0][0],(int)m[6][1][0]);
    		g.drawLine((int)m[2][0][0],(int)m[2][1][0],(int)m[7][0][0],(int)m[7][1][0]);
    		g.drawLine((int)m[3][0][0],(int)m[3][1][0],(int)m[8][0][0],(int)m[8][1][0]);
    		g.drawLine((int)m[4][0][0],(int)m[4][1][0],(int)m[9][0][0],(int)m[9][1][0]);
    		Graphics g2 =  offscreen.getGraphics();
            g2.setColor(Color.WHITE);
            g2.fillRect(0, 0, getWidth(), getHeight());
            g2.setColor(Color.BLUE);
            g2.fillRect(0, 0, 100, 100);
            g.drawImage(offscreen, 0, 0, null);
    	}
    }

    Говнолаба по предмету "компьютерная графика".
    Задача: нарисовать куб с усеченным углом, повернутый на произвольный угол вокруг трех осей (OX, OY, OZ).
    Вот как эту задачу решает мой однокурсник.
    Вместо того, чтобы использовать одну матрицу поворота, он создает 10 матриц для каждой из 10 точек...
    Впрочем, код лучше расскажет...

    just_nameless, 26 Июня 2011

    Комментарии (13)
  2. Java / Говнокод #7032

    +74

    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
    private static java.util.Hashtable<String, Session> sessions =
        new java.util.Hashtable<String, Session>();
    ...
    public static SessionOperations[] getSessions() {
        int cnt = sessions.size();
        SessionOperations[] res = new SessionOperations[cnt];
        java.util.Enumeration<String> e = sessions.keys();
        for( int i = 0; i < res.length; i++ ) {
          String sid = e.nextElement();
          res[i] = sessions.get( sid ).getOperations( sid );
        }
        return res;
    }

    Удаление из sessions между получением размера и набора ключей приводит к весьма печальным последствиям...

    P.S. В результате в течение трех суток в production не удалялись оставленные сессии (без Logout), sessions отожрал 600М и всё свалилось с OOM.

    Skipy, 23 Июня 2011

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

    +82

    1. 1
    2. 2
    3. 3
    /*
            todo it seems that code below will be right, when client will be changed
    */

    Вот такой емкий комментарий перед 200 закоментированными строками кода

    galak, 20 Июня 2011

    Комментарии (14)
  4. Java / Говнокод #7008

    +76

    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
    public class ValueList< T > implements Cloneable
    {
        public ValueList() { }
    
        public void addValue( final T value ) {
            list.add( value );
        }
    
        @Override
        @SuppressWarnings( { "unchecked", "unchecked" } )
        public Object clone() throws CloneNotSupportedException {
            super.clone();
            ValueList< T > object = new ValueList< T >();
            List< T > objectList = object.getList();
            objectList = ( List< T > )list.clone();
            for( int index = 0; index < list.size() ; ++index ) {
                objectList.set( index, ( Object )list.get( index ).clone() );
            }
            return object;
        }
    
        public List< T > getList() {
            return list;
        }
    
        private ArrayList< T > list = new ArrayList< T >();
    }

    Человек из соседнего отдела порадовал...

    SadKo, 20 Июня 2011

    Комментарии (32)
  5. Java / Говнокод #6994

    +77

    1. 1
    2. 2
    3. 3
    4. 4
    Ingeter[] i = new Integer[1];
    for (i = 0; i<n; i++) {
    //что-то происходит
    }

    здесь все по-серьезному

    skim1776, 18 Июня 2011

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

    +87

    1. 1
    Boolean.valueOf("1".equals(object[1].toString())?"true":"false"))

    madhead, 18 Июня 2011

    Комментарии (13)
  7. Java / Говнокод #6983

    +83

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    public void fillFilialNames(ArrayList<String> filialNames) {
    		for (String filialDTO : filialNames) {
    			if (!filialNames.isEmpty())
    			filialNames.add(filialDTO);
    		}
    	}

    Бесконечный цикл :)

    stepanPlus7, 17 Июня 2011

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

    +146

    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
    File tarFile = new File(UUID.randomUUID() + ".tar");
        tarFile.createNewFile();
        FileOutputStream tarFileOutputStream = new FileOutputStream(tarFile.getAbsolutePath());
        TarArchiveOutputStream   archiveOutputStream = new TarArchiveOutputStream(tarFileOutputStream);
         
        String entryName = "пример.txt";
         
        File fileToPack = new File("C:\\пример.txt");
        InputStream in = new FileInputStream(fileToPack);
         
        //создаем запись в архиве с русским названием
        TarArchiveEntry entry = new TarArchiveEntry(entryName);
        entry.setSize(in.available());
        archiveOutputStream.putArchiveEntry(entry);
         
        while (in.available() > 10 * 1024 * 1024) {
                    byte b[] = new byte[10 * 1024 * 1024];
                    in.read(b);
                    archiveOutputStream.write(b, 0, b.length);
            }
        byte b[] = new byte[in.available()];
        in.read(b);
        archiveOutputStream.write(b, 0, b.length);
        in.close();
         
        archiveOutputStream.flush();
        archiveOutputStream.closeArchiveEntry();
        archiveOutputStream.flush();
        archiveOutputStream.close();

    найдено в сети.

    Lure Of Chaos, 16 Июня 2011

    Комментарии (20)
  9. Java / Говнокод #6972

    +147

    1. 1
    2. 2
    3. 3
    if(entry.getName().equals("back.jpg"));{
    
    }

    просто смешная (но с последствиями) опечатка

    Lure Of Chaos, 16 Июня 2011

    Комментарии (12)
  10. Java / Говнокод #6971

    +78

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    if (searchFB.getOrderNo()!=null && searchFB.getOrderNo().length()==6){
        int drawingStatus = searchFB.getDrawingStatus();
        int criticalStatus = searchFB.getCriticalStatus();
        int blockingStatus = searchFB.getBlockingStatus();
        int suspensionStatus = searchFB.getSuspensionStatus();
    
        searchFB.setDrawingStatus(drawingStatus);
        searchFB.setCriticalStatus(criticalStatus);
        searchFB.setBlockingStatus(blockingStatus);
        searchFB.setSuspensionStatus(suspensionStatus);
    }

    И это мне поддерживать...

    TC1, 16 Июня 2011

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