Лазерная коррекция зрения

Восьмого октября я сделал лазерную коррекцию зрения.

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

Окей, если мне надоест писать на Руби, я и мой славный карабин почистим Гудзон от команчей.

Предварительная проверка #

Помимо прочих условий есть два обязательных — зрение не должно изменяться и толщина роговицы должна быть достаточной.

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

Если роговица слишком тонкая, то 100% зрение маловероятно и могут возникнуть осложнения.

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

Движок блога обновлён до четвёртых Рельс

GitHub #

https://github.com/ksevelyar/dobroserver

Что нового? #

  • Глобальные переменные вынесены в config.yml.
  • Соблюдение инкапсуляции.
  • Тотальный DRY.
  • Покрытие тестами 95%.
  • Сapistrano 3.
  • Для парсинга markdown разметки теперь используется Redcarpet.
  • Оптимизация базы данных (запросы, индексы, структура).
  • Обновлены стили для формы редактора.
  • Для моделей Page и Post используется Single Table Inheritance.
  • Лицензия MIT.
  • Чистка от мусора.

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

Глобальные переменные в Rails

При разработке возникает вопрос хранения глобальных переменных:

  • токены для сторонних сервисов
  • почта куда будут приходить уведомления
  • url сайта для майлеров
  • ключ для шифрования cookies

И всё в том же духе.

Есть две причины вытащить все эти вещи в отдельный файл — удобство редактирования настрок и удобство исключения всего одного файла из репозитория (из соображений безопасности).

Параметры по умолчанию для rails new

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

rails new solar_system --skip-test-unit --skip-bundle -d postgresql

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

echo "--skip-bundle
--skip-test-unit
--database=postgresql" > ~/.railsrc

Поиск пакета по команде

Устанавливаем утилиту:

pacman -S pkgfile

Обновляем базу:

sudo pkgfile --update

Ищем пакет содержащий команду cgdisk:

pkgfile cgdisk 

Результат:

extra/gptfdisk

html2rss — flick

Очень простенькое веб-приложение, которое генерирует atom ленту о выходящих в московский прокат фильмах. Чтобы не пропустить возвращение The Big Lebowski, например.

http://flick.dobroserver.ru/

  1. С помощью nokogiri строим массив хешей с фильмами (при этом берём только фильмы с рейтином >= 7).
  2. Отправляем на покой полученные раньше фильмы (если фильма нет в последнем массиве, то кинотеатры он покинул).
  3. Создаём новые фильмы и выводим в atom ленту / index.

Всё это дело происходит в rake таске, который каждый час запускает whenever.

Можно использовать для получения rss из любого другого html.

Если мне понравится ходить по кинотеатрам — всё будет намертво закешировано и покрыто тестами. И возможно на более легковесном фреймворке.

Стримим видео с сервера по Wi-Fi

Итак у вас есть домашний сервер и несколько разных устройств — настольный компьютер, ноутбук, телевизор, планшет, телефон.

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

Чтобы воспроизводить действительно тяжёлые файлы (10-20 G) просто примонтировать сервер через sshfs недостаточно, нужно использовать DLNA.

Метки для Ruby кода

Для Руби кода можно использовать специальные комментарии:

# TODO add named_scopes
# FIXME method A is broken
# OPTIMIZE improve the code

И просматривать их с помощью rake notes:

app/controllers/application_controller.rb:
  * [ 6] [TODO] Продумать авторизацию

app/models/comment.rb:
  * [ 8] [TODO] exclusion registered users nicks

app/models/message.rb:
  * [ 8] [TODO] antispam

app/models/tag.rb:
  * [27] [FIXME] игнорировать не уникальные slug

app/views/posts/show.html.slim:
  * [14] [OPTIMIZE] переписать этот ужас

app/views/shared/_sidebar.html.slim:
  * [25] [TODO] icon.png

При этом можно смотреть метки только одного типа:

rake notes:todo
rake notes:fixme
rake notes:optimize

Или даже свои собственные:

rake notes:custom ANNOTATION=MYANNO

И ещё один плюс меток в том, что они обычно подсвечиваются в текстовых редакторах.