← All posts tagged Mac

Вот хочешь ты такой поставить себе адблок на сафари на гейбуке, идешь к ним, а тебе: "с iTunes ставь, вот редирект".
Приходишь ты на iTunes, нажимаешь гет, а тебе: "А фигле у тебя макос не обновлен, так нельзя".

Закрываешь iTunes.

Fuck you, that's why.

*programming

Одолел на гейбуке FFMpeg, OpenGL, OpenCL, OpenCV, SDL и VideoToolbox hardware decoding, писал на плюсах.

Короче, FFMpeg через RTSP получает кусочек фрейма с IP камеры.
Затем это скармливается в VideoToolbox. Он мне в GPU дает буфер.
Потом это я из этого делаю OpenGL текстуру, из нее делаю OpenCL mem_obj.
Потом таки GPU->GPU копирую в OpenCV UMat (GPU-based матрицу) для алгоритмов всяческих.
Потом делаю алгоритмы
Потом стало быть беру из SDL тот SDL_Surface который рисую, и маплю его на другой mem_obj
Потом копирую из OpenCV матрицы (GPU->GPU) в етот surface/texture.
И потом тут же его рисую снова через SDL не вылазя в host RAM. Наверняка, если потрахаться с форматами текстуры, можно и не копировать, миллисекунду-другую выигрываешь.

Короче, выходит, что все быстро декодируется, весь процессинг и отображение происходит не покидая GPU, с дыркой куда вставить OpenCV/OpenCL вызовы для графических алгоритмов.

Все это дело занимает 7% CPU и чуток GPU на 25 кадрах Full HD, около 7 мсек на кадр выходит (в основном декодирование 5 мсек). У меня на гейбуке устроен Intel IRIS 6100, это подобие GPU.

Когда я стал затем прикручивать OpenCV процессинг на тамошних матрицах, оно занимает по 4-5 мсек на проход одной матрицы кернелом, просто чтобы хотя бы сложить 2 такие матрицы. Потому что Full HD и интел. А целиком весь мой задуманный процессинг получается 100 Мсек на кадр, потому что куча матричных операций. Это неинтересно. Полез смотреть как оно устроено, увидел там как выглядит голый OpenCL kernel (и не один), чей исходник они препроцессором допиливают под конкретные типы прежде чем запускать.

Решил, а чем мы хуже. Взял переписал весь свой алгоритм на OpenCL на тамошней сишечке, OpenCV предоставляет простой API. 18 миллисекунд на кадр, братие! Из говенного интела! Туда еще столько влезет!

Короче, прикольно-то как! Чувство глубокого удовлетворения.

Новый спорт открыл: засечь за сколько найдешь в гугле спецификацию какой i7 проц стоит в гейбуке early 2015 13 inch (полное название проца нужно). С тех пор как обновили страницу википедии оставив там только новые модели, вот прошло уже 3 минуты как мучаюсь.

Тут кретин и я, и они, которые изначально пишут только частоту даже на официальной странице "specifications".

Поставил ту же бубунту на Surface Pro 3, который ждал своего времени на полочке, так тут блютуц не конфликтует с wifi, как конфликтует под бубунтой на гейбуке. Те же уши работают норм, даже когда шифи качается.

Нужно еще добавить, что если вспомнить все что касалось гейбука и радио, так я постил еще давненько, что механическая блютуц клава, которую я наконец-то купил больше года назад, ТАКЖЕ галимо работала с гейбуком: дропала нажатия, отпускания итд. Стандартный профиль, макось, все дела. Пришлось клаву тоже поставить в дальний угол (на сег день уже пристроил к делу однако)

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

ВЕРДИКТ: шифи в гейбуке глючит (отваливается под линуском, бывает не коннектится под макосью) и не поддерживает стандарты: мусорит в эфире (?) (под макосью тоже). Broadcom BCM4306 вот это оно все. Линуск ни при чем.

ХОТЯ: щас поставил рядом гейбук и surface pro 3, запустил с последнего музончик, а с первого качать файло. Файло качается, музончик играет. Надо отдать должное, качается 2 МБ/сек (через этаж), а с surface то же файло качается 500 К/сек. Если под макосью запустить уши (под макосью не глючит) то качается 1Мб/сек когда уши.

Нет щастья.

Я замерял latency ввода клавиатуры гейбука на манер как делал афтор в матерьяле #2886434. Ну, скажем, что рендеринг страницы еще добавляет времени.

Короче, 7 кадров 120 FPS ~ 60 msec. +/- 16 мсек на рефреш — это встроенная клава + встроенный монитор гейбука.

А вот 4К моник (тоже 60FPS over DisplayPort) плюс механическая клава (CM Storm) дали реакцию 4 кадра, что составляет ~ 33 мсек +/- 16 мсек на рефреш.

Думаю, дело в клаве. Картинка, для удовольствия читателя, прилагается (встроенная клава+моник).

А если мерять в IDEA, там все 80 мсек по ощущениям 8(

Я запустил в live mode убунту на гейбуке со своим нищебродским 4К монитором, И ОНО НЕ ТОРМОЗИТ НА НЕМ как гей-ос тормозила! Да и вообще летает очень здорово, ИДЕЙка отрисовует как родная, интерфейс умножай, не умножай, одинаково летает.

Карочи, дуал-бут! Скорее дуал-бут! Все в сад!

Mac

Гейбук на 4К работает 60Гц через DisplayPort. Через HDMI работает 30Гц, выглядит неприятно: мышу тягаешь, расстояния большие, отрисовывается редко, прыгает через 3 сантиметра, мерцает. Давеча нашел DisplayPort проводочек в магазине, доволен теперь.

Новая напасть теперь — тормозит отрисовка. Не видео, а UI. Когда ставишь приемлемый HiDpi scaling, это отличается от того, как если бы пиксель-в-пиксель рисовать то же что и на обычном мониторе. Если рисовать как раньше, мелко выходит чересчур. И вот, результат: тормозит.

Это проявляется во всем, например при скролле в хроме. Видно, что процессору тяжело, ЦПУ высоко, задержки всякие. А при Хрущеве такого не было! И если поставить пиксель-в-пиксель, то количество букв и картинок на тот же размер экрана увеличивается, но не тормозит!

Хорошо заметно в IDEA, что и сподвигло меня на исследования. Я еще тогда замерял как курсор перемещается по тексту и сколько оно кушает ЦПУ. Так вот, разница ощутимая в разных scaling factors. Один быстрый, но useless, все остальные, включая "Default for display" — медленные (на встроенном мониторе default for display — быстрый).

Да, и в результате всего этого CPU жрется гораздо быстрее при простом редактировании текста! Отсюда вентилятор, троттлинг чаще итп. Началось все с новым монитором. Жабка конечно свое тоже дает, но раньше как-то было менее критично.

Такие дела. Надо будет проверить линукс еще.

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

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

Долгое время меня беспокоило отсутствие акселераторов на макосе. Сейчас уже не беспокоит, просто оно неудобно, и все тут. Макоеды по своей привычке быть полностью удовлетворенными даже не разводят больших флеймов по этому поводу: "ну нету акселераторов, не дал их нам Джобс, ну и Джобс с ним, Джобсу лучше видно".

Но вот в очередной раз искал как нажать шорткатом "Don't save" в стандартном диалоге закрытия в местном аналоге Notepad, и т.к. это самое частое место, решил погуглить.

Оказывается, акселераторы для диалогов пишутся штучно, руками для каждого случая, и нигде об этом не объявляется. Наткнулся я на псто, содержащее следующую боль:

"Раньше," — писал автор, — " мы счастливо нажимали Command+D, чтобы в диалоге случалось Don't save [ офигеть шаманы, откуда узнали? из платного журнала? — SannySanoff ], но в новой версии оси этот шорткат не работает, и мы все страдаем".

Отвечает гранд-шаман:

"Теперь вместо Command+D нажимайте Command+Delete, потому что это более натуральный шорткат, по нему к тому же легче попадать пальцами, а Command+D теперь меняет в диалоге тек директорию на Desktop. А если вы хотите чтобы все было как раньше, вот вам строчка в registry записать"

osxdaily.com

Вот такой вот индивидуальный подход к акселераторам, полный неожиданного WIN-а с характерным оттенком. Нескучно живут, не микрософтщина поди.

Чтобы скомпилить проект на Xcode чтобы гонять его под 64-битовым X86_64 симулятором, надо угадайте что? Правильно, поставить в проекте архитектурой строго arm64.

Я сам догадался! Интуиция уже начала подсказывать анальноватое дао Яббла.

Почему launchctl не ругается ошибками на стдерр если что-то не так, а молчит как будто exit code = 0 и все успешно? Почему в man launchctl дофига написано слово "service-name", но нигде не пишется ни примера, ни формата имени сервиса?

Почему постгрес не стартует нормально через launchctl а рекомендует использовать некоторые поставляемые с ним скрипты для старта и стопа, и там про лаунчктл ни слова?

Ответы: "потому что так задумано великим", и "потому что идиоты" не предлагать.

Гейос (mac os) для вашего удобства не использует клавиши-акселераторы (подчеркнутые буквы в диалогах, меню итд). Видимо, Джобс еще давно сказал, что это вне обсуждения. Приходится мучаться, и разработчики простых диалоговых окон подтверждений (которые регулярно случаются в гей-оси) вовсю пользуются тем, что можно поставить фокус (рамочку) вокруг одной кнопки, не дефолтной, а вторую кнопку сделать дефолтной. Теперь пробелом ты выбираешь одну кнопку, а ентером — другую, главное не перепутать где какая! Как они ловко Стива-то обвели вокруг пальца! Правда ловкий трюк! Как же можно не восхищаться 8). Программисты эппл самые лучшие!

Сегодня узнал об непрекращающейся борьбе Яббла с разработчиками на тему кто контролирует область уведомлений в гей-оси (имеется в виду макос). member.ipmu.jp

И я знаю, что существуют люди, которые оправдывают такое положение дел, мол яббл знает что делает, они придумали макос — им и террор в руки, не нравится — уезжай, а нас все устраивает. Эти же люди скорее всего анархисты.

Вот гомосеки из эппла убрали управление provisioning profile-ями из xcode. Оставили только управление на сайте. Вот я добавил на сайте новый девайс (васи пупкина, моего тестера из другого города). Добавить девайс руками через чекбокс в провижн профайл через сайт я не могу, т.к. этот provisioning profile is managed by xcode, и редактировать его запрещено на сайте. ВНИМАНИЕ ВОПРОС: как добавленное устройство попадёт ко мне в xcode и далее в билд? Xcode 7.
(потратил 40 минут времени чтения хелпов, в конце забил и сделал профайл который не managed by xcode, добавил туда все руками, прописал его в проект).

Данный пост поймут программисты имевшие сношения с apple developer program, а ответят мне только самые упоротые фанаты. АУ.

VirtualBox в макоси 10.10 не хочет монтировать raw disks.
Диски есть, показываются в Disk Utility, цифры совпадают.
VBoxManage internalcommands createrawvmdk работает и файл создает.
Но сам VirtualBox их не говорит, потому что Object Not Found внизу там где-то.
Запускаю от рута, пермишны на все есть 777.

Это потому что когда я делаю VBoxManage internalcommands createrawvmdk , в Disk Utility кратковременно пропадают из списка все разделы диска и остается только строчка в списке про сам физический диск. А в остальное время, через 1 секунду, операционная система авто-подключает диск, кушает его partition table и как-то лочит его для VirtualBox.

Все найденные мною вопросы про Yosemite и данную ошибку натыкаются на тишину.

Я уже когда-то писал про фантастическое количество состояний образа DMG (detached, attached, opened, mounted). Видимо, существует возможность для ОС "отпустить" и сам диск, НО СЛОВА ДЛЯ ЭТОГО В СЛОВАРЕ МАКО#6ОВ НЕТ. Потэтому попытка нагуглить любую техническую документацию в гугле натыкается на статью на Mac Attorney и сотне похожих лепрозориев про "запустите Disk Utility" — много статей, и там объясняются банальные вещи — и все не про это.

Гугл в яббло-стране недействителен для серьезного поиска из-за флуда домохозяек.

Пойду на IRC.

Ограничения — они в башке у авторов, которые делают "самые гибкие инструменты".
В xcode нету шортката "удалить строку", и соответственно не назначить клавиши.
На убогой клаве это приводит к необходимости Fn+Left, Fn+Left, Shift+Down, Delete.
Два раза влево потому что смарт хоум конечно же.
Всего 7 нажатий.