среда, 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 для данной опции.

четверг, 28 июля 2016 г.

Ограничение скорости ethernet интерфейса

ethtool -s eth1 speed 100 autoneg off duplex full

Настройка usb-модема Мегафон (Huawei e220) в Ubuntu 16.04

Информация по настройке на странице:
http://askubuntu.com/questions/776497/huawei-modem-does-not-work-with-16-04

Естественно для вашего устройства идентификаторы производителя и продукта будут другие.
В нашем случае для старенького модема Мегафон E220 121d:1446 stick, 121d:1003 modem, чтобы модем воспринимался нужно свитч делать с 1446.


суббота, 2 января 2016 г.

Дружим philips v387 с kubuntu 14.04

В случае, если из коробки в kubuntu не определяется смартфон philips v387, используйте инструкцию
http://jtprog.ru/android-and-ubuntu/

пятница, 20 ноября 2015 г.

Игнорирование default маршрута при подключении openvpn

При установке соединения openvpn с помощью network-manager связь openvpn устанавливалась успешно, а вот интернет пропадал. Проблема в маршруте по умолчанию, который автоматически устанавливались при соединении по openvpn и перезаписывал существующий.

До подключения openvpn:
spirit:~ $ route
Таблица маршутизации ядра протокола IP
Destination Gateway Genmask Flags Metric Ref Use Iface
default         Dlink-Router.Dl 0.0.0.0         UG    0      0        0 wlan0
192.168.0.0     *               255.255.255.0   U     9      0        0 wlan0

После соединения openvpn

spirit:~ $ route
Таблица маршутизации ядра протокола IP
Destination Gateway Genmask Flags Metric Ref Use Iface
default         some.vpn.address 0.0.0.0         UG    0      0        0 tun0
xxxx
xxxx
xxxx
xxxx
192.168.0.0     *               255.255.255.0   U     9      0        0 wlan0

Решение проблемы: использовать только для ресурсов этого соединения. Для этого есть чекбокс в настройках подключения openvpn.

воскресенье, 15 февраля 2015 г.

Настройка infinality для сглаживания шрифтов

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

На момент написания статьи в оффициальном репозитории ubuntu отсутствовал. Для установки необходимо добавить репозиторий ppa:no1wantdthisname/ppa. В процессе настройки по инструкции (например, отсюда) выявился ряд проблем, о которых речь пойдет ниже.

Мне захотелось отключить antialiasing для ttf шрифтов определенного размера, оставив только hinting. Так мне больше нравится отображение, глаза меньше устают. В процессе выяснилось, что установка пропатченной libfreetype из ppa криво рендерит шрифты с отключенных antialiasing. Решение было следующее, установить пакет fontconfig-infinality из ppa, а libfreetype использовать из репозитория убунты (на момент настройки была установлена kubuntu 14.04, librfreetype в официальном репозитории имеет версию 2.5.2-1ubuntu2.2).

Полный порядок установки и настройка:

  1. sudo add-apt-repository ppa:no1wantdthisname/ppa Добавляем репозиторий с infinality.
  2. sudo aptitude update
  3. sudo aptitude download fontconfig-infinality Скачиваем пакет. Из репозитория не устанавливаем, не выполняем upgrade, т.к. нам не нужно обновлять libreetype оттуда.
  4. sudo ppa-purge ppa:no1wantdthisname/ppa Удаляем репозиторий, больше он нам не понадобиться.
  5. sudo dpkg -i fontconfig-infinality
  6. sudo /etc/fonts/infinality/infctl.sh setstyle Выбиаем infinality.
  7. sudo mcedit /etc/profile.d/infinality-settings.sh Устанавливаем переменной USE_STYLE значение WINDOWS7. Настройка Xft для xrdb находится тоже в этом файле. Для Xft я использую настройки по умолчанию.
  8. Теперь нужно отключить antialiasing для ttf шрифтов определенного размера. Добавляем в файл /etc/fonts/infinality/conf.src/61-group-tt-rendering-inf-7-xp.conf (или другой, в зависимости от стиля, этот для win7, infinality и xp) следующий код:
  9.        <match target="font">
                    <test name="font_type">
                            <string>TT Instructed Font</string>
                    </test>
                    <test compare="more_eq" name="pixelsize" qual="any">
                            <double>5</double>
                    </test>
                    <test compare="less_eq" name="pixelsize" qual="any" >
                            <double>17</double>
                    </test>
                    <edit mode="assign" name="antialias">
                            <bool>false</bool>
                    </edit>
            </match>




  10. Перезагружаемся и наслаждаемся
ps При установленном пакете infinality настройки из файла ~/.config/fontconfig/fonts.conf игнорируются

ps Решение проблемы загрузки mdm в mint http://www.infinality.net/forum/viewtopic.php?f=4&p=2148 

UPD 30.10.2020
Поддержка скриптов infinality разработчиком прекращена, в ppa репозитории пакет больше не обновляется. Но в kubuntu (последняя версия 20.04) по-прежнему меня не устраивают системные настройки шрифтов. В связи с чем, содержимое пакета из репозитория решено заложить в архив для последующего использования в случае удаления репозитория. В целом инструкция выше остается актуальной с п. 6, а установку произвести можно из архива.


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

http://exlmoto.ru/linux-ttf-rendering/
http://www.webupd8.org/2013/06/better-font-rendering-in-linux-with.html
https://www.linux.org.ru/forum/desktop/10783674

суббота, 15 ноября 2014 г.

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

В директории ~/.config/fontconfig/font.conf находятся настройки шрифтов. Для управления сглаживанием, хинтингом нужно использовать этот файл.

Мой конфиг представлен ниже:
<?xml version='1.0'?>
<!DOCTYPE fontconfig SYSTEM 'fonts.dtd'>
<fontconfig>

  <match target="pattern">
    <edit name="dpi" mode="assign">
      <double>96</double>
    </edit>
  </match>


 <!-- Disable sub-pixel rendering.
 X detects it anyway, and if you set this as well, it just looks really horrible  -->
<match target="font" >
<edit mode="assign" name="rgba" >
<const>none</const>
</edit>
 </match>
 <match target="font" >
<edit mode="assign" name="hinting">
<bool>true</bool>
</edit>
 </match>
 <match target="font" >
<edit mode="assign" name="hintstyle">
<const>hintfull</const>
</edit>
 </match>

<match target="font">
  <edit mode="assign" name="antialias">
    <bool>true</bool>
  </edit>
</match>

 <match target="font">
   <test qual="any" name="family" compare="eq">
     <string>Verdana</string>
     <string>Arial</string>
     <string>sans-serif</string>
     <string>Courier New</string>
   </test>
   <edit mode="assign" name="antialias">
     <bool>false</bool>
   </edit>
 </match>

<!-- Helvetica is a non true type font, and will look bad.
 This replaces it with whatever is the default sans-serif font -->
 <match target="pattern" name="family" >
<test name="family" qual="any" >
<string>Helvetica</string>
</test>
<edit mode="assign" name="family" >
<string>Verdana</string>
</edit>
 </match>

 <dir>~/.fonts</dir>

</fontconfig>

ps man fonts-conf 

четверг, 9 октября 2014 г.

Настройка wifi на Lenovo b590 под Astra Linux

Для настройки встроенного модуля wifi на ноутбуке Lenovo B590 под Astra Linux необходимо установить пакет из ubuntu bcmwl-kernel-source_6.20.155~bdcom-0ubuntu0.0.2_amd64.deb
ps ранние версии драйвера не работают

суббота, 2 августа 2014 г.

Ubuntu не видит мой wi-fi

Ноутбук леново не видит мою сеть wi-fi. Остальные видит, а мою нет. Причем сеть не скрытая, другие устройства ее видят. Роутер dlink. Решение: изменить канал в настройках роутера, поставил auto, теперь видит.

http://kosumosu.ru/index.php?id=75

пятница, 1 августа 2014 г.

Создание пользователя и установка прав в MYSQL

GRANT SELECT ON db_name.* TO 'username'@'localhost' IDENTIFIED BY 'password';
GRANT SELECT ON db_name.* TO 'username'@'%' IDENTIFIED BY 'password';
FLUSH PRIVILEGES;
SHOW GRANTS FOR 'username'@'localhost'

вторник, 29 июля 2014 г.

Двусторонняя синхронизация удаленных директорий (unison и incron)

Для двусторонней синхронизации двух и более директорий, размещенных на разных узлах, отлично подходит утилита unison. Основным отличием от других инструментов зеркалирования является ее способность производить синхронизацию в обе стороны на основании реплик каждого узла.
Утилита incron позволяет отслеживать события файловой системы в определенном каталоге, и по любому событию запускать определенный скрипт. Это позволяет автоматизировать синхронизацию двух каталогов, если в исполняемом скрипте запускать команду unison. Это при условии, что настроек беспарольный доступ по ssh на другую машину. Нужно уточнить, чтобы работал беспарольный доступ из скрипта, необходимо экспортировать переменную окружения HOME=dir для пользователя, от которого производится беспарольный доступ.
Подробнее в материалах ниже:
http://www.cis.upenn.edu/~bcpierce/unison/download/releases/stable/unison-manual.html
http://rbgeek.wordpress.com/2012/08/30/file-synchronization-between-two-ubuntu-servers-using-unison/
http://www.cyberciti.biz/faq/unison-file-synchronizer-tool/
http://www.cyberciti.biz/faq/linux-inotify-examples-to-replicate-directories/
http://stackoverflow.com/questions/1034243/how-to-get-a-unix-script-to-run-every-15-seconds