• Mercurial hgwebdir через FCGI + несколько разных хранилищ

      Введение и отмазка


      Доброго времени утра,

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

      Если ещё не закрыли статью — обрисую ситуацию:

      Что у нас есть


      У нас есть nginx, mercurial несколько самостоятельных проектов, на каждый из которых имеется 3-4 репозитория. Ещё у нас иногда могут появляться сторонние разработчики, которым часть этих проектов показывать совершенно не обязательно.

      Что со всем этим делать?

      Читать дальше →
    • Переезд в Агаве

        Это как вообще, нормальная, общемировая практика или что?!

        «
        Уважаемые пользователи!

        В связи с изменением стоимости размещения серверов в Агава-2 мы вынуждены перевезти большую часть оборудования в наш дата-центр «Агава-Север» в городе Долгопрудном: www.renter.ru/dc.shtml

        В данный момент составляется график транспортировки серверов. Переезд будет осуществляться 14го, 18го и 21 января.

        Просим вас оперативно (до 13го января) прислать на col@agava.com информацию, необходимую для транспортировки:
        — удобную для вас дату переезда (14го, 18го и 21 января);
        — номер сервера;
        — авторизационные данные.

        Если информация с пожеланиями по переезду не будет предоставлена вовремя, мы будем вынуждены назначить дату по своему усмотрению. Во время переезда сервера не будут доступны ориентировочно с 7 до 19 часов.

        Для успешной работы сервера в новом дата-центре потребуется смена сетевых настроек для сервера. Необходимые настройки для серверов, находящихся на нашем администрировании, будут произведены силами наших специалистов. Для серверов, находящихся на собственном администрировании, необходимые настройки будут высланы индивидуально на контактный e-mail.
        »

        Может я не понимаю чего, но мне кажется это просто жесть. Переезжать с 7 до 19 часов, то есть весь день. Там есть сервера на которых минимум по 50 клиентов.

        Что думаете?
        Читать дальше →
      • mod_wsgi 3.1 вышел 25 ноября

          Что было нового в версии 3.0:
          1. Поддержка питона 3.1 и выше.
          2. Опции «process-group», «application-group», «callable-object» и «pass-authorization» могут быть размещены в директивах WSGIScriptAlias и WSGIScriptAliasMatch
          3. Если клиент обрывает соединение в процессе обработки итератора вместо «бросания исключения» теперь записывается отладочное сообщение в лог
          4. В директиву WSGIDaemonProcess добавлена опция «chroot», позволяющая запускать приложения более изолированно
          5. Добавлена глобальная директива WSGIPy3kWarningFlag, при использовании python2.6 будут выдаваться предупреждения
          6. Исправлена «assertion error» если питон был скомпилирован с директивой Py_DEBUG
          7. Добавлена поддержка «Content-Type: chunked» в запросе (директива «WSGIChunkedRequest»). Данные склеиваются и передаются приложению на обработку.
          8. Значения HTTP заголовков теперь передаются в справочнике окружения, для хуков доступа, авторизации и аутентификации
          9. Флаг «flag wsgi.run_once» не выставляется в True, при работе в режиме демона, когда «maximum-requests» установлен в 1. В случае использования множества потоков, параметр «maximum-requests» проверяется только после завершения обработки запроса, поэтому нет гарантии, был ли выполнен только один запрос
          10. Теперь интерпретаор инициализируется не в родительском процессе, а только после того, как будет создан дочерний
          11. Сообщения из модулей-расширений на C попадают в логи виртуальных хостов, как и положено, а не в общий лог, как было ранее
          12. Теперь невозможно писать сообщения в логи «чужих» виртуальных хостов
          13. В режиме демона может производиться внутренняя переадресация с использоваением заголовка «Location» в ответе
          14. В режиме демона может использоваться директива «WSGIErrorOverride», для того, чтобы возвращать стандартные страница ошибок Apache
          15. Добавлена директива «WSGIPythonWarnings» работающая по аналогии с директивой «-W» интерпретатора
          16. В директиву «WSGIDaemonProcess» добавлена опция «cpu-time-limit» определяющая количество процессорного времени, после которого процесс будет перезапущен
          17. В директиву «WSGIDaemonProcess» добавлена опция «cpu-priority» говорящая за себя
          18. Добавлена директива «WSGIHandlerScript» позволяющая определить скрипт, обрабатывающий определённый тип файлов


          И ещё множество исправлений и улучшений, о которых можно почитать в оригинале тут: code.google.com/p/modwsgi/wiki/ChangesInVersion0301

          Скачать, как обычно можно тут:
          code.google.com/p/modwsgi/downloads/list

          UPD:
          Да, всё работает
          ./configure --with-python=python3.1 --disable-framework
          make && sudo make install
        • Mercurial для параллельной работы с несколькими похожими проектами, часть 1

            Введение


            В статье рассматриваются несколько проблем (и полезных возможностей) при работе с mercurial и предлагаются варианты их решения.

            Несколько проектов на одном фреймворке

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

            Что же делать?
            Читать дальше →
          • Чиним раскладку Ильи Бирмана для MacOS

              Когда я скачал около полугода назад типографскую раскладку Ильи Бирмана — я столкнулся со следующей проблемой: у меня не было «ё» в русской раскладке и, о ужас, «~» и «`» в английской.

              В те времена я был ещё под сильным впечатлением от Убунту и первым делом полез править keylayout файлы. Не знаю как точно, но через некоторое время я получил методом проб и ошибок рабочий вариант.

              Вчера мне потребовалось повторить все эти процедуры, но вместо ковыряния в конфигах я нашёл утилиту, которая позволяет в оконном интерфейсе создавать и редактировать раскладки (многие, конечно о ней уже знают):
              Скачать утилиту можно с её официального сайта: scripts.sil.org/ukelele

              Исправленная версия раскладки


              Подправленную мною версию можно скачать (11 Кб).

              Установка аналогична оригинальной версии:
              Скачайте архив и распакуйте его содержимое в каталог /Library/Keyboard Layouts/
              После этого включите раскладки в System Preferences → International → Input Menu
              • Russian — Ilya Birman Typography PS/2
              • English — Ilya Birman Typography PS/2

              После этого советую перезагрузиться.

              Замечание

              Если возникнут проблемы — оригинальную раскладку Бирмана, наверное, лучше удалить.
            • Растеризация в Inkscape

                Здравствуй, хабранарод!

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

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

                Читать дальше →
              • Опять о раскладке Бирмана, да и переключении раскладок вообще в грядущей 8.10

                  Disclaimer


                  Всё нижеописанное относится к Ubuntu 8.10 (interpid), хотя скорее всего затронет и будущие стабильные версии.

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

                  Предистория


                  Некоторое время назад o4kapuk описывал в статье И снова о раскладке Бирмана как «Добиться поддержки „типографической” функциональности средствами, максимально приближенными к штатным.»

                  У меня, как дома, так и на работе это решение приводило к следующим проблемам:
                  1. После перезагрузки раскладка не переключалась. Эту проблему каждый раз приходилось решать вызывая апплет конфигурации и изменение какого-нибудь параметра в «Дополнительных параметрах».
                  2. После некоторых обновлений раскладка ломалась совсем. Приходилось переустанавливать нужные файлы
                  3. После обновления на 8.10 метод перестал работать окончательно.

                  Читать дальше →