Archive for the ‘Без рубрики’ Category

Масштабируемая карта (map area) с подсветкой областей.

Пятница, Февраль 6th, 2015

Потребовалось сделать на сайте интерактивную карту с подсветкой, по html технологии тег <map> служит контейнером для элементов <area> активные области для карт-изображений, но хотелось сделать ее «резиновой«, что стандартный html не позволяет реализовать. Пришлось смотреть в сторону JS.
Нашел два проекта: (далее…)

LibreOffice или OpenOffice. Ошибка: Файл документа заблокирован для редактирования вами же в другой системе.

Пятница, Апрель 5th, 2013

Ошибка LibreOffice или OpenOffice вида: «Файл документа (…) заблокирован для редактирования вами же в другой системе (указана дата момента открытия документа) при этом создается временный файл блокировки файла и он не удаляется при закрытии документа.

Это ошибка вылечилась неожиданно, имя компьютера содержало русские буквы, как только я переименовал его в латиницей, после перезагрузки ошибок уже не было.
🙂

Переносим маршрут или трек SASPlanet (KML) на Garmin (GPX)

Пятница, Февраль 24th, 2012

Для преобразования Маршрута в формате KML в GPX воспользуемся скриптом:

#!/bin/sh
# Запускаем скрипт так:
# sh ./convert.sh ./имя_файла.kml
# Где имя_файла.kml — имя с треком из SASPlanet
# На выходе получаем сконвертированный файл convert.gpx который можно загрузить в Garmin
# Время создание маршрута
D=`date ‘+%Y-%m-%dT%H:%M:%SZ’`
# Номер маршрута (Можно поменять на название)
DT=`date ‘+%Y%m%d’`
cat <<EOF > convert.gpx
<?xml version=»1.0″ encoding=»UTF-8″ standalone=»no» ?>
<gpx xmlns=»http://www.topografix.com/GPX/1/1″ xmlns:gpxx=»http://www.garmin.com/xmlschemas/GpxExtensions/v3″ xmlns:wptx1=»http://www.garmin.com/xmlschemas/WaypointExtension/v1″ xmlns:gpxtpx=»http://www.garmin.com/xmlschemas/TrackPointExtension/v1″ creator=»eTrex 20″ version=»1.1″ xmlns:xsi=»http://www.w3.org/2001/XMLSchema-instance» xsi:schemaLocation=»http://www.topografix.com/GPX/1/1 http://www.topografix.com/GPX/1/1/gpx.xsd http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www8.garmin.com/xmlschemas/GpxExtensionsv3.xsd http://www.garmin.com/xmlschemas/WaypointExtension/v1 http://www8.garmin.com/xmlschemas/WaypointExtensionv1.xsd http://www.garmin.com/xmlschemas/TrackPointExtension/v1 http://www.garmin.com/xmlschemas/TrackPointExtensionv1.xsd»>
<metadata>
<link href=»http://www.garmin.com»>
<text>Garmin International</text>
</link>
<time>${D}</time>
</metadata>
<rte>
<name>Маршрут ${DT}</name>
EOF
cat «${1}» \
| grep «\<coordinates\>» \
| awk ‘BEGIN{FS=»<(/)*coordinates>»}{print $2}’ \
| sed ‘s/ /\n/g’ \
| grep -v «^$» \
| awk ‘BEGIN{FS=»,»}{print(» <rtept lat=\»»$2″\» lon=\»»$1″\»></rtept>»)}’ \
>> convert.gpx
cat <<EOF >> convert.gpx
</rte>
</gpx>
EOF
#!/bin/sh
# Конвертирует в маршрут
# Запускаем скрипт так:
# sh ./convert.sh ./имя_файла.kml
# Где имя_файла.kml - имя с треком из SASPlanet
# На выходе получаем сконвертированный файл convert.gpx который можно загрузить в Garmin
# Время создание маршрута
D=`date '+%Y-%m-%dT%H:%M:%SZ'`
# Номер маршрута (Можно поменять на название)
DT=`date '+%Y%m%d'`

cat <<EOF > convert.gpx
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<gpx xmlns="http://www.topografix.com/GPX/1/1" xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:wptx1="http://www.garmin.com/xmlschemas/WaypointExtension/v1" xmlns:gpxtpx="http://www.garmin.com/xmlschemas/TrackPointExtension/v1" creator="eTrex 20" version="1.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.topografix.com/GPX/1/1 http://www.topografix.com/GPX/1/1/gpx.xsd http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www8.garmin.com/xmlschemas/GpxExtensionsv3.xsd http://www.garmin.com/xmlschemas/WaypointExtension/v1 http://www8.garmin.com/xmlschemas/WaypointExtensionv1.xsd http://www.garmin.com/xmlschemas/TrackPointExtension/v1 http://www.garmin.com/xmlschemas/TrackPointExtensionv1.xsd">
<metadata>
 <link href="http://www.garmin.com">
  <text>Garmin International</text>
 </link>
 <time>${D}</time>
</metadata>
<rte>
 <name>Маршрут ${DT}</name>
EOF

cat "${1}" \
| grep "\<coordinates\>" \
| awk 'BEGIN{FS="<(/)*coordinates>"}{print $2}' \
| sed 's/ /\n/g' \
| grep -v "^$" \
| awk 'BEGIN{FS=","}{print(" <rtept lat=\""$2"\" lon=\""$1"\"></rtept>")}' \
>> convert.gpx
cat <<EOF >> convert.gpx
</rte>
</gpx>
EOF

Для преобразования Трека в формате KML в GPX воспользуемся скриптом:

#!/bin/sh
#Конвертация в трек
# Запускаем скрипт так:
# sh ./convert.sh ./имя_файла.kml
# Где имя_файла.kml - имя с треком из SASPlanet
# На выходе получаем сконвертированный файл convert.gpx который можно загрузить в Garmin

# Время создание трека
D=`date '+%Y-%m-%dT%H:%M:%SZ'`
# Номер трека (Можно поменять на название)
DT=`date '+%Y-%m-%d'`
# Цвет трека
COLOR="Cyan"

cat <<EOF > convert.gpx
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<gpx xmlns="http://www.topografix.com/GPX/1/1" xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:wptx1="http://www.garmin.com/xmlschemas/WaypointExtension/v1" xmlns:gpxtpx="http://www.garmin.com/xmlschemas/TrackPointExtension/v1" creator="eTrex 20" version="1.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.topografix.com/GPX/1/1 http://www.topografix.com/GPX/1/1/gpx.xsd http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www8.garmin.com/xmlschemas/GpxExtensionsv3.xsd http://www.garmin.com/xmlschemas/WaypointExtension/v1 http://www8.garmin.com/xmlschemas/WaypointExtensionv1.xsd http://www.garmin.com/xmlschemas/TrackPointExtension/v1 http://www.garmin.com/xmlschemas/TrackPointExtensionv1.xsd">
 <metadata>
  <link href="http://www.garmin.com">
   <text>Garmin International</text>
  </link>
  <time>${D}</time>
 </metadata>
 <trk>
  <name>Track ${DT}</name>
  <extensions>
   <gpxx:TrackExtension>
    <gpxx:DisplayColor>${COLOR}</gpxx:DisplayColor>
    </gpxx:TrackExtension>
  </extensions>
  <trkseg>
EOF

cat "${1}" \
| grep "\<coordinates\>" \
| awk 'BEGIN{FS="<(/)*coordinates>"}{print $2}' \
| sed 's/ /\n/g' \
| grep -v "^$" \
| awk 'BEGIN{FS=","}{print("<trkpt lat=\""$2"\" lon=\""$1"\"></trkpt>")}' \
>> convert.gpx

cat <<EOF >> convert.gpx
  </trkseg>
 </trk>
</gpx>
EOF

Все 🙂

Смотрим трек Garmin (GPX) на maps.google.ru или SASPlanet (KML)

Среда, Февраль 22nd, 2012

Для того что бы отобразить GPX трек на maps.google.ru требуется конвертация, можно воспользоватся простым скриптом convert.sh: (далее…)

Обход ограничения Gmail на отправку определенных файлов, например exe

Понедельник, Декабрь 12th, 2011

Отправлял архив сайта с хостинга на почту gmail, но google запретил, видимо нашел в архиве запрещенный файл. Решением было использование dd с ключом conv=swab, который меняет старшие и младшие байты в файле, на всякий случай и расширение файла я поменял:

#!/bin/sh

T=`/bin/date +%d_%m_%Y-%H_%M`
tar -czf /home/h1779/data/tmp/${T}.t_ar.g_z /home/h1779/data/www \
&& dd if=/home/h1779/data/tmp/${T}.t_ar.g_z conv=swab | /usr/bin/uuencode ${T}t_ar.g-z \
| /usr/bin/mail -s "Backup rrv.nsk.ru ${T} для распаковки надо пропустить через dd if=t_ar.g-z of=tar.gz conv=swab" test@gmail.com \
&& /bin/rm /home/h1779/data/tmp/${T}.t_ar.g_z

Распаковываем так:

dd if=12_12_2011-09_43t_ar.g-z of=12_12_2011-09_43.tar.gz conv=swab

И получаем обычный архив.

Удачи 😉

udpxy. iptv на android или как смотреть UDP video поток через HTTP

Четверг, Ноябрь 24th, 2011

Удручало отсутствие плеейров умеющих показывать UDP iptv, зато почти все плееры позволяют смотреть видео поток через http.

Решение оказалось простым, ставим на домашний компьютер/сервер udpxy

И так установка на ubuntu:

Нам потребуется GCC

sudo apt-get install gcc

Теперь скачаем Udpxy

wget http://downloads.sourceforge.net/project/udpxy/udpxy/Chipmunk-1.0/udpxy.1.0-Chipmunk-19.tgz
tar -zxf udpxy.1.0-Chipmunk-19.tgz
cd  udpxy.1.0-Chipmunk-19
make

У нас откомпилировался udpxy, теперь можно запустить, минимальный запуск выглядит так:

./udpxy -p 8888

Прокси будет готов принимать запросы на порту 8888, запускать можно от обычного пользователя. например если ip компа с запущенным прокси 8.8.8.8 и мы хотим посмотреть канал UDP://@239.1.2.1:1234 тогда в плеере пишем:
http://8.8.8.8:8888/udp/239.1.2.1:1234

Все 🙂 теперь все блага доступны, то есть например можно давать возможность смотреть TV своим друзьям у которых провайдер не предоставляет эту возможность, либо они просто не хотят платить за эту услугу… В общем куча возможностей… ограниченные только фантазией

p.s. Для того что бы запускать udpxy автоматически напишем скрипт /etc/init.d/udpxy.sh:

#! /bin/sh
### BEGIN INIT INFO
# Provides: udpxy
# Required-Start:
# Required-Stop:
# Default-Start:
# Default-Stop: 0
# Short-Description: Execute the halt command.
# Description:
### END INIT INFO

PATH=/bin:/sbin:/usr/sbin:/bin:/usr/bin

case "$1" in
start)
/usr/sbin/udpxy -p 8888
echo "udpxy starting"
;;
restart|reload|force-reload)
#echo "Error: argument '$1' not supported" >&2
$0 stop
$0 start
;;
stop)
killall udpxy
sleep 1
echo "udpxy starting"
;;
*)
echo "Usage: $0 start|stop" >&2
;;
esac

:

и прописать его в автозагрузку:
# update-rc.d udpxy.sh defaults

Настройки Chrome

Пятница, Октябрь 14th, 2011

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

Clonezilla копирование систем и данных

Среда, Сентябрь 28th, 2011

Пользовался Clonezilla очень просто и удобно. Искать  тут.

Postfix полезняшки

Понедельник, Август 22nd, 2011

Просмотр настроек

postconf -d

Очистка очереди

Просмотр очереди:

postqueue -p

Для удаления из очереди Postfix писем от пользователя alexx можно воспользоватся скриптом:

postqueue -p | grep alexx | awk '{system("postsuper -d "$1)}'

Немедленная доставка писем из очереди

Все письма:

postsuper -r ALL
postfix flush

Письмо по ID:

postsuper -r ID

Большой Брат

Доставляет копии ВСЕХ сообщений (входящих и исходящих) на указанный адрес (поддерживается с Postfix v.2.1).
Например, указав в /usr/local/etc/postfix/mail.cf строку:

always_bcc = backup@mydomain.ru

можно сделать полный бэкап всей почты на адрес backup@mydomain.ru

Дублирование писем приходящий на конкретный ящик

Для пересылки скрытых копий (bcc) используя карты recipient_bcc_maps и sender_bcc_maps
Как видно из названия recipient_bcc_maps — для создания копии исходя из информации о получателе письма,
sender_bcc_maps — для создания копии исходя из информации о отправителе письма.

Для использования добавляем в main.cf строчки:

sender_bcc_maps = hash:/usr/local/etc/postfix/sender_bcc
recipient_bcc_maps = hash:/usr/local/etc/postfix/recipient_bcс

затем создаем файлы:

touch /usr/local/etc/postfix/sender_bcc
touch /usr/local/etc/postfix/recipient_bcс

Формат файлов sender_bcc и recipient_bcс это строка (обесательно в конце перевод строки) и два почтовых ящика в одной сроке
через пробел, первый почтовый ящик — тот по которому фильтруется (ящик получателя или отправителя). Пример:

mymail@workmail.ru myhomemail@mydomain.com

Для того что бы письма пришедшие на мой рабочий ящик mymail@workmail.ru пересылались на мой домашний ящик myhomemail@mydomain.com
строку из примера надо поместить в /usr/local/etc/postfix/recipient_bcс

Если требуется отправить копию на несколько почтовых ящиков, то алиас на несколько почтовых ящиков, т.к. в одной строке может быть только один ящик который может быть отправлено, а так же каждый почтовый ящик по которому фильтруется в файле должен быть уникален.

После изменений в файлах sender_bcc и recipient_bcс необходимо пересоздать файлы .db:

postmap /usr/local/etc/postfix/sender_bcc
postmap /usr/local/etc/postfix/recipient_bcс

И застовляем postfix перечитать конфигурационные файлы:

postfix reload

Смена пароля на postfix.admin

1. в файле /usr/local/www/postfixadmin/config.inc.php меняем строку вида:

$CONF['setup_password'] = '168417fb689fbs6bce838012cdee9438:c3c91489f47dc740fe6240f3ea392525cded5426';

на

$CONF['setup_password'] = '';

2. и заходим в http://postfix.mydomain.com/setup.php
задаем пароль и вписываем полученую строку в /usr/local/www/postfixadmin/config.inc.php
3. теперь заходим в http://postfix.mydomain.com/setup.php
и заводим административную учетную запись
в первую строку «Setup password» вводим пароль из пункта два.

Возвращаем стандартный рабочий стол Gnome в Ubuntu 11.04

Среда, Июль 13th, 2011

Можно выбрать при загрузке системы. Если вход в систему автоматический, выходим из системы затем правом нижнем углу находим выбор оболочки, выбираем «Классическая Ubuntu».

Можно настроить так же в Центре управления. Находим и запускаем «Экран входа в систему» и выбираем там пункт «Классическая Ubuntu».
Все работаем по старинке 🙂