2018年总结以及2019展望

Once Upon 2018

慢写。

关于心态
尽人事、平常心,有点佛系

Live

Company

Future

Don’t Judege

生活
比较重要的一件事情就是把的事情弄好了,感谢公司。
有燕小达护体,这个事情迟早都会搞定,但是早一些总是比晚一些要方便一些。

身体
例行每年都会自己去做一下体检,今年公司有了体检福利。
身体情况总体还行,看体检报告是说100人中打败了79人,算是比较好的状态。
体检报告显示胆固醇高值:5.89,比正常指导范围5.2高了一些些,于是重视起来,运动+饮食调整。

运动上买了一双亚瑟士Nimbus20,缓震系列跑鞋,夏天的时候早上去家里隔壁的河边公园跑个来回大概3KM,更多的是早起到公司的跑步机上运动一下。

饮食调整,则坚决避开动物性脂肪,每天吃燕麦片,多吃蔬菜,减少米面等碳水化合物的摄入,多摄入低脂蛋白:鱼+肌肉+豆制品等等,油炸食品、蛋糕等等也不再吃。

经过三个多月的调整,指标降到4.2,同时体重也降低了一些,到12x了。

另外修复了身体上的另外一个小Bug——后背表皮囊肿,蛮久了,最近2年感觉变大。于是在瑞金预约了一个简单的门诊手术,切开拿掉,一切正常。

心理
整体大部分时间处于比较焦虑的状态,睡眠差,脾气差。
跟自己较劲,强迫症有点厉害。
自我诊断应该是有点轻度了。
自己做了一些调整:
1. 放下一些事情;
2. 平常心,有点佛系;
3. 写下这篇本身也是一种调节方式;
缓解焦虑,最近稍好一些。

 

通过AT指令操作串口收发短信

在之前配置短信语音网关的时候买了一台华为EC122(CDMA)插电信卡使用,配置到gammu之后执行发送命令提示SMSC没有配置。
查了一下貌似CDMA没有什么短信中心号的东西。

且这台设备好多操作指令都是华为自定义的,gammu无法直接操作。
决定自己写程序操作设备串口实现短信收发。

基本思路:
1、程序文件打开串口设备,轮询串口返回;
2、当接收到+CMTI指令的之后解析指令的值,例如:+CMTI:”ME”,37,该指令意思是接到一条短信,存储在手机内存,存储Index为37;
3、通过指令:AT^HCMGR=37,读取短信内容,短信内容编码为UCS2格式,需要进行转码;

4、发送短信指令:AT^HCMGS=”电话号码” \CR\CL 之后跟着短信内容,然后输入Ctrl+Z即可发出。发送之前确认一下当前发送短信的内容格式:AT+CMGF,0为PDU格式,1为Text格式。

HUAWEI CDMA AT Command文档
Ref: http://www.letswireless.com/asp_bin/downfile/2009929121443234.pdf

TODO: 理论上上网卡总是可以通过程序操作串口发送AT指令进行操作,后续考虑完全自己实现,连gammu都不用了。

 

根宝了不起

作为一个伪球迷,昨天也是一个相当开心的日子:上海上港足球俱乐部夺得中超联赛冠军。
这是中国顶级足球联赛冠军时隔23年重回上海(上一次还是1995年,根宝带领的申花)。

我倒是基本上一直粉球星不太粉球队,比如之前德国队的巴拉克、西班牙队的托雷斯,再到武磊,差不多是2013年前后开始粉武磊。

早上刷微博,看到一张图,从昨天晚上开始累积的情绪瞬间释放 在中环上 止不住的泪流满面,触碰到心里柔软的地方。

还有多少人记得当年的根宝足球网?

 

common sense

the biggest difference between people is common sense.

 

短信语音网关的一些记录

Just For Fun. 这些事情就是乐趣本身,有人从看剧中获得满足感,有人从游戏中获得满足感,而我的乐趣来源更多是折腾这些东西,这些也都是我的小玩具。

事情要回到年初:换了iPhone之后,由于没有双卡,不得不随身带2个手机,作为热点以及小号。

期间有尝试过找一些解决方案,比如使用SIM800的扩展板接到NanoPi上实现自动接收转发短信,但是扩展板就成本来讲还是略高,暂时搁置。

直到前几天看到可以使用“上网卡”来实现发短信以及语音电话功能,瞬间选择就多了不少。3G时代的各种品牌的上网卡在闲鱼上淘淘,20块包邮就可以到手,成色非常新,原盒包装都还在。

作了一番调研,选择主要有两大品牌:华为和中兴ZTE。这类设备的英文名称一般是叫做:USB 3G Modem Dongle,如果是搜索英文资料可以基于这个关键词搜索。

抱着试试看的态度先买了一个中兴的MF190,是一款WCMDA的联通3G上网卡,默认开启短信功能,没有提供语音电话功能(插上卡之后拨打该号码会提示正在通话中),接到电脑可以正确识别出,虽然是联通定制款上网卡,但是插入移动的SIM卡也是可以正常收发短信,只不过需要一点点设置,该上网卡默认首选的网络制式是3G的WCMDA,这种制式移动SIM卡不支持,需要将网络制式调整为GPRS,这样就可以了,具体操作如下:

1、eject /dev/sr0 (设备名称根据实际情况确定),弹出网卡的cdrom之后,网卡就会切换为modem运行模式;
2、连接到设备串口,波特率是9600,执行执指令:
      AT+ZOPRT=5(保持在线)
      AT+ZCDRUN=8(禁用CD自动运行)
      AT+ZSNT=1,0,0(切换为GPRS网络)
      AT+COPS?(执行该命令可以查询当前连接的移动网络名称,如正常则会返回China Mobile相关字样)
3、执行完上述指令之后可能需要根据实际情况重新插拔上网卡才会生效;
4、语音电话功能网上找了很多资料都没有找到如何开启,也罢,单纯作为短信使用。

操作成功之后又在咸鱼淘了3台MF190,有点冲动了。

说完了中兴,现在说说华为。
华为相关的案例以及资料比中兴更多,看来通信类的产品还是首选华为,因为用的人多,遇到问题更容易解决。

选择了一台E261的联通3G上网卡,可以解锁实现语音通话功能,昨天刚到手还没有时间去折腾,周末再补充。

插曲:关于USB Hub的选择,一下子买了这么多USB上网卡,NanoPi只有一个USB,完全不够用,势必要买个USB Hub,作了一番调研,主要选择如下,按照网上的评价排名:

1、西普莱,之前也没听过,在SMZDM看评论有人提到说做工很好,搜索了一下,不少人买这个牌子的Hub做群控,看来品质还可以;
2、Anker,国人做的牌子,主要面向海外市场,做工以及口碑不错,但是国内只能淘宝或者咸鱼淘淘了;
3、Orico,据说是给Anker代工的,京东有一款京造的USB Hub好像也是Orico做的,但是口碑上不太好,据说容易坏,但是他们的Hub用的是威盛的USB Hub芯片,所以打算选择他们家的产品;
4、绿联,之前买过不少他家的线材,也买过一个USB 3.0的一拖四的Hub,轻度使用下来倒也正常,没出过什么问题,接的都是低功率设备,对电源没什么要求;

3G上网卡通信峰值电流要求可能高达1A,所以Hub务必需要带独立辅助电源,电源功率上来看,绿联有24W的,Orico 有36W的,Anker有高的60W的产品,综合下来比较倾向于Orico的36W产品,继续咸鱼淘淘。

最终选择了西普莱10口的Hub。


短信服务软件的选择:
1、kannel,最先研究的方案,细节的配置较多比较繁琐,暂时不考虑
2、smstools,第二研究的方案,已经配置好能够收发短信了,但是嫌麻烦:短信需要转码处理
3、gammu,第三研究的方案,自带数据库存储接口,短信接收到之后可以配置直接存入数据库,很方便

配置记录:
1、后端服务使用gammu,配置存储为:MySQL SQLITE
2、在gammu的RunOnReceive配置项设置触发脚本,在接收到短信的时候执行,可以在脚本里处理长短信合并,以及调用WebHook等等,更多功能就发挥自己想象力了

最终我们是要将操作系统接收到的短信让我们自己的手机可以看到,那么方式无外乎以下几种:
1、直接转发,这个最简单,但是如果是没有短信套餐的话,转发短信是需要额外付费的,我希望成本最小化,1毛钱都不想多付
2、通过邮件发送,这种可能会被邮件服务商拦截为垃圾邮件,邮件的及时性也是一个问题,作为可选方案
3、通过微信推送,这个需要申请公众号才能操作推送服务,虽然有ServerChan已经提供了这类功能,但是短信内容隐私性比较强,还是选择自己搭建服务比较可靠,暂不考虑
4、集成第三方的推送服务比如有人使用PushOver来实现,PushOver也是需要付费,暂不考虑
5、提供Web网页访问接口,需要的时候访问网页即可获得短信内容,手机上只需要保存一个网页的快捷方式即可,目前定下这个方案。

处理流程:
1、创建一张新表,比如叫做pushsms(ID, PhoneID, SenderNumber, Message, CreateAt)
2、接收到短信之后触发脚本,存储到pushsms表,如是长短信,还需要进行短信合并
3、新建一个脚本从pushsms读取短信提供Web访问

处理好短信之后接下来就是搭建一个VoIP网关,转发通话至手机,基本思路:
1、先构建VoIP网络,外线呼入使用USB Modem接入,可以设置通话路由规则,很灵活
2、手机安装VoIP客户端,配置接入自己搭建的VoIP网关,分配内网分机号,当小号手机有电话呼入的时候VoIP网关转发通话至手机的分机号,实现通话功能
3、待续,周末继续折腾





 

42-写给时光君

时间过的久,记忆模糊了,有时候连自己都会忘记当初的样子了,还是记录一下。

About 42,这个是蛮久之前在TK微博看到的,看了一下释义:

42,是道格拉斯·亚当斯所作的小说《银河系漫游指南》中“生命、宇宙以及任何事情的终极答案”的答案,由于该作品的广泛流传,而成为在其他行业借此对该作品的致敬。

在故事中,一个具有高度智慧的跨维度生物种族为了找出一个能够回答终极问题的简单答案,所以制造了一台名叫“深思(Deep Thought)”超级电脑来计算,深思花费750万年来计算和验证,最后回答答案是42。当被继续要求提供所谓的终极问题时,深思表示无法直接给出,但可以给出制造一台更大的超级计算机来计算,该种族按照方案制造了这台超级计算机,而这台计算机就是地球。该种族花费了漫长的等待去获得结果,但可惜的是,经过1000万年,在快得出结果的前5分钟,地球因为阻挡了预定兴建的星际间高速公路的路线,被Vogons族毁灭,未能给出最后的结果。

把一些事情做了了结,放下最后一点值得牵挂的事情,倒也轻松下来,回想一下,很多时候都会被这些悬而未决的事情弄的很焦虑。

今年整个市场都在回撤,个人理解下来中美贸易摩擦只是一个借口,内因更大。千万不要小瞧这些顶层制度的参与者,有句话讲:中国最顶级聪明的人都是去从政,美国最聪明的人都是去做金融。

 

TL-MR11U v2版刷OpenWrt/LEDE记录

6年前参加Google的活动送了一个随身路由器,型号是TL-MR11U,硬件是v2版本,拿到之后用了一段时间之后一直在角落里吃灰。

最近想要做个便携的无缝上网设备,便把这个小玩具拿出来研究了一下,看看是否有可操作性。

 

Home Assistant配置记录

前一篇写了一下网关的配置记录:https://www.mudone.com/2018/09/setup-a-smart-home-gateway/

接下来记录一下折腾Home Assistant的东西。

 

家庭网关的配置记录

主要的诉求:

1、能够在外部网络随时接入到家里的内网、访问家里的各种设备;

2、家里的一些家电也带网络控制功能(所谓的智能家电),后续希望能够通过这个小网关实现电器自动控制和调节。

家庭网络情况:

上海电信500M(下行)/50M(上行)。

电信接入设备:烽火通信SDN网关,型号是 HG2821T-U,电信目前新开户以及升级上来的网络都是采用这种SDN网关,目前网上暂未找到成熟的方案进入设备进行一些配置。好在电信提供了APP跟网关设备绑定之后可以设置DMZ和UPnP,但是第一次在APP设置之后未生效,重启网关也无效。无奈拨打了电信的报修电话,电信工作人员上门之后给出的解决方案是换设备改桥接,当天工作人员换了三台设备都没有成功,约了第二天再换设备来处理,不过当天晚上的时候再试DMZ和UPnP倒是能用了。

网关接入设备:

NanoPi 2 Fire,2016年初以99元的价格购入,当时玩了一个月,安装了Ubuntu Mate,原计划是把这个小板子作为自己的开发环境使用,无奈IO性能太差,之后一直在角落里吃灰。后来买了一台ASRock的Beebox N3150作为开发机使用至今,N3150这里不展开说明。

NanoPi 2 Fire采用了三星S5P4418 SoC,1G内存,千兆网口,板子尺寸大概三分之二个信用卡大小,这个配置相对来说很不错,但是SoC发热比较大,正好有个闲置的USB风扇,对着吹用来降温。

技术方案选择:

1、VPN方案:WireGuard

2、电信网关设置DMZ到NanoPi 2 Fire

3、在操作系统镜像折腾上耗费了比较多的时间,NanoPi官方最新的镜像是4.4内核,刷到板子里不能用,发现原来新的镜像是适配新板子,对老版本的板子没有兼容。老版本的镜像是3.4内核,由于WireGuard最低需要3.10内核支持,一开始打算移植3.4内核的东西至3.16内核(LTS),也买好了串口线接入以备内核调试,尝试了2天最终还是放弃,主要原因是涉及的东西比较多,自己也不擅长这块,进展缓慢,时间投入不值得,不过对嵌入式系统的启动机制倒是了解的比较清楚以及对内核源码的结构加深了印象。最后选择了DietPi作为系统镜像而非官方镜像,DietPi官方没有提供NanoPi 2 Fire的镜像,有NanoPi M2的,查了一下资料发现NanoPi M2跟NanoPi 2 Fire的配置除了WiFi和蓝牙模块其他基本一样,尝试刷入M2的镜像到NanoPi 2 Fire,顺利启动。DietPi的镜像十分精简,镜像压缩包只有几十兆,十分推荐使用,DietPi也有树莓派的镜像。总结一下:国产板子的性价比很好,但是后续支持以及生态上还是差的比较多,出现问题自己研究解决比较痛苦,如有可能还是选择用户多的板子。

4、由于缺乏了原生内核支持,WireGuard的技术实现方案上选择了wireguard-go,目前使用下来良好。同时wireguard-go在比如MacOSX等没有原生内核支持的操作系统也可以使用。

待续。接下来记录一下折腾Home Assistant的东西。

 

恐惧、伙伴及决定性时刻

By 王微 @Tudou

昨天,Hugo说,IDG一年一度的聚会,都会安排一个已经上了市的公司创始人, IDG这所创业学校的毕业生,来和大家分享一下经验。在座的各位,大部分都还是在读生。我们还以为,多少年前我们就已经是闯荡江湖、牛B的社会老手了,没想到,原来还是很嫩的在学青年。

都是一所学校的校友,我和大家分享三个就读期间的故事。三个简单的故事。

第一个故事,是关于恐惧。

2005年4月15日, 土豆那时候一共5个人。将要凌晨。我和我的开发工程师,两人瞪着电脑屏幕,在犹豫到底要不要发布土豆网。

在2005年的时候,我还是一个完全的互联网菜鸟。我的团队也一样。

“还有好几个Bug没修。”我的开发工程师说,“心里害怕。要不要再延几天?”

那时候,我们几个人已经照着我的脑子里的一个念头开发了三个月。就我们所知道看到的,我们是这世界上唯一的视频分享网站。没有谁可供我们学习。 世界上还没有Youtube。搜索土豆网,打开的还是一个菜谱的网站。我们也都知道那句话:如果一个想法只有你一个人想到,这个想法可能不是个好想法。如果整个世界只有我们几个人在白天黑夜地忙活这件事,我们在做的会不会是一件极其愚蠢的事?

而且,就算这确实是个好想法,那么,就在那一刻,也许这世界上有很多更有经验更有资源的团队也在做着同样的事。我们的想法是最好的吗?我们的网站产品是最好的吗?用户会喜欢吗?用户在哪儿?怎么找到这些用户?恐惧。

“发布吗?”我的工程师问我。凌晨了。

“发布吧”,我说,“他妈的我已经付了800块钱的新闻通稿费了。不能退款。”

无知者无畏。那时我对中国互联网的凶险和艰难,完全无知。

把自己逼到多花一块钱、多滞留一分钟都凶险的绝境,是另一种克服恐惧的方法。

第二个故事,是关于伙伴。

土豆上线后才几天,IDG的高翔就找到了我。第一次见面,我们俩在上海宝莱娜的花园里聊着,聊互联网,聊土豆。从中午一直聊到了夜里,整整聊了11个半小时,各自喝了5升的啤酒。随后见了毛丞宇,杨飞,当然,还有章苏阳。

10月份,我到了北京。苏阳和杨飞在会议室里,我们聊了15分钟。

“王微,这,我们这样想,50万美元,30%,干不干?干咱们就一起干了,不干咱们就算了。”苏阳说。

我想了想,说,“我去下厕所?”

“去吧去吧。出门转角就是。要不要我和你一块过去?”杨飞说。特别热情。

“不用不用。”

我撒了泡尿,回来,说,“那咱们就一起干了吧。”

所以我们就一起经过了后来的4轮融资, 公司的和我个人的种种风波和风险, 经过了金融危机,牌照危机,上市的艰险,公司业务从无到有,从5个人到1000人,一起干到了现在。

那50万美元是我觉得最值得的50万美元。IDG的各位合伙人,尤其是苏阳和Hugo(熊晓鸽),给了土豆巨大的帮助。创造一个公司的过程,艰难,不可预测,危机重重,有一个我们可以完全信任的伙伴、老师,一起走过来,是一件非常幸运的事。

第三个故事,是关于决定性的时刻。

今年的8月3日,凌晨4点钟。土豆的财务团队,两个投行,两个律师所,会计公司,土豆的上市团队核心成员都在香港中环的一个办公室里。

我们熬了一周通宵,都已经精疲力尽。我缩在办公室一个极小的电话亭里,在通一个已经进行了三个小时的电话。

经过几轮的提交,将近一年的据说是中国公司在美国上市持续最长久的一次上市过程,这是最后一次提交的关键时刻。

但是,市场在过去的三个月里一直波动,过去的一周,由于希腊,上下大幅震荡。

“我们两个银行的建议都是推迟上市。我们觉得9月份的市场环境应该会好很多。今天不要提交。”投行在电话里说。几周下来,他也极其疲倦了。

“不,必须这个月上。必须现在提交。” 我说。

最终,我把所有的资源,所有的说服力,我和土豆能调动的一切力量,都压在了那个电话上。

“好吧,但我需要和另一个投行确认下。”投行电话里说。

我挂了电话,虚脱一样地疲惫,但我知道我们已经赢了。10分钟后,团队的一个人接完一个电话,他忍不住高举拳头叫了出来,“We go!”

凌晨4点半,在截止时间半小时前,我们提交了报告。开始了正式的路演。到美国的第一天,碰到美国政府债券70年第一次被调低评级,希腊和意大利的国债危机持续着,路演的一周里,股市每天跷跷板般上下5%地剧烈震荡。一周里我们开了55个单独会,11个宣讲会,10个城市。8月17日,土豆上市了。

我们都看到了当下的市场是多么地悲惨。如果那一刻没挺住,那估计我们要从9月等到10月,10月等到11月,到现在还等着。

在电话亭里的那最后三分钟,是决定性的时刻。

一生之中,真正的决定性时刻,极其稀少。我们每个人都会想起一生中那么几次的决定性时刻。一个人、一个公司,整个的未来,就取决在那么一个窄得像刀锋的时刻。

在那样的关键时刻,退了,就是一个悲催的人生,只有挺住,全身心地押上去。必须赢。

这是我的三个故事。

我们的酒店过去不远,就是灵山,山顶有个大佛。世界有诸多难处,有诸多烦恼,也有诸多的神和佛。不知我们现在生活的,到底是佛法盛世,还是末法世界,需要这么大一尊佛。

管它这世界是盛世,还是末法,我们都只是人,生老病死。一个公司也像一个人一样,有生老病死。运气好的,有像亚历山大那样,32岁就已经征服了所有的已知世界,也有像姜太公那样,80岁了还在钓一条不知道到底存不存在的大鱼。有一路生龙活虎的,也有从小病怏怏但是成年后龙精虎猛的一条汉子的。当然,也有半道夭折的。

那是命运。人有人的命运,公司有公司的命运。就像人一样,公司总有死去的那一天。如果我们只看结果,那所有的结果就只有一个,死亡。

来的路上,我在看一本书,《耶路撒冷》,耶路撒冷的历史,其中说到十字军东征。一千年前,有位著名的伊斯兰将军Ibn Shaddad,他经历了萨拉丁和狮心王理查德争夺圣城耶路撒冷的战争。有一天,他老了,萨拉丁和理查德都早已死去了,他想起过往一切,“所有这些逝去的年头和战士们,仿佛他们都只是梦。”

丰臣秀吉死去的时候,大约是想起了自己的一生,一个农民,因缘际会,居然成为了日本的主人,这么华丽的人生。他临终的俳句是,“大阪城的一切,如梦中之梦。”

我们是创造者,梦想者。尤其是在座的各位创业者。就算一切到头都只是梦,就像金刚经的开头,“如梦幻泡影,如露又如电,” 到了尽头,回想的时候,到底我们做了一个美梦还是噩梦?无论如何,亚历山大丰臣秀吉萨拉丁理查德们,姜太公,他们的一生是一个精彩的旅程。是一个有趣的梦。

过去6年,土豆的旅程,是一个奇特有趣又美好的梦。

祝大家,在我们还能做着梦、活在梦里的时候,尽我们所能,做有趣的梦,也活有趣的梦。

谢谢