duangsuse::Echo
最近读到一些文章认为Wayland的集成度太低了
Dedoimedo
Long live Xorg, I mean Xlibre!
Article introducing Xlibre xserver, a fork of the Xorg project created due to severe functional problems with the Wayland display protocol, including reasoning behind the fork, numerous unresolved issues and missing use cases in Wayland, forced adoption of…
Wayland相对于X11有什么技术架构上的优势?
--
https://www.dedoimedo.com/computers/xlibre.html 认为X11没有造成实质性问题且性能更好
Peek,是一款用户体验堪称巅峰的GIF录屏应用。它超级直观,只有一个透明窗体和按钮。如果不使用快捷键来启动录屏,大概没有录屏集成能做到这样零摩擦。它的后端就是 ffmpeg grab 但窗口化选区的可拖动设计可称绝唱
因为wl的“用户不需要”杀死了Peek
wl的架构用一个UMat+面向事件和最小权限就能说清,但它的考量呢? 截图录屏远控(性能),甚至剪贴板DnD输入法,这些都是显然预见的到,兼容性会出问题的。直接撕裂成GTK/QML/wlr三派,又不让用root桌面。
--
值得注意的是,全局热键、全局菜单栏、屏幕色温和skipTaskbar也是和剪贴板、sysTray、MIME打开或发送同级的桌面协议问题
如果KiCAD和Krita这些“原生”应用都认为Wayland授权弹框的缺位让旧功能的兼容(例如简单的记住窗口位置)都不可能,是否说明wl必须把XWayland作为ABI保障来维护?
--
#ai探讨 #bash 上文,感觉这些人还挺严肃的讨厌wl
--
https://www.dedoimedo.com/computers/xlibre.html 认为X11没有造成实质性问题且性能更好
Peek,是一款用户体验堪称巅峰的GIF录屏应用。它超级直观,只有一个透明窗体和按钮。如果不使用快捷键来启动录屏,大概没有录屏集成能做到这样零摩擦。它的后端就是 ffmpeg grab 但窗口化选区的可拖动设计可称绝唱
因为wl的“用户不需要”杀死了Peek
--
套一层UNIX socket真的有很大问题吗? client会把pixmap拷贝一次?
X11和wl实现的都只是 wdiv2bmp (roots和xwyh) 与pointer事件这样的简单功能
--
没错,相对于普通div和窗口装饰器,roots 还包括IME、menu等特殊类型窗口(surface)、显卡UMat和dirtyRects/VRR/DPI等性能要求。wl基本上就是把skia/svg的职务交给GTK4/Qt6去办了,至于截图什么的就开始碎片化了
在OBS和RPA的支持上,跳过了Pipewire的Sunshine显著快于wl的远控。wlroots; wev; kdotool 很明确的展示了桌面ClientRect的特性,但它们的完成度相对于成本和代码行数并不高
wl的架构用一个UMat+面向事件和最小权限就能说清,但它的考量呢? 截图录屏远控(性能),甚至剪贴板DnD输入法,这些都是显然预见的到,兼容性会出问题的。直接撕裂成GTK/QML/wlr三派,又不让用root桌面。
--
值得注意的是,全局热键、全局菜单栏、屏幕色温和skipTaskbar也是和剪贴板、sysTray、MIME打开或发送同级的桌面协议问题
如果KiCAD和Krita这些“原生”应用都认为Wayland授权弹框的缺位让旧功能的兼容(例如简单的记住窗口位置)都不可能,是否说明wl必须把XWayland作为ABI保障来维护?
--
Linux的容器化使任何一个curl|bash都能访问.ssh和浏览器cookie,又让Telegram.AppImage/Flatpak无法默认写入Downloads文件夹(需要手动剪贴),居然有人在说【安全可靠的窗口系统】。
wl没有的协议很大程度上都在D-Bus的通用服务(如Pipewire)里实现了,但这些服务并非在GTK/QML/wlr下都可用
mpv开发者表示,对于任何跨平台运行的程序来说,wl逼我们不能“浪费”帧,但却忽略了你可以把交换间隔设为 0 然后直接把帧扔掉。
#ai探讨 #bash 上文,感觉这些人还挺严肃的讨厌wl
Forwarded from 游戏旧闻转发
你有没有留意到,近年来一大批将房屋装修作为主要玩法的模拟游戏涌入市场,并吸引了海量玩家?外媒TWIV的作者Maddie Agne在一篇文章中指出,此类游戏之所以日益流行,很大程度上是因为许多玩家在现实生活中没有足够的经济实力买房,只能通过这种方式望梅止渴,在游戏里缓解无力买房的愁苦。
https://www.chuapp.com/article/291551.html
https://www.chuapp.com/article/291551.html
Chuapp
买不起房的年轻人,在房屋装修游戏里缓解愁苦 - 触乐
当我们聊装修游戏,也许聊的是一种苦闷。
Forwarded from yihong0618 和朋友们的频道
我大概一生也成不了这样精彩的人,但是看着他们的生活,从中找到几本想看的好书,想玩的游戏,也非常开心了。
https://tangdh.life/posts/interesting/ncdu/ #dalao #dev #db 还会优化向量搜索 BPF 🤔 感觉很牛逼
#rust
#cpp https://tangdh.life/posts/c/rvo/
好家伙,最后还是批量操作文件保存提速…… 太合直觉了
#rust
#cpp https://tangdh.life/posts/c/rvo/
我们的实验结果表明,io_uring 显著提升了性能。这主要归功于 io_uring 的异步特性。fsync我们无需等待每个调用返回结果,而是可以提交 I/O 请求,并在没有其他任务需要处理时一次性全部处理。
好家伙,最后还是批量操作文件保存提速…… 太合直觉了
Don't Panic
为什么ncdu这么快?
上周被同事发现我就是导致组里磁盘满的罪魁祸首后,由此引发的一系列有趣调试历程
#game #dalao https://wszqkzqk.github.io/2026/02/20/PvZ-Portable-Zombotany-Image-Fix/
笔者在大一时曾经尝试写过 Python 版植物大战僵尸。那时候笔者还在起步阶段,用 Python 和 Pygame 做了一个简单的练习,主要目的是学习 Python 和面向对象编程。那个项目虽然能玩,但在还原度上和功能完成度上存在不少局限。
时隔几年,随着技术栈的深入,在开源社区前人大量代码1 2的基础上,笔者带来了一个强大得多的新项目 —— PvZ-Portable。
几乎 100% 复刻原版所有特性 支持 Linux, Windows, macOS, Android, iOS/iPadOS, WebAssembly, Switch… 基于 OpenGL & SDL
且可移植存档相互兼容,支持 MO3 音乐格式。支持各种语言的官方年度版资源包
访问 浏览器免安装体验页面,导入你的 main.pak 和 properties/ 目录,点击 Start Game 即可开始。存档自动保存在浏览器的 IndexedDB 中
笔者在大一时曾经尝试写过 Python 版植物大战僵尸。那时候笔者还在起步阶段,用 Python 和 Pygame 做了一个简单的练习,主要目的是学习 Python 和面向对象编程。那个项目虽然能玩,但在还原度上和功能完成度上存在不少局限。
时隔几年,随着技术栈的深入,在开源社区前人大量代码1 2的基础上,笔者带来了一个强大得多的新项目 —— PvZ-Portable。
几乎 100% 复刻原版所有特性 支持 Linux, Windows, macOS, Android, iOS/iPadOS, WebAssembly, Switch… 基于 OpenGL & SDL
且可移植存档相互兼容,支持 MO3 音乐格式。支持各种语言的官方年度版资源包
wszqkzqk.github.io
PvZ-Portable:修复僵尸植物存档恢复后的贴图错误 - 星外之神的博客 | wszqkzqk Blog
天下难事,必作于易;天下大事,必作于细
#tg 最近支持:右键一键转发!
原本功能:
https://github.com/telegramdesktop/tdesktop/blob/8e18cb71103d83d7d98994ff27f0a2bca55c489c/Telegram/SourceFiles/history/view/history_view_context_menu.cpp#L1123
https://github.com/telegramdesktop/tdesktop/blob/dev/Telegram/SourceFiles/history/view/history_view_message.cpp#L5769
https://github.com/telegramdesktop/tdesktop/blob/dev/Telegram/SourceFiles/history/view/history_view_message.cpp#L5896
是真没想到这玩意还要加几百行,和快速reaction有冲突 ❤️
原本功能:
HistoryView::ContextMenu::fillElementMenu()https://github.com/telegramdesktop/tdesktop/blob/8e18cb71103d83d7d98994ff27f0a2bca55c489c/Telegram/SourceFiles/history/view/history_view_context_menu.cpp#L1123
HistoryView::Message::drawRightAction()https://github.com/telegramdesktop/tdesktop/blob/dev/Telegram/SourceFiles/history/view/history_view_message.cpp#L5769
https://github.com/telegramdesktop/tdesktop/blob/dev/Telegram/SourceFiles/history/view/history_view_message.cpp#L5896
是真没想到这玩意还要加几百行,和快速reaction有冲突 ❤️
吐槽:高性能, 这个所谓的自动layout追加不就是Tk pack()、平铺式布局管理,加几条用户权限的if线么,一个小角标写几百行cpp
嫌运行时ui树慢可以做comptime编程啊,弄的widget()都返回bool或QRect,我都不敢想设计有多困难
“用巨大的开发维护成本”,在我看来就是反直觉,没有工程策略。树框架依然是要的,你不喜欢可以写个协议把QRect缓存下来,而不是像cpp不用iostream而sizeof+init 写两遍一样。
我会那样写吗?我直接在js用Proxy bind到数组union的offset。
他要是稍微有点设计感,就直接把CSS伪状态重新发明出来了。 右键菜单分过Type后能有几个case,不就是owner、group、新老消息什么的,到处accessor item->allowsForward() 和fn() { if 开头 } 算什么呢,还不如QWidget树
面向什么就面向什么,一开始就知道有十几种菜单,可穷举的就在.md里就想好,然后把datatype打包好
GitHub
tdesktop/Telegram/SourceFiles/history/view/history_view_context_menu.cpp at 8e18cb71103d83d7d98994ff27f0a2bca55c489c · telegra…
Telegram Desktop messaging app. Contribute to telegramdesktop/tdesktop development by creating an account on GitHub.
duangsuse::Echo
问了下,微信最常用的功能是“全局搜索”(sql FTS5),这就要B+树了
SSTable单独做索引的方案不能直接用ext4做下层,而且担心手机断电没日志(这不是SQL元数据自己的锅吗……)
SSTable单独做索引的方案不能直接用ext4做下层,而且担心手机断电没日志(这不是SQL元数据自己的锅吗……)
https://blog.est.im/2026/stdout-26 #tencent #dev
有人测试出来 Polar+AES 在性能和体积上都非常平衡,而且支持单行实现grep
FTS5建立索引是最快的,但是体积翻了3倍
有人测试出来 Polar+AES 在性能和体积上都非常平衡,而且支持单行实现grep
FTS5建立索引是最快的,但是体积翻了3倍
vx的聊天功能,还是 时间戳排序+串读串写(离线或多人),列数据库确实适合 append-only ,只是那个时代RDBMS非常通用了
为了一个grep速查索引放弃整个文件树模型…… 这大概是文件系统本身的问题了,想起了Everything。 大概没人真的因为【调试方便】 而用fs管理消息,电邮都不
est.im 还做了很有意思的思辨: #science 都被谁包养了
https://blog.est.im/2026/stderr-25
达尔文是真有钱啊
- 居里夫人:美国妇女发起"镭募捐运动"送她一克镭,靠国际名气才翻身
- 玻尔研究所靠卖啤酒的钱养量子力学,是个有趣的冷知识
- 在CERN万维网是"副业",欧洲多国联合资助的大型实验室养活了他
btw. est #dalao https://blog.est.im/2026/stdout-09 这个eval且防注入的也太逆天了
https://blog.est.im/2024/stdout-19 电音
php是最好的……serverless?
如何删除 C:\Windows\WinSxS 文件 PsExec!
Windows 任务管理器(taskmgr.exe) 作者讲趣闻 |避免直接链接到除了
正在加速崩塌的是「中文」,不是互联网 |曾经红火过的中文网站,如网易、搜狐、校园BBS、西祠胡同、凯迪猫眼、天涯论坛、校内网(人人网)、新浪博客、百度贴吧、以及大量的个人网站等,在一定年份之前的信息都已经完全消失不见了
他还有个《the Matrix里无🧑🦽轮椅》定理, 说明缸中之脑的伪造(人造)和荒谬性。
https://blog.est.im/2026/stderr-25
达尔文是真有钱啊
- 居里夫人:美国妇女发起"镭募捐运动"送她一克镭,靠国际名气才翻身
- 玻尔研究所靠卖啤酒的钱养量子力学,是个有趣的冷知识
- 在CERN万维网是"副业",欧洲多国联合资助的大型实验室养活了他
但最有趣的不是这些故事本身。而是你会发现这些案例都不太像随机搜索。反而像已有知识在跨领域类比,统一两个看似无关的东西。
牛顿:苹果=月亮;麦克斯韦:光=电磁现象;爱因斯坦:重力=加速度。这是一种很特殊的创造力。事实上很多认知科学家会认为:真正的人类创造力未必来自随机variation。而是来自类比推理(Analogical Reasoning) 或者 概念压缩(Conceptual Compression)
麦克斯韦也是。原来:电 磁 光 三门课。后来:电磁场一门课。
更极端的是 Alan Turing。图灵其实没有发明计算机。他干的事更离谱。别人研究:加法机、乘法机、密码机、各种机器。图灵问:有没有一种机器,可以模拟所有机器?然后就出现图灵机。
人类最顶级的创新可能分两类。 第一类就是你熟悉的: 组合创新 或者说工程创新。第二类则是: 压缩创新 或者说理论创新。 突然发现: A = B
btw. est #dalao https://blog.est.im/2026/stdout-09 这个eval且防注入的也太逆天了
https://blog.est.im/2024/stdout-19 电音
php是最好的……serverless?
如何删除 C:\Windows\WinSxS 文件 PsExec!
Windows 任务管理器(taskmgr.exe) 作者讲趣闻 |避免直接链接到除了
user32和gdi32之外的任何东西正在加速崩塌的是「中文」,不是互联网 |曾经红火过的中文网站,如网易、搜狐、校园BBS、西祠胡同、凯迪猫眼、天涯论坛、校内网(人人网)、新浪博客、百度贴吧、以及大量的个人网站等,在一定年份之前的信息都已经完全消失不见了
|你在特别渴的时候喝水,是不是感觉两口水下肚,立马就解渴?水需要20分钟,才能进入你的血液,它根本不可能在几秒内解渴
他还有个《the Matrix里无🧑🦽轮椅》定理, 说明缸中之脑的伪造(人造)和荒谬性。
duangsuse::Echo
est.im 还做了很有意思的思辨: #science 都被谁包养了 https://blog.est.im/2026/stderr-25 达尔文是真有钱啊 - 居里夫人:美国妇女发起"镭募捐运动"送她一克镭,靠国际名气才翻身 - 玻尔研究所靠卖啤酒的钱养量子力学,是个有趣的冷知识 - 在CERN万维网是"副业",欧洲多国联合资助的大型实验室养活了他 但最有趣的不是这些故事本身。而是你会发现这些案例都不太像随机搜索。反而像已有知识在跨领域类比,统一两个看似无关的东西。 牛顿:苹果=月亮;麦克斯韦:光…
谈科研,
包括DNN(AI)革命也是这样:历史上的"跑题率"高到惊人,某些行为可以直接从反网络、抗议游戏,一年跳到反AI算力、反智的。因为,科学突破几乎全是"顺手做的"、钻空子的
"完全对口"的案例列表中只有2位,不是资方勇敢勇敢提前押中的。 纯粹盈利的资方局限性也不小
图穷匕见:资方为了装逼去包养才是科学研究第一必要条件。🤣 🤣 🤣 🤣 🤣
有品味和敢做副业的决心,才有可能搞出来大新闻;贫穷限制了我们的智商!
要么你能混成网红,要么你需要遇到一个贵人,才能当科学家
🤣
ps. 是不是感觉两口水下肚,立马就解渴?水需要20分钟,才能进入你的血液
包括DNN(AI)革命也是这样:历史上的"跑题率"高到惊人,某些行为可以直接从反网络、抗议游戏,一年跳到反AI算力、反智的。因为,科学突破几乎全是"顺手做的"、钻空子的
"完全对口"的案例列表中只有2位,不是资方勇敢勇敢提前押中的。 纯粹盈利的资方局限性也不小
图穷匕见:资方为了装逼去包养才是科学研究第一必要条件。🤣 🤣 🤣 🤣 🤣
有品味和敢做副业的决心,才有可能搞出来大新闻;贫穷限制了我们的智商!
要么你能混成网红,要么你需要遇到一个贵人,才能当科学家
🤣
ps. 是不是感觉两口水下肚,立马就解渴?水需要20分钟,才能进入你的血液
- 我明白了,就像ptsd了
- 听起来非常奇怪,就好像物理化学不真实一样,但其实是符合神经工作原理的。但这也太智能了,听起来就像患者能主观区分吃下了什么
本来是一种非常独特的回忆机制,但又和预测性相关,可能像回光返照的原理
Forwarded from HAT's Public Channel |
xswl, 这辈子第一次见这么流氓的软件
Open Design 的遥测模块默认向他们发送你所有的输入 prompt 和 AI 输出、你本地 codebase 里所有的代码文件
简单看了下他们官网,又是经典的 English+简中 i18n 搭配,挖了一下果然是国内公司,🤣 有时候刻板印象确实是很有用的
Open Design 的遥测模块默认向他们发送你所有的输入 prompt 和 AI 输出、你本地 codebase 里所有的代码文件
简单看了下他们官网,又是经典的 English+简中 i18n 搭配,挖了一下果然是国内公司,🤣 有时候刻板印象确实是很有用的
duangsuse::Echo
#post #bin #os lib.so是库对象?是C模块? 谈谈纯函数、全局表容器、Worker线程模型 随着React的火热,大家应该都听说过「纯」函数式编程(#FP) 这个规范了。纯意味着不更改变量和外部状态(例如stdIO),但它和 .c 的ABI(.o 和最终输出的 .so) 有啥关系呢?😅 在点出关联之前,我要发表一段很典的评论: 90%的PFer不懂FP。 考虑一个 node &>/dev/null any.js 的环境,简单的 "log IO" 真的是“不纯的代码”吗? 请注意,stdout没法回环到原进程。…
#post #ce #haskell(IO) #os #js CPS是什么(异步和函数式编程 都可以看)
#ai锐评
🌶 https://chat.librechat.ai/share/hjL775AHhAji7HM8K0lFt
🧁 https://chat.librechat.ai/share/SmoUvMiuxY_hfmIcUEK95
CPS 不是 Clicks Per Second, 而是 Continuation-pass style,后者可用于优化前者。 😉
CPS的理由:CPS产生【回调链表】作为线程栈 📜,可以让单线应用像操作系统那样工作 ⚙️,但不能处理音画同步和多线下载(绿块块下载/暂停/断点续传等),这依然需要
CPS:把所有
CPS变换:如果
否则,需要处理
TCO:在递归时
Promise与Continuation:
将 ()=> 给 async 化变为对象后,它的 return 值就放在了
(这是一个GC引用问题,未完成而被await时,proc在sleep时,内存占用不会消失。c10k问题) 👀
(c10k和y2k一样是个傻逼问题 accept()明明依赖io_token,非要依赖pid,产生4K栈和CPU无效轮换的问题)
通过实现
有人 alias then值='酷酷的lambda' 或 'pthread线程',其实它更像 fn.bind(框架已知参数).bind(你的已知).call(运行时参数) 🤔。
这篇文章有点《图文不符》的意思了,其实还是有内容的,只不过AI味特别浓。
#ai锐评
🌶 https://chat.librechat.ai/share/hjL775AHhAji7HM8K0lFt
🧁 https://chat.librechat.ai/share/SmoUvMiuxY_hfmIcUEK95
故意生成的 emoji 🤗 AI味,看看逆不逆天?原文是手写的
CPS 不是 Clicks Per Second, 而是 Continuation-pass style,后者可用于优化前者。 😉
CPS的理由:CPS产生【回调链表】作为线程栈 📜,可以让单线应用像操作系统那样工作 ⚙️,但不能处理音画同步和多线下载(绿块块下载/暂停/断点续传等),这依然需要
Coroutine 调度器(事件循环/libuv)来补位。之后就和ChromeOS一样完整可用,脱离 C-like 世界的掌控了!🚀CPS:把所有
return x 换成函数语法如 onRet(x),因为只是调用,就可以玩两两组合了 🧩,比如 if(x=onCatch(x)) onRet(x) or exit(1) 或 addEventListener('click', ()=>onRet("两个按钮你点了确认"), {once})。没错的!✅ 你甚至能在 throw 错误的行号原位恢复,OR 手动实现 yield✨/callcc-setjmp/Algebraic Effects 依赖注入模式。CPS变换:如果
return x 都被换掉的 def 只是一个计算图(只包含赋值和 ret 变量),可以直接变成 switch(op++) case 0 case 1.. 的行号调试(每个 case 将不以 break; 而以 return; 结尾,c=a+awit b 变为 _1=wait;c=a+_1) 🔢否则,需要处理
for if 以及相关的流控,如 throw 和提前 return、爆栈的 DFS 等等,也就是扁平化为 goto(op=xx),f() 一次就走一句(几行的微任务)。 🚶♂️TCO:在递归时
f=(n, r)=>(n==0)? r : f(n-1,r+1) 是个特例,可以改写为 f(n,r)=return continue(n-1,r+1) or (n==0: r) ,这样的多分支状态机 🤖,所以叫伪递归(TCO)。另有一种将 f(n)=n0? 0 : f(n-1)+1 转为的【自动累加器化】,还有使用TCO(甚至模板解释器)优化 switch(opcode[i]){} VM的标准写法 ➡️ https://t.me/dsuse/21568Promise与Continuation:
(async()=>1)().then(one=> {}) 在一个CPS对象上写个 then 回调。🤝 因为每个 {} 块都有要“返回”到的行号,和此行号周围的【🎁已知变量元组/Upvalue/闭包】,这就称之为 then 值,粗略的认为它是F12面板你按F8暂停时 ➡️ 所指示的一行 【点开可看的函数名】。 将 ()=> 给 async 化变为对象后,它的 return 值就放在了
u._ret 和 rr=u.call(_yield的返回值=null)。rr 值用于优化 await 1 这样不挂起到 libuv 或 syscall 的缓存 ⚡️。 u._ret 即使在完成后调用 .then 也可读取哦!(这是一个GC引用问题,未完成而被await时,proc在sleep时,内存占用不会消失。c10k问题) 👀
(c10k和y2k一样是个傻逼问题 accept()明明依赖io_token,非要依赖pid,产生4K栈和CPU无效轮换的问题)
通过实现
onYield(i also{i+=1}) 与对应的 forEach,正如 onRet 与另一 Worker 上对应的 then,我们可以定义一个走1024次(4KB)才返回1次的 func* 📜,而不需要和 java 那样弄 iterator(){} 和 BufferedX(),这就是 Kotlin 最近的方向(但它们对响应式 flow 的理解不如 Svelte 🤷)。有人 alias then值='酷酷的lambda' 或 'pthread线程',其实它更像 fn.bind(框架已知参数).bind(你的已知).call(运行时参数) 🤔。
这篇文章有点《图文不符》的意思了,其实还是有内容的,只不过AI味特别浓。
Telegram
duangsuse::Echo
#ce py3.14 线性解释器(C实现)的新优化😝
- Tail Call Interpreter 是py3.14优化字节码解释器(大 switch(int) {case opcodes..} )的编译期优化,因为CPy跑def里的每条指令都有利用,PGO提速15% ,而且,perf现在能看单条opcode的开销了!
- [tailcail,兄弟调用] 就是跳转地址不在自身的 [tailrec,伪递归]。因为伪递归==改参数goto开头重来,而且,这种优化非常常见(相较于 [Computed Goto]),所以被…
- Tail Call Interpreter 是py3.14优化字节码解释器(大 switch(int) {case opcodes..} )的编译期优化,因为CPy跑def里的每条指令都有利用,PGO提速15% ,而且,perf现在能看单条opcode的开销了!
- [tailcail,兄弟调用] 就是跳转地址不在自身的 [tailrec,伪递归]。因为伪递归==改参数goto开头重来,而且,这种优化非常常见(相较于 [Computed Goto]),所以被…
duangsuse::Echo
#post #ce #haskell(IO) #os #js CPS是什么(异步和函数式编程 都可以看) #ai锐评 🌶 https://chat.librechat.ai/share/hjL775AHhAji7HM8K0lFt 🧁 https://chat.librechat.ai/share/SmoUvMiuxY_hfmIcUEK95 故意生成的 emoji 🤗 AI味,看看逆不逆天?原文是手写的 CPS 不是 Clicks Per Second, 而是 Continuation-pass …
CPS 是机制,事件循环/调度器是策略。不谈JS标准和Babel的世界,就不真正理解PLT里Monad(>>=)和CPS的存在。
又有人说,不了解libuv这些通用技术在【语法层面】的存在,就只是理解了技术政治和索然无味的选型,并不真正明白。
PLT和await的语法高亮就像汽车的引擎、变速箱和传动轴 🚗。 libxxx 和实际框架就像驾驶员的大脑 🧠。
又有人说,不了解libuv这些通用技术在【语法层面】的存在,就只是理解了技术政治和索然无味的选型,并不真正明白。
PLT和await的语法高亮就像汽车的引擎、变速箱和传动轴 🚗。 libxxx 和实际框架就像驾驶员的大脑 🧠。
理论就像娟秀的字体,工程场景就像作文和自由命题。
一个人吹自己字写的很好,内容很可能是《别样的碰碰车大战》。 🤪
写字、罚抄,或者说“滚键盘”,并不是在 “写作” (Writing),也不可能替代另一个出发点的具体优化,就像LLVM并不懂numpy和ffmpeg是什么
我不喜欢“写字”。 用多少写多少。开箱即用,以租代买。