Tuesday, 26 February 2019

Make Solution - те що вам треба!

Всім привіт.

Кажуть що Програмування - одна з найцінніших навичок для кар'єрного зростання, саморозвитку і створення чогось нового.

Ви вирішили стати розробником!

Незалежно від вибору мови або методу навчання, вам слід почати з самого початку. Треба починати з самих основ і бути наполегливим. Обраний напрямок в навчанні буде залежати більшою мірою від того, чому саме ви хочете навчитися програмувати і скільки часу ви готові приділяти цьому процесу. Зрозуміло ви можете записатися на професійні курси. Або якщо ви хочете створювати ігри і веб-сайти кращим вибором будуть інтерактивні курси. Безкоштовні онлайн тренінги і проекти можуть допомогти вам в написанні першої програми. Потрібно знайти потрібне джерело в залежності від мови програмування. Це гарна відправна точка, однак подальше навчання вам потрібно взяти на себе. Якщо ви застрягнете на якійсь проблемі або вам потрібно знайти відповідь на своє питання, не варто забувати про довідники та форуми.

А з якої мови почати?

Я думаю що перша мова має бути простою і популярною на ринку. Такою мовою є Python. Зазвичай його вибирають в якості першої мови програмування. Код програми на Python читабельний. Вам навіть не потрібно бути програмістом, щоб в загальних рисах зрозуміти, що відбувається в програмі. Через нескладний синтаксис Python вам знадобиться менше часу для написання програми, ніж, наприклад, на Java. Величезна база бібліотек, яка заощадить вам купу сил, нервів і часу. Python є високорівневою мовою. А значить, вам не потрібно особливо думати про осередки пам'яті і про те, що там розмістити. Python - це мова широкого призначення.

PHP - ще один дуже популярна мову. Вона навіть простіше, ніж Python. Дуже легко знайти собі ментора або рішення якої-небудь проблеми на форумі. Все тому, що в світі існує величезна кількість PHP-програмістів різного рівня. У PHP немає нормального імпорту, є безліч варіантів вирішення однієї і тієї ж задачі. Це іноді ускладнює навчання. І PHP заточений виключно під web.

Java може стати непоганим вибором для новачка. Ця мова популярніша, ніж Python, але і трохи складніше. Зате інструменти для розробки набагато краще опрацьовані. Варто лише порівняти Eclipse і IDLE. Після Java вам буде простіше перейти до роботи з низькорівневими мовами програмування.

Ruby - хороший вибір в якості другої мови, але не першої.

JavaScript - дуже проста мова, але нічому доброму він вас не навчить. А завдання першої мови програмування все-таки навчити вас чогось правильному, задати якусь логіку.

Thursday, 21 February 2019

Проверка автоконфигурации в Outlook 2016.

Всем привет.

Функция автоматического обнаружения (Autodiscover) появилась еще в Exchange Server 2007. Основанная задача Autodiscover – возможность поиска почтовым клиентом почтового сервера Exchange и автоматического подключения почтового ящика. От пользователя Outlook нужно только указать свое email  и пароль, все остальное Outlook при помощи Autodiscover выполнит сам.

При тестировании нового почтового клиента Outlook 2016 при внешнем подключении к Exchange было замечено, что автоматическая настройка клиента может занимать несколько минут. Проблема заключается в том, что Autodiscover отрабатывает слишком долго. Собственно про проблему и как ее решить кардинально сказано здесь.

Например у меня первый запуск Autodiscover никогда не получается если не дать клиенту Outlook 2016 доступ в интернет. Почему? Клиент Outlook 2016 выполняет проверку действительности сертификатов сервера Exchange. 

Проверить куда именно выполняет запросы Outlook 2016 при своем запуске можно с помощью утилиты Test E-mail AutoConfiguration. Она громко названа утилитой ибо эта возможность присутствует из коробки в самом клиенте Outlook 2016. Выбираете иконку запущенного клиента в корзине, зажимаете правый Control и наблюдаете всплывающее меню.



Тут нас интересуют две опции:
- Состояние подключения...
- Проверить автоконфигурацию...

Friday, 15 February 2019

Уметь сокращать расстояния.

Всем привет.

Решил продолжить свою серию почемучек. По моему неплохо вышло.

Повстречались как-то два друга, Визио и Ауди. Давненько они так не виделись потому решили зайти в ближайшее кафе, погутарить про жизнь. Заказали себе по кофе, и полилась беседа на тему на чей взгляд эта беспокойная жизнь воспринимается полнее.

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

"Я могу услышать что угодно и надолго запомнить это" - начал он. - "Это же так завораживает, закрываешь глаза и слышишь шелест листвы осеннего леса. Или шум прибоя летнего моря. Или ее голос пониженный до бархатного ..."

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

"-В каком случае?" - возмутился Ауди.

"-Когда ее голос пониженный до бархатного" - ответил Визио.

"-Много ты понимаешь в этой жизни..." - не унимался Ауди.

"-Достаточно для того чтобы утверждать что мой метод впитывания окружения лучше" - парировал Визио. "-Как ты слышишь? В каком формате, в каком диапазоне? А я всегда смотрю на мир в полную палитру цветов и на все 360 градусов. Прибавь к ее бархатному голосу ее глаза и ты получишь совершенно другую картину."

"-Вот видишь,... "к ее голосу"..." - вставил Ауди.

"-А ты сказал "Вот видишь..." - улыбнулся Визио. - "К тому ж я могу увидеть бархат ее голоса. Ты не знал?"

Случайно или нет возле их столика появился третий.

-Прошу прощения, я невольно услышал ваш разговор. Вы не будет против если я вас чуть... дополню. И присяду рядом. Разумеется ваши методы имеют право на жизнь, и многие в этом мире ими усердно пользуются, или только ими. Как кому повезло. Но это ничто в сравнении с моим методом.

-А вы, простите, кто?

-Меня зовут Кинест-етик.

-Кине... кто?

-Я чувствую жизнь.

-Хм, звучит неплохо. И что за метод вы продвигаете?

-Я же сказал - чувствую эту жизнь. На вкус, на запах, на ощущения. Жизнь штука богатая, аудио и видео-канала явно недостаточно. Вот вы, слышали запах леса? А вы, видели чем касается синее море ваших ног?

-Послушайте, мы не совсем понимаем про что вы. Это шутка? Вы, наверное, физик?

-Ну хорошо. Попробую иначе. Что вы заказали сегодня?

"-Я Американо со сливками, мой друг Флет-уайт. Какое это имеет значение?" - сказал Ауди.

"-Выбор осознанный, без меню?" - повторил Кинест.

"-Вполне" - подтвердил Визио.

Wednesday, 13 February 2019

Как заставить Agent-а zabbix выполнить внешнюю команду.

Всем привет.

Короткий практический кейс. Как заставить Agent-а zabbix выполнить внешнюю команду на хосте? И вернуть полученную информацию на сервер zabbix-а?

Делай раз. Изменить для Agent-а: 
- добавить в файл zabbix_agentd.win.conf:
UserParameter=Certificate, PowerShell.exe (Get-ChildItem -Path cert: -Recurse -ExpiringInDays 45).subject


Изменить значение параметра Timeout на максимальное, т.е. 
# Spend no more than Timeout seconds on processing.
Timeout=30

Делай два. Изменить для Server-а: 
- в файл zabbix_server.conf изменить значение параметра Timeout на максимальное
Timeout = 30

Делай три. При создании новой Item нужно использовать в качестве ключа слово "Certificate".

Делай четыре. При создании триггера его Expression может выглядеть как 
{192.168.1.15:Certificate.strlen()}>1
что значит что триггер сработает если в выводе будет хотя бы один два символа.

А запрос Get-ChildItem -Path cert: -Recurse -ExpiringInDays 100).subject
вернет построчно информацию про сертификаты которые истекают про сроку действия в течение 100 дней

Например вот такую:
CN=Oracle Corporation, O=Oracle Corporation, L=Redwood Shores, S=California, C=US

Успехов.


Friday, 8 February 2019

Выделение саундтрека из видео.

Всем привет.

По одному случаю нарисовалась необходимость выделить саундтрек из видеоролика. Сам видеоролик, как и положено в большой литературе, размещен в youtube.

Самый простой вариант это проиграть ролик полностью и одновременно выполнить захват аудио-потока в файл инструментом типа Total Recorder. Делаю так часто когда саундтрек нужен был для теста и качество звука особого значения не имеет. Чем чревато? В процессе захвата в аудио-поток могут внедриться посторонние звуки или шумы. Или youtube случайно станет на микро-паузу если мощности вашего CPU в какой то момент ему не хватит.

Поэтому я использовал путь чуть длиннее. Вначале извлекаем ролик себе на диск с помощью сервиса savefrom.net в формате МР4 360p. Это видео-формат низкого качества, но нас это мало волнует потому как нам нужен саундтрек. Далее берем плеер VLC Media Player и выбираем в нем опцию "Convert/Save". 


Подгружаем наш видеоролик и еще раз жмем на "Convert/Save". 

Wednesday, 6 February 2019

Проверка репликации в домене.

Всем привет.

Репликация в домене имеет значение. И как часто она происходит и какое время она выполняется тоже. 

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

Из командной строки делается так (NameOfDC - имя контроллера домена):

- запрос используемых зон DNS
dnscmd NameOfDC /enumzonez

- проверка зон DNS
dcdiag /s:NameOfDC /test:dns

- запрос по репликам суммарно
repadmin /replsum

- запрос по репликам с ошибками выполнения
repadmin /showrepl /errorsonly

- запрос по репликам подробно
repadmin /showrepl

И вот вам такая сводка ключей для repadmin. 


Friday, 1 February 2019

OpenServer и SSL.

Всем привет.

SSL сертификат имеет важное значение в поисковой выдачи при продвижении и уже очень многие сайты перешли на его использование. Сам Google все больше и больше любит сайты с  префиксом https. Тестируя новый проект на локальном хостинге поднятым под OpenServer наступила необходимость проверить его работу именно как https-версией.  Хотя OpenServer и поддерживает из коробки https его еще надо подружить с самой системой на тему SSL сертификатов. которые надо создать и установить. Поэтому малость поколдуем для этого.

Для начала редактируем файл generate.bat перезаписывая нашим содержимым (дополнительно, вместо mysite.ua в двух местах прописываем свой сайт)
OSPanel\modules\http\Ваша_Версия_PHP\conf\generate.bat

@echo off

set OPENSSL_CONF=%~dp0..\conf\openssl.cnf
..\bin\openssl req -x509 -sha256 -newkey rsa:2048 -nodes -days 5475 -keyout rootCA.key -out rootCA.crt -subj "/CN=mysite.ua/"
..\bin\openssl req -newkey rsa:2048 -nodes -days 5475 -keyout server.key -out server.csr -subj "/CN=mysite.ua/"
..\bin\openssl x509 -req -sha256 -days 5475 -in server.csr -extfile v3.txt -CA rootCA.crt -CAkey rootCA.key -CAcreateserial -out server.crt
..\bin\openssl dhparam -out dhparam.pem 2048

В той же папке OSPanel\modules\http\Ваша_Версия_PHP\conf\ создаем текстовый файл под названием v3.txt с содержимым (в dns прописываем название сайта или сайтов):

nsComment = "Open Server Panel Generated Certificate"
basicConstraints = CA:false
subjectKeyIdentifier = hash
authorityKeyIdentifier = keyid,issuer
keyUsage = nonRepudiation, digitalSignature, keyEncipherment
subjectAltName = @alt_names

[alt_names]
DNS.1 = mysite.ua
DNS.2 = mysupersite.ua

Запускаем generate.bat. Ждём пару минут до завершения его работы.

Версия на печать

Популярное

Медиа облако