- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
import string
k=input()
a=range(1000)
if k==1:
a[0]=input()
else:
t = string.replace(str(raw_input()), ' ', ', ')
a=eval('('+t+')')
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
−97
import string
k=input()
a=range(1000)
if k==1:
a[0]=input()
else:
t = string.replace(str(raw_input()), ' ', ', ')
a=eval('('+t+')')
4
2 3 4 5
----
Не знаю я питон :(
По другому не смог быстро написать..
+161
function toTrash($id)
{
$data = array(
'order_id' => $id,
'order_archived' => 0,
'order_trashed' => 1,
'order_candelled' => 0
);
return $this->update_order($data);
}
function toArchive($id)
{
$data = array(
'order_id' => $id,
'order_archived' => 1,
'order_trashed' => 0,
'order_candelled' => 0
);
return $this->update_order($data);
}
function restore($id)
{
$data = array(
'order_id' => $id,
'order_archived' => 0,
'order_trashed' => 0
'order_candelled' => 0
);
return $this->update_order($data);
}
function cancelled($id)
{
$data = array(
'order_id' => $id,
'order_archived' => 0,
'order_trashed' => 0,
'order_candelled' => 1
);
return $this->update_order($data);
}
+170
function loger2($comment)
{
$f = fopen(dirname(__FILE__).'/log2.html', 'a+');
fwrite($f, $comment);
fclose($f);
}
function loger($comment)
{
$f = fopen(dirname(__FILE__).'/log.html', 'a+');
fwrite($f, $comment);
fclose($f);
}
loger100500?
−104
def query(sql)
begin
@mysql.query(sql)
rescue StandardError => err
@log.error("Mysql query: '#{sql}\n#{err}'") if @log.class == LoggerHandler
end
end
Говнообертка. LoggerHandler - класс, наследующийся от Logger.
Говнонюанс в том, что Logger.error возвращает true/false в зависимости от того была ли запись в лог успешной, что приводит потом к ошибкам вида NoMethodError: undefined method `each' for true:TrueClass
+163
function db_query($sql)
{
global $dbcnx;
$k=0;
while(!@$res=mysql_query($sql))
{
if($k>5)
{
$f=fopen(dirname(__FILE__).'/tmp/error.log','a');
fwrite($f,"\n".mysql_error().' in '.$sql."\n");
fclose($f);
die();
}
//@mysql_close($dbcnx);
//MysqlConnect();
$k++;
}
return $res;
}
+160
function sinonimizer($my_text)
{
$arr_ = file(dirname(__FILE__).'/new_words.txt');
$arr = array();
foreach ($arr_ as $str)
{
$str = trim($str);
$t1 = explode('|', $str);
$master = trim($t1[0]); //пихаем слово которое заменять
if (!isset($t1[1]))
continue;
$t2 = explode('|', $t1[1]); //Тут слово которым заменять
if (sizeof($t2) == 0)
continue;
//Дальше волшебные мунипуляции
foreach ($t2 as $t)
$arr[crc32(strtolower($master))][crc32(strtolower(trim($t)))] = array('word' =>
trim($t), 'rep' => 0);
}
$my_text=str_replace(array("\n","\t","\r")," ",$my_text);
$text_arr = explode(' ', $my_text);
$str_ = '';
foreach ($text_arr as $item)
{
$fl = false;
$t = str_replace('.', '', str_replace(',', '', str_replace('!', '',
str_replace('?', '', str_replace('"', '', str_replace('\'', '',
str_replace('<', '', str_replace('>', '', str_replace(':', '',
str_replace(';', '', $item))))))))));
if (isset($arr[crc32(strtolower($t))]))
{
foreach ($arr[crc32(strtolower($t))] as $k => $v)
if ($v['rep'] == 0)
{
$str_ .= str_ireplace($t, "$v[word]", $item) . ' ';
$$v['rep'] = 1;
$fl = true;
break;
}
}
if (!$fl) $str_ .= $item . ' ';
}
return $str_;
}
function sinonimizer_new($my_text)
{
$arr_ = file(dirname(__FILE__).'/new_words.txt');
$arr = array();
foreach ($arr_ as $str)
{
$str = trim($str);
$t1 = explode('|', $str);
$master = trim($t1[0]); //пихаем слово которое заменять
if (!isset($t1[1]))
continue;
$t2 = explode('|', $t1[1]); //Тут слово которым заменять
if (sizeof($t2) == 0)
continue;
//Дальше волшебные мунипуляции
foreach ($t2 as $t)
$arr[(strtolower($master))][(strtolower(trim($t)))] = array('word' =>
trim($t), 'rep' => 0);
}
$my_text=str_replace(array("\n","\t","\r")," ",$my_text);
$text_arr = explode(' ', $my_text);
$str_ = '';
foreach ($text_arr as $item)
{
$fl = false;
$t = str_replace('.', '', str_replace(',', '', str_replace('!', '',
str_replace('?', '', str_replace('"', '', str_replace('\'', '',
str_replace('<', '', str_replace('>', '', str_replace(':', '',
str_replace(';', '', $item))))))))));
if (isset($arr[(strtolower($t))]))
{
foreach ($arr[(strtolower($t))] as $k => $v)
if ($v['rep'] == 0)
{
$str_ .= str_ireplace($t, "$v[word]", $item) . ' ';
$$v['rep'] = 1;
$fl = true;
break;
}
}
if (!$fl) $str_ .= $item . ' ';
}
return $str_;
волшебные мунипуляции
+166
$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']);
Конвертируем переносы строк типа.
+74
@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". Что бы из логов сразу было видно, что порт указан правильно или нет, хост и тд.
Но выпускникам ВМК МГУ такие вещи неведомы, они слишком крутые что бы опускаться до таких мелочей. Чайники, хуле.
+171
@flush();@ob_flush();@flush();
Я сказал flush(), сука! Эта фигня встречается в одном .php файле раз 20
−116
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;
Тарификатор плодящий зомби.
Автор не поленился переустановить обработчик для сигнала.. хотя это не нужно. Всем читать учебники - как правильно рипать чайлдов в цикле.
(с) Руслан Залата