• Обновления на лету (zero-downtime deployment) вообще и в Ruby on Rails

      Сначала разберемся с определениями. Под обновлением на лету мы подразумеваем такое обновление системы, при котором не нарушается штатная ее работа: клиенты работают, посетители ходят и никто не наблюдает ошибок, увеличившегося времени отклика или таблички “УЧЁТ”.

      Зачем это нужно? Если вы задаетесь этим вопросом — вам не нужно. Вешайте табличку, садитесь обедать.

      Как это делается? Сложно. Почему? Главных причин две:
      — вы не можете обновить систему мгновенно и атомарно (то есть ровно между двумя HTTP запросами). При наивном подходе пользователи заметят как минимум долгое время отклика, а то и ошибку, если, к примеру, БД обновлена, а код еще нет;
      — состояние и конфигурация системы существуют и на клиенте и на сервере. Примеры: данные в сессии, имена полей формы, адреса в ссылках, состояние в javascript на открытой у пользователя странице.
      Читать дальше →
    • Transcode — аналог PuntoSwitcher для Mac OS X

        Пост из трех частей


        Риторическая


        А вас не удивляло, что на маке нет корректировки текста в неправильной раскладке?

        Историческая


        Меня удивляло. Пунто есть уже лет N (наверное даже M!), а тут… По-удивляло, и перестало. Понял, что надо писать.
        Написал.
        Показываю.

        Проект.
        Программа.

        Работает, как Service (не знаю, как в русской версии переводится). Назначен на Command-\
        Чтобы сервис появился, нужно один раз запустить программу (да, при запуске ничего не должно происходить).
        Поддерживается только Leopard, не хотелось с deprecated api работать…

        Идейная


        Давайте доведем его до ума :) Я один не то, чтобы не потяну, но вместе — интереснее!
        Как минимум, нужны:
        — предложения по хоткею — вроде выбрал нормальный, но это только на мой взгляд
        — иконка программы
        — возможность выбирать хоткей самому

        … ваши предложения?