阅读视图

发现新文章,点击刷新页面。

交易的实质——浪随风向

2013 年 6 月 28 日,我在为 EverEdit 创建的 todo 插件中埋了一枚彩蛋,当输入 "Who has seen the wind?" 时,会出现彩虹高亮。

彼时提到 Wind,是风向星座的我自我暗示适合风向职业(传播投资资讯),直到十年后,我才逐渐理解,对交易来说风是什么。风不是技术分析的历史重演,也不是基本面的财务数据,直到在市场中呆的足够长,并用量化的方式演算和回测。客观的结论是:技术分析、基本面、技术分析结合基本面三者都是错的。

只用技术分析交易,终会亏本离场;只用基本面交易,那些年线 A 杀的走势会嘲笑你的青春;用技术分析结合基本面也许某几年对了,但几年你看到了黑天鹅。我身边最聪明的朋友说,交易是玄学,广泛的市场中,不存在确定性,很难依靠长年得出的经验胜过市场,因为市场之海浪,一部分由风吹动,一部分是潮汐,潮汐就是自然周期的周期——斐波拉契,在自然周期之上的风,是ZZ。

依靠周期假设,并观察风的动向,看着风浪,再去航海。

机器人简史

评分

⭐⭐⭐⭐⭐ ⭐⭐ 7 / 10

原以为是本历史书,但翻开后发现是本文化书,就内容来说,读读也受启发,机器人不是机器人,是受奴役的人。

数学的惊奇

评分

⭐⭐⭐⭐⭐ ⭐⭐ 7 / 10

有趣的数学书,着谜数字的人可以翻翻,有细节。

ALaunch v1.0 发布

ALaunch 升级到 v1.0 版本,增加了标签的自由管理。

ALaunch v1.0 版本

新特性:

  1. 能创建和删除标签页;
  2. 能对标签页重命名。
ALaunch Snapshot

ALaunch 下载,欢迎反馈和留言。

预告

ALaunch v1.0 是友情软件:与此网站友情链接的朋友,可免费获赠授权码。

正在使用的朋友,建议下载新版本,欢迎反馈。

  • 1.5 将增加窗口控制
  • 2.0 实现启动布局

Windows 音频设备控制之旅

我的需求

笔记本通过 TypeC-DP 1.4 口连接了显示器,听音乐时,我使用笔记本连接的音频输出设备,看视频时,我使用显示器的音频输出口,因此,我有了需要在笔记本和显示器之间快速切换音频设备的需求。

解决过程

我拥有 Windows 编程能力,在 AI 时代想到的第一解决途径就是Prompt,AI 帮我编写一段小功能:你是 Windows 编程的高级程序员,我需要实现一个最简的功能,我需要界面上提供系统音频设备列表供选择,计划用 Python Tkinter 实现,可以用一组单选框,竖直排列,选中设备后设置为 Windows 默认音频设备。请得到代码后复查一遍可能的问题,提供最终可运行的代码。

得到代码后,我表示没看出 API 是什么,于是问 Windows 中切换音频设备的 API 什么,我想着实现 Python 后,可转化为一个简单的 C 程序一键在多个音频设备之间切换,我的基本思路是:先列出设备,再在设备间循环激活为默认。

后续过程就不列举了,AI 提供的代码,都是无法运行的,以下列举 AI 的关键代码。

实现方式一:

import comtypes
from comtypes import GUID, COMObject, POINTER
from comtypes.client import CreateObject
from comtypes.gen import PolicyConfigClient

def set_default_audio_endpoint(device_id):
   # 使用comtypes创建PolicyConfigClient对象
   pPolicyConfig = CreateObject(PolicyConfigClient.CLSID_PolicyConfigClient,
                                interface = PolicyConfigClient.IPolicyConfig)
   # 调用SetDefaultEndpoint方法设置默认音频端点
   hr = pPolicyConfig.SetDefaultEndpoint(device_id, 0)
   if hr == 0:
       print("默认音频端点设置成功")
   else:
       print("默认音频端点设置失败")


if __name__ == '__main__':
   # 这里需要替换为实际的设备ID
   device_id = "{0.0.0.0}"
   set_default_audio_endpoint(device_id)

实现方式二::

from pycaw.pycaw import AudioUtilities, IMMDeviceEnumerator

def get_speaker_device_id():
   device_enumerator = IMMDeviceEnumerator()
   speakers = AudioUtilities.GetSpeakers()
   device_id = speakers.GetId()
   return device_id

if __name__ == '__main__':
   device_id = get_speaker_device_id()
   set_default_audio_endpoint(device_id)

我后来使用一段复杂的 Python 代码调用了一个本地 dll 文件作为桥梁实现了切换。然后,为去掉这个不明就里的 dll,把问题弄得更明白一点,我查阅了 Microsoft 的文档,文档中居然没有提!

最后我发现实现切换的是 Microsoft Windows Undocumented API,列举和操纵此设置,居然分属在不同的 COM 接口中,未有文档的是 PolicyConfigClient 接口,它是一个特殊的 COM 接口,脚本无法创建和使用它的属性和方法,需要 Native 代码通过最基本的结构去调用。

然后,我浏览了交友网站 GitHub,发现世界上还有几个和我有一样需求的人,并且有几个 Geek 动手实现了 AudioSwitch 软件,以及还有几个 C# 和 vbs 的实现,经过比较,我还是喜欢 C++ 实现的版本。

AudioSwitch 软件运行后,按 F12 就能自动切换系统默认的音频设备。我于是下载源码,发现它使用一个叫做 SCons-win32 的编译工具进行了编译,我又查阅了 SCons-win32 帮助,成功编译出了 AudioSwitch.exe

当我完成编译,微软的安全软件居然报 Trojan:Win32/Bearfoos.A!ml,我去微软官方查询了 Bearfoos.A!ml 解释带 !ml 的是机器学习判断的木马。

我查看了它的源代码,然后 SCons-win32 作为可能引入病毒的第二个可能,风险也不高,我的编译器也是本地,安全软件扫描过的,所以我认为它大概率是误报,于是向微软提交了该二进制软件,几天后,我发现微软排除了它的威胁。

随后的几天中,我感觉都非常方便。

新的发现

突然有一天,我发现 Windows 托盘区的小喇叭似乎自带切换功能,只是这个功能,我才发现。相比开机自动运行一个小软件然后按 F12,和点击托盘区的小图标再点展开再点设备的三次操作来说,我觉得已经差不多了。

按一次键盘和点击三次鼠标,我感觉还是键盘轻松点,但弊端是 F12 是容易和其它热键冲突的。比如 MadEdit 中 F12 就是进入一个 PostIt 模式,如果从菜单进入了,再 F12 时,就无法生效了。

结论

  1. 虽然 AI 编程已经很厉害,你讲清楚了需求,它也无法写出切换音频设备的小功能。
  2. AI 无法完成的原因是它使用了 Windows 未公开的技术。
  3. 新问题很少,这个问题 Windows 的发展过程的几十年间,已经被很多人用不同方式解决。
  4. 如果要解决电脑问题,通过编程解决只是一种直接的方式,你去问 AI 怎么编程,这时有两个结果,一个是 AI 实现了,二是 AI 未能实现,但无论是搜索还是 AI,最后都可以解决。
  5. 解决问题本来还有更简单的办法,也许是对问题解空间的搜索方向错误了。

但无论如何,现有的 AI 都不算能直接解决此问题,最后还得依靠专家的知识和一个灵感和一个机会。

2024年第43-44周周报

2024年第43-44周双周报

12 月,目标是完成 11 月那些本该在 10 月完成的我在 9 月就定好的目标。

勇敢接受不完美的自己。

从掌握 20% 知识开始。

本周数据

年周 项目 动态 关注 友链
2024W43 5 264 6 14

小狗钱钱

评分

⭐⭐⭐⭐⭐ ⭐⭐ 7 / 10

这些基础概念,这个时代的小孩大多理解。

再度唤醒世界:赖特诗选

评分

⭐⭐⭐⭐⭐ ⭐⭐⭐⭐ 9 / 10

开篇译作

不知开篇为何引用了一首唐诗译作,英国诗人也喜欢过李白的诗,翻译为:

如果你问我,为何居住在青山中。 我会默默地笑,我的灵魂宁静。 盛开的桃花追随着流动的水, 在尘世之外,有另一片天地。

原诗是:

问余何意栖碧山,笑而不答心自闲。 桃花流水窅然去,别有天地非人间。

“窅” 读为 “yǎo”,基本字义是眼睛眍进去,喻深远,“窅然”用来描绘桃花流水渐渐远去的状态,给人一种悠远、深邃的感觉。在此,翻译者似译出来不同的心境,至少我感受到的李白表达的是内心的追求,宁静是少有读出的。

致创造的造物

孤独如同我的渴望, 我没有女儿。 我不会死于火,我 会死于水。

冬末,我跨过水坑,想起中国古代的一位地方官

况吾时与命,
蹇舛不足恃。

——白居易《初入峡有感》

    作于819年

在网上找了一段他人的翻译:

白居易,开始谢顶的老政客,
有何用?
我想起你
不安地进入长江峡谷,
被拖曳着穿越激流而上
为了官职或其他
去忠州城。
你到达时,我猜
天都黑了。

但现在是1960年,又将是春天了,
明尼阿波利斯高耸的岩石,
堆垒起我自己的
竹索和水的昏黑暮色。
元稹在哪里,这位你钟爱的朋友?
大海在哪里,那曾终结中西部所有孤独的
大海?明尼阿波利斯在哪里?我什么都看不见
除了这棵随冬天变黑的可怕的橡树。
你是否找到了群山之外隔绝尘世的人们的城池?
或者说,你已把这根磨损的残绳的一端
紧握了一千年?

还有 张文武/译:

白居易,你这开始秃顶的老政治家啊,
有什么用呢?
我想起了
不安地进入三峡的你,
为了那一官半职
坐在被拉着逆流而上的船上,
奔赴忠州城。
我猜你到那儿的时候
天已经黑了。


而现在是1960年,眼看又是春天了,
明尼阿波利斯高高的岩石,
带来了我自己幽暗的黄昏,
竹索和水的黄昏。
你的好友元稹在哪里?
那曾经将整个中西部的孤独都带走了的
大海在哪里?明尼阿波利斯在哪里?除了这棵
因为冬天的到来而变黑的可怕的橡树,我什么都看不见。
你找到群山之外那座沦落人的城市了吗?
抑或是,将一根已然磨损的绳子的一端
握了一千年?

(2007-11-23 03:03:39)

原诗:

As I Step Over A Puddle At The End Of Winter,
  I Think Of An Ancient Chinese Governor

by James Wright


And how can I, born in evil days
And fresh from failure, ask a kindness of Fate?

– Written A.D. 819


Po Chu-i, balding old politician,
What’s the use?
I think of you,
Uneasily entering the gorges of the Yang-Tze,
When you were being towed up the rapids
Toward some political job or other
In the city of Chungshou.
You made it, I guess,
By dark.

But it is 1960, it is almost spring again,
And the tall rocks of Minneapolis
Build me my own black twilight
Of bamboo ropes and waters.
Where is Yuan Chen, the friend you loved?
Where is the sea, that once solved the whole loneliness
Of the Midwest?Where is Minneapolis? I can see nothing
But the great terrible oak tree darkening with winter.
Did you find the city of isolated men beyond mountains?
Or have you been holding the end of a frayed rope
For a thousand years?

重新发现“此时此刻”

现在已无人读诗,但依然有诗人。

诗歌是现实的犁耙,诗人是犁田的人。

过去不够碎,现实之土在诗人词汇的翻耙下熠熠生辉,如今现实稀碎,诗歌亦可用来弥合罅隙的流光。

Clojure Recipes

评分

⭐⭐⭐⭐⭐ ⭐⭐ 7 / 10

Clojure 是种 JVM 语言,但它的语法是 lisp,这样看来,它即没有 Java 那么累赘,又利用了 JVM 这个经过检验的中间平台。于是 Clojure 成为了掌握 lisp 又想利用 Java 生态的人的选择。

这种第一印象还是有点绕,但真实世界中,有不少 clojure 的应用。比如 LightTable,你很难想象 clojure 居然做了一个基础的编辑器,以及还有 clojure web 等好看的书。

本书一上来准备好环境后,就直接来了一个 WEB API 项目,可谓很实用,同时你发现 lisp 的表达甚至比 Python 还要紧凑简洁,当你在书写属性前习惯打一个:号时,你是否想起来 Vue 的运算属性也是这个写法,是不是其灵感来源?一旦你掌握了它,那也是一把好用的武器。

但基于国内环境,本书还是属于“没有优先级,有空老来看”系列。

文案卖货

评分

⭐⭐⭐⭐⭐ ⭐ 6 / 10

文案 = 卖货

凡语言所达处,皆是战场。

  • 做新:什么是新,没见识过。
  • 做尖:极端
  • 做思:提问

品类、品牌。

消费者用了产品变得如何牛

大胆报价;激励成交。

找大卖的

在已有的基础上改

跨行业找

印象派与东亚美术

评分

⭐⭐⭐⭐⭐ ⭐⭐ 7 / 10

内容还不错,能读,但谁会想着去读一本小开本、环保纸的印象派艺术书呢?艺术韭菜吗。

莫奈、德加、梵高,都在,但总觉质感无法呈现内容,形式和内容不符。

Racket Programming the Fun Way

评分

⭐⭐⭐⭐⭐ ⭐⭐⭐ 8 / 10

说明

Racket 的优势是,将 lisp + 常用数据类型 + 绘图 + GUI,因此可以很方便做出很多 2D 图形游戏。

适合作为讲述通用编程思想的语言。

在实战中,lisp 的表达能力确实强于 python、js,但 Python 视觉上更简洁,少了许多视觉障碍,而 Js 也可能是最开始学的 C 教学的缘故,大家也习惯大括号。

主要内容:讲解了 lisp 基础,比如

  • 原子类型 Atomic Data,number 和 strings
  • Lists
  • S-Expressions
  • List Functions
    • length
    • reverse
    • sort
    • append
    • range
    • make-list
    • null?
    • index-of
    • member
  • Defines, Assigns and Variables
  • Symbols, Identifiers and Keywords
  • Equality
  • Strings, Things
  • String Functions
    • string-length
    • substring
    • string-titlecase
    • string-upcase
    • string-downcase
    • string<=?
    • string=?
    • string-replace
    • string-contains?
    • string-split
    • string-trim
  • String Conversion and Formatting Functions
  • Vectors
  • Struct
  • Controlling output
    • write
    • display
    • print
  • Arithmetic
    • Booleans
    • Integers
    • Rationals
    • Reals
    • Complex Numbers
  • Numeric Comparison
  • Built-in Functions
    • abs
    • ceiling
    • floor
    • tan
    • atan
    • cos
    • sqrt
    • srq
    • log
    • exp
    • expt
  • Function
  • 绘图
  • GUI
  • 算法

很多 Python 书也是这种思路了。

本书的最大特点就和 Racket 一样,非常学术,实现了扑克牌游戏、A* 算法、Dijkstra 算法、八皇后问题、数独,甚至还有我喜欢的 15-Puzzle,也是用 A* 搞定的。

Racket 画个黄金螺线,那是最擅长的

Racket 就像一个老教授或一个顶级 Geek 一样,可以实现一切算法。但将 Racket 用到 Real world 中,会遇到现实粗砺的坑,现实会用人性打败他,会用数据量打败它,会用缺少必要中间件、分布式组件打败它,让 Racket 呆在它的教学领域是最好的选择。

精通的 Racket,能很快适应现代语言的基础特性,毕竟编程语言的爷爷在这里,比如新语言中出现 match 等,而反过来就不成立。

我们为什么爱喝酒

评分

⭐⭐⭐⭐⭐ ⭐⭐⭐⭐ 9 / 10

前几个月喝了不少精酿,看到这本就略读了一遍,毫无疑问,这是一本非常有意思有文化的书。

更加肯定的是,酒精对人类的作用远大于通常的认识,对酒认识存在的误判和错误。

雅余的自省《独立博客自省问卷15题》

雅余的自省,这个听起来就像 Diablo 里一件暗金装备。

1、你的博客更新频率是多少? A.每周更新 B.一周数篇 C.一月1-2篇 D.几个月一篇

从一周数篇到一月1-2篇,作为写字自留地,将内容分散到四处写并不好。

2、你的博客上次更新是什么时候? A.本周 B.上周 C.上个月 D.上季度

C

3、你的博客文章是原创的吗? A.坚持原创 B.部分借鉴 C.AI 帮我写的 D.搬运别人的,而且不署名

B

4、你觉得自己的文章对他人有帮助吗? A.旨在对他人有启示 B.多少有点意义 C.每日每周流水账 D.自我陶醉就好,管他呢

B

5、你上次换博客主题/程序是什么时候? A.上周 B.上个月 C.去年 D.凭良心说,我多年都是一个主题

C

6、你上一次捣腾博客主题代码是什么时候? A.昨天,撸代码到凌晨 B.每周必捣腾 C.每月有那么一次 D.一年有那么一次

D,现在看起来这个频率有点高。

7、你会对博客主题进行二次开发? A.直接配置使用,省心不折腾 B.时不时自己改改,搞点新花样,换图片,换字体,爽 C.删除主题作者版权信息,改改样式,然后自我感觉良好 D.改得面目全非,但保留原作者版权信息或注明

会增加新功能,B

8、你多久打开自己博客自我陶醉一次? A.每天数次 B.每周一次 C.看心情 D.一般都是照镜子,不看博客

C

9、你近期对自己博客域名什么感受? A.想搞到一个 .COM 的域名 B.如果域名能再短几个字符就更好了 C.今年才换双拼域名了,明年再看看 D.目前挺好,没想法

A

10、你每天都会看网站的流量统计吗?

A.每天看几次,今天又多了100PV B.每周回顾,看看流量趋势 C.记得就看看 D.没有搞流量统计,都是浮云

C

11、你通过博客的广告赚到钱了吗? A.有,能覆盖建站费用 B.有,但付出大于收入 C.没考虑通过博客流量赚钱 D.拒绝广告,保证阅读体验

D

12、你去浏览别人的博客/网站主要为什么? A.学习别人分享的知识 B.搬运别人的内容 C.看看别人怎么装修博客,自己也抄一下,感觉都比自己的好 D.不爱看别人博客,自己爱写啥写啥

D,就是写写

13、看到别人分享了一篇文章,你打开第一反应是什么? A.哇,这域名真不错,怎么我没想到 B.哇,这网站速度真快,图片延迟加载丝滑 C.哇,这程序/主题不错,我也要抄一抄/留言问问哪里搞的 D.看看文章内容

D,主要还是内容

14、你觉得博客哪方面更重要? A.域名 B.服务器 C.主题 D.内容

A、D,好名字是成功的一半。

15、近期通过写博客有哪些新收获?

A.知识面有拓展 B.认识了新朋友 C.写作水平提升 D.通过知识变现

B,比如,我会写这篇就是因为看上雅余博客的品味,为能与交换友链而感到荣幸。

果真,人生有限,岁月如梭。

依然有自编写知识管理工具的执念,虽然 Obsidian 已接近心中所想。

2024年第41-42周周报

2024年第41-42周双周报

书看杂了,弄了一个批量处理脚本,发出刷屏。

开始新的职业方向。

本周投资

市场上涨得出人意料,活久见,没有拿到好的收益,波动性很大,老人宁愿踏空,新进入市场的带着贷款而来,这并不好。

本周数据

年周 项目 动态 关注 友链
2024W41 5 264 6 14

莫名解决局域网内 macOS 与 Windows 不能互访的问题

现象描述

局域网中,通过路由器连接的 Windows 和 macOS 在某次 macOS 的系统升级后,就再也不能相互访问了,但奇怪的是,在 macOS 上通过桥接的虚拟机依然可以被 Windows 访问到,今天得空我解决了此问题。

现象一:在 macOS 上启动 Apache 或者 nginx,此时本机通过 http://127.0.0.1 可以打开测试网页,但 Windows 却不能。

现象二:Windows 无法 ping 通 macOS,macOS 却可以 ping 到 Windows。

解决思路

现象二说明两者的网络是联通的,于是从 macOS 端着手,关闭防火墙,结果无法访问,又尝试关闭 Windows 端的防火墙,依然无法访问。

在 macOS 上尝试了使用 telnet 等工具测试,发现可以正常联通,但 Windows 上不行。

说明两者之间可能被什么挡住了,这莫名的暴躁,难道是小米路由器,难道是 ipv6,结果都排除了。

猜测:也许 macOS 端除了防火墙依然有什么进程在默默工作,经过回忆,我早期下载过一个叫做什么 cat 的 App,其中我开启过 macOS 的网络防火墙。

按照这个思路我下载了一堆防火墙:LuLu、Murus、Snail、Little Snitch 等,分别启动观察网络。

最终,一瞬间我发现网络似乎联通了, Windows 上可以访问 macOS 部署的所有服务。

经过又一阵子的排查,我发现退出 Murus 时,选择 Disable 就可以访问网络。

总结

这真是一个诡异的现象,但通过 Murus 解决了,但我确实不知是怎样解决的。

这个阻挡网络的不是 macOS 自带的防火墙,是什么,我就没有时间研究了。

如果后续我知道的原理,我会来更新这篇文章。

2024年第39-40周周报

2024年第39-40周双周报

即将参与一个跨境电商项目,还是采用最熟悉的技术干。

本周投资

市场真是出人意表,活久见,并没有拿到好的收益。听了不少听风的蚕的评书,可以关注黄金。

本周数据

年周 项目 动态 关注 友链
2024W39 5 260 6 14

2024年第37-38周周报

2024年第37-38周双周报

本周准备考试,看了一些书,周报暂缓更新。

本周投资

我们可以从指数开始入场,这样没有挑选个股的风险,是 50 还是 300,还是券商 ETF,这是个问题。

本周数据

年周 项目 动态 关注 友链
2024W37 5 254 6 14

2024年第35-36周周报

2024年第35-36周双周报

喂流浪猫的道德

喂流浪猫猫对不喜欢的猫的人士造成了困扰。从恨猫人士角度理解,会不会是对猫了解不够多。在社区甚至更大的尺度来看喂流浪猫的事,确实值得探讨。

但在荒废辽阔的城市处,是否投喂更取决于内心,哪有那么多责任,更不用被道德捆绑。如果环境中只有一人和一猫时,单纯地扪心自问,你有猫粮,你会对几只饥饿的流浪猫置之不理吗?城市里原生流浪猫(野猫)多是被人遗弃或走失的,或是它们的后代,它们的长辈猫们或许也是只陪伴人类的宠物猫。

流浪猫即没有和人类竞争生存空间,也没有破坏人的粮食来源。所谓文明容不下一只小动物,能救不救而置之不理,能这么理性思考的人,无非是用行动告诉世界,我只是一个冷漠可怜的人罢了。

就算流浪猫造成了广泛的社会问题和恨猫人士困扰,该站出来思考解决这个问题的主体,不应该是环卫部门吗?

不过现在城市空间里,问题也不少,比如四处占道的共享单车,随处停放的共享电动车,以及明明有车道不走却肆意在人行道驱车狂奔车主们,没见这些切实影响占用大众生存公共空间的事被好好治理。

也许有少数流浪猫对人造成了影响,但一定是极少的,猫见人就躲,产生小矛盾的优先级还不是公共空间的主要要解决的吧!

对我而言,没啥好犹豫的,遇到没饭吃的流浪猫,那当然是及时出手,现在还有不少公益组织,该救助的救助,该喂的就喂。不少城市还可以申请“街猫”的机器,实现全民云投喂,我不相信,我们的城市空间和街区里真容不下几只流浪猫?

我也了解到有人不喜欢猫,但我也相信主因还是接触少,不够了解。从历史上讲,猫必然早于人居住于这颗星球,日益扩大的社会和城市结构,只是对猫科动物领地的侵略。

和动物共处很难吗?有些事并不是看到的听到的和想当然以为的,明明有更好的解决之道,却因投喂担责的恐惧而缩手离开,还不忘说一句,野猫伤人了你赔吗?我也想讲一句,生而为人,你不值得这人间。

零碎呓语

缺少内驱力的问题没有解决,这种情形不用量表也知道接近抑郁,在槿呈《壹苇可航》看 人类行为中的四种愚昧(节选自 2024 年 3 月 26 日发布的第十期电子报)。

  • 对未知的偏见,甚至是敌意。
  • 对未经历的虚妄自傲。
  • 对权威的盲目崇拜。
  • 对虚幻的不切实际的期待。

以上种种的解决办法是:

  • Open Mind
  • 谦逊地学习
  • 批判性的思考
  • 清醒且脚踏实地

大师可以对概念进行通俗的解释:比如看涨期权,即赌价格会上涨。

学习 PM 技术发现 PMP 已发生变化,没有了死记硬背的IPO,更多的是一个 “What should the project manager do next? 的游戏”。

“巔峰誕生虛假的擁護,黃昏見證真正的信徒!” 说明了对生命的坚信的部分要坚持。

AI 发展对音乐产生了冲击,甚至有说:All turned out well, and music was solved forever. 一切都很顺利,音乐也永远解决了。给出一段 50 字提示词,获得一段一分半钟的音乐。

马斯克在“X”发言:除非美国政府进行重大改革,否则法律法规将逐年恶化,直到所有伟大的事业,从城市间的高速铁路到实现多星球生活,都实际上变得非法。特朗普支持成立一个政府效率委员会,让伟大的事情得以实现,而卡玛拉·哈里斯不支持这样做。如果卡玛拉赢了,我们永远也到不了火星。

过了夏天最热的时候,对精酿啤酒的兴趣减小,日常回归到咖啡和茶。

本周投资

已经非常接近可以出手进入市场的时机了。

本周数据

年周 项目 动态 关注 友链
2024W35 5 252 6 14

Money Focused Freestyle

听过

神来之笔为第一句。

歌词

Money Focused Freestyle

作词: 耳鼻眼喉科 作曲: 耳鼻眼喉科 编曲: 耳鼻眼喉科

我在房间里洗个澡,

同时在思考中国有哪个 rapper能比我屌,

Money keep coming in,

我连银行账户余额都记不到,

我们站的高,

但目前我还嫌自己赚得少,

我和我兄弟还吃不饱,

不跟说唱歌手耍,

我不喜欢假装和平,

好嘛我耍的是 hiphop,

几爷子都要符合国情,

你们以为在耍人设,

结果你们的人设跨咯,

你以为在耍说唱,

结果遭自己婆娘耍了,

但 hiphop教我的常识,

永远是我们这儿弱肉强食,

在我字典里只有"狂"字,

车女人还有房子,

打扮得行市,

所有东西必须要跟上档次,

他们看到我们的样子,

估计他们都悔青肠子,

都说疫情赚钱好难,

我问了我 Digi的兄弟,

结果他们都感觉还好喃,

都感觉赚得不少喃,

这些小娃想蹭我,

可以理解我穷的时候也想过,

有哪个不想开敞篷,

然后可能再耍一个网红,

他们说我中专说唱,

所以你要认真学习,

不然真的会变得像我,

不然变得跟我一样火,

然后赚得跟我一样多,

不然你读完研的同学都想来跑过来给你放歌,

不然你老师以前喊你退学现在来找你要签名,

不然你学弟学妹天天把你当成学习的典型,

那些让你不守规矩的东西你们都应该远离,

不然对比太过鲜明你要稳住社会的天平,

来自小镇在城里面闯荡,

听到钢琴我感觉像朗朗,

说我赚钱不能太张扬,

他们仰望我眼带光芒,

我在欧 block录完首新歌,

看了下时间才三点整,

我再写两首情歌,

感觉我现在少了点饭圈粉,

我在房间里洗个澡,

同时在思考中国有哪个 rapper能比我屌,

Money keep coming in,

我连银行账户余额都记不到,

我们站的高,

但目前我还嫌自己赚得少,

我和我兄弟还吃不饱。

给网站增加了 DIŸgöd 的 follow(Description 方式)

为什么我写了好几篇

为 follow 增加 claim 的方式有三种,我最初选择使用方式一,但增加 Content 后无效,经思考,估计方式一不支持 Atom 格式 Feed(个人猜测)。

为 follow 增加 claim 的方式

follow.is 是 DIYgod 的新产品,其中可以 Claim 一个 Feed 为自己的,据说为 follow 增加 claim 后可以支持打赏。

增加方式有三种:

  1. Content

    在 Feed 最新内容中增加如下文字:

    This message is used to verify that this feed (feedId:41342818708527123) belongs to me (userId:41447029693323264). Join me in enjoying RSS on the next generation information browser https://follow.is.
    
  2. Description

    在 Feed 的 xml 文件中,增加 Description 标签,内容如下:

    <description>feedId:41342818708527123+userId:41447029693323264</description>
    
  3. 在 Feed 中增加如下内容:

    <follow_challenge>
       <feedId>41342818708527123</feedId>
       <userId>41447029693323264</userId>
    </follow_challenge>
    

Pelican 增加 claim 的方式

由于 Pelican 实现 Feed 的方式是采用 Django 的 feedgenerator 工具库(依赖一个成熟项目的组件是非常聪明的做法)。经查看源码,发现 feedgenerator 支持新增节点,但不太支持修改 Feed 节点,于是,对于此场景较好的方式是手动搞定,搞定方式嘛,新增一个 Pelican Plugin 来处理或者新增一个后处理步骤(比如一个脚本),在其中处理一下 Feed 的 XML 文件内容即可,原理都差不多,采用 Pelican Plugin 方式的好处是可以较方便获取文件路径。

Pelican 实现 claim 插件源码

给网站增加了 DIŸgöd 的 follow

This message is used to verify that this feed (feedId:55490470857612288) belongs to me (userId:41447029693323264). Join me in enjoying RSS on the next generation information browser https://follow.is.

记录盒马鲜生好吃的烘培和好喝的啤酒

评分水位:

青岛1903

⭐⭐⭐⭐⭐ ⭐ 7/10 星

精酿啤酒

  1. 浑浊IPA精酿原浆鲜啤酒(印度淡色艾尔)
浑浊IPA精酿原浆鲜啤酒

⭐⭐⭐⭐⭐ ⭐⭐⭐ 8/10

有性价比的一款。

  1. 暖姜西打(Craft Ginger Flavored Cider)
暖姜西打

⭐⭐⭐⭐⭐ ⭐⭐⭐ 8/10

适合女生。

  1. 皮尔森啤酒黄油风味(Butter Flavor Pilsner Beer)
皮尔森啤酒黄油风味

⭐⭐⭐⭐⭐ ⭐⭐ 7/10

有软软黄油风味,适合软男。

烘培食品

  • 原味麻薯 330g
  • 原味&伯爵红茶味瑞士卷 560g
  • 猫山王榴莲千层蛋糕 470g
  • 经典生巧卷 190g

边水往事

前几集,我是在旁听的声,然后就饶有兴趣的坐到了屏幕前,直到看完,真是部好片。

为啥好看

  1. 猎奇。虽架空,但实景拍摄,混合本地文化,看得出五湖四海聚集缅北,三边坡非常容易想到是金三角。
  2. 导演与演员。导演方面懂的不多,但监制是名导演;演员方面,主角郭相比算有进步,吴镇宇出演 Mr.Guess 专业自不必说,其它主要配角演员演技惊艳,郭虽演技不如,但也看得出他的诚恳和努力。但北京腔挺要命,给人一种 C 语言做 Web 敏捷项目的感觉。
  3. 以小时空的转换彰显了多元的世界观。故事背景也厚重,属于近几年发生,有野心的导演还未涉猎的那种。
  4. 音乐。采用云贵山歌,听起来很民族,也很燃,片尾曲给剧锦上添花。
  5. 画面有质感,镜头语言丰富多变。
  6. 人性。总体表达中,故事中段节奏较好,围绕着人性,将角色放在抉择中,每个小角色都很有故事感,可惜的是审查下,女女的故事有所阉割。

事件流实战

评分

⭐⭐⭐⭐⭐ ⭐⭐⭐ 8 / 10

摘录

  • single-event process (SEP)
  • multi-evets process (MEP)
  • complex-event process (CEP)

神经漫游者

评分

⭐⭐⭐⭐⭐ ⭐⭐⭐⭐ 9 / 10

记录

书是好书,最好读原版,Case and Molly 的 Cyberpunk 故事。

TypeScript编程

评分

⭐⭐⭐⭐⭐ ⭐⭐ 7 / 10

记录

我粗浅的观点是:TypeScript 领域就没什么好书,个人也没有必要用。

福佳白啤

Hoegaarden

福佳白啤

我认识这款酒是出于表弟的推荐,记不得是十几年前了,他某次回国路过深圳,在 CoCo Park 的酒吧我们喝了几杯。

在当时的认知中,啤酒的口感就只有一两种,清新的和焦糖甜感的,但这款给我留下了很不错的印象——居然是一款带有花香味的比利时啤酒。

后来在白石洲,有一位外国酿酒师开了一间精酿啤酒吧,为我普及了一些啤酒知识,我才了解到 Hoegaarden 属于白啤,也是一种特殊的精酿艾尔。

当然,许多酒友都称之为福佳白,其实福佳是厂牌,白是指白啤。

每次喝它时,总想起表弟的 GAY 笑话,Hoegaarden,在某些地方,会不会有一些娘娘腔的印象。

但,没事,当不处于文化环境中时,伤害不大。忘记笑话,并不妨碍认为它是一款不错的酒。

当然,瓶装、罐装相比桶装的是差点意思,尤其是后来的什么 Rosée ...

我只能说,人喜欢经典的东西,有时并不为因为怀旧,单纯因为经典的确实更优。

尤其是啤酒配方和工艺这些结构稳固的东西,稳定下来的产品都是迭代至口碑差评收敛的版本,人对风味的偏好变迁过程异常漫长,如果你发现人们对风味的偏好变化的太快,那后者至少有一些不诚实。

出于饮酒认知成长过程,或者出于男子气概包袱,不排除有人不再喜欢福佳白啤,但无论男女,我相信初饮至少是喜欢过它的;而如果你的生命中还未路过它,我愿它也能出现在你的愿望清单中,而且它可以一直呆在其中。

hoegaarden1 hoegaarden2 hoegaarden-3

评论

瓶身以淡蓝和白色为主,主打一个清新、优雅,玻璃瓶线条流畅,握感舒适。当你打开它,那股浓郁的果香和香料气息会奔涌而出。柑橘的清香与芫荽的独特风味相互交织,是清新中带有复杂层次的香味,这正是它的特色。

口感入口轻盈,泡沫细腻丰富。初尝有微微的甜味,随后柑橘和芫荽的味道逐渐在口中散开,带来一种清爽的口感。啤酒的酸度和苦度平衡和谐。此外,酒体适中,不淡薄,也不会过于厚重,尾调余味悠长,让人在饮用过程中感到舒适。(中庸真乃商业成功之道)

2024年第33-34周周报

2024年第33-34周双周报

见字如默。

对人,对人生,过分的悲观和过分的乐观,都是不诚实的。

本周学习

在项目管理上,14 小时。

在编码实践上,使用 loco.rs 两周的感觉就像很多人所说的一样,比较后悔使用 Rust,它确实带来了门槛。用 TypeScript 编写几个 Astro 组件,国内前端真没有市场了。

在技术娱乐上,尝试了 BeOS 的后裔 Haiku,但它基本没有可用性。相比来说,Deepin 23 的发布,炒作的还不错,希望继续修炼内容,比如内置本地大模型什么的,在每一层软件都有原创,并没有那么激动人心。实践 RIME,在 Linux 和 Windows 上,但需要配置的地方挺多,相比隐私的风险敞口,耗时也是大多数人不希望的,暂时没有深入使用的打算。

内置 AI

炎热延续。每日投入 1 小时打理猫和流浪猫,2 小时阅读,0.5 小时跑步,穿插一些任务管理和内容的转移,时间满用率约为80% 多。

情绪

看到 Mosher 的软件工程定律,“就算它工作不正常也别担心。如果一切正常,你早该失业了”,道出了软件行业的事实,行业中优秀的人都在与硬件公司共谋,计划以某种方式终止这个行业。

窍门一,就是正视人生的荒谬性,在这荒诞的人生舞台,你演绎肉体逃避和精神自杀,都没有意义,另一种态度是以奋斗对抗人生的荒谬,以加缪的方式,但在我的时代,奋斗的方式都失效了。我们的时代一百个人中,或许有十个是在真正的奋斗,有十个人负责为这几个人生产和运送粮食,还有几个人在研发资源分配软件,几个人盯着这软件确保它能运行,几个人假装在改善这种机制的运行效率,但你找不到这个资源分配游戏中规则制定者,游戏中剩余的三分之二玩家,无法触发主线或支线任务。

窍门二,随机性影响着人生的每一个转折的走向。每个人都会做出无数的选择,但只有几个选择是处于关键路径之上,少数的偶然和意外,都能不经意地改变人的轨迹。曾经,随机性带来多彩、惊喜和机遇,但随机性的叠加,也导致了确定性的丢失,在这种情况下,你想努力把握现在,却无法找到一种支点。这或许是荒谬的表达,以前你在追寻人生为何而来又将去往何处中迷惘,当下你一眼看到了前路,却复杂难以预测,甚至看不到什么其它可能。面对这些,我们能做的是不再把时间浪费在费力地建造“沙堡”上,沙堡无法抵御海浪。

坐下来参与了一局游戏,发牌的不是你,但你却不能不出牌。

三个玩具

  1. FastHTML,The fastest way to create an HTML app。如果你想用 Python 来写 HTML,可以玩一下。
  2. Selfhosting 可以确保你的数字生活隐私。分享两个玩具目录 https://zituoguan.com/https://hostedsoftware.org/,我在其中寻了一个asmbb来玩,一个汇编语言的论坛,数据放在 SQLite 中,可在最乞丐版的主机上轻松托管。
  3. 一个刷 HN 动态的地方,运用的 AI 摘要。

本周投资

说做金融越来越像骗子,骗子都去做金融了。都要讲透股市逻辑,但股市有十个逻辑,却不知是哪个。技术明明是低概率的,市场明明是失效的,人明明会乐观自我评估的,为啥还相信最佳的投资决策由别人去做。依旧空仓。底未到,关注加息。

本周快乐

本周数据

年周 项目 动态 关注 友链
2024W33 5 252 6 14

安全意识、记一次MySQL勒索

遭遇 MySQL 勒索

表现为,打开 MySQL 或 MongoDB 时,发现数据库被删除了,多了一个 RECOVER_YOUR_DATA 表,其中的内容为:

All your data is backed up. You must pay 0.0131 BTC to 1JjzBZ8MdxFpecDgp24FrrHwQmzXXM4hTr In 48 hours, your data will be publicly disclosed and deleted. (more information: go to https://is.gd/dayuwi)

After payment send mail to us: dzen+2xh5w@onionmail.org and we will provide a link for you to download your data. Your DBCODE is: ABCDEF

上述 DBCODE 每人的都不同,但比特币钱包地址相同,经过查阅,地址 1JjzBZ8MdxFpecDgp24FrrHwQmzXXM4hTr 目前还并未收到任何交易。

比特币勒索套路

Oracle、MongoDB、MySQL 等容易被劫持,删除存储数据,要求支付比特币的赎金。

借助 AI 完成这个程序非常容易,扫描开放端口上的管理员弱口令,要做的是删除数据,并插入勒索消息数据。

对于普通目标,压根不必全表拉取并备份,只要获得几条数据用于验证即可。

我相信很少有做这事的人一单一单手工完成,那样是没有投入产出比的。

千万不要支付赎金

因为支付的结果大概率是没人理你,这样做对于勒索者是最安全的。

解决办法

  1. 寻求专业人士帮助,利用硬盘文件恢复;
  2. 利用数据库 bin log 恢复;
  3. 利用备份恢复;

根因分析

根因:安全意识弱,感觉数据没有那么重要。

防范办法

  1. 永不使用弱口令;
  2. 不在 Internet 公开数据库服务端口;
  3. 如果确实需要公开,则按固定 IP 或受信子网指定可访问 IP,禁止配置允许任何地址的远程连接。

2024年第31-32周周报

2024年第31-32周双周报

见字如新。

至立秋,深圳依然暑气熏蒸,清风难觅,赤日炎炎下,万物繁茂,虽绿荫成盖,然也炽热逼人。

这两周我崩溃于巨大的信息焦虑中,直到阅读中发现一点好东西——单核工作法——我的心理学导师在很早时就曾传授其效率策略“一个时间段只做一件事”,然而在过去的多年中我却并未尝试,直到我看到《单核工作法图解》。另外我在 AI 的措辞下,很轻松地取回了 X 账号权限,这两者让我重新思考身份和定位,需要按定位重新梳理和反思信息源。和许多事一样,都需要耐心。

本周学习

在项目管理方向,投入 14 小时学习 PMBOK,同时完成一套测试题。

在编码实践上,在编程的小任务可以被 AI 辅助的今天,一人公司、Indie Hacker、产品构建者们可以运用 TDD 来确保软件产出质量——通过红蓝测试来完成特性,利用单元测试来验证 AI 生成的代码片段在调整后满足特性预期,甚至单元测试本身也可以由 AI 完成,将众多用例转化为 TDD 程序,就像一个个挑剔的使用者,会更容易回归和看出问题来。不过,维护一套需求跟踪矩阵也是工作量密集的工作,在公司使用的是 Power Designer,在家我用 Org mode 的层级链接。

接续上周的验证,loco.rs 工具在实际体验上没有脚本语言的修改后即可运行的体验,毕竟 rs 是需要编译的,没有那么敏捷。

出于颜值考虑,抽空玩耍了 ElementOS 7 发行版,号称颜值 No.1 的 Linux 桌面,基于 Ubuntu,所以在墙内,实际用起来,除了美丽一点,软件和 Ubuntu 无差。

炎热降低了效率,本周有更长的睡眠时间。每日投入 1.5 小时打理猫和流浪猫,1.5 小时阅读,0.25 小时跑步,两周 14 日减去共计 21 小时、21 小时、4 小时,按每日 8 小时计,时间基本被用完。

单核工作法

《单核工作法图解》并不是一本恰饭的日式畅销书,它的旁征博引较科学的信息源,和《番茄工作法》不同,它和《子弹笔记》或《原子习惯》一样,值得拥有纸质。在歌手节目上了解到张韶涵每小时都有闹钟,这不就是单核工作法的全景闹钟。如果了解并实践过番茄工作法,就会了解到保持时间盒的不易,所以单核工作法在其技术上有所改变,我认为这是一种改良。

新职业

人力资源社会保障部、国家市场监督管理总局、国家统计局联合发布生物工程技术人员等19个新职业。其中包含一些有意思的职业,如用户增长运营师、 网络主播和文创产品策划运营师等,但可以看出,这些职业说明更大可能是从所监管的单位收集的而不是至上而下编写的。

用户增长运营师:运用数字化工具,从事企业或机构用户增长、管理及运营等工作的人员。主要工作任务:

  1. 根据企业或机构的发展阶段、经营目标设定用户增长目标;
  2. 运用线上、线下的营销手段为企业或机构吸纳新用户,并建立与用户的在线交互社群,确保用户的留存;
  3. 在社群内根据用户类别、需求等特征进行标签化管理,制定标准化运营和服务流程;
  4. 为用户提供咨询、交易等服务,激发用户活跃性,提升用户对企业或机构的认可度和信任度;
  5. 收集用户对产品、服务的反馈,提供给生产相关部门参考、改进。

网络主播:基于互联网,以直播、实时交流互动、上传音视频节目等形式发声、出镜,提供网络表演、视听信息服务的人员。主要工作任务:

  1. 进行网络表演、视听需求分析,协助确定直播或拍摄脚本内容;
  2. 编写网络表演、视听内容发播稿或直播脚本文案,并进行备稿;
  3. 设计基于节目定位、直播主题和主播个人特点的出镜、声音、妆造形象;
  4. 制作传播符合社会主义核心价值观的内容,控制网络表演、交流互动、视听节目等制作进程,引导话题方向和内容;
  5. 有序组织实施线上互动活动等,管理连麦、弹幕、评论等互动内容,处置同步或异步传播中用户互动突发情况;
  6. 参与网络表演、视听内容等传播中的数据统计、分析和优化等。

猫表现出对其它宠物死亡的悲痛之情

肉肉是英短和俄罗斯蓝猫的后代,但它看起来是西森。本周我们带他去绝育了。艾米也在几天后停止了发情,她经常观察镜中的她,总会让我常常想到西部世界中服务员的觉醒,动物学家们并未观察到太多的动物具有自我意识,猫还未被观察到具有自我意识,能识别镜中的自己。但最近看到猫的统计数据呈现出对其它动物死亡的悲痛,此类统计往往带有观察者自我投射的偏差。以下是来源:猫似对狗的死亡感到悲伤 家猫对失去另一只伴侣动物的研究

三个玩具

  1. WebUI:如果还在考虑 Electron / NW.js、Tauri、React Native,那么你可以看看这个新解决方案。WebUI(与 Stable Diffusion WebUI 无关)使用任何 Web 浏览器或 WebView 作为 GUI,且可以在后端使用您喜欢的语言。我仔细评估了它,它在给自己写基于 WebView 的应用上,并不比 Python + Headless 有优势,但在交付上,可将代码转为 C 编译以保护实现,且不包含运行时,分发要容易得多。它虽然没有解决关键的痛点,但也算是一种新颖的改进。经过这种架构,让我有了新思考,其实浏览器就是一个更好的全能 UI,WebGL,WebGPU 等,和本地相比,有少许的性能损失,但带来的优势是开箱可用。它甚至可以成为一个新的操作系统内置运行时。
  2. 开发者的免费资源大集合:来自槿呈Goidea 的分享。
  3. AI资讯日报:产品经理 @Gorden_Sun收集。

本周投资

依旧是空仓。日股熔断,美股大跌。鼓吹的大 A 底部和鼓吹的美股衰退“越来越近”。如果读完了技术书,并用代码复盘了技术的历史表现,就知道都是在鬼扯。市场滞后,部分有效,且反身,且总是正确的。

本周快乐

本周每日要消耗不少绿茶和啤酒,并没有明显的快乐,唯独在冷气足够的空间中,捧起一本环保纸小开本的小书,才有点微小的乐趣。另外,编码者的举手之劳,可免费领到一块酷酷的阿里云免费鼠标垫(aff)

本周数据

年周 项目 动态 关注 友链
2024W31 5 251 6 13

关于遗产代码维护

十七年前的代码

如果有机会维护了十七年前的代码,你一定能学到很多。

我维护的是 Windows 2008 下 PHP 5、MySQL 5、Apache 2.2、Python 3 的代码。

总结了一下,首先需要了解平台规格,运行时最小化支持版本。

Windows 2008

Windows 2008 不算很旧的服务器,毕竟我还用过 Windows 2000、Windows 2003。

准备环境,开始十分不方便,依次下载 7-zip、Firefox、Python,一个带高亮的文本编辑器,然后方便多了。

Windows 2008 在 Python 方面最高支持 Python 3.4。

安装 pip,会提示下载一个旧版本的 get-pip.py,使用旧版本 get-pip.py 后,终于可以安装一些旧版本包。

但需要编译的包,还会依赖旧版本的 VSBuild 环境。

某些旧版本包,国内镜像不支持,估计是没有全部镜像的缘故。

整理这些复杂的依赖关系,就够喝一壶了。

而 PHP 5、MySQL 5、Apache 2.2 相对就好一些,我还能在我本机找到一套配置好的,其中包含了 Zend 优化和 XDebug。

这些源代码估计还在,但若要凑上相互配合一套,要自己编辑时,准备环境这件事来说,拿给小白,没几周是不够的。

预计十年后,我也许还会维护升级这些代码,若有时间,放到虚拟机中更好,可以不受硬件限制的启动,而直接进入环境。

最大的心得

之所以现在还能维护,主要是因为之前我也是亲自配置的,具有经验,另外,多年之前考虑过维护,作了少量当时环境的打包。

若让一位无经验的人配合 AI 完成这些,也会有不少坑。

电解质水平替、该不该喝酒及智商堪忧

电解质水平替的来龙去脉

电解质水平替事关一位网红大V——Fenng,更容易被记住的是他的头像,最初因搜索科技资讯 App 比较,批量下载了小道消息,那个看起来欧美画风的挺欠的头像让人记忆犹新,但后面内容似乎不更新了,到后面我的朋友在北京创业,做了一个 news + NLP 的新闻提炼的应用,我也无意间发现了类似的 Readhub,了解到后面的无码科技,正是它们的产品。

Fenng 现在算是 X 上的网红,常有各种争议的言论,都是群友转来看,我平时不大关注。这次他提到电解质水的平替太贵,有人说盐兑点水就是,他却说人“智商堪忧”,他这句言语从心理学上理解,有些自我攻击或者自我鄙夷。在我看来,作为社媒言论是不妥的,甚至有点愚蠢,从领域常识上看,也与医疗领域科技产品公司负责人身份不符。

一方面,就电解质水的平替问题本身来说。基于对盐汽水认知和户外运动经验,是经验有效的。曾见过工地的工人分发饮用盐汽水,且户外运动出汗非常多时,一些退伍军人也直接补充盐水。从常识上说,电解质和水都在人体内,比例须达到一种平衡,通过消化道直接补充电解制水,人在吸收时,是有渗透调节的,因此食盐和水比例的一定阈值范围内,人都可以自己调节这种平衡,这种比例是否恰当,只要不过量补水和过度放盐就行。在需要补充电解质时,很少有人会纠结于盐和水的比例问题而放弃补水,一小勺盐加到一瓶水里,就直接喝了。

另一方面,人体电解质主要有钠离子 Na+、钾离子 K+、钙离子 Ca2+、镁离子 Mg2+、氯离子 Cl-,食盐中也主要含有这些离子,它们主要负责调节体液平衡、血压、心跳、肌肉收缩、神经功能等。你很少在现实世界听到因运动后过度补充盐分而出现问题的事件,这本身可说明人对盐水比例的容忍度是非常高的。

所以,加点盐的水作为人体补充电解制水的平替是 OK 的。

该不该喝酒

酒是世界文化的一部分,这不是巧合。密闭放久的事物都会产生这种类似的气味,祖先们经过尝试发现,它们居然可以喝,而且喝完后仿佛还会进入一种不可名状的状态。我们是听着先人饮酒的故事,看着祖辈饮酒,到自己饮酒的一代人。

但记得去年时候,看到老高讲酒是毒药一集,说最近科研表明,酒精和人的健康总是负相关,总是和人的疾病正相关。这颠覆了少量饮酒给人带来好处的常识,就是说,哪怕是喝一滴酒,都是喝了毒药。

而在生活面上,无论是线下的酒吧和线上的卖场,酒都是很重要的品类,刚挤进超市五强的盒马,就推出非常多的精酿啤酒,广受欢迎。

所以问题到了,如果酒是毒药,为什么大家要卖;这个问题的提问方式,如果烟有害健康,为什么会卖?是人不理智,还是卖的人坏,或者这就是世界的 Bug,所有的人都装作不知道和其中没有矛盾。

我是这么看待的,夏天日常我也喝啤酒,品酒和非常少量的红酒,偶尔白酒,甚至还有一些喜欢,但不酗酒,喝的不多。一般是啤酒一罐(类似可乐),红酒一两杯,白酒二两的样子。无论研究怎么说,酒和菜肴搭配还是有一种最简单的乐趣。

在相信科研和相信经验上,我相信能重现和验证的科研结论,但我和大多数喝酒吸烟的人一样,不太在意这些,经验告诉我,酒对人的影响也许是负面的,但酒对健康的影响没有想象的那么大。影响人健康的因素中,它占不到主因。

矛盾事物

所有的人在一生中最大的矛盾在于,明明都是要死的,却都装得那么永生。

这可能就是人性中最大的盲点:虚伪且无明。

二分法提供了解构矛盾事物的视角,它说矛盾是统一的。

人在快乐和悲伤时都喝酒,这说明人非常清醒,即想早点死却也不想死,这点,连神也不懂,所以才创造了我们。

AI融入生活的两点想法

如半年前预料的,流量入口从互联网搜索正转向AI提问。

现在有疑问时,无论是技术领域或者生活领域的我都趋向于提问AI,我爸也是,但他那辈人还没有形成我一样的习惯。

Tombstones 是啥

为修改任务栏上的图标名称,我进入了下面的目录:

C:\Users\kaffa\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch\User Pinned\TaskBar

在此目录中,我发现了一个叫做 Tombstones 的目录,Tombstones 是墓碑石,许多国人会觉得晦气。

为弄清楚 Tombstones 是个啥,我特地询问了豆包、通义千问、腾讯元宝、ChatGPT,结果出现了三种答案。

经过搜索的确认,我趋向于考虑它是一种 Windows 机制。

这里想说明的是,这个问题并不是一个靠逻辑推理可以猜测的问题,而是取决于领域知识,也许是 Windows 是微软的,但在回答中,只有 ChatGPT 的回答是肯定且确切的。通义千问的回答也还可以接受,但豆包和腾讯元宝就差点意思。

VOKEN 是啥

我爸给我发了一块手表的图片,他问我这是什么手表,经过识别,我发现了 VOKEN 品牌文字。

通过对 豆包、通义千问、腾讯元宝、ChatGPT 的询问,也还是 ChatGPT 靠谱。

这说明了什么

经过上面两个例子,涉及到知道不知道的问题时,ChatGPT 占优势;豆包比较弱,通义千问、腾讯元宝也不强。但在使用体验上,豆包是一流的,日常随便问问时,我还是使用豆包较多。

这两个例子虽然不具有代表性,但能说明我和我爸使用 AI 的习惯。

  1. 用户习惯正从搜索转向 AI。在效果差不多时,不一定使用最强的,也许会使用顺手的 AI。
  2. 虽然老年人使用 AI 了,但 AI 自以为是的回答问题还是没解决,对于使用 AI 的老年人来说难以理解。

2024年第29-30周周报

2024年第29-30周双周报

见字如旧。

本周主题与旧有关,我重读了《黑客与画家》和《宽客人生》。除了老朋友,几个月前联系我的公司也来联系,我还特地查看是否进入了第三次水逆,但似乎下周末才开始,且于我影响不大。

这是我第二份双周报,我于此双周中,在户外社区创始人的提议下上线一个十七年前备份的旧社区,写了 Astro 前端体验优化代码,还对 Drupal 的无代码开发作了尝试。也许是外在工作太多,忽略了自我感觉,用房树人工具做了一次心理测试,从心理测试结果中发现了可能未意识到的一部分自己。我的外在工作模式是并行和多管齐下,下半年工作重点是纠偏和完成一轮个人工作流构建,目标是在 12 月 31 日前上线。为实现此目标,还需要细化计划,裁剪过程。

本周学习

在项目管理方向,投入 7 小时学习 PMBOK 新知识点,但每日练习没有坚持继续。

在编码实践上,投入 10 小时,用 Drupal 无代码搭建一个知识管理系统,写了一些 Astro 前端优化代码,这部分代码会移植到 Svelte 下。使用 Drupal 的缘由是看到一本相关的书,我最初对 Drupal 的印象是,很多人说是高级的 Wordpress,做 CMS 它也很稳,但安装后,体验特别苍白,慢且臃肿,摸不着它的高级感,后来并未放弃对 Drupal 的了解,翻看了 O'Reilly 出版的 Using Drupal,但也并没有认识太多不同。直到前几天在书店无意间翻看到一本 Drupal 的书,发现 Drupal 进化方向上竟然是 Codeless,然后其中的自定义字段似乎是多年前我在鹅厂工作时一种未曾实现的无码架构。对于自定义字段,方案我了解的有两种,动态建表或竖表,后者在百万数据级以下勉强可行,动态建表有一些安全性方面的挑战,但性能可以更好,方案还不绕。为弄清 Drupal 中 Codeless 的实现,我饶有兴致的安装了 Drupal 10,体验了一番,发现它性能好很多了,概念和结构也完整许多,它使用的是动态建表,但很遗憾是动态部分未纳入缓存索引,因此如果要支持过滤或查询,还需要写一些扩展的模块或者使用一些第三方的模块。总结一下就是,Drupal 在国内的适用场景通常是安全性要求不高的非商领域,组织人很多、职能权限又各有不同,需要浅度 IT 用以信息展示,一些非业务领域的流程,如内部培训什么。如果贵方 IT 力量有限,但 IT 人很精英时,可以考虑 Drupal 无码化实现。

另一方面,在退休技术娱乐上,投入 6 小时,我将自己的 FreeBSD Server 从 12 跃迁到了 14.1 RELEASE,这部分是利用夜晚挂机时间完成的,大约时间跨度三晚。

剩余时间减去睡眠 8.5 小时 中,每日投入 1.5 小时打理猫和流浪猫,2 小时阅读,0.5 小时跑步,两周 14 日减去共计 21 小时、28 小时、7 小时,按每日 8 小时计,尚有 30 小时左右未被跟踪。

三个玩具

Loco:The one-person framework for Rust for side-projects and startups! 单人工程很难找出一个理由不选择类 RoR 的框架,我正在验证其成熟度。

AI 工作流编排组件: 流程编排组件不用自己写,直接用。多年前设想理想化的公司其实是一种被动的工作流集合,也是受环境数据驱动的“生物有机体”,其中有机部件是人(智能),现在这部分可以一定程度被 AI 替代。比如,从信息流中搜集某领域最吸睛的文章,由 AI 去重、总结,并交由发布引擎发布到各社媒;同时,从各社媒采集评论,由 AI 回复互动。现在这个过程可以短短几分钟完成,设置不同的主题,还可以完成边际成本极低的账号群运作。很多账号的发布频率与节奏和腔调疑似 AI。这看似利好个人,其实还是利好卖 AI 的公司。

与 TC 协作的有用的第三方工具: 此间包含许多我每日使用的工具和探索过的工具。

本周投资

持续空仓后,在交易上多出很多时间来。去微博看看一些曾经的财经 V 改名的改名,注销的注销了,叫老兔子之类。把今年下半年作为第一阶段,此阶段主要目标是,了解并比较几个开源交易框架,旧的工具了解发展,新的工具增长见识,比较过程会落在本站,比如最近看到的一个 lean.io 就还不错。实现目标的方式除了直接比较工具特性,还有补全量化投资背景知识体系,笔记会在 https://coffee.kaffa.im

两点想法

  1. 纳指在 2000 年的下跌幅度也达到了 77.9%,持续周期 13 年,那些看技术的伙伴们,本轮上涨周期的技术顶点在多少点呢,年线在第几浪?如何和标普 500 相互参考呢?
  2. 在弄懂目前市场的畸形变化前,不要轻易下场。

本周快乐

支付宝、抖音、美团,在本地生活领域斗得不可开交,让我常有坐享茶饮咖啡而钱包又不用很痛的时光。

本周数据

年周 项目 动态 关注 友链
2024W29 5 242 6 12

《黑客与画家》中累加器引发的思考

本篇是关于《黑客与画家》中 Paul 用累加器作为例子营销 Lisp,第一次读他的书时,还看不太懂,多年后我大约能理解一点了。我想就此问题本身和此问题的外延讨论一番,当然,你也看到本文的成熟度为 3 / 5,说明随着我对技术的理解,后续会持续修订。

了解本篇探讨的内容时,需先了解一点背景。Paul Graham 因创办 Y Combinator (创业公司孵化器)而成为美国“创业教父”。在他的随笔集《黑客与画家》中举了一个例子,用 lisp 编写累加器来说明 lisp 语言能力。怎么理解这个累加器,其实每个人都见过,基本上可等于计算器上的那个 M+ 键在计算机软件中的实现。其次,Lisp 是一门如此久远而特别的编程语言,用 Paul Graham 《On Lisp》一书中的话来说,就是 lisp 是一种可编程的编程语言。

这里的可编程,也类似编程语言中的 Lambda(常以希腊字母 λ 表示)以及宏代表的元编程能力,Ruby 语言的作者特别描述了这块,Y Combinator Y 也许也有此意义。

累加器问题本身

Paul 提出一个类似编程问题:写一个函数,它能够生成累加器,即这个函数接受一个参数 n,然后返回另一个函数,后者接受参数 i,然后返回 n 增加了 i 后的值。就是说,写一个能生成函数的函数。

Common Lisp 的实现为:

(defun foo(n)
  (lambda (i) (incf n i)))

调用方式和结果可以是:

(setq acc (foo 2))
(print (funcall acc 6)) ; 8
(print (funcall acc 7)) ; 15

并且举出了 Ruby、Perl、Smarttalk、JavaScript 的实现,并列举了 Fortran、C、C++、Java、Visual Basic 似乎无法实现或优雅的实现。

特别的,Paul 强调了 Python 貌似比 Perl 优雅,但实现起来由于 lambda 支持的局限,也未能有类似实现。

从逻辑上,似乎是仅针对 Python 语言设计的一个偏好来对比它,未免显得不公。Python 的实现更函数式一点,也是表达了 Guido 对 Python 语言设计的取舍,弱化的 lambda。Lisp 其实算是函数式的鼻祖,但上面的累加函数反而不够满足,它对相同的输入,返回不同的值,因为它不够内聚,对外依赖初始值这个外部状态,不利于没有上下文时去理解程序,且 lambda 内部引用了 n 还修改了 n 的值,就好比你有一个钱包,当你第一次放了 10 块钱进去后,你发现它同时拿走了你上衣口袋的 8 块钱,第二次放了 10 块钱进去时,它又拿走了 7 块。(这个函数的实现上和学院教授的软件质量是对立的,这样的巧妙实现也许在内核级别或高度优化场景需要,但在应用软件上是完全不需要的。按现在软件质量看,它实现得非常野生,这样的能力只在能懂且能控制的人的设计中有用。对较大规模软件工程,就是灾难。)

如果某语言可以比较视觉优雅实现这个函数,则该语言函数须是一等公民(可以作为返回值),其次在闭包作用域实现上借鉴了 lisp。

让我来扩充现代语言的实现,比如 ES 的语法糖:

const foo = n => i => n + i;

Rust 显得格外严谨也显得强约束,其次整数类型 i32 还需要仔细斟酌:

fn foo(n: i32) -> Box<dyn Fn(i32) -> i32> {
    Box::new(move |i| n + i)
}

其实,能优雅实现的不只 lisp 和 lisp 方言、ruby 等,连前辈 tcl 都优雅:

proc foo {n} {
    return [lambda {i} {expr {$n} + $i}]
}

唯独 Python 的实现要丑陋一点,原因是 lambda 匿名函数的不支持 return,要不,支持象牙符后的 Python,以下代码也确实合理:

def foo(n):
    return lambda i : return (n := n + i)

但现在,较恰当的实现如下,nonlocal 在内部作用域捕获外部 n,也是合理的,从代码清晰性上说,python 更甚一筹:

def foo(n):
    def bar(i):
        nonlocal n
        return (n := n + i)
    return bar

第二个实现,属于老油条代码,这个程序员至少理解引用:

def foo(n):
    s = [n]
    def bar(i):
        s[0] += i
        return s[0]
    return bar

但这种属于一种 hack 方式绕过语法的不支持,不深入研究一下 Python 特性无法一下看懂。

累加器问题外延

累加器问题外延其实是技术竞争优势,对强抽象表达的编程语言带来的软件质量,这属于高智商的智力游戏。

事出一个精通 lisp 的人选择使用 lisp 开发商业应用,并利用 lisp 语言优势快速开发了 Web 程序。

这一切都是开创性的,我非常理解这个过程,这意味着没有轮子,大部分需要自己造。

所有的编程都是开拓性的,而不是使用已有的成熟方案,lisp 正是这种 10X 程序员的秘密武器。

然后,这个创业过程还胜出了,这其中发挥作用的,我看到的,是真正的批判性思维,和基于事实逻辑和编程实力。

它提到的 lisp 的表达和抽象能力能帮助他以更少的代码击败那些 java 公司。

或许在他那个时代是这样的吧,lisp 是他的秘密武器,人才市场中,lisp 看似人少,但创业团队 10 人以下就够,且懂 lisp 的都是精英,你在 lisp 圈子中很容易找到这 10 个懂 lisp 的人。

我非常喜欢“拒绝平庸”、“书呆子的复仇”两章,也喜欢 lisp,但这个语言放在国内用于创业,基本是失败了一半。

一是找不到真正理解 lisp 的精英用它来配合现有基础设施开发商业应用,二是这个年代开发技术,特别是编程语言技术的差异,已经无法构成竞争优势。

但没关系,这不妨碍它成为书呆子的快乐。

c++ 一直在,perl 之后 java 崛起了,然后 ror 颠覆了 web 领域编程范式,然后是 go,也许 rust 之后,再没有像样的颠覆者了,dojo 可认为只是在某领域的优化,尤其是看到 ror 在 rust 中的实现 loco 时,似乎编程语言走向了终结。

总的感觉

即使 lisp 在语言能力上顶级的,但并不意味着 lisp 和商业成功之间有强关联性,而是使用 lisp 的背后的人的思维能力导致的。

用中国话说就是“艺高人胆大”,选择了少有人走到路,路还走通了,只不过这个艺,并不仅仅指 Paul 精通 lisp,而是指他习得的思维方式与精神。

思考方式和背后的精神;前者能给特立独行的创业者在混沌的商业环境之中获得优势分,后者确保思考方式。

至于技术能力和思考能力,那可以在事上练就。

2024年第27-28周周报

2024年第27-28周双周报

见字如晤。

7月1日至7月14日是二四年半年伊始的第一个双周,我于此度过了又一个散生日——11日位于22日的一半——我是正中位置的太阳巨蟹Plus上升天秤,也由此领空中,发展了天秤的平衡和公正特性。由于生命于此年的课题停落在财经上,有关星座的信息,我多半还不会在此时和此时探讨。

对运行半年的周报反思,存在如下问题:

  1. 内容不足;
  2. 发布时间不固定;
  3. 偏个人情绪和事件,大多与他人无用;

由于加了新目标和为解决这些问题,遂:

  1. 周期改为每两周;
  2. 发布时间,先固定为每双周日上午 8:00。

这样可以一方面解决内容不足的问题,不必耗费个人与读者时间;另一方面,内容定位以有意义和有用为主。

变化的形式背后是不变的定位,周报的宗旨:先服务于个人,然后是读者。

作为个站的周报的目标:

  • 跟踪目标
  • 总结反思
  • 保持节奏
  • 记录成长
  • 验证和确保工作流

你要是相信历史进入了垃圾纪元,那多半只和个人有关,如果你发现这个纪元的特征是冗长的荒诞和望不穿的不适,就连看到年份的头两位都感觉多余。那么,我推荐你读一读港大的荐书《活出生命的意义》。

我在其中学到:人在最糟糕的环境中,仍然有选择的自由;人在大逆境中,看起来很明智的选择,有可能会送你入深渊。这两句话并不矛盾,它说明: 在逆境中,需要审慎,同时,还需要主动选择。

本周学习

出于职业在管理方向的延续性,本周我主要看了第七版 PMBOK 的变化和案例。PMBOK 是 PMI 机构发布的新版框架手册性文档。其次,我看了一些 Svelte 与 TDD 联合使用的例子,以期用在一个公开构建的项目中。

在编码实践上,在 AI 的配合下,写了两段程序:服务管理程序和一段 d3.js 统计代码(源码见上期周报)。

三个玩具

YesIcon:229,683 枚高品质矢量图标,来自全球顶尖设计团队。使用此项目,可不用去其它地方了。广告语也有意思:陷入自我怀疑时,记得握个拳,心中默念:Yes I can!

Web 设计博物馆: Web Design Museum 展出了数千个 1990 年代到 2000 年代中期的旧的网站、手机应用和软件,包含屏幕截图和视频。

浏览更干净的网络: 此服务移除任意网站的弹窗、横幅宣传栏和广告。

本周投资

投资是新增的栏目,我将在此回顾量化投资领域的历史和展望未来。

两个观点

  1. 纳指历史牛市长熊市短,在整个周期上看,短期回调不调整仓位,长期收益依然惊人,但能做到的凤毛麟角。
  2. 投顾行业很难自恰,我总接到帮你赚钱的消息推送。我想说的是,哪怕只是年几百的咨询费,如果你掌握的消息真的值那么几百,你何不辞了工作撸起袖子亲自上场干。

本周快乐

收到生日祝福,饮了星巴克邀请的生日咖啡,LP 陪伴下吃了桂林风味的螺蛳鸭脚煲一起过了生日,吃了榴莲味的生日蛋糕。

本周吐槽

拿到一本《公共文化服务指引》,作为市级文化印刷物,封面真乃贻笑大方。设计版式和用色都杂乱,且没有表达重点,难道文化的中心就是小头人唱歌?谁正在做着文化的事,是请不起优秀的设计师吗,还是设计师的设计稿无法获得“领导”认可?

有人说是这个城市是文化的荒漠时,多年前,我会站出来反驳,那时候有福田购书中心、八卦三路图书批发市场、独立书店,甚至诚品也来过。现在我已经没有这个想法,是去书城和西西弗被书价背刺还是只饮咖啡,是去丁当达看小学教材还是5年高考3年模拟,是去看倒闭的二手书店捐助几次还是论斤买几套盗版书,还是去书啡生活拍照打卡还是去覔书城买文具,难道要去听裹着卖课外衣的阳春白雪的讲座,还是去大剧院看看音乐学院毕业设计,还不如去音乐厅听听管风琴。

纳税人给城市贡献被毫无约束地浪费在这种印刷品上,有时候想想也是可悲。

本周数据

年周 项目 动态 关注 友链
2024W27 5 239 6 12

别丧了,一点也不酷

评分

⭐⭐⭐⭐⭐ ⭐⭐ 7 / 10

评论

考虑到书的初衷,多给一星。本书是有7万多咨商经营的咨询师写的。

作为有心理咨询师二级素养的我来说,本书所叙属于个人已熟知部分。

能看到并翻开此书,正如答案之书,也许是提示当下的我与它”共时“。

本书主要讨论无力感,将心理咨询面对的心理问题、心理障碍、精神疾病看作是人的心理故障,在错误认知下未能纠正(外化)的bug。

现在来自时代和环境的压力确实很大,否则我也不是那么容易看到这本书。

LP 前几天让我在小红书发一些关于职场 PUA 的话题,长期被 PUA,若不自知时,就会产生的这种“无力感”。

来自外部的否定,心理学叫做“习得性无助”(learned helplessness)。

这个词源自 Martin Seligman 的电击狗实验,在早期的习得无助理论中,他认为,习得无助的产生由三个递进联结组成:一是不可控的环境;二是伴随性认知;三是放弃反应。

我们这个时代,常说年轻人“躺平”,也是环境带来的不确定性和不可控性带来的“习得性无助”,但主动“躺平“之中,也带有一些积极性的反抗。

习得性无助被发现之后的几十年中,干预手段主要是归因重构。即让呈现习得性无助的人去体验和认识习得性无助的过程,从而产生对这个过程的认知,增加可控性,并增加个体的积极情绪体验。

但仅此手段还不够,需要进一步量化讨论的是内在因素和外在因素占比,表现出行为的稳定性,因此 Seligman 本人也由此转向了积极心理学的习得乐观的研究。

转向积极心理学的契机在于,人内在可诞生足够的驱力,当外界条件准备好时,在咨询师的帮助下,个案会调用资源去处理好。

这是在说,问题其实是常态,也许永远无法解决,但我们依然可以发展积极的方面,这样注意力转向乐观归因,从而产生健康、康复的力量。

也许这句说的抽象了,例如参加第二次考试,某学科成绩又不及格,这是一种事实A,而对此的信念是B:

  • 如果认为是个人智商低,从而在以后的考试中放弃努力,产生的结果C就是又多了一个学渣;
  • 如果认为是考试难度大,复习时间短等外部原因导致,产生的结果C是在下次考试中投入更多的时间学习,得到一个更好的成绩。

这就是认知行为疗法的ABC:激发的事件A、信念B、结果C,进一步 ABCDE 是讲,后续产生与悲观的思想争辩(D),从而激发(E)出一个积极的行为。

抑郁症

值得一提的是,习得性无助不等于抑郁症。

习得性无助是一种思维习惯,也许有抑郁的现象,还得看是否够得上心理问题,可求助于心理咨询师。

抑郁症,说明心理产生问题的程度更深,已经是病症。通常长期处于问题状态之中,加上亲人的忽视或外界刺激才会导致,最麻烦的点是,产生抑郁症后,个人很难自知。

在临床上,一个人表现出抑郁气质,还需要通过量表详细测量判断是否是抑郁症,最好的解决方式是求助于医院的精神科医生。

神经递质与食物

在心理学研究中,已经发现习得性无助和去甲肾上腺素和血清素水平相关。这给了我们通过食物改善抑郁的机会。

可以通过食用新鲜的有助于产生和提高去甲肾上腺素和血清素水平的食物来改变抑郁状态。

更有研究发现肠道菌群水平和抑郁症相关,原因可能是菌群的降解能力可以改变激素水平。

保证膳食多样性或许是最简的预防抑郁的方法,常吃一些“安慰性食物”(如巧克力、冰淇淋、甜点之类)能让丧人得到一些安抚。

但更科学的方法难道不是根据研究的菌落数据,在一定时间内更直接量化的补充益生菌吗?

万能感

在解释万能感是,说人心自有一种力量,当人向一个方向行动,就会受到相反方向的行动的作用力,让人回到中央。

不过,我倒是很少体会过这种所说的万能感的反作用力带来的无力感。

对个人有客观的评判和真实的生活的人,怎么会产生这种感觉呢?

嫉妒攻击

在这里提出了镜像神经元,有兴趣可以了解了解。

全书剩下的还有一些咨询笔记式的东西,作者就无力感这种感觉写一本书,没能做到 MECE,其实没有说服力,但这本书可能会给一些刚做心理咨询的咨询师一些方法,或者一些有探索力的人一些对抗颓丧的力量。

心智的本质

评分

⭐⭐⭐⭐⭐ ⭐⭐⭐ 8 / 10

评论

一本讨论心智的书。

作者融合了科学理论、个人叙事和心灵指导,独一无二。

字里行间的冗长叙述更容易习得作者思维习惯。

保持心态开放,这点给加一星。

宽客人生

评分

⭐⭐⭐⭐⭐ ⭐⭐⭐ 9 / 10

摘录

在宽客群体中,确实有不少是物理学博士,也许是金融投资中的个体类似物理复杂系统的粒子,规律和模式可以相互启发,很不错的自传,适合慢读,大师陪伴之旅。

Svelte和Sapper实战

评分

⭐⭐⭐⭐⭐ ⭐⭐⭐ 8 / 10

评论

川流的作者李大毛没有猫在群里招募为新网站写前端的人,我报名后了解到其技术栈是 Serverless 和 Svelte 和 SvelteKit。我大约在几年前在 daily.dev 上常看到大家拿 Svelte 与 React 和 VUE 对比,但也有一些认为 Svelte 也有其不足,由于当时其位列前端三大方案之后,我未作细节关注。

这几年我都没有涉足编程技术,在大体尝试 Svelte 官方例子后,得知 SvelteKit 就是之前的 Sapper,让我想到了这本书。虽然 Svelte 出现的比较晚,在营销方面也没有很多突破,但它的思路确实比虚拟 DOM 更新颖,服务端编译也为它带来了比较优势——更小的打包尺寸和更好的性能。

我相信系统性优势是可以扩大市场占有率的,同时,我也认识到 jQuery 存在的时间比想象的要长。

说到此忍不住吐槽国内的技术生态,今日还看到v2ex一个帖子,说国内技术环境常年不变 centos7 java1.8 mysql 5.7,其实不全是,常年不变的算不上以技术为竞争壁垒的公司。仅在计算机系统的软件层面构建竞争壁垒是非常困难的事情。国内某些“厂”,之所以常年使用固定的开发环境,是因为它赚钱核心并不在此(使用更新的开发平台、更新版本的编程语言、性能更高的数据库),也不想在软件研发上作小白鼠做无谓的投入。这是一种很油滑作呕的策略,只从外部吸收索取,不回报,拿着多个开源项目,自己改吧改吧生成自主掌握技术。也许商业上算成功的,但对技术社区没有实质贡献。

这本书的可读之处,不仅在于它对 Svelte 体系的介绍,更在于作者的深厚功力,可以学到一个工作三四十年的技术大拿的思维方式和对技术周期的认知。

Svelte 是否是 React 的颠覆者呢,从影响力上算不上,但它确实是一种 Smart 的范式,喜欢的人自然喜欢,我也见过太多的新技术,但 Svelte 来说,它不仅仅是前端框架中一个新的 VUE。

The Digital Factory

评分

⭐⭐⭐⭐⭐ ⭐⭐⭐ 8 / 10

摘录

系统收集数据的方式表明,工人的劳动配额并不透明,而且还在不断变化。从这个意义上来说,它们变成了加速工具:配额一旦达标,就会发生变化,因为所有人都希望比平均水平表现得更好。正是由于这种不合逻辑的特点,才使得管理者能够通过“反馈谈话”展开微观管理,并加强对剩余价值的利用。关键绩效指标在订单履行中心的微观经济中起着决定性作用,是算法管理和标准化程序看似中立、抽象的量化逻辑的一部分。正如一名工人所说:“一切都是标准化的,唯一改变的是表现分数。”然而,关键绩效指标的力量恰恰来自非客观性。在亚马逊,个体工人、团队、经理和整个订单履行中心都要通过绩效指标相互竞争,并陷入持续竞争的模式中。“让每个工人的表现都优于平均水平”,这样不合逻辑的要求就是一个很好的例子,通过看似客观的量化,实现劳动力管理中蕴含的恒定加速逻辑。

谷歌的员工队伍中有超过10万名像图书扫描员这样的临时工、供应商和承包商(TVC)。举个例子,这些分包工人负责抄录对话用于训练谷歌的数字助手,驾车为谷歌街景拍摄照片,检查上传至YouTube网站的视频是否有危险内容。他们中有些人在山景城园区上班,和高薪的谷歌员工邻桌而坐,有些人则在世界各地的客户服务中心任职,还有一些人居家办公。谷歌会尽可能地避免谈论这些人,将他们隐藏在砖墙和数字界面背后。他们执行的任务往往会被大多数人以为是由算法完成的。不仅是在谷歌,这类工人在其他地方也经常被忽视,尽管他们是当代数字资本主义中至关重要的一部分。因此,以下章节将关注数字工厂的所在地,比如毗邻谷歌村的那座不起眼的大楼。虽然这些数字工厂各有不同,但其劳动制度与谷歌主楼充满创意、利于沟通、光鲜亮丽的形象有着天壤之别。

评论

本书算是一种社会观察,本是以一种了解数字工厂框架的心态去阅读,没想到作者呈现的是来自他亲自参与社会观察后得出的在物流、游戏、众包和社媒方面的洞察。

它主要探讨了数字化时代下劳动场景的变化和全球资本主义的数字化转型。

这让我思考,物流公司是不是工厂?滴滴和 Uber 不是工厂?美团是不是工厂?国内软件企业是不是工厂?

书中也提出一些观点:

通常意义的工作是对人有意义的工作,而工厂的工作所需要的仅仅是人最基础的能力,它们在机器的工作中插入人的工作,大量重复导致十分乏味。

而这些数字化、自动化的工作,并没有让人类的工作变得更好,反而让工人们处境更难,甚至工厂自动化与工人下岗失业之间的也有着复杂关联关系。另外还讨论了数据、模型和算法在管理中的应用,以及如何避免这些工具被滥用的问题。

对于普通打工人来说,这本书的有价值的点有:

  1. 启发思考数字技术下,打工人得适应新的工作方式和要求。
  2. 面对由此带来的就业压力,还得持续学习和提升技能。
  3. 提供了一些理解环境的思维框架,有助于在时代中定位自己,并做出职业决策。

游世与自然生活——庄子评传

评分

⭐⭐⭐⭐⭐ ⭐⭐⭐⭐ 9 / 10

摘录

颜世安教授 20 年前就在研究庄子,这是多年累积的版本和成果,以庄子探讨人生。

若把庄子的逍遥理解为快活的自由主义就太浅了,庄子的学问很高,他的自由游世,体验人生,而并不回避人生之苦。

随遇自然,以求更深刻自我认识,读之提升境界,去魅人心。

工作的原理·解决问题篇

评分

⭐⭐⭐⭐⭐ ⭐⭐⭐ 8 / 10

评论

在许多重要的场景下,发现问题并找到解决问题方法的人,比解决问题本身更关键。但解决问题的技能更基础,在更多的场景中更多的人可以使用它。

甚至有时,发现问题本身,可约等于问题被解决。

我恰好遇到这本书。日本人的书籍有质量非常高的,常常在一个视角上做出透彻的诠释,但也良莠不齐,存在不少恰烂饭的,即使是国际畅销书,也常发现百分之 80% 内容属于骗稿酬。

而翻看这本后,我认为它是上述的前者,值得一读。尤其是对于稍稍读过《金字塔原理——思考、表达和解决问题的逻辑》(后文简称《金字塔原理》)一书的人。

为什么是树

决策树、逻辑树、根因分析,为什么和思维有关的技术都是树?

因为树是对图的盲人摸象。

此处盲人摸象是个褒义词,大多数视力正常的人盲得根本摸不到象。

Minto 老太太管这种模式叫做金字塔,你可以认为它就是树,并不是新发明,在《金字塔原理》中讲的很齐全,作为教材是够的,但你得找到能讲这本教材的老师。

好老师太少了,根据个人观察,差不多每100位声称读过这本书的人,95位都是没读对的,你在生活中很难遇到 THEM 们。

读对的 5 位中,1 位是蒙对的,1 位没空教,2 位认为金字塔技术是信息差不愿传授,而最后 1 位把这些写成了书。

我怀疑 Minto 老太太在设计《金字塔原理》时,也加入了防自学设计,倒不是因为大多数人很笨,而是大多数读它的人没有意识到这点,导致拿着武功秘笈而不自知。

现在这个问题被解决了,就是这本书,将 Minto 的资产调整到了更能看明白的视角上。

图的重要性

一图胜千言,用文字要穷尽一张图中所有节点的关联性分析,就会遇到指数级展开的问题。

确实有些游戏适合用图来进行。

一体性 MECE

譬如,前文所述的发现问题和解决问题,其实是一体两面。

而有时候,要穷尽整体,我们还是需要“分别心”。

如何分别?

按时空划分、或按程度分层,但别用天地人、道法器术,忘掉它们。

要记住 MECE 这个词。

从我接触到的 150 人中观察,具备自觉 MECE 思维的只有两位。

如果习得了 MECE,自然就不会对基数为 5 的方法论有兴趣,比如朴素的五行、大五人格,5 不符合推理也不符合直觉,做不到 MECE。

更科学的必然是 2 的倍数,譬如道德经、四元素、如易经 64 卦。值得一提的是现下流行的 MBTI 16 型人格,但 MBTI 的问题在于 后三型之间有相关性,也不满足 MECE,所以要问 MBTI 测试科学吗?

我认为,它或在某种层面上满足统计规律,但也仅限于非常狭小的范围。让人难理解的是如中科院这等级的机构,在探讨 MBTI 时,居然还会问准不准这样的问题。

这显示出,“专家”也缺乏基本的思维素养,拿 MBTI 过家家就好了,做做商业营销就好,合理的娱乐就好,千万别被这些虚伪的东西诓骗。

那为什么颜色是三元色?因为三是生物概念,而非世界定义。如果世界是代码铸就的,编码工程师们一定没提到 3 这个 magic number,它是处于世界的生物插件中的定义。

批判性思维之训练手册

这里秉承不剧透的原则,我对此书的评价就是:一本商业领域的批判性思维训练手册。

DB Service

痛点

本机安装了非常多的数据库服务以供开发和备份,每次需要启动和停止服务,操作比较费时间。

机器很少重装,本机安装过:

  • PostgreSQL 9
  • PostgreSQL 12
  • PostgreSQL 15
  • PostgreSQL 16
  • MySQL 5.5
  • MySQL 5.6
  • MySQL 5.7
  • MySQL 8.0
  • MariaDB 10.2
  • MariaDB 10.4
  • MariaDB 10.5
  • MariaDB 11.4

多个版本的服务中,不同时期的数据服务未作升级,也未迁移到一起。

数据库的趋势从最初的 MySQL 到后续的 MariaDB,现在发展最快的居然是 PostgreSQL,难道是因为菊厂的高斯或者一些 Serverless 用它的多。

OLAP 或者 OLTP 之争由来已久,在使用中体会 PostgreSQL 的复杂度明显高于 MySQL,而 MySQL 也几乎满足中小企业需求,而 PostgreSQL 更适合数据仓库、分析、批量运算,当然,用它作 Web 数据库也足够的,在数据量处于 1000w ~ 2000w 级别,同等数据和优化下,也许它还比 MySQL 更快。

解决

用较少的依赖,在 AI 加持下,几小时自己写了一个管理这些数据库服务的管理器。

类似 Apache httpd 的那个,支持启动、停止、重启、启用、禁用等。

db service manager

Talk is cheap, show me the code: db_service.py

状态变化后刷新,用处不大,后面有用再说。

确实,AI 帮助我更快的完成了这个工具,大约是十多年前,我使用 C# + WinForm 完成过一个也许更健壮的版本,这次是第二次实现,从以前的 16 hours 缩短为 2 hours,看来只要有经验,在 AI 的加持下,10x 程序员也许不容易得,但 2x 4x 8x 也是不难的。

价值

写成 .cmd 文件,结合 ALaunch 的以管理员启动,再配置一个热键,处理效率明显提升。

以前需要:

ShowDesktop -> 右键点击我的电脑 -> G -> 服务 -> 按键按名称查找服务 -> 右键 -> 操作动作(启动 / 停止 / 重启)

现在简化为:

快捷键 -> 选中要处理的服务 -> 点按钮操作

2024年第26周周报

2024年第26周周报

数据

年周 项目 动态 关注 友链
2024W26 5 228 6 12

备忘

  • Job:A 0 | R 0 | I 0 | O 0。
  • 文章站:开始了。

拾遗

  1. 空调已维修,使用的京东服务。有一部检测后,师傅说不需要加雪种,但产生100高空作业费,另外一台加了雪种,但师傅说业内一般加到4,我也不知道4是什么,难道是4帕斯卡,加完后,我也不知是否到了4,师傅小心翼翼的找我要了个好评。

2. 看到一个有意思的项目,可以将自己 GitHub 上的项目按编程语言或技术作一个总结,我试了一下,最后呈现的结果。以前统计过,自己的职业生涯涉及了 21 种计算机语言,这里居然统计出 47 种之多:Assembly、Batchfile、C、C#、C++、CSS、Clojure、Common Lisp、D、Dart、Dockerfile、Emacs Lisp、F*、Go、HTML、Java、JavaScript、Julia、Jupyter Notebook、Kotlin、Lua、MDX、Makefile、Markdown、Mojo、Nim、Objective-C、Others、PHP、Pascal、Perl、PowerShell、Pug、Python、Red、Ruby、Rust、SCSS、Scheme、Shell、Solidity、Svelte、Swift、Tcl、TypeScript、V、Vue 。其中,有几个我也不知道是啥,比如 Pug 和 Red,似乎后者是从 EE 作者那边的得知的,还需去掉 Others,加上一种 Cangji。我看差不多也有 40 种,因为之中有一些是技术框架,比如 Svelte,以及一些文件格式,Dockerfile。

  1. 每次用 RSS 关键字去挖掘信息源,总会挖出一些不错的内容,比如一些聚合站点,一些内容不错的周刊,https://morss.it/。我们可以订阅、聚合各种信息源,按很少想过我们是否需要它们。此时,老婆关于扔东西的方法启发了我,不要一一挑选你要扔掉什么,而是把所有的东西摆出来,从中选择你需要的,剩余的就是要扔的。这个方法对待 RSS 订阅也是一样,尤其是当你进入 10000+ Feeds 俱乐部时。其实对于大多数人,10个订阅就足够了,但这里的 10 个必然不是个人的,而是领域聚合的。比如阮一峰的博客就还不错。

  2. 马斯克五步工作法

    1. 质疑每项要求。提出任何一项要求时,都应该附上提出这一要求的人。
    2. 删除要求当中所有你能删除的部分和流程,虽然你可能还得把它们加回来。
    3. 简化和优化。
    4. 加快周转时间。
    5. 自动化。

    这套工作法之外,还提到:

    1. 技术经理都必须有实战经验,比如说软件团队的管理人员必须至少花 20% 的时间进行编码。
    2. 允许犯错,但错了得认错,不要要求你的团队做自己都不愿意做的。
    3. 深入了解需要向下跨级沟通和调查。
    4. 唯一要遵守的规则就是物理学定律能推导出来的规则,其他一切都只是建议。
  3. 最近 Scott Hanselman 的博客上看到了 DOS 4.0 开源的消息,上一次看他的博客还是 10 多年前学习 ASP.NET 和 C#,现在 Hanselman 也退休了吧。很多人呼吁微软开源 Microsoft 内部的一些 C 编译器,于是又看到了关于自由软件和免费软件的讨论,经过这些年的经历,我也有了新的认知,你说 RMS 教条也好,时代证明了他的远见,自由比开源更有远见。而开源更适应现实,你看 Linus 的温和也给了世界最好的礼物。到今天,很多有关讲述重要的软件历史的书籍中,很多人翻译 Freeware 时,依然理解为 Free Software,这是不应该的,还是阅读原文要容易领会原义。

  4. 这里不知道是谁整理的,最近出现一些聚合站,即刻有 https://morerss.com/ ,这是最近出现的 https://zhblogs.ohyee.cc/ ;还有人做了周刊合集, https://www.fre321.com/weekly ,这让我想到了 FOF 。

  5. 据说 TODO 清单中存在 15 件以上待办时,都需要进行思维整理。这将是此类周报形式的最后一次,因为,即不服务于个人,也不服务于阅读者。

  6. 由于本机安装了 Git Bash 自带 MinGW,于是用以下命令将 2024 数据合并到一起。

d:
cd /d/code/github/kaffa/kaffa.github.io/content/3.创作/4.周报
find . -name "2024*" -type f -exec awk 'NR==21' {} \; > combined.txt;
年周 项目 动态 关注 友链
2024W01 3 103 4 1
2024W02 3 105 4 1
2024W03 3 112 4 1
2024W04 3 114 4 1
2024W05 3 117 4 1
2024W06 3 119 4 2
2024W07 3 124 4 3
2024W08 3 134 4 3
2024W09 3 140 4 3
2024W10 3 145 4 5
2024W11 3 152 4 6
2024W12 4 156 4 6
2024W13 4 171 7 7
2024W14 4 196 5 7
2024W15 5 198 5 7
2024W16 5 204 5 7
2024W17 5 204 5 7
2024W18 5 208 5 7
2024W19 5 208 5 7
2024W20 5 213 6 8
2024W21 5 214 6 8
2024W22 5 215 6 10
2024W23 5 221 6 11
2024W24 5 223 6 12
2024W25 5 225 6 12
2024W26 5 228 6 12

此处,我们可以用 d3.js 将动态增长显示为 bar chart。

从数据中可以看出在第 13 周,我批量导入一批书籍阅读记录后,动态数量未能延续之前的趋势,期间发生了搬家,然后在 coffee.kaffa.im 投入了一些笔记时间。

「KN.phoenix」终极笔记软件需求

20240629,v0.1,本文处于非常初级的阶段,完成度 10%

一、介绍

用过许多笔记软件,从最初的 mbBase、网博士、WizNote/CyberArticle/网文快捕、OneNote、Pocket、EverNote/印象笔记,到现代的 Joplin、Obsidian、语雀、飞书、Logseq、Notion,到后 Notion 时代的一些 Web 的、AI 的 SaaS。还用过一段时间 Org mode。相似的是,凡软件都有生命周期,商业成功的血条长一些,相比来说,开源的活得更久。古话说“以利合者,利尽则散”,一旦公司不给员工发薪,自然也没有新的研发和高水平运维,仅仅维持软件基础生命体征。从外界看来,就是这个软件进入了维护期。

最后,在不定的某一天,痛苦的事情发生了,你不得不迁移数据到新玩具中,此时,开源体现出优势,它的数据和程序至少是开放的,就算官方没有提供迁移方法,懂软件和开源数据库的人还可以 DIY 抢救一下,从这种意义上说,开源是相对安全的。但也许有一个处理周期,比如要先写出数据迁移的工具或脚本,在此之前,如果需要访问数据,而它是个 SaaS,前些天创始人被毕业了,核心运维也提桶跑了,那么诸位菩萨,剩下你能做的就是多求菩萨保佑。

所以,我对一个笔记软件有什么需求,需求就是,笔记软件的每行代码都源自我手它完全按预期运行,所以只能 DIY 了。

1. 目标收益

1)一个不必再换掉的笔记软件

2)笔记者对笔记有最高掌控权

2. 目标用户

1)我

2)朋友

3. 痛点和用途

痛点

1)大多笔记软件生命周期很短,烦人的“搬家游戏”

2)笔记收集

3)笔记发布

用途

4. 范围

1)管理笔记

2)收集笔记

3)发布笔记

5. 定义

1)本地:Local

2)远程:Remote

二、概述

1. 用户需要

1)满足余生记笔记的需求

2)与时俱进

3)做时间的朋友

2. 假设和依赖

假设有足够时间投入。

零特殊依赖。

三、功能特性和系统需求

1. 功能需求

1)管理笔记

2)收集笔记

3)发布笔记

  • REQ1.支持笔记从本地发布到远程。

    用户需要一个界面,选择笔记和待发布平台,通过一个步骤完成从本地发布到远程。

  • REQ2.显示远程笔记。

    用户需要一个界面看远程笔记。

    1. 旁注
    2. 目录
    3. 显示页面进度
    4. 容易转发的标题
    5. 专栏
    6. 对话
    7. 具有出处的代码块
    8. 外部链接带有标记
    9. 不同外链采用不同标记
    10. 链接预览
    11. 链接到引用

2. 外部接口需求

3. 系统特性

1)本地优先

2)支持 Windows 和 macOS,支持 Windows 10 及以上系统,支持 32 位系统

4. 非功能需求

1)操作响应 1s 以内。

ALaunch v0.9 发布

ALaunch 升级到 v0.9 版本,增加了快捷键修改的立即生效。

ALaunch v0.9 版本

新特性:

  1. 点击显示桌面按钮后,快捷键可以激活程序;
  2. 更改快捷键后,立即生效。

预告

ALaunch v1.0 将转为友情软件:与此网站友情链接的朋友,如果使用 Windows,可获得 1 枚注册码。

注册码在达到预定数量时取消。

实现过程花絮

特性 1 的实现过程中,我甚至还去查看了 ReactOS 的源码,想弄明白 ShowDesktop 按钮点击后,是不是有啥特殊的消息。最终发现想复杂了,只要心静调试就够。

特性 2 的实现引发了一些代码的坏味道,不过体验没有差别,甚至还更好。

1.0 将是一个完整的重构版本,目前还没有太明显的特性。

当我们 Build in Public 时,我们谈些什么

Build in Public 是什么

近在朋友圈常听闻 build in public 这组词。

事实上,这个概念早在 2010 年就有了,Buffer 采用透明文化经营公司,且一直延续至今。Buffer 如今有百万用户,且公司不但分享财务数据和工资,还与公众分享许多其他指标。它们的价值观是相信透明度的力量可以建立信任,保持高标准,并推动行业向前发展。

Build in Public 中文意思是“公开构建”,即将构建产品的过程公开。初次听说时,略显得反商业直觉。但近 10 多年,每年都有采用此策略成功的公司。比如 2014 年的 Ghost,2018 年 Nomad List,Fast、Blogging for Devs、CopyAI、TailwindCSS、Vim.so、Affilimate 等。

想了解最新采用此策略的公司,只需要上社媒中查找 build-in-public 或 building-in-public 话题,就可以看到层出不群的新创公司。

为什么 Build in Public

一家商业公司为什么选择公开构建,是因为:

  1. 可以从一开始就获取关注,并且逐步积累用户和潜在客户。
  2. 可以获得早期反馈,提炼需求。
  3. 可以降低招募成本。

Build in Public 适合谁

毫无疑问的是,公开构建适合开源项目或初创团队。比如:

  • 独立开发者
  • 数字游牧
  • 线下开店的人
  • 不想在市场营销上过多投入资金的团队
  • 擅长运营 Social 的人
  • 面向海外的产品,在 X.com 上进行公开构建是不错的增长手段

它们的共性是需要获得:线上和线下的社区关注和反馈,需要招人。

Build in Public 在国内

我可能比较孤陋寡闻,在国内还没有听说采用公开构建策略的公司。

我所知的知名公司,在这点上都没啥值得说的。

国内的公司都存在“红线”和“高压线”。

恨不得把公司外部的一切好东西都拿到公司内部来用,而公司内部或公司员工产出的好东西,一丁点也不允许外发的。

唯有例外的就是 KPI 式的中式开源,但真正回馈到开源社区的屈指可数。

Build in Public 的风险

上面提到的在国内没有成功案例,不仅是国内,国外 Build in Public 也产生不少想法被剽的案例。

Build in Public 需要有几个前提:

  1. 在最小化产品发布后,再开始 Build in Public,这相当于先占一个位置。
  2. 确保团队的发布节奏的效率可以响应需求者期望的节奏。
  3. 有一定的社区影响力。

2024年第25周周报

2024年第25周周报

数据

年周 项目 动态 关注 友链
2024W25 5 225 6 12

备忘

  • Job:A 0 | R 0 | I 0 | O 0。
  • 文章站:挂起。

拾遗

  1. 家中实在太热,开了空调依然有30度,需要找修理师傅。
  2. Build in public 不适用于国内,当如果产品要出海,可以试试在X上运营进展,国外社媒的渠道都是不同的。
  3. 养成习惯非常重要,原定的事情常常因为这样那样的借口而停滞了,恐怖故事是上半年只剩一周。

给网站增加最近评论功能

痛点

最近修改网站设置后,giscus 评论未显示。直到我进入了项目的 Discussion 才看到有一些最新留言,但这些留言未显示在文章下方。为不错过留言,我决定为网站增加最新评论功能。

分析

那么是否有一种方式,可实现在网站上显示最新评论呢,对此,所有的回答都是肯定的。

程序可以实现一切。如果是静态网站(SSG),实现方式稍一想,就有三种。

方式一、直接从 https 抓取所有的评论网页,解析出评论。缺点是依赖页面结构,可能会失效,需要随着 Github 页面结构的更新而更新。

方式二、使用 Github 提供的 API,需要查看 Github 文档,需要注意保护好授权 Token。

方式三、使用 Github Action 和 Webhook 实现在评论时维护一个 comments.json 文件,缺点是每次生成前需要拉取这个文件,增加了生成时间。

综合来看,如果官方支持,那选方式二是最佳选择。

实现

经过查阅文档和讨论,发现 Github 有 graphql 和 REST 两种形式的 API,未来有 REST API 迁移到 graphql 的趋势。且 Discussion 是一个较新的特性,获取 Discussion 目前只有 graphql API。

编程助手已经改变了编程,经过一个提问,一次复制,我就获得了代码结构,此时,基于我对 graphql 的入门理解,我直接修改了 query,几次尝试后,我就获得了需要数据。整个过程确实节省了不少时间。

至于 Token 保护,我还是选择了在 .gitignore 中增加 .env 文件,然后从 .env 读取的方式,而不是使用系统变量。PyCharm 或 IDEA 系,对系统变量的处理有点奇怪。系统变量更新了,你不通过搜索甚至不知道它什么时候更新,此时 .env 就没这问题,唯一要注意的是不要遗忘先添加 .gitignore 再添加 .env。

实现源码 ,然后在 jinja2 模板中循环展示,由于更新频率,此处只是简单实现以满足基本需求,并未严格按时间排序。

未来计划

对于评论功能,最开始使用的是 gitalk,后来有人反馈无法打开,于是增加了 giscus。这两者之间,gitalk 使用 issue,giscus 使用 discussion,相比来说,我认为 issue 会更基础一些。如果有一天未来要砍掉特性,discussion 必定在砍 issue 之前,当然了,砍特性这种事在公司还有现金流时,是不会发生的。

gitalk 和 giscus 的优点是免费,如果要说缺点,gitalk 和 giscus 的就是依赖一种并不是为此设计的用法,Github 可以处理掉这种不合适的用法,那是评论就会失效,迁移数据也许挺麻烦的。

所以,最好的方式是换自己支持评论的程序,或者依赖一些 serverless 的服务,将评论数据以开放的结构存放在可控的地方。

2024年第24周周报

2024年第24周周报

数据

年周 项目 动态 关注 友链
2024W24 5 223 6 12

备忘

  • Job:A 0 | R 0 | I 0 | O 0。
  • 文章站:挂起。

拾遗

  1. 亲戚的孩子几天后二十岁生日,日常在HK读书,难得回SZ,恰逢端午,在湖居的屋子中,有二十多亲朋好友与之唱生日快乐歌庆祝。然而我先不知,却未准备礼物、红包之类,唯有祝他开心!

[翻译]制作自己的独立网站

原文:https://dangillmor.com/2014/04/25/indie-web-important/

独立网络运动为何如此重要

发布于 2014 年 4 月 25 日,作者:Dan Gillmor(丹·吉尔默)

假设你可以在个人博客上写作,并且你的帖子摘要能显示在像 Twitter、LinkedIn、Google+ 和 Facebook 这样的热门社交媒体网站上,—然后这些网站上的回复能作为评论显示在你的博客里?你可以做到,而且稍有点才华的程序员能如愿以偿,你很快就能轻松做到这一点。事实上,我现在写的这篇文章就是这样,它也同时在《Slate》杂志上发表。

你问我为什么或我想要做这些?很简单:我们正面临着危险——失去使互联网成为历史上最重要的媒介——一个去中心化的平台,在这个平台上,处于网络边缘的人们——也就是你和我——不需要许可就可以交流、创造和创新。

这并不是对社交网络合法性,或其巨大效用的否定。但是当我们使用像社交媒体网站这样的集中式服务时,无论它们多么有用和方便,我们都在把最终控制权交给从我们的工作中获利的第三方,这些材料只要他们允许就只存在于他们的网站上。

即使大多数人还没有意识到问题的关键所在——但我很高兴地说,有一小群但不断增长的技术专家意识到了。他们发起了他们所谓的“独立网络”运动来对此采取行动,通过详尽的在线对话和定期的面对面会议。后者就是独立网络营地(IndieWebCamps),他们聚集在一起共同开发旨在尽可能将我们从集中控制中解放出来的工具——网络的关键发明者蒂姆·伯纳斯-李(Berners-Lee)称之为网络的“再去中心化”。在他们早期的工作中,他们利用社交网络“筒仓”(他们这样称呼)所能提供的好东西,同时确保我们创建的数据以及由此产生的大部分对话都存在于我们自己的自家网站中。

他们正在创造他们称为的“企业所有”互联网的替代品。我们确实非常需要它。正如他们在自己的网站上所说的原则:

你的内容是你的。当你在网上发布一些东西时,它应该属于你,而不是某个公司。太多的公司已经倒闭,失去了他们所有用户的数据。通过加入独立网络,你的内容仍然属于你并由你控制。

你能更好地连接。你的文章和状态消息可以发送到所有服务,而不仅仅是一个,这样你就可以和每个人互动。甚至其他服务上的回复和点赞也可以回到你的网站,这样它们就都在一个地方了。

你能掌控一切。你可以发布任何你想要的内容,以任何你想要的格式,没有人会监视你。此外,你可以分享简单易读的链接,比如 mywebsite.com/ideas。这些链接是永久性的,并且始终有效。

Amber Case 是独立网络的创作者之一,她被它所吸引,因为网络已经成为“一个幽闭恐惧症的空间,我所能做的就是消费,在构建和拥有方面存在障碍。她看到了新一代的互联网用户,他们从未注册过域名,甚至不知道什么是可能的。

这在一定程度上是因为“Twitter 和 Facebook 展示了一条更简单的在线创作途径”,另一位独立网络组织者亚伦·帕雷基(Aaron Pareki)说。“最初的愿景是每个人都有自己的空间并制作东西。然后筒仓形成并吸引了人们,因为它更容易。

我花了两天时间在他们最近的旧金山营地(本周末在纽约市举行另一个营地)与他们和其他运动中的其他人一起度过了两天,被他们的意图所展现的愿景所震撼。我了解了更多关于他们为实现这一目标而创造的各种技术,包括所谓的“网络提及”和“微格式”,这些都是向重新去中心化迈进的基础。

我还带回了仍然很初级的开源工具,这些工具使我能够朝着更独立的方向前进。就我而言,因为我使用 WordPress 来写个人博客,我已经安装了几个扩展 WordPress 软件基本功能的软件模块。一个是“Jetpack”,它让我创建的帖子能显示在社交网络网站上;另一个是“IndieWeb”,用于将回复带回我自己的网站。

出站作品依赖于 Tantek Çelik 的“POSSE”,它代表“发布(在您的)自己的网站上,在其他地方联合。获得评论、喜欢、收藏和其他回复取决于 Ryan Barrett 的 Bridgy。我不会详细介绍技术细节,但即使在目前的早期阶段,这些东西也接近于神奇——而且比我去年秋天在《Wired News》的一篇文章中第一次听说它时要先进得多。

这也是典型的互联网创新:在边缘而不是中心创建和部署;粗糙,并不断改进。如果我们幸运的话,通过在我们自己的设备上测试来帮助这些人,这是未来的重要组成部分。

发布在 Liberty 目录, 已获许可

[翻译]制作自己的独立网站

原文:https://victoria.dev/blog/make-your-own-independent-website/

制作自己的独立网站

如何让 2021 年成为独立网络之年。

2021 年 1 月 16 日 3 分钟 读完

在我成长过程中所接触的网络,从最真实的意义上来说,就是一个数字游乐场。它是由人们仍在摸索过程中拼凑起来的各种“科学怪人”HTML 实验构成的。

不完全知道自己在做什么的美妙之处在于不会过早地进行评判。没有需要达到的标准,你可以自由地另辟蹊径。去探索,尝试那些可能行不通的事情,而不抱有它们一定会成功的期望。这是一个拥有初学者心态的开放世界。

在我成长过程中的那个网络有点小瑕疵,事物并不总是按照它们应该的方式显示,而这也是其美妙的一部分。它刚好有足够的瑕疵让你独立思考。

1991 年是个人上网的一年,是任何外行人都能打开网络浏览器并访问新的超媒体维度的第一年。没有首选项、搜索建议、中心化的网站。有新闻组。你拥有你所创造的东西以及你在现实生活中的联系人发给你的东西。在 2021 年,我认为我们需要回归到那种个人主义水平。我们需要让 2021 年成为独立网络之年。

这并不是说我认为那些庞大的垄断平台会消失。推特、脸书、主流的“新闻”媒体网站——它们现在都像是一种公共设施,就像管道和电力一样。它们会在监管和历史中找到自己的位置。但它们不是你的网站。

你的网站是你自己创建的。从顶部到底部,内容完全由你自己塑造和呈现,随你心意。你的网站是你自我表达的地方,没有粉丝数量或统计数据可玩。你的网站是用于创造,而不是反应。

一切都是你的,但它不一定看起来很孤单。你的网站可以通过我们称之为互联网的这个东西所带来的联合和协议与整个网络世界互动。比如:

  • IndieWeb POSSE(在你自己的网站上发布,在其他地方联合的缩写)
  • Webmention 网络提及以及一种简单的实现方式
  • twtxt 实例提供去中心化的时间线体验
  • Neofeed,我为 Neocities 制作的个人时间线项目(它是开源的,你可以帮我扩展它!)

你的网站是你的起点。你在线身份的唯一真实来源,从这里你可以生成一次性副本,并向任何你喜欢的平台分发。这才是真正拥有你的内容的含义。而在互联网上,你的内容就是你。

这是我的网站。当我第一次创建它时,我是为自己做的。我对访客没有期待。我只是知道我更愿意把这些想法和我学到的东西放在这里,在外面,在公共互联网的折叠中留下不可磨灭的印记,而不是放在我机器的某个黑暗角落里,一旦我不在了就永远消失了。

制作您自己的网站。您你会培养出自己当之无愧的成就感,并为您在网络上的独立做出贡献。你会通过实践、通过解决自己的痒点来学习。

了解网络技术。就像您小时候第一次拿着铅笔或画笔一样使用它们。进行实验,除了发现你可以做些什么来让它取悦你之外,别抱任何期望。

这些网站和文章启发了这篇文章,并帮助我实现了网络提及!

  • Why the Indie Web movement is so important, Dan Gillmor
  • Jamie Tanna
  • Max Böck
  • Microblogging, Paul Robert Lloyd
  • Zachary Dunn
  • Adding Webmentions to My Static Hugo Site, Ana Ulin
  • Adding Webmention Support to a Static Site, Keith J Grant
  • Webmention.rocks

提示:上述链接请移步 原文链接

[翻译]此网站是个人的

原文:https://frills.dev/blog/070224-this-website-is-personal-girls/

人们常对这样的事实感到压力重重:你发上网的任何内容都能长期存在。作为一个(活)人,即使你在进化和改变:你的思想、你的价值观、你的观点、你过去的自我仍存在于这个短暂的空间中。

那很美好,却又可怕。

最近我一直在思考我在互联网上的各个地方分享什么内容。我有时会在乳齿象上连续且随意地发布消息(Mastodon,中文叫乳齿象,是一个分布式的推特,有一种联邦似的时间线,在之上发布内容也称为嘟嘟),每次持续一周左右;我每年在 Instagram 上发几次帖子,在动态上发得更多一些,但即使这样也减少了很多;而在我的网站上,我开始在这个基座上发布博客文章,我认为它们需要有实质性内容或者至少有点有趣。不知何故,即使在这里,专业精神和(获得)认可的诱惑也已经开始起作用了。

我想读懂你的想法、你的感受、你对周围发生的世界的看法。让你的生活浪漫化;告诉我你通勤的细节——毕竟,你的感知是你自己的,而我以前从未经历过。

Xandra:每个人都应该写博客

这很有趣,因为我想读的那些博客和文章,比如 Xandra,都是个人的。午夜沉思,日常生活中的一天。哎呀,我花几个小时观看艺术家们只是在处理他们日常琐事的 YouTube 视频。这就是我开始这个网站时的感觉,有关于我最喜欢的小事情和致命蘑菇的简短帖子(微博客?)。但这种自由共享很快就消失了,取而代之的是更多面向开发人员的内容,比如我制作的一个小书签,用于编辑所有内容以及我在 CPD 中学到的知识。我开始期望我的内容应该对某人有用,要有一个清晰简洁的结构,并且在最后要给读者留下更好的东西。但这样做,我已经牺牲了我网站那种舒适的、个人的特质。

作为一个长期的文字斗争者,我一直在寻求把东西写得更简洁、更有趣或更奇特。有时,我会写一些充满神秘色彩的微型小说,没有实际的情节点或答案。有时,我会选择一款单人日记游戏,例如《Be Like A Crow》或《Apothecaria》,但在故事真正取得任何成果之前就放弃了。我和一些朋友玩“Play by Post”游戏,每周写 200-400 个字左右。有时,我想出了一个博客文章的想法,却发现自己正在努力编写内容,并最终将其添加到我越来越多的被遗忘的草稿中。

但管它呢。这个网站是个人的。它可以而且将会展示我在写作方面的挣扎,我的语无伦次和不一致,因为那是我的经历,它也会分享我对生活的独特而有趣的观点,因为这也是我的经历。

用 Keenan 的话来说,分享你那又大又笨又美丽的自己。

脚注

这篇博文标题的灵感来自于 David Cox 的“此网站是个人的(以一种好的方式)”,他在其中清晰地描述了他的新个人网站和目标。与这篇博文完全不同 😁

Webmentions

✏️ https://www.macram.es/cajon-de-sastre/esta-semana-me-inspiro-iv/

您发表过自己的帖子提到本文吗?让我知道网址。

(原表单请访问:https://frills.dev/blog/070224-this-website-is-personal-girls/

2024年第23周周报

2024年第23周周报

数据

年周 项目 动态 关注 友链
2024W23 5 221 6 11

备忘

  • Job:A 7 | R 0 | I 0 | O 0。
  • 文章站:挂起。

拾遗

  1. 欧洲央行宣布降息25个基点,美国呢?

清除 Microsoft Edge 自动跳转 https 的缓存

问题现象

在配置 nginx 反向代理过程中,发现 Microsoft Edge 浏览器似乎缓存了网址的 http 习惯。

举例来说:对于 www.kaffa.im,如果访问过 https://www.kaffa.im 成功后,即使服务器取消了 https 访问,只提供 http 服务,当访问 http://www.kaffa.im 时,浏览器并不请求 80 端口的 http 服务,而是根据缓存继续会请求 443 端口的 https 服务。

由于很早之前第一次发现是在 Edge 中,本想写一篇吐槽微软对于这事处理的傲慢态度,今天又在豆包 AI 中询问了此事的翻译,结果豆包好像非常捍卫微软的品牌声誉似的,说这并不是微软的傲慢,而是出于安全考虑,这种回答还真是让我非常吃惊。

我仔细阅读了关于这个问题源头的一些对话:

  1. https://issues.chromium.org/issues/41266980
  2. https://learn.microsoft.com/en-us/answers/questions/988950/edge-redirecting-http-to-https

问题解决

方法一

这个方法较为推荐,一般人不知道,是一种“隐藏 Feature”。在 Edge 里按下 F12,打开 Microsoft Edge DevTools,然后鼠标左键长按在浏览器工具栏上的刷新按钮上,大约1秒后,按钮下方会出现下拉菜单,最后的菜单项是“清空缓存并进行硬刷新”,点击它,即会清空关于 https 或 301 永久跳转的缓存。

方法二

这个方法可能会不太好,因为它的粒度不够。在 Edge 浏览器中,按下 Ctrl + Shift + Del 调出对话框,清除过去一小时的缓存。(如果上次服务是在很久以前,那么这个办法将无效。)

其它没有作用或失效的处理办法

  • edge://flags/#edge-automatic-https

这个选项已经没有了。

  • edge://net-internals/#hsts

这个处理无效。

  • edge://settings/searchFilters

这个处理无效。

更进一步

这个问题刨根问底,答案在 Chromium 源码逻辑里。

但我时间资源有限,如果某位有闲有兴趣的专业程序员擅长这块,还望不吝分享和指正。

参加 AWS 讲 AIGC 活动

活动

从群友的推荐中参与了亚马逊公司的一场关于 AWS 的市场活动。

感受

  1. 亚马逊负责讲解 AIGC 技术的员工对 AIGC 应用的细节比较了解。
  2. 该活动缺少预先演练,例子二中存在一些硬性障碍,导致无法真正实操成功。
  3. 亚马逊茶吧中茶包种类多,很国际化。
  4. 参与人群是跨境电商,但在云上,即使按模板部署开源应用这样的事,也存在许多技术细节和门槛。在到场的几十人中,由于技术坑的叠加,能将两个例子跑通的人一个都没有,营销效果打了折扣,品牌触感也不够好。
  5. 例子是,衣服换模特让电商拍摄成本降低,说亚马逊和店匠公司一起做了一个案例,但实操环节,过程和细节都没让人感受到 AI 能降低成本,图片生成的效果不确定,批量SKU如何做也没讲。

2024年第22周周报

2024年第22周周报

数据

年周 项目 动态 关注 友链
2024W22 5 215 6 10

备忘

  • Job:A 20 | R 3 | I 0 | O 0。
  • 文章站:挂起。
  • Kaffa.im:已将数字花园配为二级域名 https://coffee.kaffa.im

拾遗

  1. RSS Reader: 始终没有寻找到合适的软件。

    • NetNewsWire:对个人来说最佳的客户端就是它,开源免费,缺点是只有 macOS、iOS。
    • FeedDemon:Windows 上的王者,Delphi 7 构建的,作者自己实现 Unicode 处理,已经尽力了,存在乱码问题。产品设计和功能,我认为是 Number One。
    • Thunderbird:勉强可用,字体需要调教,导入 Feed 有缺陷
    • QuiteRSS:字体需要调教,UI 不如 FeedDemon,优点是有二开基础,缺点也明显就是 QtWebkit 已经跟不上现代网站。
    • Vivaldi:除了略占资源,轻量使用时,这个最佳。优点是,浏览体验好。

    总结一下,如果我的需求是寻找一个适合的 RSS Reader,本地使用,支持订阅 1000 个源,占用资源小,浏览体验流畅,最好开源免费,支持永久收藏和清理,完美支持多语,支持分享和简单自动化,那 Windows 下确实没有满足我的软件,不知我的需求是否普遍。在我没有自己实现之前,在 Windows 下我用 Feedly,或者一些 精选 RSS 源的聚合站

  2. IRC:也是在试用 Thunderbird 时,发现原本的 freenode 已然变成了 libera.chat,这是一场 社区政治抢夺 行为的失败,也显示出 libera 精神,fsf 也 站到了 libera.chat 。另外,Web IRC 也挺好用的,https://web.libera.chat/,上一次用 IRC,还是去 tcl/tk 社群问问题,现在可以问 GPT 们了...

  3. 破坏性升级:今天看到 jQuery 的升级说明 jQuery 作者的忍者秘笈也是读过的,如此成就的软件,升级显得谦逊和稳妥,而相比来说看到 1900 遭遇的 memos 破坏性升级就很糟心。我虽不善评断,一方面,我是软件作者,另一方面,我也是用户。对于会损坏用户数据的地方,最佳是提供升级指导,就像 jQuery migrate 一样。提供方法和工具,帮助用户处理好,如果时间成本或其它原因导致缺少处理好的条件,至少需要先提示用户不要升级。开源是一件公开的事,既然在社区中,行为就有责任和义务,如果任性进行破坏性升级是不成熟的做法,用户和软件作者双输。

  4. til:这是一种 Learning in Public 的落地方式。

  5. Gemini:在玩耍软件中,无意中打开了 lagrange,然后打开了一个更具极客气息的新世界。Gemini 这里是作为一种新的互联网协议,基于 Gopher,而 Gopher 除了在大学学过以外,现在主要就是一些 CTFer 用来构造 ssrf 数据包, Gemini 协议构建的网络类似一种 i 人的 Web,供你躲避网络焦虑症,更极客,也天然多了点门槛,天然商业无爱,因此 Gemini 在发展起来前,不会存在过度商业的内容。在我看来,它很类似一种玩无线电台的群体,但电台类似播客,而 Gemini 上媒体主要是文本、图片和二进制。

  6. 基于 AI 的创业并不顺利,BMPI 最近也开了直播,工作重点转到了交易。我从他的周记中获得的启发是章法,学习、技术、投资、快乐,他的专注点一直未变,非常自洽。基于此,我将在下半年改变周报的形式。

2024年第21周周报

2024年第21周周报

数据

年周 项目 动态 关注 友链
2024W21 5 214 6 8

备忘

  • Job:A 0 | R 0 | I 0 | O 0。
  • 文章站:挂起。
  • Kaffa.im:加一个数字花园视图,用红蓝药丸切换,挂起。

拾遗

  1. 面试:TOMORROW IS ANOTHER DAY。
  2. 本周适合反思,经过一段时间和主题的探索,我计划将 coffees.app 的内容迁移到 coffees.kaffa.im,coffees.app 的用途和笔记软件的进展将在下周计划好。经过几个月的使用,我也习惯了在 any.do 使用周视图和每日计划。
  3. 本周增加了新的链接,来自 Jeff 的 雅余 ,一方面认同知行合一以及对极简的探索,另一方面某些总结给人很多生活的灵感,随着年龄的增加,生活需要加法,也需要减法。

2024年第20周周报

2024年第20周周报

数据

年周 项目 动态 关注 友链
2024W20 5 213 6 8

备忘

  • Job:A 20 | R 2 | I 0 | O 0。
  • 文章站:挂起。
  • Kaffa.im:加一个数字花园视图,用红蓝药丸切换,挂起。

拾遗

  1. 面试:似乎到手的 Offer 飞了。刚刚从这种难以形容的小情绪中调整好,似乎还需要一段时间,这也说明好的预期还在来临的路上。
  2. 家里猫较多,一方面毛多过敏,另一方面每日需花费一小时处理猫屎。本来感觉物质上什么都不缺少,但想了想还是缺少自动猫砂盆和猫毛净化器两件。上到商城四处看,全自动的猫砂盆产品是给富人设计的上到8k,霍尼韦尔也许是最贵的,要3k的样子,并有耗材;在第二梯队的小佩,口碑并不好,其它品牌还在比较中,此两件计划年内购置。

营销管理

评分

⭐⭐⭐⭐⭐ ⭐⭐⭐⭐⭐ 10 / 10

评论

理解商业和管理业务最重要的几本书之一。

所有旅生,AI的一图定位来了

AI 网络迷踪来啦

网络迷踪:在互联网社区中,一种通过一张图片确定图片拍摄位置的游戏。这个游戏的神奇之处在于,人们低估了一张图片带有的特征信息。

在上个月的《你在哪?一图定位三次体会》中,我尝试了 Geo Guessing 游戏,今天看到已有俄罗斯程序员实现让 AI 来玩网络迷踪

从编程角度来说,他实现了一个函数,这个函数签名差不多是这个意思。

def geo_guessing(img):
    img_info = get_info(img)
    x, y = ai_proc(img_info)
    return x, y

AI 网络迷踪的实际效果

使用上次的三个例子,AI 成功率为 0%。将长沙猜为了深圳,将江苏宿迁市郊猜为了京郊(其中冬天的树可能含有较多的北方植被信息特征,但市郊还是猜对了,而图像预处理似乎识别了远处有不少山脉),而最后的摩天轮就完全没有头绪了,看来 AI 的神奇之处的前提还在于,AI 有特定数据。例如 AI 可能可以通过植被来定位大概的范围,但摩天轮这样的专有数据 AI 是很难有的。后者更多的是搜索要解决的问题。

上面验证的是:这款 AI 并不能更高效的完成网络迷踪游戏,而在可想象的将来,对于专有特征的图片定位,一个具备常识的人还是略胜于 AI 的,其中主要原因是 AI 面对特定领域数据时,总是不足的,这不总是 AI 的问题,而是数据这种新基建的问题。

2024年第19周周报

2024年第19周周报

数据

年周 项目 动态 关注 友链
2024W19 5 208 5 7

备忘

  • Job:A 0 | R 0 | I 1 | O 0。
  • 文章站:挂起。
  • Kaffa.im:加一个数字花园视图,用红蓝药丸切换,挂起。

拾遗

  1. 换房:搬家花5k,整理花了一个月,请问搬家花1.5k,整理要花多久?答案是一周多,前前后后搬家这事花了一个月。
  2. 面试:走流程,等 Offer。
  3. 这个阶段无心做其他事,好几件计划好的事,因为一些原因都 delay 了,包括这篇周报。这让我强化了一个想法,没有体系的牵引和驱动,事就会垮。

2024年第18周周报

2024年第18周周报

数据

年周 项目 动态 关注 友链
2024W18 5 208 5 7

备忘

  • Job:A 2 | R 2 | I 1。
  • 文章站:挂起。
  • Kaffa.im:加一个数字花园视图,用红蓝药丸切换,挂起。

拾遗

  1. 换房:朋友请搬家公司费用花了5k,我花了1.5k,论物品看来人家是3倍于我了。
  2. 面试:二面似乎通过了。

年轻只是爱构建

锤子找钉子

本文探讨的结构很简单,即大家常说过的:手里握着锤子,看什么都是钉子。

很多人好奇新技术,学习新技术,验证学习的新技术时,便会使用新技术构建很多已构建的成熟软件。然而,如果新构建并未获得相比旧构建有比较优势的制品时,就命中了上述结构:手里握着锤子,眼里都是钉子。

值得注意的是,现实中的“钉子”们存在很多细微的差异,比如有很多类似钉子的东西,其实是螺丝和针。锤子对付螺丝和针,也不是不行,但算不上好用。

软件开发

上述是偏软件工程的叙述,换算为软件开发领域的表述就是:

  1. 掌握了一种编程语言则认为该编程语言适合开发任何软件。
  2. 掌握了一种数据软件则认为该数据软件适合开发任何软件。
  3. 掌握了一种操作系统则认为该操作系统适合开发任何软件。
  4. 掌握了一种编程框架则认为该编程框架适合开发任何软件。

任何代码都是成本

一些代码是业务规则,但任何代码的一面至少都是成本,它需要有人开发、有人测试、有人维护(重构、升级)。

并不是任何软件都值得构建,但我非常理解那些掌握了新技术的年轻工程师,毕竟年轻只是爱构建,很少问为什么。

但只要稍稍有十年经历,一旦有机会维护十年前的代码时,就能理解这里在说什么。

如果可以不修改别人代码,较为便利地实现业务目的时,就不要修改别人代码。

如果需要修改别人代码的逻辑,最好完整地、采用非耦合地方式利用软件,然后才是依赖开发框架,最后是第三发库。

你几乎很难找到长达十年维护的非知名软件,所以,当需要在长期使用的软件中引入一个依赖时,要万分小心,此时有两种考虑:一,慢慢地自己研发;二、如果能看懂源码且源码对个人来说有可维护性时,再审慎依赖。

绝大多数的构建都是无意义的

从五年的长度去看,绝大多数的构建都是无意义。公司活不过五年,五年后技术更新了,你的主要依赖升级了,你的第三方依赖更新了或下线了。公共领域已经有非常多且功能不错的软件,继续构建的大多软件都没有明显存在的理由。

然而,年轻总是爱构建,当审视自身,年轻时也总是会做很多别人眼里无意义的事,这些别人眼里的无意义对当事人来说其实挺重要。

这也许是张颂文老师《灿烂的花园》中说的,去 “创造阅历” 。在第二集中,颂文听见了烟花,这种生活的好奇心来了,让他骑上三轮车在乌漆嘛黑的夜里出发,朝着“烟花”的方向出发,最后除了一路颠簸,只有伸手不见五指的乡路,众人折返,一无所获。然后就是这种看似无意义的行为,构成了一行人人生难忘的花园经历。

所以

在这个内卷时代,现实让人不停提升经济环境效率,将社会推向充分竞争,竞争并非是缺点,但过度后就属于恶性竞争,产生内耗。在这个最好的年代,尤其更要注重和鼓励探索,竞争可以获得生存的机会,但在良性竞争下鼓励探索才能孕育变革,如 OpenAI 技术栈的诞生,靠的是八年的投入、几十亿美金的投资、软件研发的探索。在技术发展到数量级瓶颈时,这些关键的变革一旦成立,几乎决定的就是跨领域的恒久成立的国家竞争优势。

❌