Ctrl + ↑ Позднее

Ленивый сокращатель ссылок

Есть такой гем s3_website. Он помимо того что умеет заливать файлы на S3, позволяет в yaml-конфиге указывать редиректы с одних урлов на другие.

Я эту особенность нежно полюбил, и активно использовал в своих докладах — даешь красивую ссылку вида «inem.at/leanpoker», которая приредиректит тебя куда надо. Плюс, естественно, это добавляет гибкости — в любой момент можешь пойти и поменять «адрес назначения», если вдруг нашел более подходящую для объяснения предмета ссылку.

Вот так выглядит кусок конфига:

redirects:
  skillgrid:  http://t.nemytchenko.ru/skillgrid
  leanpoker:  http://t.nemytchenko.ru/leanpoker
  railsclub:  http://s3.inem.at/share/railsclub2015.pdf
  railshurts: http://railshurts.com

Год назад я перенес репу на ГитЛаб, и придумал в CI проверять ссылки на работоспособность с помощью awesome_bot:

awesome_bot s3_website.yml --allow-redirect --allow-dupe

Эта штука меня пару раз спасла от показывания битой ссылки на публику.

В общем все было бы круто, но в какой-то момент я решил прикрутить CDN к своему сайтику, и внезапно выяснилось, что за CDN эта крутая фича у Амазона тупо не работает.

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

Те не менее, у меня осталось ощущение обиды на ситуацию, и в какой-то момент мозг придумал решение.

Решение

Скрипт работающий по принципу «Static Site Generator». Редиректы, как и с s3_website прописываем в yaml-файл(можно даже синтаксис оставить), а скрипт генерит кучу почти пустых html-файлов, у которых внутри прописан редирект на нужный сайт.

  1. Файлы эти заливаются на какой угодно хостинг, и выполняют свою функцию, редиректя посетителей куда надо.
  2. Решение платформонезависимо. Не зависит ни от какой фичи S3 или другой платформы. Можно переносить с хостинга на хостинг или с одного сайта на другой.
  3. Если файлы продолбались, их всегда можно перегенерить из конфига, который лежит в репозитории
  4. По желанию к этому можно припилить трэкинг количества нажатий, посылая перед редиректом запросы на какой-нибудь нехитрый бэкенд.

Реализация

Запилить реализацию оказалось делом 30 минут, большую часть из которых я разбирался как же работать со строками в баше. Короче вот: https://github.com/inem/redirects-generator. Работает.

Side notes

  1. Выяснилось что хостить на S3 такое не получится, так как урлы будут либо `aaa.html`, либо `aaa/`, что для сокращалки урлов как-то не очень
  2. Зато отыскался способ надурить амазоновский CDN, чтобы S3-шные редиректы продолжали работать: надо когда создаешь origin, не использовать автокомплит, а просто прописать бакет в формате `bucketname.s3.amazonaws.com`.

Короче, решил в итоге и изначальную задачу, и в общем виде под любую платформу. Пригодится.

2017   Фигачу

Обновили 1Активити до 0.4.1

Добавили возможность навигации по активностям с помощью комбинаций клавиш Ctrl+J/K (привет, vim!) и Ctrl+P/N (привет, emacs!).

Забавно, но это были одни из первых фичереквестов.

Вторая фишка — алиасы активностей, чтобы экономить место в менюбаре. Если создать активность вида «Очень {важная активность} и очень длинная!» или «Чуть менее важная но тоже длинная { %#», то в менюбаре отобразятся «важная активность» и «%#» соответственно.

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

P.S. Если вы не в теме, что такое 1Активити, прочитайте первый релизный пост или полистайте сайтик

Где купить

Купить программу можно здесь:

Купить 1Activity

Будем на связи

Если на такой серьезный шаг вы еще не готовы, подпишитесь на новости о программе. В ближайшее время напишу несколько статей о том как 1Activity помогает быть более продуктивным, и подписавшиеся получат статьи по почте.

2017   Фигачу

Первый публичный релиз 1Activity

Привет. Собираюсь релизить 1Activity. Для меня это big deal, поэтому я решил написать по этому поводу отдельный пост.

Почему это важно для меня

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

Идее продукта в её первой инкарнации уже, блин, 7 лет. Первый раз я поделился ей со спецом по UX из Microsoft Биллом Бакстоном на 404fest в 2010 году. Вот что у меня осталось с тех пор:

Это, кстати, один из моих первых постов в Инстаграмме :)

Идея

Суть идеи проста: чтобы в каждый момент времени система знала над каким проектом вы работаете, и все с чем вы работаете, попадало в папку проекта автоматически.

О чем идет речь:

  • загрузки
  • скриншоты
  • списки задач, заметки
  • документы, таблицы
  • презентации, картинки

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

Прототип

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

Работающий прототип получилось написать за пару вечеров. Первая версия с графическим интерфейсом родилась через месяц.

Внешний вид почти с первых версий почти не поменялся

Испытания боем длиной в год

Потом я попал в ГитЛаб, и доработку программы пришлось отложить.
Тем не менее я ей пользовался постоянно в течение года, и вы не представляете, насколько она меня иногда выручала. Огромное количество point-and-click и drag-and-drop сценариев превратились для меня в набор шорткатов на клавиатуре, и это спасло мою концентрацию в ситуациях когда, например, надо было сделать презентацию с нуля за пару дней до выступления.

Сейчас у меня снова появилось свободное время, появился партнер по разработке, и у программы сегодня первый релиз. Ура!

Принцип работы

Принцип прост. Пожалуй даже примитивен. Чтобы файлы загружались всегда в текущий проект, нужно:

  1. Браузерам в качестве папки загрузки подсунуть симлинк на папку текущего проекта.
  2. При смене проекта менять то куда указывает симлинк.

Любой программист сможет разобраться, как это сделать, максимум, за пару часов. Но понятно, что чтобы сделать из этого приятный и полноценный инструмент, придется попотеть. Чем собственно последние пару месяцев мы в неспешном режиме и занимались.

Не только загрузки

Самое смешное, что дополнительные штуки типа делалки скриншотов в текущий проект сделать оказалось очень легко, и этот функционал в программе тоже присутствует.
Полный список того что можно сделать:

  • Сделать скриншот (области или окна)
  • Сохранить адрес текущего сайта в Хроме или Сафари
  • Оставить текстовую заметку
  • Сохранить текст из буфера обмена
  • Переименовать последний файл
    Все это вызывается по хоткеям, и результат попадает в папку текущей активности.

Где посмотреть

Посмотреть можно здесь: http://nemytchenko.ru/1activity/
Гифки там немного устаревшие, но тем не менее суть объясняют достаточно наглядно.

Сценарии использования

Раз мне повезло этим подходом пользоваться год, надо рассказать где меня это больше всего выручало.

1) Планирование поездок.

  • Ищешь жилье в новом городе — можно накидать понравившихся ссылок в виде файлов в папку активности
  • Купил билет — PDF-ка с подтверждением падает куда надо.
  • Хозяин квартиры прислал подробности как доехать — копируешь текст и сохраняешь буфер обмена в виде текстового файла
  • Нашел месторасположение на карте — на лету сделал скриншот

Все это (сюрприз!) синхронизируется с дропбоксом, и потом доступно на мобилке. До свидания, Эверноут!

2) Исследование по заданной теме

Скриншоты с сайтов, куски текста, ссылки, электорнные книги — все валится в одно место само собой.
Вообще часто бывает, что исследование новой темы выливается в десятки вкладок в браузере. Как я из десятков ссылок делаю одну — рассказал в отдельной статье.

3) Поготовка презентаций и статей

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

Где купить

Купить программу можно здесь:

Купить 1Activity

Будем на связи

Если на такой серьезный шаг вы еще не готовы, подпишитесь на новости о программе. В ближайшее время напишу несколько статей о том как 1Activity помогает быть более продуктивным, и подписавшиеся получат статьи по почте.

2017   Фигачу
Ctrl + ↓ Ранее