
В этой статье мы рассмотрим различные подходы для работы с небезопасными операциями в языке программирования Swift. Swift предоставляет несколько способов для работы с указателями и низкоуровневой памятью.
Пишем под настольную ОС Apple
В этой статье мы рассмотрим различные подходы для работы с небезопасными операциями в языке программирования Swift. Swift предоставляет несколько способов для работы с указателями и низкоуровневой памятью.
Привет! Я Александр Сычев, iOS‑эксперт в KTS. В этой статье поговорю о потоках.
В решении рабочих задач и прохождении собеседований часто затрагиваются вопросы, связанные с многопоточностью и самими потоками, а также с необходимостью их синхронизации. Однако что происходит за кулисами этих процессов? Как функционирует механизм потоков изнутри?
В данной статье мы рассмотрим детали этой темы, а именно:
• проанализируем работу потоков;
• выявим скрытые механизмы, обеспечивающие их функционирование;
• определим, какую пользу практикующим iOS‑разработчикам приносит понимание внутреннего устройства потоков.
Давно интересовал вопрос возможности кросскомпиляции под macOS. Как оказалось, на самом деле это не составит особых проблем.
В этой статье мы установим тулчейн, а так же кросскомпилируем пару учебных примеров на языках C и Rust. В качестве host будет выступать Ubuntu 24.04 на amd64, а в качестве target - macOS 14 (Sonoma) на Apple Silicon.
Ниже расширенная версия с дополнительным вступлением и описанием проблемы, основанная на ранее предоставленных рекомендациях по настройке Stunnel для работы с Rutoken и CryptoPro CSP на macOS.
В современных условиях безопасный обмен данными по сети — одна из важнейших задач для организаций и частных лиц. При этом важно не только шифровать трафик, но и соблюдать требования национальных криптосредств (например, CryptoPro), а также использовать надёжные аппаратные токены (например, Rutoken).
Применение Stunnel позволяет «обернуть» обычное TCP-соединение в защищённый TLS-туннель. Однако на macOS при работе со стандартными драйверами часто возникает конфликт между встроенным Apple Security Framework и CryptoPro. Кроме того, если вы используете Rutoken для хранения сертификатов, нужно убедиться, что система «видит» корректный считыватель и сертификаты. Все эти вопросы усложняют процесс настройки Stunnel, но при правильном подходе их можно успешно решить.
С выходом PVS-Studio 7.34 стали доступны нативные сборки анализатора для macOS на архитектуре Apple Silicon (ARM). В этой заметке мы хотели бы подробнее рассказать о проделанной работе, а также предложить советы по портированию кроссплатформенных инструментов на новую перспективную архитектуру.
Всем привет!
Меня зовут Ваня и это моя первая статья на Хабре (надеюсь, что и не последняя).
Содержание за 2 секунды: сокращаем Dock при помощи Shortcuts.
Как минимум одна из фич iOS реализована действительно хорошо — это системное резервное копирование, и всё, что связано с автоматическим переносом данных при переезде с одного iPhone на другой.
Однако в случае с некоторыми iOS-приложениями старания Apple внезапно разбиваются о небрежность их разработчиков. Именно с этим я недавно столкнулся, выполнив перенос данных со своего старого iPhone на новый, и много где результаты оказались довольно печальными. Полностью упоролось, например, приложение Тинькофф Банка.
И тут возникает закономерный вопрос — почему так получается, что с этим делать?
В этой статье я покажу, как устроена многослойная архитектура крупного реактивного web-приложения, и особенности его запуска под Electron. Материал будет полезен, если вы планируете начать свою разработку, хотите попробовать себя в роли архитектора, вас не пугает Shared Workers, Service Workers или, в конце концов, вы хотите это попробовать или разобраться.
Искусственный интеллект ChatGPT от OpenAI все чаще становится незаменимым помощником при выполнении множества задач: от создания текстов и обработки данных до проведения сложных вычислений. Поэтому нет ничего удивительного в том, что им пользуются люди самых разных профессий и возрастов. Правда, большинство обращаются к нему чаще всего через веб-версию, хотя есть куда более удобные способы.
Подписание и «нотариальное заверение» (в дальнейшем мы используем устоявшийся в сообществе термин нотаризация — прим. ред.) приложений и другого исполняемого кода — тема довольно спорная. За последние годы Apple постепенно вводила всё более строгие правила и теперь требует, чтобы разработчики заверяли свои приложения и код, распространяемые даже вне App Store. В этой статье мы попытаемся объяснить, почему это необходимо и как это усиливает безопасность Mac.
В идеале всем хочется быть уверенными, что любой код, который запускается на нашем Mac, а в частности приложения, — это именно то, что создал разработчик, без каких‑либо изменений. Кроме того, в случае обнаружения вредоносного кода macOS может оперативно защитить нас, отказав в его запуске.
Первое условие для этого — проверка приложений и кода на подлинность, а второе — наличие системы, которая может предотвратить запуск небезопасного кода.
Привет, чат. Хочу во-первых рассказать вам историю разочарования в довольно известной утилите мониторинга потребления энергии и загрузки CPU для macOS — MX Power Gadget. А во-вторых, поделиться очень простой заменой, которую я собрал за пару вечеров — pgauge.
Перевод очень неоднозначного поста о популярном Гитхаб репозитории, или:
Уморительный рассказ о том, как ленивое воскресенье, лагучий браузер и стремление познать Раст, случайно произвели привлекательный графический монитор системы.
В статье мы познакомимся с языком ассемблера для Apple Silicon (ARM64). Рассмотрим основные регистры, запись данных из регистров в память и обратно. Затронем также и базовые навыки работы с LLDB.
Добрый день! Сегодня я хочу обсудить с вами весьма противоречивую для меня операционную систему — macOS. Вокруг неё ходит немало легенд, слухов и мифов, которые я постараюсь сегодня развеять. Усаживайтесь поудобнее — статья будет интересна как опытным маководам, так и тем, кто никогда не видел эту операционную систему вживую.
Статья про то как заставить работать React Server Components внутри Electron приложения с помощью Next.js при этом не запуская локальный сервер и не открывая порты. С возможностью публикации стандартными инструментами. А также исследование зачем все это надо.
Недавно я столкнулся с задачей, которая требовала написания большого объема шаблонного кода. Вспомнив, что в Swift 5.9 появились макросы, созданные специально для генерации шаблонного кода, я решил попробовать их в действии. Ранее я работал с макросами в Objective-C и C++, поэтому ожидал увидеть нечто похожее. Однако, поискав информацию, я понял, что макросы в Swift — это совсем другое, не похожее на то, что я встречал в других языках.
В отличие от макросов в C++ или Objective-C, в Swift нужно писать гораздо больше кода, соблюдая при этом строгие правила оформления. Иначе можно столкнуться с загадочными ошибками компиляции, решение которых не всегда очевидно. Дополнительные трудности возникают из-за того, что многие статьи и видео просто повторяют официальную документацию, не объясняя понятным языком, как именно использовать макросы. Часто вместо этого начинаются сложные рассуждения о структуре AST (Abstract Syntax Tree) или приводятся примеры кода, которые демонстрируют результат работы макроса, но не показывают, как его создать и отладить.
Именно из-за таких трудностей я решил написать эту статью. Её цель — максимально просто, без углубления в теорию, объяснить, как можно уже сегодня начать использовать макросы в Swift. Если вам захочется изучить эту тему подробнее, вы всегда сможете обратиться к официальной документации или материалам с WWDC, где этот вопрос разобран более детально. А если вам понравится моя подача, пишите в комментариях — я постараюсь объяснить сложные моменты в отдельных статьях.
Так сложилось, что у меня на работе используется Cisco AnyConnect Secure Mobility Client. Периодически приходится подключаться к рабочему VPN используя эту программу. Мне, как человеку постоянно работающему в терминале, захотелось иметь под рукой консольную утилиту, которая сама введет пароль и TOTP, после чего инициирует подключение.
Рассказываю и показываю что можно сотворить с iMac без прав администратора и установки стандартных средств разработки.
Я следовал инструкциям статьи на японском.
Для большинства юз-кейсов контейнеры подойдут лучше. Но мне нужно работать с usb устройствам из под линукс, на маке. Intel версию поставить намного проще, но мы не ищем легких путей.
Недавно я задался вопросом, могу ли я оптимизировать процесс поиска чего-либо в документации любого языка/библиотеки/фреймворка. Прыгать с сайта на сайт – не самая лучшая идея, ибо интерфейсы документацией отличаются, а я хотел унификации.
Сначала мне пришла мысль взглянуть на уже существующие решения, среди которых есть мною любимый Zeal, однако, он доступен только для Windows и Linux, я же крепко сижу в заложниках на MacOS из-за специфики работы и удобства.
На сайте Zeal предлагают перейти на сайт Dash, который по сути является прародителем Zeal, однако, он платный и за него невозможно заплатить в пределах РФ, поэтому я продолжил дальше искать аналоги.
Среди альтернатив также есть DevDocs, который может работать оффлайн в браузере (благодаря PWA), однако, я заметил, что все время держать открытой лишнюю вкладку для поиска в доках было не лучшей идеей (ибо вкладку все равно нужно было бы искать, среди тонны вкладок со StackOverflow и прочим).
Решение с быстрым поиском
В Firefox и Google Chrome есть возможность добавить собственную поисковую систему (или же поиск по сайту), чем собственно я и воспользовался. При поиске в devdocs все GET-запросы уходят по урлу: