Новое

страница 119 из 174

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

Mailchimp блокировал таким макаром Медузу на самом запуске, так что с RAWG я подстраховался и написал им письмо в поддержку заранее.

На этот раз их роботы никакого криминала не увидели. Ненавижу, когда нашу судьбу решают машины.

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

Начиная с субботы, я избавляюсь от телефонной, и шире, информационной зависимости. В последние месяцы компульсивное чтение hackernews и бесконечные чаты в телеграме стали уж совсем невыносимы, так что я по наводке психотерапевта залез в раздел Screen time нового iOS и ужаснулся. Оказывается, я провожу в телефоне по 4 часа в день.

В новом iOS появилась возможность поставить лимиты на определенные приложения; например, разрешить себе не больше 30 минут инстаграма в день. Я решил не мелочиться — заблокировал все приложения кроме «функциональных». Так называемый downtime, когда блокируются все приложения кроме «белого списка», у меня начинается в 00:01 и заканчивается в 00:00 (получаются сутки минус минута). Отдельный смак — во время downtime скрываются все пуш-уведомления от заблокированных приложений, так что не нужно больше сидеть «вычесывать» пуши по одному в настройках.

Если вы подумывали перейти на «телефон-кирпич», но не хотели отказываться от функций смартфона — рекомендую поиграть со Screen time в iOS 12. Релиз выйдет в ближайшие недели, но установить бету можно уже сейчас. Бонус — iOS 12 существенно быстрее предшественника. Мой старенький SE опять начал летать.

До включения Screen time я пользовался телефоном 3-5 часов в день, с ним — час-полтора.

Интересно, что количество «поднятий телефона» в день практически не изменилось — 80, хотя время пользования упало в несколько раз.

Божественная статья про то, как манипулировать данными (и про глобальное потепление).

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

1. Для начала смотрим только на график минимальных температур — уже чуть лучше (хотя тоже растет).
2. Берем только летний сезон — ещё чуть лучше.
3. Выкидываем данные с 1895 по 1918 год (потому что без них лучше).
4. Не берем данные, предобработанные профессионалами (они учитываю то, что в новые метеостанции ставятся всё в более северных широтах), а используем тупо среднее всех измерений.
5. Profit

график здорового человека

график курильщика

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

Во первых, нужно выбрать, кого собеседовать. Мы смотрим на исходный код. Просим ссылку на репозиторий, 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, у нас собралась хорошая компания.

Ватсап открывает Business API, позволяет создавать «бизнес-профили» ботов с описанием бизнеса, ссылками и часами работы. Во вторых, партнерится с Twilio, позволяет использовать стандартное API Twilio (и запрашивать аппрув через их интерфейс) для отправки и получения сообщений.

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

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

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

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

В любом случае — медиа это должно быть интересно.

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

Тем не менее, жизнь не останавливается: на вакансию фронтендера пришло 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. Чувствую, что это теория заговора, надеваю шапочку из фольги.

Анонимный источник из Google передал The Intercept внутренние документы о проекте «Стрекоза». Речь идет о запуске в Китае Android-приложения «Google Search», которое будет автоматически убирать из поисковой выдачи все ссылки, блокируемые великим китайским файрволом.

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

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

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 в личку.