时隔多日,逸周闲谈就来跟大家见面了,本次一如既往的按照博客的 Slogan 进行分享:
阅读,写作,效率,发现及分享一切互联网有趣事物。
说重读实际上是「听」,每晚下班在通勤路上听大概1。5小时,效果还行,在听到一些重点环节,我也会用语音记录笔记。之所以要听而不是看,主要是「阅读时间」被压缩到几乎没有了。
《白夜行》是东野圭吾的一部备受赞誉的白金级小说,也是广受读者喜爱的名著之一(另一部我个人认为是《嫌疑人X的献身》)。距离我第一次阅读《白夜行》已经接近10年了,这段时间里,我也由一个青年变成了中年人。在这个阶段重新阅读这本书,让我对人性的理解和认识有了全新的体悟。
对于《白夜行》的重读感受,我不打算展开故事情节,而是想谈谈自己的感想。不过在此提醒一下,接下来可能会有一些剧透内容,如果您不想知道剧情的话可以选择跳过。毕竟《白夜行》是一部经典小说。
雪穗,故事的女主,从一个干净美丽的小女生,到一个心机少女,再到黑暗女王,随着小说进程的推进,她一步步的黑化。作为读者,从吃惊到质疑到有些理解,东野圭吾借由故事,讲人性的恶再一次撕开,血淋淋的展示在我们眼前。
亮司,故事的男主,给我们带来了完全不属于雪穗的震惊。他其实是一个好孩子,像所有十一二岁的少年那样,喜欢读书,喜欢阳光,喜欢玩耍,直到他的世界被「那个人和那样一件事所毁灭」,从此亮司就再也没有出现在阳光下。
两个人都不是「恶之花」,他们是「恶之花」结出来的「恶之果」,他们固然做尽坏事,只为自己(亮司更多的是为雪穗),但是最初把他们拽下深渊的那个人才是真正的「恶之花」。
之所以喜欢东野圭吾的小说,也是因为他在揭露人性这方面非常擅长,类似的还有《恶意》《放学后》《红手指》等等。
主人公雪穗,每次遇到「危机」的时候,都会用自己的方式,去影响事态的发展,并且最终改变了自己的命运,最终事业也很成功,我每次读到这里都禁不住想,一个人能不能主动出击去改变自己的命运?
答案是肯定可以,比如努力读书,比如积极工作等,但是不要试着走捷径,走捷径虽然快,但是其中的代价不是每个人可以接受的,我们看看雪穗都改变了自己哪些命运走向:
而这些「捷径」的代价呢?雪穗,越是这样,就越离不开这些手段,从而使自己一步步的滑向那个黑不见底的深渊,人生从此灰暗。
即使她在人前再光鲜,我相信夜深人静,午夜梦回时刻,雪穗也会后悔或反思吧(也未知)。
小说名《白夜行》,来自于故事中雪穗的一次对话:
正常人的人生应该是有白天也有黑夜的,所以普通人都会经历起起落落,而我们能做的就是尽量在白天行走,夜晚来临之时做个好梦。但是我的人生没有白天,全是黑夜,不过幸好没有那么黑,因为她的世界有一盏小灯,虽然不像太阳那么亮,却也将他的黑夜电亮,所以才让她才能够够像白天一样走在黑夜里。— — 白夜行
我曾经购买过一本实体书,封面上画着一个小男孩和一个小女孩手牵手一起走的情景。回想起雪穗和亮司的故事,不禁让人感慨万分。
愿我们每个人都能守护好自己的家庭,给自己的孩子一个光明的生活,照亮他们的未来。
其实所谓的「小纸条」就是个人版本的 Twitter,不过它更简约、更纯粹,我想要实现的「小纸条」系统是这样的:
可以快速的保存我随时产生的想法(大多是几句话),然后无感的的进行发布(可以简单到打个 #pub
标签就自动发布)。通过访问一个固定的地址,可以查看所有「小纸条 」,默认按年聚合。
为什么要做「小纸条」系统?
如果你打开最近的「小纸条站点」可以看到类似如下内容:
「小纸条」系统之于我最大的意义就是「鼓励自己进行快速产出」。
之前还试过「短 Blog」进行快速输出,结果没有坚持下来,总结了一下原因,不是内容太少,而是步骤繁琐操作太复杂,容易引发拖延。
思考了很久,最终确定了「小纸条」的路径如下:
Drafts -> Linux Server(服务器) -> build(go language program) -> index.html
当然这里的 Build
需要一些编码工作,目前正在进行中,在 AI 加持下这都不是事😄。
在《简单且长期有效的生产力》中提到,「尽量使用那些一开始就为了某个功能而做的工具」,反义词就是避免「All in One」,所以当时我选择的任务管理软件是 Things 3
。
而长时间使用 Things3 做任务管理后我发现它确实做到了「简单且稳定」,但是有两个我比较需要的功能(如果仅需要提醒,那么自带的「提醒事项」就足够):
Things 3
「标签」功能非常弱,稍微高级一点的筛选,无法实现。Things 3
过多的依赖「到期时间」最终让任务变得不可维护(指的是列表中充斥着大量「未完成任务」的提醒)。上文提到的「小纸条」系统,其中就有一条《OmniFocus 4 技巧 - 截止时间和 Next 标签》中就提到了一个重要的观点:
不要轻易设置「截止时间」,因为一旦设置了「截止时间」,而到期后你又没有相应的「惩罚措施」,会让大脑被训练成「自动忽略到期任务」,长此以往截止时间将失去意义。
不设置「到期时间」就解决了上边 Things 的问题,可是不设置「截止时间」,如何做到提醒呢?在 OmniFocus 4 中可以通过「标签+通知时间」解决:
如果一个任务到期了还没做完,可以删除「截止时间」,通过「打标签」来推迟,例如给任务添加Next
标签,可以在「预测视图」或各种「透视视图」中,通过筛选Next
标签找到下一步要做的事情。
这方面的使用心得,后续有时间会重点介绍:
标签:可以利用标签实现,什么时间看到哪些任务,例如我常用的标签如下:
通知时间:可以利用「通知时间」做任务提醒,他会如实实现「到点提醒」这件事,从而降低心里压力。(注意:通知只是一个提醒,并不代表这个时间点一定要完成)。
这套组合拳下来,任务管理造成的「心智负担」已经降到最底,我只需要在合适的时间查看「合适的标签」即可,例如我会在中午查看 Midday
标签,来找一些事情做,在晚上查看 Evening
标签找一些事情做。如果一件事情真的很重要不到点做完做不行,再设置「截止时间」。
先从一则新闻说起:一项大胆的研究提出,AI 可能有助于解释为什么我们迄今未曾遇到过外星生命。
一位不愿透露姓名的读者从 ScienceAlert 分享了这份关于费米悖论的报告。费米悖论探讨了为何在众多潜在存在的高度文明中,我们却未发现任何实际存在的证据。其中一个广为讨论的理论是“大过滤器”,这是一个假设的事件或阶段,它阻止智能生命发展成星际文明,甚至可能导致它们的灭绝。最近,《Acta Astronautica》杂志发表了一篇论文,提出人工智能发展到人工超级智能(ASI)可能就是这个“大过滤器”。论文标题为“人工智能是否是导致宇宙中高级技术文明稀缺的大过滤器?”文章中提到,一旦达到技术奇点,人工超级智能将迅速超越人类智能,并以难以预料的速度进化,可能带来与人类利益和道德不相符的后果。
作者强调,为了避免这种潜在的灭绝风险,迫切需要在全球范围内建立对人工智能发展的监管框架,并推动建设多星球社会。这样的国际监管措施的及时有效执行,可能是宇宙中智能生命能否持续存在的关键。
这条新闻让我想到了阿西莫夫在《银河帝国 - 机器人》 系列中的一些思考:
人类帝国发展到「银河帝国」的程度以后,经过若干代,我们的母星或者说「人类文明的起源」已经不可考,消失在浩瀚的知识库中(此时人类知识已经到了一个无法衡量的单位)。
而小说的一个主旨就是在寻找「母星」或者起源的一个故事,最终的结论也有些惊悚,怕剧透的可以不用往下看了。
==========剧透分割==========
人类在发展出「人工智能机器人」之后,为了限制机器人的能力,提出了著名的「机器人三定律」:
但是,机器人在长时间的演进中,发现了人类的一些弊端或者叫陋习,会阻碍甚至影响人类的发展(换言之,让人类不受约束的发展,可能会导致人类灭亡),所以机器人在「机器人三定律」的基础上,为了避免人类灭亡(详见第一定律),推演出了「第零定律」:
机器人也可以适当情况下伤害少数人类,从而为了「保护人类中的大多数」。
是的,机器人自己通过演化,推演出「第零定律」,并以此指导自己对人类社会的发展进行干预,这也是为什么人类的「母星」被消失,人类的起源被隐藏。
类似的还有「黑客帝国」等科幻小说中对人工智能和机器人的一些推演和设想。
阿西莫夫的《银河帝国》中的描述,再结合前文提到的新闻,放到一起看,效果极佳。
去年我一直在用的 AI 服务就是 Raycast Pro ,Raycast
是 Mac OS 上著名的效率类软件,支持通过各种快捷键和小窗口提供便捷的服务(例如打开笔记,开始截图,移动窗口,计算器等)。
Raycast Pro 是在 Raycast 基础功能之上,提供了 AI 功能,普通款的会员(每月 $8)可以使用的AI模型为:
如果添加了 Advanced AI
扩展包(每月新增 $8),就可以额外增加以下模型:
我使用 Raycast Pro 会员的最主要的原因是 Raycast 的「便捷」:
下图就是通过 Raycast 执行「总结当前网页」的 AI 命令:
下图就是通过 Raycast 进行 AI 对话的页面:
总之,Raycast Pro 提供了一个在 Mac 平台非常方便的,AI 能力,一年时间用下来比较满意,特别是 GPT-4 模型的支持,体验非常棒。
PS:Raycast 在最新版本中支持了 Claude3 模型 和 Sonar 模型(由 Perplexity 提供),整体 AI 能力得到极大提高。
Perplexity 是新晋 AI 小能手,它不仅提供了 AI 对话的能力,更重要的是 Perplexity 试图颠覆我们使用「搜索引擎」的方式,并且也解决了我曾经最怕的问题:
在先进的 AI 直接给我们答案的情况下,渐渐的失去自我判断的能力(无法判断 AI 结果的对错)
简单说 Perplexity
除了告诉你问题的答案,同时还会告诉你为什么(他是如何推导出来的)。方式就是在结果中同时提供「Reference」(参考资料),一个典型的结果如下:
根据提供的资料,我对Python装饰器模式的理解总结如下:
1. 装饰器本质上是一个函数,它接受一个函数作为参数,并返回一个新的函数。它可以在不改变原函数定义的情况下,给原函数增加新的功能。[1][2][4][8]
2. 装饰器使用@语法糖,放在原函数定义的前面。@decorator相当于执行了func = decorator(func),即把原函数func传给装饰器函数,再把返回的新函数赋值给原函数变量func。[1][2][4][7]
3. 装饰器函数内部定义一个wrapper函数,在其中可以执行一些新增的逻辑,再调用原函数,最后将wrapper函数作为新函数返回。这样在调用原函数时,实际上执行了装饰器返回的新函数。[1][2][4][8]
4. 装饰器可以堆叠多层,靠近函数定义的装饰器最先执行。装饰器还可以带参数,此时要多一层嵌套函数。[1][4][7]
5. 装饰器可以用来实现各种功能,如日志记录、性能测试、缓存结果、身份验证等,而不用侵入原函数的代码。[2][4][5][8]
6. 从设计模式的角度看,装饰器模式可以在运行时动态地给对象增加功能,是一种结构型模式。它是继承关系的一种替代方案,更加灵活。[11][14][15][16]
7. 装饰器模式涉及4个角色:抽象组件定义接口,具体组件是被装饰的对象,抽象装饰器实现接口并持有组件引用,具体装饰器负责添加新功能。[15][16][18]
总之,装饰器是Python中非常强大和灵活的工具,合理使用能让代码更加优雅和可维护。理解装饰器的原理和掌握常见的使用场景,是Python开发者必备的技能。
Citations:
[1] https://refactoringguru.cn/design-patterns/decorator/python/example
[2] https://www.cnblogs.com/clwsec/p/17753194.html
[3] https://www.cnblogs.com/cwp-bg/p/9547797.html
[4] https://www.51cto.com/article/719103.html
[5] https://blog.csdn.net/jarodyv/article/details/129474236
[6] https://juejin.cn/post/7241943960083546171
[7] https://www.liaoxuefeng.com/wiki/1016959663602400/1017451662295584
[8] https://maoao530.github.io/2016/05/17/python-decorator/
[9] https://juejin.cn/post/7095776102341148708
[10] https://www.runoob.com/w3cnote/python-func-decorators.html
[11] https://www.cnblogs.com/szq95716/p/14609740.html
[12] https://superlova.github.io/2020/05/18/Python%E8%A3%85%E9%A5%B0%E5%99%A8%E4%B8%BA%E4%BB%80%E4%B9%88%E8%BF%99%E4%B9%88%E9%9A%BE%E4%BB%A5%E7%90%86%E8%A7%A3/
[13] https://blog.csdn.net/xo3ylAF9kGs/article/details/128556578
[14] https://www.liaoxuefeng.com/wiki/1252599548343744/1281319302594594
[15] https://www.runoob.com/design-pattern/decorator-pattern.html
[16] https://www.cnblogs.com/yssjun/p/11110013.html
[17] https://blog.csdn.net/qq_24448899/article/details/78068813
[18] https://blog.csdn.net/K_520_W/article/details/108733290
[19] https://www.51cto.com/article/718651.html
[20] https://www.dusaiphoto.com/article/73/
在阅读结果的时候我们只是做到「知其然」,再结合参考资料就能够做到「知其所以然」。
Perplexity 的功能远不止于此,它也支持模型切换,特别是对 Claude 3
模型的支持,叠加 Perplexity
的推理总结能力,个人认为 Perplexity
是我目前用的最好的 AI 工具了。
同时我最喜欢的 Perplexity
功能还有两个:
于是就产生了一个纠结,2024 年是继续使用 Raycast Pro 还是换成 Perplexity Pro?
刚才提到最新版本的 Raycast Pro 也增加了 Perplexity 模型的支持,一开始这让我非常兴奋,不过体验了一下,其推理能力和结果不如 Perplexity,我推测要么 Perplexity 的模型给到 Raycast 的时候保留了实力,要么就是两个服务的整合还需要磨合,但是作为消费者,现阶段我最终的选择也就比较清晰了,优先按月付费,留在 Perplexity ,加入 Raycast pro 能力赶上了 Perplexity 我再考虑切回来(毕竟 Raycast 的便捷性太高了)
「逸周闲谈」会不定期总结我的「碎片化笔记」,将近期的所思所想和做的事情做一个简单的整理,感兴趣的同学欢迎持续关注: