Open-source IDE на Qt6 для реверс-инжиниринга Android APK.
https://github.com/vaibhavpandeyvpz/apkstudio
https://github.com/vaibhavpandeyvpz/apkstudio
👍10❤1
Forwarded from Machinelearning
PrismML взяла модель класса 27B и сжала её через 1-bit quantization: с примерно 54 ГБ до 3.8–3.9 ГБ.
Заявляют, что при таком сжатии модель сохраняет около 90% качества оригинала. Это уже размер, с которым можно думать не только про серверы, но и про ноутбуки, браузер и смартфоны.
Есть и более качественная версия Ternary Bonsai 27B: около 5.9 ГБ и до 95% качества baseline.
Модель поддерживает мультимодальность, reasoning, кодинг, tool calling и агентные сценарии. То есть это не просто локальный чат, а база для локальных AI-агентов.
Для Bonsai уже сделали WebGPU demo: кастомные kernel’ы позволяют запускать модель прямо в браузере. По словам Xenova, часть WebGPU-кода помогали писать Fable 5 и GPT 5.6 Sol.
HF collection: https://huggingface.co/collections/prism-ml/bonsai-27b
WebGPU demo: https://huggingface.co/spaces/webml-community/bonsai-webgpu-kernels
@ai_machinelearning_big_data
#llm #ai #ml
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3🔥3❤2
Google убрала последний барьер для перехода с iPhone на Android 😐
В Android 17 переезд с iPhone сделали максимально бесшовным: новый смартфон сам подтягивает фотографии, видео, сообщения, контакты, сохранённые сети Wi-Fi и даже eSIM. Без отдельных приложений, без танцев с бубном и без традиционного «что-то точно не перенесётся».
На первый взгляд — просто обновление. На практике — это ломает один из последних якорей, которые держали людей в экосистеме Apple.
Кто с Pixel или новыми Samsung Z Flip8 / Z Fold8 — уже могут щупать. Остальным — подвезут позже.
В Android 17 переезд с iPhone сделали максимально бесшовным: новый смартфон сам подтягивает фотографии, видео, сообщения, контакты, сохранённые сети Wi-Fi и даже eSIM. Без отдельных приложений, без танцев с бубном и без традиционного «что-то точно не перенесётся».
На первый взгляд — просто обновление. На практике — это ломает один из последних якорей, которые держали людей в экосистеме Apple.
Кто с Pixel или новыми Samsung Z Flip8 / Z Fold8 — уже могут щупать. Остальным — подвезут позже.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥7❤1
🔥 JetBrains открыла исходники KotlinLLM - Kotlin-код, который дописывает себя во время выполнения
KotlinLLM - исследовательский плагин для IntelliJ IDEA, который позволяет делегировать часть логики приложения LLM прямо во время запуска.
Пример:
Когда приложение сталкивается с новым сценарием, плагин:
1. получает runtime-значения и типы;
2. просит LLM сгенерировать обновление;
3. компилирует новый код;
4. горячо перезагружает класс;
5. повторно выполняет исходный вызов.
Главная идея - модель не вызывается постоянно. Успешное решение сохраняется как обычный Kotlin-файл, который можно проверить, изменить, закоммитить и запускать дальше уже без LLM.
Сейчас доступны два основных механизма:
-
-
Пока это исследовательский прототип для Kotlin/JVM. Проект распространяется по лицензии Apache 2.0.
GitHub:
https://github.com/JetBrains-Research/kotlinllm-plugin
KotlinLLM - исследовательский плагин для IntelliJ IDEA, который позволяет делегировать часть логики приложения LLM прямо во время запуска.
Пример:
val apiUrl: String = asLlm(
"JetBrains/kotlin",
hint = "Верни URL для GitHub Issues API"
)
val service: GithubService = mockLlm()
Когда приложение сталкивается с новым сценарием, плагин:
1. получает runtime-значения и типы;
2. просит LLM сгенерировать обновление;
3. компилирует новый код;
4. горячо перезагружает класс;
5. повторно выполняет исходный вызов.
Главная идея - модель не вызывается постоянно. Успешное решение сохраняется как обычный Kotlin-файл, который можно проверить, изменить, закоммитить и запускать дальше уже без LLM.
Сейчас доступны два основных механизма:
-
asLlm<F, T>() - преобразует значение одного типа в другой;-
mockLlm<T>() - генерирует реализацию интерфейса и развивает её по мере появления новых сценариев.Пока это исследовательский прототип для Kotlin/JVM. Проект распространяется по лицензии Apache 2.0.
GitHub:
https://github.com/JetBrains-Research/kotlinllm-plugin
❤3👍3🔥2
💡 Android/Kotlin: не перезапускайте `Flow` после каждого поворота экрана
Частая ошибка в
У
Это может повторно инициировать запросы, чтение базы или тяжёлые вычисления.
Добавьте небольшой период ожидания:
Теперь поток продолжит работать ещё пять секунд после исчезновения последнего подписчика. Этого обычно достаточно, чтобы новая
В Compose собирайте состояние с учётом жизненного цикла:
Получается полезный баланс:
- поворот экрана не перезапускает весь pipeline;
- при реальном уходе со страницы поток остановится;
-
#Android #Kotlin #StateFlow #JetpackCompose
Частая ошибка в
ViewModel:
val uiState = repository.observeData()
.stateIn(
scope = viewModelScope,
started = SharingStarted.WhileSubscribed(),
initialValue = UiState.Loading
)
У
WhileSubscribed() тайм-аут по умолчанию равен нулю. Когда Activity пересоздаётся при повороте экрана, подписчик исчезает, upstream-поток сразу останавливается, а затем запускается заново.Это может повторно инициировать запросы, чтение базы или тяжёлые вычисления.
Добавьте небольшой период ожидания:
val uiState = repository.observeData()
.stateIn(
scope = viewModelScope,
started = SharingStarted.WhileSubscribed(5_000),
initialValue = UiState.Loading
)
Теперь поток продолжит работать ещё пять секунд после исчезновения последнего подписчика. Этого обычно достаточно, чтобы новая
Activity успела подключиться после изменения конфигурации.В Compose собирайте состояние с учётом жизненного цикла:
val uiState by viewModel.uiState.collectAsStateWithLifecycle()
Получается полезный баланс:
- поворот экрана не перезапускает весь pipeline;
- при реальном уходе со страницы поток остановится;
-
ViewModel не тратит ресурсы без активного интерфейса.5_000 - не магическое значение. Для дорогого подключения его можно увеличить, а для быстрого локального потока - уменьшить.#Android #Kotlin #StateFlow #JetpackCompose
❤2👍2
Forwarded from Machinelearning
У проектов появился переключатель контекста - модель может брать общую память или работать только с тем, что загружено внутрь проекта, игнорируя историю остальных чатов. Пересоздавать проект для этого не нужно. Проекты с общим доступом работают только во втором режиме.
Пользователи платных тарифов стали видеть на стартовом экране персональные подсказки, которые собираются из прошлых чатов и истории использования инструментов.
Бесплатным и образовательным аккаунтам добавили генерацию тестов для самопроверки.
В приложении для Android починили сброс фокуса при подключении физической клавиатуры, а кнопка голосового ввода больше не пропадает после того, как прикрепишь файл.
@ai_machinelearning_big_data
#news #ai #ml
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1👍1
🔥 Хочешь быстрее расти в IT? Хватит учиться в одиночку
Окружение решает больше, чем кажется.
Собрал папки и каналы, где можно быстрее влиться в нужное направление, следить за трендами и не вариться в своём пузыре.
AI: t.me/ai_machinelearning_big_data
Python: t.me/pythonl
Linux: t.me/linuxacademiya
Хакинг: t.me/linuxkalii
DevOps: t.me/DevOPSitsec
Docker: https://t.me/+90Z5TAyfuNU5YmRi
Golang: t.me/Golang_google
Rust: t.me/rust_code
C++: t.me/cpluspluc
C#: t.me/csharp_1001_notes
Java: t.me/javatg
JavaScript: t.me/javascriptv
React: t.me/react_tg
Frontend: t.me/front
PHP: t.me/phpshka
Android: t.me/android_its
Мобильная разработка: t.me/mobdevelop
Базы данных: t.me/sqlhub
Data Science: t.me/data_analysis_ml
Big Data: t.me/bigdatai
Математика: t.me/data_math
Физика: t.me/fizmat
Kubernetes: t.me/kubernetc
GameDev: https://t.me/gamedev
Haskell: t.me/haskell_tg
Собеседования и карьера:
DS собеседования: t.me/machinelearning_interview
Python собеседования: t.me/python_job_interview
Папка с вакансиями: 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 ГБ open-source курсов: https://t.me/+rKBQEMccAA01MTcy
ИТ-книги бесплатно: https://t.me/addlist/BkskQciUW_FhNjEy
Max Ai: https://max.ru/ai_machinelearning_big_data
Max python: https://max.ru/pythonl
ТЕХНО: https://max.ru/vistehno
Max Go: https://max.ru/Golang_google
Max Linux: https://max.ru/linuxkalii
Devops: https://max.ru/DevOPSitsec
C#: https://max.ru/csharp_ci
C++: https://max.ru/cpluspluc
SQL: https://max.ru/sqlhub
Java: https://max.ru/javatg
Подписывайся на нужные направления и собирай себе ленту, которая реально двигает вперёд.
Окружение решает больше, чем кажется.
Собрал папки и каналы, где можно быстрее влиться в нужное направление, следить за трендами и не вариться в своём пузыре.
AI: t.me/ai_machinelearning_big_data
Python: t.me/pythonl
Linux: t.me/linuxacademiya
Хакинг: t.me/linuxkalii
DevOps: t.me/DevOPSitsec
Docker: https://t.me/+90Z5TAyfuNU5YmRi
Golang: t.me/Golang_google
Rust: t.me/rust_code
C++: t.me/cpluspluc
C#: t.me/csharp_1001_notes
Java: t.me/javatg
JavaScript: t.me/javascriptv
React: t.me/react_tg
Frontend: t.me/front
PHP: t.me/phpshka
Android: t.me/android_its
Мобильная разработка: t.me/mobdevelop
Базы данных: t.me/sqlhub
Data Science: t.me/data_analysis_ml
Big Data: t.me/bigdatai
Математика: t.me/data_math
Физика: t.me/fizmat
Kubernetes: t.me/kubernetc
GameDev: https://t.me/gamedev
Haskell: t.me/haskell_tg
Собеседования и карьера:
DS собеседования: t.me/machinelearning_interview
Python собеседования: t.me/python_job_interview
Папка с вакансиями: 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 ГБ open-source курсов: https://t.me/+rKBQEMccAA01MTcy
ИТ-книги бесплатно: https://t.me/addlist/BkskQciUW_FhNjEy
Max Ai: https://max.ru/ai_machinelearning_big_data
Max python: https://max.ru/pythonl
ТЕХНО: https://max.ru/vistehno
Max Go: https://max.ru/Golang_google
Max Linux: https://max.ru/linuxkalii
Devops: https://max.ru/DevOPSitsec
C#: https://max.ru/csharp_ci
C++: https://max.ru/cpluspluc
SQL: https://max.ru/sqlhub
Java: https://max.ru/javatg
Подписывайся на нужные направления и собирай себе ленту, которая реально двигает вперёд.
❤1👍1🔥1
Single Abstract Method (SAM) интерфейсы — это интерфейсы только с одним абстрактным методом (функциональные интерфейсы). Kotlin поддерживает соглашение SAM — автоматическую конвертацию функций и lambda между Kotlin и Java.
SAM-conversions позволяют использовать Java-интерфейсы с единственным абстрактным методом в Kotlin, как если бы это были функциональные типы. В Kotlin вы можете использовать такие интерфейсы для создания лямбда-выражений без явного определения функционального типа.
При использовании интерфейса с единственным абстрактным методом в качестве функционального интерфейса в Java, вы можете передавать его экземпляры вместо лямбда-выражений. Это тоже возможно в Kotlin, но на самом деле Kotlin предоставляет более простой синтаксис для этого.
Когда вам нужно использовать функциональный интерфейс в Kotlin, вы можете передать lambda-выражение, которое соответствует сигнатуре единственного метода интерфейса, вместо экземпляра интерфейса. Компилятор сам преобразует лямбда-выражение в экземпляр интерфейса, используя функцию-расширение метода
invoke интерфейса. Пример:
interface OnClickListener {
fun onClick(view: View)
}
class Button {
fun setOnClickListener(listener: OnClickListener) {
// ...
}
}
val button = Button()
button.setOnClickListener { view ->
// обработка нажатия кнопки
}
В этом примере мы определяем интерфейс
OnClickListener с единственным абстрактным методом onClick. Затем мы создаем класс Button, который может иметь слушатель, реализующий данный интерфейс. После этого мы создаем экземпляр Button и передаем лямбда-выражение с соответствующей сигнатурой в качестве слушателя. Компилятор автоматически преобразует это лямбда-выражение в экземпляр интерфейса OnClickListener, используя функцию-расширение invoke интерфейса.#буст #JuniorKit #Kotlin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2