Проблема сводится к тому, что при запуске Xorg связь начинает умирать. Для восстановления достаточно переключиться в консоль. Причины и связи мне не понятны, и вообще фантастически выглядит решение проблемы: перепрошивка точки доступа. Вот где тут связь???
Пока разбирался, научился запускать драйвер ath5k - просто для его включения нужно активизировать 2 rfkill устройсва:
- сначала eeepc-wlan (см вывод rfkill list)
- после появится ещё одно - phy0, и активировать его
- затем, в обязательном порядке - 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:
Всё, снова работает на сайте. Под формой ввода логина/пароля ссылка для входа при помощи OpenID
Есть у меня проектик, он как тестовый полигон, хоть код и достаточно в большом количестве поддается только одной характеристике: исторически сложилось. Но на нем первом я опробовал кросс-компиляцию для 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: обновлён файл тулчейна
Сегодня.
К заголовку приставить копирайт - один из комментов на хабре к этому:
http://www.youtube.com/watch?v=3-gVSKARKPM&hl=en&fs=1
Обсуждение на хабре:
http://habrahabr.ru/blogs/arbeit/94273/
Ну?
Внимание: статья полностью неактуальна ввиду переезда на статику в 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, не зависимо от настроек сайта, это:
Но этого не достаточно, в самом плагине, нужно открыть файл helper.php и заменить все вхождения
htmlentities($some_text_var)
на
htmlentities($some_text_var, ENT_COMPAT, "UTF-8")
Дело в том, что у htmlentities()
, согласно документации, кодировка по умолчанию ISO-8859-1, за подробностями в документацию (умный форматировщик кода у меня тут, даже ссылки сразу на первоисточники поставил, пользуйтесь).
UPD2: Все, эти пляски не нужны, автор обновил версию, за что ему большое спасибо :)
Коротко: include плагин некорректно закрывает <div>
если задана опция отображать только первую секцию, в результате может поехать… Ну сами догадайтесь.
Исправление, подразумевается, что мы в директории plugins:
- открыть include/helper.php
- найти там функцию
_get_firstsec(&$ins, $page)
- найти в ней строку
php$ins[] = array('section_close');
- заменить на:
php$ins[] = array('section_close', array());
- очистить кеш
- радоваться :)
Вот так выглядело до исправления:
http://img153.imageshack.us/img153/1839/screenshoot201005221900.png
Так после:
http://img232.imageshack.us/img232/1196/screenshoot201005222034.png
UPD: написал письмо разработчикам, отреагировали быстро, в git уже есть изменения :)
Опять на правах реминдера:
http://pics.livejournal.com/alenkablazy/pic/0003rdsa/s640x480
На правах реминдера.
http://www.youtube.com/html5
позволяет включить для видео тег
и забыть о необходимости флеша. Работает сразу в chrome/chromium, для Firefox есть расширение которое заменяет тег на
и после этого нормально работает.
Статей на эту тему много, к примеру:
Но нигде не нашел внятного объяснения как сохранять права доступа, группу и владельца, особенно, если удаленный сервер (backup-сервер) работает не от пользователя root.
В общем, постановка задачи:
- инкрементный бекап
- клиент-сервер
- сохранять права доступа, владельца и группу
- сохранять только указанные директории, представлять возможность исключения по паттерну, делать исключения в исключениях :)
- выполнение каких-то операций пред выполнением резервирования