Microsoft добавил в .NET новый тип проекта - .NET AI Chat Template (пока в Preview-версии), который разработан, чтобы быстро создать приложение чата на базе ИИ. Этот начальный выпуск базируется на веб-приложении на базе Blazor, созданном с использованием абстракций Microsoft.Extensions.AI и Microsoft.Extensions.VectorData. Шаблон использует шаблон Retrieval Augmented Generation (RAG), который обычно используется для приложений чата.
Шаблон нового проекта доступен как через .NET CLI, так и в Visual Studio
https://devblogs.microsoft.com/dotnet/announcing-dotnet-ai-template-preview1/
Шаблон нового проекта доступен как через .NET CLI, так и в Visual Studio
https://devblogs.microsoft.com/dotnet/announcing-dotnet-ai-template-preview1/
🤯8👍4👏2🔥1🤬1😢1🤡1
В руководство по языку Python добавлена статья про Установку пакетов, пакетный менеджер pip и виртуальную среду
https://metanit.com/python/tutorial/6.8.php
#python
https://metanit.com/python/tutorial/6.8.php
#python
Metanit
Python | Установка пакетов, pip и виртуальная среда
Установка пакетов в проекте на языке программирования Python, пакетный менеджер pip, управление пакетами, виртуальная среда venv, создание и активация виртуальной среды, пример установки и использования пакета matplotlib
🔥12👍4❤🔥2
Google добавил приложение Linux Terminal в состав мартовского обновления Android 15 ("Pixel Feature Drop") для устройств Google Pixel. Приложение позволяет запустить в окружении Android виртуальную машину с Debian GNU/Linux, в которой можно выполнять обычные Linux-приложения.
Активация Linux Terminal производится в настройках для разработчиков (секция "Settings > System > Developer > Linux development environment"). Для появления данной опции необходимо активировать режим разработчика, быстро нажав семь раз на номере сборки на странице "Settings → About Phone". После первого запуска приложение предлагает загрузить на устройство образ виртуальной машины c Linux, который занимает около 500 МБ.
https://www.androidpolice.com/android-15-linux-terminal-app/
Активация Linux Terminal производится в настройках для разработчиков (секция "Settings > System > Developer > Linux development environment"). Для появления данной опции необходимо активировать режим разработчика, быстро нажав семь раз на номере сборки на странице "Settings → About Phone". После первого запуска приложение предлагает загрузить на устройство образ виртуальной машины c Linux, который занимает около 500 МБ.
https://www.androidpolice.com/android-15-linux-terminal-app/
❤24🔥6🍾2🤡1
В руководство по языку Си добавлена статья про функции setjmp и longjmp и обработку ошибок
https://metanit.com/c/tutorial/10.2.php
#c_ansi
https://metanit.com/c/tutorial/10.2.php
#c_ansi
Metanit
Язык программирования Си | Функции setjmp и longjmp и обработка ошибок
Функции setjmp и longjmp в программе на языке Си, выход из вложенных функций, обработка ошибок
🔥14👍3🤩2😍2
Разработчики проекта Wine представили выпуск фреймворка Mono 6.14.0 - альтернативную версию среды выполнения .NET. Выпуск Mono Framework 6.14.0 вобрал в себя изменения, накопившиеся за 5 лет, и является первым выпуском после того, как компания Microsoft передала разработку Mono сообществу Wine.
Mono поддерживает Linux (x86, amd64, arm64), macOS (amd64, arm64) и Windows (x86, amd64). Бинарные сборки пока не предоставляются.
В Mono 6.14.0 добавлена поддержка macOS с архитектурой ARM64. улучшено взаимодействие технологии System.Windows.Forms и протокола X11, улучшена поддержка генерируемых COM-интерфейсов и т.д.
https://www.winehq.org/news/2025030801
#dotnet #csharp
Mono поддерживает Linux (x86, amd64, arm64), macOS (amd64, arm64) и Windows (x86, amd64). Бинарные сборки пока не предоставляются.
В Mono 6.14.0 добавлена поддержка macOS с архитектурой ARM64. улучшено взаимодействие технологии System.Windows.Forms и протокола X11, улучшена поддержка генерируемых COM-интерфейсов и т.д.
https://www.winehq.org/news/2025030801
#dotnet #csharp
WineHQ
Framework Mono 6.14.0 Released
👍4
JWT — один из наиболее широко используемых методов аутентификации API, обеспечивающий безопасный, масштабируемый способ проверки клиентов без сохранения состояния.
Как работает JWT:
1) Аутентификация клиента
Клиент (пользователь, приложение или устройство) предоставляет учетные данные (например, имя пользователя/пароль) серверу аутентификации.
2) Проверка сервера
Сервер аутентификации проверяет учетные данные по своей базе данных или поставщику удостоверений, чтобы подтвердить их действительность.
3) Выпуск JWT
Если аутентификация прошла успешно, сервер:
☑️ Генерирует JWT с подтверждениями (например, идентификатор пользователя, роли, разрешения).
☑️ Подписывает JWT с помощью секретного ключа (HS256) или закрытого ключа (RS256).
4) Доставка токенов
Сервер отправляет подписанный JWT обратно клиенту в ответе.
5) Безопасное хранение
Клиент хранит JWT в безопасности, чтобы предотвратить несанкционированный доступ. HTTP-cookie-файлы являются наиболее безопасным и широко используемым методом.
6) API-запросы с JWT
Для каждого запроса к защищенному API клиент включает JWT в заголовок авторизации:
7) Сервер проверяет JWT
Перед предоставлением доступа сервер API проверяет JWT, проверяя следующие аспекты:
☑️ Подпись – подтверждает целостность токена (не подделан).
☑️ Истечение срока действия — гарантирует, что срок действия токена не истек.
☑️ Аудитория (заявление aud) — проверяет, предназначен ли токен для этого API.
☑️ Эмитент (заявление iss) — подтверждает, что токен был выпущен доверенным органом.
Если JWT действителен, сервер предоставляет доступ к запрошенному ресурсу. В противном случае он отклоняет запрос (401 Unauthorized).
8) Истечение срока действия токена и обновление
Поскольку срок действия JWT истекает по соображениям безопасности, клиенту необходим токен обновления (refresh token), чтобы получить новый:
↳ Клиент отправляет токен обновления на сервер.
↳ Сервер проверяет и выдает новый JWT, если токен обновления действителен.
↳ Новый JWT заменяет просроченный, и клиент продолжает делать запросы.
Подобный рабочий процесс обеспечивает безопасную, эффективную и не зависящую от состояния аутентификацию для API, контролируя производительность и масштабируемость.
Как работает JWT:
1) Аутентификация клиента
Клиент (пользователь, приложение или устройство) предоставляет учетные данные (например, имя пользователя/пароль) серверу аутентификации.
2) Проверка сервера
Сервер аутентификации проверяет учетные данные по своей базе данных или поставщику удостоверений, чтобы подтвердить их действительность.
3) Выпуск JWT
Если аутентификация прошла успешно, сервер:
☑️ Генерирует JWT с подтверждениями (например, идентификатор пользователя, роли, разрешения).
☑️ Подписывает JWT с помощью секретного ключа (HS256) или закрытого ключа (RS256).
4) Доставка токенов
Сервер отправляет подписанный JWT обратно клиенту в ответе.
5) Безопасное хранение
Клиент хранит JWT в безопасности, чтобы предотвратить несанкционированный доступ. HTTP-cookie-файлы являются наиболее безопасным и широко используемым методом.
6) API-запросы с JWT
Для каждого запроса к защищенному API клиент включает JWT в заголовок авторизации:
Authorization: Bearer<JWT> 7) Сервер проверяет JWT
Перед предоставлением доступа сервер API проверяет JWT, проверяя следующие аспекты:
☑️ Подпись – подтверждает целостность токена (не подделан).
☑️ Истечение срока действия — гарантирует, что срок действия токена не истек.
☑️ Аудитория (заявление aud) — проверяет, предназначен ли токен для этого API.
☑️ Эмитент (заявление iss) — подтверждает, что токен был выпущен доверенным органом.
Если JWT действителен, сервер предоставляет доступ к запрошенному ресурсу. В противном случае он отклоняет запрос (401 Unauthorized).
8) Истечение срока действия токена и обновление
Поскольку срок действия JWT истекает по соображениям безопасности, клиенту необходим токен обновления (refresh token), чтобы получить новый:
↳ Клиент отправляет токен обновления на сервер.
↳ Сервер проверяет и выдает новый JWT, если токен обновления действителен.
↳ Новый JWT заменяет просроченный, и клиент продолжает делать запросы.
Подобный рабочий процесс обеспечивает безопасную, эффективную и не зависящую от состояния аутентификацию для API, контролируя производительность и масштабируемость.
👍16💅3🔥2👏2
От владельцев сайтов требуют получать у Роскомнадзора разрешение на использование Google Analytics
Роскомнадзор стал уведомлять владельцев интернет-сайтов о том, что использование ими счетчика посещений Google Analytics приравнивается в трансграничной передаче данных. О запрете использования данного счетчика речь не идет, но его необходимо деактивировать и получать разрешение на использование.
https://www.cnews.ru/news/top/2025-03-10_ot_vladeltsev_sajtov_trebuyut
Роскомнадзор стал уведомлять владельцев интернет-сайтов о том, что использование ими счетчика посещений Google Analytics приравнивается в трансграничной передаче данных. О запрете использования данного счетчика речь не идет, но его необходимо деактивировать и получать разрешение на использование.
https://www.cnews.ru/news/top/2025-03-10_ot_vladeltsev_sajtov_trebuyut
CNews.ru
От владельцев сайтов требуют получать у Роскомнадзора разрешение на использование Google Analytics - CNews
Роскомнадзор стал уведомлять владельцев интернет-сайтов о том, что использование ими счетчика посещений Google Analytics приравнивается в трансграничной передаче данных. О запрете использования...
🤡12😐12🤯3😁2
Зоопарк протоколов API
🔹 SOAP:
Зрелый, всеобъемлющий протокол, основанный на XML,
лучше всего подходит для корпоративных приложений
🔹 RESTful:
Популярный и простой в реализации, базируется на методах HTTP
Идеально подходит для веб-сервисов
🔹 GraphQL:
Язык запроса, запрашивает определенные данные
Снижает нагрузку на сеть, ускоряет отклик
🔹 gRPC:
Современныq, высокопроизводительный способ взаимодействия, использует формат данных Protocol Buffers
Подходит для архитектур микросервисов
🔹 WebSocket:
Двунаправленные, постоянные соединения в режиме реального времени
Идеально подходит для обмена данными с малой задержкой
🔹 Webhook:
Управляемый событиями, асинхронный, использует обратные вызовы HTTP
Уведомляет системы о возникновении событий
🔹 SOAP:
Зрелый, всеобъемлющий протокол, основанный на XML,
лучше всего подходит для корпоративных приложений
🔹 RESTful:
Популярный и простой в реализации, базируется на методах HTTP
Идеально подходит для веб-сервисов
🔹 GraphQL:
Язык запроса, запрашивает определенные данные
Снижает нагрузку на сеть, ускоряет отклик
🔹 gRPC:
Современныq, высокопроизводительный способ взаимодействия, использует формат данных Protocol Buffers
Подходит для архитектур микросервисов
🔹 WebSocket:
Двунаправленные, постоянные соединения в режиме реального времени
Идеально подходит для обмена данными с малой задержкой
🔹 Webhook:
Управляемый событиями, асинхронный, использует обратные вызовы HTTP
Уведомляет системы о возникновении событий
👍18❤4🔥2
This media is not supported in your browser
VIEW IN TELEGRAM
Выступая на форуме "Council on Foreign Relations", Дарио Амодей, CEO Anthropic, одной из главных AI-компаний в мире, сделал несколько важных заявлений про рост популярности разработки при помощи ИИ в обозримом будущем.
Выдержка из его выступления: "У меня есть изрядная доля беспокойства по этому поводу. Если я посмотрю на кодирование, программирование, которые являются одной из областей, где ИИ делает наибольший прогресс, то мы обнаруживаем, что мы не так уж далеки от мира, где, как я думаю, через три-шесть месяцев мы будем там, где ИИ будет писать 90% кода. А затем через 12 месяцев мы можем оказаться в мире, где ИИ будет писать по сути весь код."
Выдержка из его выступления: "У меня есть изрядная доля беспокойства по этому поводу. Если я посмотрю на кодирование, программирование, которые являются одной из областей, где ИИ делает наибольший прогресс, то мы обнаруживаем, что мы не так уж далеки от мира, где, как я думаю, через три-шесть месяцев мы будем там, где ИИ будет писать 90% кода. А затем через 12 месяцев мы можем оказаться в мире, где ИИ будет писать по сути весь код."
🤡41🤔7😁3🤣3💊2❤1👍1🕊1
Microsoft анонсировал портирование TypeScript на Go. Переход на Go показывает двухкратное уменьшение использования памяти и десятикратное улучшение скорости работы!
Go оказался наилучшим вариантом для порта по ряду факторов:
-он достаточно низкоуровневый и в целом всегда использовался для произодительных приложений
-на него лучше всего ложится текущий код TS, который содержит огромное количество рекурсивных данных
-он очень кроссплатформенный
Переписывание 80% функционала (на данный момент) заняло полгода (началось в августе 2024). Некоторые вещи еще не поддерживаются и потребуют еще пару лет. Это важно для больших существующих продуктов,
но новые проекты или проекты без использования каких-то менее популярных фич TS смогут использовать новый компилятор уже до конца года
Кодовая база на основе JS продолжит развиваться в серии 6.x (текущая версия - 5.8), а TypeScript 6.0 представит некоторые устаревшие и критические изменения для соответствия будущей собственной кодовой базе.
Когда собственная кодовая база на Go достигнет достаточного паритета с текущим TypeScript в выпуске TypeScript 7.0.
https://devblogs.microsoft.com/typenoscript/typenoscript-native-port/
#typenoscript #ts
Go оказался наилучшим вариантом для порта по ряду факторов:
-он достаточно низкоуровневый и в целом всегда использовался для произодительных приложений
-на него лучше всего ложится текущий код TS, который содержит огромное количество рекурсивных данных
-он очень кроссплатформенный
Переписывание 80% функционала (на данный момент) заняло полгода (началось в августе 2024). Некоторые вещи еще не поддерживаются и потребуют еще пару лет. Это важно для больших существующих продуктов,
но новые проекты или проекты без использования каких-то менее популярных фич TS смогут использовать новый компилятор уже до конца года
Кодовая база на основе JS продолжит развиваться в серии 6.x (текущая версия - 5.8), а TypeScript 6.0 представит некоторые устаревшие и критические изменения для соответствия будущей собственной кодовой базе.
Когда собственная кодовая база на Go достигнет достаточного паритета с текущим TypeScript в выпуске TypeScript 7.0.
https://devblogs.microsoft.com/typenoscript/typenoscript-native-port/
#typenoscript #ts
Microsoft News
A 10x Faster TypeScript
Embarking on a native port of the existing TypeScript compiler and toolset to achieve a 10x performance speed-up.
🔥9❤2😁2🤯2👏1
В .NET-сообществе воцарилось разочарование от того, что Microsoft выбрал для TypeScript портирование на Go, на не C#, который продвигается и развивается тем же Microsoft и создателем которого является Андерс Хейлсберг, который руководит разработкой TS.
Как отмечается, также рассматривались варианты с использованием C# и Rust. Но, видимо, c Go оказалось проще достичь нужной производительности
#golang #csharp #dotnet
Как отмечается, также рассматривались варианты с использованием C# и Rust. Но, видимо, c Go оказалось проще достичь нужной производительности
#golang #csharp #dotnet
🤬24😁5🔥2🤯2🤨2