1. Список говнокодов пользователя 3.14159265

    Всего: 150

  2. Куча / Говнокод #11979

    +175

    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
    with Ada.Integer_Text_Io, Ada.Text_Io;
    use Ada.Integer_Text_Io, Ada.Text_Io;
    
    procedure Test is
    v : Long_Float := 26.0;
    v1 : float := 26.0;
    begin
       while (v<27.0) loop
             Put_Line("Value = " & Long_Float'image(v));
            v:=v+0.2;
       end loop;
       while (v1<27.0) loop
             Put_Line("Value = " & float'image(v1));
            v1:=v1+0.2;
       end loop;
    
    end;

    ideone.com/pXIhvY
    Безопасный военный язык, да.

    3.14159265, 23 Октября 2012

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

    +91

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    public static 
    	String readFile(String file) {
    		return Read.file(  Reflection.getCallerClass(2), file,"\n");
    	}
    	public static 
    	String readFile(Class c, String file, final String lineBreaker) {
    		return Read.stream(c.getResourceAsStream(file),lineBreaker);
    	}

    Я уже как-то раз наступил на эту хрень.
    Но ничё - сегодня снова вот решил написать - удобно ведь.

    3.14159265, 22 Октября 2012

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

    +93

    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
    package java.util.logging;
    public class XMLFormatter extends Formatter 
    {
        // Append a two digit number.
        private void a2(StringBuffer sb, int x) {
    	if (x < 10) {
    	    sb.append('0');
    	}
    	sb.append(x);
        }
        // Append the time and date in ISO 8601 format
        private void appendISO8601(StringBuffer sb, long millis) {
    	Date date = new Date(millis);
    	sb.append(date.getYear() + 1900);
    	sb.append('-');
    	a2(sb, date.getMonth() + 1);
    	sb.append('-');
    	a2(sb, date.getDate());
    	sb.append('T');
    	a2(sb, date.getHours());
    	sb.append(':');
    	a2(sb, date.getMinutes());
    	sb.append(':');
    	a2(sb, date.getSeconds());
        }
        private void escape(StringBuffer sb, String text) {
    	if (text == null) {
    	    text = "<null>";
    	}
    	for (int i = 0; i < text.length(); i++) {
    	    char ch = text.charAt(i);
    	    if (ch == '<') {
    		sb.append("<");
    	    } else if (ch == '>') {
    		sb.append(">");
    	    } else if (ch == '&') {
    		sb.append("&");
    	    } else {
    		sb.append(ch);
    	    }
    	}
        }
        public String format(LogRecord record) {
    	StringBuffer sb = new StringBuffer(500);
    	sb.append("<record>\n");
    
    	sb.append("  <date>");
    	appendISO8601(sb, record.getMillis());
    	sb.append("</date>\n");
    
    	sb.append("  <millis>");
    	sb.append(record.getMillis());
    	sb.append("</millis>\n");
    
    	sb.append("  <sequence>");
    	sb.append(record.getSequenceNumber());
    	sb.append("</sequence>\n");
    
    	String name = record.getLoggerName();
    	if (name != null) {
    	    sb.append("  <logger>");
    	    escape(sb, name);
    	    sb.append("</logger>\n");
    	}
    
    	sb.append("  <level>"); 
    	escape(sb, record.getLevel().toString());
    	sb.append("</level>\n");
    
    	if (record.getSourceClassName() != null) {
    	    sb.append("  <class>");
    	    escape(sb, record.getSourceClassName());
    	    sb.append("</class>\n");
    	}
    
    	if (record.getSourceMethodName() != null) {
    	    sb.append("  <method>");
    	    escape(sb, record.getSourceMethodName());
    	    sb.append("</method>\n");
    	}
    
    	sb.append("  <thread>");
    	sb.append(record.getThreadID());
    	sb.append("</thread>\n");
     ....

    Я конечно всё понимаю, неоднократно были ситуации когда для скорости сам собирал xml руками.
    Но тут и вовсе такое ощущение будто школьник писал.
    http://kickjava.com/src/java/util/logging/XMLFormatter.java.htm

    3.14159265, 15 Октября 2012

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

    +95

    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
    final HCons<String, HCons<Integer, HCons<Boolean, HNil>>> a =
          nil().extend(true).extend(3).extend("Foo");
        final HCons<Double, HCons<String, HCons<Integer[], HNil>>> b =
          nil().extend(new Integer[]{1, 2}).extend("Bar").extend(4.0);
    
        // A lot of type annotation
        final HAppend<HNil, HCons<Double, HCons<String, HCons<Integer[], HNil>>>,
          HCons<Double, HCons<String, HCons<Integer[], HNil>>>> zero = append();
        final HAppend<HCons<Boolean, HNil>, HCons<Double, HCons<String, HCons<Integer[], HNil>>>,
          HCons<Boolean, HCons<Double, HCons<String, HCons<Integer[], HNil>>>>> one = append(zero);
        final HAppend<HCons<Integer, HCons<Boolean, HNil>>, HCons<Double, HCons<String, HCons<Integer[], HNil>>>,
          HCons<Integer, HCons<Boolean, HCons<Double, HCons<String, HCons<Integer[], HNil>>>>>> two = append(one);
        final HAppend<HCons<String, HCons<Integer, HCons<Boolean, HNil>>>,
          HCons<Double, HCons<String, HCons<Integer[], HNil>>>,
          HCons<String, HCons<Integer, HCons<Boolean, HCons<Double, HCons<String, HCons<Integer[], HNil>>>>>>>
          three = append(two);
    
        // And all of that lets us append one list to the other.
        final HCons<String, HCons<Integer, HCons<Boolean, HCons<Double, HCons<String, HCons<Integer[], HNil>>>>>>
          x = three.append(a, b);
    
        // And we can access the components of the concatenated list in a type-safe manner
        System.out.println(x.head()); // Foo
        System.out.println(x.tail().tail().tail().tail().head()); // Bar

    Это вот такая она, функциональщина, упрощающая жизнь.
    http://functionaljava.googlecode.com/svn/artifacts/3.0/demo/1.5/HList_append.java

    3.14159265, 05 Октября 2012

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

    +90

    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
    public enum TimeUnit {
       NANOSECONDS {
            public long toNanos(long d)   { return d; }
            public long toMicros(long d)  { return d/(C1/C0); }
            public long toMillis(long d)  { return d/(C2/C0); }
            public long toSeconds(long d) { return d/(C3/C0); }
            public long toMinutes(long d) { return d/(C4/C0); }
            public long toHours(long d)   { return d/(C5/C0); }
            public long toDays(long d)    { return d/(C6/C0); }
            public long convert(long d, TimeUnit u) { return u.toNanos(d); }
            int excessNanos(long d, long m) { return (int)(d - (m*C2)); }
        }
    ....
        public long convert(long sourceDuration, TimeUnit sourceUnit) {
            throw new AbstractMethodError();
        }
    
     
        public long toNanos(long duration) {
            throw new AbstractMethodError();
        }
    
      
        public long toMicros(long duration) {
            throw new AbstractMethodError();
        }
    
        public long toMillis(long duration) {
            throw new AbstractMethodError();
        }
    
     
        public long toSeconds(long duration) {
            throw new AbstractMethodError();
        }
    
      
        public long toMinutes(long duration) {
            throw new AbstractMethodError();
        }
    
      
        public long toHours(long duration) {
            throw new AbstractMethodError();
        }
    
     
        public long toDays(long duration) {
            throw new AbstractMethodError();
        }
    
      
        abstract int excessNanos(long d, long m);
    }

    Но зачем?

    3.14159265, 02 Августа 2012

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

    +100

    1. 1
    2. 2
    3. 3
    synchronized(new Object()){
    ...
    }

    http://stackoverflow.com/questions/9840959/how-to-judge-which-object-to-be-synchronized-in-java-thread

    3.14159265, 27 Июля 2012

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

    +162

    1. 1
    window.location = "http://habrahabr.ru/post/116653/";

    Дело создателей 1С живет и процветает.

    3.14159265, 15 Июня 2012

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

    +95

    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
    // same as Callable but without exception
    public interface  Executable<T>
    {
     	public T call();
    }
    /*В другом классе: методы для конверсии туда-сюда */
    	public Callable<T> toCallable(final Executable<T> ex){
     		return new Callable<T>(){
    			public T call() throws Exception{
    				return ex.call();
    			}
    		};
    	}
    	public Executable<T> toExecutable(final Callable<T> c)
     	{
     		return new Executable<T>(){
    			public T call(){
    		 		try{
    					return c.call();
    				}catch (Exception e){
    					throw new RuntimeException(e);
    				}
    			}
    		};
    	}

    3.14159265, 11 Июня 2012

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

    +98

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    public interface FunctionWithException<F,T,E extends Throwable>
    {
    	public T call(F f) throws E;
    }
    ......
    public interface Function<F,T> extends FunctionWithException<F,T,RuntimeException>
    {
    	public T call(F f) throws RuntimeException;
    }

    В этом сезоне в моде всё функциональное.

    3.14159265, 11 Июня 2012

    Комментарии (0)
  11. Java / Говнокод #10721

    +102

    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
    public void set...(...){
      ...
      throw INVALID_PARAM;
    }
    public void set...(...){
      ...
      throw INVALID_PARAM;
    }
    public void set...(...){
      ...
      throw INVALID_PARAM;
    }
    
    ...
    private final static Exception INVALID_PARAM=new RuntimeException("Incorrect value!");

    3.14159265, 08 Июня 2012

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