Комментарии 259
И вас тоже с праздником!
habrahabr.ru/post/151267/
habrahabr.ru/post/151267/
+3
Интересно, какой максимальной длины слово в заголовке на Хабре не будет принудительно резаться?
+4
В такую рань, и уже за компом. Даже в день программиста! Только хардкор!
+3
зачем time()? Оно там по дефолту
+3
Остаётся только руками развести и глаза выпучить. Позор мне. Действительно:
Как же я упустил-то, @#$%?!
<?=(date('z')==255?'С днём программиста':'')?>
Как же я упустил-то, @#$%?!
0
Скобочки тоже не нужны.
+2
Отлично. У нас новый лидер!
0
Итак:
<?=date('z')==255?'Сегодня день программиста':''?>
0
$_a = array( str_rot13('qngr'), chr(121), 2<<2 );
echo !($_a[0](++$_a[1])>>$_a[2]) ? 'Сегодня день программиста' : '';
0
Между тем, можно ещё на один символ короче сделать.
0
Так?
<?=date('z')-255?'':'Сегодня день программиста'?>
+1
11010000 10100001 00100000 11010000 10110100 11010000 10111101 11010000 10110101 11010000 10111100 00100000 11010000 10111111 11010001 10000000 11010000 10111110 11010000 10110011 11010001 10000000 11010000 10110000 11010000 10111100 11010000 10111100 11010000 10111000 11010001 10000001 11010001 10000010 11010000 10110000 00101100 00100000 11010000 10110100 11010001 10000000 11010001 10000011 11010000 10110111 11010001 10001100 11010001 10001111 00100001
+5
Почему заголовок надо оформлять именно PHP-кодом?
+8
+2
Спасибо за сервис. То, что я раз в 2-3 месяца ищу и, до сих пор, найти не мог
-1
Вот ещё: codepad.org/
+2
+1
Я в консольке пишу php -r «echo date('z')-255?0:'С днём программиста';».
Обычно больше одной строчки и не требуется, чтобы быстро что-нить проверить.
Обычно больше одной строчки и не требуется, чтобы быстро что-нить проверить.
+1
// быстрая инверсия регистра
$a = 'aBc';
$a = strtolower($a) ^ strtoupper($a) ^ $a;
echo $a; // AbC
+6
Ещё интересно, зачем люди добавляют эту статью в «Избранное» )
+7
С праздником, коллеги!
+2
Привет от j2ee
<%if(new GregorianCalendar().get(6)==256){%>С днём программиста!<%}%>
+1
Calendar.getInstance()
тогда уж, грамотей :-)+1
Строго говоря, нет.
Если мы хотим, чтобы праздник был везде в один и тот же день, нужно пользоваться одним и тем же календарем.
Нет гарантии что Calendar.getInstance() вернет календарь, в котором год начинается 1 января.
Например, в проекте ICU ( site.icu-project.org/ ) реализовано по крайней мере 3 календаря, в которых летоисчисление привязано к луне или солнцу
Если мы хотим, чтобы праздник был везде в один и тот же день, нужно пользоваться одним и тем же календарем.
Нет гарантии что Calendar.getInstance() вернет календарь, в котором год начинается 1 января.
Например, в проекте ICU ( site.icu-project.org/ ) реализовано по крайней мере 3 календаря, в которых летоисчисление привязано к луне или солнцу
+1
И вообще, <%=Calendar.getInstance(Calendar.DAY_OF_YEAR)==256?«С днём программиста!»:""%>
+1
Итак!
Этот код:
Можно сделать ещё на один символ короче. Разыскивается мастер Кунг-Фу.
Этот код:
<?=date('z')-255?'':'Сегодня день программиста'?>
Можно сделать ещё на один символ короче. Разыскивается мастер Кунг-Фу.
+1
Если я помню PHP (а я надеюсь, что я его помню, закрывать тег необязательно:
<?=date('z')-255?'':'Сегодня день программиста'
Если не прав — поправьте.
<?=date('z')-255?'':'Сегодня день программиста'
Если не прав — поправьте.
0
даже на несколько ;)
<?=date('z')-255?'':'Сгдн днь пргрммста'?>
+9
Так сойдёт? Минус 2 символа.
0
<?=date(z)-255?'':'Сегодня день программиста'?>
говнокодистый вариант, однако, короче на пару символов
0
вот например, минус символ =)
<?=date('z')-255?0:'Сегодня день программиста'?>
+2
Ну же!
0
100 wmr вышлю, если ещё на один символ короче сделаем (это возможно)
0
<?=date('z')-255?0:'Сегодня день программиста'?>
+1
МОЖНО ЕЩЁ КОРОЧЕ!!! О.О
-3
этот вариант не катит, т.к. в остальные дни выводится нуль, а не пустая строка
0
пренебрежимо
0
<?=date('z')-255?'':'Сегодня день программиста';
0
Победитель!
Координаты WMR в ЛС, плиз.
Координаты WMR в ЛС, плиз.
0
А Яндекс деньги не пойдут? Номер долго искать
0
пф… мне на WMR безразлично… но мне кажется, что поведение не полностью соответствует исходному коду.
0
какой-то странный победитель
можно еще короче:
пустые кавычки не нужны, минус 2 символа
можно еще короче:
<?=date('z')-255?:'Сегодня день программиста';
пустые кавычки не нужны, минус 2 символа
+1
Неполное соответствие, нельзя вставить в шаблон.
0
w:$zd($h,14)=256 «С днем программиста!»
0
use the shell, Luke
date +%j
date +%j
0
Победитель ! Заливайте ему карму, а я пока подожду координаты WMR в ЛС
0
А вообще есть мысль, что в будущей версии PHP можно будет только одним "?" обходиться. Без ":". Если вы понимаете — о чем я ))
0
НЛО прилетело и опубликовало эту надпись здесь
Все победители отменяются (или я что-то пропустил).
Есть вариант короче.
Есть вариант короче.
0
В общем, правда, итоги будем подводить в 00:00 по Москве.
0
<?=date(z)-255?:'С днём программиста';
короче вряд-ли выйдет
+1
Так-то да. Но, а вдруг!
0
Дык 1 выводится, если не день программиста.
0
убираем скобки, знак пробела заменяем на символ U+2002
<?=date(z)-255?:С днём программиста;
+1
U+2002 занимает 2 байта.
0
Для чистоты:
<?=date(@z)-255?'':@С днём программиста;
0
для чистоты устанавливаем
в php.ini
display_errors = Off
в php.ini
0
так можно и расширение для php написать. А в php его вызвать…
0
А что, по условию задачи нельзя менять дефолтные значения в php.ini? Если да, тогда код
тоже будет генерировать ошибку, так как по-умолчанию
<?=date('z');
тоже будет генерировать ошибку, так как по-умолчанию
data.timezone
в phi.ini не задан и Every call to a date/time function will generate a E_NOTICE if the time zone is not valid, and/or a E_STRICT or E_WARNING message if using the system settings or the TZ environment variable.
0
расширение для php написать
И получим то, чего не хочется: +150—200 строк кода на Си.
И получим то, чего не хочется: +150—200 строк кода на Си.
0
Ну привет вам от перлячников чтоль :)
perl -le'print+(gmtime)[7]-255?"":"Happy programmers day"'
+2
Однажды меня окунули в perl. Лет пять уж прошло, а до сих пор трясёт. Как вы вообще живёте там? Вы ещё круче шахтёров.
+1
perl -E'say+(gmtime)[7]>>8?"":"Happy programmers day"'
Вот так даже покороче чуток будет.
+1
О, вот еще немного покороче, перлвей в общем
perl -E'say+(gmtime)[7]>>8?0:"С днем программиста"'
+1
«Лё принт». А мне начинает нравиться этот язык )
+2
Запрещённый приём?
<?=date(z)-255?0:'С днём!';
Или
<?=date(z)-255?0:'СДП';
<?=date(z)-255?0:'С днём!';
Или
<?=date(z)-255?0:'СДП';
0
С Праздником, товарищи!!! Да пребудет с вами Сила!
0
С праздником
0
И без отговорок!
0
Не понимаю, ято за гонка минимализма. Вот вам портянка T-SQL:
SELECT CASE DATEPART(DY, GETDATE())
WHEN 256 THEN 'С днем программиста!'
ELSE 'Пиши, блядь, код.' END
+1
эквивалент этого,
но выглядит более гиковски)
<?=date(z)-255?'':'Сегодня день программиста';
но выглядит более гиковски)
<?=date(z)^255?'':'Сегодня день программиста';
0
select date_part('doy',now());
0
С праздником коллеги! У меня правда он двойной, так как еще и мой день варенья, не так давно узнал об этом :)
+4
Ох, пхп видел последний раз года 2 назад, ну что-то типа того:
<?=date(z)^255||'Сегодня день программиста';
0
<?if(date(z)^255)?>С днём программиста
0
Не пытайтесь повторить это дома:
<?=@${0*${@date(z)^255}='Сегодня день программиста'};
0
<?assert('data(z)-255', 'С днём программиста')&&0;
0
<?=@date(z)-255?:'С днём программиста';
0
select case when to_char(sysdate, 'DDD')='256' then 'С днем программиста!' else 'Работать, негры!' end from dual;
0
Да можно, можно на символ короче. В болгарском варианте — програмист.
0
preg_match("/<title>(.+)<\/title>/i",file_get_contents("http://habrahabr.ru/post/151305/"),$title);echo $title[1];
+1
Думаю, сделали уже короче некуда. Торгану-ка брейнфаком:
++++++++++[->+++>++++++++++<<]>> [->++>>++>++>+>++>>++>++>++>++>++>++>++>++>++>++>++[<]<[<]<[<]>>]< +++++++++ <<[->>>+>+>+>+++>+>+>+>+>+>+>+>+>+>+>+>+>+>+[<]<]>>>++> -->+++++++>------>++++++>++>+++++++++>++++++++++>++++++++>--->++++++++++>------>++++++> ++>+++++++++++>++++++++++++>------>+++[<]>[.>]
0
Снял шляпу.
Понятия не имею — что вы тут понаплюсовали.
Понятия не имею — что вы тут понаплюсовали.
0
Ну, брейфак же: ru.wikipedia.org/wiki/Brainfuck :-D
0
А так?
<? if(date(z)-255)?>С днем программиста
-1
<?=date(z)-255?0:'Бухаем!';
:D
:D
+1
<script>alert('С Днем Программиста!')</script>
вот.
вот.
+1
<?date(z)^255&&die?>С днём программист
длина таже что и у
<?=date(z)-255?0:'С днём программиста';
но не выводится ноль в другие дни
+2
бля, текст обрезал, но по длине они одинаковы с буквой `а` в конце в моем примере
0
Как бы по-хорошему основной вариант из шапки поста
Всё-таки речь о дне программиста а не о дне говнокодера, так что его полная версия всё-же такая:
Если пофиг на числа и нотисы, то самый короткий вариант такой:
<?=date(z)-255?0:'С днём программиста';
хромает на обе ноги — выводит ноль в другие дни и кидает нотис на z без кавычек. Всё-таки речь о дне программиста а не о дне говнокодера, так что его полная версия всё-же такая:
<?=@date(z)-255?'':'С днём программиста';
И Ваша версия<?date(z)^255&&die?>С днём программиста
получается короче на 2 символа. Но она в таком виде тоже кидает нотис, поэтому:<?@date(z)^254&&die?>С днём программиста
Итого заслуженная победа с выигрышем в 1 символ.Если пофиг на числа и нотисы, то самый короткий вариант такой:
<?=date(z)-255?:'С днём программиста';
или такой<?=date(z)^255?:'С днём программиста';
0
Спасибо за оценку
0
Код с подавлением ошибок ещё больший говнокод, чем код, генерирующий эти самые ошибки.
Потому как неподавленные ошибки можно не показывать, но логировать. В случае же использования @ вы рискуете провести много весёлых часов/дней/недель, вылавливая баги «неговнокода».
Так что, либо оптимизировать по полной без @, либо писать правильно:
Потому как неподавленные ошибки можно не показывать, но логировать. В случае же использования @ вы рискуете провести много весёлых часов/дней/недель, вылавливая баги «неговнокода».
Так что, либо оптимизировать по полной без @, либо писать правильно:
<?=date('z')-255?'':'С днём программиста';
0
> Код с подавлением ошибок ещё больший говнокод, чем код, генерирующий эти самые ошибки.
Не соглашусь. Случай из жизни:
Был себе сервер с аптаймом больше года. И тут один програмист пропустил ошибку и зарелизил код на сервер с высоким посещением.
Результат: через 20!!! минут сервер перестал отвечать. Как выяснилось тот самый лог был переполнен и вызвал ошибку файловой системы.
Вот так вот.
Не соглашусь. Случай из жизни:
Был себе сервер с аптаймом больше года. И тут один програмист пропустил ошибку и зарелизил код на сервер с высоким посещением.
Результат: через 20!!! минут сервер перестал отвечать. Как выяснилось тот самый лог был переполнен и вызвал ошибку файловой системы.
Вот так вот.
+1
Это тоже самое, что сказать на следующее утро после серьёзной попойки, что конфета была лишней, потому что от неё сегодня болит голова.
Может всё-таки следовало настроить сервер?
Может всё-таки следовало настроить сервер?
0
Может сервер всетаки был настроет, раз у него аптайм был больше года?
Тут сработал человеческий фактор
Тут сработал человеческий фактор
0
То есть вы хотите сказать, что этой проблемы бы не было, если бы логирование в пхп было отключено или все ошибки подавлялись бы @? Как я понимаю, вы логи вебсервера тоже отключаете, они ведь тоже могут вызвать ошибку файловой системы? Ваша приложение тоже ничего не логирует?
0
Лог сервера в продакшине нужен для выявнения причин форсмажоров которые не были учтены в разработке. Никто не отключал логи.
Ошибка была не значительная, но очень частая.
Все что я в этой ветке хотел сказать: код должен быть протестирован и без ошибок а не екранирован собакой или выключены в настройках, иначе это все говнокод и не важно спрятаны ошибки или нет
Ошибка была не значительная, но очень частая.
Все что я в этой ветке хотел сказать: код должен быть протестирован и без ошибок а не екранирован собакой или выключены в настройках, иначе это все говнокод и не важно спрятаны ошибки или нет
0
Ошибки, подавленые собакой, в любом случае попадают в установленый обработчик и Вы можете их логировать.
0
Да, я в курсе. Но error_handler с таким же успехом может обрабатывать и ошибки без подавления. А писать обработчик только для того, чтобы обрабатывать подавление @ выглядит извратом.
0
Например, мне нужно удалить файл, если он есть. Можно сделать так:
А можно так:
Как Вы считаете, какой подход лучше и почему?
if (is_file($file)) unlink($file);
А можно так:
@unlink($file);
Как Вы считаете, какой подход лучше и почему?
0
Поймите меня правильно, я за то, чтобы использовать @ с умом и крайне осторожно. В 99.9% случаев можно обойтись без подавления. И date(z) как раз тот случай. В то время как подавление ошибки может скрыть куда более серьёзные проблемы. Например, подавление вызова функции, которая поставляется с каким-нибудь расширением. Подавив эту ошибку, может быть очень трудно выявить, что причина некорректной работы приложения в недоустановленном расширении. Не говоря уже о том, что операция подавления не из дешевых.
Касаемо вашего примера:
Зависит от того, чем является удаляемый файл для приложения и как ошибка при удалении повлияет на дальнейшую его работу. В одном случае хватит и @, потому что, по-большому счёту, приложению не важно, удалится этот временный файл или нет, и смысла логировать эту ошибку нет. В другом случае ошибка удаления может быть критической и нарушить дальнейшую логику работы, тогда я бы написал что-то типа:
Но и тут я использовал @ потому, что сообщаю приложению об ошибке посредством исключения и дублировать эту ошибку нет смысла.
Но, всё-таки, сравнение тут unlink($file) и date(z) не совсем корректно — это разного рода ошибки.
По-сути, работа с файлами/ресурсами — это, навероное, единственный пример, где использование @ ещё как-то оправдано, и мне трудно придумать кейс, где бы это было ещё уместно.
Касаемо вашего примера:
Зависит от того, чем является удаляемый файл для приложения и как ошибка при удалении повлияет на дальнейшую его работу. В одном случае хватит и @, потому что, по-большому счёту, приложению не важно, удалится этот временный файл или нет, и смысла логировать эту ошибку нет. В другом случае ошибка удаления может быть критической и нарушить дальнейшую логику работы, тогда я бы написал что-то типа:
if (true !== @unlink($file)) {
throw new \RuntimeException(sprintf('Failed to remove file %s.', $file));
}
Но и тут я использовал @ потому, что сообщаю приложению об ошибке посредством исключения и дублировать эту ошибку нет смысла.
Но, всё-таки, сравнение тут unlink($file) и date(z) не совсем корректно — это разного рода ошибки.
По-сути, работа с файлами/ресурсами — это, навероное, единственный пример, где использование @ ещё как-то оправдано, и мне трудно придумать кейс, где бы это было ещё уместно.
0
Эххх…
и просто улыбнуться:
<?=date(z)^255?:С_Днём_Программиста;
<?=date(z)^255?_:С_Днём_Программиста;
и просто улыбнуться:
<?=~date(z)^~0<<8?:С_Днём_Программиста;
+1
Открыл статью, сразу не понял, что происходит, но со стороны похоже на холивар или пиписькомер…
-1
d=new Date,Math.ceil((d-new Date(d.getFullYear(),0,1))/86400000)==256&&'С днём программиста'
-1
Предлагаю так:
На один символ длиннее получается
<?=~date(z)<<24?0:'С днём программиста';
На один символ длиннее получается
+1
C# по лаконичности пролетает:
using System;class P{static void Main(){if(DateTime.Now.DayOfYear == 256)Console.Write(«С днём программиста!»);}}
using System;class P{static void Main(){if(DateTime.Now.DayOfYear == 256)Console.Write(«С днём программиста!»);}}
+1
Забыли про оператор %.
<?=@date(z)%255?0:'С днём программиста';
+1
НЛО прилетело и опубликовало эту надпись здесь
Несколько извратных вариантов вне конкурса
<?=substr('С днём программиста',99*abs(date(z)-255));
<?=strtok('С днём программиста',date(z)-255?'':'С');
<?=strstr('С днём программиста',date(z)-255?0:'С');
0
Хабрачеловеки! Чем кончилось-то?
0
<?date(z)-256&&exit?>Сегодня день программиста
0
на символ меньше чем у победителя ;)
<?date(z)-256||die?>
<?date(z)-256||die?>
0
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
<?=date(z)-255?:'С днём программиста';