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

    +77

    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
    @SuppressWarnings("unchecked")
    public void addImage(String key, Bitmap bmp){
    		
    	if(memCache.size() >= MAX_CACHE_SIZE){
    			
    		Object[] array = (Entry[]) cacheUsage.entrySet().toArray();
    			
    		Arrays.sort(array, new Comparator<Object>(){
    				
    			public int compare(Object object1, Object object2) {
    				return (Integer)(((Map.Entry<String, Integer>)object1).getValue()) - 
    						(Integer)(((Map.Entry<String, Integer>)object2).getValue());
    			}
    		});
    			
    		String keyForRemove = ((Map.Entry<String, Integer>)array[0]).getKey();
    		memCache.remove(keyForRemove);
    		cacheUsage.remove(keyForRemove);
    	}
    	
    }

    до чего довело желание всё оптимизацировать

    KoirN, 24 Августа 2011

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

    +71

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    @Test
     public void testExecuteNoBean1() {   	
        	try {
                    //...
    		} catch (Exception e) {
    			assertEquals("ActionHandlerDefineDueDate: Error, failed to retrieve ... <over 9000 chars>", e.getMessage());
    		}
     }

    У кого-то явно проблемы с TDD.

    roman-kashitsyn, 23 Августа 2011

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

    +72

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    public void run()
        {
            while(mc.running) 
            {
                try
                {
                    Thread.sleep(0x7fffffffL);
                }
                catch(InterruptedException interruptedexception) { }
            }
        }

    Тоже майнсрафт.
    Может, я что-то не понимаю?

    RaZeR, 19 Августа 2011

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

    +75

    1. 1
    String s = (new StringBuilder()).append("c.").append(Integer.toString(i, 36)).append(".").append(Integer.toString(j, 36)).append(".dat").toString();

    Опять из сорцов минесрафта.
    У нотча видимо StringBuilder головного мозга.

    RaZeR, 19 Августа 2011

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

    +73

    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
    if(block == Block.blockDiamond || block == Block.oreDiamond)
            {
                return toolMaterial.getHarvestLevel() >= 2;
            }
            if(block == Block.blockGold || block == Block.oreGold)
            {
                return toolMaterial.getHarvestLevel() >= 2;
            }
            if(block == Block.blockSteel || block == Block.oreIron)
            {
                return toolMaterial.getHarvestLevel() >= 1;
            }
            if(block == Block.blockLapis || block == Block.oreLapis)
            {
                return toolMaterial.getHarvestLevel() >= 1;
            }
            if(block == Block.oreRedstone || block == Block.oreRedstoneGlowing)
            {
                return toolMaterial.getHarvestLevel() >= 2;
            }

    Из сорцов майнсрафта.
    Нахрена делать из двух ifов пять?!

    RaZeR, 19 Августа 2011

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

    +76

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    @Override
        public ResponseBag[] send(SmsBag[] smsBag) {
            ArrayList<ResponseBag> responseList = new ArrayList<ResponseBag>();
            for(SmsBag bag : smsBag) {
                responseList.add(super.send(bag));
            }
            ResponseBag[] responseBag = new ResponseBag[responseList.size()];
            return responseList.toArray(responseBag);
        }

    manyrus, 18 Августа 2011

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

    +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
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    56. 56
    57. 57
    58. 58
    public class LoadManager
    {
        public static Integer DEFAULT_MAX_LOAD_COUNTER = 2;
    
        private ConcurrentHashMap<Class, Integer> loadCounters = new ConcurrentHashMap<Class, Integer>();
    
        public void incLoadCounter(Class clazz)
        {
            synchronized (loadCounters)
            {
                if (!loadCounters.containsKey(clazz))
                {
                    loadCounters.put(clazz, 0);
                }
    
                if (loadCounters.get(clazz) <= DEFAULT_MAX_LOAD_COUNTER)
                {
                    loadCounters.put(clazz, loadCounters.get(clazz) + 1);
                }
            }
        }
    
        public void testLoadCounterAndWait(Class clazz)
        {
            synchronized (loadCounters)
            {
                if (!loadCounters.containsKey(clazz))
                {
                    loadCounters.put(clazz, 0);
                }
            }
            
            try
            {
                while (loadCounters.get(clazz) > DEFAULT_MAX_LOAD_COUNTER)
                {                
                    Thread.sleep(3000L + (long)Math.floor(5000 * Math.random()));
                }
            }
            catch (InterruptedException e) {}        
        }
    
        public void decLoadCounter(Class clazz)
        {
            synchronized (loadCounters)
            {
                if (!loadCounters.containsKey(clazz))
                {
                    loadCounters.put(clazz, 0);
                }
    
                if (loadCounters.get(clazz) > 0)
                {
                    loadCounters.put(clazz, loadCounters.get(clazz) - 1);
                }
            }
        }
    }

    Наверное, нужно было вот это: http://download.oracle.com/javase/1,5.0/docs/api/java/util/concurrent/Semaphore.html
    Ну и ещё порадовал способ постановки потоков в "очередь".

    konsoletyper, 17 Августа 2011

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

    +73

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    int[] indexes = list.getSelectedIndices();
            if (indexes.length == 0) {
                indexes = getAllIndexes();
            }
            if (indexes.length == 0) {
                return false;
            }

    индуссы атакуют

    Dexter, 15 Августа 2011

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

    +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
    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
    class PseudoVamp {
    	public int num;
    	public boolean truevamp = false;
    	public int x;
    	public int y;
    	public int n1;
    	public int n2;
    	public int n3;
    	public int n4;
    
    	void breaknsort() {
    		n1 = num % 10;
    		n2 = num / 10 % 10;
    		n3 = num / 100 % 10;
    		n4 = num / 1000;
    		int tmp;
    		for (int i = 0; i < 4; i++) {
    			if (n1 > n2) {
    				tmp = n1;
    				n1 = n2;
    				n2 = tmp;
    			}
    
    			if (n2 > n3) {
    				tmp = n2;
    				n2 = n3;
    				n3 = tmp;
    			}
    
    			if (n3 > n4) {
    				tmp = n3;
    				n3 = n4;
    				n4 = tmp;
    			}
    		}
    	}
    
    	public PseudoVamp(int a, int b) {
    		x = a;
    		y = b;
    		num = x * y;
    		breaknsort();
    	}
    }
    
    public class Test {
    
    	static void checkvamp(PseudoVamp vamp) {
    		int x1 = vamp.x % 10;
    		int x2 = vamp.x / 10;
    
    		int y1 = vamp.y % 10;
    		int y2 = vamp.y / 10;
    
    		int tmp;
    		for (int i = 0; i < 4; i++) {
    			if (x1 > x2) {
    				tmp = x1;
    				x1 = x2;
    				x2 = tmp;
    			}
    
    			if (x2 > y1) {
    				tmp = x2;
    				x2 = y1;
    				y1 = tmp;
    			}
    
    			if (y1 > y2) {
    				tmp = y1;
    				y1 = y2;
    				y2 = tmp;
    			}
    		}
    		if (vamp.n1 == x1 && vamp.n2 == x2 && vamp.n3 == y1 && vamp.n4 == y2)
    			vamp.truevamp = true;
    	}
    
    	public static void main(String[] args) {
    		for (int i = 11; i < 100; i++) {
    			for (int j = 11; j < 100; j++) {
    				PseudoVamp v = new PseudoVamp(i, j);
    				if (v.num < 1000)
    					continue;
    				if (v.num > 9999)
    					return;
    				checkvamp(v);
    				if (v.truevamp)
    				System.out.println(v.x + " * " + v.y + " = " + v.num);
    			}
    		}
    	}
    }

    A vampire number has an even number of digits and is formed by multiplying a pair of numbers containing half the number of digits of the result. The digits are taken from the original number in any order. Pairs of trailing zeroes are not allowed. Examples include:
    1260 = 21 * 60
    1827 = 21 * 87
    2187 = 27 * 81
    Write a program that finds all the 4-digit vampire numbers.
    w/o using of arrays.

    ch0sen, 15 Августа 2011

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

    +147

    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
    <script type="text/javascript" >
        var str = window.location + "";
        var t = str.substr(7, 2);
        if (t=="40") {document.write("(4842)<span style=\"font-size:30px;font-weight:bold;color:white;\">562–003</span>");}
        if (t=="36") {document.write("(473)<span style=\"font-size:30px;font-weight:bold;color:white;\">233-03-20</span>");}
        if (t=="62") {document.write("(4912)<span style=\"font-size:30px;font-weight:bold;color:white;\">300-305</span>");}
        if (t=="ww") {document.write("(4872)<span style=\"font-size:30px;font-weight:bold;color:white;\">39-03-06</span>");}
        if (t=="po") {document.write("(4872)<span style=\"font-size:30px;font-weight:bold;color:white;\">39-03-06</span>");}
    </script>
    <script type="text/javascript" >
       var str = window.location + "";
       var t = str.substr(7, 2);
       if (t=="40") {document.write("Калуга");}
       if (t=="36") {document.write("Воронеж");}
       if (t=="62") {document.write("Рязань");}
       if (t=="ww") {document.write("Тула");}
       if (t=="po") {document.write("Тула");}
    </script>

    Вот так упыри меняют телефоны на сайте в зависимости от региона, при том, что сайт использует PHP на сервере.

    demitriy_, 12 Августа 2011

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