Reading view

There are new articles available, click to refresh the page.

我开发了一个短链管理插件: Raycast Sink

前段时间,花了一点时间,开发了一个 Raycast 插件,当时还发了一条,今天这个插件成功通过 Raycast 官方审核,已经上架 Raycast 的插件商店。写篇文章分享一下。

背景 ​

过去好多年,我都使用老牌的 YOURLS 作为自己的短链服务。一开始部署在自己的云服务器上,后来又迁移回家里的 Homelab,虽然用起来也没什么问题,但是总得放到一个实体的服务器上,维护起来还是有点麻烦。

上个月,花了一天时间,将自己的短链服务从 YOURLS 迁移到了朋友面条 @ccbikai 开发的开源短链服务 Sink

基于 Cloudflare 的短链服务,比较符合我们前端技术栈的使用习惯。具体的部署和使用,可以直接看官方文档,对于有技术背景的人来说,还是比较上手的。

Raycast 插件 ​

Raycast 是 macOS 上著名的快捷启动工具,我在今年已经从Alfred 5 切换到了 Raycast。

Raycast 有一个很好的插件生态,趁着这个机会,我也顺便开发了一个 Raycast 的 Sink 短链管理插件。

现在这个插件已经上架 Raycast 的插件商店,可以直接搜索 Sink 安装使用。

这个插件也开源在我的 GitHub 上,有兴趣的朋友可以参考。

主要功能 ​

插件的功能比较简单,不要是基于 Sink 的 API 进行的封装,主要功能包括:

  • 快捷查看创建搜索编辑短链接
  • 缓存优化:本地缓存短链接列表,减少网络请求
  • 剪贴板集成:立即将短链接复制到剪贴板
  • i18n:支持中文和英文

演示 ​

一键查看所有短链接列表,支持favicon预览。

控制台快捷管理短链接,支持复制打开编辑删除

支持查看短链的详情(后续版本增加访问统计)。

本地和在线搜索短链接,按照字段权重排序。

快捷创建短链接。

关于用 AI 开发这个事 ​

用 Cursor 花了 2 小时开发一个应用 这句话当然是在玩梗。真实情况是,这个插件的最小 MVP 的确就花了差不多一个小时搞定,但后面补文档、上架流程、看官方指引倒花了不少时间。后续打磨和优化代码又花了一整天的样子。

当时跟面条还聊了下,现在用 AI 做前端这种小应用真的是太方便了。尤其是对于我们这种有经验的开发者,只需要需求描述明确,结合自己的代码经验,很容易把一个像模像样的小应用搞定。

前几个月,我自己还独立开发了一个大型商业应用,前后端全栈,AI 也帮了很大的忙,由于是商用就不方便公开了,大型应用中的 AI 开发相关的经验,有机会再跟大家分享。

个人的经验和建议就是:不管你是不是计算机相关专业出身,即使现在 AI 已经很强大,还是建议系统学习下编程,至少掌握一门编程语言(比如 Python 或者 JavaScript)。配合 AI ,可以解决日常工作中的许多问题。

最小巧的 5G 随身 Wi-Fi: 中兴 F50

前段时间,买了个目前市面上最小巧的一线品牌 5G CPE 随身 Wi-Fi:中兴 F50

目前售价 ¥369,我京东券后实际支付 ¥337,用下来感觉还是挺满意的,在这里分享给大家。

选购思路 ​

我手机卡很多(四个运营商,10 多个号码),平时出门包里三台手机(两 iPhone 一安卓),之所以想买一个单独的随身 WiFi,一是发挥多多余 SIM 卡的价值,二是想买个玩。

这段时间偶尔会出门工作,去图书馆呆一天什么的,个人偏好原因,不喜欢公共 Wi-Fi(很多公共 Wi-Fi 不支持 IPv6:我又有需要通过 IPv6 调试跨境网络的需求),倾向自己开热点,加上对网络速率要求比较高,所以决定弄一个 5G 随身WiFi。

不需要内置电源(随身有充电宝),开车有 USB,去图书馆时也会带个快充头,所以供电无所谓。

综合上面个人需求,在各个渠道大概搜索了下关键字,最终下单中兴 F50,插自己的卡使用。

开箱 ​

中兴也算是通信领域的老牌厂家了,这也是我之所以选择他的原因。F50 的包装很小。

盒内物件,除了简单的说明书,还附送了个卡针和短 Type-C 数据线。

设备的颜值不错,左上角的 5G 红标有设计感。

右上角有两个指示灯灯,分别表示基站网络和 Wi-Fi 状态

与身份证大小对比,的确很小巧。

SIM 卡槽和卡托,还能放一个 TF 卡,对于我来说读卡器是个鸡肋功能,相机用的都是 SD 卡,没有什么其他设备用到 TF 卡。

管理后台 ​

连接上 Wi-Fi 或者网络之后,就可以通过浏览器访问管理后台。后台可以查看当前的网络状态,也能查看短信。

5G/4G 网络配置,Wi-Fi 配置,跟常见的家用路由器没有太多差别。

高级配置里可以配置更多的信息,报错指定频段、USB 协议等等。

对于一个随身路由器来说,这些配置也足够了。

使用体验 ​

由于不同的运营商在不同的地区的信号不一样,所以我只说下自己的体验。使用这个随身路由器也有几个星期了。我在家、在车上、在图书馆都使用过。整体还是挺满意的,使用广电卡,Wi-Fi 连接模式下,跑到了 400+Mbps 的下行速率,对于日常场景完全够用了。

优点 ​

  • 体积小巧,50g 不到重量,随身携带很方便
  • 支持 2.4G/5G Wi-Fi,但不能同时开启。
  • 频段覆盖还行,四大运营商 5G 都能用。
  • Type-C 接口支持充电和数据传输,支持 TF 卡扩展,新固件可以直连 MacBook(有线上网)。
  • 速度不错,我用广电惠民卡(移动共享频段),iPhone 通过 Wi-Fi 连接,5G 下行跑到 400+Mbps。

缺点 ​

  • 发热问题有点玄,听说长时间负载会降速,我才开一会,就能感觉设备的外壳温度上来了,但是我没有高负载的场景,不会持续满速率下载,在图书馆用一天感觉还好。这台机器有很多 DIY 散热解决方案,某个角度也反应了大家对这台设备「瑕不掩瑜」的认可吧。
  • 没有电池: 中兴也有一个内置电池的版本,但是我觉得这个不算缺点,直接插一个电源或者充电宝就行了。尤其是有几天,我直接把他放到车的扶手箱,车启动的时候就自动开机了,很方便,没有电池,也不用担心电池自燃的隐患。

参考资料 ​

这篇文章只是个人的体验分享,对于更详细的性能、参数等,建议可以看看张大妈的分享文章,由于 F50 是一款很热门的机器,在 B 站和小红书也有很多分享:

总结 ​

总结一下这个设备的适合人群:

  • 有多余手机卡或者大流量卡,想发挥流量价值。
  • 对随身设备便携性要求高,但是又希望能够有 5G 网络且性能满足日常使用。

长沙马拉松:回到 5 小时内

我从 2013 年开始跑步训练,在 2014 年跑了第一个马拉松。2014 年到 2018 年那几年,我每年都跑马拉松,累计已经跑了 7 场全程马拉松。

2019 到 2022 这三年,由于疫情和工作的原因,中断了三年,去年我开始恢复自己的「人生马拉松」计划,跑了第 8 场全马。

今年的第 9 场,我选择了长沙马拉松。虽然我是一个湖南人,但是我却没有去过长沙。我的表弟定居长沙,8 月乔迁新居,刚好趁着这次机会在他家住了几天,也顺便在长沙玩了五天。

行程 ​

现在回湖南高铁很方便,不管是从东莞还是深圳,坐高铁只需要 3 个小时左右到达长沙南站。在高铁上还遇到后座两位大叔也来跑马拉松,下车的时候还聊了一下,约伴一起去领取参赛包。

检录 ​

马拉松在周日举行,我周五提前到,从长沙南站坐地铁一站到国际会展中心。

由于是周五,很多参赛者还没来(大多会在周六报道),人不太多,我领取物资的过程十分顺利,但是周六那天,听说由于人太多,很多人排队两三个小时,被很多跑友吐槽组织得不行。

领取物资的地方。

这次领取到的参赛包。

我的号码牌,这次我长沙马拉松报名错过了报名时间,是通过赞助商渠道弄到的名额,分配我到了 F 区,属于比较后的区。

今年是长沙马拉松第 10 年,参赛包里的物资展开(也有一些我在博览会打卡领取的物资),感觉一般般,广告和廉价的食物比较多。

赛前闲逛 ​

我表弟的房子在梅溪湖,属于长沙的新区,新楼盘很多,环境不错,晚上吃完饭去梅溪湖边逛了逛,湖边的夜景很美,有不少散步的人。比起一线城市的房价,长沙的房价相对要健康很多。

周六闲着没事,直奔国金中心,一出地铁,人潮涌动,真热闹。

长沙市中心五一广场逛了逛,人真多,街边很多餐饮店,长沙不愧是网红城市。

长沙最高楼国金中心,楼下有 Apple Store,楼上也是一个网红打卡地。

坡子街这个派出所也是一个网红打卡点,很多人慕名而来,之前是不允许拍照,后来警察可能觉得拦也拦不住,把牌子改成了「请文明拍照打卡」,但是依旧顶不住游客顶风作案。挺好玩的一个地方。

街头执勤的交警在给一个大妈指路。

我去年减肥之后,已经戒糖很久了。但是都来长沙了,一杯茶颜悦色还是必须的,完成打卡任务。

在五一广场逛了逛,走到了江边,又来到了文和友,也算是长沙的一个餐饮网红,前几年也开到了广州和深圳,最近看新闻听说要倒闭了。

逛得差不多了,穿过坡子街,走回五一广场地铁站,坐车回家休息。

晚上冲完凉,把第二天的装备收纳了一番,放到床头。这次装备跟上次差不多,除了凡士林忘带了,其他东西都齐全。

比赛日 ​

早上 5 点半就起床了,吃了两个面包,换好衣服,坐地铁前往起跑点,今天马拉松参赛者乘坐长沙地铁免费,地铁为了方便跑友,还提前到 5:30 发车。

到达五一广场换乘去贺龙体育中心,密密麻麻基本都是跑马的人。

马拉松 7点30 起跑,我到达才 6点45,还有半个多小时。此时人已经很多了。

由于我在 F 区,发枪时间是 8:00,在这里等的时候让跑友给我拍了张照片,腰上鼓鼓的里面装满了补给用的能量胶。

前面 A 区已经发枪了,我们 EF 两区也慢慢开始往前挪动。

7点 55,慢慢到了起跑线,大家在等等起跑。

发枪咯,从我的位置到通过计时毯,只用了 1 分钟,这也是分区发枪(间隔15、30分钟)的好处。

今天长沙的天气属于多云,虽然不是阳光明媚,但这种温度还挺适合跑步的。

起跑没多久,上桥进入橘子洲。

到达 5Km,第一个补给点。橘子洲里的道路比较窄。

到达毛泽东头像,来都来了,自拍打个卡,不少跑友还专门停下来留影。

跑了没多久,我追上了第三枪 445 的兔子。他们比我们先 15 分钟发枪,我跑马前半程的速度还是比较稳,基本都能保持 10公里/h 的速度。

跑了两个多小时,终于到达半程,对于半马的人来说他们今天的比赛已经结束了,而我们全马的比赛才刚刚开始。

去年跑完珠海马拉松之后,2024 整个一年,我都没有跑过超过 10km,一般就在健身房跑 5km,过了 25 公里之后,我就能感觉到自己的体能下降了,后面开始慢慢走走跑跑结合。

到达 30 公里,除了跑不动,身体倒没有其他什么不适,用时 3 小时 17分钟,这 10 公里比前面慢了 15 分钟,虽然我平时跑步少,但是一直坚持健身,今年的身体素质还是明显强了很多。

终于到达40公里,30 公里到 40 公里这一段,我一直在看自己的配速,计算如果我这次要跑进 5 小时,需要保持多少的速度。一开始 30 到 35 公里还比较紧张,越到后面,发现自己好像能稳定,倒轻松不少。

最后 400 米,终点就在前面,长沙马拉松最后两公里是一个长上坡,很折磨人。

终点就在前面,最后这几百米,加快了速度又跑了起来。

成功达到终点,十分开心,完成了今年的「人生马拉松」。

看了下自己的手表计时 4 小时 56 分,也达成了我的目标(进入 5 小时以内)。

领完奖牌和纪念品,开心再记录几张。

过了一会,比赛确认的成绩发送到了我的手机。跟我手表记录的时间差不多。

长沙马拉松的关门时间是 6 小时 15 分钟,离开之前,还能看到不少跑友在继续努力。

赛后闲逛:湖南博物院 ​

跑完之后就回家了,吃完饭后,洗完澡就睡了一觉,醒来后腿十分酸痛,起立转身都感觉困难。

第二天周一,腿脚好了点,但是也懒得出去,睡到中午起床,在家休息了一天。周二,跟我堂弟去湖南博物院看了看。

湖南博物院是一个很多人推荐的地方,预约参观,人很多。

博物馆展示湖南地区历年来的不少文物。

一个萌萌的鼎。 看到 Yale 的文凭,这个也是现在「雅礼中学」的前身。

湖南博物院最具特色的「长沙马王堆汉墓」相关展览。

马王堆辛追夫人生前用过的木杖(难以想象这是 2000 多年前的文物)。

逛完博物馆,感觉湖南博物馆可以放到我去过的博物馆的前几名,马王堆汉墓这些十分令人惊叹,值得一逛。

逛完博物馆,时间尚早,又去五一广场附近逛了逛,这个黄金楼也是一个网红点。

吃了黑色经典臭豆腐,味道不错。

看到一个辣条博物馆,给老婆拍了张照,感觉下次可以带老婆再来玩一玩。

还看到一个俄罗斯国家馆。

成绩 ​

这次一个人去长沙跑马,还是挺爽的,湖南菜好吃,长沙也好玩。最后再看看成绩,这次全马的成绩终于回到了 5 小时以内,感觉加大跑量的话,明年回到 4 小时 30 分钟还是挺有希望的。

香港徒步:麦理浩径第二段

香港的徒步路线非常知名。只需搜索「香港、户外、徒步」,就可以找到许多路线。

虽然我家在深圳,并且也去过香港很多次,但之前并没有专门去香港徒步过。过去曾和朋友计划徒步几次,但要么是天气太热,要么是工作太忙,由于各种原因都没有实现。

这个国庆假期,我和弟弟轻装上阵,走了一趟麦理浩径第二段。

行程 ​

时间 用时(h) 地点 花费 备注
9:50 0 深圳湾口岸 $60/人 过海关,永东巴士到钻石山
10:50 1 钻石山 $65/人 4人拼车,打的到万宜水库东坝,共$260
12:00 2 万宜水库东坝 0 到达徒步起点麦理浩径二段起点
13:15 3.5 浪茄湾 0
14:30 4.5 西湾山顶 0
16:0 6 西湾 0
16:30 6.5 咸田湾 $160/人 坐船回西贡码头
17:30 8.5 西贡码头
19:00 8.5 钻石山 $60/人 永东巴士回深圳湾口岸
20:00 10 深圳湾口岸

从深圳出发去麦理浩径徒步,无论你选择哪个口岸过关,都有详尽的线路经验可供参考。你可以直接在小红书上搜索相关信息,我就不再赘述了。

在这里推荐下香港当地的徒步路上,从照片到地图,极其详细:

我唯一的建议是:如果条件允许,请优先选择打车。拼车所需的交通成本并不高昂,并且能大幅节省时间

徒步 ​

麦理浩径二段的起点在万宜水库东坝。今天的天气不错,气温 28 度,适合徒步。

的士可以直达这里,省时省力。

这片就是万宜水库,是香港储水量最大的水库。我还是第一次见到靠着海边的水库,也算是一大特色吧。

东坝有歇息的凉亭,也有洗手间。不少人在这里修整。

著名的破边洲,印在港币 500 元纸币上的景点,也是著名的网红打卡点,不少人会专门来这里拍照。沿着堤坝走过去,但是爬上去需要一定的功夫。

绕过头几座山头,看到第一个沙滩浪茄湾。

麦理浩径的指引牌,我们今天的起点也是一二段交界的位置。

从东坝出发约一个多小时,到达浪茄湾,这里有片小沙滩,岸边也有绿荫,不少人在这里歇息。这个枯木,也是一个网红打卡点,不少人在这里摆拍。

在浪茄湾没有停留多久,我们就继续出发了,正午十分,买了一瓶可乐,花了 $30 港币。

麦理浩径一路标记齐全,不用担心迷路。

我们是正午出发,温度虽然不高,但是一路爬坡,我和我弟只穿了普通的休闲衣物,没有带登山杖,还是挺费功夫。

今天这次徒步我也没有计划走完,就穿了普通的装备。背了一个小鹰的登山包,带了4瓶水。帽子、面罩、袖套也是必备,可惜忘了拿墨镜。

从西湾山顶看到的三湾。

今天徒步的人不少,大多都是内地过来的游客。

下午4点,已经徒步约四个小时,到达西湾,这里也是麦理浩径二段的中间点。有个小村庄,也有商店,不少人会在这里坐船或者坐车结束行程。

我和我弟看时间尚早,准备继续走一段到后面的咸田湾。

下面就是我们今天的目的地。

海边的礁石。

过了西湾之后,徒步的人就少了很多了。不同于登西湾山颇费体力,这段路就比较平坦,轻微起伏。远处的大洲和尖洲,香港本地称作史努比岛。。

到达咸田湾,这里也有一些民居,今天也很累了,就在这里乘船回西贡码头,结束了今天的徒步行程。

由于没有码头,需要涉水登船,船票 $160 港币/人。 快艇速度很快,今天风浪不大,沿着海岸线一路向西,也能看到不少沿岸风光。 恰逢傍晚,一天登山劳累,吹着海风,看着夕阳,也算是不错的体验。

轨迹 ​

从早上9点30从家出发,到晚上8点半回家,实际徒步约 4 个半小时,坐船 1 个小时。

麦理浩径的确是不错的徒步线路,准备下个月同老婆再来走一趟。

2024 桌面升级: BenQ RD280U - 为程序员打造的显示器

对于程序员这个群体来说,使用最多的设备,除了键盘,就是显示器了;前者是用来输出和创作,后者则是每天长时间的观看和阅读。

不管是在 V2EX 还是 B 站,在程序员这个群体的外设话题中,问得最多的话题就是「用什么键盘」或者「用什么显示器」。

我是一个程序员,回想我拥有的数码和外设产品,除了一把 2017 年老婆送的 HHKB 键盘,基本没有什么产品号称「为程序员打造」的外设。

对于键盘,经过这几年国内外各种品牌和配件厂商极其夸张的内卷和竞争,从成品到客制化键盘,不管是阵列、轴体还是键帽,每个程序员都可以找到合适自己的键盘。我自己目前主力使用的键盘分别是一把经过 YDKB 无线套件改装的 HHKB Pro 2,另外一把是同样 HHKB 配列 60键的客制化键盘 Qwerty 60

这两把键盘,陪我走过了职场的大多时光,写下了无数代码,也敲下了许多文字。

对于显示器,我现在家中有三台显示器,构成了我的办公桌和工作台。上面这张图,也是过去这几年我的办公桌的变迁。两台 LG,一台 Dell,都是 27英寸 4K 显示器。

对于互联网行业用户来说,如果你的职位是设计师,还有专门的「设计显示器」,强调色域和色准,之前在公司曾经负责过给设计师采购显示器,也稍微了解了一下这个领域。

但是对于程序员来说,可做的选择基本只是在 1920x10802560x14403840x2160 这三个分辨率中,选择一款合适价格的型号罢了。

直到上个月,我第一次知道这台号称「专门为程序员打造的显示器」,截至今天,也已经使用了将近一个月的时间。

开箱 ​

这还是我第一次使用 BenQ 的显示器,纸盒收纳,外观上印着 Ultimate Coding Productivity 「终极编码效率」的字样。

正面的设计,一台笔记本,一个横向正屏,一个竖向副屏,恰好也是我现在自己桌面的组合。

从纸盒下方卡扣打开包装,显示器的支架和底座放在外层。纸盒内部也印有如何打开包装和指引。

见到显示器的第一眼,这是一台28英寸的显示器,加上走的专业路线,非轻薄向,看着分量不轻。

随机附送了一根电源线,一根 HDMI 线,一根 DP 线,一根 USB Type-C线,还有一根 USB-B 线。

底座十分宽大,常见的银灰色的配色,支架支持上下移动和旋转。

支架背后有一个皮质的线材收纳扣,可以将电源和数据线材穿过去。

外观 ​

在放到办公桌之前,先来张背影照片。背后采用纹理凹凸设计,看着比较有质感,但是有预期的是,后续需要注意灰尘和清洁。

BenQ RD280U 背后有一个亮点,圆环其实是一圈可调节的背光灯,被称作Moonhalo

背面的接口,有一个 DP 接口,一个 HDMI 接口,两个全功能 Type-C,一个 USB-B。其中 Type-C 支持 90W 充电,大多情况下满足我的 MBP 的充电需求,我的 MBP 是 M2 Max,但是从来没触发过极限功率,之前 LG 和 Dell 的显示器也都是 90W 充电。

显示器背后的防盗锁孔,又称肯辛顿 Kensington 锁孔,在办公向的笔记本电脑中也常见(这个我也是查 ChatGPT 才知道的知识)。看得出 RD280U 也是有着商务办公的定位。

尺寸 ​

搬到电视柜上,与我家 75 英寸和 16 英寸的 MacBook Pro 放到一起,比比大小。 BenQ RD280U 的3:2的显示比例还是一眼就能看出差异。

搬来我的 Dell U2720QM,我特意把屏幕的实际显示部分从底部对齐,可以看出两者物理上的差距。

设备 尺寸 分辨率 显示比例
BenQ RD280U 28.2 英寸 3840 × 2560 3:2
Dell U2720QM 27 英寸 3840 x 2160 16:9

通过计算可得出,理论上 RD280U 3840 × 2560 = 9,830,400 比传统的 27英寸 4K 显示器3840 x 2160 =8,294,400 会多显示 18.5% 的内容

BenQ RD280U 表明采用了雾面屏。在客厅拍摄这张时候,正是正午,阳台的阳光很强,拍这张照片的时候,发现两个显示器对于反光的处理十分明显。

如果你的办公室的工位敲好靠近窗户,一定能感受到这种抗反光的好处。会想到之前在公司上班的时候,由于我的工位靠近窗户,每天早上到工位的第一件事情就是拉下窗帘,要不白天压根看不清屏幕。

使用和编程体验 ​

接下来把 RD280U 搬到办公桌,又费了不少功夫,为了整理桌面的线材,还专门买了几个小配件改装办公桌。

下面再分享一下使用过程中的一些记录。

BenQ RD280U 支持 VESA 支架,但是我暂时还是先使用自带的支架。

支架除了支持上下110mm的纵向调节,也支持前后正5度到负20度的调节,我的桌子不是电动升降桌,对于我来说垂直就可以了。

还是第一次用上3840x2560这个分辨率, macOS 上我缩放到2560x1707,与我之前使用 27 英寸显示器对应2560x1440的分辨率统一。

如果使用 Type-C 或者 DP 线连接,可以达到 4K 60帧的刷新率,但是如果使用 HDMI 线,则只有 4K 50帧,询问客服说是 HDMI 标准的限制。

使用 Type-C 连接 Macbook Pro,提示是通过 USB3.2 连接,我的 MBP 有三个雷电,分别接上两个显示器刚好。

作为一个编程显示器,除了规格上的特殊,软件上也做了许多的特殊适配,打开 OSD 调节面板,我第一次见到这么多选项的显示器。

显示器正面的 Logo 下方,是一块触摸键,支持自定义触摸切换到指定的模式。

RD280U 这台显示器对于编程场景时有做场景优化,尤其是对于暗夜模式亮色字体时这种反差较大的场景,会通过增加背景对代码的对比度,增强代码的显示效果,我在白天室内拍了一张照片,正面和侧边的视角都有,可以看出不同的显示器,同样 VSCode 显示的内容,RD280U 的更黑点,字体反差效果也更明显。

夜间效果 ​

不同的程序员有自己不同的配色偏好,有些人喜欢亮色主题,有些人喜欢暗夜主题,使用 IDE 终端,人眼在白天和晚上,对于亮色和暗色模式的显示感知差异很大。RD280U 允许切换不同的主题模式。

同时 RD280U 有一个 EyeCare 猫头鹰模式,通过固件调整亮度,提供调整到极低的亮度与色彩平衡方案。

开启猫头鹰模式,显示器面板上会亮起一盏小小的猫头鹰灯。

接下来也是 RD280U 的亮点 MoonHalo,支持 270° 和 360° 的照明,也支持 7 档亮度和色温调节,从暗到亮,从暖到冷。

照片就是我的书房,关掉了所有的灯,使用固定的光圈和 ISO 拍摄的照片。 之前我的另外一台显示器使用的是屏幕挂灯的解决方案,相比一下 MoonHalo 这种在背后的补光方案,更加适合程序员这种不需要太多光线的工作环境。

深夜时分,如果还想敲代码,开启 Moonhalo,只让自己的工作台有一点点的灯光,就可以通过增加环境光,缓和屏幕直射光对眼睛的刺激,在营造沉浸的工作氛围的同时,缓解眼睛的疲劳。

桌面控制 ​

除了支持通过物理或者触摸按键调节显示器。BenQ RD280U 还可以通过 BenQ 的 Display Pilot 2 软件控制显示器。

OSD 上所有的功能开关,模式,均可以通过软件控制,也可以通过软件自定义配置文件,一键切换。

对于开发者来说就十分方便了,可以直接通过 UI 切换模式、调整屏幕亮度、调节灯光等等。

更多 ​

最后为了更直观展示 RD280U 的特殊,我又把办公桌重新布置了一下,与 Dell 组了个双屏。一个28寸、一个27寸的屏幕并排放到桌面上,一下子觉得眼睛看不下来。一般而言会组成有弧度的排列,这里我并排展示,是为了更好展示两者的差异,非最佳的工作角度。

两台显示器采用左右布局,分辨率分别缩放到 2560x17072560x1440 的分辨率,这样让两台显示器在视觉上保持一致。

两个屏幕同时打卡哔哩哔哩首页,可以看到 RD280U 展现的内容多了整整一行。

两个屏幕同时左右分屏,打开 V2EX 和 Chiphell,也可以看到 RD280U 展现的内容更多,3:2在这种日常资讯浏览的情况下,确实有优势。

再来到一个程序员常见的开发常见,一遍开着浏览器预览开发页面,另外一边开着 VSCode,也可以看到 RD280U 展现的内容更多。

但是屏幕大是有大的好处,也会有一个尴尬,如果你用 RD280U 想看看视频,尤其实在白天全屏看视频,你就会发现上下的黑边就特别明显了。

还有一点就是 Xbox 和 AppleTV 均无法使用正确比例的分辨率,如果你外接 Xbox 或者 ATV,会尴尬发现显示的内容都变形了,看来对于这种特殊比例的显示器,还是要看看设备的支持情况。

总结 ​

这款显示器是一款定位十分明确的产品,专门为程序员打造,而程序员的需求相对就简单多了: 看得多而清楚,看得久而不累

市面上之前并没有这么专属职业属性消费级显示器产品,相比传统的 LG 和 Dell 同级别显示器,也并没有贵多少。

最近半年,我开始居家办公,每天绝大多数时间都是在自己的书房 Coding,不出意外的话,我会继续使用 BenQ RD280U,作为我的主力显示器。

显示器太多,眼睛有点不够用了。现在倒考虑重新部署下办公桌,考虑 DIY 一张超长的光轴木桌,再重新布置下工作台。

大家如果对于这块有什么建议,也可以给点建议聊聊。

日本旅行 2024: 东京晨跑・镰仓

五月的时候,同老婆又去了一趟日本,过去这几个月,诸多事务,也是在今天这个时间,终于有时间写完这篇游记。

距离上一次去日本,已经过去 7 年,2016年,我和老婆第一次去日本,逛了逛东京和仙台;2017年的元旦,与老婆在大阪又跨了一个年。从中扣除那如同时间按下了暂停键般的疫情 3 年,我的心理时钟似乎也只感受到了 4 年的流逝。

自从 2021 年我重新上班之后,我和老婆已经很久没出远门旅行了。这次去日本,目的地很明确,行程上也没有什么其他安排,纯粹就是给自己和老婆,安排一场放松的旅途。

与我们以往那些充满了奔波劳顿的出行不同,这次我们只安排了五天四晚的东京行程,五天只去了东京和镰仓两地。

行程 ​

日期 行程
DAY1 深圳・东京成田机场
DAY2 皇宫晨跑・上野公园・东京国立博物馆・国立西洋美术馆・浅草寺
DAY3 东京车站・镰仓高校前・江之岛
DAY4 东京大学晨跑・明治神宫・代代木公园・涩谷
DAY5 东京铁塔・麻布台之丘・深圳

在日本的四晚,我们都选了东京的同一家酒店,也是 2016 年我们在东京住过的酒店,也算是重温一下当年的回忆。

DAY1: 深圳・东京成田机场 ​

很久没来深圳机场了,这次从深圳直飞东京,深圳航空,票价倒尚好,两人来回 4K 多。

这次我们的行李很少,只带了两个登机箱,一个背包。航班出发时间是中午,时间不赶。

这次的航程图,到了后程靠着日本海岸线飞行,倒也可以在空中看到不少沿岸风景。

到底东京接近下午 5 点,又一次看到东京的海岸线。

在飞机上看到一座小铁塔。

伴随这落日,落地东京成田机场。

廊桥前往海关的路上,见到看似熟悉的欢迎标识。这一次入关很快,全程电子登记,也不用排队,在机场看到不少东南亚裔工作人员,看来这些年日本的外劳政策效果还是挺明显的。

过了海关,坐快线前往市区,从成田到市区有很多交通方式,指引也很清晰。

换乘之后,终于到达预定的酒店,这也是我们第二次入住,酒店名叫「东京庭之酒店」,位于水道桥站站附近,离东京巨蛋和东京大学很近。房间不大,但是设施齐全,酒店内的环境也不错。

DAY2: 皇宫晨跑 ​

第二天我很早就起床了,开启这次东京之行的独享时光。这次来东京,我专门带了跑鞋和运动衣物,就是打算在东京跑跑步。5月早上的温度很合适,不热不冷,今天的天气也很好。

今天准备去皇宫跑一圈,从酒店慢跑过去,只有几公里,路上穿过早上的居民区。

到达皇居外围的竹桥。从这里开始一路,就可以沿着皇居绕圈了,这也是许多跑步爱好者的经典线路。

皇居外围有护城河,也有专门的步道,一路遇到不少跑者。

一路慢慢悠悠,三公里不到,即将进去皇居。

到达皇居外苑,铺满细沙这里行人比较多,道路窄,如果要进去就禁止跑步了。

人很少,加上天气不错,这次过来跑步,也是很舒服。

环绕皇居只需 5 公里左右,对于我这种跑马拉松的人来说,连热身都不算,所以后面我就慢慢走了。皇居有不少门,有警察把守。

早8点,轻轻松松跑完一圈,完成一环,解锁村上春树同款跑步线路。

接下来慢慢悠悠走回酒店,路上上班的人也变多起来。

DAY2: 国立博物馆・西洋美术馆 ​

在东京的第二天,第一个白天的行程,只安排了博物馆。先来上野公园,先去东京国立博物馆,公园有好几个博物馆。 路过国立科学博物馆。

国立科学博物馆看着也有些年头,门口有一个好大的蓝鲸雕塑。

穿过公园,来到北面的国立博物馆。

门口的小亭子买票,成人 1000日元/人,约合人民币 50 元。

国立博物馆有几栋建筑,首先去本馆参观。

本馆建立于 1938 年,属于西洋风格,进入本馆后有楼梯直通二楼。今天也有不少学生在这里参观。

同大多数博物馆一样,基本也是按照时间线,分不同小区展示,中日文化一脉相承,日本的古代文化基本就是中国文化的传承和演绎,在国内我东西南北也看了不少国家级博物馆,对于日本博物馆的藏品,倒也没有什么感觉特别惊艳的地方。但是既然来了,还是慢慢悠悠逛了两个小时。

即将离开本馆,在墙上看到一排海报,之前有段时间,有学习和了解过一些设计和排版相关的知识,日本的设计美学排版,可以说也是影响了不少人。实事求是的说,虽说这些年国内的设计水平逐步上升,但是在美学和设计上,中日的差距还是显而易见的,尤其是日常生活的一些诸如字体、招牌、标语、海报的设计。

审美这玩意,尤其是我们普通民众对审美的认知,如同「素质」一样,非一日之功,都是需要几代人的基本教育和传承,才能养成的。

逛完本馆,又去了东洋馆,东洋馆主要展示亚洲各国的文物,当然其中重头部分也是我们中国的流失文物。一入馆,首先看到的就是我们的佛像。

菩萨立像・ 北齐时代・天保3年(552)・山西长子县

观音菩萨立像・隋代・开皇5年(585)・河北省崇光寺

除了中国的展品,也有来自印度、伊朗、东南亚等国的文物,最近黑神话悟空大火,里面不少场景取景中国传统佛道场景,当时我在博物馆东亚馆里看到这些佛像的时候,心中除了「遗憾」,也感受到了这种人类文明和文化共通的魅力。

幽暗的展厅,配合打光,这些佛像的面貌,承载着历史,也传递着人类文明中对于信仰、精神和美的追求。经历千年战火,依旧给站前面前的参观者,带来一种安静和庄严。

中午时分,参观完两个馆,也准备出去吃饭了。5 月虽然已经过了樱花季,但是天气还是舒服。馆外的座椅上,有游客在晒着太阳休息。

国立博物馆北侧有一个庭园,有日式传统的建筑,不大,推荐也可以绕着走一圈即可。

庭园植被茂密,现在即将入夏,一片翠绿,如果是秋冬过来,应该会是另外一番景象。生活在南方久了,尤其是广东基本没有四季之分,有时候跟老婆倒想去北方体验一下四季变化。

逛完国立博物馆,已经是中午时分,准备出去吃饭。

上野公园东侧有一条商业街,有不少餐馆,可能已经过了饭点,街上人并不是太多。

走到台东的一条步行街,里面很多商铺。我们在里面吃了一家拉面,味道还不错,服务的阿姨也很热情,看到我们是外国人,还特意用翻译软件跟我们确认拉面的配料。这也是在日本大多时候体验很舒服的地方,来日本三次,也去了几个城市,整体的感受都很舒服。

吃完饭,继续下午的行程,上野站附近多旅游景点,人还挺多的。

继续参观国立西洋美术馆,美术馆也是位于上野公园内,在上野动物园对面,勒·柯布西耶设计,建于 1959 年,专门收藏西洋美术作品。

美术馆不大,收藏了不少名家作品,对于我们一般民众而言,可能也就看看莫纳之类的名家作品。如果对艺术不太感兴趣,可能会觉得有点乏味,我和老婆独自在馆内各逛各的,倒也逛了一个多小时。

毕加索的作品「男人和女人」。

2019 跨年去了一趟纽约,在 MOMA 现代艺术博物馆和大都会博物馆,也看到了许多名家作品。

这次在东京,再次见到这些名家作品,也是感受下艺术跨越国界的魅力。

逛完美术馆,时间尚早,准备再去浅草寺逛逛。

东京轨道系统世界文明,在地铁站内看到一条之前的铁轨。

浅草寺应该属于那种名片性质的旅游景点,商业化成熟,对于我来说,就是一个打卡的性质。人很多,国际游客应该都会来这逛逛。

对于拥有北京、西安一众古城的中国游客来说,应该对这个寺庙不会有太多感觉。 民俗项目观音签,老婆也去抽了一张,是个吉签。

在浅草寺呆了一小会,看时间也不早了,今天走了一天也挺累,准备回酒店休息了。

在路中央看到一个贴满贴纸的路牌。

DAY3: 镰仓 ​

东京的第三天,今天去镰仓。去镰仓要在东京站转车,上次来东京的时候,也是在这个地方,给老婆拍了一张照片。2016 和 2024 年,同一个地方,8 年时光。

今天也是一个好天气,老婆也很开心。

坐了近一个小时的JR,到达镰仓,出了镰仓站,接下来就是换乘电车,去海边。

买了一张一日通票,有这张票就可以在一天的时间内任意次数乘坐电车,肯定划算。

出现在无数人游记中的电车,这也是来镰仓必须体验的交通工具。

来到海边,我和老婆决定开始漫步一段。今天天气真棒,风也很大。

海边的小屋,有点欧式风格。看着十分干净。

走了没几步,我和老婆都不由惊喜,远远地就望到了海那边的富士山,这也是我两第一次见到富士山。

这次旅行,轻装上阵,只带了索尼 A7 搭配腾龙2870的变焦头,远远拍一张富士山,镰仓海边多云雾,我们也算是运气好,能看到这么清晰的富士山。

唯一有点遗憾的是,今天风太大了,吹得老婆的头发乱漂,不好拍照。

过马路的游客,就像漫画一样。

海边的路牌。

海滩上也有不少的游客,海浪挺大。

第一次见到马自达这个车。

除了自驾,海边也有不少人骑摩托和自行车,说到这还是挺羡慕的,国内禁摩的地方太多了。

来到著名的镰仓高校前车站,也是很多游客必去的地方。

等到电车靠近,给老婆抓拍一张。

海边的7-11,应该也是一个著名的打卡点。

见到 MX-5,在这种天气、这种地方开,真爽。

路过一个路口,刚好看到骑行的人和路人同框,抓拍一张。

临近中午,肚子也饿了,找了一家路边的餐厅,吃饭。

我和老婆点了两份主食、薯条、炸鸡,配上两杯饮料,算下来224人民币,价格还算 OK。 吃完饭出来,接下来步行前往江之岛。

马路对面的一家餐厅和排队的人,店门面的配色看起来很舒服。

江之岛一个靠近镰仓的一个近岸离岛,也是一个著名的旅游景点,有不少游客。

从堤坝去往江之岛的路上,见到另一头钓鱼的人,下午了,远处也起云雾,富士山开始变得模糊,回想今早能看到那么清晰的富士山,还是觉幸运。

来到江之岛上,密密麻麻的人潮攒动。

岛上有山,可以步梯登山,岛上有寺庙。

来到山顶,有一片小花园,看到一颗掉了叶子的树。

江之岛不大,绕一圈,见到海边的礁石,上面还有人在那摄影。

山腰上的饭店。

在江之岛逛了一圈,又步行回来镰仓海边,和老婆坐电车一趟往返,刚好休息。

从车站下车,又来到海边,海边的一座桥。

风很大,海浪波涛汹涌。和老婆在海边的堤岸上又坐了一阵,温度不错,风吹起来也并不冷。

海边的售卖机,阳光从缝隙中穿过。

即将落日,海边也被暖色的夕阳笼罩。今天的镰仓之行,十分轻松,好久没有这么惬意了。

DAY4 东大晨跑・明治神宫 ​

第四天,开始我在东京的第二次晨跑,今天的路线是东京大学和上野公园。依旧早起,向北跑向东京大学。

上一次来东京时,曾经和老婆在夜晚来过东京大学,但是由于晚上关门,并没有进去参观,这次晨跑也算是补上上次的遗憾。这个红色的大门就是「赤门」,建于 1827 年。

来到上次止步的东京大学正门,这次开放了,无人看守,我也就直接跑了进去。

进门的林荫道,郁郁葱葱。

林荫道尽头,是东京大学安田讲堂,也是东大的地标之一。

东京大学是日本的最高学府,成立于 1877 年,地位等同于中国的清华北大。东大现在全球大学 QS 排名 30多,已经落后北大和清华。

跑步穿过东大,没多远就又到了上野公园,早晨的上野公园,空空荡荡。

上野恩赐南部公园中的「不忍池」。

继续往北跑,来到博物馆门口的广场。见到不少晨练的人。

从上野公园出来,又往秋叶原跑了一转,算是结束了这次晨跑。

今天的行程是明治神宫,其实我对这个地方也没啥兴趣,但是这次旅行,本身也就是没啥目的的放松之行,所以倒也没什么所谓。今天的游客很多。明治神宫位于涩谷区,建于1915年至1920年,二战时被焚,1958年按原样重建,靠近新宿和原宿,绿树成荫。

这里的明治,也是我们熟知的「明治维新」那个「明治天皇」。中日近代都经历过类似的社会变革,可惜两国后面一个世纪的命运,走向却是截然不同的。

看到一个通行禁止的牌子。

来到一处牌匾处,我对日本近代文化不是特别感兴趣,所以也仅仅是抱着参观的态度。

来到明治神宫正殿,左右两侧各有一颗圆形的神木,被称作「夫妇楠」,象征着明治天皇和昭宪皇后的深厚感情。

刚好碰到在明治神宫举办日本传统婚礼的新人,普通人也可以申请,看数据说每年有 1300 多人在这里举办婚礼。

院内的树木,不愧被称作「都会中的森林」。

参观完正殿,我和老婆就步行前往下一个目的地代代木公园,中途路过一个挂满灯笼的墙,看了下好像都是酒的品牌。

走到神宫北面的一处草地。如果居住在周围,在这里散步的确是一种享受。

从明治神宫步行,绕了半个多小时,来到南面紧邻的「代代木公园」,这里也是东京市民热门的公园之一。其中的狗狗公园也算一个特色。

公园中写生的老人。

虽然已经过了花季,公园中的花朵依旧茂盛。

恰好碰到举办「泰国节」 Thai Festival,有很多东南亚国家的美食,也看到很多东南亚裔的人,这些年日本逐步放开移民,吸引了不少东南亚外劳。

由于泰国节人太多了,我和老婆并没有停留太久,步行前往涩谷。在代代木公园另一个大门口的广场,见到不少跳舞的人。

干净的街道,这也是我喜欢东京的原因之一。

涩谷号称现代日本的文化中心,年轻人的聚集地。果然人多。

在一条巷子里,见到了蜜雪冰城,看到时笑了,前几天王思聪逛街,也在这里被人拍到。

从涩谷逛完,我和老婆去秋叶原吃鳗鱼饭,正在吃饭的时候,突然收到郭宇发来的信息,问我还在不在东京。

本来这次东京行有约他,但是之前安排的行程,我来东京的时间,他刚好在意大利了,所以没能见上一面。没想到后来我的机票改签,延后了几天,他也刚好在今天回到东京,所以就约了晚上聚一聚。

郭宇是我的学长,也是改变了我人生轨迹的一个人,有关他,和我和他的经历,之前曾经写过一篇文章:

去年在深圳有聚过一次,我和老婆与她的相聚,则是 6 年前的大阪。如今在他东京的豪宅再相聚,天南地北聊了不少。就是这次太赶了,没能蹭上他一顿饭。

也不早了,想着他刚回国,也不打扰他休息,郭宇很热情开车送我们回了酒店,也是第一次体验首都高逮虾户。

DAY5:东京铁塔 ​

在东京的最后一天,晚上的航班回国,今天的安排也很轻松,就是去东京铁塔打个卡。

在酒店收拾完行李寄存,坐地铁来到东京铁塔。可惜今天天公不作美,下起了雨,但是想一想前几天都是好天气,最后一天下下雨,也算是给我们体验一下不一样的东京。

七年前来到东京,在晚上看到一次东京铁塔,这次雨天再来看看。给老婆拍个打卡照。

东京铁塔建于 1958 年,高332.9米,比巴黎艾菲尔铁塔还高 8 米,是日本第二高的结构物,仅次于东京晴空塔。是日本的象征之一,也是东京的地标之一。

距离东京铁塔,有一个「麻布台之丘」的新建观景台,2023年11月开幕,顶楼有一处室内观景台和咖啡厅,能直接看到东京铁塔,目测会是以后又一网红打卡地。

也在这里,给老婆拍了一张照片,也算是这次东京之行的结束。

归程 ​

雨中拖着行李,坐 JR 到了成田机场,时间尚早,在机场星巴克买了杯咖啡,等待登机。

花了两天时间,终于还是写完了这篇游记。

上一次去日本,还是青年,这次再来,已是中年。过去这几年,世界,家庭,包括自己,都发生了诸多变化。成家了,创过业,又回去工作几年,可谓也是踉踉跄跄。

时光匆匆,有时候还挺幸运自己过去一直「记录」和「分享」的习惯,回看过去旅行的点点滴滴,时不时也能找回一些过往的幸福和温馨。

补上这篇游记,也是对未来自己的一种交代,希望再过 5 年,再过 10 年,再过 20 年,再回看这些文字和照片,依旧能感受到生命中的点滴美好。

一起『骑』迹 | 户外骑行QQ超级交流群

一起『骑』迹     / 分类: 户外、骑行、旅游

QQ 群号: 125710280

「入藏线、环岛线、海岸线、国境线、内地骑行经验分享交流,老人答疑,组队约伴……」提供一个平台,给热爱自然、户外、骑行的朋友们交流。

入群申请暗号:数字「17」,谐音「一起」「要骑」

不知道是最近哪天 QQ 升级到 vip6,把原先的骑行高级群升级到了超级群,现在群可以添加 500 人(另外还有一个超级群名额,等这个群满了,再公开新群)。

提示:为了避免广告骚扰,入群验证一律请打暗号数字「17」,否则一律拒绝。

群里不少骑友已经走过川藏线,可以进来向他们取经请教哦。大家也可以侃大山、扯八卦、吹水,天下骑友是一家,不定期举行线下聚会。

欢迎你的加入。

2014网易前端开发笔试题笔记

9月22日晚收到网易笔试通知,提示欢迎参加23号广州地区校招,详情笔试地点请等详细通知,结果一直到23日下午4点半,距离笔试开始只有2个半小时,才收到笔试地点的邮件和短信,这蛋疼得,于是赶在下班高峰期,赶往大学城华工。又是华工,看来各大企业都很偏爱大学城华工啊。投的岗位是杭州研发院的前端开发。

半路上买了一个麦当劳套餐,下地铁,换了三次站,在六点半终于赶到了大学城。A4教学楼,考场在2楼的一间教室,教室门口贴着一张笔试名单:一张半纸。前端开发的大概20个,运维的、产品的也都在一张纸上,总共大概100多人,哥惊讶发现自己排在第一(座位号),大部分笔试者是华工、中大、广外的,暨大的我只见到3个(百年侨校情何以堪),另外见到一个西安电子科技大学,一个香港中文、一个深大的。广州其他学校的几个学校的同学基本没有,看情况网易这次笔试是直接设了学历槛,不知道有没有了解情况的朋友?当然,广州这边的考生一般也不怎么想出省也是一个原因,网易游戏倒是广州的,可能那个会比较多人吧。

现场还有不少来霸笔的,感觉比正常笔试的还多,工作人员让正常笔试的排一队,霸笔的在另一边再排一队。跟在场的其他同学随便扯了扯,然后拿出手机开 Evernote 看了一下以前整理的前端相关的一些笔记,7点就进考场了,监控的人员胸口挂了一个「智联招聘」的牌子,敢情网易把这个笔试是直接外包了。笔试者按照座位号入座,霸笔的被工作人员领到了其他地方。发试卷了,一张答题卡,一套试卷。这个答题卡,就上面一个「个人信息栏」,下面就是空白,意味着,所有的选择题、填空题、编程题,都要你自己写,如果答题卡不够,可以再要。下面来说说考题。

考什么 ​

总共有两大部分,第一部分为计算机科学基础题,所有技术岗的笔试者都要答。第二部分为「专业题」,根据所报岗位不同而分别出题。

第一部分:计算机科学基础题 ​

表示试卷发下来,我就傻眼了,前面12道选择题+3道填空题,属于所有技术岗位都必须考的计算机专业基础题。 由于我不是计算机专业的,不少计算机科学很理论化的知识的确是不了解,刚刚搜到CSDN 已经有人放出了前面的一部分,自己也就先 COPY 过来吧,解析部分为自己整理,若出错,请指正。

1.(2分)对于多关键字而言,那种文件组织方便而又高效() A、顺序文件 B、倒排文件 C、散列文件 D、B+树索引文件

解析:答案 B。

文件在外存上的基本的组织方式有四种:顺序组织,索引组织,散列组织和链组织;对应的的文件名称分别为:顺序文件、索引文件、散列文件和多关键字文件。选择哪一种文件组织方式,取决于对文件中记录的使用方式和频繁程度、存取要求、外存的性质和容量。 多关键字文件:包含有多个次关键字索引的文件称为多关键字文件。 倒排表的主要优点是:在处理复杂的多关键字查询时,可在倒排表中先完成查询的交、并等逻辑运算,得到结果后再对记录进行存取。这样不必对每个记录随机存取,把对记录的查询转换为地址集合的运算,从而提高查找速度。

2.(2分)以下哪些算法可用于遍历网络图() A、广度优先搜索 B、深度优先搜索 C、线性规划策略 D、决策树

解析:答案 A、B。

广度优先搜索假设从图中某个顶点v出发,在访问了v之后依次访问v的各个未曾访问过的邻接点,然后再分别从这些邻接点出发依次访问它们的邻接点,并使先被访问的顶点的邻接点先于后被访问的顶点的邻接点被访问(因此需要用队列来存储顶点),直到图中所有已被访问的顶点的邻接点都被访问为止。如果此时图中还有未被访问的顶点,则另选图中未被访问的顶点作为起点,重复上述过程,直到图中所有顶点都被访问为止。

深度优先搜索法是树的先根遍历的推广,它的基本思想是:从图G的某个顶点v0出发,访问v0,然后选择一个与v0相邻且没被访问过的顶点vi访问,再从vi出发选择一个与vi相邻且未被访问的顶点vj进行访问,依次继续。如果当前被访问过的顶点的所有邻接顶点都已被访问,则退回到已被访问的顶点序列中最后一个拥有未被访问的相邻顶点的顶点w,从w出发按同样的方法向前遍历,直到图中所有顶点都被访问。

3.(2分)我们使用一个6元组<a,b,c,d,e,f>来表示6个节点的无向图的顶点数,请问以下哪些6元组是可能的组合() A、<1,2,3,4,5,6> B、<2,4,4,2,3,5> C、<1,3,4,2,2,1> D、<1,2,2,4,5,2>

解析:

无向图:一个无向图(undirected graph)是一个二元组<V,E>,其中:1.V是非空集合,称为顶点集。2.E是V中元素构成的无序二元组的集合,称为边集。

若一个图中每条边都是无方向的,则称为无向图。 若G是无向图,则0≤e≤n(n-1)/2

4.(2分)以下关于可计算性的说法正确的是() A、 所有问题最终都可以抽象为一个计算模型,图灵机可以在一个有限的时间(虽然可能会占用非常久的时间)内完成计算:现代计算机的设计正是基于该理论。 B、 存在部分问题,我们无法在有限时间内,给出解答:但是,所有问题都可以在有限时间内验证其解答的正确性。 C、 Godel(哥德尔)第一定律指明不存在完备且相容的公理系统。 D、 以上说法都不正确。

5.(2分)16进制数值C396和8进制数值64474的异或结果值(10进制)为() A、43690 B、16660 C、60350 D、20375

解析:

异或:Exclusive OR(异-或运算、模2和),异或(xor)是一个数学运算符。它应用于逻辑运算。异或符号为“^”。真异或假的结果是真,假异或真的结果也是真,真异或真的结果是假,假异或假的结果是假。就是说两个值不相同,则异或结果为真。反之,为假。 不同为1,相同为0.

若x是二进制数0101,y是二进制数1011,则x^y=1110。 只有在两个比较的位不同时其结果是1,否则结果为0 即“相同为0,不同为1”!

6.(2分)以下经典的问题哪些属于NP问题() A、图灵停机问题 B、排序 C、0,1背包问题 D、枚举有限集合的所有子集

7.(2分)存在以下字母串:AGDCCDDDGFBBFFGGDDDGGGEFFDDCCCDDDFGAAA现在需要对该串进行Huffman编码,那么字母F对应bit值(二进制格式为)() A、10 B、11 C、110 D、101

解析:

//既然现在用电脑,就用 javascript 来解决一下如果数数的问题
var temp='AGDCCDDDGFBBFFGGDDDGGGEFFDDCCCDDDFGAAA';
var count=temp.match(/F/g); // 搜索整个字符串匹配字母 F
console.log(temp.length); //字符总长度为36
console.log(count.length);; //输出的结果应该是6

霍夫曼编码:(Huffman Coding)是一种编码方式,是一种用于无损数据压缩的熵编码(权编码)算法,该方法完全依据字符出现概率来构造异字头的平均长度最短的码字,有时称之为最佳编码。

HC 具体方法:先按出现的概率大小排队,把两个最小的概率相加,作为新的概率 和剩余的概率重新排队,再把最小的两个概率相加,再重新排队,直到最后变成1。每次相 加时都将“0”和“1”赋与相加的两个概率,读出时由该符号开始一直走到最后的“1”, 将路线上所遇到的“0”和“1”按最低位到最高位的顺序排好,就是该符号的霍夫曼编码。

9.(2分)进程管理如果设计不当将会导致“死锁”的产生,对待死锁,典型的银行家算法属于(1),而剥夺资源属于(2)的方法。 A、(1)=死锁预防,(2)=死锁避免 B、(1)=死锁预防,(2)=死锁解除 C、(1)=死锁避免,(2)=死锁预防 D、(1)=死锁避免,(2)=死锁解除

解析:答案B

死锁: 是指两个或两个以上的进程在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去。

系统产生死锁的四个必要条件: 1)互斥条件:指进程对所分配到的资源进行排它性使用,即在一段时间内某资源只由一个进程占用。如果此时还有其它进程请求资源,则请求者只能等待,直至占有资源的进程用毕释放。 2)请求和保持条件:指进程已经保持至少一个资源,但又提出了新的资源请求,而该资源已被其它进程占有,此时请求进程阻塞,但又对自己已获得的其它资源保持不放。 3)不剥夺条件:指进程已获得的资源,在未使用完之前,不能被剥夺,只能在使用完时由自己释放。 4)环路等待条件:指在发生死锁时,必然存在一个进程——资源的环形链,即进程集合{P0,P1,P2,···,Pn}中的P0正在等待一个P1占用的资源;P1正在等待P2占用的资源,……,Pn正在等待已被P0占用的资源。

银行家算法:我们可以把操作系统看作是银行家,操作系统管理的资源相当于银行家管理的资金,进程向操作系统请求分配资源相当于用户向银行家贷款。操作系统按照银行家制定的规则为进程分配资源,当进程首次申请资源时,要测试该进程对资源的最大需求量,如果系统现存的资源可以满足它的最大需求量则按当前的申请量分配资源,否则就推迟分配。当进程在执行中继续申请资源时,先测试该进程已占用的资源数与本次申请的资源数之和是否超过了该进程对资源的最大需求量。若超过则拒绝分配资源,若没有超过则再测试系统现存的资源能否满足该进程尚需的最大资源量,若能满足则按当前的申请量分配资源,否则也要推迟分配。

10.(2分)关于数据库索引,以下说法正确的是() A、针对某些字段建立索引,能够有小减少相关数据库表的磁盘空间占用; B、针对某些字段建立索引,能够有效的提升相关字段的读与写的效率; C、常见数据库管理系统,通常使用hash表来存储索引; D、数据库索引的存在,可能导致相关字段删除的效率降低;

第二部分:专业题(前端开发) &ZeroWidthSpace;

题型有1.不定项选择题 12道,2.填空题 5道左右 3.简答题 4.编程题 5道左右,偏重考察 javascript,编程题要求手写代码,其中包含 js 题目3道还是4道,一道给出三切换标签界面原型图,要求手写html+css+javascript实现原型图和交互效果。由于距离有一段时间了,详细的题目记不清楚了。就回忆一下几个知识点吧。

1.简答题:什么是闭包,闭包有什么用?请举例说明。

解析:Javascript中,函数内部可以读取全局变量,函数外部无法读取函数内部的局部变量。

function f1(){
    var n=1024;
    function f2(){
        console.log(n)
    }
    return f2();
}
var foo =f1();
foo();
//以上函数f2()就是闭包

闭包就是能够读取其他函数内部变量的函数。

2.填空题:apply 和 call 的用法和区别。

解析:

两者的作用都是将函数绑定倒另外一个对象上面去,两者仅仅在定义参数方式有所区别。

来自 MDN 的解释:NOTE: While the syntax of this function is almost identical to that of apply(), the fundamental difference is that call() accepts an argument list, while apply() accepts a single array of arguments.

  apply(thisArg,argArray);
  call(thisArg[,arg1,arg2…] ]);

3.bind 函数的兼容性

解析:

bind方法会创建一个新函数,称为绑定函数.当调用这个绑定函数时,绑定函数会以创建它时传入bind方法的第一个参数作为this,传入bind方法的第二个以及以后的参数加上绑定函数运行时本身的参数按照顺序作为原函数的参数来调用原函数.

fun.bind(thisArg[, arg1[, arg2[, ...]]])

4.参考给出的原型图和要求,手写 html,css和 js。

html
<iframe
  src="https://jsfiddle.net/foru17/cnvca/3/embedded/result,html,css,js"
  width="100%"
  height="300"
  frameborder="0"
  allowfullscreen="allowfullscreen"
></iframe>

年終卷 | 2014年我没干成什么

接着「罗磊啰嗦」,继续年终回顾,上一篇回顾写了《2014年我读了哪些书?》

这篇文章的题目叫「2014年我没干成什么」,写下这个题目的时候,有点给自己的「檄文」的味道,年终回顾,于平常情况,多是「这一年干成了什么」再带上一笔「下一年要干成什么」:找到工作了、升职了、加薪了、旅游了、GET到一个新技能了……

写自己没干成什么,说自己 fail 或者说作为 loser 的一面,于内心还是做了一阵小小的挣扎,人嘛,对负面评价总是特别敏感,这是写在基因里的进化需要。

后来再想一想,于人,其他人倒不会在乎「我」干成或者没干成什么,上次有个朋友私下问我「XX说我很自恋,你觉得我...自恋吗」,我当时正在忙着写读书总结,看到这段话,笑了,回了句「这是个复杂的话题(主要当时忙想着还没时间详细答这个问题),直接答案就是“不”,当然,要哥的尿性,一般这问题的答案是“呵呵”……(中间省略一下私密)……Live your life,let other people Bbbbbbbbb去,活得比你好,赚得比你多,男票比你牛逼,你管得着么....」

越大,这样的一个概念倒愈发体会真切:我走自己的路,跑自己的步,装自己的逼,于他人何关;其他人走他们的路,跑他们的步,装他们的逼,非吾之亲,关我鸟事。

这么想一想,倒豁然了,也无在乎写出自己没干什么有什么羞愧之处。下面,依旧啰嗦,依旧是可以从团结湖跳跃到西湖的罗磊啰嗦,意识流地写一写:2014年,我没干成什么。

没钱 &ZeroWidthSpace;

这一段是我写到一半补的,本来实在是不好意思写,但是写着写着发现许多问题归根到底还是钱,想着真正的勇士敢于面对惨淡的人生,还是先把这个写上吧。

钱这东西,一是关系到一个人的生活质量,二是关系到人际关系;这是一个不能忽视的问题。自己的财政和金钱管理,在2014年是一塌糊涂,现金流常常卡壳中断,信用卡屡次刷爆,各种债务,每个月陷入到挣钱、花钱、借钱、还钱、挣钱的尴尬循环。

对于钱,有个成语叫做开源节流;有一次,我朋友跟我说「你一个每个月挣XXX的,怎么活得像每个月挣3K的人」,当时还是挺羞愧的,

反思自己,这半年花钱的确是挺多和大手大脚,自己的收入水平对于应届生来说已经算可以了,可还是遇到这种经济状况,毋庸置疑是自己的原因。客观上来说,七月份之前,频繁往返京粤、日常的饮食都可谓不低;入职之后,一次性交了四个月房租,加上前面半年信用卡的债务,直接导致现金流中断。随后的几个月,对跑步上瘾,接连跑了秦皇岛马拉松、上海马拉松,又是额外的花销。

解决财务问题,方法也只有两条,一是开源,而是节流;过去了最初的三四个月,自己的现金流逐渐好转,在今年年内,主动解决掉所有的债务问题,是当务之急,要不自己花钱也的确是不好意思了。

没学日语 &ZeroWidthSpace;

学日语,是2014年自己的一个目标,从五月起,坚持了两个月,背完五十音图,写完两篇日语教程《日语学习入门 ひらがな 书写(壹)》《日语学习入门 ひらがな 书写(貳)》,随后,随着正式入职猎豹,工作开始繁忙,每天的通勤时间从原先的1个半小时变成半个小时候,原先在路上的通勤时间变成了早上在家里的赖床时间,结果就是,到了这年底十二月,连五十音图都开始忘记了。

要说为什么没学会这个,总结了下,一个没太大需求,二是乱;仔细回想下过去这半年多,生活中充斥着各种关键字,但是学习一门语言,至少入门一门语言,对自己而言还应该是不难的。没投入时间在这个上面,归根结底的原因是因为没太大的需求,平时的生活中基本不可能用到日语,自己也不是对日漫、日剧的狂热粉丝,无爱,因此也无精力投入,时间也就这么让步给其他诸如代码、读书、健身之类更加能给自己带来明显的效果和收益的行为上面去了。

说到学习一门语言,扎克伯克的经验值得自己借鉴,一个人在人生的不同阶段,有不同的重心,哪怕娶了中国老婆,哪怕婆婆不会讲英文只会讲中文,也应该分清楚任务的优先级和轻重,扎克伯格创业的时候投入到工作之中,也是等到Facebook做强做大了,自己真正实现财务和职务双自由了,才开始学习中文。

没学剑道 &ZeroWidthSpace;

2014年初的时候,就跟哥们说,今年要去学日本剑道,去年开始工作后,开始要处理钱、时间、生活相关的种种琐事。整个人心态一个字就是「乱」,偶尔有一次看到日本剑道的视频,刚好北京这边剑道馆有几家,在七月的一个时间还特意预约了剑道参观,本来打算每个星期能抽出一天时间去剑道馆呆呆,一来可以装逼得瑟下,二来可以专门给自己强行安排一个(花钱)的时间静一静,调整下心态,后来没去,一个还是学费太贵,一次性6K+的学费,对于七月才正式入职拿正式工资的我来说,还是压力太大。

归根到底,没学剑道,还是因为穷。

没翻译几篇文章 &ZeroWidthSpace;

回顾2014年,我总共写了26篇博客,其中与我的职业和互联网相关的文章写了有七篇:

共七篇文章,其中《Web开发者和设计师必须要知道的 iOS 8 十个变化》, 《谷歌I/O 2014:移动端网页优化建议》两篇译文在业内传播开,被几个业内社区转载或者推荐,也算是造福了下其他开发者。

总的来说,还是产出太少,尤其是下半年,除掉毕业季五六月,入职的七八月,这九月到十二月,月均一篇文章的数量,和月均不到一篇是干货有质量文章的数量,这水平,还是可以反映很多问题。

第一,当然就是自己的时间还是没投入太多到自己的职业和行业之中,从大一的时候开始阅读国内外资讯,大二之后开始大量阅读国外英文资讯,大四的时候开始尝试翻译,对于自己来说,这本来是一个很好的学习和营造影响力的习惯。

可是自己的效率之低,值得自己警醒和反思。前几年开始精简自己的信息流,现在的阅读主要就是订阅的国外专业博客,还是收获挺多的,Facebook的设计总监Julie Zhu在Medium和社区上十分活跃,一年发表和分享了十几篇关于设计和交互的有质量的干货,自己应该尝试更多地进行原创性的工作思考和分享,仅仅是翻译是不够的。

没做几个Side Project &ZeroWidthSpace;

这个接承上面,这一年,加入猎豹以来,刚数了数印象笔记和Dropbox的放代码的文件夹,做了大概有二十来个大大小小的公司项目,分内之事,拿着工资,就不多评论,而分外之事的话,回望这2014,自己是没有做多少的Side Project,除了写了个Ghost的主题,造了个Grunt的轮子,其他的倒没有什么拿得出手的。看下郭宇的Github的Repo数,倒真是一个天上,一个人间的水准了,从数量上来说,肯定就不是一个量级甚至可以说压根就没有量。

少Side Project,说原因,一还是不够投入,二则跟自己的水平有关,想当初进猎豹的时候,属于JS都不会写的渣,现在好歹也是会写点渣JS了,以前一个切图都得几个小时甚至半天,现在虽不敢说切图是分分钟的事,但至少现在拿到一个设计稿,还是有大概的思路知道怎么设计方案、解决问题,一个项目下来,基本上还是能过独当一面了。效率上的提高,还是因为项目做得多了,熟练了,有经验了。

Side Project是程序员在圈子中的硬实力的象征,大多是基于兴趣自发而成。自己手上资源倒挺多:三台服务器、又怕云赞助的CDN,五六个域名,可放在自己手上倒的确是没咋利用起来,今年自己是没啥项目了,Github的星光也不多,作为一个程序员,这实在是有点说不过去。

也不在这里说什么明年要干嘛干嘛了,程序员圈中有一句话「Show me the code」,明年,我们用代码说话。

没进阶学设计 &ZeroWidthSpace;

个人觉得,作为一个与用户直接打交道的前端开发者来说,必须要有一定的美学基础和设计功底,今年年中的时候,尝试用Sketch做了两个Logo,重绘了个Logo,又重新设计了自己的新版博客,可是,进入冬季后,自己还是没有坚持下去进阶学习设计。

个人挺佩服的业内几个朋友是36kr的丁一和我们公司的utom,两个都是全栈开发,不仅仅会写代码,也会设计。回看自己,设计一个东西目前还是在抄一抄和改一改的水平,对于自己的长远职业发展来说,这不是一个好现象。

没练成腹肌 &ZeroWidthSpace;

2014年五月的时候,自己开始#健身打卡#,基本上是做到每天有时间就去公司的健身房进行器材训练或者游泳,年中的时候设定的目标是希望能在三到六个月练成腹肌,结果嘛显而易见我失败了。腹肌是没练成,感觉还胖了点,但是这个胖的意思是「壮」了,练腹肌是一个难度很大的目标,不仅仅关乎训练的强度,也关乎饮食。

没练成腹肌,首先的原因就是自己的饮食习惯,大多数时候还是跟同事出去下馆子,吃的多是川菜和湘菜,油腻不健康,回家之后自己做饭也是一个人做两人份量来。腹肌没有炼成,但是其他地方的成绩还是挺不错的,跑马拉松就不再啰嗦了。自己进行健身的时候,也专门地看了国内外的健身资料,给自己设立了一套健身计划,分肌群的训练、有氧和无氧的交叉训练,半年多下来,打卡的次数有120到130次,基本做到了每周去健身房训练3-4次的水准。

目前腿部力量明显提升、肩臂变壮,稍有胸肌,虽说离「健美」还有很大的差距,至少可以自信说穿个衬衣和体恤还是属于不差体型的那种,也算是个衬衣架子了。

很幸运自己这半年养成了运动和健身的习惯,真真切切地感受到自己身体的变化带给自己心态上的变化,人更自信了,工作和生活也更加积极和有劲和精神了。

没当一个真诚的人 &ZeroWidthSpace;

写下这个小标题的时候我是想了一会,除掉工作、健身相关,再除掉有些不方便说的隐私,好像2014年没干成什么的也主要就是这些。24岁了,人也开始面临世俗的种种,有些麻烦、有些啰嗦,也开始用伪装、敷衍、搪塞来应付了事。

说自己没当一个真诚的人,倒也不是说自己犯了什么偷鸡摸狗的事情,就是觉得作为一个人,不再单纯,开始有了所谓的「心机」,虽说这种心机也不是特针对某个人,自己在工作中和与人交往中,还还是一颗干净的心,当初选择互联网行业,就是看中这个简单,排除掉复杂的人际关系,靠本事吃饭,单纯,简单。

现在想想,还是挺钦佩罗永浩之类的「另类」的,一个「真」的人可能不会让每个人都喜欢,但做一个「真」和「简单」的人,还是可以给自己的生活带来很多不一样的感觉。

总之,回顾自己的2014年,开始面对各种利益,自己,还是变了。

但是,没有人会掏出一把枪,对着我说「你变了」,无人在乎,只有自己反省。

后记 &ZeroWidthSpace;

洋洋洒洒,中间间断了三四个小时,在年底已经进入百小时倒计时,写完这篇《2014年我没干成什么》,写完之后倒也是舒坦了,另一个自己,冷眼看这一个自己。

人,非完人;但,人不能放弃努力成为一个完整的有个性、有担当、有追求的人。2014年,微博,微信,朋友圈,人们在虚拟平台上展示着光鲜的自己,努力向其他人证明自己「我很厉害,我很有钱,我很有趣」,渴望着百花拥簇,渴望着千粉点赞。

展示,演示。

回想,反省,于人,非吾之亲,非吾之友,无关则无意;于己,努力让自己变得更好吧,不说什么狗屁「新的一年,全新的自己」大而空的积累了十个月姨妈集合的年经语,就说一句「少些得瑟、少些虚荣、多写沉稳,多些担当」。

明年,还是得叫罗磊嘛。

国家大剧院:BBC苏格兰交响乐团新年音乐会

去年一个偶然的机会,在一个失眠的夜晚,开始接触到古典音乐,读了本小书,看了些资料,系统地听了古典大家的作品,也算是一个门外汉恍恍惚惚进入了一个音乐艺术的殿堂,写了两篇文章《光明与毁灭:天忌英才莫扎特》,其中一篇《看电影识音乐:电影中的经典古典乐》还被简书收录到《简书周刊》。

2015年元旦,女朋友来帝都,三天的行程(实际四天,剁手了一张机票的事情我就不随便说了),安排了颐和园一日游、清华北大跟团豪华游、798的艺术展高端游,算是一次高端、大气、上档次的人文之旅,最后一天,白天去国家博物馆看罗丹雕塑展,查了下北京晚上的艺术活动,刚好看到国家大剧院有新年音乐会,演奏的乐团是BBC苏格兰交响乐团,考虑了下,想着以前还没体验过在音乐厅正儿八经听一场音乐会,刚好撑这个机会就跟妹纸一起去体验下吧,遂剁手买了两张池座的票。

来北京一年多了,国家大剧院路过了几次,但是每次都是远观,去年11月高中的哥们阿达和卷哥来帝都腐败,带着他们来这绕了一圈。这次与妹纸,就是第一次深入其中。

这个元旦,帝都难得的好天气,两天都是晴天,第三天稍微回暖,起了点霾,下午同妹纸去国家博物馆走得略累,不得不感慨下伟大的帝都,天安门广场真是大,国博五点闭馆,从国博七绕八绕,走了将近20分钟去前门大栅栏东来顺吃了个涮肉,看了看时间差不多六点半了,地图导航了下国家大剧院好像也不远,就1公里多,两人遂决定步行前往。

绕过人民大会堂,远远地看着国家大剧院就在远方,好不容易终于到了剧院这个大球外面,结果绕了好大一圈,发现怎么没有门,找路边的大爷问了下路,原来这个门是潜在地下,入口正对着长安街。

天朝核心地带,各种高大上的门面,安检是必不可少的,新年季,看各种表演的人还挺多,安检门口都排起了队伍,凭票入场,大包小包都要过安检,过了安检已经7点10分,距离30分已经只剩20分钟,我是一个急性子的人,本来想快点入场坐好,后来想了想,都进来了,也不急这么点时间,人嘛,还是不要太急,放松,深呼吸一口气,上了个洗手间,洗了把脸。

国家大剧院也算是一个经典建筑了,四周都是建国初期方方正正的苏式和Party范,突然冒出一个圆溜溜的大蛋,说是什么天圆地方和谐中庸,好吧,你们说是就是咯。

大剧院一边是玻璃网格穹顶,一边是大块的木质穹顶,对称,说到这种建筑风格,我倒想起了深圳图书馆的一边墙全玻璃的设计,和我家附近保利剧院的小蛋,白天采外面的光,晚上向外面透里面的光,第一眼见着还是觉得挺大气的。

这次新年音乐的演出场所是在音乐厅,上了一楼(从地下上去),拐了拐,进入音乐厅。

此时人还不多,妹纸笑得很甜嘛(原谅我渣手机像素和坚决不用美图秀秀的朴素原则)。

门口有志愿者提示进场之前请拿节目单,就是这张折页,上面有这场演出详细的节目单、指挥家以及钢琴家介绍,看了下介绍,两人都是国际上拿了不少大奖。 好吧,我是小土鳖他两我都不认识。╮(╯_╰)╭

音乐厅顶上有中式的灯笼,天花板上是吸音棉,周围的墙壁上也都是吸音棉,国家音乐厅嘛,好歹也得够规格和逼格,就不吐槽什么王力宏绯闻**(前)**女友工体音乐会了。

再来张演出开始前的全景照片,人还挺多的(整场演出上座率应该有80%了),下面的池座几乎都满了。

此时乐队成员已经陆陆续续进场了,观众们也在陆陆续续进场,每个门口都有1-2名身着统一制服的工作人员引导观众入场,我同妹纸的位置在4排31座和30座,第四排最左边的位置(厄),其实池座没太大的差别,觉得我们这位置比第一排都要好,略高于舞台,可以清晰看到舞台上每个人的动作,演奏中场休息的时候往里面挪了一个位。

接下来,演出就开始咯,商业演出嘛,没有什么领导致辞,一位司仪陪同指挥入场,全场掌声,指挥向观众们鞠躬致敬,然后转身面向乐队,嗯哼,就是这么直入主题,逼格,任性。

做一个有素质的天朝观众,演出期间就安安静静地做一个美男子,啊不,听音乐了。

此处为话外音: 演出时段注意事项:

  • 1.请勿使用手机(国家大剧院演出期间,不管你是4鸡,3鸡,还是2鸡,通通不给用鸡鸡,直接屏蔽手机信号)
  • 2.不要拍照和录音(如果你在演出期间使用手机,楼上的工作人员会拿一根激光枪 biubiu 你的)
  • 3.请看准时机咳嗽(看电影不是说全场尿点么,音乐会请找准咳点,演出期间就忍一忍吧,好歹是来听个音乐的,就不要乱入了)

感受:这次音乐会,中途玩手机被 biubiu 的人还是有的,反正我坐得前面,也只看到两个人(这也是坐得前的好处吧 ╮(╯_╰)╭ ),倒是咳嗽的人实在让人心里憋吐槽不能,这场音乐会总共2个半小时,到了第三组曲子的时候,可能是有观众喉咙不舒服了,尤其是二楼左边的一个人,在一个乐章的时候老是咳嗽,一分钟得咳嗽个两三下,音乐厅内建筑和装潢设计对声音有明显的放大效应,咳嗽属于高频音段,基本上是一人咳嗽,全厅的人都听得到,那个楼上的线上,怕是被全厅的人厌恶死了。这次音乐会也有家长带小朋友来,很欣喜的是小朋友都挺乖的,倒是我们这些大人啊,啧啧啧,羞愧。

演出结束了,两个半小时的演出,不可谓不精彩,最后一组威廉姆斯的第五交响曲结束,全场响起了掌声,指挥转向观众,乐团的所有成员也都起立,集体向观众们致谢,观众报以更加热烈的掌声,足足响了一分多钟还没停歇,随后指挥从左边的小门出场,观众们的掌声还在继续,不一会儿,指挥又进来了,全场又是一场掌声。

返场演出,指挥又站在指挥台上,乐手们再次入座,这次又给我们来了一场苏格兰本地的欢乐小曲,演奏一开始,后面的鼓手就示意观众们一起鼓掌参与进来打节奏,全场倒都是一起打起了节拍,好不乐乎,演奏途中,两个鼓手还跳起了踢踏舞。

一曲完毕,全场依旧掌声雷动,指挥又从左边小门下场,全场依旧掌声,不一会儿,指挥又回来了,带着一个小本子。这次指挥有话说,说的还是中国话「盆友,心年,筷咯」,观众们都乐了,在此报以掌声,稍作停歇,指挥笑着说"One more,a Chinese song,Xi Yang Yang"。

「喜羊羊?」,第一次听到,心想纳尼,这很接地气嘛,交响乐版本的喜洋洋,脑中BGM响起「别看我只是一只……」,然后顿然,发觉好像气氛不对,他说的应该是「喜洋洋」。

熟悉的调子,异国的乐手们,在这个元旦之夜,倒也是一番别样的体验。

这首中国曲子完毕,观众们倒是High了,看样子是不打算让指挥走了,这下掌声更加热烈了,指挥先生先是下台,不出十秒,又上来了,满脸笑容,这下没带曲目表了,站在指挥台上,耸了耸肩,说「mei you le」(妹油了)。

我们这些观众们好坏好坏的,人家都没有了,还拼命鼓掌,指挥笑了笑,转过身去,乐手们再次坐下(第三次还是第四次了),又给我们带来了一首苏格兰小曲。

这轮完毕,大家最后一轮掌声,很多观众都起立,致以最后的谢意,然后,终于,散场了。上图中这个白框里的男人,就是这场音乐会的钢琴演奏,本来坐在我旁边,我还跟他要了签名。

随便说说 &ZeroWidthSpace;

这次去国家大剧院,应该也算是在中国体验到的国际水准的交响乐音乐会了,一个字形容就是「值」。

看完演唱会,我写了条状态:

遇见,古典。国家大剧院,苏格兰交响乐团新年音乐会,门德尔松,贝多芬,全场掌声返场四次附送交响乐版本的中国歌曲喜洋洋,很赞的体验,强烈建议大家有机会去音乐厅听一场。这音效让我第一感觉是去找音响在哪,然后猛地发现这是现场!

在现场听音乐会,跟用耳机听MP3,还是有很大的不同的,写这篇文章的时候,脑海中依旧浮现演出开始的时候,音乐在厅内响起时的那种震撼,感受着不同的乐器,感受着台上不同年龄的乐手们,手上的艺术、肩上的艺术。

说实话,挺后悔小时候没坚持学钢琴,现在家里妈妈对我弟弟倒是全方面培养了,现在倒挺羡慕我家的小弟小小年纪就会乐器了,恩,好好练,长大了泡妞绝对有优势。

川藏线上「蹭吃蹭喝」不可耻

今天在某知名门户看到一条川藏线相关的新闻 晒川藏线蹭吃蹭喝攻略网友拍砖:“厚脸皮”

突然发现怎么里面的女主角那么面熟,好像在川藏线上碰到过,一搜索,找到女主角的微博,然后再顺水摸鱼找到女主角在某户外论坛的帖子,一看她的路程时间,6 月 2 号到拉萨,走了 28 天,跟我们差不多行程,确定她就是曾经跟我一起骑「相克宗村到理塘」超级烂路的那个西安妹。

现在这个西安妹纸正在风口浪尖,她的一条微博在网上引起了很大的争议,招来骂声无数。搜索「川藏线蹭吃蹭喝」关键字,各大门户也都报道了这件事情,随便点了几个热门的门户看了看新闻下面的评论,也是批评、谩骂的声音占主流。

而这一切,都源于这个妹纸的一条微博和这条微博的图片。详情就不在这篇博文多说,大家看一眼就知道大概。

@Captain-Saga 新浪微博地址 https://weibo.com/1785852940/yqBHKtKoM

「这是川藏线蹭吃蹭喝的教学贴,我队是 5 月川藏线上最无耻的钢铁军,沿途打劫力度之强、成功率之高为其他队望尘莫及,所以特在此教导后来人——骑川藏,钱一点也不重要,重要的是心态 ~」

微博配图相关文字:

其实,有个厚脸皮的妹子,足以成功 70%。

垭口是丰收的好时机,这是十分钟内一般的战利品呦!

道班工人的饭点也不要错过呦,热乎乎的甜菜。

……

一路之缘 &ZeroWidthSpace;

我跟这个妹纸,只能说有「一路之缘」,川藏线上到达雅江后 12 公里的相克宗村的那晚,在阿志码青年旅社遇到骑友钻钻和流浪猫的队伍,而这个妹纸就是他们队伍的,第二天我同另外一个队友加上钻钻队伍 4 人共 6 人,一起从相克宗村翻越剪子弯山、卡子拉山到达了 158 道班,就是与这个妹纸同行。接下来的一天,我就跟队友提前出发走了,后来再也没有遇到她们。

那短短的一天,是川藏线上最艰难的路程,140 多公里的烂路,海拔全部在 4000 米以上,需翻越垭口 6 座,剪子弯雨雪天的寒冷,烂路的颠簸,大家都很辛苦,那一天,亲眼目睹了 7 辆满载单车的面包车从身边驰过,一路上见到的骑友不超过 15 人。能坚持走这一段路的人,已经很难得,麦田做为一个妹纸,更加难得。当时,麦田给我留下的印象就是「这个妹纸很爷们,很霸气」。

傍晚时分,7 点多,天色已经逐渐暗淡,我们只到达 112 道班,距离 158 道班还有十多公里,天公不作美,下起了冻雨,山中又挂着逆风,大家又冷又饿,还有卡子拉山要翻越。队伍中发生分歧,到底是在没有住宿条件的 112 道班跟修路工人凑合住一晚,还是赶夜路去 158,将自己自封为「副队」的麦田同学坚持一定要赶到 158 道班,最后队伍方得统一意志成行。

直到现在我还不知道她的真实姓名,只知道她的外号叫「麦田」。

短短的一天(由于那天状态不好,我骑得慢,其实见面有交流的时间不超过 2 个小时),这是麦田给我的全部印象。

打引号的「蹭吃蹭喝」 &ZeroWidthSpace;

看到麦田同学这几天被天涯、微博的网友谩骂和肆意人生攻击,各种问候、脏话都出来了。首先觉得她挺无辜,另外强烈鄙视一下那些人身攻击的人(这是我的一个原则和底线,话题可以拿来辩论,可以台面上说理,但是不能人身攻击,脏话和谩骂出来的时候,实际上争论可以结束了)。

首先,要避免「心电感应」和「自我假定」的错误思维。先入为主地认为博主就是「欺骗其他人的爱心」的那种观点是否理性?

大家不凡看一下引发争论的这条微博,除了 80%的网友都认为的「欺骗其他人的爱心」的含义,这条微博有没有可能是另外一方面的含义?

你是否知道语言中有一种「反语」,而「反语」中又有一种「风趣反语」?字面表达的是贬义,实际上却可能是表达着的正面评价和褒义?

稍微想一下,就可以知道这条微博,是典型的「屌丝文化」,一个年轻人,通过自嘲、反语的形式来纪念、来叙说一下自己年轻时这么一段川藏骑行故事中的一个片段,难道有什么问题吗?

在路上的「蹭吃蹭喝」 &ZeroWidthSpace;

不知道那些上来就谩骂的人,你是否尝试过背包旅游、骑行,你是否自己走过川藏线?没有经历过在路上的生活,有时候可能不能理解路上的一些风俗。

就以我自己和我所见身边的骑友、驴友的经历,来说一下路上的「蹭吃蹭喝」。

川藏线上,精彩而漫长,经常出现几十公里,见不到人、偶尔几辆车路过的情况。风景再美,都会视觉疲劳,在大山中,在高原上,有时候,骑车就是麻木的蹬踏,枯燥、无聊。

像我,就经常留意路过自己的车辆车牌,如果见到「粤」开头的广东车牌,就欣喜地挥手打招呼。有些路段,甚至见到「湘」字开头的湖南车辆,也都会打招呼。异乡遇故人的感觉,只有在路上,在这种艰难的路上,才会倍加强烈。

大部分时候,这些车辆都会压根不理直接开走,如果偶尔一两辆车停了下来,简单聊上几句,都能给自己莫大的精神鼓舞。

至今难以忘记,上冰天雪地的剪子弯山的时候,我状态不好一个人落在了后面,一队粤 A 牌照的自驾车队的路过,我在烂泥中停下车,挥手并用粤语打招呼,车队的车停下来,就聊了几句,车队的问我要不要水,告别之后,立马精神起来,继续赶路。

我一路上也「蹭吃蹭喝」了好几次:

  • 1.泸定到康定的路上,中午时分,又热又饿,坐在一个藏民家门口的凳子上,不一会来了三个湖南的骑友,聊了聊天,「讨」半块大饼,湖南骑友欣然给了我一大块,我吃完后还问我还要不要。
  • 2.理塘到海子山脚下的烂路上,腹泻,前后放眼望去无人,拦了一辆 Jeep,问有没有纸巾,自驾的大哥径直塞给我十几包湿巾(...好高级,还有香味),还给我一大包抽式至今(太大了,就没要了)。大哥还欲给我饼干,没要。
  • 3.忘记是哪一个地方了,路过一个藏民家,避雨休息,一个藏民招呼我们好几个骑友去吃牛肉干。
  • 4.在爬宗巴拉山,距离垭口还有 4km,水壶里还剩下大概 1/4 的水,可是心里却想喝矿泉水,心想干脆拦车要瓶水吧,喝了一路的有异味的白开水了,实在想喝纯净点的水,拦了一辆挂着「越野 e 族」的陕西牌照 SUV,问「大哥,能不能给支水」,大哥从后座山拿了一只农夫山泉给我。道谢后,一口喝光。
  • 5.距离拉萨还有两天,一个人单骑,约莫下午 2 点,到了一个有饭店的小镇,走进一家餐厅,刚好遇到一队骑友(在路上总能遇到相同的人),招呼我一起过去吃饭,加入,旁边一座是三个男人,开一辆粤 B 深圳牌照的雷克萨斯,在我们不知情的情况下,给我们加了 4 个菜,并且给我们 9 个人一桌饭买了单,后来直接走了。

一个有故事的主题:珠峰上的Yasuko

为了国内备案,博客停止解析将近半个月,今天罗磊的独立博客重新上线,迁移到国内阿里云,进行了不少重构和优化,现在进入博客,速度体验上应该可以有一个飞跃性的提升。

新的博客主题名叫「Yasuko 康子」,依旧开源在Github/Yasuko上,只需稍作配置,就能用到你自己的Ghost博客上。

首先讲一个故事 &ZeroWidthSpace;

这篇博文开头,我先不讲Ghost这个主题有什么新功能,我要讲一个叫难波康子 Namba Yasuko的日本女人的故事。

1949年,战后三年,难波康子出生在日本东京大田区,1967年,十八岁的难波康子高中毕业,进入早稻田大学,并且加入了学校的登山俱乐部,随后开始了自己的登山生涯。毕业之后,难波康子进入了物流巨鳄UPS,收入颇丰,但是她坚持登山的爱好并且持续付诸行动。

1982年,她攀登上了非洲最高峰乞力马扎罗,两年之后,成功登顶南美最高峰阿空加瓜山,1985年六月,登顶北美最高峰麦金利峰,七年之后92年八月登顶欧洲最高峰厄尔布鲁士峰,接下来的93和94两年,先后登顶南极洲最高峰文森山和大洋洲最高峰查亚峰。也是在登山俱乐部,结实了自己的爱人健一难波。

难波康子先后攀登上上世界七大洲的六座顶峰。1996年,两只商业登山队向珠峰发起冲刺,难波康子也在其中,5月10日冲顶,由于种种因缘,商业行为在高原缺氧地带的不理性选择,多个队伍同时登顶导致的登山通道拥挤,两队的大部分队员不幸遭遇暴风雪,被困在距离4号营地300多米的南坳,下午六点钟暴风雪最大的时候,难波康子氧气耗尽,经过最后的挣扎,依旧不幸遇难,在四号营地外,失温而亡。

难波康子是第二位登上世界七大高峰的日本女性,出身名门,企业高层,算得上是日本男权社会中的一个标杆性人物,她的死,在日本社会造成了很大的影响。

今年上映的电影《绝命海拔》之中,讲述的就是96年这次珠峰事故的故事,推荐大家有机会可以去看看。上图的前排右一就是难波康子。

关于为什么要叫这个名字 &ZeroWidthSpace;

其实我并没有看过《绝命海拔》这部电影,之所以取这个名字,就跟我的上一个Ghost主题Nevecoo一样,取名的时候并没有想什么特殊的含义,就是随意而为。 在谷歌中随意输入几个字符,点击搜索,就这么看到了Yasuko的故事。

看着她的照片,看着照片中的雪山,想起自己几年之前一直想去登山的梦想,那就叫Yasuko这个名字吧,缅怀先烈之余,也算是勿忘初心。

Theme Yasuko &ZeroWidthSpace;

回到这次的改版,说先说一下这次改版的几个变化,对于其中涉及的几个技术和优化点,也稍作说明。

1.备案&&迁移到国内阿里云 &ZeroWidthSpace;

过去我的博客一直托管在Linode的日本东京机房,本来速度和稳定性都不错,Ping值好的时候可以到50-70ms,可是随着这两年某W的升级和国际线路的日益糟糕,大陆到日本的国际线路稳定性越来越不可靠,时常会遇到DNS无法解析,SSH无法连接的情况,虽说我的大部分静态资源都是托管在国内CDN,可是主站速度尤其是初次访问速度还是无法保证。

这次依旧是通过阿里云的备案流程,增加了一个备案主体,将luolei.org这个域名在国内备案,12月10日阿里云提交备案申请,28日批准备案,流程还是比较顺利的,详细的过程可以看下图。

1.1 海外访客进行反向代理加速 &ZeroWidthSpace;

由于无法保证阿里云在海外的访问速度,我让DNSpod对大陆用户和海外用户分别解析到阿里云和美国DO的机房IP,利用美国DigitalOcean旧金山机房的服务器进行了一次反向代理。

由于我的博客进行了https加密,反向代理同样需要ssl证书。

nginx
#https相关配置
server {
        listen       443;
        server_name  luolei.org;
        ssl                  on;
        ssl_certificate      /somepath/ssl/ssl.crt;
        ssl_certificate_key  /somepath/ssl/server.key;
        proxy_pass https://115.28.56.68:xxxx;  #这里是关键,需要填写国内的IP地址
        proxy_set_header        Host            $host;
        proxy_set_header        X-Real-IP       $remote_addr;
        proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header        X-Forwarded-Proto $scheme;
        proxy_redirect     off;
    }

测速下,国内外的延迟优化还是很明显的,当然,实际上到网站还需要加上DO机房到阿里云的延迟,只需要两个机房的线路能保持稳定,也是可以接受的。

2.图片全面优化 &ZeroWidthSpace;

我的大部分图片都是放在又拍云的CDN上,又拍云已经赞助我的博客几年了,在这里再说一下感谢。图片向来是网络请求的大头,这一次,在图片加载上面做了几个处理。

A.主要图片均lazyload:

延迟加载,只有滑动到可视区域才加载,Ghost改动Markdown渲染引擎不够方便,但是编辑的时候可以直接写html,需要直接把的代码写在编辑器里。

html
<!-- 通过设置alt值为cover或者full-img来控制文章起始缩略图和是否撑满屏幕 -->
<img
  src="https://c2.is26.com/blog/2015/12/book.jpg"
  class="lazy cover"
  alt="cover"
/>

B.WebP图片和分辨率适配

根据设备浏览器是否支持WebP,是否是手机,利用又拍云的图形处理接口,分别加载不同格式,不同分辨率的图片,大大优化了图片的大小。

javascript
/*通过js判断浏览器是否支持webP格式的图片*/
webPCheck: function(feature, callback) {
        var TestImages = {
            demo: "UklGRkoAAABXRUJQVlA4WAoAAAAQAAAAAAAAAAAAQUxQSAsAAAABBxAREYiI/gcAAABWUDggGAAAADABAJ0BKgEAAQABABwlpAADcAD+/gbQAA=="
        };
        var img = new Image();
        img.onload = function() {
            var result = (img.width > 0) && (img.height > 0);
            ImageSmartLoader.isWebPSupported = true;
            ImageSmartLoader.webPLoader();
        };
        img.onerror = function() {
            ImageSmartLoader.isWebPSupported = false;
            ImageSmartLoader.webPLoader();
        };
        img.src = "data:image/webp;base64," + TestImages['demo'];
},
/*通过传参调用不同的lazyload*/
$(".lazy").lazyload({
    advanced_load: true,
    data_attribute: 'url',
    webP_load: true,
    is_scale: true,
    scale_width: 750
});
/*重新拼装lazyload的url,配合又拍云接口调用不同图片*/
if (settings.advanced_load == true) {
    updatedUrl += '!';
}
if (settings.is_scale == true) {
    updatedUrl += '/fw/' + settings.scale_width;
}
if (settings.webP_load == true) {
    updatedUrl += '/format/webp';
}

C.进一步优化Iconfont

这一次重新用Sketch整理了常见的社交网站icon,加入了国内常见的V2EX、知乎、简书等网站的icon,调用起来更加方便。通过阿里云iconfont.cn生成,字体font部署在阿里云CDN上。文章中也依旧增加了自动给引用的URL标识logo的功能。

豆瓣,维基百科在iPhone上的显示效果,十分清晰。

Github、知乎在iPhone上的效果。

javascript
    /*给文章中的url添加iconfont方便识别*/
    urlIconlize: function(url) {
        var domain,
            _output;
        var iconFontTag = 'iconfont';
        var iconMap = { /*索引 可在这里添加匹配规则*/
            'twitter': iconFontTag + '-twitter',
            'qzone': iconFontTag + '-qzone',
            'weibo': iconFontTag + '-weibo',
            'facebook': iconFontTag + '-facebook',
            'github': iconFontTag + '-github',
            'douban': iconFontTag + '-douban',
            'google': iconFontTag + '-google',
            'luolei': iconFontTag + '-luolei',
            'dribble': iconFontTag + '-dribble',
            'v2ex': iconFontTag + '-v2ex',
            'zhihu': iconFontTag + '-zhihu',
            'wikipedia': iconFontTag + '-wikipedia',
            'jianshu': iconFontTag + '-jianshu',
            'youku': iconFontTag + '-youku',
            'youtube': iconFontTag + '-youtube'
        }
        for (var name in iconMap) {
            if (typeof iconMap[name] !== 'function') {
                var MapKey = name;
                if (url.indexOf(MapKey) >= 0) {
                    domain = MapKey;
                    _output = iconMap[MapKey];
                }
            }
        }
        return _output;
    },
    addIcons: function() {
        /*给博客文章地址url添加ico识别*/
        $('.single-post-inner  a:not(:has(img))').each(function(i) {
            var _src = $(this).attr('href');
            var tmp = document.createElement('a');
            tmp.href = _src;
            _selfDomain = tmp.hostname;
            General.urlIconlize(_selfDomain);
            console.log(_selfDomain);
            $(this).prepend('<i class="iconfont ' + General.urlIconlize(_selfDomain) + '"></i>');
        });
    },

考虑元旦的时候把这个功能抽出来做一个组件,方便任意网站调用。需要维护对应的域名表。

D.多说评论、webfont懒加载

javascript
/*异步加载js*/
function loadJS(url, callback, el) {
  var isIE = !!window.ActiveXObject,
    isIE6 = isIE && !window.XMLHttpRequest,
    script = document.createElement("script"),
    head = isIE6
      ? document.documentElement
      : document.getElementsByTagName("head")[0];
  script.type = "text/javascript";
  script.async = true;
  if (script.readyState) {
    script.onreadystatechange = function () {
      if (script.readyState == "loaded" || script.readyState == "complete") {
        script.onreadystatechange = null;
        if (callback) {
          callback();
        }
      }
    };
  } else {
    script.onload = function () {
      if (callback) {
        callback();
      }
    };
  }
  script.src = url;
  if (el) {
    document.getElementById(el).appendChild(script);
  } else {
    head.insertBefore(script, head.firstChild);
  }
}

过去webfont、多说等.js.css资源都是页面加载的时候就直接加载,占用了一定的带宽和连接,考虑到实际情况,对于评论的.js均采用异步加载的方式,webfont加载使用的是webfontloader的异步方案,一定程度下优化。

E.其他优化

除了性能上的优化,这次Yasuko主题在UI、体验上均做了较大的改善,着重优化了移动端上的阅读体验和细节,围绕内容而设计。

首页和文章列表页面更加紧凑,关键字和入口更加清晰,采取镜像显示模式,显示缩略图和文章摘要。

文章页增强阅读体验,对于字体、行高、间距等均做过调试,让不同系统、不同分辨率和不同浏览器下均能获得良好的感受。

通过Ghost自己的接口,增加前后文导航。另外自己写了一个QR二维码的接口,自动生成当前文章的二维码,方便读者能够快速扫码在手机上打开。

打赏 &ZeroWidthSpace;

当然,细心的你可能发现了每篇文章的最下面有一个金黄色的「赏」按钮,Yasuko增加了「打赏」功能。点击打赏按钮,会自动弹出支付宝打赏或者微信打赏(需要自定义成自己的图片)。

在这里我也想做一个实验,如果你觉得我过去的文章和作品对你有一定帮助,就随意打赏我点钱,也让我看看我的这篇文章都在什么时候被大家看到,几毛几块都可以。

点下面的「赏」,根据自己的情况扫描二维码,支付宝或者微信打赏均可。

后续Yasuko主题会持续更新和优化,也欢迎各位的Star。

更新 &ZeroWidthSpace;

  • 2016.1.1:百度恢复了收录我的博客,看样子「备案」也是影响百度收录的一个因素。
  • 2016.1.2:QR图像接口修改为https接口,多说评论头像和评论区表情支持https反向代理。

一个令我担心的诊断结果

今天早上在母亲大人的陪伴下去了趟蛇口医院,话说上次去医院还是大三的时候,有一次发高烧在家昏厥,直接被送到南山医院。这两年多,尤其是近一年,自己一直保持锻炼,倒也抵消了不少作息不规律带来的健康问题,身体倒也没什么大问题。

但是,今天早上的这个结果,倒的的确确让自己担心了,一个感觉就是:

整个人都不好了

关注我的朋友知道我从2013年开始长跑,从最开始的几KM逐渐到10KM再到20、30KM,自己也一直很长一段时间按照全程马拉松的标准训练。

起因 &ZeroWidthSpace;

今年由于工作,北京空气问题等等原因,跑量下降很多,基本没怎么跑过,2月份一个放晴的周末去奥林匹克森林公园跟着一个大牛朋友跑了10KM,那一次没带跑鞋,就跟同事借了一双很便宜的普通跑鞋,想着能穿就行了。那次跑完倒是跑完了,但是跑完后,膝盖出现了疼痛和不适,中午跟朋友吃完饭回家,上下楼走楼梯都得扶着扶手,整个下午膝盖和腿都十分疼痛。

当时想着可能是间隔一段时间没跑了,就没太在意;第二周,自己再去奥森跑10KM,坚持跑完了,结果又出现这个问题,那天还要去百度参加一个前端活动,整个人就废掉了像残疾人一样,走路一拐一拐上下坡度都要扶手。

当时心里就犯过嘀咕想难道是膝盖出问题了,但是依旧没太在意。又过了一周,跟同事再去奥体,刚跑个1KM,就知道出事了,膝盖又疼了,那次没再傻傻坚持,就改成了快走,走了将近6KM。没想到的是这么跑了1KM+6KM快走后,那天下午膝盖还是出现轻微疼痛。

后来的3、4、5月,自己上网搜索过相关的资料,发现可能是肌肉力量和柔韧度问题,导致膝关节摩擦和磨损,因而带来疼痛,网上资料和建议是增强肌肉柔韧度和腿部力量。

自己也暂停了跑步(除了中途跑了一次北京国际长跑节10KM),开始转成在健身房做深蹲+拉伸+坡度快走的锻炼,尤其是比较注意深蹲和拉伸,坚持了两三个月,膝盖的症状倒是好了点。

诊断 &ZeroWidthSpace;

今天诊断看的是「康复科」王利芬医生,是妈妈的朋友介绍的,医生首先让我分别伸直左右两腿,检查我膝盖,左膝揉动时有响声。医生建议先做 CT 扫描,再根据看情况做核磁共振(MRI)。蛇口医院是新建的医院,建筑和设备都很新,CT 扫描收费231元,加上我们去的时间早,缴费完毕后,很快就做了扫描,等了约40分钟出来了片子。

医生看完片子后,指出我两个膝关节分别存在的问题,一个是两膝关节缝隙有差异,但由于可能是拍照角度问题,影响不大,另一个则是关键的左膝下部有骨质增生,他们称为「退行性形变」。

退行性形变又称关节退行性病变,骨质增生,是关节炎的一种。我的这个疼痛,是由于长期高强度和长时间的运动(即跑步),加上膝关节骨头之间缓冲不好,长期冲撞,导致下部骨头变得尖锐(原本应平滑),这样一来,稍作长时间运动,就更容易冲撞和压迫神经导致疼痛。

这个属于不可逆的病症,一般人到了35岁之后或多或少都会出现这个问题,目前我这个情况不算严重,在台湾 Mobile01看到一个跑友的症状是间隙比普通人少了一半,半月板磨损厚度比正常少一半,再严重就是换人工膝盖了。

医生的建议是我暂停跑步,或者减少跑步量,我问了下能否有什么药物或者手段康复,医生说只能减少运动量,听到这句话,心情真的是 down 到低点。自己内心真的还是不愿意放弃跑步啊,还有那么多马拉松没跑呢。

怎么办 &ZeroWidthSpace;

看完医生,至少知道了原因,回家后,自己又继续上国内外跑友的论坛搜索了一下「退行性病变」相关的资料,发现这个病还是挺常见的,也是可以逐渐康复的,心里还是重新找回了点希望。但是自己肯定还是会以长远为重,人生路还长,还是别让下半生半残废了,未来这半年先慢慢康复,下半年的马拉松量力而行。

对于我来说,可行的的康复和治疗方法主要是这几样:

1.减少高强度运动量 &ZeroWidthSpace;

减少跑量,减少对膝关节冲击较大的运动,避免频繁上下楼梯,改成游泳、单车等负重不大的运动,像负重深蹲都不能做。

2.服用葡萄糖胺(维骨素) &ZeroWidthSpace;

葡萄糖胺可制造蛋白多糖润滑关节,防止骨关节摩擦疼痛,使关节活动自如,润滑关节及维持关节功能(像润滑油一样,起到了润滑膝关节的作用),延缓退行性病变的发生及发展。

3.补充蛋白质等营养,养好膝关节 &ZeroWidthSpace;

这个就有点虚了,以后饮食还是注意吧,未来这一年,健身也是自己生活中很重要的一个规划。

4.换穿高级的缓冲跑鞋 &ZeroWidthSpace;

目前穿的是李宁的轻量跑鞋,避震缓冲还是太弱了,以后尽量还是少穿这双鞋进行长距离跑了,这个月上美国亚马逊海淘了双骚红的 Saucony Kinvara 4 ,属于避震型慢跑鞋,国内京东卖1002软妹币你真的好意思么,美帝亚马逊才60美元。过段时间到手了再跟大家分享下体验感受。

杂谈 &ZeroWidthSpace;

其实自己真心不想放弃跑步,不想这么年轻就收到「马拉松的死亡通知书」,自己未来几年的几个目标就是跟马拉松相关,希望自己能够康复。对于后续自己的膝盖情况,也会继续在博客说明和记录,如果你也是跑者,或者也遇到了类似的问题,我们均可以交流。

后记 &ZeroWidthSpace;

后来自己就自己的伤病情况在专业的跑步社区问了一下《[求助] 被医生诊断为膝关节「退行形变」,不想弃跑,未来一年如何康复和训练?》,几位有经验的跑友给了不少建议。

  • 轻舞:50岁的人膝盖退行性变非常常见。你确定你是23岁?现在不是减量的问题。是你过度使用运动配额。你的膝盖已经50岁了。最可行的康复计划就是休息。。全面休息。让23岁的身体启动修复功能

  • doctorbi:首先,你这是普通的X光片,不是CT,从X光片看左膝确实有骨质增生,以胫骨髁间棘较为突出,也就是老百姓俗称的骨刺,但这种退变并不是疼痛的主要原因,也不是1、2天能够发生的,骨刺是根据wolf定律而产生的,是由于不正确的力学改变,从而出现骨的增生来增强自身重量,从而有效的保护骨质以免受到损伤。但由于关节间隙变窄,软骨的破坏,关节滑液的减少,从而突出的骨刺与正常的关节碰撞,形成无菌性的炎症。毕竟你还年轻,退行性变的骨性关节炎并不可怕,等修养好了,无症状后,加强股四头肌锻炼,就不至于以后疼痛和退变发展了。以后逐渐加强锻炼,慢跑还可以继续,不过得佩戴护具。

回记者信:关于方滨兴的一些看法

前几天收到南方周末记者的一封邮件,询问我有关方滨兴的一些看法。

txt
罗磊:
您好!看到您那篇听方滨兴讲座的博客很感兴趣,有几个简单的补充问题。
1、距离那次讲座过去两年了,这两年里似乎方滨兴受到的攻击与日俱增,你对他的看法发生过什么变化吗?
2、考虑到他的年龄、教育背景,你觉得方滨兴身上有没有可以理解、同情的地方?
多谢。
南方周末 叶X

之前曾经有写过一篇文章《GFW之父方滨兴讲座后杂想》传播还挺广,现在过去已经两年了,今天写上这篇回信,也当是两年来自己对方和GFW的一些新的看法,觉得自己这两年的对此类问题的看法和态度基本还算稳定,没有什么「阵营」的转变。

以下为我的回复邮件:

1、距离那次讲座过去两年了,这两年里似乎方滨兴受到的攻击与日俱增,你对他的看法发生过什么变化吗?

两年过去了,当年自己的这篇文章在人人网上疯转,境外媒体也有转载,一下子自己倒成了「公知」,现在回想,面对现实,不由感慨。

自己也是从大二的学生到大四即将毕业的老鸟,可能也是由于自己的个人原因,自己的关注点更加转换到了「自己」的身上,过去自己关注时政,喜欢看评论文章,也热衷分享一些敏感题材的纪录片给同学们,现在更多就是专注于提高自己的「职业技能」以面对毕业之后的工作,对方滨兴以及他背后这种制度倒不是特别感冒也没再多评论。

我是搞互联网的,这两年,依旧深刻体会到了这种防火墙对自己的影响,网站被墙这种只不过是最表面的形式而已,打着国家安全、政治正确的名号,进行内容审查,从技术角度上看我们国家几乎毫无隐私可言。这种环境和制度带给个人的,就是「自我审查」和「思想禁锢」,时常感慨自己写什么东西都要担心会不会被找去谈话,久而久之,也刻意地不去谈某些话题以免惹祸上身,也算是自己的一个悲哀吧。

这两年记忆中跟方滨兴有关的事情,一个就是每次他发微博(一次是拜年,一次是大学招新),下面都是骂身一片;另外一个就是最近得知他得了癌症,同样是一片诅咒声。说到网民对方滨兴个人的这种「人身攻击」,我觉得也是我们这个社会,万事娱乐化的一个表征吧,社交媒体这东西让普通人拥有低成本的「评论」自由,但也仅仅就是comment评论而已,与抗议protest还是有区别的,钱理群说我们大学生是一群精致的功利主义者,我觉得这个比喻很恰当,看看北邮的大学生,貌似没有什么北邮的学生,抗议过他们的校长的所作所为,我们这群互联网从业者之所以反对他、调侃他,更多也就是我们这个「群体」的圈子文化,好像稍微理解他、支持他就是「互联网这个圈子」的另类。

现在的我,依旧还是对方滨兴后面所代表的「制度」的反感吧,对他个人倒没什么过多评论。

2、考虑到他的年龄、教育背景,你觉得方滨兴身上有没有可以理解、同情的地方?

方滨兴现在也50多岁了,国家体制出来的人,对他们这批人,我一个90后,只能用「隔阂」两字来说,他们那一代和他们前一代人的信仰和情怀,对于我们来说还是太陌生了。他在体制内,他的专业、职位,做得真的挺好,网络安全这东西,各国都在弄,什么数据截取、监听、加密解密(我刚好大学学过相应的课程,有所了解),每个领域都一批专家(补:最近美国棱镜门事件也可以看出个各国这方面的蹊跷)。

「坏的制度让人作恶」,方滨兴这个人,遵纪守法(当然,这个纪和法是有问题的),做好了他自己的事情,幸运地享受了这个制度给他带来的好处,却也不幸地被世人所唾弃(当然,这个世人的比例必定不大)。

因为年龄而尊重某人,是一种道德,教育背景这东西更是个人培养的东西,举个不恰当和极端的例子,一个耶鲁大学的70岁的教授性侵并杀害未成年少女,我们可以说理解他幼年受过家庭暴力有心理问题、同情他曾经被少女骗过而激怒balabala,但是超越道德判断,有一种法律上的底线,就是不伤害,过了这条底线,就应该受罚。

对于方滨兴这人,谈得上理解,但谈同情,我觉得更像是我们自己的笑话,方这人享有的东西、物质、权力、地位,从世俗功利的角度说,他已经比我们不知道多少人都成功和幸运了。不就是得一个癌症,还有国家给他治疗,说同情他,还不如同情一下我们自己。呵呵。

明天还要考试,简单地说说自己的看法,比较意识流,望体谅,多谢。

生活在这个时代中的人,尤其是生活在这个时代中像我们这样的「普通人」,存在一种「无力感」,对于现实的无力,对于体制的无力,对于类似方滨兴这种人和GFW存在的无力。

说心中保持一种信念吧,有点追求吧,知道自己能力不够,依旧是个默默无闻的蚁族屌丝辈,可写写文章,写写博客,传播一下自己的想法给更多人知道,也当是记录自己曾经对这种现状protest过吧。

关于我的点点滴滴

前天晚上,终于折腾好了自己的办公桌和柜子,台灯也弄好了,在自己的房间里,拿出陪我走过西藏的笔记本,拿出好久没有动过的笔,写了些东西。

很久没有这样写东西了,静悄悄,一个人,说出自己不想跟其他人说的,抛开杂念,抛开其他人的目光,抛开顾虑,就这么静静地写着,做了一次与自己心灵的对话。写完后,心情也算是舒畅了很多。

这个假期入门前端,学习CSS,跟着教程《Create a CSS3 Image Gallery with a 3D Lightbox Animation》,弄了一个3D ligbox特效,自己看源代码,理解代码,顺便用刚刚学习的CSS3基本知识,搞了一下自己的About主页。

about-me

沉下心来进阶学习,自己一行一行代码敲出来,看到屏幕上呈现的效果,倒也挺享受那种感觉。

路还远着,去浮躁、沉淀、尝试,现在的我,需要这些。

罗磊啰唆 | 谈谈自媒体和个人品牌

今天,来啰嗦下网络教育,同时从我做为一个学生的角度,来谈谈网络学习。分享一下自己这几年的一些网络学习经验。

我是一个依赖网络的人,无论是生活、学习、工作,基本都是online状态,自己一直觉得网络之所以伟大,就是因为它降低了知识的门槛,让世界上每个人,只要有网络,都能更加公开、也更加公平地接触到新的资讯、技术、知识和智慧,知识和信息不再是被某个阶层所垄断。

现在我自己给自己打的标签是「前端工程师」,准确点应该只能算是「菜鸟前端工程师」,通俗点说就是一个搞网站或者更通俗点就是修电脑的,高中文理分科,我选的是文科的政治、大学专业,是公共管理,我所从事的工作,跟我所受的教育,基本上是没多大的关联,对于有些前端工程师来说,他们的专业出身跟计算机、网络可能甚至是那种八辈子也不着边的关系,国内某X宝甚至有水雷专业和中医药专业出身的前端工程师。

这快一年了,自己的在线学习谈不上系统,但基本所有跟编程、开发相关的知识,都是从网络上学习的,也买了几本书、看了些书,但书更多也是供自己辅助参考和给自己帮助理解技术的框架。

说说我这几年在网络学习去过的一些地方和使用过的一些在线教育产品:

  • 1.Tuts+ Premium :国外著名在线教育网站,偏重web开发和设计,大量的视频、教程、电子书,会员制,20美刀一个月。
  • 2.w3school:W3school应该是所有搞跟网络开发有关的朋友都登录过的网站,上个世纪的页面,适合最基本的入门,后来基本就是查文档用了。
  • 3.Codecademy:Codecademy算是比较有技术含量的在线学习网站,实时交互,让你边编程边学习,很适合基础入门。
  • 4.php100:国内老牌的互联网网站,张恩民的系列php,html以及其他视频教程都还算不错
  • 5.创恩云课堂:跟php100有渊源的在线视频教育网站,张恩民创办,采取收费制(1-5元一系列课程:很便宜)。
  • 6.Youtube以及其他相关视频网站:youtube的一些跟技术相关的频道有些不错的教育视频

说了跟前端学习有关的网站,再说说其他我使用过的网络教育网站

  • a.TED :TED应该算是最有影响力的「在线教育」网站了,大量的精品视频,但是其内容更加算是「启发&分享」性质,类似于讲座。
  • b.公开课:从哈佛公开课到斯坦福公开课,基本就是把大学课堂录像搬到网络,很多人接触到公开课这个概念就是从哈佛的《Justice》公开课。

下面我来说说我自己对这些在线教育的看法:

优点:

网络教育的好处无非就是那些,在这里我就不总结了。

不足和欠缺

1.模式陈旧,缺乏互动和评估考核机制

现在的网络教育,基本就是以「视频」为主的传统方式,参与在线学习的人大部分是「主动」学习(技术类)或者凭兴趣学习(人文社科类),缺乏传统线下教育的「交流互动和评估」,大部分情况是,学生一个人孤零零地呆在电脑前,看着视频,看完就看完了,可能也仅此而已。

2.语言门槛

接触到网络教育,是通过哈佛公开课,当时是国内的字幕组翻译了一系列的视频,因而没有多大的学习障碍。后来看TED就觉得慢慢吃力了,除了少量精品视频有翻译,大部分视频只有英文字幕甚至没有字幕,对于学习者来说,是一大门槛。在这里得赞一下的TED和youtube,能自动提示和添加字幕(google可以做到语音翻译)。

3.资源壁垒和接触门槛

资源壁垒,国外的有些优秀的教育资源,通过采取会员制的方式收取费用才能访问,我是绝对赞成这种制度,版权嘛,可是对于国内许多同学来说,这的确是增加了接触的难度,虽说大部分国外网站都支持类似paypal,amazon pay等支付,可是一旦遇到需要信用卡验证的,就扯蛋了。除此之外,尤其国内的糟糕网络状况,有些国外的教育资源由于众所周知的原因被屏蔽,这个就又是一个天朝人民的无奈了。

如今网络环境下,我们该如何学习? &ZeroWidthSpace;

1.学好英文!English helps.

活了20多年,我觉得做为一个中国人(是的,尤其是做为一个中国人),最庆幸地就是自己的英文水平还行,从阅读(Time,FT等新闻资讯无障碍阅读)到交流(与外国人)和听(大部分新闻)基本都无大问题,尤其是对于学习技术的同学,英语尤其重要,一是可以了解自己领域国际最新的动态,二是可以接触到很多国外优秀的资源,看个TED和youtube总没有问题了。

2.学会翻墙

如果你所需要学习的东西,在国外有许多优秀的资源,不妨学会翻墙,买个好点的VPN,看youtube不卡就行了。

3.学会投入

我现在每个月花在服务器、会员上的钱,扣得我那个蛋疼啊,学生党穷苦呀。不少同学看到XX要收费,就放弃了学习,其实大家可以分析一下自己的投入成本和收益,哪怕你每个月花上50元在网络服务上(为了更流畅地访问国外网站、购买会员)等等,也就是几个快餐钱,可是带给你的潜在价值却是不可估量的。

4.学会搜索

遇到问题,尤其是技术类的问题,学会利用关键字搜索,这时有个建议就是,如果中文搜索不到,可以尝试用英文搜索(记得访问google.com/ncr 无跳转)。

5.学会提问和交流

这里的提问,指的就是向其他人请教和学习,遇到问题,如果自己无法理解,无法解决,可以试着自己描述问题(提问的过程中自己的头脑已经在逻辑化和条理化自己对知识和技术的理解,参与交流,别人可以指出你的错误。只会闭门造车浪费时间,多跟业内人交流,通过知乎、quora、v2ex、stackoverflow、蓝色理想、csdn等专业网站,你能找到很多热心的人。

我脑海中网络教育 &ZeroWidthSpace;

自己也YY一下网络教育,不管怎么样,网络教育这个市场还是充满机遇的,这几年国外已经有不少企业开始涉及和投入到网络教育这个领域中,由此我们可以看到可汗学院的兴起,看到TED的发展。

我就来意识流下(在符合现有技术和环境的条件下)

1.交互方式的革新:

未来的网络教育,不再是单一的视频播放,可以是更加「富元素」的交互,比如说在视频播放的过程中,展示出来的链接,我们可以通过点击直接访问(现在的youtube已经有这种技术),提到一本书,我们可以直接点击到amazon或者当当购买(其他商业视频网站发展:这个算是一个机会吧,目前国内技术比较渣,还没流行开)。

不知道有没有video api这个概念(提取视频中各个元素出来),我们可以很便利地截取视频中展示的一段代码、一段文字、一个psd图层,到自己的本地机器或者开发环境,保存到evernote等等(也许等到1G网络普及,高清视频技术(富含各种其他内容)发展,我们到时候的视频能实现更多功能和交互。

同样,类似于codecademy,我们可以直接跟着步骤,自己修改视频中的演示参数等等。

2.参与社交+真人互动

这个倒可以参考一下国内的YY或者某些视频交友网站,开一个栏目,采取会员收费制,进行定时、直播的学习和交流。直播的时候,收取一定的费用,随后的1-2h,采取premium制,若付费,可以直接跟老师进行交流、答疑等等。

今晚随便谈了谈网络教育,分享了一些自己的经验,不知道大家平时用网络来学习得多么?不妨交流交流。

问几个问题:

1.对于你来说,如果按 娱乐/工具 10分制来划分互联网,你是怎么分?

对于我来说,应该就是3/7。

2.你平时会利用网络学习吗?一般是什么形式?

3.你愿意为网络教育付费吗?你能接受的价格(月租)是多少?

再宣传一下自己的微信公共帐号

以后会断断续续地保持博客更新的频率,大家可以关注我的微信公共帐号「罗磊啰嗦」,扫扫下面二维码就能关注了,大家有什么问题也可以通过微信直接交流。

weixin-code罗磊啰嗦 微信号: speakl (意为speak loud) 「坚持优质原创内容,致力于传播美好的思想,分享有价值的信息」」

Alfred域名IP速查工具

工作中经常需要连接不同的服务器,人比较笨,老是记不住服务器的IP地址,记录在印象笔记中每次去查也麻烦,开终端ping复制粘贴也麻烦。

随手写了一个Alfred的工具,可以直接通过Alfred查找指定域名的IP地址。相对而言,就不需要记IP的数字了,直接查一下域名,就能得到IP地址。

原理很简单,代码没超过20行,但是已经可以解决一个小痛点了。

源码都放在Github了:foru17/alfred-lookupdomainip

使用方法 &ZeroWidthSpace;

  • 需要Alfred Powerpack支持,请支持正版。

下载lookupdomainip.alfredworkflow,安装。

调起alfred,输入cip {你要查找的URL即可}

  • 可直接输入完整URL,会自动解析出域名。

回车即可复制IP地址到剪贴版。

接下来,爱干嘛就干嘛吧。

更新 &ZeroWidthSpace;

2015.9.28 增加了同时查询延时Ping值的功能

AMPLIFI HD -居家体验报告 | 视频

视频 &ZeroWidthSpace;

上一次的《开箱:AMPLIFI HD - 这应该是我用过的最(贵)漂亮的路由器》,看了下1299元的路由器和1099元的WIFI信号放大器的外观。

接下来,我们来进入AMPLIFI HD路由器和WIFI信号放大器的实际体验。

我现在居住的是一个上下两层、共70平米的小LOFT。楼下客厅,楼上工作和居住,在不同的地点都有移动上网使用场景。

我是一个数码控,家里有两台电视、一个Xbox,一个做数据储存用的NAS,两台Macbook,一台PC,四部手机,一个iPad,还有Kindle、智能摄像头等小数码产品,平时需要连接网络的设备众多,一个稳定的路由器,也成了我的必要需求,这一次换AMPLIFI路由器后,给家里的网络也做了一个小调整。

这一次,我让AMPLIFI HD通过有线桥接的方式连接原先的网件路由器,其他家里的所有无线网络设备都通过WIFI连接AMPLIFI,而群晖216+的NAS(千兆网口)则通过网线直连AMPLFI路由器。

过去我家里使用的主力路由器是网件2013年推出的旗舰型号R6300V2,也曾经使用过价格百元极路由1S和200余元的华为荣耀立方。

第一次见到AMPLIFI的时候,倒有点似曾相识,华为荣耀立方也是纯白色的正方体设计,两者来个对比,左边的价格是右边的5倍,对于荣耀立方,我有一句话,不知道该不该讲。LAN口只有百兆你好意思自称千兆(无线)路由?坑呀

同网件R6300V2相比,AMPLIFI的体积的确是小巧了不少。

由于身边没有2016年其他厂商的旗舰路由器,无法做横向对比评测,做纵向对比评测,又有点碾压欺负其他厂商的意思。

我不是一个参数党,这次分享,除了关键数据,不会过多纠结在某一个指标数据和性能本身,更多是从实际体验的角度来感受下AMPLIFI产品。新老路由器,也难得齐露面,也来张合影纪念下。

这里就是AMPLIFI HD所处的位置,白色的正方体,放在家里还是挺和谐的,有点苹果范。

安装和配置AMPLIFI还是十分简单的,接上USB-C接口的电源后,AMPLIFI前方的屏幕就会点亮。

AMPLIFI-HD采用USB-C作为供电接口,也是未来业界的方向,在这里建议产商可以提供稍微长点的电源线,如果插头或者插座距离路由器有点远的话,就比较尴尬了。

第一次开机,会进行初始化。这是一块圆形的触摸屏幕,能够通过手机直接触控屏幕,进行简单的操作。

开机后,会提示用户下载APP来进行初始化设置。但是不下载APP也没关系,也能通过一个开放的无加密WIFI来进行初始化。

初始化的开放WIFI的名称也显示在了屏幕上,名称中就是机器的MAC地址,十分直接,之所以显示物理MAC地址,也是为了方面用户在有多台AMPLIFI HD的时候,方便区分。

这时候手机可以搜索到路由器发射的WIFI信号了,无需密码就可以直接连接。

初始化可以设备新的WIFI名和密码,注意,进入管理后台的密码也需要配置,默认是跟WIFI密码一样。

设置好网络后,路由器会要求给WAN插上网线连接网络。

使用附带的网线连接上级路由的LAN口和AMPLIFI HD的WAN口,WAN口上面有蓝色地球的logo。

UBNT在iOS和Android平台上面都推出了一款AmpliFi的APP,两个平台的APP操作和体验基本保持了一致,切换使用没有学习成本。

进入APP后,初次配置,会通过过场动画的形式,指导如何进行配置,还是挺直接明了的。

APP采用目前流行的扁平设计,中文支持良好。

配置好了之后,手机上就提示网络设置成功啦。

APP的配置选项还是挺丰富的,点击设备图标,就能分别设置不同的设备。可以在APP里面调节路由器的屏幕亮度和呼吸灯亮度,第一次调节还是挺好玩的。

为了防止灯光干扰,还能设置路由器呼吸灯和屏幕的时间,如果路由器是放置在卧室,可以在睡眠时间段关闭灯光。

APP调节屏幕亮度,很有科技感,由于GIF图片压缩问题有点卡顿,实际很流畅。

底部的呼吸灯也能线性调节。

点击屏幕,可以切换显示不同的信息,时间、端口使用情况和连接设备数量、当前设备IP信息、实时网速、总流量等等。一般我都会调节到实时网速,挺带感的。

我把WIFI放大器放到了LOFT二楼的墙上,与楼下AMPLIFI HD主路由隔了一个楼板。

WIFI放大器的信号灯会随着信号强弱而变化。

上次开箱没注意到WIFI放大器的重置孔,浅灰色的小字,不注意看还挺隐蔽的。

WIFI信号放大器磁性的转接头。

WIFI信号放大器电源插座的磁性接孔。用微距镜头拍几张,补充下上次开箱的细节。

十分便捷,无需其他操作,AMPLIFI路由器自动提示找到了新设备,甚至无需通过APP操作,直接点击屏幕ADD TO MESH,就能自动组网。

MESH网络是网络布局的一种,任何无线节点都可以同时作为AP和路由器,网络中的每个节点都可以发送和接收信号,每个节点都可以与一个或者多个对等节点进行直接通信。关于MESH网络的详细介绍,建议可搜索相关资料了解,对于普通用户来说,我想并不会想了解。

回想以前自己的Openwrt网络要进行多设备组网,在不同的设备后台里面进行不同的配置,真是麻烦死了,相比之下,AMPLIFI HD这种傻瓜式的操作,简直懒人福音。

近距离下的屏幕细节,非视网膜屏,清晰度一般,但是AMPLIFI主要就是显示网络相关信息,也不会拿来看照片什么的,从成本的角度考虑,也足够了。

WIFI信号放大器加入网络后,在APP里面也会有WIFI信号放大器的配置。

相比路由器而言,WIFI信号放大器的配置就少了点。

AMPLIFI APP中支持一个分组功能,支持自定义设备分组,并且给不同分组的设备网络日程的限制,家里有小朋友的消费者应该比较有需要,现在不少小孩都已经使用手机了,回到家就王者农药不知道让多少家长操碎了心,给小孩的手机设置一个上网时间段限制,至少能让他的手机暂时无法联网。

最后,再来说说实际的信号体验环境。由于我所住的公寓WIFI信号比较多,信道干扰大,所以就不做机能的极限测试了,就来看看实际体验日常使用体验怎么样。

速度测试 &ZeroWidthSpace;

宽带测速 &ZeroWidthSpace;

我家的网络是上海电信下行200M、上行20M光纤,首先使用iPhone6通过5G网络连接WIFI,分别使用SPEEDTEST和腾讯手机管家的网络测速,实际都能跑满带宽200M,对于千兆路由来说,宽带的速率基本都能满足,最近上海电信已经在一些小区推千兆宽带了,1000M的宽带,对于千兆路由来说,就比较有挑战了。

Macbook 5G无线网络 接 有线NAS &ZeroWidthSpace;

接下来来到我比较常用的一个局域网场景,由于我大量的图片和视频都存放在群晖的NAS中,经常需要通过网络访问群晖NAS中的素材,4K视频动则几个G的容量,对于局域网络的速度要求就比较高了。首先我使用RMBP 2016顶配通过5G WIFI连接AMPLIFI路由器,NAS通过有线网络接AMPLIFI路由器。

在5G WIFI下,直接拖动一个3.6G大小的4K视频文件到Macbook上,下载速度基本稳定在45MB/s-50Mb/s,峰值52MB/s,约400Mbps的传输速率。对于4K视频播放来说,没有什么压力,但是对于4K剪辑来说,就有点吃不消了。

Macbook有线 接 有线NAS &ZeroWidthSpace;

下面Macbook通过USB0-C千兆网卡转接头连接AMPLIFI路由器,再看下传输速度。系统显示是1000 Mb/s的链接速度,千兆网络正确识别。

信号 &ZeroWidthSpace;

最后再来看下AMPLIFI HD的信号衰减情况。这里我主要使用的是Macbook上面的Wifi Explorer来分析WIFI信号强度。

距离0米 &ZeroWidthSpace;

由于Macbook就在路由器旁边,此时信号强度100%,信号极佳,从WIFI扫描列表中,也可以看到我所在的环境WIFI很多,2.4Ghz频道信道十分拥堵。相比而言5G的信道更加稳定。

距离5米 &ZeroWidthSpace;

Macbook距离路由器5米,中间无间隔,此时信号强度88%,十分稳定。

隔了一层楼板 &ZeroWidthSpace;

接下来我抱着Macbook来到LOFT的二层的办公桌,这里与楼下路由器位置隔了一层架空板。但是距离较近,依旧是5米,这是可以看到信号强度保持在82%,依旧不错。

隔了一堵防盗门 &ZeroWidthSpace;

抱着Macbook离开公寓,来到门口,我家的防盗门十分厚实,内部应该有金属层,这时候可以看到信号衰减较大,只剩下56%。

二楼房间 &ZeroWidthSpace;

最后我来到二楼卧室房间,这里距离客厅路由中间隔了两层水泥墙壁和天花板。

此时信号还有64%,表现良好。

Mesh WIFI放大器效果 &ZeroWidthSpace;

一直在说路由器,接下来,我启动了在二楼墙壁插座上面的WIFI放大器,WIFI信号放大器接入MESH网络后,自动拓展AMPLIFI网络。WIFI放大器在原先「隔了一层楼板」的位置(即Macbook保持82%强度处)。

这时我来到二楼卧室里面的储物间,这里距离一楼路由器位置约10米,中间隔了两堵墙,与二楼的WIFI放大器建个一堵墙和两扇木门。

其中MAC地址尾号为0E的为WIFI放大器信号,尾号为AF的为一楼AMPLIFI路由器的信号,相比而言,经过WIFI放大器,我在阁楼最里面依旧能保持约70%的信号强度,而直连1楼AMPLIFI则只有40%,相比而言信号改善良好。

总结 &ZeroWidthSpace;

AMPLIFI HD来到家里已经两周多了,第一次,我把路由器摆到了台面上最明显的位置。毕竟,我想大多数选择AMPLIFI HD的消费者,很大程度上都是被他的颜值所吸引,至少是一见钟情。

UBNT作为路由器的老牌厂商,这次AMPLIFI HD,在小巧、精致甚至酷炫的机身里面,也集成了过去UBNT企业级产品的专业性能。再加上简单好用的智能APP,大大降低了家庭部署高速无线网络的难度,希望家里的路由器和拓展设备能漂亮点,AMPLIFI这个1+1或者1+2的组合,也足够了你的家庭高速网络的布置。

AMPLIFI HD价格虽然很贵,但是你都有需​要这么大WIFI覆盖面积的房子了,那会差这几千么。

我订阅了 7 年的服务:常用的 Setapp 软件推荐

今天来分享一个我已经订阅了 7 年的 Mac 软件服务: Setapp,上一次介绍 Setapp 已经是 2018 年的 1 月。

过去几年,我几乎所有的软件和服务都已经正版化。在过去几年的云账单中,也有介绍我订阅的一些软件和服务,大家如果感兴趣,也可以看看我过去的云账单:

Setapp 是什么? &ZeroWidthSpace;

从 2012 年开始,我就使用 Mac 作为自己的主力机器,平时工作、娱乐大多也是在 macOS。

Mac 平台上有不少优秀的应用和服务,有些是买断制,有些是订阅制。Setapp 是一个包括了 240 多款应用的订阅服务,只要你订阅了 Setapp ,就可以使用其中的应用,不用再额外购买了。

这是当前 Setapp 中评价最高的一些应用,还是有许多熟悉的面孔。范围涉及效率、开发、设计、工具等等,基本覆盖了大多数人的需求。2020 年后,Setapp 也开始支持 iOS 应用了,如果在 iOS 上也有对应的 App,可以 1 Mac + 1 iOS 同时享受订阅服务。

套餐和价格 &ZeroWidthSpace;

目前 Setapp 提供了个人、团队和家庭三种套餐方案,除此之外,也提供了教育优惠,具体的大家可以自己去官网比较。

目前 Setapp 针对新用户,提供免费试用,目前官方默认提供的是 7 天的免费试用,如果使用下面我的邀请链接,则可以获得 30 天的免费试用。

首先说结论,如果想要最划算的套餐,建议找人拼团,一起使用家庭套餐,$19.99 美元 4 个人,年付是$215.88,算下来每人约¥388/年,如果是叠加教育优惠 50% 折扣,则差不多¥200/年

有关订阅和价格的资料,可以参考下面的几篇文章:

我现在使用的套餐 &ZeroWidthSpace;

由于我很早就开始使用 Setapp,目前依旧是老的家庭套餐,$14.99 ,支持 1 主账号 + 5家庭成员共 6 人,年付$161.892,每人约¥190/年,目前偶尔还有一些老车有空位,可以留意下 V2EX 之类的论坛。

优点 &ZeroWidthSpace;

  • 省心:常用的一些 App 都有了,不用再额外给钱
  • 订阅中包含的 App 会逐步增加(但是速度不快)

缺点 &ZeroWidthSpace;

  • 如果之前已经买断过里面的 App,就不划算了。
  • 随着年限的增加,如果更新的 App 不够,性价比会随着时间推移降低。
  • App 里实用的也就几十个,大多还是用不上。

我常用的 App &ZeroWidthSpace;

软件 类型 原价 推荐指数
Spark Mail 邮件客户端 $7.99/月 ⭐⭐⭐⭐⭐
Paste 剪贴板管理 $20/买断 ⭐⭐⭐⭐⭐
iStat Menus 系统监控 $11.99/年 ⭐⭐⭐⭐⭐
Sip 取色工具 $24.99/年 ⭐⭐⭐⭐⭐
Mosaic 窗口管理 £14.99/买断 ⭐⭐⭐⭐⭐
CleanShot X 截屏工具 $29/买断 ⭐⭐⭐⭐⭐
CleanMyMac X 软件管理 $34.95/买断 ⭐⭐⭐⭐
Timing 时间记录 $9/月 ⭐⭐⭐⭐
TablePlus 数据库管理 $89/买断 ⭐⭐⭐⭐
CloudMounter 云盘管理 $29.99/年 ⭐⭐⭐⭐
Downie 视频下载 $19.99/买断 ⭐⭐⭐
MindNode 思维导图 $24.99/年 ⭐⭐⭐

Spark Mail &ZeroWidthSpace;

Spark Mail 是我日常使用的邮件客户端,支持 iOS、Android、Mac、Windows,也支持多端同步,去年开始集成 AI 功能,几年前调研了一圈邮箱客户端,最终还是选择了 Spark。

Paste &ZeroWidthSpace;

Paste 是一款剪贴管理软件,支持复制、粘贴、同步文本、图像等等,对于日常需要经常复制代码、文字的我来说,极大提高了效率。

iStat Menus &ZeroWidthSpace;

iStat Menus 可以在菜单栏显示 CPU、内存、硬盘、网络等系统信息,有时候需要观察CPU、内存和网络情况,直接在 iStat Menus 上就能看到,就不用进去 Activity Monitor 了。

Sip &ZeroWidthSpace;

Sip 也是 macOS 上经典的取色工具了,对于程序员、设计师来说都十分实用,可以快速取色,支持多种格式,也能把常用色保存到自己的调色板中。

Mosaic &ZeroWidthSpace;

Mosaic 是一款窗口管理软件,支持快捷键调整窗口大小、位置,我经常用来快速切换桌面的窗口布局。设置了上下、左右几个常用布局的快捷键。

CleanShot X &ZeroWidthSpace;

CleanShot X 也是我高频使用的截屏软件,经常使用 CleanShot X 来进行窗口截图,里面的标注、马赛克、自定义窗口背景很实用,拿来进行初步的图片处理后,就可以直接发布了。

CleanMyMac X &ZeroWidthSpace;

CleanMyMac X 也是 macOS 上经典的软件管理工具,平时用来清理垃圾文件、卸载软件、优化系统,也是我常用的软件之一。

Timing &ZeroWidthSpace;

Timing 是 macOS 上一款时间追踪管理软件,可以自动记录你在电脑上工作的时间,使用的软件和频率和时长。可以用于评估自己真实的工作效率。

TablePlus &ZeroWidthSpace;

TablePlus 是一款数据库管理工具,支持 MySQL、Redis、MongoDB 等主流数据库,TablePlus 算是比较轻量和好用的,满足了我的日常开发需求。

CloudMounter &ZeroWidthSpace;

CloudMounter 是一款云盘管理工具,支持 Google Drive、Dropbox、OneDrive、Amazon S3、Cloudflare R2 等,也支持 WebDAV。

CloudMounter 可以将云盘以目录的形式挂载到本地,方便直接在 Finder 中操作和管理文件,使用起来比较方便。

Downie &ZeroWidthSpace;

Downie 是一款视频下载工具,支持 YouTube、Twitter、哔哩哔哩等主流视频网站。有时候看到视频想保存下来,Downie 就是一个不错的选择。

MindNode &ZeroWidthSpace;

MindNode 是一款思维导图软件,有时候我写文章和拍视频之前,会先用 MindNode 来整理思路。

其他应用 &ZeroWidthSpace;

除了上面的常用应用,我也在使用 Setapp 提供的一些其他应用,鉴于篇幅就不再单独介绍:

  • Bartender: 老牌菜单栏管理工具,说句题外话,我觉得 macOS 的菜单栏设计真的很烂,逼着第三方软件来解决。
  • Lungo: 防止 Mac 进入睡眠模式
  • Squash: 图片压缩和批量处理工具
  • Proxyman : 代理和抓包工具
  • Gemini: 查找和删除重复文件
  • Archiver: 压缩和解压缩工具
  • Renamer: 文件重命名工具
  • Wifi Explorer: Mac 下的 WiFi 网络扫描和分析工具
  • Disk Drill: 数据和文件恢复工具
  • AIDente Pro: Mac 电源管理和优化工具

总结 &ZeroWidthSpace;

我从 2017 年开始使用Setapp,尽管通过家庭套餐降低了月租费用,但这几年累计的花销仍然不小。

近年来,越来越多的 App 转向订阅制。在这种趋势下,即使排除提供一次性购买的 App,Setapp 相比之下还是更划算且省心。

如果你家里有多台 Mac 设备,或者有多个家庭成员都在使用 Mac,还是推荐可以搞一个 Setapp。

抗癌笔记:评论信息汇总

谢谢你 &ZeroWidthSpace;

在上一篇博客《我的老婆确诊肺癌,希望能得到你的帮助》中,我公开求助,寻求与肺癌相关的资讯、经验,首先向提供帮助的各位朋友说声谢谢你

除了博客,我也在推特、 V2EX 和微信公众号发布了同篇内容,V 站和推特都有大量评论,大家也可以去下面的链接查看。

短短几天的时间里,许多朋友转发、留言、私信,给我们提供了众多有关肺癌治疗、康复的参考资料,对我们后续就医,指明了大概的方向。更重要的是其中基于案例、科研的数据,增强了我们的的信心

如同我在前一篇博客中所写的「帮助可能也遇到这类病状的家庭和朋友,能够给你们带来参考,实现利他的价值」。

今天这篇博客,初步收集、整理上千条评论中,有一定实用价值的内容,汇集到此篇博客中。

说明:不少人的留言不一定严谨,甚至有错误;毕竟除了少数专业领域的人士,或者有实际经历的病人或者家属,大多人对癌症了解是不够的。但是,我和老婆依旧会感谢这些善意的留言,如果大家发现有人提供的信息有所错误,也请就事论事,指出纠正即可。由于本人学识和专业领域所限,也希望大家可以帮忙甄别这些内容。

我将留言内容大概分为下面几块:

  • 肿瘤医院推荐:相对在肺癌治疗方面更专业的医院,为后续再去哪家医院就诊提供对比和参考。
  • 基因检测相关:从目前我老婆的癌症分期来看,包括几位医生朋友的建议,大概率需要基因检测,除此之外,也有朋友提到 MDR(微小残留病灶)检测。
  • 病友经验:癌症病友和亲属提供的经验和参考。
  • 科研资料参考:与肺癌相关的医学和科研资料。

肿瘤医院推荐 &ZeroWidthSpace;

  • 我去年也做了左右肺两次的手术,但都是微浸润,达到浸润程度还是要做基因检测啊,对后期靶向治疗有帮助。磨玻璃结节比较讨厌,很多都是多发性的,定期复检,早期问题不大,祝好。单位公司如果有给你办过重疾险,微浸润以上就符合理赔标准了,可以看一下。广州医科大学附属第一医院胸外科很好,可以去看一下,不过最好也是要有基因检测报告。
  • 磊哥好!广州中山肿瘤医院是广东省比较权威的,医疗水平比深圳强,可以了解关注一下。早日康复,愿幸运女神特别眷顾你们!
  • 磊哥,保重,祝太太早日康复。记得去广州肿瘤医院复诊检查,医学方面广州更可靠。
  • 我父是去年十一月被确诊,现在在抗癌之路。看了你家的分期,你们不用过度担心!我家现在是在中国医学科学院肿瘤医院治疗。我在网上查到的是这家是中国建国以来第一家专科肿瘤医院,相对来说会比较权威。不过总院是在北京。
  • 可以尝试咨询北京朝阳医院(呼吸科全国前列)获得更多意见;涉及肿瘤,建议多方咨询全国排名靠前的肿瘤专科医院,例如中国医学科学院肿瘤医院北京大学肿瘤医院中山大学肿瘤防治中心等,如有必要可以重做病理检查,以防止小概率误诊。
  • 术后尊医嘱,深圳医疗资源有限,如果不是很严重,可以在当地就治疗,靶向药现在部分也进医保了。如果之后还是不太好,可以去上海北京看看。北京可以直接来协和。挂号应该还好 另外查下夫人的保单,医疗险。有没有重疾绿通,或者国际部权益,以及保障范围的用药名录和报销要求。遇到理赔问题可以私我。

基因检测相关 &ZeroWidthSpace;

  • 定期做MRD检测,可以从分子学层面上监测体内是否还有癌细胞残留,提前能检测到是否复发。术后一个月以内做第一次MRD,评估手术切的是否干净以及体内是否还有癌细胞残留。后面每隔3到6个月做一次即可。
  • 活检做基因检测了么?东亚不吸烟的 adenocarcinoma 很有可能是 EGFR 突变,如果是的话,有很多针对这个突变的靶向药,而且临床试验的结果都不错。也可以参考 NCCN treatment guideline,看看美国这边通用的治疗方案是什么。总之,作为肿瘤治疗的从业者,你夫人的癌症应该是有不错的预后的,配合积极治疗,定时随访,stay optimistic
  • 术后大病理报告会告诉你更多有用的信息。目前而言,专心恢复身体,补充好足够的营养尤其是蛋白质,有助于积液的吸收。记得做呼吸训练,慢慢可以恢复运动,记得别提重物,尤其是手术侧。既然经济能力不错,建议基因检测、ctDNA、MRD都做,有些人会说1A1做这些都是智商税,但是从我个人的角度出发还是做,都是以防万一。后面就要开始进入复查随访阶段一开始三个月,后面是半年、一年。务必记得保存好你每次检查项目的数据(不管手术前手术后的全部都要),尤其是ct原始档案(大多是dicom格式)方便以后多方面寻求意见作对比之用。最后是想写给你的,照顾好家属的同时也记得照顾好自己,记得按时吃饭足量饮水~1A2患者家属留
  • 基因检测是非常建议做,组织样本(白片)不要随便用掉非常宝贵。中山肿瘤是南方最好的肿瘤医院,要做基因检测直接到中肿问就行。燃石算是业内最贵,但是质控是最好,也能提供MRD检测方案(反正找小公司都是不便宜)。-说几个事情吧!医学相关!目前看分期还是很早的,不幸中的万幸。1.基因检测一定要做,不知道目前深圳基因检测是否入院,还是要在院外第三方检测机构做(可能有回扣)选一个好一点的公司,做一个大一点的组,拿手术组织做不要抽血。(推测一下夫人大概率是 egfr 突变)2.如果 egfr 突变但是你的分期是 IA1 那奥西替尼报销不了。当然你可以修改疾病诊断证明书(这个我不知道🤷)3.理论上来说 IA1 术后是可以不做术后辅助治疗的(靶向和化疗)。但是最新的医学这方面好想小样本数据有推荐(我要去查一下)。我会关注后续的。希望挺过5年。后面一路平平安安
  • 广东省人民医院 吴一龙 是国内这方面的专家,你可以查一下他的资料和团队,以后有帮助,早期手术效果会很好,不用太担心,基因检测有必要,测试靶点,不过随着放疗化疗的作用,靶点会变化,用药也会变化,目前有一代二代三代针对非小细胞肺癌的靶向药,第四代药物还在临床实验,用药次序需要根据医嘱,不过这都是在出现进展的情况下才去考虑,目前术后就是回复身体和定期复查看是否有需要化疗。非小细胞肺癌在亚洲女性特别是没有吸烟和饮酒史的女性身上发病率极高。心态平和,坦然处之,你老婆是幸运的,一定会好起来的。还补充几点吧!1.理论上来说IA1术后是可以不做术后辅助治疗的(靶向和化疗)但是,但是,但是就怕CT有些地方没有照到,还有你这边没有做PET-CT,也不知道是否有寡病灶或者运气很差的。2.可以去做一个MDT会诊可能价格有点喜人,但是听一下肿瘤内科的建议还是好很多的,外科医生还是有局限性的.
  • 有较高危的微乳头因素,微乳头和实体型比其它的更容易早期转移已经复发。经济允许的话,取病理切片去知名基因检测机构做比较完整的基因检查。年轻女性通常都有可以用的靶向,也可以顺便做 PDL1 表达 22C3 之类的。做基因检测不是说就要用药,而是之后复发,比如过了两三年或更长,一个是组织做就效果没现在好或者没效果,二个是复发可能还不好取病理。另外没看到肿瘤指标 如果术前就比较高的话,会倾向推荐之后辅助资治疗

病友经验 &ZeroWidthSpace;

  • 再来普及一下,对于IAI期非小细胞肺腺癌而言,病理亚型决定了5年生存率,亚型有贴壁型,腺泡型,乳头型,微乳头型,实体性;其中以贴壁型为主的亚型,生存率在浸润型腺癌中5年生存率最高,而如果在亚型中即使存在较少比例的微乳头、实体型成分,也一定要小心注意,经济条件允许上MRD是更好的选择;浸润性腺癌预后而言,前1-2年是复发高危期,前2年,超过5年无复发,临床上可视为痊愈。一般医院会要求每三个月一次增强CT检查,6个月一次全身骨扫描、脑部、腹部增强CT检查。预后对生活的影响:一般浸润性腺癌都是做肺叶切除,相当于你少了五分之一的肺,要说没影响是不可能的,恢复期在1年,前3个月会有明显的咳嗽,3个月后逐渐好转,但在稍剧烈运动、搬重物时仍存在气紧、胸闷等情况。
  • 鄙人去年八月刚做完手术,IAI期的生存率评估,更多是要看病理最终结果显示的亚型,即是高分化、中分化还是低分化,以贴壁为主的预后是非常高的,此外,经济条件允许,建议做MRD监测,可以即把基因突变确定了,同时对于IAI期,每半年抽次血做个MRD,有一定的几率可以提前发现是否出现微转移,好及时做后续应对。
  • 建议加入熊猫与朋友病友互助群,应该是国内最大的病友互助群了。
  • 早期发现是好事,定期复查,基因检测不着急做。现在肺癌治疗手段很多,不影响生活就不用太在意,保持好心态。做为家属,可以多学习相关知识。推荐与癌共舞和肺癌康复圈两个公众号,后者有对应的 App 叫觅健,可以在里面学到很多。
  • 我去年也做了左右肺两次的手术,但都是微浸润,达到浸润程度还是要做基因检测啊,对后期靶向治疗有帮助。磨玻璃结节比较讨厌,很多都是多发性的,定期复检,早期问题不大,祝好。

科研资料相关 &ZeroWidthSpace;

我的老婆确诊肺癌,希望能得到你的帮助

为什么要写这篇文章? &ZeroWidthSpace;

今天是 2024 年 3 月 19 日,对于我来说,这是一篇严肃的博客。这篇文章,不是募捐,也不会以此话题来贩卖悲情、吸引流量

如同我在标题中所写到的:我的老婆确诊肺癌了

在写这篇文章之前,我也与老婆认真讨论了「是否有必要把家庭和个人的隐私公之于众?」,在经过她的同意后,我还是决定把这件事认真、严谨地记录下来。

我是一个程序员,理性与逻辑,是我向来行为做事追求的准则。写下这篇文章,我有两个目的:

  • 一方面,是收集资讯、经验,用以帮助我的老婆在后续治疗、康复的过程中,尽量少走弯路,避坑的利己诉求;
  • 另一方面,也是希望我的这篇抗癌笔记,能够帮助可能也遇到这类病状的家庭和朋友,能够给你们带来参考,实现利他的价值。

在此,真诚地向所有看到这篇文章的各位朋友求助,如果你有任何有关肺癌的资讯、经验、或者是治疗和康复方案,都希望你能够留下相关的信息。非常感激你的帮助。

这篇文章我也分享到了推特,截至 3 月 21 日下午,已经有 100 多万的浏览量,超过 1 千条评论,在留言中也收获了许多有价值的信息:

更新 Changelog &ZeroWidthSpace;

本文会随时间陆续更新,在此栏记录本文的重大更新时间和内容:

  • 2024.04.19:补充中山大学肿瘤防治中心就医时间线,基因检查结果确认。
  • 2024.03.20:补充深圳人民医院「术后病理活体组织检验报告书」。
  • 2024.03.19:文章发布,介绍了老婆的病情背景和治疗关键时间节点。

关键时间节点 &ZeroWidthSpace;

时间 时间周期 机构 事项 备注
2023.12.23 D+0 深圳美年体检 肺部 CT 发现肺结节
2024.01.22 D+30 华中科技大学协和深圳医院 肺部 CT 第一个医生:CT 发现肺部 13mmx8mm 磨玻璃,提示有可能是癌前病变,医生建议入院手术
2024.01.24 D+32 香港大学深圳医院 胸外科门诊 第二个医生:医生建议手术
2024.02.29 D+68 深圳市人民医院 胸外科专家门诊 第三个医生:深圳市最好的胸外科医生之一,医生建议入院手术
2024.03.13 D+81 深圳市人民医院 入院 术前系列检查
2024.03.15 D+83 深圳市人民医院 手术 全麻,切除部分肺组织
2024.03.17 D+85 深圳市人民医院 术中病理报告 主治医生术后第一次交流,初步确诊肺微浸润性腺癌
2024.03.18 D+86 深圳市人民医院 癌症分期 右上肺微浸润性腺癌(T1a(mi)N0M0, IA1
2024.03.20 D+88 深圳市人民医院 病理活体组织检验报告书 大病理结果:肺浸润性腺癌中分化,腺泡+乳头状(约50%),可见微乳头结构(约10%),肿瘤大小 1cmX1cmX0.8cm .可见脉管累犯: 胸膜及吻合钉切缘未见癌
2024.03.28 D+96 深圳市人民医院 术后复查 主治医生第二次交流,解释术后其他方案的可行性和必要性(建议不要过度治疗)
2024.04.09 D+108 中山大学肿瘤防治中心(广州) 专家门诊 综合网友建议和评估,全国肿瘤医院排名第三,广州最好的专科医院,专家赵洪云门诊,医生重新安排增强CT、MR、血液、基因检查等项目
2024.04.10 D+109 中山大学肿瘤防治中心 门诊检查 血液相关检查、心电图检查、全身骨显像CT
2024.04.12 D+111 中山大学肿瘤防治中心 门诊检查 病理会诊,提交深圳人民医院病理组织切片等供基因检查
2024.04.13 D+112 中山大学肿瘤防治中心 门诊检查 上腹、胸部增强CT,颅脑磁共振MR查
2024.04.19 D+118 中山大学肿瘤防治中心 分子诊断检查报告 确定变异基因 EGFR: p.E746_S752delinsV

就诊经历简介 &ZeroWidthSpace;

我的老婆在 2023 年底体检时,通过 CT 发现肺部有「肺结节」,后续体检机构的工作人员多次电话联系,提醒我的老婆务必去医院复查。

老婆在隔年的 1 月,去南山医院(华中科技大学协和深圳医院)做了进一步检查,也做了 CT,第一个医生,提示我老婆肺结节有可能癌前病变,医生建议入院手术切除。

为了保险起见,我们又预约了香港大学深圳医院的门诊,港大医院的医生也建议入院手术。

经过两家医院的问诊后,我和老婆确定了手术治疗的计划,由于春节假期,中间间隔了一个月,节后我们就立马预约了深圳市人民医院杨林医生的专家门诊,杨医生也是直接给出了手术的建议,并给出了入院通知书。随后,我们在 3 月中旬入院,并在 3 月 15 日顺利进行了手术。

从发现症状,到最后的手术,只用了 80+ 天的时间。虽然时间很快,但是从始至终,我和老婆对于这个病的心理预期,都停留在「肺结节」这个病症的范畴,压根没有想到进一步的癌症

在手术完了后的第三天,在与主治医生交谈时,当我们看到《术中冰冻病理诊断报告单》上写着的「至少肺微浸润性腺癌」这个结果时,以及后续大病理《病理活体组织检验报告书》的最终诊断「肺浸润性腺癌」,我和老婆都非常震惊。

术后医生解释:术中病理报告 &ZeroWidthSpace;

在手术后的第一次主治医生交流,由于病理报告上的信息不多,更多的是医生向我们解释内容,从对话之中,我们了解的信息如下:

  • 确诊肺微浸润性腺癌,是肺癌的一种,现在是早期癌症,具体的分期需要等后续的检查报告出来。
  • 微浸润性,说明有可能开始转移(后续升级为浸润性)
  • 这是一个恶性肿瘤
  • 进行手术切除,是早期癌症最好的处理方案。
  • 解释了下为啥切除这么大的原因(手术过程中会把切除下来的组织给家属目视确认)
  • 需要定期复查,半年,一年,五年内都需要定期复查,以观察是否有复发。
  • 如果再次复发,那就一定是晚期(说明已经扩散)
  • 介绍后续治疗方法主要有:靶向药、化疗
  • 说明深圳医保覆盖了大部分靶向药的报销,如果后续需要靶向药,每个月自费几百块即可。
  • 解释基因检测对于癌症治疗的作用,提到医院内有基本基因检测,也可以联系外面基因检测公司做全基因检测,费用从几千到上万不等,但是需要自费,可助于后期筛选靶向药。
  • 如果后面有生育计划,由于需要定期 CT,不建议近两年怀孕。

在交流过程中,我有向医生提问「基于我老婆当前这个年龄和癌症早期的病情,后续康复或者复发,在统计学上的概率大概是多少?」,但是比较疑惑的是,医生并没有回答我的这个问题。

术后第一次与主治医生交谈,得出的病情基本结论是「确诊肺癌,早期,无法保证不复发,后续定期检查即可」,我自己根据医生的解释,大概感觉是虽然这是一个癌症,但是感觉好像不太严重。但医生并没有给出「没啥大问题」之类的主观描述话语,不知道是不是出于医疗严谨用语的需要。

癌症 TNM 分期 &ZeroWidthSpace;

手术之后的第三天,由于我老婆的恢复较好,我们就被安排出院了,在出院前拿到的出院疾病证明中,说明了癌症的分期为T1a(mi)N0M0, IA1。TNM 是一种国际通用的癌症分期标准。

具体到我老婆的癌症分期级别的解释,我用 ChatGPT 查了下,解释如下:

  • T1a(mi):T代表肿瘤的大小和局部扩散的情况。在这个分类中,T1a表示肿瘤的最大直径小于或等于1cm,(mi)是微浸润的缩写,意味着肿瘤的侵袭性较低,局部非常有限。T 代表原发肿瘤(Tumor)
  • N0:N代表肿瘤是否有淋巴结转移。N0表示在检查时没有发现淋巴结转移,即肿瘤尚未影响到淋巴系统。"N"代表淋巴结状态(Lymph Nodes)
  • M0:M代表远处转移的情况。M0意味着没有远处转移,即肿瘤没有扩散到身体的其他部位。"M"代表远处转移(Metastasis)
  • IA1:这是根据TNM分期得出的总体分期结果。IA1是非小细胞肺癌(NSCLC)的最早期阶段之一,表示这是一个非常早期的癌症,局限于原发部位,且大小极小,没有淋巴结转移和远处转移。

综上所述,"右上肺微浸润性腺癌(T1a(mi)N0M0, IA1)"的诊断意味着患者的肺癌处于非常早期的阶段,肿瘤小,局限于肺部一个很小的区域,没有发现淋巴结转移和远处转移。这种早期的发现通常预后良好,治疗方法可能包括手术切除肿瘤、可能的放疗和/或化疗,具体治疗方案需要根据患者的整体健康状况和具体情况来定。

病理活体组织检验报告书 &ZeroWidthSpace;

3 月 20 日中午,接到主治医生的电话,收到了《病理活体组织检验报告书》,俗称大病理。医生表示比术中病理结果要严重一点。由微浸润改为浸润中分化微乳头,并且有脉管累犯,上面加粗部分,都是恶化和消极因素,但是癌症的分期不变,更新的结果表明,复发的可能性更高

术后院外专家咨询 &ZeroWidthSpace;

拿到诊断报告和癌症分期后,我也分别电话咨询了内地某省会城市的医生朋友、深圳某医院的医生同学。其中一人有胸外科 10+ 年的经验,另外一人也有肿瘤相关的研究经验。

在我提供病历、诊断报表、病理诊断报告单之后,两人都给出了类似的意见:

内地医生朋友 &ZeroWidthSpace;

  • 情况比较好,属于早期癌症,不太太过担心。
  • 近年来周围也有认识的人得了肺结节和早期肺癌,预后都不错。
  • 现在这个阶段做基因检测没啥太大用,一般都是在筛选靶向药的时候用。

深圳医生同学 &ZeroWidthSpace;

  • 从分期结果看,早期五年生存率有 90%
  • 腺癌是肺癌的几种亚型里面相对较好的。
  • 依照医嘱,务必远离烟酒,保持良好的生活习惯。
  • 尤其强调了保持良好心态对预后治疗和康复的重要性,并给出了研究数据解释。

接下来我该做什么? &ZeroWidthSpace;

在过去这三个月的问诊、治疗的过程中,我和老婆基本都保持理性、尊重专业知识和专家指导。但是过去这一周,当我面临着「老婆确诊肺癌」这个事实时,对这个领域和相关知识的匮乏,依旧让我觉得无力。因此,如同写这篇文章的目的,我需要尽量地收集、了解更多信息,供我们后续的决策和计划使用。

也许从我上面表述的情况来看,好像能得出我的老婆虽然得了癌症,但是好像还可以,没啥大问题的乐观结论。

但是临床的数据,尤其是 TNM 分期结果对应的 早期五年生存率90%到95% 的数字,依旧是一把悬在我心头的达摩克利斯之剑。

数字放到群体中,只是一个概率,但是这个概率落在个人身上,就是 0 或 1。我不想让老婆承担这 5%到10% 的风险,对于我的内心来说,是难以接受的。

虽然我知道从医学的角度,按照医嘱:定期复查,大概率已经是不错的后续策略。但是我依旧想在这未来的这段时间,尽量提高老婆治愈的百分比。

接下来,我想到的大概确定能做的事情有:

  • 等老婆度过手术恢复期,再去广州肿瘤和胸外科领域更权威的医院,再做一次门诊。
  • 基因检测:虽然几个医生朋友说现在做基因检测没啥大用,但是这个价格尚在接受范围,也欢迎有经验的朋友推荐相关渠道。

除此之外,我并没有太多其他的计划,在此,就希望有经验的朋友,能够给出一些建议和点拨,我发散地想了想:

  • 后续治疗和康复过程中可能会遇到的骗子、骗局?
  • 治疗和康复过程中,可能存在的过度治疗?
  • 从营养学的角度,是否有什么饮食相关的建议?
  • 是否有什么靠谱的网站、论坛、App 推荐?
  • 有哪些可能是我自己无法主动感知的问题?

给大家的建议 &ZeroWidthSpace;

花了几个小时,斟酌文字,写完这篇文章。年过 30,对于我和老婆来说,这是人生的一个大事,也是一个挑战。

在这里,我想给各位朋友一些建议:

  • 定期体检:尤其是 30 岁以上的朋友,尽量每年做一次全面体检,现在很多体检不包含 CT ,建议可以加上。
  • 保险:不管是医保、重疾险还是其他商业保险,梳理你已有的保险,如果有不足的地方,尽量补齐。在遇到这种情况的时候,能极大的减轻经济负担,也能给自己更多的选择。
  • 保持健康生活习惯:远离烟酒、运动,健康饮食,这个也算是老生常谈了。

在开始着笔写这篇文章的时候,我一开始想的文章标题是《理性乐观:我的老婆确诊癌症,希望能得到你的帮助 》,相信保持理性和乐观,一定会给老婆带来好的结果。

最后,再次感谢你的阅读,如果你有任何有关肺癌的资讯、经验、或者是治疗和康复方案,都希望你能够留下相关的信息。谢谢。🤝

美股开户新手教程:写给老婆的家庭投资手册

写在前面 &ZeroWidthSpace;

过去的这半年,中国股市洋溢着乐观向上的氛围,上证指数狂涨到 3000 点;反观美国股市,充斥着虚假的泡沫,在「美国经济崩溃了」的哀声中,资本主义头号大国岌岌可危

在我写下这篇文章的2024年3月2日美国标普500指数 $SPX500创下了自 1971 年以来的历史新高。

在牛市的行情,越来越多人开始在朋友圈和各种平台上,晒出的自己的股票收益,很多人都成了这波股市的「赢家」,人人都是巴菲特的美好时光又回来了

俗话说「看别人赚钱,比自己亏钱还难受」,最近这段时间,大量的人开始关注美股、入市。

这篇文章并不是教你如何炒股,更不会教你如何赚钱,只是以我老婆最近的亲身经历,从一个「美股小白」的角度,记录一下她最近这段时间美股开户、入门经历,分享一些经验和注意事项。

为什么要投资美股? &ZeroWidthSpace;

大家自己翻看过去20年,全球主要股票市场的表现,看完数据后,相信大家自然会得到答案。

同时也推荐大家看一个视频:

我虽然从 2018 年就开通了境外的券商账户,也很早就开始接触美股,但并没有投入过多的精力和金钱到里面,平时也就是看看资讯,小额买卖,所以也没有获得太多的收益。

投资是一个需要长期「学习、投入、实践」的事情,过去这两年,错过了美股的大好时机,但也没有太多遗憾,人生如此,不可能什么都兼顾。

去年底,我让老婆去香港,开了香港银行账户,也是趁着这个机会,同她一起,重新学习和实践一下美股投资,这也是这篇文章的由来。

如何投资美股 &ZeroWidthSpace;

简单来说,如果你是一个小白,下面就是你接下来需要做的几件事:

  • 境外银行开户
  • 外汇汇款到境外银行
  • 开通境外券商账户
  • 境外券商账户入金

境外银行开户 &ZeroWidthSpace;

拥有海外银行账号是进行券商出入金的必要条件,主流的开户所在地银行有香港、新加坡、美国三个国家地区。

其中香港银行开户,相对来说是最简单和快速的渠道,有关这一部分的内容,强烈建议可以参考我之前写的文章,已经十分详细:

汇款到境外银行 &ZeroWidthSpace;

如果你已经成功开户境外银行,接下来就是将境内的资金汇款到自己的境外账户。目前中国大陆居民每人每年有$5万美元的外汇额度。外汇汇款的手法很多,在这里我只介绍合法合规,大多数人能接触到的最简单的方案。

从境内转移资金到境外,都需要进行购汇跨境汇款两个步骤,购汇可以在境内银行直接操作,每个银行的汇率略有不同。

汇款的费用和便捷性相差就比较大了,有些可以做到无损免费,有些需要上百元的手续费。

在这里我推荐两个汇款的途径:

境内银行 账户种类 转账渠道 收款境外银行 费用
中国银行 任意 中银快汇 中银香港 ¥0
兴业银行 寰宇人生借记卡/ 无界卡 外汇汇款 汇丰香港 ¥0

上面两个渠道,经过我的实际操作和群友的反馈,算得上目前普通用户能接触到的最快、最便宜的渠道。

强烈不建议没有经验的新手使用诸如私人P2P换汇境外实体兑换店币圈出入金等渠道,不管是境内还是境外,近年来对于资金的审查都越来越严格。一旦往来钱财涉及赌博、诈骗,轻则被银行冻结账户,重则被公安机关立案调查。

中国银行:购汇 &ZeroWidthSpace;

使用中银渠道,首先需要购汇。推荐直接在中国银行的 App 上操作。

进入 App 的 出境和外币服务>结汇购汇>购汇,即可进入购汇流程,在购汇之前需要看30秒的个人购汇申请书条款,建议大家第一次的话可以看看,了解下国内对外汇管制的法律法规,同意后即可继续后续流程。

接下来就是购汇了,在你国内人民币余额足够的情况下,可以购买想要的货币,可以直接购买港币或者美元,这里的购汇用途需要注意,由于我每次都是小几万地转出(不超过5000美元),我一般填写因私旅游

国内对于大额的购汇和转出审查还是有的,如果一次性转移的金额较大,可能会需要你提供合理的说明和证明文件。

中国银行:中银快汇 &ZeroWidthSpace;

中银快汇是中国银行为满足客户在内地、香港、澳門三地之间迅速、安全实现资金调拨的需求,由内地分行、中银香港、澳門分行联合推出的国际快速汇款服务。

如果你同时有中国银行内地和中银香港的卡,内地和香港的两个账号就可以直接走这个渠道,速度较快,无手续费

这也是我什么在香港开户的文章中,强烈建议大家开中银香港的原因。

以中国银行内地的 iOS App 为例,中国银行>更多>转账>跨境汇款,这个时候就可以看到顶部跨境汇款>境外中行的选项了。

接下来就是选择你的境外银行,填写相关信息。这里有几个内容需要注意:

项目 内容
收款银行所在国家 ( 地区 ) 中国香港
SWIFT 代码 BKCHHKHHXXX
收款人名称 Luo Lei (你的中银香港账户的户名拼音)
收款人账号 012 开头的中银香港账号
详细地址(英文或拼音) 1 GARDEN ROAD, HONGKONG,HONGKONG, HONG KONG, CHINA

这里的详细地址是中银香港总部地址,可以参考中银香港官网的汇入汇款快速参考指南:

待资料填写完毕,确认之后,就可以发起汇款了,建议大家将自己的境外账号信息保存到模板,方便下次使用。

中银快汇的汇款时间不一定,快的时间经历过当天到账,慢的时候可能需要 2-3 个工作日。

兴业银行:寰宇人生借记卡 &ZeroWidthSpace;

强烈建议内地的朋友去申请一张兴业银行的寰宇人生借记卡,或者无界卡。这两张卡权益差不多,可谓跨境神卡,极其实用:

  • 购汇结汇交易费率 5 折优惠
  • 跨境外汇汇款前 30 笔手续费、电讯费全免
  • 境外银联ATM取现每月前 3 笔手续费全免
  • 开具存款证明/外币携带证免手续费

对于我们来说,光前 30 笔手续费、电讯费全免这一项就足够了。

这张卡可以在线申请(微信公众号),但是我建议直接去当地的支行线下申请。我一开始也是在线申请,快递取卡后去家附近的网点激活,结果遇到了一个奇怪的流程 Bug。

由于我收到的卡需要在柜台激活,但是柜台激活只能开启¥5000/每日的转账额度,这个额度显然是不够用的,柜台的工作人员建议我直接找大厅的客户经理,现场重新开张新卡。

这两年反诈管控严格,现场开卡,除了身份证,还提供了深圳社保记录手机实名信息,在 App 里都可以直接查到,给客户经理看了一眼后没啥大问题,就搞定新卡了,并给了5万/日500万/年转账额度的权限。

兴业银行:购汇 &ZeroWidthSpace;

兴业银行的购汇流程和中国银行类似,也是在 App 上操作,相比之下兴业的汇率更优惠一些。同样,购汇的用途大家可以根据自己的实际情况填写,我依旧是因私旅游

兴业银行:外汇汇款 &ZeroWidthSpace;

由于兴业银行在香港的账号也是汇丰,所以内地兴业汇款到汇丰香港,是免手续费的,所以现在我也会使用兴业>汇丰香港的渠道进行汇款

项目 内容
收款人名称 Luo Lei
收款人账号 004 开头的汇丰香港账号
收款人香港地址 1 GARDEN ROAD, HONGKONG,HONGKONG, HONG KONG, CHINA
收款行 Swift 代码 HSBCHKHHHKH

这里的收款人香港地址,我依旧填写的中银香港的1 GARDEN ROAD那个地址,也顺利到账了。有关汇丰的汇款信息,可以参考官方的资料:

兴业银行:手续费注意事项 &ZeroWidthSpace;

虽然兴业到香港汇丰的汇款是免费的,但是这里存在一个小坑,在不同的时间汇美元,可能会产生费用。

具体的背景信息建议可以看看这条推文的讨论:

  • 港币到汇丰香港,不会产生任何费用
  • 在下午 15:00 之前,转美元到汇丰香港,这个时候是汇丰香港处理收款,也不会产生任何费用
  • 在下午 15:00 之后,转美元到汇丰香港,这个时候由于中转行变成了美国汇丰,这个时候可能会产生费用。

解决方案:汇款尽量在下午 15:00 之前进行

美股券商开户 &ZeroWidthSpace;

完成了上面的境外银行开户外汇出境,接下来就是开通境外券商账户了。我自己曾经用过的券商:中银国际富途证券老虎证券长桥证券

其中的富途、老虎和长桥都是新兴的互联网券商平台。之前我主要使用的是富途,目前我主要使用的是长桥,这两个平台用户体验都不错,用户活跃度也行。

用长桥最直接的一个原因,还是因为我的朋友郭宇在用这个,上次他回深圳,一起吃了个饭,聊到美股时,看到他在用长桥,加上他也时不时在推特上分享,我就跟着用了。也算是一个口碑传播。

利益相关声明 💵 &ZeroWidthSpace;

目前市面上常见的互联网券商,基本都有各种形式的拉新和开户奖励,之前我都是在推特上介绍有关长桥证券的相关内容,相关的推文:

建议大家可以先看看上面我的推文,有些评论信息还是有参考价值的。同时也建议大家可以先自行搜索相关资料,对比不同券商平台的优缺点,选择合适自己的券商平台。

长桥:开户专属奖励 &ZeroWidthSpace;

我和老婆都是近期长桥进行了开户,体验下来十分丝滑,不管是开户申请、入金,流程都很顺畅。

通过我的专属开户渠道,除了基础的奖励,还有额外的渠道专属奖励,具体的奖励如下:

基础奖励📦 渠道额外奖励🎁 备注
400 HKD 股票现金卡 100 HKD现金 额外奖励入金20000 HKD 达标
港股永久免佣+美股免佣限时体验卡 港美股永久免佣 额外奖励入金 10000 HKD 即可达标
货币基金收益率5.5% - -
期权现金券5美金 - -
港股现金打新免费 - -
- 长桥周边徽章一套 数量有限
- 长桥周边帆布袋一个 数量有限

由于渠道额外奖励需要客服手动发放,可访问 lb.zuoluo.tv ,扫码加入微信群,联系客服协助开户和索取。

长桥:开户流程 &ZeroWidthSpace;

下载长桥的 App,有内地或者港澳的手机号都可以注册,填写邀请码T405T1后,即可注册成功。这个时候已经可以使用长桥的 App 查看行情、资讯了。相比富途,长桥的 App 更加简洁。

按照中国证监会的需求,现在已经不再允许境外券商平台给中国境内用户新开户,所以现在的券商平台都会要求用户提交存量投资者证明。长桥要求的是:

  • 海外券商账号账户证明结单
  • 香港银行开户证明或者结单

这个时候你可以直接提供相关银行的账单(中银香港和汇丰 App 里都可以下载)。

这里还有一个简化的流程,如果你在境外,或者设备 IP 是香港和澳门的话,可以跳过存量投资者验证这个流程,只需要提供身份证就行了。大家可以人在香港或者澳门的时候,直接在那边在手机开户,或者用点魔法手段,让你的手机暂时变成香港或者澳门的 IP 也可。

后续的流程,按照要求提交相关资料,以及投资经验、风险承受能力的调查问卷,就可以完成开户了。

在工作日的审核还是挺快的,我老婆在下午 14:09 填写完资料,14:16 就收到邮件提示开户成功了。

长桥:入金流程 &ZeroWidthSpace;

开户成功之后,为了达标获得开户奖励,接下来就是入金了。

长桥支持的如今渠道挺多的,在资产页面的存入资金即可进入入金流程。

由于长桥自己的港币>美元兑换汇率比银行要优惠点,我一般都是直接港币入金,选择港币后,可以选择香港地区的银行,以汇丰香港为例,支持eDDAFPS转数快网银转账ATM/柜台支票等渠道。

其中的eDDAFPS转数快是最快的渠道,基本上是秒到账。

在这里注意一下,汇丰的 eDDA 授权中,银行开户证件类型需要选择港澳通行证(除非你当初开户的时候用的是护照),如果填错了也没关系,银行那边会拒绝授权,重新申请即可,注意下银行的短信或者邮件提醒。

第一次入金,建议大家可以先小额试一下,看看自己的银行渠道入金是否正常。成功之后,长桥 App 和银行方都会发送相关的通知。

至此,你的券商账户就已经开通了,接下来就可以按照自己的需要,进行港股和美股的投资了。

开户之后,注意留意下开户奖励,在你入金达标后,例如免佣卡股票卡会陆续发送到你的账号,可以在我的>奖励记录中查询。

最后的话 &ZeroWidthSpace;

如同我在开头所说:投资是一个需要长期「学习、投入、实践」的事情

美股投资风险和收益共存,对于新手来说,甚至风险大于收益。对于所有加入这个领域的人来说,都需要有足够的认知和心理准备。

我自己今年的一个计划,会包含系统地学习投资知识,也会在分享一些自己的学习心得。期待与大家一起交流和学习。

Anayway,祝大家投资顺利,恭喜发财。💵

我的智能家居监控方案:打造自主、安全、可控的摄像头

最近买了一个摄像头,放在家里看宠物,稍微折腾了下,目前算是比较满意了。

如果你对家庭监控的安全性和隐私性要求比较高,可以参考下我的方案。如果不想折腾,建议直接用原厂的 App 和云服务。

自建方案简介 &ZeroWidthSpace;

买了个支持ONVIF协议的 IP 摄像头,通过ONVIF协议接入和群晖的监控Surveillance Station,摄像头进行24H监控,视频存储在群晖外挂的 USB 硬盘上,配合Home AssistantNode-RED,实现了一些动静通知、回家离家自动开关等自动化的功能。摄像头断开外网访问,只能在家里内网或者 VPN 访问,保证了视频的安全性。

为什么要自建监控? &ZeroWidthSpace;

几个月我写了一篇文章《脱钩: 我的个人网络安全策略》,分享我与中国互联网服务和产品脱钩的一些经验。

在那篇文章中,我介绍了我已经把大多数据资产都转移到了境外服务或者下云,主要目的就是为了保护自己的隐私和数据安全。

对「智能家居」来说,脱钩或者下云是不实际的,我是小米生态的重度用户,门锁和门禁摄像头,都是小米生的产品,这些产品基本都强依赖于小米的云服务。入住新家两年以来,这种基于云的服务,的确也带来了很多便利。

摄像头不同于其他智能设备,这是一个极其敏感的,打破了「网络」与「现实」边界的设备,他可以直接看到、听到镜头里的一切。

好几年前,我通过一个业内的渠道,得知某摄像头的云存储服务,曾经将用户的监控视频未加密处理,就直接存在某公有云的 bucket 里。从那之后,我就再也没在家里开启过摄像头。

前几年,众多在各种乱七八糟网站上泄漏出来的视频,想必大家也都有所耳闻。基于上面种种考量,我决定自建监控方案。首先说下我的这套监控方案的优缺点。

自建对比原厂优缺点 &ZeroWidthSpace;

项目 自建方案 原厂
操作性 ❌ 需要折腾,挺麻烦 ✅ 上手即用
安全性 ✅ 本地存储,内网访问,理论可与外网完全隔离 ❌ 云服务、云存储,存在隐私泄露的可能
经济性 ✅ 无额外费用 ❌ 云存储一般都要额外收费
存储空间 ✅ 无空间限制,理论可无限拓展存储 ❌ 云存储空间有限,时长有限
共享性 ❌ 不方便共享给家人 ✅ 便捷分享控制
外网访问 ❌ VPN 访问(可开启公网权限:但不建议) ✅ 直接公网即可访问
HomeKit 支持 ✅ 支持 ❌ 大多不支持

设备清单 &ZeroWidthSpace;

设备 品牌 型号 价格
摄像头 TP-Link 800万全彩云台无线网络摄像机 TL-IPC48AW 全彩 ¥279
NAS 群晖 DS216+ ¥0 (旧设备)
外接硬盘盒 淘宝工厂店 2.5寸 USB3.1 Type-C 硬盘盒 ¥21
外接监控存储SSD 饥饿鲨OCZ Arc100 240G固态硬盘 ¥0 (旧设备)

这次除了摄像头是新购的,其他都是原有的老设备。这里的花销大头是群晖的 NAS,理论上如果你有其他 NAS,或者开源的软路由什么的,也能实现类似的功能。无非就是需要花费更多时间折腾罢了。

系统架构 &ZeroWidthSpace;

名称 说明 配置难度
SurveillanceStation 群晖自带监控中心套件
Home Assistant 开源智能家庭家庭解决方案,与米家和 HomeKit 等联动
Node-RED 开源的流程编排工具,配合 HA 实现各种事件处理自动化

上面就是我的这套监控系统的核心架构,除了SurveillanceStation属于傻瓜级上手可用,后面的Home AssistantNode-Red都需要花费一定的时间和学习。由于我之前就有一些 HA 和 Node-RED 的使用经验,这次只是集成下 SurveillanceStation,所以整体花费的时间还是比较少的。

配套 App &ZeroWidthSpace;

名称 说明 安卓 iOS Web 实时监控 回放 推送信息
Home Assistant HA 的客户端
DS CAM 群晖监控套件的配套 App
Bark 自建的 iOS 的消息推送服务
Telegram 极其方便和自由的社交 App

摄像头选购 &ZeroWidthSpace;

搭建自己的监控体系,基本的要求就是摄像头需要支持ONVIF协议或者rtsp协议,这是安防设备的通用协议,方便用户自己集成到各种系统中。

购买摄像头之前,需要务必确认摄像头支持ONVIF协议,小米的许多摄像头就不支持。

这次我购买的摄像头是TP-LinkTL-IPC48AW,属于比较经典的系列。

  • 支持ONVIF协议
  • 支持 4K 15帧录制。
  • WIFI 2.4G
  • 红外夜视(方便夜晚和弱光环境监控)
  • 支持 Micro SD 卡存储
  • 1个RJ45口,支持网线直连

硬伤是 WIFI 不支持 5G。除了基础的硬件功能,还有各种云服务支持,AI 检测什么的,但是由于我也没打算用自带的 App(美区 App Store 居然还没 TP-Link App) ,所以也无所谓了。

关闭摄像头外网访问 &ZeroWidthSpace;

防止摄像头能访问外网,首先就是关闭摄像头的外网访问权限,仅限内网用户访问。

按照以下步骤设置即可:

  • 给摄像头设置固定 IP
  • 在路由器层禁止该 IP 访问外网
  • 如果使用 OpenWrt 等网关,在防火墙层设置屏蔽规则
shell
#TP-Link 摄像头 防火墙规则
iptables -I FORWARD  -m mac --mac-source E4:DD:66:82:DE:F4 -j DROP
iptables -I FORWARD -s 10.0.0.12 -d 10.0.0.0/16 -j ACCEPT
iptables -I FORWARD -s 10.0.0.0/16 -d 10.0.0.12 -j ACCEPT
iptables -I FORWARD -s 10.0.0.12 -j REJECT

我家使用的是小米路由器,网关使用的是 OpenWrt,除了在小米的控制台关闭外网权限,同时在防火墙设置里,通过添加过滤摄像头IP和MAC地址的规则,禁止摄像头访问外网。

设置完毕后,可以看到这个时候再访问TP-Link自带的App,提示是设备离线状态。但是如果你是在局域网通过内网 IP 访问,依旧可以正常访问。

如何配置外网访问 &ZeroWidthSpace;

将家庭内网暴露到外网,或者内网穿透,是一个与「监控」系统本身不太相关的问题。

从安全的角度考量,我不希望摄像头直接暴露在外网,所以我只是在有需要的时候,通过zerotier来访问家里的监控系统。实际上还有一些其他方案,比如WireGuard等,这里就不做讨论了。

接入群晖 SurveillanceStation &ZeroWidthSpace;

群晖的SurveillanceStation是一个非常成熟的监控套件,这个也是我们的监控系统的核心。之所以选择群晖,是因为我家里有一台群晖。其他厂商也有类似的监控套件,也有第三方的开源解决方案,建议大家就自行研究了。

这部分的内容,以ONVIF 群晖 NAS等关键词组合搜索,网上有很多教程,我在这里就不赘述了。

将监控视频存储到外接 USB 硬盘 &ZeroWidthSpace;

我的群晖DS216+是双盘位,使用两块机械硬盘做了RAID1

由于监控的过程中一直会写入硬盘,会对硬盘寿命造成严重影响。强烈建议非专业需求,不要将监控视频与其他数据混存。

为了解决这个问题,我使用了一块没用的240GSSD,通过USB3.0接口外接到群晖上,作为监控的存储盘。上图就是我目前实际挂载的样子,这样有个好处:

  • 不影响主硬盘的寿命
  • USB3.0 搭配 SSD 硬盘,读写速度更快,回放时更流畅

虽然这样做,不如直接将视频存储在 NAS 的主硬盘上保险,但是我的目的主要就是看看最近的视频,监控录制的视频也不需要长期存储,所以这样做对于我来说倒是一个更经济合理的选择。

由于群晖默认不允许外接硬盘作为存储盘,这里需要一定的小技巧,外接硬盘挂载成正常的文件路径,需要通过SSH登录到群晖,配合ln -s软链的方式挂载外接硬盘。

首先登录群晖的SurveillanceStation,在网络摄像机>编辑摄像机>录制 里添加新的存储器,这里默认是只能在群晖主硬盘空间上存储,这里我命名camera_storage

接下来需要通过SSH登录到群晖,进入跟路径,找到当前挂载的盘符,这个时候可以看到外接的硬盘已经被挂载到了/volumeUSB1/目录下。

shell
# 通过 SSH 登录群晖,通过软链将外挂硬盘挂载到共享文件夹,突破群晖的限制
ssh  luolei@10.0.0.5
ln -s /volumeUSB1/usbshare/ /volume2/camera_storage
#DSM 7.0 后,上述挂载的方法需要做一些调整,具体方法见下

接下来再去编辑摄像机>录制里,把录制存储器选择为刚刚创建的camera_storage,这样后续监控视频都会默认直接保存在外接硬盘上了。

重要更新 &ZeroWidthSpace;

DSM 7.0 后,上述挂载的方法需要做一些调整,不能再通过软链接ln -s的方式映射盘符。简要说明新的步骤

  • 依旧同上添加新的存储器
  • 控制面板 > 任务计划 > 新增触发的任务
  • 创建任务:用户选择root (必须使用root),事件选择:开机
  • 任务设置 > 用户定义的脚本 : mount -o bind /volumeUSB1/usbshare /volume2/camera_storage
  • 重启之后,再去 SurveillanceStation 里设置即可

接入 HomeKit &ZeroWidthSpace;

如果想在 iPhone 的 Home App 里看到监控视频,需要通过Home Assistant将摄像头接入到 HomeKit。这一部分也有比较多的教程和文章,我找了几篇比较详细的,供大家参考。

在这里分享一个小优化点,HA 自带的ONVIF协议添加摄像头看到的实时画面延迟较大(我自己观察约5秒),如果使用WebRTC Camera取流可以大大降低延迟。具体的步骤可参考:

监控效果 &ZeroWidthSpace;

截止到一步,家庭监控的接入录制存储实时监控回放等功能都已经实现了。目前我主要就是通过群晖的DS Cam来进行实时监控和回放。

DS Cam有网页版和 App 版,使用起来还是很方便的,在监控画面有动静的时候,在时间轴上也有标记,方便快速定位。

出门在外时,一般我就使用 App 查看监控,TP-Link 这个摄像头本身支持语音通话,但是通过ONVIF接入群晖这么一圈后,就没有了,暂时还没找到解决方案,没法远程逗狗了,算是一个小小的不方便。

同样的,通过 iOS 自动的Home也能看到监控画面,但是 HomeKit 的实时监控画面延迟也是比较大的,大概是每10秒刷新一次。通过Home Assistant,则是可以实现更低延迟的监控画面。

进阶:动静通知和自动化管理 &ZeroWidthSpace;

接下来就是一些进阶的功能了,主要是为了解决监控动静提醒,以及离家在家模式的自动化管理。

首先思考下面几个问题?

  • 我家的摄像头是否需要24小时监控?
  • 不同位置的摄像头是否需要不同的监控策略?
  • 如果有人在特定时间出现在监控中,是否需要提醒?

现在不少人家里都有摄像头,有些摄像头是用来对着门口,有些摄像头对着客餐厅,有些摄像头对着儿童房的婴儿床。不同的位置,对于监控的需求是不一样的。

我家目前就装了一台摄像头,对着客厅和大门玄关入口。实际上,我并不太需要这个摄像头一直录制。毕竟有时候,我在家还是比较洒脱和坦荡,我不希望自己的一举一动都被摄像头记录下来。

这个时候,就可以通过SurveillanceStationHome AssistantNode-RED来实现一些自动化的功能了。

一句话来介绍这个的原理: 通过自定义规则,触发webhook,来切换摄像头的开关和触发通知。

群晖 SurveillanceStation 支持自定义操作规则,在这里我设置了三个规则:

  • 在家模式: 人员在家时,关闭摄像头
  • 离家模式: 人员离家时,开启摄像头
  • 动静通知: 监控画面出现动静时,发送通知

这个的原理也十分简单,以在家模式举例,通过设置事件源WebHook/外部设备,群晖暴露了一个WebHook接口,通过普通的网络请求触发这个接口,就可以关闭摄像头。

动静通知模式,则是反过来的操作,当监控画面出现动静时,群晖会主动向我的第三方Node-Red定义的接口触发请求,Node-Red会执行抓取当前画面、推送画面到TelegramBark等通知渠道的动作。

HA自动化:离家自动开启摄像头 &ZeroWidthSpace;

如果想做到更加智能和自动化,比如离开家时自动开启摄像头,这个时候就需要通过Home Assistant来实现了。

Home Assistant里的设置>自动化与场景支持自己创建自动化。可以通过设置不同的if then 逻辑来控制不同的设备和流程。

以我的需求为例,当我的手机离开家时(地理围栏),就会自动发送一条通知到我的手机,并请求我的群晖的WebHook API开启摄像头。

yaml
rest_command:
  bark_push:
    url: https://push.bark.demo/notification
    method: POST
    payload: '{"body": "{{ body }}","title": "{{ title }}","icon":"https://static.is26.com/share/icon-vm.png"}'
    content_type: "application/json; charset=utf-8"
    verify_ssl: true

  camera_on:
    url: http://10.0.0.5:5000/webapi/SurveillanceStation/Webhook/Incoming/v1?token=iQRJyuOYPIZODrWMRfT
    method: GET

  camera_off:
    url: http://10.0.0.5:5000/webapi/SurveillanceStation/Webhook/Incoming/v1?token=iVufyERsmJZEM1UJ7M
    method: GET

这只是我的一个简单的示例,同理,当你回到家时,希望什么时候关闭摄像头,也可以根据你的实际需求,实现更复杂的自动化功能。上面我使用到了 HA 自带的RESTful Command功能。有关Home Assistant的自动化RESTful Command配置,可以参考下面的文章。

有关「离家」和「在家」模式,可以参考下下面的讨论:

Node-Red自动化:推送Telegram &ZeroWidthSpace;

弄完上面的流程后,监控的大多需求都已经满足了,最后我们再来补全出现动静>截取摄像头画面>推送图像这个环节。

群晖本身自带的动静通知功能,也能通过DS Cam接受通知,这里我没有使用自动的方案,而是通过Node-Red来实现。

首先放流程图,整个的流程逻辑是这样的:

  • Node-Red 暴露一个http接口/api/camera/capture,用于被动接受群晖的WebHook请求
  • Node-Red 通过网络请求,调用群晖Surveillance API接口,获得当前所有摄像头信息
  • 继续通过网络请求,调用群晖Surveillance API接口,截图指定摄像头的实时画面
  • 最终将获得的截图发送到 Telegram

同理,最终的通知截图也可以使用钉钉企业微信等其他渠道,我选择 Telegram 是因为之前已经集成了,加上 Telegram 对内容几乎完全没有审核,相对而言我更放心点。

复制下面的 JSON ,导入到 Node-Red,修正对应的账号、密码、IP、端口和 Telegram bot ChatId 即可

展开查看 Node-Red 流程配置文件
json
[
  {
    "id": "a07703f3752fc82a",
    "type": "tab",
    "label": "抓取群晖摄像头推送到Telegram",
    "disabled": false,
    "info": ""
  },
  {
    "id": "3902801a557a738e",
    "type": "www-request",
    "z": "a07703f3752fc82a",
    "name": "获取sid",
    "method": "GET",
    "ret": "obj",
    "url": "",
    "follow-redirects": true,
    "persistent-http": true,
    "tls": "",
    "x": 880,
    "y": 300,
    "wires": [["cabd07b9c918bd13"]],
    "inputLabels": ["输入"],
    "outputLabels": ["输出"]
  },
  {
    "id": "6e7a90e85b1d736b",
    "type": "change",
    "z": "a07703f3752fc82a",
    "name": "设置群辉用户名、密码、摄像头ID",
    "rules": [
      {
        "t": "set",
        "p": "dsm_account",
        "pt": "msg",
        "to": "username",
        "tot": "str"
      },
      {
        "t": "set",
        "p": "dsm_passwd",
        "pt": "msg",
        "to": "password",
        "tot": "str"
      },
      {
        "t": "set",
        "p": "dsm_camera_id",
        "pt": "msg",
        "to": "1",
        "tot": "str"
      },
      {
        "t": "set",
        "p": "dsm_domain",
        "pt": "msg",
        "to": "10.0.0.5",
        "tot": "str"
      },
      {
        "t": "set",
        "p": "dsm_port",
        "pt": "msg",
        "to": "5000",
        "tot": "str"
      }
    ],
    "action": "",
    "property": "",
    "from": "",
    "to": "",
    "reg": false,
    "x": 420,
    "y": 240,
    "wires": [["c18d4fe0633037a4"]]
  },
  {
    "id": "833f9be33b550d84",
    "type": "www-request",
    "z": "a07703f3752fc82a",
    "name": "GetSnapshot",
    "method": "GET",
    "ret": "bin",
    "url": "",
    "follow-redirects": true,
    "persistent-http": true,
    "tls": "",
    "x": 890,
    "y": 500,
    "wires": [["45ea4313512d68a6", "1957d8308081700b"]]
  },
  {
    "id": "c18d4fe0633037a4",
    "type": "function",
    "z": "a07703f3752fc82a",
    "name": "url_sid",
    "func": "msg.url = `http://${msg.dsm_domain}:${msg.dsm_port}/webapi/auth.cgi?api=SYNO.API.Auth&method=login&version=3&account=${msg.dsm_account}&passwd=${msg.dsm_passwd}&session=SurveillanceStation&&format=cookie`;\nconsole.log(msg)\nreturn msg;",
    "outputs": 1,
    "noerr": 0,
    "initialize": "",
    "finalize": "",
    "libs": [],
    "x": 690,
    "y": 240,
    "wires": [["3902801a557a738e"]]
  },
  {
    "id": "f3df28b20f02dd3e",
    "type": "function",
    "z": "a07703f3752fc82a",
    "name": "url_snapshot",
    "func": "var sid;\nsid = msg.payload.data.sid;\nmsg.url = `http://${msg.dsm_domain}:${msg.dsm_port}/webapi/entry.cgi?version=9&id=${msg.dsm_camera_id}&api=\"SYNO.SurveillanceStation.Camera\"&method=\"GetSnapshot\"&profileType=0&_sid=${sid}`;\nreturn msg;",
    "outputs": 1,
    "noerr": 0,
    "initialize": "",
    "finalize": "",
    "libs": [],
    "x": 690,
    "y": 500,
    "wires": [["833f9be33b550d84"]]
  },
  {
    "id": "cabd07b9c918bd13",
    "type": "switch",
    "z": "a07703f3752fc82a",
    "name": "",
    "property": "payload.error.code",
    "propertyType": "msg",
    "rules": [
      {
        "t": "nnull"
      },
      {
        "t": "else"
      }
    ],
    "checkall": "true",
    "repair": false,
    "outputs": 2,
    "x": 570,
    "y": 400,
    "wires": [["3902801a557a738e"], ["f3df28b20f02dd3e"]],
    "inputLabels": ["输入"]
  },
  {
    "id": "dcb9b48e6b3c1fee",
    "type": "inject",
    "z": "a07703f3752fc82a",
    "name": "手动触发",
    "props": [
      {
        "p": "payload"
      },
      {
        "p": "topic",
        "vt": "str"
      }
    ],
    "repeat": "",
    "crontab": "",
    "once": false,
    "onceDelay": 0.1,
    "topic": "",
    "payload": "",
    "payloadType": "date",
    "x": 140,
    "y": 220,
    "wires": [["6e7a90e85b1d736b"]]
  },
  {
    "id": "45ea4313512d68a6",
    "type": "image",
    "z": "a07703f3752fc82a",
    "name": "",
    "width": "360",
    "data": "payload",
    "dataType": "msg",
    "thumbnail": false,
    "active": true,
    "pass": false,
    "outputs": 0,
    "x": 1120,
    "y": 500,
    "wires": []
  },
  {
    "id": "c8427c30a83ac775",
    "type": "telegram sender",
    "z": "a07703f3752fc82a",
    "name": "",
    "bot": "ff58d9095b6d2cda",
    "haserroroutput": true,
    "outputs": 2,
    "x": 1420,
    "y": 780,
    "wires": [[], []]
  },
  {
    "id": "1957d8308081700b",
    "type": "function",
    "z": "a07703f3752fc82a",
    "name": "图像转TG格式",
    "func": "msg.payload = {\n    chatId: 10000, \n    type: \"photo\",\n    content: msg.payload,\n    caption: \"家里有动静,监控提醒\"\n};\nreturn msg;\n",
    "outputs": 1,
    "noerr": 0,
    "initialize": "",
    "finalize": "",
    "libs": [],
    "x": 880,
    "y": 740,
    "wires": [["c8427c30a83ac775"]]
  },
  {
    "id": "02fe4781ca3fbb7b",
    "type": "http in",
    "z": "a07703f3752fc82a",
    "name": "/api/camera/capture",
    "url": "/api/camera/capture",
    "method": "get",
    "upload": false,
    "swaggerDoc": "",
    "x": 90,
    "y": 280,
    "wires": [["6e7a90e85b1d736b", "fb5663502a675986"]]
  },
  {
    "id": "fb5663502a675986",
    "type": "http response",
    "z": "a07703f3752fc82a",
    "name": "",
    "statusCode": "200",
    "headers": {
      "code": "0"
    },
    "x": 600,
    "y": 680,
    "wires": []
  },
  {
    "id": "ff58d9095b6d2cda",
    "type": "telegram bot",
    "botname": "拉布管家",
    "usernames": "",
    "chatids": "10000",
    "baseapiurl": "",
    "updatemode": "polling",
    "pollinterval": "300",
    "usesocks": false,
    "sockshost": "",
    "socksprotocol": "socks5",
    "socksport": "6667",
    "socksusername": "anonymous",
    "sockspassword": "",
    "bothost": "",
    "botpath": "",
    "localbotport": "8443",
    "publicbotport": "8443",
    "privatekey": "",
    "certificate": "",
    "useselfsignedcertificate": false,
    "sslterminated": false,
    "verboselogging": false
  }
]

有关这部分的参考文章:

配置好了之后,建议在群晖摄像头的事件检测那里再精确配置下动作检测区域和灵敏度,避免误报。

总结 &ZeroWidthSpace;

从购买摄像头到最终的监控系统搭建,整个过程大概花了我一个下午的时间。基本上所有的步骤,都能在网上找到详细的教程和资料。

除了上面所说的功能,理论上,只要想法够多,还能实现更多的功能,比如:

  • 想要云端存储,配置个同步任务,把监控视频同步到云盘即可(哪怕家里被人放火烧了,也能看到过去的视频)
  • 想要人脸或者宠物识别: 接入图像识别 API,实现人脸识别(实现更精确的动静通知)

小小的捣鼓一番,获得一个功能基本完善,但是更安全和经济的自主监控方案,还是一次挺有趣的折腾过程。

香港银行开户:2024 年更新 | 中银、汇丰、众安开户经验分享

我之前分享了一系列视频和文章,介绍在香港和美国开设银行账户的方法。这些视频和文章,至今依然是我博客和频道中最受欢迎、播放次数最多的内容。

那些博文和视频发布已有一段时间了。跨入2024年,结合最近的变化和实践,我也更新下香港开户的相关内容。

这篇文章在推特上发布后成了热门,有不少的留言和讨论,建议大家也可以去看看:

香港银行开户难吗? &ZeroWidthSpace;

相比几年前在香港银行开户,现在的开户门槛已经大大降低了。无论是在小红书、YouTube 还是 Twitter 上搜索「香港银行开户」,你都能找到各种分享经验的内容。

在小红书、抖音等各种平台上,也有不少中介提供香港银行开户的服务,收费从几百到几千不等。我不否认这些中介提供的服务有其价值,但作为一个在这方面有一定经验的人,我认为关于香港银行开户,更多的是一个信息差的问题。实际上,如果你自己操作,它并不难,也不太需要支付中介费这种额外的花销。只要你准备好相关的资料,理论上,去香港低成本开户是完全可行的。

为什么要去香港银行开户? &ZeroWidthSpace;

2019 年后,香港的金融环境和地位已经发生了很大的变化,随着各种监管政策的实施,香港银行账户的吸引力在某种程度上有所下降。甚至到了2023年,香港被戏称为国际金融中心遗址

但如果我们暂时不考虑政策和国际因素,香港银行账户仍然是一个值得推荐的选择。对于普通个人来说,「有没有」比「好不好」更重要

对于绝大多数中国居民来说,在香港开设银行账户是最简单、最便捷的方式。这种简便性不仅体现在较低的开户门槛上,还包括后续资金转移和兑换等方面。

下面是一些传统的用途:

我在 2018 年就开设了中国银行(香港)的账户,这个账户是我的美股券商出入金账户,也用作我海外收入的收款账号,还是挺实用的。

2023 年底这几个月,我接连从不同的渠道看到了两条消息:

第一条是基于早有政策预期的正式实施,而第二条更像是市场上的谣言。尽管我个人已经拥有了相关账户和应急方案,但在看到这些消息后,我还是让我的妻子去香港,以她个人的身份再开设了两个香港账户。关于她在中国银行和汇丰银行的开户经历,我也在推特上分别分享了:

总的来说,基于过去几年的亲身经历,特别是在 2023 年初疫情防控「平稳转段」的初期,我为家人提前囤积药品的宝贵经验告诉我,对于这些「危言耸听」的消息,宁可信其有,不可信其无。

如果做一件事的成本不高,那就先行一步再说。

开户准备材料 &ZeroWidthSpace;

  • 中国居民身份证(必须):身份证有效期大于 6 个月。
  • 港澳通行证或护照(必须)
  • 内地地址证明(必须):信用卡账单、水电缴费账单等,需要是本人名字的地址,时间需为近 3 个月。
  • 入境小票(必须):入境的时候打印的凭证,出入海关的时候闸机自动打印。
  • 港币现金(必须):激活实体银行卡用,建议准备至少$1000港币。

上面就是大多数香港银行开户所需的必须材料,务必准备齐全。其中的地址证明,可以使用内地信用卡的账单(招商银行、中国银行 APP 都支持下载盖有公章的 PDF 下载,自己打印一份即可)。

  • 工作和收入证明(非必须):在职证明,公司流水等
  • 投资产品证明(非必须):股票、基金、保险等凭证
  • 学习或者工作签证(非必须):海外留学录取信、工作签证等

除了必须材料,你也可以准备一些非必须的材料,主要就是证明「你有钱」和「你打算这么花钱」。这块就是辅助,开户的时候一般银行工作员工都会例行性地问你开户用途这些问题,这些材料可以佐证你的回答。真实回答即可,不需要隐瞒或者欺骗。

在这里强调一下,香港银行开户不是什么「高大上」的事情,对于你的开户申请,银行工作人员也不会有什么「特别」的态度。他们的工作就是按照流程,帮你开户,只要你的资料齐全,他们也就没什么好说的。

对于有些线下网点在开户时候要求的其他「附加」条件,诸如「存款XX万」,「购买XX保险或理财」等要求,你可以理解成个柜台员工的销售行为,你是完全可以拒绝的。

选择哪一家香港银行 &ZeroWidthSpace;

香港银行众多,从我个人从不同渠道了解的信息,目前大家常开的香港银行,主要有以下几家:

银行 排名 资产规模 开户难度 推荐程度 评价
中国银行(香港) 2 ★★★★★ 发钞行,网点多, 开户门槛低,跨境转账方便免手续费,APP 使用便捷
香港上海汇丰银行 1 ★★★★☆ 发钞行, 网点最多,开户门槛低,全球转账方便
渣打银行 3 ★★★☆☆ 发钞行,国际大行,开户门槛一般
恒生银行 4 ★★★☆☆ 不熟,香港本地人喜欢用这个
招商永隆银行 - ★★☆☆☆ 主要针对大陆用户,之前腾讯员工开这个的多,但是评价一般

由于我和老婆都只是开了中银香港和汇丰,这两个银行已经完全满足了我的需求,所以也没额外再去开立另外的银行户口。整体而言,我会优先推荐中银香港、汇丰这两家。

如果你国内也有中国银行的账号,中银快汇是免手续费的,从内地转钱到中银香港卡方便。汇丰在内地的门槛比较高,但是如果你有其他国家汇丰的账号,国际转账会方便不少。

开户流程和注意事项 &ZeroWidthSpace;

大多香港银行都支持预约开户,但是我个人更加建议直接 Walk-in 开户(不预约,直接进银行现场取号)。就我身边的例子而言,预约开户和直接 Walk-in 开户并没有太大区别。简单说下需要注意的点:

  • 选择工作日自己去香港开户,周末大多银行只开周六上午半天,需要注意香港当地的公共假期
  • 去银行网点密集的区域,最好能一次性在一个区域搞定。
  • 可以去相对偏远的支行(比如元朗),相比中环、尖沙咀那种热门地区,开户相对会省事点。
  • 如果开户过程中,在某一家遇到「刁难」,确认无法开户,灵活止损,直接换其他的支行或银行再试,时间更宝贵。

下面分享下我和老婆在 2023 年 11 月的亲身开户经历:

开户:中银香港 &ZeroWidthSpace;

我老婆选择了一个工作日(周一)从深圳湾口岸过境,前往香港北部的元朗中心,在那里的中银香港元朗青山公路分行办理开户。由于出发较晚,她到达元朗时已是中午11点多,银行内排队人数挺多。在银行,她向工作人员表明开户意图后,便取号排队等候。

排队期间,工作人员指导她在中银的 APP 上预先填写了一些资料。叫到号码后,她被引导到一个小隔间,由一位女性银行员工接待。开户流程大致如下:

  • 首先,核对了身份证、港澳通行证、地址证明等材料。
  • 询问开户的目的,特别是是否有投资需求。当我妻子回答有投资需求时,银行员工也查看了她的银行账户余额。
  • 接下来,填写一些基本资料,包括家庭地址和工作单位信息。由于我妻子是公司法人,银行员工还确认了她公司的相关信息。

填写完毕后,另一位银行员工直接将银行实体卡递送到我妻子所在的柜台,并告知了一些银行卡使用的注意事项。

整个开户过程大约持续了30分钟左右。拿到卡后,直接去门卫的 ATM 机预存$1000港币,即可激活银行卡。

开户:汇丰银行 &ZeroWidthSpace;

办完中银之后,我老婆直接去马路对面的汇丰银行,也是 Walk-in 开户。

汇丰的开户流程相比中银就更简单了。我老婆进去大厅之后,跟工作人员说明开户来意,都没有取号,工作人员直接让在 HSBC 的 App 上填写开户资料,我老婆填完之后,工作人员就看了一眼我老婆的港澳通行证,拿过我老婆的手机,确认了下资料,然后就说可以了,给了我老婆一张银行卡,这就搞定了,连柜台都没去。

我自己后来也去了这家汇丰支行开户,同样是没有预约的 Walk-in 开户。工作人员态度非常友好,由于有个预约未能如期到来,一位女性员工便直接带我进入一个办公室进行开户。我的开户过程稍微比我妻子的复杂一些,流程如下:

  • 检查了我的身份证、港澳通行证、地址证明
  • 询问了我的开户用途。
  • 填写了我的家庭资料,收入和工作单位。

我的开户过程大概用时 30 分钟,最后汇丰的工作人员当场给了我一张红色的银联卡(红狮子),拿到卡后,出门去 ATM 机存入$100港币激活,并修改密码,就此搞定汇丰开户。

我们在 2023 年 11 月在元朗的中国银行和汇丰银行开户的整体经历,可以用丝滑来形容。让我不禁感叹,现如今的开户流程竟然如此简单。

无论是中国银行还是汇丰银行的元朗支行,开户体验和效率都非常令人满意,没有任何额外的要求,银行工作人员的态度也十分友好。

开户:ZA Bank &ZeroWidthSpace;

在这里再分享一下我在 ZA Bank 的开户经历,由于我的中银香港之前登记的身份证过期了,我办完汇丰的卡后,也去了元朗青山公路分行,重新更新我的身份信息,排队的人比较多,我就干脆随手在手机 App 上也注册了一个 ZA Bank 虚拟银行卡。

开户唯一的要求就是你必须在香港当地才能进行(需要连接香港本地的 WIFI + 开启手机定位)。全程都在手机 App 上操作。开户流程大概如下:

  • 填写个人基本资料
  • 出入境记录:微信小程序 移民局12367>中国公民服务>出入境记录查询导出记录
  • 扫描身份证、港澳通行证
  • 人脸识别认证
  • 内地银行卡验证

由于 ZA Bank 是虚拟卡,开户成功之后,立马就可以使用了,也可以在 App 里单独申请 VISA 的实体卡,寄送到内地地址是$25港币的快递费用。有关 ZA Bank 的更多信息,大家可以自行搜索,这个卡相比传统的银行卡,除了开户方便,并没有太多优势,交易也有额外的费用,我就是拿来当一个备用卡,聊胜于无。

如果你想要开立 ZA Bank 虚拟卡,可以使用我的邀请码: E3HJW9,你我都可以获得港币奖励。

总结 &ZeroWidthSpace;

最后再来一张目前我的港卡全家福,两个实体银行,一个虚拟银行,共4张实体卡

  • 银联:中银香港,汇丰红狮子
  • Visa:ZA Bank
  • Mastercard: 汇丰蓝狮子

更新下 2024 年香港银行开户的一些经验,希望对大家有帮助。大家如果有机会去香港,还是可以顺路弄个香港银行账号。

卡不在多,够用就行。

珠海马拉松:时隔五年,我又跑了一个马拉松

今年 5 月的时候,我发了个推特,给今年立了一个 Flag,打算重新开始我的跑步训练,争取年底跑个半马。上周成功完赛珠海马拉松,用时 5 小时 21 分,算是超预期完成了这个 Flag。

前段时间写了篇关于减肥的文章《我如何在 7 年内胖了 40 斤,又用 90 天减掉 20 斤》。在这篇文章中,我提到了过去的马拉松经历,这些经历,给我去年的减肥,提供了很大的「自我激励」动力。

今天这篇文章,来讲讲这次珠海马拉松的经历,也分享下过去这半年我的准备工作。

为什么要重新跑马 &ZeroWidthSpace;

我在 2013 年的时候开始跑步,当时还在读书,临近毕业,压力很大,跑步对于当时的我来说算是一个解压的方式。后来的 2013 到 2018 年,基本保持了一年一个马拉松的习惯,累计跑了 7 场全程马拉松,最后一场是 2018 年的普吉岛马拉松。

之前跑马,还是一个年轻小伙,现在年过 30,已是一个「中年男人」。虽然我是从 2019 才中断跑马,但是我身体素质的下滑,却差不多是从 2016 年更早的时候开始的。

2015 年广州马拉松我依旧能跑出4:34:34的成绩,但随后的两年,基本没有再健身和锻炼的我,马拉松成绩不出意外,滑落到了 5 小时以外,2018 年的普吉岛马拉松,带病跑完,成绩达到了 7 个多小时。

年份 赛事 成绩 地点
2014 秦皇岛马拉松 4:46:12 秦皇岛
2014 北京马拉松 4:28:43 北京
2014 上海马拉松 5:43:01 上海
2015 广州马拉松 4:34:34 广州
2016 深圳马拉松 5:25:00 北京
2017 杭州马拉松 5:38:09 北京
2018 普吉岛马拉松 7:20:00 普吉岛

2023 年决定重新开始跑马,倒没有什么太多原因,现在的生活工作压力都不大,也没什么焦虑,也谈不什么「中年危机」的玄学字样,也不需要用跑步来解压啥的。

现在的我,就是切身感受到随着年龄的增长,精力和体力都有所下降。想通过跑步,让自己的身体保持一种更健康的状态。

准备 &ZeroWidthSpace;

我这段时间在推特上一直调侃这是「中年男人的第一场马拉松」,但是毕竟我过去还算是有比较丰富的长跑经验。

如果你也有兴趣跑步,可以参考一些我这半年的准备工作。

首先说结论:一个健康的成年人,即使你没有长跑经历,在科学和适量训练的情况下,完全可以在半年的时间跑完一场半马(乃至全马)

当然,这里的前提是你的身体健康,没有什么其他疾病。马拉松比较还算是一个偏极限的运动,一切以自身身体实际情况为准。

在过去的这半年的时间里,为了跑这个马拉松,我主要就做了两件事情:

  • 每周 2-3 次的 5 公里跑步机快跑
  • 马拉松前一个月:两次 10+ 公里的小长跑

我每周固定在周二和周四的晚上,以及一个周末的任意一天去健身房跑步机训练。由于时间有限,每次只跑 5 公里。我的成绩从最开始恢复跑步时的 30 多分钟逐渐提高,最后能够稳定地在 25-26 分钟内完成 5 公里。

这种稍微快速的跑步,短时间会到比较高的心率,还是很好地提高了我的心肺功能。

距离珠海马拉松最后一个月的时候,我分别在健身房和户外又跑了几次 10km+,适应了下公路跑的环境。

上面就是我这半年,为了重新跑马所做的准备。从科学和合理的角度,这个跑量对于大多数想跑马拉松的人来说,是完全不够的,如果你想挑战马拉松,建议保持每周 30 公里以上的跑量,长距离训练也最好好保持每周一次。

珠海马拉松 &ZeroWidthSpace;

原本我今年是没打算跑全马的,首先报名的是「深圳南山半程马拉松」,家门口的马拉松,结果抽签没中,心有不甘,后来看到参赛助手里珠海马拉松也开始报名了,就直接报了,也需要抽签,但是应该总人数不多,抽签成功了。

全程马拉松总长42.195公里,这次珠海马拉松的线路图在这里

赛前 &ZeroWidthSpace;

珠海马拉松比赛日是 11 月 26 日周日,上海马拉松也是这一天,提前一天,同老婆开车,前往珠海。检录和领取物资的地方在珠海博物馆。

很久没有参加马拉松赛事了,现在每年中国各地会举行上千场大大小小的马拉松,这些赛事的组织和流程都越来越成熟了。

除了参赛服、参赛背包,还有一些能量胶之类的东西,这次我的号码是B1129,属于 B 区起跑。

跟老婆合照一张,感谢老婆这次又陪我来跑马。

在检录的时候,工作人员给佩戴一个蓝色的手环,提醒我比赛结束之前不能取下,否则明天可能无法参加比赛,这个手环采用单向扣,只能紧不能松,应该是为了防止有人替跑。

检录完后,和老婆就回酒店了,这次起跑的地方在珠海体育中心,距离我之前的大学校区不远,发现我们学校附近居然开了一个「珠海暨南大学希尔顿花园酒店」,这次就住在这里,路过校园门口的时候,还拍了一张照片。大一的之后,曾经短暂在珠海校区学习过一年,弹指之间,已经是13年前的事情了。

晚餐去外面吃了个煲仔饭,再买了两袋面包,早早地就回到酒店休息了,上面这就是我这次跑马的全部装备。这次的跑鞋是双11新买的索康尼胜利20,前两周在松山湖小跑穿着磨了磨,我的脚是44码,买大了半码,刚刚好。

这次另外我也买了能量胶和盐丸,之前7次马拉松都没用过,这次准备尝鲜试试。

比赛日 &ZeroWidthSpace;

比赛起跑时间是 7 点 30,检录时间是 6 点到 7 点 15 分,前一天晚上我10点不到就睡了,早上 5 点 45 分起床后,我穿好头一天准备好的装备,吃了四个面包,能量胶,然后就和老婆开车去体育中心了。停好车,步行了10分钟,到达起跑点附近。这个时候已经有很多人了。

存包的车,每个人的号码步上有对应的车编号,跑完之后在终点找到对应的车,就可以取回自己的包。

距离开跑还有 40 多分钟,很多跑友在热身。

距离开跑还有 20 分钟,大家开始陆续进入起跑区域。

我的号码是B1129,属于B区,距离起跑线还有一段距离,这个时候已经有很多人了。

逐渐地人变得越来越多,主持人也在带动气氛,此时的天空也不错,感觉会是一个不错的天气。

7 点 30 分,准时开跑,珠海马拉松相比之前我参加过的其他城市马拉松,人数不多,参赛的高水平选手也少,所以起跑的时候并没有太拥挤,很快就跑过了起跑线。

这次跑马,我属于佛系选手,目标是完赛即可,预估自己的成绩,半马大概率在 2 小时 10 分到 2 小时 20 分内,全马 5 个半小时左右。只要半程正常跑完,后半程走走跑跑即可,都是过去 7 次马拉松的经验总结。

珠海马拉松,除了开头的 10 公里,后面基本全程都是在海边。头 10 几公里,我的状态十分好,配速也很稳定,很享受这种时刻,为了不打乱自己的跑步节奏,头两个小时我基本没有拿手机拍照。

今年我跑过的最远的距离是 16 公里,直到 19 公里,我的整个身体状态都还是挺好的,心率、配速都很稳定。直到 19 公里,我的配速还保持在 6 分出头的样子,这个时候我还在想,没想到今年自己的身体状态恢复得还行,跟以前年轻的时候跑全马的状态差不多(10 公里配速在 6 分)。

转折点发生在 19 公里,这种时候我突然肚子疼,有点想上洗手间,怀疑是不是喝水和能量胶吃多了。后来肚子实在受不了了,在 19 公里的补给站上了躺厕所,也算是我第一次在马拉松比赛中上厕所,以前的马拉松比赛,由于大量出汗,我全程连小便都不用。

上完厕所出来,停了几分钟,节奏也乱了,到达 20 公里的时候,我用时 2 小时 10 分,到达 21.0975 公里半程的时候,用时 2 小时 19 分。后面的半程,就开始我的走走跑跑之旅了。

珠海马拉松后面基本都是沿海,风景很不错,22 公里左右,路过珠海渔女,珠海的形象地标,后面 25 公里,则上了野狸岛。

半程之后,我就开始走走停停了,不久我就被 500 的兔子超了过去,到达 30 公里的时候,用时差不多 3 个半小时,平均下来居然跟我头 20 公里差不多。

随着时间的推移,天气越来越热,这个时候我也不太想跑了,开始数路上的公里牌,每隔 2 公里一个补给点还是挺爽的,我基本上每进一个补给点,都会喝半杯能量饮料,一两杯水,如果有香蕉也会补充两根。过了 30 多公里,路上的人也越来越少,大家也多是走走停停。路上还见到了金山的珠海总部,也算是我的前司吧。

马拉松真正开始的时候是 30 公里之后,30 到 40 公里这一段,我全程属于快走的阶段,到达 40 公里的时候,手表计时是 5 小时,但手表和实际线路有点差异,现实我到达 40 公里的时候要慢 10 分钟左右。

经过 41 和 42 公里的路牌,最后的 200 米,已经到了最后的终点,这个时候我的身体状态除了腿酸,倒也不痛,既然都最后了,抬起脚,冲刺最后这段路。

在终点之前,自拍一张,枪声成绩 5 小时 23分,比起年轻时最好的成绩,慢了将近 1 个小时。但是此时此刻,不同于彼时彼刻,经过这一年多的减肥、跑步,能够恢复到现在这个状态,也是值得真心高兴的。

跑过终点后,也有一些志愿者在这里,让一个志愿者给我拍了张照片。

过了终点之后,就是领取完赛物资,除了奖牌,还有可乐、水、香蕉、毛毯之类。过了终点计时毯后,官方的成绩也直接通过短信发给了我,5 小时 21 分 49 秒。

这就是这次珠海马拉松的奖牌,中间可以旋转,背后是珠海渔女的图案,还是挺有特色的。

老婆刚好这个时候也到了,再合照一张。这次老婆陪我跑马,回程的路上她开车,上车不久,我就在车上睡着了。

成绩证书 &ZeroWidthSpace;

第二天,收到了官方最终的成绩证书,也找到了几张官方的照片,选了一张冲线的照片,使用 AI 工具放大了下,效果还行。

从这次的整体成绩看来,头 20 公里配速尚正常,25 公里之后基本就是稳定在10公里每90分钟的样子,体能下降还是很明显的。

后记 &ZeroWidthSpace;

在这个 2023 年尾,又跑了一个马拉松,跑完之后全身也无痛无伤,第二天就正常上班,乳酸过几天就分解得差不多。

未来还是会继续坚持跑步,也算是继续我的「人生马拉松」计划,目标依旧每年一个马拉松。

我正在使用的 30 个 Chrome 插件

最近我在整理自己使用的各种物品,准备开设一个新系列文章「我在用什么」,分享下我日常生活、工作和学习中使用的软件、硬件和其他物品。

首先从轻松简短的内容开始,介绍下我平时上网时使用的浏览器插件。上次介绍我使用的浏览器插件还是在 2012 年的 12 月。

从 2012 年到 2023 年,在过去的 11 年里,我也经历了从一个初入行的菜鸟程序员到成为一名老程序员的转变。写这个主题文章,跨越了长达 10 年的时间跨度,也确实有些意思。

我使用的浏览器 &ZeroWidthSpace;

目前我的电脑上安装了四个浏览器:

  • Chrome: 谷歌浏览器,日常工作、开发的主力浏览器。
  • Edge: 微软 Edge 浏览器,调试用,Windows 上配合微软生态用。
  • Firefox: 火狐 Firefox 国际版,备用浏览器。
  • Safari: 苹果自带 Safari 浏览器,备用浏览器。

现在的浏览器兼容性已经非常好,不像十年前还需要考虑兼容IE。基本上只用 Chrome 就可以满足需求。我使用的 Chrome 插件通常也有对应的 Edge 和 Firefox 版本。

Chrome 是绝对的主力,我在 Mac、PC、iPhone 和 Android 上都安装了 Chrome 浏览器。Edge 是使用第二多的浏览器,主要用于 Windows 上一些微软生态的配套。

目前,我的 Chrome 配置中有多个 profile,分别用于日常生活和开发调试。下面将介绍我在这两种配置中使用的插件。

Chrome 插件: 日常 &ZeroWidthSpace;

插件名称 插件类型 插件介绍 使用频率
Tampermonkey 油猴脚本 用来安装各种脚本
Bitwarden 密码管理 密码管理工具,管理各种账号密码
2FAS - Two Factor Authentication 密码管理 二步验证辅助工具
Proxy Switchy Omega 网络代理 用来切换网络代理
Adobe Acrobat PDF 阅读器 在线阅读 PDF 文件 后台
Vimium Vim 模拟 使用 Vim 按键操作浏览器 后台
Wikiwand: Wikipedia Modernized Wikipedia 美化 Wikipedia 界面 后台
简悦 SimpRead 阅读模式 简化网页,提高阅读体验
Obsidian Web 笔记辅助 与 Obsidian 笔记软件配合使用 后台
沉浸式翻译 immersive translate 翻译工具 网页对照翻译工具。
Language Reactor 翻译工具 YouTube、Netflix 等字幕翻译
OneTab 标签管理 一键关闭收藏标签页,节省内存
Simple Tab Sorter 标签管理 管理当前 Tab 标签排序
Awesome ChatGPT Screenshot 网页截图 截图和屏幕录制工具
ImageAssistant Batch Image Downloader 图片下载 批量下载网页图片
Search Result Previews 搜索增强 Google 搜索结果页增加预览图 后台
uBlacklist 搜索增强 Google 搜索结果页屏蔽指定网站 后台
Social Blade YouTube 查看 Youtube 频道数据 后台
网站 IP 信息查询 网站信息 查看当前网站 IP 地址信息(ipip.net)
Sider: ChatGPT Sidebar AI 辅助 ChatGPT 工具,内容总结等
京价保 - 京东价保助手 购物比价 京东价格保护,查看历史低价
购物党自动比价工具 购物比价 自动比价,查看历史低价
MetaMask 以太坊钱包 以太坊钱包

Chrome 插件: 开发调试 &ZeroWidthSpace;

我一般会单独开一个新的 Chrome Profile 用于开发调试,这样可以隔离日常使用的插件,避免日常用的的插件注入其他代码影响调试。

插件名称 插件类型 插件介绍 使用频率
Proxy Switchy Omega 网络代理 用来切换网络代理,配合 whistle
ModHeader 网络请求 管理和修改网络请求头
Allow CORS 网络请求 允许跨域请求
EditThisCookie Cookie 管理和修改 Cookie
JSON Formatter 格式化 美化 JSON 格式的展示 后台
XML Tree 格式化 美化 XML 格式的展示 后台
Vue.js devtools Vue 调试 Vue 调试工具

Tampermonkey 脚本 &ZeroWidthSpace;

顺便也分享一些我的油猴脚本,搭配上面的 Tampermonkey 即可使用,更加灵活。

插件名称 插件类型 插件介绍 使用频率
Open the F**king URL Right Now 浏览辅助 跳过各种网站的中转页,直接打开目标网页 后台
Twitter Block Porn Twitter 共享黑名单, 一键拉黑所有黄推诈骗犯 后台

思考 &ZeroWidthSpace;

在写这篇文章时,我发现有很多插件实际上根本没有用到,所以干脆删除了它们,也算是给浏览器减轻了负担。

与 10 年前相比,浏览器本身功能增强相关的插件依旧并没有太多进步,例如浏览器自带的标签管理和截图依旧拉胯,而一些插件随着浏览器自身的更新而被取代,如以图搜索和历史管理等。

然而,与平台和服务相关的插件则变化很大。如果我不再使用某个服务或产品,相应的插件基本也会被删除。

回想过去这些年,移动端化成为一个重要趋势,人们越来越越多地使用 App,而 PC 网站形态停滞不前。对于我来说,在电脑上打开浏览器场景也越来越单一,通常只在工作时才会打开浏览器。

对于自己来说,这可能是需要反思的问题:我应该更积极地探索其他平台产品的开发能力,而不要受到我当前的职业和思维惯性的限制。

脱钩: 我的个人网络安全策略

自 2020 年以来,经常可以从国际政经新闻中看到一个词汇 Decoupling ,中文翻译过来叫「脱钩」,这里所说的脱钩主要就是中美脱钩,中美两个大国在经济、科技、金融、供应链等领域的逐渐升级的分离和对抗。

一方面,是过去 20 年伴随着全球化浪潮的互联网公民的出现,另一方面,是全球互联网的法治化和监管的加强,这两个趋势的交汇,也让我开始思考自己,作为一个互联网从业者,一个普通网民,应该如何应对这些变化。

今天这篇文章,我不会危言耸听贩卖焦虑,更不会鼓励大家做任何违法的事情,只是分享一下我个人在网络资讯安全方面的「脱钩」策略、方案和经验,希望能给大家一些启发和帮助。

一. 为什么要脱钩 &ZeroWidthSpace;

我是一个程序员,由于职业的关系,对于资讯安全有着比较高的敏感度,时不时也会关注一些跟网络安全相关的新闻。

过去几年,也是由于工作的关系,做了不少与「合规」相关的工作,看了不少文档,对于「合规」也有了一定的了解。

大概从 2020 年底开始,随着《网络安全法》《个人信息保护法》以及各种相关法规的陆续实施和监管落地,某种程序上国内互联网行业的「合规」工作也进入了一个新的阶段。

不管是欧盟、美国还是中国,都在加强对于互联网行业的监管,对大公司的监管力度也在不断加强,这是一个全球性的趋势。

趁着着这波互联网法治完善的浪潮,我也稍微研究了一下相关的法律法规,尤其是看了下这些法规中,对于个人隐私、数据的强制要求。

大家可以打开你日常使用最多的几个国内 APP,看看这些 APP 的用户协议,一般都会在APP的「隐私」栏里,在过去几年监管层的要求下,目前主流大厂的应用基本基本都强制公开了。

在了解完法律层的要求后,我愈发觉得国内互联网公司的「合规」工作还有很长的路要走。

2021年开始,我尝试陆续脱离了一些国内的互联网服务,比如:社交媒体、云服务、云存储、邮箱和各类账号等,经过一年多的实践下来,虽然还没完全脱离,但是已经有了一些经验和心得,这里分享给大家。

二.我的脱钩策略 &ZeroWidthSpace;

我的脱钩策略,总结下来就是「有限隔离」。

对于生活在中国大陆的人来说,完全脱离国内互联网服务是不现实的,也无必要,但是可以尽量减少对国内互联网服务的依赖。

当然,这里的「脱钩」并不代表我对国内互联网服务和产品的否定,也不代表我对境外公司或者产品的盲目信任,我只是从理性和博弈的角度分析,选择一个相对来说更加安全的方案。

由于国家强而有力的监管,许多外国互联网公司难以在中国境内运营,也难以获得中国用户的个人数据并开展业务。

不用中国互联网公司的产品,而改用国外的产品服务,恰好可以避免这些数据在国内境内流通,这也是我「脱钩」的原因之一。

我依旧认为国内互联网服务和产品是非常优秀的。但是鉴于个人对于「隐私」和「安全」的偏好,我个人的网络资讯安全策略需要做一些调整。

三.账号 &ZeroWidthSpace;

账号是互联网世界的身份证,这一部分是隔离,也是「数字移民」或者「第二数字身份」的关键。

手机 && 手机号码 &ZeroWidthSpace;

手机是每个人都使用的设备,目前国内的大多互联网服务都是以手机为主要的入口。

国内法规要求所有的互联网服务都必须实名,目前国内通过实名制严格管控手机号码,基本上所有网站都会要求绑定手机号,手机号某种程序上就是一个人的第二身份证。

我的建议是采用至少2套手机 + 多个手机号方案,这是相对来说最简单的隔离方案。

  • A:iPhone + 境外SIM卡 + 国外互联网服务。
  • B:国产手机 + 国内SIM卡 + 国内互联网服务,

iPhone 由于其封闭的 iOS 底层系统和严格的权限管控,应用的权限管理严格,基本上不会出现胡乱读取你设备上其他信息的情况,反过来 Android 由于其开放的生态,加上各大手机厂商在系统层面的定制和不太规范和透明的权限管理,所以安全性上还是有一定的差距。

这部分就不展开了,给大家一个最近的新闻,即使在国内安全和合规做到遥遥领先的头部品牌,也会面临这种被取证的挑战:

目前我使用的手机方案是:

手机 型号 运营商 IP 用途
iPhone iPhone14 Pro 澳门电信 澳门 美区 AppleID + 国外互联网服务
安卓 华为 Nova 6 深圳联通 境内 国内常用互联网服务
iPhone iPhone XS 港版 eSIM 香港卡 - 美区 AppleID + 国外互联网服务

手机号码方面,我的境内外号码也在用途上做了一些区分。

运营商 属地 IP 用途
深圳联通 境内 广东 绑定国内政府、金融机构等关键服务
深圳联通 境内 广东 绑定普通应用与服务、快递等
ClubSim 香港 香港 绑定香地区服务
中国电信澳门 澳门 澳门 -
美国卡 美国 - 绑定其他境外地区服务

我的澳门和香港卡都是通过合法流程申请的,算半实名制的卡,但毕竟还是境外卡,还是有一定的隐私保护。

同时为了避免不必要的麻烦,我也从未使用境外卡号注册境内服务

我之所以依旧使用一台安卓手机做完自己的主力机,注意还是为了便利。一些政务相关的应用反而在安卓上使用更加方便。

日常生活中许多国内应用和服务,领取优惠券什么的,一般都需要绑定国内手机号,干脆就用安卓手机,反正各种平台数据互相读取,用有限隐私换便利

邮箱 &ZeroWidthSpace;

将邮箱交给一个平台,某种意义也是一个风险挺大的事情。但对于大多数人来说,也没有其他选择。在邮箱服务的选择上,尽量遵循以下几个原则:

  • 可持续性:最好这个公司和产品能活得久一点
  • 安全记录:是否有被黑客攻破、数据泄露的记录
  • 数据和隐私:向任一政府或者机构提供数据的记录和底线

新闻参考:

过去很长的一段时间,我都使用境内腾讯域名邮箱+境外Gmail的组合。

目前除了 QQ 自带的数字邮箱和工作必须的企业邮箱,其他的都迁移到了境外,算是完全弃用了国内邮箱。

目前我的邮箱方案是:

邮箱 用途
Google Workspace 绑定个人域名,用于日常工作、个人通讯
Gmail 绑定国外主流互联网服务
CloudFlare Email Routing 绑定匿名域名,实现任意邮箱转发,用于注册境外中小产品和服务

之所以使用域名邮箱,是因为即使是再大的公司,也有可能会倒闭,而域名邮箱可以随时迁移到其他服务商,不会因为某个公司倒闭而导致邮箱失效。

Google Workspace &ZeroWidthSpace;

我在《我的云账单:2023年》中曾经介绍过我将邮箱从原来的 G Suite 迁移到了 Google Workspace,支持绑定多个域名,最多可以添加300个独立账号,每个账号都拥有独立的 Gmail ,加上终身免费,还是非常划算的。

Cloudflare Email Routing &ZeroWidthSpace;

CloudFlare Email Routing 是一套免费的邮件转发方案,支持Catch-all,可以将任意邮箱转发到任意邮箱。

txt
# catch-all 支持将任意邮箱转发到指定邮箱,并隐藏你的真实邮箱地址
abc@luolei.org -> your-public-mail@gmail.com
edf@luolei.org -> your-public-mail@gmail.com
xyz@luolei.org -> your-public-mail@gmail.com

Cloudflare 的 Workers,支持你根据不同的域名,设置不同的转发规则,比如:

ts
export default {
  async email(message, env, ctx) {
    // 通过 message.to 判断希望转发到哪个邮箱
    // 例如把 ssyy.1984@luoeli.org 转发到 your-secert-mail@gmail.com
    let forwardAddress = message.to.includes(".1984")
      ? "your-secert-mail@gmail.com"
      : "your-public-mail@gmail.com";
    await message.forward(forwardAddress);
  },
};

使用Catch-all方案,理论上可以实现无限多个邮箱地址,有时候我需要注册一些不太重要的境外服务,就会使用这个方案。毕竟网络安全不分国界,境外服务也存在数据泄漏、密码爆破的风险。

txt
#例
某网站A: a.random@luolei.org 密码: 123
某论坛B: b.kitty@luolei.org 密码: 456
某应用C: c.mikami@luolei.org 密码: 789

即使这些网站中的某一个发生数据泄漏,也不会影响我的真实邮箱,也不容易撞库发现我的其他账号。

离岸金融账号 &ZeroWidthSpace;

使用境外服务,尤其是涉及到金融、支付、投资、交易等服务,都需要绑定银行卡或者信用卡,这部分也是脱钩的难点。

有关这一部分,大家可以参考我过往的有关境外银行卡的文章和视频:

四.云服务 &ZeroWidthSpace;

对于云服务,我采用的是迁移境外+下云的双重方案。

服务 Before After 变化
域名注册商 Name.com Cloudflare 境外
DNS 解析 DNSpod Cloudflare 境外
博客 腾讯云广州 Vercel 境外
MySQL 腾讯云 MySQL HomeLab 下云
MongoDB 腾讯云广州 MongoDB Atlas 境外

域名 &ZeroWidthSpace;

目前我有不少域名,用于博客和各种其他用途。虽然我的好几个域名都按照国内法规备案了,但我还是陆续把域名注册DNS解析的服务商都已经迁移到了境外。

目前我使用域名服务商是 Cloudflare,国际主流,域名价格也不贵,提供免费的 DNS 解析服务,支持 HTTPS,非常好用。

在这里需要提醒,针对这类具有「根用途」属性的账号权限管理,一定要注意邮箱和找回方式的隔离:不要使用国内邮箱来注册账号,也不要使用国内邮箱来找回密码

如果你的域名注册商是国外的,但是你使用了国内或存在安全风险的DNS解析服务商,并且将国内或域名邮箱作为找回邮箱,那么你的域名可能会受到中间人攻击。

理论上,攻击者可以通过修改你DNS中的MX记录来转发找回邮件到新的落地邮件服务,从而实施攻击。

云主机 &ZeroWidthSpace;

在今年初《我的云账单:2023年》的服务器相关部分 ,我还在使用国内云服务商的主机,现在我只保留了一台香港轻量服务器,但是已经将所有数据均下云或者迁移到了其他境外云主机,这台香港轻量只用于转发一些特殊的网络请求。

过去我的博客和一些应用都是部署在国内云主机上,虽然我的网站已经备案,但是还是难免会接到一些「投诉」,比如要求屏蔽某一篇文章。时不时也能接到备案中心的检查电话,虽然都是正常的检查,但是也是一种麻烦。

除此之外,由于国内互联网主机也会有一些「安全检测」,如果发现你有一些「不正常」的行为,也会被封禁,比如我之前在国内云主机上部署的一个应用,由于有一些于境外通讯的「不正常」的行为,也警告封禁了。

去年我搬新家后,我在家里已经部署了一台服务器,我已经把大多数的服务迁移到了家里的这台 HomeLab。如果外网需要访问,直接通过 DDNS 或者 Cloudflare Tunnel 暴露就可以了。

由于硬件、数据完全都在自己手上,可以说再也不用担心账号「被封」的问题了。

当然,将数据部署在自己的服务器上,也需要注意安全,比如防火墙、安全组、密钥管理、数据备份等等。目前我是采用了多设备+多备份的方案,重要的数据在两个NAS上做了双备份,对于MySQL、Git、Docker 持久化数据等,我都做了定时备份策略。

云存储 &ZeroWidthSpace;

由于我的博客有大量的图片资源,加上后面笔记同步的需要,我也陆续将所有需要上云的数据迁移到了境外。

存储源 类型 实体属地 存储内容
Cloudflare R2 R2 博客图片

目前我唯一使用的云存储是 Cloudflare R2,这是 Cloudflare 的一个免费的云存储服务,也可以实现图片的全球分发。

五.个人数据 &ZeroWidthSpace;

同样的道理,我也将所有个人相关数据都迁移到了境外或者下云。

存储源 类型 实体属地 存储内容
群晖NAS 本地 NAS 个人 照片+视频+ homelab 数据备份
绿联NAS 本地 NAS 中国 工作照片+视频+影音娱乐
iCloud 美国 照片+视频+文档
OneDrive 美国 照片+视频+文档+应用数据备份
阿里云盘 中国 影音娱乐
百度云盘 中国 影音娱乐

目前我家里机柜中有两个 NAS,一个是群晖DS216,一个是绿联DX4600

群晖是老牌境外品牌NAS,绿联是国内品牌NAS。群晖我只关闭了群晖本身的服务,只有指定文件夹的数据与 OneDrive 同步,同时是软路由的备份机,运行在软路由上的各种应用数据,会定期同步到群晖上。

由于绿联的服务在国内,所以我只备份了一些不太重要的照片和视频,比如一些工作照片和视频,以及一些影音娱乐。

至于阿里云盘和百度云盘,我则完全只用来下载影音娱乐,不会上传任何个人数据。手机应用也关闭了自动备份和相册权限。

照片 &ZeroWidthSpace;

对于个人隐私资料,例如相册、视频、文档等,目前我采用的是本地备份 + iCloud 外区 + OneDrive的方案。

我的 iPhone 上有有超过2万张照片,开启了土耳其的 iCloud 2TB 套餐,与我的老婆共用。

我的安卓机目前用的是华为,关闭了华为云服务,但是开启了 OneDrive 的自动备份,这样可以保证我的照片在云端都有备份。但是我一般也不在安卓手机上拍摄和保存私密照片。

照片同步到云上后,会再通过群晖NAS的云同步,同步到我家里的 NAS 上,这样就实现了三重备份。

文件 &ZeroWidthSpace;

其他文件,我一般都直接保存到 NAS 上,再通过穿透或 ZeroTier 或者 Tailscale 之类的方案,实现远程访问。

这样的好处就是,云上没有我的私人数据,就也不会麻烦任何云服务商的「安全内容」之类的检测。坏处就是,家庭网络相比云服务商还是差了不少,速度受到家宽上限的限制,进行大文件传输还是比较慢的。

笔记 &ZeroWidthSpace;

作为一个使用 印象笔记 超过十年的用户,鉴于印象笔记这几年越来越劣化的用户体验(全客户端的广告),我现在也逐渐开始转向使用 Obsidian 自托管的方案。

Obsidian 是基于 Markdown 的知识管理软件,MD文件我通过 remotely-save 同步到 OneDrive 上,这样就实现了多设备同步。

由于笔记中也存在大量的图片和附件,我使用 Image Auto Upload Plugin 配合本地 PicGo 上传到自己的云存储中。

密码与 2FA &ZeroWidthSpace;

密码和 2FA 是个人隐私和安全的最后一道防线,也是最重要的一道防线。

我并没有使用 1Password 之类的成熟产品,目前我使用的密码管理工具是开源的 Bitwarden,同样是托管在自己的服务器上,只能通过内网或者VPN访问。

我的所有账号,都开启了 2FA 或者多因素认证,我使用的2FA app 是 2FASAuthy

这里有一个技巧,在添加某个账号到 2FA app时,我会另外把二维码保存到加密的仓库上,以防手机丢失时,还能通过原始的二维码恢复。

总结 &ZeroWidthSpace;

这篇文章主要是分享我个人的网络资讯安全策略。由于每个人的需求和偏好不同,所以这些方案并不一定适合所有人。

比如我使用的邮件方案,虽然安全性高,但是无法直接通过境内运营商的网络访问,我也需要通过公司的专线或者澳门卡的漫游来访问。

写完这篇文章,发现尽管自己已经做了不少,但是面对诸多不可抗力,依旧感觉无奈。

Anyway,希望大家都能够保护好自己的隐私和数据。

❌