-
+166
- 1
- 2
- 3
- 4
- 5
$res['descr'] = str_replace("\n\n\n", "<br>", $res['descr']);
$res['descr'] = str_replace("\n\n", "<br>", $res['descr']);
$res['descr'] = str_replace("<br><br><br>", "<br>", $res['descr']);
$res['descr'] = str_replace("<br><br>", "<br>", $res['descr']);
$res['descr'] = str_replace("<br><br>", "<br>", $res['descr']);
Конвертируем переносы строк типа.
govnozmey,
12 Января 2011
-
+74
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
@Name("solr")
@AutoCreate
public class SolrClient {
@Create
public void init() {
try {
server = startRemoteSolr();
} catch (Exception e) {
log.error(e, e);
}
}
public SolrServer startRemoteSolr() throws MalformedURLException, SolrServerException {
CommonsHttpSolrServer solr = new CommonsHttpSolrServer("http://localhost:8983/solr");
solr.setRequestWriter(new BinaryRequestWriter());
return solr;
}
}
Seam. Перевод для непричастного: на старте сайта вызывается метод startRemoteSolr(). Solr - это поисковый движок. Если он не запустится, на сайте не будет работать поиск. И если на запуске Solr будет ошибка, то в лог она попадёт просто как exception + stack trace.
Что не так в коде? Очевидно, его писали люди, не задумываясь об эксплуатации, что свойственно новичкам. А ведь устранение проблем в рабочем сайте - это приоритет номер один. Сама разработка сайта, сидя в удобном кресле с кашкой кофе - где-то сильно ниже.
Так вот, что не так?
1. При выводе ошибок надо писать - что это за ошибка. В данном случае: "Запуск поисковика неудался, ПОИСК НА САЙТЕ РАБОТАТЬ НЕ БУДЕТ." И уже потом - stack trace.
2. Если некая ошибка связана с ресурсами - сетевыми, или на файловой системе, в логе надо также описывать этот ресурс. Т.е. "Не удалось запустить клиент поисковика по адресу http://localhost:8983/solr". Что бы из логов сразу было видно, что порт указан правильно или нет, хост и тд.
Но выпускникам ВМК МГУ такие вещи неведомы, они слишком крутые что бы опускаться до таких мелочей. Чайники, хуле.
yvu,
12 Января 2011
-
+171
- 1
@flush();@ob_flush();@flush();
Я сказал flush(), сука! Эта фигня встречается в одном .php файле раз 20
govnozmey,
12 Января 2011
-
−116
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
sub child_handler {
#wait end of the child process
my $waitedpid = wait;
delete $my_childs{$waitedpid};
$SIG{CHLD} = \&child_handler;
LOG ("ripped $waitedpid" . ($? ? " with exit $?" : '')) if ($main::DEBUG>0);
}
$SIG{CHLD} = \&child_handler;
Тарификатор плодящий зомби.
Автор не поленился переустановить обработчик для сигнала.. хотя это не нужно. Всем читать учебники - как правильно рипать чайлдов в цикле.
(с) Руслан Залата
SanityIO,
12 Января 2011
-
−126
- 1
- 2
- 3
- 4
- 5
- 6
- 7
if(syswrite($sock, $buf, length($buf)) > 0) {
...
}
else{
# здесь автор считает что сокет сдох и закрывает его
client_process_except($sock);
}
Но мы то с вами знаем что syswrite может вернуть 0
(c) Руслан Залата
SanityIO,
12 Января 2011
-
−123
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
my $s = select($rout = $rin, $wout = $win, $eout = $ein, 10);
# ...
if( !$WORK_DONE) {
LOG("SLEEP");
sleep(1);
}
$WORK_DONE = 0;
Высоко нагруженный процесс требующий минимального времени реакции.
(с) Руслан Залата
SanityIO,
12 Января 2011
-
+157
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
session_start();
$value = array(
"severity" => $severity,
"message" => $message,
"filepath" => $filepath,
"line" => $line
);
if(empty($_SESSION['data']))
{
$_SESSION['data'] = serialize($value);
}
else
{
unset($_SESSION['data']);
$_SESSION['data'] = serialize($value);
}
header("Location: ".BASE_URL."/error/php_error/");
Вот обработчик ошибок из уже упомянутого мною проекта. Тот же самый кодер обрабатывает ошибки. При более чем одной ошибке валиться весь проект, из-за того что сессия уже стартовала. Увидев это у меня возник facepalm.
bazyaka,
12 Января 2011
-
+145
- 1
- 2
- 3
#ifndef UTF8_ONLY
I HATE YOU!!!!
#endif
Говногость,
12 Января 2011
-
−853
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
billats=# select * from t_month_names order by m_begin desc limit 10;
month | m_begin | m_end
-------------+------------+------------
Декабрь 04 | 2004-12-01 | 2004-12-31
Ноябрь 04 | 2004-11-01 | 2004-11-30
Октябрь 04 | 2004-10-01 | 2004-10-31
Сентябрь 04 | 2004-09-01 | 2004-09-30
Август 04 | 2004-08-01 | 2004-08-31
Июль 04 | 2004-07-01 | 2004-07-31
Июнь 04 | 2004-06-01 | 2004-06-30
Май 04 | 2004-05-01 | 2004-05-31
Апрель 04 | 2004-04-01 | 2004-04-30
Март 04 | 2004-03-01 | 2004-03-31
это не шутка.
SanityIO,
12 Января 2011
-
+117
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
public class A
{
private int field;
public int Field { get { return field; } }
public void Foo()
{
B.CreateInstance().A.field = 4;
}
}
public class B
{
private static _b = null;
private A _a = new A();
public A { get { return _a; } }
private B() {}
public static B CreateInstance()
{
if (_b == null)
{
_b = new B();
}
return _b;
}
}
Встретил сегодня. Не мог не поделиться. Кода там много, поэтому выписал суть. CreateInstance() - это реальное название метода.
t36,
12 Января 2011