Hatred's Log Place

DON'T PANIC!

May 23, 2010 - 2 minute read -

DokuWiki и web-закладки

Внимание: статья полностью неактуальна ввиду переезда на статику в 2019 году.

Случайно наткнулся на плагин dokubookmark, ставится в два движения, настраиваются неймспейсы… Но тороплюсь.

Для чего нужен: позволяет быстро создать web-закладку (а по сути запись в DokuWiki) на текущий сайт, помимо этого, сразу можете назначить теги (если стоит плагин tag), автоматом так же вставится текущий выделенный текст (если он есть) на странице, это дело можете сразу подправить, выбрать направление: публичные или приватные закладки (для приватных закладок рекомендую отдельнную область имен (namespace), которой назначить, соответственно, ограниченные права) и сохранить.

Как их потом искать? В шаблоне по-умолчанию сразу ставится тег Bookmark, я рекомендую его не убирать, потом по этому тегу просматривать свои закладки. Помимо этого:

  • по назначенным тегам, если озаботились этим
  • поиском по сайту

Что бы это дело работало, создайте себе браузерную закладку (я бы предположил поместить её на панель закладок, если оная у вас включена), с любым именем и следующим содержимым в качестве адреса:

javascript:Q=document.selection?document.selection.createRange().text:document.getSelection();void(window.open('http://SITE/wiki/doku.php?do=dokubookmark&te='+encodeURIComponent(Q)+'&ur='+encodeURIComponent(location.href)+'&ti='+encodeURIComponent(document.title),'dokuwikiadd','scrollbars=yes,resizable=yes,toolbars=yes,width=680,height=520,left=210,top=150,status=yes'));

Только исправьте адрес и путь на сайте на свои.

Все, пробуйте :)

UPD: Поддержка кирилицы

Из коробки пока не работает нормально с кирилицей (решение ниже, оно же отправлено разработчику)

Вы можете заметить, что для экранирования передаваемой строки используется escape(), так что кодировку строки-источника мы определить никак не сможем. Есть другие вызовы, которые так же экранируют строку, но в кодировке UTF-8, не зависимо от настроек сайта, это:

  • encodeURI()
  • encodeURIComponent() Различия между ними можно посмотреть в этой статье (и о escape() так же): http://habrahabr.ru/blogs/webdev/17640/, после чего выберите ту, которая по вкусу.

Но этого не достаточно, в самом плагине, нужно открыть файл helper.php и заменить все вхождения

htmlentities($some_text_var)

на

htmlentities($some_text_var, ENT_COMPAT, "UTF-8")

Дело в том, что у htmlentities(), согласно документации, кодировка по умолчанию ISO-8859-1, за подробностями в документацию (умный форматировщик кода у меня тут, даже ссылки сразу на первоисточники поставил, пользуйтесь).

UPD2: Все, эти пляски не нужны, автор обновил версию, за что ему большое спасибо :)

May 22, 2010 - 1 minute read -

DokuWiki, blog и include плагины

Коротко: include плагин некорректно закрывает <div> если задана опция отображать только первую секцию, в результате может поехать… Ну сами догадайтесь.

Исправление, подразумевается, что мы в директории plugins:

  1. открыть include/helper.php
  2. найти там функцию _get_firstsec(&$ins, $page)
  3. найти в ней строкуphp$ins[] = array('section_close');
  4. заменить на: php$ins[] = array('section_close', array());
  5. очистить кеш
  6. радоваться :)

Вот так выглядело до исправления:

http://img153.imageshack.us/img153/1839/screenshoot201005221900.png

Так после:

http://img232.imageshack.us/img232/1196/screenshoot201005222034.png

UPD: написал письмо разработчикам, отреагировали быстро, в git уже есть изменения :)

May 21, 2010 - 1 minute read -

YouTube и HTML5

На правах реминдера.

http://www.youtube.com/html5

позволяет включить для видео тег

<video>

и забыть о необходимости флеша. Работает сразу в chrome/chromium, для Firefox есть расширение которое заменяет тег на

<embed>

и после этого нормально работает.

May 13, 2010 - 6 minute read - linux

Резервное копирование при помощи rsync+ssh

Статей на эту тему много, к примеру:

Но нигде не нашел внятного объяснения как сохранять права доступа, группу и владельца, особенно, если удаленный сервер (backup-сервер) работает не от пользователя root.

В общем, постановка задачи:

  • инкрементный бекап
  • клиент-сервер
  • сохранять права доступа, владельца и группу
  • сохранять только указанные директории, представлять возможность исключения по паттерну, делать исключения в исключениях :)
  • выполнение каких-то операций пред выполнением резервирования

May 10, 2010 - 2 minute read -

Xorg 1.8

Поставил из любопытства, в частности поглядеть на новые средства конфигурации для Input устройств - теперь HAL не используется, а используется, в Linux (кстати, а как на других *nix?), UDEV.

Сразу, для олдовых мужиков, которые издревле конфигурировали иксы через /etc/X11/XFree86.conf или /etc/X11/xorg.conf, тут практически ничего не изменилось:

  • появилась возможность “дробить конфигурацию”, ложить в отдельных файликах в /etc/X11/xorg.conf.d
  • именно для Input-устройств появилась новая конфигурационная секция (что бы все драйверы не грузились, только нужное) - InputClass о которой можно так же почитать в man xorg.conf (там обратите внимание на новые директивы, которые помогают определять устройство, всякие Match*)

Теперь, как узнать различную информацию которую можно подсунуть этим самым Match*? Тут рекомендуют обратиться к udevadm, но отчего-то у меня она оказалась мало-информативна. Воспользовался логикой: UDEV берет информацию из SYSFS, при помощи правил в /etc/udev/rules.d добавляет/модифицирует свою, но основную можно глянуть и самому в SYSFS. Для этого идем в /sys/class/input делаем ls и смотрим сколько у нас тут всякого! По крайней мере у меня на EeePC:

$ ls
event0   event11  event4  event7  input0   input11  input4  input7  mice
event1   event2   event5  event8  input1   input2   input5  input8  mouse0
event10  event3   event6  event9  input10  input3   input6  input9  mouse1

Ну а потом обзором по всем этим устройствам, меня больше интересовало имя моего тачпада, это оказалось устройство event10:

$ cat /sys/class/input/event10/device/name 
ETPS/2 Elantech Touchpad

Там и другие файлы, другая информация есть, смотрите что нужно.

Из остальных: event1 оказался клавиатурой, там же оказались и ACPI кнопки типа Power Button (event5, event6 - почему только два?), Sleep Button (event4), встроенная usb веб-камера (event8), PC Speaker (event11). Унификация, фигли :)

Ну и вот мои конфиги:

  • Для тачпада: /etc/X11/xorg.conf.d/09-elantech.conf``` Section “InputClass” Identifier “touchpad catchall”
    # Как я получил имя продукта, описано выше MatchProduct “ETPS/2 Elantech Touchpad”

    Option  "SHMConfig"              "on"
    Option  "MaxSpeed"               "1.00"
    Option  "MinSpeed"               "0.75"
    Option  "Emulate3Buttons"        "on"
    Option  "VertTwoFingerScroll"    "1"
    Option  "HorizTwoFingerScroll"   "1"
    Option  "TapButton1"             "1"
    Option  "TapButton2"             "2"
    Option  "TapButton3"             "3"
    Option  "LockedDrags"            "11"
    
    Driver "synaptics"
    

EndSection


  * Для переключения раскладки клавиатуры: **/etc/X11/xorg.conf.d/09-keymap.conf**```
# Мои общесистемные настройки переключения клавиатуры для Xorg 1.8
Section "InputClass"
        Identifier "evdev keyboard catchall"
        MatchIsKeyboard "on"

        Option "XkbModel"    "evdev"
        Option "XkbRules"    "base"
        Option "XkbLayout"   "us,ru"
        Option "XkbVariant"  ",winkeys"
        Option "XkbOptions"  "grp:lwin_toggle,grp_led:scroll,compose:ralt,terminate:ctrl_alt_bksp"
EndSection

Немного более детально можно почитать:

PS на правах хинта, а то постоянно вылетает из головы: получить базовый xorg.conf: X -configure или Xorg -configure

May 10, 2010 - 1 minute read - projects programming

Crowns 0.4.0

Выпустил версию 0.4.0 из основных изменений:

  • добавлена поддержка подложки (фоновой картинки), для реализации отображения синнузий
  • поддержка импорта из текстовых файлов данных с возрастом, плюс реализована совместимость со старыми форматами
  • оптимизация отрисовки проекций крон: реализована отрисовка кривыми Безье
  • экспорт построений в SVG

Как обычно версия для Windows отстроена путем кросс-компиляции, требуется тестирование.

Полный список изменений: ChangeLog

Скачать: Download

May 1, 2010 - 1 minute read - life

Спокойствие

Как оказывается спокойно с выключенным IM.

Да, вот тут раздача свена, друг, ещё будучи в VL LUG начинал портировать, потом долго мутили немцы: http://www.linux.org.ru/forum/games/4773950