Хочу поделиться довольно простым, но как показало время, полезным способом управления медиаклавишами macOS из быстрых команд (например iOS), без дополнительных клиент-серверных приложений. Управление происходит с помощью вызова скрипта на python по ssh. Для имитации нажатия медиа клавиш использована библиотека pyobjc-framework-Quartz.
Разработка под macOS *
Пишем под настольную ОС Apple
Чего ждать разработчикам от WWDC 2023?
Всем привет, с вами я, Анна Жаркова, ведущий разработчик компании Usetech.
Apple уже опубликовала анонс WWDC 2023, который пройдет 5-9 июня. А это значит, что время загадывать и угадывать, что же нового нам представят из инструментария iOS SDK.
И начнем мы со Swift 5.8, который официально вышел (ссылка). В новой версии появились доработки, связанные как с самим sdk и Swift, так и SPM, инструментом документации и SwiftSyntax. Часть новинок уже разобрал у себя Пол Хадсон, и об этом можно почитать здесь, здесь и здесь.
Дорожная карта навыков разработчика на C++
Джеймс Гослинг как-то сказал, что Java — это C++, из которого убрали все пистолеты, ножи и дубинки, однако практика показывает, что «ножи и дубинки» становятся классным инструментом в руках опытных разработчиков. В общем, немалая часть проклятий в адрес C++ объясняется элементарным «вы просто не умеете его готовить». Мы в «Лаборатории Касперского» умеем готовить «плюсы» и поэтому любим их. C++ — низкоуровневый язык, который позволяет работать с железом и писать быстрый код и при этом содержит массу возможностей. В экосистеме «плюсов» куча проработанных паттернов, best practices и готовых библиотек под разные задачи. Язык динамично развивается — но сохраняет обратную совместимость.
В этом посте мы с помощью карты покажем, какие навыки и знания нужны разработчику на C++. Естественно, разбирать путь развития «плюсистов» будем на собственном примере — тем более что у нас в «Лаборатории Касперского» много очень разных проектов с отличающимися задачами. Однако наша карта по большей части универсальна и будет полезна всем, кто хочет развиваться в С++-разработке.
Как я неделю просидел над десятью строками кода
Недавно я столкнулся с серьезным препятствием, когда работал над возможностью перетаскивать вкладки в приложении Warp: если попытаться передвинуть конкретную вкладку, она потянет за собой всё окно. Понадобилась целая неделя изысканий и экспериментов, чтобы установить, откуда берет начало этот баг. Но в конечном итоге я исправил это в pull request-е, который состоял менее чем из десяти строк кода! Это несоответствие усилий выхлопу также заставило меня проникнуться сознанием того, что создание ПО включает в себя гораздо больше, чем просто написание кода. В этой статье я расскажу, как всё происходило.
Немного контекста: Warp – это терминал для разработчиков на базе Rust. При его создании мы использовали собственный кастомный UI-фреймворк, так что всё, что касается вкладок и перетаскивания, пришлось разрабатывать с нуля.
Истории
Windows по сравнению с MacOS
У меня родилась статья в продолжение серии хороших статей:
Перейти с Linux на macOS и не сойти с ума
7 причин почему вам не стоит переходить на Mac, или как справиться с этой демонической машиной
Я, старый дурак пользователь Windows (26 лет стажа, ну да, с 1997 г.) решил купить макбук. Вот этот, предпоследний, стильный-модный-молодежный на процессоре M1 Pro. Нафига, а главное зачем - вопрос риторический и не предполагающий ответа (захотелось). Как его можно настроить, чтобы заскорузлому виндузятнику стало возможно использовать этот чудо-компьютер с яблоком без очень сильной боли в одном месте, я попытаюсь написать в этой заметке. Хотел бы я, чтобы полгода назад мне на глаза попалась такая!
Говорящая Java
Несколько лет назад я публиковал статью о том, как писать код не глядя.
Статья неплохо зашла, на столько неплохо, что меня пригласили поднимать с колен доступность в IDE на базе IntelliJ.
С виндой то там всё было ок, а вот для MacOS требовалось вмешательство, и я вмешался. Погнали под кат, там всё расскажу. А кто буковы не любит, внизу видео с моего доклада на SnowOne по этой теме.
Настройка звукового сигнала запуска на iMac G3 1999 г. в
Чтобы изменить звук запуска iMac Slot Loading (модель PowerMac2,1), достаточно старой советской... нужно немного попотеть: изучить ЯП Forth, cделать реверс-инжиниринг пакета обновления, найти и расшифровать файлы, в которых записан звук, подделать контрольную сумму файлов, которые будут загружаться на компьютер. Впрочем, давайте обо всё по порядку.
Avalonia и котики и дизайн для разработчика
В эпоху невероятной популярности ChatGPT и OpentAI все кинулись играть с их инструментами и использовать API в своих продуктах. Я был в общих рядах и сделал продукт для тех, кому затруднительно воспользоваться официальным сайтом ChatGPT. Но в этой статье речь пойдет не о восхитительных продуктах MS, а о создании интерфейса с котиками на основе этого продукта.
Итак, у нас стоит задача: создать десктопный чат с GTP3, которым будет удобно пользоваться человеку, далекому от пк.
Диспетчеризация методов в Swift
В разных языках программирования применяется механизм диспетчеризации методов (Method Dispatch), и все разработчики имеют с ним дело. Однако, не все это осознают и не все понимают, как этот механизм работает. Поэтому данная статья будет полезна всем разработчикам на Swift, которые хотят погрузиться глубже в диспетчеризацию методов и понять принципы ее работы, что в свою очередь позволит писать более эффективный код и избежать появления некоторых неочевидных проблем. Также статья будет полезна тем, кто в поисках работы – данный вопрос часто обсуждается на собеседованиях iOS разработчиков.
Давайте разберемся, что же такое диспетчеризация, рассмотрим ее виды и случаи применения.
Kubeflow: учимся устанавливать и запускать Kubeflow на локальной машине
Рис. 1. Взаимодействие Kubeflow и Kubernetes | рисунок автора |иконки от Eucalyp
Kubeflow [1] – это созданная Google опенсорсная платформа, на которой разворачивается весь жизненный цикл разрабатываемой модели машинного обучения. Kubeflow представляет собой инструментарий, каждый компонент которого применяется для отработки каждой из стадий жизненного цикла при машинном обучении, а именно: исследования данных, конструирования признаков, преобразования признаков, обучения модели, оценки модели, тонкой настройки модели, предоставления модели и версионирования модели. Главный атрибут kubeflow заключается в том, что он предназначен для работы на базе kubernetes [2]. Таким образом, kubeflow пользуется именно теми преимуществами, которые предоставляет кластер kubernetes, в частности, оркестрацией контейнеров и автомасштабированием.
Табличная классификация и регрессия Apple ML
Одной из самых замечательных и важных особенностей работы нейронных сетей является способность работы с табличными данным. В принципе, это напрямую вытекает из их природы, однако, в плане использования совместно с Machine Learning – это свойство не так уж очевидно. Вместе с тем, именно оно раскрывает потенциал использования искусственного интеллекта в мобильных приложениях – натренированная на больших объемах данных нейросеть способна делать весьма близкие к действительности предсказания.
Apple представляет инструменты для быстрого создания и эффективного использования элементов искусственного интеллекта в ваших приложениях.
11 MacOS приложений для продуктивной работы с трекпадом
MacOS имеет большой набор возможностей по управлению с помощью трекпада, но следующие 11 приложений сделают вашу работу с ним ещё продуктивнее.
Запускаем Vagrant на MacOS Apple M1/M2
Очень часто в разработке возникает необходимость поднять локальное окружение для отладки каких-либо рабочих моментов. В своей работе я постоянно пользуюсь Vagrant для тестирования инфраструктурного кода, например ansible-ролей.
Vagrant остаётся одной из самых популярных утилит для подобных задач, имеет гибкий синтаксис и поддержку базовых алгоритмических структур – можно поднимать N и K машин в цикле, используя заранее вводимые переменные, а потом еще и ansible-inventory генерировать на выходе, разбивая машины по группам.
Долгое время я оставался пользователем MacBook на процессоре Intel, но больше так продолжаться не могло – пришлось сменить компьютер, хотя я и знал о некоторых особенностях работы М1 с виртуальными машинами.
В этой статье я расскажу, как настроить и запустить Vagrant на процессорах Apple M1/M2 и вернуться в привычный рабочий режим.
Ближайшие события
SwiftUI в 2022. Что нового?
Всем привет, с вами я, Наиль Габутдинов, iOS разработчик.
Apple выпустила первый SwiftUI в 2019 году, предлагая тем самым новый подход создания приложений в декларативном стиле. SwiftUI 4.0, представленный этим летом на WWDC 2022 вместе с iOS 16 и macOS 13 включает в себя много нововведений для более качественных и универсальных приложений под разные платформы Apple с меньшим количеством кода.
Давайте посмотрим, что нового.
Используем Objective-C в C++ без проблем
Интегрируем Objective-C код из Apple SDK в C++ проект, без переписывания всего проекта на Objective-C++, с использованием PIMPL идиомы. Также, сборка всего проекта вместе с использованием Makefile и CMake (для генерации .xcodeproject).
Яблочный Kali Linux
Приветствую всех! В данной статье я хотел поделиться с Вами своим опытом по установке операционной системы Kali Linux на MacBook с процессором Intel. В использовании UNIX-подобных операционных систем я новичок, для обучения основам и специфики рабочих задач я выбрал пару подходящих для себя дистрибутивов один из которых Kali Linux, однако в моем арсенале имеется только техника компании Apple, один экземпляр из моего яблочного стафа это старенький MacBook 12 он и станет жертвой для операции приданию Kali яблочного вкуса.
Простой mp3-плеер с графическим интерфейсом на Go
Мы продолжаем рассматривать разные платформенные применения Go (ранее мы посмотрели как использовать Go для микроконтроллеров, веб-приложений, разработки API, создания мобильных приложений) и сегодня поговорим об использовании Go для создания приложений для настольных компьютеров на примере реализации несложного mp3-плеера с поддержкой графического интерфейса. Мы будем использовать связывание с GTK для реализации интерфейса, библиотеки декодирования mp3 и взаимодействия с аудиосистемой (для Windows, Linux и MacOS).
Как запустить динозаврика Google на тачбаре? Обзор Python-библиотеки PyTouchBar
С 2016 года у некоторых моделей MacBook Pro есть сенсорная OLED-панель. По сути, она просто заменяет функциональные клавиши. Но с ней чуть интересней: на тачбар можно вывести закладки и даже медиаэлементы.
На примере игры с динозавриком показываю, как написать свою программу для тачбара с помощью открытой библиотеки PyTouchBar.
В конце статьи — конкурс на плюшевого тирекса.
Переназначение клавиш в macOS без стороннего софта и консоль как в Quake
Зачастую, в ответ на вопрос "Как переназначить клавиши на macOS?" советуют использовать сторонний софт, например, Karabiner-Elements, но простое переназначение клавиш возможно и нативными средствами.
Touch-Tab — эмулируем Cmd-Tab с помощью тачпада в macOS
В последних версиях Windows можно переключаться между окнами с помощью свайпа тремя пальцами, а между рабочими столами - четыремя. Зато в macOS всё по-другому: переключение свайпом (тремя пальцами по-умолчанию) доступно только между рабочими столами или полноэкранными приложениями. А ведь так не хочется тянуться до клавиатуры или ползти курсором в Dock, чтобы переключить приложение! Тут на помощь приходит Touch-Tab.