- 1
Хочу книгу прикупить http://www.ozon.ru/context/detail/id/126954/. Кто нить читал подскажете стоит ли она прочтения ?
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+109
Хочу книгу прикупить http://www.ozon.ru/context/detail/id/126954/. Кто нить читал подскажете стоит ли она прочтения ?
+106
IDictionary activeProcesses = (IDictionary)(new Hashtable());
По мотивам
http://govnokod.ru/11512
Код встречен в книге http://tinyurl.com/eai-patterns
Можно объяснить человеку, не знакомому с тонкостями C#, зачем это нужно, если Hashtable : IDictionary?
+154
function isEmptyStr(val) {
return val == null || val === "";
}
+138
int getRandomNumber(){
return 4; //chosen by fair dice roll.
//guaranteed to be random.
}
+137
model = (IModel)Activator.CreateInstance("DataModel", type).Unwrap() as IModel;
+132
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);
}
−79
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
+42
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. Видно щедрое использование глобальных переменных.
+64
$is_root = ($node_id == 0) ? 'yes' : '';
//и потом..
if (!is_null($name_node) && $is_root != 'yes') {
Есть у меня падаван-джуниор, девушка. Есть вот в коде перлы типа такого.
булеан, не не слышал =\ И не понятно почему yes и пустая строка, пусть бы было уже yes и no.. Женская логика?
+130
/*
* Это массив объектов данных мануала. Один элемент - одна ступень.
* У объектов может быть указан 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;
После такого комментария становится страшно что-то трогать