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

    +77

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    function formatSpeedBits(speed) {
    	// format speed in bits/sec, input: bytes/sec
    	if (speed < 125000) return Math.round(speed / 125) + " Kbps";
    	if (speed < 125000000) return Math.round(speed / 1250)/100 + " Mbps";
    	// else
    	return Math.round(speed / 1250000)/100 + " Gbps";  // wow!
    }

    JS в интерфейсе прошивки dd-wrt. Не совсе говнокод.

    danilissimus, 04 Марта 2011

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

    +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
    public void run() {
    		try {
                        System.out.println("START QUOTE RECEIVER SERVER SOCKET..............");
                        try
                        {
                            Thread.sleep(5000);
                        }
                        catch (Exception ex) {}
                        System.out.println("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
    
    			ServerSocket serverSocket = new ServerSocket(port);
    			while (!isInterrupted()) {
    				new RemoteDataReceiver(serverSocket.accept());
    			}
    			serverSocket.close();
    		} catch (IOException e) 
                    {
                        e.printStackTrace();
    		}
    	}

    Русская синхронизация. Бессмысленная и беспощадная...

    papuas_guinea, 04 Марта 2011

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

    +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
    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
    public class Boruvka
    {
        // private representations
        /**
         * Array of edges, which form the MST of the graph
         */
        private Edge[] mst;
        /**
         * Edges not yet discarded and not yet in the MST
         */
        private Edge[] wannabes;
        /**
         * Each component's nearest neighbor with find component numbers as indices
         */
        private Edge[] neighbors;
        /**
         * Graph representation on which we are searching for MST
         */
        private Graph g;
        /**
         *
         */
        private UnionFind uf;
        // constructors and methods
        /**
         * constructor
         * @param G Graph
         */
        public Boruvka(Graph G) {
            this.g = G;
        }
        /**
         * Boruvka's algorithm
         *
         *
         * @return minimal spanning tree - edges that form it
         */
    
        public Edge[] BoruvkaMSTalg()
        {
            Edge hlpEdge = new Edge(g.getMaxWeight(), 0, 0);
            this.uf = new UnionFind(g.getCountVerteces());
            this.wannabes = new Edge[this.g.getCountEdges()];
    
             /**
             * Get all edges from the graph G to the array edges
             */
            for (int i=0; i < g.getCountEdges(); i++)
                this.wannabes[i] = g.getEdgeAt(i);
    
    
            this.neighbors = new Edge[this.g.getCountVerteces()];
            this.mst = new Edge[this.g.getCountVerteces()+1];
    
            /**
             * index, used to store those edges being saved for the next phase
             */
            int nxtPhase;
            int k=1;
    
            for (int i=this.g.getCountEdges(); i!=0; i=nxtPhase)
            {
                int l, m, n;
    
                for (int o=0; o<this.g.getCountVerteces(); o++)
                    this.neighbors[o] = hlpEdge;
    
                for (n=0, nxtPhase=0; n<i; n++) {
                    Edge e = this.wannabes[n];
                    l = this.uf.find(e.getSVIndex()-1);
                    m = this.uf.find(e.getDVIndex()-1);
    
                    if ( l==m )
                        continue;
                    if ( e.getWeight() < this.neighbors[l].getWeight() )
                        this.neighbors[l] = e;
                    if ( e.getWeight() < this.neighbors[m].getWeight() )
                        this.neighbors[m] = e;
    
                    this.wannabes[nxtPhase++] = e;
                }
    
                for (n=0; n<this.g.getCountVerteces(); n++)
                    if ( this.neighbors[n] != hlpEdge ) {
                        l = this.neighbors[n].getSVIndex();
                        m = this.neighbors[n].getDVIndex();
    
                        if ( !this.uf.find(l,m) ) {
                            this.uf.unite(l,m);
                            this.mst[k++] = this.neighbors[n];
                        }
                    }
            }
            System.out.println("MST by Boruvka successful");
            return this.mst;
        }
    }

    Кто шарит в графах, помогите разобраться с алгоритмом Борувки для нахождения минимального остова графа. Код писал по коду Седжевика подстраивая под свой граф, но видимо наделал кучу глупостей, потому что алгоритм никогда не выходит из цикла. Подскажите где я ошибок наделал и как бы их исправить, буду очень благодарен.

    NightCrime, 03 Марта 2011

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

    +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
    22. 22
    ...:
                :
                Document doc = mySAXBuilder.build(pathToXML);
                Element root = null;
                List<Element> children = null;
                if( null != doc
                    &&
                    (
                        (   (root = doc.getRootElement()) != null && root.getName().equals("root") )    ?   
                                (
                                    (children = root.getChildren()) != null ?
                                        (children.size() > 0)
                                        : false
                                )
                                : false
                    )
                )
                {
                            // XML PARSING
                }
                :
                :......

    Интересный этюд при разборе XML'ки :)

    itakethisname, 03 Марта 2011

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

    +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
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    public void commandMafia(IcqProtocol proc, String uin){ 
      if(!isChat(proc,uin) && !psp.testAdmin(uin)) return; 
       
             try{ 
      int room = srv.us.getUser(uin).room; 
      int cnt1=0; 
      int num = (int) ((Math.random()*8)); //случ число от 0 до 8 
       Users uss = srv.us.getUser(uin); 
    
         if(uss.room!=0) 
    { 
    proc.mq.add(uin,"Играть можно только в 0 комнате"); 
    return; 
    } 
    
    if(cnt1<8){ 
           proc.mq.add(uin,"Игроков должно быть как минимум 8 "); 
           return; 
              } 
    
                 int step = 0; //шаг 
                 String cmd = ""; //команда 
                 Vector vek = new Vector(); //полученые данные 
                 int qqq=1; 
                 if(comMapdop.get(uin)==null) comMapdop.put(uin, 1); 
                 srv.us.updateUser(uss); 
                 if (comMap.containsKey(uin)){ 
                     step = Integer.parseInt(comMap.get(uin).getMsg()); //Узнаем на какой шаг нам надо попасть 
                     cmd = comMap.get(uin).getCmd(); // команда, нужна для второго и т.д. заходов 
                     vek = comMap.get(uin).getData(); 
                 } 
                 switch (step){ 
    
    }

    бугага

    regent, 03 Марта 2011

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

    +78

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    static List sort(List unsorted, Comparator comparator) { 
        List sorted = new ArrayList(unsorted); 
        Collections.sort(unsorted, comparator);
        return sorted;
    }

    feodal, 03 Марта 2011

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

    −80

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    String period_name[][] = {
         {"Январь","Февраль","Март","Апрель","Май","Июнь","Июль","Август","Сентябрь","Октябрь","Ноябрь","Декабрь"},
         {"Январь-Февраль","Март-Апрель","Май-Июнь","Июль-Август","Сентябрь-Октябрь","Ноябрь-Декабрь"},
         {"1 Квартал","2 Квартал","3 Квартал","4 Квартал"},
         {"Январь-Апрель","Май-Август","Сентябрь-Декабрь"},
         {"1 Полугодие","2 Полугодие"}
    }

    3.14159265, 01 Марта 2011

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

    +81

    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
    public void actionPerformed(java.awt.event.ActionEvent e)
    {
    	/* code	here */					
    	thr = new Potok(Spisok,f,papk);
    	thr.setWork(true);
    	try { thr.join(); } 
    	catch (InterruptedException e1) 
    	{
    		// TODO Auto-generated catch block
    		e1.printStackTrace();
    	}
    	/* another code here */
    }
    
    /* in the galaxy far-far away */
    class Potok extends Thread
    {
    	private boolean isWork = true;
    
    	public Potok() {}
    
    	public void run()
    	{
    		while ( isWork )
    		{
    			/* code here */
    		}
    	}
    	public void setWork(boolean work)
    	{
    		isWork = work;
    	}
    }

    Внутри обработчика нажатия на кнопку раскрывается вся суть многопоточных приложений.

    Elvenfighter, 24 Февраля 2011

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

    +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
    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
    public static void getShops(Favorite favoriteBrands,
    			Favorite favoriteShops, StationItem station,
    			WorkingTimeFilter workTimeFilter, boolean[] filter, String keyword,
    			GeoLocationPointItem userLocation,
    			GeoLocationPointItem searchLocation, String catalogId,
    			String netId, String page, String pageSize, String api,
    			AsyncTask callback, ConnectionWatcher watcher) {
    //...
    //упаковка кучи параметров
    
    
    		boolean emptyFavBrands = false;
    		if (favoriteBrands != null) {
    			int i = 0;
    			for (FavoriteItem item : favoriteBrands) {
    				String id = item.getId();
    				Log.i(tag, "addFaforiteBrand " + id);
    				params.add(new BasicNameValuePair(PARAMS_FAVORITE_BRAND_ID
    						+ "[" + i + "]", id));
    				i++;
    			}
    			if (i == 0)
    				emptyFavBrands = true;
    		}
    
    		boolean emptyFavShops = false;
    		if (favoriteShops != null) {
    			int i = 0;
    			for (FavoriteItem item : favoriteShops) {
    				String id = item.getId();
    				Log.i(tag, "addFaforiteShop " + id);
    				params.add(new BasicNameValuePair(PARAMS_FAVORITE_SHOP_ID + "[" + i
    						+ "]", id));
    				i++;
    			}
    			if (i == 0)
    				emptyFavShops = true;
    		}
    
    		boolean error = false;
    
    		if (emptyFavBrands && emptyFavShops) {
    			if (favoriteBrands != null || favoriteShops != null)
    				error = true;
    		}
    
    		if (emptyFavShops) {
    			if (favoriteBrands == null && favoriteShops != null)
    				error = true;
    		}
    
    		if (emptyFavBrands) {
    			if (favoriteBrands != null && favoriteShops == null)
    				error = true;
    		}
    
    		if (error) {
    			callback.onError(JsonEntity.FAVORITE_ERROR, new IOException());
    			return;
    		}
    }

    Обращение к веб-сервису. Вызов этого метода при переносе IDE "растекается" на 5-6 строк.
    Самое интересное - проверка корректности параметров находится в самом конце метода (длиной 150 строк)

    rphx, 23 Февраля 2011

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

    +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
    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
    package gargoyle.xenox.game;
    
    import gargoyle.util.log.Log;
    
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.ObjectInputStream;
    import java.io.ObjectOutputStream;
    import java.io.Serializable;
    
    @SuppressWarnings("rawtypes")
    public abstract class Persistent<T extends Persistent> implements Serializable {
      private static final long serialVersionUID = 1L;
    
      private File file(final Class<? extends Persistent> clazz) {
        return new File(System.getProperty("user.home"), clazz.getName() + ".dat");
      }
    
      @SuppressWarnings("unchecked")
      final protected T load(final Class<T> clazz) {
        ObjectInputStream in;
        try {
          in = new ObjectInputStream(new FileInputStream(this.file(clazz)));
          return (T) in.readObject();
        } catch (final IOException e) {
          Log.error(e);
        } catch (final ClassNotFoundException e) {
          Log.error(e);
        }
        return null;
      }
    
      final protected void save(final T o) {
        ObjectOutputStream os = null;
        try {
          os = new ObjectOutputStream(new FileOutputStream(this.file(o.getClass())));
          os.writeObject(this);
          os.flush();
        } catch (final IOException e) {
          Log.error(e);
        } finally {
          try {
            if (os != null) {
              os.close();
            }
          } catch (final IOException e) {
            Log.error(e);
          }
        }
      }
    }

    такой вот забавный сериализатор получился
    причина - запутался в генериках

    Lure Of Chaos, 21 Февраля 2011

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