Passionflower

Блог о страстной любви к программированию, дизайну и путешествиям

m4rr.ru  •  резюме  •  medium in english

Ctrl + ↑ Позднее

Стикеры для технарей в Телеграме

Сегодня мне на глаза попались иллюстрации для IT-конференции.

Это макеты наклеек для конференции с известными мемами в среде технарей и сочувствующих. Иллюстрации с любовью нарисовала @alice_sleeping. Когда оказалось, что их еще никто не собрал в набор стикеров для Телеграма, я срочно это исправил.


 
🔥 Пользуйтесь в продакшене! 🔥

 

Обновление. Админы tlgrm.ru считают, что стикеров недостаточно, чтобы попасть в каталог.

Обновление 2. За два дня 1370+ установок! Стикер про «продакшен» отправили 660+ раз.

Авторизация — 2.1

Приложуха для авторизации в MosMetro_Free обновилась до версии 2.1.

https://m4rr.ru/mauth

Теперь приложение ждет, когда айфон подцепится к вайфаю, и только тогда автоматически начинает процесс авторизации. Вам понравится!

Еще: фикс для айос-8; и после успешного подключения появляется панелька Quick Open. Посмотрим, как это отразится на рейтинге приложения :)

Думаю, надо пояснить почему вместо Яндекса теперь САЛ. Штука простая: как я понял, Ya.ru стал форсить SSL-подключение, и мне нужен был отсталый сайт, который не форсит, но при этом имеет HTTPS-версию. И вот!

Скачать бесплатно, без смс и регистрации.

2016   mauth

Авторизация — 2.0

В Апсторе появилась вторая версия приложухи для авторизации в MosMetro_Free!

https://m4rr.ru/mauth

В этой версии снова работает алгоритм авторизации, поддерживаются iOS 8.3 и выше. Вместо Яндекса — Студия Лебедева.

Скачать бесплатно, без смс и регистрации

2016   mauth

Продление сертификатов Let’s Encrypt

В прошлой заметке я рассказал как установить на свой сайт сертификаты Let’s Encrypt (бесплатно, без смс). С тех пор быстро прошли три месяца, и сертификаты пора обновить.

Я не успел узнать как правильно настроить крон, чтобы автоматизировать продление, поэтому пришлось сделать это вручную. Но я узнал, что за это время появилась специальная команда renew :)

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

cd letsencrypt/             # перейти в директорию letsencrypt
git pull                    # скачать обновления репозитория
./letsencrypt-auto --help   # проверить, что все нормально
sudo service nginx stop     # остановить сервер
./letsencrypt-auto renew    # ← обновить сертификаты
sudo service nginx start    # запустить сервер

Все, теперь сертификат валиден еще три месяца. После отпуска я обязательно автоматизирую это.

Respect My Authority!

2016   SSL   сайт

English Summer Rain

Я часто забываю какие-то простые штуки в английском языке. И поэтому, задаю эти глупые вопросы дорогой подруге Лизе. Так вот, чтобы зафиксировать эти частые случаи, я решил писать посты об этом. Итак.

Мой глупый вопрос 1:

А какая разница между “Aeroflot has cancelled my flight” и “Aeroflot cancelled my flight”?

И... правильный ответ:

  1. Только что или недавно. 2. Просто ты рассказываешь факт.

Глупый вопрос 2:

А как правильно: What steps you already did? или What steps you are already did? Или вообще по-другому?

И правильный ответ:

What steps have you already done? Потому что already указывает на perfect.

***

Prepositions of Time: at, in, on — предлоги ко времени.

***

Для тех, у кого нет возможности спросить Лизу по-дружески, — она преподает английский и испанский языки. Отмечайтесь в комментариях, если интересно.

Новый год

Календарь за прошлый год:

Прошлые календари — по тегу.

Let’s Encrypt

cover black transparent

С середины ноября, с подачи друга, я активно стал следить за прекрасным начинанием Let’s Encrypt:

До декабря 2015, сертификаты продавались исключительно за дикий оверпрайс. А теперь появился Let’s Encrypt, и выдает настоящие сертификаты бесплатно.

Для чего нужен SSL-сертификат? Трафик с сайта может быть незашифрованный или зашифрованный и подписанный сертификатом. Во втором случае подтверждается, что весь трафик идет именно с этого сайта и по пути не подменяется злоумышленниками. В первом случае — ничего не известно.

Сертификаты отличаются степенью идентификации. Для личного сайта подходит простой. А вот у Рокетбанка в строку адреса еще добавляется модное 🔒Rocket LLC.

Раньше простой сертификат можно было бесплатно получить только у StartSSL по сложной инструкции на Хабре. Я установил такой сертификат на m4rr.ru полгода назад, и периодически наблюдал, как на каком-нибудь компьютере сайт не открывался due to SSL issue.

Стоит заметить, что корневые центры сертификации подтверждают сертификаты Let’s Encrypt. А это значит, современные браузеры считают их правильными!

Получить и установить сертификат Let’s Encrypt божественно просто. Пара важных замечаний:

  • — система Let’s Encrypt сейчас в стадии бета-тестирования — обратите внимание, если вам это не подходит;
  • — сертификаты выдаются на 90 дней;
  • — не забудьте сделать бекап вашей виртуалки до начала.

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

Чтобы начать работу, нужно склонировать на свой сервер репозиторий letsencrypt, перейти в эту директорию и запустить враппер letsencrypt-auto:

$ git clone https://github.com/letsencrypt/letsencrypt
$ cd letsencrypt
$ ./letsencrypt-auto --help

После этого нужно запустить создание сертификата. Например, для двух доменов — m4rr.ru и blog.m4rr.ru — код будет таким:

$ ./letsencrypt-auto certonly --standalone -d m4rr.ru -d blog.m4rr.ru

Если в это время nginx был запущен, то программа попросит выключить его на время, чтобы она смогла слушать :80 порт.

Когда все будет готово, система сообщит об этом. Жирным выделено два важных момента:

Congratulations! Your certificate and chain have been saved at /etc/.../fullchain.pem. Your cert will expire on 2016-03-06. To obtain a new version of the certificate in the future, simply run Let’s Encrypt again.

Дальше нужно просто внести информацию о сертификате в конфиг сервера. Например:

server {
  listen 443 ssl;
  server_name m4rr.ru;

  ssl on;
  ssl_certificate     /etc/.../fullchain.pem;
  ssl_certificate_key /etc/.../privkey.pem;

  ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
  ssl_ciphers ALL:!aNULL:!ADH:!eNULL:!LOW:!EXP:RC4+RSA:+HIGH:+MEDIUM;
}

И добавить в календарь на Маке специальное событие:

А через 90 дней, я расскажу как это автоматизировать ;)

Ссылки по теме:

2015   SSL   сайт

Москва. Метро. Авторизация вайфай

Ура, модераторы наконец апрувнули mauth в Апсторе!

mauth icon  mauth on the App Store

Все посты об этом — по тегу mauth.

Процесс прохождения модерации был очень долгим. Приложение работает стабильно и безопасно, но информации о его работе дважды оказалось недостаточно для review team. Поэтому mauth получил два metadata rejected, и трижды проходил ревью. Все это заняло около месяца.

Поэтому, сейчас в Апсторе более ранняя сборка, которая и была актуальна месяц назад. Она работает по-старому — полуавтоматически, но стабильно.

За время, пока mauth проходил ревью, в Сторе появилось еще одно интересное приложение почти на эту же тему! Метроблок был адблоком для метро; он появился, и — странно — быстро пропал. А еще за год до этого появился легендарный Автовход для Андроидов.

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

Кстати, на бета-тестирование приложения записалось 410 бета-тестеров! Это мой небольшой личный рекорд, раньше никогда не набиралось больше 20.

Mauth остается моим хобби-проектом, которым я занимаюсь в свободное время, чтобы тратить меньше времени для подключения к сети метро. Хотя, конечно, если дорогой (и клевый) Билайн проведет ЛТЕ во все перегоны, то потребности в вайфае больше не будет ;-) Но впереди много интересных планов!

Open Source! [BY NC SA]

2015   App Store   aйфон   iOS   mauth   метро

iOS 9 marked difference

We are familiar and well know all Swift changes between 2.0 and 2.1. And also difference between Xcode 6 and 7. But there are some changes between iOS 8 and 9.1 that we can’t ignore. Because... apps became malfunctioned.

CanOpenURL

Most significant and despicable difference is between iOS 9 and 9.1. The canOpenURL does not work as expected anymore. All checks for that are failing at this time.

if app.canOpenURL(url) {
   app.openURL(url)
}

To understand what happened, see this post: Quick Take on iOS 9 URL Scheme Changes.

But TL;DR is that you must explicitly set an array of URL schemes that your app may open. So add a key called LSApplicationQueriesSchemes to your Info.plist. And the value of this key is an array of URL schemes you want to be opened. Like: twitter, fb, instagram, vk.

More generally, xml for this in Info.plist should look like:

<key>LSApplicationQueriesSchemes</key>
<array>
    <string>twitter</string>
    <string>instagram</string>
    <string>comgooglemaps</string>
    <string>yandexnavi</string>
</array>

3D Touch

Next big thing is how to fast implement quick actions for 3D-touching app icon.

As I have no 3D Touch devices (have just Force Touch one) and have no expertise in there, I just provide a link where it described very well: Add 3D Touch quick actions tutorial.

See also:

Let’s code!

Paste SSPAI Promo

Итак, мы запустили новый сайт Paste, но не все так просто :)

Сегодня у нас началась промо-акция с Китаем! Крупный китайский сайт SSPAI — 3 млн. посещений в месяц — опубликовал подробный обзор приложения, наше интервью и — впервые — скриншоты айос-версии.

cover!

А мы добавили фишку на сайт: китайцам, японцам, французам, испанцам и русским показываются цитаты из обзоров на этих языках.

Call to action: limited time offer −70 % off! :)

2015   paste
Ctrl + ↓ Ранее