Как стать автором
Обновить
20
0
Леонид @SLenik

TeamLead/.NET Developer

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

Документирование ASP .Net Core Web API с помощью OpenAPI/Swagger. Библиотека Swashbuckle

Время на прочтение12 мин
Количество просмотров19K

Привет, я backend-разработчик IT-компании SimbirSoft Дмитрий. В этой статье расскажу, зачем нужно документировать Web API, какие существуют подходы и покажу, как создать документацию для ASP.NET Core Web API с использованием OpenAPI/Swagger.

Материал будет полезен начинающим backend-разработчикам, которые знакомятся с Web API, а также специалистам уровня Middle, интересующимся актуальными стандартами для оформления документации.

Читать далее
Всего голосов 11: ↑10 и ↓1+9
Комментарии8

Видео с камеры наблюдения на сайте бесплатно и без смс

Время на прочтение4 мин
Количество просмотров26K
Появилась необходимость показывать видео с камеры на сайте в режиме онлайн. Виделось несколько вариантов (дополню вариантами из комментов, если будут):

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

Этот вариант рассмотрим ниже. Т.к. "flash умер" или "flash вот-вот умрет", вариант с размещением flash плейера на сайте не рассматривался. Тернистый путь поисков решений в интернетах не привел к готовому решению. Пришлось изобрести велосипед.

Подробнее изобретения под катом.
Читать дальше →
Всего голосов 17: ↑17 и ↓0+17
Комментарии29

Как повысить скорость декодирования видеопотока в FFmpeg

Уровень сложностиСредний
Время на прочтение7 мин
Количество просмотров24K



С приходом тяжеловесных видеоформатов, таких как 4K (Ultra HD), проблема эффективности декодирования видеопотока стала достаточно актуальной. На среднем компьютере приходится принимать специальные меры для того, чтобы можно было обработать такой видеопоток в реальном масштабе времени. В статье рассказывается о возможных способах увеличения скорости декодирования видеопотоков в решениях, основанных на FFmpeg, и приводятся результаты экспериментов по измерению скорости декодирования для 4K видеопотоков, закодированных в H264 и HEVC(H265).



Читать дальше →
Всего голосов 18: ↑17 и ↓1+16
Комментарии26

Access the power of hardware accelerated video codecs in your Windows applications via FFmpeg / libavcodec

Время на прочтение8 мин
Количество просмотров12K
Since 2011 all Intel GPUs (integrated and discrete Intel Graphics products) include Intel Quick Sync Video (QSV) — the dedicated hardware core for video encoding and decoding. Intel QSV is supported by all popular video processing applications across multiple OSes including FFmpeg. The tutorial focuses on Intel QSV based video encoding and decoding acceleration in Windows native (desktop) applications using FFmpeg/libavcodec for video processing. To illustrate concepts described, the open source 3D Streaming Toolkit is used.
Read more →
Всего голосов 3: ↑3 и ↓0+3
Комментарии0

Наш рецепт отказоустойчивого VPN-сервера на базе tinc, OpenVPN, Linux

Время на прочтение9 мин
Количество просмотров45K


Один из наших клиентов попросил разработать отказоустойчивое решение для организации защищенного доступа к его корпоративному сервису. Решение должно было:

  • обеспечивать отказоустойчивость и избыточность;
  • легко масштабироваться;
  • просто и быстро решать задачу добавления и блокировки пользователей VPN;
  • балансировать нагрузку между входными нодами;
  • одинаково хорошо работать для клиентов на GNU/Linux, Mac OS X и Windows;
  • поддерживать клиентов, которые находятся за NAT.

Готовых решений, удовлетворяющих всем поставленным условиям, не нашлось. Поэтому мы собрали его на базе популярных Open Source-продуктов, а теперь с удовольствием делимся полученным результатом в этой статье.
Читать дальше →
Всего голосов 27: ↑24 и ↓3+21
Комментарии26

Пошаговый план старта на Upwork #2

Время на прочтение4 мин
Количество просмотров61K
image

Предыдущая часть.

Надеюсь что вы уже зарегистрировались и заполнили профиль, если нет, то вам в прошлую статью. А мы начнем.

Перед регистрацией советую внимательно прочитать правила биржи, иначе как это было в моем случае — можно улететь в бан «без-воз-мез-дно».
Читать дальше →
Всего голосов 29: ↑24 и ↓5+19
Комментарии53

Простая работа со Steamworks

Время на прочтение9 мин
Количество просмотров42K


Unity, C#, Steamworks.NET и Facepunch.Steamworks


Введение


Как и большинству разработчиков игр, мне очень хочется выложить мою игру в Steam.

Как и большинству инди-разработчиков игр, мне не хватает доступа к ресурсам/знаниям, которые дали бы мне чётко понять, что же действительно значит «быть в Steam».

Сложно заполнить этот пробел в знаниях, потому что, несмотря на подробную документацию возможностей Steam, трудно понять, с чего начать в этом огромном хранилище документов и как связаны между собой его отдельные части. Кроме того, основные обсуждения платформы Steam проходят в закрытом форуме, доступном только для подтверждённых платформой через Steam Direct или реферальную ссылку Valve разработчиков. То есть для начинающих поиск ответов на простые вопросы может оказаться сложной задачей.

Поэтому я решил написать высокоуровневый обзор для людей, которые только начинают разбираться в том, как заставить Steam работать с их играми. В частности, я подробно рассмотрю Steamworks SDK, программную библиотеку Valve, предоставляющую доступ к таким аспектам, как мастерская (Workshop), таблицы лидеров (Leaderboards), достижения (Achievements) и так далее.

Steamworks хорошо задокументирована компанией Valve, но документация написана с точки зрения человека, использующего нативную библиотеку C++ и уже имеющего представление о том, как все эти функции пересекаются. Если это не ваш случай, то так даже лучше! Ниже представлено объяснение для другого человека, который пишет игру на языке более высокого уровня и просто хочет обеспечить простую интеграцию со Steamworks (а это возможно, я гарантирую!). Конкретнее, этот пост предназначен для людей, использующих в той или иной форме C#, а в идеале — работающих в игровом движке Unity.
Читать дальше →
Всего голосов 26: ↑26 и ↓0+26
Комментарии2

Быстрая регистрация особых точек изображений с помощью голосования биграфа

Время на прочтение2 мин
Количество просмотров7.6K
Детектирование и регистрация особенностей изображений имеет много приложений в робототехнике, видео компрессии и т.д. Быстрая и аккуратная регистрация — пока недостижимая мечта многих программистов и пользователей. Она или быстрая, или аккуратная…
Читать дальше →
Всего голосов 28: ↑28 и ↓0+28
Комментарии8

Борьба с хардкодами при помощи статических анализаторов С#

Время на прочтение5 мин
Количество просмотров10K
В этой статье я расскажу, как мы написали собственные анализаторы кода и чистим с их помощью нашу кодовую базу .net от наиболее острых / частых косяков. Главный посыл — сделать это довольно просто, не бойтесь писать свои анализаторы для борьбы с именно вашими багами. Вторичный посыл — попробуйте наши анализаторы и сообщите о результатах. Полное руководство я писать не буду, их довольно много в интернете, а вот небольшой обзор, что это как и с какими проблемами я столкнулся, надеюсь, окажется вам полезным.
Читать дальше →
Всего голосов 28: ↑28 и ↓0+28
Комментарии27

Простейший кейлоггер и безопасность в KeePass

Время на прочтение4 мин
Количество просмотров57K

Для проверки безопасности вводимых паролей через KeePass я решил написать простейший кейлоггер с дополнительным захватом данных из буфера обмена. Весь код занял несколько строчек на FreePascal.

Пароли, без дополнительных мер защиты и правильной настройки KeePass, как оказалось, достаточно уязвимы.
Читать дальше →
Всего голосов 39: ↑34 и ↓5+29
Комментарии60

Антивирус на батниках в прошлом ㅡ пришло время сниффера на PowerShell

Время на прочтение6 мин
Количество просмотров23K


Все мы в качестве сниффера обычно используем готовые программы. Однако, можно обойтись и встроенными средствами Windows с помощью PowerShell. Помимо изобретения велосипеда «потому что можем», скрипты пригодятся в сценариях автоматизированного анализа трафика.

Читать дальше →
Всего голосов 13: ↑12 и ↓1+11
Комментарии3

UltraVNC как замена TeamViewer

Время на прочтение8 мин
Количество просмотров140K


Предупреждение: все прилетевшие тапочки будут проданы, помидоры – съедены, яйца – пожарены, испорченные – выброшены. Те, кто думают, что мы маемся фигней – вы угадали, возьмите с полки пирожок. Автор не призывает бросать мешки грудью на амбразуры. Он вообще ни к чему не призывает – он же не политик и не гражданин с активной гражданской позицией. А вот желающих подискутировать – милости просим. Сегодня я буду рассказывать вам занимательную историю о замене Teamviewer на UltraVNC.
Читать дальше →
Всего голосов 43: ↑36 и ↓7+29
Комментарии87

Как я дома NAS строил

Время на прочтение3 мин
Количество просмотров81K
Давно меня посетила идея организовать маленькое сетевое хранилище дома. Для чего? В первую очередь для фото, и еще нескольких файлов которые не хотелось бы потерять. Ну раз уж пошла такая пляска то и организация человеческой медиатеки.

Смотрел я на модели именитых брендов, такие как дели Synology и QNAP, даже чуть не взял QNAP TS-469 Pro, но жаба таки сделала свое дело.

Начал я бороздить просторы интернета в поисках публикаций с вариантами постройки хранилищ своими ручками, это и интересно и мне тогда показалось что дешевле
Читать дальше →
Всего голосов 26: ↑20 и ↓6+14
Комментарии153

Процессоры Intel станут троичными

Время на прочтение3 мин
Количество просмотров70K


В течение долгих десятилетий рост производительности процессоров, понукаемый законом Мура, достигался за счет улучшения технологического процесса. Однако конец этой гонки уже не за горами: мы вплотную подошли к пределу, диктуемому законами физики. Каким образом мы будем «взбадривать» процессоры дальше? Стратеги Intel два года назад пришли к заключению, что одним из решений данной проблемы может быть переход от двоичной к троичной системе счисления. Ряд шагов в этом направлении уже сделан, и теперь можно с определенностью заявить: уже следующее поколение процессоров Intel Core, а за ними и Intel Xeon, будет троичным.
Читать дальше →
Всего голосов 131: ↑115 и ↓16+99
Комментарии140

Машина времени в git

Время на прочтение5 мин
Количество просмотров192K
В последнее время мои коллеги начинают знакомство с git'ом. И один из интересующих их вопросов — как откатиться до определённой ревизии. В интернете можно найти набор команд, но хочется, чтобы было понимание каждой из них. Баловство с комадами git'а без понимания может привести к потере истории разработки.

В этой статье я хочу рассказать о командах git checkout и git reset с ключами --soft и --hard.
Читать дальше →
Всего голосов 127: ↑122 и ↓5+117
Комментарии39

Как «пробить» человека в Интернет: используем операторы Google и логику

Время на прочтение9 мин
Количество просмотров928K

В очередной статье нашего цикла публикаций, посвященного интернет-разведке, рассмотрим, как операторы продвинутого поиска Google (advanced search operators) позволяют быстро находить необходимую информацию о конкретном человеке.


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


Читать дальше →
Всего голосов 122: ↑105 и ↓17+88
Комментарии108

Использование Tarantool в .NET-проекте на Windows

Время на прочтение21 мин
Количество просмотров23K

В последнее время на Хабре появляется достаточно много статей про Tarantool — базу данных и сервер приложений, который используется в Mail.Ru Group, Avito, Yota на разных высоконагруженных проектах. И вот, когда в маленьком стартапе, который я иногда консультирую, возникла необходимость разделения прекрасного, но, к сожалению, монолитного приложения на микросервисы, я подумал: а чем мы хуже других компаний? — и решил посмотреть в сторону Tarantool. Однако, в отличие от большинства компаний, где используется Tarantool, в нашем случае разработка проекта ведётся в Visual Studio на Windows. Предполагается, что даже с переходом на микросервисную архитектуру большинство микросервисов будет написано на языке C#. А Tarantool… Стоит зайти на официальный сайт — и сразу понимаешь: Tarantool даже установить на Windows проблематично, так как на эту операционную систему он не портирован. Как я боролся с такими сложностями, для какого именно микросервиса выбрал Tarantool и как вы можете использовать Tarantool в своих .NET-проектах, я расскажу в данной статье. А пока спойлер — практически все трудности преодолимы, и мой опыт можно без сомнений назвать положительным. Например, на то, чтобы скачать и запустить Tarantool, а потом сделать к нему запрос из кода на языке C#, у меня ушло менее десяти минут. И я покажу вам, как это сделать!


image


Данная статья представляет собой туториал, описывающий работу с Tarantool как таковую. Здесь нет описания проекта, построенного на Tarantool, или сравнения Tarantool с другими продуктами (статей на эту тему и так уже написано достаточно много). Материал родился как попытка ответить на вопрос: а что бы я хотел прочитать, когда только начинал работать с Tarantool. Но вначале немного расскажу, для чего мы, собственно, Tarantool применяем в реальной жизни.

Читать дальше →
Всего голосов 70: ↑69 и ↓1+68
Комментарии31

Информация

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