Как стать автором
Обновить
3
0

Разработчик(в основном на С#)

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

Мультиплатформенные образы: что это такое и зачем они нужны

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

Павел Агалецкий, ведущий инженер в Авито, рассказал, как запустить один и тот же образ на разных платформах, почему мультиплатформенные образы удобнее, и как собирать их в режиме кросс-компиляции.

Читать далее
Всего голосов 11: ↑11 и ↓0+11
Комментарии4

Тестируем инфраструктуру и приложение на устойчивость к DDoS-атакам

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров5.8K

Сегодня расскажу, как можно протестировать свою ИТ-инфраструктуру или приложение на предмет устойчивости к DDoS-атакам на уровнях L4 и L7. Сразу скажу, что это нельзя назвать серьезным нагрузочным тестированием, это простой и бесплатный метод теста. У него две задачи:

1. Узнать, какой минимальной мощности достаточно, чтобы инфраструктура начала испытывать проблемы или легла вовсе. Это то, что тестировали мы.

2. Эту же методику можно использовать, чтобы оценить скорость реакции используемого сервиса защиты от DDoS-атак. Мы конечно же не будем пытаться заддосить с одной машины мощные узлы фильтрации anti-ddos-сервисов. Но посмотрим, как быстро срабатывает защита и начинает блокировать зловредный трафик, для всех ли типов атак это происходит одинаково быстро и происходит ли вообще?

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

Практическое руководство по созданию Helm чарта или как избавиться от рутины при работе с YAML манифестами

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

Бывало ли у вас такое, что вы совершали одни и те же действия из раза в раз и наконец-то решили избавиться от всей этой рутины? Но вы решили отложить это решение на некоторое время, в частности из-за занятости или лени. Но вот вы решаете взять себя в руки и всё изменить! Также было и со мной - и вот в конце концов я решился пойти на оптимизацию развертывания сервисов в Kubernetes при помощи Helm и написать об этом статью!

Я уже успел развернуть несколько приложений в Kubernetes. Но в последнее время взаимодействовать с ресурсами через kubectl становится невыносимо больно. Поэтому я решил осуществить свою давнюю затею - написать свой Helm чарт. Сегодня мы вместе с тобой, Хабрюзер, создадим свой чарт, который можно будет использовать для деплоя собственных приложений!

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

Подробный обзор методичек ФАС по теме маркировки рекламы

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

Большинство рекламодателей, агентств и блогеров в курсе, что введение с 01.09.22 закона о маркировке рекламы (официально Статья 18.1 Закона о Рекламе №38-ФЗ) породило большое количество недопонимания со стороны интернет-сообщества, откровенного хаоса и паранойи на тему маркировать всё и вся либо игнорирование маркировки в надежде, что регулирующие органы не смогут их привлечь по каким-либо причинам к ответственности.

Читать далее
Всего голосов 6: ↑3 и ↓30
Комментарии7

Введение в трассировку лучей: простой метод создания 3D-изображений. Часть 4 —добавление отражения и преломления

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

В этой статье мы добавим в наш рейтрейсер поддержку отражения и преломления света. Приятного чтения!

Предыдущая глава

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

Зарендерить статью
Всего голосов 6: ↑5 и ↓1+4
Комментарии0

Использование MassTransit (RabbitMQ) в ASP.NET Core

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

В этой статье мы рассмотрим реализацию библиотеки MassTransit в сочетании с RabbitMQ в приложении ASP.NET Core. Для начала, мы затронем некоторые из продвинутых функций RabbitMQ, а также ряд концепций, с которыми можно столкнуться, используя библиотеку MassTransit. Ну и наконец, мы разберёмся, как использовать эту библиотеку в приложении ASP.NET Core Web API.

Читать далее
Всего голосов 8: ↑8 и ↓0+8
Комментарии7

Разрабатываем свой браузер с нуля. Часть первая: HTML

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


Всем привет!


Продолжаем цикл статей по разработке браузерного движка.


В данной статье я расскажу как создать самый быстрый HTML-парсер c DOM. Мы рассмотрим HTML спецификацию и чем она плоха относительно производительности и потребления ресурсов при разборе HTML.


С данной темой я докладывался на прошедшем HighLoad++. Конференцию не каждый может посетить, плюс в статье больше деталей.


Я предполагаю, что читатель обладает базовыми знаниями об HTML: теги, ноды, элементы, пространство имён.

И так, начнём!
Всего голосов 54: ↑51 и ↓3+48
Комментарии95

Разрабатываем свой браузер. Часть вторая: CSS

Уровень сложностиПростой
Время на прочтение15 мин
Количество просмотров3.8K


Всем привет!


Продолжаем цикл статей по разработке браузерного движка.


Да, лучше поздно, чем никогда. Да, перерыв был большой.


В конце статьи я опишу, как поживает проект lexbor, что с ним происходит.


В этой статье я постараюсь раскрыть особенности парсинга Cascading Style Sheets (CSS). Расскажу, как вывернуть «ежа» наизнанку и как тестировать полученный результат.


В CSS спецификациях всё разжевано, ну, или почти всё, тут я расскажу, как всё устроено, куда смотреть и с чего начать.


Эта статья больше обзорная, здесь не будет мелких подробностей реализации, скорее, общие сведения и основные алгоритмы. За мельчайшими подробностями прошу в код на GitHub.


И конечно, как это обычно бывает, мы замахнёмся на звание самого быстрого парсера CSS.

И так, начнём!
Всего голосов 11: ↑11 и ↓0+11
Комментарии1

Создание масштабируемой и высокодоступной системы Postgres с помощью Patroni 3.0 и Citus

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

Citus — это расширение для PostgreSQL, которое обеспечивает масштабируемость PostgreSQL за счет прозрачного распределения и/или репликации таблиц на одном или нескольких узлах PostgreSQL. Citus можно использовать как на облачной платформе Azure, так и на собственных серверах, поскольку расширение базы данных Citus имеет полностью открытый исходный код.

Читать далее
Всего голосов 15: ↑14 и ↓1+16
Комментарии0

Vue 3 на Typescript

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

vue3+ts


Популярность Typescript растет день ото дня. Javascript нетипизированный язык(или слабо типизированный, если точнее), и одна и та же переменная способна принимать и строку, и число, и даже объект. С одной стороны, это делает язык гибким, с другой, потенциально ведет к многочисленным ошибкам. Typescript создан, чтобы решить эту проблему. Vue старается не отставать от моды, и в новой версии фреймворка была значительно улучшена поддержка языка. Теперь переход на Typescript проще и приятнее, чем был раньше. Хороший повод научиться чему-то новому, тем более, что в требованиях к вакансиям он встречается все чаще и чаще.


В этой статье мы перепишем тестовое задание, которое я разбирал ранее, на Vue 3 и Typescript и вдобавок используем обновленные Vue-Router и Vuex(критики, вы были услышаны).


Update: код в статье был улучшен в соответствии с пожеланиями.

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

GitOps c ArgoCD для конфигурации кластеров K8S/OKD/Openshift и приложений, размещаемых в них

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

Всем привет, у нас в НЛМК создается множество приложений и систем для производства и поддержки бизнеса. Большинство размещаются в нашей Единой Цифровой Платформе (коротко ЕЦП), а по-современному: Internal Developer Platform.

Мы с коллегами как раз занимаемся развитием Единой Цифровой Платформы НЛМК, частью которой являются кластеры Openshift/OKD/K8S, количество которых постепенно увеличивается, что требует понятного, прозрачного подхода к управлению и конфигурированию как самих кластеров, так и различных приложений, работающих в них. Далее я расскажу, как мы это делаем с помощью ArgoCD и подхода GitOps

Читать далее
Всего голосов 14: ↑14 и ↓0+14
Комментарии3

9 аналогов известных сервисов (Google Analytics, Slack, GitHub, ChatGPT) с открытым исходным кодом

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

Все мы пользуемся разными сервисами — какими именно, зависит от специальности и текущей необходимости. GitHub, ChatGPT, Tableau и другие давно и прочно вошли в нашу жизнь. Но есть и аналоги этих востребованных сервисов, причём аналоги с открытым исходным кодом. Эта статья посвящена таким альтернативным сервисам и ПО. Вероятно, многие из них могут оказаться полезны для читателей. Если же у вас есть собственный вариант, расскажите о нём в комментариях.

Читать далее
Всего голосов 14: ↑12 и ↓2+16
Комментарии9

Пример настройки Linux для высоконагруженных кластеров Kubernetes

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

Довольно часто можно встретить примеры настройки (тюнинга) сетевого стека Linux для высоконагруженных систем, однако некоторые из этих гайдов сильно устарели и не используют рекомендованные подходы к конфигурированию системы. В этом обзоре мы рассмотрим подготовку Linux, для использования в качестве узла плоскости управления Kubernetes.

Читать далее
Всего голосов 9: ↑7 и ↓2+5
Комментарии1

Как я познакомился с BouncyCastle в .NET 7

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

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

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

Читать далее
Всего голосов 7: ↑6 и ↓1+7
Комментарии15

Делаем многопользовательскую кроссплатформенную RPG с нуля

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

Когда-то давно меня очаровал ADOM. Я даже и близко не подошёл к прохождению игры, но мне нравилось бродить по этому миру, собирать предметы с эффектом, который не прочувствуешь, пока не используешь. Нравилось, что монстры в подземельях имели какие-то зачатки собственного интеллекта, подбирали с пола вещи и использовали их. Всё время что-то происходило и менялось, проходишь по тому же месту – смотришь кто-то уже подобрал с пола монеты. Или предметы в инвентаре испортились. Мир как будто живёт своей жизнью. В пещерах можно идти по коридорам, а можно наугад пробивать туннели заклинанием в надежде отыскать потайную комнату, оставляя на полу груду камней. Мир полный возможностей и способов взаимодействия.

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

Читать далее
Всего голосов 19: ↑18 и ↓1+18
Комментарии29

Пройди свой путь в ширину: библиотеки для графов из инди-игры TESTAMENT

Уровень сложностиПростой
Время на прочтение11 мин
Количество просмотров2.5K

Графы — это не только математический объект, но и важный инструмент программистов. Они используются в играх, визуализации данных, социальных сетях и других серьезных проектах. Если вы не знаете, как работать с графами, то вы не программист. Конкретно раскладка графа в плоскости — задача не тривиальная. Но что делать, если вы хотите решить эту задачу легковесно и быстро?

Когда я начал работать над своим пет-проектом TESTAMENT, мне нужно было генерировать и отображать произвольные графы. Я хотел, чтобы локации были в виде простых шагов-событий, соединенных между собой. Примерами могут послужить проекты Slay The Spire, Cult of the Lamb, Darkest Dungeon и другие. Исследовав вопрос, я увидел, что существующие библиотеки слишком тяжелые и сложные для моих нужд.

Читать далее
Всего голосов 6: ↑6 и ↓0+6
Комментарии0

Классификация аудиофайлов с библиотекой Librosa

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

Привет Хабр! В этой статье поработаем с аудиофайлами, используя библиотеку librosa и алгоритмы Machine learning.

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

Читать далее
Всего голосов 13: ↑13 и ↓0+13
Комментарии1

Создание сервера для онлайн ММО игр на PHP ч. 7 — Игровые локации (тайловые карты)

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров3K

Продолжая рассказывать о своем пути создания ПО для догружаемого контента в играх в этой статье хотел бы остановится на игровых картах (локациях).

Читать далее
Всего голосов 2: ↑2 и ↓0+2
Комментарии2

Как айтишник гигантские арбузы в средней полосе выращивал. Часть 1

Уровень сложностиПростой
Время на прочтение8 мин
Количество просмотров25K

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

Своеобразная “инструкцию для начинающих” получилась довольно объемной. Мы  разделили ее на две части: в первой автор разбирает теоретические основы, а во второй переходит к практике.

Осторожно, много фото!

Читать далее
Всего голосов 72: ↑71 и ↓1+84
Комментарии26

Книга «ASP.NET Core Security» в правильном переводе команды DotNetRu

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

Сообщество DotNetRu совместно с издательством ДМК Пресс договорились на доработку и проверку перевода очередной книги. Напомним, что мы уже помогли выпустить три книги: «Управление памятью в .NET для профессионалов» Конрада Кокосы,  «ASP.NET Core в действии» Эндрю Лока и «EF Core в действии» Джона Смита. Издатель делает первоначальный перевод, а ребята из сообщества в качестве экспертов корректируют текст, придавая переводу оригинальный и непротиворечивый смысл.

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

Рады представить вам очередной результат совместных усилий: книга Кристиана Венца «Безопасность ASP.Net Core» в правильном переводе DotNetRu. В продолжении поста — впечатления о процессе перевода от непосредственных участников и промокод на скидку от издательства.

Читать далее
Всего голосов 18: ↑18 и ↓0+18
Комментарии1

Информация

В рейтинге
6 319-й
Зарегистрирован
Активность