duangsuse::Echo
412 subscribers
3.85K photos
105 videos
574 files
5.14K links
duangsuse技术相干订阅
这是 @duangsuse 与技术有关的发布频道
duangsuse 的另外有 throws 闲杂频道
@dsuset
转载频道 @dsusep
duangsuse 有coding,github,gitlab帐号和bilibili帐号

极小可能会有批评zf的消息 如有不适可以退出

suse的小站:https://piped.stream
ps 另有别名 popf.rip
ʕ•̀ω•́ʔ✧ 🐶🍎🏠生死🐜
(>ω<)岂因祸福避趋之 一鿕
Download Telegram
#py 周刊

#learn visualize 交互式py学习
conda install -c conda-forge lpython 在使用dict时比 numba.njit 编译快一倍 . cython3 最近更新就不提了
numpy-pandas, cupy-cuDF
pip install jupyter-ai 可以用 %%ai chatgpt -f math,html,. 免费访问AI,避免复制粘贴了
match case: 已经可替代 elif

from rich import inspect: py版的 devtools
textual.binding UI: 手动实现命令行 ChatGPT
命令行 MSPaint

#web #ml 支持向量列的数据库
asyncio 用线程池优化文件读取
Mpire: A Python package for easier and faster multiprocessing https://github.com/sybrenjansen/mpire
#rust py异步流读取 JSON

py的元编程FFI:
jupyterSQL 教程
java from jpype import startJVM, shutdownJVM, java
startJVM(convertStrings=False)
java.lang.System.out.println("hello world")
java.util.Random().nextInt(10)

js import pythonmonkey as js; js.eval("console.log")('hello, world')

#ce CPython如何编译源代码
duangsuse::Echo
#py 周刊 #ts Mypy: 1.5 Mypy 是 Python 的静态类型检查工具,1.5 版本主要功能有: @overrride 、更灵活的 TypedDict(字面创建的 dataclass) 创建和更新、可显示错误代码的文档、改进了泛型函数的类型推断、__slots__ 的优化、步进 Python 3.12 #ai 整理和预处理pdf文件,让GPT访问 from bot import Retriever, llm_reply #backend 用 numpy, 线程池 优化数学区间求和函数…
#cpp #bilibili std::lists 谈恋爱, BV1ak4y137vf 音源

#github #ai bot Sweep: 用提issue的方式让AI生成项目文件、添加功能

#web #security Dashy 的作者开源 🕵️ Web Check:网站信息收集器 官网

#life Little Big World, 壮观的无人机延时摄影、移轴摄影(边缘模糊)「小人国大世界」的视频网站
将地球上最美丽、最有趣的地方变成了可爱的微型模型,里面有大量的国外不同城市的这种微型模型视频,很适合欣赏。

#tool Mac: “ • 三等奖(8 名):赤友数据恢复 Mac 一年版 / 赤友右键超人 一年版 / 熊猫吃短信 2 一年版 / 优效日历 一年版 / Air Explorer Pro 一年版 / Manico 专业版

#apple 作品🏆 SixD (SwiftUI & Interaction Design)的作者开发这款App来源于他自己的一个愿景:「创造一个设计师与开发者之间的桥梁」。

1️⃣ 通过交互式指南学习 UI 设计基础:
你能扮演一个 UI 设计师,帮助开发者 Nina 来完善论坛 App。这样,也能学习到很多 UI 相关的知识,如改变背景颜色、强调颜色,如何对齐元素,改变图标,改变字体设置、层级、间距,圆角、边距。

2️⃣ 在 SwiftUI Lab 中学习每个元素(例如颜色、字体、组建布局、导航、选择器等内容)的使用和 SwiftUI 代码
除此之外,App 还支持学习 Apple 的一些偏门 API 们的使用,例如 AR Quick Look,MapKit,PencilKit 等内容。
duangsuse::Echo
#dev 🤔 我正在考虑以后做 #js 技术讨论的话锋是激进,还是收敛 A. 作为一个技术人,我不维持朋友而只有“同道” ,我不想因为会“使人不悦”而故意不做批评, 我讨厌势利胜过事技术的人,无论是金钱名望还是自负而“得利” B. 但是大家都是做实事的(不管在软件供应链的哪端),不应该以自认为的好坏去 judge 别人的框架和技术栈、选型;大家成长的环境不同,AI时代就不该有信息差的优越感,用鼓励替代批评 我最近在设计单/多页/动画 的JS框架"EQ",基本把所需的元编程技术验证了,是和 JSX 届的…
#js #web 看到一些有趣的框架“合定本”
为什么感觉svelte其实才是vue3?

//Svelte 旧&新
let {n} = this.get();
this.set({
n: n + 1
});
let n=0; n+=1

//React 组件&组合
let {n}=this.state
this.setState({n:n+1}) //注意, 只 n+=1 也要把上行一块写,因此“改进”发生了..

const [n, setN] = useState(props.n)
setN(n+1) //🤮

//Vue3
let {n}=defineProps(props)
n++

//EQ 无&有组件
let app={n:0}, {n}=app.it
is.ST({n}, localStorage)
//n.onvar=say
n.v++ , app.n++

ee.main=({n=0})=>(
is.ST({n}, env.url),
button(
wOp({tap() { app.n+=1 } }), n
)
)


EQ的无组件示范比 Vue3 难看的多(禁止局部变量级的“响应性”,只允许变量间关系)
但接入新组件时,EQ的低样板和一致性都比 Svelte 好,而且兼容OOP方法

考虑到 Vue3 和 Svelte 对'onvar事件'的支持都是“黑魔法”,而 EQ 可以勉强自解释 app.it.n 的响应性,它在和ES6的协作上是十分优秀的; 希望尽早定稿
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 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

cron = BackgroundScheduler(jobstores=sqlite)
.add_job(print, 'interval', seconds=5)
.start()

并行 multiprocessing: #2
with mpire.WorkerPool(n_jobs=5) as pool:
results = pool.map(getFiles, range(10), progress_bar=True)


- 修改语法ASDL,实现 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 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')
— 仅供学习,import 语句本可以是局部。 (GPT怎么变蠢了
#ts
#1为什么静态类型的C,Go,C++ 不是弱检查 就是太复杂

代码练习: 不需要 type WTF<> = 就可以检查 htmlTag, funcPipe, nthArg, printf("\d") 等调用的类型

int[10] 的实质、 #Kt 类型推导的原理
duangsuse::Echo
#sql #ts Prolog 牛逼! 正确的关系式搜索+ 同时实现 parse 和 toStr 😱 #zhihu 灵感来源 e(E) -->{E = [I,Ea,Eb]}, %重写规则, 'eX'为优先级 %利用 链|e1(E) 括住内"*/" e1(Ea), op(I,"+-"), e(Eb); e1(E). e1(E) -->{E = [I,Ea,Eb]}, e2(Ea), op(I," */"), e1(Eb); e2(E). e2(X) --> number(X); ("(",…
添加个上文:组件 比如是
ee.Count=({n=0}, inc=x=>x+1)=>
div( p(n),
button(wOp({tap:n(inc)}), n,"+1"))


😑感觉有点不真实…… 解析器 parser 的技术跑到网页数据绑定上了

之前我想要这种“真正的双向绑定”,但是一直没想好列表和分支节点的API ,各种特判魔法

没想到,最后是以递归下降法,简化前端编程、提升节点复用
🤪有点扯。但看起来挺自然且简洁
仔细想想,HTML自定义节点,不就是语法的“非终结符”吗…… 被append remove啥的骗了那么久

没想到和被IDE更新的代码编辑模型是同一种,因为 #PLT 不重视单次解析后的“更改” ,把这两大类问题都搞复杂了
#statement #web
有点哭笑不得,我就是讨厌PLT才玩前端, 结果找到的最优解,仍然是关于变量关系、递归下降,而且还是顺“响应式”Vue它们的潮流

编程界发展了一圈 回到可变量和递归解构...

感情是FP和Prolog的前辈太死板,才留了UI,UX给前端界造魔法.. 但是,我希望,到今年为止了。
给大脑腾出点空间,别把精力浪费在尖括号和隐形的“优化”上
duangsuse::Echo
复制别人的技巧并不难。但没有魔法,就是最终极的魔法呀。 前端界只关心HTML 的人太多了,我的框架可不会只在UI上有用。 前端界被XML也框得太深了,而且明知道React难看还去抄hooks 真的聪明到 一点都不懂设计 React hydrate 无非就是对节点的那一侧做Memo,但包含“协调”在内,它引入了太多步骤,而 Svelte 又太魔法;它们也不过是对DOM和[{}] 做着“合一”,只是它们对JS侧太轻视了,很多技巧放JS里是独立的术语也不会有的。 他们一开始就没想好DOM模板各种用途下的本…
一些有意思的 #web 跑分
当然,这些只是用来反思对“黑科技”的过度迷信,因为JS根本不属于瓶颈—哪怕慢100倍都是 <1ms

[].join 对正常的示例都比+=更快,偏偏许多JSer把str``情况拿来跑分
Object.create(原型=null) 比{} 还慢, Set Map 更慢
const,let 一样 ,箭头和function一样, Object.freeze() 慢百倍-但只seal() 时就一样。不要低估编译器
V8 甚至为此修复了 React number preventExtensions 时的性能断层
Proxy 比 defineProperty 慢十倍

createDocumentFragment() 更慢 - “减少 repaint” 正是VDOM的一个“特性”
node.remove() 等于[hidden]。仍然可以重新append
Firefox 不能实现跨页 transfer(Blob )

强类型 CSS.px 更慢 ,似乎内核更接受字符串样式
content="width=device-width" 或者说 touch-action: manipulation来历
Scroll listener 比 IntersectionObserver 慢一倍
duangsuse::Echo
#py 周刊 #recommend #tool 带有 "Android 子系统", taskmgr,... 的网页版Win12 demo 🎨 #algorithm Hello Algo 多语言实例 #tool EasySpider +可视化编程 #android 高级包管理器 js: await using fp = openFile() Flask 深入探索: 请求上文、会话、CORS fastapi-users:开箱即用的 FastAPI 用户管理库 Django 发送带有验证链接的电子邮件…
#web 前端真的是需要新血液了…… 连个绝对定位和drag,resize 都那么稀罕
https://zhuanlan.zhihu.com/p/654984542


htmx 也是魔怔了,React(SSR组件)确实烂,但把烂代码放在node侧,那也是一样的,而是是反直觉的。 Vue都算最良心的了

htmx 在Django, Streamlit 之类爆火可能取决于前后端谁主场的问题, 反正我会站JS,py和直连DOM比谁更成熟不用说的

Van 支持 hydrate 了,好吧…… 好像只+1行代码 ,看起来就是纯replace
init: Number(dom.getAttribute("data-counter")),


再看到 interface Props {const{} = van.tags 我有点失望,不过 link({rel: "icon", href: "logo.svg"})
确实比 link(wKV({})) 好看,也更一致…… 很多接口要定型了。😐

本来我想去建议Tao加个 state(0)(x=>x+1) 的用法,因为只有非JSX非模板的框架,能用好这种写法
后来觉得算了,只支持“选中”也怪割裂的,何况它的列表模板还在用map 甚至不支持真正的hydrate,可以遇见到它以后也很难支持:低抽象度这时是缺点。Van和Eqv差得太多了