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

.NET Software Engineer

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

Выбираем базовые образы для приложений на .NET: минимум уязвимостей, максимум быстродействия

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

Микросервисы и контейнеры для их развертывания сейчас являются стандартом в крупных компаниях. Для разработчиков и DevOps-инженеров это удобный подход: он дает больше возможностей и ускоряет процессы.

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

Меня зовут Саша Рахманный, я разработчик в команде информационной безопасности в Lamoda Tech. В этой статье я сравню разные базовые образы для .NET с точки зрения безопасности их компонентов и быстродействия. 

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

Читать далее
Всего голосов 27: ↑28 и ↓-1 +29
Комментарии 5

Вы должны перестать вручную писать Dockerfile'ы

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

Вы тоже устали вручную заполнять Dockerfile и docker-compose.yaml под каждый новый проект?

Я всегда задумывался, применяю ли я известные best practices, когда пишу конфиг для Docker, и не занесу ли я случайно какие-нибудь уязвимости, вручную заполняя конфиг-файлы.

Что же, теперь мне больше не придется беспокоиться об этом, благодаря добрым людям из Docker, которые недавно реализовали инструмент для этого - docker init .

Интересно, как экономить время и быстро генерировать конфиги, даже если вы не профи в Docker? Прошу под кат.

Читать далее
Всего голосов 66: ↑66.5 и ↓-0.5 +67
Комментарии 63

Как правильно замерить скорость работы кода в .NET

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

Поговорим о бенчмаркинге кода: о том, что это такое и для чего нужно. А также покажем, как на основе результатов бенчмаркинга оценить производительность кода в проекте, написанном на C#.

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

Что можно сделать на личном веб-сайте

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

Blot просто берёт и превращает папку в сайт. Текстовые файлы в папке автоматически становятся веб-страницами на сайте

Мы уже упоминали десяток способов, как использовать личный VPS в минимальной конфигурации за 130 рублей. Это облачное хранилище для файлов, архив для бэкапов, почтовый сервер, игровой сервер и т. д. На него можно поставить практически любой софт: 0,5 ГБ оперативной памяти хватит для запуска большинства linux-приложений (без GUI).

И веб-сервер с личным сайтом и блогом — одно из таких приложений. Почему нет? За доллар в месяц вложение в личный бренд и технологическую независимость окупится многократно.
Читать дальше →
Всего голосов 48: ↑36 и ↓12 +24
Комментарии 29

Если окна открывают, значит — это кому-нибудь нужно

Время на прочтение 2 мин
Количество просмотров 5.9K
Однажды мне потребовалось открыть окно из консольного приложения. Я хотел это сделать используя wpf, но информации, разбросанной по сети оказалось мало, так что я решил как-то систематизировать и представить этот маленький туториал.
Читать дальше →
Всего голосов 16: ↑12 и ↓4 +8
Комментарии 15

Почему IT-специалисты делают паузу в карьере и как после этого вернуться на работу

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

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

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

Что же такого особенного в IAsyncEnumerable в .NET Core 3.0?

Время на прочтение 5 мин
Количество просмотров 36K
Перевод статьи подготовлен в преддверии старта курса «Разработчик C#».





Одной из наиболее важных функций .NET Core 3.0 и C# 8.0 стал новый IAsyncEnumerable<T> (он же асинхронный поток). Но что в нем такого особенного? Что же мы можем сделать теперь, что было невозможно раньше?

В этой статье мы рассмотрим, какие задачи IAsyncEnumerable<T> предназначен решать, как реализовать его в наших собственных приложениях и почему IAsyncEnumerable<T> заменит Task<IEnumerable<T>> во многих ситуациях.

Ознакомьтесь со всеми новыми функциями .NET Core 3
Читать дальше →
Всего голосов 18: ↑17 и ↓1 +16
Комментарии 0

Нейросети в авторитете: вы не угадаете, сколько статей про нейронки и ML было в 2013 году на Хабре

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

Человечество не умеет жить без мечты. Глобальной, размашистой, такой — чтобы всё или ничего. Люди мечтали летать, как птицы, видеть, как звери, обгонять самых быстрых, создавать золото из олова, не болеть, лечить рак, чинить гены, жить вечно, летать в космос, дотронуться до Луны… Что-то получается, что-то не сразу, что-то — и вовсе нет. Вторую половину XX и пока весь XXI век человечество мечтает…научиться думать. Только не головами, которые как раз мечтают и воплощают мечты в конкретные решения, а железными мозгами: создать компьютеры, обрабатывающие информацию по тому же принципу, что и люди, а то и способные к абстракции и воображению, — обучить машину думать. Это весьма практичная мечта, которая по задумке должна сделать мир лучше и перевернуть медицину, психологию, культуру, искусство, инженерию и почти всё, где мы используем мысль и речь. Догадались, о чём речь?

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

Как я сдала IELTS в 2023 году и подтвердила свой уровень Advanced

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

Dear Habr, I am writing to share my experience... ой, кажется, я переобучилась на вариантах части Writing. В общем, я пишу эту небольшую статью, чтобы поделиться личным способом сдачи международного экзамена по английскому языку, рассказать о подготовке, мотивации и издержках.

Let's go!
Всего голосов 5: ↑3 и ↓2 +1
Комментарии 10

Самый простой гайд по созданию бота для анализа сообщений в Telegram

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

Есть Telegram-каналы, которые отслеживают определенные события в мире. А мы следим за их сообщениями, чтобы не упустить ничего важного. Если собирать и анализировать данные вручную, процесс будет отнимать много времени и требовать высокой концентрации от человека. Чтобы решить эту проблему, наш партнер и фронтенд-разработчик Владилен Минин создал Telegram-бота, который автоматизирует процесс и выдает резюме по собранной информации.

В этой статье рассказываем, как с помощью нейросети создать бота, который собирает и обрабатывает информацию из сообщений, и задеплоить его на облачный сервер.
Читать дальше →
Всего голосов 34: ↑32 и ↓2 +30
Комментарии 5

Битва фреймворков: сравнение высокопроизводительных HTTP-библиотек

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

Мир веб-разработки предлагает бесконечное количество вариантов HTTP-фреймворков для разных языков программирования. Но как разработчикам понять, какие из них обеспечивают действительно высокую производительность? Под катом команда блога CodeReliant* проводит прямое сравнение некоторых из лучших претендентов на быстродействие. Рассматривает популярные варианты на Javascript/Bun, Java, C#, Go и Rust, проводит бенчмаркинг, оценивает их пропускную способность и время отклика при тестировании.

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

*Обращаем ваше внимание, что позиция автора может не всегда совпадать с мнением МойОфис.

Читать далее
Всего голосов 30: ↑25 и ↓5 +20
Комментарии 22

Индексация заработной платы: почему работодатель обязан повышать тебе зарплату

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

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

Читать далее
Всего голосов 124: ↑110 и ↓14 +96
Комментарии 281

Подборка лучших внешних аккумуляторов с USB-C PD для ноутбуков

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

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

Поэтому мы собрали подборку пауэрбанков с высокоскоростным портом USB-C PD. С его помощью ноутбуки будут заряжаться так же быстро, как при использовании оригинальных блоков питания.

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

Quantization Deep Dive, или Введение в современную квантизацию

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

Привет! Меня зовут Василий Землянов, я занимаюсь разработкой ML-инфраструктуры. Несколько лет я проработал в команде, которая делает споттер — специальную маленькую нейросетевую модельку, которая живёт в умных колонках Яндекса и ждёт от пользователя слова «Алиса». Одной из моих задач в этой команде была квантизация моделей. На пользовательских устройствах мало ресурсов, и мы решили, что за счёт квантизации сможем их сэкономить — так в итоге и вышло.

Потом я перешёл в команду YandexGPT. Вместо маленьких моделей я стал работать с очень крупными. Мне стало интересно, как устроена квантизация больших языковых моделей (LLM). Ещё меня очень впечатляли истории, где люди берут гигантские нейросети, квантизируют в 4 бита и умудряются запускать их на ноутбуках. Я решил разобраться, как это делается, и собрал материал на доклад для коллег и друзей. А потом пришла мысль поделиться знаниями с более широкой аудиторией, оформив их в статью. Так я и оказался на Хабре :)

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

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

Моя коллекция 50+ вопросов для собеса C#

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

Привет, Хабр!

Представляю 50+ вопросов для подготовки к собеседованию C#, грейд — джуниор/мидл.

Вопросы разные: есть сложные/простые, с детальным объяснением и с ответом в пару предложений.
Anyway, должно быть полезно, поскольку я выбрал самые частотные вопросы

Вообще по поводу собеседований на C#/.Net разработчика, на Хабре статей хватает, вот две, где освещаются вопросы с собесов: тут и здесь.
Но в этих статьях не хватает детального разбора вопросов, что я и решил исправить.

Вообще, по моим и не только наблюдениям C# сейчас бурно развивается, в прошлом 2023 году TIOBE даже назвали C# языком года, что придаёт некоторую уверенность в завтрашнем дне для шарписта.

Так что пока кто-то всё ждёт конец света сингулярность (ну же, ещё чуть-чуть), другая часть несмотря ни на что готовится, проходит тернистый путь от тестового задания до оффера и вливается в C#-разработку, с чем я их искренее поздравляю.

В общем, уверен эта статья будет полезна для подготовки, не будем уже тянуть, поехали!

Читать далее
Всего голосов 39: ↑24 и ↓15 +9
Комментарии 28

Обнаружение SSH-туннелей по размеру пакетов

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

Иллюстрация из книги «Справочник киберсантехника»

Протокол SSH — очень мощный инструмент, который используется для удалённой консоли или передачи файлов (scp, sftp). Есть менее известная функция перенаправления портов. Такие SSH-туннели используются для пробития файрволов и хорошо скрываются от обнаружения стандартными средствами мониторинга типа Trisul, Zeek (ранее был известен как Bro), Suricata и Snort. Поэтому для их обнаружения в корпоративной сети используются другие методы.
Читать дальше →
Всего голосов 74: ↑70 и ↓4 +66
Комментарии 23

The Elder Scrolls III: Morrowind: чем цепляет эта нестареющая классика?

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

Попробуйте вспомнить, как вы впервые играли в The Elder Scrolls III: Morrowind. Запустили и, просмотрев заставку, оказались запертым в трюме корабля, проспав почти всю дорогу настолько крепко, что даже вчерашний шторм не разбудил вас. Ступив на берег и оформив бумаги, в которых указали свою расу, под каким созвездием родились и чем промышляете, вы попали в огромный, мрачный и почти безграничный мир, где, как тогда казалось, можно всё. Началось путешествие, и вы, овеянный чувством приключения, под замечательные музыкальные композиции Джереми Соула отправляетесь в дорогу. У ваших ног весь Вварденфелл – место, где джунгли сменяются пепельными пустынями, а зелёные леса – насаждениями гигантских грибов. На вашем пути встретится много интересного, а игра предоставит большое количество возможностей в развитии вашего альтер эго и увлечёт глубокой историей, множеством красивых и живых городов (каждый из которых отличается не только географическим расположением или названием, но даже архитектурным стилем и общим настроением), захватывающими квестами, а также ощущением причастности к чему-то великому.

Огромная свобода как для ролевого отыгрыша, так и поведенческая, побуждала к изучению всех окрестных земель и возможностей, предоставляемых игрой. Поэтому я убеждён, что большинство из вас, попробовав The Elder Scrolls III: Morrowind на релизе, просто не могло не влюбиться в этот проект компании Bethesda Game Studios и в наши дни вспоминаете её с огромным пиететом. Да, в 2002 году Morrowind казался чем-то невозможным, чем-то, что способно увлечь на десятки и сотни часов, и, скажу вам, с годами мало что изменилось. Игра воистину глубока и масштабна, в неё не играют, а в ней живут. Поэтому, если вы услышите от кого-то, что он прошёл Morrowind, не верьте ему, он наркоман бредит =)
Читать дальше →
Всего голосов 58: ↑56 и ↓2 +54
Комментарии 59

$2500 в месяц на сервисе с 1 функцией, которая уже была у крупных компаний

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

Разбираем, как разработчик создал простой продукт с выручкой $2500 в месяц, связав два популярных сервиса. Несмотря на то, что это уже было сделано до него крупными компаниями.

Читать далее
Всего голосов 95: ↑77 и ↓18 +59
Комментарии 39

Градиентный бустинг. Реализация с нуля на Python и разбор особенностей его модификаций (XGBoost, CatBoost, LightGBM)

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

На сегодняшний день градиентный бустинг (gradient boosting machine) является одним из основных production-решений при работе с табличными, неоднородными данными, поскольку обладает высокой производительностью и точностью, а если быть точнее, то его модификации, речь о которых пойдёт чуть позже.

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

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

Выжимаем из Random Forest максимум: увеличиваем полноту при 100% точности

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

Была классическая задача: по табличным данным предсказать некое событие — случится или нет. И как бы я к этим данным ни подбирался, с какого ракурса ни смотрел, результат, увы, не впечатлял. Данных было мало, а то, что было, обладало слабой предсказательной силой. Хотя казалось, что что-то вытащить все-таки можно.

И вот, просматривая отдельные деревья решений, меня осенило — попробую-ка я обрезать все деревья, используемые в Random Forest, до одной, но самой эффективной ветки. И — о чудо! — заметно выросла как точность (precision), так и полнота (recall). И особенно полнота выросла на высоких уровнях точности.

Проверил этот способ на других задачах. И везде при 100% точности заметно выростала полнота. Что же я сделал?

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

Информация

В рейтинге
3 916-й
Откуда
Москва, Москва и Московская обл., Россия
Зарегистрирован
Активность

Специализация

Backend Developer