В новом обзоре свободного и бесплатного ПО представлены небольшие программы для измерения скорости интернета, для простой визуализации графов, для очистки и оптимизации SVG-файлов и для массовой обработки изображений.
Speedtest-cli
Speedtest-cli - сетевая полезняшка для домашнего линуксоида, позволяющая измерить скорость вашего Интернета. Часто при работе в Сети возникают подозрение, что провайдер мухлюет и не обеспечивает скорость, указанную в тарифах, что особенно актуально для мобильных провайдеров.
Существуют, конечно, простые народные способы определить скорость Интернета, скачав и загрузив какой-нибудь файл большого размера при помощи lftp, wget, curl или даже браузера. Обычно эти программы в подобных случаях всегда показывают среднюю скорость загрузки файла, которую и можно назвать скоростью вашего интернета.
Более продвинутые пользователи знают о существовании веб-сервиса speedtest.net. Достаточно зайти на главную страницу этого сервиса, нажать кнопку "Begin test" и запустится красивая анимация, показывающая значения скорости загрузки download и upload.
Использовать веб-сервис speedtest.net можно и безо всякого браузера прямо из командной строки, что пригодится пользователям Linux. Для этого существуют две консольные утилиты - tespeed и speedtest-cli. Программа tespeed уже давно не обновлялась, а speedtest-cli до сих пор совершенствуется, поэтому её и рассмотрим. Её текущая версия - speedtest-cli 0.2.5.
Установить speedtest-cli можно несколькими способами. Так как программа написана на Python, то её можно установить через менеджер python-pip, позволяющий собирать питонячьи пакеты.
sudo pip install speedtest-cli
После чего программу нужно просто запустить в терминале.
speedtest-cli
А можно просто скачать этот скрипт через wget и запустить прямо из домашней папки.
wget https://raw.github.com/sivel/speedtest-cli/master/speedtest_cli.py chmod a+rx speedtest_cli.py ./speedtest_cli.py
Speedtest-cli позволяет получить результат в виде картинки при помощи опции --share. В результате скрипт выдаст ссылку на изображение с цифрами скорости Интернета.
С помощью опции --list можно получить отсортированный пронумерованный список всех доступных серверов Speedtest.net. Географически ближе те, что вначале списка. Выбранный сервер можно протестировать через опцию --server с его номером.
$ speedtest-cli --server 3465
Hypercube
Есть такая замечательная математическая теория - теория графов. Родоначальником этой теории считается математик Эйлер (18-й век), решивший задачу о Кёнигсбергских мостах, где он показал, что нельзя обойти семь городских мостов и вернуться в исходную точку, пройдя по каждому мосту ровно один раз.
По этой первой работе Эйлера можно заметить прикладной характер этой теории, которую сейчас активно используют в исследованиях по электрическим сетям, кристаллографии, органической химии. С графами, сами того не замечая, сталкиваемся постоянно и мы, когда, например, ищем оптимальный маршрут на схеме линий метрополитена или же строим так называемое генеалогическое древо - всё это графы.
Графы служат удобным средством описания связей между объектами. Построение математического определения графа делается путем формализации "объектов" и их "связей" как элементов некоторых конечных множеств.
Часто полезно представить граф в графической визуальной форме, чтобы была видна его структура. Например, у блогеров и пользователей сетей популярны визуализации социальных графов в Twitter или Facebook. Соответственно существует немало программ для визуализации графов. Среди таковых можно назвать Cgraphviz, gephi, tulip, yEd Graph Editor.
В этом обзоре отметим Hypercube - небольшую программу для визуального отображения графов. Она отличающаяся свободным кодом, бесплатным распространением и кроссплатформенностью. Имеются версии для операционных систем: UNIX-like, Windows, Mac OSX.
Инструмент Hypercube предназначен для визуализации графов, описанных текстовыми форматами. Экспорт визуального представления графов можно осуществить в изображения масштабируемых графических форматов SVG и EPS.
Программа имеет графический интерфейс на основе фреймворка Qt. Этот фреймворк позволяет ей иметь "родной" интерфейс для Windows, Mac OS X и Linux.
Также программа может работать и как независимый инструмент командной строки, не требующий никаких дополнительных библиотек для своей работы.
hypercube-cli [OPTIONS] FILE
Основная цель в развитии Hypercube являются портативность и простота использования. Главные особенности программы:
- поддержка стандартных входных форматов данных: DOT, GML, GraphML, GXL, а также простых текстовых файлов;
- вывод в векторные форматы графики SVG и Postscript;
- поддержка Unicode UTF-8, а также различных латинских, кириллических кодировок;
- лёгкая настройка визуального графа в режиме WYSIWYG;
- модули для поддержки дополнительных входных и выходных форматов.
SVG Cleaner
В дополнение к предыдущей новости, где упоминались форматы векторных изображений, вполне уместной будет небольшая программка SVG Cleaner. Она предназначена для оптимизации файлов векторной графики в формате SVG.
Формат SVG (Scalable Vector Graphics standard) - стандарт масштабируемой векторной графики на основе XML. Грубо говоря, это формат, где все элементы картинки описываются текстом.
Векторные форматы рисунков как раз больше всего подходят для различных схем, графиков, в том числе и визуализаций графов, сделанных в программах, наподобие Hypercube. Главное полезное качество SVG - это отсутствие потери качества при любом масштабирования картинки. Многие знают на собственном опыте, что растровые форматы, как jpg, png, gif, при масштабировании, особенно при увеличении, дают артефакты изображения.
Наибольшую популярность SVG приобрёл в издательской деятельности, в издательских программах. Хотя разрабатывался SVG в первую очередь для распространения векторных рисунков в Интернет, и, например, код SVG может бесшовно интегрироваться в код HTML.
Однако у векторных форматов главная проблема - это размер картинки. В случаях логотипов и несложных рисунков файлы SVG имеют вполне приемлемый размер. Однако с усложнением векторного изображения размер файла растёт чуть ли не в геометрической прогрессии. В полиграфии на первом месте стоит качество масштабирования картинки, и поэтому здесь размер не имеет значения. А вот для Веба размер значение имеет.
И тут на сцену выходят оптимизаторы изображений. Есть методы и программы оптимизации растровых рисунков, есть методы и программы оптимизации файлов SVG. Для оптимизации векторной графики используются программы: svgmin, Scour, SVG Opbmizer, SVG Tidy. Мы рассмотрим программу SVG Cleaner, которую создал Евгений Рейзнер. SVG Cleaner постоянно обновляется, и в феврале программа получила одно значительное обновление и несколько дополнительных обновлений. Текущая версия - SVG Cleaner 0.6.2. Программа кроссплатформенна и существует для всех популярных ОС. Её размер чуть менее 10 мегабайт. Распространяется бесплатно под лицензией GPLv2.
SVG Cleaner - программа с графическим интерфейсом. Здесь имеется специальный визард, с помощью которого можно задать параметры оптимизации элементов, атрибутов, линий SVG-картинки.
Оптимизация SVG имеет свои особенности и предполагает не только уменьшение размера картинки, но и оптимизацию рендеринга и парсинга её XML-кода. В целом оптимизация SVG осуществляется комплексно:
- удаление невидимых элементов;
- конвертирование style в атрибуты;
- вынесение общих атрибутов в группу;
- оптимизация кривых в Path, конверсия сегментов;
- перемножение трансформаций в одну матрицу;
- применение трансформаций к точкам кривой;
- уменьшение количества точек в Polyline;
- округление дробных значений.
Отсюда следует, что неверно сравнивать программы по оптимизации SVG-файлов между собой - какая лучше, а какая хуже оптимизирует. Их можно применять также комплексно, последовательно применяя одну программу за другой. Потому что эти программы могут быть по-разному эффективными в разных случаях. Но если говорить об эффективности уменьшения размера, то, по заявлению самих разработчиков, изображения, очищенные SVG Cleaner, как правило, на 40-60 процентов меньше, чем оригинальные.
Converseen
И чтобы два раза не вставать, завершим обзор ещё одной бесплатной и со свободным кодом программой для обработки изображений - Converseen. Программе уже около пяти лет, и недавно в начале февраля она достигла версии Converseen 0.6.7.
Программа предназначена для массовой конвертации и преобразований изображений из одного формата в другой. Converseen имеет простой и интуитивный интерфейс, который обеспечивает одновременную работу с группой изображений. Программа позволяет обрабатывать группу файлов одним щелчком мыши.
По сути, Converseen - это графическая оболочка к графическим библиотекам Magick++, что позволяет программе обрабатывать большое количество популярных форматов изображений: DPX, EXR, PhotoCD, GIF, JPEG, JPEG-2000, PDF, PNG, Postscript, SVG и TIFF и других. Автор указывает поддержку около ста форматов. Дополнительно в Converseen имеются возможности массового переименования файлов.
Программа кроссплатформенна. Имеется версия для Windows, а также Converseen можно найти во многих репозиториях дистрибутивов GNU/Linux.
Михаил АСТАПЧИК
Горячие темы