Темное меню в macOS Mojave

В новой macOS отломали возможность сделать темное меню при активной светлой теме. В итоге или используй темную тему (а она на мой взгляд весьма сырая), или это в терминале:

$ defaults write -g NSRequiresAquaSystemAppearance -bool Yes

После выполнения команды нужно перелогиниться.

Сглаживание шрифтов в macOS Mojave

С выходом macOS Mojave пропала опция настройки сглаживания на старых девайсах без ретины. Это странно, т.к. именно на старых матрицах с низким DPI эта опция наиболее актуальна.

Но настроить все это можно из терминала.

$ defaults -currentHost write -globalDomain AppleFontSmoothing -int {VAL}

Где {VAL} это один из вариантов:
– 1 лёгкое сглаживание
– 2 среднее сглаживание
– 3 сильное сглаживание
– 0 отключить функцию сглаживание шрифтов

$ defaults write -g CGFontRenderingFontSmoothingDisabled -bool NO

Xcode: очередные «улучшения» билд системы

В недавнем обновлении Xcode были сделаны улучшения в билд системе, направленные на повышение скорости сборки проекта.

Xcode build system

Допускаю, что эти изменения действительно ускоряют сборку проекта и не портят бинарник, если редактирование исходника происходит из встроенного редактора.

Но те, кто пользуется внешним редактором или использует внешние инструменты для работы с системой контроля версий, получат незабываемые ощущения.

Я использую VIM как основной редактор кода (да и вообще для любого текста) и GIT в эмуляторе терминала.

Раньше билд система Xcode сравнивала дату модификации файла с объектным файлом (как и делает большинство билд систем), если тот существует, и на этом основании строилось дерево зависимостей, необходимых для сборки. Полагаю, что очередная «оптимизация» билд системы Xcode строит дерево на основании флага об изменении файла во встроенном редакторе. А все, что изменялось из-вне, считается не модифицированным.

Сделал git checkout some_branch_name, жми cmd + shift + k для очистки проекта и его полной пересборки.
Отредактировал файл во внешнем редакторе, снова жми cmd + shift + k для очистки проекта и его полной пересборки.

Новое поведение билд системы теперь включено по умолчанию. Вернуть старую Build System можно из File > Project Settings…

Xcode Legacy Build System

Road Fighter

Road Fighter Road Fighter — видеоигра в жанре аркадных автогонок, разработанная компанией Konami и выпущенная в виде игрового автомата 7 декабря 1984 года. Позднее были выпущены версии для компьютеров стандарта MSX1 (1985) и для игровой консоли Nintendo Entertainment System (1985 в Японии и 1991 в Европе).
» Read more

Emscripten + OS X El Capitan

Emscripten Emscripten is an LLVM-based project that compiles C and C++ into highly-optimizable JavaScript in asm.js format. This lets you run C and C++ on the web at near-native speed, without plugins.

Решил еще раз установить Emscripten с помощью brew, на сей раз все оказалось гораздо проще. Возможно это работало и раньше, но я только сегодня обратил на это внимание.

Правильный способ установки Emscripten с помощью brew:

# устанавливаем emscripten как обычно:
$ brew install emscripten

# запускаем emcc, что бы он создал файл ~/.emscripten
$ emcc

# исправляем LLVM_ROOT:
$ vim ~/.emscripten

Должно получиться как-то так:

LLVM_ROOT = '/usr/local/opt/emscripten/libexec/llvm/bin'

К сожалению с помощью brew правильно установить emscripten под OS X El Capitan мне не удалось.
Я не смог найти какую-либо информацию по правильной установке emscripten с помощью brew, поэтому получилась вот такая магическая инструкция.

Список шагов для установки emscripten из-под OS X:

  • С официального сайта качаем портабельную версию emscripten – http://kripken.github.io/emscripten-site/docs/getting_started/downloads.html#sdk-download-and-install
  • Распаковываем и запускаем ./emsdk update.
  • С помощью команды ./emsdk list можно посмотреть список доступных пакетов, утилит и sdk.
  • С помощью комады ./emsdk install latest устанавливаем самые последние версии.
  • Командой ./emsdk activate активируем переменные окружения emscripten.
  • Теперь при необходимости сборки проекта инициализируем переменные окружения с помощью команды source ./emsdk_env.sh.
  • По желанию можно прописать путь к директории с emsdk.

Simple Viewer GL

Simple Viewer GL Небольшой вьювер изображений использующий OpenGL. Пользуюсь этим вьювером в повседневной работе для быстрого просмотра списка изображений, определения параметров области, которую занимает спрайт на текстуре.

Поддерживаемые форматы: PSD, AI, EPS, PNG (libpng), XCF (требует доработки), JPEG 2000 (openjpeg), JPEG (libjpeg), TIFF (tiff, многостраничный), ICO (поддержка фреймов в формате png), DDS, GIF (giflib, с поддержкой анимации и возможностью просмотра каждого фрейма отдельно), BMP (частичная поддержка), TARGA, PNM, DDS, XWD, XPM, SCR (формат экрана ZX-Spectrum), WebP, OpenEXR.

Основные возможности:

  • поддерживаются встроенные в файл цветовые ICC-профили;
  • отображение EXIF или иной информации, внедренной в файл (клавиша <e>);
  • загрузка изображений в отдельном потоке + индикатор процесса загрузки;
  • создание списка файлов и поиск позиции, с которой начался просмотр;
  • поддержка GIF-анимации;
  • отображение координаты и цвета пикселя под курсором (ключ командной строки -p или клавиша P);
  • возможность выделения части изображения рамкой (удобно для определения координат и позиции области);
  • быстрое скролирование изображения с помощью клавиатуры или мышки;
  • произвольное масштабирование изображения с помощью клавиатуры ( / + / 1..0);
  • корректное автоматическое масштабирование изображений, не вмещающихся в окно вьювера;
  • возможность просмотра многостраничных изображений (клавиши PgUp / PgDn)
  • использование OpenGL;
  • разбиение больших изображений по нескольким текстурам;

 
Без минусов не обошлось:

  • нет возможности переназначить “горячие” клавиши (планирую сделать);
  • изображения загруженные с помощью Imlib2 не имеют информации о кол-ве бит на пиксель (постепенно избавляюсь от этой библиотеки в пользу собственной реализации загрузчиков);

Загрузка и сборка
В данный момент исходные коды Simple Viewer GL доступны в Git на Bitbucket.org.
 


Mac OS X: путь к исполнимому файлу

Нашел у себя в черновиках. Не уверен, что я этот код где-либо использовал, но для затравки сойдёт.
Object-C:

const char *path;
path = [[[NSBundle mainBundle] bundlePath] UTF8String];

Или так:

CFBundleRef bundle;
bundle = CFBundleGetMainBundle();

CFURLRef res;
res = CFBundleCopyResourcesDirectoryURL(bundle);

CFStringRef resStr;
resStr = CFURLCopyFileSystemPath(res, kCFURLPOSIXPathStyle);

char path[8192];
CFStringGetFileSystemRepresentation(resStr, path, sizeof(path));

World of Goo

World of Goo
Просто чумовая игра – World of Goo. Детей не оторвать, сам оторвался только после того, как прошел все, что возможно.
Жанр игры однозначно определить сложно – это и аркада, и логика. Игра завязана на законах физически. Сейчас вообще стало очень модно использовать физику в играх. Но в этой игре и реализация, и дизайн, и дух просто непередаваемы.

Игра доступна для Windows, Mac OS X, Wii, и, с недавнего времени, Linux.

Очень рекомендую!

Between the Worlds

Не смотря на козни конкурентов, которые своими комментариями пытаются понизить интерес к игре, Between the Worlds остается на первом месте в топе паблишера iWin.

Статистика по игре на CasualCharts.com.
Список игр, отсортированных по рейтингу в общей категории на iWin.

К сожалению, пока только версия для Windows, а Mac OS X и Linux версии пока не доступны для публичного скачивания.

В ближайшее время ожидается выпуск игры еще для десятка паблишеров.

1 2 3 4