- 文章
王阳明本名王守仁,字伯安,号阳明子,故又被称为「阳明先生」。王阳明被称为「中国最后一位圣人」,他的学说「阳明学」不仅在中国,甚至在朝鲜和日本都有着深远的影响。相传东乡平八郎随身携带着一块写着「一生伏首拜阳明」的腰牌。虽然这个故事的可信度不高,但是蒋介石确实是在留学日本的时候接触到「阳明学」,并从此成为王阳明的迷弟,以至于后来台湾很多道路、学校都以「阳明」来命名。由此可见,阳明学的确在近代日本很流行。
……
本文是汉娜·阿伦特《责任与判断》一书中的第一章。这里提供了两个翻译版本。个人认为繁体版的翻译更好一些。
首先,我想評論一下我的書《艾希曼在耶路撒冷》(Eichmann in Jerusalem) 所觸發的激烈爭議。我故意用「觸發」(touched off) 的字眼,而不是一般的「引起」(caused),因為爭議絕大部分是針對一本根本也沒有寫出來的書。因此我的第一反應是,對整件事一笑置之,套句帶有奧地利式風趣的名言:「討論一本沒人讀過的書,再也沒有比這更消遣的了。」不過隨著事情的發展,特別是到後來階段,有愈來愈多的聲音不只因為我從沒說過的話而批評我,也有人相反地開始幫我辯護,我頓時覺得,這有點詭異的操作,可能不只是要聳人聽聞或供人消遣。我也覺得所涉及的不止「情感」(emotions),也就是,不只是誠實的誤解——這在某些情況下確實會引發作者和讀者溝通的破裂——也不只利益團體的歪曲或作假,這些利益團體比較不害怕我的書,而是害怕它可能引發對那個時期的問題做進一步公正無私的詳細檢查。
……
Pynecone 是一个纯 python 的 Web App 开发框架。它的后端基于 Python 的 FastAPI 框架,前端基于 Node.js 的 Next.js 框架。但使用它不需要书写任何前端代码,可以完全用 Python 一把梭。听上去非常诱人,但实际如何呢?
一个简单 Pynecone 应用的代码如下:
pythonimport pynecone as pc
class State(pc.State):
text: str = 'Hello, World!'
def goodbye(self):
self.text = 'Goodbye, World!'
def index():
return pc.text(State.text, on_click=State.goodbye)
app = pc.App(state=State)
app.add_page(index, route='/')
app.compile()
Pynecone 会为每个 Session 维护一个 State 上下文,这个状态数据是保存在服务器端的,只能通过修改 State 的 Props 来间接改变视图。其原理是, Pynecone 生成的前端代码会通过一个 WebSocket 连接和后端进行交互。当用户进行了某个前端操作后,前端会将该事件通过 WebSocket 连接发送给后端,后端将改变后的 State 返回给前端,最后前端更新视图。由于所有前端操作都需要和后端交互,在网络不佳的情况下,会导致前端操作响应很慢。
……
网上看到有人说自己骑电动车通过路口时被警察拦下,并被告知非机动车过马路必须下车推行。那么非机动车通过路口时是否需要下车推行呢?答案是:不需要!
交警所谓的「执法依据」是《中华人民共和国道路交通安全法实施条例》第三章、第三节,「非机动车通行规定」中的第七十条之规定:
驾驶自行车、电动自行车、三轮车在路段上横过机动车道,应当下车推行,有人行横道或者行人过街设施的,应当从人行横道或者行人过街设施通过;没有人行横道、没有行人过街设施或者不便使用行人过街设施的,在确认安全后直行通过。
……
搭建个人 NAS 服务的应用软件
Dnspooh 是一款使用 Python 开发的开源 DNS 代理/中继,支持 DoH 和 DoT 协议。用户可以将 Dnspooh 部署在本地,借助它可以让不支持 DoH 和 DoT 协议的客户端应用或操作系统使用安全的 DNS 服务,从而避免被运营商或网管之类的中间人劫持或嗅探。
除此之外, Dnspooh 还支持可插拔中间件用于扩展软件功能。 Dnspooh 内置了几个比较有用的中间件:缓存中间件用于加速访问;黑名单中间件用于屏蔽域名和 IP 地址; Hosts 中间件用于自定义解析结果;日志中间件用于记录解析记录、监控应用行为;规则中间件提供更加灵活复杂的操作。
……
偶然在 Nuitka 的代码中发现一个未被触发的 BUG 。问题代码位于 OnefileBootstrap.c 的 cleanupChildProcess()
函数中。这段代码中第 654 行的 GenerateConsoleCtrlEvent()
总是返回 FALSE
,导致子进程无法收到 CTRL-C 信号。不过由于 Nuitka 的代码中只有 cleanupChildProcess(false)
调用,因此这个 BUG 正常情况下不会被触发。不幸的是,本人 fork 了 Nuitka 的项目 Nuitka-winsvc 正好触发了这个 BUG 。Nuitka-winsvc 为 Nuitka 增加了编译为 Windows 服务的选项。当停止服务时,需要向子进程发送 CTRL-C 信号来优雅结束子进程
原来 Nuitka 商业版通过插件已经实现了编译 Windows service 的功能,但开源版本不提供此功能。掏钱是不可能掏钱的。本人 fork 了 Nuitka 项目,加入了编译 Windows service 的功能,只要在编译时加入 --windows-service
参数就将 Python 程序能构建成 Windows service 了:
shellpip install nuitka-winsvc
nuitka --onefile --windows-service --windows-service-name=myservice main.py
在前文《Nuitka 编译时注入自定义 C 代码》中介绍了在 Nuitka 编译时注入自定义代码的方法。本文将介绍如何通过这种方法将 Python 程序编译成 Windows 服务。
……
Nuitka 是一款用 Python 实现的 Python 编译器,可以生成独立的可执行文件。其原理是生成 C 代码,然后使用 Scons 调用 C 编译器进行编译构建。据说使用 Nuitka 编译后的程序性能比 CPython 更好,和传统的打包工具 py2exe 与 PyInstaller 相比, Nuitka 的优势相当明显。
Nuitka 的使用也十分简单。比如要将下面的 main.py 文件进行打包:
python# main.py
print("Nuitka")
首先安装 Nuitka 和建议安装的三方库:
shellpip install nuitka ordered-set zstandard
另外,编译 C 代码还需要一个支持 C11 标准的 C 编译器。 Windows 系统上可以安装 Visual Studio 2022 或者 MinGW64 。然后就能用 nuitka
命令进行编译了:
……
WebRTC 的全称是 Web Real-Time Communication ,即网页即时通信,用于支持浏览器进行实时语音对话或视频对话,并于 2011 年被纳入 W3C 推荐标准.现在几乎所有的主流浏览器都支持该功能。然而用户在日常中很少使用到浏览器的这个功能,反而这个功能会导致泄露用户的真实 IP 地址,无论用户是否启用了代理。因此,强烈建议对上网有隐匿需求的用户关闭浏览器的这个功能。
……