Как стать автором
Обновить
287
0
Николай Шлей @CodeRush

Firmware Security Engineer

Отправить сообщение

Очень мало в каких странах прогрессивный налог на 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 нет (и слава яйцам!).

Зависит от реализации, но в большинстве своем достаточно тупое, зато работающее "пишем в хранилище, пока оно не заполнилось, когда заполнилось - убираем мусор". Биты на NOR flash можно менять произвольно только с Erase Polarity (т.е. с 1) на 0, поэтому переменные делают так, чтобы их статут с "валидная" на "удалена" можно было менять сменой одного бита с 1 на 0, для этого обычно и используется поле State в заголовке, о котором вы спрашивали в соседней теме. Т.е. запись в переменную получается в виде "прошелся по всем переменным, если нашел уже одну с таким же именем, и она валидная - поставь ей признак "удаляется прямо сейчас", найди место под новую переменную в конце хранилища, если оно есть - пиши туда заголовок новой переменной, если записался - ставь признак "заголовок валидный", пиши новое тело переменной, если записалось, ставь признак "тело валидное", если все нормально - ставь в предыдущую переменную в заголовок признак "удалена", и так далее. Если место кончилось, можно все валидные переменные из хранилища по одной переписать в память, или в другую копию хранилища (обычно их не менее двух, потому что так они переживают повреждение заголовка у самого хранилища, а не только у переменных).

Надеюсь, что смог на пальцах пояснить, если нет - исходники стандартной реализации из EDK2 доступны для изучения:

  1. https://github.com/tianocore/edk2/blob/1f026ababf350746c6071c0873d9d1c8824029ca/MdeModulePkg/Universal/Variable/RuntimeDxe/VariableDxe.c и вокруг - драйвер для UEFI NVRAM.

  2. https://github.com/tianocore/edk2/blob/7c0ad2c33810ead45b7919f8f8d0e282dae52e71/MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteDxe.c - отдельный FTW-драйвер, используемый предыдущим для безопасной работы процедуры Reclaim, т.е. сборки мусора, для которой не нужно дополнительное хранилище такого же размера, а достаточно меньшего по размеру FTW-блока.

Не понял вопроса такой постановке. По поводу того, какие дополнительные фичи простого Non-Volatile Storage сделают его полноценной NVRAM - вот здесь писал.

https://github.com/tianocore/edk2/blob/7c0ad2c33810ead45b7919f8f8d0e282dae52e71/MdeModulePkg/Include/Guid/VariableFormat.h#L97

#define VAR_IN_DELETED_TRANSITION  0xfe     ///< Variable is in obsolete transition.
#define VAR_DELETED                0xfd     ///< Variable is obsolete.
#define VAR_HEADER_VALID_ONLY      0x7f     ///< Variable header has been valid.
#define VAR_ADDED                  0x3f     ///< Variable has been completely added.

Физический смысл: отделить валидные переменные от тех, которые пока еще не валидные (запись еще не закончена или была прервана по каким-то причинам) и тех, которые перестали быть валидными (в переменную было записано новое значение, а старое еще не убрали).

Как интерпретировать: https://github.com/tianocore/edk2/blob/7c0ad2c33810ead45b7919f8f8d0e282dae52e71/MdeModulePkg/Universal/Variable/RuntimeDxe/VariableParsing.c

Я не работаю над Asahi Linux (это было бы конфликтом интересов), но принимаю участие в обеспечении возможности загрузки нескольких ОС разных версий, запуска кастомных ядер и т.п.

Информация

В рейтинге
Не участвует
Откуда
Cupertino, California, США
Дата рождения
Зарегистрирован
Активность