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

技术相干订阅~
另外有 throws 闲杂频道 @dsuset
转载频道 @dsusep
极小可能会有批评zf的消息 如有不适可退出
suse小站(面向运气编程): https://WOJS.org/#/
Download Telegram
#statement #functional #js #GUI #dom
再说 Reactive... 等等这不是 Rx 类框架的招牌吗٩(๑`н´๑)۶ 看来 -ive 的词性都容易后宫起火啊草。
React 用 functional MEMO 提升控件更新性能根本就是弱智措施, memo 即备忘录,用 hash 表实现函数输入输出对应的缓存,这样对类似 Text 的控件,同输入多次调用不产生额外计算和内存开销,应用在树 render() 上时相当于自动实现 shouldComponentUpdate() ,尽量复用旧的渲染结果,对树遍历减少重建操作量,相当于仅重建了真正变更的控件。

经典版暴露 shouldUpdate 已经很没水平了,说好的面向 state 编程呢?在我看来这个 Reactive 所做的就是「把所有控件的所有变量暴露到一个 state 里方便读写操作」,那么凭什么程序员要操心什么 update 啊 memo 啊,记得很像 还有 SMUV(state,message,update-event,view)模型,实际上根本不能便利地 handle 多少东西,就是个秀儿。

当然,其实真正的 relational 编程也是这样,关系式 state/var/eq/both/either 靠 enumerate&filter 可以解出 x+1=2 这样的线性方程,甚至能得出 a+b=9 的所有可能性,只是需要 interleave([a,b]) 两个变量先后递增构造 state 迭代,然后 unify 一下同步恒等关系(双向版变量引用)而已

可是这和 DOM 有多大关系?比如我有个
class Main: DUI() { fun view() = el("il", withNone, Counter(0)) }
class Counter(var n): DUI() {
  fun view() = elDiv(withNone, elText(ref(this.n)))
  fun inc() { n+=1 }
}

其实渲染 Main 的时候连给子控件注入其路径都不需要!也不需要专门分析 DOM diff 的哪个 tag 哪个 attr 还是 text ,直接拿住自己的 HTMLElement 的引用就够完成全部 update 了,所以说搞那么复杂?

要是想兼容 haml 或者 E4X 内联 XML ,直接做个中部翻译成 el 调用就行,反正 DOM 元素动态创建最好是 createElement ,逃不开运行时开销。

想实现控件属性事件到 update 代码的方法很简单,因为 js ref(a.prop) 并不会传入 a 相关的信息,编译期把 op(ref(a.prop)) 变成 refAddRel(a,"prop",v=>op(v)) 就可以了,这种方法换成处理全部代码,引用处 a.prop=x 自动更新就变成上面那个 框架S 的实现方法,接口上是兼容的,只不过 refAddRel(o,k,op) 从 defineProperty 变成编译期打监听表。

变形方法很简单,walk 到 FCall 节点记作基点,如果是 op(ref(o.prop)) 就把基点变成 refAddRel 的调用,如果是 ref(v) 这种不知道 receiver 的情况就请换 Array [v] 报错,反正框架函数可以随便加没必要特别支持 a=ref() 这些语法,兼容的少,反而更优雅。
看看就好的频道
Message
另外这个博文作者的示例 https://github.com/djyde/plastic-editor

虽然有 reactive ,居然 responsive 都没做,就是笔记应用支持 star grouping&Date,上传照片和 JSON 导出…… 移动端尺寸设计很难吗

有意思的是这个人有开源 DFS longestRoute https://github.com/djyde/findRoad/blob/master/src/index.ts#L98 的代码,应该是很久以前的了 (他还有个 dom like .data tree-util 和 TS 测试的 pushIf ,只有一行代码,应该是算法弃了)
#science #China 所以说啊,国际话语权……
噢,想起来了,可以用 ins,del(N),blink(char),delay 序列做动画…… 然后加 delayPosition 这样的预处理函数🤔

百叶窗的话设置 indices 再 shuffle 替换就很像了,还要自动折行的,有必要考虑下怎么做…… 怕不是要看 TextRange
Forwarded from 131的小本本
这 profile 这样写感觉挺有意思的(
131的小本本
这 profile 这样写感觉挺有意思的(
第一次感觉这么不确定…… 就连动画更新都设计错了-_-||

想当然觉得可以固定帧率看帧号,忽视了必须有更新才有必要重绘的事实,自信心很有问题

明明动画动作序列应该说似乎没有问题,要用 selection TextRange 去 pick 动画点也没问题,就是莫名觉得这样不正常,其实已经是最大格式兼容了?!

那就支持 charGraident(indices,substs) 百叶窗、插入 HTML 和自动折行好了
Forwarded from Solidot
7-Zip 开发者释出了首个官方 Linux 版本

2021-03-13 20:58 #Linux

7-Zip 开发者 Igor Pavlov 不用 Linux,因此这个非常流行的解压软件一直没有官方的 Linux 版本。7-Zip 的非官方版本 p7zip 由另一名开发者维护,但项目已经四五年没有更新了。在这种情况下,Igor Pavlov 决定根据最新的源代码创建官方的 Linux 版本,他发布了 AMD64ARM64x86armhf 架构的 Linux 版本。他只提供了二进制程序,目前还没有公开源代码,原因就是他不用 Linux,维护 Linux 编译脚本和包有点难度。
#CG #cv #algorithm #math 高难度…… 和 canvas parser 一样,从位图还原吗草
#China #Low 🌚👍 赛博朋克
Forwarded from RWTG9Y4's STDOUT
?因为退出APP而被立即取消会员资格并强制销户
赛起来了
反转了,因为国内是以 PM250 计( #China #science 🌝
今日北京 实拍
Forwarded from 131的小本本
境内数据才 500 ,境外数据多了一倍,这一定是境外势力的阴谋(x
Forwarded from 螺莉莉的黑板报
螺莉莉的黑板报
Photo
《JOJO 的奇妙冒险 黄金之风》实拍地
🌝👍