Hatred's Log Place

DON'T PANIC!

Oct 27, 2008 - 1 minute read -

Solaris: SMF

В ОС Solaris 10 появилась новая подсистема управления сервисами - System Management Facility (SMF). Так как все сервисы, описываемые тут, идентичны с точки зрения SMF, то в этом документе рассмотрен пример реализации управления запуском одного сервиса на примере сервера MySQL и описан минимум команд для управления сервисом.

Статья тут: http://www.linuxcenter.ru/lib/articles/system/solaris_smf.phtml

От себя замечу, что система близка к daemontools, но, наверное, более навороченная. Ну а использование XML конечно да…

Oct 26, 2008 - 4 minute read - туризм

Поход на хр.Большой Воробей

Ну вот, сходили таки на пару деньков в горы. Довольный как черт :)

Ходили я, Серега и Женя (Бертолет).

Изначально маршрут планировался: высадиться на ст.74 км, дальше по дороге пройтись через деревню, некоторое время идти по ней, потом свернуть на хребтик, подняться по нему до Туманной, перейти на метеостанцию и двигаться дальше по хребту, выбрать место для ночлега, переночевать, подняться, спуститься в районе г.Суходол и выйти в Лукьяновку.

Но погода немного скорректировала планы… В итоге маршрут получился таким:

Oct 24, 2008 - 3 minute read - туризм maps

Картографические приложения, а так же визуализация

Вообще, на данный момент, краткий обзор одного и ссылки на тему.

QLandkarteGT

Программа для работы с GPS. Позволяет скачивать треки с навигаторов Garmin, скачивать и заливать путевые точки.

Сайт программы: www.qlandkarte.org

Ну что самое главное, и что мне в первую очередь оказалось необходимым - он может привязывать карты! Используется для этих целей библиотека GDAL, которая позволяет создавать, так называемые GeoTiff - TIFF файлы с параметрами привязки. Для преобразования систем координат используется PROJ.

В стандартных репозитариях ArchLinux программы нет. Но есть в AUR. В распоряжении два варианта:

какой выбрать - решать вам. Сборка svn версии у меня прошла без сучка и задоринки. Чего и вам желаю :)

Небольшое замечание по поводу привязок, нужно как минимум 3 точки привязки. Координаты вводятся в виде “N43 20.000 E132 30.000”, где N/S - северная/южная широта, E/W - восточная/западная долгота, 43 и 132 - градусы, 20.000 и 30.000 - минуты и тысячные минуты.

Ещё не забыть указать проекцию, для наших карт почти поголовно Пулково 1942. В строке Projection щелкнуть по кнопке с “волшебной палочкой” выбрать

  • Projection: Mercator
  • Datum: Pulkovo_1942

Если где неточности - подправьте.

После привязки карту можно сохранить в формате GeoTiff. Да… перед привязкой карту нужно перегнать в 8-bit цвет или оттенки серого. Форма PNG или TIFF. Я перегонял в серый цвет при помощи ImageMagick:

convert -colorspace Gray in.jpg out.tiff

На сайте программы стоит обратить на раздел MAPS, где объясняется, где брать карты. Если кратко:

“Для работы с программой вам нужны карты. В общем случае вы можете их купить. Свободные цифровые растровые карты редкость. Коммерческие же облагаются жесткими ограничениями и имею закрытые форматы…”

Итак, что предлагают разработчики:

  • отсканировать карту и привязать её - программа позволяет это сделать (уже выше писал)
  • для использования 3D объектов и видов нужны данные о высотах, и ссылка на коллекцию таких данных: http://www.viewfinderpanoramas.org/dem3.html
  • Ага, ещё один источник: карты для OziExplorer. Тут скрипт для их конвертации в GeoTiff: http://sourceforge.net/projects/ozi2geotiff PKGBUILD’а для ArchLinux нету, но у меня пока и потребности конвертировать так же нет :) Как я заметил, архивов для скачивания нет, скрипт есть только в SVN:svn co https://ozi2geotiff.svn.sourceforge.net/svnroot/ozi2geotiff ozi2geotiff
  • Одним из источником карт назван проект http://www.openstreetmap.org.

Ссылки по теме:

  • OpenEV - программа анализа и просмотра растровых и векторных геоданных (фотоснимки, спутниковые снимки и т.п.)
  • mapview - просмотр карт с terraserver
  • GRASS/Qt - интерфейс на Qt для GIS GRASS
  • XRMAP, альтернативный сайт - The Xrmap program provides a user-friendly X client for generating images of the Earth and manipulating the CIA World data bank II global vector information (a huge geodata set of about 45 MB).
  • CVLView - отображение данных, сохраненных в pfs-файлах. PFSTools может быть интегрирована с Octave и Mathlab.

Oct 21, 2008 - 2 minute read - linux

Автоподключение PPPoE. Переподключение при разрыве.

Запостил как ответ на форуме русского сообщества ArchLinux: http://archlinux.org.ru/forum/viewtopic.php?f=8&t=922&p=6580#p6580

Сохраню и для себя :)

Итак, стоят пакеты rp-pppoe и ppp. Дальше.

С переподключением при обрыве, имхо, только завести pppoe через daemontools:

http://aur.archlinux.org/packages.php?ID=16966

ну дальше читать документацию как добавлять сервисы. Если кратко, для ‘pppoe’, то так:

  • создаём директорию /etc/ppp-internet
  • создаём файл /etc/ppp-internet/run с следующим содержимым:
    #!/bin/bash
    
    # тут укажи сетевую которая у тебя подключена
    ifconfig eth0 up
    
    # nodetach - обязательно. за подробностями в документацию.
    exec pppd nodetach call dsl-provider
    
  • делаем его исполняемым: chmod +x /etc/ppp-internet/run

Потом создай этот самый dsl-provider, файл /etc/ppp/peers/dsl-provider с примерно следующим содержимым:

plugin rp-pppoe.so
# network interface
eth0
# login name
name "pppoe-login"
# use assigned DNS
usepeerdns
# add default route to connection
defaultroute
hide-password
noauth
# create interface with name ppp999 (in my case others users from LAN have access to Internet via VPN for accounting purposes)
unit 999

В конфиге никоим образом не должно быть опции “persist”. Логин/пароль должны быть прописаны в /etc/pap-secrets или /etc/chap-secrets

ну и последний пасс:

ln -s /etc/ppp-internet /service/

управлять процессами daemontools можно при помощи команды

svc

UPD:

Ссылки по теме:

Oct 18, 2008 - 1 minute read - linux

UFRaw 0.14

Недавно вышел сабж. Подробности перепечатывать смысла нет, посмотреть новость можно на LOR

Из вкусного:

  • экспериментальная поддержка автокоррекции вносимых оптикой дефектов (геометрические искажения, хроматические аберрации и пр.) при помощи LensFun
  • добавлено упрощённое и улучшенное создание ч/б версий (по яркости, светимости, значению и через микшер каналов)

ЗЫ если на ЛОР не читать комменты, то, можно сказать, даже приличный сайт :)

Oct 4, 2008 - 2 minute read -

Из присланного про жизнь тяжелую разных животных

Прислали мне на почту… ну понравилось очень :)

  1. Капля никотина убивает лошадь, а хомячка разрывает на куски.
  2. Капля каннабиноида пробивает лошадь на “хи-хи”, а хомячка снова разрывает на куски - но уже от хохота.
  3. Капля кокаина раскрывает творческие потенциалы лошади, а хомячка начинает переть от собственной невепенности.
  4. Капля героина повышает самооценку лошади, а хомячка начинает ещё больше плющить от собственной невепенности.
  5. Капля кетамина обеспечит лошади четыре часа здорового безмятежного сна, а хомячка расколбасит на пару суток.
  6. Капля амфетамина позволит лошади сосредоточиться, а хомячка доведёт до паранойи и окосения.
  7. Капля триптамина обеспечит лошади некоторое количество радужных глюков и лёгкий стрём на отходняке, а у хомячка из головы начнут расти рога, цветы и прочая разноцветная гадость. Часов на восемь.
  8. Капля мескалина сместит у лошади точку сборки, а хомячка превратит в Шай-Хулуда. Карликового.
  9. Капля лизергина откроет лошади путь в Матрицу, а для хомячка закроет двери в реальный мир.
  10. Капля водки никак не подействует на лошадь, а хомячок будет в мясо, с диким сушняком наутро. Видели, как хомячок выпивает море? Отож…
  11. Капля ацетона заставит лошадь потерять нюх, а хомячок начнёт видеть мир в синем цвете.
  12. Капля суперклея, капнутая на копыто лошади, будет ей пофигу, а хомячок сдохнет с голоду.
  13. Капля скипидара в попе лошади придаст ей сил для рывка на финишной прямой, а хомячок станет просто реактивным микрокиборгом - двадцать минут высшего пилотажа на одной заправке!
  14. Капля ртути лошади невкусно, но пофиг, а хомячку этого хватает, чтобы разглядеть Альфу Центавра и узнать, как же красив наш мир в Римановом пространстве.
  15. Капля серной кислоты разъест лошади челюсти, а хомячок станет лужей.
  16. Капля селитры прочистит лошади зубы, а хомячку - мозги.
  17. Капля Макрофлекса для лошади - жвачка, для хомячка - домик.
  18. Капля юмора лошади бы не повредила, а вот для хомячка это было бы чересчур.

Oct 2, 2008 - 2 minute read - linux

Ещё немного про организацию CA (центра сертификации)

Для начала использовал программу TinyCA умеет многое и почти всё что нужно, единственно что не умеет (или я не разобрался как) делать иерархию подписывания, т.е. сертификат cert1 подписан certca, а сертификат cert2 подписан сертификатом cert1… Плюс неожиданно обнаруженная бага, при которой при экспорте сертификата в pkcs#12 для импортирования его в Windows, последний не импортируется.

Написана прога на PyGTK.

Поиски навели на проект XCA. Написан на QT4, при компиляции потребовались небольшие шаманства с файлом lib/x509rev.cpp конкретно потребовалось сделать следующее (в формате diff):

--- x509rev.cpp.orig	2008-10-02 13:19:11.000000000 +1100
@@ -7,16 +7,21 @@
 
 #include "x509rev.h"
 
-#if OPENSSL_VERSION_NUMBER >= 0x00908000L
-#define X509_REVOKED_dup(x5r) <br/>
1. ASN1_dup_of (X509_REVOKED, i2d_X509_REVOKED, d2i_X509_REVOKED, x5r)
+//#if OPENSSL_VERSION_NUMBER >= 0x00908000L
+//#define X509_REVOKED_dup(x5r) <br/>
+//	ASN1_dup_of (X509_REVOKED, i2d_X509_REVOKED, d2i_X509_REVOKED, x5r)
+//
+//#else
+//#define X509_REVOKED_dup(x5r) (X509_REVOKED *)ASN1_dup( <br/>
+//	(int (*)(...))i2d_X509_REVOKED, <br/>
+//	(char *(*)(...))d2i_X509_REVOKED, <br/>
+//	(char *)x5r)
+//#endif
 
-#else
 #define X509_REVOKED_dup(x5r) (X509_REVOKED *)ASN1_dup( <br/>
1. (int (*)(...))i2d_X509_REVOKED, <br/>
2. (char *(*)(...))d2i_X509_REVOKED, <br/>
+	(i2d_of_void *)i2d_X509_REVOKED, <br/>
+	(d2i_of_void *)d2i_X509_REVOKED, <br/>
 	(char *)x5r)
-#endif
 
 x509rev::x509rev()
 {

У кого-то наверное запустится и без этого, ибо чует моё сердце здесь многое зависит от версии компилятора и/или библиотеки OpenSSL.

Ну краткий обзор… Да управление не такое удобное как у TinyCA, хотя, возможно, это дело привычки. Но, как показалось, более функциональное. И при этом умеет иерархию. Старый корневой сертификат и ключ заимпортировал, на основе их делаю подписи. Вся база хранится в зашифрованном виде в единственном файле (база данных, подозреваю, что возможны случаи поломки всего этого дела), но возможен дамп базы, и будут по каталогам разложены сертификаты, реквесты и т.д.

Пока юзаю и разбираюсь. Время покажет.

Oct 1, 2008 - 2 minute read - linux

umask: дефолтные права к новосозданным файлам

На заметку.

Можно заметить что когда вы создаёте новый файл, к примеру, из тела програмы, при помощи fopen/open (без задания прав доступа), или командой touch из командной оболочки, этот файл приобретает какие-то предустановленные права. Значение этих прав доступа определяются значение umask.

Посмотреть текущее значение umask можно соответствующей командой:

$ umask
0026

При таком значении, права новых файлов будут 0640 - чтение/запись для владельца, чтение для группы и запрет доступа для всех остальных. Специальные биты сброшены (первый 0)

Вычисляются значения umask следующим образом:

0666 - <нужная маска> = <значение umask>

В нашем примере:

0666 - 0640 = 0026

Обычно в Linux-системах, которые я видел в последнее время, значение umask - 0022 (путем несложных вычислений получаем права доступа - 0644). Мне кажется, что не во всех случаях целесообразно разрешать ВСЕМ доступ на чтение к файлу, тем более, что иногда на сервере дается chmod +x на домашний каталог пользователя, дабы web-сервер смог получить доступ к ~/public_html (как там подробнее настраивать, это уже личное дело каждого).

Зачастую значение umask задается в стартовых скриптах, либо, в скриптах входа в оболочку. Так, в случае Archlinux значение umask задается в файле /etc/profile. Локально значение umask можно изменить в файле ~/.profile или, к примеру, ~/.bash_profile

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