Hatred's Log Place

DON'T PANIC!

Jun 19, 2010 - 1 minute read -

DigiKam 1.3.0

Несколько версий назад поломали они там поворот JPEG’ов, хотя как поломали, переход на новую версию libjpeg был, вот малость API и несогласовалось. И вот, матерясь на версию 1.2 во вторник, подготавливая фото к выкладыванию, сегодня накатываю обновления системы и вижу версию 1.3.0, первым делом опробовал - РАБОТАЕТ :) Сейчас ещё нужно покумекать, как там дела обстоят с PicasaWeb и логинами отличными от вида ИМЯ@gmail.com (ведь мыло то может быть любое).

UPD: Да и экспорт в PicasaWeb с логинами отличными от ИМЯ@gmail.com тоже заработал, ну чтож, вкусно :)

Jun 15, 2010 - 11 minute read -

г. Ольховая, 2010.06.12-14

В этом году опять повезло, 12 июня выпало на субботу, а, как следствие, сразу образуются три выходных подряд.

Не долго думая, решил собрать народ, и сходить на Ольховую, а то уже засиделся дома, да и вершин повыше захотелось. Народ собирался вяло, расшевелить получалось слабо. К четвергу собрал только троих: Я, Настя, Серёга. Судьба ещё четверых (одна моя знакомая и трое ею позванных людей, мне не знакомых на тот момент: Аня (знакомая), Ярослава, Лиза и Антон) должна была решиться в пятницу, поэтому распределяя продукты, сделал так, что бы эти две подгруппы были независимы. Просто подводили уже не раз, когда только в транспорте оказывалось, что кто-то проспал, а так получается относительная независимость, при возможности готовки в одном котле :)

В пятницу покупаю билеты на автобус, идущий на Преображение (отходит в 10.00 от автовокзала, с учетом багажа и предварительной продажи, на троих получается 1000 руб, билеты брал до Монакино), смотрю на места: 37, 38, 41, смутно понимаю, что остальным врядли судьба боготворит ехать одной бандой с нами…

В общем так и случилось, они добирались на электричке до Партизанска (да, а Аня проспала), и от туда на перекладных (благо Ярослава гоняла автостопом, но без дорожного атласа в незнакомых местах, трудно бывает)… В результате по выезду из Сергеевки наш же автобус их и подобрал :)

И тут оказалось, что они малость не туристы: палатка в руках, спальник в руках, всю экипировку собирали смиру по нитке. Ладно, примерно на такие случаи 20 метров бельевой веревки вожу :laughing:

Высадили нас перед знаком въезда в Монакино, огляделись, закинули рюкзаки и отправились в путь.

Дорога сразу не понравилась: видно, что она довольно езженная, широкая и пыльная. А сверху жарит как не в себя. Но буквально через несколько метров рядом с нами останавливается пикапчик, оказался местный егерь (жалко имени не спросил), отличный мужик, малость интересностей рассказал. Забросили ему в кузов рюкзаки и умудрились вшестером впихнуться во внутрь :)

Добросил он нас не далеко, но как раз провез самый жуткий этап: поля. Сам он поворачивал на базу.

Скинув рюкзаки занялись делом: примотали всё что можно примотать к рюкзакам веревкой, что бы освободить руки. А мой рюкзак потяжелел на килограмм гречки с рисом :( На речке рядом, запаслись водой (как оказалось - не зря). И шагом марш.

По дороге ничего особо хорошего рассказать не могу: пылища, машин много (правда больше встречных было, а отставшие Лиза и Ярослава, даже смогли уазик застопить, который до речки их подбросил, после чего сворачивал на боковую, еле видную дорогу вдоль ручья), жирило и с низу (пыль раскаленная была) и сверху. В одном только месте порадовал полоз: проходим, смотрим, из коряги торчит хвост, и буквально сразу вжик, и втянулся, а сантиметров 10 ниже из коряги показалась любопытная морда, что уставилась на нас и как палка стояла, отошли, он малость втянулся, а когда подходили: снова вылазил, мол, что это за создания такие интересные? :)

Из-за жары снял футболку, повесил на спину и под лямки, что бы рюкзак не натирал, пока дошел до речки (примерно где впадает ключ Карненков (нечетко пропечатано)) - стал похож на африканца. Там мы были в 18.00 (за спиной 3 часа пути). Сделали передышку, искупались (кто хотел) приготовили суп… А тут вторая новость: вкусовые предпочтения. Я когда сочинял меню и раскладку, всех кто точно едет спросил, кто, что, как. Про новичков не знал, а оказалось: Антон не ест мясо, Ярослава - сало (правда я его, как оказалось, забыл в холодильнике :)), Лиза - лук в супе. Как результат, на вершине варили такой же суп, но уже из расчета на троих (вторая подгруппа решила возвращаться на второй день и на вершине не ночевала), получилось значительно вкуснее (в поход тушенку не брали, использовали сервелат, получилось крайне вполне себе).

На привал ушло около 2х часов, решили, что по дороге ищем подходящее место и ставим лагерь. Через 30 минут вышли к развилке - прямо дорога к подножию, направо - к пещерам вдоль р.Малая Алексеевка, там же на берегу и поставили лагерь. Буквально рядом есть замечательная заводь в которой милое дело купаться, над заводью нависает скала - красивое место.

А вот вечерние посиделки, до 2х ночи и вино, как показал следующий день, были явно лишними. Кроме того, пока сидели, я по глупости у тента оставил мешки с едой, так мышки помогли попробовать одну картофелину (прогрызли пакет) и одну пачку гречки. Эту часть продуктов пришлось утилизовать. И вообще, если ночуете под тентом - не трудно подвязать мешок под конек на веревку, благо, обычно, место позволяет.

Кроме того, утром я и настя нормально встали в 6.30, приготовили завтрак, к семи часам разбудили лагерь, правда встал только Серёга, вторую палатку смогли растолкать только к 8.30-9.00 часам. Как результат смогли выйти только в 10 часов, вместо намеченых 8.00-8.30.

Где-то через час были у последнего моста, у которого переходили реку вброд, малость отдохнули и ещё через час были у начала маршрута. После выхода на хребтик, остановились, так как начали решать как лучше быть тем, кто сегодня хочет добраться домой. В результате Антон и Ярослава, спрятали свои рюкзаки и решили налегке подняться на вершину, осмотреться и спуститься вниз. Лиза же остается внизу (трудно оказалось её и на хребтик зайти), ждет их до 16.30-17.00, если они не возвращаются, сама отправляется домой. Я такие вещи не люблю, основной подход: или все идем, или все возвращаемся. Но в любом случае, люди должны быть парой - если что случится, что бы хоть один мог найти помощь.

У начала маршрута, как я думаю, следовало бы сделать привал, но мы сразу пошли на подъем, а недостаток воды, не позволил на переходе сделать привал и приготовить обед, поэтому шел на запасах орехов и изюма в карманах.

Подъем дался очень тяжко, хотя погода очень способствовала - солнышко выглянуло только под вечер, а так небо было затянуто и поддувал ветерок. Несмотря на всё это сердечко заходилось, а ближе к вершине, после каменистого хребтика, малость недоходя до родников, после прыжка с камушка, уже дали знать и ноги - подкосились, подумал и присел передохнуть, прикрыл глаза и вырубился. Судя по всему, в отключке был около 30 минут, потом проснулся и продолжил путь. В общей сложности подъем у меня занял почти ровно 7 часов, по дороге было два или три 30 минутных передыха. Местами хотелось очень есть, но когда доставал еду, кусок в рот не лез. Сдается мне, что сказалось то (помимо вообще физ подготовки), что мало спали и вино - знакомые признаки интоксикации, хотя вроде и не пили почти, в общем, алкоголь если и принимать, то строго наркомовские 100 грамм, не больше :)

Уже после каменного хребтика (или как я её назвал “каменная грядка”), порадовала и живность: дорогу перебежал любопытный бурундук, который не торопился убегать далеко, туристы для него, видать, уже обыденность. Через несколько шагов, буквально из под ног, выскочила полевка и юркнула между камней, но так, что спинка осталась видна, почти сразу развернулась и секунд десять смотрела на меня своими бусинками глаз, после чего скрылась окончательно. Действительно, зверье там уже прикормлено и людей особо не пугается :) Клещей почти не снимали, было похоже на то, что спускающиеся навстречу туристы уже их всех собрали :laughing:

Когда дошел до родника, счастию не было предела, ведь как приятно вдоволь напиться ледяной, ломящей зубы, сладкой воды (или только мне она показалась сладкой?). Небольшой передых и дорога дальше: сто шажков и отдышаться, сто шажков и отдышаться, пятьсот шажков - присесть и передохнуть пару минут. Но ничего, Я упорный: язык три раза вокруг шеи обмотаю, но до цели доползу, назад не поверну! И дополз же :) Что бы несколько себя оправдать на передышках делал фотографии.

На подъёме обогнала ещё одна группа туристов: они тащили с собой баню, однин человек - печку и один саму баню и веники, остальные - прочее имущество.

Пока поднимался, начал задумываться, а чего это я обратно не вижу Антона с Ярословой, ведь они должны были по крайней мере около 2-3 часов назад мне встретится. На вершине все стало на свои места: у костра сидит Антон, Ярославы нет, говорит, пошли вместе на вершину, но возращались не вместе. Как оказалось Ярослава заплутала, но у меня сразу полезли нехорошие мысли. Решили - сейчас малость передохну и пойдем искать. Но Антоха, молодец, сорвался раньше, хорошо, что ничего не случилось, и, буквально тут же, нашлась. Стал вопрос как им возвращаться: уже скоро закат, а в сумерках, достаточно сложно спускаться. Но все же, они решили отправляться. Подробности их обратного пути узнал только на следующий день (все это время было малость не по себе).

Через час после завершения пути был приготовлен обедо-ужин: вкуснющий рисовый суп (т.к. супы отличались только заправкой: рис, перловка, макароны и т.п., соответственно названия я им давал и этому признаку) =-) Перекус, и уже бодро прыгали по камням смотреть закат. Пока прыгали, прошли мимо стоянки семейной пары и их детей, бросилось в глаза их убежище: четыре кола, высоток около 40-50 см, и сверху натянут полиэтилен, с образованием стенок, получается эдакая коробочка, напротив входа которой горит костер. На обротном пути в наш лагерь присел у них поболтать: дочка у них походница с 1 года и 4 месяцев - носили в детском рюкзаке-люльке на Туманную. Вообще - молодцы, что сказать.

Там же на камнях, удалось поймать связь, предупредил родных, что таким темпом есть веротяность, что останемся на третью ночевку, посему не волноваться. Кстати про связь, после каменной градки был промежуток в котором было замечено: как начинает дуть ветер - появляется связь, как только он прекращается - исчезает (у меня телефон мерзко пикает, когда ловит и теряет связь), объяснимо, но забавно :)

Вечером долго не сидели, в 11 часов начало клонить в сон, посему, не стал издеваться над собой, собрал продукты, подвесил на крючек на веревку, на которой был растянут тент, котелок с остатками супа - закрыл и повесил на сук. Сам упаковал себя в спальник и буквально сразу заснул, предварительно завел будильник на 6.30. Спал без задних ног - так сказалась усталость, но проснулся за десять минут до будильника.

Утром сразу поднялись и побежали на вершину смотреть восход, к сожалению, малость промазали со временем, но красоту это не отменило. Восход бы и так не увидели, ибо на востоке было облачно, но пробивающиеся лучи солнца… Почти как на библейских картинах :) Вокруг шикарная видимость, хотя и ближние и дальние сопки укутаны голубой дымкой (приморская влажность под 100%) В общем - красота.

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

Позавтракали, помыли котелки, запаковали рюкзаки и тронулись.

И вот спуск, решили идти по тому же маршруту, что и поднимались - другие маршруты оставим на следующие разы :)

На роднике заправились водой, на каменной грядке отлично ловит Акос, Настя предупредила свою родню о возможной внеплановой ночевки. Буквально после каменной градки встретили двух ребят - Сергея и Николая, они на легке в быстром темпе забирались на гору, сказали им, что скоро родники (они были рады, ибо водичка кончилась) и идти не больше получаса в их темпе. Они же сказали, что внизу, у брода встретили наших, как я понял - Антона и Ярославу, они собирались, следовательно они успешно спустились, дошли до переправы и разбили там лагерь на ночь - не получилось им вернуться в тот же день, но неплохо, главное что все нормально. Поблагодарили их за добрую весть и потопали дальше.

Спуск дался достаточно легко, занял около 3.5 часов времени, и то, лишние пол-часа из-за меня - под конец отказались держать ноги на спуске, пришлось семенить. Крутые участки, которые можно было легко просмотреть, не мучался и пробегал - так оказалось легче, даже с рюкзаком. Внизу у ручья сделали небольшой передых, залиль два литра воды, бандану на голову смочил и отправились дальше. Примерно через час были на переправе, опять малость привалились, переправились. И буквально сразу видим ребят, которых встретили у каменной грядки - у ни на все про все забег занял около 3-3.5 часов. Молодцы, шустро. Нужно будет попробовать в следующий раз тоже забраться на легке.

Они окунулись прямо на переправе, я не смог удеражаться и последовал их примеру :) После, они сами предложили подбросить нас до трассы (сами направлялись в Партизанск), мы переглянулись, и без лишних обсуждений согласились. По дороге малость болтали, поделились впечателениями, кто где был, дал ссылку где можно варианты маршрутов посмотреть (на сайте Зеленого). Они рассказали, что на подъеме видели тигриный след - большой и малый, видать тигрица с тигренком, но т.к. по отзывам егеря, зверье тут есть, не думаю, что они будут агрессивны по отношению к человеку, не рыси же все таки.

Около 17 часов были на федеральной трассе. Распрощались, пожелали доброго пути и новых встреч на тропах.

Тут я начал вспоминать свои навыки автостопа, скоро остановили машину, водитель правда сказал, я не далеко, подброшу вас до перекрестка на Углекаменск, а то много машин туда едет, что бы вы и вас не вводили в заблуждение, там уже поймаете машину. Спасибо ему за участие, как оказалось, сам он работал в Лозовском заповеднике, так что с такими как мы уже сталкивался, и понимает :)

Там мы выбрали место наверху пригорка - лучшее место для стопа, обычно у машин там скорость меньше, и где-то около 17.50 поймали машину, за рулём на пассажирском сидении настоящие горцы, а буквально пятью минутами раньше Настя напомнила, как прозвала её сестра меня на прошлогоднем походе на Туманную (я тогда бороду носил) - чечен. А у Сереги в роду тоже чеченцы были, и профиль соответствующий, может это помогло? :))

Ребята ехали в Уссурийск, согласились нас подбросить сколько смогут по пути… Ага, подбросить, как мы ехали, я вспомнил слоган: лучше нету самолета, чем любимая тойота, ибо средняя скорость на спидометре была 130 км/час, местами до 150. Таким образом долетели до Шкотово, где по прикидкам через 30-40 минут должна быть электричка, попросили там высадить, поблагодарили и потопали на станцию. Купили билеты, на лавочке перекусили в ожидании элекрички… А дальше был дом, душ и сон :)

По приезду домой сразу прозвонился нашим попутчикам: Ярославе и Лизе, оказалось, что добрались отлично, Лизу довезли спелеологи, чуть ли не до самого дома, Ярославу и Антона на следующий день так же на попутке, подобрали в километре от нашей первой ночевки. Все добрались, все здоровы, и я спокойно лег спать.

Как финал: я в восторге, спать под тентом было не холодно, и даже комфортно, Настя отличный кашевар и всем спасибо за компанию!

UPD, фото: http://picasaweb.google.ru/adrozdoff/2010061214, а тут одним архивом (в исходном качестве): http://hatred.homelinux.net/~hatred/foto/tourism/2010.06.12-14_Olhovaya.tar

Jun 9, 2010 - 1 minute read - linux

epssplit & jpeg2ps

Про эти утилиты писал года три назад в статье: Резка большеформатных изображений на листы формата А4 для последующего склеивания

Сейчас дошли руки приготовить пакеты для AUR: epssplit, jpeg2ps, так что, в ArchLinux с установкой стало проще :)

По поводу преобразование растра в PS/EPS можно почитать в статье Евгения Балдина в “Linux Format”: LaTeX. Часть 4: Графика

Jun 5, 2010 - 1 minute read - programming

Image Ruler 0.98

Image Ruler - небольшой приложение для измерений на сканированных изображениях, например картах.

По сути анонс, хотя версии были уже выложены.

Оформил страницу проекта и выложил в для скачивания версию 0.98, по сравнению с 0.0.3 изменения:

  • исправлена ошибка с расчетом DPI и получением его из изображения (невозможно было активировать)
  • косметика интерфейса, приведен к финальному виду.

К версии 1.00 думаю будет сделано следующее:

  • краткое руководство
  • измерение в единицах отличных от миллиметров
  • оптимизация получения мета-информации из изображения
  • перевод на CMake и добавление правил для установки (make install)
  • иконку :simple_smile: кстати, кто предложит, должна отображать суть - измерения.

Jun 4, 2010 - 1 minute read - life

В этой стране все для детей

В Этой сране всегда все для детей, даже отъем помещения у Хореографического училища ДВГУ. Правильно, дети будут здоровее, занимаясь на улице, на свежем воздухе. Или… будут беречь силы, что бы кричать “Россея вперде!”

Пруф: http://news.vl.ru/vlad/2010/06/03/horeograf/

Jun 3, 2010 - 2 minute read - programming

Документация для проектов

Как жаль, что очень многие сейчас забыли про проект LinuxGazette, а ведь он живет и здравствует по сей день.

Как жаль что очень многие современные разработчики в сфере FOSS не читали статью от туда:

И не знают про цикл статей “Writing Documentation” в этой самой LinuxGazette:

В частности, POD оказался достаточно простым и ненакладным способом писать документации в виде страниц руководств (man-pages).

Люди, разработчики, программисты! Пишите документацию! Хорошая документация очень привлекает внимание к проекту, помогает разобраться в нем, легче написать какие-то модификации, патчи и, в конечном итоге, помочь ему и вам.

Примеры отвратительного документирования? Да пожалуй почти все творения FreeDesktop.org (по моему мнению, так их деятельность, это диверсия в рядах FOSS), к примеру HAL, для которого сначала написали реализацию, и, по-моему, до сих пор не существует спецификации, как результат - им показалось что HAL тяжел, разделили его на отдельные демоны-сервисы, а кто был завязан на него получили головную боль (особенно кто пользовался монтированием флешек/дисков, или тот же Xorg, которому пришлось придумывать свою систему для настроек подключенных на горячую устройств ввода).

Или xdg-utils… посмотрите man xdg-open (навеяно дискуссией в #archlinux-ru@FreeNode), вроде и есть, ну никакой ясности не вносит - кто, что будет открывать, какие браузеры или переменные окружения будут использоваться, какие окружения рабочего стола поддерживаются.

Ну и последнее, вы что нибудь можете сказать о загадочной утилите ck-launch-session из комплекта PolKit? Нет? Да она даже на –help или -h подсказки не выдает, кто она и что делает. А ведь применяется много кем, кто не использует gdm/kdm/etcdm, в знакомой мантре в .xinitrc: exec ck-launch-session startkde

Jun 3, 2010 - 2 minute read -

Странная проблема с WiFi на EeePC 1000HA

Проблема сводится к тому, что при запуске Xorg связь начинает умирать. Для восстановления достаточно переключиться в консоль. Причины и связи мне не понятны, и вообще фантастически выглядит решение проблемы: перепрошивка точки доступа. Вот где тут связь???

Пока разбирался, научился запускать драйвер ath5k - просто для его включения нужно активизировать 2 rfkill устройсва:

  1. сначала eeepc-wlan (см вывод rfkill list)
  2. после появится ещё одно - phy0, и активировать его
  3. затем, в обязательном порядке - ifconfig wlan0 up после чего можно начинать работать.

Точка доступа (DWL-G700AP) же, была последним шагом - нет нормальной связи, так хоть поэксперементирую. Прошивку туда залил Wive-ng, она на базе ядра Linux 2.4, и очень значительно расширяет возможности точки, превращая её в полноценный маленький сервер с управлением по ssh/telnet:

  • pppoe-client
  • pptp-client
  • dhcp
  • iptables/nat
  • балансировка трафика
  • роуминг (прозрачный переход от точки доступа к точке доступа)
  • vlan
  • широкий диапазон регулировки мощности (больше чем в базовой поставке, но для значений больше 20, следует применять принудительное охлаждение)
  • smbclient (но… не могу представить для чего :) если бы было память побольше, можно было бы туда запихнуть rtorrent с веб-интерфейсом (или даже без оного), а так…)
  • и ещё всего и вся по мелочи

В результате и связь при запущенных Xorg поднялась. Хитрая уличная магия.

По прошивке и вообще точке доступа:

General:

Wive:

Wive-ng:

May 27, 2010 - 1 minute read -

OpenID

Всё, снова работает на сайте. Под формой ввода логина/пароля ссылка для входа при помощи OpenID

May 26, 2010 - 2 minute read - programming

Cmake, Qt4 и кросс-компиляция

Есть у меня проектик, он как тестовый полигон, хоть код и достаточно в большом количестве поддается только одной характеристике: исторически сложилось. Но на нем первом я опробовал кросс-компиляцию для Windows из Linux. Теперь его же перевел в обучающих целях на Cmake. Однако, все новое не должно отменять старых достижений, как следствие встал вопрос - а как теперь делать сборку для Windows?

С учетом того, что система сама по себе пока малознакома, решил понапрягать гугл (точнее: http://google.com/linux)

Почти сразу нашел две статьи мини-цикла:

Сделав по этому методу, немного помучавшись, получил все-таки рабочее окружение для отстройки и собрал в проект. Но не давало покоя много ручной суетливой работы, и, практически, полный отказ от уже реализованных методов поиска Qt библиотек в Cmake.

Именно по вышеуказанной причине я решил продолжить изыскания. Поиском по готовым модулям Cmake нашел упоминание некой директивы CMAKE_TOOLCHAIN_FILE, которая, по внутреннему ощущению, должна была мне помочь.

Дальнейший поиск привел меня на вики самого Cmake: How to use MinGW to cross compile software for Windows, где было сказано про тот самый toolchain file. С минимальными изменениями поместил его в каталог cmake в корне дерева проекта.

Ниже приведу листинг этого файла, назвал его win32-x-mingw32.cmake, в адоптации для ArchLinux:

# the name of the target operating system
SET(CMAKE_SYSTEM_NAME Windows)
 
# which compilers to use for C and C++
SET(CMAKE_C_COMPILER i486-mingw32-gcc)
SET(CMAKE_CXX_COMPILER i486-mingw32-g++)
SET(CMAKE_RC_COMPILER i486-mingw32-windres)
 
# here is the target environment located
SET(CMAKE_FIND_ROOT_PATH  /usr/i486-mingw32)
 
# adjust the default behaviour of the FIND_XXX() commands:
# search headers and libraries in the target environment, search 
# programs in the host environment
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)

# next options is needed by some cases
#set(CMAKE_EXE_LINKER_FLAGS
#    ${CMAKE_EXE_LINKER_FLAGS}
#    -Wl,-subsystem,windows
#    -Wl,-enable-auto-import
#    -Wl,-enable-runtime-pseudo-reloc)

# Uncomment this if you have problem: unrecognized option '-rdynamic'
#set(CMAKE_SHARED_LIBRARY_LINK_C_FLAGS)

set(MINGW32 1)

Это, конечно, не все, остались последние штрихи.

Использование данного тулчайна приведет к установке переменной CMAKE_CROSSCOMPILING, на основании этого, перед вызовом

find_package(Qt4 REQUIRED)

или аналогичного, достаточно вставить (в случае ArchLinux и пакета mingw32-qt из AUR или моей репы mingw32) следующий код:

if(CMAKE_CROSSCOMPILING)
  set(QT_HEADERS_DIR "/usr/i486-mingw32/include")
  set(QT_LIBRARY_DIR "/usr/i486-mingw32/lib")
endif()

После этого сборка осуществляется примерно так:

mkdir win32-build
cd win32-build
cmake -DCMAKE_TOOLCHAIN_FILE=../cmake/win32-x-mingw32.cmake ..
make

Все! :)

PS проверено на Cmake 2.8.1 и Qt 4.6.2

Updated: обновлён файл тулчейна

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 уже есть изменения :)