technology

Мессенджеры - плюсы и минусы

А давайте поговорим про мессенджеры. Которые для обмена сообщениями и голосовых звонков. Кто чем пользуется и почему?

У меня есть два мессенджера, которые мне нравятся, и которыми я пользуюсь (они вынесены у меня контакты), и также мне есть что сказать по поводу ещё четырёх, которые мне не нравятся. Прежде чем переходить к подробному разбору, расскажу сначала о критериях, которыми я руководствуюсь при оценке и выборе мессенджера.

NGINX и американские санкции

И знаешь, Геральт, порой бывает так, что Очень Большое Зло схватит тебя за горло и скажет: «Выбирай, братец, либо я, либо то, которое чуточку поменьше...»

А.Сапковский, "Меньшее зло"

Контора, где я работаю, является американской. Соответственно, несмотря на то, что вся разработка нашей системы производится в Эстонии, крутится эта система на американских серверах и продаётся от имени нашего головного офиса, расположенного в Нью-Йорке. Поэтому соблюдение законодательства США является для нас весьма важным требованием.

И в один прекрасный день из юридического отдела "прилетела" очередная задача в рамках соблюдения этого самого законодательства, а именно: заблокировать доступ к нашему сервису из ряда стран, с которыми не дружит США. Куда, естественно, также относится и Крым, который всё никак не могут поделить. И приписка, что, мол, если не получится заблокировать точечно Крым, то можно блокировать всю Украину - клиентов у нас там всё равно нет.

Я поизучал вопрос и ответил следующее. Во-первых, хоть у нас и нет клиентов с Украины, а у наших клиентов, судя по логам, есть, и их это затронет. А во-вторых, если вам нужно стопроцентно и гарантированно заблокировать Крым, то блокировать придётся и Украину, и Россию - в противном случае всегда останется некий процент (до 7%) крымских айпишников, которые фильтр не отловит. Вам как надо: чтобы закон соблюдался или чтоб работало?

Наверху посовещались и решили, что погрешность в 7% их устроит. Тогда я взял страничку с геокодами Украины (по ISO Крым украинский и не волнует) и выписал коды собственно Крыма, а также находящегося на полуострове Севастополя. Вместе с прочими запретными регионами получилась следующая конфигурация в NGINX:

    geoip_country /GeoIP.dat;
    geoip_city /GeoLiteCity.dat;
    geoip_proxy ;
    map "$geoip_country_code:$geoip_region" $embargoed_region {
      default no;
      "UA:43" yes; # Crimea region
      "UA:40" yes; # Sebastopol City, part of Crimea
      "~^CU:.*$" yes; # Cuba
      "~^IR:.*$" yes; # Iran
      "~^SD:.*$" yes; # Sudan
      "~^SY:.*$" yes; # Syria
      "~^KP:.*$" yes; # North Korea
      "~^VE:.*$" yes; # Venezuela
    }

После чего добавил в конфигурацию сервера вставку, которая при запросе из данных регионов возвращает ошибку 451, которая как раз недавно была введена в стандарт RFC по случаю возникшей в последнее время моды на блокировку неугодных ресурсов или стран на государственном уровне:

  if ($embargoed_region = yes) {
    return 451;
  }

Чувствовал себя при этом премерзко. Вероятно, что-то подобное чувствует солдат, которому приказано стрелять в мирное население. И дело тут не только в Крыме.

Новая буква в адресной строке. Перевод сайта на HTTPS

Перевёл вчера сайт на HTTPS. Оказалось не так сложно, как я предполагал — на всё ушла пара часов. Функционально ничего не должно было измениться — ну, если не считать того, что я починил вход через Mail.Ru и Яндекс, который не работал уже давно, но обнаружил я это только в процессе тестирования HTTPS. Всю суть изменений иллюстрирует диалог с Юлей:
— Чем занимаешься? — спросила она, когда я ковырялся в настройках.
— Сайт перенастраиваю, — ответил я, не вдаваясь в подробности.

Через пресловутые пару часов я уже листал страницы своего блога, проверяя, всё ли работает. Юля спрашивает:
— А что ты сделал?
Показываю мышкой на адресную строку (уже сам понимая комичность ситуации):
— Видишь, вот тут буковка "s" появилась...

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

На самом деле, меня бы и это не сподвигло почесаться, если бы не появление Letsencrypt — удостоверяющего центра, совершившего революцию в процедуре выдачи SSL-сертификатов (то есть того, без чего невозможно сделать у себя HTTPS). Сертификаты от Letsencrypt, во-первых, бесплатны, а во-вторых, процесс их получения и ротации полностью автоматизирован. Концепция начинает потихоньку завоёвывать Интернет, приводя к тому, что в последнее время держать сайт без HTTPS действительно стало моветоном :)

Так что я снова в тренде. Надеюсь, что всё по-прежнему работает, но если что отвалилось — вы знаете, куда писать :)

P.S. Кстати, в процессе настройки имел место забавный "побочный эффект": я впервые прочувствовал всю мощь OpenSource. Подробности, впрочем, интересны будет только айтишникам.

Telegram и его пиар-агентство "Роскомнадзор"

— А у меня конспирологические теории начинают в голове роиться.
— В смысле, «вдруг в Роскомнадзоре есть разумная жизнь, и она шлёт нам сигналы?»

bash.org.ru

Вот и мне "прилетело": IP-адрес моего сайта оказался среди тех 18 миллионов, которые Роскомнадзор велел заблокировать в рамках борьбы с Телеграмом. В прошлом году я как раз переехал на AWS, а на прошлой неделе Роскомнадзор начал "ковровые" блокировки адресов ряда облачных провайдеров, в том числе и AWS. Вот нотариально заверенный скриншот с сайта blocklist.rkn.gov.ru:

Впрочем, как известно, в России суровость (хотя в данном контексте лучше подошло бы какое-нибудь другое слово) законов компенсируется необязательностью их исполнения — поэтому у многих мой сайт продолжает открываться. Но, тем не менее, если вы это читаете из России, не прибегая к средствам обхода блокировки — знайте: это не моя (или ваша) заслуга, а их недоработка. Лично я играть в "кошки-мышки" с Роскомнадзором не намерен.*

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

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

Разумеется, в результате этих "умелых" действий Роскомнадзора в Рунете посыпалась куча непричастных сервисов — онлайн-магазины, мобильные сервисы, даже сайты некоторых банков. И, разумеется, весь Рунет только об этом последние две недели и говорит. Преимущественно в нецензурных выражениях. Даже традиционно вежливый Питер не сдержался:

Ниже я поделюсь своими наблюдениями за происходящим, а также проведу небольшой ликбез по криптографии.

Прощание со скайпом

Несколько дней подряд продолжалась борьба за жизнь космонавтов и сотрудников базы. И закончилась поражением врачей. Им не только не удалось вылечить заболевших, но и они сами, несмотря на все меры, тоже заболели.

Кир Булычев, "День рождения Алисы"

Предыстория. Вчера у [info]lena_do вскрыли скайп и начали клянчить деньги у людей из контакт-листа от ее имени. Причем адресно, с изучением контекста - примерно по такой схеме. Что любопытно, смена пароля не помогла - "двойник" продолжал преспокойно писать, пытаясь втереться в доверие не к одному, так к другому. Как говорится, "очень заинтересовала Тоцкого такая дивная метаморфоза" ©, поэтому я взялся помочь.

На удивление, не помогало вообще ничего. То, что смена пароля не прекращает активные сессии и не выкидывает всех, кто залогинен под старым паролем - уже само по себе удивительно. Но тут все было гораздо веселее: cкайп, запущенный на компе, на телефоне, на планшете, не только спокойно работал после смены пароля, не спрашивая нового, но также успешно запускался после логаута, после логаута с очисткой кэша, после логаута с перезапуском устройства... в общем, как будто смены пароля и не было. Команда /remotelogout, которая в теории должна принудительно прекращать все активные сессии, тоже не работала.

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

Однако, оглядываясь назад, я пришел к выводу, что как-то и не жалко. Как говорится, время разбрасывать камни и время собирать камни. Когда скайп только появился, он был немеряно крут для своего времени. Но это время безвозвратно ушло, скайп оброс кучей атавизмов, благодаря которым его обходят конкуренты так же легко, как когда-то он сам обошел своих тогдашних конкурентов. Из удобного и в то же время "непотопляемого" приложения, которое "просто работает", скайп постепенно превратился в неповоротливого монстра и страшное глюкало, не вызывающее ничего, кроме раздражения. Окончательно же его добило поглощение Майкрософтом, которого явно больше заботит не столько качество продукта, сколько идея загнать всех приобретенных вместе со скайпом пользователей пинками в светлое будущее в единую базу пользователей и конвертировать их в стоимость акций.

Единственное, чего жалко - это "хистори", логи разговоров, которые я хранил ажно с 2007 года, бережно перенося с машины на машину и каждый раз восстанавливая при новой установке скайпа. Но поскольку файлы с базой логов физически хранятся у меня на машине, а конвертеров в Интернете полно, я просто сконвертировал базу в аккуратно разложенные по отдельным разговорам HTML-ки, и теперь мне даже не нужно запускать скайп, чтобы посмотреть старые разговоры. Более того, искать стало даже проще, поскольку в последних версиях скайпа поиск был просто ужасен.

Так что нафиг. Одним приложением меньше, одной проблемой меньше. Покойся с миром, Skype.

Блог переехал на AWS

Постоянные посетители моего сайта, возможно, обратили внимание, что он стал как будто бы пошустрее. Так оно и есть: примерно пару недель назад я не стал продлевать хостинг на Bluehost и со всем своим нехитрым скарбом (доменное имя, база данных для CMS и около гигабайта файлов) переехал на Амазон. По ощущениям, на новом месте сайт работает быстрее раза в два. Особенно это заметно при листании фотографий (например, здесь) - раньше эта процедура тормозила просто нещадно, а сейчас стало значительно приятнее - несмотря на то, что хостинг по-прежнему физически расположен в Америке.

Переехал я на обычную виртуалку EC2 t2.micro. После shared-хостинга на ней чувствуешь себя очень просторно. Кроме того, оно еще и почти вдвое дешевле, чем на Bluehost (при условии предоплаты, конечно, но на старом месте я тоже платил вперед). А первый год так и вовсе бесплатно за счет Free Tier. Разумеется, все, что на готовом хостинге предоставлялось "из коробки", теперь пришлось устанавливать и настраивать самому, но, во-первых, я вполне в состоянии это сделать, а во-вторых, у меня появилась замечательная возможность сделать все так, как я хочу, а заодно и попробовать применить в домашних условиях docker - инструмент, которым я недавно проникся :)

Под катом немножко технических тонкостей.

Миграция на SSD при наличии битых блоков

Все-таки я иногда бываю феерическим тормозом.

Предыстория такова: на жестком диске моего ноутбука обнаружились битые блоки. Это может быть предвестником скорой смерти диска, может не быть, но рисковать все равно как-то не хочется. Поэтому было принято решение жесткий диск менять. "А раз уж все равно менять, - подумал я, - то почему бы благородному дону не перейти на более современные технологии и не поставить себе SSD?"

Аудиокниги в радиоэфире. Выдирание потокового аудио


Картинка для
привлечения
внимания :)

Озаботился поиском аудиоматериалов на эстонском. Живую речь по радио слушать пока еще очень тяжело, хотя и попадаются интересные передачи. Есть, кстати, великолепное приложение для Windows под названием ScreamerRadio, которое позволяет слушать любое интернет-радио, да еще и записывать эфир в mp3. Но для начала, прежде чем запрыгивать на уровень понимания радиоэфира, хотелось бы послушать чего-нибудь более размеренного, литературного. Попытался поискать аудиокниги, но их в свободном доступе оказалось удручающе мало.

Но оказалось, что на некоторых радиостанциях регулярно читают отрывки из книжек. Более того, на сайте национального телерадиовещания ERR есть архив передач нескольких радиостанций, где можно посмотреть программу передач за любой прошедший день и прослушать запись любой из них. Некоторые можно даже тут же скачать, но фрагменты книг к таковым, к сожалению, не относятся. Но их можно послушать - и это уже очень хорошо. Красота: залез в архив, нашел нужную книжку, запустил и слушаешь через Bluetooth-наушники, бродя по квартире.

Впрочем, в какой-то момент мне захотелось детально разобрать один фрагмент, в процессе чего мне нужно было регулярно возвращаться назад, чтобы прослушивать непонятные места снова и снова. Так вот: я задолбался кликать по нужному месту слайдера онлайн-плеера, чтобы отмотать запись чуть назад! То ошибаешься на несколько десятков секунд (которые на слайдере соответствуют паре пикселей), то вообще мимо слайдера промахиваешься. Обычно в хорошем аудиоплеере можно перескакивать на несколько секунд назад или вперед нажатиями кнопок "влево" и "вправо" соответственно на клавиатуре - но плеер на сайте ERR по этим кнопкам прыгает сразу на две минуты, что меня никак не устраивало.

В общем, снова встала проблема сохранения потоковых медиаданных, как несколько лет назад, с мультиком "Pitt and Kantrop". Использованные там методы уже неактуальны, поэтому пришлось начинать все сначала.

Пробовал разные плагины для Хрома - ничего не подошло Пробовал специальный браузер Torch, в который встроен некий Media Downloader - тоже бесполезно. Попытался сам расковырять структуру документа, нашел в медиаплеере ссылку на URL, начинающийся на "rtmp://". Полез читать про протокол RTMP, набрел на приблуду RTMPDump. Не сработало. Нашел интерактивное приложение StreamCapture, сделанное на основе RTMPDump - опять мимо.

Решение нашлось совершенно неожиданно. Я где-то раскопал инструкцию, утверждающую, будто плеер VLC умеет скачивать RTMP-потоки. После всех опробованных средств верилось с трудом, но все равно на всякий случай попробовал, благо VLC у меня стоит. На удивление все получилось - пусть в "реальном времени", то есть двадцатиминутная аудиозапись качается двадцать минут, но хоть так.

Для тех, кому интересны подробности, под катом - пошаговая инструкция.

Непривычные вещи в Эстонии. Евро и Интернет

В новой стране довольно многие вещи оказываются непривычными. В некоторых вопросах потребовалось время на то, чтобы разобраться в том, что именно непривычно, понять "как это у них" и чем оно отличается от того, "как это у нас" - да и просто для того, чтобы убедиться, что первое впечатление не обманчиво. Сегодня, на девятом месяце пребывания в Эстонии, я уже чувствую себя немножко вправе порассуждать о двух вещах: о деньгах и об использовании Интернета. Само собой, на полное и всестороннее рассмотрение не претендую, поэтому вопросы и комментарии приветствуются.

Дружественный к мобильникам Drupal 7

Блог на Drupal - да и вообще любой standalone-блог - требует некоторых усилий по настройке. Особенно сложно найти более-менее пристойно выглядящую тему оформления. Давние читатели, возможно, помнят штук пять разных "лиц" сайта, которые я менял одно на другое в попытках улучшить визуальное восприятие своего блога. Несколько месяцев назад я остановился на теме Zero Point - она была практически идеальной, и мне казалось, что вопрос с оформлением закрыт надолго.

Но в мой уютный мир, как обычно, вмешался Гугл. Это случается уже не первый раз: некоторое время назад своими нововведениями он разломал с трудом выстроенную схему входа по OpenID, которую в конечном итоге так и пришлось похоронить, заменив ее на более современную OAuth-идентификацию через соцсети. В этот же раз он заявил, что сайты, не оптмизированные под мобильные устройства, с апреля начнут получать более низкий рейтинг в поисковой выдаче по сравнению с "дружественными" к мобильным устройствам.

Поскольку львиная доля визитов на мой сайт приходится на поисковые запросы, я забеспокоился, насколько это нововведение отразится на мне. Сам-то я неоднократно заходил к себе с мобильника и не испытывал каких-либо сложностей, но оказалось, что Гугл считает иначе. Вот, как выглядел тест моего сайта на "дружественность" к мобильным устройствам:

Сайт Myx.Ostankin - not mobile-friendly

Поизучав прилагающиеся к результатам теста рекомендации, я узнал, что в случае с Drupal проблему можно решить установкой более подходящей темы оформления - из тех, что называются "adaptive" или "responsive". Zero Point к подобным темам не относится - значит, придется опять искать новую. Так что, пользуясь тем, что я недавно сделал себе инструмент для создания временной копии сайта, я начал неторопливо экспериментировать с разными темами оформления, каковых в Интернете валяется не один десяток.

Как ни странно, я сравнительно быстро нашел практически полностью подходящую тему Alpha Responsive Theme, установил ее, немножко подкрутил CSS-свойства - и вуаля! Теперь я тоже дружественный к мобильникам! :)

Сайт Myx.Ostankin - теперь оптимизированный под мобильники

P.S. А полезно все-таки излагать свои мысли в письменном виде. Пока писал пост, полез искать ссылку на тему Zero Point, и обнаружил, что там тоже появилась mobile-friendly версия. Но когда я с ней поэкспериментировал, мне не понравилось, как она растягивает страницы на больших экранах, перемешивая текст с картинками - старая версия так не делала, да и Alpha тоже таких вольностей себе не позволяет. Так что пусть остается Alpha.

Страницы