Pynecone 拔草 附应用的手动部署方法

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 应用软件清单

搭建个人 NAS 服务的应用软件

Fournoas 说:

问:学校为什么开除你们的素描课老师?

答:他在课堂上教学生在纸上记录阴暗面,被伊万同学举报了。

问:那为什么伊万同学也被学校开除了?

答:因为他在课堂上向老师举起白纸抗议。

用 Dnspooh 自建安全 DNS 服务器

Dnspooh 是一款使用 Python 开发的开源 DNS 代理/中继,支持 DoH 和 DoT 协议。用户可以将 Dnspooh 部署在本地,借助它可以让不支持 DoH 和 DoT 协议的客户端应用或操作系统使用安全的 DNS 服务,从而避免被运营商或网管之类的中间人劫持或嗅探。

除此之外, Dnspooh 还支持可插拔中间件用于扩展软件功能。 Dnspooh 内置了几个比较有用的中间件:缓存中间件用于加速访问;黑名单中间件用于屏蔽域名和 IP 地址; Hosts 中间件用于自定义解析结果;日志中间件用于记录解析记录、监控应用行为;规则中间件提供更加灵活复杂的操作。

……

Fournoas 说:

众所周知,此处循环会被编译器优化掉,自增永远不会被执行。作者暗示 49 年后,所谓人民财富增涨流于纸面,实则毫无变化。

作者又将 FOREVER 定义为 0,暗示政权看似江山永固,实则油尽灯枯,覆灭在即。

更过分的是,该作者欺骗愚弄组织,表面献忠心,背地捅刀子,是反党的两面人,其心可诛!

此獠不杀不足以平民愤!不杀不足以告慰革命英烈的在天之灵!

Fournoas 说:

Edge浏览器更新后,地址栏右侧会出现一个很恶心的“发现”按钮,在命令行中运行下面命令(或者直接快捷键 WIN+R 运行),然后重启浏览器就可以禁用这个按钮了:

powershellREG ADD HKLM\Software\Policies\Microsoft\Edge /v HubsSidebarEnabled /t REG_DWORD /d 0

Fournoas 说:

沐猴而冠带,智小而谋彊

发送 Ctrl+C 事件终止 Windows 控制台进程

偶然在 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 信号来优雅结束子进程

Fournoas 说:

西方资产阶级宣誓礼:左右手按圣经或宪法,右手或握拳或伸掌或 Schwurhand 三指,口中喃喃自语,毫无诚意。

中华传统宣誓礼:斩鸡头烧黄纸,最后高喊:「若违此誓,不得好死、轮回畜生道、儿女永世为娼为奴。」