среда, 3 апреля 2019 г.

Настройка шрифта в clion


1. Отключаем использование системных настроек
/opt/clion/bin/clion64.vmoptions
-Dawt.useSystemAAFontSettings=off
2. Запускаем clion
3. Отключаем сглаживание в настройках
Settings->Appearance & Behavior->Appearance->Antialiasing->IDE & Editor->No Antialiasing
4. Скачиваем шрифт Terminus (TTF) и устанавливаем в систему
5. В настройках clion устанавливаем шрифт Settings->Editor->Font->Terminus (TTF)

среда, 7 июня 2017 г.

Настройка сохранения паролей git в windows под cygwin

На машине сборки одного из проектов под windows настроен cygwin. С помощью cygwin можно реализовать доступ по ssh к виндовой машине, что значительно упрощает конфигурацию и поддержку, в том числе удаленную, по сравнении с rdp. Также в этом случае обеспечивается надежное подключение jenkins к слейву на windows. Т.к. при использовании в jenkins для запуска слейва виндовые режимы Start as windows service или JavaWeb Start наблюдалась нестабильность: слейв стартовал через раз, не всегда начинал выполнять задачу после запуска и тд. Исправлялось только перезагрузкой сервиса jenkins.
При использовании cygwin для выполнения задач сборки по ssh для некоторых проектов пришлось бороться с одной особенностью. В процессе сборки требовалось выкачать зависимость проекта из другого git-репозитория. При этом для реализации автоматизированной сборки вводить логин и пароль нецелессобразно. git под win поддерживает несколько способов сохранения пароля : git config --global credential.helper ...(store,manager и тд, см. https://git-scm.com/docs/gitcredentials). При использовании manager используется внешнее приложение, которое интегрировано с "бумажником" windows. Но этот способ не работает при подключении по ssh. Вместо него отлично работает helper store.

Заметки:
1. Если ~/.git-credentials не может создаться из-за невозможности запросить пароль из консоли (глюк ssh cygwin tty?), то просто создайте вручную с логином и паролем в виде https://USERNAME:PASSWORD@host.

2. Убедитесь, что helper настроен один и системный его не переопределяет 
git config --list --show-origin 

вторник, 27 декабря 2016 г.

SSH туннель между двумя узлами

Возникла необходимость организовать канал связи между двумя компьютерами из разных мест (work и home), между которыми есть интернет, но нет внешних ip и один из них (work) находится за http proxy.
Имеем: 
work - рабочая станция, выход в интернет через прокси (доступны порты 80 и 443)
vds - виртуальный сервер с внешним ip
home - домашняя рабочая станция, доступ в интернет посредством 4g модема без внешнего ip

Идея заключается в использовании vds в качестве промежуточного звена для связи work и home. Для этого пробрасываем обратный ssh туннеля с work на vds. Далее с home получаем доступ к work через vds.

Настройка.

vds

1. /etc/ssh/sshd_config
Port 443
sudo service sshd restart
Со стороны work открыты только 443 и 80 порты.
2. /home/vds_user/.ssh/config
Host localhost # for work pc over tunnel
   HostName localhost                                  Port 4321    IdentityFile ~/.ssh/work # ключи не обязательны, но очень удобны и безопасны

3. При разрыве соединения по ssh, например, из-за сбоя с интернетом, на стороне сервера остаются открытые сокеты. Виной тому настройки ssh по умолчанию, который ожидает восстановление связи. Но аutossh со стороны клиента work будет пытается создать новое соединение при обнаружении обрыва. Сделать это не сможет из-за того, что на сервере порты заняты предыдущим подключением. Поэтому необходимо разрывать соединение ssh на сервере, чтобы освободить порты. Указываем серверу ssh разрывать соединение в случае бездействия или отсутствия клиента: в файле /etc/ssh/sshd_config устанавливаем параметры
Protocol 2
TCPKeepAlive yes
ClientAliveInterval 10
ClientAliveCountMax 2

sudo service sshd restart


work

1. /etc/ssh/sshd_config
Port 4321
sudo service sshd restart
2. /home/work_user/.ssh/config
Host vds
  HostName VDS_IP_ADDRESS
  Port 443
  ProxyCommand corkscrew PROXY_HOST PROXY_PORT %h %p /home/work_user/.ssh/corkscrew_proxy_auth # команда для подключения по ssh через http proxy
  IdentityFile ~/.ssh/keys/vds # ключи не обязательны, но очень удобны и безопасны

ps создать пару ключей можно командой ssh-keygen -t rsa

скопировать на сервер: ssh-copy-id -i KEY vds_user@vds

3. Проверяем соединение по ssh work к vds:

ssh vds_user@vds

4. Настраиваем обратный ssh туннель

autossh -M 59001 -f -g -N -R 4321:localhost:4321 vds_user@vds -p 443
ps команду autossh можно обернуть сервисом

5. Проверяем соединение по ssh от vds к work

ssh work_user@localhost -p 4321

Таким образом получили возможность подключаться к work извне.


home

1. Добавить в ~/.ssh/config правила 
Host vds 
   User vds_user
   HostName vds
   Port 443
   IdentityFile ~/.ssh/keys/vds


Host work 
   User work_user 

   HostName localhost
   Port 4321
   ProxyCommand ssh vds -W %h:%p


Подключаемся при помощи команды:
ssh work

Подключиться из home к work можно другими способами, но, имхо, менее удобными:
1. Пробросить еще один туннель и ходить к work по сути через два туннеля
ssh -L 1234:localhost:4321 vds_user@vds # туннель
Подключение к work опосредовано через vds:
ssh work_user@localhost -p 1234
Трафик через два туннеля пойдет к work
2. Подключиться по ssh к vds и далее еще по одному ssh к work. Можно это сделать одной командой:
ssh -t vds_user@vds ssh work_user@localhost
  

суббота, 10 декабря 2016 г.

Зависшая sms в андроиде

Каким-то образом внутри андроида зависла смс. После каждой перезагрузки устройства приходило очередное уведомление о новом смс. Лечится просто:
1. Получаем root на устройстве. Для philips v387 использовался kingo root из ОС windws, нативный apk не справился с задачей.
2. Устанавливаем adb, которая поставляется в составе Android Studio.
3. Извлекаем файл БД смс:
adb pull /data/data/com.android.providers.telephony/databae/mmssms.db
Если будут проблемы с правами доступа (Permission denied), можно сначала скопировать файл в общедоступную директорию на устройстве, например, downloads, а из нее уже на ПК.
4. Полученный файл БД открываем на ПК любым менеджером работы с БД sqlite. Удаляем строки из таблицы raw.
5. В обратной последовательности переносим отредактированную БД на устройство.

Используемые ресурсы:

http://lenovo-forums.ru/topic/11089-%D0%BF%D1%80%D0%B8-%D0%B2%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%B8%D0%B8-%D0%BF%D1%80%D0%B8%D1%85%D0%BE%D0%B4%D1%8F%D1%82-%D1%81%D0%BC%D1%81/
http://www.androidcentral.com/root#K
https://www.kingoapp.com/
https://developer.android.com/studio/index.html
https://developer.android.com/studio/command-line/adb.html

воскресенье, 25 сентября 2016 г.

Глюк с курсором мыши при клике в терминале

Курсор мыши при клике в терминале периодически переключается с IBeamCursor (редактирование) на ArrowCursor (стандартный). Неприятный эффект подмигивания.
Проблема была из xneur, а точнее опции TrackingMouse.
Лечится установкой No для данной опции.