Обновить
4
0

Пользователь

Отправить сообщение

Автоматическая публикация npm пакета из gitlab ci/cd

Время на прочтение4 мин
Охват и читатели16K

Всем привет! Сегодня я расскажу как мы реализовали автоматическую публикацию npm пакета в cicd gitlab, с помощью каких инструментов генерируем CHANGELOG файл и обновляем версию package.json. А так же как публикуем изменения в git репозитории.

Я постараюсь дать вам простую инструкцию, расскажу с какими сложностями мы столкнулись и как их решили.

Читать далее

VMware 7.0.3: загрузка с USB и 1-node vSAN на ноутбуке

Время на прочтение8 мин
Охват и читатели7.3K

Понадобилось мне на домашней лабе с ESX погонять vSAN. Однако прежде, чем все переделывать на Intel NUC 9, решил отработать будущую конфигурацию и пробежаться по основным шагам на ноуте, предназначенном для кратких частых экспериментов.

Поскольку для vSAN нужно диск для capacity, диск для cache tier, да еще и загрузиться с чего-то надо, даже для NUC с двумя дисками требуется еще и третий носитель, часто SD-карта. Вот эту загрузку с мелкого носителя я и хотел отработать.

Конечно, у ноута только 1 диск, значит два устройства по USB подключить придется, ну да ладно. Проблема вылезла, откуда не ждал. Несмотря на то, что гугл выдавал кучу рекомендаций, как установить ESX на флешку/карту, в том числе непосредственно с сайта VMware, флешка категорически отсутствовала в опциях установки.

Оказалось, что совсем недавно такая возможность стала deprecated, и даже на весьма популярном сайте появился пост от фаната vSAN: Considerations for future vSphere Homelabs due to upcoming removal of SD card/USB support for ESXi.

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

Да ладно?

Порядок операторов в RxJs

Время на прочтение9 мин
Охват и читатели18K

TL;DR: Порядок важен. Операторы довольно атомарны и зачастую очень просты, но это не мешает им объединяться в сложные последовательности, в которых легко допустить ошибку. Давайте разберемся.

Читать далее

Загрузочный диск Windows PE своими руками

Время на прочтение36 мин
Охват и читатели194K
Сисадмину или мастеру сервисного центра, да и просто в хозяйстве на всякий случай помогает в работе загрузочная флешка с набором полезных программ, и в интернете можно найти полно готовых решений с «кучей» софта на все случаи в жизни. Но каждый, кто пользовался чужими готовыми вариантами LiveCD, рано или поздно задумывался о том, что по факту используется лишь малая часть приложений. Весь же остальной ненужный груз софта, который порой может составлять более 98% всего набора LiveCD, лишь мешает работать. Почему? Потому что LiveCD загружается прямиком в оперативную память, и чем больше объем LiveCD, тем больше ожидания загрузки, а если ещё и попался древний компьютер, то LiveCD может и вовсе не загрузится от нехватки памяти. И что же делать? Сделать свой собственный LiveCD! В этой статье я расскажу то, чего вы не найдете даже в гугле.
Читать дальше →

Удаленный доступ к IP камерам, теперь на Python

Время на прочтение19 мин
Охват и читатели68K

Удивительно, что в 2021-м все еще можно обсуждать такую избитую тему. Однако, мне пришлось пройти довольно длинный путь от покупки охранных камер до готового решения, покрывающего мои, довольно нехитрые, задачи. Под катом вы найдете скрипт, который показался мне достаточно удачным, чтобы опубликовать его на Хабре, и некоторые пояснения к нему. Надеюсь, кому-то поможет.

Читать далее

Обзор Asterisk REST Interface (ARI)

Время на прочтение7 мин
Охват и читатели73K

В начале времен единственным "поставщиком" функционала Asterisk были модули, многие из которых расширяли арсенал приложений и функций плана набора.


Тогда, в начале времен, все эти команды и функции далеко опережали свое время, и благодаря им Asterisk "уделывал" по функционалу многие коммерческие продукты.


Если возникала какая-нибудь необходимость в выходе за пределы имеющихся приложений и функций, можно было написать свой собственный модуль на языке С, и это был единственный способ расширения функционала и выхода из имеющейся "клетки", какой бы просторной она ни была.


Но разработку модуля Астериск на языке С сложно назвать тривиальной задачей. Это весьма тернистый путь, к тому же весьма рискованный, ведь критическая ошибка в своем модуле запросто приводила к полному падению Asterisk в core.


Нужны были более "мягкие" и простые способы для расширения функций и интеграции с другими системами.


Так появились интерфейсы AGI и AMI.


Читать дальше →

Что такое AddScoped и его отличие от AddTransient в .NET и ASP.NET

Время на прочтение6 мин
Охват и читатели12K

Всего есть 3 типа жизни (ServiceLifetime) экземпляра:

Singleton - одиночка, создается один раз и используется во время использования всего процесса, метод .AddSingleton<T>().

Transient - временный, создается каждый раз при запросе его из провайдера, метод .AddTransient<T>().

Scoped - ограниченный, новый экземпляр создается в определённой области видимости (scope) в интерфейсе IServiceScope. Добавляется методом .AddScoped<T>().

Ссылка на картинку: https://stackoverflow.com/a/64776798

Читать далее

Установка расширений в Хром без интернета

Время на прочтение3 мин
Охват и читатели20K

Ситуация: Есть некий заказчик, у которого в закрытой сети работают сотрудники. Внутри, помимо прочего, есть веб-сайты с приложениями, для доступа к которым используется обычный Google Chrome. Внезапно уже им поставили задачу - перейти на ГОСТ. Везде. Пришлось им ставить Крипто-Про, разворачивать ГОСТовскую криптографию, и ставить известный в узких кругах софт CAdEs-plugin (или как там правильно в тамошнем капсе) для работы с ЭП. Софт состоит из двух частей - локальной программы и браузерного плагина, и с установкой последнего возникли сложности. Я думаю, что подобная ситуация может возникнуть не только с конкретно этим расширением, поэтому решил написать статью со сводкой необходимой информации в одном месте.

Читать далее

Туннели и VPN, устойчивые к DPI

Время на прочтение10 мин
Охват и читатели184K
Мы живем в интересное время. Я бы даже сказал, в удивительное. По одну сторону мы видим неких лиц, которые очень хотят знать, о чем между собой разговаривают другие люди, и очень хотят указывать им, что можно читать, а что нельзя. С другой стороны граждане, которые хотят отстоять свои права тайны личной переписки и свободного получения информации, и не хотят, чтобы факты этой самой переписки и получения этой самой информации были использованы против них. Бонусом страдает огромное количество сторонних сайтов, сервисов и бизнесов, которых задевает «ковровыми блокировками».

Но нет, эта статья не об обществе, а о технологиях.

image
Читать дальше →

Процедурная генерация бумажных снежинок

Время на прочтение16 мин
Охват и читатели25K

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

Читать далее

Страх и ненависть в RouterOS: что такое сетевое соединение в ядре Linux (часть 3 — NAT и сетевые соединения)

Время на прочтение6 мин
Охват и читатели17K

В статье рассмотрено понятие «соединение» для TCP и UDP протоколов в ядре операционной системы Linux на примере работы оборудования MikroTik. Дополнительно рассматриваются особенности работы технологии NAT в указанном контексте. Материалы носят в основном теоретический характер и предназначены для людей, тонко настраивающих Firewall, Qos и маршрутизацию, где им придется непосредственно работать с рассматриваемыми connections.

Мы уже рассмотрели теоретическую части , где я подробно описал сущность сетевого соединения глазами ядра маршрутизатора. Далее была практическая части, где я закрепил информацию, в результате рассмотрения работы прикладного протокола DNS через подсистемы RouterOS.

В этой части, цикла статей, речь пойдет о диаграмме потока пакетов, при работе с которой важно понимать сущность рассматриваемого сетевого соединения, а также о не документированной в явном виде особенности работы NAT.

Цикл статей не предназначен для новичков и может их только запутать. Полагаю, что читатель хорошо знаком с предметом разговора.
Читать дальше →

Huawei USG 6300. Базовая настройка файервола из коробки

Время на прочтение14 мин
Охват и читатели45K
Идея написать эту статью возникла после того, как я попытался найти хоть какую-то информацию по настройке файерволов от Huawei в интернете. В русскоязычном сегменте я не нашел ничего, в англоязычном, в основном, устаревшие данные по предыдущим моделям и отсылки к документации (которая, к слову, есть на сайте производителя в открытом доступе и достаточно подробная).  

При наличии опыта работы с файерволами других производителей документации должно быть достаточно, чтобы запустить и работать с Huawei USG, но по опыту я знаю, что к мануалам обращаются, когда все варианты уже испробованы. Поэтому одна из целей этой статьи – сэкономить время при первичной пусконаладке этого относительно нового оборудования. Конечно, в одной статье не удастся охватить весь функционал, тем не менее, основные начальные кейсы по настройке тут будут рассмотрены. Инженеры могут использовать статью как шпаргалку по инсталляции сетевого оборудования, так как те базовые настройки, которые будут тут описаны, как правило, придется делать во всех инсталляциях.


Источник
Читать дальше →

Ищем дедлок в .NET 5 с помощью анализа дампа

Время на прочтение8 мин
Охват и читатели9.5K

В жизни каждого инженера может произойти ситуация, когда процесс его приложения «завис» и не выполняет ту работу, которую должен. Причины могут быть разные и чтобы узнать их, нужно заглянуть во внутренности процесса и расследовать, что же там происходит. Для этого, можно снять дамп и проанализировать его. Каждый такой случай уникальный, но подходы к анализу дампов — общие. В этой статье я покажу, как расследовал одну из подобных ситуаций и пришёл к неожиданным выводам.

К расследованию

Захват контроллера домена с помощью атаки PetitPotam

Время на прочтение5 мин
Охват и читатели36K

В этой статье я расскажу про атаку PetitPotam, которая позволяет при определенных условиях захватить контроллер домена всего за несколько действий. Атака основана на том, что можно заставить контроллер домена аутентифицироваться на вашем хосте, получить его хэш и ретранслировать его в службу Active Directory Certificate Services для повышения привилегий. Статья предназначена для пентестеров и тех, кто хочет узнать об актуальных атаках на Active Directory.

Читать далее

Популярные расширения для PostgreSQL: как установить и для чего использовать

Время на прочтение5 мин
Охват и читатели18K

Облачные базы данных Selectel поддерживают 40 расширений для PostgreSQL. Некоторые добавляют небольшие радости оптимизации баз данных, другие — заменяют отдельные модули разработки на стороне приложения. На данный момент расширениями пользуются 26% пользователей DBaaS. Мы узнали, какие экстеншены наиболее популярны у клиентов и где они их применяют.

Если вы опытный DBA, вы точно нужны в комментариях — расскажите, какие расширения используете и как они решают ваши задачи.
Читать дальше →

Компиляция Python

Время на прочтение7 мин
Охват и читатели120K

Предположим, вы разработали приложение или библиотеку на Python и уже готовитесь передать его / её  заказчику. И в этот момент появляются разные вопросы.

Во-первых, к вам прибегает озадаченный проджект-менеджер и говорит: «Мы решили не отдавать исходный код, ведь это наша интеллектуальная собственность. Придумайте что-нибудь, чтобы заказчик был доволен, а мы оставили у себя исходники».

Во-вторых, возникает вопрос окружения - хочется быть уверенным, что заказчик справится с установкой правильной версии Python и всех вспомогательных библиотек, но это не всегда простая задача. Было бы удобно упаковать приложение в автономный исполняемый файл.

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

И вот тут настало время скомпилировать Python-код.

Меня зовут Руслан, я старший разработчик компании «Цифровое проектирование». Сегодня я расскажу, как выбрать тот самый компилятор из множества доступных.

Читать далее

Запросы в PostgreSQL: 7. Сортировка и слияние

Время на прочтение21 мин
Охват и читатели20K

В предыдущих статьях я писал про этапы выполнения запросов, про статистику, про два основных вида доступа к данным — последовательное сканирование и индексное сканирование, — и успел рассказать о двух способах соединения — вложенном цикле и соединении хешированием.

В заключительной статье этой серии я расскажу про алгоритм слияния и про сортировку, и сравню все три алгоритма соединения между собой.

Читать далее

Разбираемся с FreePBX и интегрируем его с Битрикс24 и не только

Время на прочтение13 мин
Охват и читатели30K

Битрикс24 - это огромный комбайн, который совмещает и CRM, и документооборот, и учет и еще много разных вещей, которые очень нравятся менеджерам и не очень нравятся IT персоналу. Портал используют очень много небольших и средних компаний, в том числе небольшие клиники, производственники и даже салоны красоты. Основной функцией, которую "любят" менеджеры является интеграция телефонии и CRM, когда любой звонок сразу фиксируется в CRM, создаются карточки клиента, при входящем отображается информация о клиенте и сразу видно кто он такой, что ему можно продать и сколько он должен. Но телефония от Битрикс24 и ее интеграция с CRM стоит денег, иногда немалых. В статье я расскажу опыт интеграции с открытыми инструментами и популярной IP АТС FreePBX, а также рассмотрю логику работы различных частей

Я работаю на аутсорсе в компании, которая занимается продажей и настройкой, интеграцией IP телефонии. Когда меня спросили, можем ли мы вон той вот и вот этой вот компании предложить что то для интеграции Битрикс24 с АТС, которые стоят у клиентов, а также с виртуальными АТС на различных VDS компании, я пошел в Гугл. И он мне конечно же выдал ссылку на статью в хабр, где есть и описание, и github, и вроде все работает. Но при попытке попользоваться этим решением вылезло, что Битрикс24 уже не тот, что ранее, и надо многое переделывать. Кроме того, FreePBX это вам не голый астериск, тут думать надо как совместить удобство использования и хардкорный диалплан в конфиг-файлах.

Читать далее

Переписка со спамерами: избранное

Время на прочтение4 мин
Охват и читатели70K

Конец XIV века, неизвестный автор: Комиссия ФАС изучает отмазки спамера.

Я радуюсь, получая спам – ведь у меня появляется новая возможность пополнить бюджет любимой страны (откуда берутся деньги на пенсии старикам, больницы, школы, домики для уточек и вот это вот все). Каждое полученное от спамеров сообщение я аккуратно пересылаю в ФАС, давая ей возможность пополнить бюджет на лишние 100-500 тысяч рублей, а потом наслаждаюсь материалами «расследований», проливающих свет на грязную подноготную «солидного бизнеса» и его подельников. Вранье, подтасовка документов и далее со всеми остановками – наслаждайтесь!
Читать дальше →

Самопаркующаяся тачка в 500 строк кода

Время на прочтение25 мин
Охват и читатели13K

В этой статье мы "научим" автомобиль выполнять самостоятельную парковку с помощью генетического алгоритма.

В 1-м поколении автомобили будут иметь случайный геном и будут вести себя хаотично.

К ≈40-му поколению автомобили понемногу начнут учиться парковке и будут все ближе и ближе подбираться к парковочному месту

Чтобы увидеть эволюционный процесс прямо в браузере вы можете запустить ? симулятор эволюции, .

Генетический алгоритм для этого проекта будем реализовывать на TypeScript. В этой статье будет показан полный исходный код алгоритма, но вы также можете найти финальные примеры кода в репозитории симулятора.

Читать далее

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность