👾 твой cto
1.04K subscribers
13 photos
11 videos
141 links
Будни технического директора
Илья Чекальский (@ilya0)
chekalsky.com
Download Telegram
Когда сайт Навального устроен сложнее, чем твой.

https://habrahabr.ru/company/fbk/blog/347312/
​​Прекрасный плагин для PHPStorm — PHP Inspections EA

Статический анализатор, который позволяет сделать ваш код ещё лучше. Что покрывает:
• architecture related issues
• weak types control and possible code construct simplifications
• performance issues
• non-optimal, duplicate and suspicious "if" conditions
• validation of magic methods usage
• regular expressions
• validation of exception handling workflow
• compatibility issues
• variety of time-consuming bugs
• PhpUnit API usage
• security issues

У него есть ещё платная версия, в которой проверок ещё больше. В общем, если вы любите писать идеальный код, то статический анализатор прямо в IDE вам понравится.

#php #ide
Лучший концепт по написанию надёждных и безопасных приложений. Не забудьте заглянуть в Pull Requests — там есть имплементации с тестированием.

https://github.com/kelseyhightower/nocode
​​С момента переезда в Польшу начал искать вдохновение для названий классов в польском языке, и боюсь, коллеги скоро начнут меня ненавидеть.

Ну а пока шаблонизатор будет называться Кживик. Потому что по-польски это лекало. А лекало — это первая ссылка в википедии по запросу «шаблон».
​​​​ФБК опубликовали датасет с нарушениями депутата Слуцкого — самое время попрактиковаться в API Яндекс.Карт. Теперь надо как-то оптимизировать производительность, потому что столько точек Яндекс.Карты не тянут.

https://chekalskiy.ru/slutsky/
Прекрасные новости! Let’s Encrypt запустил выдачу бесплатных wildcard-сертификатов.

https://community.letsencrypt.org/t/acme-v2-and-wildcard-certificate-support-is-live/55579
Мне кажется, the next big thing — статические генераторы сайтов.

У меня подошёл к концу бесплатный год в Google Cloud — там хостился наш блог chechannel.com — год назад я взял Ghost и закинул его туда, чтобы складывать длинные заметки про Польшу, но их в итоге оказалось не так много, и почти никто на сайт не заходит. Но домен мне нравится и просто так отключать его не хотелось.

Переезжать на vscale, хоть это и будет стоить 200 рублей в месяц, не хотелось, равно как и оплачивать Ghost Pro по $19 в месяц — зачем платить вообще что-то за сайт с 10 посетителями.

Пришлось озаботиться переносом контента с Ghost на Hugo. Hugo — это такой движок для статических сайтов, написанный на Go. А хоститься при этом можно бесплатно на GitHub Pages в связке с Cloudflare, который возьмёт на себя редиректы, HTTPS, кэширование и всё, что душе угодно.

В итоге несколько часов провозился с конвертером постов и собственно настройкой Hugo — и voilà! статическая версия блога с простой CMS (forestry.io) уже в продакшене.

И вот эта вот простота, надёжность и дешевизна — это явно то, что вскоре позволит всем нам отказаться от Wordpress, к которому нужен ещё и разбирающийся админ, а ещё нужно следить за версией openssl на сервере, да и вообще от серверов. И уже существуют CMS, которые позволяют удобно создавать контент и настраивать генератор статической версии сайта. И всё это автоматически публиковать.

Ссылки для дальнейшего изучения:
https://www.staticgen.com — рейтинг генераторов статических сайтов
https://headlesscms.org — список CMS для них
​​Вау, Cloudflare запустили свой супер-быстрый DNS с поддержкой DNS-over-TLS и DNS-over-HTTPS.

1.1.1.1
1.0.0.1

Вот тут пост о том, почему они решили это сделать и где раздобыли такой крутой IP.
В августе прошлого года у меня сломался айфон, и когда я восстановил резервную копию из iCloud на новом, из Google Authenticator пропали 2FA-коды всех сервисов (хотя они должны были остаться). Так как я немного параноик и control freak, я отдельно хранил список всех сервисов с 2FA, которыми я пользуюсь. Поэтому нужно было всего лишь восстановить все доступы по списку.

В основном это было не сложно — либо присылают смс, либо просят один из резервных кодов, либо ещё какие-то данные. Небольшие проблемы возникли с blockchain.info — но всё тоже прошло нормально. Настоящими параноиками оказались только Amazon — если потерять девайс с кодами, то сбросить логин можно только по звонку на привязанный к аккаунту номер телефона. Но почему-то именно на этот номер не проходили звонки, а я уже довольно долго находился в Польше. Я позвонил в поддержку Amazon и объяснил ситуацию, предложил прочитать все последние инвойсы, рассказать, что есть внутри аккаунта, но саппорт был непреклонен. В итоге, только сейчас я решился повторить попытку, поставил переадресацию, разобрался с техподдержкой Йоты и Билайна, и наконец-таки смог зайти в свой аккаунт.

Теперь я переживаю — все остальные ведь не так надёжно охраняют мои аккаунты. 🤔
Подборка утилит для PHP-разработки. Про некоторые из них я уже писал, но есть и новые.

Например, PHP Magic Number Detector — ищет магические числа, которые неплохо бы сделать константами (200, 404, 3600 и т.д.).

Кстати, на гитхабе есть наиболее полный список утилит для статического анализа PHP-кода.

P.S. Если вы используете SaaS-сервис, в котором есть большинство или хотя бы самые популярные из этих утилит и который умеет интегрироваться в GitHub Pull Requests, напишите мне, пожалуйста, о своих впечатлениях: @ilya0
Если вы главный контрибьютор некоммерческого opensource-проекта (и удовлетворяете ещё нескольким простым критериям), то можете получить бесплатную лицензию на 1Password Team — лучшее приложение для хранение паролей по мнению автора этого канала.

https://github.com/1Password/1password-teams-open-source
История о том, как мы потеряли нашего андроид-разработчика.
Когда твой SaaS сервис не готов к 2к18.
🔥 DaisyDisk со скидкой 50%

Для вас скидка на потрясающую утилиту для мака — она поможет найти, куда делось всё свободное место. Пользуюсь ей столько же, сколько владею макбуками (и крайне рекомендую), но купить решил только по такому вот прекрасному поводу. Может быть, вам тоже будет полезно.
Когда получил послание в бутылке в 21 веке
Ещё полгода назад наша платформа, на которой работают издания TJ, vc.ru и DTF, представлялась мне не очень большой, но когда в процессе рефакторинга мы переписали десятки тысяч строк кода и потратили пять месяцев, стало понятно, что представление было ошибочным.

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

Наверное, самый главный урок из всего этого — не планировать глобальный рефакторинг, делать все небольшими шагами. Если вы не успеваете прочитать весь исходный код своего проекта за один день — будьте очень осторожны с оценками времени, похоже, у вас уже большой проект.
Помню, как мы отключали репортинг о notice'ах в своих проектах. Хорошее было время, беззаботное. Прямо девяностые в мире PHP.
— Выложите на Гитхаб
— Босс, выложили за Гитхаб круглую сумму, когда можем объявить о покупке?

https://www.theverge.com/2018/6/3/17422752/microsoft-github-acquisition-rumors
Avito опубликовали свой playbook. Из него можно, в частности, узнать, что они используют Kubernetes для оркестрации контейнеров, Sentry для сбора ошибок, Twig в качестве шаблонизатора для PHP и многое другое.

Мне всегда было интересно покопаться в том, «как это работает у них».

https://github.com/avito-tech/playbook
GitHub и фронтендеры
​​Маленькая утилита для создания https-сертификатов для локальной разработки.

https://github.com/FiloSottile/mkcert

Программа создаёт локальный CA, устанавливает его в систему как доверенный и позволяет создавать SSL-сертификаты для любого домена.