Обновить
8K+
320
Николай Шлей@CodeRush

Firmware Security Engineer

29,1
Рейтинг
692
Подписчики
Отправить сообщение

На работе стараюсь и сам не писать говна, и не допускать говна к интеграции. Дома в свободное время пишу свободное ПО для души и вечности, самостоятельно управляя его качеством.

Не могу сказать, что прямо смирился полностью (не писал бы сюда ничего, если бы смирился), но пока что на качество результата никто не жаловался, и в основном хвалят, что на работе, что вне работы. Корпорация компенсирует свои хотелки деньгами, сообщество - признанием и уважением коллег.

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

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

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

Эпоха shareware закончилась, и вместо нее наступила эпоха платформ, в которой пользователь не владеет ничем, и вынужден платить постоянно, и теряет доступ к любой "купленной" продукции по мановению руки "правообладателя".

Над "потребности пользователя увеличиваются" работает нынче больше людей, чем собственно над ПО, закрывающим текущие потребности пользователей. Примерно 90% этих "потребностей" пользователю успешно навязаны извне, причем для этого используются самые грязные психологические трюки, FOMO, торговля "стилем жизни" и прочие эффективные приемы заставить пользователя в очередной раз купить продукт.

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

Пока что бизнес вокруг меня делает именно так, а тот, который не делает - либо очень нишевый, либо уже загнулся. Sun Microsystems вон делали хорошо - где они теперь? VmWare вон тоже неплохо делали, а теперь их купил бизнес побольше, и немедленно прекратил продажи бессрочных лицензий. Пользователь приучен этим же бизнесом к тому, что если продуктовая линейка не обновляется каждые полгода-год, значит производитель уже умер, потому что новое всегда лучше, чем такое же, только 200-400 дней назад. При этом тотальная эншитификация всего подряд - это, с точки зрения бизнеса, не просто отлично, а буквально необходимо, Diablo Immortal не даст соврать.

В производстве действительно качественного ПО самым главным механизмом обеспечения качества является не QA, и не TDD, и не прочие аббревиатуры, а предельно ясное понимание всеми участниками производства двух вещей:
- что именно производится
- каковы критерии успеха

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

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

Всю эту индустрию, как и практически все остальные, пожирает один и тот же рак по имени "капитализм", и "нас не учили писать качественное ПО" - это потому, что никому не нужно качественное ПО, его очень дорого делать и оно никогда не принесет столько денег, сколько приносит некачественное ПО, которое получилось выпустить на рынок на полгода раньше, прорекламировать лучше, всучить хитрее, внедрить глубже и т.п. Некачественное ПО - это не вина исполнителей, это прямой результат того, что скорость доставки изменений (без лишних вопросов о том, если ли какой-то смысл в этих изменениях) - это главный критерий успеха.

Подход "move fast and break things" Цукерберга уже давно сожрал рынок ПО заживо, а вместо Computer Science и Software Engineering у нас теперь в основном Software Development и Continuous Delivery/Integration.

Очень мало в каких странах прогрессивный налог на Long Term Capital Gain, и в таких на пенсии можно не жить. Более того, достаточно много стран (из европейских можно выделить Кипр и Мальту), где этого налога нет вообще, и потому платить придется только налог у источника в США (в случае с Кипром и Мальтой - 15%).

Если не выпадать из статуса US person (т.е. либо жить внутри США как resident alien, либо получить ВНЖ или гражданство), необлагаемый порог estate tax составляет почти $13M, т.е. в принципе проблемой не является почти ни для кого.

Если из статуса все же выпадать (потому что каждый год налоги американские оформлять грустно, или санкции не хочется исполнять, или еще что) - отлично работает открытие trust-фонда.

Если вам искренне нравится ваша работа/бизнес/ремесло, то можно сохранять источник активного дохода сильно дольше. Тогда момент выхода на пенсию получится строить не от “мне нужно Х денег для выхода на пенсию”, а от “когда активный доход будет увеличивать капитал меньше чем на Y%, то я больше не буду работать”. Лично мне такое число ощутить гораздо проще.

Еще лучше перестроить оба эти утверждения следующим образом: "каждые дополнительные 350к долларов на американской фондовой бирже - это в среднем дополнительная тысяча долларов в месяц до конца жизни", и дальше уже смотреть, сколько вам нужно, 5к в месяц, или 10к, или 20к, или 50к, и от этого плясать уже. Это получается примерно "правило 3%", т.е достаточно безопасно, если про слишком черных лебедей не думать.

Плюс-минус, иногда выходит чуть больше, иногда чуть меньше, потому что акции колбасит последние года три довольно сильно. В лучший год почти 800к было, в худший - около 400 (до налогов, понятно, налоги эффективные получаются чуть меньше 40%, потому что Калифорния).

В этом году не уволили в начале года - уже отлично.

Очень рад, что банковское приложение считает все текущие расходы за меня, и никакой их строгий учет не нужен. В Купертино на одного человека у меня получается жить на ~55 тысяч долларов в год, т.е. на ~4500 долларов в месяц, из которых 3000 уходит на аренду двухкомнатной (one bedroom) квартиры в комплексе в получасе ходьбы от офиса, 200 - на разного рода коммуналку (электричество, интернет, воду, мусор), 800 - на еду (примерно по трети между супермаркетами, заведениями и столовой в офисе, доставкой не пользуюсь), и еще 500 - на всякие развлечения, путешествия, обновления гаджетов, и т.п.

Итого на "безопасный" (35+ средних годовых затрат, т.е. по правилу 3%) FIRE уже накопил за 7 лет работы, но пока что желания прямо сегодня же уволиться и уехать в страну подешевле, чтобы там жить в домике у моря - не возникает почему-то. Работа радует, RSU понемногу становятся акциями, погода за окном хорошая. При этом понятно, что жить здесь в долине все время никакого смысла нет - все заградительно дорогое, и работать на корпорацию всю жизнь рано или поздно наскучит, да и вывозить перестанешь так или иначе. Посмотрим, как тут карта ляжет с выборами в 24 году, а пока что улыбаемся и пашем.

Спасибо большое, буду пользоваться.

У проекта flashrom тоже есть подобная база, хоть и не настолько подробная.
Отдельной колонкой добавил бы наличие\отсутствие поддержки SFDP, потому что с микросхем без таковой большинство современных компьютеров загрузиться не смогут, даже если по всем остальным параметрам чип подходит.

Еще одна причина - требования работодателя. Мне буквально запрещено контрактом писать какие-либо статьи в СМИ без предварительного их одобрения несколькими отделами, а одобрение это - и затратно по времени, и сильно ограничивает свободу того, о чем можно писать, и в какой форме. В итоге пишу полтора комментария в месяц, и те в основном не по делу.

Отнюдь, потому что бумажка, которую нормальный университет дает - это, считай, первый шаг к возможному переезду в какую-нибудь другую страну. Не собираетесь переезжать - ну может соберетесь еще, время сейчас такое. Без этой бумажки же квест становится намного сложнее, нужен подтвержденный опыт работы, который в возрасте "сразу после школы" будет очень непросто набрать, и даже если наберете, все равно убедить работодателя в другой стране, что вы не верблюд, и опыт ваш - реальный, будет сложно. Подтверждение же диплома делается проще, для этого достаточно не учиться в негосударственном заборостроительном ВУЗе на факультете хорового пения (проверить свой на заборостроительность можно, например, в немецком Anabin), а после окончания подать заявление на признание в соответствующее ведомство другой страны.

Еще один плюс учебы в ВУЗе, который молодежь (чувствую себя старым пердуном, говоря про молодежь, но не подразумевая себя) часто упускает из виду - нетворкинг. Именно возможностями нетворкинга (а не полумифическим "уровнем образования"), по большому счету, отличаются топовые ВУЗы от обычных, а московские - от рязанских. В топовых ВУЗах вы будете учиться рядом с теми, кто в будущем станет элитой вашего города, а то и страны, и дружбу с ними вы потом через всю жизнь пронесете, с обоюдной пользой. Поэтому, кстати, стоит поступать в ВУЗ того города (и той страны), в котором вы в дальнейшем планируете жить.

Короче, если не хотите на ровном месте усложнять себе жизнь - в "бесполезный" ВУЗ таки стоит сходить. Не хотите - ваше право, и ваше лево, но потом отсутствие "бесполезной" бумажки может больно щелкнуть по носу и закрыть многие двери.

Полезный софт, спасибо.

Тоже пользовался QHexEdit2 у себя в UEFITool, но он, к сожалению, очень слабо дружит с HiDPI-режимами. В итоге поискал альтернативы, и наткнулся на QHexView5, на который и перешел. Там тоже есть небольшие косяки, но зато с масштабированием проблем нет.

оригинальный ... переходник «Lightning to HDMI» компании Apple ... действительно является «безмозглым» переходником

Безмозглый переходник с Lightning на HDMI невозможен. Оригинальный переходник - точно такой же "мозглый", и к checkm8 тоже уязвим.

Например, у слова <час м 1c> в единственном числе ударение падает всегда на основу (ча́с, ча́са, ча́су, ча́сом, о ча́се), а во множественном — на окончание (часы́, часо́в, часа́м, часа́ми, о часа́х).

Пишу этот текст на русском языке в четвертом часУ по местному времени.

Дату публикаций посмотрите, а потом сравните ее с 5 августа 2016 года, моим первым днем в корпорации. Сделайте выводы.

Есть небольшая терминологическая путаница с NVRAM:

  • кто-то понимает эту аббревиатуру буквально: Non-Volatile Random Access Memory, и реализует для него API как у памяти, т.е. "прочитай мне столько байт по вот этому адресу", "запиши мне вот эти байты по вот этому адресу" и т.п. Так, к примеру, работает контролер eMMC и хороших SD-карт (некоторые из которых давно уже научились делать все нужные танцы вокруг сырого флеша, чтобы его до дыр не затирала запись по одному и тому же виртуальному адресу).

  • другие понимают ее как "хранилище ключ-значение поверх энергонезависимой памяти", и тогда API получается примерно таким: "прочитай мне переменную с вот этим ключом", "запиши мне вот эти байты в переменную с вот этим ключом", и т.п. Так работает UEFI NVRAM, Apple NVRAM, и прочие подобные на ПК и мобильной технике.

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

Отнюдь, постов и статей не пишу, в комментариях пишу аккуратно, не пытаясь выдавать свое мнение за мнение корпорации, и наоборот. Понятно, что мои корпоративные Legal и Marketing меня тоже читают так или иначе (привет, ребята!), но в этих делах я исповедую не принцип "как бы чего не вышло", а противоположный - "когда убьют, тогда и приходите". Если накажут - писать перестану, пока что седьмой год, полет нормальный.

Нет, конечно, под переменные выделяется несколько блоков и драйвер NVRAM получает информацию об их адресе и размере из Platform Configuration Database (PCD). Вот эти конкретные значения во время работы машины не меняются, и потому могут быть типа PcdsFixedAtBuild, т.е. фактически константами, которые сборочная система захардкодит прямо в сам драйвер при сборке.

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

Информация

В рейтинге
320-й
Дата рождения
Зарегистрирован
Активность

Специализация

Инженер встраиваемых систем, Системный инженер
Ведущий