- 1
- 2
- 3
- 4
- 5
elseif (array_key_exists(pathinfo($_SERVER['HTTP_HOST'], PATHINFO_EXTENSION), $lang_array)) {
$language = pathinfo($_SERVER['HTTP_HOST'], PATHINFO_EXTENSION);
}
else
$language = 'en';
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+151
elseif (array_key_exists(pathinfo($_SERVER['HTTP_HOST'], PATHINFO_EXTENSION), $lang_array)) {
$language = pathinfo($_SERVER['HTTP_HOST'], PATHINFO_EXTENSION);
}
else
$language = 'en';
Из того же проекта, где зародился шаблонизатор.
Минималистичный файл-хостинг, который все решает за хозяина.
Конфиг - только папка хранения файлов и макс. объем.
А язык он определяет сам. По доменному имени. Каждый раз при обращении к странице.
+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.
−111
NetworkStatus internet = [internetReachable currentReachabilityStatus];
switch (internet)
{
case NotReachable: { internetStatus = NO; break; }
case ReachableViaWiFi: { internetStatus = YES; break; }
case ReachableViaWWAN: { internetStatus = YES; break; }
default: break;
}
NetworkStatus host = [hostReachable currentReachabilityStatus];
switch (host)
{
case NotReachable: { hostStatus = NO; break; }
case ReachableViaWiFi: { hostStatus = YES; break; }
case ReachableViaWWAN: { hostStatus = YES; break; }
default: break;
}
//-------------------------------------------------------------
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation {
return false;
}
//-------------------------------------------------------------
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation
{
if (logicRotate == 1)
{
if (toInterfaceOrientation == UIInterfaceOrientationLandscapeRight) // если ЛандскейпРайт
{
FlowCover.transform = CGAffineTransformIdentity;
indexLandscape = 1;
}
if (toInterfaceOrientation == UIInterfaceOrientationLandscapeLeft) // если ЛандскейпЛефт
{
FlowCover.transform = CGAffineTransformMakeRotation(M_PI);
indexLandscape = 0;
}
}
else
{
if (indexLandscape == 1)
{
FlowCover.transform = CGAffineTransformIdentity;
}
else
{
FlowCover.transform = CGAffineTransformMakeRotation(M_PI);
}
logicRotate = 1;
}
return false;
}
//-------------------------------------------------------------
pagetextLabel.hidden = (pageFullScreen.realPageNo) ? NO : YES;
//-------------------------------------------------------------
[(FastImageView*)page showImage:[listOfImages objectAtIndex:pageIndex]]; //картинка
//-------------------------------------------------------------
if (firstPages>2) {
...
if (theAudio) {
[theAudio play]; //звук
}
firstPages++;
}
else
{
firstPages++;
}
//-------------------------------------------------------------
LabPercent.text = [NSString stringWithFormat:@"%d%@", percent * 100, @"%"];
//-------------------------------------------------------------
if ([DELEGATE isIPad]) {
mTempSize = [tempstr sizeWithFont:[UIFont fontWithName:@"Helvetica" size:17.0f] constrainedToSize:maxSize lineBreakMode:UILineBreakModeTailTruncation];
}
else {
mTempSize = [tempstr sizeWithFont:[UIFont fontWithName:@"Helvetica" size:12.0f] constrainedToSize:maxSize lineBreakMode:UILineBreakModeTailTruncation];
}
h = mTempSize.height;
if ([DELEGATE isIPad]) {
lab.font = [UIFont fontWithName:@"Helvetica" size:17.0f];
}
else {
lab.font = [UIFont fontWithName:@"Helvetica" size:12.0f];
}
От того же автора http://govnokod.ru/6964. Тут избранные куски, хотя можно постить весь проект
−106
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation
{
if (rotateBag > 6) //после возврата, шудавторотейт вызывается 7 раз, это условие для погашения этих вызовов
{
if ([portret isEqualToString:@"horizontal"])
{
if (firstLaunch == 0) // блок для первого запуска (по умолчанию всегда выставляет ландскейпРайт, а это не всегда правильно)
{
if (interfacePosition == 0)
{ self.view.transform = CGAffineTransformMakeRotation(M_PI); }
else
{ self.view.transform = CGAffineTransformIdentity; }
firstLaunch++;
indexLandscape = interfacePosition;
}
else
{
if (indexLandscape == 1) //если изначальный вариант был правосторонний
{
if (toInterfaceOrientation == UIInterfaceOrientationLandscapeRight) // если ЛандскейпРайт
{ self.view.transform = CGAffineTransformIdentity;
interfacePosition = 1; }
if (toInterfaceOrientation == UIInterfaceOrientationLandscapeLeft) // если ЛандскейпЛефт
{ self.view.transform = CGAffineTransformMakeRotation(M_PI);
interfacePosition = 0; }
}
else //если изначальный вариант был левосторонний
{
if (toInterfaceOrientation == UIInterfaceOrientationLandscapeRight) // если ЛандскейпРайт
{ self.view.transform = CGAffineTransformMakeRotation(M_PI);
interfacePosition = 1; }
if (toInterfaceOrientation == UIInterfaceOrientationLandscapeLeft) // если ЛандскейпЛефт
{ self.view.transform = CGAffineTransformIdentity;
interfacePosition = 0; }
}
}
}
else
{
if (firstLaunch == 0) // блок для первого запуска (по умолчанию показывается правильно, поэтому ничего делать не надо)
{ firstLaunch++; }
else
{
if (toInterfaceOrientation == UIInterfaceOrientationPortrait)
{ self.view.transform = CGAffineTransformIdentity; }
if (toInterfaceOrientation == UIInterfaceOrientationPortraitUpsideDown)
{ self.view.transform = CGAffineTransformMakeRotation(M_PI); }
}
}
}
else {
rotateBag++;
}
return false;
}
Крутящаяся сумка в действии...
Поворот дисплея в 50 строк :\
−121
declare
v_curs sys_refcursor;
v_on number;
begin
open v_curs for 'select rout_num from rout_orders_promotion';
fetch v_curs into v_on;
loop
exit when v_curs%notfound;
if v_curs%rowcount = 1 then
null;
end if;
fetch v_curs into v_on;
end loop;
close v_curs;
end;
Если запись одна, тогда уж точно нечего в цикле делать.
+158
if (isSet($_POST["AdminLoginPOST"]) and isSet($_POST["AdminPasswordPOST"])){
$sql="SELECT * FROM settings WHERE AdminLogin like binary '".str_replace("'","",$_POST["AdminLoginPOST"])."' and AdminPassword='".str_replace("'","",$_POST["AdminPasswordPOST"])."'";
$db->query($sql);
if ($db->next_record()) {
if(isset($_POST["AdminCurrentSession"])) $_SESSION=unserialize($_POST["AdminCurrentSession"]);
$AdminLogin=$_POST["AdminLoginPOST"];
$_SESSION['AdminLogin']=$db->Record["AdminLogin"];
$ADMIN_ID=$db->Record["id"];
$ADMIN_EMAIL=$db->Record["AdminEmail"];
$ACCESS=$db->Record["access"];
if($ACCESS<0 && !isset($MAINFRAME)) $ACCESS=0;
$LENGUAGE=$db->Record["lenguage"];
$NOHELP=$db->Record["nohelp"];
$ADMINOPNWIN=$db->Record["AdminOpnWin"];
$COUNT_ROWS=$db->Record["NumRows"];
$STRIPTAGS=$db->Record["striptags"];
$SPELL=$db->Record["spell"];
$sp=explode(",", $db->Record["access_details"]);
$ACCESS_DETAILS=array();
for ($i=0;$i<count($sp);$i++) $ACCESS_DETAILS[$sp[$i]]="y";
}
}
+147
$APPLICATION->SetTitle('Хуй на рыло, чтоб душа не ныла');
код скриптов админ-панели, взято с продакшена
+111
function str_transfer(str: string; c: Integer): String;
var
i:Integer;
begin
i:= c;
while PosEx(' ',str,i) > 0 do
begin
if PosEx(' ',str,i) > 0 then
begin
i:= PosEx(' ',str,i);
Insert(#10#13,str,i+1);
i:= i+c;
end;
end;
Result:= str;
end;
"решил написать вот такую функцию, которая вставляет в строку переносы после определенного кол. символов, перенос строки вставляется между словами. Может кому пригодится...."
+76
private void listGSNames()
{
int idMaxLen = 0;
int nameMaxLen = 0;
for (Entry<Integer, String> e : GameServerTable.getInstance().getServerNames().entrySet())
{
if (e.getKey().toString().length() > idMaxLen)
{
idMaxLen = e.getKey().toString().length();
}
if (e.getValue().length() > nameMaxLen)
{
nameMaxLen = e.getValue().length();
}
}
/* Some Code */
}
Отрезок из регистратора игрового сервера Lineage от команды L2jServer.
e.getKey().toString().length() - Приведение к строке, потом определение строки. Выглядит зрелищно! =)
+77
ArrayList<BaseEventData> tempList = new ArrayList<BaseEventData>();
int to = baseList.size()-1;
while((to > 0) && (baseList.get(to).getTime() > timeTo))
to--;
int from = to;
while((from > 0) && (baseList.get(from).getTime() >= timeFrom)){
tempList.add(baseList.get(from));
from--;
}
mEvents = tempList.toArray(new BaseEventData[]{});
Часть метода. Метод предназначен для чтения ленты событий. Среди полученной ленты выбираются те, время возникновения которых попадает в заданный период. События изначально отсортированы по этому времени, от первого к последнему. то-есть последний элемент - последнее событие.