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

    В номинации:
    За время:
  2. Куча / Говнокод #3696

    +129

    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
    Author: decker <decker@personal-army>  2010-06-19 05:39:42
    Committer: decker <decker@personal-army>  2010-06-19 05:39:42
    
        fix potential race in reservation id generation
    
    @@ -97,7 +98,7 @@ public class VmInstances extends AbstractNamedRegistry<VmInstance> {
         do {
           MessageDigest digest = Hashes.Digest.MD5.get();
           digest.reset();
    -      digest.update( Long.toString( rsvId + launchIndex + System.currentTimeMillis() ).getBytes() );
    +      digest.update( Long.toString( rsvId + launchIndex + System.nanoTime( ) ).getBytes() );
     
           Adler32 hash = new Adler32();
           hash.reset();

    Вот так суровые калифорнийцы сурово чинят race...

    raorn, 13 Июля 2010

    Комментарии (8)
  3. Ruby / Говнокод #3675

    −92

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    if html_content.product_id == 11 || html_content.product_id == 8 || html_content.product_id == 15 || html_content.product_id == 20 
      @terms_and_conditions = Page.find(212).contents
    else 
      @terms_and_conditions = Page.find(213).contents  
    end

    paveldruzyak, 09 Июля 2010

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

    +74

    1. 1
    2. 2
    3. 3
    public static int indexOf(String str, String... array) {
    		return ArrayUtils.indexOf(array, str);
    }

    cdf_easy, 07 Июля 2010

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

    +166

    1. 1
    2. 2
    3. 3
    function remove(e) {
    e.parentNode.innerHTML = e.parentNode.innerHTML.replace(e.outerHTML, '');
    }

    Кроссбраузерное удаление элемента из DOM.

    eval, 06 Июля 2010

    Комментарии (8)
  6. SQL / Говнокод #3611

    −179

    1. 1
    SELECT REPLACE(RTRIM(REPLACE(REPLACE(RTRIM(REPLACE(LTRIM('  850.0000'),'0',' ')),' ','0'),'.',' ')),' ','.')

    Совет, как убрать лишние нули после точки

    Back, 01 Июля 2010

    Комментарии (8)
  7. VisualBasic / Говнокод #3594

    −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
    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
    For x=1 to Len(content)
      bs = Mid(content, x, 1)
      If bs = "0" Or bs = "1" Or bs = "2" Or bs = "3" Or bs = "4" Or bs = "5" Or bs = "6" Or bs = "7" Or bs = "8" Or bs = "9"
        If Not t1 = "."
          d1+bs
        ElseIf Not t2 = "."
          d2+  bs
        ElseIf Not t3 = "."
          d3+  bs
        ElseIf Not t4 = ":"
          d4+  bs
        Else
          pp+  bs
        EndIf
      ElseIf bs = "."
        If Not d1 = "" And d2 = ""
          t1 = "."
        ElseIf Not d2 = "" And d3 = ""
          t2 = "."
        ElseIf Not d3 = "" And d4 = ""
          t3 = "."
        ElseIf Not pp = ""
          d1 = pp
          d2 = ""
          d3 = ""
          d4 = ""
          pp = ""
          t1 = "."
          t2 = ""
          t3 = ""
          t4 = ""
        EndIf
      Else
        If Not d4 = "" And pp = ""
          t4 = ":"
        ElseIf Val(pp) > 79 And Val(pp) < 9000 And Val(d1) < 255 And Val(d2) < 255 And Val(d3) < 255 And Val(d4) < 255 And Val(d1) > 0 And Val(d2) > 0 And Val(d3) > 0 And Val(d4) > 0
          p+  1
          prx = d1 + t1 + d2 + t2 + d3 + t3 + d4 + t4 + pp
          If Not FindString(prx, "127.0.0.1", 1)
            For r = 1 To ArraySize(prox())
              g = 0
              If prox(r) = prx
                g = 1
              EndIf
            Next
            If g = 0
              prox(ArraySize(prox())) = prx
              ReDim prox(ArraySize(prox())+1)
            EndIf
          EndIf
          d1 = ""
          d2 = ""
          d3 = ""
          d4 = ""
          pp = ""
          t1 = ""
          t2 = ""
          t3 = ""
          t4 = ""
        Else
          d1 = ""
          d2 = ""
          d3 = ""
          d4 = ""
          pp = ""
          t1 = ""
          t2 = ""
          t3 = ""
          t4 = ""
        EndIf
      EndIf
    Next x

    =) это мой калл
    суть: ищется посимвольным сравнениям прокси сервера формата n.n.n.n port и заполняется массив prox()
    в 2000 году у PureBasic не было еще регулярок, а у меня знаний =)
    даже сейчас удивляюсь что код тогда мной был написан за один раз и без комментариев 0_0 (d1,d2,d3,d4,pp,t1,t2,t3,t4.... жуть)

    pbg, 29 Июня 2010

    Комментарии (8)
  8. PHP / Говнокод #3532

    +148

    1. 1
    2. 2
    3. 3
    4. 4
    private $title_host='Посещаемость (уникальных посетителей в сутки)';
    private $title_download='ПРОГОРОД скачан (количество скачиваний программы в сутки)';
    private $title_sell='ПРОГОРОД куплен (количество покупок ПРОГОРОД в сутки)';
    private $title_sellshop='ПРОГОРОД офлайновые активации (количество в сутки)';

    agent-0007, 21 Июня 2010

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

    +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
    public static boolean isPow(BigInteger n){
    				    
    	   boolean zusammengesetzt=false;
    	   BigInteger obereSchranke=n;
    	   BigInteger untereSchranke=BigInteger.ONE;
    	   BigInteger t;	
                   
    	   for(BigInteger i=BigInteger.ONE;(i.compareTo(new BigInteger(new Integer((n.bitLength())).toString())) < 0);i=i.add(BigInteger.ONE)){
    	      while( (obereSchranke.subtract(untereSchranke)).compareTo(BigInteger.ONE) > 0){
    		     t=((obereSchranke.add(untereSchranke)).divide(new BigInteger("2")));
    		     if((pow(t,i.add(BigInteger.ONE))).compareTo(n) == 0){
    		        UserInterface.ausgabeFeld.append("Abbruch Schritt 1: Eingegebene Zahl ist nicht prim, da ");
    			    UserInterface.ausgabeFeld.append("n = "+t+"^"+i.add(BigInteger.ONE)+"\n"+"\n"); 
    				UserInterface.ausgabeFeld.repaint();
    				return zusammengesetzt=true;
    			    } 
    		     if((pow(t,i.add(BigInteger.ONE))).compareTo(n) > 0)
    			    obereSchranke=t;
    		     if((pow(t,i.add(BigInteger.ONE))).compareTo(n) < 0)
    				untereSchranke=t;
    		  }  
           }    
    	   UserInterface.ausgabeFeld.append("Schritt 1: "+n+" ist keine echte Potenz!"+"\n");
    	   UserInterface.ausgabeFeld.repaint();
    	   return zusammengesetzt;  
    	}

    Проверка условия вида "n = a^b".
    Впечатляет условие цикла for и реализация арифметических операций (хотя, может, с BigInteger так и надо).

    WxD, 16 Июня 2010

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

    +74

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    protected void setPhones(ArrayList<MBPhone> phones) {
        if(phones!=null) 
            this.phones=phones;
        else 
            phones.clear();
    }

    Код из одного западного вэб-сервиса для профессионалов в сфере недвижимости.
    Мораль: не надо игнорировать подсказки IDE. Автор на самом деле хотел очистить this.phones. И Intelij Idea подсказывает, что в этом месте может быть брошен NullPointerException. Увидеть эту проблему можно было только используя аннотацию @SuppressWarnings. Потому что варнингов так много, что различить среди них опасные очень сложно.

    vladimir.loshchin, 10 Июня 2010

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

    +74

    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
    public class HoldMe implements Lock {
      public static Lock          canHas                            = maybeGetLock( );
      public static boolean       reuse                             = true;
    
      @Override
      public void lock( ) {}
    
      private static Lock maybeGetLock( ) {
        if ( reuse ) {
    //      return new ReentrantLock( );
          return new HoldMe( );
        } else {
          return new HoldMe( );
        }
      }
    
      @Override
      public void lockInterruptibly( ) throws InterruptedException {}
    
      @Override
      public Condition newCondition( ) {
        return null;
      }
    
      @Override
      public boolean tryLock( ) {
        return true;
      }
    
      @Override
      public boolean tryLock( long arg0, TimeUnit arg1 ) throws InterruptedException {
        return true;
      }
    
      @Override
      public void unlock( ) {}
    }
    
    // Пример использования:
    
    HoldMe.canHas.lock( );
    try {
      // Код
    } finally {
      HoldMe.canHas.unlock( );
    }

    Суровые калифорнийцы суровы. Впрочем, я это уже говорил.

    raorn, 28 Мая 2010

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