🍏 fileprivate vs private
🔹 Свойство fileprivate может быть прочитано в любом месте того же файла Swift, но не за его пределами.
🔹 Свойство private можно прочитать только внутри типа, в котором оно было объявлено (а также в расширениях этого типа в том же файле).
Подробнее о private и fileprivate здесь.
#Swift #iOS
🔹 Свойство fileprivate может быть прочитано в любом месте того же файла Swift, но не за его пределами.
🔹 Свойство private можно прочитать только внутри типа, в котором оно было объявлено (а также в расширениях этого типа в том же файле).
Подробнее о private и fileprivate здесь.
#Swift #iOS
Sarunw
Swift fileprivate vs private | Sarunw
Learn the difference between two similar access levels in Swift, private and fileprivate.
👍1
Sword — инъекция зависимостей во время компиляции
Это библиотека для инъекции зависимостей во время компиляции для Swift, вдохновленная Dagger.
Когда вы объявляете зависимости и указываете, как их удовлетворить, используя Swift Macros, Sword автоматически генерирует код инъекции зависимостей во время компиляции. Sword просматривает ваш код и проверяет графы зависимостей, гарантируя, что все зависимости объекта могут быть удовлетворены, что исключает ошибки в рантайме.
https://github.com/rockname/sword
Это библиотека для инъекции зависимостей во время компиляции для Swift, вдохновленная Dagger.
Когда вы объявляете зависимости и указываете, как их удовлетворить, используя Swift Macros, Sword автоматически генерирует код инъекции зависимостей во время компиляции. Sword просматривает ваш код и проверяет графы зависимостей, гарантируя, что все зависимости объекта могут быть удовлетворены, что исключает ошибки в рантайме.
https://github.com/rockname/sword
❤1
В бета-версии iOS 18.2 появилась опция менять дефолтные приложения. Можно устанавливать свой мессенджер, приложение для звонков, почту и менеджер паролей.
Пока iPhone видит только альтернативные клиенты почты. Мы заменили на Gmail — теперь если в любом приложении нажать на чей-то электронный адрес, открывается именно он.
В теории это значит, что Siri с Apple Intelligence будет полезной в поиске данных из сторонних приложений, а не только из iCloud. Но узнаем мы это только после релиза операционки.
Пока iPhone видит только альтернативные клиенты почты. Мы заменили на Gmail — теперь если в любом приложении нажать на чей-то электронный адрес, открывается именно он.
В теории это значит, что Siri с Apple Intelligence будет полезной в поиске данных из сторонних приложений, а не только из iCloud. Но узнаем мы это только после релиза операционки.
👍2🤯1
🌟 GitHubVerge — мощная библиотека для управления состоянием
Verge представляет собой высокоэффективную и масштабируемую библиотеку для управления состоянием приложений на Swift. Разработана с акцентом на реальные сценарии использования, она обеспечивает удобный и интуитивный подход к управлению состоянием приложения, избегая сложностей, связанных с действиями и редукторами. Verge совместим как с UIKit, так и со SwiftUI.
📌 Github
#ios #mobile
Verge представляет собой высокоэффективную и масштабируемую библиотеку для управления состоянием приложений на Swift. Разработана с акцентом на реальные сценарии использования, она обеспечивает удобный и интуитивный подход к управлению состоянием приложения, избегая сложностей, связанных с действиями и редукторами. Verge совместим как с UIKit, так и со SwiftUI.
📌 Github
#ios #mobile
🔥3👍2❤1🥰1
Forwarded from Machinelearning
Apple выпустила невероятно быстрые модели Core ML и приложение для iOS, позволяющее запускать их на iPhone! ⚡
Эти модели можно подключить к демо приложению, представленному в официальном репозитории MobileCLIP.
> S0 соответствует ViT-B/ 16 от OpenAI, но в 4,8 раза быстрее и в 2,8 раза меньше размером.
> S2 превосходит ViT-B/16 от SigLIP в 2,3 раза, при этом в 2,1 раза меньше по размеру, при этом используется для обучения в 3 раза меньше данных.
> MobileCLIP-B(LT) достигает 77,2%-ную точность обработки изображений, превосходя DFN, SigLIP и даже ViT-L/14@336 от OpenAI
conda create -n clipenv python=3.10
conda activate clipenv
pip install -e .
Пример использования:
Python
import torch
from PIL import Image
import mobileclip
model, _, preprocess = mobileclip.create_model_and_transforms('mobileclip_s0', pretrained='/path/to/mobileclip_s0.pt')
tokenizer = mobileclip.get_tokenizer('mobileclip_s0')
image = preprocess(Image.open("docs/fig_accuracy_latency.png").convert('RGB')).unsqueeze(0)
text = tokenizer(["a diagram", "a dog", "a cat"])
with torch.no_grad(), torch.cuda.amp.autocast():
image_features = model.encode_image(image)
text_features = model.encode_text(text)
image_features /= image_features.norm(dim=-1, keepdim=True)
text_features /= text_features.norm(dim=-1, keepdim=True)
text_probs = (100.0 * image_features @ text_features.T).softmax(dim=-1)
print("Label probs:", text_probs)
▪HF
▪Github
▪Результаты модели
@ai_machinelearning_big_data
#apple #coreml #mobile
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4👍3🔥1
⚡️Легкий способ получать свежие обновления и следить за трендами в разработке на вашем языке. Находите свой стек и подписывайтесь:
МАШИННОЕ ОБУЧЕНИЕ: t.iss.one/ai_machinelearning_big_data
C++ t.iss.one/cpluspluc
Python: t.iss.one/pythonl
Linux: t.iss.one/linuxacademiya
Хакинг: t.iss.one/linuxkalii
Devops: t.iss.one/DevOPSitsec
АНАЛИЗ Данных: t.iss.one/data_analysis_ml
Javascript: t.iss.one/javascriptv
C#: t.iss.one/csharp_ci
Java: t.iss.one/javatg
Базы данных: t.iss.one/sqlhub
Python собеседования: t.iss.one/python_job_interview
Мобильная разработка: t.iss.one/mobdevelop
Docker: t.iss.one/DevopsDocker
Golang: t.iss.one/golang_interview
React: t.iss.one/react_tg
Rust: t.iss.one/rust_code
ИИ: t.iss.one/vistehno
PHP: t.iss.one/phpshka
Android: t.iss.one/android_its
Frontend: t.iss.one/front
Big Data: t.iss.one/bigdatai
Собеседования МЛ: t.iss.one/machinelearning_interview
МАТЕМАТИКА: t.iss.one/data_math
Kubernets: t.iss.one/kubernetc
Разработка игр: https://t.iss.one/gamedev
💼 Папка с вакансиями: t.iss.one/addlist/_zyy_jQ_QUsyM2Vi
Папка Go разработчика: t.iss.one/addlist/MUtJEeJSxeY2YTFi
Папка Python разработчика: t.iss.one/addlist/eEPya-HF6mkxMGIy
Папка ML: https://t.iss.one/addlist/2Ls-snqEeytkMDgy
Папка FRONTEND: https://t.iss.one/addlist/mzMMG3RPZhY2M2Iy
😆ИТ-Мемы: t.iss.one/memes_prog
🇬🇧Английский: t.iss.one/english_forprogrammers
🧠ИИ: t.iss.one/vistehno
🎓954ГБ ОПЕНСОРС КУРСОВ: @courses
📕Ит-книги бесплатно: https://t.iss.one/addlist/BkskQciUW_FhNjEy
МАШИННОЕ ОБУЧЕНИЕ: t.iss.one/ai_machinelearning_big_data
C++ t.iss.one/cpluspluc
Python: t.iss.one/pythonl
Linux: t.iss.one/linuxacademiya
Хакинг: t.iss.one/linuxkalii
Devops: t.iss.one/DevOPSitsec
АНАЛИЗ Данных: t.iss.one/data_analysis_ml
Javascript: t.iss.one/javascriptv
C#: t.iss.one/csharp_ci
Java: t.iss.one/javatg
Базы данных: t.iss.one/sqlhub
Python собеседования: t.iss.one/python_job_interview
Мобильная разработка: t.iss.one/mobdevelop
Docker: t.iss.one/DevopsDocker
Golang: t.iss.one/golang_interview
React: t.iss.one/react_tg
Rust: t.iss.one/rust_code
ИИ: t.iss.one/vistehno
PHP: t.iss.one/phpshka
Android: t.iss.one/android_its
Frontend: t.iss.one/front
Big Data: t.iss.one/bigdatai
Собеседования МЛ: t.iss.one/machinelearning_interview
МАТЕМАТИКА: t.iss.one/data_math
Kubernets: t.iss.one/kubernetc
Разработка игр: https://t.iss.one/gamedev
💼 Папка с вакансиями: t.iss.one/addlist/_zyy_jQ_QUsyM2Vi
Папка Go разработчика: t.iss.one/addlist/MUtJEeJSxeY2YTFi
Папка Python разработчика: t.iss.one/addlist/eEPya-HF6mkxMGIy
Папка ML: https://t.iss.one/addlist/2Ls-snqEeytkMDgy
Папка FRONTEND: https://t.iss.one/addlist/mzMMG3RPZhY2M2Iy
😆ИТ-Мемы: t.iss.one/memes_prog
🇬🇧Английский: t.iss.one/english_forprogrammers
🧠ИИ: t.iss.one/vistehno
🎓954ГБ ОПЕНСОРС КУРСОВ: @courses
📕Ит-книги бесплатно: https://t.iss.one/addlist/BkskQciUW_FhNjEy
❤1
Old but gold: глубокое погружение в Swift Regex
Регулярные выражения — это крайне удобный способ обработки и манипулирования строками. Регулярки есть во множестве языков программирования и теперь Swift тоже поддерживает их.
В этой статье подробно разбирается то, как работают регулярные выражения в Swift и где они могут пригодиться
https://bignerdranch.com/blog/swift-regex/
#swift
Регулярные выражения — это крайне удобный способ обработки и манипулирования строками. Регулярки есть во множестве языков программирования и теперь Swift тоже поддерживает их.
В этой статье подробно разбирается то, как работают регулярные выражения в Swift и где они могут пригодиться
https://bignerdranch.com/blog/swift-regex/
#swift
👍2❤1👎1
Forwarded from Machinelearning
AIMV2 – семейство моделей визуальных энкодеров, предварительно обученных с помощью мультимодальной авторегрессионной цели, которая восстанавливает фрагменты изображений и текстовые токены, что, в итоге, позволяет AIMV2 справляться с задачами распознавания изображений, локализации объектов и мультимодального понимания.
Архитектура AIMV2 основана на ViT и использует каузальный мультимодальный декодер, который сначала регрессирует фрагменты изображения, а затем декодирует текстовые токены авторегрессионно. Визуальный энкодер использует префиксное внимание, что позволяет использовать двунаправленное внимание во время вывода без дополнительной настройки.
Семейство AIMV2 обучалось на комбинации общедоступных (DFN-2B, COYO) и собственных (HQITP) датасетов, содержащих пары "изображение-текст" и синтетические аннотации, сгенерированные предварительно обученным инструментом.
Эксперименты после обучения показали, что AIMV2-3B достигает точности 89,5% на ImageNet с замороженным транком, что лучше, чем у генеративных методов MAE и AIM. AIMV2 превосходит CLIP и SigLIP в большинстве тестов на мультимодальное понимание.
Модель совместима с LiT для zero-shot распознавания и может быть настроена для обработки изображений с различными разрешениями и соотношениями сторон.
В отрытый доступ на HF опубликованы модели:
⚠️ ! Примеры инференса с JAX и MLX доступны в репозитории AIMv2
# Clone the repository
pip install 'git+https://github.com/apple/ml-aim.git#subdirectory=aim-v2'
# Example Using PyTorch
from PIL import Image
from aim.v2.utils import load_pretrained
from aim.v1.torch.data import val_transforms
img = Image.open(...)
model = load_pretrained("aimv2-large-patch14-336", backend="torch")
transform = val_transforms(img_size=336)
inp = transform(img).unsqueeze(0)
features = model(inp)
@ai_machinelearning_big_data
#AI #ML #Vision #Apple #AIMv2
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3🔥1
#курс #reactnative
@mobdevelop
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5👍3🔥2
Forwarded from Machinelearning
ShowUI-2B - VLM на базе Qwen2-VL-2B, которая оптимизирована для взаимодействия с GUI. Она обладает глубоким пониманием пользовательских интерфейсов и навигации по ним на веб- и мобильных платформах.
Модель обрабатывает комбинацию визуальных и текстовых данных для создания соответствующих действий GUI. Она интерпретирует скриншоты и текстовые инструкции для определения точек и последовательности взаимодействия.
В качестве входных данных ShowUI-2B может принимать: скриншоты интерфейсов,
текстовые инструкции (или запросы), системные промпты, определяющие области действия и
последовательности действий.
Результат инференса модели: координаты расположения элементов пользовательского интерфейса [x,y], действия (щелчок, ввод, выбор и т.д.), значения для ввода текста и
целевые позиции для взаимодействия.
Для мобильных интерфейсов ShowUI-2B обрабатывает касания, свайпы и ввод текста.
Прикладные сферы применения :
ShowUI-2B продемонстрировала высокую эффективность в задачах zero-shot grounding (75.1% точности) и навигации по GUI на различных платформах (Web, Mobile, Online).
⚠️ Модель поддерживает интеграцию с Computer Use OOTB, проектом Desktop GUI Agent, который позволяет управлять действиями на PC с помощью LLM, запущенной локально или через API.
# Clone the Repository
git clone https://github.com/showlab/ShowUI.git
cd ShowUI
# Install Dependencies
pip install -r requirements.txt
# Start the GradioUI
python app.py
# Go to local URL: https://127.0.0.1:7860
@ai_machinelearning_big_data
#AI #ML #VLM #ShowUI
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2
⚡️ Организация кода в проекте — в какой пакет положить Kotlin класс
Содержание:
00:00 Введение
01:16 Куда можно класть Kotlin файлы
03:39 Как разделить код по Gradle модулям
06:23 Несколько папок с исходным кодом
07:42 Пакеты с кодом
14:03 Выделение кода в AAR/JAR библиотеки
#видео
@mobdevelop
Содержание:
00:00 Введение
01:16 Куда можно класть Kotlin файлы
03:39 Как разделить код по Gradle модулям
06:23 Несколько папок с исходным кодом
07:42 Пакеты с кодом
14:03 Выделение кода в AAR/JAR библиотеки
#видео
@mobdevelop
YouTube
Организация кода в проекте | В какой пакет положить Kotlin класс
В какой пакет, файл и модуль положить Kotlin классы и функции
🔗 Подкаст "Свободный слот" https://cutt.ly/NeQUvKVM?/erid=2VfnxvSoskU
🔗 Подкаст на YoutTube https://cutt.ly/GeQjhZLG?/erid=2VfnxvSoskU
🔗 Платная подписка на Boosty https://abdev.by/oroS и в Telegram…
🔗 Подкаст "Свободный слот" https://cutt.ly/NeQUvKVM?/erid=2VfnxvSoskU
🔗 Подкаст на YoutTube https://cutt.ly/GeQjhZLG?/erid=2VfnxvSoskU
🔗 Платная подписка на Boosty https://abdev.by/oroS и в Telegram…
❤3👍2🔥2