- 1
throw (i?getMainException():int());
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+173
throw (i?getMainException():int());
+151
elseif (array_key_exists(pathinfo($_SERVER['HTTP_HOST'], PATHINFO_EXTENSION), $lang_array)) {
$language = pathinfo($_SERVER['HTTP_HOST'], PATHINFO_EXTENSION);
}
else
$language = 'en';
Из того же проекта, где зародился шаблонизатор.
Минималистичный файл-хостинг, который все решает за хозяина.
Конфиг - только папка хранения файлов и макс. объем.
А язык он определяет сам. По доменному имени. Каждый раз при обращении к странице.
+155
// Функция подключения файлов шаблонов -----------------------------------------------------------------
function tpl_include($filepath, $title = '', $content = '') {
global $lang, $lang_array;
$tpl_body = str_replace("\n", '', file_get_contents($filepath));
$tpl_body = preg_replace('#\{loop (.*?)\}(.*?)\{\/loop\}#i', "\nEOL;\nforeach (\\1 as \$var=>\$val) echo <<<EOL\n\\2\nEOL;\necho <<<EOL\n", $tpl_body);
$tpl_body = preg_replace('#\{const (.*?)\}#i', "\nEOL;\necho \\1;\necho <<<EOL\n", $tpl_body);
$to_eval = "echo <<<EOL\n".$tpl_body."\nEOL;\n";
eval($to_eval);
}
// -----------------------------------------------------------------------------------------------------
По следам http://govnokod.ru/5658.
Шаблонизатор этот жив и кочует из проекта в проект.
Можно ссылаться на переменные из массива $lang, где хранится локализация и на $title и $content. Вот так - {$title}.
Можно ссылаться на любые константы. Например, {const ROOT_PATH}.
Можно делать цикл {loop $array}{/loop}, где внутри доступны переменные {$var} и {$val}.
Полностью избавляет от шорт-тегов, которые скоро уже и уберут из похапе.
Работает лишь чуть медленнее include с шорт-тегами (0.8 против 1.2 на 10к прогонов) и, разумеется, быстрее Смарти.
При необходимости в каком-то проекте в чем-то еще - можно легко добавить.
В общем - изящное вонючее решение.
+147
...
char det(char a[4][4])
{ float det;
det=a[0][0]*(a[1][1]*(a[2][2]*a[3][3]-a[3][2]*a[2][3])-a[1][2]*(a[2][1]*a[3][3]-a[2][3]*a[3][1])+a[1][3]*(a[2][1]*a[3][2]-a[2][2]*a[3][1]))
-a[0][1]*(-a[1][0]*(a[2][2]*a[3][3]-a[3][2]*a[2][3])-a[1][2]*(a[2][0]*a[3][3]-a[3][0]*a[2][3])+a[1][3]*(a[2][0]*a[3][2]-a[3][0]*a[2][2]))
+a[0][2]*(-a[1][0]*(a[2][1]*a[3][3]-a[3][1]*a[2][3])+a[1][1]*(a[2][0]*a[3][3]-a[3][0]*a[2][3])+a[1][3]*(a[2][0]*a[3][1]-a[2][1]*a[3][0]))
-a[0][3]*(-a[1][0]*(a[2][1]*a[3][2]-a[3][1]*a[2][2])+a[1][1]*(a[2][0]*a[3][2]-a[3][0]*a[2][2])-a[1][2]*(a[2][0]*a[3][1]-a[3][0]*a[2][1]));
return(det);
};
...
http://otvet.mail.ru/question/59918103/
+116
if ( check < 50000 ) {
primaryAnimation = primaryAnimation;
} else {
int ani = (check - 50000) / 100;
primaryAnimation = _OptionalAnimations["Run"][ani];
}
Найдено в недрах загрузчика MD2-моделек для XNA.
+115
public void chkStatus_OnCheckedChanged(object sender, EventArgs e)
{
CheckBox chkStatus = (CheckBox)sender;
GridViewRow row = (GridViewRow)chkStatus.NamingContainer;
string cid = row.Cells[1].Text;
bool status = chkStatus.Checked;
string constr = @"Server=.\SQLEXPRESS;Database=TestDB;uid=waqas;pwd=sql;";
string query = "UPDATE Categories SET Approved = @Approved WHERE CategoryID = @CategoryID";
SqlConnection con = new SqlConnection(constr);
SqlCommand com = new SqlCommand(query, con);
com.Parameters.Add("@Approved", SqlDbType.Bit).Value = status;
com.Parameters.Add("@CategoryID", SqlDbType.Int).Value = cid;
con.Open();
com.ExecuteNonQuery();
con.Close();
LoadData();
}
Полезный говнокод
+157
// редиректим адреса без слеша на такие же со слешем
$uri = $_SERVER['REQUEST_URI'];
$is_file = false;
if ( (substr_count($uri,".php")>0) or (substr_count($uri,".html")>0) ) {
$is_file = true;
}
if ($is_file == false) {
$len_uri = strlen($uri);
// находим последнее вхождение слеша
$reverst_str = strrev($uri);
//die($reverst_str);
$last_slash = strpos($reverst_str,"/");
//die($last_slash);
if ($last_slash!==0) {
$uri .="/";
$status = "301 Found";
//header("Status: ".$status);
header('HTTP/1.1 301 Moved Permanently');
header("Location: http://www.thermostudio.ru"."$uri");
exit();
}
}
встретилось в проекте одном жаль автор не подписался, увековечить бы...
+115
procedure info_();
var
i:integer;
ActivityCategory,stroka,strok,stroka_sopr,http1100,http_sopr,tag,tag_sopr,until_date,date_:string;
f1100,f_sopr,inf:textfile;
begin //главный
clear();
if form1.radioGroup1.ItemIndex=0 then begin
http1100:='\\server1\Отдел 1\Program Files\Prof\profiki\1100\'+m+'.smc';
http_sopr:='\\server1\Отдел 1\Program Files\prof\profiki\сопроводительное\'+m+'.smc';
end;
if form1.radioGroup1.ItemIndex=1 then begin
http1100:='\\server1\Отдел 1\Program Files\Prof\banki\1100\'+m+'.smc';
http_sopr:='\\server1\Отдел 1\Program Files\prof\banki\сопроводительное\'+m+'.smc';
end;
if form1.radioGroup1.ItemIndex=2 then begin
http1100:='\\server1\Отдел 1\Program Files\Prof\YK\1100\'+m+'.smc';
http_sopr:='\\server1\Отдел 1\Program Files\prof\YK\сопроводительное\'+m+'.smc';
end;
if form1.radioGroup1.ItemIndex=3 then begin
http1100:='\\server1\Отдел 1\Program Files\Prof\NPF\1100\'+m+'.smc';
http_sopr:='\\server1\Отдел 1\Program Files\prof\NPF\сопроводительное\'+m+'.smc';
end;
if form1.radioGroup1.ItemIndex=4 then begin
http1100:='\\server1\Отдел 1\Program Files\Prof\REGISTRATOR\1100\'+m+'.smc';
http_sopr:='\\server1\Отдел 1\Program Files\prof\REGISTRATOR\сопроводительное\'+m+'.smc';
end;
Пытался перенести в другую папку программу, после чего она по сути перестала работать, ругаясь ошибкой 63. Нашел ее исходники и увидел ЭТО... это лишь 5-10% всей процедуры, которая мало того, что ищет XML-файлы по определенному пути, так еще и парсит их...
+74
private static java.util.Hashtable<String, Session> sessions =
new java.util.Hashtable<String, Session>();
...
public static SessionOperations[] getSessions() {
int cnt = sessions.size();
SessionOperations[] res = new SessionOperations[cnt];
java.util.Enumeration<String> e = sessions.keys();
for( int i = 0; i < res.length; i++ ) {
String sid = e.nextElement();
res[i] = sessions.get( sid ).getOperations( sid );
}
return res;
}
Удаление из sessions между получением размера и набора ключей приводит к весьма печальным последствиям...
P.S. В результате в течение трех суток в production не удалялись оставленные сессии (без Logout), sessions отожрал 600М и всё свалилось с OOM.
+155
#include <a_samp>
new objects[MAX_OBJECTS];
public OnFilterScriptInit()
{
objects[0] = CreateObject(980, -2491.1276855469, -129.08126831055, 27.397054672241, 0, 0, 90.675659179688);
objects[1] = CreateObject(980,-2459.8862304688,-152.13926696777,27.652730941772,0,356,0);
objects[2] = CreateObject(980,-2446.0773925781,-82.466796875,35.984577178955,0,356,0);
return 1;
}
public OnPlayerCommandText(playerid, cmdtext[])
{
if (strcmp("/garage", cmdtext, true, 10) == 0)
{
MoveObject(objects[0], -2491.1276855469, -129.08126831055, 20, 2);
SetTimer("VTimer", 10000, 0);
return 1;
}
return 0;
}
forward VTimer();
public VTimer()
{
MoveObject(objects[0], -2491.1276855469, -129.08126831055, 27.397054672241, 2);
return 1;
}