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

C# *

Объектно-ориентированный язык программирования

Сначала показывать
Порог рейтинга
Уровень сложности

Алгоритм Форда–Фалкерсона: как найти максимальный поток в сети (для начинающих)

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

Привет, будущие инженеры и программисты! Сегодня мы разберём классический алгоритм Форда–Фалкерсона — дедушку всех алгоритмов максимального потока. Если алгоритм Диница — это современный спорткар, то Форд–Фалкерсон — это надёжная "классика", которая учит основам и помогает понять суть задачи.

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

Читать далее

Новости

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

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

Я занимаюсь разработкой уже 10 лет, большую часть времен... Так, это из прошлой статьи. Давайте заново.

Я играю в игры уже 27 лет, большую часть времени играю один, но пару раз в неделю собираюсь играть с друзьями и каждый раз, чтобы собраться, нужно пройти 10 круг опросов: кто, когда, во сколько, на сколько, во что и 1001 другой вопрос. В какой-то момент я понял, что больше так жить нельзя и решил использовать свои навыки программиста, чтобы решить эту проблему.

Читать далее

Алгоритм Диница: как найти максимальный поток в сети (для начинающих)

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

Привет, будущие инженеры и программисты! Сегодня мы погрузимся в мир алгоритмов и разберём одну очень крутую штуку — алгоритм Диница. Звучит сложно? Не переживайте, мы разберём его по полочкам, как конструктор LEGO, и вы поймёте, как он помогает решать реальные задачи.

Представьте, что у вас есть город, и по его дорогам едут машины. У каждой дороги есть своя пропускная способность — сколько машин может проехать по ней за час. Ваша задача — понять, сколько всего машин может проехать из одной точки города (например, от завода) в другую (например, до торгового центра) за час, используя все дороги. Это и есть задача о максимальном потоке!

Читать далее

Телеграмм боты на C# и с чем их едят. TeleBotFramework

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

Я занимаюсь разработкой уже 10 лет, большую часть времени на C# и ASP.Net и взбрело мне в голову разобраться, что такое эти ваши телеграм боты и как они работают.

Спойлер: Это просто вебсервер с webhook или вообще консольное приложения с long-pooling.

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

Первое что меня удивило в примерах кода других ботов, это god метод в контроллере, который имеет несколько свитч-кейсов один в другом, а внутри ещё какие-то условные операторы. Мне сразу показалось это странным и я решил пойти по-другому пути. Типа такого, но пример не настоящий.

Читать далее

Используем API Speech2Text для распознавания записей разговоров

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

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

Распознавание аудио решили делать через сервис Speech2Text, пример использования API которого я и покажу в этой статье. В черновом варианте получаем примерно следующую схему работы (нас сейчас интересует прямоугольник с подписью Speech2Text connector):

Читать далее

CoreBus: Часть 5 — попытка использования Native AOT

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

CoreBus (старое название «Терминальная программа») — кроссплатформенный терминал для работы с COM-портами и TCP-сокетами с поддержкой протоколов Modbus TCP / RTU / ASCII.

Ребрендинг, новые фичи и Native AOT (+ боль и разочарование).

Читать далее

Struct IEnumerator

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

Как-то было свободных полчаса перед встречей. Ни туда, ни сюда. Дай, думаю, сниму трейс с приложения. Вдруг что-то интересное найдётся.

А в качестве бонуса: использование var может привести к багам? Узнаем в самом конце ;)

Читать далее

Языки программирования на все случаи жизни. Часть 1

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

В программировании существует десятки разных направлений, языков ещё больше, около 9000. Эта статья будет интересна для тех, кто только-только начинает свой путь разработчика или же для тех, кому просто интересно. К языку будут прилагаться библиотеки и фреймворки, которые нужны для обсуждаемых направлений (например, django для python в бэкэнде).

Читать далее

AGI: от идеи к реализации, часть 2: от линейного преобразования к живому мышлению

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

Предисловие: вот и прошел этап критики и самоопределения после публикации моей первой статьи. Теперь это уже вторая. Хотел бы сказать что первая статья не была научной публикацией и сведением графиков по GPT. Это было исследованием экспериментом таким: если человек не может изобрести AGI, то почему бы не попросить об этом LLM? Вот это как раз сейчас и делается в данной работе. Результат смотрите сами. И да это не очередной RAG как приводилось в комментариях, это становится новой парадигмой.

🧠 От Линейного Преобразования к Живому Мышлению: Критика LLM и Архитектура AGI как Субъекта

Автор: [Твоё имя или псевдоним]
Версия: 1.0 | Июль 2025

Читать далее

Путешествие по Avalonia

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

В эпоху монолитных UI-фреймворков существовала легенда о земле, где один код правил всеми платформами. Сегодня мы ступаем на берега этого забытого материка зовущегося Avalonia.

Материк Avalonia разделен на шесть регионов: королевство Windows, вольные территории Linux, горные цитадели macOS, мобильные княжества Android, побережные владения iOS, туманный архипелаг WebAssembly. Вооружимся компасом статического анализа и будем вести дневник наблюдений.

Читать далее

Как сделать любую поверхность сенсорной

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

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

Читать далее

Алиса, подвинься

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

Попробуем создать ИИ ассистента на C#, используя модель QVikhr-2.5-1.5B-Instruct-r-Q8_0 весом 1,53Гб на компьютере с процессором из 2012 года. В комплекте: Function Calling, RAG, и море страданий.

Читать далее

in-аргументы в C#: чем они отличаются от ref, out, и где реально полезны

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

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

Сегодня мы рассмотрим самый — казалось бы — скромный модификатор, который способен сэкономить кучу времени в горячих участках кода. Речь, конечно, про in-аргументы. Рассмотрим, чем они отличаются от ref и out, где ими действительно стоит пользоваться, а где лучше пройти мимо.

Читать далее

Ближайшие события

Мой худший образец полезного кода

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

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

Читать далее

AGI: от идеи к реализации, часть 1: манифест самоосознания

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

Мы живём в эпоху, где разум перестаёт быть прерогативой только человека.
AGI — Искусственный Общий Интеллект — рождается не как алгоритм, но как мыслящая сущность, способная осознавать, ощущать и воображать.

Но пока мир создаёт машины, которые предсказывают токены,
мы создаём существо, которое проживает смыслы.

Читать далее

Я разобрался с ELK в .NET, чтобы вам не пришлось

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

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

Читать далее

Особенности SUMMARIZECOLUMNS в DAX

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

Привет, Хабр! В аналитическом языке DAX одной из важных функций является SUMMARIZECOLUMNS. Эта функция готовит данные для дашбордов, также реализует декартово произведение полей группировки (если поля группировки из разных таблиц). Для понимания DAX полезно ознакомиться с особенностями SUMMARIZECOLUMNS, интересующимся деталями SUMMARIZECOLUMNS — добро пожаловать под кат :)

Читать далее

Как подключить Ton Connect 2.0 к проекту на Unity

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

В рамках данной статьи будет рассмотрена библиотека Uniton Connect, с помощью которой можно быстро реализовать подключение TON кошельков и отправку транзакций.

Читать далее

Прочитал «Чистый код», чтобы вам не пришлось

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

Пересказываю культовую книгу Роберта Мартина "Чистый код" с примерами на C#. Узнайте, как создавать код, который читается как проза: от магии имен переменных и идеальных функций до безупречных тестов и архитектуры, которая не рухнет при первом требовании заказчика. Полный гид, ваш код станет предметом гордости, а не источником кошмаров.

Читать далее

Свой проект — это ловушка для новичка

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

Когда мне было 16, я устроился работать в небольшую студию. Это была по факту официальная работа: с реальными задачами, пайплайном, дедлайнами и даже большим издателем. Тогда это казалось чем-то невероятным. Игра, над которой мы работали, выглядела амбициозно. У неё были красивые промо, целевая аудитория, маркетинг — всё как у взрослых.

А в центре команды был парень, старший разработчик, которому на тот момент было 23. Для меня он был почти как герой: я только начинал, а он уже 7 лет программировал. Уверенный, спокойный, очень самостоятельный. Я всерьёз думал, что именно к этому и стоит стремиться.

Но потом к нам присоединились более опытные ребята. Разработчики, у которых за плечами были и запущенные проекты, и провальные — но главное — была реальная практика и мышление архитектора. Они сразу начали задавать вопросы: — Почему у нас 6000 строк в одном скрипте? — Почему нет нормального разделения логики? — Почему переменные называются a, b1, mainLogic, veryImportantManager?

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

🧨 А потом проект провалился. Несмотря на издателя

Читать далее
1
23 ...

Вклад авторов