openAI 提供多种 API:
Python3.11 介绍
Python 3.11 于 2022.10.24 发布正式版 3.11.0,历经 1 年开发和测试:
- 2021.10 - 2022.04:发布 7 个 a 版本;
- 2022.05 - 2022.07:发布 5 个 b 版本;
- 2022.8.8:rc1
- 2022.9.12:rc2
- 2022.10.24:3.11.0
重点新特性:
- Runtime、解释器
- Faster Cpython
- bytecode 中添加偏移量对应关系,以便 traceback 中指明出错位置
- 语言(语法、词法)
- 新增“异常组”:
ExceptionGroup
&try...except*
- 新增“异常组”:
- 标准库
- 新增
tomllib
模块 asyncio
模块- 新增“任务组”:
asyncio.TaskGroup
Task
新增cancelling()
,uncancel()
方法
- 新增“任务组”:
inspect
模块- 新增
getmembers_static()
- 新增
dataclasses
模块typing
模块- 增加
typing.TypeVarTuple
- 增加
typing.Self
- 增加
typing.LiteralString
- 增加
typing.TypedDict
- 增加
- 新增
本文来导读一下这个刚刚正式揭开面纱的新版本。
使用 git daemon 快速传递代码
局域网内多人之间、个人多台电脑之间 —— 如何快速分享、互传 git 管理的代码?
- 邮件?
- ftp?
scp [-P <port>] <src-file> <user>@<ip>/<dst-file>
python -m http.server
npm install http-server -g
thenhttp-server <root/dir> [-p <port>]
?
上面都行,但文件要逐个传或打包,然后手工合并……不妨用 git 内置的 server 来处理:
$ git daemon
Vue Router 中的几个概念
到底用哪个方式创建 vite 项目
自从 vite 被 vue 官方替代了 vue-cli(webpack) 用来创建 vue 项目之后,先后出现了几个工具(封装)来作为创建项目的脚手架,各种 blog 中会搜到各个历史时期的用法,和各种变换用法,我来整理一下,因为搜到了废弃的用法还不小心用了起来,还挺烦人的。
下表中每种脚手架的 3 种使用方式效果是等价的,先说结论:用下表中的 (4)、(5),等效的。
脚手架 | npm install | npx | npm init |
---|---|---|---|
create-vite-app (已废弃) | (1)npm install -g create-vite-app create-vite-app my-project | npx create-vite-app | (2)npm init vite-app my-project cd my-project npm i |
@vitejs/create-app (已废弃) | npx @vitejs/create-app | (3)npm init @vitejs/app | |
create-vite (官方推荐) | npx create-vite | (4)npm init vite@latest (5) npm create vite@latest |
Rust 开源书
- 官方的 4 本书,英文版在安装 rust 后可以
rustup doc
本地打开阅读,无需在线阅读。 - Rust 中文翻译组(rust-lang-cn) 翻译了官方的 4 本,在线阅读托管在自己维护的 rustwiki 上。
- RustCN 社区(rustlang-cn) 写了 4 本,其中创始人 Sunface 自己写了 2 本,同时他也是 Rust 语言周刊 的维护者。
- 官方的 《程序设计语言》指定中文版并不是 Rust 中文翻译组的版本,而是 KaiserY 同学的。
Name | 官方 | Rust 翻译组 | RustCN | 个人 |
---|---|---|---|---|
《The Rust Programming Language》 《Rust 程序设计语言》 | github 在线阅读 | github 在线阅读 | KaiserY github 在线阅读 | |
《Rust by Example》 《通过例子学 Rust》 | github 在线阅读 | github 在线阅读 | ||
《The Rustonomicon》 《Rust 秘典(死灵书)》 | github 在线阅读 | github 在线阅读 | ||
《The Rust Language Reference》 《Rust 参考手册》 | github 在线阅读 | github 在线阅读 | ||
《Rust 语言圣经》 | Sunface github 在线阅读 | |||
《Rust 语言实战》 | Sunface github 在线阅读 | |||
《Rust 绣书》 | github 在线阅读 | |||
《Rust 算法题解》 | github 在线阅读 |
Gitee Jenkins Plugin
6.18 又买了一个新的腾讯云 VPS,本以为轻车熟路 10 分钟配置完毕,没想到搞了半小时,配置 gitee 的 jenkins 插件就 10 分钟,又翻了一遍gitee 插件文档,每次都要翻一遍这个文档。
这次画个图,争取下次 3 分钟搞定 —— 但画图花了半小时,哈哈!
Go 调用 Python
Go 怎么调用 Python?或者说 Python 怎么嵌入到 Go?—— 我要研究明白。
- 方案 1:go -- RESTFul -- python
- 需要用户起一个 python 进程的 http server 进程,并且定义 RESTFul API。
- 方案 2:go -- rpc -- python
- 可用 grpc 或其他 rpc,也是需要单独启动一个 python 进程并开启 rpc server,go 中代码作为 rpc client。
- 方案 3:go -- cgo/内存共享 -- python(C-API)
- python 的解释器绝大多数人都是使用官方的 CPython,内核和解释器是用 C 实现的,可以用 C 代码方便的调用。
- go 又和 C 是天然搭档,通过标准库中的 cgo 组件可以无缝调用 C。
- 此时 python core 作为动态库链接到 go 上。
RESTFul 和 RPC 都是网络调用方式,更适合高度解耦的场景,cgo 或直接内存共享则是效率优先。 —— 我打算先摸索一下方案 3。一通搜索,找到了一些好文章,再加上 10 天左右的实战摸索,总结以下要点:
下面依次展开描述图中 1、2、3:
VSCode 中的显示换行和格式化换行
VSCode 中换行分 2 个方面来说:
- 显示换行:用户的文档中并不真的有
\r\n
这些换行字符,而只是看到被换行了。 - 格式化换行:用户执行格式化命令(
Ctrl-Shift-F
或右鍵-formate...
或F1-formate...
)时 VSCode 或扩展在文档中指定位置插入\r\n
之类的字符。
来看看 VSCode 中是如何配置这两种换行的。
Github 上从 private 库向 public 库部署制品
继续前面的文章 github pages 部署 docusaurus 进行优化,需求:
- Github Pages 与 jekyll 深度绑定,所以以前
wkevin/wkevin.github.io
上只有源码,但转用 Docusarurus 后需要自己维护 gh-pages 分支,几天下来还是让有强迫症的我感到不爽:git pull origin main
而不能简单的git pull
,否则 gh-pages 的内容会被 fetch 到本地。 - 因为 Github Pages 不给免费账号的 private 库提供服务,所以我的 blog 源码都暴露了。
解决方案:源码、编译后的制品拆分成 2 个 repo,从源码 repo(A) 向制品 repo(B) 进行 deploy。