Архив категории «Разработка»

Глубокая отладка или Минус на минус — это плюс, но только первый раз.

Последнюю неделю провел в глубокой отладке Semantic MediaWiki. Очень непросто искать нетривиальную ошибку в незнакомой системе. Обычно бросаю довольно быстро, если не удаётся разобраться сходу. Но тут, что называется «закусил удила». Попробовал несколько новых инструментов, немного разобрался с устройством Semantic MediaWiki и нашел причину странного поведения.

Всё началось с того, что понадобился удобный способ выполнять вычисления на страницах MediaWiki. Установил расширение Scribuntu, немного почитал про Lua и реализовал необходимые функции. Дальше началось странное — функция возвращает число, которое становится значением свойства. Все значения выводятся нормально за исключением '1' — вместо него появляется ссылка на совершенно непричастную страницу. Чудеса начались.»

18.08.2013  Метки: , , , , , ,   Рубрики: Интернет, Разработка  Комментариев нет

Git через ssh на нестандартном порту (Windows/putty: unknown option -p)

При использовании git через ssh, который работает на нестандартном порту, команда типа

git clone ssh:user@host:port/path

вызывает ssh с параметром -p port. Но под Windows при использовании putty (точнее, plink) в качестве ssh возникает ошибка

plink: unknown option "-p"

потому что putty пошел своим путём и опция у него -P.

Самый простой способ решения: найти в файле plink.exe любым hex-редактором (я по старой памяти использовал hiew, достаточно демо-версии) эту опцию и исправить её: -P --p (0x50 -0x70) в двух местах (одно — разбор командной строки, второе — вывод подсказки).

patch putty -p option»

18.07.2013  Метки: , ,   Рубрики: Инструменты, Разработка  Комментариев нет

Semantic MediaWiki: неформатированный вывод функции ask

Semantic MediaWiki при выводе пытается форматировать числа в соответствии с языком интерфейса, используя подходящие разделители для тысячных разрядов и десятичной точки. Вернее, как раз для русского языка дробную часть отделяет запятая, тысячные разряды ничем не отделяются. Десятичная точка используется, например, для английского языка, а запятая отделяет тысячные разряды.

Это влияет на вывод значений свойств и результатов семантических запросов — функций ask и show. Разбираясь с этой системой я довольно болезненно наступил на грабли.»

01.05.2013  Метки: ,   Рубрики: Разработка  Комментариев нет

Информационная система на базе Semantic MediaWiki

Начало

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

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

Раньше всё было оформлено как Excel таблица определённой структуры. Каждый сотрудник заполнял свой лист, показатели считались по заданным формулам. На этом, в общем-то, информация заканчивала свой путь — если она использовалась где-то ещё, её приходилось добывать заново.

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

Задача

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

23.04.2013  Метки: , , ,   Рубрики: Разработка  3 комментария

Улучшатель сайта посредника Polar Express

У посредника Polar Express не очень удобный личный кабинет.
Шансов на скорое улучшение мало, поэтому я накатал greasemonkey скрипт: polexp.com for Greasemonkey.
Он добавляет колонку «Стоимость» в разделы «Мои покупки» и «На складе».
Теперь в таблице можно видеть задекларированную стоимость посылок и общую сумму.
Для посылок на складе — общую сумму всех отмеченных посылок.
Буду рад, если кому-то окажется полезным. Будут ещё идеи — делитесь, попробую реализовать.

100 скачиваний за 4 дня — мелочь, а приятно.»

29.11.2012  Метки: , ,   Рубрики: Mozilla, Интернет, Покупки  Комментариев нет

Использование Firefox как глобального XULRunner для Windows

XULRunner — это движок для XUL+XPCOM приложений, таких как Firefox и Thunderbird. Кроме того, XULRunner можно использовать для встраивания браузера, например, в Eclipse. Для установки XULRunner для Windows его надо скачать, распаковать и объявить:

xulrunner.exe -register-global

Очень просто, но при уже установленном Firefox обидно ставить отдельную копию XULRunner. Так вот, оказывается можно скопировать в папку с Firefox только файл xulrunner.exe и выполнить вышеуказанную команду. Мелочь, а приятно.

Кстати, если не хочется искать xulrunner, то можно просто добавить в реестр следующую информацию (следите за путями и номерами версий!):

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\mozilla.org]

[HKEY_LOCAL_MACHINE\SOFTWARE\mozilla.org\GRE]

[HKEY_LOCAL_MACHINE\SOFTWARE\mozilla.org\GRE\1.9.2.8]
"Version"="1.9.2.8"
"GreHome"="C:\\Program Files\\Mozilla Firefox"
"xulrunner"="true"
"abi"="x86-msvc"
"javaxpcom"="1"

[HKEY_LOCAL_MACHINE\SOFTWARE\mozilla.org\Mozilla]
"CurrentVersion"="1.9.2.8"
»

13.08.2010  Метки: , ,   Рубрики: Mozilla, Разработка  Комментариев нет

WordPress плагин WP-Shortstat и кодировки

Прижился у меня в блогах на WordPress плагин WP-ShortStat. Официально он работает c WordPress до версии 2.7, последний релиз был в прошлом году. Так что пришлось самостоятельно устранять проблемы с кодировками. Заодно добавил поисковик mail.ru.»

19.07.2010  Метки: ,   Рубрики: WordPress, Разработка  2 комментария

Перенос Cygwin в другую папку

Если переместить папку с установленным Cygwin, то потеряются /, /bin и /lib. Чтобы их восстановить, необходимо прописать в реестре новые пути:

[HKEY_CURRENT_USER\Software\Cygnus Solutions\Cygwin\mounts v2]
"cygdrive prefix"="/cygdrive"
"cygdrive flags"=dword:00000022

[HKEY_CURRENT_USER\Software\Cygnus Solutions\Cygwin\mounts v2\/]
"native"="D:\\TOOLS\\cygwin"
"flags"=dword:00000002

[HKEY_CURRENT_USER\Software\Cygnus Solutions\Cygwin\mounts v2\/usr/bin]
"native"="D:\\TOOLS\\cygwin/bin"
"flags"=dword:00000002

[HKEY_CURRENT_USER\Software\Cygnus Solutions\Cygwin\mounts v2\/usr/lib]
"native"="D:\\TOOLS\\cygwin/lib"
"flags"=dword:00000002
»

23.06.2010  Метки: ,   Рубрики: Разработка  Комментариев нет

XUL Gear стал расширением Firefox

Визуальный редактор XUL Gear, за которым я слежу ещё с тех пор, когда он назывался XULPIX, выпущен в виде расширения к Firefox. Об этом мне сообщил Илья Харламов, который в настоящее время поддерживает этот проект. А я решил, что пора ознакомить с XUL Gear широкую хабраобщественность

31.05.2010  Метки: , , , ,   Рубрики: Mozilla, Инструменты, Разработка  Комментариев нет

За что я люблю язык С

Пришлось тряхнуть стариной и написать несколько сотен строк кода на С. Лет десять уже этим не занимался, расслабился и огреб по полной программе:

static char* stralloc( const char* str ) {
    char* res = malloc( strlen( str + 1 ) );
    strcpy( res, str );
    return res;
}

Код выглядит как настоящий, замыленным взглядом ошибку увидеть сложно. А уж какие эффекты появляются! Эта функция вызывалась из двух мест:

static char* start() {
    return stralloc( "{'start':true}" );
}
 
static char* stop() {
    return stralloc( "{'stop':true}" );
}

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

Рекомендую попробовать всем, кто использует языки с автоматическим управлением памятью. Незабываемые ощущения гарантированы!»

27.05.2010  Метки:   Рубрики: Разработка, Языки  11 комментариев