1. JavaScript / Говнокод #3266

    +170

    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
    var selectControl = document.getElementById("list_tt_DropDownList_PerRaz");
    	switch (tr.cells[13].innerText)
    	{
    	    case "1":
    	        selectControl.options[0].selected = "selected";
    	        break;
    	    case "2":
    	        selectControl.options[1].selected = "selected";
    	        break;
    	    case "3":
    	        selectControl.options[2].selected = "selected";
    	        break;
    	    case "4":
    	        selectControl.options[3].selected = "selected";
    	        break;
    	    case "5":
    	        selectControl.options[4].selected = "selected";
    	        break;
    	}

    такой вот милый switch

    alex_donetsk, 19 Мая 2010

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

    +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
    List<String> runningVmIds = new ArrayList<String>( );
        for ( VmInfo runVm : request.getVms( ) ) {
          runningVmIds.add( runVm.getInstanceId( ) );
        }
        for ( String vmId : VmInstances.getInstance( ).getKeys( ) ) {
          if ( runningVmIds.contains( vmId ) ) {
            continue;
          }
          VmInstance vm = null;
          try {
            vm = VmInstances.getInstance( ).lookup( vmId );
            long splitTime = vm.getSplitTime( );
            if ( splitTime > SHUT_DOWN_TIME ) {
              VmInstances.getInstance( ).disable( vm.getName( ) );
              vm.resetStopWatch( );
              vm.setState( VmState.TERMINATED );
              vm.setReason( INSTANCE_EXPIRED );
              SystemState.cleanUp( vm );
            }
          } catch ( NoSuchElementException e ) {}
        }
        
        List<String> knownVmIds = new ArrayList<String>( );
        knownVmIds.addAll( VmInstances.getInstance( ).getKeys( ) );
        if ( knownVmIds.removeAll( runningVmIds ) ) {//<-- active registered vms not reported in describe
          for ( String vmId : knownVmIds ) {
            VmInstance vm = null;
            try {
              vm = VmInstances.getInstance( ).lookup( vmId );
              long splitTime = vm.getSplitTime( );
              if ( splitTime > SHUT_DOWN_TIME ) {
                VmInstances.getInstance( ).disable( vm.getName( ) );
                vm.resetStopWatch( );
                vm.setState( VmState.TERMINATED );
                vm.setReason( INSTANCE_EXPIRED );
                SystemState.cleanUp( vm );
              }
            } catch ( NoSuchElementException e ) {
              /* should never happen, just pulled the key set, if it does ignore it */
            }
          }
        }

    Я, наверно, тупой и ещё мало кофе с утра выпил, но мне кажется, что один из циклов тут явно лишний...

    raorn, 19 Мая 2010

    Комментарии (2)
  3. Perl / Говнокод #3264

    −125

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    while (my $t = $tix->RT::SearchBuilder::Next) {  # BLOODY HACK
            my $when = $t->ResolvedObj->Unix - $t->CreatedObj->Unix;
            next unless $when > 0; # Doubly bloody hack
            my $max = (60*60*24*2) / 1800;
            my $x = int($when / 1800);
            $counts[$x > $max ? $max : $x]++;
        }

    Нашел в коде RTx Statistics - расширения для CRM Request Tracker: http://wiki.bestpractical.com/view/RT3StatisticsPackage

    del, 19 Мая 2010

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

    +132

    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
    DWORD WINAPI readPort( LPVOID lpParam )
    {
            while (1)
            {
                    if (brkListen)
                            break;
    
            if (((Param*)(void*)lpParam)->port)
                    if (fgetc(((Param*)(void*)lpParam)->port)!=EOF);
                            ((Param*)(void*)lpParam)->count++;
            }
    
            return 0;
    }

    Кусок программы подсчёта импульсов с оптопорта. Мало того что так делать плохо, так ещё один косяк есть. RS232 ниже 64 бод в винде не держит. так и не выяснил в физике это дело или в оси. Под RTEMS 6.04 64 бод на ура считалось.

    ursus, 19 Мая 2010

    Комментарии (9)
  5. bash / Говнокод #3262

    −132

    1. 1
    yes | rm -r /

    Так красивее :)

    Tanger, 18 Мая 2010

    Комментарии (31)
  6. C# / Говнокод #3261

    +113

    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
    private static void assertNoReflection()
    {
        foreach (StackFrame stackFrame in new StackTrace().GetFrames())
        {
            if (stackFrame.GetMethod().DeclaringType.Namespace == "System.Reflection")
            {
                throw new MethodAccessException();
            }
        }
    }
    
    internal static string GetKey()
    {
        assertNoReflection();
    
    // ...
    }

    Вот так вот приходится говнить, потому что в дотнете рефлексией можно спокойно вызывать internal- и private- методы.
    assertNoReflection(); проверяет, что вверх по стеку вызовов никто не балуется рефлексией.
    После assertNoReflection(); из нативной длл получаем обфусцированную (вручную, лол) строку, которая далее с помощью запутанных алгоритмов (некоторые параметры для "расшифровки" опять берутся из нативной длл) приводит её в вид пароля (для доступа к запароленному архиву).
    Софт не прямо уж суперсекретный, просто нужно скрыть ресурсы хотя бы для приличия. Пароль через подключение к серверу не катит.
    Ко всему этому оно собрано в одно exe моновским mkbundle'ом (рефлектор не может открыть!) и поверх upx'ом. В общем, большое количество кулхацкеров отсекается (должны знать ассемблер и MSIL).
    Чувствую, что говнорешение, но не могу придумать что-то более умное. Обфускаторы тоже не очень катят, ибо плохо дружат с моно.

    cfdev, 18 Мая 2010

    Комментарии (10)
  7. Си / Говнокод #3260

    +135

    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
    /* TODO: make this into something smarter than a linked list */
    typedef struct bunchOfInstances_t {
        ncInstance * instance;
        int count; /* only valid on first node */
        struct bunchOfInstances_t * next;
    } bunchOfInstances;
    
    ncInstance * get_instance (bunchOfInstances **headp)
    {
        static bunchOfInstances * current = NULL;
        
        /* advance static variable, wrapping to head if at the end */
        if ( current == NULL ) current = * headp;
        else current = current->next;
        
        /* return the new value, if any */
        if ( current == NULL ) return NULL;
        else return current->instance;
    }

    raorn, 18 Мая 2010

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

    +164

    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
    o.style.cursor="wait";
    			document.body.style.cursor="wait";
    			switch(iCellSelected)
    			{
    				case 2:
    					//задержка .1с
    					AnyPage("1_2");
    					break;
    				case 4:
    					//задержка .1с
    					AnyPage("1_3");
    					break;
    				case 6:
    					//задержка .1с
    					AnyPage("1_4");
    					break;
    				case 8:
    					//задержка .1с
    					AnyPage("1_5");
    					break;
    				case 10:
    					//задержка .1с
    					AnyPage("1_6");
    					break;
    				case 12:
    					//задержка .1с
    					AnyPage("1_7");
    					break;
    			} //end switch(iCellSelected)

    Это сайт максима прохорова. Посмотревших ждёт батхэт.
    http://ee324704-1.hosting.parking.ru/

    ursus, 18 Мая 2010

    Комментарии (101)
  9. Си / Говнокод #3258

    +105

    1. 1
    int ccInstance_to_ncInstance(ccInstance *dst, ncInstance *src);

    raorn, 18 Мая 2010

    Комментарии (1)
  10. Си / Говнокод #3257

    +114

    1. 1
    #define boool long bool

    glook, 18 Мая 2010

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