🔥 Успех в IT = скорость + знания + окружение
Здесь ты найдёшь всё это — коротко, по делу и без воды.
Пока другие ищут, где “подглядеть решение”, ты уже используешь самые свежие инструменты!
AI: t.me/ai_machinelearning_big_data
Python: t.me/pythonl
Linux: t.me/linuxacademiya
Собеседования DS: t.me/machinelearning_interview
C++ t.me/cpluspluc
Docker: t.me/DevopsDocker
Хакинг: t.me/linuxkalii
Devops: t.me/DevOPSitsec
Data Science: t.me/data_analysis_ml
Javascript: t.me/javascriptv
C#: t.me/csharp_1001_notes
Java: t.me/java_library
Базы данных: t.me/sqlhub
Python собеседования: t.me/python_job_interview
Мобильная разработка: t.me/mobdevelop
Golang: t.me/Golang_google
React: t.me/react_tg
Rust: t.me/rust_code
ИИ: t.me/vistehno
PHP: t.me/phpshka
Android: t.me/android_its
Frontend: t.me/front
Big Data: t.me/bigdatai
МАТЕМАТИКА: t.me/data_math
Kubernets: t.me/kubernetc
Разработка игр: https://t.me/gamedev
Haskell: t.me/haskell_tg
Физика: t.me/fizmat
💼 Папка с вакансиями: t.me/addlist/_zyy_jQ_QUsyM2Vi
Папка Go разработчика: t.me/addlist/MUtJEeJSxeY2YTFi
Папка Python разработчика: t.me/addlist/eEPya-HF6mkxMGIy
Папка ML: https://t.me/addlist/2Ls-snqEeytkMDgy
Папка FRONTEND: https://t.me/addlist/mzMMG3RPZhY2M2Iy
😆ИТ-Мемы: t.me/memes_prog
🇬🇧Английский: t.me/english_forprogrammers
🧠ИИ: t.me/vistehno
🎓954ГБ ОПЕНСОРС КУРСОВ: @courses
📕Ит-книги бесплатно: https://t.me/addlist/BkskQciUW_FhNjEy
Подпишись, если хочешь быть в числе тех, кого зовут в топовые проекты!
Здесь ты найдёшь всё это — коротко, по делу и без воды.
Пока другие ищут, где “подглядеть решение”, ты уже используешь самые свежие инструменты!
AI: t.me/ai_machinelearning_big_data
Python: t.me/pythonl
Linux: t.me/linuxacademiya
Собеседования DS: t.me/machinelearning_interview
C++ t.me/cpluspluc
Docker: t.me/DevopsDocker
Хакинг: t.me/linuxkalii
Devops: t.me/DevOPSitsec
Data Science: t.me/data_analysis_ml
Javascript: t.me/javascriptv
C#: t.me/csharp_1001_notes
Java: t.me/java_library
Базы данных: t.me/sqlhub
Python собеседования: t.me/python_job_interview
Мобильная разработка: t.me/mobdevelop
Golang: t.me/Golang_google
React: t.me/react_tg
Rust: t.me/rust_code
ИИ: t.me/vistehno
PHP: t.me/phpshka
Android: t.me/android_its
Frontend: t.me/front
Big Data: t.me/bigdatai
МАТЕМАТИКА: t.me/data_math
Kubernets: t.me/kubernetc
Разработка игр: https://t.me/gamedev
Haskell: t.me/haskell_tg
Физика: t.me/fizmat
💼 Папка с вакансиями: t.me/addlist/_zyy_jQ_QUsyM2Vi
Папка Go разработчика: t.me/addlist/MUtJEeJSxeY2YTFi
Папка Python разработчика: t.me/addlist/eEPya-HF6mkxMGIy
Папка ML: https://t.me/addlist/2Ls-snqEeytkMDgy
Папка FRONTEND: https://t.me/addlist/mzMMG3RPZhY2M2Iy
😆ИТ-Мемы: t.me/memes_prog
🇬🇧Английский: t.me/english_forprogrammers
🧠ИИ: t.me/vistehno
🎓954ГБ ОПЕНСОРС КУРСОВ: @courses
📕Ит-книги бесплатно: https://t.me/addlist/BkskQciUW_FhNjEy
Подпишись, если хочешь быть в числе тех, кого зовут в топовые проекты!
🕹️ NET-NES — эмулятор легендарной NES, написанный на C# и Raylib
После создания собственного эмулятора GameBoy (**CODE-DMG**), следующий шаг был очевиден — NES. Консоль, оставившая след не только в истории видеоигр, но и в электронике, вдохновила на создание нового проекта — NET-NES.
🎮 Что такое NET-NES?
Это NES-эмулятор, написанный на C# с использованием Raylib. Он уже способен запускать множество классических хитов от Nintendo.
📜 Немного истории:
• NES (Nintendo Entertainment System) — вышла в Японии как FamiCom в 1983 году
• В 1985 появилась в Северной Америке, где спасла индустрию после видеоигрового краха 1983 года
• Продавалась как "игрушка" — и изменила всё
🧠 Аппаратная часть NES:
• 8-битный CPU Ricoh 2A03 (~1.79 МГц), основанный на MOS 6502
• Встроенный APU (аудио)
• Видео: Ricoh 2C02 — вывод 256×240, палитра 64 цвета
• 2 КБ RAM + 2 КБ VRAM
• ROM‑картриджи с мапперами для расширения памяти и графики
🛠️ Почему C# и Raylib?
• Потому что C# — удобен, современен и любим
• Raylib — весёлый, минималистичный и идеально подходит для 2D-рендера
• А название NET-NES — от .NET и NES, звучит круто 😄
🔗 GitHub: github.com/Paulescu/NET-NES
#nes #dotnet #emulation #gamedev #csharp #retrogaming
@csharp_ci
После создания собственного эмулятора GameBoy (**CODE-DMG**), следующий шаг был очевиден — NES. Консоль, оставившая след не только в истории видеоигр, но и в электронике, вдохновила на создание нового проекта — NET-NES.
🎮 Что такое NET-NES?
Это NES-эмулятор, написанный на C# с использованием Raylib. Он уже способен запускать множество классических хитов от Nintendo.
📜 Немного истории:
• NES (Nintendo Entertainment System) — вышла в Японии как FamiCom в 1983 году
• В 1985 появилась в Северной Америке, где спасла индустрию после видеоигрового краха 1983 года
• Продавалась как "игрушка" — и изменила всё
🧠 Аппаратная часть NES:
• 8-битный CPU Ricoh 2A03 (~1.79 МГц), основанный на MOS 6502
• Встроенный APU (аудио)
• Видео: Ricoh 2C02 — вывод 256×240, палитра 64 цвета
• 2 КБ RAM + 2 КБ VRAM
• ROM‑картриджи с мапперами для расширения памяти и графики
🛠️ Почему C# и Raylib?
• Потому что C# — удобен, современен и любим
• Raylib — весёлый, минималистичный и идеально подходит для 2D-рендера
• А название NET-NES — от .NET и NES, звучит круто 😄
🔗 GitHub: github.com/Paulescu/NET-NES
#nes #dotnet #emulation #gamedev #csharp #retrogaming
@csharp_ci
🧠 C#‑задача с подвохом: как работает `foreach` на изменяемой коллекции?
Представим, у нас есть такой код:
❓ Вопрос: Что произойдёт при запуске?
🔍 Разбор
На первый взгляд — ничего особенного. Но при запуске вы получите:
💣 Почему так?Потому что `foreach` в C# использует **итератор (Enumerator)**, который **не допускает изменений коллекции во время прохода**. Это встроенная защита от непредсказуемых багов и гонок.
✅ Как можно обойти?
Вариант 1 — использовать
Вариант 2 — создать копию коллекции:
🧠 Вывод:
В C# `foreach` нельзя использовать на коллекциях, которые вы планируете менять в теле цикла. Это распространённая ловушка даже для опытных разработчиков.
📎 Советы:
- При изменениях — лучше
- Внимательно читайте исключения:
Поделитесь с коллегами — пусть никто не попадается 😊
@csharp_ci
Представим, у нас есть такой код:
List<int> numbers = new List<int> { 1, 2, 3, 4 };
foreach (var n in numbers)
{
Console.WriteLine(n);
if (n == 2)
numbers.Remove(n); // 😬
}
❓ Вопрос: Что произойдёт при запуске?
🔍 Разбор
На первый взгляд — ничего особенного. Но при запуске вы получите:
1
2
Unhandled exception. System.InvalidOperationException:
Collection was modified; enumeration operation may not execute.
💣 Почему так?
✅ Как можно обойти?
Вариант 1 — использовать
for
вместо foreach
:
for (int i = 0; i < numbers.Count; i++)
{
if (numbers[i] == 2)
{
numbers.RemoveAt(i);
i--; // ⚠️ Обязательно откатить индекс!
}
}
Вариант 2 — создать копию коллекции:
foreach (var n in numbers.ToList())
{
if (n == 2)
numbers.Remove(n);
}
🧠 Вывод:
📎 Советы:
- При изменениях — лучше
for
или .ToList()
- Внимательно читайте исключения:
InvalidOperationException
— ваш друг в отладкеПоделитесь с коллегами — пусть никто не попадается 😊
@csharp_ci
Высшее на новом уровне: онлайн-магистратура от Яндекса и ИТМО. Здесь фундаментальные знания и практика для карьерного роста, а ещё — учёба, которую можно совмещать с работой и жизнью.
IT‑специальность с экспертизой Яндекса + диплом магистра гособразца = новая ступень в карьере. Приёмная кампания уже идёт!
Все подробности — на дне открытых дверей:
— Разбор совместной программы с ИТМО.
— Всё о формате прикладной онлайн-магистратуры: что взяли от классического высшего, а что добавили из опыта специалистов Яндекса.
— Общение с экспертами из вуза и ответы на вопросы.
— Всё про поступление: сроки, экзамены, документы, оплата и образовательный кредит.
▷ Ждём вас 26 июня в 19:00 мск.
IT‑специальность с экспертизой Яндекса + диплом магистра гособразца = новая ступень в карьере. Приёмная кампания уже идёт!
Все подробности — на дне открытых дверей:
— Разбор совместной программы с ИТМО.
— Всё о формате прикладной онлайн-магистратуры: что взяли от классического высшего, а что добавили из опыта специалистов Яндекса.
— Общение с экспертами из вуза и ответы на вопросы.
— Всё про поступление: сроки, экзамены, документы, оплата и образовательный кредит.
▷ Ждём вас 26 июня в 19:00 мск.
🏗️ Value Objects и DDD в ASP.NET Core — подробный гайд от Telerik
В новом блоге Telerik разбирается ключевой принцип Domain-Driven Design (DDD) — Value Objects — и как грамотно реализовать их в ASP.NET Core.
📌 Что такое Value Object:
• Объект без идентичности
• Сравнивается по значению, а не по ссылке
• Иммутабельный по своей сути
• Является частью бизнес-логики (например,
🛠 В статье:
• Почему использовать Value Objects вместо простых типов
• Как реализовать их в .NET (структура, инварианты, валидация)
• Примеры кода, включая
• Как внедрять их в Entity Framework Core без боли
💡 Отличный материал для тех, кто хочет строить чистую доменную модель и развивать архитектурное мышление.
🔗 Читай статью:
https://www.telerik.com/blogs/domain-driven-design-principles-value-objects-aspnet-core
#DDD #ASPNetCore #ValueObjects #SoftwareArchitecture #Telerik
В новом блоге Telerik разбирается ключевой принцип Domain-Driven Design (DDD) — Value Objects — и как грамотно реализовать их в ASP.NET Core.
📌 Что такое Value Object:
• Объект без идентичности
• Сравнивается по значению, а не по ссылке
• Иммутабельный по своей сути
• Является частью бизнес-логики (например,
Money
, Email
, `Address`)🛠 В статье:
• Почему использовать Value Objects вместо простых типов
• Как реализовать их в .NET (структура, инварианты, валидация)
• Примеры кода, включая
record
, struct
и кастомные value equality • Как внедрять их в Entity Framework Core без боли
💡 Отличный материал для тех, кто хочет строить чистую доменную модель и развивать архитектурное мышление.
🔗 Читай статью:
https://www.telerik.com/blogs/domain-driven-design-principles-value-objects-aspnet-core
#DDD #ASPNetCore #ValueObjects #SoftwareArchitecture #Telerik
🔧 Shift Left с архитектурным тестированием в .NET
Что делать, чтобы ваш модульный (или монолитный) .NET-проект не превратился в «болото кода» спустя пару месяцев? Поможет механизм architecture testing, который позволяет строго контролировать архитектуру прямо в CI-пайплайне.
🎯 Почему это важно
• Технический долг неизбежен: быстрые фиксы, дедлайны, новые участники — архитектура разваливается
• Architecture tests — это сдвиг влево, позволяющий обнаруживать нарушения структуры на ранних этапах разработки
• Это как страховка: если кто-то случайно нарушил архитектурные правила — сборка падает
🧩 Как это работает (на примере NetArchTest)
✅ Можно проверять любой дизайн:
• Модули — должны вызывать друг друга только через public API
• Слои Clean Architecture — например, Domain не должен ссылаться на Infrastructure
• Правила дизайна — все
• Конвенции имен — например, все CommandHandler'ы должны оканчиваться на
🛠 Итого:
• Architecture tests — не просто инструмент, а средство контроля архитектуры
• Работает как компилятор для архитектурных правил — это гарантирует соблюдение структуры
• Идеально подходит для modular monolith, Clean Architecture и крупных систем
• Сдвигает баги из продакшна в CI-пайплайн
🧭 Как начать:
1. Выберите библиотеку (ArchUnitNET, NetArchTest, …)
2. Напишите пару тестов — например, на зависимости между слоями
3. Интегрируйте в CI (GitHub Actions, Azure Pipelines, TeamCity и др.)
4. Соблюдайте — и архитектура останется в целости
🎯 Ключевой вывод
С architecture testing вы не просто «следуете стандартам» — вы автоматизируете дизайн, позволяя команде фокусироваться на логике, а не на структуре. Shift Left не для QA — теперь и архитектура под защитой.
📚 Подробнее
Что делать, чтобы ваш модульный (или монолитный) .NET-проект не превратился в «болото кода» спустя пару месяцев? Поможет механизм architecture testing, который позволяет строго контролировать архитектуру прямо в CI-пайплайне.
🎯 Почему это важно
• Технический долг неизбежен: быстрые фиксы, дедлайны, новые участники — архитектура разваливается
• Architecture tests — это сдвиг влево, позволяющий обнаруживать нарушения структуры на ранних этапах разработки
• Это как страховка: если кто-то случайно нарушил архитектурные правила — сборка падает
🧩 Как это работает (на примере NetArchTest)
// Проверка: Ticketing-модуль не должен зависеть от Users, Events и т.д.
Types.InAssemblies(ticketingAssemblies)
.That().DoNotHaveDependencyOnAny(otherModules)
.Should().NotHaveDependencyOnAny(otherModules)
.GetResult()
.ShouldBeSuccessful();
// Проверка Clean Architecture:
Types.InAssembly(DomainAssembly)
.Should().NotHaveDependencyOn(ApplicationAssembly.GetName().Name)
.GetResult()
.ShouldBeSuccessful();
✅ Можно проверять любой дизайн:
• Модули — должны вызывать друг друга только через public API
• Слои Clean Architecture — например, Domain не должен ссылаться на Infrastructure
• Правила дизайна — все
IDomainEvent
должны быть sealed
• Конвенции имен — например, все CommandHandler'ы должны оканчиваться на
CommandHandler
🛠 Итого:
• Architecture tests — не просто инструмент, а средство контроля архитектуры
• Работает как компилятор для архитектурных правил — это гарантирует соблюдение структуры
• Идеально подходит для modular monolith, Clean Architecture и крупных систем
• Сдвигает баги из продакшна в CI-пайплайн
🧭 Как начать:
1. Выберите библиотеку (ArchUnitNET, NetArchTest, …)
2. Напишите пару тестов — например, на зависимости между слоями
3. Интегрируйте в CI (GitHub Actions, Azure Pipelines, TeamCity и др.)
4. Соблюдайте — и архитектура останется в целости
🎯 Ключевой вывод
С architecture testing вы не просто «следуете стандартам» — вы автоматизируете дизайн, позволяя команде фокусироваться на логике, а не на структуре. Shift Left не для QA — теперь и архитектура под защитой.
📚 Подробнее
Что выведет на экран этот код?
Anonymous Quiz
10%
42 0
30%
42 24
10%
0 24
8%
0 0
31%
Будет ошибка времени выполнения. Нельзя изменять readonly структуры
12%
🥒
🔧 OpenSAGE — амбициозный проект по реверс-инжинирингу игрового движка из классических стратегий. Разработчики ставят перед собой сложную задачу: воссоздать с нуля технологию SAGE, которая использовалась в играх EA Pacific, не нарушая авторских прав.
Проект находится на ранней стадии — сейчас ведется работа с форматами данных (.map, .w3d, .ini и другими) и рендерингом. Команда использует интересный подход: вместо декомпиляции исходного кода они анализируют файлы ресурсов и поведение оригинальной игры, что делает проект легальным с точки зрения законодательства.
🤖 GitHub
@csharp_ci
Проект находится на ранней стадии — сейчас ведется работа с форматами данных (.map, .w3d, .ini и другими) и рендерингом. Команда использует интересный подход: вместо декомпиляции исходного кода они анализируют файлы ресурсов и поведение оригинальной игры, что делает проект легальным с точки зрения законодательства.
🤖 GitHub
@csharp_ci
📈 Мониторинг .NET‑приложений с помощью OpenTelemetry и Grafana
Ваше приложение работает в продакшене, но вы не видите, что происходит? Забудьте об угадках — пора включить Observability 🔍
👨💻 В блоге Милана Йовановича рассказывается, как с помощью OpenTelemetry встроить трассировки, метрики и логи прямо в .NET-приложение, а затем визуализировать всё это в Grafana Cloud — без привязки к конкретному вендору
🚦 Быстрые шаги:
- Устанавливаем NuGet пакеты:
- В
- Настраиваем экспорт через OTLP в Grafana Cloud — задаём endpoint и токен
📊 Что получаем:
- Полный стек наблюдаемости: метрики, логи, трассировки в одном интерфейсе
- Графаны Dashboard — красивые дашборды + оповещения при проблемах
- Глубокий анализ: сквозные запросы, задержки, узкие места
🎯 Почему это стоит использовать:
- Вендорно-нейтральное решение — работает с разными платформами
- Начальный уровень бесплатно в Grafana Cloud
- Настройка занимает минимум времени — максимальная отдача
📌 Подробнее
@csharp_ci
Ваше приложение работает в продакшене, но вы не видите, что происходит? Забудьте об угадках — пора включить Observability 🔍
👨💻 В блоге Милана Йовановича рассказывается, как с помощью OpenTelemetry встроить трассировки, метрики и логи прямо в .NET-приложение, а затем визуализировать всё это в Grafana Cloud — без привязки к конкретному вендору
🚦 Быстрые шаги:
- Устанавливаем NuGet пакеты:
OpenTelemetry.Extensions.Hosting
OpenTelemetry.Instrumentation.AspNetCore
OpenTelemetry.Instrumentation.Http
OpenTelemetry.Exporter.OpenTelemetryProtocol
- В
Program.cs
:
builder.Services.AddOpenTelemetry()
.ConfigureResource(r => r.AddService("MyService"))
.WithTracing(t => t
.AddAspNetCoreInstrumentation()
.AddHttpClientInstrumentation()
.AddOtlpExporter()
);
builder.Logging.AddOpenTelemetry(lo => lo.AddOtlpExporter());
- Настраиваем экспорт через OTLP в Grafana Cloud — задаём endpoint и токен
📊 Что получаем:
- Полный стек наблюдаемости: метрики, логи, трассировки в одном интерфейсе
- Графаны Dashboard — красивые дашборды + оповещения при проблемах
- Глубокий анализ: сквозные запросы, задержки, узкие места
🎯 Почему это стоит использовать:
- Вендорно-нейтральное решение — работает с разными платформами
- Начальный уровень бесплатно в Grafana Cloud
- Настройка занимает минимум времени — максимальная отдача
📌 Подробнее
@csharp_ci
🌺 Radzen Blazor Components — 90+ UI-компонентов для Blazor. Этот набор открытых компонентов позволяет быстро собирать интерфейсы на Blazor без зависимостей от JavaScript-фреймворков. Все элементы нативные для Blazor, написанные на C#, что обеспечивает полную интеграцию с экосистемой .NET.
Проект активно развивается: новые компоненты появляются регулярно, а не ждут квартальных релизов. Для коммерческой разработки доступна платная подписка с расширенной поддержкой, но базовая функциональность остаётся бесплатной под лицензией MIT.
🤖 GitHub
@csharp_ci
Проект активно развивается: новые компоненты появляются регулярно, а не ждут квартальных релизов. Для коммерческой разработки доступна платная подписка с расширенной поддержкой, но базовая функциональность остаётся бесплатной под лицензией MIT.
🤖 GitHub
@csharp_ci
Ozon Tech в поиске опытного С#-разработчика.
Знаете такого? Порекомендуйте нам и получите 150 000 ₽.
Важно: мы рассматриваем кандидатов, которые не работали у нас и не собеседовались последние 3 месяца.
За подробностями заходите на страницу программы рекомендаций.
Знаете такого? Порекомендуйте нам и получите 150 000 ₽.
Важно: мы рассматриваем кандидатов, которые не работали у нас и не собеседовались последние 3 месяца.
За подробностями заходите на страницу программы рекомендаций.
⚙️ Background Jobs в ASP.NET Core — просто и эффективно
Хочешь запускать периодические задачи в фоне? В ASP.NET Core это можно реализовать с помощью
🧱 Основные шаги:
1. ✅ Включаем конкурентный запуск/остановку сервисов:
2. 🌀 Реализуем фоновую задачу:
📌 Особенности:
-
-
- Встроенный контроль остановки через
💡 Подходит для:
• Регулярных проверок
• Очистки кэша
• Периодических sync-задач
#aspnetcore #dotnet #backgroundjobs #csharp #dev
Хочешь запускать периодические задачи в фоне? В ASP.NET Core это можно реализовать с помощью
BackgroundService
и PeriodicTimer
. Ни Hangfire, ни Quartz не нужны, если всё просто.🧱 Основные шаги:
1. ✅ Включаем конкурентный запуск/остановку сервисов:
builder.Services.Configure<HostOptions>(o =>
{
o.ServicesStartConcurrently = true;
o.ServicesStopConcurrently = true;
});
2. 🌀 Реализуем фоновую задачу:
public class PeriodicBackgroundTask : BackgroundService
{
private readonly TimeSpan _period = TimeSpan.FromSeconds(5);
private readonly ILogger<PeriodicBackgroundTask> _logger;
public PeriodicBackgroundTask(ILogger<PeriodicBackgroundTask> logger)
{
_logger = logger;
}
protected override async Task ExecuteAsync(CancellationToken stoppingToken)
{
using PeriodicTimer timer = new PeriodicTimer(_period);
while (!stoppingToken.IsCancellationRequested &&
await timer.WaitForNextTickAsync(stoppingToken))
{
_logger.LogInformation("Executing PeriodicBackgroundTask");
}
}
}
📌 Особенности:
-
BackgroundService
— стандартный способ запускать фоновые задачи в ASP.NET Core -
PeriodicTimer
— простой способ повторять с задержкой - Встроенный контроль остановки через
CancellationToken
💡 Подходит для:
• Регулярных проверок
• Очистки кэша
• Периодических sync-задач
#aspnetcore #dotnet #backgroundjobs #csharp #dev
📑 Sharpmake — мощный генератор проектов для Visual Studio, созданный Ubisoft для нужд крупных игровых проектов. Этот инструмент умеет мгновенно создавать тысячи .vcxproj и .sln файлов, поддерживая сложные мультиплатформенные конфигурации, от разных уровней оптимизации до рендеринговых API.
Инструмент использует C# для написания скриптов, что даёт доступ к автодополнению и отладке прямо в IDE. Под капотом система расширений позволяет добавлять поддержку закрытых платформ через NDA-модули.
🤖 GitHub
@csharp_ci
Инструмент использует C# для написания скриптов, что даёт доступ к автодополнению и отладке прямо в IDE. Под капотом система расширений позволяет добавлять поддержку закрытых платформ через NDA-модули.
🤖 GitHub
@csharp_ci
Forwarded from Machinelearning
Недавно, в одном из интервью Генеральный директор Anthropic Дэрио Амодеи предупредил, что ИИ может ликвидировать почти половину всех вакансий начального уровня для "белых воротничков" и поднять безработицу до 10-20% в течение следующих пяти лет.
Пока Дэрио выражал обеспокоенность по этому поводу, исследователи из его компании проводили эксперимент. Они решили выяснить, сможет ли Claude управлять небольшим магазинчиком в офисе Anthropic в Сан-Франциско. Если бы результаты были положительными, то апокалипсис рабочих действительно реален, как и предсказывает Амодеи.
В эксперименте перед Claude (3.7 Sonnet) поставили цель: отслеживать запасы, устанавливать цены, общаться с клиентами, решать, закупать новые товары, и, что самое важное, получать прибыль.
Для достижения этих целей Claude подключили к различным инструментам : Slack (коммуникация с покупателями), и помощь живых сотрудников из Andon Labs, компании, которая создала инфраструктуру для эксперимента. Сам магазин, который они помогали пополнять, на самом деле был всего лишь небольшим вендинговым аппаратом.
Эксперимент вышел из-под контроля практически сразу:
Эксперимент показал, что ИИ пока не готов забирать работу у людей. Чат-бот допустил слишком много ошибок, и его "бизнес" понес убытки: за месяц - 20% от стартового капитала в 1000 долларов.
Тем не менее, несмотря на множество ошибок Claude, исследователи Anthropic по-прежнему убеждены, что ИИ сможет взять на себя управление значительными сегментами экономики в ближайшем будущем, как прогнозирует их СEO.
Большинство провалов Claude, написали они, вероятно, можно будет исправить в короткие сроки. Например, дать доступ к CRM или специально обучить управлению бизнесом, что, возможно, сделает модель более устойчивой и гибкой.
@ai_machinelearning_big_data
#news #ai #ml #Сlaude
Please open Telegram to view this post
VIEW IN TELEGRAM
📘 Обновлённый обзор C#: история версий и ключевые новшества
Microsoft опубликовала подробную хронологию C# — от версии 1.0 до последней, показывая эволюцию языка за 20+ лет:
🕰️ Обзор ключевых этапов:
• C# 1.0–2.0 — классика: базовые ООП, exception-обработка, типы значений,
• C# 3.0 — революция LINQ,
• C# 4.0 —
• C# 5.0 —
• C# 6.0 — улучшения синтаксиса: string interpolation, expression-bodied members, null-условные выражения
• C# 7.x —
• C# 8.0 — nullable reference types,
• C# 9.0 —
• C# 10 — глобальные
• C# 11 — raw string literals, generic math, pattern matching improvements
• C# 12 и далее — ожидаются расширенные метапрограммирование, списочные выражения, улучшения в безопасность и производительности
🔧 Почему это важно:
• Язык постоянно развивается, становясь выразительнее, безопаснее и удобнее
• Новые версии дают мощные инструменты — для асинхронного программирования, функционального стиля и более чистого кода
• Понимание изменений помогает быстрее адаптироваться к трендам и выбирать актуальный инструментальный стек
💡 Если вы разрабатываете на C#, стоит ознакомиться с историей версий — и понять, какие фичи уже доступны, а что стоит ожидать в будущем.
👉 Подробнее
@csharp_ci
#dotnet #csharp #programming #developer #language #whatsnew #technology
Microsoft опубликовала подробную хронологию C# — от версии 1.0 до последней, показывая эволюцию языка за 20+ лет:
🕰️ Обзор ключевых этапов:
• C# 1.0–2.0 — классика: базовые ООП, exception-обработка, типы значений,
generics
• C# 3.0 — революция LINQ,
lambda`-выражения, автоматические свойства, `var
• C# 4.0 —
dynamic
, улучшения COM и переговорчивость аннотации • C# 5.0 —
async/await
— асинхронность для всех • C# 6.0 — улучшения синтаксиса: string interpolation, expression-bodied members, null-условные выражения
• C# 7.x —
tuples
, pattern matching
, ref locals
, out variables
• C# 8.0 — nullable reference types,
ranges/indices
, асинхронные потоки • C# 9.0 —
record
, init-only properties
, top-level statements • C# 10 — глобальные
using
, file-scoped namespace
, улучшенные структуры • C# 11 — raw string literals, generic math, pattern matching improvements
• C# 12 и далее — ожидаются расширенные метапрограммирование, списочные выражения, улучшения в безопасность и производительности
🔧 Почему это важно:
• Язык постоянно развивается, становясь выразительнее, безопаснее и удобнее
• Новые версии дают мощные инструменты — для асинхронного программирования, функционального стиля и более чистого кода
• Понимание изменений помогает быстрее адаптироваться к трендам и выбирать актуальный инструментальный стек
💡 Если вы разрабатываете на C#, стоит ознакомиться с историей версий — и понять, какие фичи уже доступны, а что стоит ожидать в будущем.
👉 Подробнее
@csharp_ci
#dotnet #csharp #programming #developer #language #whatsnew #technology
Microsoft.Extensions.AI (Preview) — единый способ подключать ИИ в .NET
Библиотеки Microsoft.Extensions.AI призваны упростить жизнь .NET-разработчикам, которые начинают использовать генеративный ИИ в своих приложениях.
🧱 Вместо разрозненных SDK для каждого провайдера — единые "AI building blocks", которые можно подключать и переключать между OpenAI, Azure, Hugging Face и другими.
📦 Что даёт:
– Единый интерфейс для разных AI-провайдеров
– Простая интеграция в pipeline .NET-приложения
– Расширяемая архитектура: можно добавлять собственные провайдеры
– Поддержка RAG-сценариев, чат-интерфейсов, промптинга, трансформаций данных и т.д.
Полезно и для ASP.NET-приложений, и для десктопа, и для фона.
🧪 Пока в превью — но уже можно попробовать:
https://github.com/dotnet/ai-samples?tab=readme-ov-file#microsoftextensionsai-preview
#dotnet #ai #ml #microsoft
@csharp_ci
Библиотеки Microsoft.Extensions.AI призваны упростить жизнь .NET-разработчикам, которые начинают использовать генеративный ИИ в своих приложениях.
🧱 Вместо разрозненных SDK для каждого провайдера — единые "AI building blocks", которые можно подключать и переключать между OpenAI, Azure, Hugging Face и другими.
📦 Что даёт:
– Единый интерфейс для разных AI-провайдеров
– Простая интеграция в pipeline .NET-приложения
– Расширяемая архитектура: можно добавлять собственные провайдеры
– Поддержка RAG-сценариев, чат-интерфейсов, промптинга, трансформаций данных и т.д.
Полезно и для ASP.NET-приложений, и для десктопа, и для фона.
🧪 Пока в превью — но уже можно попробовать:
https://github.com/dotnet/ai-samples?tab=readme-ov-file#microsoftextensionsai-preview
#dotnet #ai #ml #microsoft
@csharp_ci
⁉️ Тормозит карьерный рост? Упираетесь в потолок с текущими навыками на C#? Новые проекты ускользают, а вы застряли на уровне Middle?
🔥 Пройдите тест! 💻 Ответьте на 32 вопроса и узнайте, достаточно ли у вас знаний, для обучения на онлайн-курсе «C# Developer. Professional» от OTUS.
Вас ждут реальные проекты в Scrum-командах, продвинутый уровень работы с C#, освоение SQL и NoSQL, кэширование, Unit-тесты и CI/CD.
🦾 Пора стать тем самым разработчиком, которого компании хантят друг у друга. Нужно только перейти на принципиально новый уровень.
👉 Пройдите тест и присоединяйтесь к группе: https://otus.pw/vl4b/
#реклама
О рекламодателе
🔥 Пройдите тест! 💻 Ответьте на 32 вопроса и узнайте, достаточно ли у вас знаний, для обучения на онлайн-курсе «C# Developer. Professional» от OTUS.
Вас ждут реальные проекты в Scrum-командах, продвинутый уровень работы с C#, освоение SQL и NoSQL, кэширование, Unit-тесты и CI/CD.
🦾 Пора стать тем самым разработчиком, которого компании хантят друг у друга. Нужно только перейти на принципиально новый уровень.
👉 Пройдите тест и присоединяйтесь к группе: https://otus.pw/vl4b/
#реклама
О рекламодателе
Задача: Замыкания в циклах и порядок выполнения
Рассмотрим следующий код на C#:
Вопросы:
Что выведет эта программа при запуске и почему?
Как минимально изменить код (не затрагивая содержимое Task.Run), чтобы на консоль выводились числа от 0 до 4 (по одному разу каждое)?
Подсказка: лямбда внутри Task.Run замыкает переменную i, а не её текущее значение.
@csharp_ci
Рассмотрим следующий код на C#:
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
class Program
{
static async Task Main()
{
var tasks = new List<Task>();
for (int i = 0; i < 5; i++)
{
tasks.Add(Task.Run(() => Console.WriteLine($"Значение i = {i}")));
}
await Task.WhenAll(tasks);
}
}
Вопросы:
Что выведет эта программа при запуске и почему?
Как минимально изменить код (не затрагивая содержимое Task.Run), чтобы на консоль выводились числа от 0 до 4 (по одному разу каждое)?
Подсказка:
@csharp_ci
🖥️ Turbo Vision — современный порт классического фреймворка для текстовых интерфейсов (TUI), созданного Borland в 90-х. Проект сохраняет ностальгический стиль Turbo Pascal/C++, но добавляет кросс-платформенность и поддержку Unicode.
Инструмент по минимуму изменяет оригинальный API: старые приложения могут быть перенесены почти без правок. В комплекте идут знакомые виджеты: окна, меню, диалоги и даже встроенный текстовый редактор.
🤖 GitHub
@csharp_ci
Инструмент по минимуму изменяет оригинальный API: старые приложения могут быть перенесены почти без правок. В комплекте идут знакомые виджеты: окна, меню, диалоги и даже встроенный текстовый редактор.
🤖 GitHub
@csharp_ci