среда, 30 марта 2011 г.

Склеить несколько изображений с помощью ImageMagic

Продолжаю пополнять свой "склерозник-шпаргалку". И снова в центре внимания всего лишь одна маленькая и простенькая команда.
В общем, что долго рассусоливать, расскажу как было дело: встала задача склеить несколько сканированных страниц документа в одну длинную страницу. Да, можно в гимпе сделать документ и вставить сканы, но это не спортивно, и, главное, такие документы периодически надо будут делать снова.
К тому же, это нужно не мне, а другому человеку - нет желания тратить время на объяснения как сделать склейку в графическом редакторе. Уж не помню когда и при каких обстоятельствах познакомился с отличным пакетом консольных программ для работы с графическим файлами под названием ImageMagic, но - "вот то, что мне нужно" - сразу подумал я :) И просто для пользователя - сделал кнопарь, показал в какую папку складывать сканы, и соответствует Linux-way.
А теперь внимание, вот она, волшебная команда, творящая сие  сильное колдунство:
montage  *.jpg  -tile 1x3  -geometry +0+0  result.jpg
не знаю как у Вас, но у меня пакет ImageMagic стоял по-умолчанию, так что ничего дополнительно ставить не пришлось. Если у Вас данного пакета нет, то смело командуйте sudo apt-get install imagemagic
Давайте разбираться что эта команда делает (на оф.сайте все примеры на английском, разбираться с ними тяжко):
montage - собственно программа, которая будет выполнять сведение изображений;
*.jpg - говорим программе взять ВСЕ (*) файлы с расширением JPG из текущей папки, можно было просто через пробел перечислить их 1.jpg 2.jpg и т.д. (вроде можно даже вот так image[1-9].jpg);
-tile 1x3 - говорит программе разместить изображения в 1 столбец и 3 строки, т.е. так, как расположены обезьянки на данной странице;
-geometry +0+0 - не делать отступов и не менять размеры изображений;
result.jpg - уже склеенное изображение, т.е. результат работы.

Как будет время, постараюсь сделать сценарий для наутилуса, чтобы было вот так:  выделил несколько файлов, выбрал действие "Склеить вертикально" и готово.

Помог решить задачу данных ресурс:
http://www.imagemagick.org/Usage/montage/#geometry_spacing

суббота, 8 января 2011 г.

RDP и VNC через прокси

К сожалению, не все программы, работающие с Интернетом, имеют в своих настройках порой очень нужный пунктик для доступа в сеть через прокси сервер. Иногда спасает использование export http_proxy, но не для всех программ это работает. Например, я столкнулся с невозможностью соединения по VNC/RDP через прокси.

Но не будь решения данной проблемы, я бы не стал писать этот текст, так ведь? :) Да, решение есть и довольно простое. Нужно установить программу proxy-chains и немного настроить её. После установки программы нужно отредактировать файл /etc/proxychains.conf, в частности, в самом конце файла раздел [ProxyList]


По-умолчанию там написано:
socks4 127.0.0.1 9050
я использую http прокси squid, поэтому эту строку закомментирую и добавлю свою:
http 192.168.1.1 8080
Замечу, что так как файл настроек находится в /etc, то прав для записи у обычного пользователя нет и редактировать его необходимо с правами пользователя root, например, так:
sudo gedit /etc/proxychains.conf
Чтобы запустить программу через proxy-chains, нужно набрать команду:
proxychains <команда>
например, вот так (для подключения по RDP):
proxychains rdesktop 10.0.1.1
или так (для VNC):
proxychains vinagre

понедельник, 20 декабря 2010 г.

Настройка стиля Qt-приложений в Ubuntu

В поисках подходящего Jabber-клиента я наткнулся на замечательный кроссплатформенный, открытый проект Vacuum-IM. Не буду описывать все его преимущества, сделаю это в другой раз, когда закончу с выбором мессенджера, заодно расскажу и о других. Vacuum написан на Qt4, а значит без штатных средств KDE4 вроде как не настроить внешний вид, т.е. тему. Оказывается, вовсе нет необходимости тащить этого монстра (да-да, KDE4 тот еще монстр :) , достаточно установить небольшой пакет qt4-qtconfig (для Qt4 приложений) или qt3-qtconfig (соответственно для Qt3). После установки программу можно вызвать по команде qtconfig-qt4 (или qtconfig-qt3 если требуется настроить Qt3 приложение). Ну, а тут, хоть и по-английски всё, но интуитивно понятно и просто.


Лично для меня, использующего на рабочей машине XFCE, а следовательно целую кучу GTK-приложений, полезна опция выбора вида Qt-приложений, чтобы они отображались с теми же стилями, что и GTK+. Т.е. просто выбираю в пункте Select GUI Style тему GTK+ и всё - приложения Qt4 в XFCE как родные :)

четверг, 7 октября 2010 г.

Простой Port Mapping

Эта заметка из серии "Записки склерозника" :) Так что я не буду вдаваться в подробности, тем более суть всей заметки сводится к двум командам для iptables.

Предыстория: под виндой в UserGate раньше иногда пользовался функцией portmapping. Трудно в двух словах описать что это такое, поэтому лучше приведу живой пример.

Итак, в сети у нас есть 3 машины:
1. Сервер, на котором крутится сайт (80-й порт) IP-адрес машины 192.168.0.1
2. Рабочая станция. Нужно с неё получить доступ к сайту на вышеуказанном сервере. IP-адрес машины: 192.168.1.1
3. Шлюз/сетевой экран (стоит между сервером и рабочей станцией, имеет два сетевых интерфейса, смотрящий в разные сети). IP-адреса: 192.168.0.2 (смотрит в сторону сервера) и 192.168.1.2 (в сторону рабочей станции)

На рисунке все понятно и наглядно показано.

Можно, конечно, назначить 192.168.1.2 шлюзом по умолчанию для рабочей станции и настроить маршрутизацию, чтобы спокойно был виден весь сервер, но мне нужно чтобы был доступ только к сайту.
реализация проста, вот три строчки кода:
# echo 1 > /proc/sys/net/ipv4/ip_forward
# iptables -t nat -A PREROUTING -p tcp --dst 192.168.1.2 --dport 81 -j DNAT --to-destination 192.168.0.1:80
# iptables -t nat -I POSTROUTING -p tcp --dst 192.168.0.1 --dport 80 -j SNAT --to 192.168.0.2
Т.е., чтобы попасть на сайт, расположенный на сервере (192.168.0.1), в браузере рабочей станции нужно просто ввести адрес шлюза (192.168.1.2:81)

Если на шлюзе использовать 80-й порт, то в браузере можно просто писать адрес, не указывая порт. Здесь я использовал 81-й порт для наглядности и на тот случай, если он вдруг будет занят.

Написано по мотивам этой страницы

четверг, 23 сентября 2010 г.

Русский Ajaxplorer 3


Для рабочих нужд понадобился мне файловый менеджер для работы с файлами на удаленном сервере. Пробовал eyeOS, хотя это скорее операционная система, нежели ФМ, вот только количество потребляемых  ей ресурсов меня несколько расстроило. После долгих поисков наткнулся на быстрый, простой и почти русифицированный файловый менеджер Ajaxplorer - работает в браузере, использует PHP + Ajax (как видно из названия).

Собственно при чем тут Линукс? :) А вот при чём - с помощью Ajaxplorer легко организовать разграниченный доступ к файлам на сервере, при этом совершенно не важно какая ОС используется на клиенте. Судите сами - NFS, CIFS (Samba), FTP довольно сложны в настройке, порой специфичны для разных ОС, а тут всё просто - на стороне сервера любая ОС с веб-сервером, поддерживающим PHP5, а на стороне клиента - современный браузер с поддержкой Javascript и желателен Flash, чтобы проигрывать музыку и видео.

Есть, конечно, некоторые недостатки:
  • Не полная поддержка локализации (i18n), поэтому пришлось кое-что править прямо в коде Ajaxplorer, грубо и беспощадно.
  • Плохо описано создание графических тем, а доступна только одна
  • Почему-то не смог зайти на примонтированный том с NTFS файловой системой
Чтобы снять ограничение на длину имени файла, нужно подредактировать параметр $max_caracteres=50 в файле [каталог с установленным Ajaxplorer]/server/conf/conf.php

Файл конфигурации хорошо продокументирован, так что особых проблем возникнуть не должно.

3 вечера кропотливой работы над допиливанием Ajaxplorer: качайте на здоровье

Скриншоты ниже (требуется флеш):

воскресенье, 19 сентября 2010 г.

Порядочные обои

Я очень часто встречаю на рабочих столах пользователей свалку из ярлыков и папок. Не то, чтобы меня это сильно раздражает, но приятного мало, хотя это и не мой стол. Давным-давно, еще во времена, когда у меня на компьютере стояла Windows, я придумал способ интересно размещать ярлыки на рабочем столе, чтобы они не просто в куче лежали, а имели своё законное место. Выглядит это примерно как на картинке. 
Alt Linux 4.1 / KDE 3.5 / Обои от Vladstudio.com / Иконки собраны отовсюду

Исходник в формате Inkscape SVG можно скачать тут и переделать под себя как заблагорассудится.

Ниже еще парочка картинок

воскресенье, 12 сентября 2010 г.

...и добавим немного wget-а

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

Суть в следующем: нужно с определенной страницы скачать файлы, например, PDF, но не все, а только те, что лежат в определенных папках.

Это элементарно делается с помощью wget.
wget -r -A *.pdf -I docs http://example.ru
Поясню:
-r - означает рекурсивную загрузку, т.е. wget закачает не только главную страницу с http://example.ru, но и проследует по ссылкам на этой странице.
-A *.pdf - говорит wget-у, что нужно сохранять только файлы с расширением  PDF
-I docs - загружать файлы только из каталога docs

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

Обращаю внимание на то, что при записи ключей важен регистр букв.

Вот так тоже будет работать:
wget -r -A *.pdf,*.doc -I docs,pdfs http://example.ru

пятница, 10 сентября 2010 г.

Настройка спутникового ТВ

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

 У меня тарелка настроена на спутник Ямал 201 в диапазоне Ku.
Вот тут лежит архив (3мб), включающий в себя:

  • Каталог Install - там лежат пакеты kaffeine_0.8.7-1ubuntu5.1_i386.deb и kaffeine-sc_0.4.1svn-0ubuntu1_i386 -это плеер Kaffeine и плагин для просмотра зашифрованных каналов. нужно просто запустить, они установятся через gdebi, а Kaffeine что-то еще дотянет из репозиториев.
  • Каталог .kde - тут настройки каффеина  список каналов и параметры спутника.
  • Каталог .kaffeine - здесь лежит файл SoftKam.key с BISS ключами для каналов СТС и Домашний (Чёпопалошный канал)

Каталоги можно просто скинуть как есть в домашнюю папку.

ЗЫ: Kaffeine в KDE4 - дрянь та ещё, поэтому использую старенькую версию 0.8.7

Очередной закос под винду

Дизайнеры у майкрософт молодцы, мне нравится, а вот система нет :) Благо Gnome легко превращается во что угодно.

Wget в Ubuntu 10.4 не ходит через прокси

Столкнулся с проблемой при работе с wget через прокси:
$ wget http://ya.ru
--2010-09-11 02:08:10--  http://ya.ru/
Преобразование адреса ya.ru... ошибка: Временный сбой в разрешении имен.
wget: не могу получить адрес хоста «ya.ru»
обычные вещи вроде
$export http_proxy="http://10.8.0.1:8080"
не помогли.

Решение нашел в убунтовской багзилле https://bugs.launchpad.net/ubuntu/+source/wget/+bug/554068
$export no_proxy=$(echo $no_proxy | sed 's/,$//')
Ну и export http_proxy, конечно, нужен