Архив рубрики: Linux

Фоторедакторы Android.


Набор редакторов фотографий для Android, которыми я пользуюсь.


Instagram.
Бесплатное и супер известное приложение/соц.сеть которое я использую исключительно в целях публикации моих кото-шедевров для дальнейшего сбора лайков. Не смотря на присутствие некоторого набора фильтров и функционала, использовать его в качестве редактирования фотографий просто невозможно. Фильтров крайне мало и к тому же практически все они обладают уникальной способностью придать фотографиям убогий вид. Единственный более-менее вменяемый фильтр это X-PRO II, правда и он обрисовывает какие-то рваные края, что должно выглядеть как некое подобие рамочки, которые вышли из моды еще с завершением сериала «Бригада» в 90-х. Но если кому-то необходимо СРОЧНО поделиться фоткой бутерброда, который заботливая мама положила в школьный рюкзак, тогда другие редакторы лучше и не трогать. Ведь ничто не может испортить отличный бутер 😉


PicsArt.
Screenshot_2014-06-24-17-51-51
Условно-бесплатный фоторедактор но уже обладающий более расширенным функционалом и более пригоден именно для редактирования. Тут вам и фильтриков целый вагон и коррекция фото. Ваш друг Вася развернул вас лицом к лампе и сделал ваш портрет, от чего у вас вышли настолько красные глаза, которым позавидовали бы вампиры из к/ф «Сумерки» ? Не беда, PicsArt в два касания исправит это и сделает их цветом вашего любимого мороженого. А так же отбелит зубы, уберёт прыщи, разгладит кожу,как в глянцевых журналах, и сделает пластическую операцию исправит все недочёты, которые допустил фотограф. 
Фильтров же тут достаточно для любых целей, будут вам и привычные, придающие некий стиль, и совсем хардкорные превращающие ваше творение в рисунок карандашом или что-то похожее на комикс. Действительно, данный редактор обладает очень большим количеством именно креативных фильтров, которые больше нигде не найти. 
Несмотря на такое разнообразие функционала, данное приложение я использую лишь для сотворение коллажей, так как тут имеется всевозможные заготовки для их приготовления,а так же возможность удобной и гибкой ручной настройки шаблона.
 
   
PIXLR EXPRESS.
Screenshot_2014-05-20-09-54-14
На этот раз абсолютно бесплатный редактор. В отличии от всех остальных существующих на этой планете редакторов — обладает самым полным набором коррекционного функционала. Тут действительно есть все, начиная от исправления недостатков фотографии и заканчи

Как офис не айтишной компании на Linux перешёл

Работаю я в офисе одной очень крупной финансовой компании, деятельность которой только косвенно переплетается с техникой,а точнее, использует её только в пользовательских целях – документик набрать, презентацию нарисовать. И вот однажды руководству компании пришла мысль легализовать весь имеющийся у них софт. И тут мне, как их “компьютерщику”, пришла в голову одна из самых нехороших мыслей в моей жизни, предложить им не покупать лицензии на Windows софт,а перейти на Linux системы… Не делайте подобных ошибок)
Читать

Запуск Android программ в Linux

Google дал для своего детища ChromeOS, который по сути своей Linux, возможность запускать Android приложения. По иронии судьбы, Android — это то же Linux с Java машиной ART в новых версиях и Dalvik в старых. Теперь в Linux мы мучаемся с запуском программ, написанных для несколько иной Linux системы на кроссплатформенном языке Java. Технология называется App Runtime for Chrome или кратко ARC, которую разработали Кен Микстер (Ken Mixter) и Джош Вудвард (Josh Woodward).

Первые релизы ARC, которая ещё делает свои первые шаги, шли с ограничениями типа: работало некоторое количество приложений и только в ChromeOS. Разработчик НЕ из Google по имени Влад Филиппов ака vladikoff устранил ограничения и представил свою версию ARC под названием ARChon. Нам понадобится браузер Google Chrome старше 37 версии и всё что мы будем делать — это использовать API расширений Chrome. Гугловский ARC — это расширение. ARChon — расширение. Все программы Android, что вы установите — это расширения.

Если вы будете использовать ARChon, то вы замените Google ARC, но не удалите его. Так что процедура безболезненная и не опасная.

Установка Архона.

Предполагаю, что с установкой Google Chrome вы уже справились. Осталось зайти на ARChon Custom Runtime Guide и скачать нужной архитектуры ARChon. Скачав архив, распакуйте его.

И тут остановитесь. Минутка истории! Начиная c Chrome 35 для ОС MS Windows, Google решил запретить установку новых и работу прежде установленных расширений, размещённых НЕ в магазине Chrome WebStore. Потом был полный запрет сторонних расширений в мае 2014 года. Теперь чтобы установить стороннее расширение даже если вы ему доверяете, нужно провернуть несложный финт ушами.

Нам нужно в Терминале запустить Google Chrome вот так:

google-chrome --enable-easy-off-store-extension-install

Теперь через Инструменты -> Расширения можно добавить скачанный и распакованный Архон. Поставьте галочку «Режим разработчика» и нажмите «Загрузить распакованное расширение». Укажите на распакованный каталог Архона, игнорируя предупреждения.

Установка Android программ в Linux без проблем.

Сообщество подготовило обширный список программ, с указанием статуса работоспособности и URL. Вам осталось посетить онлайн электронную таблицу Chrome APK Official Apps List. Я никогда не кидал свиней в птиц и решил, что самое время проверить возможность работы Android программ в Linux'е на примере именно этой игрушки Angry Birds. Скачал, распаковал, добавил как расширение и запустил.

Установка Android программ в Linux через /dev/ass.

Как быть если на руках есть только пакет с Android программой в формате apk? Сначала проверьте в Chrome APK Official Apps List чтобы данная программа не была в красном цвете статуса Crash или Unusable. Я наивно полагал, что справлюсь с игрушкой Plants vs Zombies v1.2, но она обломала мне рога. И тут я вспомнил, что для популярной игры World of Tanks есть программа-помощник World of Tanks Assistant. Скачать apk из Google Play мне помог сайт apk-dl.com, выдав прямую ссылку на требуемое.

Теперь нам нужен инструмент chromeos-apk, который позволяет конвертировать пакет apk в удобоваримое расширение:

  • Ставим Node Package Manager:
    sudo apt-get install npm
  • Качаем node.js. Чтобы не заморачиваться с исходниками и не компилировать какой-либо софт в Убунту с пакетным менеджментом, выбираю Linux Binaries (.tar.gz). Распаковываю архив и запоминаю путь к нему. Бинарник node оказался у меня в /home/brovko_rs/temp/node/bin/
  • Обновляю до последней версии chromeos-apk
    sudo npm install -g chromeos-apk@latest
  • Перехожу в каталог с файлом ru.worldoftanks.mobile_1.8.2.apk и конвертирую, подсказывая где взять бинарник node:
    PATH=$PATH:/home/brovko_rs/temp/node/bin chromeos-apk ru.worldoftanks.mobile_1.8.2.apk

    Должно быть выдано подобное:

    Directory " ru.worldoftanks.mobile.android " created. Copy that directory onto your Chromebook and use "Load unpacked extension" to load the application.
  • Установка WoT Assistant в виде расширения через Инструменты -> Расширения закончилось неудачей, как до этого и Plants vs Zombies. Дело в том, что нужно из файла ru.worldoftanks.mobile.android/manifest.json взять строку
    "name": "ru.worldoftanks.mobile"

    и, превратив её в

    "message": "ru.worldoftanks.mobile"

    , добавить в файл ru.worldoftanks.mobile.android/_locales/en/messages.json в раздел extName


    "extName": {
    "description": "Extension name",
    "message": "ru.worldoftanks.mobile"
    }

    Теперь установка программы в виде расширения должна закончиться успешно. Это помогло WoT Assistant, но не помогло Plants vs Zombies, который установился, но продолжал к
    рашиться.

  • Можете закрепить Android программы в Unity Launcher, чтобы в дальнейшем быстро вызывать программу. Ведь никто визуально даже не догадается, как это запущено и как это работает. Главное работает!

Твики.

Программы в мире Android привыкли работать на мобильных устройства: смартфонах и планшетах. Окно программы вписывается в невидимое устройство и, если вам хочется сделать resize, чтобы было покрупнее, то это вполне можно сделать. В папке, которая содержит распакованный Archon есть 2 файла gen_main.min.js и gen_index.min.js
Найдите в них

tablet: {"long": 1280, "short": 800}

и подправьте под свои нужды.

Более действенно будет добавить

"resize": "scale"

в раздел arc_metadata в файле manifest.json у самого приложения. После всех манипуляций не забудьте Перезагрузить (Ctrl+R) расширение.

Если у приложения нет своего значка, то на панели Unity Launcher будет дефолтный значок зелёного робота. Самый простой способ сменить значок — это любой понравившийся значок положить в распакованную папку приложения, затерев там icon.png. Остальное произойдёт без вас автоматически.

Вот в принципе и всё! Если вам чего-то не хватало из мира Android и вы страстно хотели это запустить в своей Linux системе, то теперь есть реальный шанс сделать это.

Дополнительные материалы:
Проект по запуску Android приложений в Ubuntu.
Андроид программы в Ubuntu через AVD.
LXC 1.0: Более углублённое использование контейнера. Установка Android в контейнер LXC.

Автор: Roman Brovko

Автозапуск скрипта при загрузке ОС с помощью Systemd на примере x11vnc. Service-файлы.

Автозапуск скрипта при загрузке ОС с помощью Systemd на примере x11vnc. Service-файлы.

С массовым переходом на systemd, вопрос запуска скрипта от имени пользователя root при загрузке ОС, стал всё чаще подниматься на форумах и в умах линуксоидов, которым ещё не приходилось сталкиваться с этой новой системой инициализации. Меня этот вопрос так же не обошёл стороной, когда пришлось внедрять корпоративный дистрибутив, использующий systemd и появилась необходимость запускать при загрузке ОС x11vnc от имени пользователя root. Выяснилось, что в systemd, эта задача решается с помощью service-файлов, имеющих простой для понимания формат и создаваемых по стандартному, для этих целей, шаблону. Файлы эти располагаются в /lib/systemd/system (системные) и /etc/systemd/system (эта директория приоритетнее первой для systemd) и имеют имена вида: название.service. Загляните в эти директории, просмотрите несколько service-файлов имеющих знакомые названия типа network.service или cups.service и в общих чертах всё станет ясно. Содержание созданного мной service-файла таково:

[root@comp-core-2-81b58d system]# cat startvncserver.service
[Unit]
Description=Start vnc server /usr/bin/startvncserver

[Service]
Type=oneshot
ExecStart=/usr/bin/startvncserver
RemainAfterExit=yes

[Install]
WantedBy=graphical.target

Где, Description=Start vnc server /usr/bin/startvncserver — Описание сервиса.
Type=oneshot — Задание метода окончания периода запуска сервиса. Oneshot означает что действие, выполняемое сервисом должно быть окончено до запуска следующего сервиса.
RemainAfterExit=yes — Используется в связке с предыдущей опцией и говорит systemd о том, что данный сервис хоть и завершит свою работу после выполнения скрипта, но должен оставаться со статусом active.
ExecStart=/usr/bin/startvncserver — Путь к скрипту для выполнения.
WantedBy=graphical.target — Параметр, который даёт понять systemd, на какой стадии загрузки системы нужно выполнить данный сервис.  multi-user.target соответствует init3. graphical.target соответствует init5.

Для запуска, остановки, перезапуска, просмотра статуса  и включения в автозгрузку сервиса (и соответственно нашего скрипта), используются стандартные команды systemd.
Запустить:

[root@comp-core-2-81b58d system]# systemctl start startvncserver.service

Остановить:

[root@comp-core-2-81b58d system]# systemctl stop startvncserver.service

Перезапустить:

[root@comp-core-2-81b58d system]# systemctl restart startvncserver.service

Посмотреть статус:

[root@comp-core-2-81b58d system]# systemctl status startvncserver.service

И самое важное! Для запуска сервиса при загрузке ОС, его нужно включить:

[root@comp-core-2-81b58d system]# systemctl enable startvncserver.service

С автозагрузкой скрипта разобрались, теперь разберём сам скрипт и опции запуска vnc сервера x11vnc. В нашем случае, подключаются клиенты только из локальной сети, поэтому шифрование мы не используем. Из необходимых требований — запрет завершения процесса от имени пользователя и запрет чтения пароля на подключение пользователем. Поэтому мы запускаем x11vnc от имени root и храним пароль в файле, доступном на чтение только ему.

[root@comp-core-2-81b58d system]# cat /usr/bin/startvncserver

#!/bin/bash
while [[ $(test -f /var/run/xauth/A* ; echo $?) -ne 0 ]]
do
sleep 1s
done
/usr/bin/x11vnc -noipv6 -shared -forever -passwdfile /etc/x11vncpasswd -bg -display :0 -auth /var/run/xauth/A*

Где, используя цикл while мы задаём проверку того, появился ли файл «магической печенки», необходимый для запуска vnc сервера и если он ещё не появился, то ждём 1 секунду и проверяем вновь. Когда необходимый файл появляется, запускаем x11vnc со следующими опциями:

-noipv6 — Не использовать ipv6.
-shared — Обеспечить возможность подключения одновременно нескольких клиентов. Без этой опции, при подключении одного клиента, второй уже подключиться не сможет.
-forever — Не завершать работу сервера после подключения первого клиента.
-passwdfile /etc/x11vncpasswd — Указать, где искать пароль для подключения. Пароль содержится в текстовом файле, без шифрования, либо создаётся командой x11vnc -storepasswd в интерактивном режиме и записывается в файл ~/.vnc/passwd в шифрованном виде. При использовании первого варианта, нужно выставить права на чтение файла только пользователю root и соответственно запускать x11vnc от имени root, что я в общем и описываю.
-bg — запустить процесс на заднем фоне, то есть отвязать его от текущего терминала.
-display :0 — номер дисплея для подключения. По умолчанию в одномониторных системах это :0.
-auth /var/run/xauth/A* — путь к файлу с магической печенкой 🙂 То есть файлу авторизации X сервера. Где он лежит в вашей системе, можно выяснить так:

[yar4e@yar4e-admin ~]$ ps aux | grep X
yar4e     6888  0.0  0.0    568   144 pts/5    D+   14:39   0:00 grep X
root      7324  0.0  0.9  42356 19852 tty7     Ss+  Mar26  26:19 X :0 vt7 -auth /var/run/xauth/A:0-uyXr3I

Всё вышеописанное реализовывалось на Alt Linux P7 TDE и может незначительно отличаться на вашем дистре.

Автор: Yar4e

Ограничение пропускной ширины канала (шейпинг) средствами Linux

В последнее время, грань между рабочим/домашним компьютером стирается. Все эти облака, концепции BYOD (bring your own device), а так же тотальное покрытие 3G/4G делает пользователей не разборчивыми в своих желаниях. И если, он нашел интересное видео, то почему бы его не скачать на телефон, что бы просмотреть со смартфона, стоя в пробке? Но корпоративные каналы не всегда могут поспевать за такими “потребностями” пользователей. Читать

Полезные Bash скрипты

Пример: очень простой скрипт резервного копирования:

#!/bin/bash
SRCD="/home/"                #SRCD - SouRCe Directory - исходный каталог
TGTD="/var/backups/"         #TGTD - TarGeT Directory - конечный каталог
OF=home-$(date +%Y%m%d).tgz  #OF - Output File - выходной файл
tar -cZf $TGTD$OF $SRCD

Читать