shoorick: (Рыжий)
Чего только нет в редакторе Komodo Edit! По сравнению с могучей Komodo IDE нет отладчика, нет профилировщика, нет модульного тестирования, нет интерфейса к системам контроля версий... А весит всё равно дофига!

Komodo Edit

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

http://shoorick.ru/2016/10/31/quarter-of-gigabyte/
shoorick: (Рыжий)
Наконец-то удалось запустить карту велошатаний — http://shoorick.ru/lj/map/bike.html
Масштаб выбирается автоматически, в зависимости от натянутого на карту трека.

Карта

На карту, отображаемую библиотекой Leaflet, можно накладывать разные слои. Среди таких слоёв может быть и слой с треками в формате GPX или KML — его можно наложить с помощью соответствующего плагина, входящего в leaflet-plugins.

В процессе подготовки к UWDC-2012 я подготовил трек, попытался натянуть его на карту — не заработало. Чтение логов и гугление показало, что Google Chrome не даёт яваскрипту читать локальные файлы, если веб-страница получена с локального ресурса (то есть, её URL начинается на file://), а не по HTTP. Выходов несколько: либо заливать карту на сервер и отлаживать там (что, в общем, не представляет сложности, когда есть sshfs), либо поднимать простенький сервер прямо на рабочем месте. Подобных серверов — вагон и маленькая тележка. Думаю, одних только перловых серверов на моём ноутбуке явно больше одного. Увидел на stackoverflow способ запуска простого HTTP-сервера на питоне:
python -m SimpleHTTPServer 8000
Проверил — работает.
shoorick: (Default)
Полдня ставил на сервер параллельно второй редмайн. Точнее, не ставил, а пытался запустить правильным путём. В итоге запустил, но убил кучу времени на гугление. Выползавшие в процессе запуска ошибки, конечно же, в мануале не описаны — приходилось смотреть, что люди пишут на форумах (а пишут иногда такое, что мне, практически не знакомому с ruby, кажется бредом). Как руби-программисты вообще работают в такой среде? Впрочем, танцы с бубном вокруг трака, которые случались до переезда на редмайн, наводят на мысль, что и у питонистов — бардак.
shoorick: (Default)
  1. В этих ваших линуксах вместо trussstrace
  2. Расковырял Frescobaldi — нашёл, как заставить лилипонд создавать PDF-файлы без отладочной информации — для этого есть ключ -dno-point-and-click — получающиеся файлы в два с лишним раза легче обычных. В самом Frescobaldi для подобного действия есть команда меню Lilypond → Run Lilypond (publish). Но мне проще в командной строке написать make publish :-) Попутно выяснил, что Frescobaldi написан на питоне.
shoorick: (Default)
Обновил trac 0.11.5 → 0.11.6. Нечаянно. Специально, помня предыдущий апдейт, я его бы обновлять не стал. Как всегда, всё сломалось. Пока пытался починить, выяснил, что в системе одновременно было установлено три питона: python24-2.4.5_4, python25-2.5.4_2, python26-2.6.4. Апач пытался найти трак среди приложений питона 2.5, при том, что основным был питон 2.6.

Починить удалось путём отсечения Змею двух голов из трёх замены двух старых версий питона на одну новую (portuprgade -o lang/python26 lang/python25; env FORCE_PKG_REGISTER=1 portuprgade -o lang/python26 lang/python25) и последующей пересборкой апачного mod_python.

Попутно, раз уж взялся налаживать trac, всё-таки настроил автоматическое приписывание комментариев к тикетам — трак может, встретив в комментарии к коммиту ссылку на тикет (например, вида re #123), добавить в этот тикет комментарий, а в некоторых случаях (fix #456)— и закрыть его.

Раньше подобный фокус не удавался: на машине используется много хранилищ трака и лишь одно, общее — у subversion; в результате hooks/post-commit всегда получал один и тот же адрес SVN-хранилища, вне зависимости от того, в какой из частей дерева был сделан коммит. Научить скрипт распознавать, в какой части дерева сделаны изменения и, соответственно, к какому траковому проекту обращаться — задача тривиальная; странно, что я не сделал это два года назад. В общем, надо добавить в hooks/post-commit одну строку, и ещё одну — поменять:
PROJECT=`/path/to/svnlook dirs-changed $REPOS -r $REV | head -n 1 | cut -f1 -d/`
TRAC_ENV="/path/to/trac/db/$PROJECT"
shoorick: (Default)
По умолчанию trac, когда работает через mod_python, всё своё содержимое выдаёт через него, хотя с раздачей статичных файлов — картинок, стилей и яваскриптов — сам апач справляется не хуже и, что главное, существенно быстрее: на моей, нагруженной иксами, машине, где заодно живёт и апач с траком, разница в скорости (по результатам замеров файрбагом) достигает ста и более раз.

С одной стороны, можно сменить адреса некоторых общих картинок
find /var/db/trac -name trac.ini -exec perl -pi -e 's{= common}{= /trac}' '{}' ';'
и раздавать эти картинки статически:
<IfModule alias_module>
Alias /trac/ /path/to/trac/htdocs/
Но зачем нам полумеры? Надо всю статику быстро раздавать. Поэтому подкаталог chrome не должен обрабатываться мод_питоном:
<LocationMatch "/projects/[^/]+/chrome">
SetHandler None
</LocationMatch>
Чтоб апач не ругался «404 Not Found», надо создать алиасы для этих каталогов. По идее, для этого должна использоваться директива AliasMatch, но у меня она не заработала: апач, вместо того, чтоб отдавать файлы, начинает бесконечно перенаправлять браузер по всё более длинному адресу, что браузеру достаточно быстро надоедает. Поэтому приходится ставить кучу директив
Alias /projects/projectname/chrome/common /path/to/trac/htdocs/
которые можно получить командой
ls /var/db/trac | perl -nl -e 'print "\t\tAlias /projects/$_/chrome/common /usr/local/www/trac/htdocs"'
Метод, конечно, какой-то неправильный, но всё-таки вполне работоспособный.
shoorick: (Default)
Как и предполагал, подыхание питона на роутере было вызвано нехваткой памяти. Своп-раздел на подключенном к роутеру жёстком диске я когда-то создал, да при восстановлении настроек после случайно произведённого сброса забыл о нём — для остальных задач хватало и встроенной памяти. Сегодня, перецепляя туда-сюда разные устройства, вспомнил о свопе. Подключил — заработало. Но всё равно очень медленно.
shoorick: (Default)
Какой смысл писать на форум, если всё равно никто не отвечает? Каждый сам кузнец, в общем.

Трак на роутере всё-таки удалось запустить, но как-то очень уж неестественным путём. Видимо, придётся всё-таки реанимировать большой компьютер, где стоят FreeBSD, Apache, SVN и Trac (и при этом весьма шустро работают), уносить его на кухню либо в другую комнату, чтобы не утомлял шумом и держать его там круглосуточно работающим.
shoorick: (Default)
Пытаюсь водрузить на роутер subversion и trac. С переменным успехом. Гугл помогает слабо, на http://wl500g.info/ тема тоже не освещена нифига, на сайте разработчиков трака описаны разные варианты установки, под распространённые линуксы да юниксы, но про установку на роутер — ни слова.

Пока удалось поставить subversion и заставить его работать через svnserve. Trac встал, но сразу работать не захотел: пришлось поставить ещё несколько программ, от которых он зависит. После установки недостающего всё равно не заработал — на роутере криво настроена локаль. После исправления — серверы запускаются, но толку от этого немного: автономный сервер выдаёт не более одной страницы (обычно без картинок и стилевого файла), после чего дохнет, не сообщив причины; если же попытаться запускать trac через lighttpd, то он не в состоянии обратиться к БД SQLite и, как результат, тоже не работает, ругаясь в лог. Так до сих пор и не работает — настройка оказалась куда более сложной, чем под FreeBSD.

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

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

upd/20.09.2009:
shoorick: (Default)
Обновил (давно уже) на localhost subversion до 1.5.1 — svn на тестовом сервере стал ругаться на рабочие копии, созданные на localhost.
Обновил вчера на сервере subversion до 1.6.2 — svn на локалхосте стал ругаться...
Обновил на localhost subversion 1.5.1 → 1.6.2 — стал ругаться trac (сегодня утром дошло, что надо было обновить и py-subversion).
Обновил trac 0.11.3 → 0.11.4 — трак совсем загнулся, пробовал чинить, перенацеливал когда-то сделанный симлинк — помогало, но не очень.

Почитал логи, постучал в бубен — не помогло. Ушёл гулять.

Пришёл утром — обновил py-subversion — всё заработало.
shoorick: (Default)

Проблема:
при апгрейде trac с 0.10 на 0.11 пропала собственная раскраска: все проекты выглядят одинаково.

Причина:
в 0.11 сменился шаблонизатор.

Решение:
для каждого проекта надо:

  1. перенести файл templates/site_css.cs в htdocs/style.css, попутно выкинув из него первые четыре строки:
    <?cs
    ##################################################################
    # Site CSS - Place custom CSS, including overriding styles here.
    ?>
  2. создать файл templates/site.html:
    <html xmlns="http://www.w3.org/1999/xhtml"
          xmlns:py="http://genshi.edgewall.org/"
          py:strip="">
    
      <!--! Add site-specific style sheet -->
      <head py:match="head" py:attrs="select('@*')">
        ${select('*')}
        <link rel="stylesheet" type="text/css"
              href="${href.chrome('site/style.css')}" />
      </head>
    
      <body py:match="body" py:attrs="select('@*')">
        ${select('*|text()')}
      </body>
    </html>
    

Этого вполне достаточно. См. также TracInterfaceCustomization.

LilyKDE

Apr. 15th, 2008 04:34 pm
shoorick: (Default)
Пока тестировал Akregator — KDEшный клиент для чтения RSS-лент, в него прилетело сообщение о существовании LilyKDE — плагина для kate, позволяющего генерить PDF, смотреть его и, кликая по нотам в нём, сразу переходить к нужному фрагменту исходного кода. Написано на питоне.

Вечером, может быть, попробую на домашней банке.

P. S. В /usr/ports, конечно же, традиционно нифига нет. Хоть под пингвина мигрируй…
shoorick: (Рыжий)
Есть свой плюс в растпространении софта в исходниках: есть шанс доработать напильником. Вот сейчас как раз выдался случай: после смены плеера ljKlient потерял способность определять музыку. Пришлось взять напильник и научить: diff ljkkdeeventeditor.py.ORIG ljkkdeeventeditor.py )

Profile

shoorick: (Default)
shoorick

December 2016

S M T W T F S
    1 23
45678910
11121314151617
18 19 2021222324
25262728293031

Syndicate

RSS Atom

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jul. 20th, 2017 02:35 pm
Powered by Dreamwidth Studios