- 1
List<KeyValuePair<string, string>> documentList = GetList();
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+130
List<KeyValuePair<string, string>> documentList = GetList();
использование списка пар ключ-значение вместо словаря (Dictionary<string, string>)
+159
/*
-----------------------------------------------------------------
Отмечаем все темы как прочитанные
-----------------------------------------------------------------
*/
$req = mysql_query("SELECT `forum`.`id`
FROM `forum` LEFT JOIN `cms_forum_rdm` ON `forum`.`id` = `cms_forum_rdm`.`topic_id` AND `cms_forum_rdm`.`user_id` = '$user_id'
WHERE `forum`.`type`='t'
AND `cms_forum_rdm`.`topic_id` Is Null");
while ($res = mysql_fetch_assoc($req)) {
mysql_query("INSERT INTO `cms_forum_rdm` SET
`topic_id` = '" . $res['id'] . "',
`user_id` = '$user_id',
`time` = '" . time() . "'");
}
$req = mysql_query("SELECT `forum`.`id` AS `id`
FROM `forum` LEFT JOIN `cms_forum_rdm` ON `forum`.`id` = `cms_forum_rdm`.`topic_id` AND `cms_forum_rdm`.`user_id` = '$user_id'
WHERE `forum`.`type`='t'
AND `forum`.`time` > `cms_forum_rdm`.`time`");
while ($res = mysql_fetch_array($req)) {
mysql_query("UPDATE `cms_forum_rdm` SET
`time` = '" . time() . "'
WHERE `topic_id` = '" . $res['id'] . "' AND `user_id` = '$user_id'");
}
Один из самых популярных мобильных движков - JohnCMS.
Скрипт отмечает темы форума как прочтенные. Частенько бывает за сотню непрочитанных тем. А я посещаю редко, так у меня вообще за тысячу переваливает иногда.
+18
class figure
{
//...
};
class triugolnik: public figure
{
//...
};
class kvadrat: public figure
{
//...
};
#define PAIR(f0, f1) std::make_tuple(std::type_index(typeid(f0)), std::type_index(typeid(f1)))
int PloshadTrehFigur(const figure& f0, const figure& f1, const figure& f2);//forward declaration
int PloshadDvuhFigur(const figure& f0, const figure& f1)
{
static const std::unordered_map<
std::tuple<std::type_index, std::type_index>, std::function<int(const figure&, const figure&)>
> caller
{
{PAIR(triugolnik, kvadrat), ploshadTriugolnikIKvadrat},
{PAIR(kvadrat, triugolnik), lispGovno::flip(ploshadTriugolnikIKvadrat)},
{PAIR(kvadrat, kvadrat), ploshadKvadratIKvadrat},
{PAIR(triugolnik, triugolnik), ploshadTriugolnikITriugolnik}
};
const auto& f = caller.find(PAIR(f0, f1));
assert(f!=caller.end());
f(f0, f1);
}
#undef PAIR
Наш ответ Чемберлену:
http://govnokod.ru/13933
lispGovno::flip - flip такой же как в хаскель из моей особой мегабиблиотеки победителя каждый день.
Шах и мат господа присяжные засидатели. Мультиметоды в крестах есть и реализуются за 5 минут.
В сишке аналогично. Все анскилябры залезли под кровати.
Визитары размазанные по коду сосут и трудно поддерживаются.
+12
#include <iostream>
class base
{
virtual void on_create() { }
public:
int value;
float another_value;
void create()
{
static base test;
if(*reinterpret_cast<unsigned int *>(this) != *reinterpret_cast<unsigned int *>(&test))
{
std::cout << "please, do not override on_create()\n";
}
on_create();
}
};
class derived : public base
{
virtual void on_create(){}
};
int main(int argc, char * argv[])
{
std::cout << "base\n";
base b;
b.create();
std::cout << "derived\n";
derived d;
d.create();
}
Родилось в попытке ограничить переопределение виртуального метода.
Работает, цуко.
http://ideone.com/gUN9OA
+160
if(floor($info['http_code'] / 100) >= 4) {
throw $this->castError($result);
}
Библиотека интеграции с Mandrill.
+125
На картинке — классическая древнегреческая статуя «Самсон, поражающий дубиной Бага, покровителя говнокода».
Древнегреческие программисты считали, что подсчет ссылок — универсальный инструмент, избавляющий от всех ошибок.
Сейчас мы знаем, что древние ошибались.
http://habrastorage.org/storage3/036/678/6e4/0366786e4530108f26e3ae9b8551bbad.jpg
http://habrahabr.ru/company/ifree/blog/202190/
Что имеет ввиду автор и почему он вообще гонит на RC?
+11
void run(std::map<QString, QString> params,QTextStream &os) const
{
static int ko=0;
ko++;
//r->method_="GET";
srand(time(0));// без этого числа будут одинаковые
QString randomData="["+ (QString::number(ko))+" , "+ (QString::number(rand()%100))+ "]";
//int index= params["idChpu"].toInt();
std::list<QString> idsparams=getIdsDataRequest(params["dataRequestIds"]);
QString dataInIds="";
//for (auto idParam=idsparams.begin();idParam!=idsparams.end();idParam++)
for (const auto &idParam : idsparams)
{
qDebug()<<idParam;
auto kokoFunction=[](const std::function<QString()> & function){QString date; for(auto i=0 ;i<10;i++){date+= function()+QString(" , ");} ; return date;};
if (idParam==QString("id0"))
{dataInIds=dataInIds+QString("\"")+(idParam)+QString("\"")+QString(":[")+kokoFunction([](){return QString::number((ko++));})+QString::number((ko++))+QString("],");}
else
{dataInIds=dataInIds+QString("\"")+(idParam)+QString("\"")+QString(":[")+kokoFunction([](){return QString::number(rand()%100);})+QString::number(rand()%100)+QString("],");}
};
QString jsonData=QString("{")+
QString("\"idLastKey\":\"10\",")+dataInIds+QString("}");
qDebug()<<"TgetDataOnRequest run</h1>";
os << "HTTP/1.0 200 Ok\r\n"
"Content-Type: text/html; charset=\"windows-1251\"\r\n"
"\r\n"<<jsonData<<//randomData<<
"\n";
// << QDateTime::currentDateTime().toString() << connectionSettings.getUrl()<<"\r\n"<<connectionSettings.getViewRequest()<<"\n";
}
Надеюсь это временный код, но очень сомневаюсь.
+16
const TReferenceToConstantStringSlice TFileTransfer::Beginer="<HTML><HEAD><FONT SIZE=6><A HREF='/'>Конфиденциально</A></FONT SIZE></HEAD><BODY><BR>";
const TReferenceToConstantStringSlice TFileTransfer::Ender="</BODY></HTML>";
Конфиденциально - это я сейчас стер.
+153
//поменяет src картинки на cid и вернет массив с дополнительными секциями тела письма
function convert_image_src($text, &$new_section_arr){
global $_SERVER;
//расчленяем текст на куски по img
$new_src_arr=array();//массив путей к картинкам
$arrTmp=explode("<img", $text);
$explode_str=array("\\\"", "\"", "'");
for($i=1; $i<sizeof($arrTmp); $i++){
$arrTmp2=explode("src=", $arrTmp[$i]);
for($j=1; $j<sizeof($arrTmp2); $j++){
for($k=0; $k<sizeof($explode_str); $k++){
if(substr($arrTmp2[$j], 0, strlen($explode_str[$k]))==$explode_str[$k]){
$arrTmp3=explode($explode_str[$k], $arrTmp2[$j]);
//считать можем только картинки с того же сервера - остальные побоку
if(ref_is_server($arrTmp3[1])){
$old_src_arr[]=$arrTmp3[1];
$new_src_arr[]=convert_url_2_full_server($arrTmp3[1]);
}
}
}
}
}
//теперь формируем новые секции
for($i=0; $i<sizeof($new_src_arr); $i++){
$file_arr=get_file_content($new_src_arr[$i], true);
if(strlen($file_arr[0])>0){
//запоминаем секцию
$new_section_arr[]=$file_arr[0];
//заменяем ссылку на cid
$text=str_replace($old_src_arr[$i], "cid:".$file_arr[1], $text);
}
}
return $text;
}
Супер функция, которая парсит картинки в тексте и заменяет на, как я понял, новые ссылки уже на собственном сервере.
Пока пытался разобраться, наступил когнитивный диссонанс.
−165
Запрос.Текст = ""
//...
ГДЕ
ВЫБОР
КОГДА ЕСТЬNULL(ВТМоделиПоставщика.КодМоделиПоставщика, "") = ""
ТОГДА 0
ИНАЧЕ 1
КОНЕЦ = 0
//...
Результат = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = Результат.Выбрать();
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
Если СтрДлина(ВыборкаДетальныеЗаписи.КодМоделиПоставщика) <> 0 Тогда
//...
КонецЕсли;
КонецЦикла;
Масло масляное. Захочешь нарочно такое придумать - не получится.