-
+34
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
void
XmlRpcDispatch::work(double timeout)
{
...
nEvents = select(maxFd+1, &inFd, &outFd, &excFd, NULL);
...
}
void XmlRpcDispatch::terminate() {
...
XmlRpcSocket::connect(_cmd_sock, "127.0.0.1", port);
...
}
Не то чтобы говнокод, но забавный костыль. А как еще корректно выйти из select'a, ждущего входящих соединений? Создать соединение самому.
Steve_Brown,
12 Октября 2012
-
−117
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
MAXJOBS=20
for i in `seq 1 $MAXJOBS` ; do nice -n 19 gzip -c /dev/zero > /dev/null & done
while true
do
LA=`</proc/loadavg` && LA=${LA// */}
H=$(date +%M) && H=${H/0/}
G=`echo "(${MAXJOBS}/2)*(s(2*3.14159*${H}/60) +1 ) <= ${LA}" | bc -l`
test ${G} -lt 1 && for i in `seq 1 $MAXJOBS` ; do kill -SIGCONT %$i ; done || for i in `seq 1 $MAXJOBS` ; do kill -SIGSTOP %$i; done
sleep 1
done
Генерирует load average, и поддерживает её в форме синусоиды, с периодом в час.
на графике выглядит как-то так:
http://i.piccy.info/i7/108cbdd61801da0ed805ecf41ecbc9e3/4-47-114/35579895/localhost_load.png
bliznezz,
12 Октября 2012
-
+66
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
<?php
//You can even add more Dollar Signs
$Bar = "a";
$Foo = "Bar";
$World = "Foo";
$Hello = "World";
$a = "Hello";
$a; //Returns Hello
$$a; //Returns World
$$$a; //Returns Foo
$$$$a; //Returns Bar
$$$$$a; //Returns a
$$$$$$a; //Returns Hello
$$$$$$$a; //Returns World
//... and so on ...//
?>
Из комментов на http://www.php.net/manual/en/language.variables.variable.php
xaionaro,
12 Октября 2012
-
−102
- 1
- 2
- 3
- 4
- 5
obj_l = list()
for obj, obj_id in [(QuizQuestion, quest_id), (QuizAssigment, ass_id), (QuizQuestionAnswer, answ_id)]:
q_set = getattr(getattr(obj, 'objects'), 'filter')(id=obj_id)
obj_l.append(getattr(q_set, 'count')() > 0 and q_set[0] or False)
(False in obj_l or obj_l[2].question != obj_l[0] or (user and obj_l[0].user)) and abort(IntegrityError())
1) хер такое прочтешь
2) для осмысления прочитанного нужно выпить
3) за осмысление такого нужно выпить еще раз
4) чувак узнал про getattr, хотя стоило вызвать напрямую obj.objects.filter(id=obj_id)
5) q_set.count() > 0 and q_set[0] or false
пятая строка поддается пониманию но катастрофически быстро начинает от этого терять смысл
nimnull,
12 Октября 2012
-
+21
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
if(m_bitRate < DSS_LOW_RATE/1000000.)
{
m_bitRate = DSS_LOW_RATE/1000000.;
}
else if(m_bitRate > DSS_HIGH_RATE/1000000.)
{
m_bitRate = DSS_HIGH_RATE/1000000.;
}
else if(m_bitRate > (.5*(DSS_HIGH_RATE - DSS_LOW_RATE) + DSS_LOW_RATE)/1000000.)
{
m_bitRate = DSS_HIGH_RATE/1000000.;
}
else
{
m_bitRate = DSS_LOW_RATE/1000000.;
}
умиляет. ну хотя бы, упростить .5*(DSS_HIGH_RATE - DSS_LOW_RATE) + DSS_LOW_RATE) до (DSS_HIGH_RATE + DSS_LOW_RATE)/2 -- понятнее, да? тогда и if(m_bitRate > DSS_HIGH_RATE/1000000.) можно убрать за ненадобносью (ибо число которое больше чем максимальное из двух точно больше чем среднее из этих жвух), и самое верхнее if(m_bitRate < DSS_LOW_RATE/1000000.) можно убрать ибо в else у нас то же самое произойдет - и сразу как бы читаестя с ходу и понимается, не надо напрягаться.
Боже, как я люблю крупные проприетарные проекты написанные людьми выбравшими для себя не свою профессию разработчика софта...
Pencioner,
11 Октября 2012
-
+139
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
private static string f(bool? arg)
{
switch (arg)
{
case true: return "true";
case false: return "false";
case null: return "null";
default: return "???";
}
}
В продолжение историй про bool-shit. Если строку 8 убрать, то Visual Studio пишет:
"Error 3 'f(bool?)': not all code paths return a value"
Что должно быть в аргументе, чтобы попасть в ветку default?
absolut,
11 Октября 2012
-
−121
- 1
НомСтрЗаказа = ПолучитьПустоеЗначение("Число");
Нашел тут в загашниках при поддержке "чужого кода".
Вот оказывается как надо присваивать переменной нулевое значение!
jerokee,
11 Октября 2012
-
−121
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
Функция СоздатьЗапрос(Текст) Экспорт
Запрос = Новый Запрос;
Запрос.Текст=Текст;
Возврат Запрос;
КонецФункции
Функция СоздатьМассив() Экспорт
Возврат Новый Массив;
КонецФункции
Функция СоздатьСоответствие() Экспорт
Возврат Новый Соответствие;
КонецФункции
Функция СоздатьСтруктуру() Экспорт
Возврат Новый Структура;
КонецФункции
Функция СоздатьСписокЗначений() Экспорт
Возврат Новый СписокЗначений;
КонецФункции
Вот такие вот функции (это естественно не все) от OLE-мастера: NewObject - не, не слышал.
ilya2184,
10 Октября 2012
-
+75
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
public class Тетрадка {
public static РабочийДень закрытьДень(РабочийДень последний, double зарплатаВыдана, double кассуЗабрали) {
последний.выдана_зп = зарплатаВыдана;
последний.выручку_забрали = кассуЗабрали;
РабочийДень новый = new РабочийДень();
Calendar c = Calendar.getInstance();
новый.год = c.get(Calendar.YEAR);
новый.месяц = c.get(Calendar.MONTH);
новый.день = c.get(Calendar.DAY_OF_MONTH);
последний.следующийДень = новый.год + "-" + новый.месяц + "-" + новый.день;
новый.предыдущийДень = последний.год + "-" + последний.месяц + "-" + последний.день;
новый.остаток = последний.остаток.сделатьКопию();
новый.вкассе = последний.вкассеОбщее - последний.выручку_забрали;
новый.общаяЗарплатаПрошлогоДня = последний.общаяЗарплата - последний.выдана_зп;
String папка = "./days/" + новый.предыдущийДень + "/" + новый.предыдущийДень + "-";
последний.сохранить(папка + "РабочийДень.data", папка + "ОстатокКарт.data", папка + "Приход.data");
новый.сохранить("./последнийРабочийДень.data", "./последнийОстатокКарт.data", "./последнийПриход.data");
return новый;
}
....
Brainexplode
VirtualVoid,
10 Октября 2012
-
+139
- 1
- 2
- 3
- 4
- 5
switch (!_data.Provider)
{
case true: _currentState = states.DT2F; break;
case false: _currentState = states.DT2P; break;
}
Проверка двух условий
Prafesor,
10 Октября 2012