Вчера мне пришло удивительное письмо:
Мой друг в составе команды исследователей шельфа северного ледовитого океана сейчас «болтается» в **, чуть западнее острова N на корабле Z. В море им быть ещё минимум два месяца. Говорит, без новостей с большей земли пухнет голова. У них есть интернет, через спутниковый телефон, но канал очень узкий. Если это не сложно для вашего технического отдела, не могли бы организовать отправку дайжеста новостей на электронную почту текстом в архиве на электронную почту xxx@xxx.ru размером письма не более 100 кБ?
Письма Вечерней Медузы за последнюю неделю весят в среднем 50-70KB. Львиная доля объема — код, что позволяет выглядеть письмам одинаково во всех почтовых клиентах; это почище кроссбраузерной верстки.
Давайте попробуем убрать всю красоту и оставим только текст и минимальные выделения. Текст ниже — для компьютерщиков. TL;DR: «вот так, с помощью нехитрых приспособлений...»
Откуда мы будем получать событие об отправке письма? Подойдет webhook в mailchimp, через который мы рассылаем вечерку. Настроим простенькое приложение webhook, которое будет ждать события, а при его получении — запускать нашу программу.
Что в самой программе? Зная ID почтовой рассылки мы можем через API мейлчимпа получить тело письма. Но оно не особо красивое и вычищать его не хочется. Как насчет API Медузы? И вправду, в plaintext версии письма последняя ссылка — всегда на это же письмо на сайте. Например, вот вчерашнее письмо https://meduza.io/brief/2017/09/05/vechernyaya-meduza.
Добавляем `api/v3/` в адрес новости после имени сервера и получаем адрес API https://meduza.io/api/v3/brief/2017/09/05/vechernyaya-meduza. Тут уж есть поля .root.mail.subject и body, которые содержат тему и тело письма, без лишних стилей. Отлично, вычленяем нужные поля с помощью утилиты парсинга json jq и схлопываем их вместе в готовый email.html файл утилитой cat.
Как отправить получившееся письмо? У сервиса отправки писем Amazon Simple Email Service есть отличный SMTP-интерфейс и я как раз недавно нашел программу sendemail (не путать с sendmail, которая позволяет отправлять письма через SMTP из командой строки.
Теперь исследователь севера каждый вечер будет получать «высушенную» версию Вечерней Медузы весом всего 15КБ.
А вы можете подписаться на красивую, сверстанную с любовью Вечерку в почте или в телеграм-канале @meduzaevening и узнавать новостную повестку дня за пару минут.
Этот чувак бьет в самое сердце. Я меня уже выработалась слепота на маркетологический булшит на лендингах стартапов, наподобие баннерной слепоты на рекламу kasperkubica/for-the-love-of-god-please-tell-me-what-your-company-does-c2f0b835ab92" rel="nofollow">https://medium.com/@kasperkubica/for-the-love-of-god-please-tell-me-what-your-company-does-c2f0b835ab92
Меняете жизнь людей к лучшему с помощью технологий? Не делайте так, пожалуйста. Пишите как есть.
Project Shield — бесплатный CDN/Anti-DDoS для защиты свободы слова от Google выкатил обновление. Теперь публично доступны JS-challenge, IP-rate limiting и инвалидация кеша (пока без API).
CloudFlare Galileo всё ещё самый мощный и бесплатный для медиа, но пусть расцветают сто цветов — больше провайдеров хороших и разных.
В пятницу вечером в Японии сломался интернет. Настолько сломался, что министерство внутренних дел начало разбирательство.
BGPMon подробно объяснил, что случилось и я без зазрения совести ниже перескажу эту историю.
Помните, как в 2008 году пакистанский провайдер пытался заблокировать YouTube и случайно сломал его для большей части интернета? Это произошло из-за той же технологи, из-за которого японцы лишись интернета на прошлой неделе.
BGP - протокол, с помощью которого провайдеры обмениваются
«картами связности», говорят друг-другу, как можно отправить сообщение на любой компьютер в интернете.
Работает он примерно так: я говорю своим московским товарищам, что живу в Риге, частенько езжу в Москву (на сетевом языке это называется пиринг с Москвой) и могу передать посылку рижанам. Мои московские друзья передают эту информацию своим друзьям в Казани и теперь казанцы знают, что посылки рижанам можно переслать через Москву. Казанцы передают это сообщение дальше и скоро весь мир знает, что до Риги можно достучаться через меня. (При этом сами рижане вряд ли будут общаться через меня, ведь у них есть более короткий путь до соседа)
В 2008 Пакистанцы объявили, что пакеты в YouTube теперь ходят через них (чтобы потом их тихонько "дропать", то есть делать вид, что их и не было - классический способ блокировки). Скорее всего, они собирались так сказать только своим пользователям, но сообщение случайно утекло во внешний мир и скоро весь интернет пытался получить доступ к ютубу через Пакистан (безуспешно).
В пятницу произошла менее драматическая, но не менее опасная ситуация с Гуглом. Гугл пирится с огромным числом провайдеров, иначе YouTube и поиск не работали бы так быстро. Для того, чтобы трафик от гугла «ходил» напрямую и случайно не завернул через посредника, провайдеры анонсируют свои адреса гуглу специальным образом, имеющим наивысший приоритет. Около полудня пятницы, Гугл, случайно транслировал все эти приватные анонсы крупному провайдеру Verizon. Ошибка длилась 10 минут.
По-умолчанию, BGP-роутеры передают почти все анонсы соседям - так формируется связность интернета. Verizon - не исключение. Эти приватные анонсы быстро распространились и гуляли по BGP-сети ещё добрых полчаса.
Провайдеры стали пытаться передать данные друг-другу через цепочку Verizon-Google. Google вообще не занимается транзитом, а Verizon не рассчитывал на такие объемы. Многие остались без связи.
BGP - одна из технологий, во многом построенная на доверии профессионалов друг-к-другу. Тем болезненнее, когда они ошибаются.
Сегодня вышла вторая статья за 8 дней, в которой разработка помогла журналистскому расследованию.
При подготовке первой, вместо классического инструмента поиска связей ЕГРЮЛ использовалась база данных RIPE. Вы знали, что она хранит историю правок 10 лет, но пользоваться ею можно только через линуксовый whois?
Для сегодняшей статьи про стихи Бастрыкина мы лопатили version log википедиии и пробивали IP адреса.
Синергия 🙊
А у вас есть запасной канал интернета на такие вот случаи?
Есть, не работаю в медиа – 298
👍👍👍👍👍👍👍 44%
Нету, не работаю в медиа – 286
👍👍👍👍👍👍👍 42%
Есть, я работаю в медиа – 44
👍 6%
Не знаю – 31
👍 5%
Нету, работаю в медиа – 23
👍 3%
👥 682 people voted so far.
Если вам нужен эмулятор Android под MacOS и вы ещё не знаете о Genymotion — то вот пошаговая инструкция (включая то, как установить Google Play Services и Google Play) https://gist.github.com/gsamat/762dbba85d131640d536044afa8a94c4
Читать полностью…Раньше сайт Медузы грузил шрифты так, что текст прыгал на доли секунд при загрузке страницы. Это было нежелательным побочным эффектом оптимизации сайта для мобильных читателей, которые попали на Медузу впервые. «Прыжки» подбешивали внимательную аудиторию в десктопе.
Мы переработали схему. Теперь, при первом открытии сайта показываются системные шрифты, а при всех следующих заходах — наши. Без каких-либо дерганий.
Оптимизация веба для скорости — бесконечно большая и интересная тема. Мы пока выбираем 80% процентов профита, достигаемые первыми 20% труда.
На свете есть два крутых платежных провайдера для интернет-компаний, Braintree и Stripe. Обе компании обрабатывают карточки, являются посредником между вашим сайтом/приложением и платежными системами MasterCard/Visa.
Оба они, конечно, из Америки и начали работать с компаниями из Европы относительно недавно — финтех мир он такой. России в списке поддерживаемых стран, конечно, нет и с текущими развитием событий, наверное, не появится. Речь идет о стране юрлица-получателя денег; покупатели ваших товаров могут быть почти отовсюду, список стран под эмбарго OFAC совсем маленький (Северная Корея, Иран, ещё 5 неинтересных стран и Белоруссия).
Stripe пытается решить "проблему не-США мира", запустив программу Atlas. За тысячу долларов они регистрируют для вас бизнес в штате Делавер, в котором инкорпорирована половина интернет компаний планеты.
А повод написать про это у меня такой: посмотрите на список стран, в которых не работает Atlas Stripe. Мы в хорошей компании 🤦♂️
Хорошая статья про роль техдира от CTO Zapier.
Из-за врожденной любви к рефлексии я много думаю на эту тему
Основная мысль статьи: до 12 технарей в команде ещё можно быть программистом и менеджером одновременно. Потом нужно выбрать то, что приносит тебе больше удовольствия - решать технические проблемы самому или помогать это делать другим.
Начиная с детства, когда я занимался олимпиадным программированием, рядом со мной всегда были программисты сильнее меня. В каждой компании, где я работаю, есть программист от бога, способный программировать быстрее и лучше меня. Решение, как говорится, очевидно.
https://zapier.com/engineering/startup-cto/
Ну что, теперь в России заблокировали google.ru
В реестре он был с 2016 года, но теперь зачем-то попал в реальную выгрузку, по которой провайдеры осуществляют блокировку (как будто нужно исполнять все законы, а не делать как получается).
Тролололо
Крупное открытие для меня — то, насколько крутой редактор кода Visual Studio Code. От Microsoft, бесплатный, быстрый и очень мощный.
Такого внимания к деталям я уже давно не видел, прямо чувствуешь, что о тебе позаботились. При открытии проекта на Go, например, он предлагает установить 100500 экстеншенов (одним кликом мышки!) и превращается в полноценное IDE — выглядит как магия.
https://code.visualstudio.com/
попытка встроить рекламу в Accelerated Mobile Pages «красиво», чтобы само добавлялось между абзацами с нужными пустотами
Читать полностью…Насчет журналистской солидарности, в отсутствии которой меня уличают (/channel/mediasrachi/736) . Журналисты не при чем (неуиновны).
Налицо или халтура разработки: не протестировали ничего толком, не подготовились к нагрузке; или некомпетентность руководства, когда к разработке приходят с запросом «сколько тебе нужно времени, чтобы это было готово завтра?».
Извините, если выглядело как наезд, это не так. Это была серия постов «смотрите, как не нужно делать».
Запуск больших проектов — сложно и больно, но зато, в теории, есть время подготовиться. Супер-важно, чтобы руководство понимало, что «у меня всё работает» не равно «можно запустить на 100 тысяч пользователей». Ответственность разработки — объяснить важность тестирования. Вот вам бесплатный хороший кейс, на который можно ссылаться.
3. После неуспешного HTTP запроса react-приложение ломается совсем :(
Всё, прекращаю избиение младенцев в прямом эфире.
Исследователи нашли нашли серьезную уязвимость в эстонском e-id, позволяющую выступать от имени держателя e-id незаконно. Пока идет починка, не сообщается, какая именно это уязвимость. Президент страны обещает сделать заявление по этому поводу сегодня же https://medium.com/e-residency-blog/heres-what-e-residents-need-to-know-about-the-potential-security-vulnerability-d31a128726f5
Мне очень нравится, что они называют «потенциальной уязвимостью» то, что не эксплуатировали хакеры.
Это как называть «потенциальным автомобилем» машину, на которой не успели поездить покупатели.
Последние 10 минут моей жизни (осталось около 1с) - божественное наказание за срывы дедлайнов
Читать полностью…Идеальный механизм удаления проектов в Google Cloud Platform.
При нажатии на «удалить» проект перемещается в корзину на месяц и выключается, так что ты сразу замечаешь, если от него что-то зависело.
Всем администраторам на почту приходит письмо, одним кликом по ссылке в котором можно восстановить удаленный случайно проект. 🌷
Кстати, если вас бесит энергопотребление Google Chrome под Mac — попробуйте Safari Technology Preview, он работает достаточно быстро (порой кажется даже шустрее Chrome) и при этом гуманно относится к батарее.
Читать полностью…Про совпадения.
Прямо сейчас Серебреников в наручниках в зале суда в Москве. Медуза ведет онлайн.
За 5 минут до начала трансляции что-то происходит со связностью между Lattelecom и Amazon (пару минут всё отлично, пару минут пакеты не ходят совсем). Редакция замечает это, в первую очередь, по недоступности Slackа.
Мы переключаем uplink на резервный LTE-роутер от LMT (латышский аналог МТС). Всё хорошо, пока редакторы не пытаются зайти на HTTP-сайты (смотрю нехорошим взглядом на tass.ru и interfax.ru). Происходит мистический 302 редирект на 192.168.8.2, который не грузится. Времени на поиск причины нет, решаем заплаткой с Chrome Data Saver (де-факто, VPN).
Оказалось, что LTE-роутер хочет обновить прошивку, делает DPI HTTP-сессий (но не HTTPS) и заменяет ответ сервера на 302 редирект. Из-за того, что таких запросов много — его веб-сервер не выдержал и ничего не отдавал. Одна из редакторов оказалась достаточно терпеливой, чтобы дождаться загрузку админки, я кликнул там «не сообщать об этом больше» и проблема решилась окончательно.
Прямо сейчас редакция работает через LTE-точку и это довольно магически. Насколько же это крутая технология, что офис из более чем 20 человек может спокойно пользоваться uplink обычного бытового LTE-модема.
Ах да, только что мой провайдер написал, что изменил роуты и всё должно стать ок, но я, пожалуй, дождусь конца трансляции.
Ни один лонгрид или инструкция в медиа не дадут вам фундамента информационной безопасности (хотя это было бы очень классно).
Хорошие книги - совсем другое дело.
На Humble bundle идёт распродажа комплекта книг по информационной безопасности. За 1$ - 4 книги, одна из них про социальную инженерию, когда эксплуатируют доверчивость человеческой натуры. За 8$ - еще 5 книг, среди них - каноническая книга самого известного хакера Кевина Митника - The Art of Deception, тоже про "социалку". За 15$ - ещё 5 книг. В том числе библия информационной безопасности от Брюса Шнайера, прекрасного автора, стоявшего у истоков современной криптографии. В этом же наборе книга про физическое проникновение (обещают научить вскрывать базовые замки!).
Книги про социалку не требуют специального технического образования, это non-fiction. Будет потом что рассказать на вечеринке. Книга Брюса будет понятна технарям и, как мне кажется, является обязательным чтением для всех IT-специалистов.
Распродажа заканчивается через 2 дня, не пропустите. Часть собранных средств идёт на благотворительность.
https://www.humblebundle.com/books/cybersecurity-wiley
Помните, телеграм объявлял конкурс на лучший Instant View Templates для тысячи сайтов? Они всё никак не предоставят результаты и не запушат эти шаблоны в продакшен.
Пока что, единственный способ показать свои страницы в Instant View — запостить их по хитрой ссылке t.me/iv?url=...&rhash=.... Именно так мы и хотим сделать для запуска красивой «Вечерней Медузы » в телеграме. На конкурс прислали почти 150 шаблонов, казалось бы — бери и пользуйся хоть сейчас. Проблема в том, что rhash шаблона знает только его создатель.
Уважаемые авторы, подавшие свои шаблоны на конкурс — скиньте мне свой исходный код, пожалуйста. Приславший лучший шаблон до завтрашнего вечера (18:00 по Москве) получит неизменную бутылку рижского бальзама и мега-набор стикеров (физических, не телеграмных).
Проверить свой шаблон можно на тестовом материале: https://meduza.io/brief/2017/07/17/testovaya-vechernyaya-meduza-so-vsemi-vozmozhnymi-vyrazitelnymi-sredstvami
Утренняя кулстори. Мой рижский провайдер берет внешний интернет у Lattelecom. Это местный аналог Ростелекома, крупнейший в Латвии, остатки советского наследия.
Так вот, недавно мы заметили, что некоторые заблокированные Роскомнадзором сайты не открываются и в Риге тоже. Выяснилось, что часть маршрутов у Латтелекома идут через русских провайдеров, которые не заморачиваться и блокируют доступ и на транзитном уровне.
После нашей просьбы Латтелеком перестроили маршруты для указанных адресов, обойдя злобных буратин, но сколько таких адресов я не заметил?
Это очень похоже на блокировку YouTube в 2008 году, когда Пакистан объявил, что ютуб нынче хостится в Исламабаде и большая часть сетевого оборудования им поверила.
Сложновато с цифровым суверенитетом в системе, придуманной для максимальной отказоустойчивости (в случае советской ядерной атаки, в том числе).
Про AdSense рекламу в AMP:
1. используйте DFP, не бахайте напрямую AdSense, иначе наедитесь потом во время теракта. AdSense не даёт возможности отключить рекламу динамически никак. В DFP это делается за секунду.
2. В DFP не нужно вставлять никаких AdSense кодов, это два лишних запроса, тормоза = плохо. Просто поставьте галочку Maximize revenue of unsold and remnant inventory with AdSense внутри DFP. Отчеты будут внутри DFP, деньги — внутри AdSense аккаунта.
несколько часов ковыряния в документации, чтобы понять, что функционал ещё не доступен публично и нужно делать по-старинке :\
Читать полностью…Если кто-нибудь поможет и объяснит, почему время от времени запрос становится Stalled (главная, на минуточку!) — буду очень благодарен.
Читать полностью…Осторожнее с ES в AWS (вкратце: ничего хорошего) https://read.acloud.guru/things-you-should-know-before-using-awss-elasticsearch-service-7cd70c9afb4f
У нас в Медузе с эластиком love-hate отношения. Пока работает — просто супер, хочешь что-то поменять — пиши пропало.