andy

c++

代码迷惑行为大赏

人无远虑,必在on-call 纪念从业四年多,整理一个自己写过的智障代码合集 喝假酒系列 class wtf{ // bala private: std::string_view name; }; // 点评:知道你学了c++17,也不能这么瞎胡闹吧 //(string_view 不拥有string 内容的指针) void func(){ std::lock_guard<mutex> a(lock); { // critical section } // 2000 行其他逻辑 } // 点评:很困惑,你是想锁哪部分? //(a的声明周期“本应该”与critical section一致,但是……) void func(ptr* a){ unique_ptr&

By andy

Uncategorized

Fly Alone

原来电影里的都是真的 每年在拉斯维加斯都有一个展销会。我父亲以前是很少去的。自从我来美国了之后,这个展销会却成了为数不多的碰面机会。所以经常是今年我去拉斯维加斯,明年我父亲来纽约。 今年又轮到我去维加斯了。因为之前那次去维加斯没看成什么好的秀。于是这次我提前订了太阳马戏团的KÁ,订好了宾馆租好了车,准备当一次尽职地陪+翻译。 奈何从纽约直飞维加斯的飞机不多,并且为了在他们落地之前我先料理好一切事宜,于是我订了早上6点的机票。如果一切顺利,我会在上午9点左右落在Vegas,提了车子,等他们落地先接他们去吃顿好的,然后去宾馆休息下,晚上再去看个秀。完美。 于是我早上3:30左右起床,洗漱,然后4点多打车去了机场。强忍着困意领了登机牌,过了安检,在候机厅等了半个小时,等到5点多的时候开始有人排队登机了。这里要吐槽一下纽瓦克机场:我的登机牌上写的是Gate 41,然后 1.Gate 41那里没有显示器显示登机航班,2. 他根本没有Gate 41,只有41A和41B,而且是紧挨着的,两边的队伍都连在一起了。当时考虑到这个时间起飞的飞机应该就是我要乘的航班,于是强忍着困意站起来排队。到了我

By andy

闲文

Pixel 4 和它的小伙伴们

一个也不能分割 今天美东时间早上十点pixel 4 发布了。与它同场发布的还有stadia,期货耳机,pixelbook go,还有nest home mini。 本来计划看直播的我,因为和同事讨论一个问题,一直到10:40 才开始看直播。20分钟之后,发布会就结束了。开始只以为发布了pixel4,后来重新看了发布会:一个小时里居然发布了这么多硬件产品?? 对于pixel 4 本体,浴霸镜头早在8月就在推上自曝了;相关的soc也被各路媒体根据供应链猜的八九不离十;soli(雷达芯片)更是四年前就布好了局。唯独一丢丢让我惊艳的就是手机摄像。居然都能拍星空了! 记得17年在阿拉斯加拍极光的时候。有个老哥吐槽我说:“你用的啥破相机,拍的星星还不如我用手机拍的多”。我看了一眼他的星空照,满屏的“星星”基本全是噪点。这回pixel 4拍出来星空的成图真的很惊艳。还有那个super zoom,真实贯彻了“software defined camera”。 然后stadia,11月19终于能玩上了。(嗯,

By andy

技术

CL描述信息的最佳实践

翻译腔依旧 Change List(CL) 是一个公开的,包含有“修改了什么”,以及“为什么修改“的记录。它会被永久的存储在版本控制系统里。并且,不仅仅是你的组员,其他部门甚至其他公司的工程师也常常会参考这些CL描述。 如果你的CL描述过于含糊,重点不明,或者只是简单的“修复bug”,“重构”,“重排格式”,那其他的工程师将很难通过仅仅阅读CL描述来理解你做了什么。同理,当你在阅读别人的CL时,你也不想每次都阅读长长的代码,而是希望有一个简短精准的描述告诉你他/她做了什么。因此,本文档将概述如何写易读易懂的CL描述。 第一行 * 简短描述你在CL里做了什么。 * 完整的一句话,尽量使用祈使句。 * 后面加一句空行 CL描述的第一行应该是一句简短且具体的做了什么的总结,和一个空行。因为大多时候代码搜索工具在显示历史树的时候,它会显示每个CL的第一行。所以第一行应该具有足够多的信息量,这样其他工程师不必点开每一个CL,阅读它完整的描述才能知道这个CL做了什么。 按照传统,CL描述的第一行应是一个完整的祈使句。比如,说“Delete the FizzBuzz RPC an

By andy

Uncategorized

iPhone 11 pro 不专业极简测评

真是浴霸不能 自从ip7之后,我觉得换手机已经不再是一个每年秋季的常规活动了。但是随着我64G的手机被app,照片给填满,换手机又成了我今年的非常规活动。 考虑到5G在纽约还没有大面积铺开。以及就算5G彻底铺开了,其对于手机应用的影响在我来看依旧不大。加上我现在一整套苹果的全家桶用着颇为顺手,于是7月份的时候我就已经准备好买个新苹果了。 20号晚上,我终于喜提了iPhone 11 pro AKA 浴霸手机。 先聊几个比较喜欢的地方:对于第一次用刘海屏的我来说,face id的体验真的很棒。再也不会因为湿手刷不开touch id。真的是 盯~ 然后手机就开了。第二个让我觉得惊艳的就是A13,新手机上Lightroom出图真的是秒出。其三就是三摄的13mm广角效果真的是好,有小鱼眼的效果。最后一点就是每次换手机后都会短暂感受到的续航爆发式提升,一天中度下来手机还剩大概40%的电。 聊过了喜欢的地方,再谈谈不喜欢的地方:第一个ios 13上依旧有很多app没有更新适配好,包括schwab 还会闪退。第二是在刘海屏手机上,依旧有很多app没有做显示适配,所以这些app会有诡异的内容被

By andy

Uncategorized

Misc

北大的唱歌也挺好听 最近在搞两个事情,一个是买了 LaMetric然后自己写程序,一个是在听《乐队的夏天》。 LaMetric这个东西真的挺好玩的,给大家种个草,很方便用,又可以DIY。遇上我这个好折腾的主,真是一个好玩具。虽然某人一直怀疑我这个玩具的热度会持续多久。 乐队的夏天里有俩乐队我特别喜欢,一个是大家都爱的新裤子,他们那个别再问我什么是Disco太洗脑了,每次想起来就想问啥是Disco;另一个是Mr.Miss,是少见的人声爵士组合。让我这个爵士乐圈外自封爱好者简直浴霸不能。 说到浴霸,iPhone 新浴霸今晚就可以入手了。本来说我已经过了年年追着手机换的岁数了,但是现在的手机只有64G,基本上装几个常用的app + 照片就满了。公司用的软件都装不下。新手机有512G的我估计可以用个三年吧。顺手又买了Apple Care+。这回可以把常用的app,不常玩的游戏都装个爽了。 说到游戏,最近风花雪月通了之后没啥好游戏玩,不过前几天发现逆转裁判更了中文,又有星际锁链,又有各类动作游戏……别人家游戏烧钱,老任家游戏不仅烧钱还伤肝。 顺便,这回可以好好体验一下apple ar

By andy

周记

众生皆苦

谁也不是草莓味的 我一直就比较喜欢听脱口秀:主题明确;一场大概5分钟;不需要看屏幕,带着耳机听就可以;听完了车也就到站了,不误事。 听的脱口秀多了,我逐渐的理解了“喜剧的内核是悲剧”这句话。 众多脱口秀演员中,我最喜欢的有两个,一个是建国一个是思文。两者共同点是,都十分擅长从生活中汲取段子(当然王建国这个谐音梗真的是……)。两人用脱口秀将当代青年面对的焦虑,压力,人际关系困境表达的淋漓尽致。两者中我更喜欢建国一点,毕竟同是辽宁省出来的,老乡情谊还是有的。 建国又开了一档《隔三岔五国仔饭》。和其他饮食节目要么详细教你做饭,要么疯狂灌鸡汤不同,建国做饭时总是给人一种丧丧的感觉。讲的也都是一些:想做排骨焖饭的是饭菜都在一个锅,可以少洗两个锅;炸虾炸久了就不复炸了,怎么吃不是吃;高汤有最好,没有也不能不做饭是不是等等。很丧很随性。 被各类公众号荼毒了许久的我第一次感觉到了这种丧文化的魅力。也许是每一代人到了30ish都会有莫名的焦虑感。而随着互联网的发展,90后的焦虑感被无限放大扩散了。 第一次和朋友吃饭聊创业的时候,提到到某某创业了拿到了几个M的融资,我说这人运气真好。第N次和朋

By andy

周记

节能环保

环保从我做起 前天上班路过星巴克,想着我(为了拿徽章)已经自愿加入环保俱乐部,于是进去花了20大洋买了个带盖的保温杯。 买了杯子之后,我粗略的算了一下每天大概节约了6个纸杯+小于等于6个的盖子+1个塑料瓶。谷歌说1棵树约等于8000个纸杯,这么一算,差不多3.65年我可以节约一棵树出来。尽我所能节能减排(顺便方便泡枸杞)(真想减排就少吃肉嘛) 很多事情上老美是口号喊的震天响,轮到自己的时候就打脸打的啪啪响。尤其是环保方面。 比如说节能这个事,说实话我几乎每年都能让办公室的空调吹感冒一次。而且偶尔深夜从公司附近路过,尽管楼内应该空无一人,但是整个大楼依旧灯火通明的。很多店铺也是,明明打烊了依旧亮着灯牌。 再比如说浪费,我认识的老美基本都是周末采买一冰箱的吃的,然后把冰箱里上一个星期采买的没吃的但是过期的食物扔掉。而且步行超过五分钟的路程都要开车(当然这个可能更是因为懒),家里没人也要开着空调,等等等等。 当然,环保这个事情更多的是靠自觉了。不说了,待会儿我的枸杞水该凉了……

By andy

周记

火焰纹章

白毛,粉毛,蓝毛——我全都要 上周五出了火纹新作。本来我对这类SLG游戏是不感冒的,但是最近没什么能玩的好游戏,于是咬咬牙买了首发。 周五晚上先是和两个前同事吃了饭,接着在法拉盛买了很多零食,最后带着奶茶和零食回到家里猫在沙发上打开了刚刚可以玩的火纹。 三个小时后,嗯, 真香。 小时候我也玩过GBA上的两作火纹。奈何那时候由于智商没发育完善的原因对于这类策略游戏很难上手。当然现在是对于策略类和动作类都苦手,因为又蠢反应又慢。由于那时候是用烧录卡玩的,并且烧录店的老板是我熟人,于是我自动获得每周可以免费烧新游戏的特权——火纹在我的烧录卡里活了一周,就被双截龙代替掉了。 上了大学之后因为学校有各种资源站,我尝试了各种类型的游戏。古剑奇谭,老滚,等等。尝试了很多游戏之后,对于很多人热捧的开放世界我完全提不起兴趣:一来开放世界让我觉得缺少目标,二来是我有点轻微完美主义的倾向,近似强迫症的想要清空任务列表,结果就变成了疯狂去接各种重复的支线任务。唯独对与射击类和跳台类游戏情有独钟。 工作之后,因为能玩游戏的时间少了, 并且大多空闲时间是在通勤的路上。于是开始玩起了一些手游。后来是因为

By andy

Uncategorized

一号公路

景美 人黑 地动 赶着六月底去了趟加州,开了一趟鼎鼎有名的一号公路。其实16年就想过去自驾一号公路,但是当时由于泥石流导致一部分公路封锁,所以一直推到19年才成行。 在翻阅了大量文献(游记博客)之后,我们的路线就是 SF -> Monterey -> San Luis Obispo -> LA. Day 0 MTV, SF 到了加州的第一件是就是拜山头了。上午去见了几个朋友,顺便朝圣了一下,去了Google MTV 办公室和Apple 总部,还买了俩文化衫。 下午去到了SF。走了趟九曲花街,看了看海边和金门大桥。除了流浪汉太多,不敢随便停车(怕被砸车窗)之外,整个城市还是很漂亮的。 Day 1 Monterey 第二日一早,起床洗漱退房后,我们驱车前往蒙特雷。途径了鸽子灯塔。蒙特雷是一个民风淳朴的小镇(也就是看起来没有那么多的流浪汉)

By andy

周记

Libra 币

蹭热度一时爽,一直蹭一直爽 昨天FB宣布了他们自己的数字货币Libra 币。各路新闻纷纷报导顺带着把FB的股价推高到了194。昨晚的新消息是各路机构开始呼吁要对Libra加强监管,审查等,又把股价拉了回来。 那么问题来了,要知道市面上各种币数以十万计,为啥偏偏Libra币就能突然爆火?就凭他爸是FB? 简单来比对一下Libra币与其他数字货币 储备金支持 数字货币被人诟病的问题之一就是背后缺少储备金支持,导致空气币满天飞。这家吹完自己的一个币能够在北上换一套房,那边就敢吹自己一个币就能让马一龙带你去火星转一圈。与之相反Libra背后有着储备金的支撑,换句话说就类似你把钱存进银行,你的账户上多出来的数字是有着真正的金钱对应的。所以风险相比其他数字货币低很多。 稳定币 Libra号称稳定币,会与当地法币依一定比例稳定兑换,因而相比比特币更具有交易属性。比特币的波动性使它的投资(机)属性远大于交易属性 挖矿 根据白皮书所说,Libra Coin 的唯一获取途径就是通过法币向Libra 机构购买(是不是很像Q币?),并且销毁途径是用Coin从机构回购法币。而非比特币通过奖励的

By andy

周记

Vim SoftCore Player

vim是编辑器之神,能用好的都是神 第一次接触vim是在大二的时候吧,当时是 Micheal@ 给我演示他如何使用vim写程序。对于用惯了visual studio 2008 一键编译,一键调试的我来说,一个在命令行里黑洞洞的编辑器,一个用h,j,k,l来移动光标的编辑器实在令人提不起兴趣。 后来因为某些原因需要在服务器端来写代码(大多是配置文件),所以稍微学了一下如何使用vim。但是极高的学习曲线、各种蜜汁plugin,让我还是止步于快捷键组合vim infant 的程度。当然对外我还是自称是重度vim user——毕竟相比nano/emacs,我只会用vim。 再后来,第一份工作的时候用的是windows + visual studio 2015,这个在win下堪称完美的组合直接打消了我用vim的想法。尤其是vs2015 在当时是写C#的无二利器。第二份工作倒是基本上在服务器上鼓捣代码了,不过处于某些原因,很多vim 的插件没法安装。强上vim,很多时候效果还不如用sublime 来的好。后来我的主力开发工具就成了vs code + sftp。大多数时候这套组合能够满足我的需

By andy