Как стать автором
Обновить
19.86

Разработка под macOS *

Пишем под настольную ОС Apple

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

Большинство оконных приложений — это недоработанные real-time приложения

Уровень сложности Простой
Время на прочтение 6 мин
Количество просмотров 6.4K
Мнение
Перевод

В оконных приложениях таких платформ, как Windows, Linux и macOS, скрывается ряд недоработок, которые порой снижают их быстродействие до раздражающе медленного. Сюда относятся нюансы работы в реальном времени, блокирование памяти при доступе к диску и недостаточно эффективное планирование для активного оконного приложения. В статье мы подробно разберём все эти проблемы.

Я программирую уже давно. Под давно я имею в виду не один десяток лет работы. Надеюсь, это достаточно долго. За это время мой опыт в основном заключался в программировании для современных платформ вроде Linux, Windows, macOS для десктопных и серверных архитектур процессоров. Недавно я участвовал в создании MIDI-движка для систем значительно меньшей мощности.

Вскоре после начала я столкнулся с проблемой, которая требовала обеспечить невозможность переполнения очереди событий ввода. По сути, эта задача сводится к тому, чтобы каждый обработчик событий не выполнялся дольше некой максимальной продолжительности времени. Затем меня осенило! Я уже слышал это раньше — «максимальная продолжительность времени», так как занимаюсь разработкой систем, работающих в реальном времени.
Читать дальше →
Всего голосов 49: ↑43 и ↓6 +37
Комментарии 22

Новости

Полная неуязвимость? Как устроены защитные механизмы macOS (и при чем тут маркетинг)

Уровень сложности Простой
Время на прочтение 13 мин
Количество просмотров 8.4K
Обзор

Подход Apple к информационной безопасности приводит к тому, что некоторые пользователи Mac не обращают внимание на то, что происходит с их компьютерами. В этом посте я старался разобраться в основных механизмах защиты macOS от вредоносных программ и выделить их недостатки, но в результате выяснилось, что «проблема» — это сама репутация macOS.

Читать далее
Всего голосов 39: ↑38 и ↓1 +37
Комментарии 6

Установка macOS при помощи Windows

Уровень сложности Простой
Время на прочтение 3 мин
Количество просмотров 3.3K
Туториал

Описываю свой рабочий опыт установки macOS на старенький macbook, так как другие способы описанные в интернете не дали результатов, либо привели к новым ошибкам.

Для начала скачиваем дистрибутив в формате *.dmg. Сделать это можно из App Store со второго macbook, либо с торрент (важно чтобы это была чистая копия из App Store).

Берем флешку на 8Гб и более, вставляем в компьютер с Windows, нажимаем Win+R, пишем cmd.

Запускается консоль и в ней уже пишем diskpart потом list disk, на экран выводиться список дисков windows, теперь важно не перепутать диски и выбрать именно диск с флешкой. Пишем select disk (номер флешки):

Читать далее
Всего голосов 3: ↑2 и ↓1 +1
Комментарии 6

Osquery&SIEM. Вы правила мониторинга продаёте? Нет, просто показываем

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

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

Статья является продолжением первой части из микросерии аналитических статей, посвящённых тому, как мы мониторим macOS в Ozon.

Тут будут боль мемы и немного примеров инцидентов :)

Читать далее
Всего голосов 13: ↑13 и ↓0 +13
Комментарии 0

Истории

Как обеспечить безопасность корпоративных данных на macOS-устройствах?

Время на прочтение 9 мин
Количество просмотров 1.4K
Обзор

Для контроля действий на рабочих станциях в Solar Dozor применяется отдельный модуль — Dozor Endpoint Agent (агент), с помощью которого можно своевременно отследить и при необходимости заблокировать передачу данных. Этот модуль адаптирован и может работать под управлением разных операционных систем - компания-разработчик "Ростелеком-Солар" предлагает версии для Windows, Linux и macOS. На нашем портале уже приводились обзоры модуля Dozor Endpoint Agent для Linux и Windows. В этой статье речь пойдет о модуле Dozor Endpoint Agent для macOS, который разрабатывается с 2021 г. Он стал флагманом движения российского рынка DLP-систем к полнофункциональному мониторингу рабочих мест на базе устройств Apple и по сей день занимает лидирующую позицию на рынке.  

Читать далее
Всего голосов 16: ↑10 и ↓6 +4
Комментарии 5

Топ утилит для создания Forensic Triage: их особенности и возможности

Уровень сложности Средний
Время на прочтение 6 мин
Количество просмотров 2.2K
Мнение

Камиль Камалетдинов, младший эксперт по реагированию на инциденты Центра киберустойчивости Angara SOC, подготовил обзор полезных утилит для triage. В материале практические инструменты и небольшой опрос для вас в самом конце.

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

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

В результате быстрого развития технологий количество данных на наших устройствах растет, что подтверждается исследованием ученых из Астонского Университета, которые занимаются изучением проблемы оптимизации хранения данных в связи с их быстрыми темпами роста. Эта тенденция также оказывает влияние на сферу кибербезопасности, потому что количество и качество данных, собранных с конечных устройств, определяют масштаб и сложность нашей работы.

Именно для этого был разработан инструмент Forensic Triage Tool, потому что снимать полную копию устройства займет большое количество времени, а снятие triage занимает примерно от 5 до 30 минут в (зависимости от устройства и количества информации на нем) и содержит в себе достаточное количество данных для расследования инцидента.

Читать далее
Всего голосов 4: ↑4 и ↓0 +4
Комментарии 0

«Бизнес-юнит — как семья». Незрячий сотрудник VK водит экскурсии по офису и развивает цифровую доступность

Уровень сложности Простой
Время на прочтение 8 мин
Количество просмотров 3.7K
Интервью

Привет! Я Артем Плаксин, незрячий специалист по цифровой доступности в VK. Я делаю наши сервисы удобными для людей с ограниченными возможностями здоровья и работаю над социальными проектами. Ещё я веду блог — как пользователь той самой доступной среды, айтишник и просто живой человек.

То, как устроена моя работа, — отличный пример, как внимание к потребностям людей помогает менять мир к лучшему.

Читать далее
Всего голосов 61: ↑58 и ↓3 +55
Комментарии 7

Насколько Swift удобен для DSL?

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

SE-0195 Dynamic Member Lookup
SE-0216 Dynamic callable
SE-0253 CallAsFunction
Исходя из мотивационной секции proposal, @dynamicCallable и @dynamicMemberLookupбыли добавлены для интеропа с динамическими языками, такими как Python, JavaScript. Но их использование этим не ограничивается.

Читать далее
Всего голосов 6: ↑4 и ↓2 +2
Комментарии 2

Библиотека криптования ChaCha20

Уровень сложности Средний
Время на прочтение 5 мин
Количество просмотров 1.2K
Recovery Mode

Современные стандарты разработки пользовательских приложений выдвигают определенные требования к шифрованию информации. Например, документ RFC-7539 содержит подробную и исчерпывающую информацию о том, какие алгоритмы рекомендуется применять и как программировать некоторые из них. Далее предлагается к подробному рассмотрению один из этих алгоритмов - ChaCha20.

Читать далее
Всего голосов 3: ↑2 и ↓1 +1
Комментарии 1

Osquery&Fleet. Применение в корпоративной сети на примере яблочных девайсов

Время на прочтение 6 мин
Количество просмотров 2.4K
Кейс

Я расскажу о том, что мы с командой сделали для поднятия сервиса по сбору событий и низкоуровневой телеметрии на примере MacOS: как готовили архитектуру, с какими проблемами столкнулись и как их решали.  Подробнее остановлюсь на возможностях osquery&Fleet и на том, какие must-have-события рекомендую собирать.

Немного о себе: я работаю в группе инфраструктурной безопасности в команде Ozon около двух лет.  До этого я уже имела опыт работы с MacOS-устройствами, поэтому у меня есть представление о том, что это за «фрукт».

Читать далее
Всего голосов 15: ↑15 и ↓0 +15
Комментарии 1

OptionSet в деталях

Уровень сложности Простой
Время на прочтение 3 мин
Количество просмотров 1.2K
Обзор

Элементарный тип OptionSet в Swift кроет в себе много интересного. Почему набор опций представлен массивом а не Set, как работает алгебра множеств и когда его можно применить в повседневных задачах

Читать далее
Всего голосов 1: ↑1 и ↓0 +1
Комментарии 0

Обновление менеджера паролей Raccess

Время на прочтение 4 мин
Количество просмотров 706
Recovery Mode

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

Читать далее
Всего голосов 6: ↑0 и ↓6 -6
Комментарии 2

SOLID в Swift. Простое объяснение с примерами для начинающих

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

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

Давайте рассмотрим каждый из этих принципов с примерами нарушения и соблюдения на языке Swift.

Читать далее
Всего голосов 16: ↑15 и ↓1 +14
Комментарии 20

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

Битва пет-проектов
Дата 25 сентября – 30 ноября
Место Онлайн
PG Boot Camp Russia 2023
Дата 5 октября
Время 10:00 – 17:00
Место Москва Онлайн
Joker
Дата 9 – 14 октября
Время 16:00 – 19:30
Место Санкт-Петербург Онлайн
Открытый урок «Kafka Streams»
Дата 16 октября
Время 10:00
Место Онлайн
Питч-сессия pravo (tech) impulse
Дата 19 октября
Время 15:45 – 17:30
Место Москва
Russia Risk Conference 2023 — 19-я конференция по риск-менеджменту
Дата 25 – 26 октября
Время 10:00 – 19:00
Место Москва Онлайн
Онлайн IT HR-конференция HR42
Дата 17 – 18 ноября
Время 10:00 – 14:00
Место Онлайн
HighLoad++ 2023
Дата 27 – 28 ноября
Время 9:00 – 20:00
Место Москва Онлайн

Новый менеджер паролей Raccess

Уровень сложности Простой
Время на прочтение 4 мин
Количество просмотров 5.9K
Обзор
Recovery Mode

Безопасность и целостность данных, пожалуй одна из интереснейших тем в кибертехнической области. Практически все ведущие компании представляют свои решения для безопасного хранения паролей и данных пользователя. Например, новый способ авторизации от Apple, различные приложения для двухфакторной авторизации от Microsoft и Google и, конечно, менеджер паролей от Kaspersky.

Читать далее
Всего голосов 18: ↑3 и ↓15 -12
Комментарии 13

WWDC 2023. Что нового для разработчика

Время на прочтение 5 мин
Количество просмотров 4.8K
Обзор
image

Всем привет! С вами Анна Жаркова, руководитель группы разработки в ГК Usetech.
Вчера Apple представили Keynote долгожданной WWDC 2023. Как обычно, основная информация по новинкам для разработки вынесена в специальные инженерные сессии, которые будут публиковаться ежедневно всю эту неделю. Краткое описание можно увидеть в What Apple developers need to know at WWDC23

Давайте обсудим основные тенденции и посмотрим, на что будет сделан упор в анонсированных видео. Разумеется, мы не затронем все 175 сессий, но обозначим топовые тематики:

  • SwiftUI,
  • виджеты и App Clips,
  • Swift,
  • безопасность, приватность и сеть,
  • Xcode,
  • VR/AR.

И начнем мы с самой долгожданной для многих разработчиков новинки:
Читать дальше →
Всего голосов 6: ↑6 и ↓0 +6
Комментарии 0

MacOS Monterey на Linux — быстро и просто?

Уровень сложности Простой
Время на прочтение 3 мин
Количество просмотров 34K
Туториал
Что делать, если у вас возникло желание или необходимость заняться разработкой под MacOS или iOS, но под рукой нет макбука, а покупать его только чтобы открыть Xcode кажется делом сомнительным? Недавно я столкнулся с такой проблемой в одном из своих пет-проектов и решил ее достаточно просто и быстро. После выполнения нескольких достаточно примитивных шагов, мне удалось запустить MacOS Monterey как на скриншоте ниже.

image

Никакого Virtualbox, никакого Virtual Machine Manager. Из требований — только 100 Гб свободного места на диске и хотя бы 16 Гб оперативной памяти. В рунете я встречал описание похожих путей установки, вроде Docker-OSX или Sosumi. Но я бы хотел поделиться способом, который позволяет использовать актуальную версию MacOS (Sosumi — сразу минус) и не потратить уйму свободного времени на возню с конфигами и терминалом. Поехали.
Читать дальше →
Всего голосов 83: ↑79 и ↓4 +75
Комментарии 67

Управляем воспроизведением на Mac OS через быстрые команды iOS

Уровень сложности Простой
Время на прочтение 1 мин
Количество просмотров 1.9K
Туториал

Хочу поделиться довольно простым, но как показало время, полезным способом управления медиаклавишами macOS из быстрых команд (например iOS), без дополнительных клиент-серверных приложений. Управление происходит с помощью вызова скрипта на python по ssh. Для имитации нажатия медиа клавиш использована библиотека pyobjc-framework-Quartz.

Читать далее
Всего голосов 4: ↑1 и ↓3 -2
Комментарии 3

Чего ждать разработчикам от WWDC 2023?

Время на прочтение 3 мин
Количество просмотров 2K

Всем привет, с вами я, Анна Жаркова, ведущий разработчик компании Usetech. 

Apple уже опубликовала анонс WWDC 2023, который пройдет 5-9 июня. А это значит, что время загадывать и угадывать, что же нового нам представят из инструментария iOS SDK.

И начнем мы со Swift 5.8, который официально вышел (ссылка). В новой версии появились доработки, связанные как с самим sdk и Swift, так и SPM, инструментом документации и SwiftSyntax. Часть новинок уже разобрал у себя Пол Хадсон, и об этом можно почитать здесь, здесь и здесь.

Читать далее
Всего голосов 3: ↑2 и ↓1 +1
Комментарии 2

Дорожная карта навыков разработчика на C++

Уровень сложности Средний
Время на прочтение 16 мин
Количество просмотров 44K
Роадмэп
Спецпроект

Джеймс Гослинг как-то сказал, что Java — это C++, из которого убрали все пистолеты, ножи и дубинки, однако практика показывает, что «ножи и дубинки» становятся классным инструментом в руках опытных разработчиков. В общем, немалая часть проклятий в адрес C++ объясняется элементарным «вы просто не умеете его готовить». Мы в «Лаборатории Касперского» умеем готовить «плюсы» и поэтому любим их. C++ — низкоуровневый язык, который позволяет работать с железом и писать быстрый код и при этом содержит массу возможностей. В экосистеме «плюсов» куча проработанных паттернов, best practices и готовых библиотек под разные задачи. Язык динамично развивается — но сохраняет обратную совместимость. 

В этом посте мы с помощью карты покажем, какие навыки и знания нужны разработчику на C++. Естественно, разбирать путь развития «плюсистов» будем на собственном примере — тем более что у нас в «Лаборатории Касперского» много очень разных проектов с отличающимися задачами. Однако наша карта по большей части универсальна и будет полезна всем, кто хочет развиваться в С++-разработке.

Отправляемся
Всего голосов 46: ↑38 и ↓8 +30
Комментарии 95

Как я неделю просидел над десятью строками кода

Время на прочтение 4 мин
Количество просмотров 26K
Перевод


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

Немного контекста: Warp – это терминал для разработчиков на базе Rust. При его создании мы использовали собственный кастомный UI-фреймворк, так что всё, что касается вкладок и перетаскивания, пришлось разрабатывать с нуля.
Читать дальше →
Всего голосов 40: ↑38 и ↓2 +36
Комментарии 41

Вклад авторов