3 основных типа машинного обучения
(продолжение предыдущего поста)
1. Supervised Learning (обучение с учителем)
- Суть: обучение модели на размеченных данных (data with labelled data).
- Подразделяется на два типа задач:
- Classification (классификация): прогнозирование дискретных значений (например, «да/нет», категории). Визуализировано с помощью кругов с точками разных цветов.
- Regression (регрессия): прогнозирование непрерывных значений (например, стоимость дома, температура). Показано графиком с линией тренда.
- Примеры алгоритмов:
- Логистическая регрессия (Logistic Regression);
- Деревья решений (Decision Trees);
- Случайный лес (Random Forest);
- XGBoost;
- K-ближайших соседей (K-Nearest Neighbors);
- Метод опорных векторов (Support Vector Machines) и др.
2. Unsupervised Learning (обучение без учителя)
- Суть: обучение модели на неразмеченных данных (data with unlabelled data), поиск скрытых закономерностей.
- Основная задача: Clustering (кластеризация) — группировка данных по сходству. Визуализировано разделением точек на кластеры.
- Примеры алгоритмов кластеризации:
- K-Means Clustering;
- DBSCAN;
- Иерархическая кластеризация (Hierarchical Clustering).
- Другие методы обучения без учителя:
- Метод главных компонент (PCA);
- Анализ ассоциативных правил (Association).
3. Reinforcement Learning (обучение с подкреплением)
- Суть: модель совершает действия в среде (environment), получает обратную связь (feedback) и обновляет своё состояние (state) на основе вознаграждений или штрафов.
- Визуализация: представлена в виде цикла между средой (Environment), действием (action), обратной связью (feedback) и агентом модели (Model Agent).
- Примеры алгоритмов:
- Q-Learning;
- R-Learning;
- TD-Learning.
(продолжение предыдущего поста)
1. Supervised Learning (обучение с учителем)
- Суть: обучение модели на размеченных данных (data with labelled data).
- Подразделяется на два типа задач:
- Classification (классификация): прогнозирование дискретных значений (например, «да/нет», категории). Визуализировано с помощью кругов с точками разных цветов.
- Regression (регрессия): прогнозирование непрерывных значений (например, стоимость дома, температура). Показано графиком с линией тренда.
- Примеры алгоритмов:
- Логистическая регрессия (Logistic Regression);
- Деревья решений (Decision Trees);
- Случайный лес (Random Forest);
- XGBoost;
- K-ближайших соседей (K-Nearest Neighbors);
- Метод опорных векторов (Support Vector Machines) и др.
2. Unsupervised Learning (обучение без учителя)
- Суть: обучение модели на неразмеченных данных (data with unlabelled data), поиск скрытых закономерностей.
- Основная задача: Clustering (кластеризация) — группировка данных по сходству. Визуализировано разделением точек на кластеры.
- Примеры алгоритмов кластеризации:
- K-Means Clustering;
- DBSCAN;
- Иерархическая кластеризация (Hierarchical Clustering).
- Другие методы обучения без учителя:
- Метод главных компонент (PCA);
- Анализ ассоциативных правил (Association).
3. Reinforcement Learning (обучение с подкреплением)
- Суть: модель совершает действия в среде (environment), получает обратную связь (feedback) и обновляет своё состояние (state) на основе вознаграждений или штрафов.
- Визуализация: представлена в виде цикла между средой (Environment), действием (action), обратной связью (feedback) и агентом модели (Model Agent).
- Примеры алгоритмов:
- Q-Learning;
- R-Learning;
- TD-Learning.
Telegram
METANIT.COM
3 основных типа машинного обучения
(продолжение в следующем посте)
(продолжение в следующем посте)
👍3❤2👏1
Завтра состоится главное событие года в мире .NET - релиз .NET 10 (с C# 14 и F#10 и сопутствующими технологиями типа ASP NET Core, MAUI .NET и т.д). Главное отличие .NET 10 состоит в том, что это LTS-выпуск с продленной поддержкой
Вместе с этим начнется главная ежегодная конференция для разработчиков на платформе .NET - DotNetConf 2025, где расскажут о последних нововведениях на платформе.
Кроме того, ожидается выход новой версии среды разработки - Visual Studio 2026
Прямая трансляция конференции как обычно будет доступна на "замедленном" youtube
https://www.youtube.com/watch?v=YDhJ953D6-U
Программа конференции доступна на офсайте - https://www.dotnetconf.net/agenda
Вместе с этим начнется главная ежегодная конференция для разработчиков на платформе .NET - DotNetConf 2025, где расскажут о последних нововведениях на платформе.
Кроме того, ожидается выход новой версии среды разработки - Visual Studio 2026
Прямая трансляция конференции как обычно будет доступна на "замедленном" youtube
https://www.youtube.com/watch?v=YDhJ953D6-U
Программа конференции доступна на офсайте - https://www.dotnetconf.net/agenda
YouTube
.NET Conf 2025 - Day 1
.NET Conf has been a virtual event since the beginning, and this year we're celebrating our 15th online conference. We always strive to create a world class, engaging, virtual experience for all our attendees no matter where they are. Over the years we've…
🔥16😁3❤2👍2🤣1
Тем временем в ноябрьском рейтинге языков программирования TIOBE C# сильно прибавил и может стать языком года. Как отмечают в TIOBE:
"
."
https://www.tiobe.com/tiobe-index/
"
до недавнего времени никто не мог превзойти темпы роста Python. Но сейчас, похоже, рост Python остановился. Вместо Python самым быстрорастущим языком программирования стал C#. Если C# сможет сохранить этот темп, он может даже стать языком программирования TIOBE 2025 года. Как C# добился этого? Java и C# уже давно борются за одни и те же позиции. Сейчас, похоже, C# устранил все причины не использовать C# вместо Java: теперь он кроссплатформенный, с открытым исходным кодом и содержит все новые языковые функции, необходимые разработчику. Хотя в финансовом мире Java по-прежнему доминирует, во всех других областях доли Java и C# равны. Кроме того, Microsoft набирает обороты, а C# по-прежнему остаётся их самым поддерживаемым языком программирования. Интересное замечание: C# никогда не поднимался выше Java в индексе TIOBE. Сейчас разница между двумя конкурентами составляет менее 1%
."
https://www.tiobe.com/tiobe-index/
🔥32👍8❤5🤡5🗿1
Как отладить медленное API?
(продолжение предыдущего поста)
API работает медленно. Пользователи жалуются. А вы не знаете, с чего начать поиск проблемы. Далее рассмотрим системный подход, который поможет выяснить, что тормозит ваше API.
Начните с сети:
* Высокая задержка? Разместите CDN перед статическими ресурсами.
* Большие объёмы данных? Сжимайте ответы для отправки клиенту.
Это быстрые решения, которые не требуют правки кода.
Затем проверьте код бэкенда: именно здесь чаще всего скрываются проблемы с производительностью.
* Операции, нагружающие процессор, должны выполняться в фоновом режиме.
* Сложную бизнес‑логику нужно упростить.
* Блокирующие синхронные вызовы следует заменить на асинхронные.
Профилируйте код, найдите «горячие» участки и исправьте их.
Проверьте базу данных:
* Отсутствие индексов — классическая причина замедления.
* Следите за запросами типа N+1: когда вы обращаетесь к базе данных сотни раз, хотя можно было бы выполнить один пакетный запрос.
Не забывайте про внешние API: вызовы Stripe, запросы к Google Maps — всё это вне вашего контроля.
* Выполняйте параллельные вызовы, где это возможно.
* Устанавливайте жёсткие таймауты и повторные попытки: так один медленный сторонний сервис не «повалит» весь ваш ответ.
Наконец, проверьте инфраструктуру:
* Серверы, работающие на пределе, нуждаются в автомасштабировании.
* Нужно настроить лимиты пула соединений.
Иногда проблема вовсе не в коде: вы пытаетесь обработать 10 000 запросов с ресурсами, рассчитанными на 100.
Главное — действовать методично. Не бросайтесь решать проблемы наугад. Сначала измерьте, выявите реальное узкое место, а затем устраните его.
(продолжение предыдущего поста)
API работает медленно. Пользователи жалуются. А вы не знаете, с чего начать поиск проблемы. Далее рассмотрим системный подход, который поможет выяснить, что тормозит ваше API.
Начните с сети:
* Высокая задержка? Разместите CDN перед статическими ресурсами.
* Большие объёмы данных? Сжимайте ответы для отправки клиенту.
Это быстрые решения, которые не требуют правки кода.
Затем проверьте код бэкенда: именно здесь чаще всего скрываются проблемы с производительностью.
* Операции, нагружающие процессор, должны выполняться в фоновом режиме.
* Сложную бизнес‑логику нужно упростить.
* Блокирующие синхронные вызовы следует заменить на асинхронные.
Профилируйте код, найдите «горячие» участки и исправьте их.
Проверьте базу данных:
* Отсутствие индексов — классическая причина замедления.
* Следите за запросами типа N+1: когда вы обращаетесь к базе данных сотни раз, хотя можно было бы выполнить один пакетный запрос.
Не забывайте про внешние API: вызовы Stripe, запросы к Google Maps — всё это вне вашего контроля.
* Выполняйте параллельные вызовы, где это возможно.
* Устанавливайте жёсткие таймауты и повторные попытки: так один медленный сторонний сервис не «повалит» весь ваш ответ.
Наконец, проверьте инфраструктуру:
* Серверы, работающие на пределе, нуждаются в автомасштабировании.
* Нужно настроить лимиты пула соединений.
Иногда проблема вовсе не в коде: вы пытаетесь обработать 10 000 запросов с ресурсами, рассчитанными на 100.
Главное — действовать методично. Не бросайтесь решать проблемы наугад. Сначала измерьте, выявите реальное узкое место, а затем устраните его.
Telegram
METANIT.COM
Как отладить медленное API. Схема
(продолжение в следующем посте)
(продолжение в следующем посте)
❤8🔥3👍2
Министерство Великобритании завершило обновление своего парка ПК до Windows 10 после прекращения поддержки ОС
Министерство окружающей среды, продовольствия и сельского хозяйства Великобритании (Defra) потратило £312 млн на модернизацию своей IT-инфраструктуры, включая обновление с Windows 7 до Windows 10 на десятках тысяч ноутбуков. Microsoft прекратила официальную поддержку Windows 10 в середине октября этого года.
https://habr.com/ru/news/965366/
Министерство окружающей среды, продовольствия и сельского хозяйства Великобритании (Defra) потратило £312 млн на модернизацию своей IT-инфраструктуры, включая обновление с Windows 7 до Windows 10 на десятках тысяч ноутбуков. Microsoft прекратила официальную поддержку Windows 10 в середине октября этого года.
https://habr.com/ru/news/965366/
Хабр
Министерство Великобритании завершило обновление своего парка ПК до Windows 10 после прекращения поддержки ОС
Министерство окружающей среды, продовольствия и сельского хозяйства Великобритании (Defra) потратило £312 млн на модернизацию своей IT-инфраструктуры, включая обновление с Windows 7 до Windows 10 на...
🤣40👍6😢2💯2
Microsoft выпустил новую версию своей платформы .NET - .NET 10 вместе с новой версией языка C# - C# 14, а также F# 10 и обновления для платформ на базе .NET - ASP NET Core 10, Entity Framework Core 10, .NET MAUI и т.д.
Новая версия, как обычно, включает различные улучшения, оптимизации, некоторые нововведения и т.д. Отмечу только некоторые из них.
Прежде всего это возможность запускать отдельный *.cs-файл с кодом C# как обычный скрипт без файлов решения/проекта (файлы sln / csproj), как это происходит в Python, например.
Кроме того, в C# добавлены такие фичи как
- Extension Members (члены расширений),
- Null-Conditional Assignment (присвоение, если выражение не null -
- ключевое слово field
- для параметров лямбда-выражение теперь можно использовать модификаторы
- частичные конструкторы и события
- возможность переопределения составных операторов присваивания
Стоит отметить, что .NET 10 - это LTS-выпуск с продленным сроком выпуска обновлений: окончание поддержки - 14 ноября 2028 года
Загрузить пакеты для различных платформ и ОС можно с офсайта со страницы https://dotnet.microsoft.com/en-us/download/dotnet/10.0
Новая версия, как обычно, включает различные улучшения, оптимизации, некоторые нововведения и т.д. Отмечу только некоторые из них.
Прежде всего это возможность запускать отдельный *.cs-файл с кодом C# как обычный скрипт без файлов решения/проекта (файлы sln / csproj), как это происходит в Python, например.
Кроме того, в C# добавлены такие фичи как
- Extension Members (члены расширений),
- Null-Conditional Assignment (присвоение, если выражение не null -
a?.b = M())- ключевое слово field
- для параметров лямбда-выражение теперь можно использовать модификаторы
- частичные конструкторы и события
- возможность переопределения составных операторов присваивания
Стоит отметить, что .NET 10 - это LTS-выпуск с продленным сроком выпуска обновлений: окончание поддержки - 14 ноября 2028 года
Загрузить пакеты для различных платформ и ОС можно с офсайта со страницы https://dotnet.microsoft.com/en-us/download/dotnet/10.0
Microsoft
Download .NET 10.0 (Linux, macOS, and Windows) | .NET
.NET 10.0 downloads for Linux, macOS, and Windows. .NET is a free, cross-platform, open-source developer platform for building many different types of applications.
❤32😍12👍5🤮4🥰2👏2
Также вышла новая версия среды разработки Visual Studio - Visual Studio 2026
Среди нововведений следует отметить главным образом большое внедрение и интеграция AI, поддержка визуализации с помощью диаграмм Mermaid сложных структур данных, рабочих процессов и взаимосвязей между разными компонентами, а также большие возможности для отладки приложений на .NET MAUI и C++, большая интеграция с Git и т.д.
Загрузить можно с оф сайта со страницы:
https://visualstudio.microsoft.com/downloads/
Полный список изменений: https://learn.microsoft.com/en-us/visualstudio/releases/2026/release-notes
Среди нововведений следует отметить главным образом большое внедрение и интеграция AI, поддержка визуализации с помощью диаграмм Mermaid сложных структур данных, рабочих процессов и взаимосвязей между разными компонентами, а также большие возможности для отладки приложений на .NET MAUI и C++, большая интеграция с Git и т.д.
Загрузить можно с оф сайта со страницы:
https://visualstudio.microsoft.com/downloads/
Полный список изменений: https://learn.microsoft.com/en-us/visualstudio/releases/2026/release-notes
❤28😍8🔥4🤮3👎1
Шпаргалка по важным сочетаниям клавиш для компьютера
Основные сочетания:
- CTRL+A — Выделить всё
- CTRL+C — Копировать
- CTRL+X — Вырезать
- CTRL+V — Вставить
- CTRL+Z — Отменить действие
- CTRL+B — Полужирный шрифт
- CTRL+U — Подчёркивание
- CTRL+I — Курсив
Функциональные клавиши:
- F1 — Вызов справки
- F2 — Переименовать выделенный объект
- F3 — Поиск всех файлов
- F4 — Открыть выпадающий список файлов в диалоговых окнах
- F5 — Обновить текущее окно
- F6 — Перемещение фокуса в Проводнике Windows
- F10 — Активировать опции строки меню
Сочетания с ALT:
- ALT+TAB — Переключение между открытыми приложениями
- ALT+F4 — Закрыть программу/текущее окно
- ALT+F6 — Переключение между окнами текущей программы
- ALT+ENTER — Открыть диалоговое окно «Свойства»
- ALT+SPACE — Системное меню текущего окна
- ALT+¢ — Открыть выпадающие списки в диалоговых окнах
Прочие сочетания:
- BACKSPACE — Переход в родительскую папку
- CTRL+ESC — Открыть меню «Пуск»
- CTRL+ALT+DEL — Открыть диспетчер задач / перезагрузить компьютер
- CTRL+TAB — Перемещение по вкладкам свойств
- CTRL+SHIFT+DRAG — Создать ярлык (также: правый клик + перетаскивание)
- CTRL+DRAG — Копировать файл
- ESC — Отменить последнее действие
- SHIFT — Удерживая SHIFT, вставить CD‑ROM, чтобы обойти автозапуск
- SHIFT+DRAG — Переместить файл
- SHIFT+F10 — Открыть контекстное меню (как правый клик)
- SHIFT+DELETE — Полное удаление (минуя Корзину)
- ALT+подчёркнутая буква — Открыть соответствующее меню
Управление курсором в документах:
- HOME — В начало строки / крайнее левое положение поля или экрана
- END — В конец строки / крайнее правое положение поля или экрана
- CTRL+HOME — Вверх (в начало)
- CTRL+END — Вниз (в конец)
- PAGE UP — Прокрутить документ или диалоговое окно на страницу вверх
- PAGE DOWN — Прокрутить документ или диалоговое окно на страницу вниз
- КЛАВИШИ СО СТРЕЛКАМИ — Перемещение фокуса в документах, диалоговых окнах и т. д.
- CTRL+> — К следующему слову
- CTRL+SHIFT+> — Выделить слово
Управление деревом в Проводнике Windows (цифровая клавиатура):
- * — Развернуть всё под текущим выделением
- + — Развернуть текущее выделение
- - — Свернуть текущее выделение
- ¦ — Развернуть текущее выделение или перейти к первому дочернему элементу
- ‰ — Свернуть текущее выделение или перейти к родительскому элементу
Специальные символы (ввод через ALT+код):
- ‘ — Открывающая одинарная кавычка (ALT 0145)
- ’ — Закрывающая одинарная кавычка (ALT 0146)
- “ — Открывающая двойная кавычка (ALT 0147)
- ” — Закрывающая двойная кавычка (ALT 0148)
- – — Короткое тире (ALT 0150)
- — — Длинное тире (ALT 0151)
- … — Многоточие (ALT 0133)
- • — Маркер списка (ALT 0149)
- ® — Знак регистрации (ALT 0174)
- © — Знак авторского права (ALT 0169)
- ™ — Товарный знак (ALT 0153)
- ° — Знак градуса (ALT 0176)
- ¢ — Символ цента (ALT 0162)
- ¼ — Одна четверть (ALT 0188)
- ½ — Одна вторая (ALT 0189)
- ¾ — Три четверти (ALT 0190)
Основные сочетания:
- CTRL+A — Выделить всё
- CTRL+C — Копировать
- CTRL+X — Вырезать
- CTRL+V — Вставить
- CTRL+Z — Отменить действие
- CTRL+B — Полужирный шрифт
- CTRL+U — Подчёркивание
- CTRL+I — Курсив
Функциональные клавиши:
- F1 — Вызов справки
- F2 — Переименовать выделенный объект
- F3 — Поиск всех файлов
- F4 — Открыть выпадающий список файлов в диалоговых окнах
- F5 — Обновить текущее окно
- F6 — Перемещение фокуса в Проводнике Windows
- F10 — Активировать опции строки меню
Сочетания с ALT:
- ALT+TAB — Переключение между открытыми приложениями
- ALT+F4 — Закрыть программу/текущее окно
- ALT+F6 — Переключение между окнами текущей программы
- ALT+ENTER — Открыть диалоговое окно «Свойства»
- ALT+SPACE — Системное меню текущего окна
- ALT+¢ — Открыть выпадающие списки в диалоговых окнах
Прочие сочетания:
- BACKSPACE — Переход в родительскую папку
- CTRL+ESC — Открыть меню «Пуск»
- CTRL+ALT+DEL — Открыть диспетчер задач / перезагрузить компьютер
- CTRL+TAB — Перемещение по вкладкам свойств
- CTRL+SHIFT+DRAG — Создать ярлык (также: правый клик + перетаскивание)
- CTRL+DRAG — Копировать файл
- ESC — Отменить последнее действие
- SHIFT — Удерживая SHIFT, вставить CD‑ROM, чтобы обойти автозапуск
- SHIFT+DRAG — Переместить файл
- SHIFT+F10 — Открыть контекстное меню (как правый клик)
- SHIFT+DELETE — Полное удаление (минуя Корзину)
- ALT+подчёркнутая буква — Открыть соответствующее меню
Управление курсором в документах:
- HOME — В начало строки / крайнее левое положение поля или экрана
- END — В конец строки / крайнее правое положение поля или экрана
- CTRL+HOME — Вверх (в начало)
- CTRL+END — Вниз (в конец)
- PAGE UP — Прокрутить документ или диалоговое окно на страницу вверх
- PAGE DOWN — Прокрутить документ или диалоговое окно на страницу вниз
- КЛАВИШИ СО СТРЕЛКАМИ — Перемещение фокуса в документах, диалоговых окнах и т. д.
- CTRL+> — К следующему слову
- CTRL+SHIFT+> — Выделить слово
Управление деревом в Проводнике Windows (цифровая клавиатура):
- * — Развернуть всё под текущим выделением
- + — Развернуть текущее выделение
- - — Свернуть текущее выделение
- ¦ — Развернуть текущее выделение или перейти к первому дочернему элементу
- ‰ — Свернуть текущее выделение или перейти к родительскому элементу
Специальные символы (ввод через ALT+код):
- ‘ — Открывающая одинарная кавычка (ALT 0145)
- ’ — Закрывающая одинарная кавычка (ALT 0146)
- “ — Открывающая двойная кавычка (ALT 0147)
- ” — Закрывающая двойная кавычка (ALT 0148)
- – — Короткое тире (ALT 0150)
- — — Длинное тире (ALT 0151)
- … — Многоточие (ALT 0133)
- • — Маркер списка (ALT 0149)
- ® — Знак регистрации (ALT 0174)
- © — Знак авторского права (ALT 0169)
- ™ — Товарный знак (ALT 0153)
- ° — Знак градуса (ALT 0176)
- ¢ — Символ цента (ALT 0162)
- ¼ — Одна четверть (ALT 0188)
- ½ — Одна вторая (ALT 0189)
- ¾ — Три четверти (ALT 0190)
👍22❤8🐳6🔥2🤡2❤🔥1
10 ноября 2025 года состоялся релиз кроссплатформенной среды разработки Apache NetBeans 28 с поддержкой таких языков программирования и технологий как Java SE, Java EE, PHP, C/C++, JavaScript, Rust и Groovy.
Основные изменения и дополнения в Apache NetBeans 28:
- исправления ошибок и улучшения поддержки систем сборки Gradle, Maven и Ant;
- исправления ошибок и улучшения поддержки Java:
- исправления подсветки кода;
- улучшения в поддержке импорта модулей;
- исправления автодополнения;
- исправления ошибок и улучшения поддержки PHP;
- исправления ошибок и улучшения поддержки CSS:
- добавлена поддержка свойств: margin‑block, pading‑block, scroll‑behavior, conic‑gradient, filter‑effects;
- исправления ошибок и улучшения поддержки Git:
- добавлен пункт меню для удаления локальной ветки;
- добавлен пункт меню для подключения удалённых репозиториев;
- реализовано отображение различий используемых символов новой строки при просмотре изменений;
- добавлен инструмент для кодирования и декодирования текста в Base64, URL и Hex;
- код расширения для VSCode перенесён в отдельный репозиторий;
- обеспечена полная совместимость с Gradle 9;
- устранены множество давних проблем, связанных с разрешением зависимостей проектов и обработкой файлов;
- обновлены встроенные инструменты Gradle до версии 8.11.1;
- теперь по умолчанию используется JDK 25;
- модернизирован ряд внутренних компонентов, включая обновления ASM 9.9 и улучшения системы непрерывной интеграции, расширяющие охват автоматизированного тестирования;
- команда разработчиков NetBeans также удалила встроенное расширение VS Code из основного репозитория — теперь этот проект существует независимо под названием netbeans-vscode.
https://github.com/apache/netbeans/releases/tag/28
https://netbeans.apache.org/front/main/index.html
Основные изменения и дополнения в Apache NetBeans 28:
- исправления ошибок и улучшения поддержки систем сборки Gradle, Maven и Ant;
- исправления ошибок и улучшения поддержки Java:
- исправления подсветки кода;
- улучшения в поддержке импорта модулей;
- исправления автодополнения;
- исправления ошибок и улучшения поддержки PHP;
- исправления ошибок и улучшения поддержки CSS:
- добавлена поддержка свойств: margin‑block, pading‑block, scroll‑behavior, conic‑gradient, filter‑effects;
- исправления ошибок и улучшения поддержки Git:
- добавлен пункт меню для удаления локальной ветки;
- добавлен пункт меню для подключения удалённых репозиториев;
- реализовано отображение различий используемых символов новой строки при просмотре изменений;
- добавлен инструмент для кодирования и декодирования текста в Base64, URL и Hex;
- код расширения для VSCode перенесён в отдельный репозиторий;
- обеспечена полная совместимость с Gradle 9;
- устранены множество давних проблем, связанных с разрешением зависимостей проектов и обработкой файлов;
- обновлены встроенные инструменты Gradle до версии 8.11.1;
- теперь по умолчанию используется JDK 25;
- модернизирован ряд внутренних компонентов, включая обновления ASM 9.9 и улучшения системы непрерывной интеграции, расширяющие охват автоматизированного тестирования;
- команда разработчиков NetBeans также удалила встроенное расширение VS Code из основного репозитория — теперь этот проект существует независимо под названием netbeans-vscode.
https://github.com/apache/netbeans/releases/tag/28
https://netbeans.apache.org/front/main/index.html
GitHub
Release Apache NetBeans 28 · apache/netbeans
What's Changed
Gradle
Prevents NPE if buildnoscript does not exist by @sdedic in #8716
Maven/Gradle-JUnit Integration: Support nested and toplevel non-public tests and stabiize result extraction...
Gradle
Prevents NPE if buildnoscript does not exist by @sdedic in #8716
Maven/Gradle-JUnit Integration: Support nested and toplevel non-public tests and stabiize result extraction...
👍5❤2👏1💩1
Аспекты проектирования хорошего API
(продолжение предыдующего поста)
1. Idempotency (Идемпотентность) :
* HTTP-методы и их идемпотентность:
* GET, HEAD, PUT, DELETE — идемпотентны, то есть повторные вызовы не изменяют состояние системы.
* POST, PATCH — не идемпотентны, повторные вызовы могут привести к разным результатам.
2. Versioning (Версионирование) :
* Два подхода к версионированию API:
* URL-based Versioning — версия указывается в URL (например,
* Query Parameter Versioning — версия передаётся через параметры запроса (например,
3. Noun-Based Resource Names (Имена ресурсов на основе существительных):
* Принцип построения URL на основе существительных, соответствующих ресурсам (например,
* Связь HTTP-методов с операциями CRUD:
* Create → POST
* Read → GET
* Update → PUT / PATCH
* Delete → DELETE
4. Пример API-запроса (центр изображения):
* Типичный HTTP-запрос с параметрами:
* Метод: GET
* URL:
* Заголовки:
*
*
*
5. Security (Безопасность):
* Применение JWT-токенов (JSON Web Token), который состоит из трёх частей:
* Header (заголовок) — содержит алгоритм шифрования (например, HS256).
* Payload (полезная нагрузка) — данные пользователя (например,
* Signature (подпись) — результат HMACSHA256-хэширования заголовка и полезной нагрузки с использованием секретного ключа.
6. Pagination (Пагинация):
* Механизм разбиения данных на страницы:
* limit — количество элементов на странице (например,
* offset — смещение относительно начала списка (например,
(продолжение предыдующего поста)
1. Idempotency (Идемпотентность) :
* HTTP-методы и их идемпотентность:
* GET, HEAD, PUT, DELETE — идемпотентны, то есть повторные вызовы не изменяют состояние системы.
* POST, PATCH — не идемпотентны, повторные вызовы могут привести к разным результатам.
2. Versioning (Версионирование) :
* Два подхода к версионированию API:
* URL-based Versioning — версия указывается в URL (например,
https://api.example.com/v1/users, https://api.example.com/v2/users).* Query Parameter Versioning — версия передаётся через параметры запроса (например,
https://api.example.com/users?version=1, https://api.example.com/users?version=2).3. Noun-Based Resource Names (Имена ресурсов на основе существительных):
* Принцип построения URL на основе существительных, соответствующих ресурсам (например,
/api/products).* Связь HTTP-методов с операциями CRUD:
* Create → POST
* Read → GET
* Update → PUT / PATCH
* Delete → DELETE
4. Пример API-запроса (центр изображения):
* Типичный HTTP-запрос с параметрами:
* Метод: GET
* URL:
/api/v1/orders?limit=3&offset=0* Заголовки:
*
Host: example.com*
Authorization: Bearer T4dwe!...WE (токен аутентификации)*
Accept: application/json (формат ответа)5. Security (Безопасность):
* Применение JWT-токенов (JSON Web Token), который состоит из трёх частей:
* Header (заголовок) — содержит алгоритм шифрования (например, HS256).
* Payload (полезная нагрузка) — данные пользователя (например,
sub, name, admin, iat).* Signature (подпись) — результат HMACSHA256-хэширования заголовка и полезной нагрузки с использованием секретного ключа.
6. Pagination (Пагинация):
* Механизм разбиения данных на страницы:
* limit — количество элементов на странице (например,
limit=3).* offset — смещение относительно начала списка (например,
offset=0).Telegram
METANIT.COM
Аспекты проектирования хорошего API
(продолжение в следующем посте)
(продолжение в следующем посте)
🔥5❤4👍2💯1
This media is not supported in your browser
VIEW IN TELEGRAM
Визуализация формулы многогранника Эйлера:
V - E + F = 2
или
Vertices (вершины) - Edges (ребра) + Faces (грани) = 2
V - E + F = 2
или
Vertices (вершины) - Edges (ребра) + Faces (грани) = 2
❤🔥21🔥10❤4😱3👍1🤪1
Сервис Bloomberry опубликовал исследование о том, как ИИ влияет на рынок труда в США. Аналитики сервиса изучили более 180 млн объявлений о найме за период между январем 2023 и октябрем 2025 и выявили, какие профессии теряют спрос, а какие растут.
В целом рынок труда показал падение числа вакансий примерно на 8% за год, но распределяется оно неравномерно: ИИ усиливает одни профессии и вытесняет другие.
Сильнее просели "креативщики": компьютерные графические художники (-33% г/г), фотографы (-28%), копирайтеры (-28%), журналисты (-22%) и PR-специалисты (-21%). При этом руководителей и продюсеров креативных команд сокращения не так затронули - видимо, компании сокращают именно тех, кто выполняет рутинный продакшен, а не тех, кто управляет стратегией или клиентскими проектами.
А вот ML-инженеры стали самым быстрорастущим направлением (+40% г/г), растет спрос и на специалистов по робототехнике, исследователей, научных сотрудников и инженеров дата-центров - то есть на тех, кто создает и обслуживает инфраструктуру, питающую ИИ-сервисы.
Разработчики программного обеспечения показали стабильность: спрос на них почти не изменился (рост около 2,7%). Незначительный спад наблюдается во фронтенде - частично из-за инструментов автогенерации интерфейсов, но в целом программисты остаются одной из самых "устойчивых" групп белых воротничков. Аналитики данных и специалисты по управлению данными тоже удерживают позиции, без заметных падений или скачков.
По уровням должностей меньше всего сокращения затронули топ-менеджеров (−1,7% против среднего −8%), тогда как на среднем звене и уровне рядовых специалистов падение выше. Аналитики объясняют это тем, что ИИ повышает автономность руководителей и команд, уменьшая число "слоев" между ними.
https://bloomberry.com/blog/i-analyzed-180m-jobs-to-see-what-jobs-ai-is-actually-replacing-today/
В целом рынок труда показал падение числа вакансий примерно на 8% за год, но распределяется оно неравномерно: ИИ усиливает одни профессии и вытесняет другие.
Сильнее просели "креативщики": компьютерные графические художники (-33% г/г), фотографы (-28%), копирайтеры (-28%), журналисты (-22%) и PR-специалисты (-21%). При этом руководителей и продюсеров креативных команд сокращения не так затронули - видимо, компании сокращают именно тех, кто выполняет рутинный продакшен, а не тех, кто управляет стратегией или клиентскими проектами.
А вот ML-инженеры стали самым быстрорастущим направлением (+40% г/г), растет спрос и на специалистов по робототехнике, исследователей, научных сотрудников и инженеров дата-центров - то есть на тех, кто создает и обслуживает инфраструктуру, питающую ИИ-сервисы.
Разработчики программного обеспечения показали стабильность: спрос на них почти не изменился (рост около 2,7%). Незначительный спад наблюдается во фронтенде - частично из-за инструментов автогенерации интерфейсов, но в целом программисты остаются одной из самых "устойчивых" групп белых воротничков. Аналитики данных и специалисты по управлению данными тоже удерживают позиции, без заметных падений или скачков.
По уровням должностей меньше всего сокращения затронули топ-менеджеров (−1,7% против среднего −8%), тогда как на среднем звене и уровне рядовых специалистов падение выше. Аналитики объясняют это тем, что ИИ повышает автономность руководителей и команд, уменьшая число "слоев" между ними.
https://bloomberry.com/blog/i-analyzed-180m-jobs-to-see-what-jobs-ai-is-actually-replacing-today/
Bloomberry
I analyzed 180M jobs to see what jobs AI is actually replacing today
Last Updated: November 14, 2025What impact is AI having on the job market? Everyone has an opinion, but…
🤔11👍5❤2💯1🖕1
Google выпустил новые версии фреймворка Flutter и языка Dart - Flutter 3.38 и Dart 3.10. Основные нововведения.
#### Нововведения в Dart
- Dot Shorthands
Новая фича, позволяющая опускать типы, которые Dart может вывести автоматически, для более краткого кода. Примеры:
Преимущества: Уменьшает boilerplate-код, повышает читаемость и ускоряет разработку. Поддерживает именованные конструкторы. Активировано по умолчанию в Dart 3.10 и Flutter 3.24.
#### Нововведения в Flutter
##### Улучшения веб-разработки
- Файл конфигурации `web_dev_config.yaml`:
Новый файл в корне проекта для настройки хоста, порта, сертификатов и заголовков при запуске
Преимущества: Обеспечивает консистентность настроек в команде и упрощает управление.
- Настройки прокси:
Поддержка прокси в конфиг-файле для переадресации запросов на другие серверы.
Преимущества: Упрощает разработку веб-клиентов с динамическими эндпоинтами.
- Расширенный Hot Reload на веб:
Stateful hot reload включен по умолчанию с
Преимущества: Ускоряет итерации без перезапуска приложения.
##### Улучшения фреймворка
- OverlayPortal:
Добавлен
Преимущества: Упрощает создание глобальных UI-элементов (например, уведомлений), игнорируя ограничения родителя.
- Навигация на Android:
Predictive back transitions включены по умолчанию в
Преимущества: Соответствует нативному поведению Android для плавного UX.
- Интеграция с десктопом (Windows):
Доступ к списку подключенных дисплеев с деталями (разрешение, частота обновления, физический размер).
Преимущества: Позволяет реализовывать продвинутый менеджмент окон.
- Устойчивость фреймворка:
Обработка ошибок в lifecycle-методах виджетов (например,
Преимущества: Повышает стабильность и предсказуемость.
- Другие фиксы:
Исправление
##### Обновления Material и Cupertino
- Миграция на WidgetState:
Переход от
Преимущества: Упрощает теминг; существующий код не ломается.
- IconButton.statesController:
Новый свойство для программного контроля состояний.
Преимущества: Для кастомных интерактивных дизайнов.
- Badge.count.maxCount:
Ограничение отображаемого счетчика (например, "99+" для 100+).
Преимущества: Улучшает читаемость UI.
- InkWell.onLongPressUp:
Колбэк для действий при завершении долгого нажатия.
Преимущества: Тоньше контроль жестов.
- CupertinoSlidingSegmentedControl.isMomentary:
Свойство для временных селекций без сохранения.
Преимущества: Соответствует iOS-поведению.
- CupertinoSheet:
"Stretch"-эффект при перетаскивании полностью развернутого листа.
Преимущества: Больше нативности iOS.
- Фиксы: Улучшения в
##### Улучшения скроллинга
- Sliver-робастность:
Фиксы в
Преимущества: Более предсказуемые сложные скролл-лейауты.
- SliverGrid.list:
Новый конструктор для создания гридов из списка детей.
Преимущества: Упрощает кастомные ScrollView.
- Навигация фокуса:
Улучшения в вложенных скроллах с разными осями (вертикальный список с горизонтальными каруселями).
Преимущества: Избегает неожиданных прыжков фокуса для клавиатуры/D-pad.
#### Нововведения в Dart
- Dot Shorthands
Новая фича, позволяющая опускать типы, которые Dart может вывести автоматически, для более краткого кода. Примеры:
.start вместо MainAxisAlignment.start или .all(8.0) вместо EdgeInsets.all(8.0). Преимущества: Уменьшает boilerplate-код, повышает читаемость и ускоряет разработку. Поддерживает именованные конструкторы. Активировано по умолчанию в Dart 3.10 и Flutter 3.24.
#### Нововведения в Flutter
##### Улучшения веб-разработки
- Файл конфигурации `web_dev_config.yaml`:
Новый файл в корне проекта для настройки хоста, порта, сертификатов и заголовков при запуске
flutter run. Преимущества: Обеспечивает консистентность настроек в команде и упрощает управление.
- Настройки прокси:
Поддержка прокси в конфиг-файле для переадресации запросов на другие серверы.
Преимущества: Упрощает разработку веб-клиентов с динамическими эндпоинтами.
- Расширенный Hot Reload на веб:
Stateful hot reload включен по умолчанию с
-d web-server, поддерживает несколько браузеров одновременно. Преимущества: Ускоряет итерации без перезапуска приложения.
##### Улучшения фреймворка
- OverlayPortal:
Добавлен
overlayChildLayoutBuilder для рендеринга детей в любом Overlay вверх по дереву виджетов; Overlay.of стал надежнее. Преимущества: Упрощает создание глобальных UI-элементов (например, уведомлений), игнорируя ограничения родителя.
- Навигация на Android:
Predictive back transitions включены по умолчанию в
MaterialApp (предпросмотр домашнего экрана при свайпе назад); дефолтный переход — FadeForwardsPageTransitionsBuilder. Преимущества: Соответствует нативному поведению Android для плавного UX.
- Интеграция с десктопом (Windows):
Доступ к списку подключенных дисплеев с деталями (разрешение, частота обновления, физический размер).
Преимущества: Позволяет реализовывать продвинутый менеджмент окон.
- Устойчивость фреймворка:
Обработка ошибок в lifecycle-методах виджетов (например,
didUpdateWidget) без каскадных сбоев; ResizeImage теперь правильно реализует равенство для кэширования. Преимущества: Повышает стабильность и предсказуемость.
- Другие фиксы:
Исправление
RSuperellipse для больших радиусов углов (рендерит "pill"-форму); улучшенная детекция локали через Intl.Locale API; фикс IME на Samsung с аппаратными клавиатурами.##### Обновления Material и Cupertino
- Миграция на WidgetState:
Переход от
MaterialState к WidgetState для единообразного управления состояниями (pressed, hovered, disabled) в виджетах вроде IconButton, ElevatedButton, Checkbox. Преимущества: Упрощает теминг; существующий код не ломается.
- IconButton.statesController:
Новый свойство для программного контроля состояний.
Преимущества: Для кастомных интерактивных дизайнов.
- Badge.count.maxCount:
Ограничение отображаемого счетчика (например, "99+" для 100+).
Преимущества: Улучшает читаемость UI.
- InkWell.onLongPressUp:
Колбэк для действий при завершении долгого нажатия.
Преимущества: Тоньше контроль жестов.
- CupertinoSlidingSegmentedControl.isMomentary:
Свойство для временных селекций без сохранения.
Преимущества: Соответствует iOS-поведению.
- CupertinoSheet:
"Stretch"-эффект при перетаскивании полностью развернутого листа.
Преимущества: Больше нативности iOS.
- Фиксы: Улучшения в
DropdownMenuFormField, SegmentedButton и др.##### Улучшения скроллинга
- Sliver-робастность:
Фиксы в
SliverMainAxisGroup и SliverCrossAxisGroup для жестов, hit-testing, оверскролла и фокуса. Преимущества: Более предсказуемые сложные скролл-лейауты.
- SliverGrid.list:
Новый конструктор для создания гридов из списка детей.
Преимущества: Упрощает кастомные ScrollView.
- Навигация фокуса:
Улучшения в вложенных скроллах с разными осями (вертикальный список с горизонтальными каруселями).
Преимущества: Избегает неожиданных прыжков фокуса для клавиатуры/D-pad.
👍3👀2🥰1👏1
##### Улучшения доступности
- Дефолтная доступность на iOS:
Включена по умолчанию через
Преимущества: Упрощает отладку.
- Отладка Semantics Tree:
Преимущества: Быстрее диагностика.
- SliverSemantics:
Новый виджет для аннотаций sliver-деревьев (заголовки, роли, лейблы) в
Преимущества: Лучшая поддержка screen readers.
- Виджеты: Доступность по умолчанию в
##### Поддержка iOS и деплой
- Платформенная поддержка: Полная совместимость с iOS 18, Xcode 16, macOS 15.
- Devicectl: Новый метод деплоя через CLI Xcode 16 без запуска IDE.
Преимущества: Ускоряет тестирование на физических устройствах.
- UIScene Lifecycle: Обязательная миграция для iOS 18+; ручная или авто-миграция.
Преимущества: Будущая совместимость.
##### Поддержка Android
- 16KB Page Size: Обновление NDK до r28 для Android 15+ (требование Google Play к ноябрю 2025).
Преимущества: До 30% быстрее запуск на high-RAM устройствах.
- Фикс утечки памяти: В Activities при уничтожении (с 3.22.0).
- Зависимости: Совместимость с Java 17, KGP 2.2.0, AGP 8.7.1, Gradle 8.9; дефолтные API-уровни (compileSdk 35, targetSdk 35, minSdk 24).
##### Улучшения движка
- Performance Overlay: Рефакторинг для эффективности (статья обрывается, но подразумевает оптимизации).
Эти обновления делают Flutter более зрелым для кросс-платформенной разработки, с акцентом на веб, доступность и нативную интеграцию.
https://blog.dart.dev/announcing-dart-3-10-ea8b952b6088
https://blog.flutter.dev/whats-new-in-flutter-3-38-3f7b258f7228
- Дефолтная доступность на iOS:
Включена по умолчанию через
WidgetsFlutterBinding.instance.ensureSemantics. Преимущества: Упрощает отладку.
- Отладка Semantics Tree:
debugDumpSemanticsTree включает результаты валидации ввода текста. Преимущества: Быстрее диагностика.
- SliverSemantics:
Новый виджет для аннотаций sliver-деревьев (заголовки, роли, лейблы) в
CustomScrollView. Преимущества: Лучшая поддержка screen readers.
- Виджеты: Доступность по умолчанию в
CupertinoExpansionTile, объявления в AutoComplete, большие тач-таргеты в TimePicker.##### Поддержка iOS и деплой
- Платформенная поддержка: Полная совместимость с iOS 18, Xcode 16, macOS 15.
- Devicectl: Новый метод деплоя через CLI Xcode 16 без запуска IDE.
Преимущества: Ускоряет тестирование на физических устройствах.
- UIScene Lifecycle: Обязательная миграция для iOS 18+; ручная или авто-миграция.
Преимущества: Будущая совместимость.
##### Поддержка Android
- 16KB Page Size: Обновление NDK до r28 для Android 15+ (требование Google Play к ноябрю 2025).
Преимущества: До 30% быстрее запуск на high-RAM устройствах.
- Фикс утечки памяти: В Activities при уничтожении (с 3.22.0).
- Зависимости: Совместимость с Java 17, KGP 2.2.0, AGP 8.7.1, Gradle 8.9; дефолтные API-уровни (compileSdk 35, targetSdk 35, minSdk 24).
##### Улучшения движка
- Performance Overlay: Рефакторинг для эффективности (статья обрывается, но подразумевает оптимизации).
Эти обновления делают Flutter более зрелым для кросс-платформенной разработки, с акцентом на веб, доступность и нативную интеграцию.
https://blog.dart.dev/announcing-dart-3-10-ea8b952b6088
https://blog.flutter.dev/whats-new-in-flutter-3-38-3f7b258f7228
Medium
Announcing Dart 3.10
Today, we’re excited to announce the release of Dart 3.10!
🔥4👍2👏1
СТРАТЕГИИ МАСШТАБИРОВАНИЯ В ПРОЕКТИРОВАНИИ СИСТЕМ
(описание в следующем посте)
(описание в следующем посте)
❤3👍3👏1