Size: a a a

запуск завтра

2018 July 12
запуск завтра
Apple обновил макбук про, теперь можно сконфигурировать 32 гигабайта оперативной памяти (+$400). Мне кажется, что это нафиг не нужно, но многие программисты громко ныли и вот получили. Для нормальных людей это значит, что очередная прошка будет чуть дольше держать батарейку (она стала чуть больше для того, чтобы скомпенсировать прожорливую память и более мощный процессор).

Хочу заметить, что пресс-релиз, которым они объявили это изменение — очень многословный. Если почитать прошлые пресс-релизы Apple, будет видно, какие они лаконичные — в этом чувствовалась особенная сила.
источник
2018 July 13
запуск завтра
Guido van Rossum, создатель языка Python, берет бессрочный отпуск с должности «благосклонного пожизненного диктатора» (Benevolent dictator for life, BDFL — термин был придуман специально для него!). Буквально «я устал, я ухожу». Преемника не оставляет и ожидает, что core-dev команда сама решит, как будет управляться разработка языка дальше.

Питон — один из самых популярных языков программирования, lingua franca IT-мира. Data science, роботы, обучение детей программированию, один из основных языков в компании Google. Созданный в 1990-м году (!), сегодня он поддерживается буквально везде — от умных часов до мейнфреймов IBM. Бэкенд RAWG написан на питоне.

Даже если вы не знаете программирования, вы можете оценить Дзен Питона — 19 афоризмов, диктующие правила языка и программирования на нем:

- Красивое лучше, чем уродливое.
- Явное лучше, чем неявное.
- Простое лучше, чем сложное.
- Сложное лучше, чем запутанное.
- Плоское лучше, чем вложенное.
- Разреженное лучше, чем плотное.
- Читаемость имеет значение.
- Особые случаи не настолько особые, чтобы нарушать правила.
- При этом практичность важнее безупречности.
- Ошибки никогда не должны замалчиваться.
- Если не замалчиваются явно.
- Встретив двусмысленность, отбрось искушение угадать.
- Должен существовать один — и, желательно, только один — очевидный способ сделать это.
- Хотя он поначалу может быть и не очевиден, если вы не голландец (намек на Гвидо).
- Сейчас лучше, чем никогда.
- Хотя никогда зачастую лучше, чем прямо сейчас.
- Если реализацию сложно объяснить — идея плоха.
- Если реализацию легко объяснить — идея, возможно, хороша.
...
источник
запуск завтра
так пожелаем Гвидо удачи в личной жизни!
источник
2018 July 16
запуск завтра
Пасьянс поиска бэкендера пока складывается...
источник
запуск завтра
Чуваки из Cloudflare, Mozilla, Fastly и Apple, тем временем, собрались на хакатон и напрогали реализацию encrypted SNI.

SNI - технология, которая используется для создания шифрованного HTTPS соединения. Проблема в том, что SNI сейчас передаёт адрес сайта (не весь адрес страницы, только имя домена, rawg.io, или Meduza.io, например) в нешифрованном виде.

Именно через эту «дыру» в SNI работают 99% DPI-решений, блокирующие доступ к сайтам в России. Если цензору не нравится адрес сайта - он блокирует соединение. Encrypted SNI решает эту «проблему», потому что теперь цензор не знает даже адреса сайта, только IP адрес, а на одном IP адресе может быть множество сайтов.

До продакшена ещё далеко, но как же долго мы ждали этих первых шагов в правильном направлении!
источник
2018 July 17
запуск завтра
У Амазона лежал сайт сразу после начала дня скидок Prime Day. Тонны денег вложены в рекламу, за 40 часов Амазон планирует продать товаров на 4 миллиарда долларов и сайт сломался. Не боги горшки обжигают.

Жаль, что post mortem вряд ли появится в публичном доступе :(
источник
2018 July 19
запуск завтра
Вчера был жирный день на техно-новости и прикольные тексты.

1. Европейская комиссия штрафует гугл на четыре с половиной миллиарда долларов за то, что тот цементирует своё доминирующую позицию в поиске через Android и Google Play Store (помните похожее дело Microsoft Antitrust Case?)
2. Riot рассказывает, как борется с читерами. Жаль, что 90% статьи про обфускацию и защиту клиента, но всё равно интересно, хоть и без неожиданностей — проигрывание всего на сервере, даём клиенту только то, что нужно для геймплея и т.д.
3. Backblaze шустро погружает в неплохой матстат: какое распределение нужно использовать для оценки отказов жестких дисков — пуассона или биномиальное? Статья объсняет, почему вероятность потерять данные в их облаке меньше 11 нулей после запятой и почему надежность выше девяти девяток после запятой имеет только академический интерес. Хорошая статья от техдира.
источник
2018 July 20
запуск завтра
Практически некролог на ван-Россума, создателя питона на The Economist!

На самом деле, просто ода питону. Из это статьи я узнал, что за последний год питон в гугле искали чаще, чем Ким Кардашьян. Что ни говори, а это успех.
источник
запуск завтра
Если хотите разобраться, за что же ЕС присудил гуглу штраф в 4.5 миллиарда долларов и что из этого выйдет — вот супер подробный анализ всей истории от Бена Томпсона, одного из лучших авторов в IT-бизнесе.

Интересная деталь, о которой многие не знают — Google Play Services. Поясню на примере GPS. Супер-классная геолокация, к которой мы все привыкли — не просто GPS. И iOS и Android замешивают кучу данных с GPS-устройств, WiFi-точек и сотовых вышек, агреггируют данные с миллионов устройств, кормят все эти данные в адские алгоритмы машинного обучения на тысячах серверов и только так создают быструю качественную геолокацию, без которой сложно представить современный телефон. В iOS — это фича операционной системы, её нельзя вырезать. В Android (который формально open source) всего этого нет, за всё это отвечает Google Play Services — API, предоставляемое гуглом «бесплатно». Бесплатно — в кавычках, потому что Play Services предустанавливают почти все нормальные производители, кроме китайцев (Google в Китае нет). Фишка в том, что если прозводитель хочет Google Play Services, то во первых, он обязан поставить поиск гугла на первый экран смартфона, а во вторых — не имеет права выпустить другое Android устройство без Google Play Services. Всё как завещал Microsoft, когда выкручивал руки OEM-вендорам PC.

Google Play Services включает в себя десятки API. Пуш-уведомления, например. Нужен вам телефон без пуш-уведомлений? А чистый open source Android — именно такой.

Многие Android-приложения на текущий день — не просто Android-приложения, а приложения для «Android с Google Play Services». И решение Еврокомиссии вряд ли это изменит.

Очень рекомендую статью, если вам интересна вся эта тема с Гуглом и Андроидом.
источник
запуск завтра
Гугл опубликовал post-mortem про то, почему в среду Google Cloud Global Loadbalancer лежал по всему миру полчаса. Это big deal, потому что одно из базовых обещаний крупных облачных вендоров — никаких кросс-региональных проблем. Деплоите свой супер важный сайт на 2 региона и считаете, что по хостингу SLA 100%. Ага.

Баг в коде не словили на стейджинге и на тестовой раскладке, потому что он проявлялся только при определенной конфигурации.

Интересно, что они заметили проблему через 2 минуты после её начала, 25 минут прогали фикс, 5 минут оно раскатывалось по продакшену и ещё 6 минут приходило в норму.

Жаркие же 36 минут это были для инженеров на дежурстве!
источник
запуск завтра
Гугл адски повышает цены на Google Maps — 0.5$ за тысячу просмотров превратились в 7$, 14-кратное увеличение; и в 30 раз уменьшает бесплатные лимиты — 750k бесплатных просмотров превратились в 28k.

Чуваки из немецкого стартапа про поиск аптек in der Apotheke от такого прифигели и провели анализ ситуации.

Оказалось, что есть ещё несколько провайдеров, которые дают нормальные карты на сайт: Mapbox, Azure Maps (Microsoft), TomTom, Here Maps (бывшая Nokia), MapTiler и новичок Apple Maps. Если вы в России — то есть ещё Яндекс. Использовать OpenStreetMaps напрямую, к сожалению, довольно сложно.

Прайсинг у всех сложный, так что они не стали напрягаться и просто запрогали переключение поставщика карт на сайте через админку, сравнили в боевых условиях Google Maps, Mapbox и MapTiler. Получилось, что для них Mapbox и Maptiler стоит 9 долларов в месяц, а Google Maps — 80.

Интересно, затрагивают ли эти изменения медиа? Я в своё время считал, что у Медузы не должно быть проблем с использованием Google Maps со старыми лимитами, интересно, чем будут пользоваться медиа в новых условиях.
источник
2018 July 22
запуск завтра
Полторы недели назад мы начали поиск второго бэкендера в команду RAWG. Позавчера мы взяли на работу не одного, а двух программистов; расскажу, как мы это сделали.

После публикации вакансии в фб и телеграме (спасибо большое за репосты!), мы взяли неделю на сбор предложений, отвечали всем сразу, что «вернемся на следующей неделе». Бесит, когда наниматели не отвечают на письма. Нам пришло 22 предложения. Из них 10 — в телеграм, 9 — на почту python@rawg.io, 3 — в фб-мессенджер. Почту мы создали как группу в GSuite и завернули в Intercom, чтобы ничего не пропустить. Я вел базу со всеми кандидатами в Airtable, это очень удобно, рекомендую.

Во вторник мы созвонились с Антоном (нашим супер-бэкендером) по зуму и прошлись по airtable-таблице предложений. Пару предложений мы отсекли на этапе сопроводительного текста и резюме, учить совсем начинающих мы пока не готовы. 7 человек нам понравились — там был или внушительный опыт и внятный сопроводительный текст или хороший код. Если кода в первом сообщении не было — я просил прислать его до собеседования. Мы договорились об одном собеседовании на вечер вторника и о пяти — на среду. Согласование времени собеседований заняло пару десятков минут, это феноменально быстро. Дело в том, что почти вся переписка велась в телеграме, это очень приятно. Этот этап занял в сумме пару часов.

Сразу после собеседований у нас появились два явных фаворита — опытные, классные программисты из Питера. Ещё нам понравился второкурсник, у которого был хороший код, горящие глаза и удивительно четкая письменная и устная речь. Мы сделали два офера и по одному из них пришел отказ, так что решили рискнуть и взять одного опытного разработчика и студента без большого опыта.

Больше всего мне запомнился отказ (второй за мою карьеру, кажется). Он пишет: «... Наверное, за годы работы в стартапах, у меня наступила какая-то деформация. Я очень полюбил работу над продуктом и решение бизнесовых задач – не вижу себя без всего этого. ... На нынешней работе несколько спринтов проводил в роли продакт оунера, пока он был в отпуске — понравилось. Пока что научился считать рынки кое-как, проводить Customer Development и тестировать гипотезы...»

То есть, размышляя над нашим предложением, человек понял, что не хочет больше работать программистом. А был идеальный кандидат! Умеет прогать и при этом «видит за деревьями лес», думает о «конечном смысле».

Фан факты:
- я попросил владельца канала с python-вакансиями репостнуть нашу вакансию. Женя (ведущий канала) скоро выходит к нам на работу;
- кандидат-студент узнал о вакансии из слек-сообщества python-ru;
- из 30 кандидатов — один школьник и две девушки (не пересекающиеся множества);
- всего 2 предложения от аутсорсеров. Обычно бывает десяток; видимо, сейлзы плохо мониторят телеграм и фб.

В заключение: спасибо вам большое, дорогие читатели! Без вашей поддержки, поиск бы был гораздо дольше и скучнее. Я собираюсь воспользоваться этим каналом ещё раз на следующей неделе, при поиске фронта.
источник
2018 July 23
запуск завтра
Intel опубликовал очередную пачку багфиксов к своей платформе Intel ME. Среди них - довольно адский, позволяющий захватить удалённое управление по сети (для этого необходимо быть в общей локальной сети, через интернет не работает).

Для тех, кто в танке: речь об атаках на аппаратный модуль в современных процессорах Intel. Модуль невозможно отключить, если ты не правительство США, те выторговывали себе специальный флаг, лол. Особо «классно», что атаки работают даже при выключенном компьютере.

Один из вопросов, который у меня часто возникал: почему Intel ME нельзя выключить на «домашних» компьютерах, где не нужна основная фича Intel ME - удалённое управление корпоративных компьютеров?

Оказывается, в числе прочего, этот модуль декодирует HDCP. HDCP - протокол шифрования видео и аудио, который защищает кино от копирования.

Обычно, если ты видишь что-то на экране своего компьютера - то ты можешь легко перенаправить видео-поток в файл. В крайнем случае, можно воткнуть железку-записывающую-видео между компьютером (источником видео) и монитором. В случае HDCP, такой фокус не пройдёт.

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

Доверять расшифровку контента осному процессору — нельзя, хакеры вытащат все ключи и украдут видео. Intel ME — отдельный «компьютер внутри компьютера», к которому пользователь (и хакеры) не имеют никакого доступа. Вот он и занимается декодированием HDCP-контента.

Даже в Intel ME багах виноваты копирасты из Голливуда с DRM наперевес!
источник
2018 July 26
запуск завтра
Rawg.io ищет третьего фронтенд-разработчика. Ключевые слова: React, микрокоманды, Remote.

Мы делаем лучший сайт про видеоигры; у нас есть IMDb-часть со страницами игр и социальная часть, где можно собирать коллекции, писать обзоры и подписываться на похожих игроков. В ближайших планах дать возможность редактировать страницы игр обычным игрокам прямо на сайте (сейчас используется внутренняя админка) и прокачать SEO.

Под капотом это респонсив SPA React приложение с SSR. JS потребляет красивое REST API, которое готовится бэкендерами на Python (Django DRF) специально для сайта.

Мы работаем по модели Basecamp: в начале 2-4 недельного «цикла» микро-команда — фронт + бэк и дизайнер получают хорошо сформулированную бизнес-задачу с примерными макетами, а дальше мы минимально дергаем команду разработки, чтобы не отвлекать и не мешать. Коммуникация происходит в Basecamp и немного в Slack, все Remote.

Codebase свежий (первый коммит два года назад) и написан хорошими разработчиками, жесткого легаси или костылей там, пока, нет. Github, ci, рабочее окружение разворачивается одной npm-командой. Подключен линтер, в проекте настроен webpack, начали писать тесты, используется связка Redux + Recompose. Верстка: stylus, flexbox, css grids, bem. Дизайнеры и даже продакт раньше верстали, так что понимают ценность переиспользования компонент и естественные ограничения веба.

Мы ищем человека с опытом программирования на Javascript, использовавшего React, умеющего верстать. В идеале — вы любите верстку не меньше, чем программирование. При этом мы готовы рассмотреть как опытных, так и начинающих кандидатов. Нам важно желание приносить пользу пользователям и бизнесу, а не «придумывать красивый код ради кода».

Предлагаем стабильную, достойную оплату труда, очень классную команду (дизайнер раньше верстал, а бэкендеры умеют фронтенд), рабочий макбук по необходимости.

Пишите на frontend@rawg.io или @samatg в личку.
источник
2018 August 01
запуск завтра
Анонимный источник из Google передал The Intercept внутренние документы о проекте «Стрекоза». Речь идет о запуске в Китае Android-приложения «Google Search», которое будет автоматически убирать из поисковой выдачи все ссылки, блокируемые великим китайским файрволом.

В китайском интернете самая настоящая цензура: из соцсетей автоматически удаляются (и/или не даются отправить) сообщения, содержащие некоторые слова, а самый крутой в мире файрвол довольно успешно блокирует доступ к сайтам с «нежелательной информацией». С 2006 по 2010 Google цензурировал результаты выдачи в Китае, но в марте 2010 просто ушел из страны.

Самое стремное: если Google запустится в Китае с цензурой, то будет лицемерно с их стороны не делать то же самое в России, например. Сейчас схема следующая: ты находишь ссылку в гугле → она заблокирована → ты включаешь VPN. В новой схеме, РКН будет выгружать список заблокированных ссылок для Google и её просто не окажется в поисковой выдаче. Для РКН — всё классно. Во первых, если ты не знаешь, что тебе что-то недоступно — то и фрустрации (и пользователей VPN меньше). Во вторых, не факт, что Google перестанет считать тебя «пользователем из России» из-за простого включения VPN. Уж кто-то, а они в силах определить, что ты реально в России.
источник
запуск завтра
Понял, что веду себя как владелец идеального инстаграма. Пишу сюда, только когда есть чем похвастаться. А реальность — не всегда мёд. Последнюю неделю мне тяжело. Возможно, дело в том, что мало общаюсь с друзьями, возможно, это естественное экзистенциальное одиночество, с которым я не сладил, возможно, отношения с женой, но хочется свернуться калачиком и лежать целый день в постели.

Тем не менее, жизнь не останавливается: на вакансию фронтендера пришло 73 отклика (скоро начнем собеседования с первой дюжиной кандидатов), мы в RAWG допрогиваем большой и сложный проект, а глобальные корпорации продолжают поставлять лулзы.
источник
запуск завтра
Google Chrome начал показывать пометочку «не безопасная страница», если вы заходите на сайт без HTTTPS-шифрования. Я был большим сторонником HTTPS, но чем дальше это всё двигается — тем меньше мне нравится эта история.

Веб такой классный потому, что мы в нем много странной фигни. Почти каждый, кому есть что рассказать, может сделать себе веб-страничку. Поддерживать её в рабочем состоянии — практически бесплатно. И всё это без какой-либо центральной силы, которая бы решала, что хорошо, а что — плохо. Во всяком случае, так было до фейсбука и инстаграма :)

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

Сегодня Chrome показывает серенькое уведомление, которое никто не замечает (как раньше не замечали зеленый замочек HTTPS). Но что они решат сделать завтра? Покажут большой красный страшный попап или запретят доступ к сайту без HTTPS совсем?

HTTPS решает две проблемы: 1) массовая слежка за тем, какие страницы мы смотрим 2) кража паролей в публичных WiFi сетях.

Я понимаю, почему нельзя делать страницы со вводом паролей без HTTPS. В опасность массовой слежки за чтением страниц в интернете мне поверить гораздо труднее.

При этом, для Google HTTPS нужен также совсем по другой причине. Провайдеры могут легко вставить свою рекламу на любую не-https страницу. С таким же успехом они могут вырезать рекламу Google с не-защищенных веб-страниц. Недавно они даже начали это делать. С помощью повсеместного введения HTTPS Google устраняет эту опасность раз и навсегда. Money talks. Чувствую, что это теория заговора, надеваю шапочку из фольги.
источник
2018 August 02
запуск завтра
Ватсап открывает Business API, позволяет создавать «бизнес-профили» ботов с описанием бизнеса, ссылками и часами работы. Во вторых, партнерится с Twilio, позволяет использовать стандартное API Twilio (и запрашивать аппрув через их интерфейс) для отправки и получения сообщений.

Песочница для тестов доступна уже сегодня (API похоже на API получения/отправки SMS), для доступа к продакшену (ватсап называет это «создание business profile») пока что нужно ручное подтверждение от Whatsapp, запросить можно в своей админке Twilio или напрямую у Whatsapp.

Массовые рассылки можно будет делать только после получения явного согласия пользователя (интересно, сработает ли маленькая галочка внизу экрана?) и после апрува шаблона рассылки ватсапом. Сообщение без апрува ватсапа бот имеет право отправить только в течении 24 часов после того, как ему написал пользователь.

Это шок, потому что всю свою историю Whatsapp противился любым «ботам» и «рассылкам» на своей платформе. «Только настоящие сообщения от живых людей».

Насколько это изменение продиктовано заботой о пользователях, а насколько — требованием Facebook поднять прибыли — неизвестно.

В любом случае — медиа это должно быть интересно.
источник
2018 August 03
запуск завтра
В чате несколько раз просили рассказать, как мы проводим собеседования, поделюсь.

Во первых, нужно выбрать, кого собеседовать. Мы смотрим на исходный код. Просим ссылку на репозиторий, zip или, хотя бы, отдельные исходные файлы. Это отсекает часть кандидатов, которые не способны прогать. Сразу видно крутышей, которые пишут так (или такое), что хочется с ними работать.

Пожалуюсь, что так и не научился находить хорошие репозитории по данному гитхаб-профилю. Я часто прошу скинуть мне прямую ссылку на репу.

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

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

Во вторых, никаких собеседований один-на-один: это более утомительно и менее эффективно. Бэкендера мы искали вдвоем с Антоном, фронтов собеседуем с Ромой и с Сашей втроем. При этом иметь со стороны компании больше 3 человек, наверное, тоже перебор.

В третьих, мы не спрашиваем _тупых_ вопросов на _соображалку_ типа «сколько теннисных мячей поместится в Боинг 747». И никаких whiteboard interview, когда просят написать исходный код «здесь и сейчас». Собеседование призвано ответить на три вопроса:

1. Хотим ли мы работать с этим человеком?
2. Захочет ли он работать с нами?
3. Способен ли он выполнять работу, которую мы хотим ему дать?

Сценарий всех собеседований примерно одинаковый:
1. Мы рассказываем о продукте: какую проблему он решает, какие составные части в нем есть (это я люблю рассказывать сам, но порой я учусь смирению и это делает кто-то из программистов);
2. Какие технологии мы используем — тут обычно программисты начинают говорить на птичьем и в глазах кандидата появляется оживление, он начинает задавать вопросы. Хорошо!
3. Как устроен рабочий процесс — бейзкемп, рабочие циклы, разбиение фичи на подзадачи программистами, созвоны, личные встречи, etc. Больше вопросов, наши истории из жизни, в идеале кандидат делится своими.

Это всё нужно успеть проговорить за первые полчаса или быстрее. Мы раскрываемся перед кандидатом, задаем планку того, как и о чем рассказывать.

Дальше кандидат рассказывает о себе. Часто люди просят задать вопросы. Самый главный:

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

Многое можно понять по тому, задает ли кандидат те или иные вопросы. Например, когда мы говорим «react, redux» то классический вопрос чувака «в теме» это «thunk или saga»? Обычно, это начало продуктивной беседы с перекрестными вопросами, когда мы советуемся с кандидатом, узнаем его мнение о той или иной технологии, он узнает больше о нас и нашем подходе к программированию, а мы нащупываем его технический уровень.

Иногда мы спрашивали классические «экзаменационные вопросы» типа «как ты оптимизируешь react-компоненту, чтобы меньше тормозило?», но я считаю этот «экзаменационный» стиль поведения во многом капитуляционным, когда не получается наладить качественный, живой человеческий диалог.

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

P.S. Мы только что провели 7 собеседований за один день и это перебор, так я делать не рекомендую (хотя получилось очень результативно и это балансирует чувство, будто вскопал поле).
источник
запуск завтра
P.P.S. Техническое: 1) для бронирования времени собеседования пользуйтесь сервисом appoint.ly, где кандидаты сами выбирают удобное им время из предложенных слотов. 2) проводите собеседования в zoom.us, в режиме gallery, когда экран делится на 3 или 4 части и вы видите лица всех участников сразу. Этот режим максимально приближен к реальной встрече и качество звука в zoom отменное.

А как собеседуете вы? Какое худшее (или лучшее) собеседование было у вас в жизни? Делитесь в чатике @ctodailychat, у нас собралась хорошая компания.
источник