上个月还在国内休假的时候得知绿卡批准了,颇有些意外,本来并未报太大的希望。
记得2011年来的时候,大概是在11月份律师联系我开始准备PERM,我在那个时候还似乎颇为拖拉,最终到2012年8月份才发, PD比同时期的人大概晚了两到三个月。等到2013年1月份被告知Audit, 于是进入等待,直到2013年快九、十月份的时候,查移民局的网站Audit的case已经处理到2012年八月份了,和律师联系,告知我的case还是没有任何进展,每个月都有一份律师发过来的固定的模板的信,毫无内容。
在13年年底的几个月,EB3C的排期飞速前进,直到今年的1月底的时候终于收到PERM被批准的通知。而2月份发布的Visa Bulletin显示3月份EB3C的排期已经到达2012/9,联系律师问是否可以降级或者同时发EB2和EB3的I-140,律师同意降级,但是只能选择走EB2或者EB3,公司不支持同时发。决定还是冒险直接走EB3。
于是准备相关的材料, 找国内的人帮忙办出生公证,约体检打疫苗,同时找老板要求出钱加速I-140,这样在2014/3/7寄出I-140和I-485, RD最终是2014/3/14,3月19号就收到打指纹的通知,3月21号140批准,在4月7号去打指纹。之后一周多就回国去了,也没有太在意这件事情。
在五月初的时候从国内上了下邮箱,据说收到律师的信告知绿卡在4/24被批准,没几天得知EB3C回滚到06年去了。
怎么说呢,有些事情可能就是运气吧,有时候也许是赶得早不如赶得巧。坦白说到也没有什么感觉,该干嘛还是得干嘛。
L1 签证续签
上次回国的时候签证(Visa stamp)已经过期了,所以顺便去更新了下L签证(L extension), 记录一下大致的流程。
首先是联系了公司的律师,告知计划回去的时间,他们会在回去时间之前的一到两个月把相关的材料给弄好,主要就是和L签证相关的材料,总共是三份,记得都得带上。然后去在线填DS-160表格,之后网上预约,会有个交费的号码,必须得先交费用拿到收费的收据号才能完成预约,而交费可以是中信银行的网上,或者是找国内的人代缴费,柜台和ATM机器都可以,交费成功后系统自动获取到交费的收据号,一个人是$190。
其实L续签可以用中信的递签,但是那样对于L签证,只能获得一次入境的签证,还是有些不方便,所以还是去大使馆面签,约的是北京的大使馆新馆,早上八点。
七点四十的时候到达大使馆,门口执勤的武警查了下护照和预约单放行,这里要提一下,身份证不是必须的。进去排队首先是交材料,然后去另外一个队面试,都是在一楼。续签非常简单,就是简单问了两三个问题,在哪个公司工作,做什么职位,然后给了个交费单,去二楼交费。在二楼稍微等了一会收费处才开,这次需要交一个L的打假费$500, 如果有配偶L2的话还需要交一个$120的签证费。交费完成后回到原来的窗口,面试官把签证和I-129s表格都留下了,并告知三天后可以去中信银行取。
然后就出来了,九点半,比2011年那次效率高了不少,不知道是不是因为早上人相对较少的缘故,出口的地方一对发机票广告的,一会儿就被塞满了。
过了三天,收到邮件,告知护照已经可以取了,去中信银行在德胜门外支行取了,记得如果是代取配偶的护照,需要带授权书。大厅经理还是比较人性化,让我找个没有摄像头的角落临时伪造了一份。
回来之后,找公司把签证相关的费用都给报销了。
休假随笔
很久没有写任何东西了,这是不对的。刚休假从国内回来,正好就记点流水帐吧。
四月十八号的飞机,在四月十九下午到的北京,老婆的好朋友接待了我们,吃了晚饭,入住三元桥附近的橘子酒店。感觉环境还可以,离地铁还是稍微远了一点,不过毕竟价格三百多一晚算是比较合适的了,已经忘记在哪里吃的晚饭。第二天周日一早,溜达着去找了路边的小店吃早饭,两个人13块钱,比以前还是贵一些,之后找了个路边的一个非常小的卖手机卡的地方买了个移动的手机卡和充值卡。中午约好了几个以前的同事一起吃,在东四十条附近的老坑记,吃吃聊聊,很是高兴。散伙后一个人坐着地铁,从13号线某个站出来四处溜达,感觉离开北京似乎是昨天的事情,似乎又非常遥远,晚上在住处附近的宏状元吃的,这一家非常难吃。周一一早起来去大使馆面试,7点40到的,总体效率比以前高很多,一个多小时就搞定出来了,赶去机场试图改签机票到更早的时间,结果都满了,无法改。吃了蒸功夫的套餐,然后一直等到下午5点多的飞机去老婆家,待了两晚之后启程坐汽车回我家。在我家待了两晚,按照计划正好是老爸60周岁的生日,很久没有在父母生日的时候在家了,上一次应该是十几年前的事情了,然后四月26号晚上做火车去北京参加本科毕业十年的聚会。
火车其实是个奇妙的地方,如果你愿意,你可以听到不同的故事,认识不同的人。这一次听到的是斜对铺上的一个兰州的回族女孩,被做传销的好朋友骗到合肥,在卡里面的2万5都被划走之后,才跑了出来,用身上剩下的一千块钱准备从北京转车回兰州。我们都鼓励她回去之后一定要报警来处理这件事情,尽可能的找回损失并让更少的人受害。我也听说合肥不少地方有做传销的,但是亲身听说还是第一次。
到了北京,首先去中信银行取护照,现在非常快,面试后三天就可以取了。银行代取还需要委托书,我没有,于是现场写了个,随便签了个字,做人还是得灵活点。然后打车去了清华,在熟悉的建管报告厅有2000级的毕业十年大会,看到不少同学,非常开心。想起来以前在这里上过不少课呢,记得至少有党课,生物,思修等。当年的校长顾秉林致辞,然后是几个混的比较好的学生代表发音,一个是学计算机的现在是顺义区团委书记,一个是学自动化的,现在是基金经理,一个是学经管的,现在是高音女歌手,还有一个学霸,现在是苏州大学的教授和博士生导师。相比之下,自己混的实在是比较衰,不过他们大部分都是不务本业的。之后我们班十几个人一起在照澜园吃的饭,我们班应该是人来的最多的班级,而我们当年的宿舍又是来的最齐的宿舍,六个人来了五个。晚上同学帮着安排了在学校里面的招待所住了一晚,在紫荆学生宿舍那边,晚上一个人在外面走走,校园里充满了青春的气息,熟悉而又陌生,亲切而又有一种莫名的失落。第二天做动车回了合肥。
五一期间又陪姐去看了趟车展,并和两个中学同学吃了顿饭,又回忆了一下当年的中学生活。这个时候顺便上了个网,发现居然绿卡批了,这么快到是完全出乎意料之外了。
走之前又去看了趟我的大伯父,食道癌估计不久于人世了,人生其实也就几十年而已,一晃而过。不能浪费时间了,多做些有意义的事情吧!
言而无信,不知其可也
读书笔记
去年乘着同事去中国回来的机会让带了几本书,其中一本便是“The Clean Coder: A Code of Conduct for Professional Programmers”,人民币¥59,比amazon.com上面英文原版美元$31还是便宜不少。这个月利用业余的时间读了一遍。
这本书的作者是Robert C. Martin,所谓的Bob大叔,之前还读过他的另外一本“Agile Principles, Patterns, and Practices in C#”。语言的风格还是比较一致的,很多是作者自身的经历解释作如何成为一个专业的程序员。并不是很多的大道理,但是还是很值得一个不够专业的程序员,比如鄙人,好好反思并在行动中去实践的。考虑到我是个健忘的人,还是在这里记录下关键的一些行为准则,以便时常对照。
本书开始提到了著名的挑战者号航天飞机灾难,该事故一个重要原因是管理层忽视了在当天清晨时,工程师对于低温下进行发射的危险性发出的警告,且未能充分地将这些技术隐患报告给他们的上级。在这个过程中,工程师们做了他们所能做的事情,但是作者也反问了这是否足够?由此作者引出来专业的最重要的前提是承担责任(Taking Responsibility),在开发中应该维持功能的结构的一致性(Do No Harm),自动化QA,持续学习(Continuous Learning),熟悉计算机专业知识(Know your field), 练习(Practice), 合作(Collaboration) ,了解领域知识(Know your domain), 谦虚(Humility).
其中Know your field提到了作为软件开发人员应该精通的最低限度领域知识包括,设计模式(Design Pattern), 设计原则(Design principles), 方法学(XP, Scrum,…), 纪律(Disciplines including TDD, OOD, …), 设计工具(UML, …). 这方面我的确还有待提高。
接着作者提出了作为专业的程序员如何在应该说不的时候说不(Saying No), 在应该说是的时候说是(Saying Yes). 有以下几点有些意思:
- Why is a lot leas important than the fact. Providing too much detail can be an invitation for micro-management.
- There is no trying.
- Professionals become heroes when they get a job done well, on time, and on budget.
- If you can’t make your commitment, the most important thing is to raise a red flag as soon as possible to whoever you committed to.
- It’s easier to say you’ll get a lot done on the weekends, it’s a lot harder to actually muster enough energy to do high-quality work.
- Professionals know their limits.
- Professionals are not required to say yes to everything that is asked of them, however, they should work hard to find creative ways to make “yes” possible.
- Saying “yes”, it’s commitment, Say. Mean. Do.
接下来作者谈到程序员最核心的工作之一, Coding. 其中的一些建议:
- Your code must work to solve the problem for you by the customer
- Your code must fit well into existing system
- Your code must be readable by other programmers.
- Do not code If you are tired or distracted.
- Willingness to be helpful
- Know when to walk away
下面一章作者专门用来推荐Test Driven Development, 其中提到Unit test不仅可以衡量程序可测试性,而且其本身就是关于程序设计的底层的文档,想到之前某些tester对于TDD的理解,不禁莞尔。另外一章作者提到了Acceptance test作为完美需求文档的作用,并确保程序员和Stakeholder之间的理解一致,之后作者提到他对于测试策略的理解。总的来说Bob大叔还是非常重视测试的。
接着作者提出一些对于时间管理的建议,其中包括会议,”Meeting are necessary” and “Meetings are huge time wasters”. 应该拒绝参加不必要的会议,在可能的情况下提前离开,确保会议有明确的议程和目标,控制standup meeting的时间(1个人1分钟),避免在不一致的问题上耗费过多时间, “Any argument that can’t be settled in five minutes can’t be settled by arguing”.
然后谈到了Estimation,Estimation is a distribution and Professionals draw a clear distinctions between estimates and commitments. 之后是如何面对压力)Pressure),其中非常重要的一点是即使在压力的情况,仍然应该follow your disciplines and keep it clean。在和人协作这个话题中,作者提到程序员有时候难以一些工作,但是Professionals work together and programming is all about working with people.
在最后作者推荐了他经常使用的工作,包括Git作为源代码管理工具,IntellJ作为IDE,已经其他的一些开源工作用于单元测试,Issue tracker, 建模工具,其中Git我倒是颇有兴趣尝试下。
总的来说,这次算是浏览了一篇,还是有不少建议可是应用到实际的工作中,包括和人的沟通,对测试的重视,时间的管理等等。
Las Vegas游记
今年至今似乎只写了两篇,还是多留下点东西,以后至少还知道自己曾经在某个时候做了些什么事情。上周请了两天假,周四周五加上周末,去了LasVegas一趟,整好可以记下流水账。
周四早上出发去机场赶7:20的飞机,上飞机前以为东西带全了,结果忘记了非常关键的GPS。两个半小时之后到达拉斯维加斯的麦卡伦国际机场。坐摆渡车到达租车的地方,取车的时候又做了一个错误的决定,没有租GPS,准备去Coscto买一个用完退。在Windows Phone的帮助下,绕了好几个弯停了好几个地方终于开到了最近的Coscto,Windows Phone真的很难用,地图导航和Andriod或者Iphone比起来简直就是渣。很不幸Coscto不卖GPS,或许是因为以前有同样想法的人太多了?所谓偷鸡不成蚀把米。只有回去机场再租了个GPS,这折腾完已经中午了。由于准备工作做得不充分,在去什么地方吃的问题上踌躇了好一会儿,还是在GPS的帮助下去了China down吃了米粉,还行。吃完往回的路上看到了WYNN酒店,直接进去赌场参观了一会儿,然后觉得太累于是开车去定好的宾馆休息。晚上直接去了著名的The strip大道,在Bellagio吃了自助,平时人也不少,排队排了快半个小时,看了外面的音乐喷泉,逛了Paris和Planet Hollywood并小赌20块钱之后回去休息。
周五改变了计划,没有去死亡谷国家公园,考虑到周六市区可能人多,于是继续The strip大道,在逛的途中去了杜莎夫人蜡像馆,直接在门口买的票,事实证明又是失策,在别的地方买其实可以便宜一半的,蜡像馆不大,不过是第一次参观这样的地方,感觉还行。基本上把The strip大道上比较大的酒店都逛了一边,中午继续在Paris吃的自助,在两次自助之后晚上完全没有胃口再吃自助,在麦当劳直接啃了个汉堡了事,回去休息。
周五晚上做了下死亡谷国家公园的功课,因为担心那里太危险,其实倒是杞人忧天了。周六一早出门,去7-Eleven加油买了食物之后沿着160向西,一路都是荒漠的风景,开了一个小时候在一个叫做Pahrump的小镇休息了下,在Walgreens超市买了瓶咖啡继续出发,一个小时之后到死亡谷国家公园,发现这一天不需要买门票,在Zabriskie Point看了一下,然后去了Furnace Creek Visitor Center,加满油后向南去了Bad Water,号称美洲海拔最低地,之后掉头去Rhyolite Ghost town。其实只玩了公园的小半部分,一天时间不够。
一路沿着95开回拉斯维加斯,路上几十miles都没有休息点,全是荒漠。回去后吃饭,赌博,睡觉,第二天飞机回到下雨的西雅图,流水账结束。
买房记
很久没有写任何东西,总是没有静下来的时候,自己似乎也并非那样的忙,浮躁吧或许。写点东西不知道是否能好一些,姑且试一试。而最近穷的很,原因是买房。按照中国人的观念,这也算是人生的一件大事,所以记录一下。
其实上半年的时候已经看到了房价的势头,但是个人的原因还是等到五月份从国内回来才开始看房。问了下组里面买了房子的同事,非常热心给我推荐他的Agent,于是便联系了下,约在Star-Buck聊一下,确认了市场的确非常热,完全的卖方市场,以及大概的价位。同样的房子比一年前普遍贵了15%-20%,虽然这和帝都完全没法比,但是还是倍感压力,或许是当年的错误给心里面留下太大的挫折感吧。
老美的房子市场还是比国内的市场成熟很多,至少每个房子的信息和以前的成交记录都是可以清楚地查到的,Agent也是推荐redfin.com,于是开始了看房的经历,其实看的很少。大概在Samammish, Redmond, Kirkland晃悠,看的房子应该不到10个,但切实地感到了市场的火爆程度,最终还是递了一个Redmond Ridge的offer,加价3%,结果第一个offer就成了,我们颇有些失落。其实对于那里的位置不甚满意,但是实力不够,又不想买过于老旧的房子。现在想一想似乎有些失策,位置才是最重要的其实。
于是两周就结束了看房,开始贷款的流程,这些方面Agent可以直接办Loan,这让事情简单很多,而且Agent是说中文的,也比较负责,所以自己所做的无非是准备一些材料的问题。很不幸的是房贷利率飙升,我们开始看房的时候还在3.5,到我们可以贷款的时候已经过4了,最终锁定在4上面,现在似乎已经是4.5了。
现在发现,有了房子便有了无穷的家务和开销了,换厨房的台面,找人洗地毯,买洗碗机,电冰箱,都是开销。还有一块地板需要修,院子的草也秃了,屋顶的苔藓要除,等等等等。
从我买了房以后,似乎市场开始没有那么火爆了,不会又是买在顶上吧。不过人生或许就是折腾吧,总算折腾完一件,至少父母也可以稍微安心点。
修车记
昨天去Body shop把车给取回来了,毕竟是我第一次去修车,值得记录一下。
2012年12月24号大概上午11点的时候,从520高速去Redmond downtown的一个出口出来后红灯右拐,我看了一眼,没车于是踩油门,但是似乎又不是很确定,于是又犹豫了一下,速度没有加上去了,这个时候,听到后面咕咚一声,觉得不妙。下来一看,被后面也是右拐的车追尾了。这个没啥说的,必然是后车全责,虽然我还是觉得自己也有点问题开的。开后面车的是个老爷爷,于是我们把车都开到路边停下,虽然第一次处理,但是以前还是从网上了解过一些,得记下对方的姓名,联系方式以及保险的信息,我给他留了我的姓名和手机号。于是各自走了。
考虑到第二天就是圣诞节,于是等到26号给对方的保险公司PEMCO打电话,之前还准备了下怎么用英文描述这个事情。结果发现根本不用这么麻烦,对方已经report claim了,但是对方把我的电话给错了一个数字,所以他们没有能够联系上我,直接给了我一个Claim Number就说我可以修车去了,不是很清楚流程,于是让他给推荐了一个Body shop,是在Bellevue的Kelly’s body shop。当天下午把车开过去做了一个Estimation, 要换后保险杠,一千多$,约定了某天把车开过来修。回来突然想起来,还没有问租车的事情,于是打电话给PEMCO,告诉我是可以租车的,Body shop的人会帮忙的。
等到约定的时间,突然想起来租车时候的保险问题,于是打电话问自己的保险公司,说是保的。于是把车开过去,Body shop的人给租车公司打电话,十几分钟车就开来了。于是开着走人。
过了两天,Body shop打电话说可以驱车了,于是开过去,拿回自己的钥匙,给了租车的钥匙,一切搞定。
总的来说,还是很简单高效的。
新年快乐
希望在这一年结束的时候能够问心无愧地说,自己没有浪费时间,虚度光阴。
2012总结
不知不觉中,又一年过去了,时间飞逝,这一年过得有些迷糊,还是总结一下吧。
一月份的时候,Redmond下了大雪,大狗在这个时候来访,还帮我们搬了不少吃的过来,所谓有朋自远方来,不亦乐乎,特别在这异国他乡。然后是第一个不在家里面过的春节,心里面失落落的。被同事邀请去他家里面包饺子,感谢。
二月份的时候,老婆学开车把轮胎给撞破了,前面的车身偏入我们道,老婆一紧张打方向盘,于是撞到路牙上,正好是在GoodYear边上,于是直接去修,花费180$,买个教训吧,所谓让速不让道。
三月份的时候,想不起来发生什么事情了,看了看微博,有次打乒乓球踩了别人的脚了。
四月份的时候,真的不记得有啥事情了。
五月份的时候,买了Diablo III,这是我买的第二个正版游戏,于是花费了颇多的时间在这个游戏上面,可能更多的是为了回味当年Diablo 2的时光吧。事实证明,没有那帮在一起玩的朋友,游戏便少了太多的乐趣。这个月还申请了加拿大的旅游签证。
六月份的时候,跑了趟温哥华,悲剧的是忘记了GPS之前被我刷过,没有加拿大的地图,而且是在跑到一半的时候才发现的,不过好的是,还有手机。去了Downtown还有唐人街,边上似乎就是吸毒一条街,那条街上人的眼神都非常不正常。去了Richmond吃了几家中餐馆,那个小南国上海小吃不错,我给了20%的小费。这个月不知道为什么感觉工作身心俱疲,于是匆忙中计划了七月份的旅游计划。
七月份的时候,请了一周假,去了加拿大东部一趟,Montreal,Sherbrooke,Quebec City, Ottawa。看了下老婆当年读书的地方,探访了她的几位朋友,她有两位朋友非常热心,请我们吃了三顿饭,颇有些过意不去,希望有机会回请吧。Quebec City非常漂亮,法式风格,在去那边的路上加油,结果那个店员只会法语,我的信用卡又不能直接刷,只有靠着手势交流,不得不说,那边的人非常Nice。这个月,我还给自己买了Nexus 7,Google的产品做的还是不错的,相对这个价格。这个月还去给车做了第一次的维护。
八月份的时候,很高兴大狗又来了一趟,其实应该是七月低吧,我很怀恋当年的吃喝协会和那帮狐朋狗友,只是能感觉到大狗不怎么开心,但是我也不知道该怎劝她。这个月我还买了SSD硬盘,把我的濒临死亡的T60给挽救回来了。
九月份的时候,我姐在合肥买的房子交房了,可惜还没能去看一下呢,很高兴姐终于在合肥有个安身之所了。这个月的时候工作上拿到一个很差的Review,很受打击,在严重思考到底自己的问题出在什么地方。这个月Sanjay来出差,帮我带了不少东西。
十月份的时候租的房子到期了,本来是想换个两居,但是自己懒而且心情不佳,最终还是决定续租,这个月还看到双彩虹。
十一月份的时候,似乎很是迷恋Dominion,和在这边的两位大学同学一起玩了不少次。
十二月份,这个月看了两场电影,Life of Pi和The hobbit,自己的听力还是不够。这个月国内同事出差,强老板还请我吃了一次饭。这个月还修复了一次笔记本电脑显示的问题,这个月还跑了一次Portland购物,这个月还第一次被别人追尾,找别人保险修车中。
似乎还有Guanyi同学出差,但是不记得是那个月份了,记性是越发差了。
这一年过去了,感谢我的亲人,我的朋友,我的同事,希望你们在新的一年都好。也希望我自己在新的一年能够坚持做到:
1. 每周三次的锻炼.
2. 早睡早起
3. 改掉拖延的习惯.
4. 更加积极的心态.
5. 坚持学习.