Pull to refresh
0
0
Maxim Gabidullin @after

Программист

Send message

Иерархия исключений в современном PHP-приложении

Reading time4 min
Views11K

Задача публикации: доступно изложить способ организации иерархии исключений и их обработки в приложении. Без привязки к фреймворкам и конкретной архитектуре. Описываемый способ является де-факто стандартом в сообществе: он используется во многих серьёзных библиотеках и фреймворках. В том числе Zend, Symfony. Не смотря на его логичность и универсальность, формального описания предлагаемого подхода на русском языке я не нашёл. После неоднократного устного изложения концепции коллегам, родилась мысль оформить её в виде публикации на Хабрахабр.


В языке PHP, начиная с 5-ой версии, доступен механизм исключений. В актуальной, 7-ой, версии этот механизм был улучшен и переработан с целью единнобразной обработки разных ошибок при помощи конструкции try{} catch...


В стандартной библиотеке (SPL) PHP предоставляет готовый набор базовых классов и интерфейсов для исключений. В 7-ой версии этот набор был расширен интерфейсом Throwable. Вот диаграмма всех имеющихся в версии 7 типов (изображение — ссылка):


Диаграмма типов исключения в PHP7

Читать дальше →
Total votes 8: ↑6 and ↓2+4
Comments25

Производительность WebGL-приложений

Reading time13 min
Views14K


Кирилл Дмитренко (Яндекс)


Всем привет! Меня зовут Кирилл Дмитренко, последние 4,5 года я работаю в Яндексе фронтенд-разработчиком. И все это время меня преследуют панорамы. Когда я пришел в компанию, я делал внутренние сервисы для панорам, после этого я решал задачи по панорамам на больших Яндекс.картах, а недавно сделал веб-плеер панорам на Canvas 2D, HTML и WebGL. Сегодня я хочу поговорить с вами о производительности WebGL-приложений.
Читать дальше →
Total votes 35: ↑32 and ↓3+29
Comments3

Запущено голосование за доклады YiiConf

Reading time2 min
Views3.4K

Добрый день, коллеги! На YiiConf пришло много заявок — 12 докладов и 2 мастер-класса. Впервые на одной конференции будут выступать сразу четыре разработчика из Yii core team.


Читать дальше →
Total votes 35: ↑33 and ↓2+31
Comments9

Ransomware day: массовое заражение Wana Decrypt0r

Reading time1 min
Views48K

 
Более 60.000 компьютеров подверглись атаке и заражению вирусом-вымогателем Wana Decrypt0r. Авторы Wana Decrypt0r используют эксплоит ETERNALBLUE, созданный специалистами АНБ для уязвимости в SMBv1 (MS17-010) для доставки вредоносного кода на Windows системы. Вирус зашифровывает все файлы на компьютере и требует выкуп — 300 долларов США в биткоинах. На выплату дается три дня, потом сумма увеличивается вдвое.

Читать дальше →
Total votes 58: ↑48 and ↓10+38
Comments48

Обзор исходного кода Quake 2

Reading time51 min
Views60K
image

Около месяца свободного времени я уделил чтению исходного кода Quake II. Это был удивительный и поучительный опыт, потому что в движок idTech3 внесено большое изменение: Quake 1, Quake World и QuakeGL объединены в одну красивую архитектуру кода. Особенно был интересен способ, которым достигли модульности, несмотря на то, что язык программирования C не обеспечивает полиморфизма.

Quake II во многих отношениях является блестящим образцом программного обеспечения, потому что это был самый популярный (по количеству лицензий) трёхмерный движок всех времён. На его основе было создано более 30 игр. Кроме того, он ознаменовал переход игровой индустрии от программной/8-битной системы цветов к аппаратной/24-битной. Этот переход произошёл примерно в 1997 году.

Поэтому я крайне рекомендую всем, кто любит программирование, изучить этот движок. Как обычно, я вёл бесконечное количество заметок, затем подчистил их и опубликовал как статью, чтобы сэкономить вам несколько часов.

Процесс «подчистки» меня сильно увлёк: в статье теперь более 40 мегабайт видео, скриншотов и иллюстраций. Сейчас я не знаю, стоили ли мои труды того, и нужно ли публиковать в будущем необработанные заметки в ASCII, выскажите своё мнение.
Total votes 111: ↑110 and ↓1+109
Comments63

Как мы делали краткосрочный прогноз осадков. Лекция в Яндексе

Reading time7 min
Views15K
В начале зимы Яндекс.Погода научилась показывать, будут ли осадки в ближайшие два часа. Спустя пару месяцев тема метеопрогнозирования стала центральной на одном из мероприятий Data & Science. Среди докладчиков в тот день был Алексей Преображенский — разработчик из команды Яндекс.Погоды. Алексей рассказал о нашем алгоритме наукастинга и сверточной нейросети, лежащей в основе этого алгоритма.


Под катом — расшифровка лекции и слайды.

Total votes 47: ↑45 and ↓2+43
Comments12

Ко дню связи: история IP-телефонии

Reading time13 min
Views20K
7 мая — день радио и связи, который отмечают тысячи связистов и причастных по всей России и б. СССР. В этот день звучат странные для постороннего уха тосты: «за связь без брака», «за  коннект без единого разрыва», «за чистоту контактов и чистоту частот», а люди пьют до состояния полупроводника. Мы поздравляем всех связистов и связанных, а заодно предлагаем воскресным вечером почитать наш лонгрид об истории «новой связи», IP-телефонии.

Вообще, первая передача голоса по интернет-протоколу (voice over IP, VoIP) состоялась в 1973 году, в ходе тестирования экспериментального протокола  Network Voice, созданного для ARPANET. Но до 1995 года каких-либо крупных шагов предпринято не было… Ну это по официальной версии и огромной базе источников, которые предлагают нам интернет и библиотеки. Однако без нескольких историй не было бы основной истории.


С Днём Радио и Связи! Интересно, уже выросли те, кто не знает, как набрать номер на этом диске?
Читать дальше →
Total votes 40: ↑39 and ↓1+38
Comments21

Яндекс.Почта. Предотвращение хакострофы

Reading time9 min
Views49K
В ноябре прошлого года компания «Яндекс» провела конкурс на тему поиска уязвимостей в своем сервисе. Мне посчастливилось найти там пару дырочек и получить за это второе место. Так как за эти полгода я так и не опубликовал деталей (кроме как на встрече Defcon-Russia, но это было в устной форме для узкого круга посетителей), я решил восполнить этот пробел сейчас. Так что тут будет рассказ об одной из дырок, которая была обнаружена в рамках конкурса и оперативно закрыта компанией «Яндекс». Считаю, что конкурс полностью оправдал себя и позволил предотвратить страшные последствия, так что идея явно удачна, одни плюсы. Собственно рассказ будет о банальном отсутствии проверки авторизации в одном из скриптов, что могло привести к частичной компрометации более миллиарда писем лишь на одной ноде…
Сломай меня полностью...
Total votes 218: ↑209 and ↓9+200
Comments21

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity