duangsuse::Echo
作为在“计算机还未发明”时代的编程者 #history Dijkstra 的名言: 编程无关计算机,就像天文无关望远镜 简单是可靠的先决条件,不是可靠的牺牲品 编程的艺术就是藏绌的技术。 程序员很清楚自己的能力是有限的,所以他对待编程任务的态度是谦卑的,重点是要象逃避瘟疫那样逃避 “聪明的技巧”。——1972年图灵奖演讲 我们所使用的工具深刻地影响我们的思考习惯,从而也影响了我们的思考能力。 根本不可能用一把钝斧子削好铅笔,而换成十把钝斧子,会让事情变成大灾难。 -- 「使用了 GOTO 语句的程序员乞求…
#py #math 《优雅不是奢侈品》
“如何才能让编程者们相信,简单性和清晰性——简而言之:数学家所说的“优雅”——不是可有可无的奢侈品,而是决定成功与失败的关键因素?”
― Edsger W. Dijkstra,“计算机著作精选:个人观点”,第 347 页。
简单明了的代码就是优雅的代码。这些都是代码中非常理想的属性。Dijkstra 又补充道:
“……在软件不可靠性的情况下,最大的成本因素是复杂。
一个可靠的(因此简单的)程序的开发和使用成本,比一个(复杂的因此)不可靠的程序要廉价。”
人们将初级代码误认为是简单清晰的代码,在我看来,这是非常危险的。
我不懂中文。你认为我看着中文书页,并断言“这是不可读的!”有道理吗?我需要做的是承认我看不懂中文,而不是中文不可读。
有人抱怨“阅读他人代码会增加额外的复杂性”,Tim Peters 对此做出了回应
—
“当有人使用你不理解的功能时,不关心。比学习新东西更容易,毕竟不久之后,唯一活着的程序员将使用 Python 0.9.6 <wink> 的一个易于理解的小子集进行编写。”
当你学习更多的语法、更多的函数、更多的模块、更多的数据类型等时,你就会了解更多的工具来解决你的问题。
工具带上的工具越多,当您需要做新的事情时,您就越有可能知道 适合工作的完美工具。简单、清晰、优雅;所有这些都会自然而然地发生。
(: 考虑到AI可以帮你了解工具,不必害怕搜不到写法而搞出「又慢又长的代码」了
复习你的一段旧代码,且知道有更好的方法来做到功能点,可以修改旧代码以包含新的改进的解决方案。只会让你的代码更加清晰和优雅,永不止步
假如你惯用的代码是语义易于理解的代码,所输出可重构代码是可以随着时间的推移,而改进的代码。
👀这个作者的观念很好,但审美真的…… 和他所说的可读至上有冲突
chian 这个词对flat的反映很隐晦,iterators.flat 的功能会更多(文件树..),自己造词,是很蠢的做法。
b(+,-)= (+x,-x) (b)
鬼才会觉得”数学语言“ 比py3好, 即便你去拿堆 \TeX 去写,也只是徒费事,对思考毫无益处。甚至不如去掉乘除符号的多项式”强类型“
无法重构的符号,就等于是白纸,谁都只能复制,只那几个用途而不能创作。 毫无价值 😅
—
我今天在设计 EQ 的 Reload(Suspense), Tab, list 增删动画, evalFun 的常量计算时,就一直在践行这些原则。
比如, Vue 的 TransitionGroup 看起来十分复杂,但只要记住每项xy的位移,以在css渐变的同时 做EQ所支持的元素进退场 就OK了; 这些需求也强化了 ondiff=(mov,add)=> 的合理性,做到 1+1>2
(EQ efx {fly:{} } 支持横纵四向,所以没 .list-enter-active{} 手动实现的那么直接 ,但单靠translateY 就能忽略上部的增删。
“如何才能让编程者们相信,简单性和清晰性——简而言之:数学家所说的“优雅”——不是可有可无的奢侈品,而是决定成功与失败的关键因素?”
― Edsger W. Dijkstra,“计算机著作精选:个人观点”,第 347 页。
简单明了的代码就是优雅的代码。这些都是代码中非常理想的属性。Dijkstra 又补充道:
“……在软件不可靠性的情况下,最大的成本因素是复杂。
一个可靠的(因此简单的)程序的开发和使用成本,比一个(复杂的因此)不可靠的程序要廉价。”
人们将初级代码误认为是简单清晰的代码,在我看来,这是非常危险的。
我不懂中文。你认为我看着中文书页,并断言“这是不可读的!”有道理吗?我需要做的是承认我看不懂中文,而不是中文不可读。
有人抱怨“阅读他人代码会增加额外的复杂性”,Tim Peters 对此做出了回应
—
“当有人使用你不理解的功能时,不关心。比学习新东西更容易,毕竟不久之后,唯一活着的程序员将使用 Python 0.9.6 <wink> 的一个易于理解的小子集进行编写。”
当你学习更多的语法、更多的函数、更多的模块、更多的数据类型等时,你就会了解更多的工具来解决你的问题。
工具带上的工具越多,当您需要做新的事情时,您就越有可能知道 适合工作的完美工具。简单、清晰、优雅;所有这些都会自然而然地发生。
(: 考虑到AI可以帮你了解工具,不必害怕搜不到写法而搞出「又慢又长的代码」了
复习你的一段旧代码,且知道有更好的方法来做到功能点,可以修改旧代码以包含新的改进的解决方案。只会让你的代码更加清晰和优雅,永不止步
假如你惯用的代码是语义易于理解的代码,所输出可重构代码是可以随着时间的推移,而改进的代码。
👀这个作者的观念很好,但审美真的…… 和他所说的可读至上有冲突
list(itertools.chain(*list_of_lists))这是不能替代
[[1], [2]].flat(depth=1)
的,chian 这个词对flat的反映很隐晦,iterators.flat 的功能会更多(文件树..),自己造词,是很蠢的做法。
(a b c) ← 1 ¯4 3等于
(2×a)÷⍨-b(+,-)0.5*⍨(b*2)-4×a×c
import numpy as np
a,b,c = 1, -4, 3
(2*a) / np.sqrt(-b + np.array([1, -1]) * 0.5*np.sqrt(b**2 - 4*a*c))
⍨=sqrtb(+,-)= (+x,-x) (b)
np.roots([a, b, c]) #ax^2 + bx + c = 0奇怪的是,翻译过来居然错的,少算个sqrt又对了……
鬼才会觉得”数学语言“ 比py3好, 即便你去拿堆 \TeX 去写,也只是徒费事,对思考毫无益处。甚至不如去掉乘除符号的多项式”强类型“
无法重构的符号,就等于是白纸,谁都只能复制,只那几个用途而不能创作。 毫无价值 😅
—
我今天在设计 EQ 的 Reload(Suspense), Tab, list 增删动画, evalFun 的常量计算时,就一直在践行这些原则。
比如, Vue 的 TransitionGroup 看起来十分复杂,但只要记住每项xy的位移,以在css渐变的同时 做EQ所支持的元素进退场 就OK了; 这些需求也强化了 ondiff=(mov,add)=> 的合理性,做到 1+1>2
(EQ efx {fly:{} } 支持横纵四向,所以没 .list-enter-active{} 手动实现的那么直接 ,但单靠translateY 就能忽略上部的增删。
Mathspp
Does elegance matter? | Pydon't 🐍
Does elegance matter when writing computer programs..?
duangsuse::Echo
#py #math 《优雅不是奢侈品》 “如何才能让编程者们相信,简单性和清晰性——简而言之:数学家所说的“优雅”——不是可有可无的奢侈品,而是决定成功与失败的关键因素?” ― Edsger W. Dijkstra,“计算机著作精选:个人观点”,第 347 页。 简单明了的代码就是优雅的代码。这些都是代码中非常理想的属性。Dijkstra 又补充道: “……在软件不可靠性的情况下,最大的成本因素是复杂。 一个可靠的(因此简单的)程序的开发和使用成本,比一个(复杂的因此)不可靠的程序要廉价。” 人们…
#py 周刊
- 《优雅不是奢侈品》
- nogil 最新情报
- #web Django ORM 最佳实践
- Django 自带的JWT 路径验证和登录页
- #ts 阮一峰 入门, 纯JS入门
- #linux #rust Nush: 不是 Powershell
- #js npm依赖图
- #ai #tool realsizer4x 超分辨
- #rust
- #ui Toga: 跨平台的 TkGUI
- #ml Viberary: 开源书籍检索引擎
- Khan 为何从Py2移植到 kt,go
- #parallel 用asyncio分享查询,防止缓存失效时并发卡爆
- #plt Rust vs Idris,Zig: 渐强类型的解药 #1
单进程 cron:
- 奇怪的for赋值, 魔术方法
实现 lazy load:
⭐️
#code 修改语法
#ts
#1为什么静态类型的C,Go,C++ 不是弱检查 就是太复杂
代码练习: 不需要
int[10] 的实质、 #Kt 类型推导的原理
- 《优雅不是奢侈品》
- nogil 最新情报
- #web Django ORM 最佳实践
- Django 自带的JWT 路径验证和登录页
- #ts 阮一峰 入门, 纯JS入门
- #linux #rust Nush: 不是 Powershell
- #js npm依赖图
- #ai #tool realsizer4x 超分辨
- #rust
pixi add cowpy
强化pip- #ui Toga: 跨平台的 TkGUI
- #ml Viberary: 开源书籍检索引擎
- Khan 为何从Py2移植到 kt,go
- #parallel 用asyncio分享查询,防止缓存失效时并发卡爆
- #plt Rust vs Idris,Zig: 渐强类型的解药 #1
单进程 cron:
from apscheduler.schedulers.background import BackgroundScheduler并行 multiprocessing: #2
cron = BackgroundScheduler(jobstores=sqlite)
.add_job(print, 'interval', seconds=5)
.start()
with mpire.WorkerPool(n_jobs=5) as pool:- 修改语法ASDL,实现
results = pool.map(getFiles, range(10), progress_bar=True)
map( (x)=>x*x, [1])
[Parser/Python.asdl] [30行实现]- 奇怪的for赋值, 魔术方法
from xx import*
的明确化:设置好 xx.__all__ = [exports
]实现 lazy load:
importlib.import_module
⭐️
import pyforest
自动导入np,pd 等变量#code 修改语法
__import__('cv2')
- from lazy import cv2— 仅供学习,import 语句本可以是局部。 (GPT怎么变蠢了
import types,sys
class lazy(types.ModuleType):
def __getattr__(self, mod):
import importlib.util as _
if None==(r:=sys.modules.get(mod)):
id = _.find_spec(mod)
# get it inserted into sys.modules.
_.LazyLoader(id.loader).exec_module(r:=_.module_from_spec(id))
return r
sys.modules['lazy']=lazy('-L imports')
#ts
#1为什么静态类型的C,Go,C++ 不是弱检查 就是太复杂
代码练习: 不需要
type WTF<> =
就可以检查 htmlTag, funcPipe, nthArg, printf("\d") 等调用的类型 int[10] 的实质、 #Kt 类型推导的原理
Telegram
Newlearnerの自留地
#Python潮流周刊 #Newsletter
Python 潮流周刊#16:优雅重要么?如何写出 Pythonic 的代码?
🦄文章&教程
1、写代码时,优雅有意义吗?
2、Python Asyncio实践--高并发下如何防止缓存击穿
3、高效定时任务处理:深入学习 Python 中 APScheduler 库的奥秘
4、CPython 开发实战:魔改 lambda 函数
5、CPython 是如何实现引用计数的?
6、使用 Importlib 实现 Python 延迟加载
7、使用 Python…
Python 潮流周刊#16:优雅重要么?如何写出 Pythonic 的代码?
🦄文章&教程
1、写代码时,优雅有意义吗?
2、Python Asyncio实践--高并发下如何防止缓存击穿
3、高效定时任务处理:深入学习 Python 中 APScheduler 库的奥秘
4、CPython 开发实战:魔改 lambda 函数
5、CPython 是如何实现引用计数的?
6、使用 Importlib 实现 Python 延迟加载
7、使用 Python…
duangsuse::Echo
#tech #recommend #js 🧐从『函数』的定义就能知道,#编程范式 的发展史 👉 地址symbol、子程序void()、对象 SAM object、算式 x=>y 或文档树、 模式查询select [a b], a=1|a=2 : x86无结构:是弱检查指针、面条流控、256项字符集,定长数组,栈分配,加载到内核mmap(rwx..不能为READ 段错误) 是dll内地址 C过程式:是向调用栈赋值后跳过去等返回,是子程序 C#OOP:捕获了局部变量(cellvar,可变)、原型虚表到t…
#py 周刊
- Excel 支持
- PowerToys添加“可交互”的截图
- Google 等各种大公司的技术blog #list
- #apple #design 设计师法则
- #learn 看美军的脏话官话(F-words)学英语 。
- 单靠 #sql 如何保存数据
- APL 里有的 py 基本列表处理式
- FastAPI 最佳实践 list
- async stdlib: 对比理解各种流行实现
- fixit linter: py 版本的 IDEA 自动迁移 (无AI), cffi: 我用什么 C parser 链接到.h 文件
- 用 difflib 开发一个文件比较工具
- KeymouseGo, ahkunwrapped py : 类似按键精灵的鼠标键盘录制和自动化操作
- quivr:生成式 AI 打造你的第二大脑, trafilatura: GUI 文本/评论 爬虫
检索非结构化的信息,可以理解成支持人工智能的 Obsidian。可以处理各种形式的文件如文本、图片、代码、音频和视频等,依赖于 ChatGPT、Docker、Supabase
- FastAPI + SSE
- 用py编写代码高亮图片生成 (carbon.now.sh ..)
- Streamlit 地图高亮生成
- Streamlit GPT4文件摘要工具
- Mojo #ai #rust: 对Py的渐强类型&优化 的语法改进 [waitlist]
#code #algorithm 埃氏素数筛
- Excel 支持
import pandas, statsmodels
, matplotlib / seaborn 了, Guido 亲自推广(可能是云计算,要订阅)- PowerToys添加“可交互”的截图
- Google 等各种大公司的技术blog #list
- #apple #design 设计师法则
- #learn 看美军的脏话官话(F-words)学英语 。
- 单靠 #sql 如何保存数据
- APL 里有的 py 基本列表处理式
- FastAPI 最佳实践 list
- async stdlib: 对比理解各种流行实现
- fixit linter: py 版本的 IDEA 自动迁移 (无AI), cffi: 我用什么 C parser 链接到.h 文件
- 用 difflib 开发一个文件比较工具
- KeymouseGo, ahkunwrapped py : 类似按键精灵的鼠标键盘录制和自动化操作
- quivr:生成式 AI 打造你的第二大脑, trafilatura: GUI 文本/评论 爬虫
检索非结构化的信息,可以理解成支持人工智能的 Obsidian。可以处理各种形式的文件如文本、图片、代码、音频和视频等,依赖于 ChatGPT、Docker、Supabase
- FastAPI + SSE
new EventSource('/http流')
API 下发文本消息 - 用py编写代码高亮图片生成 (carbon.now.sh ..)
- Streamlit 地图高亮生成
- Streamlit GPT4文件摘要工具
- Mojo #ai #rust: 对Py的渐强类型&优化 的语法改进 [waitlist]
def mandelbrot_0(c: ComplexFloat64) -> Int: #CPU FMA优化, 1Mojo = 15Numpy = 89CPy👀 Rust 确实是资本的语言,融资1亿刀乐
z = c, nv = 0
for i in range(1, 200): #清晰度
if abs(z) > 2: break
z = z*z + c
nv += 1
return nv
#code #algorithm 埃氏素数筛
def gen_primes():
"""Generate an infinite sequence of prime numbers."""
D = {}
q = 2
while True:
if q not in D: D[q * q] = [q];yield q
else:
for p in D[q]: D.setdefault(p + q, []).append(p)
del D[q]
q += 1
Telegram
Newlearnerの自留地
#Python潮流周刊 #Newsletter
Python 潮流周刊#17:Excel 终于支持 Python 了、Meta 重磅开源新项目
🦄文章&教程
1、Excel 终于支持 Python 了!
2、如何使用 FastAPI 与 aiohttp 进行 SSE 响应开发?
3、用 FastAPI 和 Hamilton 实现的 PDF 摘要工具
4、放弃 Python 拥抱 Mojo?鹅厂工程师真实使用感受
5、Mojo 如何获得比 Python 快 35000 倍的加速?
6、APL 语言教会我的那些…
Python 潮流周刊#17:Excel 终于支持 Python 了、Meta 重磅开源新项目
🦄文章&教程
1、Excel 终于支持 Python 了!
2、如何使用 FastAPI 与 aiohttp 进行 SSE 响应开发?
3、用 FastAPI 和 Hamilton 实现的 PDF 摘要工具
4、放弃 Python 拥抱 Mojo?鹅厂工程师真实使用感受
5、Mojo 如何获得比 Python 快 35000 倍的加速?
6、APL 语言教会我的那些…
duangsuse::Echo
#py 周刊 - Excel 支持 import pandas, statsmodels, matplotlib / seaborn 了, Guido 亲自推广(可能是云计算,要订阅) - PowerToys添加“可交互”的截图 - Google 等各种大公司的技术blog #list - #apple #design 设计师法则 - #learn 看美军的脏话官话(F-words)学英语 。 - 单靠 #sql 如何保存数据 - APL 里有的 py 基本列表处理式 - FastAPI 最佳实践 list…
#py 周刊
#recommend #tool 带有 "Android 子系统", taskmgr,... 的网页版Win12 demo 🎨
#algorithm Hello Algo 多语言实例
#tool EasySpider +可视化编程
#android 高级包管理器
js: await using fp = openFile()
Flask 深入探索: 请求上文、会话、CORS
fastapi-users:开箱即用的 FastAPI 用户管理库
Django 发送带有验证链接的电子邮件
FastAPI 使用 Tailwind CSS + SQLAlchemy
Streamlit 初学者指南: 类似 Juypter UI
Polars:快如闪电的 #rust DataFrame 库, 优化表达式和上下文、惰性
dara:轻松创建交互式 Web 图表程序 📊
Python Asyncio 之 socket() 网络编程理论详解
可视化+深入学习数据结构与算法:C++、Swift、Python、Java、C#、JavaScript
bisect,heapq 如何保持数组有序
upiano:命令行里的钢琴 FluidSynth
探索国家/文化多样性:Pyetho — 用于列出国家及其语言
深入介绍 Python 3.12 中的永生对象(如 None 关键字和小整数)
下划线的十种用法(REPL, match, i18n)
7、h2ogpt:私人文档+图像的问答 PyMuPDF 识别与提取表格
8、refact:开源编码助手,支持自动补全、代码重构、代码分析
9、dify:创建自己的 AI 应用 +CN
#recommend #tool 带有 "Android 子系统", taskmgr,... 的网页版Win12 demo 🎨
#algorithm Hello Algo 多语言实例
#tool EasySpider +可视化编程
#android 高级包管理器
js: await using fp = openFile()
Flask 深入探索: 请求上文、会话、CORS
fastapi-users:开箱即用的 FastAPI 用户管理库
Django 发送带有验证链接的电子邮件
FastAPI 使用 Tailwind CSS + SQLAlchemy
Streamlit 初学者指南: 类似 Juypter UI
Polars:快如闪电的 #rust DataFrame 库, 优化表达式和上下文、惰性
dara:轻松创建交互式 Web 图表程序 📊
Python Asyncio 之 socket() 网络编程理论详解
可视化+深入学习数据结构与算法:C++、Swift、Python、Java、C#、JavaScript
bisect,heapq 如何保持数组有序
upiano:命令行里的钢琴 FluidSynth
探索国家/文化多样性:Pyetho — 用于列出国家及其语言
深入介绍 Python 3.12 中的永生对象(如 None 关键字和小整数)
下划线的十种用法(REPL, match, i18n)
7、h2ogpt:私人文档+图像的问答 PyMuPDF 识别与提取表格
8、refact:开源编码助手,支持自动补全、代码重构、代码分析
9、dify:创建自己的 AI 应用 +CN
Telegram
Newlearnerの自留地
#Python潮流周刊 #Newsletter
Python 潮流周刊#18:Flask、Streamlit、Polars 的学习教程
🦄文章&教程
1、一份深入探索 Flask 的指南
2、使用 PyMuPDF 识别与提取表格
3、深入介绍 Python 3.12 中的永生对象
4、Python 中下划线的十种用法
5、Python Asyncio 之网络编程方法详解
6、给初学者的 Streamlit 学习指南
7、如何在 FastAPI 应用中使用 Tailwind CSS 和 SQLAlchemy…
Python 潮流周刊#18:Flask、Streamlit、Polars 的学习教程
🦄文章&教程
1、一份深入探索 Flask 的指南
2、使用 PyMuPDF 识别与提取表格
3、深入介绍 Python 3.12 中的永生对象
4、Python 中下划线的十种用法
5、Python Asyncio 之网络编程方法详解
6、给初学者的 Streamlit 学习指南
7、如何在 FastAPI 应用中使用 Tailwind CSS 和 SQLAlchemy…
duangsuse::Echo
#py 周刊 - Excel 支持 import pandas, statsmodels, matplotlib / seaborn 了, Guido 亲自推广(可能是云计算,要订阅) - PowerToys添加“可交互”的截图 - Google 等各种大公司的技术blog #list - #apple #design 设计师法则 - #learn 看美军的脏话官话(F-words)学英语 。 - 单靠 #sql 如何保存数据 - APL 里有的 py 基本列表处理式 - FastAPI 最佳实践 list…
#py 周刊
HackerNews 等新闻聚合
本该辅助思维的工具,如何异化我们
pysentation: 在终端展示你的py代码
js anti-debug: 尝试阻止全编程界最优秀的 DevTools,
https://github.com/theajack/disable-devtool/blob/master/src/detector/sub-detector/func-to-string.ts
v0.dev: 生成预览和迭代HTML设计
Mojo 🔥 Linux版本可用, 自带 Tensor(nd),DType 支持
(ps. 这人怎么 parser 都不会写啊, (1+ 换行 1) 时解析失败,等待下一行不就行了吗? 他只是写了个众所周知的hint
这个 let var 是干嘛啊(还有Java式的 class Benchmark..),Python 简洁的优势都丢了
🤖 Falcon 作为当前最大的开源大模型,有 180B 参数,在 3.5 万亿词的 TII RefinedWeb 上训练
jieba的替换: pkuseg-python , hanlp
#wasm #plt 500行迷你C编译器
🥧 半手工绘制 plt.极座标直方图
📈 #algorithm min/maxHeap 有序列实现
#bin Bloom filter 集合 位运算实现 —性质类似WeakSet, 非常快
🐳 用Podman部署py包 [维护pip包]
📝 使用 Protobuf message{} 储存和传输
compress:基于个人语料库的快捷输入工具
gpt_academic #zh gui : 为 ChatGPT/GLM 提供实用化交互界面
GPT 学术优化,特别优化论文阅读/润色/写作体验,模块化设计,支持自定义快捷按钮&函数插件,支持 Python 和 C++ 等项目剖析&自译解功能,PDF/LaTex 论文翻译&总结功能
HackerNews 等新闻聚合
本该辅助思维的工具,如何异化我们
pysentation: 在终端展示你的py代码
js anti-debug: 尝试阻止全编程界最优秀的 DevTools,
https://github.com/theajack/disable-devtool/blob/master/src/detector/sub-detector/func-to-string.ts
v0.dev: 生成预览和迭代HTML设计
Mojo 🔥 Linux版本可用, 自带 Tensor(nd),DType 支持
这个 let var 是干嘛啊(还有Java式的 class Benchmark..),Python 简洁的优势都丢了
🤖 Falcon 作为当前最大的开源大模型,有 180B 参数,在 3.5 万亿词的 TII RefinedWeb 上训练
jieba的替换: pkuseg-python , hanlp
#wasm #plt 500行迷你C编译器
🥧 半手工绘制 plt.极座标直方图
📈 #algorithm min/maxHeap 有序列实现
#bin Bloom filter 集合 位运算实现 —性质类似WeakSet, 非常快
🐳 用Podman部署py包 [维护pip包]
📝 使用 Protobuf message{} 储存和传输
protoc --python_out=. .\music.proto
from music_pb2 import Library
Library().add(music).K=V
lib.SerializeToString()
lib.ParseFromString(f.read())
compress:基于个人语料库的快捷输入工具
gpt_academic #zh gui : 为 ChatGPT/GLM 提供实用化交互界面
GPT 学术优化,特别优化论文阅读/润色/写作体验,模块化设计,支持自定义快捷按钮&函数插件,支持 Python 和 C++ 等项目剖析&自译解功能,PDF/LaTex 论文翻译&总结功能
Telegram
Newlearnerの自留地
#Python潮流周刊 #Newsletter
Python 潮流周刊#19:Mojo 终于提供下载了!
🦄文章&教程
1、Mojo🔥 终于提供下载了!
2、我们能从 PEP-703 中学到什么?
3、用 500 行 Python 代码写一个 C 语言编译器
4、简单介绍如何用 Python 作协议缓冲区编程
5、用 Python 和 matplotlib 创建漂亮的极坐标直方图
6、布隆过滤器图解与 Python 实现
7、Python 中的堆数据结构:最小和最大堆实现
8、Python 容器化部署教程…
Python 潮流周刊#19:Mojo 终于提供下载了!
🦄文章&教程
1、Mojo🔥 终于提供下载了!
2、我们能从 PEP-703 中学到什么?
3、用 500 行 Python 代码写一个 C 语言编译器
4、简单介绍如何用 Python 作协议缓冲区编程
5、用 Python 和 matplotlib 创建漂亮的极坐标直方图
6、布隆过滤器图解与 Python 实现
7、Python 中的堆数据结构:最小和最大堆实现
8、Python 容器化部署教程…
#py 周刊
Python,YAML 的缩进为何比C系优秀
4、strictyaml:类型安全的 YAML 解析和校验库
用于解析 YAML 的受限子集,拒绝解析丑陋的、难以阅读和不安全的 YAML 简写,有严格的标记验证和直接的类型转换
TOML 文件格式有什么问题?
“改进的” INI 文件,是 pip 推荐的配置文件格式。但连 TOML 的作者也认为它是一种糟糕的格式!
12、Python Fire:自动生成命令行接口
谷歌开源的一个用于生成 CLI 的库,Github 25K star。这篇文章介绍了它的一般命令、组合命令、链式命令、复杂命令等用法。
5、facefusion:更先进的换脸工具
最新开源的一个人像换脸库,star 涨得飞快!(star 6.9K)
#tool 把网页转换成 Markdown 格式存储
一站式 LLM 底层技术原理入门指南
基于数学点乘的 Transformer原理引言
7、instagraph:将文本内容或 URL 转换为可视化的知识图谱
可以提取复杂信息中的名词实体,生成它们的关系图谱。使用了 GPT-3.5,以及 Flask
该以一种怎么样的心态对待开源
🐎 网易云音乐 Tango 低代码引擎正式开源!
文章集 Writing an #OS in Rust , 从linker-BIOS ABI到算法
Thorium.rocks : Chromium 改版
10、使用 Django 和 HTMX 开发一个数据库搜索项目
一篇详细的 Django 项目教程,实现一个全栈的项目。文中有作者的教程视频。
11、异步 SqlAlchemy 和多数据库管理
利用 asyncio 和 SqlAlchemy 库,文章探讨了如何有效地连接和管理多个数据库,获得可扩展且具有弹性的架构。文章介绍了两种实现方法。
前端新轮子 Nue JS,作者称要打造全新的 Web 生态 [docs]
tornado Web 框架 的协程调度原理
14、为什么 Python 代码在函数中运行得更快?
代码执行的工作原理是什么?如何测试与优化 Python 函数的性能?
13、我最爱的解 LeetCode 问题的 Python 技巧
#algorithm 玩转遗传算法
遗传算法(Genetic Algorithm)是一种受生物进化理论启发的优化算法,用于解决复杂的搜索和优化
9、调试 Python 中正则表达式的灾难性回溯
作者使用 py-spy 定位一个 CPU 100% 占用问题,找出了罪魁祸首的正则表达式
Python abc 类型提示的轻量化:接口
Python,YAML 的缩进为何比C系优秀
4、strictyaml:类型安全的 YAML 解析和校验库
用于解析 YAML 的受限子集,拒绝解析丑陋的、难以阅读和不安全的 YAML 简写,有严格的标记验证和直接的类型转换
TOML 文件格式有什么问题?
“改进的” INI 文件,是 pip 推荐的配置文件格式。但连 TOML 的作者也认为它是一种糟糕的格式!
12、Python Fire:自动生成命令行接口
谷歌开源的一个用于生成 CLI 的库,Github 25K star。这篇文章介绍了它的一般命令、组合命令、链式命令、复杂命令等用法。
5、facefusion:更先进的换脸工具
最新开源的一个人像换脸库,star 涨得飞快!(star 6.9K)
#tool 把网页转换成 Markdown 格式存储
一站式 LLM 底层技术原理入门指南
基于数学点乘的 Transformer原理引言
7、instagraph:将文本内容或 URL 转换为可视化的知识图谱
可以提取复杂信息中的名词实体,生成它们的关系图谱。使用了 GPT-3.5,以及 Flask
该以一种怎么样的心态对待开源
🐎 网易云音乐 Tango 低代码引擎正式开源!
文章集 Writing an #OS in Rust , 从linker-BIOS ABI到算法
Thorium.rocks : Chromium 改版
10、使用 Django 和 HTMX 开发一个数据库搜索项目
一篇详细的 Django 项目教程,实现一个全栈的项目。文中有作者的教程视频。
11、异步 SqlAlchemy 和多数据库管理
利用 asyncio 和 SqlAlchemy 库,文章探讨了如何有效地连接和管理多个数据库,获得可扩展且具有弹性的架构。文章介绍了两种实现方法。
前端新轮子 Nue JS,作者称要打造全新的 Web 生态 [docs]
tornado Web 框架 的协程调度原理
14、为什么 Python 代码在函数中运行得更快?
代码执行的工作原理是什么?如何测试与优化 Python 函数的性能?
13、我最爱的解 LeetCode 问题的 Python 技巧
#algorithm 玩转遗传算法
遗传算法(Genetic Algorithm)是一种受生物进化理论启发的优化算法,用于解决复杂的搜索和优化
9、调试 Python 中正则表达式的灾难性回溯
作者使用 py-spy 定位一个 CPU 100% 占用问题,找出了罪魁祸首的正则表达式
Python abc 类型提示的轻量化:接口
from typing import Protocol
@typing.runtime_checkable
class DuckLike(Protocol):
def walk(self, to: str) -> None: ...
Telegram
Newlearnerの自留地
#Python潮流周刊 #Newsletter
Python 潮流周刊#20:为什么代码在函数中运行得更快?
🦄文章&教程
1、三种对 Python 作基准测试的方法
2、舍弃 Poetry 和 PDM,切换成 Hatch
3、TOML 文件格式有什么问题?
4、用 Python 玩转遗传算法
5、现代 Python 的类型提示:Protocal 类
6、tornado 的协程调度原理
7、可视化 CPython 发布过程
8、如何用 PyObjC 与 Apple Vision 框架作文本识别
9、调试…
Python 潮流周刊#20:为什么代码在函数中运行得更快?
🦄文章&教程
1、三种对 Python 作基准测试的方法
2、舍弃 Poetry 和 PDM,切换成 Hatch
3、TOML 文件格式有什么问题?
4、用 Python 玩转遗传算法
5、现代 Python 的类型提示:Protocal 类
6、tornado 的协程调度原理
7、可视化 CPython 发布过程
8、如何用 PyObjC 与 Apple Vision 框架作文本识别
9、调试…
#py 周刊
在单核情况下加快 Python 代码速度,提速 2339/554us=4倍
提速一个低色深保真算法,涉及的一些概念:指令级并行 (ILP)、分支预测、单指令多数据(SIMD)、内存层次结构等。
6 件可以用 Functools 模块做的很酷的事
7 个极佳的 Python 身份验证库
Authlib、Pyjwt、Flask-login、Django-allauth、ItsDangerous、Python Social Auth、Flask-security
Python对象模型(大部分)由语法糖组成
Brett Cannon 写了一系列关于“语法糖”的博客,并创建了MyPY,解析了 80 多个语法糖特性。locals(), 闭包赋值所致的 nonlocal 问题,
为什么有这么多 Python Dataframe?
Pandas、Polars、Dask 和 PySpark 的区别在哪?作者认为是电子表格、关系数据库、二维数组/矩阵、对象 的便利性不同
用$ Radon 来衡量计算圈复杂度等指标
计算圈复杂度、原始指标、Halstead 指标、可维护性指数,可用于 CI 集成,可与 Jupyter Notebook 一起使用。(star 1.5K)
CPython 在处理字符串时使用了布隆过滤器,比如 splitlines()、strip() 两个函数(不到 50 行 C 代码)
Python 中 UUID 的使用
深入理解
这个非常实用的函数,用于从命令行运行测试集或者以编程方式运行测试。文章探讨了它的用法和一些常见的应用场景。
toml-bench:在 Python 中该用哪个 toml 库?
比较了 toml、tomli/tomli_w、tomlkit、pytomlpp、rtoml 和 qtoml 这几个库,考察它们在处理数据时的行为表现以及性能。
迎接更快的 SymPy
SymPy 是一个用于符号计算(symbolic computation)的库,可以处理代数、微积分、离散数学等领域的问题。
使用 import-linter 让你的 Python 项目架构更整洁
在依赖关系治理方面,通过提供各种类型的“契约”,让我们得以将项目内隐式的复杂依赖关系,通过配置文件显式的表达出来。文章介绍了它的入门使用,以及 6 种修复依赖关系的技巧。
可处理进程创建和清理、信号管理、跨进程通信
logparser:用于日志解析的机器学习工具包
自动从非结构化的日志信息中提取出关键的表格信息。(star 1.2K)
llama2.mojo:纯 Mojo 版本的 Llama 2 ,将性能提高了近 250 倍
作者将 Python 版本的 llama2.py 移植成 Mojo 版本。(star 1.1K)
在单核情况下加快 Python 代码速度,提速 2339/554us=4倍
提速一个低色深保真算法,涉及的一些概念:指令级并行 (ILP)、分支预测、单指令多数据(SIMD)、内存层次结构等。
6 件可以用 Functools 模块做的很酷的事
@cache 缓存、@total_ordering
让你少写排序方法、@singledispatch
函数重载、partial() 颗粒化传参、@wraps
wrapt装饰器、reduce() 函数。7 个极佳的 Python 身份验证库
Authlib、Pyjwt、Flask-login、Django-allauth、ItsDangerous、Python Social Auth、Flask-security
Python对象模型(大部分)由语法糖组成
Brett Cannon 写了一系列关于“语法糖”的博客,并创建了MyPY,解析了 80 多个语法糖特性。locals(), 闭包赋值所致的 nonlocal 问题,
type(X).__neg__(X); type(X or Y).__add__(X,Y)
, raise 替代break为什么有这么多 Python Dataframe?
Pandas、Polars、Dask 和 PySpark 的区别在哪?作者认为是电子表格、关系数据库、二维数组/矩阵、对象 的便利性不同
用$ Radon 来衡量计算圈复杂度等指标
计算圈复杂度、原始指标、Halstead 指标、可维护性指数,可用于 CI 集成,可与 Jupyter Notebook 一起使用。(star 1.5K)
CPython 在处理字符串时使用了布隆过滤器,比如 splitlines()、strip() 两个函数(不到 50 行 C 代码)
Python 中 UUID 的使用
from uuid import uuid1
() 利用系统 MAC 地址与时间戳生成 uuid;uuid4() 生成完全随机的 uuid;uuid3() 和 uuid5() 基于常量命名空间和变量名生成 uuid,前者使用 MD5 算法,后者使用 SHA-1 算法。深入理解
pytest.main()
:Python 测试框架的核心功能解析这个非常实用的函数,用于从命令行运行测试集或者以编程方式运行测试。文章探讨了它的用法和一些常见的应用场景。
toml-bench:在 Python 中该用哪个 toml 库?
比较了 toml、tomli/tomli_w、tomlkit、pytomlpp、rtoml 和 qtoml 这几个库,考察它们在处理数据时的行为表现以及性能。
迎接更快的 SymPy
SymPy 是一个用于符号计算(symbolic computation)的库,可以处理代数、微积分、离散数学等领域的问题。
使用 import-linter 让你的 Python 项目架构更整洁
在依赖关系治理方面,通过提供各种类型的“契约”,让我们得以将项目内隐式的复杂依赖关系,通过配置文件显式的表达出来。文章介绍了它的入门使用,以及 6 种修复依赖关系的技巧。
# 分层:resources -> clustersquasiqueue:管理长时间运行的多进程作业。
# 调整前
resources -> clusters
clusters -> resources.cluster_utils # 应该是 clusters.utils
可处理进程创建和清理、信号管理、跨进程通信
logparser:用于日志解析的机器学习工具包
自动从非结构化的日志信息中提取出关键的表格信息。(star 1.2K)
llama2.mojo:纯 Mojo 版本的 Llama 2 ,将性能提高了近 250 倍
作者将 Python 版本的 llama2.py 移植成 Mojo 版本。(star 1.1K)
Telegram
Newlearnerの自留地
#Python潮流周刊 #Newsletter
Python 潮流周刊#21:如何提升及测量 Python 代码的性能?
🦄文章&教程
1、在单核情况下加快 Python 代码速度
2、使用 Radon 作 Python 的代码度量
3、Python(大部分)由语法糖组成
4、迎接新的 SymPy
5、使用 import-linter 让你的 Python 项目架构更整洁
6、CPython 如何用布隆过滤器作字符串处理?
7、Python 中 UUID 的使用
8、为什么有这么多 Python Dataframe?…
Python 潮流周刊#21:如何提升及测量 Python 代码的性能?
🦄文章&教程
1、在单核情况下加快 Python 代码速度
2、使用 Radon 作 Python 的代码度量
3、Python(大部分)由语法糖组成
4、迎接新的 SymPy
5、使用 import-linter 让你的 Python 项目架构更整洁
6、CPython 如何用布隆过滤器作字符串处理?
7、Python 中 UUID 的使用
8、为什么有这么多 Python Dataframe?…
duangsuse::Echo
#design 但离我理想的编程语言,还要删掉一些 - 内联取代break,tailrec 。{}块支持的跳转才自然 - Nd(矩阵) 规避循环 - 协程规避catch{throw},yield 。回调天然能“级联返回”和暂停 - Var.= 取代赋值解构。“可变量”是闭包里就存在的。六七十年前Lua,Fortran,Lisp,Prolog 都支持的协程矩阵DSL解构(即类型推导),今天拿出来加点不良不莠的术语😅居然能算高级特性 ,心智模型和发展观被Java,C++荼毒成什么样了 既然catch,while…
#py #learn 语法的背后
-
- getitem(slice(A,B,step)|tuple), getattribute 混淆就是JS对dict 的做法。当然JS没有tuple可以滥用,也没Pair(AB),没可重载的 isub -=
- is 用于检测id()相等,对abc123YN? 显然是一致的,而 eq,lt 是另伙,支持交换律的。
再谈声明
-
- lit={}[] 也是要创建
-
- coro.await() 是一个靠next()的"Thenable",但它没有ES6那样的默认(最异步的DOM)执行器,甚至没规范 yield Promise,只能
报错的显示,当然是从调用栈 cause 链表出来的,而JS更像
class C(A,B):
是元类type的单例(在这里C:B.元类) ,语义是 exec(body, globals(), locals:=T.__prepare__(k,[T0],Defs:={})); mro=types.resolve_bases; cls = {*Defs, *decorator(meta())}
而def 们在globals+__class__下执行,还要设置qname,doc(第0行""),type annotations。 (教科书式的“反射”接口)-
@staticmethod
f 是利用实例/类 getattribute 时调用的 f.get(obj,T) ,因此 (str.strip)(" ")
仍然正确(没有"js".bind("") 那样自由又强制..)- getitem(slice(A,B,step)|tuple), getattribute 混淆就是JS对dict 的做法。当然JS没有tuple可以滥用,也没Pair(AB),没可重载的 isub -=
- is 用于检测id()相等,对abc123YN? 显然是一致的,而 eq,lt 是另伙,支持交换律的。
@functools.total_ordering
可以从<支持<= (btw. 怎么连缓存eval都莫得啊)再谈声明
-
@decorator(f)(litArgs)
, with enter exit 是我最讨厌的一种def, 是因为Python对(多行)lambda算式的轻视:以为Excel+生成式能表达一切,和Py2时的 print>>file,
一样。想发展,不够用吧?想省1字的括号 😅因IDE妥协- lit={}[] 也是要创建
dict((k,v),)
调用的,和JSON读写器很像,所以“序列化很难”-
importlib, sys.path
是这个语句实际修改 globals()的方法。注意 a.b as b 是模块而 from a:b 是类,from PIL:Image 为啥可行呢?因为包init的 import ..sub 是公开的- coro.await() 是一个靠next()的"Thenable",但它没有ES6那样的默认(最异步的DOM)执行器,甚至没规范 yield Promise,只能
aio.run(main())
while(p){} ok() 实现的if在汇编是 A: if(!p)goto B; goto B;if(p)goto A; B:ok
,加上init有三块BB,就像 a||b, a? a:b 一样。直接做break理论和switch一样(你该知道工程界只有when ,也没if elif)报错的显示,当然是从调用栈 cause 链表出来的,而JS更像
sys._getframe()
。 finally: 加在return前面,或者说 try catch 都是闭包而finally调用它们
duangsuse::Echo
cg($dyn) 生成了 ()=>(a=3,f=(a)=>(a+1),r0=[f(1),a]) ,运行正常 - just(a) - f()=a f just(0)() 那再来一个 with(DSL)$lex=[[], [just, [[a], [f,[[],[a] ]], [f] ]], [f,[0, 0,[just]]], [0, f] //“类型推导”差到不能直接调用 ] ()=>(just=(a)=>(f=()=>(a),f),f=just(0),f()) 是0而不是3 实际上,()=>…
#py #code #recommend 说到有趣的py接口,有个 iself()
之前写贪吃蛇 snk.c 就用到链表
不想缓冲区溢出的话Vec还是好的。C里你要实现[] 需要懂链表/strcat, rust 里你写
Rust的生命周期现在基本不需要考虑(尤其是对应用开发时), type infer 是非常自动的
叠加整理了下思路 一个
在没有this的语言里调用链挺好玩的,但java里都有
有趣的脚本语言:
Vlang (Go+Rust)
Esno (滤镜图)
Gravity(Kt)
分词器
def read_as_io(f):
class T(io.TextIOBase):
read=lambda o,size: f(o)
return T
-匿名对象之前写贪吃蛇 snk.c 就用到链表
不想缓冲区溢出的话Vec还是好的。C里你要实现[] 需要懂链表/strcat, rust 里你写
Vec<i32>
push 就好了Rust的生命周期现在基本不需要考虑(尤其是对应用开发时), type infer 是非常自动的
# 匹配左右括号 paren-S表达式
_c01 = {'(':')', '[':']', '{':'}'}
def eat(s,c1):
for c in s:
# 如果是左括号,就把它压入栈中
if (c1:=_c01[c]): ifErr='行号'; eat(s,c1)
elif c==c1:return # 如果是右括号,左括号便与之匹配
else: assert'','多余项而栈空' #仅支持纯括号文本, 否则要_c10,反向
assert c0=='eof','栈尚不为空'
optab={[';']:-1, "=;+ -;* /"}-运算链
exp=(s/*token o算符x单项*/, l/*evels 大则紧,深 *<+ */)=>{
let o,x=()=>add(Number(s())), ord=[],add=x=>ord.push(x),
at=O=>{let A,B; x()
for(o=s();(A=l[o])>=(B=l[O]);)if(A!=B)at(o);else{add(O);x(); O=o;o=s()} add(O)
}
at(";");return ord
}
叠加整理了下思路 一个
T(x).f(arg): T
的链,并试图兼容还未f()的Tdata Adder(list:Ln<Int>)-
- add()=list(Sum).sum
[].as( Sum(0, (A,B)=>A+B) )
["x"].as( Sum(it, (A,B)=>A+B) )
就相当于 reduce,fold的 ,不需要class封装,用于支持分组过滤在没有this的语言里调用链挺好玩的,但java里都有
new ArrayList(){{add(1,2); add(3)}}
这种用法Player.MP3("")|:
time=length*.5
title=" hello ": "## ${trim()}"
start()
有趣的脚本语言:
Vlang (Go+Rust)
Esno (滤镜图)
Gravity(Kt)
class Vector{var..}Wren(ES6+C#)
var v1 = Vector(1,2,3)
"\(v1+Vector(4,5,6))"
class Wren {coco Py(函数式)
flyTo(city) {
System.print()
f=Fiber.new { //有点像Duktape
["small", "clean", "fast"].each {|word| Fiber.yield(word) }
}
while (!f.isDone) System.print(f.call())
def int_map(Latte
f: int -> int,
xs: int[],
) -> int[] =
xs |> map$(f) |> list
class User(id: int, name: String)
object Singleton
interface Supplier
def supply
fun sum(a, b)
for i in 0 until a.size
println(a[i]+b)
val (x,y) = Bean(1,2)
o match
case People(name, age,Bean(x, _)) if age > 20 => ...
分词器
Lexer=kv=>{
let re=Object.keys(kv).map(x=>`(${x})`).join('|'), mf=Object.values(kv),m,i,j=0
re=RegExp(re, 'gy')
return (s,ontok)=>{
for(m of re[Symbol.matchAll](s)) ontok(
mf[(j=m.findIndex((x,i)=>null!=x &&i!=0))-1](m[j]), (i=m.index), i+m[0].length
)
}
}
f=Lexer({
'\\d+':parseInt,
'[a-zA-Z]+':s=>s,
'\\s+'(){}
})
rep=(txt,on, n=null)=>f(txt,x=> (x==null)?on(' '):
(x.substr)? (on(x.repeat(n)),n=null) :
(n=x)
)
buildAry=(f,a=[])=>(f(x=>a.push(x)), a)
rnSel=(e,A,B,o=new Range)=>(o.setStart(e,A),o.setEnd(e,B), o)
rnHL=(e)=>
e.oninput=()=>{CSS.highlights.clear(); f(e.textContent, (x,A,B)=>{
let on=tag=>CSS.highlights.set(tag, new Highlight(rnSel(e.firstChild,A,B)))
;(x==null)?0:
(x.substr)? on('str') :
on('num')
})
hout.textContent=buildAry(rep.bind(0, e.textContent)).join('')
}
document.write(`
<style>::highlight(num) {
background-color: #f06;
color: white;
}
::highlight(str) {color:red}
</style>
<div contentEditable id=hl></div>
<mark id=hout>
`)
rnHL(hl)
Telegram
duangsuse::Echo
#algorithm #FP 版的 list 累加法杨辉三角
ps. 也可以用DP和代数式推算
P2:垃圾 itertools
#py #code
from itertools import accumulate,islice,chain
fib=iself(2,lambda x0,x1: chain([1,1], (x+y for x,y in zip(x0,x1)) ))
def 杨辉(): #pascal_triangle
row = [1]
while True:
yield…
ps. 也可以用DP和代数式推算
P2:垃圾 itertools
#py #code
from itertools import accumulate,islice,chain
fib=iself(2,lambda x0,x1: chain([1,1], (x+y for x,y in zip(x0,x1)) ))
def 杨辉(): #pascal_triangle
row = [1]
while True:
yield…
#py #js #signal 链接分享
https://ohshitgit.com/zh
https://krazydad.com/tutorials/makecolors.php
https://developer.android.com/kotlin/coroutines/coroutines-adv?hl=zh-cn
Datalog 流控分析
React useForm 开发共享"笔记"
支持 subinterpreter(node: VM), 用来优化多进程
规范化TVar:
PostgresJs: PostgreSQL client for Node.js and Deno
https://ohshitgit.com/zh
https://krazydad.com/tutorials/makecolors.php
https://developer.android.com/kotlin/coroutines/coroutines-adv?hl=zh-cn
Datalog 流控分析
React useForm 开发共享"笔记"
支持 subinterpreter(node: VM), 用来优化多进程
规范化TVar:
type Seq[T]=list[T]|set[T]增加win32,sqlite,aio fswatch 的功能
def map[T](:Seq[T])
**kw:Unpack[T]
PostgresJs: PostgreSQL client for Node.js and Deno
Telegram
Newlearnerの自留地
#Python潮流周刊 #Newsletter
Python 潮流周刊#22:Python 3.12.0 发布了!!
文章&教程
1、Python 3.12.0 版本发布了
2、Python 3.12 速览:子解释器
3、聊聊 Python 3.12 中 perf 的原生支持
4、Python 3.12 速览:静态类型的改进
5、FastAPI 中的依赖注入:构建可维护的高性能 Web 应用
6、深入理解 python 虚拟机:原来虚拟机是这么实现闭包的
7、探索 Pexpect 库:深入理解 expect_list…
Python 潮流周刊#22:Python 3.12.0 发布了!!
文章&教程
1、Python 3.12.0 版本发布了
2、Python 3.12 速览:子解释器
3、聊聊 Python 3.12 中 perf 的原生支持
4、Python 3.12 速览:静态类型的改进
5、FastAPI 中的依赖注入:构建可维护的高性能 Web 应用
6、深入理解 python 虚拟机:原来虚拟机是这么实现闭包的
7、探索 Pexpect 库:深入理解 expect_list…