субота, 8 вересня 2007 р.

Автоматизація роботи з заголовками рисунків та таблиць в OpenOffice.org Writer

Коли ви створюєте документ з великою кількістю малюнків та таблиць у вас з'являється проблема як це все пронумерувати і при цьому не заплутатися. Насправді Writer містить ряд функцій які дозволяють спростити цей процес.

Щоб вставити малюнок з файлу достатньо просто вибрати Вставка -> Малюнок -> From File. Далі потрібно зробити наступне:
1. клацаємо правою кнопкою мишки і у контекстному меню обираємо Заголовок;
2. прописуємо згідно наших стандартів, у поле Категорія - Рис., а у полі Розділювач ставимо крапку з пробілом, після чого набираємо власне рідпис і тиснемо Так;



3. у параметрах стилю Рис. вказуємо параметри оформлення підписів до рисунків;
4. все, тепер якщо ми десь у тексті захочемо послатися на даний рисунок, то просто вибираємо Вставка -> Посилання і обираємо необхідний об'єкт та тип лічильника.



З таблицями ситуація майже аналогічна. Але спочатку з допомогою Вставка -> Кадр потрібно вставити кадр. Підганяємо його розміри як потрібно, можна задати параметри обрамлення текстом ну і відключаємо границю. Далі вставляємо у нього таблицю. Після чого аналогічно ситуації з рисунком додаємо заголовок таблиці, звертаючи при цьому увагу щоб у полі Категорія набрати Табл., а списку Позиція обрати варант вгорі (зазвичай таблиці підписуються так). Все інше аналогічно ситуації з рисунками, а змінивши параметри стилю Табл. можна змінити оформлення підписів.

Про деякі відмінності OpenOffice.org Writer та MS Word

На сьогоднішній день OpenOffice.org є єдиним вільним офісним пакетом який здатен конкурувати з MS Office. Проте багато людей вперше з ним зустрівшись після MS не завжди поділяють цю думку. Причина як завжди одна - відсутність знань і впевненість просто на генетичному рівні, що нічого кращого за продукти Microsoft бути не може. По цій причині багато можливостей цього чудового офісного пакету навіть не помічають. У даній статті я зверну увагу на деякі відмінності текстового процесору Writer від Word які можуть поставити у ступор людину яка довгий час була користувачем останнього. Порівнювати буду російський варіант Word 2003 (як досить розповсюджений в академічному середовищі) та український варіант Writer 2.2.



Як виставити параметри сторінки?
У Word: Файл -> Параметры страницы
У Writer: Формат -> Сторінка

Як вставити номер сторінки?
У Word: Вставка -> Номера страниц
У Writer:
Спочатку потрібно вставити відповідний колонтитул (Вставка -> Заголовок -> Базовий або Вставка -> Нижній колонтитул -> Базовий). Потім вибираємо Вставка -> Поля -> Номер сторінки і вирівнюємо вже як потрібно.

Як задати дзеркальні поля?
У Word: У параметрах сторінки потрібно у списку Несколько страниц вибрати Зеркальные поля
У Writer: У вікні формату сторінки у списку Топологія сторінки вибрати Відзеркалений

Як задати різні колонтитули для правої та лівої сторінок?
У Word: У параметрах сторінки на закладці Источник бумаги потрібно виставити Различать колонтитулы четных и нечетных страниц. Тепер клацаємо по відповідни мколонтитулам і вводимо їх окремо для різних сторінок.
У Writer:
Відкриваємо панель Стилі та форматування.
Переходимо на стилі сторінки (саме так, на відміну від Word тут власні стилі мають не лише абзаци але й сторінки).
Клацаємо правою кнопкою мишки на стилі Права сторінка і обираємо Змінити.
Вмикаємо необхідний колонтитул після чого на закладці Органайзер у полі Наступний стиль обираємо Ліва сторінка.
Тепер аналогічно змінюємо стиль лівої сторінки - вмикаємо колонтитул і задаємо Наступний стиль - Права сторінка.
Йдемо на першу сторінку і двічі клацаємо по стилю Права сторінка.
Тепер можна заповнювати колонтитул на окремих сторінках.

Як задати для частини документу інші параметри сторінки?
У Word: Потрібно вставити новий розділ і потім у параметрах сторінки вказати, що застосовувати їх потрібно лише до поточного розділу.
У Writer: Потрібно створити новий стиль сторінки, а потім задавши необхідні параметри виділити необхідний діапазон і двічі клацнути по назві відповідного стилю у менеджері стилів.

Як проводити пошук/заміну спеціальних символів?
У Word: У вікні пошуку/заміни з допомогою кнопки Специальный можна вставити спеціальний символ (наприклад ^p - параграф).
У Writer: Якщо активувати опцію Правильні вирази (тут імхо помилка перекладу, це повинно називатися регулярними виразами), то можна використовувати додаткові символи у полі Пошук:
$ - параграф;
\n - примусовий перенос;
^$ - пустий абзац;
\t - табулятор.

Поле Замінити на не допускає викоритсання символів заміщення, проте ви можете використовувати \n для вставки символу абзацу, або наприклад \t для табуляції.

Якщо вам наприклад попався стандартний текст DOS де рядки відокремлені символом абзацу, а параграфи пустим рядком, то все, що вам потрібно щоб привести у людський вигляд це замінити символ заміщення $ на пробіл. Це до речі утричі швидше ніж у Word де для тієї ж операції потрібно провести послідовно три процеси заміни символів.

Як включити автоматичні переноси?
У Word: Сервис -> Язык -> Расстановка переносов, потім відмітити автоматичну розстановку.
У Writer: У вікні Формат -> Параграф або у параметрах конкретного стилю на закладці Текстовий потік поставити галочку біля відповідного пункту.

Ну, здається про найголовніше згадав. Успіхів вам.

Огляд відеоплеєрів для Ubuntu

Звісно ж плеєрів у світі Linux існує безліч, але я зверну увагу лише на декілька, які на мою думку є найкращими.

Відеопрогравач Totem
Входить до складу інсталяції Ubuntu. Неказистий на вигляд, дуже простий у використанні (як і всі програми зі складу Gnome) але тим не менш потужний плеєр на базі движка GStreamer. Дозволяє грати музику і відео, підтримує плейлісти.



VLC Media Player
Офіційний сайт: http://www.videolan.org/vlc/
Особливості встановлення:
sudo apt-get install vlc vlc-nox

Дуже потужний кросплатформений плеєр. Використовує власний набір кодеків і як на мене, краще підходить до перегляду DVD ніж стандартний Totem. Крім того він дозволяє почати дивитися файли які ще навіть не до кінця завантажилися з мережі. Підтримує скіни.



Xine
Офіційний сайт: http://xinehq.de/
Особливості встановлення:
sudo apt-get install xine-ui

Один з найпопулярніших плеєрів для Linux. Як і VLC використовує власний набір кодеків. Досить зручний у використанні і має багато налаштувань.

Інтерфейс користувача з підтримкою апаратної акселерації

Одна з основних новинок Microsoft Vista - це новий графічний інтерфейс Aero. Насправді інтерфейс користувача з апаратною акселерацією вже давно не є чимось новим. Наприклад у MacOS X аналогічний інтерфейс Aqua з'явився ще 5 років тому і до нині його ще не вдалося перевершити. У світі Linux також ще до появи Vista вже існував подібний інтерфейс - Compiz/Beryl (Beryl є форком Compiz, що розвивався паралельно, зовсім недавно ці два проекта знову об'єдналися в один).

То що ж таке Compiz (чи Beryl)? Це насправді менеджер вікон який для відображення елементів інтерфейсу використовує OpenGL і як наслідок можливості графічного процесора вашої відеокарти. В Ubuntu він активується через Система -> Параметри -> Desktop Effects, якщо у вас на цей момент ще не стоїть відеодрайвер з підтримкою 3D, то система встановить його автоматично. Після цього замість стандартного гномовського менеджера вікон Metacity активним стане Compiz. Можна також самостійно встановити Beryl, прочитавши на офіційному сайті як це зробити, тоді у вас з'явиться просто ще більше ефектів.

Ідея насправді логічна. Велика потужність сучасних комп'ютерів і зокрема графічних процесорів по максимуму використовується хіба в іграх. То чому б на відеокарту не перекласти малювання інтерфейсу? Сказано зроблено, подивимося ж на можливості цього інтерфейсу.

Звісно ж різницю помітно відразу. Навколо меню з'являється тінь, згортання і розгортання вікон супроводжується графічними ефектами. Якщо підвести мишку до кнопки на панелі задач, то біля неї відразу ж з'явиться маленьке зображення даного вікна. Якщо спробувати переміщувати вікна, то вони при цьому деформуються так як мовби виготовлені з желе. Більше того, потягнувши мишкою заголовок вікна за куток можна відхилити його як листок паперу і побачити, що ж діється ззаду.



Ще одним важливим нововведенням є куб (Ctrl+Alt+Left Mouse Button). У даному випадку віртуальні робочі столи розміщуються на гранях кубу, його можна крутити як завгодно, переміщувати вікна між гранями кубу та ін. При цьому якщо на якійсь із граней буде запущено наприклад відеопрогравач, то програвання відео не буде зупинятися як би ви той куб не крутили.



Звісно ж різним вікнам можна задавати прозорість (Alt+Mouse Wheel). Можна зробити вікно негативним (Win+N), а можна інвертувати кольори всього екрану (Win+M). Можна збільшити зображення на екрані так як мовби ви розглядаєте його під лупою (Win+Mouse Wheel). Та багато іншого.



Якщо говорити про реально корисні речі, то потрібно згадати про механізм перемикання між вікнами з допомогою Alt+Tab з новим зовнішнім виглядом.



Ще одна зручна функція - Scale. Це аналог функції Expose з MacOS X. Достатньо наприклад підвести мишку у правий верхній кут і всі відкриті вікна миттю зменшать свій розмір щоб поміститися на екрані. Тепер можна вибрати те вікно яке потрібно і всі вікна знову повернуться до своїх минулих розмірів.



Beryl дозволяє ще підключати додаткові плагіни з допомогою яких можна задавати анімацію вікон (можна наприклад вказати щоб при згортанні вікон з'являвся б вогонь який би спалював вікно), можна включити ефекти води (наприклад на робочому столі будуть розбігатися круги немовби від крапель дощу), можна також заставити на робочому столі йти сніг. Та багато чого можна. Звісно ж теми оформлення також можна змінювати, в Інтернеті їх повно.

Підготовка наукових публікацій у LaTeX

LaTeX (http://www.latex-project.org/) вже 20 років як є найпотужнішою з усіх відомих систем для верстання наукової документації. Його розробив програміст Леслі Лемпорт у 1985 році на базі розробленої ще у 1979 році Дональдом Кнутом системи TeX. LaTeX є надбудовою над TeX, використовуючи останнього для відображення змісту він додає новий підхід до створення документів де оформлення і зміст існують окремо.

Незаслужено мало відома у наших краях система в усьому іншому світі широко використовується науковцями, а особливо спеціалістами з фундаментальних наук. Всі серйозні математичні журнали у світі приймають статті до публікації виключно у форматі LaTeX. Якщо потрібно підготувати наприклад книжку або звіт на декілька сотень сторінок з купою математичних формул, малюнків, таблиць, з безліччю перехресних посилань та об'ємним списком бібліографії, то LaTeX заткне за пояс будь-який текстовий процесор як би він не називався. При цьому він абсолютно вільно розповсюджується і має реалізації для Linux/Unix, MacOS, Windows та навіть DOS. Таким чином величезні документи насичені формулами можна створювати навіть користуючись архаїчною "четвіркою".

Встановлюється наступним чином:
sudo apt-get install tetex-base tetex-bin tetex-common tetex-extra

Я використовую дистрибутив teTeX бо з ним менше проблем, хоча рекомендують використовувати TeXLive, він встановлюється аналогічно, але там є деякі проблеми з українською мовою. З teTeX жодних проблем не виникає.

Основна особливість LaTeX, яка робить його настільки потужною системою - це те, що насправді він являє собою спеціалізовану мову розмітки. Приблизно як HTML використовується для побудови веб-сайтів, так LaTeX використовується для створення наукових текстів. Щоб зрозуміти як це все працює я наведу приклад.

Документ LaTeX можна створювати у будь-якому текстовому редакторі, який тільки може створювати звичайні текстові файли. В Ubuntu вже є gedit, він цілком підходить, тим більше, що він вміє ще й виділяти синтаксис кольором. Ну от наприклад простенький текстовий документ (щойно набрав дивлячись у довідник Бронштейна-Семендяєва):

\documentclass{article}

\usepackage[utf8]{inputenc}
\usepackage[ukrainian]{babel}
\usepackage{indentfirst}
\usepackage{amsmath}

\begin{document}

\section{Теорія Ейлера-Лагранжа}

\emph{Задачею Лагранжа} у варіаційному численні називають описану раніше задачу знаходження екстремуму для функціоналу
\begin{equation}
J(y)=\int\limits^{x_1}_{x_0} f(x,y,y') dx
\end{equation}
При цьому необхідно, щоб функції $y(x)$, що шукаються відповідали б граничним умовам
$$
y(x_0)=y_0, \quad y(x_1)=y_1.
$$
Якщо немає обумовлено іншого, то вважаємо, що $y(x)$ має неперервну похідну $y'(x)$.

\section{Приклад ще однієї формули}

Вирахуємо $F'(\varepsilon)$:
\begin{multline*}
F'(\varepsilon) = \int\limits^{x_1}_{x_0}\frac{df}{d\varepsilon}dx=\ int\limits^{x_1}_{x_0}(f'_yh(x)+f'_y(x))dx=\\
=\int\limits^{x_1}_{x_0}\left[f'_yh(x)-\frac{d}{dx}(f'_{y'})h(x)\right]dx+\left. h(x)f'_{y'}\right|^{x_1}_{x_0}=\\
=\int\limits^{x_1}_{x_0}h(x)\left(f'_y-\frac{d}{dx}(f'_{y'})\right)dx.
\end{multline*}
\end{document}


Тепер достатньо зберегти цей файл наприклад як euler.tex і дати команду:
pdflatex euler.tex

У результаті у цьому ж каталозі з'явиться новий файл euler.pdf, якщо ми його відкриємо, то побачимо наступне:


Спробую тепер трохи пояснити. У випадку з LaTeX ви просто набираєте текст розбавляючи його де потрібно командами, а вже компілятор перетворює його у готовий документ придатний до друку. Команди починаються з символу оберненого слешу ( \ ). Компілятор розрізняє малі та великі літери, тому майте на увазі, що \lambda та \Lambda - це дві різні команди. Якщо команда має параметри, то вони задаються у фігурних дужках. Деякі команди можуть мати ще додаткові необов'язкові параметри які задаються у квадратних дужках. Формула в тексті відокремлюється з обох боків символом $, я якщо потрібно вставити виключну формулу, то використовують $$. Пара команд \begin{...}...\end{...} вводять середовища.

Вхідний файл чітко розмежовується на дві частини. Спочатку йде так звана преамбула:

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[ukrainian]{babel}
\usepackage{indentfirst}
\usepackage{amsmath}


Тут вказується клас документу (у даному випадку - стаття). Клас - це спеціальний .cls файл який містить у собі відомості про оформлення документу. Серед стандартних класів присутні - article, report, book, letter та ін. Такий підхід є чимось схожим на використання каскадних таблиць стилів при створенні веб-сторінок, коли оформлення і власне текст є відокремленими. Це дуже зручно, бо повністю змінити оформлення можна заміною лише однієї команди. Команда \usepackage служить для підключення додаткових пакетів які можна порівняти з бібліотеками у мовах програмування. У даному випадку ми вказуємо кодування файлу (inputenc), включаємо автоматичні переноси (babel), активуємо відступ у першому абзаці (indentfirst) та підключаємо пакет з додатковими математичними командами (amsmath) від AMS (American Mathematical Society).

Далі між командами \begin{document} та \end{document} пишемо основний текст. Команда \section вводить нову главу. Абзаци відділяються пустим рядком. Декілька пробілів сприймаються як один, символ переводу рядка сприймається як пробіл.

Середовище \begin{equation}... \end{equation} створює виключну формулу і автоматично проставляє її номер. У математичних середовищах діють додаткові команди. Наприклад \int - інтеграл, \limits - ліміти, символ апострофу вказує на похідну, ^ вводить верхній індекс, а _ відповідно нижній. Якщо потрібно наприклад прописати у індекс декілька символів, то вони обмежуються фігурними дужками. \quad - вводить широкий пробіл, щоб відокремити дві формули якщо вони в одному рядку, \varepsilon - грецька буква ε, \frac - вводить дріб. Якщо потрібно щоб дужки автоматично підганяли свої розміри під їх вміст, то пишуть таким чином - \left( ... \right). Оскільки LaTeX контролює закриття/відкриття дужок, то щоб все зпрацювало коректно, а наприклад праву дужку не показувати, замість неї пишуть \right. (саме так, з крапкою).

Середовище \begin{multline*} ... \end{multline*} вводить формулу на декілька рядків. Зірочка означає, що формулу не потрібно нумерувати. Рядки відокремлюються символом \ . При цьому перший рядок автоматично вирівнюється по лівому краю, а останній по правому, проміжні рядки вирівнюються по центру.

Ось так працює LaTeX. Завдяки своїй природі він є не лише дуже гнучким, адже всі WYSIWYG текстові процесори мають певні обмеження, але й дозволяє суттєво збільшити швидкість набору тексту. Адже наприклад набрати не відриваючись від клавіатури $y=\int x^2 dx$ набагато швидше ніж вставляти формулу і тикаючи мишкаю по кнопкам редактора формул вставляти інтеграл та верхній індекс. Звісно такий підхід потребує певних базових знань, бо по суті ви текст програмуєте, але потративши декілька годин на вивчення основних команд можна вже приступати до роботи. Для зручності можна додатково встановити ще якийсь спеціалізований редактор який би спрощував процес набору, про це я розповім трохи пізніше.

Потрібно ще раз згадати, що величезним плюсом LaTeX є велика кількість доступних в Інтернеті та й просто у дистрибутивах пакетів. Те, що у математичних формулах можна використовувати такі символи про які MS Word навіть не підозрює це одне, але LaTeX підходить не лише для набору математичних текстів. Для прикладу я щойно створив документ у який додано ноти (за це відповідає пакет musixtex).

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[ukrainian]{babel}
\usepackage{musixtex}
\begin{document}
\LaTeX вміє набирати ноти

\hsize=120mm
\generalmeter{\meterfrac24}%
\parindent 0pt
\setsign1{-3}
\startpiece\bigaccid
\NOtes\qu{ce}\enotes
\bar
\NOtes\qu{gh}\enotes
\bar
\NOtes\qu{=b}\enotes
\Notes\ds\cu g\enotes
\bar
\NOtes\qu{^f=f}\enotes
\NOtes\qu{=e}\itied0e\qu{_e}\enotes
\bar
\Notes\ttie0\Qqbu ed{_d}c\enotes
\bar
\Notes\ibu0b{-2}\qb0{=b}\enotes
\notes\nbbu0\qb0{=a}\tqh0N\enotes
\Notes\Dqbu cf\enotes
\NOtes\uptext{\it tr}\qu e\uptext{\it tr}\qu d\enotes
\bar
\NOtes\qu c\qp\enotes
\setdoubleBAR
\stoppiece
\bigskip
\end{document}


У результаті ми отримаємо наступне:


Те, що я показав це лише маленька частинка всього того, що може LaTeX. За допомогою інших пакетів можна розписувати шахові партії (з зображенням дошки і фігур), можна малювати всякі діаграми, можна будувати структурні хімічні формули та ін. Можливості даної системи просто безмежні. Оскільки в Інтернеті можна знайти величезну кількість літератури по даному питанню, то розібратися з LaTeX більш глибоко не становить серйозної проблеми.

Запуск програм для Windows в Ubuntu

Розв'язанням проблеми запуску Windows програм у Linux займається проект WINE (http://www.winehq.org/). WINE - це не що інше як альтернативна реалізація Windows API. Як би багато на сьогоднішній день не існувало програм для Linux але у наших краях без деяких специфічних програм обійтися буває складно, і тоді на виручку приходить Wine. Свісно ж потрібно усвідомити, що далеко не кожну програму можна запустити таким чином, ну і звичайно ж запущені через Wine програми зазвичає є менш стабільними ніж призначені спеціально для Linux. Перелік протестованих програм можна знайти тут: http://appdb.winehq.org/ Нові версії виходять регулярно, і часто програма яка не працює зараз починає працювати через декілька тижнів з виходом нової версії Wine.

Для завантаження та встановлення Wine потрібно виконати наступний набір команд:

wget -q http://wine.budgetdedicated.com/apt/387EE263.gpg -O- | sudo apt-key add -
sudo wget http://wine.budgetdedicated.com/apt/sources.list.d/gutsy.list -O /etc/apt/sources.list.d/winehq.list
sudo apt-get update
sudo apt-get install wine


Зробив декілька скріншотів з власного комп'ютера.

Fine Reader 6.0 (є проблеми з відображенням панелей інструментів, а також не працює функція сканування, вимагає копіювання декількох файлів з робочої Windows-машини)



AutoCAD 2000i (потрібно зкопіювати ряд файлів з робочої Windows-машини, дуже не стабільний і повільний)



Bricscad 7 (працює без особливих проблем, іноді пригальмовує при масштабуванні, рекомендую використовувати саме цю програму тим хто шукає альтернативу AutoCAD)



Bus Driver (працює без проблем)



Mafia (іноді можуть з'являтися артефакти але взагалі можна вважати, що працює чудово)



Існують також і комерційні версії Wine, це CrossoverOffice (орієнтований на запуск офісних програм), Cedega (забезпечує кращу підтримку DirectX ігор), Wine@etersoft (запускає 1С та ще ряд програм). Ну от власне, головне, що така технологія існує і наприклад ряд іграшок написаних для Windows таким чином цілком можна запустити і у Linux. Але наостанок хочу сказати, що якщо є можливість використовувати нативний Linux аналог, то використовуйте його, Wine - це лише тимчасове вирішення проблеми і не більше того.

Огляд веб-ресурсів присвячених Ubuntu

http://www.ubuntu.com - Офіційний сайт



http://www.canonical.com/ - офіційний сайт комерційного спонсора Ubuntu - Canonical Inc. Компанія надає платну технічну підтримку, а також займається адаптацією Ubuntu під потреби корпоративних замовників.



https://launchpad.net/ - серце проекта Ubuntu. Це одна з тих речей на якій тримається успіх цієї ОС - кожен бажаючий може долучитися до її розробки. Найпростіший спосіб це наприклад вдосконалювати переклад. На сьогоднішній день українська локалізація становить 50% від повного набору пакетів (у російській версії перекладено 75%, а у польській 74%), працювати є над чим. Можна також звітувати про помічені помилки, або безпосередньо брати участь у програмуванні, або збирати пакети, можна просто підкидати ідеї розробникам. Власне Launchpad - це система, яка дозволяє спростити розробку система яку розробляють тисячі людей по всьому світу.



https://help.ubuntu.com/ - основний сайт з документацією. Крім докладної офіційної документації на закладці Community Docs можна знайти багато інформації викладеної користувачами системи, крім того звідси можна попасти на сайти з інформацією іншими мовами



http://ubuntuforums.org/ - офіційний англомовний форум де обговорюється Ubuntu. Є відповіді практично на всі можливі питання.



http://www.getdeb.net/ - портал з різним програмним забезпеченням для Ubuntu, там можна знайти багато програм які не увійшли до офіційного репозиторію.



http://www.ubuntugames.org/ - сайт присвячений іграм для Ubuntu, приведено інформацію про різноманітні стратегії, екшени, симулятори та ін. доступні OpenSource ігри.



http://planet.ubuntulinux.org/ - офіційний Ubuntu-блог де публікуються останні новини з життя операційної системи



http://doc.ubuntu-fr.org/ - Франкомовний сайт з документацією, цікавий тим, що на ньому можна знайти багато інформації якої нема на інших сайтах, наприклад по різним CAD пакетам та іншому подібному софту.



http://art.gnome.org/ - Сайт з широким вибором тем оформлення, заставок та ін. подібного контенту для Gnome.



http://gnomefiles.org/ - Файловий архів програм для Gnome (базуються на бібліотеках GTK+).



http://www.gnome-look.org/ - Ще один сайт з темами оформлень для Gnome (включаючи також Beryl та Compiz), а також зі скінами до багатьох програм.

Використання ImageMagick для пакетної обробки зображень

А давайте придумаємо собі ще одну задачку і на її прикладі я покажу як працює ще одна цікава програма - ImageMagick. Мабуть більшість з вас і не підозрювала, що редагувати графічні зображення можна і у текстовому режимі? Насправді можна.

Отже, зустрічаємо ImageMagick
Офіційний сайт: http://www.imagemagick.org/

Особливості встановлення:
sudo apt-get install imagemagick

ImageMagick - вражаюче потужна система призначена для редагування графічних зображень, особливо її плюси проявляються при пакетній обробці зображень. Для чого це все потрібно? Уявіть, що вам потрібно обробити не одне зображення, а наприклад 100. Ну там, зкоректувати кольори, підправити гаму, додати контурної різкості, змінити розміри та формат зображень, а на додачу ще й додати у нижній правий куток кожного з них маленьке зображення зі своїм логотипом (або логотипом свого сайту куди ви зібралися ці зображення викласти). Будете як дятел тикати мишкою по кнопкам для всіх 100 зображень? А може таки варто нарешті усвідомити, що комп'ютер придумали для того щоб полегшувати життя, а не його ускладнювати? Тут і приходить на виручку ImageMagick.

Отже, уявімо, що ми створюємо сайт присвячений Сарі Брайтман і хочемо викласти туди колекцію фотографій. У мене є наприклад з десяток фотографій розмірами 1024х768 які цілком згодяться для даного прикладу. Зменшимо розміри кожної фотографії до 640х480 і додамо у правий нижній куток невеличку емблемку, відповідний файл розмірами 100х50 пікселів попередньо створимо у GIMP. А потім ще зробимо копії цих фотографій але вже у чорно-білому варіанті (ну наприклад ми захочемо щоб фотографії були присутні на сторінці у чорно-білому варіанті, а при наведенні мишкою перетворювалися на кольорові). Ну то приступимо.

Ось наш початковий набір зображень:


Тепер створимо у GIMP емблему і запишемо її у файл logo.gif з прозорим фоном і помістимо у ту ж папку:


А тепер створимо у цій же папці скрипт im.sh з таким вмістом:

#!/bin/sh
for fname in *.jpg; do
mogrify -resize 640 $fname
composite -compose atop -gravity SouthEast logo.gif $fname $fname
convert $fname -colorspace GRAY bw-$fname
done


скажемо системі, що цей файл є програмою:
chmod +x im.sh
і тепер вже його можна запускати
./im.sh

Тобто за допомогою оператора for ми обходимо всі файли *.jpg змінюючи їх розміри (-resize), потім додаючи логотип, а потім для кожного з файлів робимо його монохромну копію. У результаті вміст папки буде мати такий вигляд:


Ось так, і якщо відкрити будь-який із файлів, то у правому нижньому куті можна буде побачити логотип:


Тепер якщо вам колись потрібно буде обробити за один прийом десь з сотню фотографій я маю надію нікому не прийде у голову обробляти кожен файл вручну поодинці?

З ImageMagick також дуже просто конвертувати графічні формати з одного в інший. Наприклад у вас є папка у якій знаходиться близько двох сотень зображень у форматі .jpg, а вам їх потрібно перевести у .png, тоді просто набираємо у терміналі команду:
for fname in *.jpg; do convert $fname ${fname%.jpg}.png; done

І все, у папці тепер з'являться відповідні файли .png. Звісно ж з допомогою додаткових опцій до convert ви заодно зможете зробити і ще щось, наприклад змінити розміри чи зкоректувати кольори. Ось так.мультивалютный вклад,

Використання GNUplot для візуалізації наукових даних

Звички та стереотипи живуть довго. На жаль навіть у нашому науковому середовищі внаслідок глибокої комп'ютерної безграмотності люди з великою впертістю намагаються використовувати офісний софт у тих задачах для яких його не розраховано у той же час повністю ігноруючи програми спеціально призначені для роботи з науковою документацією. Внаслідок цього величезна частина часу який можна було б витратити на щось більш корисне витрачається то на боротьбу зі стрибаючими картинками чи таблицями у Word чи на обробку великих об'ємів даних у Excel. На жаль, більшість людей навіть ніколи не чули про той же LaTeX який міг би зекономити їм багато годин. Аналогічно і з побудовою графіків, у цьому пості я розповім про програму GNUplot спеціально призначену для побудови графіків. Саме у ньому побудовані графіки зображені у багатьох закордонних книгах, швидше за все дехто звертав увагу, що на вигляд вони побудовані явно не в екселі.

Отже, нехай у нас є досить великий об'єм даних. Це можуть бути результати фізичного експерименту або ж якісь інші дані. Для нашого прикладу ми можемо їх згенерувати. Отже, створимо вибірку з розподілу випадкових чисел, що підкоряються нормальному закону (це закон використовується для опису багатьох типів випадкових процесів, наприклад навантаження на конструкцію від постійного навантаження). Для цього напишемо нескладну програму на C.

// Генеруємо набір випадкових чисел з нормальним розподілом
#include
#include
#include

float rnd(void) { // Створюємо функцію генерації випадкових чисел в діапазоні [0;1]
float t;
t=(float)(rand() % 1000000000)/1000000000;
return t;
}

int main(void) {
FILE *file;
int i,n;
float v,s,m,x;
printf("Введіть математичне очікування m="); scanf("%f",&m);
printf("Введіть коефіцієнт варіації V="); scanf("%f",&v);
printf("Введіть об'єм вибірки n="); scanf("%d",&n);

file = fopen("distribution.dat","w");
s=v*m; // Вираховуємо стандарт
for(i=1; i<=n; i=i+1) {
x=sqrt(2*log(1/rnd()))*sin(6.2832*rnd())*s+m; // Формула досить заумна, але працює
fprintf(file,"%d %f\n",i,x);
}
fclose(file);
printf("\nДані записано у файл distribution.dat\n");
return 0;
}


Наберемо цей текст у будь-якому редакторі (наприклад gedit) і збережемо у файл gen.c. Якщо комусь цікаво, яка частина коду програми, що робить той завжди може звернутися до відповідної літератури або до Гугла. Отже, тепер зкомпілюємо нашу програму у виконуваний файл:
cc gen.c -lm

Тепер у цій же папці з'явиться файл a.out, який і є нашою програмою. Використаємо її для генерації розподілу, зробимо вибірку десь так у 100000 значень (як відомо у Excel до версії 2007 та у багатьох інших табличних процесорах є обмеження на 65536 рядків, тобто у даному випадку ми в екселі б фізично цього зробити не могли б) з математичним очікуванням 180 і коефіцієнтом варіації 0.1. Числа взяті зі стелі, лише для демонстрації. Отже, запустимо нашу програму:

bum@impress:~/Temp/gnuplot$ ./a.out
Введіть математичне очікування m=180
Введіть коефіцієнт варіації V=0.1
Введіть об'єм вибірки n=100000

Дані записано у файл distribution.dat


Як і відрапортувала програма у цій же папці з'явився файл distribution.dat, це звичайний текстовий файл у якому розміщено два стовпчики з даними: порядковий номер та вирахуване випадкове число. Значення розділені пробілом.

Ну, тепер коли у нас є дані, займемося їх візуалізацією. GNUplot встановлюється як і все в Ubuntu дуже просто:
CODE]sudo apt-get install gnuplot

GNUplot програма хоч і чисто консольна проте інтерактивна, але ми все ж таки будемо використовувати її у пакетному режимі. Створимо новий файл - distr.graph, з наступним вмістом:

#! /usr/bin/gnuplot -persist
set terminal png size 1600,1200
set output "./distr.png"
set encoding default
set xlabel "Iteration"
set ylabel "Stress in the control point"
set autoscale
set style line 1 lt 1 pt 7
plot "./distribution.dat" using 2 title "Stress" with linespoints linestyle 1


У цьому коді послідовно обирається спосіб виведення результату (у даному випадку формат PNG, 1600x1200 пікселів), встановлюються підписи осей і дозволяється програмі самій вибрати масштаб графіку, далі обирається стиль з товщиною лінії (1 піксель) та діаметром точок (7 пікселів). У останньому рядку вказується, що потрібно взяти дані з файлу distribution.dat, а саме, другий стовпчик, підписати цей ряд даних як Stress і відобразити з показом точок вищевказаним типом лінії. Якщо тепер дати команду
cat distr.graph | gnuplot

то з'явиться файл distr.png у якому буде зображено наступне:

Перекодування тегів музичних файлів з CP1251 до UTF-8

Одна з основних неприємностей, що виникає перед користувачем Ubuntu (та й будь-якого Linux) після переходу на нього з Windows - це різні кодування символів прийняті у цих системах. Зокрема є проблеми з правильним відображенням mp3-тегів з кирилицею. Як відомо Windows використовує для роботи з кирилицею восьмибітне кодування CP1251, тому якщо ви прописували теги у цій системі, то вони швидше за все і записані у даному кодуванні. Ubuntu ж використовує у якості основного системного кодування - UTF-8 (тобто Unicode) у якому один символ може займати від одного до чотирьох байтів в залежності від його типу. Звісно ж UTF-8 надає безліч переваг, зокрема дозволяє у рамках одного текстового рядку використовувати одночасно багато алфавітів (наприклад латиницю, кирилицю, івріт, грецький алфавіт, грузинський, вірменський, арабський, хірагану, катакану і більше того можна використовувати навіть китайські ієрогліфи). Якщо ви кодуєте у Windows треки з музичного CD у наприклад формат OGG, то ніяких проблем не буде, у ньому теги вже сидять у кодуванні UTF-8, тому для нього кінцева система значення не має. З MP3 ж система інша.

Який же метод розв'язання проблеми вибрати? Дехто радить створити окрему локаль і запускати плеєр під нею. Я все ж таки рекомендую перекодувати колекцію музики. Скористаємося для цього утилітою mid3iconv.

Спочатку необхідно встановити пакет python-mutagen, саме у ньому й міститься потрібна нам утиліта:
sudo apt-get install python-mutagen

А тепер знаходячись у папці з музичними файлами даємо у терміналі наступну команду:
find -name "*.mp3" -print0 | xargs -0 mid3iconv -e CP1251 -d

Тобто ми знаходимо усі файли *.mp3 у вибраній папці, виводимо їх особливим чином (опція -print0 означає виведення переліку файлів в один рядок розділяючи їх символом null), потім через конвейєр (символ |) передаємо перелік файлів команді xargs з параметром -0 яка виокремлює з отриманого переліку імена файлів і передаючи кожен з них у стандартний поток вводу викликає команду mid3iconv власне вже для конвертації у юнікод. Опція -e вказує початкове кодування (у даному випадку CP1251), а опція -d виводить на екран результати конвертації.

Все. Віднині всі плеєри всі Ubuntu будуть відображати теги коректно.

Щоб не згадувати постійно цю команду коли вам принесуть нову музикі, можна просто написати ще один скрипт для Nautilus. Для цього у папці ~/.gnome2/nautilus-scripts створимо файл з назвою "Конвертація mp3-тегів з CP1251 до UTF-8" наступного змісту:

#!/bin/bash
find -name "*.mp3" -print0 | xargs -0 mid3iconv -e CP1251 -d


Поставимо тепер у властивостях галочку на можливість виконання цього файлу як програми і тепер у меню Сценарії з'явиться новий пункт. Тепер достатньо просто зайти у папку з музикою, клацнути у будь-якому місці правою кнопкою мишки і запустити цей файл церез підменю Сценарії. Теги усіх файлів у даній папці буде переконвертовано в юнікод і тепер вони будуть вірно відображатися у плеєрі.

Встановлення мультимедія-кодеків в Ubuntu

Одне з найперших питань які зазвичай хвилюють користувача Ubuntu, це як слухати свою колекцію музики та дивитися відео. Справа у тому, що після встановлення у системі присутні лише кодеки для звукових файлів форматів OGG та FLAC, та відео у форматі OGG/Theora. Це звичайно чудові відкриті формати, проте більшість зберігають свої колекції музику у MP3, а відео звісно ж у AVI. А крім них хочеться ж ще і улюблений DVD подивитися.

Добре. Насправді все досить просто. Спочатку потрібно зайти у Програми -> Add/Remove... і там у розділі Звук та відео відмітити наступні пункти:

  • GStreamer ffmpeg video plugin
  • GStreamer extra plugins
  • GStreamer plugins for aac, xvid, mpeg2, faad
  • GStreamer plugins for mms, wavpack, quicktime, musepack


Потім йдемо у розділ Інше і відмічаємо:

Ubuntu restricted extras
Macromedia Flash plugin

Після цього тиснете Застосувати і додаткові кодеки встановляться на ваш комп'ютер. Тепер ви зможете слухати музику та дивитися відео практично у будь-якому форматі. Більше того завдяки ffmpeg ви тепер зможете займатися перекодуванням відео з одного формату до іншого, наприклад конвертувати flv у avi.

Для того щоб могти дивитися ліцензійні DVD потрібно виконати наступні команди (у даному випадку для Gutsy):
sudo wget http://www.medibuntu.org/sources.list.d/gutsy.list -O /etc/apt/sources.list.d/medibuntu.list

Щоб додати GPG-ключ зробимо наступне:
wget -q http://packages.medibuntu.org/medibuntu-key.gpg -O- | sudo apt-key add - && sudo apt-get update

Тепер запустимо Synaptic, оновимо репозиторії, а потім скориставшися пошуком відмітимо на встановлення два пакети:
libdvdcss2
w32codecs


Все, тепер ми можемо дивитися DVD. Для цього я рекомендую встановити плеєр VLC, про який вже розповідалося вище, бо стандартний Totem чомусь не завжди може відображати меню. На скріншоті нижче можна побачити меню з DVD "Тачки" відображене VLC Media Player.

Монтування ISO образів

Одне з питань яке цікавить новачків у Linux, це те яку програму необхідно встановити щоб можна було відкривати ISO образи. Насправді, все, що для цього потрібно, це стандартна команда mount:

Створюємо якусь папку, наприклад /media/isoimage:
sudo mkdir /media/isoimage

Далі монтуємо iso файл (наприклад something.iso) у цю папку:
sudo mount something.iso /media/isoimage/ -t iso9660 -o loop

Щоб відмонтувати використовуємо команду:
sudo umount /media/isoimage

Правда постійно набирати команди не дуже зручно тому можна скористатися іншим способом. Справа у тому, що файловий менеджер Nautilus підтримує скрипти, тому ми можемо написати простий плагін який би дозволяв просто підмонтовувати ISO-файли з допомогою контекстного меню.

1. Створюємо файл mount.sh (у Nautilus клацаємо правою кнопкою і обираємо Створити документ -> Порожній файл, вводимо ім'я, а потім подвійним кліком відкриваємо у текстовому редакторі і набираємо те, що нижче)


#!/bin/bash
# mount
gksudo -k /bin/echo "got r00t?"
BASENAME=`basename $NAUTILUS_SCRIPT_SELECTED_FILE_PATHS .iso`
sudo mkdir "/media/$BASENAME"
zenity --info --title "ISO Mounter" --text "$BASENAME e $NAUTILUS_SCRIPT_SELECTED_FILE_PATHS"
if sudo mount -o loop -t iso9660 $NAUTILUS_SCRIPT_SELECTED_FILE_PATHS "/media/$BASENAME"
then
if zenity --question --title "ISO Mounter" --text "$BASENAME Образ успішно примонтовано. Відкрити?"
then
nautilus /media/"$BASENAME" --no-desktop
fi
exit 0
else
sudo rmdir "/media/$BASENAME"
zenity --error --title "ISO Mounter" --text "Не можу примонтувати $BASENAME!"
exit 1
fi


2. У вікні Властивості даного файла на закладці Права ставимо галочку напроти Дозволити виконання файлу як програми (на відміну від Windows у Linux програми розпізнаються не по розширення, як .exe наприклад, а по спеціальному атрибуту eXecute)
Інший варіант, скористатися командою:
sudo chmod +x mount.sh

3. Створюємо файл unmount.sh


#!/bin/bash
# unmount
gksudo -k /bin/echo "got r00t?"
BASENAME=`basename $NAUTILUS_SCRIPT_SELECTED_FILE_PATHS .iso`
sudo umount "/media/$BASENAME"
sudo rmdir "/media/$BASENAME"
zenity --info --text "Успішно відмонтовано /media/$BASENAME"
exit 0


4. Аналогічно пункту 2 робимо файл unmount.sh програмою.

5. Відкриємо ще одне вікно Nautilus, заходимо у домашню папку, тиснемо Ctrl+H щоб побачити приховані файли і заходимо у папку .gnome2/nautilus-scripts

6. Копіюємо наші два файли у цю папку (просто перетягуємо мишкою)

Все, тепер щоб відкрити ISO файл достатньо просто клацнути на ньому правою кнопкою і у підменю Сценарії вибрати mount.sh. Щоб відключити том знову ж клацаєш по тому ж ISO файлу правою кнопкою і у Сценаріях обираєш unmount.sh.

Все, ми написали робочий плагін для Nautilus. Тепер можна забути про термінал і команди.

Якщо хочеться, то сценарії можна назвати звичніше. Наприклад файл "mount.sh" можна обізвати "Монтувати ISO", а замість "unmount.sh" написати "Відмонтувати ISO". Оскільки у першому рядку кожного файлу є рядок #!/bin/bash, то розширення файлу не має значення, система зрозуміє, як їх запускати.

Запуск старих програм для DOS в Ubuntu

Часто буває необхідно запускати старі програми розроблені ще за чісів MS-DOS. А хтось можливо захоче пограти у старі улюблені ігри. У такому випадку на виручку приходить емулятор DOSBox ( http://dosbox.sourceforge.net/ ).

Встановлюється він дуже просто:

1. sudo apt-get install dosbox
2. створимо теку куди будемо класти програми, наприклад ~\DOS
3. запустимо емулятор
dosbox
4. створимо у домашній теці конфігураційний файл
config -writeconf dosbox.conf
5. у файлі ~/dosbox.conf тепер можна змінювати типові налаштування, зокрема швидше за все вам захочеться доповнити розділ autoexec, наприклад щоб тека ~/DOS автоматично монтувалася у вигляді диску C, потрібно у даний розділ додати команду
mount c ~/DOS



На скріншоті можна побачити запущений QBasic.