Suomeksi Oppiskelia

В этом учебном году (2009-2010) я поехал учиться в Финляндию

шьём dd-wrt на Cisco Linuksys wrt160nl
rockin_kristal
http://wrt160nl.moy.su/publ/ustanovka_proshivki_ot_dd_wrt_i_ee_dorabotka_s_pomoshhju_skripta_ot_wrt160nl_org/1-1-0-1

(no subject)
rockin_kristal
Началось все с того, что на работе сдох видеорегистратор и встала
проблема организации видео наблюдения.
Используемые платы видеозахвата на базе чипа BT878

Долго искал и наконец-то нашел http://www.zoneminder.com

Надеюсь эта статья поможет еще кому-то, если нет, ну чтож ...
Итак, инсталируем Систему Видеонаблюдение ZoneMinder на Ubuntu 6.10
(первый диск, который попался :) , от 7.04 отличается одним симлинком, см.ниже )

Что нам понадобится:
apt-get install apache2
apt-get install php5
apt-get install php5-mysql
apt-get install libapache2-mod-auth-mysql
/etc/init.d/apache2 restart

apt-get install ntpdate
ntpdate time.tue.nl

Кроме этого, для создания видео, понадобится
apt-get install ffmpeg

Теперь непосредственно ставим наше наблюдение:
zoneminder_1.22.3-6_i386.deb
Качать отсюда:
ftp://www.northern-ridge.com.au/zoneminder/ubuntu/edgy


протестим апач, сделаем тестовый файлик
vi /var/www/test.php

Набираем в мазиле:
http://your_ip/test.php
если все хорошо, увидим справку нашего php

Теперь vi /etc/sysctl.conf
добавить строку:
kernel.shmmax = 134217728
reboot

Дальше настраиваем апач:
лично я не заморачивался, а просто скопировал содержимое
/usr/share/zoneminder в /var/www/
и создал заново симлин на cgi
cd /var/www/
ln -s /usr/lib/cgi-bin/ ./cgi-bin

в мане приводятся следующие настройки:
vi /etc/apache2/sites-available/default
найти RedirectMatch ^/$ /apache2-default/
заменить на RedirectMatch ^/$ /zm/
Добавить в /etc/apache2/apache2.conf
Alias /zm /usr/share/zoneminder
[Error: Irreparable invalid markup ('<directory /usr/share/zoneminder>') in entry. Owner must fix manually. Raw contents below.]

Началось все с того, что на работе сдох видеорегистратор и встала
проблема организации видео наблюдения.
Используемые платы видеозахвата на базе чипа BT878

Долго искал и наконец-то нашел http://www.zoneminder.com

Надеюсь эта статья поможет еще кому-то, если нет, ну чтож ...
Итак, инсталируем Систему Видеонаблюдение ZoneMinder на Ubuntu 6.10
(первый диск, который попался :) , от 7.04 отличается одним симлинком, см.ниже )

Что нам понадобится:
apt-get install apache2
apt-get install php5
apt-get install php5-mysql
apt-get install libapache2-mod-auth-mysql
/etc/init.d/apache2 restart

apt-get install ntpdate
ntpdate time.tue.nl

Кроме этого, для создания видео, понадобится
apt-get install ffmpeg

Теперь непосредственно ставим наше наблюдение:
zoneminder_1.22.3-6_i386.deb
Качать отсюда:
ftp://www.northern-ridge.com.au/zoneminder/ubuntu/edgy


протестим апач, сделаем тестовый файлик
vi /var/www/test.php
<?php phpinfo(); ?>
Набираем в мазиле:
http://your_ip/test.php
если все хорошо, увидим справку нашего php

Теперь vi /etc/sysctl.conf
добавить строку:
kernel.shmmax = 134217728
reboot

Дальше настраиваем апач:
лично я не заморачивался, а просто скопировал содержимое
/usr/share/zoneminder в /var/www/
и создал заново симлин на cgi
cd /var/www/
ln -s /usr/lib/cgi-bin/ ./cgi-bin

в мане приводятся следующие настройки:
vi /etc/apache2/sites-available/default
найти RedirectMatch ^/$ /apache2-default/
заменить на RedirectMatch ^/$ /zm/
Добавить в /etc/apache2/apache2.conf
Alias /zm /usr/share/zoneminder
<Directory /usr/share/zoneminder>
php_flag register_globals off
options Indexes FollowSymlinks
<IfModule mod_dir.c>
DirectoryIndex index.php
</IfModule>
</Directory>

Для Ubuntu 7.04
sudo ln -s /etc/zm/apache.conf /etc/apache2/conf.d/zoneminder.conf
sudo /etc/init.d/apache2 reload

При запуске сервера столкнулся с ошибкой чтения из /dev/video*
Для устранения нам советуют делать следующее:
Цитировать (выделенное)

Setting the permissions of the video devices
If you get no pictures from your Hardware video device or you 'sources' display as red, ie. not working, you can temporarily test the permissions of /dev/video* as being an issue by typing :-
chmod 666 /dev/video0 (or /dev/video* where * is your device, 0, 1, 2 etc.)
The chmod option is discussed more in detail here :- http://www.zoneminder.com/forums/viewtopic.php?t=8621&highlight=zmfix+chmod
and if this is your error, it can be fixed properly by following post 6 in the thread by typing :-
sudo chmod 4755 /usr/bin/zmfix
This basically gives the zoneminder program permanent enhanced privileges when accessing your video devices.

in ZM config, changed nph_zms to zms for more reliable video capture
(you probably do not have to do this. I changed nph_zms to zms because I was getting intermittent access. It would work once then fail, leaving zombie processes that leaked memory eventually crashing Ubuntu. This parameter is changed in the Config/paths tab. Change the field ZM_PATH_ZMS ; change the last bit from "nph-zms" to "zms" )
reloaded apache2, then off to the races....
..... by pointing your web browser to :-
http://ZoneMinderServer/zm or http://localhost/zm or http://<your ip address>/zm
This same procedure also worked for Edgy


Теперь собственно настройки программы:
Первым делом в браузере снять запрет на блокировку всплывающих окон
http://your_ip/
Заходим в Options
Вкладка System
напротив Method used to relay authentication information (?)
поставить <none>
из-за этого у меня были проблемы в скриптах на отображение картинки.
(ошибка аутентификации ...)
Ставим галку напротив
Authenticate user logins to ZoneMinder (?)
теперь будет спрашивать пароль при входе. (admin/admin)
--save
редактировать/добавлять пользователей на вкладке users

Вкладка config
Снимаем галку
Timestamp images as soon as they are captured (?)
Вкладка web
The title prefix displayed on each window (?)
Пишем название для нашего видеосервера
Should the console window resize itself to fit (?) снимаем галку
--save
Вкладка Images
Which method should be used to send video streams to your browser. (?)
устанавливаем в jpeg
Is there an (optional) mpeg video encoder installed (?)
в <none>
--save
Там где написано на главной ZoneMinder Console - Running
Жмем Running и перезапускаем сервер

Вроде бы все, теперь добавим камеру/монитор
Жмем <add new monitor>
пишем name для камеры
Function пока ставим в Record (с остальным потом сами разберетесь)
Переходим в source
ставим свое устройство, у меня /dev/video0
ниже ставим номер канала 0
(как у вас дожно быть, смотрите сами)
формат ставим в Auto
Цветность у меня Gray
Capture Width (pixels) – 320
Capture Height (pixels) – 240

Теперь закладка Misc
Section length у меня стоит в 3600
Frame Skip в 10

Небольшое дополнение для IP камер:
host name :
user:password@IP
Change remote path, for a axis camera use :
/axis-cgi/mjpg/video.cgi

Все, сохраняемся.
Рестарт сервера и идем смотреть :)

Данный вариант работает с файлами jpeg
Для формирования видео надо поставить в настройка mpeg
и указать модуль ffmpeg (и путь до него, /usr/bin/ffmpeg)
« Последнее редактирование: 29 Март 2009, 17:55:12 от ubuntar »
Записан

ethernet на PIC
rockin_kristal
http://www.picping.narod.ru/eth_control.htm

Java Access Restriction
rockin_kristal
Environment: Ubuntu Jaunty 9.10, Eclipse
Error: “Access restriction: The type HttpServer is not accessible due to restriction on required library /usr/lib/jvm/java-6-openjdk/jre/lib/rt.jar”
Solution (quick): You need to configure your project from Java OpenJdk to Sun’s Java

Solution (detailed):

1. Make sure you have sun-java6-bin and sun-java6-jre installed (using Synaptics Package Manager perhaps)
2. In Eclipse, RClick JRE System Library > Build Path > Configure Build Path
3. Add Library > Alternate JRE > Installed JREs…
4. Add > Standard VM > Next > Directory > /usr/lib/jvm/java-6-sun-1.6.x.xx
5. Remove Openjdk JRE System Library

(no subject)
rockin_kristal
Долбаный симплекс-метод http://www.mathelp.spb.ru/book1/lprog4.htm

Честно спёрто - http://448dmg.ru/nastroyka-seti-v-ubuntu-95
rockin_kristal
В Этой статье подробно написано как настроить сетевые интерфейсы в операционной системе Ubuntu через командную строку, как написать bash-скрипт автоматической настройки сети и как сделать автозапуск скрипта.

Для настройки сети через консоль во всех Linux системах, включая Ubuntu, существует специальная команда ifconfig.

Если просто в терминале написать эту команду то консоль выдаст все сетевые интерфейсы, запущенные на этом компьютере. Это будет выглядеть примерно так.

eth0 Link encap:Ethernet HWaddr 00:04:75:c1:e2:ab
inet addr:10.2.10.32 Bcast:10.2.10.255 Mask:255.255.255.0
….
….

eth1 Link encap:Ethernet HWaddr 00:04:75:c1:e2:6b
inet addr:192.168.140.1 Bcast:192.168.140.255 Mask:255.255.255.0
….
….

lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
….
….

Первый столбик это имена интерфейсов, во второй настройки соответствующих интерфейсов. Команда ifconfig eth0 выведет настройки только интерфейса eth0.Для того чтобы отключить или включить интерфейс eth0 наберите соответственно команды.

sudo ifconfig eth0 down
sudo ifconfig eth0 up

Чтобы управлять интерфейсами, нужны права суперпользователя.

Чтобы менять настройки интерфейсов вводите команды следующего вида.

sudo ifconfig eth1 inet 192.168.140.1

поменять ip адрес интерфейса eth1 на 192.168.140.1

sudo ifconfig eth0 hw ether 00:12:34:56:78:90

поменяет мас адрес на 00:12:34:56:78:90

sudo ifconfig eth0 netmask 255.255.255.0

поменять маску подсети интерфейса eth0 на 255.255.255.0

Но сделанные таким способом настройки сбрасываются после перезагрузки компьютера.
Чтобы этого не происходил надо поменять настройки в конфигурационном файле сетевых интерфейсов, который находится /etc/network/interfaces У меня этот файл выглядит так.

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto eth0
iface eth0 inet static
address 10.2.10.32
#hwaddress ether 12:34:56:78:90:12
netmask 255.255.255.0
network 10.2.10.0
broadcast 10.2.10.255
gateway 10.2.10.1
dns-nameservers 212.212.45.174


# The secondary network interface
auto eth1
iface eth1 inet static
address 192.168.140.1
netmask 255.255.255.0

Я думаю здесь всё понято. Адрес DNS сервера можно задать в файле /etc/network/interfaces , но вообще управление адресами DNS серверов в Ubuntu осуществляется через файл /etc/resolv.conf, синтаксис этого конфигурационного файла простой, допустим, у меня он выглядит так

nameserver 80.227.64.17
nameserver 80.231.56.1

После изменения этих конфигурационных файлов перезагрузите сетевую службу командой

sudo /etc/init.d/networking restart

Если вы хотите получать сетевые настройки через DHCP, просто оставьте в файле /etc/network/interfaces строчку

auto eth0
iface eth0 inet auto

Обновление настроек через DHCP можно командой

dhclient

Для остановки или запуска сетевой службы используйтесь командой

sudo /etc/init.d/networking stop
sudo /etc/init.d/networking start

Если посмотреть мой конфигурационный файл в настройках интерфейса eth0 строка меняющая mac адрес закомментирована. Это потому что если её не комментировать у меня сетевая служба не запускается с таким конфигом.

И чтобы менять mac адрес мне приходилось писать в консоли следующие команды.

sudo ifconfig eth0 down
sudo ifconfig eth0 hw ether 12:34:56:78:90:12
sudo ifconfig eth0 up
sudo /etc/init.d/networking restart

Почему это происходит я не знаю, но зато я знаю как писать bash-скрипты.

Я в папке /home/user создал файл mynetconfig и записал в него такой код

echo "########OTKLYCHENIE eth0#######"
sudo ifconfig eth0 down

echo "#####MENYAEM MAC ADRES#####"
sudo ifconfig eth0 hw ether 00:13:8f:cb:10:21

echo "########VKLUCHAEM eth0#########"
sudo ifconfig eth0 up

echo "####PEREZAGRYGAEM NETWORKING####"
sudo /etc/init.d/networking restart
echo "KONEC"

Теперь вместо этих строчек мне приходилась писать всего лишь одну команду /home/user/mynetconfig

Но и на этом я не остановился. Я скопировал файл mynetconfig в каталог /use/local/bin и теперь запускать скрипт могу просто командой mynetconfig.

Но и этого нам мало. Надо чтобы скрипт запускался автоматически при загрузки системы.

Чтобы добавить скрипт в автозагрузку, копируем скрипт в /etc/init.d/ , открываем консоль, переходим в /etc/init.d/ и выполняем следующую команду.

update-rc.d mynetconfig defaults 99

Небольшое пояснение:
mynetconfig - имя скрипта
defaults - выполнять на всех режимах загрузки от второго до пятого
99 - порядок загрузки

Чтобы удалить скрипт из автозагрузки перейдите в каталог /etc/init.d/ и выполните команду

update-rc.d -f mynetconfig remove

Так же есть другой способ добавить скрипт в автозагрузку, просто впишите имя скрипта в файл /etc/rc.local и удалите, если хоте убрать его из автозагрузки.

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

Порталы)
rockin_kristal
http://portals.apache.org/jetspeed-2/tutorial/index.html

А теперь пол-царства и коня за то, как можно прицепить к портлету либу в JAR!!!

русские буковки в Java
rockin_kristal
http://www.javaportal.ru/java/articles/ruschars/ruschars.html#servlet

Агрегация rss в один
rockin_kristal
try {
//String outputType = args[0];

String outputType="rss_1.0";

SyndFeed feed = new SyndFeedImpl();
feed.setFeedType(outputType);

feed.setTitle("Aggregated Feed");
feed.setDescription("Anonymous Aggregated Feed");
feed.setAuthor("anonymous");
feed.setLink("http://www.anonymous.com");

List entries = new ArrayList();
feed.setEntries(entries);

List sources = new ArrayList();
sources.add("http://bash.org.ru/rss/");

sources.add("http://feeds2.feedburner.com/samolisov");



for (int i=0; i<sources.size(); i++) //for (int i=1;i<args.length;i++) { { URL inputUrl = new URL((String) sources.get(i)); SyndFeedInput input = new SyndFeedInput(); SyndFeed inFeed = input.build(new XmlReader(inputUrl)); entries.addAll(inFeed.getEntries()); } //SyndFeedOutput output = new SyndFeedOutput(); //output.output(feed,new PrintWriter(System.out)) ; System.out.println(entries.get(1).getDescription().getValue()); ok = true; } catch (Exception ex) { System.out.println("ERROR: "+ex.getMessage()); }

Как сделать PDF из HTML?
rockin_kristal
На это требуется библиотека mpdf. Она делает из html pdf. Делает она его с помощью PHP, так что из С++ пока что не выйдет. 

Ссылка на офсайт:
http://www.mpdf1.com/mpdf/

Конвертируем html в pdf
Dompdf — класс написанный на PHP 5 для преобразования HTML в PDF. 
Проблема конвертации html в pdf встречается не так часто, но все же возникает у некоторых веб-мастеров.
Возможности Dompdf
Окрытый исходный код(LGPL)
Поддерживает css форматирование(!).
Понимает большинство тегов html 4
Отображает ссылки(в том числе и якорные ссылки)
Подерживает изображения (png, gif и jpeg)
Проблема с поддержкой русского
При тестировании, изначально Dompdf мне очень понравилось, но я нашел очень критичный для русскоязычного пользователя баг — отсутствие поддержки кириллицы.
Я решил поискать в интернете людей с похожей проблемой и оказалось таких случаев огромное множество. 
Так же, на одном форуме я прочитал что проблема возможно кроется в шрифтах, которые использует «Dompdf». Класс использует шрифты с расширением *.afm.
Я прочитал, кириллические шрифты можно конвертировать *.afm, но мой слабый интернет не позволяет быстро скачивать необходимое ПО.
Хотелось бы с Вашей помощью решить эту проблему. Что бы такой распространенной проблемы больше не возникало ;-)
Ура! Проблема решена!
Решение любезно предоставил Kamael , за что ему огромное спасибо. Как я и говорил проблема была именно в шрифтах.




?

Log in