duangsuse::Echo
952 subscribers
4.89K photos
154 videos
588 files
7.26K links
import this:
美而不丑、明而不暗、短而不凡、长而不乱,扁平不宽,读而后码,行之天下,勿托地上天国。
异常勿吞,难过勿过,叹一真理。效率是很重要,盲目最是低效。
简明是可靠的先验,不是可靠的祭品。
知其变,守其恒,为天下式;穷其变,知不穷,得地上势。知变守恒却穷变知新,我认真理,我不认真。

技术相干订阅~
另外有 throws 闲杂频道 @dsuset
转载频道 @dsusep
极小可能会有批评zf的消息 如有不适可退出
suse小站(面向运气编程): a19a0b
Download Telegram
https://caniuse.com/css-snappoints #web
#dontknow #CSS Scroll Snap

可以替换 splide.com 用js模拟的拖拽轮播图,可grid化,配合 anim-timeline:scroll(#id) 可实现滚轮ppt驱动动画 🌚👍

CSS 相比 YAML 把 03:01 解析为24小时制秒数😅就好得多https://ruudvanasseldonk.com/2023/01/11/the-yaml-document-from-hell

另外,DOM的resize和visible(Intersect) 也是有Observer 的
DOM和CSS就是多元化 #UI 实际上的标准
duangsuse::Echo
修订文章的过程中,发现了一个有趣的事情 因为我有刻意去斟酌文字,希望尽可能让标点符号用的更符合直觉。 对 drakeet 的一些话(内联) 有一段话: “黑历史”是曾经不完美的见证,但它对自己而言也不是没有用处的,因为一个优秀的人时常要复习一下自己的黑历史、记住自己曾经的误解、不确定,来为自己的未来提供一个完整的排除名单。错误不再重复第二遍。 我给它的第一段修改成了 “黑历史”是曾经不完美的见证,但它对自己而言也不是没有用处的。 我做了一件事情: + “独立”了一个句子,把『因为』连词去掉 +…
http://jsbin.com/rubukabida #css 🌚突然心血来潮 复刻drakeet的知识星球之一
(没事玩玩 我也不记得他了。几年过去啦,也祝各位 #android 开发者越过越好 )
当然,web上是有1行完成的方法,但排版对齐不方便。我花6行
#code 我编程是自带框架的🌝,我不把可复用部分计入行数。总js有30行

大体10min 就写完了,移植paint花了半小时,兼容CSS花了4小时.. 确实, houdini.how 问题还不少.. 比如fill不能是线性渐变😅
TypedOM 支持上的问题让我对Chromium 的粉丝滤镜碎了一地.. 也可以说Firefox直接支持bg元素更好吧。 css4联动js上 常绿浏览器的支持都很烂
duangsuse::Echo
http://jsbin.com/rubukabida #css 🌚突然心血来潮 复刻drakeet的知识星球之一 (没事玩玩 我也不记得他了。几年过去啦,也祝各位 #android 开发者越过越好 ) 当然,web上是有1行完成的方法,但排版对齐不方便。我花6行 #code 我编程是自带框架的🌝,我不把可复用部分计入行数。总js有30行 大体10min 就写完了,移植paint花了半小时,兼容CSS花了4小时.. 确实, houdini.how 问题还不少.. 比如fill不能是线性渐变😅 TypedOM…
#web 此页思路:
0. Paint(f参数px和颜色集var), dragPin(ul, f_e_e0) 垫片
1. 用hsl(rand()turn 50% 70%) 🌈填色
2. tap 填N颜色,tap2s 给ul重排序乱序
3. rbRoll彩虹🌈卷 是靠N个梯形向下叠底 --lAng 底边更长 来倾斜。 #css 线性渐变就足够实现这个
4. drag f(e,e0) 会被保存,排完序自动重做用户排序😂: Bad在Good前,.

没错,[]上无需算法,全靠DOM。这逻辑2行实现,很普通的调用重做。靠 #py 都不会这么容易.. 学元编程很值
不然连1次 “f(a,b)” 如何记忆调用到[] 都不知道惹,有母语(JS)优势利于设计


另外,动苏对曾经伤害的人道歉。 就当是政治正确?🙏

把更多时间拿来思考、实现,而非写代码与争论
既然 #ai 把码字的工作抢了(是的..就训练集的质量来看 较冷门的lib 更大的项目 只要肯交流 也迟早能被半自动编程,人的工作本就是打磨设计啊🤪)
就好好享受生活(摸鱼)呗

我是喜闻乐见的🌝👍,中国存在着一些“你看不懂我NB”的特色现象,但读不懂也可能是读者sb,但由最擅长文字把戏的AI来教, 文章是否立论明确,以及低创文章的过滤 就不会碍眼了,从长远看 利于中文互联网
#web #css #bing 感觉还不如 #algor ( 怎么全都是教npm 😂
#js #cg Scratch式demo canvas 绘制
顺便推荐开源函数图 + #css houdini.how (.. 入门2D绘制时实现过,当时啥SVG和GL都不懂

许多demo我做过.. 包括 Bezier曲线 我有1行实现版, Koch雪花, 弦图, Mandelbrot(隐函数,=距离函数)
(还有个2023版的 Bezier算法

sin,cos 可视化, 果冻状的扫把树, 太阳系Ring动画 也做过 🥳

— #statement
顺手翻了以前做事情的态度, 感觉曾经很热血,喜欢背书单(完全不像我),代码量很足。其实一直有热情是好事。
想起做过 C lib.so hook, asteroids,snake 这些街机游戏 , 觉得忘记的东西有点多

按曾经我的编程眼光,即便是在AIGC的革命下,也会觉得 Java 系的样板代码非常优美规范
像 @Path("/posts") fun getPostsForUser(@Param("user") user: User ) 这种把函数名删掉都不影响语义的框架..😆

现在的Web后端=给SQL语句注册HTTP路径和JSON验证 ,ORM=对跨语言RPC的窄化,已经失去创造力了……

但今天我是API的封装者、定义者,而不太做应用;大概这就是我加入编程的理由。我和独立开发者都不是为了“复现”而编程、不为了“理解”而写文,所以不像PL人,我乐意打发AI完成甚至所有的编写,毕竟我们追求的是高于代码的进步、和可持续创作的环境,而非持续把半条命摔在门槛上
“任何人都可以成为程序员” —黄仁勋

我敲代码,不是为了有“钱途”或拿到“特异技能点”,不是为了不“被替代”,仅仅是朝夕相伴。我甚至不觉得自己是程序员,但我很讨厌给工作造成麻烦的、计算机特有的无趣的概念

真希望有了更好的语言后,让这些几何与算法变成20行左右的片段,这样无论如何也不会忘记,甚至能像上面一样做成 Demo Gallery。唉
https://github.com/cunarist/rinf
https://www.visioncortex.org/vtracer/
由螃蟹驱动的位图描边转矢量工具 #tool svg

https://www.lummi.ai/
https://github.com/adobe-webplatform/shaderdsl

有趣
有趣
http://topcoat.io
搞点传统的 #css
https://github.com/Web-Media-Foundation/infrastructure/blob/master/packages/ogg-polyfill/src/OggVorbisPage.ts #js #bin

隔壁实现完了 Vorbis 的解码前端(只带解编码元信息,不带解成 PCM 的部分),八百多行

https://t.me/im_RORIRI/17034
#statement
其实也不难,只要你知道你程序依赖的领域、最小的功能是啥,解决问题必须先确定范围;知道自己在干什么、与旧案有何区别、又为何不同,才配叫工程。

比如二进制吧,像bmp那样用一个struct就能parse的东西很少,因为C拿指针掩盖了带长数组、也无常量池等规范,但继续用 u/int32_t 那样的概念也没意义,不如叫 +-1 2 4 8 吧。甚至C bitfield也应该拿bitflags换了。
凡是用不到的专业概念,比如bitsize,全部抛弃掉,这样才有机会
避开前人留的坑

除了 read(bView, ['*', [4 4,'Num2 x y']]) 这样的带长数组,struct的json化也可以基于Proxy,以实现0copy序列化、push、sort啥的

总之就是确定最小问题是什么,然后组合、复用、降低复杂度来换算法的高效能
#parser #css concrete syntax tree。CST 与 AST 相比,它将完整包含源代码中所有的 token 与 trivia 信息。以上面的代码为例,CST 会包含 { } 等 token 信息,甚至是注释、空白都会有。这对于实现 formatter 来说无疑是极为方便的。
https://blog.gplane.win/posts/raffia-and-malva.html
dnaugsuz
https://t.me/hyi0618/3476?comment=1182 突然想吐槽一句🌝 我要是尊重业界这群自以为专业,动辄几十k代码堆砌出「劳动成果」的魔法师 尊重这些搞笑的过度工程、这些空有篇幅,而无功能点的大class 谁去尊重那些不断被强制更新,软件体积耗电量不断翻倍,功能却越来越卡、慢的用户? 谁去为新程序员踩的坑熬的夜买单? 谁去为谦卑的Pythonic、和WebAPIs的正确道路添砖加瓦? > 你会买百公里耗油100升,甚至1000升的汽车吗?在软件行业,业界一直这么做。 > …
#statement os #design
程序员为了教条规范放弃常识,就是最大的形式主义。

幸亏我学了元编程,不必被那些文字游戏所蒙蔽,可以有自己的心智模型。
只要穷举了「设计模式」们的Reason,就能跳过所有空洞的抽象,稍加设计,代码结构才能直观反映用户的视角。
如果,我没有遇见Prolog(https://tomstu.art/hello-declarative-world)和numpy、没有对C ABI和lisp的认识、不会写解释器和DSL,不能将协程/Reactive/OOP等“新框架”与C语言的旧需求对比着看,我肯定要被业界不沾边的教条主义牵着走。

“优雅的程序与它读写的数据,在结构上直观对应——Daniel Friedman”
从前后端到终端,从红黑树到递归和DP.. 有哪种代码不需要拆分业务逻辑、计算各色的数据?无非是晦涩或明确、重复或简洁、充满机翻感或编程如写诗。

富有语意的代码,“免费”的序列化与各种绑定..注入..的魔法,在lisp的时代就已经初具雏形。
别忘了对象树与GC、靠lambda隐藏部分参数的这个概念,就是他们的首创。 Javaer设计了那么多模式,很少有Visitor,ProxyDelegate 这样能跨语言保持一致的东西;然而60年前的函数式操作符,所有主流语言里竟然都是一个样!
部分程序员弄出来的私货,终究是暂时的闪烁,只有纯粹为语意服务的 functionals ,才能成为永久的光明。

React之流的各类“榜一”,对前人的工作有尊重吗?不幸地,沉溺于重造webkit等上游的轮子的他们,不屑于接受软件工艺的点化。

幸亏我遇到了先贤们的示例代码和优雅范式,他们对技术「自顶向下」的reasoning,才是真正与读者的平等交流,让大家能「早点休息」
而不是把对方视为copycat或翻译AI。
可怕的不是草台班子,而是你依赖的草台班子,抄袭魔改了另一堆草台班子……

如果一个人话都说不利索,讲概念难以简明扼要、一语中的,凭什么他靠写“新语言”的代码就能突破? 封问题,一定是消而不灭,照猫画虎尔,搞出更多让人头疼的坑。所以要兜售“永续学习论”“知识价值”咯..
其实,就是库的设计者一代不如一代。说是你不聪明不正经,那是在逃避编程语言的天职。

C诞生50年了,它所能实现的预处理期计算、单函数读写结构、栈参数和this变量的同构、
os级协程、将bytes重解释为"Proxy对象"如结构体的变量绑定,依然是后继寥寥, 更别说ndarray、正反函数、跨语言调用对象的这类常理化接口了,在编程界基本不存在!

Can programming be liberated from C-like OOP style? 😒 How long will it take?
https://tonsky.me/blog/centering/ #css ...
Rachel: #android #css #web
写过复杂 UI 的人肯定知道要在复杂业务场景里把动画优化到 60 帧有多难

duangsuse:
为什么 shadertoy.com 和 gl-transitions.com 用几行代码就能做到呢? 为什么@3b1b 一个人用py就能实现呢

还不是框架做得烂 https://t.me/dsuse/19124

同意,类型系统不就是对字面和编译期键值的Matcher嘛, 占篇幅纯属过度设计

要是我,直接把 def(a:str) 写成 def(a~"")

现在ui还不是有用gl加速,结果到头来连满挣都做不到,一大堆空洞的class写得还不如numpy的那些公式

如果专业是指「我们必须保留所有历史错误」,我宁可保持饥饿、保持愚蠢

至少,对用字面量取代类型标注上是这样。 泛型也一样啊,写成 a=set() assert{a.add("")} 而非Set[Str]

我有一整个系统来替代现在的OOP和静态类型/编译期计算理论。

你不觉得typescript的类型标注是过度工程吗?作为把sql row 填到forif模板里的一些业务。
他们有这样依赖补齐、检查,完全是因为API的风格太含糊

动态类型只是在运行时能进行修改和(同名符号的)链接,方便元编程。 例如 for: class: 这种结构就是无效的

致胜优点是免编译(交互式编程/所见即所得)、隐式类型!
还有,在生态上,没有被缺乏语意的设计模式(例如序列化和依赖注入 aka with强类型KV:)所绑架

在子类型多态上,未必比得过静态OOP
难以拆箱(栈上分配)本该是一种可以被类型推导消除的副作用

我看到的是有初学者用 Cursor 写出类似字幕搜索的高层应用

编程的工程化,作为限制生产力的繁文缛节,如果只是 make computer happy,理应从人应该学习的部分去掉

例如,javac 用那一套class{}语法定义一个编译期字典,我们应该是做IDE插件去生成样板代码吗??
多少技巧模式是从语言缺陷来的?
狸::
说着要开发效率,用着到处加字段,SQL两百行,不合理拆分接口全部Object返

duangsuse:
还有全部POST :)

这样,其实你完全可以用WebSocket收发json吧

不是动不动脑子,这种业务组件根本不该让人写

白用了个http,就是当做饼干罐和 /git/push?url= 那样的子命令微服务吧🥰

直接跟py那样 import fire ,什么http服务器哎,封装为函数路径和调用算了。

就像以前还写什么argparse,哈,完全是样板代码
#design #apple 爱果TV之蠢蠢边😅👍
怎么不敢在 demo reel 里把「液态玻璃」的背景调花一点?

和那个必养的 MD2(mdui.org) 一样搞笑, 登顶了就非要一年一换吗😂 办公室政治,越改越悖离主创初心
是不是写 #css 也能写忘本了,还加私货啊

长续航、长截屏、NFC啥时候支持下?
CSS-Tricks 陷入停滞
原文:https://vale.rocks/micros/20260915-0135

#css 话说有AI以后,技术基建 是不是就不重要了
以前大家踩坑 → 发 SO 提问 → 有人写文章总结 → 下一代人少踩坑。现在踩坑 → 问 AI → 跑补丁 → 没人沉淀。

AI写的一大堆垃圾但删掉就变样的CSS……