Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem. Nulla consequat massa quis enim. Donec pede justo, fringilla vel, aliquet nec, vulputate eget, arcu. In enim justo, rhoncus ut, imperdiet a, venenatis vitae, justo. Nullam dictum felis eu pede mollis pretium. Integer tincidunt. Cras dapibus. Vivamus elementum semper nisi. Aenean vulputate eleifend tellus. Aenean leo ligula, porttitor eu, consequat vitae, eleifend ac, enim. Aliquam lorem ante, dapibus in, viverra quis, feugiat a, tellus. Phasellus viverra nulla ut metus varius laoreet. Quisque rutrum. Aenean imperdiet. Etiam ultricies nisi vel augue. Curabitur ullamcorper ultricies nisi. Nam eget dui. Etiam rhoncus. Maecenas tempus, tellus eget condimentum rhoncus, sem quam semper libero, sit amet adipiscing sem neque sed ipsum. Nam quam nunc, blandit vel, luctus pulvinar, hendrerit id, lorem. Maecenas nec odio et ante tincidunt tempus. Donec vitae sapien ut libero venenatis faucibus. Nullam quis ante. Etiam sit amet orci eget eros faucibus tincidunt. Duis leo. Sed fringilla mauris sit amet nibh. Donec sodales sagittis magna. Sed consequat, leo eget bibendum sodales, augue velit cursus nunc,
Event | Description |
---|---|
Starting Date / Time of Issue The time the root problems began, not necessarily when alerted or detected. How was the incident detected (e.g. customer complaint, our alarm, another team’s alarm, or manual monitoring)? | Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et |
Time To Detect (minutes) Time duration between Issue introduction to Issue Detection Time from first symptoms until issue first noticed or alerted | Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et |
Time to respond (minutes)Time from first alert or notification until acknowledged and triage begins | Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et |
Time to root cause identification (minutes) from Response Time Time duration between Issue Detection to Identifying the Root cause? | Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et |
Time to repair (minutes)Time between Identifying the Root cause to Issue mitigation | Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et |
Ending Date / Time of IssueThe time when remediations are completedTotal Time from initial response to recovery (excludes post incident action items) | Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et |
Role | Team | Individual |
---|---|---|
Incident Commander | Team | Name |
Subject Matter Expert | Team | Name |
Subject Matter Expert | ||
Additional Responders |
Time | Details |
---|---|
November 26, 2021: 11:40 AM PST | Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et |
November 26, 2021: 12:00 PM PST | Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et |
November 26, 2021: 12:34 PM PST | Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et |
November 26, 2021: 2:40 PM PST to 4:00 PM PST | Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et |
When a question asks “why”, use the “5 Why’s” method to show your thought process as you drive to deeper root causes and answers. Mouse over the “?” help icon to see an example.
Prioritized | CAR# | Description | Creation Date | Target Date | Owner | State |
---|---|---|---|---|---|---|
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque nec | June 1, 2021 | June 2, 2021 | Name | Completed |
This is the end of post
]]>This is the end of post
]]>材料均带了原件,且无需复印件,车管所说不需要复印件。
登录当地省份的车管所网站,选择「办事指南」->「窗口办事指南」->「持境外机动车驾驶证申请驾驶证」,查询当地车管所更换外籍驾照的所需材料,大致会和之前提到的材料类似。
找到当地正规的翻译机构,翻译美国驾照,并与翻译机构确认他们是车管所认可的翻译。
带齐资料后来到车管所。
选择「持境外机动车驾驶证申请驾驶证」的业务,取号排队办理业务。
材料齐全会当成获批,接下来就是做体检和拍照。
车管所大厅内有拍照和体检的业务,也是当场完成。
完成所有手续、体检、拍照后,缴费并预约科目一考试
当天进行科目一考试
通过考试立刻就能拿到驾照
从国外驾照换国内驾照,最重要的一个条件是需要在国外居住超过三个月。
这个时间是你拿到国外驾照的前三个月或后三个月。本人是在拿到美国驾照后,短期回国待了几个星期,因此不满足拿到国外驾照后待满三个月的规则,但因为我之前已经待满三个月,依旧可以换成国内驾照,但需要提供当时回国的行程单。
车管所可以直连公安系统,进而查到你拿到国外驾照的前后三个月出入境记录,因为我们不需要自己带出入境的记录。
南京车管所很大也很新,负责国外驾照换国内驾照的交警同志专门做这个业务,流程非常熟悉和专业,给他们点赞!👍
南京车管所科目一的考场也非常大,所以都是随约随考,不需要等待。建议做好科目一的学习工作后再去办理业务,这样就可以顺利通过当天拿到驾照。
科目一当天可以考两次,如果第一次不满足 90 分要求,可以再考一次。
车管所支持微信、支付宝支付,不需要带现金。文件材料复印件和照片也不需要自带,车管所内就可以办理。
This is the end of post
]]>You can download the resources from this link.
Also, strongly recommend you to watch & subscribe Victor’s Youtube videos to digest more from him.
Profits
Once you know mathematically what’s causing the problem, you need to understand WHY the number has declined in the context of the marketplace. This may be a “compound framework” problem requiring you to use a general market analysis framework. If so, most often you will want to start with the customer (demand side) analysis and potentially may have to use the entire framework.
Segment into its component parts, compare to historical data:
Keep “drilling down” by finding the problem segment, and drill down on THAT segment until you ISOLATE what’s mathematically causing the majority of the problem (aka. Find the LEVERAGE point)
New Market Entry, New Product, New Business, How to Grow, Strategy, Turnaround, Company Position Assessment.
Use this framework when Company A is looking to acquire or merge with Company B, AND the two companies are different. This framework determines if there’s a good fit. If Company A & B are nearly identical, use a capacity expansion framework instead.
“Fit Framework”
This framework does not answer the question IF it’s a good idea to merge/acquire. It assumes you already know that it IS a good idea and the question is whether or not this particular target company is good fit. To determine IF merging/acquiring is a good idea, use Capacity Expansion Framework instead.
ABC Company is considering adding capacity (e.g., building a new factory), reducing capacity or acquiring a DIRECT competitor. This is a good framework when understanding industry capacity is the ONLY factor. If there are “fit” issues, use the Mergers & Acquisitions “Fit Framework” instead.
Focus on the largest sources of demand and the largest growth rates, use these few leverage points help you understand where the majority of demand is heading.
This is the end of post
]]>You can download the resources from this link.
Also, strongly recommend you to watch & subscribe Victor’s Youtube videos to digest more from him.
A typical day in the life as a consultant:
To break things down into its components parts (When in doubt, break problem into pieces).
Analysis: The separating of any material or abstract entity into its constituent elements (opposite of synthesis)
Analyzing a Case Step-by-Step
Great Close: Conclusion with action recommendation, 3 pieces of clearly relevant and logically related data
Profit = Revenue - Cost
Compare to industrial (competitors) & historical change
Revenue Driven
Cost Driven
This is the end of post
]]>1 | # h1 Heading |
1 | ___ |
1 | (c) (C) (r) (R) (tm) (TM) (p) (P) +- |
© © ® ® ™ ™ § § ±
1 | **This is bold text** |
This is bold text
This is bold text
This is italic text
This is italic text
Strikethrough
1 | > Blockquotes can also be nested... |
Blockquotes can also be nested…
…by using additional greater-than signs right next to each other…
…or with spaces between arrows.
1 | + Create a list by starting a line with `+`, `-`, or `*` |
+
, -
, or *
1 | ![Alt text][id] |
With a reference later in the document defining the URL location:
1 | Superscript: 19^th^ |
Superscript: 19th
Subscript: H2O
1 | Footnote 1 link[^first]. |
Footnote 1 link[1].
Footnote 2 link[2].
1 | {% jsfiddle o2gxgz9r default light %} |
This is the end of post
We can use the example below as a reference to make text blurred.
The main CSS to handle blurred effect is here:
1 | .spoiler-blurred { |
Codepen Example link: https://codepen.io/tivAgbk6frnAXaUN/pen/QWGwYop
This is the end of post
]]>When we start to develop a large scale system, we usually use a three tier architecture methodology to build it:
The benefits of a three tier architecture include:
A system is said to be scalable if it can handle an increased load without redesign. The lion’s share of the cost of system development is usually labor, so being able to adjust to increasing load without having to rewrite every time ten new users are added is a crucial feature.
Large scale systems often need to be highly available. Availability is the ability of a system to be operational a large percentage of the time – the extreme being so-called “24/7/365” systems. The largest challenge to availability is surviving system instabilities, whether from hardware or software failures.
In a two node cluster, when the first node fails, we’ve lost our backup, and there is now a single point of failure, jeopardizing the high availability characteristics we so carefully crafted our system around. For this reason, manageability is an important aspect of successful large scale system design.
Security is an important aspect of system design, and all the more so for distributed systems, since they are often open to attack from agents at any of millions of worldwide locations. Therefore, system designers need to carefully consider what mechanisms they will use for authentication and authorization.
Properly speaking, this last ingredient is not an aspect of the system itself, but rather an element of the process used to develop the system. Still, employing proper development practices is a fundamental that must be kept in mind during planning, as much as scalability, availability, manageability, and security.
This is the end of post
]]>数据是信息的载体,是描述客观事物属性的数、字符及所有能输入到计算机中并被计算机程序识别和处理的符号的集合。数据是计算机程序加工的原料。
数据元素是数据的基本单位,通常作为一个整体进行考虑和处理。
一个数据元素可由若干数据项组成,数据项是构成数据元素的不可分割的最小单位。
数据结构是相互之间存在一种或多种特定关系的数据元素的集合。
数据对象是具有相同性质的数据元素的集合,是数据的一个子集。
数据类型是一个值的集合和定义在此集合上的一组操作的总称。
抽象数据类型是抽象数据组织及与之相关的操作,用数学化的语音定义数据的逻辑结构、定义运算,与具体的实现无关。
程序 = 数据结构 + 算法
数据结构:如何把现实世界的问题信息化,将信息存进计算机,同时还要实现对数据结构的基本操作。
算法:如何处理这些问题,以解决实际问题。
O(1) < O(log2n) < O(n) < O(n*log2 n) < O(n2) < O(n3) < O(2n) < O(n!) < O(nn)
事前预估算法的时间开销 T(n) 与问题规模 n 的关系。
时间开销与问题规模 n 的关系:
This is the end of post
]]>软件设计文档:链接
This is the end of post
]]>Encryption is the process to use an encryption algorithm to encrypt the data. After processing, only those people who have the key can decrypt the data and get the original raw data.
Some popular encryption algorithm are AES (Advanced Encryption Standard) and RSA (The Rivest-Shamir-Adleman).
After encryption, the data is secure and able to be decrypted with the key.
Hashing is a one-way calculation with a specific cryptographic pattern. The hashing method takes some part of data to convert into a predetermined length of the output, and the output is called Hash.
Some popular hashing functions are MD5 and SHA(Secure Hash Algorithms).
After hashing, the data output is NOT convertible to the original raw data, and the output also represents the raw data even it’s not readable. The hash value is for comparison purposes, only the original data is exactly the same so that the output of two hash could be the same.
Salting is pre-work for hashing. It happens sometimes while processing the password. Because people may use 123456
or abcdef
as their password, if we process those passwords directly using hashing, hackers will easily read them out since those passwords are very common.
What we commonly do is to add a salt into the password phase to make it more complicated. For example, the salt is te@mx12
, and we can put it in the middle of password as 123te@mx12456
or abcte@mx12def
. This processing producer is called salting.
After salting, we can process those salted data with hashing method to improve the security level.
This is the end of post
]]>Author: Wei Xia (hi@weixia.dev)
This document is designed to be a reference of the Uber Ride-sharing System, and it describes architecture and sub-architecture with their associated interfaces, database schemas, and the motivations behind the chosen design. Both high-level and low-level designs are included in this document.
The challenge for the Uber Ride-sharing System as a whole is to satisfy the dynamic demand from passengers side and the dynamic supply from drivers side. This system design document is to provide the guideline to accomplish this challenge, and make the entire system work in a cost effective and time efficient manner.
The ability to match ride demands from passengers and ride supplies from drivers are the essential function of this Uber Ride-sharing System. Uber App is currently providing ride sharing service in a 5M population urban city. After downloading the app, passengers can submit their ride request by sending their real-time location, and Uber App will match the nearby drivers within certain range of distances. With a successful match, the driver can pick up the passengers and start the route to the destination passenger request.
The system is mainly providing the following functionalities:
To effectively provide functionalities above, we have designed the following microservices below to enable Uber Ride-sharing System workflow:
In the rest of this system design document, it will layout out how each microservice works in details, and how different microservices connect together.
Under each microservice section, it presents the diagram of incoming and outgoing services, also along with API architecture & definitions. Each section also presents API sample requests as reference, also with database design and schema samples if any database involves.
End-user characteristics:
Before jumping into microservices details, I would like to give brief background on how to select API architecture. All microservices are chosen to use either RPC (Remote Procedure Call) or REST(REpresentational State Transfer). Below are the differences between those two architecture, we choose either of them for each microservice based on business need and best performance.
RPC (Remote Procedure Call):
REST(REpresentational State Transfer):
GET
, POST
, PUT
, DELETE
, OPTIONS
Trip Gateway Service is the core service to connect drivers and passengers clients, and is built with RPC architecture to provide quick and small data transfer request. Clients can establish the connection via WebSocket to provide real-time and continuous communication method.
The primary responsibilities and/or behavior of Trip Gateway Service as listed below:
API Example
update-driver-location
: this method will get drivers’ location for every 5 seconds, and send the location to Driver Location Service.
API request example:
1 | curl --request POST \ |
update-driver-status
: this method will get or update drivers’ availability status, and send the status to Driver Location Service.
API request example:
1 | curl --request POST \ |
submit-trip-request
: this method will handle passengers’ book request, once the submission is successful, it will generate a unique trip-id
to store in Trip Record Service.
API request example:
1 | curl --request POST \ |
update-trip-detail
: this method will provide the ability to update the exiting trip details both for drivers and passengers. In the request example, it helps passengers to update their destinations.
API request example:
1 | curl --request POST \ |
cancel-trip
: this method will help passengers and drivers submit trip cancellation request.
API request example:
1 | curl --request POST \ |
Map & Route Service is a utility service to provide any map related functionalities.
It’s built with RPC architecture.
The primary responsibilities and/or behavior of Map & Route Service as listed below:
API Example
get-route
: this method will generate the route for drivers by passing starting location and ending location.
API request example:
1 | curl --request POST \ |
get-arrival-time
: this method will return the arrival time by calculating starting location and ending location based on parameters.
API request example:
1 | curl --request POST \ |
Driver Location Service is a service to store drivers locations in order to provide nearby driver list for passenger’s trip request.
It’s built with RPC architecture.
The primary responsibilities and/or behavior of Driver Location Service as listed below:
Database Table Schema
API Example
store-driver-location
: this method will convert driver’s latitude and longitude location format into geohash and store them into the database for retrieving purpose.
API request example:
1 | curl --request POST \ |
get-nearby-driver
: this method will retrieve nearby driver-user-id
list by passing the location and defined range.
API request example:
1 | curl --request POST \ |
Dispatch Service is a service to assign a driver for a trip based on different measures. Also it can process trip completion request and store the update in the Trip Record Service.
It’s built with RPC architecture.
The primary responsibilities and/or behavior of Dispatch Service as listed below:
API Example
assign-trip-driver
: this method will assign a driver to a specific trip based on availability and other measures
API request example:
1 | curl --request POST \ |
complete-trip
: this method will mark this trip complete, and update in the trip record service
API request example:
1 | curl --request POST \ |
Trip Record Service is a service to store and update trip related information, such as starting & ending location, driver id, passenger id, trip cost, and etc.
It’s built with REST API (HTTP) architecture.
The primary responsibilities and/or behavior of Trip Record Service as listed below:
Database Table Schema
API Example
get-trip-detail
: this method will return the trip metadata from database by passing tripId
as unique identifier.
API request example:
1 | curl --request GET \ |
update-trip-record
: this method will update the trip metadata in database by passing tripId
and other field values.
API request example:
1 | curl --request POST \ |
Passenger Profile Service is a service to update passenger profile information related functionalities, such as home or work address, profile image, payment, and etc.
It’s built with REST API (HTTP) architecture.
The primary responsibilities and/or behavior of Passenger Profile Service as listed below:
passenger-user-id
Database Table Schema
API Example
get-passenger-info
: this method will retrieve passenger’s profile by passing this passenger’s passenger-user-id
API request example:
1 | curl --request GET \ |
update-passenger-info
: this method will update passenger’s profile by passing this passenger-user-id
and properties need to update.
API request example:
1 | curl --request POST \ |
retrieve-history-trip
: this method will retrieve this passenger’s trip history
API request example:
1 | curl --request GET \ |
update-payment-method
: this method will help passenger to add or update payment methods.
API request example:
1 | curl --request POST \ |
Driver Profile Service is a service to update driver profile information related functionalities, such as driver car information, driver profile image, payout method, and etc.
It’s built with REST API (HTTP) architecture.
The primary responsibilities and/or behavior of Driver Profile Service as listed below:
Database Table Schema
API Example
get-driver-info
: this method will retrieve driver’s profile by passing this driver-user-id
.
API request example:
1 | curl --request GET \ |
update-driver-info
: this method will update driver’s profile by passing this driver-user-id
and update information fields.
API request example:
1 | curl --request POST \ |
Payment Service is a utility service to provide payment related functionalities, such as pre-verify passenger’s payment before submitting trip request, and send payout to drivers.
It’s built with RPC architecture.
The primary responsibilities and/or behavior of Payment Service as listed below:
API Example
payment-pre-auth-check
: this method will validate passenger’s payment method, and allow or deny trip request.
API request example:
1 | curl --request POST \ |
send-payout
: this method will submit driver’s payout choice, and cash out their earnings.
API request example:
1 | curl --request POST \ |
Review Service is a utility service to provide review and rating related functionalities, such as drivers and passengers can submit reviews and rating for each other.
It’s built with RPC architecture.
The primary responsibilities and/or behavior of Review Service as listed below:
API Example
submit-review
: this method will let drivers and passengers to submit reviews and rating.
API request example:
1 | curl --request POST \ |
This is the end of post
]]>Number | Released Date | 中文称号 | 中文名称 | English Name | English Title |
---|---|---|---|---|---|
151 | 2020-09-22 | 沙漠玫瑰 | 莎弥拉 | Samira | the Desert Rose |
150 | 2020-08-06 | 封魔剑魂 | 永恩 | Yone | the Unforgotten |
149 | 2020-07-23 | 含羞蓓蕾 | 莉莉娅 | Lillia | the Bashful Bloom |
148 | 2020-01-16 | 腕豪 | 瑟提 | Sett | the Boss |
147 | 2019-12-12 | 残月之肃 | 厄斐琉斯 | Aphelios | the Weapon of the Faithful |
146 | 2019-11-10 | 涤魂圣枪 | 赛娜 | Senna | the Redeemer |
145 | 2019-06-26 | 元素女皇 | 奇亚娜 | Qiyana | Empress of the Elements |
144 | 2019-05-14 | 魔法猫咪 | 悠米 | Yuumi | the Magical Cat |
143 | 2019-01-25 | 解脱者 | 塞拉斯 | Sylas | the Unshackled |
142 | 2018-12-05 | 万花通灵 | 妮蔻 | Neeko | the Curious Chameleon |
141 | 2018-05-31 | 血港鬼影 | 派克 | Pyke | the Bloodharbor Ripper |
140 | 2018-03-08 | 虚空之女 | 卡莎 | Kai’Sa | Daughter of the Void |
139 | 2017-11-22 | 暮光星灵 | 佐伊 | Zoe | the Aspect of Twilight |
138 | 2017-08-22 | 山隐之焰 | 奥恩 | Ornn | the Fire below the Mountain |
137 | 2017-07-12 | 影流之镰 | 凯隐 | Kayn | the Shadow Reaper |
136 | 2017-04-18 | 逆羽 | 霞 | Xayah | the Rebel |
135 | 2017-04-18 | 幻翎 | 洛 | Rakan | the Charmer |
134 | 2016-12-06 | 青钢影 | 卡蜜尔 | Camille | the Steel Shadow |
133 | 2016-10-05 | 翠神 | 艾翁 | Ivern | the Green Father |
132 | 2016-08-10 | 暴怒骑士 | 克烈 | Kled | the Cantankerous Cavalier |
131 | 2016-05-18 | 岩雀 | 塔莉垭 | Taliyah | the Stoneweaver |
130 | 2016-03-25 | 铸星龙王 | 奥瑞利安·索尔 | Aurelion Sol | the Star Forger |
129 | 2016-02-02 | 戏命师 | 烬 | Jhin | the Virtuoso |
128 | 2015-11-25 | 海兽祭司 | 俄洛伊 | Illaoi | the Kraken Priestess |
127 | 2015-09-25 | 永猎双子 | 千珏 | Kindred | the Eternal Hunters |
126 | 2015-07-09 | 河流之王 | 塔姆·肯奇 | Tahm Kench | the River King |
125 | 2015-05-28 | 时间刺客 | 艾克 | Ekko | the Boy Who Shattered Time |
124 | 2015-03-12 | 星界游神 | 巴德 | Bard | the Wandering Caretaker |
123 | 2014-12-11 | 虚空遁地兽 | 雷克塞 | Rek’Sai | the Void Burrower |
122 | 2014-11-20 | 复仇之矛 | 卡莉丝塔 | Kalista | the Spear of Vengeance |
121 | 2014-09-16 | 沙漠皇帝 | 阿兹尔 | Azir | the Emperor of the Sands |
120 | 2014-08-14 | 迷失之牙 | 纳尔 | Gnar | the Missing Link |
119 | 2014-05-12 | 弗雷尔卓德之心 | 布隆 | Braum | the Heart of the Freljord |
118 | 2014-02-27 | 虚空之眼 | 维克兹 | Vel’Koz | the Eye of the Void |
117 | 2013-12-13 | 疾风剑豪 | 亚索 | Yasuo | the Unforgiven |
116 | 2013-10-10 | 暴走萝莉 | 金克丝 | Jinx | the Loose Cannon |
115 | 2013-08-22 | 圣枪游侠 | 卢锡安 | Lucian | the Purifier |
114 | 2013-06-13 | 暗裔剑魔 | 亚托克斯 | Aatrox | the Darkin Blade |
113 | 2013-04-30 | 冰霜女巫 | 丽桑卓 | Lissandra | the Ice Witch |
112 | 2013-03-29 | 生化魔人 | 扎克 | Zac | the Secret Weapon |
111 | 2013-03-01 | 德玛西亚之翼 | 奎因 | Quinn | Demacia’s Wings |
110 | 2013-01-23 | 魂锁典狱长 | 锤石 | Thresh | the Chain Warden |
109 | 2012-12-19 | 皮城执法官 | 蔚 | Vi | the Piltover Enforcer |
108 | 2012-12-07 | 唤潮鲛姬 | 娜美 | Nami | the Tidecaller |
107 | 2012-11-13 | 影流之主 | 劫 | Zed | the Master of Shadows |
106 | 2012-10-25 | 蜘蛛女皇 | 伊莉丝 | Elise | the Spider Queen |
105 | 2012-09-27 | 虚空掠夺者 | 卡兹克 | Kha’Zix | the Voidreaver |
104 | 2012-09-12 | 暗黑元首 | 辛德拉 | Syndra | the Dark Sovereign |
103 | 2012-08-14 | 傲之追猎者 | 雷恩加尔 | Rengar | the Pridestalker |
102 | 2012-08-01 | 皎月女神 | 黛安娜 | Diana, | Scorn of the Moon |
101 | 2012-07-19 | 荆棘之兴 | 婕拉 | Zyra, | Rise of the Thorns |
100 | 2012-07-07 | 未来守护者 | 杰斯 | Jayce | the Defender of Tomorrow |
99 | 2012-06-05 | 荣耀行刑官 | 德莱文 | Draven | the Glorious Executioner |
98 | 2012-05-23 | 诺克萨斯之手 | 德莱厄斯 | Darius | the Hand of Noxus |
97 | 2012-05-01 | 惩戒之箭 | 韦鲁斯 | Varus | the Arrow of Retribution |
96 | 2012-04-18 | 战争之影 | 赫卡里姆 | Hecarim | the Shadow of War |
95 | 2012-03-20 | 仙灵女巫 | 璐璐 | Lulu | the Fae Sorceress |
94 | 2012-02-29 | 无双剑姬 | 菲奥娜 | Fiora | the Grand Duelist |
93 | 2012-02-14 | 深海泰坦 | 诺提勒斯 | Nautilus | the Titan of the Depths |
92 | 2012-02-01 | 爆破鬼才 | 吉格斯 | Ziggs | the Hexplosives Expert |
91 | 2012-01-07 | 北地之怒 | 瑟庄妮 | Sejuani | Fury of the North |
90 | 2011-12-13 | 机械先驱 | 维克托 | Viktor | the Machine Herald |
89 | 2011-12-13 | 九尾妖狐 | 阿狸 | Ahri | the Nine-Tailed Fox |
88 | 2011-11-29 | 不灭狂雷 | 沃利贝尔 | Volibear | the Relentless Storm |
87 | 2011-11-15 | 潮汐海灵 | 菲兹 | Fizz | the Tidal Trickster |
86 | 2011-11-01 | 龙血武姬 | 希瓦娜 | Shyvana | the Half-Dragon |
85 | 2011-10-19 | 法外狂徒 | 格雷福斯 | Graves | the Outlaw |
84 | 2011-10-15 | 远古巫灵 | 泽拉斯 | Xerath | the Magus Ascendant |
83 | 2011-09-14 | 放逐之刃 | 锐雯 | Riven | the Exile |
82 | 2011-08-24 | 刀锋之影 | 泰隆 | Talon | the Blade’s Shadow |
81 | 2011-08-09 | 水晶先锋 | 斯卡纳 | Skarner | the Crystal Vanguard |
80 | 2011-07-26 | 齐天大圣 | 孙悟空 | Wukong | the Monkey King |
79 | 2011-07-08 | 曙光女神 | 蕾欧娜 | Leona | the Radiant Dawn |
78 | 2011-06-22 | 牧魂人 | 约里克 | Yorick, | Shepherd of Souls |
77 | 2011-06-01 | 发条魔灵 | 奥莉安娜 | Orianna | the Lady of Clockwork |
76 | 2011-05-10 | 暗夜猎手 | 薇恩 | Vayne | the Night Hunter |
75 | 2011-04-25 | 机械公敌 | 兰博 | Rumble | the Mechanized Menace |
74 | 2011-04-11 | 复仇焰魂 | 布兰德 | Brand | the Burning Vengeance |
73 | 2011-03-28 | 盲僧 | 李青 | Lee Sin | the Blind Monk |
72 | 2011-03-15 | 永恒梦魇 | 魔腾 | Nocturne | the Eternal Nightmare |
71 | 2011-03-01 | 德玛西亚皇子 | 嘉文四世 | Jarvan IV | the Exemplar of Demacia |
70 | 2011-02-16 | 扭曲树精 | 茂凯 | Maokai | the Twisted Treant |
69 | 2011-02-01 | 天启者 | 卡尔玛 | Karma | the Enlightened One |
68 | 2011-01-17 | 荒漠屠夫 | 雷克顿 | Renekton | the Butcher of the Sands |
67 | 2011-01-03 | 皮城女警 | 凯特琳 | Caitlyn | the Sheriff of Piltover |
66 | 2010-12-14 | 魔蛇之拥 | 卡西奥佩娅 | Cassiopeia | the Serpent’s Embrace |
65 | 2010-12-01 | 巨魔之王 | 特朗德尔 | Trundle | the Troll King |
64 | 2010-11-15 | 刀锋舞者 | 艾瑞莉娅 | Irelia | the Blade Dancer |
63 | 2010-11-02 | 诡术妖姬 | 乐芙兰 | LeBlanc | the Deceiver |
62 | 2010-10-18 | 光辉女郎 | 拉克丝 | Lux | the Lady of Luminosity |
61 | 2010-10-04 | 诺克萨斯统领 | 斯维因 | Swain | the Noxian Grand General |
60 | 2010-09-21 | 琴瑟仙女 | 娑娜 | Sona | Maven of the Strings |
59 | 2010-09-08 | 赏金猎人 | 厄运小姐 | Miss Fortune | the Bounty Hunter |
58 | 2010-08-24 | 无畏战车 | 厄加特 | Urgot | the Dreadnought |
57 | 2010-08-10 | 正义巨像 | 加里奥 | Galio | the Colossus |
56 | 2010-07-27 | 猩红收割者 | 弗拉基米尔 | Vladimir | the Crimson Reaper |
55 | 2010-07-13 | 德邦总管 | 赵信 | Xin Zhao | the Seneschal of Demacia |
54 | 2010-06-24 | 深渊巨口 | 克格莫 | Kog’Maw | the Mouth of the Abyss |
53 | 2010-06-08 | 狂战士 | 奥拉夫 | Olaf | the Berserker |
52 | 2010-05-20 | 虚空先知 | 玛尔扎哈 | Malzahar | the Prophet of the Void |
51 | 2010-05-11 | 离群之刺 | 阿卡丽 | Akali | the Rogue Assassin |
50 | 2010-04-27 | 德玛西亚之力 | 盖伦 | Garen | the Might of Demacia |
49 | 2010-04-08 | 狂暴之心 | 凯南 | Kennen | the Heart of the Tempest |
48 | 2010-03-24 | 暮光之眼 | 慎 | Shen | the Eye of Twilight |
47 | 2010-03-16 | 探险家 | 伊泽瑞尔 | Ezreal | the Prodigal Explorer |
46 | 2010-02-24 | 铁铠冥魂 | 莫德凯撒 | Mordekaiser | the Iron Revenant |
45 | 2010-02-02 | 酒桶 | 古拉加斯 | Gragas | the Rabble Rouser |
44 | 2010-02-02 | 不屈之枪 | 潘森 | Pantheon | the Unbreakable Spear |
43 | 2010-01-13 | 圣锤之毅 | 波比 | Poppy | Keeper of the Hammer |
42 | 2009-12-17 | 狂野女猎手 | 奈德丽 | Nidalee | the Bestial Huntress |
41 | 2009-12-02 | 兽灵行者 | 乌迪尔 | Udyr | the Spirit Walker |
40 | 2009-10-14 | 大发明家 | 黑默丁格 | Heimerdinger | the Revered Inventor |
39 | 2009-10-14 | 恶魔小丑 | 萨科 | Shaco | the Demon Jester |
38 | 2009-09-30 | 沙漠死神 | 内瑟斯 | Nasus | the Curator of the Sands |
37 | 2009-09-09 | 不祥之刃 | 卡特琳娜 | Katarina | the Sinister Blade |
36 | 2009-09-09 | 英勇投弹手 | 库奇 | Corki | the Daring Bombardier |
35 | 2009-08-26 | 祖安狂人 | 蒙多 | Dr.Mundo | the Madman of Zaun |
34 | 2009-08-26 | 熔岩巨兽 | 墨菲特 | Malphite | Shard of the Monolith |
33 | 2009-08-26 | 风暴之怒 | 迦娜 | Janna | the Storm’s Fury |
32 | 2009-08-26 | 蒸汽机器人 | 布里茨 | Blitzcrank | the Great Steam Golem |
31 | 2009-08-19 | 海洋之灾 | 普朗克 | Gangplank | the Saltwater Scourge |
30 | 2009-08-19 | 瓦洛兰之盾 | 塔里克 | Taric | the Shield of Valoran |
29 | 2009-08-05 | 虚空行者 | 卡萨丁 | Kassadin | the Void Walker |
28 | 2009-07-24 | 邪恶小法师 | 维迦 | Veigar | the Tiny Master of Evil |
27 | 2009-07-10 | 冰晶凤凰 | 艾尼维亚 | Anivia | the Cryophoenix |
26 | 2009-07-10 | 披甲龙龟 | 拉莫斯 | Rammus | the Armordillo |
25 | 2009-06-29 | 殇之木乃伊 | 阿木木 | Amumu | the Sad Mummy |
24 | 2009-06-29 | 虚空恐惧 | 科加斯 | Cho’Gath | the Terror of the Void |
23 | 2009-06-12 | 死亡颂唱者 | 卡尔萨斯 | Karthus | the Deathsinger |
22 | 2009-05-01 | 瘟疫之源 | 图奇 | Twitch | the Plague Rat |
21 | 2009-05-01 | 痛苦之拥 | 伊芙琳 | Evelynn | Agony’s Embrace |
20 | 2009-05-01 | 蛮族之王 | 泰达米尔 | Tryndamere | the Barbarian King |
19 | 2009-04-17 | 时光守护者 | 基兰 | Zilean | the Chronokeeper |
18 | 2009-04-17 | 炼金术士 | 辛吉德 | Singed | the Mad Chemist |
17 | 2009-04-10 | 堕落天使 | 莫甘娜 | Morgana | the Fallen |
16 | 2009-04-10 | 武器大师 | 贾克斯 | Jax | Grandmaster at Arms |
15 | 2009-04-10 | 亡灵战神 | 赛恩 | Sion | the Undead Juggernaut |
14 | 2009-04-10 | 麦林炮手 | 崔丝塔娜 | Tristana | the Yordle Gunner |
13 | 2009-04-10 | 祖安怒兽 | 沃里克 | Warwick | the Uncaged Wrath of Zaun |
12 | 2009-04-10 | 无极剑圣 | 易 | Master Yi | the Wuju Bladesman |
11 | 2009-04-10 | 符文法师 | 瑞兹 | Ryze | the Rune Mage |
10 | 2009-04-10 | 众星之子 | 索拉卡 | Soraka | the Starchild |
9 | 2009-04-10 | 雪原双子 | 努努 | Nunu & Willump | the Boy and His Yeti |
8 | 2009-04-10 | 远古恐惧 | 费德提克 | Fiddlesticks | the Ancient Fear |
7 | 2009-04-10 | 正义天使 | 凯尔 | Kayle | the Righteous |
6 | 2009-04-10 | 迅捷斥候 | 提莫 | Teemo | the Swift Scout |
5 | 2009-04-10 | 战争女神 | 希维尔 | Sivir | the Battle Mistress |
4 | 2009-04-10 | 卡牌大师 | 崔斯特 | Twisted | Fate the Card Master |
3 | 2009-04-10 | 牛头酋长 | 阿利斯塔 | Alistar | the Minotaur |
2 | 2009-04-10 | 寒冰射手 | 艾希 | Ashe | the Frost Archer |
1 | 2009-04-10 | 黑暗之女 | 安妮 | Annie | the Dark Child |
This is the end of post
]]>券商 | 现金打新 | 融资打新 | 支持美股打新 | 备注 |
---|---|---|---|---|
长桥证券 | 0 | 99 | 否 | 现金免费至 2020/10 |
华泰国际 | 0 | 0 | 否 | 会员免费 |
尊嘉证券 | 5 | 90 | 否 | |
友信证券 | 18 | 99 | 否 | |
东财国际 | 25 | 100 | 否 | |
富途证券 | 50 | 100 | 是 | |
雪盈证券 | 不支持 | 100 | 是 | |
老虎证券 | 不支持 | 100 | 是 |
券商 | 交易佣金(HKD) | 平台费(HKD) | 香港卡出入金 | 美国卡出入金 |
---|---|---|---|---|
长桥证券 | 万 2.8,起步 15 | 0 | 支持 | 支持 |
东财国际 | 万 2.5,起步 5 | 15 | 支持 | 支持 |
华泰国际 | 0 | 0 | 支持 | 支持 |
尊嘉证券 | 万 5,起步 11.9 | 1 | 支持 | 支持 |
友信证券 | 万 8,起步 8 | 0 | 支持 | 支持 |
富途证券 | 万 3,起步 3 | 15 | 支持 | 支持 |
雪盈证券 | 万 3,起步 0 | 18 | 支持 | 支持 |
老虎证券 | 万 2.9,起步 0 | 15 | 支持 | 支持 |
券商 | 入金门槛 | 开户奖励 | 开户链接 | 推荐码 |
---|---|---|---|---|
长桥证券 | 39,000 HKD | 2 次免费融资(价值 200 HKD) | 点击这里 | 109474 |
东财国际 | 10,000 HKD | 无 | 无 | 无 |
华泰国际 | 20,000 HKD | 约 400 HKD 热门股票 | 点击这里 | 无需输入 |
尊嘉证券 | 10,000 HKD | 1 股热门港股 | 点击这里 | 无需输入 |
友信证券 | 20,000 HKD | 90 天免佣,3 股热门港股 | 点击这里 | zyzp |
富途证券 | 20,000 HKD | 抽奖,一股热门港股 | 点击这里 | 12119472 |
雪盈证券 | 20,000 HKD | 抽奖,最高 666 HKD | 点击这里 | 7JHJ7 |
老虎证券 | 24,000 HKD | 1 股阿里巴巴港股 | 点击这里 | U7RQT |
This is the end of post
]]>/api/v1/user/123/post/123
api/v2/user/12/post
REQUEST
and RESPONSE
for gRPC (Remote Procedure Calls) and handles all the rest for you1 | //function creating users |
1 | {code} |
.proto
file works for over 12 programming languages (server and client), and allows you to use a framework that scales to millions of RPC per seconds..proto
file.proto
file) is needed to generate code and read the dataopen
the serialized data with a text editor because it’s compressed and serialized.This is the end of post
]]>Apple CEO Tim Cook in a memo to employees on Sunday addressed the killing of George Floyd, an incident that touched off protests and, in some areas riots, in the U.S. and beyond.
Team,
Right now, there is a pain deeply etched in the soul of our nation and in the hearts of millions. To stand together, we must stand up for one another, and recognize the fear, hurt, and outrage rightly provoked by the senseless killing of George Floyd and a much longer history of racism.
That painful past is still present today — not only in the form of violence, but in the everyday experience of deeply rooted discrimination. We see it in our criminal justice system, in the disproportionate toll of disease on Black and Brown communities, in the inequalities in neighborhood services and the educations our children receive. While our laws have changed, the reality is that their protections are still not universally applied.
We’ve seen progress since the America I grew up in, but it is similarly true that communities of color continue to endure discrimination and trauma.
I have heard from so many of you that you feel afraid — afraid in your communities, afraid in your daily lives, and, most cruelly of all, afraid in your own skin. We can have no society worth celebrating unless we can guarantee freedom from fear for every person who gives this country their love, labor and life.
At Apple, our mission has and always will be to create technology that empowers people to change the world for the better. We’ve always drawn strength from our diversity, welcomed people from every walk of life to our stores around the world, and strived to build an Apple that is inclusive of everyone.
But together, we must do more. Today, Apple is making donations to a number of groups, including the Equal Justice Initiative, a non-profit committed to challenging racial injustice, ending mass incarceration, and protecting the human rights of the most vulnerable people in American society. For the month of June, and in honor of the Juneteenth holiday, we’ll also be matching two-for-one all employee donations via Benevity.
To create change, we have to reexamine our own views and actions in light of a pain that is deeply felt but too often ignored. Issues of human dignity will not abide standing on the sidelines. To our colleagues in the Black community — we see you. You matter, your lives matter, and you are valued here at Apple.
For all of our colleagues hurting right now, please know that you are not alone, and that we have resources to support you. It’s more important than ever to talk to one another, and to find healing in our common humanity. We also have free resources that can help, including our Employee Assistance Program and mental health resources you can learn about on the People site.
This is a moment when many people may want nothing more than a return to normalcy, or to a status quo that is only comfortable if we avert our gaze from injustice. As difficult as it may be to admit, that desire is itself a sign of privilege. George Floyd’s death is shocking and tragic proof that we must aim far higher than a “normal” future, and build one that lives up to the highest ideals of equality and justice.
In the words of Martin Luther King, “Every society has its protectors of status quo and its fraternities of the indifferent who are notorious for sleeping through revolutions. Today, our very survival depends on our ability to stay awake, to adjust to new ideas, to remain vigilant and to face the challenge of change.”
With every breath we take, we must commit to being that change, and to creating a better, more just world for everyone.
Tim
This is the end of post
]]>Binary Search is generally composed of 3 main sections:
Pre-processing - Sort if collection is unsorted.
Binary Search - Using a loop or recursion to divide search space in half after each comparison.
Post-processing - Determine viable candidates in the remaining space.
Include left range, but not include right range. [l, r)
1 | def binary_search(l, r): |
In this template, return the smallest number m in range [l, r)
so that check(m)
is true. Return r
if not found.
Time Complexity: O(log(r-1)*(check(m)))
Space Complexity: O(1)
Both include the left and right left. [l, r]
1 | def binary_search(l, r): |
In this template, return the smallest number m in range [l ,r]
so that check(m)
is true. Return r
if not found.
1 | def binarySearch(nums, target): |
Template #1 is the most basic and elementary form of Binary Search. Template #1 is used to search for an element or condition which can be determined by accessing a single index in the array.
Initial Condition: left = 0, right = length-1
Termination: left > right
Searching Left: right = mid-1
Searching Right: left = mid+1
1 | def binarySearch(nums, target): |
Template #4 is an advanced form of Binary Search. It is used to search for an element or condition which requires accessing the current index and its immediate right neighbor’s index in the array.
left = 0, right = length
left == right
right = mid
left = mid+1
1 | def binarySearch(nums, target): |
Template #5 is another unique form of Binary Search. It is used to search for an element or condition which requires accessing the current index and its immediate left and right neighbor’s index in the array.
left = 0, right = length-1
left + 1 == right
right = mid
left = mid
This is the end of post
]]>下面就是各种洗衣符号的分类以及代表的含义:
本文完
]]>原文链接:https://mp.weixin.qq.com/s/Wbc4a194F9SC5g3mO4lO8w
by 花街辣妈团
每年过完情人节和总统日,如火如荼的税季就到来了。
税季看起来忙,但是在我们专业人员看来,那些税季里不眠不休的日日夜夜,其实都是在做不走心不走脑的体力活儿。
为什么呢?因为 tax filing 其实就是把一项项已经发生的数字,正确地填到税表里面的各个 line 的框框里面。这些数字都是已经发生的事件的结果,不会再有任何变化。你最后要交的税,其实在新年钟声敲响的一刻也已是定数,只是还没有被计算出来而已。
插一句:这就是 tax filing 和 tax planning 的核心区别。
税季里,最常碰到的客户问题是:2018 已经过完,我还能做点什么,帮助我省税呢?
从 2019 年 1 月 1 日新年钟声敲响,到 tax filling deadline 这几个月里,能对自己税务状况有帮助的(并不一定当年能减税),几乎只有 contribution to retirement plan 一项了。较为常见的 retirement plan 包括:
这些账户各自可以放多少钱,都有不同的规定和讲究。我们今天只取其中一点来讲:如何放更多的钱进 Roth IRA?
为什么这么多可选择的退休金里,要专门来讲 Roth IRA 呢?
因为 Roth IRA 是辣妈团的真爱啊!
Roth IRA 简单说来,就是放进去的钱现在要交税,但是以后赚的钱就再也不用交税啦。
比如现在陆陆续续本金放进去二十万块,后来这二十万块利滚利变成一百万,赚的八十万都不用再缴任何税。
可能我们的长期读者对于 Roth IRA 今后的增值免税这件事儿都知道。那么 May 今天再来说几点大家可能不知道的 Roth IRA 的好处:
很多有小小孩的家庭都会问:我该存多少 529? 529 计划有那么多种,我该存哪种?(关于 529 我们近期会出一篇文章细细解释,记得先关注我们)
其实,如果家里小孩子不是太多(比如只有一两个),而父母又可以存足够的 Roth IRA 的话(如何多存 Roth IRA 会在下文慢慢解释),完全可以用 Roth IRA 来替代 529。 因为 Roth IRA 的本金部分,是可以随时取出来的,不需要交任何税,也没有任何罚款。
还是用前面的例子:现在放进去二十万块, 后来这二十万块上涨变成一百万。我们可以随时把本金的二十万拿出来给小孩上学,让八十万的 gain 的部分继续留在 Roth IRA 里面利滚利。
相比而言,529 虽然也是放进去的时候要交税,之后的 gain 不用交税,但是只能作为教育用途。万一唯一的小孩拿了全奖,那么 529 里面的钱只有留给孙子辈用了。而 Roth IRA 则是教育退休两相宜,本金的部分可以灵活机动,如果需要可以作为教育基金,如果用不上则可以给自己作为退休金。
我们把第一点稍稍扩展一下:大多数退休金都必须在到达退休年纪后(目前规定是 59.5 岁)才可以拿出来用。而 Roth IRA 的本金部分是可以随时拿出来用的,不需任何理由,没有任何税和罚款。
所以,简直想不到什么理由不放 Roth IRA 呢. 能多放 Roth IRA 的时候尽量多放,万一什么时候要急用,买自住房啊,现金抢投资房啊,都可以把本金部分直接拿出来用,利润部分仍然留在 Roth IRA 里面就好。
年轻的读者可能还没有听说过 required minimum distribution (RMD): 大多数退休金在账户 owner 达到七十岁半的时候,都必须开始从账户里面拿钱。每年拿的钱数是由账户金额和年纪决定的。如果不拿够 RMD 的数额,会罚 RMD 数额的一半作为罚款。
RMD 说到底是 IRS 防止贫富分化一个重要手段:不仅财富转手都要收赠与税和遗产税,而且退休金也是最好每一代人吃光用光不要留给后人太多。比如强制所有 401k owner 在 70 岁后统统还是拿出来用了您呐。
而 Roth IRA,就是很神奇地一种没有 RMD 限制的退休金。
注意:Roth 401k 仍然是有 RMD 的。
综上,Roth IRA 是 May 的超级心头好: 放在里面的钱怎么增长都没有税,本金部分又可以随时拿出来花,账户里的钱花不完也可以妥妥地转给下一代。
不过,这么好的省税账户,当然每年放进去的钱是有限额的啦。不然大家把钱全部放进 Roth IRA 里面投资不交税,IRS 要喝西北风啦。
下面我们就讲讲放钱进 Roth IRA 的几种方法和注意事项。
为了 May 自己方便,下面全部假设夫妻联合报税,年纪在 50 岁以下。
最简单的方法,当然是直接放钱进去啦。
2019 年数字:每个人可以放 6000 块进 Roth IRA。所以夫妻两人加起来可以放一万二。
可是,如果家庭 Modified adjusted gross income (MAGI)在$203,000 及以上,就不可以直接放钱进 Roth IRA 了。
注:W2 家庭 Modified adjusted gross income (MAGI)的计算大致可以简化成家庭所有收入加起来(包括工资收入和投资收入),减去 401k contribution 的部分。其实减免部分还有 student loan interest 等等,对大部分人不常用到的我们这里就不讨论了。
小葵妈写过一篇详细的原理介绍。有兴趣从头开始了解的点这里:简单粗暴的省税小心机之退休计划篇(五) - Backdoor Roth IRA
所以 May 这里只做大致介绍。重点讲讲手把手怎么做以及注意事项。
对于家庭 MAGI 超过$203,000 不可以直接放钱进入 Roth IRA 的家庭,我们可以在放钱的时候曲线救国绕道 traditional IRA 一下,再进入 Roth IRA。
开好一个 traditional IRA 和一个 Roth IRA 账户。
往 traditional IRA 里面放入 $6000。这六千块虽然是放入了Traditional IRA, 但是是non deductible的。因为家庭MAGI在超过 $121,000 时,放入 traditional IRA 的钱就不可以再 Deductible 啦。(我们假设家庭 MAGI 超过 $203,000 哈所以才需要做 Back door Roth IRA)
在这六千块还没有升值的时候,赶紧 convert to Roth IRA。Convert 完成后 Traditional IRA balance 为 0, Roth IRA balance 为$6000。
做 backdoor Roth IRA 对于家庭收入没有限制,不管收入多高都可以做的。
一定一定要记得报税时 file form 8606。Form 8606 里面有两部分,一部分是用来记录 nondeductible contribution to traditional IRA 的。也就是我们上面方法步骤里面的第一步。另一部分是记录 nondeductible IRA conversion to Roth IRA 的,也就是上面方法步骤里面的第二步。所以做 backdoor Roth IRA 的时候 file 正确的 Form 8606 是重中之重。强烈建议找专业人员检查 Form 8606。May 见过太多人甚至是 CPA 都把 Form 8606 搞错,每年放进去的钱都交了两遍税。
注意 Pro-rata rule. 简单说来,请确保在做 backdoor Roth IRA 这件事情之前, SEP IRA, SIMPLE IRA, Traditional IRA 里面都没有钱的。也就是说 Form 8606 里面的 line 6 必须是 0. 否则呢,放进去的 6000 块只有一部分可以转入 Roth IRA 了。
做 Backdoor Roth IRA,税表中的几个数请 double check :
如果所在公司的 401k plan:1. 允许放 After-tax contribution; 2. 可以做 in service conversion to Roth IRA, 则每年可以先放钱进入 after tax 401k,然后转入 Roth IRA 里面。
假设公司的 match 为员工 contribution 的 50%, 则 2019 年可以通过 Mega backdoor Roth IRA 进入 Roth IRA 的钱为:
$56,000 (2019年401k limit) – $19,000 (employee contribution) – $9,500 (company match) = $27,500
询问公司负责 employee benefit 的 HR:公司的 401k plan 是否提供 after-tax contribution 和 in service Roth conversion 选项。注意各个公司的 401k plan 可能非常不同。所以最佳方案是直接问 HR, 其次是和同事讨论。在网上问网友或者问不同公司的朋友对这个问题都不会有帮助。
如果公司提供这 2 个选项,那么恭喜你!可以做 Mega backdoor Roth IRA 啦!那么下面要做的就是问 401k 的托管行 custodian 如何放钱进 after tax 401k 以及如何 convert 了。
有的公司在员工加入的时, 退休金的默认选项就是在放满 401k employee contribution $19,000后更多的钱直接进入after tax 401k 。有的公司是默认在放满employee contribution $19,000 后工资的一个百分比(比如 2%) 直接进入 after tax 401k。 还有的公司是需要手动设置甚至必须给托管行打电话才可以的。如果不确定怎么做,可以问 HR,或者和 HR 要公司的 401k Summary Plan Description (SPD).
Mega backdoor Roth IRA 不是人人都可以做。其中最为关键的是公司的 401k 怎么规定。如果你的公司允许,那么恭喜你!一定要好好利用这个 Mega backdoor Roth IRA 噢,也许你跳槽去的下一个公司就不允许了。
有的公司允许放 after tax 401k, 但是只可以转 Roth 401k 而不是 Roth IRA。这个也还不错,可以先转入 Roth 401k,在下一次换工作的时候转入 Roth IRA。
如果你放钱进入 after tax 401k, 请确保你是及时转入 Roth IRA 或者 Roth 401k 的咯。否则很可能你在 after tax 401k 里面投资的钱的税率甚至超过直接用 brokerage 账户投资。
上面讲的都是在公司拿 W2 的员工的情况。如果是自己自雇,比如地产经纪,自己执业的医生,律师等,可以一年 401k 的 $56,000 全部放 Roth 咯。
直接放入 Roth IRA 一年最多 6000 块。不过有收入限制,本公众号读者多为有理想有追求的第一代华裔移民,相信大家的收入都太高了不符合要求。
Backdoor Roth IRA 人人都可以做,没有收入限制,一年最多 6000。不过需要确保 Traditional, SEP, SIMPLE IRA 账户都是空的。以及确保 form 8606 填写正确
Mega backdoor Roth IRA 能不能做要看所在公司的 401k 文件怎么规定。如果可以做的话每年可以再多放两三万进 Roth 里面,这么好的机会一定要抓住。另外放进 after tax 401k 的钱请一定要记得做 Roth conversion, 不然就亏大了还不如不做 after tax contribution。
所以,一个人一年最多可以放多少钱进 Roth 呢?假设 50 岁以下,公司 401k 没有任何 match。答案是:
本文完
]]>原文链接:https://mp.weixin.qq.com/s/KwqZGkAtHLiy7Od6KpDesw
by 花街辣妈团
今天就给大家隆重介绍粗暴省税小心机系列之最粗暴走后门 Roth IRA. 辣妈团的铁粉们肯定知道之前小葵妈写过的简单粗暴的省税小心机之退休计划篇(五) – Backdoor Roth IRA. 大家肯定会问今天的这个 Mega Backdoor Roth IRA 和 Backdoor Roth IRA 之间有什么区别呢?其实最简单直接的区别就是字面的区别了 “Mega” 。Mega 就是超级多。那么到底多多少呢?
普通的溜后门,折腾来折腾去最多最多溜个$5,500 一年。然而这个Mega 是可以溜进去$36,500 !整整将近 7 倍!所以小葵妈才称这个为最粗暴的巨无霸大招!
大家看到这里是不是两眼发直,流着口水呀。是不是觉得这个太美好,不真实。too good to be true? 小葵妈的介绍从来都是按照 tax code 的来的。从来不介绍违法乱纪的事情。True 是肯定是 True 的。但是呢并不是对所有人都是 True. 他是有条件地 True. 就像写条件语句一样,要符合某几个条件,结果才会是 true. 那么什么样的条件呢?这时候就是拼公司福利的时候了。看你公司对你到底是不是真爱了。
小葵妈首先来说决定这个是 True 的条件语句的关键条件了:
如果看到这里,亲们这两条都符合了。那么恭喜你!你的公司对你绝对是真爱!卖身契签了吧!
接下来小葵妈就来仔细解说这两个必要条件。
看到 After Tax 401k 是不是有亲开始晕了。原来只知道有个东西叫 401k, 是税前的。怎么又跳出来个 after tax?
那么为了能给大家讲清楚这个 After Tax 401k,小葵妈今天就给大家补补 401k 的课吧。
首先呢,每个人在同一个雇主/公司下面都会有一个 401k plan. 那么这种 401k plan 里面包括了几种不同类型的 contribution. 同时每种 contribution 也有不同的 limit. 小葵妈就给大家刨析一下每种的类型。
401k Contribution:
这个呢就是做为 W2 的大家最最熟悉的一块了。每年公司都会让你自己选想要 Contribute 多少到你的 401k plan 里面。然后这个钱呢是直接从你的工资里面扣掉的。2018 年的 Limitation 是 $18,500。
举个例子:
你准备拿$10,000 税前的工资存进Pre - Tax 401k 里面。假设25% 的联邦税率+5%的州税 一共要交掉30%的税。如果这个钱不进到401k 里面,按照工资交税,先交掉 $3,000 税就变成了拿到手$7,000。而如果选择直接 进到Before Tax 401k account 里面就是先不需要交$3,000 的税。$10,000直接进到401k 投资账户里面开始钱生钱。再假设,这$10,000 在 account 里面投资非常得挣钱,等到 60 岁的时候这$10,000 变成了$100,000 了。翻了 10 倍。那这时候,这$100,000 拿出来的时候再需要交税的。
这类 Contribution 的特点呢就一开始 contribute 的时候呢是不交税的,钱全都是税前直接进 401k account。等到 60 岁后,要拿出来了再交税。简称进门不交税,出门交税。
Roth 401k contribution 是用税后的钱放进 401k 账户里面。他的特点就是现在先交税了,里面的钱在投资账户挣的钱,将来是完全免税的。
2018 年的 Limitation 是 $18,500。
举个例子:
你准备拿$10,000 税前的工资存进Roth 401k 里面。假设25% 的联邦税率+5%的州税 一共要交掉30%的税。所以$10,000 先交掉税就变成了$7,000 进到Roth 401k account 里了。再假设,这$7,000 在 account 里面投资非常得挣钱,等到 60 岁的时候这$7,000 变成了$70,000 了。翻了 10 倍。那这时候,这$70,000 拿出来是完全不需要交税的。这就是 Roth 401k Contribution 的进门交税,出门不交税了。
敲黑板,划重点:
Pre - Tax 401k Contribution 和 Roth 401k Contribution 的总和是$18,500. 也就是说你可以选择都放Pre-Tax 401k $18,500 或者 Roth 401k $18,500. 或者你也可以两个各分一点,例如Pre-Tax 401k 放个$10,000, Roth 401k 放个$8,500。关键就是两个加一起,最多$18,500.
这个呢就是你的公司以公司的名义给你的 401k 账户存钱。这个不算在工资里面。公司存多少就看你的公司有多爱你了。有些公司会 match 50% of 员工 contribute 到 401k 里的, up to 6%。
这部分 contribution 的特点呢就是公司放进去的钱对员工来说是不交税的。但是等到拿出来的时候就需要交税。所以和#1 中的 pre-tax contribution 是一样的。 进门不交税,出门交税。
这个就是今天的重点了。粗暴大招的关键点之一。大家可能会问这个 After – tax 401k Contribution 和#2 的 Roth 401k Contribution 有什么不同呢?两个都是税后的呀?
对的。After-Tax 401k Contribution 看起来和 Roth 401k Contribution 非常相似,这两个都是拿税后的钱放进去的。
Roth 401k Contribution 有 limit 在$18,500. 而这个After-tax 401k contribution 不受这个$18,500 限制。最高可以达到$36,500.
那么这个$36,500 是怎么算出来的呢?就是$55,000 - $18,500 = $36,500. 关于这个$55,000 之后会解释。
Roth 401k Contribution 是进门交税,出门免税。 而这个 After-tax 401k contribution 是进门交税,出门也交税。
为了方便直观,小葵妈给大家画了四张图。直接看懂。不费脑。
看到这里估计有亲们会开始有疑问了。肯定在想:啥?进门交税,出门也交税?这搞毛呀。啥好处没有。谁特么脑抽了去存这个?
小葵妈想说,冷静冷静。这个好处绝对是大大滴!接下来就要这个必要条件二出马了!
另外小葵妈需要解释的就是这个$55,000. 这个数字呢是同一个雇主可以放的 401k 总共的最高限额。就是说在同一个雇主的 plan 下面,一个员工的
pre-tax 401k contribution + roth 401k contribution + employer contribution + after-tax 401k contribution = $55,000
公司允许 In Service Rollover 这个是一个公司对你是不是真爱的一个标志。 那么什么是 In Service Roll 呢?
就是在你还是公司雇员,没有离开公司的情况下,公司也允许你把 401k 的钱转出到你个人的 IRA 里。
所以如果公司里有 In Service Rollover, 那么就可以把 After-Tax 401k Contribution 直接转出来到个人的 Roth IRA 里面。
小葵妈最喜欢举例子和看图说话了。下面我们就来看两个 After-Tax 401k Contribution 实操的例子吧。
例一:假设有个好员工叫魏缨络 (出自最近很火的宫斗剧),她表现出色,进公司半年就迅速晋升到了管理层。她的公司也很爱她。给她的 401k 有 after-tax contribution and in service roll。她自己从 Payroll 里选择了最大限度的 Pre-tax contribute $18,500, 另外再contribute 了最大限额的After-tax contribution $36,500。 于是,魏缨络就非常好得运用了 In Service Rollover 把 $36,500 的 After-tax contribution 直接转到了她个人名下的Roth IRA 账户。之后这个$36,500 在 Roth 账户里面涨成了$365,000。那么这个$365,000 是完全免税的。
例二 稍稍加点复杂度
假设魏缨络的公司更加爱她。给了她$6,500 的 employer match。同时假设她没有第一时间把 After-tax 401k contribution 转出到 Roth IRA 里。那么她的 401k 账户里面就会有 Pre-Tax Growth and After-Tax Growth。Pre-Tax Growth 顾名思义,他的 growth 是从 Pre-tax contribution 产生的。所以 Pre-Tax Growth 出门的时候是要交税的了。
而 After-Tax Growth 虽然是从 After-Tax Contribution 产生的,但是呢他依旧要收税。这就是之前说的进门交税,出门也交税了。所以这时候为了避免当前交税,那么就要把 After-Tax Contribution 转入 Roth IRA, 把 After-Tax Growth 转入到 Traditional IRA 账户了。
好了。小葵妈今天的 Mega Roth 就刨析完啦。大家都学会这个大招了么?赶紧去你公司看看有没有 After-Tax Growth and In service rollover 吧。看看你公司对你是不是真爱!
本文完
]]>