Рубрика «Разработка под OS X»

В этой статье я расскажу, как реализовать кроссплатформенное приложение на .NET Core и Avalonia. Тема Телеграма очень популярна в последнее время — тем интереснее будет сделать клиентское приложение для него.

Egram

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

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

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

Читать полностью »

Баг в яблокеНовая версия PVS-Studio 6.23 работает под управлением macOS и позволяет проверять проекты, написанные на языке C и C++. К этому событию наша команда решила приурочить проверку XNU Kernel.

PVS-Studio для macOS

С выходом версии анализатора для macOS, PVS-Studio можно смело называть кроссплатформенным статическим анализатором кода для C и C++.
Читать полностью »

В macOS High Sierra обнаружились «Черные дыры» - 1

Живешь себе живешь, репу не чешешь, в ус не дуешь. И тут внезапно тебе нужно переезжать с обветшавшего iPhone 6 на новенький iPhone X. А поскольку вся твоя жизнь за минувшие семь лет хранится в фоточках и видосиках старого смартфона, терять это добро тебе очень не хочется. И вот ты бэкапишь свое хозяйство через iTunes на Mac, пытаешься переехать на новую «балалайку» и вдруг оказывается, что места для бэкапа нового телефона на жестком диске твоего компьютера уже нет. Ты начинаешь судорожно расчищать авгиевы конюшни дисковое пространство, но результата «нема». Причем удаление «левых файлов» и очистка корзины ни к чему не приводит. Вот такой триллер разыгрался недавно с вице-президентом Parallels Николаем Добровольским. Под катом детективная история про обнаружение им «черной дыры» в macOS High Sierra, поиски истины и счастливый конец, которому могли бы позавидовать главные герои кинофильма «Титаник».Читать полностью »

Сертификаты подписи кода уже несколько лет используются злоумышленниками для вредоносных программ. Ещё в 2010 году исследователи обратили внимание на образцы зловредов с сертификатами, скопированными из «чистых» файлов. Естественно, такая подпись кода не проходила проверку Authenticode (см. презентацию F-Secure на конференции CARO 2010).

На чёрном рынке продают валидные сертификаты подписи исполняемого кода для обхода антивирусов - 1

Очередной ласточкой стал в 2011 году «правительственный» зловред Stuxnet. Он использовал четыре 0day-уязвимости в Windows, чтобы распространиться и получить права администратора, и был подписан настоящими сертификатами, украденными у Realtek и JMicron. Зловред устанавливался в систему как драйвер Microsoft.

На чёрном рынке продают валидные сертификаты подписи исполняемого кода для обхода антивирусов - 2

Потом появились другие примеры, а примерно с 2015 года заработал полноценный чёрный рынок валидных сертификатов от авторитетных удостоверяющих центров (УЦ). Такие сертификаты продаются на подпольных форумах вроде российского Antichat.

Есть распространённое мнение, что сертификаты безопасности на чёрном рынке украдены у реальных владельцев. Это не так. Их действительно выдают настоящие УЦ.
Читать полностью »

PVS-Studio 2018: CWE, Java, RPG, macOS, Keil, IAR, MISRA

Приближается 2018 год и пора подумать о новых направлениях развития нашего статического анализатора PVS-Studio. Сейчас наибольший интерес для нас представляет поддержка языка Java. Дополнительно мы рассматриваем возможность поддержки языка IBM RPG. Не менее интересно развить анализ C, C++ C# кода в направлении выявления потенциальных уязвимостей. Ещё нам хочется поддержать анализ C и C++ кода на платформе macOS, и, наконец, доделать поддержку компиляторов от компаний Keil и IAR. Никуда мы не денемся и от поддержки стандарта MISRA. Перечислено много, и на всё одного 2018 года нам не хватит. Поэтому давайте вместе с нами пообсуждаем наши планы и выберем самые приоритетные направления.
Читать полностью »

Зачем я купил Mac Mini (Late 2012) накануне 2018 года? - 1

~ Продать MacBook Pro, которому уже перевалило за 3 года
~ Сменить 13'' экран на парочку 22'' и повысить комфорт разработки
~ Получить мощную машину для быстрой компиляции проектов на Swift

Это основные причины, повлиявшие на покупку Mac Mini. Первые два пункта достаточно очевидны, но вот к последнему пункту явно нужны комментарии...Читать полностью »

Parallels Desktop 13 — семь советов для эффективной работы - 1

По умолчанию в Parallels Desktop 13 выставлены оптимальные настройки для работы. Но, если вы привыкли брать от жизни все, держите несколько советов, как увеличить быстродействие и сохранить заряд батареи вашего Макбука.Читать полностью »

Я уже писал про Publish, Connect и RefCount в RxSwift. Для того, чтобы лучше раскрыть тему, представляю вашему вниманию перевод другой замечательной статьи, про различия между такими операторами, как share(), replay(), replayAll(), shareReplay(), publish() и shareReplayLatestWhileConnected().

Частая ошибка, которую совершают новички, взявшиеся за освоение Rx — это непонимание того, что цепочка операторов на Observable выполняется заново с каждым новым подписчиком:

let results = query.rx.text
    .flatMapLatest { query in
        networkRequestAPI(query)
    }
results.subscribe(...)   // один запрос в сеть
results.subscribe(...)   // другой запрос

Мы имеем несколько подписчиков на один-единственный Observable, но мы не хотим, чтобы его код исполнялся с каждым новым Subscriber'ом. Для этого в RxSwift имеется несколько операторов. Вот резюмирующая табличка, описывающая каждый из них:

image
1 — ретранслирует произведенных до подписки элементов не больше, чем bufferSize.
2 — ретранслирует 1 элемент, произведенный до подписки, до тех пор, пока существует хотя бы один подписчик.

Читать полностью »

Parallels Desktop для Mac 13: к macOS High Sierra готовы - 1

Год назад вышла 12-я версия Parallels Desktop — утилиты для виртуализации Windows на macOS. Быстрая. Простая. Удобная. 365 дней позади. Все это время мы не сидели сложа руки. В течение года мы встречались в офф-лайне с пользователями, провели дополнительные опросы среди купивших и тестирующих наше ПО, изучили перспективные новинки от Apple и Microsoft, покопались в пользовательских проблемах, а также прошерстили тематические форумы. Все это позволило более внимательно отнестись к просьбам и учесть ключевые пожеланиям. И сегодня хочется рассказать о некоторых фишках новой — 13-й — версии Parallels Desktop. Тут много любопытного не только для разработчиков, но и для обычных пользователей. Под катом описаны наиболее интересные нововведения. Всего их около полусотни. Enjoy! Ну, и делитесь впечатлениями в комментариях.Читать полностью »

Клонирование игры Lode Runner с первого ПК в СССР «БК-0010» плюс несколько слов о программировании игр в конце 80-х - 1

Недавно я оказался в не совсем обычной для себя ситуации вынужденного безделья. Пару недель поваляв дурака, я стал чувствовать, что это не такое уж и веселое занятие, которое к тому же еще и стало переходить в скуку. И мне надо было себя занять чем-нибудь относительно полезным. Раньше мне периодически приходили в голову мысли о том, чтобы вернуть к жизни какую-нибудь старую игру из времен моей юности. Но я всегда гнал такие идеи прочь, так как понимал, что "никому это теперь не надо". Но сейчас у меня было свободное время и, главное, было желание. В результате для клонирования я выбрал один из вариантов игры Lode Runner, в который я когда-то играл на первом персональном компьютере времен позднего СССР, который назывался БК-0010. Не думаю, что многие о нем помнят, так как мир «железа» поменялся с тех времен очень сильно. Однако сам Lode Runner с этого БК-0010 был достаточно уникален своими правилами среди других одноименных Lode Runner-ов. Эта версия игры была моей самой любимой, как мне кажется, по объективным причинам, хотя… может быть тут дело просто в ностальгии. В результате я сумел себя мотивировать тем, что "лично мне", а, возможно, и "всему миру", эта игра может быть интересна, и на её восстановление стоит потратить время (ссылка на полученный результат).

Для начала взглянем на оригинал с БК-0010 (хвала Интернету, в котором можно найти почти всё):Читать полностью »