Pull to refresh
1
0

.NET Software Engineer

Send message

Просто, но быстро. Телеграм бот на коленке

Level of difficultyEasy
Reading time13 min
Views9.7K

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

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

Не страшно! В этой статье я поделюсь с вами всеми этапами создания собственного фреймворка для телеграм-бота с использованием C#.

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

Пересаживаем проект с Vagrant + VirtualBox на Docker-контейнеры с помощью Ansible

Reading time15 min
Views2.9K

До того, как все заполонили контейнеры, главными инструментами для создания локальной среды разработки были технологии наподобие Vagrant и VirtualBox. Эти инструменты в сочетании с такими средствами автоматизации, как Ansible и Chef, позволяли создать рабочую воспроизводимую среду для приложений. Однако развитие легких вариантов виртуализации, заложенное docker и постоянно упрощаемое различными облачными инновациями, привело к упадку этих некогда очень популярных среди разработчиков инструментов. Настолько стремительному, что увидев их где-нибудь, мы невольно задумываемся о возрасте кодовой базы.

И вот недавно я сам наткнулся на них. А если быть точнее, то мне достался проект, который все-еще на них полагается — он предполагает установку виртуальной машины VirtualBox под управлением Debian, созданной с помощью Vagrant, а затем настроенной с помощью Ansible. И все это работает. Ну, по большей части. Но когда не работает, разбираться, что пошло не так — настоящая боль. Поддержание координации между Vagrant и VirtualBox было особенно неприятной черной магией, которая подтолкнула меня к размышлениям о более дешевых и дружественных альтернативах виртуализации.

Читать далее
Total votes 8: ↑6.5 and ↓1.5+5
Comments1

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

Level of difficultyMedium
Reading time14 min
Views3.2K

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

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

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

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

Читать далее
Total votes 32: ↑33.5 and ↓-1.5+35
Comments6

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

Level of difficultyMedium
Reading time3 min
Views49K

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

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

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

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

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

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

Reading time5 min
Views6.1K

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

Читать далее
Total votes 16: ↑13 and ↓3+10
Comments2

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

Level of difficultyMedium
Reading time6 min
Views21K

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

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

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

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

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

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

Reading time10 min
Views17K

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

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

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

Reading time5 min
Views36K
Перевод статьи подготовлен в преддверии старта курса «Разработчик 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
Comments0

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

Level of difficultyEasy
Reading time5 min
Views9.9K

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

Читать далее
Total votes 36: ↑34 and ↓2+32
Comments12

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

Level of difficultyEasy
Reading time7 min
Views9.1K

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

Let's go!
Total votes 6: ↑4 and ↓2+2
Comments10

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

Reading time6 min
Views12K

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

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

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

Reading time5 min
Views13K

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

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

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

Читать далее
Total votes 30: ↑25 and ↓5+20
Comments22

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

Level of difficultyEasy
Reading time5 min
Views54K

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

Читать далее
Total votes 125: ↑111 and ↓14+97
Comments284

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

Level of difficultyEasy
Reading time11 min
Views8.6K

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

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

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

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

Level of difficultyMedium
Reading time16 min
Views13K

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

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

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

Читать далее
Total votes 83: ↑82 and ↓1+81
Comments13

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

Reading time54 min
Views15K

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

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

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

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

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

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

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

Читать далее
Total votes 39: ↑24 and ↓15+9
Comments28

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

Level of difficultyMedium
Reading time8 min
Views17K

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

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

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

Level of difficultyEasy
Reading time20 min
Views13K
image

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

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

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

Level of difficultyEasy
Reading time5 min
Views50K

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

Читать далее
Total votes 95: ↑77 and ↓18+59
Comments39
1
23 ...

Information

Rating
3,555-th
Location
Москва, Москва и Московская обл., Россия
Registered
Activity

Specialization

Backend Developer