2015-08-08

Скринкаст на Linux

Часто бывает нужно записать скринкаст. Пробовал разные утилиты, но лучшей оказался обычный ffmpeg.

На своем лаптопе я запускаю это вот так:


ffmpeg -video_size 1366x767 -framerate 25 -f \
x11grab -i :0.0 -f pulse -ac 2 -i default output.mp4

Может кому-то будет полезно...

 

Оставить комментарий

 
  2018-04-28

Docker контейнер c GUI на удаленном компьютере

Всвязи с тем, что Роскомнадзор в свой священной борьбе с прогрессом и здравым смыслом одерживает знаменательные победы, встала наобходимость запуска GUI приложения на удаленном компьютере.

Обнаружил замечательный docker образ, который позволяет запускать графическое окружение и обращаться к нему через брауезер или через VNC viewer. 

Запускаем на удаленном сервере:

> docker run -p 6080:80 -p 5900:5900 -e VNC_PASSWORD=mypassword dorowu/ubuntu-desktop-lxde-vnc

И заходим на ваш новый компьютер через браузер:

http://yourremoteserver:6080

Получается вполне сносный рабочий копьютер на котором нормально открываются google и amazon сервисы.

 

Оставить комментарий

 
  2018-04-23

Зачем рeдактировать /etc/hosts для создания локального сайта?

Добавил новую DNS запись вида *.local на домен maxistar.ru ссылающуюся на 127.0.0.1 - теперь для локальной разработки не обязателно добавлять имя локального сайта в /etc/hosts - просто создаем локальный виртуальный домен, например newproject.local.maxistar.ru - и вуаля - я могу видеть его по этому адресу!

Кстали, в сети полно таких DNS записей более короткого вида - например fuf.me ссылается на локалхост, можно, например, сделать newproject.fuf.me.

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

 

Оставить комментарий

 
  2016-10-28

Как записать видео с экрана в linux

Я как то писал, что чтобы записать видео с экрана, моожно воспользоваться VLC. Однако, такой способ имеет одну проблему - указатель мыши, почему-то, оказывается невидим на получающемся видео. Чтобы исправить ситуацию, некоторые пытаются накладывать поверх фальшивые курсоры, но я до сих пор не нашел способа который бы хорошо это делал.

Недавно, в попытках решить указанную проблему, установил программку которая называется vokoscreen, которая как оказалось, умеет записывать видео, и при этом корректно захватывает курсор мыши. Однако, при детальном рассмотрении оказалось, что это просто GUI для ffmpeg - а значит все тоже самое можно делать из коммндной строки.

Все просто, в моем случае это:

> ffmpeg -video_size 1366x767 -framerate 25 -f x11grab -i :0.0 -f pulse -ac 2 -i default output.mp4

Где 1366x767 - это разрешение экрана минус единица. При этом захват получается еще и со звуком!
 
Вот здесь можно найти примеры для других ОС: https://trac.ffmpeg.org/wiki/Capture/Desktop
 

Оставить комментарий

 
  2016-08-29

Как открыть на docx на юбунту

Одному человеку потреботвалось отредактировать несколько анкет в формате docx для одного банка. Про то что не у всех есть Microsoft Office в этом банке видимо не знали - поэтому анкеты в docx.

Сначала этот человек попытался открыть файлы в Open Office - так файлы оказались с поломанной разметкой, часть символов не отобразилась вообще, часть строчек съехали. В принципе можно было бы исправить кривую разметку, найти похожие символы и переформатировать текст, но овчинка выделки не стоила. Так что, решил этот человек искать другие варианты.

Загрузил это человек docx анкету в Google Drive и открыл фалики в Google Docs. Но видимо, толи Google Docs не совсем хорошо понимает формат docx, толи тексты были настолько кривыми, но они корректно в Google Docs тоже не открылись.

Решил тогда этот человек сконвертировать документы в pdf при помощи одного из многочисленных online конветеров. PDF вышел замечательный, разметка отобразилась как надо, вот только отредактировать его не получилось не одним из известных этому человеку способов.

В конце концов, когда все известные способы были перепробованы, этот человек зашёл на один популярный торрент трекер и скачал оттуда Microsoft Office 2007 да поставил его под Wine. Документы открылись в том виде, в каком они и должны были открыться.  

Вывод - самый простой способ отредактировать docx в ubuntu - поставить на Ubuntu Microsoft Office. Больше никак. И это, когда на дворе двадцать первый век, когда космические корабли бороздят просторы большого театра. Печаль...

 

Коментариев: 3

 
  2015-10-22

Резервная копия для Google Authenticator

Двухфакторная аутентификация сейчас пользуется заслуженной популярностью. Аутентификация с использованием Google Authenticator - отличная альтернатива аутентификации на основе SMS сообщений. 

Но вот вопрос - что делать если устройство потеряется? А как просто будет перенести данные для авторизации если у вас новое устройство? 

Сейчас для того чтобы перенести авторизацию с одного устройства на другое нужно обнулить токены авторизации на одном устройстве и настроить их на другом. Хорошо если у вас только один аккаунт под управлением Google Authernticator - а если десять? У меня сейчас пять таких аккаунтов и их перенос для меня сильно проблематичен.

Не так давно я решил вопрос с потерей устройства регистрируя ключ на двух устройствах одновременно. Но вот у меня появился новый телефон. Проблема встала с новой остротой.

Хочется иметь возможность в любое время развернуть токены с одного телефона на другом. Желательно также, чтобы в любое время я бы имел возможность снести Google Authenticator и заменить его на любой другой, например, на FreeOTP.

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

Оказалось, что задача резервного копирования решается не просто просто а очень просто! Значит, чтобы получить на двух телефонах одинаковые коды, нам всего лишь нужно знать этот "секретный" код. А ведь когда мы настраиваем аккаунт нам этот код показывают на экране! Дополнительно, его можно скопипастить в виде текста и сохранить в надежном месте! Далее, просто вводим этот код в ДРУГОЙ телефон и вуаля! Мы имеем ДВА телефона с одинаковыми кодами! Более того, теперь, в случае, если мы сбросили наш телефон до заводских настроек, мы всегда можем восстановить наш Google Authenticator как было!

Таким образом, алгоритм подключения телефона дополняется дополнительным шагом - а именно - сохранением секретного ключа в секретном же месте. После чего, данный секретный ключ может быть введен на любом устройстве, в любое время! Кроме того, вы можете попробовать использовать любые другие OTP программы, например FreeOTP.  Который, в отличие от Google Authenticator - полностью открытый и не имеет разрешений ходить в интернет. Да я теперь даже смогу использовать Pebble для авторизации!

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

 

Коментариев: 5

 
  2015-07-17

Запись видео с экрана при помощи VLC

Столкнулся с досадной проблемой - recordmydesktop на моем компьютере отвратительно записывает видео происходящего на дисплее. А очень нужно было записать несколько роликов. На помощь пришел VLC - оказывается он умеет создавать прекрасные ролики с экрана при минимуме настроек.

Вот подробное описание как это делается.

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

 

Оставить комментарий

 
  2014-10-28

Использование Google Authenticator на двух устройствах

Двухфакторная верификация набирает всё большую популярность, и самая, пожалуй популярная программа для дополнительной верификации - Google Authenticator. Работу с Google Authenticator поддерживает сама Google, Amazon и многие другие. Однако представим на минуту, что вы вдруг потеряли свой мобильник, или забыли дома, а на работе срочно нужно войти в аккаунт с двухфакторной авторизацией - всегда желательно иметь запасной вариант на всякий случай.

Как правило, у многих сейчас есть несколько Android устройств - например телефон и планшет. Было бы здорово настроить Google Authenticator на двух устройствах одновременно. Однако если вы регистрируете одно устройство - второе зарегистрированное ранее перестает работать. Как же сделать так чтобы иметь запасное устройство для авторизации?

Выход оказался прост - в момент регистрации устройства, когда на экране показан штрих-код, одновременно сканируем штрих-код двумя устройствами. Оба устройства будут зарегистрированы для двухфакторной авторизации и оба смогут быть использованы для входа. Задача решена!

 

Оставить комментарий

 
  2014-03-02

Xubuntu

Решил переставить OS на рабочем ноутбуке. Пришло время снести установленный на соседнем разделе хакинтош - пользоваться которым було абсолютно нереально в силу тормозов. Во общем-то давно хотел попробовать вместо Ubuntu - которую я каждый раз затем несколькими телодвижениями превращаю, по сути в ту же xubuntu, так как ставлю xfce в качестве работчего стола, поставить сразу xubuntu из коробки.

Я надеялся что установка xubuntu позволит ибавиться от проблем с конфликтами с сервисами gnome - каждый раз приходится все подкручивать, подстраивать...

Результаты оказались неоднозначными.

В xubuntu меньше версий чем в Ubuntu - на ноутбуке стояла Ubuntu 12.10 - сейчас стоит Xubuntu 12.04,версии 12.10 Xubuntu в природе не существует а версия 13.04 работать на моём ноутбуке почему-то не захотела. Зато действительно из коробки заработал переключатель языков. Тема рабочего стола по умолчанию косит под макос, немного не так как я привык, но пока оставлю пока так, вполне удобно.

В целом эксперимент оказался вполне успешным. Хотя, конечно, проигрывает xubuntu по многим параметрам своей старшей сестре, зато ничего лишнего. Ну не идёт у меня юнити, ну не моё это.

 

Коментариев: 2

 
  2014-01-23

Кастомный php на сервере с Cpanel и WHM

Потребовалось обновить PHP на сервере с Cpanel и WHM. Делается это просто, но вот незадача, один из сайтов на сервере закодирован ionCube и максимальная версия PHP а которой он может работать 5.2.

Но мне кровь из носа нужна была версия 5.3. Однако, оказалось, что решить проблему не так уж и сложно, достаточно скомпилировать собственный cgi модуль php.

Указанная техника подойдет для пользователей shared хостингов где есть доступ к компилятору но нет рутовых прав, например это "официальный" способ для клентов masterhost.

Алгоритм получился следующий:

1. закачиваем на сайт скрипт с phpinfo(); и смотрим "configure command" секцию - это нужно чтобы не придумывать опции компиляции вручную - это долго и муторно. В моем случае получилось следующее:

'./configure' '--disable-fileinfo' '--disable-phar' '--enable-bcmath' '--enable-calendar' '--enable-exif' '--enable-ftp' '--enable-gd-native-ttf' '--enable-libxml' '--enable-magic-quotes' '--enable-mbstring' '--enable-pdo=shared' '--enable-sockets' '--enable-zip' '--prefix=/usr/local' '--with-apxs2=/usr/local/apache/bin/apxs' '--with-bz2' '--with-curl=/opt/curlssl/' '--with-freetype-dir=/usr' '--with-gd' '--with-gettext' '--with-imap=/opt/php_with_imap_client/' '--with-imap-ssl=/usr' '--with-jpeg-dir=/usr' '--with-kerberos' '--with-libdir=lib64' '--with-libxml-dir=/opt/xml2/' '--with-mcrypt=/opt/libmcrypt/' '--with-mysql=/usr' '--with-mysql-sock=/var/lib/mysql/mysql.sock' '--with-mysqli=/usr/bin/mysql_config' '--with-openssl=/usr' '--with-openssl-dir=/usr' '--with-pcre-regex=/opt/pcre' '--with-pdo-mysql=shared' '--with-pdo-sqlite=shared' '--with-pic' '--with-png-dir=/usr' '--with-sqlite=shared' '--with-xpm-dir=/usr' '--with-xsl=/opt/xslt/' '--with-zlib' '--with-zlib-dir=/usr'

Выкусываем из этой строки '--with-apxs2=/usr/local/apache/bin/apxs' - это команда сборки php как модуля Apache - мы собираем CGI поэтому она нам не нужна.

заменяем '--prefix=/usr/local' на '--prefix=/home/username/php' - это путь по которому команда make install сложит готовые файлы, мы же не хотим устанавливать php глобально.

Возможно, вы захотите внести какие-либо еще изменения в команду конфигурации.

2. Скачиваем нужную версию php с http://www.php.net/downloads.php

3. Распаковывем и в папке с исходниками запускаем нашу команду конфигурации и сборки.

./configure ...[то что мы подготовили на шаге 1]

make

make install

4. Если все прошло успешно то в папке /home/username/php/bin появится файл php-cgi eго нужно скопировать в папку ~/public_html/cgi-bin/ с именем php: cp "~/php/bin/php-cgi ~/public-html/cgi-bin/php"

5. В .htaccess помещаем следуюшие строчки:

Action php-script /cgi-bin/php
AddHandler php-script .php

Вуаля, новая версия php установлена на сервер. Обратите внимание, все операции можно проделать без рутового доступа, что может пригодится пользователям shared хостингов которым не нравится невозможность вносить изменения в php.ini

php.ini я положил в /home/username/php/lib/php.ini, скопировал существующий из /usr/php/lib/php.ini и внес в него необходимые мне изменения.

Вобщем, все оказалось не так уж и страшно, спасибо masterhost за вот эту инструкцию.

 

Оставить комментарий