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

    +69

    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
    public static void main(String[] args) throws Exception {
    	// ProblemFactory in action...
    	DocumentBuilderFactory docBuilderFactory = DocumentBuilderFactory.newInstance();
    	docBuilderFactory.setValidating(false);
    	docBuilderFactory.setNamespaceAware(false);
    	DocumentBuilder docBuilder = docBuilderFactory.newDocumentBuilder();
    
    	// I really don't want to download that stupid DTD from w3c.org
    	docBuilder.setEntityResolver(new EntityResolver() {
    		public InputSource resolveEntity(String publicId, String systemId)
    				throws SAXException, IOException {
    			return new InputSource(new StringReader(""));
    		}
    	});
    
    	// Just fine
    	Document doc = docBuilder.parse("http://govnokod.ru/comments");
    
    	// ProblemFactory again
    	XPathFactory xpathFactory = XPathFactory.newInstance();
    	XPath xpath = xpathFactory.newXPath();
    
    	// Just fine
    	NodeList nodes = (NodeList)xpath.evaluate("//li[@class='hentry']", doc, XPathConstants.NODESET);
    	Pattern topicUriRegex = Pattern.compile("^.*/(\\d+)$");
    
    	// This is Java, not C. Why I need to write that shitty loop?!
    	for (int i=0, n=nodes.getLength(); i<n; i++) {
    		Node node = nodes.item(i);
    		String author = xpath.evaluate(".//strong[@class='entry-author']/a/text()", node);
    		String language = xpath.evaluate(".//a[@rel='chapter']/text()", node);
    		String topicUri = xpath.evaluate(".//a[@rel='bookmark'][@class='entry-title']/@href", node);
    		Matcher m = topicUriRegex.matcher(topicUri);
    		String topicId = m.matches() ? m.group(1) : "неизвестный говнокод";
    		String text = xpath.evaluate(".//div[@class='entry-comment']", node);
    		
    		System.out.println("==== " + author + " наложил в " + topicId + " (" + language + ") ====");
    		System.out.println(text);
    		System.out.println("");
    	}
    }

    Треш угар и содомия.Java, DOM и парсер уютненького.

    bormand, 24 Августа 2012

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

    +60

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    class Test {
        private int m_field;
    
        int getField() {
            return m_field;
        }
    
        void setField(int field) {
            m_field = field;
        }
    }

    Дискасс.

    bormand, 23 Августа 2012

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

    +120

    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
    // See where we currently are in a calendar quarter.
    // In Java, JANUARY == 0.
    // Yes, I could just write (3 - currentMonth % 3),
    // but this is clearer
    switch (currentMonth % 3) {
    case 0: // January, April, July, October
    	monthsToInclude = 3; // include whole last quarter
    	break;
    case 1: // February, May, August, November
    	monthsToInclude = 2; // include first two months of this quarter
    	break;
    default: // March, June, September, December
    	monthsToInclude = 1; // include first month of this quarter
    	break;
    }

    Или всё-таки наплевать на читаемость и заменить короткой версией?

    someone, 23 Августа 2012

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

    +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
    @Override
    public boolean onTouchEvent(MotionEvent e) {
    	x=(int)e.getX(); y=(int)e.getY();
    	/* ... */
    	synchronized(this) {
    		try {this.wait(1000);}
    		catch (InterruptedException ex) {}
    	}
    	return true;
    }
    
    /* Gets (screen/pixel) x,y coordinates of last touch event*/
    public boolean GetCoordinates(MutablePoint coordinates) {
    	if (x==-1) return false;
    	coordinates.init(x,y);
    	return true;
    }

    https://github.com/acl33/AndroidDasher/blob/master/src/dasher/android/DasherCanvas.java

    rat4, 20 Августа 2012

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

    +70

    1. 1
    2. 2
    3. 3
    4. 4
    if( (r == g) && (g == b) && (b == 255) )
    {
    // .....
    }

    ...

    Anderson, 15 Августа 2012

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

    +85

    1. 1
    mDay = --mDay;

    no comments

    Hits, 14 Августа 2012

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

    +78

    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
    if(Integer.parseInt(dat[0])==1)
    			 {
    				 datString="Jan "+dat[2] +","+dat[1];
    			 }
    			 else if(Integer.parseInt(dat[0])==2)
    			 {
    				 datString="Feb "+dat[2] +","+dat[1];
    			 }
    			 else if(Integer.parseInt(dat[0])==3)
    			 {
    				 datString="Mar "+dat[2] +","+dat[1];
    			 }
    			 else if(Integer.parseInt(dat[0])==4)
    			 {
    				 datString="Apr "+dat[2] +","+dat[1];
    			 }
    			 else if(Integer.parseInt(dat[0])==5)
    			 {
    				 datString="May "+dat[2] +","+dat[1];
    			 }
    			 else if(Integer.parseInt(dat[0])==6)
    			 {
    				 datString="Jun "+dat[2] +","+dat[1];
    			 }
    			 else if(Integer.parseInt(dat[0])==7)
    			 {
    				 datString="Jul "+dat[2] +","+dat[1];
    			 }
    			 else if(Integer.parseInt(dat[0])==8)
    			 {
    				 datString="Aug "+dat[2] +","+dat[1];
    			 }
    			 else if(Integer.parseInt(dat[0])==9)
    			 {
    				 datString="Sep "+dat[2] +","+dat[1];
    			 }
    			 else if(Integer.parseInt(dat[0])==10)
    			 {
    				 datString="Oct "+dat[2] +","+dat[1];
    			 }
    			 else if(Integer.parseInt(dat[0])==11)
    			 {
    				 datString="Nov "+dat[2] +","+dat[1];
    			 }
    			 else if(Integer.parseInt(dat[0])==12)
    			 {
    				 datString="Dec "+dat[2] +","+dat[1];
    			 }

    Вот так китайци обычно формируют строку в календаре.
    Made in China.

    Hits, 14 Августа 2012

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

    +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
    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
    private void viewField(int id) {
            try {
                List<Fieldmaterials> materials = materialsSession.FieldmaterialsBy(id);
                int size = materials.size() - 1;
                int i = 0;
                JSONWriter json = new JSONStringer().object();
                json.key("namefield").array();
    
                while (i <= size) {
                    Fieldmaterials get = materials.get(i);
                    json.value(get.getNamefield());
                    i++;
                }
                json.endArray();
                json.key("typefield").array();
    
                i = 0;
                while (i <= size) {
                    Fieldmaterials get = materials.get(i);
                    json.value(get.getTypefield());
                    i++;
                }
    
                json.endArray();
                json.key("orderfield").array();
    
                i = 0;
                while (i <= size) {
                    Fieldmaterials get = materials.get(i);
                    json.value(get.getOrderfieldmaterials());
                    i++;
                }
                json.endArray().endObject();
    
            } catch (Exception e) {
                e.printStackTrace();
            }

    Не нашел более хорошего способа сериализовать в JSON. Нужно было оформить поля объектов в массивы, что-бы потом удобно разобрать в javascript

    Kerny, 11 Августа 2012

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

    +72

    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
    private String getMessage(String prop, boolean suffixEnabled) {
            String title = null;
            if (prop.equals("headerTitle.suffix")) {
                try {
                    title = messageSource.getMessage("headerTitle.suffix", null, locale);
                } catch (NoSuchMessageException e) {
                    //e.printStackTrace();
                }
                if (title == null)
                    title = "";
            } else {
                try {
                    title = messageSource.getMessage(prop, null, locale);
                    if (suffixEnabled)
                        title += " " + messageSource.getMessage("headerTitle.suffix", null, locale);
                } catch (NoSuchMessageException e) {
                    //e.printStackTrace();
                }
                if (title == null) {
                    try {
                        title = messageSource.getMessage("headerTitle.default", null, locale);
                    } catch (NoSuchMessageException ex) {
                        title = "";
                    }
                }
    
            }
            return title;
        }

    welvet, 09 Августа 2012

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

    +70

    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
    public static class TrollException extends RuntimeException {
            @Override
            public String getMessage() {
                throw new TrollException();
            }
    
            @Override
            public String getLocalizedMessage() {
                throw new TrollException();
            }
    
            @Override
            public Throwable getCause() {
                throw new TrollException();
            }
    
            @Override
            public synchronized Throwable initCause(Throwable cause) {
                throw new TrollException();
            }
    
            @Override
            public String toString() {
                throw new TrollException();
            }
    
            @Override
            public void printStackTrace() {
                throw new TrollException();
            }
    
            @Override
            public void printStackTrace(PrintStream s) {
                throw new TrollException();
            }
    
            @Override
            public void printStackTrace(PrintWriter s) {
                throw new TrollException();
            }
    
            @Override
            public synchronized Throwable fillInStackTrace() {
                throw new TrollException();
            }
    
            @Override
            public StackTraceElement[] getStackTrace() {
                throw new TrollException();
            }
    
            @Override
            public void setStackTrace(StackTraceElement[] stackTrace) {
                throw new TrollException();
            }
        }

    kadavrrr, 06 Августа 2012

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