Набор редакторов фотографий для Android, которыми я пользуюсь.
Instagram.
Бесплатное и супер известное приложение/соц.сеть которое я использую исключительно в целях публикации моих кото-шедевров для дальнейшего сбора лайков. Не смотря на присутствие некоторого набора фильтров и функционала, использовать его в качестве редактирования фотографий просто невозможно. Фильтров крайне мало и к тому же практически все они обладают уникальной способностью придать фотографиям убогий вид. Единственный более-менее вменяемый фильтр это X-PRO II, правда и он обрисовывает какие-то рваные края, что должно выглядеть как некое подобие рамочки, которые вышли из моды еще с завершением сериала «Бригада» в 90-х. Но если кому-то необходимо СРОЧНО поделиться фоткой бутерброда, который заботливая мама положила в школьный рюкзак, тогда другие редакторы лучше и не трогать. Ведь ничто не может испортить отличный бутер 😉
PicsArt.
Фильтров же тут достаточно для любых целей, будут вам и привычные, придающие некий стиль, и совсем хардкорные превращающие ваше творение в рисунок карандашом или что-то похожее на комикс. Действительно, данный редактор обладает очень большим количеством именно креативных фильтров, которые больше нигде не найти.
Несмотря на такое разнообразие функционала, данное приложение я использую лишь для сотворение коллажей, так как тут имеется всевозможные заготовки для их приготовления,а так же возможность удобной и гибкой ручной настройки шаблона.
PIXLR EXPRESS.
Как офис не айтишной компании на 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/bashwhile [[ $(test -f /var/run/xauth/A* ; echo $?) -ne 0 ]]dosleep 1sdone/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


