Friday, November 24, 2017

Black friday with Costco Tire Service Center

I plan to change battery for my mini van, so I turn to Costco. But I'd like to call their Tire Service Center before heading to the physical store. You know what, the experience greatly reduced my best shopping impression with Costco. Here is my experience:

I first call Almaden Costco, which took me 8 minutes wait to get someone talked to me. (There is standard Costco waiting recording audio) I asked them if you have the battery for my car model, the answer is "we should have". Then I asked them to double check, they guy went to check the system for in stock info.

I then call Sunnyval Costco, the call was answered without any voice, but put aside. On the other side, the employees are talking, laughing about birthday, camera, dinner etc. I understand this is holiday, but can you please also consider your customer's time? And at least, put to the system automated voice instead of your chatting/joking?

I am getting curios if all Costco service centers are doing the same thing, I selected another San Jose Costco to make the same inquiry. Well, the guy answered me with "Please hold on", then switched to automated recording audio. Exactly same as the Almaden Costco, I am putting to long waiting experience. This time, the waiting time exceeded 14 minutes to get my questions answered.

Costco, are you still feeling the competition from Amazon? Why not put customer (members) as the first priority when do business? I once expect Target or Costco can complete with Amazon, but the thought is getting the other direction. I have to admit Amazon is flying day and day, and it will beat every retail or wholesale stores after Amazon improve their return policy with local Whole Foods stores.

To sum up, Costco online and phone services are bad. The only strength they have are physical store experience with best return policy.

Monday, November 20, 2017



美国的保险公司很多,个人是不能直接购买的,一定要通过一个broker or agent来购买,所以层出不穷的理财顾问公司,电台媒体上也铺天盖地。不要给各种奖项闷到,感觉是个agent都可以获得,比如百万圆桌会员(Million Dollar Round Table)。有一点好像是共识,就是美国的保险费用相比大陆和香港是最便宜的,而且市场上最流行的IUL也是美国这边才有的。保险的终极目标就是能够化解die too soon, or live too long的问题。但保险每年都有cost of insurance等各种费用,如果市场连续不好,及时保本的IUL也会lapse。 另外就是保险的surrender fee在前10年很高,所以感觉IUL更是为了live too long的问题来设计的。

个人感觉眼花缭乱的信息中,无非就是3种:一些基金性质的理财产品, 保险(IUL, whole life, Term),年金。有一个很好的个人博客,我强力推荐给初次接触保险的人,这样的保险经纪人才可靠。


萬富理财 Masterlife Financial Group
感觉比较正规的一个公司,讲产品算讲的蛮彻底的,而且听说我的年纪后,就不尽力推销我Allianz 222的年金。就听过一次,关于倒算指数法,也是IUL产品。因为在San Jose North, 所以我也没有预约做illustration.

理财公司2 (省去公司名,毕竟是我们华人的公司)

讲座主题比较丰富,涵盖面比较广,特别适用,但都是比较high level。做了一个计划,直接让买200万的夫妻双方共同的保险,10年付清,立马就觉得不厚道。共同保险费用低些,因为2个人都死了才可以拿到DB, 而且DB越高Agent的佣金越多。


这家主要卖Transamerica的IUL, 但他们更多的是培训发展下线吧,需要交$100会员费。


Thursday, November 16, 2017

Invalid name: "@angular/cli" when do npm install

$sudo npm install -g @angular/cli

But I got the following error
npm ERR! Darwin 16.7.0
npm ERR! argv "/usr/local/bin/node" "/usr/local/bin/npm" "install" "-g" "@angular/cli"
npm ERR! node v6.6.0
npm ERR! npm  v3.10.3

npm ERR! Invalid name: "@angular/cli"
npm ERR!
npm ERR! If you need help, you may report this error at:
npm ERR!     <>

npm ERR! Please include the following file with any support request:
npm ERR!     /Users/jimz/Downloads/moxtra-admin/npm-debug.log
Somehow it looks weird as I configured angular/cli in package.json, but it result from npm version is outdated, so I did the npm update

$sudo npm update npm -g

Also the following commands can help check versions and do a clean install via "uninstall -> clean -> install".
$npm --v
$node -v
$sudo npm uninstall -g angular-cli
$sudo npm cache clean
$sudo npm install -g angular-cli@latest


Friday, November 10, 2017

CSS overlapping and z-index

In CSS, there are three different things that impact how html elements overlap each other: stacking contexts, source order, and painting order (a.k.a. stacking level).

Stacking contexts
When you apply z-index to a positioned element, you do two things.

First, you say that the element is in front or behind other elements that share the same stacking context. This is what we normally think about when we change z-index -- we want something to move in front or in back of something else.

Second, you create a new stacking context for anything inside the positioned element. Once you've created a stacking context, any layering that happens inside that stacking context stays in that context. This is the part we forget.

In a normal document, without any positioning, the document has exactly one stacking context -- the one created by html. When dealing with positioning, the stacking context is probably the hardest thing to remember.

Source code
There are two different ways of looking at an HTML document source code. One is by reading, from top to bottom, to see which tags start before which tags. The other way to look at this is in tree order where you keep track of not only which tags start first, but also which tags are inside other tags.

Stacking levels (inside of stacking contexts)
Normally, adjusting the z-index property and keeping track of stacking contexts is all you need to worry about. But occasionally you'll run into a situation where one box paints over another, even though there's no positioning involved. This happens because of how data is stacked inside of a stacking context. Just to make things confusing, the specs call this concept stacking levels.

The specs define 7 painting layers. Starting from back to front, they are:
  1.     The borders and background of the current stacking context
  2.     Positioned descendants with negative z-index (or goes before #1 in modern browsers)
  3.     Non-positioned block-level descendants with no z-index property defined -- paragraphs, tables, lists, and so on
  4.     Floating descendants and their contents
  5.     Non-positioned inline content
  6.     Positioned descendants with no z-index, z-index: auto, or z-index: 0
  7.     Positioned descendants with z-index greater than 0

Some key points to remember:
  1. Source order counts.
  2. Inline elements paint over floats.
  3. Positioned elements paint on top of everything else if they don't have negative z-index.
The reference article has details including examples to explain CSS overlapping within stacking contexts.