вторник, 28 февраля 2012 г.

Видео по вставке нумерации на страницы в OpenOffice Writer

Давно собирался сделать мануал по вставке нумерации страниц в Openoffice.org и LibreOffice, да всё руки не доходили. Но на днях понадобилось удаленно показать как это делается. Вот и сделал "видео-урок".
Тем, кому проблематично смотреть видео, попробую описать словами.

  1. В документ добавляется колонтитул.
  2. В колонтитул вставляется поле "Номер страницы". Тут есть нюансы:
  • если необходимо, чтобы первый лист в документе был титульным и не имел нумерации - применяем к этому листу стиль "Первая страница";
  • если нужно, чтобы на втором листе нумерация начиналась с единицы, вставляем в колонтитул поле "Предыдущая страница" через пункты меню "Вставка"->"Поля"->"Дополнительно (Ctrl+F2)"->вкладка "Документ"->тип поля "Страница"->выбор "Предыдущая страница"->формат "Как стиль страницы"

В LibreOffice 3.4.3 есть пункт меню "Формат"->"Титульная страница", но я не уверен, что это есть в более ранних версиях OpenOffice.org, поэтому описанный мной способ универсальнее.

среда, 28 сентября 2011 г.

Проблемы с дисками по ОРКСЭ и их решение


В школы всей нашей необъятной Родины пришёл новый предмет  "Основы религиозных культур и светской этики". И книжки есть, и диски. Вроде всё здорово, но с этими дисками есть две проблемы: 
  • нужно устанавливать на каждый компьютер в классе
  • учебный комплекс хоть и написан на Qt и нормально запускается под Wine, но тестовые задания, использующие Flash, почему-то не везде работают.
Я написал небольшой php-скрипт, который решает обе эти проблемы разом, да еще и место на жестких дисках экономит: весь контент будет размещаться на сервере или компьютере учителя), а дети будут пользоваться им через браузер.
Теперь по порядку:
Нужно установить эти диски на компьютер. Если при установке ничего не менять, то диски установятся в ~/.wine/drive_c/Program Files/
Теперь нужно взять контент.
Рассмотрим на примере диска "Основы православной культуры ". Я его установил в ~/.wine/drive_c/Program Files/prav/ (см. Рисунок 1)
Хочу заметить, что  необязательно устанавливать диски именно на тот компьютер, который будет веб-сервером. Например, можно скинуть необходимые папки (о них чуть ниже) на диск/флешку/и т.д. и перенести на сервер. А нужны будут следующие каталоги: DATA и THEME.
рис. 1
каталог data брать со всем его содержимым (папка object и файл content.xml) и каталог theme

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

Для того, чтобы скрипт мог работать, необходим веб-сервер с поддержкой PHP5, а тот в свою очередь мог достучаться до simplexml. Предположим, на компьютере, который будет сервером, этого ничего нет, поэтому смело командуем:
# apt-get install apache2 php5 php-xml-serializer
Поставится и веб-сервер Apache2, и PHP5 c поддержкой XML.
Обычно (я ставил на Ubuntu) каталог веб-сервера находится в /var/www
Именно туда и нужно положить вышеупомянутые папки data и theme. Обращаю внимание на то, что доступа на запись в каталог веб-сервера у обычного пользователя нет - скопируйте папки от имени root-а. Получившуюся папку /var/www/data переименуйте в /var/www/ort (или prav, или pravoslav - кому как нравится). Извлеките из ЭТОГО АРХИВА файлы INDEX.HTML и STYLE.CSS в /var/www, а INDEX.PHP и ICO.PNG в /var/www/ort
Чтобы было понятней, вот рисунок.

Подредактируйте файл /var/www/index.html под свои нужды и зайдите через браузер на веб сервер.



По аналогии перенесите контент с другого диска.

PS: Пока не получается сделать просмотр видео фрагментов. Но их можно показать и с учительского компьютера через проектор - найти файлы video.flv
Специально для ленивых и тех, кому дороги ресурсы сервера, ВЫКЛАДЫВАЮ АРХИВ С ГОТОВЫМИ СТАТИЧНЫМИ HTML ФАЙЛАМИ, чтобы не было нужды ставить PHP - достаточно будет любого веб-сервера. 
PHP и CSS код далек от идеала, но он работает, так что :P
Все вопросы задавайте в комментариях - боюсь, что рядовая Мариванна даже по такой простой (ну, я так думаю)  инструкции не справится с установкой.

пятница, 1 апреля 2011 г.

Почта (и не только) через iptables

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

Надеюсь мой способ пригодится людям, столкнувшимся с подобной задачей.
Вот достаточно простой способ:

1. Разрешим пересылку пакетов
echo 1 > /proc/sys/net/ipv4/ip_forward
2. Командуем iptables пускать нас на почту, да и вообще куда угодно
а) для всех клиентов в подсети 192.168.0.0
sudo iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o ppp0 -j MASQUERADE
б) для конкретного клиента по IP-адресу
sudo iptables -t nat -A POSTROUTING -s 192.168.0.22 -o ppp0 -j MASQUERADE
СЛЕДУЕТ ОБРАТИТЬ ВНИМАНИЕ НА СЛЕДУЮЩИЕ МОМЕНТЫ:
  1. Чтобы каждый раз не выполнять команду echo 1 > /proc/sys/net/ipv4/ip_forward, нужно в файле /etc/sysctl.conf раскомментировать (или вписать) такую строчку:
    net.ipv4.ip_forward=1
  2. Команду echo 1 > /proc/sys/net/ipv4/ip_forward не получится выполнить через sudo. Сначало нужно выполнить sudo su, а уже потом, с правами root-а делать echo
  3. На клиентской машине в качестве шлюза должен быть указан адрес компьютера, на котором настраиваем iptables.
  4. На клиентской машине должен быть указан адрес DNS сервера.
  5. После перезагрузки настройки iptables слетят, поэтому можно добавить команду, например эту: iptables -t nat -A POSTROUTING -s 192.168.0.22 -o ppp0 -j MASQUERADE в файл /etc/rc.local, чтобы она автоматически срабатывала при запуске системы
  6. Указав интерфейс ppp0, я имел ввиду внешний интерфейс, т.е. это может быть и eth0

Ошибка при копировании файлов в MidnightCommander по SSH

Буквально вчера произошла одна печальная история, которая чуть не превратилась в настоящую трагедию. Вот как было дело. Нужно было перетащить по сети файлы с одной Linux-машины(AltLinux Юниор 4 из комплекта СПО) на другую (Ubuntu 10.4). Запустил MC, подцепился с Альта к Убунте и скопировал файлы. Всё вроде нормально, штатно.
Перебил Альт, поставил вместо него Убунтушку, стал заливать инфу обратно по тем же способом - бац!!! а от инфы осталась только структура каталогов. Файлов нет! Это был ппц. Всё обошлось, так как на другом компе нашлась еще одна копия документов, так что именно трагедии удалось избежать. Теперь немного технических подробностей:
1. Копировалось всё на раздел с NTFS
2. Файлы и каталоги были с русскими именами

Сейчас пробую повторить копирование с AltLinux 4.1 на Ubuntu 10.4, тоже на NTFS раздел - файлы как бы копируются, но на самом деле не появляются. При этом нет разницы, русские имена файлов или нет.

При копировании с Ubuntu 10.4 на такую же - если не убрать галку "Сохранять атрибуты", то ругается, но можно пропустить и файл копируется. А вот если копировать папку, то сама папка скопируется, а файлы с русским именами внутри неё - фиг.

Через GnomeCommander всё нормально копируется, равно как и через Nautilus.

Видать баг самого MC, причём давно, да ещё и в разных дистрибутивах...

среда, 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 можно скачать тут и переделать под себя как заблагорассудится.

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