Omnia fluunt, omnia mutantur
Чтобы добыть драгоценный камень надо обработать тонны пустой породы. Отложите кирку, насыпьте канарейкам корма и сделайте перерыв на наш дайджест. Вот что мы собрали в этом месяце.
Трюфель с ароматом яблока
Чип Apple M1 определённо крутая штука. Высокая производительность, низкое энергопотребление и тепловыделение. Компьютеры яблочной корпорации с новым чипом стали более конкурентоспособными. Достичь этого удалось сменой x86_64 архитектуры на ARM (darwin-aarch64). Теперь ждём, пока производители софта адаптируются к новой архитектуре.
Сначала было сложно. Большая часть привычных инструментов отказывалась работать. Спасал только транслятор Rosetta 2. Время шло и на текущий момент ситуация улучшилась. В частности, стали выходить билды разного софта под darwin-aarch64. Рубистов можно порадовать — высокопроизводительная имплементация языка TruffleRuby теперь доступна нативно на Apple M1.
TruffleRuby запускает ваш код внутри GraalVM. Эта виртуальная машина разрабатывается Oracle и написана для Java. Пожалуй, самая крутая фича — параллельное планирование потоков и отсутствие глобальной блокировки интерпретатора (GIL). Важно понимать, что TruffelRuby не имеет полной совместимости, а некоторые функции могут серьёзно повлиять на производительность. И тем не менее, попробовать стоит, возможно результат вас приятно удивит.
Тут вам не npm
Open-source не всегда полезен. Мейнтейнеры популярных пакетов внезапно для себя обнаружили, что их детище может быть эффективным оружием. Проблема в повсеместной автоматизации доставки. Например, скомпрометированный доступ к репозиторию любой известной библиотеки повлияет на всех пользователей, использующих её в своём проекте. Таких пользователей могут быть десятки миллионов.
Если речь не идёт о целенаправленном саботаже, стоит задуматься о безопасности. Сообщество быстро отреагировало внедрением многофакторной авторизации. Вначале это будет реализовано только у мейнтейнеров, обслуживающих топ-100 самых популярных пакетов RubyGems.
Начиная с 13-го июня, если MFA не включена, то будут появляться предупреждения о необходимости её активации. С 15-го августа будут разосланы дополнительные предупреждения. После этого MFA активируется принудительно. Со временем количество пакетов на которые распространяется эта политика безопасности будет только увеличиваться.
Gem HTTP обновился
Один из самых часто используемых gem’ов получил первое обновление в этом году. Были обновлены поддерживаемые версии языка, в частности, теперь поддерживается Ruby v3.1. Поддержка v2.5 была прекращена, минимальная версия теперь v2.6.
Для контента с типом application/json автоматически выбирается кодировка UTF-8. Также решилась проблема с выставлением cookies при перенаправлении. Ещё из кардинальных изменений — внедрение перехвата тайм-аутов открытых соединений. И это, как нам кажется, самое интересное.
До этого обновления можно было настроить тайм-ауты соединений. Но если смотреть со стороны клиента, то нельзя было определить какой тайм-аут выставлен. Теперь же появился новый подкласс ConnectionTimeoutError для TimeoutError, позволяющий отлавливать тайм-ауты открытых соединений.
Валидация телефонных номеров
Те времена, когда для авторизации использовались только почтовые ящики давно прошли. На смену им пришли номера телефонов. Но в нём может быть до 15 цифр (стандарт E.164) из которых часть префикс, а часть абонентский номер.
Разработчики Google проделали большую работу и давно создали библиотеку libphonenumber. Это больше 30 тысяч строк только префиксов, включая спутниковые сети, такие как Thuraya. На базе этой библиотеки был создан gem phonelib. Этот инструмент включает в себя кучу возможностей по проверке и валидации телефонных номеров.
Отдельно отметим, что phonelib поддерживается в актуальном состоянии. Ну а если такая реализация вас по каким-то причинам не устраивает — есть уже 120 форков c разными доработками.
Митапы
Ruby meetup №18
19:00
Рады сообщить, что у нас запланирован Ruby Meetup, который пройдёт 20 июля 2022. Все доклады будут традиционно предзаписаны в 4К, а вести митап в прямом эфире и помогать вам допрашивать спикеров в чате будет Григорий Петров, Ruby-разработчик и организатор RubyRussia.
Детальная информация о мероприятии будет опубликована позже, следите за нашими новостями. Кстати, если у вас есть идея доклада и вы хотите стать спикером, то пишите на почту andy@evrone.com.
Конкурсы для разработчиков
Ruby Quiz
до 22 августа 2022
Evrone — это, прежде всего, сильная Ruby-команда. Мы хорошо разбираемся в Ruby и предлагаем вам тоже проверить себя в нашем новом квизе.
Его составляли наши опытные разработчики, так что придётся хорошо подумать. Среди тех, кто правильно ответит на все вопросы мы разыграем Яндекс. Станцию.
Вакансии
Удаленка / Офис
Evrone
Мы открыты для новых Ruby-разработчиков. В Evrone можно работать удалённо с первого дня, мы поддерживаем и оплачиваем участие в Open-source проектах и выступления на конференциях, а расти в грейдах можно с помощью честной системы проверки навыков и менторства.