Обновить
64K+

macOS *

Настольная ОС компании Apple

78,15
Рейтинг
Сначала показывать
Порог рейтинга
Уровень сложности

Как перенести 200 ГБ с Mac на внешний диск и ничего не сломать

Уровень сложностиСредний
Время на прочтение4 мин
Охват и читатели4.1K

На Mac с диском 256–512 ГБ место заканчивается регулярно. Обычный путь известен: найти самое большое, перетащить на внешний SSD и удалить оригинал. Если разобраться, что при этом ломается, окажется, что ломается много чего, и чаще всего тихо.

Разбираю грабли: почему сверка копии сразу после записи ничего не доказывает, что exFAT теряет при переносе, какие папки переносить нельзя вовсе, как Docker съедает диск во время архивации томов и как правильно работать с шифрованным образом hdiutil.

Читать далее

Новости

Как разобрать macOS на части

Уровень сложностиСредний
Время на прочтение17 мин
Охват и читатели6.7K

Всем привет! Меня зовут Игорь Белов, я инженер в команде Мобильной Архитектуры Авито. Больше 6 лет занимаюсь iOS-разработкой, а ещё мне нравится изучать фундаментальные темы Computer Science и разбираться, как те или иные вещи работают под капотом.

В статье я расскажу, как исследовать произвольные приложения macOS с помощью отладчика LLDB и сопутствующих инструментов, и тем самым прокачать свой повседневный инструментарий разработчика. Сначала исследуем произвольно запущенные процессы в macOS с помощью LLDB. Затем на основе собранных знаний сделаем инъекцию своего кода, чтобы изменить их поведение. Ещё немного затронем теорию, подготовим и настроим окружение. В конце я посоветую, что почитать, чтобы углубиться в тему.

Статья будет полезна инженерам любого уровня, которым интересно узнать, как устроены привычные вещи. И да, это образовательная статья, а примеры из неё не предназначены для обхода защиты и несанкционированного вмешательства в чужие сервисы или данные.

На создание этого материала меня вдохновило выступление Дерека Селандера — ему уже около десяти лет, но оно всё ещё актуально. Мне захотелось взять идею оттуда в более прикладном виде и спроецировать на современную повседневную разработку.

Читать далее

Кулак вместо хоткея: делаю управление macOS жестами и разбираюсь, куда уходит память

Уровень сложностиСредний
Время на прочтение10 мин
Охват и читатели7.5K

Жест на картинке должен был быть обращен к компьютеру, а не к зрителю, но одно из ограничений картины реального мира современных моделей в том, что они видели неприличные жесты по большей части со стороны того, кому их показывают, потому им проблематично сгенерировать их со стороны того, кто их показывает.

Под катом небольшое инженерное приключение от идеи заставить макбук нужным образом реагировать на жесты разной степени приличия, до реализации, отладки и небольшой оптимизации практически применимой для этой идеи программы.

Читать далее

Хочу выложить приложения в AppStore и вообще в магазины на всех платформах. Практический кейс

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели10K

На мой взгляд самым удобным способом двухфакторной идентификации являются временные коды TOTP. А для своих проектов они хороши еще и как однофакторные. И вот именно такое приложение мы сделали и выкладывали в магазины приложений от лица уже полностью зарегистрированного разработчика - европейской фирмы. И это заняло неожиданно немало времени.

Читать далее

MTPLX против oMLX: одна модель, два сервера, разница в 3–6 раз

Уровень сложностиСредний
Время на прочтение8 мин
Охват и читатели7.4K

Вторая часть. Первая — «Локальный агент для кода на Mac: MTPLX + pi + Qwen3.8-27B».

В первой части я посадил кодового агента pi на локальную Qwen3.8-27B через MTPLX и прогнал сложную задачу в разных режимах размышлений. Осталось сомнение, которое MTPLX сам не снимает: сколько тут даёт его многотокенное предсказание (multi-token prediction, MTP), а сколько сработало бы на любой MLX-обвязке?

Толчком стал разговор с ChatGPT. Я спросил, какой MLX-сервер поставить на MacBook Pro с M4 Max, и получил уверенный ответ: oMLX быстрее и качественнее остальных на таком железе. Звучало правдоподобно, проверить было интересно вдвойне. Я поставил oMLX, взял ту же модель и ту же задачу и повторил все те же режимы. Заодно отвечаю на вопросы из комментариев к первой части — про режим по умолчанию, шум вентиляторов и память.

Итог короткий: совет не подтвердился. В моих прогонах MTPLX заканчивал задачу в 2,8–6,4 раза быстрее, а по скрытым тестам связки сравнялись. Оговорки тоже короткие: сборки модели разные, а каждый режим на oMLX я запускал по одному разу.

Читать далее

Видеоплееры живут в 2012 году, а мы — нет

Уровень сложностиПростой
Время на прочтение18 мин
Охват и читатели13K

Все мы любим VLC. Он открывает что угодно, работает на всём, не просит денег и не спрашивает, кто ты такой. IINA на маке выглядит как нормальное приложение, а не как диалог из нулевых. mpv вообще эталон: лучшая картинка, скрипты, конфиг под любую паранойю. Это отличные плееры, я пользовался всеми тремя годами и не собираюсь объяснять, что их авторы что-то делают не так.

Но однажды я поймал себя на мысли: 2026 год, вокруг десятки приложений, отполированных до состояния, когда интерфейса просто не замечаешь: он не мешает, он угадывает, он не заставляет вспоминать, где лежит нужная галочка. И ни одного такого видеоплеера. Хороших видеоплееров не существовало — не в смысле «не умеют открыть файл», а в смысле, в котором мы говорим «хорошее приложение» про всё остальное на своём компьютере. Поэтому я сделал свой.

Он называется Frame Player, он бесплатный и с открытым кодом, Windows и macOS. Дальше — список того, что меня в плеерах раздражало, и что с каждым пунктом в итоге получилось сделать.

Читать далее

CVE-2026-43783: Починить права — получить root: LPE через DesktopServicesHelper в macOS 26.5

Уровень сложностиСредний
Время на прочтение13 мин
Охват и читатели8.6K

Привет, Хабр! Меня зовут Илья Андр и я работаю в команде PT Maze. В статье расскажу, как любопытство помогло мне найти и помочь закрыть CVE-2026-43783. Демон, который Finder использует для «починки» прав на iCloud-файлы, оказался готов починить права на что угодно - включая системные директории. В этой статье разберем, как устроен DesktopServicesHelper изнутри и почему одного XPC-запроса хватило для получения root. Но для того чтобы разобраться, как именно такое стало возможно, сперва немного теории по внутренностям macOS.

Читать далее

Мышь 1000 Гц на macOS 26: NSEvent даёт ~119 событий в секунду, GCMouse ~844. Замер тремя способами

Уровень сложностиСредний
Время на прочтение11 мин
Охват и читатели5.5K

Мышь на 1000 Гц, экран MacBook Pro на 120 Гц. Я записал одно и то же движение тремя способами сразу. Системный CGEventTap увидел 843,5 события в секунду. NSEvent.mouseMoved в окне обычного Cocoa-приложения получил 118,5, по одному на кадр экрана. GCMouse из GameController отдал 843,6 и в моём прогоне ни о каких разрешениях не спросил. Ниже подробности, 17 строк кода на Swift, рекордер целиком и список того, чего я не проверял.

Читать далее

Как Splash ускоряет локальные LLM на Mac

Уровень сложностиСредний
Время на прочтение4 мин
Охват и читатели5K

Как Splash ускоряет локальные языковые модели на Mac? Разбираем спекулятивное декодирование DFlash 2, результаты тестов разработчиков и ограничения движка. Объясняем, что учитывать при выборе Q4 или Q8, сколько памяти и места на диске потребуется и как запустить Splash на macOS.

Читать далее

Гига Писарь Большое обновление для мака, в котором мы навели красоту и перестали вам мешать

Уровень сложностиПростой
Время на прочтение3 мин
Охват и читатели6K

Привет, Хабр!

Это обновление для тех, кто диктует на маке, и оно самое заметное за всё время. Окно настроек Гига Писаря переделано полностью: новое устройство, картинки вместо таблиц, анимация, открываешь, и кажется, что это раздел системных настроек, а не отдельная программа.

Рассказываю, что изменилось, и немного о том, кто всё это делает, спойлер, уже не только я.

Читать далее

Как запустить старые принтеры на Mac Os? Apple Silicon: два разных сбоя под одним сообщением «ПО несовместимо»

Уровень сложностиПростой
Время на прочтение9 мин
Охват и читатели6.5K

• Как я оживил LaserJet 1320 и Color LaserJet CP1025 на macOS 27 — разбор по логам CUPS
• “Filter failed” и «legacy USB class driver»: анатомия двух поломок печати на M1

Дано:
macOS 27 на M1, два древних принтера HP, одно и то же сообщение «ПО принтера несовместимо с этим устройством». Выглядит как один диагноз — «драйверов под ARM нет, покупай новый принтер». На деле это две совершенно разные поломки: одна лечится одной командой, вторая не лечится вообще и требует замены драйвера на open‑source. Ниже — разбор по логам CUPS, file, nm и strings, с рабочими решениями для обоих случаев.

Читать далее

Почему игры на MacBook дёргаются даже при 100+ fps — и как я сделал кадры ровными

Уровень сложностиСредний
Время на прочтение5 мин
Охват и читатели5.6K

Игры на MacBook часто дёргаются даже тогда, когда счётчик показывает 100 кадров в секунду и больше. У меня так было с Counter‑Strike 2 на MacBook Pro 14 с M3 Pro: 110–120 fps, а на медленном повороте картинка всё равно идёт рывками.

Я записал, когда каждый кадр на самом деле появляется на экране. Дело оказалось не в нехватке мощности, а в том, как кадры ложатся на сетку экрана ProMotion. В цифрах это выглядит так:

Читать далее

Как сжать PDF без подписок на Adobe

Уровень сложностиПростой
Время на прочтение3 мин
Охват и читатели6.2K

Как сжать пдф файл на маке?
Чё-то стрёмно в 2026ом скидывать свои файлы на сайты с доменом в .xyz.

А сжатие PDF уже лежит в вашем маке. Бесплатно!

Просто спрятано в утилите «для цветопередачи» — ColorSync Utility.

Читать далее

Ближайшие события

Как зарабатывать на Open Source без смены лицензии: разбор Cap (22.8k звёзд) и схема с платными бинарниками

Уровень сложностиСредний
Время на прочтение10 мин
Охват и читатели92K

Большинство попыток заработать на открытом коде упираются в две крайности: сбор донатов, где за десятки тысяч звёзд на GitHub автор получает пару сотен долларов в месяц, или внезапная смена лицензии на BSL, которая оборачивается волной хейта и немедленными форками.

Проект Cap (открытый аналог Loom с 22 800 звёзд) нашёл третий путь. Их монорепозиторий на Rust, Tauri и Next.js выложен полностью, но проект успешно зарабатывает. Ниже — подробный разбор архитектуры проекта, того, как устроено разделение лицензий MIT и AGPLv3, и почему юридическая схема с платными бинарниками за $29/год работает даже без DRM.

Читать далее

Гига Писарь: первый пулреквест на Windows и Мозг со своим ключом в облаке

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели6.3K

Привет, Хабр!

После того как я выпустил Писаря для Windows, скачали его уже больше трёхсот раз, спасибо всем, кто поставил, попробовал и написал, что не работает, первые баги из комментариев я починил в тот же день.

А сегодня прилетел первый пулреквест в Windows-версию.

Читать далее

Siri с Apple Intelligence на Mac с русским языком: как система принимает это решение и как её переубедить

Уровень сложностиСредний
Время на прочтение8 мин
Охват и читатели5.3K

Новая Siri с Apple Intelligence не работает на системе с русским языком — её просто нет в настройках. То же самое у поляков, чехов, греков, венгров и ещё полутора десятков языков.

Я полез разбираться, где проходит эта граница, и выяснилось, что macOS проверяет язык системы ровно один раз — при загрузке. Дальше ей всё равно: можно вернуть свой язык, и Siri AI продолжит работать до следующей перезагрузки.

Под катом: где система прячет своё решение и как его прочитать из журнала, почему признака «встал в очередь» не существует, чем платишь за JXA, почему Safari терял вкладки после перезагрузки и как индикатор в строке меню похудел с трёх секунд процессора до двух сотых.

Читать далее

Почему на Mac “плывёт” прицел: macOS отдаёт мышь раз в кадр экрана

Уровень сложностиСредний
Время на прочтение4 мин
Охват и читатели4.9K

Я играю в Counter‑Strike 2 на MacBook Pro 14 с M3 Pro. Кадров хватает, 100 с лишним в секунду, а прицел всё равно ощущается ватным: мелкие доводки то недолетают, то перелетают. Сначала я грешил на ускорение указателя, потом на лимит кадров, потом на саму игру. Не помогало ничего, и в какой‑то момент я просто записал, как события мыши доходят до приложения.

Читать далее

Инженер-продакт

Уровень сложностиПростой
Время на прочтение14 мин
Охват и читатели10K

Моя первая должность в трудовой называлась «инженер-программист». Недавно я понял, что вторую половину этого названия уже можно зачеркивать.

Мне понадобилась простая экранная лупа для Mac: положить рамку на кусок экрана и рассмотреть пиксели в отдельном окне. Готового инструмента под мой сценарий я не нашел. Swift и AppKit я толком не знаю, под macOS никогда не писал. Раньше на этом бы все и закончилось.

В этот раз через три дня у меня было нативное приложение: 10+ тысяч строк, сотни тестов, подпись, DMG, open source, ревью в App Store. Понятно, что код писал Claude Code.

Но интереснее другое. Когда я спросил себя, что эти три дня делал я, ответ оказался неожиданным. Я почти не программировал, а работы было полно.

В статье — о том, почему программист превращается в инженера-продакта, зачем дизайнеру рисовать кнопку, если можно сразу сделать настоящую, что будет с Figma и почему софт впервые становится по-настоящему персональным. Функция с одним пользователем, мной, теперь окупается.

👇

Читать далее

Primary и Secondary: как устроен мультидевайс WhatsApp*

Уровень сложностиПростой
Время на прочтение3 мин
Охват и читатели7.4K

Когда вы открываете WhatsApp* Web или ставите приложение на ноутбук, оно не «входит в аккаунт» так же, как телефон. Оно привязывается к телефону и становится его спутником. Внутри WhatsApp это два разных сорта устройств - primary (главное) и secondary, оно же companion (связанное). Разница между ними определяет почти всё: как устройство логинится, что оно умеет и что произойдёт, если его отключить.

Это разбор на пальцах: без протокольных деталей, только модель и следствия из неё. Термины primary и secondary я взял из кода нашего клиента - в нём это буквально два режима запуска одного бинарника.

* Meta Platforms Inc. (владелец Facebook, Instagram, WhatsApp и Messenger) признана экстремистской организацией, её деятельность запрещена на территории РФ. Facebook и Instagram запрещены в РФ.

Читать далее

Локальный агент для кода на Mac: MTPLX + pi + Qwen3.8–27B. Что реально ускоряет, а что нет

Уровень сложностиСредний
Время на прочтение9 мин
Охват и читатели8.6K

Я хотел, чтобы кодовый агент работал целиком на ноутбуке, без облака: локальная модель, локальный сервер, агент в терминале. Главная боль с самого начала — скорость. Агент постоянно перечитывает длинный контекст и много «думает», и на локальном железе это превращается в минуты ожидания на каждую задачу.

Читать далее
1
23 ...