1. 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)
  2. Java / Говнокод #11924

    +79

    1. 1
    2. 2
    3. 3
    List<String> list;
    ....
    Long num = Long.parseLong( "" + list.size() );

    Самый оригинальный способ конвертации int в Long, кот. встречал в проекте )

    SIDS, 15 Октября 2012

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

    +75

    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
    public class Тетрадка {
    
    public static РабочийДень закрытьДень(РабочийДень последний, double зарплатаВыдана, double кассуЗабрали) {
            последний.выдана_зп = зарплатаВыдана;
            последний.выручку_забрали = кассуЗабрали;
            РабочийДень новый = new РабочийДень();
            Calendar c = Calendar.getInstance();
            новый.год = c.get(Calendar.YEAR);
            новый.месяц = c.get(Calendar.MONTH);
            новый.день = c.get(Calendar.DAY_OF_MONTH);
            последний.следующийДень = новый.год + "-" + новый.месяц + "-" + новый.день;
            новый.предыдущийДень = последний.год + "-" + последний.месяц + "-" + последний.день;
            новый.остаток = последний.остаток.сделатьКопию();
            новый.вкассе = последний.вкассеОбщее - последний.выручку_забрали;
            новый.общаяЗарплатаПрошлогоДня = последний.общаяЗарплата - последний.выдана_зп;
            String папка = "./days/" + новый.предыдущийДень + "/" + новый.предыдущийДень + "-";
            последний.сохранить(папка + "РабочийДень.data", папка + "ОстатокКарт.data", папка + "Приход.data");
            новый.сохранить("./последнийРабочийДень.data", "./последнийОстатокКарт.data", "./последнийПриход.data");
            return новый;
        }
    
     ....

    Brainexplode

    VirtualVoid, 10 Октября 2012

    Комментарии (13)
  4. 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)
  5. Java / Говнокод #11843

    +75

    1. 1
    v.getParent().getParent().getParent().getParent().requestDisallowInterceptTouchEvent(true);

    Не моё, но не могу не поделиться :)

    byss, 27 Сентября 2012

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

    +126

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    private Listener<BaseEvent> blurListener = new Listener<BaseEvent>() {
    	@Override
    	public void handleEvent(BaseEvent be) {
    		Component item = getComponent(be);
    		if(focusedItem == item) {
    			focusedItem = item;
    		}
    	}
    }

    Даже боюсь предположить, зачем это.

    someone, 19 Сентября 2012

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

    +120

    1. 1
    2. 2
    3. 3
    4. 4
    final TextField passwordField = UIFactory.createTextField(loginInfo, null);
    passwordField.setWidth(textFieldWidthPx);
    // Yes, they really want the password field to be shown openly.
    // Don't blame me, I'm just following orders!

    Безопасность такая безопасность.

    someone, 18 Сентября 2012

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

    +75

    1. 1
    2. 2
    3. 3
    4. 4
    Process process = Runtime.getRuntime().exec("su");
    OutputStream outputStream = process.getOutputStream();
    String cmd = "keycode " + KeyEvent.KEYCODE_BACK;
    outputStream.write((cmd + "\n").getBytes("ASCII"));

    Андроид. Вот такой вот прекрасный способ программно нажать кнопочку "Back".

    http://stackoverflow.com/questions/5832861/android-back-key-by-software

    bormand, 13 Сентября 2012

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

    +68

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    boolean occured = serverStats.getSwitchoverOccured();    
         
      if (occured)     
       return true;
      else  
       return false;

    dzagy, 04 Сентября 2012

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

    +121

    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
    try {
    	repository.saveAll(entities);
    } catch (final ConstraintViolationException e) {
    	throw new SettingsServiceException(ErrorFormatter.formatValidationErrors(
    			"Errors have been detected when saving", e));
    } catch (final PersistenceException e) {
    	for (val t: Throwables.getCausalChain(e)) {
    		if (t instanceof EntityExistsException) {
    			val failedObject = (IEntity) ((ExceptionInfo) t).getFailedObject();
    			
    			// failedObject is returned with the state in which it is in the database.
    			// Let's find the version that we tried to save, instead.
    			for (val entity: entities) {
    				if (entity.getId() != null && entity.getId().equals(failedObject.getId())) {
    					throw new SettingsServiceException("Attempted to save duplicate value: " + entity);
    				}
    			}
    		}
    	}
    	
    	throw e;
    }

    Попытка вернуть пользователю человеко-читаемое сообщение о том, где, собственно, дубликат.

    Костыли вы мои, костыли...

    someone, 31 Августа 2012

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