Skip to content

Instantly share code, notes, and snippets.

View vertigra's full-sized avatar
😬
I may be slow to respond.

Alexey Nesterov vertigra

😬
I may be slow to respond.
View GitHub Profile
@vertigra
vertigra / gist:739382d74a024d0cf02b112f79d1ed3a
Last active November 14, 2019 05:51
OpenVPN и tls_process: killed expiring key
Канал OpenVPN до одного из серверов в LA постоянно падал и поднимался. Это проявлялось в кратковременных тупняках, при любом виде конекта, будь то http или ssh. В логах клиента было следующее:
TLS: tls_process: killed expiring key
Нагуглилось:
https://duo.com/docs/openvpn
This option will determine how often OpenVPN forces a renegotiation, thereby requiring the user to re-authenticate with Duo. This setting defaults to 3600 seconds, which means your users must re-authenticate every hour. If your user's VPN client saves the password and automatically re-authenticates with it, this may cause issues with the user receiving unexpected push notifications or their client replaying a one-time passcode. Therefore, we recommend disabling reneg-sec by setting it to 0 in your server configuration file:
@vertigra
vertigra / installbtsynk.md
Last active April 12, 2017 12:29
BitTorrent Sync на Debian

Установка Resilio Sync (BitTorrent Sync) на Debian

# echo "deb http://linux-packages.resilio.com/resilio-sync/deb resilio-sync non-free" > /etc/apt/sources.list.d/resilio-sync.list
# wget -qO - https://linux-packages.resilio.com/resilio-sync/key.asc | apt-key add -
# dpkg --add-architecture armhf
# apt-get update
# apt-get install resilio-sync
# # systemctl enable resilio-sync
@vertigra
vertigra / example_team_backup_script.md
Created February 1, 2017 02:15
Backup TeamCity Server

Статья тут

./maintainDB.sh backup --all -M -A /opt/TeamCity/bin/.BuildServer -F /opt/TeamCity/buckup_script

Сервер надо выключать иначе не бэкапит.

@vertigra
vertigra / send_bot_to_private_shanel.md
Last active April 13, 2024 10:25
Отправка сообщений в приватный канал ботом телеграм

Отправка сообщений в приватный канал ботом телеграм

  • создать публичный канал
  • добавить в канал бота от которого будут посылаться сообщения
  • перейти по ссылке:
https://api.telegram.org/bot255854462:ABGlRhNICpcjb1EUbvMsagKyxPv3Z1FPtXA/sendMessage?chat_id=-1221196120949&text=test_message_string
  • в ответе придет id канала
@vertigra
vertigra / c_sharp_run_program_with_parametr.md
Last active February 1, 2017 04:43
Запуск программы с параметрами (С#)

Запуск программы с параметрами (С#)

Простой пример

В Program.cs

static class Program
    {
 /// 
@vertigra
vertigra / use_strincollection_in_setting.md
Last active February 3, 2017 05:59
Использование StringCollection в Settings

Использование StringCollection в Settings

В properties проекта на вкладке Setting в поле Name пишем имя переменной.
В поле Type System.Collections.Specialized.StringCollection.
Поле Scope - по необходимости (User/Application).

Важно
В поле value необходимо ввести и удалить значение c помощью кнопки ...

SaveStringCollection

@vertigra
vertigra / logrotate.md
Last active February 7, 2017 12:26
Ротация логов TeamCity с помощью logrotate Debian

Ротация логов TeamCity с помощью logrotate Debian

# joe /etc/logrotate.conf

Добавляем:

# system-specific logs may be configured here
@vertigra
vertigra / nunit3attr.md
Last active February 7, 2017 15:01
Атрибуты Nunit 3

Атрибуты Nunit 3

[SetUpFixture]

[OneTimeSetUp] - выполняется до запуска всех тестов. [OneTimeTearDown] - после выполнения всех тестов.
Подробнее тут

[SetUpFixture]
public class OnTestFixtureStart
{
@vertigra
vertigra / plainevent.md
Last active February 9, 2017 04:39
Обработка и вызов события без передачи параметров (C#)

Обработка и вызов события без передачи параметров (C#)

Дано:

  1. Форма MainForm, на которой расположены два текстбокса (TextBoxOne и TextBoxTwo) и кнопка buttonСallParentForm вызывающая ParentForm.
  2. Форма ParentForm, c кнопкой buttonCleanTextBox при нажатии на которую нужно очистить текстбоксы на первой форме.

##На ParentForm

@vertigra
vertigra / mock-object-conspect.md
Last active March 18, 2024 14:08
Введение в mock-объекты. Классификация

Введение в mock-объекты. Классификация.

Конспект статьи

Часто тестируемый метод может вызывать методы других классов, которые в данном случае тестировать не нужно. Unit-тест потому и называется модульным, что тестирует отдельные модули, а не их взаимодействие. Причем, чем меньше тестируемый модуль – тем лучше с точки зрения будущей поддержки тестов. Для тестирования взаимодействия используются интеграционные тесты, где вы уже тестируете скорее полные use cases, а не отдельную функциональность.

Однако наши классы очень часто используют другие классы в своей работе. Например, слой бизнес логики (Business Logic layer) часто работает с другими объектами бизнес логики или обращается к слою доступа к данным (Data Access layer). В трехслойной архитектуре веб-приложений это вообще постоянный процесс: Presentation layer обращается к Business Logic layer, тот, в свою очередь, к Data Access layer, а Data Access layer – к базе данных. Как же тестировать подобный