Архив категории «Разработка»
Глубокая отладка или Минус на минус — это плюс, но только первый раз.
Последнюю неделю провел в глубокой отладке Semantic MediaWiki. Очень непросто искать нетривиальную ошибку в незнакомой системе. Обычно бросаю довольно быстро, если не удаётся разобраться сходу. Но тут, что называется «закусил удила». Попробовал несколько новых инструментов, немного разобрался с устройством Semantic MediaWiki и нашел причину странного поведения.
Всё началось с того, что понадобился удобный способ выполнять вычисления на страницах MediaWiki. Установил расширение Scribuntu, немного почитал про Lua и реализовал необходимые функции. Дальше началось странное — функция возвращает число, которое становится значением свойства. Все значения выводятся нормально за исключением '1'
— вместо него появляется ссылка на совершенно непричастную страницу. Чудеса начались.»
18.08.2013
Метки: mediawiki, PHP, scribuntu, selenium, semantic mediawiki, xdebug, отладка Рубрики: Интернет, Разработка
Комментариев нет
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)
в двух местах (одно — разбор командной строки, второе — вывод подсказки).
»
18.07.2013
Метки: git, ssh, Windows Рубрики: Инструменты, Разработка
Комментариев нет
Semantic MediaWiki: неформатированный вывод функции ask
Semantic MediaWiki при выводе пытается форматировать числа в соответствии с языком интерфейса, используя подходящие разделители для тысячных разрядов и десятичной точки. Вернее, как раз для русского языка дробную часть отделяет запятая, тысячные разряды ничем не отделяются. Десятичная точка используется, например, для английского языка, а запятая отделяет тысячные разряды.
Это влияет на вывод значений свойств и результатов семантических запросов — функций ask
и show
. Разбираясь с этой системой я довольно болезненно наступил на грабли.»
01.05.2013
Метки: mediawiki, semantic mediawiki Рубрики: Разработка
Комментариев нет
Информационная система на базе Semantic MediaWiki
Начало
В начале года вызвался я решить непрофильную задачу — создать для нашей организации информационную систему. Сейчас решение более-менее обрело очертания, попробую поделиться опытом.
Наши сотрудники ежегодно отчитываются о своих достижениях. По этой информации вычисляются количественые показатели. Также интересны всякие сводные таблицы. В общем, реально полезной информации там достаточно, имеет смысл сделать так, чтобы её было удобно добывать.
Раньше всё было оформлено как Excel таблица определённой структуры. Каждый сотрудник заполнял свой лист, показатели считались по заданным формулам. На этом, в общем-то, информация заканчивала свой путь — если она использовалась где-то ещё, её приходилось добывать заново.
Как это всегда бывает, я пришел совсем не с этой идеей — хотелось, грубо говоря, сделать свой ВКонтактик для улучшения информированности друг о друге. Идея в умах начальства трансформировалась и выстрелила в меня этим проектом — мол, здорово, обязательно сделаем, но у нас годовые отчёты на носу, можно ли эту информацию в такую систему забить? Делаю вид «лихой и придурковатый«, отвечаю утвердительно и иду изучать материальную часть.
Задача
Итак, требуется очень-очень быстро сделать сайт, где каждый пользователь может легко и просто разместить информацию определенной структуры. И чтобы эту информацию можно было бы легко обрабатывать — показатели всякие считать, списки-таблички строить. Поиск, само собой, нужен, да не просто текстовый, а с учётом структуры этой самой информации.»
23.04.2013
Метки: mediawiki, semantic mediawiki, web-разработка, wiki Рубрики: Разработка
3 комментария
Улучшатель сайта посредника Polar Express
У посредника Polar Express не очень удобный личный кабинет.
Шансов на скорое улучшение мало, поэтому я накатал greasemonkey скрипт: polexp.com for Greasemonkey.
Он добавляет колонку «Стоимость» в разделы «Мои покупки» и «На складе».
Теперь в таблице можно видеть задекларированную стоимость посылок и общую сумму.
Для посылок на складе — общую сумму всех отмеченных посылок.
Буду рад, если кому-то окажется полезным. Будут ещё идеи — делитесь, попробую реализовать.
100 скачиваний за 4 дня — мелочь, а приятно.»
29.11.2012
Метки: Firefox, Greasemonkey, покупки Рубрики: 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
Метки: Firefox, Windows, XUL Рубрики: Mozilla, Разработка
Комментариев нет
WordPress плагин WP-Shortstat и кодировки
Прижился у меня в блогах на WordPress плагин WP-ShortStat. Официально он работает c WordPress до версии 2.7, последний релиз был в прошлом году. Так что пришлось самостоятельно устранять проблемы с кодировками. Заодно добавил поисковик mail.ru.»
19.07.2010
Метки: PHP, кодировка Рубрики: 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
Метки: cygwin, Windows Рубрики: Разработка
Комментариев нет
XUL Gear стал расширением Firefox
Визуальный редактор XUL Gear, за которым я слежу ещё с тех пор, когда он назывался XULPIX, выпущен в виде расширения к Firefox. Об этом мне сообщил Илья Харламов, который в настоящее время поддерживает этот проект. А я решил, что пора ознакомить с XUL Gear широкую хабраобщественность.»
31.05.2010
Метки: Firefox, XUL, xulgear, XULPIX, ХабраХабр. Рубрики: 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
Метки: C Рубрики: Разработка, Языки
11 комментариев