1. Куча / Говнокод #11516

    +109

    1. 1
    Хочу книгу прикупить http://www.ozon.ru/context/detail/id/126954/. Кто нить читал подскажете стоит ли она прочтения ?

    Vasiliy, 01 Августа 2012

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

    +106

    1. 1
    IDictionary activeProcesses = (IDictionary)(new Hashtable());

    По мотивам

    http://govnokod.ru/11512
    Код встречен в книге
    http://tinyurl.com/eai-patterns
    Можно объяснить человеку, не знакомому с тонкостями C#, зачем это нужно, если Hashtable : IDictionary?

    roman-kashitsyn, 01 Августа 2012

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

    +154

    1. 1
    2. 2
    3. 3
    function isEmptyStr(val) {
        return val == null || val === "";
    }

    glprizes, 01 Августа 2012

    Комментарии (42)
  4. Куча / Говнокод #11513

    +138

    1. 1
    2. 2
    3. 3
    4. 4
    int getRandomNumber(){
        return 4; //chosen by fair dice roll.
                  //guaranteed to be random.
    }

    хуита, 01 Августа 2012

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

    +137

    1. 1
    model = (IModel)Activator.CreateInstance("DataModel", type).Unwrap() as IModel;

    Maps, 01 Августа 2012

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

    +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
    int enctypex_decoder_rand_validate(unsigned char *validate) {
        int     i,
                rnd;
    
        rnd = ~time(NULL);
        for(i = 0; i < 8; i++) {
            do {
                rnd = ((rnd * 0x343FD) + 0x269EC3) & 0x7f;
            } while((rnd < 0x21) || (rnd >= 0x7f));
            validate[i] = rnd;
        }
        validate[i] = 0;
        return(i);
    }

    WGH, 01 Августа 2012

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

    −79

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    t = 40000 -- количество итераций, чтобы выполнялось примерно 1 миллисекунду
                    -- экспериментальным путем определено, что для ideone'вских машин это значение ~40000
     
    sleep x = (apply (t*x) id x) `seq`
        ("I've waited ~" ++ show x ++ " milliseconds to tell this: 'pipisiunchik'.")
    
    -- apply применяет ф-цию f к x n раз
    apply 0 _ !x = x
    apply !n !f !x = apply (n - 1) f (f x)
     
    main = putStrLn $ sleep 1000

    Спешу представить вам плод моего безделья: чистая ф-ция sleep на Haskell!

    Тесты:
    1sec - http://ideone.com/sLxRx
    3.5sec - http://ideone.com/vn4Fd
    10sec - http://ideone.com/U8s36

    zim, 31 Июля 2012

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

    +42

    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
    foreach ($balancedSlots as $cluster) {
                    if ($cluster['type']=='cluster'){
                            foreach ($cluster['servers'] as $ip=>$server) {
                                    if ($GLOBALS['mode']!='test'){
                                            $GLOBALS['dataVar'][$i] = array();
                                            if (isset($server['snmp_server'])){
                                                    $p = preg_split('/,/', $server['snmp_server']);
                                                    $GLOBALS['dataVar'][$i]['proc_handle'] = popen(dirname(__FILE__).'/snmp_server.sh '.$p[0].' '.$p[1], 'r');
                                                    $GLOBALS['dataVar'][$i]['snmp_params'] = $p;
                                                    $GLOBALS['dataVar'][$i]['snmp_result'] = array('ifName'=>array(), 'counter'=>array());
                                            }
                                            else {
                                                    //print "proc_handle: ".$server['snmp_cmd']."\n";
                                                    $GLOBALS['dataVar'][$i]['proc_handle'] = popen($server['snmp_cmd'], 'r');
                                            }
                                            $GLOBALS['dataVar'][$i]['server']=$server;
                                            $GLOBALS['dataVar'][$i]['server']['ip']=$ip;
                                            $GLOBALS['dataVar'][$i]['eb'] = event_buffer_new($GLOBALS['dataVar'][$i]['proc_handle'], "read_result", NULL, "error_func", $i);
                                            event_buffer_timeout_set($GLOBALS['dataVar'][$i]['eb'], 4, 60);
                                            event_buffer_base_set($GLOBALS['dataVar'][$i]['eb'], $GLOBALS['base']);
                                            event_buffer_enable($GLOBALS['dataVar'][$i]['eb'], EV_READ);
                                    }
                                    elseif ($GLOBALS['mode']=='test')
                                    {
                                            if (!array_key_exists($ip, $testLastServers)) {
                                                    $testLastServers[$ip]=0;
                                            }
                                            if ($testServersData[$ip][$testServersIteration]!==false){
                                                    $GLOBALS['result'][$ip] = new ArrayObject(array('counter64'=>$testLastServers[$ip]+$testServersData[$ip][$testServersIteration], 'ts'=>$GLOBALS['mesure_time']));
                                                    $testLastServers[$ip] = $GLOBALS['result'][$ip]['counter64'];
                                            }
                                    }
                                    $i++;
                            }
                    }
            }

    Попытка одного товарища использовать библиотеку libevent. Видно щедрое использование глобальных переменных.

    Bdfy, 31 Июля 2012

    Комментарии (13)
  9. PHP / Говнокод #11507

    +64

    1. 1
    2. 2
    3. 3
    $is_root = ($node_id == 0) ? 'yes' : ''; 
    //и потом..
    if (!is_null($name_node) && $is_root != 'yes') {

    Есть у меня падаван-джуниор, девушка. Есть вот в коде перлы типа такого.
    булеан, не не слышал =\ И не понятно почему yes и пустая строка, пусть бы было уже yes и no.. Женская логика?

    vitaly, 31 Июля 2012

    Комментарии (12)
  10. Куча / Говнокод #11506

    +130

    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
    /*
    	 * Это массив объектов данных мануала. Один элемент - одна ступень.
    	 * У объектов может быть указан checkpoint:Boolean - место, к которому вернется игрок, при закрытии игры
    	 * У каждого объекта должен быть указан type:String, в зависимости от этого меняются другие свойства.
    	 * Для создания нового типа ступени туториала - необходимо создать класс, наследующий ITutorialData
    	 * и добавить соотвествующую запись в showStep::TutorialManager
    	 * Виды type:
    		 * dialog - диалоговое окно, атрибуты:
    			 * sex:Boolean - какого персонажа показывать в окне
    			 * descr:String - текст диалогового окна
    		 * pointer - стрелка, указывающая на кнопку
    			 * x,y:int - координаты кнопки
    			 * width,height:uint - размеры кнопки
    			 * x_a,y_a:int - координаты стрелки
    			 * angle:int - поворот стрелки, рекомендуемые значения: 0, 90, -90, 180
    			 * необязательные:
    				 * startfunc:Function - функция, выполняемая ПРИ переходе на эту ступень
    				 * endfunc:Function -  функция, выполняемая ПОСЛЕ нажатия кнопки
    		 * handler - слушатель событий
    		 * target:EventDispatcher - объект, на который подпишется туториал
    		 * event:String - название события, на которое подпишется туториал
    		 * необязательные:
    				 * startfunc:Function - функция, выполняемая ДО подписки на событие
    				 * eventDispatchFunction:Function - функция, выполняемая ВО ВРЕМЯ возникновения события
    				 * endfunc:Function -  функция, выполняемая ПОСЛЕ возникновения события
    		 *  handler-pointer - слушатель событий, показывающий стрелку
    			 * x_a,y_a:int - координаты стрелки
    			 * target:EventDispatcher - объект, на который подпишется туториал
    			 * event:String - название события, на которое подпишется туториал
    			 * необязательные:
    				 * startfunc:Function - функция, выполняемая ДО подписки на событие
    				 * eventDispatchFunction:Function - функция, выполняемая ВО ВРЕМЯ возникновения события
    				 * endfunc:Function -  функция, выполняемая ПОСЛЕ возникновения события 
    	 * Спасибо за внимание
     */			
    public static var data:Array;

    После такого комментария становится страшно что-то трогать

    KirAmp, 31 Июля 2012

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