Search
Write a publication
Pull to refresh
337
0
Роман Пронский @pronskiy

PHP

Send message

MITRE D3FEND: матрица противодействия

Reading time3 min
Views7.7K

MITRE ATT&CK — одна из популяр­ней­ших методо­логий сре­ди спе­циалис­тов по информа­цион­ной безопас­ности, теперь дополнена матрицей противодействия - D3FEND, что позволит адаптировать защиту от конкретных киберугроз.

В дополнение к модели ATT&CK, основанной на угрозах, D3FEND предоставляет модель способов противодействия распространенным наступательным приемам, перечисляя различные защитные меры и их влияние на укрепление защиты.

Читать далее

Дмитрий Стогов о своём пути и PHP

Reading time8 min
Views7.3K

Дмитрий Стогов из Zend by Perforce уже много лет занимается самым сердцем PHP и знает про него много полезного. В том числе о вопросах, связанных с производительностью.

В своем докладе на конференции PHP Russia 2021 Дмитрий расскажет, как продвигается работа над JIT и какие другие идеи, направленные на повышение производительности, были реализованы в PHP 8.0 и готовятся в PHP 8.1. А уже сегодня можно почитать интервью, в котором я задал эксперту PHP вопросы обо всем понемногу: от его истории до обсуждения современных реалий.

Читать далее

PHP — я бы купил это за доллар

Reading time5 min
Views23K

Объективно можно сказать, что в настоящий момент PHP не самый сексуальный и клевый язык программирования. Онлайн-школы не стремятся рекламировать курсы по PHP, мы не видим истории успеха, начинающие с фразы «Я взял в руки учебник по PHP», да и вообще идет мнение, что лучше совсем никак, чем быть PHP-программистом (а если слышим про битрикс, то сразу можно на костер). Тем не менее, я не согласен с этим, и расскажу, почему инвестиция времени в ПХП себя окупает.

Я бекенд-разработчик, в своё время работал на Python и Java, а сейчас работаю на PHP.

Читать далее

Залпы на орбите. Оборонительная установка Р-23М

Reading time6 min
Views15K
Так вышло, что развитию космонавтики мы обязаны военным программам США, СССР, Германии. Сперва это было просто желание закинуть бомбу подальше да потяжелее, а потом, со взрывным ростом космических технологий в конце 50-х – 60-х годах, появились идеи вывода на орбиту самых разных видов вооружения. В том числе это были боевые и разведывательные станции, спутники и ракетопланы. Холодная война подталкивала противоборствующие стороны ко всё более и более сложным системам, ведь выводимое тогда на орбиту оружие было неуязвимо для имевшихся зенитных и авиационных ракет. Но стоимость развёртывания образцов доходила до таких космических значений, что СССР и США решили от греха подальше подписать Договор о космосе, ибо бюджеты не потянули бы гонку.

И как заключительный акт этой истории, 24 января 1975 года советская станция Салют-3 затряслась от длинной очереди из своей оборонительной установки.

И всё-таки, зачем нужна была пушка на орбитальной станции, тем более стрельбы были аж через 8 лет после подписания Договора о космосе? Идея орбитальных пилотируемых станций (ОПС) родилась ещё в начале 60-х, когда разведывательные спутники у нас только начинали развитие и были далеки от совершенства. Пилотируемая станция могла снять гораздо больше, причём выборочно, не тратя драгоценную плёнку на пустые районы. Также предполагалось оснастить станцию уникальным фотоаппаратом с диаметром зеркала около 2 м. В это же время в США активно развивались ракетопланы (X-15, X-20), а неказистые с виду Джемини могли активно маневрировать.


Аэрокосмический пилотируемый ракетоплан Boeing X-20 DYNA-SOAR
Читать дальше →

PHP-Compiler, или ныряем в кроличью нору FFI

Reading time15 min
Views13K

Однажды Энтони Феррара (Anthony Ferrara) решил скомпилировать PHP в низкоуровневый код, но результат получился слабым. Главной проблемой, с которой он столкнулся, было отсутствие подходящего бэкенда. К лучшему все изменилось после того, как в дело вступил FFI.

Я советую прочитать статью «A PHP Compiler, aka The FFI Rabbit Hole», перевод который вы найдёте под катом.

Читать далее

Кража закрытых видео YouTube по одному кадру

Reading time5 min
Views36K

В декабре 2019 года, спустя несколько месяцев после того, как я занялся хакингом по программе Google VRP, я обратил внимание на YouTube. Мне хотелось найти способ получать доступ к закрытым (Private) видео, которыми я не владею.

При загрузке видео на YouTube можно выбрать один из трёх параметров доступа. «Открытый» (Public) позволяет находить и просматривать видео любым пользователям, «Доступ по ссылке» (Unlisted) позволяет просматривать видео только пользователям, знающим ID видео (URL), «Ограниченный доступ» (Private) позволяет просматривать видео только вам или другим аккаунтам, которым дано на это разрешение.

Первым делом я загрузил видео на свой второй тестовый канал аккаунта YouTube и переключил параметры доступа видео на Private, чтобы его можно было использовать для тестирования. (Помните, что тестирование всегда нужно проводить на тех ресурсах/аккаунтах, которыми вы владеете!) Если я смогу найти способ получить доступ к видео с первого тестового аккаунта, то мы выявим наличие бага.

Я открыл YouTube под первым аккаунтом, проверил каждую функцию и нажал на каждую кнопку, которую смог найти. Каждый раз, когда я видел HTTP-запрос с указанием ID видео, я заменял его на тестовое видео с доступом Private, надеясь, что так утечёт какая-нибудь информация о нём, но успеха не добился. Похоже, что основной веб-сайт YouTube (по крайней мере, все его конечные точки, которые я протестировал) всегда проверяет, находится ли видео в состоянии Private, и когда пытается выполнить запрос к целевому закрытому видео, он всегда возвращает ошибки наподобие This video is private!.

Мне нужно найти другой способ.

PHP Дайджест № 205 (1 – 15 июня 2021)

Reading time5 min
Views12K


Подборка свежих новостей и материалов из мира PHP. В выпуске: первая альфа PHP 8.1.0, Composer 2.1, Symfony 5.3 и другие релизы. Обзор новых предложений для PHP 8.1: Partial Function Application, pipe оператор, readonly свойства. А также порция полезных инструментов, статьи, видео и подкасты.

Приятного чтения!

Культура разработки ПО слишком позитивна, это может нам вредить

Reading time4 min
Views18K
image

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

Выгорание


Разве не странно, что множество молодых людей ощущает себя выгоревшим всего спустя несколько лет работы? Я часто встречаю людей, испытавших срыв всего спустя один-два года. Я и сам испытал выгорание (даже дважды). В первый раз мне пришлось взять перерыв на полгода. Во второй раз, который произошёл совсем недавно, мне потребовался целый год, прежде чем я смог вернуться к программированию.

В этом году я много общался с людьми, не связанными с технологиями, и заметил одну вещь: мы не особо жалуемся на свою работу. Мы жалуемся на плохое руководство и плохие проекты, но не на сам кодинг. Мы воспринимаем горение своей работой как нечто само собой разумеющееся. Вы удивлены? Почитайте вакансии. Любовь к работе — часто одно из обязательных требований. От нас ждут, что мы будем любить свою работу, более того, что мы сделаем программирование центром своей вселенной.
Читать дальше →

Мой штрихкод. Code128

Reading time9 min
Views8.3K

Однажды в процессе производственной деятельности появилась необходимость генерации штрихкода по стандарту code128. Появилась в виду того, что имевшаяся в эксплуатации функция (хранимая процедура в базе Oracle) генерировала клёвый, полосатый штрихкод, который однако, читался не во всех случаях. Разработчики в своё время оттестировали её весьма некачественно, но перерабатывать уже не собирались т.к. проект был давно сдан, а потребности в считывании так и не появились.

Первая мысль — поиск готовых библиотек. Навскидку определили критерии — с pl/sql не связываемся, пусть это будет внешний сервис: возможно кусок на javascript для генерации прямо на страничке, либо обращение за картинкой к ближайшему серверу где имеется php. Беглый поиск в интернете показал что тема истоптана весьма плотно. Есть как наколенные поделки уровня лабораторки по программированию, так и мощные библиотеки для всех вариантов кодирования вплоть до qr-кодов. Варианты с JavaScript пришлось отбросить т.к. они во первых практически все «обфусканы» (даже непонятно, то ли для сокращения объема, то ли стыдно исходники показать), во вторых генерируют строку для отображения определенным шрифтом, наличие которого не всегда можно обеспечить на рабочем месте и требует дополнительных обработок для экранирования спецсимволов. Внимательное рассмотрение библиотек и кусков кода на php тоже произвел тягостное впечатление — на первый взгляд всё вроде бы правильно: и классы написаны на все случаи жизни, комментарии в наличии, украшательства типа выбора цвета и рамочек, примеры подготовлены. Начнёшь вникать — хотят либо php самой распоследней версии (на боевых серверах не всегда это получается добыть), либо внутренняя логика не различима совсем, либо штрихкод на выходе получается длиннее ожидаемого. Вот последнее не дало покоя и подтолкнуло к собственной реализации.

Читать далее

Музыка операционных систем: как стандартные звуки и код превращают в полноценные композиции

Reading time3 min
Views3.3K

Ранее мы уже рассказывали о музыке «зашитой» в разных версиях ОС Windows: вспоминали композицию CANYON.MID, на которую сегодня существует огромное количество каверов, и трек Beautiful Way, демонстрировавший возможности мультимедийного формата ASF.

Сегодня мы продолжим тему, но поговорим о немного другой ее стороне — музыке, которую пишут сами пользователи. Они берут стандартные звуки в качестве семплов и даже «озвучивают» куски исполняемого кода с помощью специализированного софта.

Читать далее

Как в PHP улучшить читаемость регулярных выражений

Reading time11 min
Views8.3K

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

PHP использует диалект регулярных выражений PCRE — до версии PHP 7.3, и PCRE2 — в более новых версиях. Поэтому в PHP можно использовать различные продвинутые приемы, помогающие писать читаемые, самодокументируемые и поддерживаемые регулярные выражения. При этом не надо также забывать и о наличии в PHP функций фильтрации переменных, а также семейства функций ctype*, позволяющих валидировать такие распространенные значения как url-ссылки, адреса электронной почты и строки из букв и цифр — вообще без использований регулярный выражений. Во многих IDE есть подсветка регулярных выражений, помогающая их читать, а иногда даже и проверка выражений, с подсказками по их улучшению.

Читать далее

Модульный PHP монолит: рецепт приготовления

Reading time10 min
Views24K

Статья написана по мотивам моего доклада на митапе. В нем я рассказываю историю того, как мы взяли и не распилили монолит на микросервисы, и что сделали вместо этого.

На тот момент наша команда работала над приложением, начало которому было положено еще в 2009 году не искушенными в архитектуре студентами. К 2018 это уже был типичный big ball of mud (большой ком грязи), или, этакий «монолит-копролит», как выразился один наш коллега. Думаю, многим знакомо.

Читать далее

Развертывание приложения Symfony в AWS Lambda

Reading time4 min
Views3.6K

Сначала давайте разберемся, что такое бессерверная архитектура и когда она нужна.

Бессерверная архитектура позволяет выполнять фрагменты кода без мороки с инфраструктурой: в этом случае управлением веб-сервером, физическим оборудованием и администрированием занимается облачный провайдер, позволяя вам сосредоточиться исключительно на коде.

AWS Lambda обеспечивает высокую доступность, причем плата взимается только за фактически затрачиваемое время вычислений. Этот сервис может быть весьма полезен для таких задач, как запуск cron-заданий, отправка уведомлений в режиме реального времени, предоставление доступа к API, обработка каких-нибудь событий при выполнении различных операций и т. д. В сети можно найти массу примеров использования сервиса.

Читать далее

Кто, где, когда: система компонентов для разделения зон ответственности команды

Reading time7 min
Views6.3K

Меня зовут Евгений Тупиков, я ведущий PHP-разработчик в Badoo и Bumble. У нас в команде более 200 бэкенд-разработчиков, которые работают над сотнями модулей и отдельных сервисов в наших приложениях. Но поначалу всё было не так масштабно. В 2006 году это был один проект, над которым работала небольшая команда. Каждый разработчик хорошо понимал, как всё устроено: легко ориентировался в коде, знал, какие есть сервисы и как они взаимодействуют между собой. Однако по мере роста проекта всё больше времени занимал поиск «хранителей знаний» — тех, кто отвечает за ту или иную функциональность и к кому можно обратиться с вопросом или предложением. 

В этой статье я расскажу, как мы решили проблему разделения зон ответственности и сделали процесс актуализации информации быстрым и удобным с помощью компонентного подхода. 

Читать далее

Чему я научился, проработав два года разработчиком ПО в Microsoft

Reading time6 min
Views15K

Так как завершается второй год моей работы разработчиком ПО в Microsoft India, логично будет порассуждать о том, чему же я научился за последние два года.

Я пришёл в Microsoft сразу после учёбы в колледже, Indian Institute of Technology Guwahati, и эта работа стала моим первым опытом. Со временем я очень сильно вырос и получил множество новых уроков. В этой статье я постараюсь структурировать свои мысли о них.

Итак, вот пять вещей, которым я научился.

1. Исследования, исследования и снова исследования


«Общепринятые сегодня факты являются результатами вчерашних исследований», — Дункан Макдональд

Когда я говорю «исследования», то подразумеваю два значения:

Проведение исследований для выявления первопричины проблемы.

Я почти сразу понял: очень легко выработать привычку не вдаваться в подробности проблемы и не понимать её истинные причины. А если вы не знаете конкретной причины существования проблемы, это почти всегда сказывается, когда вы уже почти решите задачу. «Почти» — очень важное здесь слово.

Проведение исследований для нахождения самого эффективного решения текущей задачи.
Читать дальше →

Ничего лишнего — только хардкор, только технологии

Reading time8 min
Views4.3K

Пообщаться на важные именно для нас темы не только между собой, но и с представителями лучших топовых компаний и проектов в мире PHP — одна из самых главных активностей на конференции. В онлайне это сложно реализовать. Именно поэтому  мы  собираем всех вас вместе 28 июня. Из-за ковидных переносов конференции часть программы  PHP Russia 2021 поменялась. У кого-то из докладчиков изменились планы, и  мы нашли равноценную замену, пришли новые спикеры с неожиданно крутыми темами. В итоге примерно половина докладов были заменены.

Глобальное отличие от прошлой конференции — гибридный формат: она пройдёт одновременно офлайн и онлайн. Онтико сейчас проводит все конференции. В офлайне будет всё, как обычно: четыре зала, общение всех со всеми, обед и бесконечный кофе-брейк, небольшой фуршет с пивом и соками, афтепати и активности на стендах партнеров. Стенды, кстати, будут прикольные. Все партнеры используют PHP, и с ними будет интересно. А афтепати собирают ребята из московского Beer PHP. 

В онлайне будут трансляции из всех залов. Плюс можно участвовать в интерактиве с вопросами и ответами. Это плюс-минус обычно. Но мы пошли дальше. В офлайне спикер, как обычно, будет отвечать на вопросы в фойе, собрав вокруг себя кружок, но теперь камера будет  снимать это для онлайн-участников. Они могут присоединиться и тоже задавать вопросы. Это, конечно, не супер полноценное участие, потому что в кулуарах все-таки обсуждается много чего, но уже намного лучше, чем в чатах сидеть.

Читать далее

Сверхзвуковые пассажирские самолёты второго поколения: Boom набирает обороты, а Aerion «влетел в трубу»

Reading time9 min
Views24K

Эпоха сверхзвуковых коммерческих полётов подошла к концу, когда Concorde совершил свой последний рейс 26-ноября 2003 года: G-BOAF (последний построенный самолёт) вылетел из Хитроу, пролетел над Бискайским заливом, совершил проход над Бристолем и приземлился в аэропорту Филтон.

«Конкорд» был неплохо отработан технологически, получил приемлемую систему базирования, прижился на трансатлантических трассах, однако, как говорится, «рыночек порешал». В итоге он сдался дешёвым и массовым дозвуковым трудягам, оставшись эксклюзивной роскошью, которую при случае за большие деньги можно арендовать под специальный чартер (который тоже не позволял окупаться).

А коммерческая карьера советского сверхзвукового лайнера Ту-144 была недолгой. 01-июня 1978 года, всего через семь месяцев после начала коммерческой эксплуатации, «Аэрофлот» прекратил сверхзвуковые пассажирские рейсы. Непосредственным поводом для прекращения пассажирских полётов послужила катастрофа опытного экземпляра Ту-144Д, произошедшая 23-мая 1978 года в Воскресенском районе Московской области (погибли два члена экипажа). Более основательной причиной отказа от пассажирской эксплуатации называется нерентабельность.

Но очарование сверхбыстрых авиаперелётов так и не исчезло. Самолёты сегодня летают со скоростью не больше 900 км/ч. А расчеты специалистов показывают: сверхзвуковой бизнес-джет может преодолевать за час 1900 км. И даже больше.

Однако просто поднять скорость в 2-2,5 раза это половина проблемы: новый сверхзвуковой пассажирский самолёт должен быть тихим. Задача довольно амбициозная, над которой ломают головы авиаконструкторы всего мира. Первые и пока единственные в мире пассажирские сверхзвуковые самолёты XXI века разрабатываются в США. И у американцев готовы демонстраторы, и ясно, что они будут запускать гиперзвуковые самолёты.

В связи с этим, есть две новости: хорошая и плохая. Давайте начнём с хорошей.

Уходим в кэш в высоконагруженных системах

Reading time15 min
Views12K

Одна из вечных тем — правильная работа с кэшем. Звучит это просто, но на деле в ней очень много подводных камней и особенностей. Ну а когда приходит нагрузка, все становится еще интересней. В кэшировании нет «серебряной пули», а есть набор отработанных техник. И остается лишь подобрать их комбинацию для вашей задачи, используя достоинства и нивелируя недостатки.

На конференции PHP Russia 2021 Павел Паршиков, backend engineer в Авито, представит доклад «Уходим в кэш в высоконагруженных системах». А в этом  интервью мы поговорили о том, хорош ли PHP для растущих в плане нагрузки проектов, и какие его инструменты лучше применять.

Читать далее

Неполнота науки: как жил и что доказал Курт Гёдель?

Reading time15 min
Views56K

«Достижения Курта Гёделя в современной логике уникальны и монументальны. Определенно, это — нечто большее, нежели памятник ученому, это — путеводная звезда, свет которой продолжит распространяться в пространстве и времени вечно». 

Джон фон Нейман

Накануне гибели Австро-Венгерская империя подарила человечеству немало великих умов. Такие громкие имена, как Эрвин Шрёдингер, Зигмунд Фрейд и Стефан Цвейг известны, пожалуй, каждому, включая даже тех, кто бесконечно далек от мира физики, психоанализа или классической литературы. С работами же Курта Гёделя знакомы не многие, хотя масштаб его вклада в математическую науку сопоставим с достижениями Эйнштейна в области физики. Ведь если теория относительности и квантовая теория помогли человечеству взглянуть под совершенно иным углом на законы мироздания, то теоремы Гёделя заставили ученых пересмотреть свои представления о научной методологии и принципах работы человеческого разума.

Логика, как образ жизни


Курт Фридрих Гёдель родился 28 апреля 1906 года в австро-венгерском городе Брюнн (ныне — статутный город Чешской Республики Брно), в семье австрийского коммерсанта Рудольфа Августа Гёделя, управляющего крупной текстильной фабрикой. Хотя Курт с детства демонстрировал недюжинные способности к языкам (еще в ранней юности он освоил английский и французский, научившись изъясняться на них не хуже, чем на родном немецком), однако карьера лингвиста его не прельщала. Окончив в 1923 году школу, молодой человек поступил в Венский университет, первые два курса которого посвятил изучению физики, однако затем переключился на математику, чему во многом способствовало прочтение книги Бертрана Рассела «Введение в философию математики».


Молодой Курт Гёдель, 1925 год
Читать дальше →

PHP Дайджест № 204 (17 – 31 мая 2021)

Reading time4 min
Views11K
Фото: Christian Münch.

В эти две недели core команда PHP активно обсуждала предложение по Partial function Application и в качестве альтернативы Никита Попов предложил более простой синтаксис для получения ссылки на любые функции. Также в уже принятые в PHP 8.1 енумы предлагается добавить статические свойства.

Symfony 6 будет требовать PHP 8.0, а вышедшая Doctrine 2.9 поддерживает указание метаданных в атрибутах вместо PHPDoc.

Еще в выпуске классная статья про регекспы и инструкция по использованию Deployer, а также другие полезные статьи, пачка инструментов, немного видео и подкастов.

Приятного чтения!
Читать дальше →

Information

Rating
Does not participate
Location
Харьков, Харьковская обл., Украина
Registered
Activity