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

技术相干订阅~
另外有 throws 闲杂频道 @dsuset
转载频道 @dsusep
极小可能会有批评zf的消息 如有不适可退出
suse小站(面向运气编程): https://WOJS.org/#/
Download Telegram
#android #design #java #xml
今天早上有幸在图书馆看到了一本关于 3.x Android 开发的书

感到了深刻的混乱, Java, XML, MVC ,降级了的 MVC,根本想不出这到底是什么玩意,写出了一坨什么东西。

有些人用官方推荐的 XML ,有些人直接创建 View 对象,有些人为提升性能用 View XML 的静态编译器,而 R.java 还要被生成来共享 resource id,不知道到底是应该在放在应用代码还是资源框架里,这时候我突然感觉 aapt 就是个恶魔工具,想分开却又若即若离, ARSC 比 java.util.ResourceBundle 要可怕得多

不就是为了文本翻译,gettext,一个单页小应用 XML 写几十行,我真的无法理解,真受不了这种编程,正是因为它只支持 Android View 一个后端,才导致各种 translate editor, JavaFX preview render 的折腾浪费,可配置真是可怕

有的人把 Spinner 称为 ComboBox ,对我这个“外国人”而言啥是 Spin?同样一个东西 Android,DOM,Qt,WinForm 会给你不同的名字、英语化的名字,莫名其妙,还不如早些的UI库。

过去我以为 Adapter 就是给不同类型提供统一接口的东西,现在才知道它是 Model/View 的对接器,那么设计的这么“可配置”到底有何意义?应用的客制化部分难道不应该独立于功能和视图结构?
🤔 #web #frontend #css uilang.com 虽然挺菜(而且我觉得无意义,直接 EDSL 有何不可

但我突然感觉 CSS 很不错啊,居然只是它就能定义出开关、下拉、收缩栏的动画效果

看到我就想到了『东北语』和『文言文』,基本上都是一类前端应用,感觉是偏创意性的,没有真的结合其领域的哲学
哎呀, #Java Swing 的 #gui 接口用起来也确实是蛮复杂的

但 AWT 的抽象也都很正经(Dimision,Point,Rectangle,VolatileImage,Graphics,Component,Window都有),连续 javap 查了老半天终于发现 addMouseListener 这个接口,直接把监听 implements 在 class SliderPanel 类里了然后 init {add_(this)}

终于可以用了,我还以为是要覆盖 processMouseEvent 呢(习惯性写成 onMouse 方法emmm...)
This media is not supported in your browser
VIEW IN TELEGRAM
突然感觉自己有点 JVM 老咸鱼了的意思,遇到问题即便只是查 API ,不需要搜索自己就能找到答案,而我对 #Java 不常见语法 ( inst.new T() , new T() {{}}, static {}, synchronized 什么的) 和 static,final,interface 的用法也比较习惯了

开始在头脑里设计,然后再去对接底层 API 实现,没有 API 我也会尽量猜个八九不离十的出来,对编程语言的结构组织如数家珍、操纵更加自如

还是 Kotlin 好🤔 记得自己对区间的认知就是从用 Kotlin 开始的
真的很希望自己能对编程语言有新的理解,而且通过一些定义式框架的利用,写一些开发工具,能把这份理解用到实际各平台应用开发中去。

最近虽然安排了贼多小编程应用,也在筹划一个数学式的推导/变形工具,而且还打算设计一个基于 CPS 变换的协程实现,这样就能有 await/async 避免任何回调嵌套,不过略困难🤔

这三天我也设计了三个算法了(数学工具的合并连续区间、求值化简过程列表构造法,协程静态编译的一个)
oop1.lua
1.2 KB
#Lua #oop #PL 🤔刚才体验写标准Android之前又把 LuaOOP 默写了一遍,构造器调用子类优先了,重写后果然感觉优化了不少(也提升了效率编程自信心)
duangsuse::Echo
🤔 #web #frontend #css uilang.com 虽然挺菜(而且我觉得无意义,直接 EDSL 有何不可 但我突然感觉 CSS 很不错啊,居然只是它就能定义出开关、下拉、收缩栏的动画效果 看到我就想到了『东北语』和『文言文』,基本上都是一类前端应用,感觉是偏创意性的,没有真的结合其领域的哲学
我嘞个去,这个真是……一个一个一个…… 啊啊啊啊啊啊啊啊啊

我就贴一点代码吧

input.value.split(delimiter).forEach(data =>{
params = new InstructionParsing(data.trim())
jsOut+=new EventHandler(params.a, params.b).getEventListener()
})
d_out.textContent=jsOut+"})"
hljs.highlightBlock(d_out);
This media is not supported in your browser
VIEW IN TELEGRAM
这个人他到底会不会写 JS ,为什么明明不会写还能做那么漂亮的网站 #web #frontend #js

当我看到 split delimiter 和 s+=a 的时候略微头抬起, new InstructionParsing 和 EventHandler(a,b,c)/getEventListener():String 的这种设计就完全上头了,吐血了吐血了……😵

这个人他是不是抄别人的设计模式(而且为什么要抄这种基本无关数据结构变换的模式),连名字都不改,我嘞个去,怎么可能有这种……无法用语言形容我现在的卧槽
This media is not supported in your browser
VIEW IN TELEGRAM
#statement 本苏在脚本语言里是从来不把 codegen 分着写的,都是 CG 完全等价直接求值的模式,只不过边执行边顺便输出代码而已
我早就习惯了不写任何重复代码了。

https://github.com/duangsuse-valid-projects/TkGUI/blob/master/tkgui/codegen.py

所以我看见有人把 CG 作为拼接字符串实现,就难以想象的头疼

然后这个会写“语言”的大佬不仅看不到某个表达式会用多少遍、闭包要包住哪些外部变量,而且连命名都是生草的,整个人都爆炸了,这个信息量有点大……

我去还有 code.lastIndexOf('a', 0) == 0 这是什么逻辑
还有 var codeBlock, codeBlockContent while(i--) codeBlock=; ... 这又是哪种编程思想草
幸好,我已经准备好弄内部 DSL 版的了😥
duangsuse::Echo
幸好,我已经准备好弄内部 DSL 版的了😥
中午还没吃饭,那就不吃了,最近浪费时间第一的实践...

#JavaScript 其实最开始我是不打算用 fold 解释器的,打算直接用 eval() 处理变成 clickingOn("wtf").addsClass("") 这种形式的代码,为此还定义了一个


foldReplace(/(\S+)\s+(\S+)("[^"]*")?/, (a,b,c) => a+capitalize(b)+c?(${c}):"", "apple fd") function capitalize(s) { return (s=="")?"" : s[0].toUpperCase()+s.substr(1, s.length); } function foldReplace(re, op, input) { var text=input; var matched=false; do { matched=false; text = text.replace(re, (_, ...args) => { matched=true; return op(...args); }); } while(matched); return text; }


但是发现这样没法区别处理 "" 里的东西,不得不换成兼容 ES5 的 RegExp sticky flag 分词法。

总之,这次感觉血亏,跟着一个30岁,还只会前端、冒鬼点子的大叔,也没学到写CSS。

嗯…… 也不全对,学到了个 requestAnimationFrame((t_ms) => void) 算 start/elapsed
还有魔怔的 +function(){}() 等于 (function(){})() IIFE 技巧
This media is not supported in your browser
VIEW IN TELEGRAM
每次打破计划后都不知道为什么会浪费时间(但是这次是复制粘贴的比较多,然后 EDSL 的数据封装、JS 的歧义语法差错和codegen都浪费了时间),但是站起来的时候腿软了,即便这样还要继续编程么?
#China #Freedom 写好的东西, git push 不了。

有的觉得是 http buf 和压缩的问题,有的说是要上梯子


V2Ray 下了,不知道是不是USB绑定网不能用,完全复制手机的JSON配置也不行。

真棒, GH 的 SSH 和 github.io , githubusercontent.com 都已经屏蔽了,马上中国的开发者就要分为认识GH和墙内的两拨了,嘿嘿嘿嘿嘿嘿…… 不错,真棒。
#algorithm 之前 Kotlin 的 DeepRecursiveFunction 有一个建树的示例,如果 n 指二叉树深度那对象分操作数配肯定比 O(n) 大吧……
Forwarded from Phonograph (Ralph 萌新喵)
我人傻了
互评作业,有人说他建树算法时间复杂度是 O(log n)
您把输入的节点遍历一遍都是 O(n) ,好吗