User
X.509 своми силами в .Net Core
Некоторое время назад я задался вопросом, можно ли наладить фабрику сертификатов, не прибегая к утилите openssl. Как подвести «под кнопку» весь процесс от генерации ключей до проверки подлинности. Забегая вперед, скажу, что пространство System.Security.Cryptography в этом плане является вполне самодостаточным. В статье я рассмотрю этапы создания сертификатов, экспорт в форматы pem и pkcs12, хранение сертификатов в файловой системе, а также проверку подлинности, используя только классы из System.Security.Cryptography.
Установка и правильная настройка Docker на Windows Subsystem Linux (WSL)
Предварительные требования
Прежде чем начать, убедитесь, что ваша система имеет примерно следующую конфигурацию:
- Windows 10 Version 1803 Build 1734 и выше
- Ubuntu for WSL 16.0.4 LTS или что-то в этом роде (ваша версия может немного отличаться)
Важно, чтобы версия и сборка Windows были не ниже того, что здесь указано. Дело в том, что, начиная с этих цифр, в ядро Windows WSL были внесены принципиальные изменения, которые позволяют использовать cgroups (control groups — в 2008 году добавлены в ядро Linux). А они необходимы Docker’у для управления ресурсами вашей системы в контейнерах.

Асинхронный код в Startup ASP.NET Core: 4 способа обхода GetAwaiter().GetResult()

10 интересных репозиториев на GitHub, полезных любому разработчику

Фото с ресурса Unsplash. Автор: Vishnu R Nair
GitHub — это лучшая платформа для обмена фреймворками, библиотеками и техническими решениями. Однако найти среди этого многообразия действительно полезные репозитории сложно. Поэтому я решил составить список из десяти интересных репозиториев, которые, на мой взгляд, пригодятся любому разработчику.
Каждый из них имеет множество звезд на GitHub, что только подтверждает их популярность, актуальность и полезность. Одни репозитории научат вас чему-то новому, благодаря другим вы сможете создать какие-то классные штуки. В целом, используя их, можно основательно прокачать навык разработки программного обеспечения.
Blazor Client Side Интернет Магазин: Часть 6 — Создание заказа и работа с компенсирующими действиями

Привет, Хабр! Продолжаю делать интернет магазин и изучать Blazor. В этой части расскажу о том как добавил в него возможность создания заказа, просмотра заказов и работу с последовательностью действий одно из которых может завершиться ошибкой. За подробностями добро пожаловать под кат.
Blazor Client Side Интернет Магазин: Часть 5 — Просмотр корзины и работа с Stateful

Привет, Хабр! Продолжаю делать интернет магазин на Blazor. В этой части расскажу о том как добавил в него возможность просмотра корзины товаров и организовал работу с состоянием. За подробностями добро пожаловать под кат.
(Не)очевидный OSINT в Twitter

Twitter — достаточно старый, но при этом все еще популярный у широкой аудитории сервис микроблогов, которым активно пользуются как рядовые пользователи, так и публичные личности. Лучший пример — официальные Twitter-аккаунты политиков, писателей, музыкантов, актеров. Конечно, зачастую такие учетные записи ведутся «специально обученными людьми», но если речь идет об OSINT в производственной сфере, то наблюдение за аккаунтами рядовых инженеров или менеджеров может дать великолепные результаты.
Немаловажно и то, что для эффективной работы с массивом данных из Twitter не обязательно обрабатывать каждый твит вручную, либо же бросаться в другую крайность — подключаться к API и самому писать софт. Хотя стандартный интерфейс сервиса не дает нам почти ничего в плане поисковых инструментов или инструментов фильтрации, при этом Twitter поддерживает огромное множество поисковых запросов и правил, о которых нигде толком в стандартном веб-интерфейсе или приложении не упоминается. Именно с использования этих запросов и стоит начать.
Вечный сервер — как избавиться от ежемесячных платежей за хостинг

— На вашем счету недостаточно средств для продления услуги. Вся ваша работа за 10 лет будет уничтожена в течение 2 рабочих дней.
Всем знакома ситуация, когда списания за хостинг происходят в неподходящий момент: на карте кончились деньги или она просрочена, письмо с уведомлением попало в спам, у вас в этот момент переезд и рожает кот. В итоге услуги блокируются, все ломается, и нужно срочно бежать оплачивать. А еще кризис, нужно пытаться не умереть от коронавируса и приходится выбирать между гречкой и оплатой серверов для личных проектов.
В статье мы расскажем как избавиться от регулярных платежей на содержание хостинга, доменных имен, SSL-сертификатов. И как сделать максимально автономный сервер, который переживет зомби-апокалипсис.
Blazor Client Side Интернет Магазин: Часть 3 — Витрина товаров

Привет, Хабр! Продолжаю делать интернет магазин на Blazor. В этой части расскажу о том как добавил в него витрину товаров и сделал свои компоненты. За подробностями добро пожаловать под кат.
Яндекс.Маршрутизация: как мы окунулись в логистику и решили поменять будущее

До Хабра я выступил с гостевой лекцией на факультете компьютерных наук Вышки и Яндекса — рассказал студентам ФКН ровно то же самое, о чем сейчас расскажу вам (в конце поста есть видео). А именно — как путешествия с водителями, развозящими заказы из интернет-магазинов, убедили нашу команду делать новый сервис про логистику. Надеюсь, у меня получится передать вам мои ощущения от этой сферы: я поездил в «Газели» и «Ларгусе», послушал жалобы сотрудников на придирчивую «тетку из Ногинска» и стал свидетелем того, как заказ из трех самокатов для трех детей превратился в драму. А в конце поговорим про технологии.
Maltego Часть 5. Твое лицо тебя сдало

Если не читали предыдущие статьи цикла о Maltego, то сейчас — самое время:
- Часть 1 — Что такое Maltego и зачем оно вообще нужно
- Часть 2 — Интерфейс и базовое устройство
- Часть 3 — Maltego и OSINT в Facebook
- Часть 4 — Maltego и OSINT в ВК, Instagram, LinkedIN и других соцсетях
Во время тестирования функционала по поиску информации в различных соцсетях с применением Maltego (см. Часть 4) я удивился тому, что всего лишь по ФИО и фото из аккаунта в Инстаграм Maltego с ходу нашла мой аккаунт в LinkedIN.
Вот тут-то, я полагаю, и сработал механизм Face Recognition от Social Links. Мимо такой темы нельзя просто так взять и пройти! Нужно убедиться, насколько функционал точен и можно ли его применять полноценно в OSINT, или мой случай — единичный, а выдача будет забита похожими людьми.
Большая подборка материалов для изучения Google Tag Manager
Материалы статьи провалидированы и обновлены автором 26.05.2023
Привет, Хабр!
Меня зовут Артём Сайгин, я веду телеграм-канал «Growth Lab», в котором делюсь опытом роста IT-продуктов.
Cделал для вас большую подборку материалов для самостоятельного изучения Google Tag Manager. В статье вы найдете всю необходимую информацию по работе GTM — от самых базовых вещей (что такое GTM, какие бывают типы триггеров) до работы с dataLayer и CSS-селекторами.
Добавляйте в закладки, чтобы не потерять.

Если я не добавил стоящий материал, свяжитесь со мной, добавлю.
Приступим!
Как работает конфигурация в .NET Core
Давайте отложим разговоры о DDD и рефлексии на время. Предлагаю поговорить о простом, об организации настроек приложения.
После того как мы с коллегами решили перейти на .NET Core, возник вопрос, как организовать файлы конфигурации, как выполнять трансформации и пр. в новой среде. Во многих примерах встречается следующий код, и многие его успешно используют.
public IConfiguration Configuration { get; set; }
public IHostingEnvironment Environment { get; set; }
public Startup(IConfiguration configuration, IHostingEnvironment environment)
{
Environment = environment;
Configuration = new ConfigurationBuilder()
.AddJsonFile("appsettings.json")
.AddJsonFile($"appsettings.{Environment.EnvironmentName}.json")
.Build();
}
Но давайте разберемся, как работает конфигурация, и в каких случаях использовать данный подход, а в каких довериться разработчикам .NET Core. Прошу под кат.
VS Code — сниппеты Puppeteer


Как работает Headless Chrome
Под катом компоненты и особенности работы Headless Chrome, интересные сценарии использования Headless Chrome. Вторая часть про Puppeteer — удобную Node.js-библиотеку для управления Headless-режимом в Google Chrome и Chromium.
О спикере: Виталий Слободин — бывший разработчик PhantomJS — тот, кто закрыл его и похоронил. Иногда помогает Константину Токареву ( annulen) в «воскрешенной» версии QtWebKit — том самом QtWebKit, где есть поддержка ES6, Flexbox и многие других современных стандартов.
Виталий любит исследовать браузеры, в свободное время копаться в WebKit, Chrome и прочее, прочее. Про браузеры сегодня и поговорим, а именно про безголовые браузеры и всю их семейку призраков.
9 советов для Windows Terminal от Скотта Хансельмана

Когда фильтр Блума не подходит

Я ещё с университета знал о фильтре Блума — вероятностной структуре данных, названной в честь Бёртона Блума. Но у меня не было возможности её использовать. В прошлом месяце такая возможность появилась — и эта структура буквально очаровала меня. Впрочем, вскоре я нашёл у неё некоторые недостатки. В этой статье — рассказ о моей краткой любовной связи с фильтром Блума.
Как я обошёл запрет на Messages API через документацию Вконтакте
С чего всё началось
Все мы знаем, что у ВК есть API, и я уверен, что большинство людей пыталось им воспользоваться в своих целях. Лично у меня полно проектов, связанных с ним: штук 5 мощных ботов, составление масштабных датасетов из постов групп и т.д. И не удивительно, что мои знакомые просили меня пару раз выкачать песни из вложений диалога, фотографии или же сохранить текст переписок с каким-нибудь человеком в отдельный файл.
Но однажды пришло «оно», и с того момента выполнение таких небольших просьб перестало быть тривиальной задачей:

И вот, пару дней назад, чтобы раз и навсегда избавиться от этой проблемы, я решил написать свою обёртку через http запросы, притворяясь обычным пользователем, дабы иметь такой же мощный инструмент, как официальный API для раздела messages.
Нормализация текста в задачах распознавания речи
При решении задач, связанных с распознаванием (Speech-To-Text) и генерацией (Text-To-Speech) речи важно, чтобы транскрипт соответствовал тому, что произнёс говорящий — то есть реально устной речи. Это означает, что прежде чем письменная речь станет нашим транскриптом, её нужно нормализовать.
Другими словами, текст нужно провести через несколько этапов:
- Замена числа прописью:
1984 год
-> тысяча девятьсот восемьдесят четвёртый год; - Расшифровка сокращений:
2 мин. ненависти
-> две минуты ненависти; - Транскрипция латиницы:
Orwell
->Оруэлл
и т.д.
В этой статье я коротко расскажу о том, как развивалась нормализация в датасете русской речи Open_STT, какие инструменты использовались и о нашем подходе к задаче.
Как вишенка на торте, мы решили выложить наш нормализатор на базе seq2seq в открытый доступ: ссылка на github. Он максимально прост в использовании и вызывается одним методом:
norm = Normalizer()
result = norm.norm_text('С 9 до 11 котики кушали whiskas')
>>> 'С девяти до одиннадцати котики кушали уискас'
Information
- Rating
- 6,531-st
- Registered
- Activity