- 1
BFAAAACOAADODBFACACGOAAOCCBDBFADCCBAACODBFADCAOAACOBGEDOCCCGAACDACCCGCCBDEEBEAAOEBBFBGFAACBADBADBGOAACBBDBBDCGEABEDBFAEBCOAAABAAOCOCAEOADADBFACACBBAAECBBBCFBCBAOAAGOBGODBODAD
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+127
BFAAAACOAADODBFACACGOAAOCCBDBFADCCBAACODBFADCAOAACOBGEDOCCCGAACDACCCGCCBDEEBEAAOEBBFBGFAACBADBADBGOAACBBDBBDCGEABEDBFAEBCOAAABAAOCOCAEOADADBFACACBBAAECBBBCFBCBAOAAGOBGODBODAD
Игра для ДОС в машинных кодах на системе счисления wct. (программа - http://yadi.sk/d/i9Me1IQ7MbHCD wct editor). http://wctsite.tk.
+14
typedef CStatisticsCalculator* (*TCalcCreator)(string&, const TUltimateStatDataPtr&);
typedef std::map <CStatisticsCalculator::eCalcKind, boost::tuple<string, TUltimateStatDataPtr, TCalcCreator>> TCalcImplMap;
static TCalcImplMap CalcsMap;
CStatisticsCalculator* CStatisticsCalculator::MakeNewCalculator(CStatisticsCalculator::eCalcKind Kind,
const TUltimateStatDataPtr& Data )
{
if (CalcsMap.empty())
{
CalcsMap[eCalcKind::eExtremeDealPrice] =
boost::make_tuple(string("be.commons.calculators.extreme_prices"), Data,
[](string& Name, const TUltimateStatDataPtr& Data_)->CStatisticsCalculator*
{ return new CExtremePricesCalculator(Name.c_str(), Data_);});
CalcsMap[eCalcKind::eTurnOver] =
boost::make_tuple(string("be.commons.calculators.turnover"), Data,
[](string& Name, const TUltimateStatDataPtr& Data_)->CStatisticsCalculator*
{ return new CTurnOverCalculator(Name.c_str(), Data_);});
};
auto i = CalcsMap.find(Kind);
if (i == CalcsMap.end())
return 0;
auto& tpl = i->second;
return tpl.get<2>()(tpl.get<0>(), tpl.get<1>());
};
Фабричный метод теперь выглядит так
+155
switch ( count($args) )
{
case 0:
return $obj->$method( );
case 1:
return $obj->$method( $args[0] );
case 2:
return $obj->$method( $args[0], $args[1] );
case 3:
return $obj->$method( $args[0], $args[1], $args[2] );
case 4:
return $obj->$method( $args[0], $args[1], $args[2], $args[3] );
case 5:
return $obj->$method( $args[0], $args[1], $args[2], $args[3], $args[4] );
case 6:
return $obj->$method( $args[0], $args[1], $args[2], $args[3], $args[4], $args[5] );
case 7:
return $obj->$method( $args[0], $args[1], $args[2], $args[3], $args[4], $args[5], $args[6] );
case 8:
return $obj->$method( $args[0], $args[1], $args[2], $args[3], $args[4], $args[5], $args[6], $args[7] );
case 9:
return $obj->$method( $args[0], $args[1], $args[2], $args[3], $args[4], $args[5], $args[6], $args[7], $args[8] );
case 10:
return $obj->$method( $args[0], $args[1], $args[2], $args[3], $args[4], $args[5], $args[6], $args[7], $args[8], $args[9] );
case 11:
return $obj->$method( $args[0], $args[1], $args[2], $args[3], $args[4], $args[5], $args[6], $args[7], $args[8], $args[9], $args[10] );
case 12:
return $obj->$method( $args[0], $args[1], $args[2], $args[3], $args[4], $args[5], $args[6], $args[7], $args[8], $args[9], $args[10], $args[11] );
}
throw new MWException( __CLASS__.": too many arguments to method called in ".__METHOD__ );
+80
function thttp.Get(URI: string): string;
var
newlocation:string;
redirect:integer;
contenttype:string;
i:integer;
contentencoding:string;
test:string;
host:string;
begin
redirect:=0;
headers.clear;
document.clear;
uri:=stringreplace(uri,'\','/',[rfreplaceall]);
// building the host///
if request.host <> '' then
headers.Add(format('Host:%s',[request.host]))
else
begin
i:=pos('://',uri);
if i>0 then
begin
host:=copy(uri,i+3,maxint);
i:=pos('/',host);
if i>0 then
host:=copy(host,1,i-1);
request.host:=host;
end
else
begin
i:=pos('/',uri);
if i>0 then host:=copy(uri,1,i-1)
else
host:=uri;
request.host:=host;
end;
end;
if request.referer <> '' then
headers.Add(format('Referer:%s',[request.referer]));
if request.useragent <> '' then
headers.Add(format('User-Agent:%s',[request.useragent]));
if request.AcceptEncoding <> '' then
headers.Add(format('Accept-Encoding:%s',[request.AcceptEncoding]));
if request.contenttype <> '' then
headers.Add('Content-Type:'+request.contenttype);
if request.connection <> '' then
headers.add('Connection:'+request.connection);
HTTPMethod('GET',uri);
if allowredirects=true then
begin
while (resultcode>=300) and (resultcode<400) do
begin
if (maxredirects <> -1) and (redirect > self.MaxRedirects) then break;
document.clear;
newlocation:=trim(Headers.Values['Location']);
if newlocation='' then break;
if (rightstr(request.host,1) <> '/') and (copy(newlocation,1,1) <> '/') then
newlocation:='/'+newlocation;
headers.clear;
document.clear;
HTTPMethod('GET',host+newlocation);
host:=trim(headers.Values['host']);
if host <> '' then
request.host:=host;
inc(redirect);
end;
end;
contenttype:=Headers.Values['Content-Type'];
contentencoding:=Headers.Values['Content-Encoding'];
request.contentencoding:=contentencoding;
request.contenttype:=contenttype;
if pos('gzip',ansilowercase(contentencoding))>0 then
begin
mstream.clear;
try
GZDecompressStream(Document, MStream);
document.Clear;
document.LoadFromStream(mstream);
document.Position:=0;
except
end;
end;
result:=memorystreamtostring(Document);
if pos('charset=utf-8',ansilowercase(contenttype))>0 then
test:=utf8toansi(result);
if test <> '' then
result:=test;
end;
У Булгакова есть цикл рассказов "Записки на манжетах".
Мой цикл называется "Записки на туалетной бумаге салфетках".
Итак, "Записки на салфетках. Как я обертывал Synapse".
+152
$db = Db::getInstance();
$result = $db->ExecuteS('SELECT * FROM `'._DB_PREFIX_.'payment_module_settings`;');
$text = "";
for($i=2;$i<sizeof($result[0]);$i++)
{
if($i == 2)
{
$text .= "[general]"."\n";
$text .= "url = '".$result[0][url]."'"."\n";
}
if($i == 3)
{
$text .= "[payment]"."\n";
$text .= "sequritySender = '".$result[0][security_sender]."'"."\n";
}
if($i == 4)
{
$text .= "transactionChannel = '".$result[0][transaction_Channel]."'"."\n";
}
if($i == 5)
{
$text .= "transactionMode = '".$result[0][transaction_Mode]."'"."\n";
}
if($i == 6)
{
$text .= "userLogin = '".$result[0][user_Login]."'"."\n";
}
if($i == 7)
{
$text .= "userPwd = '".$result[0][user_Pwd]."'"."\n";
}
if($i == 8)
{
$text .= "paymentType = '".$result[0][payment_Type]."'"."\n";
}
if($i == 9)
{
$text .= "presentationCurrency = '".$result[0][presentation_Currency]."'"."\n";
}
if($i == 10)
{
$text .= "[view]"."\n";
$text .= "src = '".$result[0][src]."'"."\n";
}
if($i == 11)
{
$text .= "language = '".$result[0][language]."'"."\n";
}
if($i == 12)
{
$text .= "style = '".$result[0][style]."'"."\n";
}
}
if($_GET['paymentType'] == 'CC')
{
$text .= "brands[] = 'VISA'"."\n";
$text .= "brands[] = 'MASTER'"."\n";
}
if($_GET['paymentType'] == 'VA')
{
$text .= "brands[] = 'PAYPAL'"."\n";
}
$text .= "[soap]"."\n";
$text .= "url = 'http://debugservices.fine-trade.org/PayOnOrderHandling.svc?WSDL'"."\n";
$text .= "username = 'extensions'"."\n";
$text .= "password = 'testExtensions'"."\n";
$text .= "options[] = false"."\n";
$text .= "importIfPending = false"."\n";
if (file_exists('LoviitLib/config.ini')) {
unlink('LoviitLib/config.ini');
}
$myFile = "LoviitLib/testFile.txt";
$fh = fopen($myFile, 'w') or die("can't open file");
fwrite($fh, $text);
fclose($fh);
rename("LoviitLib/testFile.txt","LoviitLib/config.ini");
Преамбула: для конфигурации библиотеки передаётся ассоциативный массив в конструктор. Если передаётся null, то для конфигурации используется файл config.ini с дефолтными настройками, который находится в корне библиотеки.
Этот код исполняется при каждой инициализации библиотеки (при каждом чекауте).
Ремарка: после запроса к db результатом является ассоциативный массив.
И да, это код из модуля для prestashop cms.
+155
$hlblock_id = 3;
$hlblock = HL\HighloadBlockTable::getById($hlblock_id)->fetch();
$entity = HL\HighloadBlockTable::compileEntity($hlblock);
$main_query = new Entity\Query($entity);
$main_query->setSelect(array('*'));
$main_query->setFilter(array('=UF_NAME' => $arOLDItem['material']));
$result = $main_query->exec();
$result = new CDBResult($result);
$row = $result->Fetch();
Bitrix, HIGHLOAD инфоблоки, данная запись равносильна SQL запросу SELECT * FROM %таблица_название_которой_хранится_в_бд_ под_номером_3% WHERE UF_NAME = $arOLDItem['material']
+зацените супер CamelCase от битрикса
+9
template<...many params...>
class Foo
{
template <typename T>
class __Bar
{
T t;
public :
__Bar(T t) : t(t) {}
};
public :
template <typename T>
__Bar<T> Bar(T t)
{
return __Bar<T>(t); // просто __Bar(t) нельзя, вывод не сработает
}
template <typename T>
void Buzz (T t)
{
}
};
...
Foo f;
f.Buzz(Bar(5));
А как вы выкручиваетесь из неумения определять тип результата по типу параметров конструктора?
+133
Добрый вечер, цыплята.
Сосево из ширинки, ебля с порога.
+152
if (ctype_space($text[$pos] && $pos < $len)) {
while (ctype_space($text[$pos++]) && $pos < $len);
$pos--;
}
Написал я когда-то такое и подумал: а какой смысл в $pos++ в последней итерации, если потом сразу $pos--?
И тут до меня дошло, что
while (ctype_space($text[$pos++]) && $pos < $len);
это не то же самое, что
while (ctype_space($text[$pos]) && $pos < $len) $pos++;
ибо в первом случае $pos++ выполнится в последней итерации, даже если ctype_space возвратит false.
И в итоге заоптимизировал до while (ctype_space($text[$pos]) && $pos < $len) $pos++; (уже без ифа и декремента).
Мораль: нефиг выпендриваться (ставить инкременты и декременты в условия), если можно написать по-простому.
+75
Integer code = Integer.valueOf(service.getId().toString());
service.getId() возвращает Long