Search
Write a publication
Pull to refresh
4
0.1

.NET Software Engineer

Send message

Moq: пара фич для упрощения тестов, о которых знают не все

Level of difficultyMedium
Reading time9 min
Views4K

Пишете unit-тесты в .NET? Значит, скорее всего, пользуетесь Moq. На первый взгляд, это простой и легковесный фреймворк, про который все всё знают.

Но знаете ли вы, как сделать ваши тесты проще? В этой статье я расскажу о нескольких фичах Moq, которые помогут сделать ваши тесты чище, лаконичнее и удобнее для сопровождения. Погнали!

Читать далее

Харденинг strongSwan на всякий постквантовый

Level of difficultyHard
Reading time8 min
Views2.3K

strongSwan — опенсорсная имплементация IPsec, фреймворка VPN. Несмотря на полувековой стаж, проект продолжает развиваться: последняя на сегодня версия приложения вышла в декабре. У него подробная документация, есть блог с CVE и публичная база тестов. По полезной пропускной способности, задержке и утилизации CPU strongSwan превосходит Wireguard, но остаётся в тени — из-за сложности и малой пригодности для обхода блокировок. Зато перед теми, кто не ленится, он открывает широкий простор для экспериментов.

Читать далее

Сколько времени нужно, чтобы выучить английский?

Level of difficultyEasy
Reading time4 min
Views20K

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

Читать далее

RE: «Закат удалёнки: почему сотрудников возвращают в офис»

Reading time5 min
Views50K

В период пандемии я присоединился к петербургской компании, работая из облцентра на Урале. Удалённый режим оказался комфортным, но после снятия ограничений руководство вернуло команду в офис. Был впечатляющий интерьер в центре Петербурга, классного начальника, хороший коллектив и приличный., Но я ощущал моя работа не изменилась, а вот свободного времени стало меньше, а усталости — больше. После двух лет в офисе, когда надежды на удаленька исчезли, я принял решение сменить работодателя и перешел в компанию где удалёнка есть

Аргументы статьи меня не убедили‑ ни плюсы удаленного формата опущены, а вот минусы — раздуты. И умолчала автор, что и в офисе личный эмоциональный контакт скорее редкость — с каким процентов из экс коллег вы продолжили дружить после увольнения. И крупные компании (на которых и ссылались) зачастую и до удаленки работали в территориально распределённом режиме и основным каналом взаимодействия стали не личные встречи, а электронные коммуникации (от e‑mail и jira до ВКС).

Читать далее

Объясняем простым языком, что такое трансформеры

Level of difficultyEasy
Reading time12 min
Views57K

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

Один из важнейших инструментов машинного обучения — трансформеры. Популярность трансформеров взлетела до небес в связи с появлением больших языковых моделей вроде ChatGPT, GPT-4 и LLama. Эти модели созданы на основе трансформерной архитектуры и демонстрируют отличную производительность в понимании и синтезе естественных языков. 

Хотя в сети уже есть хорошие статьи, в которых разобран принцип действия трансформеров, большинство материалов изобилует запутанными терминами. Мы подготовили перевод статьи, в которой без кода и сложной математики объясняют современную трансформерную архитектуру.

Читать далее

Probing GPT model

Level of difficultyMedium
Reading time9 min
Views3K

Привет, друзья!

Этот туториал посвящён зондированию (probing) — простому, но мощному методу для изучения внутренней работы LLM (больших языковых моделей). С его помощью можно получить приближенные знания о паттернах, которые выучивает модель и о том, как эти знания распространяются по слоям.

Метод простой, но довольно интересный. К туториалу прилагается ноутбук с кодом. Всех заинтересовавшихся — прошу к чтению!

Читать далее

Книги по базам данных, которые стоит прочитать в 2025 году

Reading time5 min
Views35K

Всем привет! Это Миша Степнов, руководитель центра R&D Big Data в МТС Диджитал.

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

Чтобы модели не «предвзято учились» и не «выдавали мусор», нужно обеспечивать непрерывные R&D-процессы по управлению данными: от сбора и очистки до хранения и быстрых итераций над ними. И тут возникает важное понятие AI Ready Data: все, что касается доступности данных, их формата и актуальности, должно быть продумано заранее и поддерживаться на высоком уровне качества.

Умение грамотно управлять данными — это уже не «хороший тон», а конкурентное преимущество.  Но как прокачивать навыки работы с ними? Один из способов — читать правильную литературу. Так что в этом посте поделюсь списком книг о базовых принципах реляционных баз данных и SQL, продвинутых инструментах и языках программирования и многом другом. Забирайте в закладки, а при желании дополняйте подборку в комментариях.

Читать далее

Отключение http-метрик в ASP.NET Core

Level of difficultyMedium
Reading time3 min
Views5.6K

Выход ASP.NET Core 9 порадовал возможностью выборочно отключать http-метрики. В статье сценарии использования с примерами и детальный разбор того, как всё устроено под капотом.

Хочу разобраться

Работа с колонками типа JSON в PostgreSQL (на примере использования отдельных функций)

Level of difficultyEasy
Reading time27 min
Views12K

Содержание

Вступление (и некоторые общие сведения)

Немного теории

Используемые функции PostgreSQL

Описание используемого примера данных

Предварительные шаги

Запросы

Краткий итог

«Задачи»

Читать далее

Нужен ли нам сейчас кеш-слой перед СУБД

Level of difficultyMedium
Reading time13 min
Views27K

Уже лет 20 существует миф (или не миф), что современный Highload-проект невозможен без кэшей. Они всегда нас выручали, когда не справлялись базы данных. Но с тех пор, как появились первые кэши, key-value баз данных и другие технологии, многое изменилось и традиционные СУБД значительно эволюционировали. И так ли теперь нужен кэш?
Мы протестировали самые известные кэш-сервисы и СУБД и попробовали выжать из них миллион запросов в секунду в разных условиях. Делимся с вами результатами в этой статье.
Привет, Хабр! Я Алексей Рыбак, предприниматель и основатель R&D-лаборатории DevHands, автор телеграм-канала про System Design и Highload. В прошлом — СТО и руководитель московского офиса Badoo. Работал во втором по размеру такси-сервисе «Везёт», который мы после продажи интегрировали с Яндекс.Такси. Сейчас наша компания разрабатывает образовательные программы по Highload и перформансу.

Читать далее

Делегаты в C# подробнее

Level of difficultyMedium
Reading time7 min
Views4.9K

Как они работают под капотом? Что именно происходит при "замыканиях", грамотное обращение со структурами при работе с делегатами.

На что нужно обращать внимание.

Читать далее

Еще раз о забытом. Roslyn Source Generators

Level of difficultyEasy
Reading time11 min
Views3K

Каждый разработчик часто сталкивается с написанием большого объема рутинного и повторяющегося кода, который имеет один и тот же смысл. Начиная с C# версии 9 появилась возможность генерации кода, которая интегрирована напрямую с компилятором. Такой подход позволяет избавиться от множества строк шаблонного кода. О нём сегодня и поговорим.

Читать далее

Как исправлять ошибки в Git, не оставляя улик

Reading time3 min
Views18K

Как же иногда хочется закинуть коммиты «Remove debug log», «fix» или «fix fix fix». Такие коммиты как грязные носки под кроватью: их не видно, пока не придёт ревьюер с пристальным взглядом или, что еще хуже, потенциальный работодатель, решивший посмотреть на ваш профиль github.

К счастью, Git предлагает два супер-инструмента для того, чтобы история коммитов выглядела так, будто ты всегда знаешь, что делаешь: git commit --fixup и git rebase --autosquash. И сегодня мы разберем на практике как это применять.

Читать далее

Все знают, где ты находишься

Level of difficultyEasy
Reading time10 min
Views64K

Недавно я прочитал о масштабной утечке геолокационных данных из Gravy Analytics, благодаря которой стало известно, что более двух тысяч приложений из AppStore и Google Play тайно собирали геолокационные данные пользователей без их согласия. И часто об этом не знали даже разработчики.

Я изучил список (ссылка) и обнаружил как минимум три приложения, установленные на моём iPhone. Проверьте сами!

У меня возникла идея: попробовать отследить себя снаружи, то есть купить свои геолокационные данные, утёкшие через какое-нибудь приложение.
Читать дальше →

Targeted Timeroasting: Кража пользовательских хешей с помощью NTP

Level of difficultyMedium
Reading time6 min
Views2.5K

В компании Avanpost мы занимаемся разработкой собственной службы каталогов Avanpost DS. Она плотно интегрируется с Microsoft Active Directory для обеспечения долговременного сосуществования инфраструктур: поддерживает различные виды доверительных отношений, включая двусторонние, специфичные расширения Kerberos и еще много закрытых функций, имплементация которых требует глубокого понимания устройства доменных служб MS. Для их реализации нам пришлось изучить множество документации, а кое-где и прибегнуть к реверс-инжинирингу. Соответственно, сейчас мы следим за изменениями, которые вносит MS в свой продукт и, в особенности, за изменениями в области безопасности, ведь чаще всего именно они приводят к нарушению работоспособности интеграций. 

Наткнувшись на статью Giulio Pierantoni на Medium, мы не смогли пройти мимо и решили поделиться ей с русскоязычным сообществом.

Читать далее

Хабр мёртв

Level of difficultyEasy
Reading time10 min
Views20K

Я сначала хотел написать это в комментарии к одной отвратительно написанной статье в корпоративном блоге с рейтингом +50, а потом понял что у меня получилась целая простыня текста. Конечно, хабр не жалобная книга, но это крик души о проблемах хабра и у меня есть надежда (пусть и слабая), что я хоть как-то смогу донести своё видение до администрации хабра и до пользователей.

Ниже я затрону три темы: низкое качество корпоративных статей и новостей, накрутки рейтинга этим самым статьям и принципиальное отличие качественных технический статей от того что мы видим в ленте. Всё вместе это складывается в очень мрачную картину.

Ищем дно и не находим

HAI LLM: Как DeepSeek снизил стоимость обучения и генерации в разы без потери качества?

Level of difficultyMedium
Reading time6 min
Views8.1K

Компания HighFlyer внедрила в свою LLM такие архитектурные фишки как Multi-Head Latent Attention, Mixture of Experts (MoE) with Auxiliary-Loss-Free Load Balancing и Multi-Token Predict. Однако все эти новшества уже были ранее представлены в других LLM: GPT-4, Llama, Mistrall и других.

Полистав WhitePaper HighFlyer, можно наткнуться на описание собственного непубличного тренировочного фреймворка HAI LLM, эксплуатирующего действительно новые фишки, которые позволяют значительно сэкономить на обучении модели. Именно в фреймворке и кроется, как мне кажется, одна из основных инноваций DeepSeek, о чем мне бы и хотелось поговорить далее.

Приятного прочтения)

Читать далее

API Key Authentication в ASP.NET Core Web Api

Level of difficultyMedium
Reading time6 min
Views6.1K

Недавно я столкнулся с задачей реализации аутентификации с использованием API Key в ASP.NET Core Web API. Хотя многие авторы рекомендуют использовать IAuthorizationFilter для этой цели, я обнаружил, что это не самый подходящий вариант. У меня есть более удачный подход, которым я хотел бы поделиться, включая примеры. Реализация была протестирована как в .NET 8, так и в .NET 9.

Читать далее

16-, 8- и 4-битные форматы чисел с плавающей запятой

Level of difficultyMedium
Reading time15 min
Views33K

Уже лет 50, со времён выхода первого издания «Языка программирования Си» Кернигана и Ритчи, известно, что «числа с плавающей запятой» одинарной точности имеют размер 32 бита, а числа двойной точности — 64 бита. Существуют ещё и 80-битные числа расширенной точности типа «long double». Эти типы данных покрывали почти все нужды обработки вещественных чисел. Но в последние несколько лет, с наступлением эпохи больших нейросетевых моделей, у разработчиков появилась потребность в типах данных, которые не «больше», а «меньше» существующих, потребность в том, чтобы как можно сильнее «сжать» типы данных, представляющие числа с плавающей запятой.

Я, честно говоря, был удивлён, когда узнал о существовании 4-битного формата для представления чисел с плавающей запятой. Да как такое вообще возможно? Лучший способ узнать об этом — самостоятельно поработать с такими числами. Сейчас мы исследуем самые популярные форматы чисел с плавающей запятой, создадим с использованием некоторых из них простую нейронную сеть и понаблюдаем за тем, как она работает.

Читать далее

FP32, FP16, BF16 и FP8 — разбираемся в основных типах чисел с плавающей запятой

Level of difficultyEasy
Reading time6 min
Views14K

Привет, Хабр! Сегодня давайте поговорим о том, как современные вычисления на GPU стали более гибкими и эффективными благодаря различным форматам чисел с плавающей запятой (FP64, FP32, FP16, BFLOAT16 и FP8). Эти форматы не просто числа — за каждым из них стоит конкретная область применения. В разных ситуациях мы сталкиваемся с задачами, где важны либо скорость, либо точность, и правильно выбранный тип floating point помогает оптимизировать ресурсы. Давайте разберём всё это на примерах и поймём, в каких задачах каждый из этих форматов будет наиболее полезен.

Читать далее

Information

Rating
5,832-nd
Location
Москва, Москва и Московская обл., Россия
Registered
Activity

Specialization

Backend Developer
C#
SQL
.NET
WPF
Database