Travis шифрование переменных

Шифрование нужно использовать, если вы хотите скрыть приватные данные от посторонних глаз.

На девелоперской машине нужно установить travis gem. gem install travis ставится долго, создаётся впечатление, что ничего не происходит, но нужно просто немного подождать.

sudo apt-get install rubygems
sudo gem install travis
travis encrypt "__PSW__=password"

Чтобы автоматически добавить шифрованную строку в конфигурационный файл travis .travis.yml, нужно команду encrypt выполнить с ключом --add

travis encrypt "__PSW__=password" --add

 

Клонирование приватных подмодулей в travis, генерация ssh-ключа

Deploy ключи на travis используются только при клонировании основного репозитория. Чтобы склонировать зависимые приватные репозитории, можно использовать https схему c указанием пользователя и пароля вместо git@github.com, deploy ключи, пользовательские ключи или Api token. 

Если это не настроено, то во время билда в travis при клонировании приватных подмодулей будет возникать ошибка:

ERROR: Repository not found.
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.

Ниже рассмотрим 2 из возможных вариантов что нужно сделать, чтобы в travis работало клонирование приватных подмодулей.

  1. Использовать https схему c указанием пользователя и пароля вместо git@github.com.
  2. Сгенерировать пользовательские ключи

1. travis клонирование через https схему

Для этого, во-первых, отключим инициализацию подмодулей:

git:
  - submodules: false

 

Полезные git aliases

В svn я привык к кратким командам svn st, svn co. В git же по умолчанию нужно писать имя команды полностью. Но, всегда можно добавить алиасы на команды git и писать как вам хочется, примеры git alias:

git config --global alias.st status
git config --global alias.co checkout
git config --global alias.ci commit
git config --global alias.di diff

 

Cписок timezones UTC

Находил много разных вариантов выпадающего списка timezone. Многие из них устаревшие или не полные. Практически все используют GMT, хотелось бы привызываться к UTC. Многие современные ресурсы показывают timezone в UTC (см. wikipedia). А GMT уже давно считается устаревшим вариантом. Поэтому написал свой вариант html выпадающего timezone списка в виде select (на php), временные зоны сгруппированы по регионам. Список временных зон останется актуальным со временем, т.к. использует системную информацию, полученную из стандартного класса DateTimeZone, который появился в php 5.2. C обновлением версии php мы можем получить и новые временные зоны.

Такой вариант вывода списка timezone подойдёт для выбора timezone в личном кабинете пользователя.

Вывод списка UTC timezones на php в виде html select списка

Обжим витой пары RJ-45

ReactOS - альтернатива Windows?

https://www.reactos.org/ru/download-reactos

ReactOS - это современная, свободная и открытая операционная система, основанная на лучших принципах архитектуры Windows (Windows 7, XP и т.д.), имеющая аналогичный Windows графический интерфейс. Так сказано на официальном сайте ReactOS. Попробуем проверить, так ли это.

Скрипт автоматического открытия вкладок guake при загрузке системы

Все опции можно увидеть в хелпе guake:

i5:~ eugene$ guake -h
Usage: guake [options]

Options:
  -h, --help            show this help message and exit
  -f, --fullscreen      Put Guake in fullscreen mode
  -t, --toggle-visibility
                        Переключение видимости окна
                        терминала
  -p, --preferences     Показать окно настроек Guake
  -a, --about           Показать информацию о Guake
  -n NEW_TAB, --new-tab=NEW_TAB
                        Новая вкладка
  -s SELECT_TAB, --select-tab=SELECT_TAB
                        Выбрать вкладку
  -g, --selected-tab    Вернуть индекс выбранной
                        вкладки
  -e COMMAND, --execute-command=COMMAND
                        Выполнить произвольную
                        команду в выбранной вкладке
  -r RENAME_TAB, --rename-tab=RENAME_TAB
                        Переименовать выбранную
                        вкладку
  -q, --quit            Скажите Guake'у уйти =(
 
Пример открытия, переименования вкладки, выполнения команды подключения по ssh на вкладке:
guake --new-tab='tab1' --rename-tab='jeka.by' --execute-command='ssh jekaby@vh40.hoster.by'

Открытие, переименование вкладки, подключение к mysql:

guake --new-tab='tab1' --rename-tab='mysql local' --execute-command='mysql -u root'

 

Горячие клавиши терминала Guake

  • F12 — открытие/закрытие Guake;
  • F11 — переключение в полноэкранный режим и обратно;
  • Shift+Ctrl+Q — выход из Quake, без запроса подтверждения, больше в этом сеансе он вызываться не будет;
  • Shift+Ctrl+T — открытие новой вкладки;
  • Shift+Ctrl+W — закрытие текущей вкладки, без запроса на подтверждения;
  • Ctrl+PgUp — переключение на предыдущую вкладку;
  • Ctrl+PgDn — переключение на следующую вкладку;
  • F2 — переименование текущей вкладки;
  • Shift+Ctrl+C — копирование в буфер;
  • Shift+Ctrl+V — вставка из буфера.

Создание скриншотов сайтов, исходный код

Вашему внимания предлагаются 4 linux библиотеки создания скриншотов (Webscreenie, PhantomJs, PythonWebkit2Png и WkHtml), которые могут сделать запрос к сайту, получить ответ, отрендерить ответ, создать снимок сайта (скриншотснапшот, в англоязычной литературе - screenshot). Либы позволяют использовать возможности WebKit в консоли.

Библиотеки создания скриншотов полностью работоспособны под Debian7, также я не заметил никаких проблем в установке и работе под Ubuntu.

1. Webscreenie

Установка Webscreenie:

The project url is: https://webscreenie.googlecode.com/svn/trunk

2. PhantomJs 

Установка PhantomJs (use precompiled binary):

cd /opt
wget https://bitbucket.org/ariya/phantomjs/downloads/phantomjs-1.9.7-linux-x86_64.tar.bz2
tar xjf phantomjs-1.9.7-linux-x86_64.tar.bz2
mv phantomjs-1.9.7-linux-x86_64 phantomjs
rm phantomjs-1.9.7-linux-x86_64.tar.bz2
// На основе examples/rasterize.js делаем свой snapshot-phantom.js

3. Python-webkit2png

Установка python-webkit2png:

apt-get install python-qt4 libqt4-webkit xvfb python-setuptools
cd /opt
git clone https://github.com/adamn/python-webkit2png.git python-webkit2png
cd python-webkit2png
python setup.py install

4. WkHtml

Установка WKHtml:

cd /opt
wget http://downloads.sourceforge.net/project/wkhtmltopdf/0.12.1-dev/wkhtmltox-0.12.1-c22928d_linux-wheezy-amd64.tar.xz
tar -xpJf wkhtmltox-0.12.1-c22928d_linux-wheezy-amd64.tar.xz
rm wkhtmltox-0.12.1-c22928d_linux-wheezy-amd64.tar.xz
 

Linux запуск приложений в фоне — с помощью screen

  1. Вам нужно выполнить sql-запрос, результат которого нужно ждать несколько часов или дней? 
  2. Вам нужно запустить приложение в фоне?
  3. Вам нужно выполнять программу в фоне и иметь возможность к ней вернуться?
  4. Вы используете линукс-консоль и работаете с ssh?

Тогда вам в обязательном порядке нужно знать о screen.

Основы screen

Screen в linux — это как "окна в Windows", которые можно свернуть/развернуть. Вы можете что то делать в одном окне, например смотреть фотографии. Но, если вам нужно кроме просмотра фотографий слушать музыку, то вы откроете новое окно (проводник), зайдёте в каталог с музыкой и отроете песню в аудио-программе.

Когда речь идёт о консоли линукс (особенно при работе по ssh), то нам будет крайне не удобно в одной консоли выполнять различные приложения. А, может, и совсем не удастся выполнять вторую операцию в то время, когда первая ещё продолжает свою работу. Это первый момент. Второй момент заключается в том, что в случае какого-либо сбоя с вашей стороны (со стороны клиента) - текущая операция прервётся. Пара примеров, когда при работе с ssh может понадобиться screen:

  • если вы копируете или перемещаете большой объём файлов с одного каталога в другой
  • если вы выполняете тяжёлый sql-запрос
  • если нужно запустить приложение, которое "захватывает" консоль

Наверное, вам было бы очень грустно, когда из-за случайно-закрытого терминала или скачка напряжения прервался бы sql-запрос, который уже выполнялся более 10 часов. В случае же с screen, screen работает на сервере, инициатором запроса будет объект screen и запрос уже не оборвётся не при каких проблемах клиента. При обрыве связи процессы не останавливаются, а продолжают работать, и к ним можно вернуться в любой момент.

НОВЫЕ ПОЛЬЗОВАТЕЛИ