Встреча на Эппле

May 14, 2021 15:33

Интернеты принесли вот эту замечательную историю про Эппл: https://taibbi.substack.com/p/on-the-hypocrites-at-apple-who-canceled - клиента не успев нанять, тут же уволили. По требованию бдительной эппловской и около общественности. За якобы неуважительные к женскому полу высказывания в книге пятилетней давности. Требуют также разработать и принять меры, чтоб такого больше не было. В принципе, очередной шаг вперед... впрогресс, точнее, по сравнению с делом Дамора. Там тоже обсуждали как бы мразей больше не нанимать, но - втихаря, стесняясь и опасаясь последствий. А тут уже не то что не стесняются, а возмущаются тем, что не.

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

Значит, сломался у меня (наконец-то?) МакПро стиля "терка для сыра" образца 2009 года. Ну не совсем сломался, но стал перегружаться раз в сутки. Поменять вентилятор? - скажете вы, и ошибетесь. Купить новый макМини типа М1 и, наконец, за этот самый М1 подержаться! Я, в принципе, обещал себе без особой надобности больше Эппл не покупать, чтоб цензуру и прочее благолепие своими деньгами не поощрять, но как супротив М1 удержаться-то? Инженерная работа же впечатляющая.

Железно-инженерная работа и в самом деле оказалась хороша, как и обещали. Но вот софт... Большой Сюр 11.3, да. Собственно, первые две истории скорее смешные - хотя как попадешь, а вот последняя, про взбесившийся скринсейвер - это уже за пределами вменяемости, на мой взгляд. Но по порядку.


1. Переименуйте ваши EXE файлы.

Старый МакПро ящик у меня совсем старый, стоит отключенный от интернета на всякий случай и смотрит только на сетевой диск. На каковой диск я кладу аппликации, если они понадобились на ящике и уже оттуда заволакиваю. Заодно образуется такой склад "все нужное в одном месте" и при необходимости перетаскивается одним движением мыши. Удобно, чо. Но тут приходит Биг Сюр. У вас нет прав тащить этот файл! А? Какие еще права на моем же сетевом диске? Ну полез пощелкать. А щелкать там не хуже чем в Виндоуз развлечение - три разных места... если не больше. Не помогает. Посмотрел в интернеты. Интернеты полны ужасов. Биг Сюр закрутил секьюрити каким-то недокументированным четвертым способом. Камрад получил файл на системный диск при синхронизации с облаком и теперь ничего с ним не может сделать. Ни прочесть, ни переместить, ни удалить! - нет, прикиньте: файл есть, здоровенный, пользу из него извлечь нельзя, но и удалить тоже нельзя: не хватает прав, причем неясно каких.

Но у нас диск к счастью не системный а сетевой и при сочетании "секьюрити, выполняемый файл" мы делаем что? правильно, пакуем его нахрен. Паковка не идет, но диагностика чуть точнее: нет прав на директорию Contents (выполняемые файлы на Эппле внутре себя имеют поддиректории. И это правильно). Тут диагноз становится ясен, мы сей файл таки пакуем с другого компьютера, успешно перемещаем и распаковываем. А еще говорят, что работа с Виндовз прививает вредные навыки.

Однако, диагноз по интернету: какой-то умник внутри Эппла придумал ограничить подвижность выполняемых файлов захардкодив (не иначе) такое их свойство, как содержать внутри себя поддиректорию Contents. Хрен знает, почему ему не дали по голове сразу в момент выскакивания оной идеи. При формулировке условий ограничения подвижности он предсказуемо обсдался. Ну и вот.


2. Хардверное решение софтверной проблемы.

Я вот такого еще не видел. Значит, новый комп предполагался в безголовом варианте. То бишь железный дисплей ему не положен, а ходить туда через Display Sharing приладу, что есть эппловский VNC. И все бы хорошо, но есть нюанс. Дисплей у меня не то чтобы здоровенный, но все же 4к. А эппловский VNC настаивает на разрешении 1080p, то бишь пользует только половину экрана. Чем бы щелкнуть? Щелкнуть не видно чем. Туда-сюда, в интернеты. Интернеты говорят: давно тут плачем, но все бесполезно. Но ты-то сам уже не плачь: добрые китайцы вняли нашему горю, соорудили ма-а-аленький такой шпентик - вставляется в HDMI разъем и изображает из себя здоровенный дисплей. Когда это шпентик внутре - Эппл становится согласен поменять разрешение VNC клиента, чтоб совпадало с твоим экраном.
10 долларов на Амазоне! И таки помогло. Ну, тут без комментариев. Но я такого еще не видел.


3. Взбесившийся скринсейвер.

Я не знаю, как они ЭТО сделали. Собственно, работай я в Эппле над этой фичей, и пообещай мне Путин миллион долларов за - я б не знал как ЭТО сделать. Какую-то хренову тучу народа надо подкупить. А если один честный попадется? Симптомы:

Сидишь у новой игрушки и весело жмешь кнопки (я чуть ли не в Варкрафт играл - кстати, вполне тянет, лучше чем старый), вдруг бац - и по экрану начинает бегать какая-то жуткая уродливая фигня и никуда. Ну, перегружаешься. Минут через 15 - опять. Прикиньте: меняешь старый комп потому что он бутится раз в сутки и это бодает, а тут такое каждые 15 минут. Ну, в интернеты. Интернеты плачут с ноября! 2020, с версии 11 вроде бы 0 (сейчас - 11.3). Куча шаманских рецептов. Включить быструю смену юзера. Выключить быструю смену юзера. Добавить второго юзера, убрать всех кроме одного. Найти plist, да не системный, а юзерский и вписать туда заклинание. Ни хрена не помогает. Два дня я все это, охреневая, пробовал, наконец нашел стабильный "путь вокруг": Ctrl-Shift-Eject и ввод пароля по новой.

Ну жить можно. Но есть вопрос. А как такую "фичу" сделать? Специально, если захотеть. Ну, вот если плохой человек миллион пообещает. Смотрим.

0. Нет, ну вызвать скринсейвер в неправильный момент - это легко. Перепутал and с or, тем более там plist'ов конфигурации как собак нерезанных. Нет, ты его вызови так, чтоб по нажатию клавиши он не убивался. Для этого надо:
1. Ошибка в дизайне. Поскольку правильный скринсейвер прибивается нормально, а неправильный не прибивается, то ясно, что запуск скринсейвера и извещение системы, что скринсейвер запущен - разнесены в разные части кода, отдельно друг от друга: вот эта процедура запускает скринсейвер, вот эта - его регистрирует. Это ошибка в дизайне, причем непонятно как она прошла design review. Собственно, спинной мозг: берешь ресурс, покажи как его освободишь. Любой ресурс, даже некритичные ресурсы не бесконечны. А тут - монопольный захват экрана, освобождения без регистрации не будет, а что это у тебя есть возможность захвата без регистрации?
2. Ошибка в коде. Допустим, провалили дизайн. Сделали две разные процедуры. Тогда должен быть док, указывающий: использовать две, подряд... ну плохой дизайн требует большей документации, чо. Но в коде-то где-то скринсейвер вызывается двумя грубо говоря командами (запуск, регистрация), а где-то - одной (запуск без регистрации). Как такое прошло code review? Соседнее подразделение привлекли? но оно тупо смотрит в док, в доке - две, в коде - одна... Оно не смотрит в док? а чо это оно у вас получает зарплату, не смотря в док?
3. QA не ловит блох. Собственно, у меня сейчас эту штуку ловит скрипт, что смотрит на экран через VNC интерфейс. У них там что, QA не автоматизирован? Кстати: постоянное пользование VNC клиента требует периодически прибивать пару процессов на маке: ScreensharingAgent и screensharingd. Иначе - начинаются тормоза. То есть да, QA мышей не ловят. Тем более что это - прибивать самоперезапускающиеся процессы - ныне стандартная метода работы с маком. См. все вхождения kill в скрипте по ссылке.
4. Как это можно за полгода и три крупных релиза (11.1-3) не поправить? Собственно, процедура исправления понятна: поиск по коду всех мест, где происходит запуск без регистрации. Меньший приоритет - тут же изучить такие места не предмет легитимности собственно запуска.

Короче: миллион в мешке тут бы не помог. Тут нужно, чтобы лет пять назад перестали нанимать компетентных людей во все команды: дизайн, кодирование, QA, техподдержка... Это я собирался написать. Когда интернеты принесли ту ссылку, что в начале.

Упд. И еще в одну софтверную хрень наступил: Подключенный новый микрофон сдвигает уровень выходного(!) звука вниз. Включаешь USB микрофон, звук в наушниках - не USB, а через шпентик, едет вниз. Иногда, но постоянно. И интернеты плачут Everything worked well until Big Sur 11.2.. Да что же это такое с Эпплом?
Previous post Next post
Up