笔记整理、DataHoarder和NAS

笔记整理

最近在将笔记从Wiz转移Obsidian。突然发现以前从有道时代开始收集的“笔记”基本很多都是无用的。在这里给自己总结一下,避免新的仓库出现同样的问题:

第一个是Maybe Later类型。在Wiz的仓库类型的笔记有很多属于这种,整篇文章其实有一些观点是有意思,想深入去挖掘一下,然后就正个文章就保存下来。实际这篇文章可以通过提取一些想研究的关键字,然后放入Inbox、Draft里面。让后面的自己的去判断有没有研究的价值。对于这种闪光类的想法,其实很多时候都经不住时间的考验,很快就会放弃了。毕竟人的时间的是有限的,在没有对比的时候可能觉得很有趣,但是在一堆想法里面获取这个东西看起来就没有那么多的研究价值。

第二个是操作手册类型的笔记。这类型的笔记基本是教你在XXX环境中处理YYY事情的步骤。这类型的笔记问题有三点:

  1. 很容易过时。例如我的笔记里曾经有一篇《FreeBSD 9.2下搭建Xorg环境》,这是一篇大概是14年的笔记本。现在FreeBSD都到13了,而且X环境也变成了Wayland,这个摘录就显得毫无意义。
  2. 很容获得。现在的互联网已经是一个巨大的数据库,而且在Google等搜索引擎的帮助下,即便的是一些历史性的资料,也比较容易获得。除非你预计在一个脱机或者互联网彻底被破坏的末世环境中使用。如果在这个情况下,官方的Manual+源代码不比这种杂乱的资料有用?
  3. 很容易产生错觉。从我目前整理来看,这类笔记由于非常容易获得(一个WebCliper就可以),让自己产生一种知识库很“充裕”的错觉。这类笔记的增多很容易让自己笔记库变成一个松鼠窝。

如果真的要摘录这类型的笔记,那重复参考上面的标准:不容易过时的、不容易获得的,并且需要经过提取过而不是整页摘录的,并且融入自己笔记体系。

第三个是Awesome类笔记。这类型的笔记发散得很厉害,有点像是第一种和第二种的集合。很大程度上,我选择记录下来是因为觉得以后会有用或者作为一个提醒,提醒自己去后面去看一下。另外这类笔记基本是在Github上的仓库,有些作者保持更新,所以直接摘录下来作用不大。目前还没考虑怎么处理这种笔记,除了有一些太水的列表直接扔掉外。

关于笔记系统要怎么建立后面等Obsidian的PKM成型后再给自己的看法。

松鼠症(Data Hoarder)

在整理这些笔记的过程中,发现以前笔记的仓库也是一个松鼠窝,里面堆满各种松子。实际一个知识库(PKM)重要的是自己总结的内容,而不是网上摘录的一些文章。任何网上参考的内容,实际只需要记录一个关键字。我甚至还在WIZ笔记里面找到了某些RFC规范,我到底保存下来这些干嘛?RFC本身就是一个公开的规范,只需要一个编号、标题,就能在网上找到。回想起自己最早的Data Hoarder的行为,可能是高一的时候。当时在学VB编程,好不容易从YAHOO的网站目录上,找到一个VB源码案例网站。当时只能利用56K的MODEM下载回来本地慢慢研究,久而久之,收集的内容就多了。然后开始大学,有了2M的宽带,有了BT,有了eMule,就那种免费下载资料的感觉让人愉悦。各种电影、资料和软件,让人不舍。最初还有硬盘容量的限制,当时硬盘每GB价格还是挺贵的。后来刻录光驱大众化,这种囤积的欲望达到巅峰。在eMule/BT->刻录的循环中乐此不疲。曾经还因为感觉在光碟上写内容太麻烦,做了一套基于文本的CD内容记录系统。

NAS

大约在2014年,群晖和QNAP开始培育消费市场的NAS的时候,我也开始尝试和组装一套DIY的NAS。NAS可以是说为Data Hoarder量身订造的产品。将下载和存储二合为一,而且大容量的机械硬盘也开始普及硬盘,开始进入TB级。在拥有了NAS以后,松鼠症得到了完美的研究,将各种资料转移到NAS上。唯独刻录光碟这个事情成为了过去。直到最近整理笔记,开始反思这种收集的行为以及家用NAS的必要性。其实对于大部分来说人,刨去网络下载内容(电影、资料等)真的不需要NAS。尤其是商业公司开始将这种少数人需要使用的物品,包装成普通消费需要的物品时,事情会变得复杂起来。例如这个案例,还有一堆对RAID没有清楚认识的人。这也不能怪消费者,有多少人建QTier的时候会去看Datasheet;又有多少人直到QTier其实对家用基本是没啥作用的呢。而NAS厂商似乎没在易用性上做出过多的考虑,各种的PHOTO App、同步云盘等体验简直不要太难用。即便是从2012年到现在,经过10年的发展,APP的稳定性、易用性依然无法达到一个商用APP的标准。这里有一个视频,是我感觉作为一个普通人对NAS比较中肯的评价。菊花厂最近也出了一个NAS,似乎大家对NAS讨论又热烈起来,期望能将NAS的易用性提高一个高度。但是我对这个是比较悲观的。影音、相册这块要做出花,需要的算力不低;对于影音本身也是一个灰色地带,直接在集群处理也不太合适,而且成本很高。

对于我来说,戒掉屯资料的习惯后,其实本身需要存储的资料并不多。这个NAS坏掉以后估计我也不会再考虑再入手。

重拾专注力

重登好久不上的微博,刚好发现一个关于专注力的视频:《如何保持极致专注》。想到自己似乎很久没有关注这方面的内容,看完之后简单总结一下:

  1. 处理好压力水平。虽然说Deadline是第一生产力,这种只是表明Deadline对短期任务的一种促进力;以我自己的经验来说,过多压力会很大程度的消耗自己对长期规划的能力,使自己更倾向于短期的满足(后面有机会我再单独总结一下自己的情况)。
  2. 从被动关注变为主动。这个其实是老生长谈了,简单来说就是将主动获取短期快乐行为从被动(无意识的)修正为主动有意识的。目的并不是要禁止获取短期快乐行为,而是要自己把握主动权。
    1. 建立Not TODO List去提醒自己
    2. 建立明确的活动周期。我认为对于长期有利行为或者短期满足(自我奖励)对有用。对于长期有利的行为在制定目标和结束周期后,会对自己有明确的鼓励作用;对于短期满足的行为,设定结束时间会减少自身的“罪恶感”以及明确自己已经得到过奖赏,避免陷入无止境的奖励(重复刷视频网站、信息网站的推荐流)
    3. 设定任务清单和优先级排序。

最近我已经将大部分的笔记内容从Notion和WIZ迁移到Obsidian。并开始逐步恢复时间日志等内容,接着就要开始实践上面的内容。尝试让自己回到几年前的精神和生理状态。

人体工学座椅的迷思

人体工学座椅这个概念在这几年迅速风靡起来,如果没用过这个椅子都感觉有点不好意思跟别人说自己跟电脑打交道的。尤其是互联大厂纷纷以其为“福利”吸引各种打工人,从国外的FLAG到国内的BAT,人体工学椅似乎被打了一个“高端”的标签。而椅子的品牌则从高端的Herman Miller、冈村到国内的保友、Ergomax。甚至出现了很多ODM的产品,严选、京东。人体工学座椅的产品完成了从高、中、低的全层面覆盖。但问题是,我们真的需要一张人体工学椅吗?

诚然,一张椅子对一个长期伏案或者电脑工作者是非常重要的。但是我们真的需要一张1万块左右的Aeron2?Embody和严选的又有什么不一样呢?要解答这个问题,首先要考虑我们到底想要的是什么?是健康的颈、腰、臀。那怎样才能得到健康的颈腰臀呢?答案是科学的座姿+适当的辅助。关于科学坐姿的解释,可以参考知乎这个答案,我这里贴个图:

座姿

从上面的图可以看出来,其实坐姿是一个比较系统的内容。如果你能按照这些参数,从脚底开始测量,量好坐高、桌子高度、显示器高度,就算是完全固定的椅子和桌子也能得到一个合理的坐姿,再加上自身的肌肉锻炼,就完全可以了,根本不用所谓的人体工学座椅。张大妈这篇文章就非常好的说明问题。

如果你是新选购桌子+椅子,完全可以参考上述文章。

对于桌子,首先定制一个略低于常规的桌子。75CM的桌面真的太高了,我现在就是76CM的桌面高度,手需要抬得比较高才能使用鼠标,导致使用鼠标时的支撑点在手掌,手非常累。对于180的男生,68CM左右是比较合适的台面高度(记住是包括台面板材厚度)

我用的是永艺的这张椅子:

目前的椅子高度其实是合适的,不过这张椅子除了太窄(因为太胖了T_T),在我坐满后,基本无法打开大腿。对男生来说有点难受,懂得都懂。所以椅子除了高度外,宽度也是一个比较重要考量的因素。

所以回到刚才的问题,我们到底需要一个1万多的人体工学座椅吗?我认为是不需要的,除非:

  1. 你无法决定桌子或者椅子的高度,来适应自身的坐姿。例如你在公司、桌子的高度固定,这时你可以考虑用人体工学椅子去适应桌子的高度。但是需要注意这个调整只能在一个比较小的范围,并且你能得到只是一个次优解。
  2. 长时间*不能离开座位*的,我相信除了除了一些特殊岗位外,并不存在这种情况。所有的人体工学座椅所谓的支撑,还不如你每一个小时走动1-2分钟。而且有一些所谓的支撑,反而是反人类的错误设计。例如友保的金豪E+,我在公司就有用,顶得我的腰难受。
  3. 需要底部透气的,目前人体工学椅大部分都是网布设计的。但是要注意,用网布带来一个问题就是如果网布的弹力太弱,可能会导致凹陷,压迫大腿。尽可能用好面料的座椅,就我目前的体验,网布确实会带来一定的不正确大腿受力。

Notion并不适合作为PKM核心组织软件

本文作为我个人尝试使用Notion作为PKM的核心软件这一段时间(大概6个月左右)碰到的困惑、疑问和总结。通过下面阐述的几点思考,最终得出标题中的结论,并且在文末简述后续尝试的方向。

  • 官方定位

从今年开始迁移到notion后,虽然基本能保持周更新。但更新的内容基本跟团队协作相关。除Synced block外基本都没有对PKM这块做增强;依然没有整合Diagram。由这些更新内容可以看出来官方团队对其的定位更偏向一个团队协作的工具。

  • Database很难实现复杂的查询关系

Database是Notion是其核心并具有特色的功能。只需要简单的点击就可以对数据进行过滤、分组和统计。这个功能确实很有用,但是在应用到复杂的场景上,总会有这样那样的限制。而且呈现的视图也基本是固定的几个模板。

虽然Notion支持文档的双向引用,但是引用仅仅作为一个普通属性显示在文档上,并且无法做任何的自定义。这样引用的可读性基本为0。类似这种信息应该有一个单独的试图并做优化,而不应该这样统一处理。

  • 文档编写能力比较弱

对于Notion编辑器本身编辑的能力比较弱。而且偏离标准Markdown,譬如可以拖动Block,在一行内嵌多个Block,在导出到其他软件时必定会丢失该信息。不支持StarUML、Mermaid等Code-Based diagram。不过公平的说,Notion编辑器的Embed支持确实多,但是嵌入的质量不好评价。而且对于这种嵌入,也不太具有可移植性,用起来也是小心翼翼。

  • 无法离线

这个恐怕是许多人诟病的点。虽然官方一直说在改进中,但是由于其实现机制,我对后面离线笔记的功能存疑。从程序的角度去考虑,就算出来了也有可能会有功能残缺。假如离线后不能用Database,那离线的意义在哪?而且对于Notion本身有分享功能、并且服务器在海外的网站,在国内无法访问也是迟早的事情。届时如果只有一个残缺的离线模式,想想也觉得痛苦。

  • 内容安全性

这也是许多人诟病的一点。官方明确表态不会支持端到端的加密,文档内容会以明文保存在服务器。就算我们忽略掉内部员工、AWS可以直接访问文档内容的风险。也很难避免以后出现漏洞导致文档被错误分享到公网。按照目前的观察,Notion的分享和内部文档并没有物理隔离,公网有可能会访问到私有的内容。其实对于端到端加密实现起来也不困难,大部分的需求也只是存文本的加密。不知道为什么官方一直在忽略这个需求。

总结

虽然说了Notion这么多的问题,但这些仅仅是它作为PKM时的一些我认为的缺陷。一方面,Notion在处理大量同质的内容管理和多人协作上确实有它的优势。譬如,我想做一个简单CRM、HumanResources的管理,确实相当好用。又例如作为的一个简易的GTD、敏捷开发工具+Wiki、OKR追踪等,基本能满足中小型团队的需求。另一方面,如果要作为自己的PKM数据使用,I think,I will pass。

利用运营商固网和Asterisk在家搭建呼叫中心的一些总结

这几年推进光进铜推,实际上现在家庭的固话都是VoIP的。家里的光猫被封印在弱电箱,电话线拉不出来,固话就一直荒废了,趁着这两天有点时间,折腾了一下想尝试将固话用起来。最终成功实现了,自动外呼、IVR菜单、呼叫转移等功能。不得不说,Asterisk的确很强大,很多PBX系统都是在这个基础上做起来的。不过似乎局端的设备都Asterisk的认证支持有点问题,过一段时间就会掉线,所以目前是打住了。先将步骤和碰到的问题总结下来吧,方便后续其他同学折腾。

  1. 首先光猫要获得超级管理员权限,然后设置一个新的Vlan,Vlan ID用46,记得业务类型选择其他,不要选择语音。选择语音之后就不能用桥接类型,导致接口本身获得IP而不是对应连接的设备获得IP。
  2. 桥接配置后需要获得SIP的鉴权信息。我的光猫型号是HN8145V,可以将配置备份导出之后,用ctce_cfg.exe解密,然后再用这个工具huawei-win解密鉴权的$2加密内容。
  3. 在获得鉴权和网络接通以后,可以在Win下用MicroSIP测试一下能不能直接拨号,具体的参数填写请参照这个截图:
microsip-account1

4. 测试的时候必须注意SIP对应的网络信息和接口是独立的内网网段,所以必须收到设置路由,包括SIP服务器、SIP代理、DNS服务器等相关的地址。这个也是我觉得比较麻烦而且不靠谱的地方,因为你不知道SIP代理、DNS地址什么时候会变。而且你不知道中间过程中会不会涉及到其他地址。所以如果想长期搞的同学还是建议单独弄个设备,默认网关走SIP的内网,这样设备就会上不了网,但是会省却很多麻烦。

5. 如果测试拨号过程中出现能呼叫、接听。但是接听之后,没法说话或者其他情况。建议还是检查一下网络和Asterisk的NAT设置。我这里就卡了一段时间,出现了能听,但是不能说的情况。主要是由于说和听分别由两条单工的RTP负责的。其中一个方向的RTP网络出现了问题,就会导致这种情况。

6. MicroSIP拨号成功后,就可以配置Asterisk服务器,具体可以参考这篇文章。这个配置还是挺好懂的,就是配了两个内网SIP用户和一个外线。

7.Astersik关于IVR菜单,可以参考篇文章。自动外呼的话,可以参考这篇。这两个我觉得挺有意思的,前者可以做一个很酷家庭语音菜单网关+留言信箱。后者可以结合家里的设备做报警外呼。

参考:

https://wiki.asterisk.org/wiki/display/AST/Creating+a+Simple+IVR+Menu

https://www.voip-info.org/asterisk-auto-dial-out/

http://zhmail.com/2016/09/24/configuring-epon-e8-c-gateway-to-access-ctc-voip-network/

http://lsjtt.asuscomm.com:88/?post=1099

腾讯DDNS-DNSPOD 双wan口版本运行脚本

不知道什么原因,最近家里的宽带居然能双拨叠加带宽了,并且两次拨号都能拿到公网IP。考虑到不要就是浪费的原则,在OpenWRT配好了双WAN负载均衡后,就剩下双公网IP没有处理。

之前一直用QNAP的DDNS,比较遗憾的是,我在QNAP插件里面没有找到双IP注册的方式。并且考虑到QNAP自身拿wan口的IP也不容易,所以就想在路由上打主意。

刚开始确实找到DNSPOD在OpenWRT的DDNS插件,安装以后发现依旧是不支持多WAN口的。简单测试了一下,DNSPod本身的DDNS是支持多IP的(免费的解析好像支持两个IP,刚好)。还好插件本身是开源的,改起来还算简单。

先改一下插件的页面,将interface改成列表形式,打开文件:/usr/lib/lua/luci/model/cbi/tencentddns.lua,将interface改成DynamicList,删掉第一个iface:value,增加你自己的wan口。注意保留internet,这个是用于请求公网来获取IP地址的。

然后修改:/usr/sbin/tencentddns,改的内容比较多,可以直接从这个gist上面复制,或者从这里下载

最后不得不说,bash的语法依然像一坨糊糊,而它的子集ash,更是糊中之王。真的是为难了那些做openwrt插件的朋友。本来这个修改预计用1个小时左右,没想花了3天,前后总共用了3个小时左右。反正社区都有强大的luci,为什么不用lua做一个默认的shell呢?而且lua虚拟机本身占用也极低,在嵌入式设备也不用担心。

PS:国内托管WP无法直接嵌入gist,而国内gitee,coding.net根本无法发布公开的gist,原因大家都懂。国内目前能自由对外发布言论的渠道基本都被堵死。博客托管、评论系统几乎都要接受备案和审查,否者一律不能对公众发布。就连gitee-gist这种也不能幸免。我能理解为什么这么做,却很难从心里认同这件事儿。

近况

离开105已经有一个月,没想到时间会过得这么快,明天就是我在新项目组第一次参加的三方。每次去到一个新的项目组,都需要一段时间去熟悉各种人/事/物。这且这次还是只有我自己一个,基本没有熟悉的人,估计要花不少精力。幸亏项目组也属于刚扩张阶段,大部分同学都是新招进来的,这对我来说应该是个好事吧。

这端时间接触了很多新的东西:Perforce,UE4,端游的开发;也用回了熟悉的Python,还有服务端引擎。老实说,这一个月的进度远比应该要的进度慢,总觉得自己不太专心。直到B组解散以后我才知道自己不专心的原因是什么。虽然人已经过来这边,但对原有项目组依然没有“了结”,一直再跟大家做各种的八卦,“缅怀”这两年的事情。直到听到解散的消息后,自己突然有了一种释然的感觉。应该要继续往前走了,要提醒自己为什么要转过来新的项目组,有些东西该止则止吧。

另外,之前注册的域名也备我抢回来了,估计菠菜觉得没什么价值了。我打算用来搭个简单的英文站,锻炼一下自己的英文写作技巧。在这里SEO一波吧:https://shaneyao.com

美食的科学实践-潮汕反沙芋头

还记得在大学城读书时,和同学一起去大排档吃潮汕菜。那种对我固有味觉的冲击感到现在依然深刻。甚至连那家大排档的名字叫”学友大排档”,我都依然还记得(也有可能是因为它的名字跟张学友比较像?哈哈。)。我对当时好几道菜都印象深刻,尤其是有一道甜品“反沙芋头”。

在前段时间刚好是芋头的季节,就买了几次芋头尝试制作。在经历过一两次失败后,后面基本没出什么意外了。B站上有不少教制作这道菜的教程,如果想看实操的话,可以点这里。操作上的东西就不赘述了,可以去看视频。这里主要想补充一下很多视频都没说明白的点。

先说重点:这道菜的成败关键在于含水量。反沙的形成原因,我们初中化学基本都学过,其实就是:糖的过饱和溶液在温度和含水量变化后析出的晶体

首先是材料芋头的挑选含水量低,粉口的芋头。广西荔浦芋为上选,含水量低,够粉,而且芋头的香味较浓。如果没有的话,越南芋头也可以,关键要够粉,香味对成菜最多只能作为点缀。如果芋头不够粉,则含水量较高,一则影响成菜口感,二则影响反沙形成。

其次炸芋头的主要作用是收干芋头的水分。前面必须用慢火炸干炸到哐当响,后面30秒猛火逼出油脂。芋头要尽量放凉才用,这样后面加入炒沙时,才能迅速降低糖浆温度,快速结晶。这点也是很多视频教程里面没有提到的。

接着是煮糖浆,水不用太多,因为我们主要的目的是糖的过饱和溶液,水太多,还要费时间蒸发水分,提高浓度。如果有喜欢下香葱的同学,建议将香葱炒干后再加入,避免关火后渗出水分。泡泡的大小是判断糖浆浓度的标准,这点看视频基本就能掌握。

最后是炒沙,在浓度足够后关火。其实这时候可以根据煮糖浆容器的厚度适当延迟加入芋头的时机。因为容器越厚,温度降低越慢,在糖没开始结晶的时候,翻炒几乎没有意义,过度翻炒还会弄烂一些芋头。当然加芋头进去的时候还是要简单翻炒一下,让糖浆分布均匀。随着温度降低,糖浆开始重新结晶时(糖浆会变粘稠,翻动会变困难),必须加快翻炒速度,让糖浆在结晶中混入空气,这样才能形成完美的反沙。完成结晶后,就可以出锅。如果这时候翻动不及时,就会变成拔丝芋头或者糖脆芋头了(我第一次就是这样失败的T_T)。

至此,技术总结完毕。

换个域名,再次出发

时隔两年,重新注册了新的域名,开始了新的写作计划。这次再开博客,会有更大想法。先埋藏在脑子里,一步一步的实现吧。

可惜了之前的域名:shaneyao.com,在搜索引擎还是有一定的权重的,以至于停止续费后,马上被菠菜盯上,网站变成了澳门顶级肚肠。也罢,换了这个域名也算凑合,还是先关注内容吧。

PS:现在搭建网站可真容易,从注册域名主机,到搭建完成,总共2个小时不到,而且还是配置好SSL和HTTP2的情况下。