Pull to refresh
0
0.1

.NET Software Engineer

Send message

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

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

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

Reading time 10 min
Views 17K

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

Читать далее
Total votes 8: ↑6 and ↓2 +4
Comments 16

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

Reading time 5 min
Views 36K
Перевод статьи подготовлен в преддверии старта курса «Разработчик C#».





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

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

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

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

Level of difficulty Easy
Reading time 5 min
Views 8.7K

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

Читать далее
Total votes 35: ↑34 and ↓1 +33
Comments 12

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

Level of difficulty Easy
Reading time 7 min
Views 8K

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

Let's go!
Total votes 5: ↑3 and ↓2 +1
Comments 10

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

Reading time 6 min
Views 8.2K

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

В этой статье рассказываем, как с помощью нейросети создать бота, который собирает и обрабатывает информацию из сообщений, и задеплоить его на облачный сервер.
Читать дальше →
Total votes 26: ↑23 and ↓3 +20
Comments 5

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

Reading time 5 min
Views 12K

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

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

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

Читать далее
Total votes 28: ↑24 and ↓4 +20
Comments 22

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

Level of difficulty Easy
Reading time 5 min
Views 50K

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

Читать далее
Total votes 117: ↑104 and ↓13 +91
Comments 267

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

Level of difficulty Easy
Reading time 11 min
Views 7.3K

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

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

Читать далее
Total votes 11: ↑10 and ↓1 +9
Comments 40

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

Level of difficulty Medium
Reading time 16 min
Views 9.4K

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

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

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

Читать далее
Total votes 76: ↑75 and ↓1 +74
Comments 13

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

Reading time 54 min
Views 10K

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

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

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

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

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

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

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

Читать далее
Total votes 37: ↑22 and ↓15 +7
Comments 22

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

Level of difficulty Medium
Reading time 8 min
Views 15K

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

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

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

Level of difficulty Easy
Reading time 20 min
Views 12K
image

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

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

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

Level of difficulty Easy
Reading time 5 min
Views 48K

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

Читать далее
Total votes 94: ↑76 and ↓18 +58
Comments 39

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

Level of difficulty Hard
Reading time 28 min
Views 5.4K

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

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

Читать далее
Total votes 20: ↑20 and ↓0 +20
Comments 7

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

Level of difficulty Medium
Reading time 16 min
Views 3K

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

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

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

Читать далее
Total votes 7: ↑7 and ↓0 +7
Comments 4

11 лучших программ для нейросетей

Level of difficulty Medium
Reading time 16 min
Views 12K

Для работы в области науки о данных, особенно при прогнозировании сложных закономерностей или погружении в проекты компьютерного зрения, часто требуются мощные инструменты, как, например, Neural Designer. При использовании потенциала сверточных нейросетей (CNN) и рекуррентных нейросетей (RNN), такой софт служит маяком для тех, кто исследует глубокие нейросети.

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

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

Читать далее
Total votes 8: ↑6 and ↓2 +4
Comments 2

Самый простой и подробный гайд по конкурентным коллекциям в C#

Level of difficulty Easy
Reading time 18 min
Views 13K


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

Конкурентные коллекции в C# предлагают встроенные механизмы для обработки конкурентного доступа, что делает их мощным инструментом в программировании с конкурентным доступом.

В рамках статьи я попробую объяснить System.Collections.Concurrent настолько, насколько это возможно, включая примеры и сценарии использования. Также будет затронута тема сравнения с неизменяемыми (immutable) и замороженными (frozen) коллекциями.
Читать дальше →
Total votes 64: ↑62 and ↓2 +60
Comments 24

Обзор библиотеки FluentValidation. Часть 1. Первые шаги

Level of difficulty Medium
Reading time 5 min
Views 2.9K

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

Читать далее
Total votes 16: ↑10 and ↓6 +4
Comments 14

Как развернуть виртуальную среду модели машинного обучения на любой машине?

Level of difficulty Medium
Reading time 8 min
Views 8.1K

Иногда возникают проблемы с развертыванием среды разработки в облаке, ведь бесплатных сервисов с большими облачными вычислительными мощностями почти нет. Тот же Google Collab имеет свои лимиты по использованию GPU, после израсходования всей памяти необходимо ждать сутки. А цена платной версии порой не совсем оправдана... Если у вас есть своя неплохая видеокарта, всегда можно отказаться от облачной разработки и перейти к домашнему варианту.  

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

Итак, как же контейнизировать собственную виртуальную среду и развернуть ее с использованием своего GPU? 

Читать далее
Total votes 6: ↑5 and ↓1 +4
Comments 11

Information

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

Specialization

Backend Developer