1. Лучший говнокод

    В номинации:
    За время:
  2. Java / Говнокод #3332

    +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
    public void logoutSession(String sessionId)
    throws SerializableException
    {
            if (sessionId==null) {
                    throw new SerializableException("Invalid RPC arguments: sessionId is missing");
            }
            SessionInfo session = (SessionInfo)sessions.get(sessionId);
            if (session!=null) {
                    sessions.remove(sessionId);
                    SessionInfo old = (SessionInfo)sessions.get(sessionId);
            }
    }

    raorn, 27 Мая 2010

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

    +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
    private static NavigableSet<Integer> availableVlans = populate( );
    
    private static NavigableSet<Integer> populate( ) {
      NavigableSet<Integer> list = new ConcurrentSkipListSet<Integer>( );
      for ( int i = 1; i < 4095; i++ )
        list.add( i );
      return list;
    }
    
    public static void trim( int min, int max ) {
      NavigableSet<Integer> newVlanList = Sets.newTreeSet( );
    
      for ( int i = min; i < max; i++ )
        newVlanList.add( i );
      newVlanList.removeAll( availableVlans );
      availableVlans.removeAll( availableVlans.headSet( min ) );
      availableVlans.removeAll( availableVlans.tailSet( max ) );
      for ( int i = min; i < max; i++ ) {
        if ( !newVlanList.contains( i ) ) {
          availableVlans.add( i );
        }
      }
    }

    Очередной кусок калифорнийского кода.

    raorn, 20 Мая 2010

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

    +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
    private void changeName() throws Exception {
        File inFile = new File(torrentFilePath);
        File outFile = new File(torrentFilePath + Hashes.getRandom(6));
        BufferedInputStream inStream = new BufferedInputStream(new FileInputStream(inFile));
        BufferedOutputStream outStream = new BufferedOutputStream(new FileOutputStream(outFile));
    
        int bytesRead;
        int totalBytesRead = 0;
        byte[] bytes = new byte[1024];
        String inString = "";
    
        while((bytesRead = inStream.read(bytes)) > 0) {
            inString += new String(bytes, 0, bytesRead);
            totalBytesRead += bytesRead;
        }
        inStream.close();
        int len = inString.length();
        int idx = inString.indexOf(NAME_TAG);
        int lastidx = inString.indexOf(objectName) + objectName.length();
    
        outStream.write(bytes, 0, idx + NAME_TAG.length());
        outStream.write(new String(objectKey.length() + ":" + objectKey).getBytes());
        outStream.write(bytes, lastidx, totalBytesRead - lastidx);
    
        outStream.close();
        outFile.renameTo(inFile);
    }

    Горячий привет из солнечной Калифорнии. Таким образом студенты из Университета Санта-Барбары меняют имя файла в торренте.

    raorn, 11 Мая 2010

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

    +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
    private String getIdString() {
            String answer = Integer.toHexString(id.intValue());
            switch (answer.length()) {
            case 0:
                answer = "00000000";
                break;
            case 1:
                answer = "0000000" + answer;
                break;
            case 2:
                answer = "000000" + answer;
                break;
            case 3:
                answer = "00000" + answer;
                break;
            case 4:
                answer = "0000" + answer;
                break;
            case 5:
                answer = "000" + answer;
                break;
            case 6:
                answer = "00" + answer;
                break;
            case 7:
                answer = "0" + answer;
                break;
            }
            return answer;
        }

    JBoss Netty org.jboss.netty.channel.AbstractChannel

    yvu, 30 Апреля 2010

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

    +75

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    private static byte[] getByteArrayFromInt(int number) {
    	ByteArrayOutputStream out = new ByteArrayOutputStream();
    	DataOutputStream o = new DataOutputStream(out);
    	try {
    		o.writeInt(number);
    	} catch (IOException e) {
    		e.printStackTrace();
    	}
    	return out.toByteArray();
    }

    Интересный способ переводить Int в массив байт )

    Logarithm, 18 Марта 2010

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

    +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
    import java.util.*;
     
    public class Shell {
        Shell(){
                   main();
            }
            private void main(){
             boolean flag=true;
                String c;
                   while(flag){
                      c=Kernel.stdin("#");
                         String out=exec(c);
                      Kernel.stdout(out);
              }
            }
            public static String exec(String cmd){
                 String tmp="";
                  Lib_parse.line(cmd," ");
               String c=Lib_parse.get(0).toLowerCase();
                    if(c=="help"){
                        tmp.concat("uname - get the OC version \n");
                          tmp.concat("echo - echo input phraze \n");
                    }
                    if(c=="uname"){
                       tmp.concat("L2ME Kernel v1.3 - Linux 2 Java ME (c) new_user \n");
             }
                    if(c=="echo"){
                        tmp.concat(cmd.substring(4,cmd.length()-1)+"\n");
                   }
            return tmp;
         }
    }

    Правда мило? :)

    Pyth_ON, 10 Февраля 2010

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

    +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
    #include <windows.h> 
    #include <stdio.h> 
    
    int main(int argc, char* argv[]) 
    { 
    
    char FileName[1024]; 
    
    int i; 
    
    char *drives[] = {"C:","D:","E:","F:","G:","H:","I:","J:","K:","L:", 
    "M:","N:","O:","P:","Q:","R:","S:","T:","U:"," V:", 
    "W:","X:","Y:","Z:"}; 
    
    
    for(i = 0;i < 24;i++) 
    
    Metka: 
    
    if (GetDriveType(drives) == DRIVE_NO_ROOT_DIR) 
    { 
    goto Metka; 
    } 
    else 
    { 
    GetModuleFileName (NULL,FileName,1024); 
    
    strcat(drives,"\\1.exe"); 
    
    CopyFile(FileName,drives,1); 
    
    } 
    
    Sleep(50); 
    goto Metka; 
    }

    На не без известном форуме ][akep крутой программист задал вопрос "Привет всем.Вот такой вопрос.Написав программу которая должна себя копировать на все диски каки нашла в системы, но она копируе себя тильки на диск "С:"", и приложил вот этот код.

    psina-from-ua, 05 Января 2010

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

    +74.7

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    else if (i == '\n')
                {
                    if (lastb != '\r')
                    {                                 
                       // imagine my joy...
                        if (!(isCrlfStream && lastb == '\n'))
                        {
                            out.write(newline);
                        }
                    }
                    else

    Довольно известная опенсорсовая библиотека bouncycatle(bcmail-jdk15-143) разбирался в подписке eMail сообщений и вот где то на вторые- третьи сутки неравной борьбы и вкуривания доки дошел до этого куска кода, комент меня убил
    ЗЫ. Библиотека и ее писатели действительно круты но видно и они устают писать нетленный код.

    tsval, 12 Октября 2009

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

    +74.7

    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
    Лучший индусский способ определения текущего трехбуквенного обозначения месяца:
    
    String currentMonth = ((String) monthMap.get(new Integer(today.getMonth()))).substring(0, 3);
    
    где
    
    monthMap:
    
    Map monthMap=new HashMap();	
    			
    monthMap.put(new Integer(Calendar.JANUARY), Constants.JANUARY);
    monthMap.put(new Integer(Calendar.FEBRUARY), Constants.FEBRUARY);
    monthMap.put(new Integer(Calendar.MARCH), Constants.MARCH);

    zavr, 12 Августа 2009

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

    +74.7

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    public boolean unDeployProcedure() {
            ...
            Connection conn = null;
            if (conn == null) {
                return false;
            }
            ...
    }

    Долго не мог понять почему в базе данных не удаляются процедуры созданные прогой, которые по определению должны удаляться. Наткнулся на замечательный кусок говнокода, открывший мне секрет такого поведения)

    guest, 30 Июня 2009

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