然后是王垠质疑相对论这回事,我来谈谈看法。
动机不想猜,他博客就起的“我在扯淡”,当然也有不少内容不是扯淡,尤其是科普和讲故事,比如,写个+-*/带参数吧,尼玛 #zhihu 上函数式的人全给(因为不成熟啦,对自己而言做法过时啦,.)删了,剩下些大学编译原理在parser上磨叽,几百行代码,结果还不如王某人(2012)的好,这个领域国内CS是这个水平; 但一些人觉得因此自己就是大佬了,没有认识到大佬的责任(随他呢,也无法道德绑架),对CS挺可惜,尽管往大说这些也没啥用(未必,你看Babel,TS,Swagger )
但相对论有没有用,或者是不是领域性的骗人,也轮不到外专业的人来批评,首先物理乃至CAD工程界人也不都是用相对论的,包括王垠说的“牛顿真正力学”使用者,他们觉得没问题,那就没其他研究者的事了。 就是物理的一个细节有问题,你能逼所有研究者瞬间换说法或者模型,吃力不讨好,何必呢
物理式表示法不差,改正了数学的很多问题,而物理也是应用学科(数学也分卷和正经的两部分的),与其写这样的阴谋论小作文还不如列公式和实验数据可信点,民科就是天天用语文抨击他不信(也不懂)的理论,都要把语文的名声搞差了,但其实会表达是很有用的,并不是智商高就能做。
以前我只会优化代码排版命名,也不会画图,所以觉得«算法»的代码已经足够好了,现在看来仍有可改的地方呢
现在一些娱乐(学术/工程)界人士编程,
每一句都和“天空是空的,仙人掌是长刺的,空气是摸不着的”一样既准确又废
但是带上稀奇古怪的符号、巨长巨短的名字,“精心设计”不知哪该注目的图示,就变成至理教科书了,名字后加个“代数”。谁有权定义代数?它是有什么技术标准规范,必须写成空洞重复的形式才能叫代数?同样是代数,有些人的式子就很有意义,另一些人就在玩起名游戏,请问代数和名字相关还是和范围、图示这些涵义更相关啊? 总是附庸数学,你懂数学没有? 中国多少人通过高中大学的测试,你在数学上含糊就很牛?
我真的不懂那个思维导图是怎么火起来的,自动排版软件又模糊,排出来的连接最后读着看很麻烦,关键是他们在 presentation(SmartArt..)外的地方以png吹这玩意,还说帮助学习,开课赚钱,看着都困难。 其实思维导图创建起来不困难,读起来本应是有动画和引用,可不知道为什么商业软件就挺散,而且作图者也不会用;现在许多做公众号的圈子会分享这些,也就看一乐呵
动机不想猜,他博客就起的“我在扯淡”,当然也有不少内容不是扯淡,尤其是科普和讲故事,比如,写个+-*/带参数吧,尼玛 #zhihu 上函数式的人全给(因为不成熟啦,对自己而言做法过时啦,.)删了,剩下些大学编译原理在parser上磨叽,几百行代码,结果还不如王某人(2012)的好,这个领域国内CS是这个水平; 但一些人觉得因此自己就是大佬了,没有认识到大佬的责任(随他呢,也无法道德绑架),对CS挺可惜,尽管往大说这些也没啥用(未必,你看Babel,TS,Swagger )
但相对论有没有用,或者是不是领域性的骗人,也轮不到外专业的人来批评,首先物理乃至CAD工程界人也不都是用相对论的,包括王垠说的“牛顿真正力学”使用者,他们觉得没问题,那就没其他研究者的事了。 就是物理的一个细节有问题,你能逼所有研究者瞬间换说法或者模型,吃力不讨好,何必呢
物理式表示法不差,改正了数学的很多问题,而物理也是应用学科(数学也分卷和正经的两部分的),与其写这样的阴谋论小作文还不如列公式和实验数据可信点,民科就是天天用语文抨击他不信(也不懂)的理论,都要把语文的名声搞差了,但其实会表达是很有用的,并不是智商高就能做。
以前我只会优化代码排版命名,也不会画图,所以觉得«算法»的代码已经足够好了,现在看来仍有可改的地方呢
现在一些娱乐(学术/工程)界人士编程,
每一句都和“天空是空的,仙人掌是长刺的,空气是摸不着的”一样既准确又废
但是带上稀奇古怪的符号、巨长巨短的名字,“精心设计”不知哪该注目的图示,就变成至理教科书了,名字后加个“代数”。谁有权定义代数?它是有什么技术标准规范,必须写成空洞重复的形式才能叫代数?同样是代数,有些人的式子就很有意义,另一些人就在玩起名游戏,请问代数和名字相关还是和范围、图示这些涵义更相关啊? 总是附庸数学,你懂数学没有? 中国多少人通过高中大学的测试,你在数学上含糊就很牛?
我真的不懂那个思维导图是怎么火起来的,自动排版软件又模糊,排出来的连接最后读着看很麻烦,关键是他们在 presentation(SmartArt..)外的地方以png吹这玩意,还说帮助学习,开课赚钱,看着都困难。 其实思维导图创建起来不困难,读起来本应是有动画和引用,可不知道为什么商业软件就挺散,而且作图者也不会用;现在许多做公众号的圈子会分享这些,也就看一乐呵
重构 https://alemangui.github.io/pizzicato/ 的代码简直是种折磨,我鸽了3,4天了(当然也是因为天气凉和频道更新。 最开始是想作为WebAudio的练手,的难度下降版,,,) 没想到在我解决人脸识别和画布几何扭曲算法后, 这个东西卡了我很长时间……
你们不知道……🤪 我原以为声音好听=代码好看,没想到这个作者纯纯就是前端,勉强写了个player UX ,全TM是 getByID 拿{} 去传.. 真的还不比我们班同学的复制粘贴。 menu 和article的结构大量重复倒不说, sound-effect 的顺序在网页、snd,effect 侧有三种,而每effect 又有参数,要传全是Element的配置{} ,4种顺序..天哪,真不知道为了一个 presentation page 怎么会如此大费周章唉
前些天我好容易把 snd-effect 给zip 起来,原计划是尽量保留原有结构(#-id我都保留了..) 最后这个UX的中间对象可能模仿不了他 😂,我再也忍不了他这个代码了
你们不知道……🤪 我原以为声音好听=代码好看,没想到这个作者纯纯就是前端,勉强写了个player UX ,全TM是 getByID 拿{} 去传.. 真的还不比我们班同学的复制粘贴。 menu 和article的结构大量重复倒不说, sound-effect 的顺序在网页、snd,effect 侧有三种,而每effect 又有参数,要传全是Element的配置{} ,4种顺序..天哪,真不知道为了一个 presentation page 怎么会如此大费周章唉
前些天我好容易把 snd-effect 给zip 起来,原计划是尽量保留原有结构(#-id我都保留了..) 最后这个UX的中间对象可能模仿不了他 😂,我再也忍不了他这个代码了
duangsuse::Echo
重构 https://alemangui.github.io/pizzicato/ 的代码简直是种折磨,我鸽了3,4天了(当然也是因为天气凉和频道更新。 最开始是想作为WebAudio的练手,的难度下降版,,,) 没想到在我解决人脸识别和画布几何扭曲算法后, 这个东西卡了我很长时间…… 你们不知道……🤪 我原以为声音好听=代码好看,没想到这个作者纯纯就是前端,勉强写了个player UX ,全TM是 getByID 拿{} 去传.. 真的还不比我们班同学的复制粘贴。 menu 和article的结构大量重复倒不说,…
我说大点吧,他这个Pizz icato 看起来很厉害听着也不错,但最终只是 sound source->effect 的单向连接,做成UI 最多整成处理mp3和input getUserMedia 的多声效(GainNode)“配置面板”,这是表现力的极限了。那个生成random()白噪声 和sinewave啥的根本没用处,作者理解不了 WebAudio 为何是基于 AudioNode connect().connect 的吧……看他这个产品页 这还值1.4k star ,真的我不想看pz.js的代码到底长啥样,肯定是一大堆复制粘贴,把我的好印象都破坏了,根 Howler.js 一样
作者根本没想好就开始暴露API了,包络(参数动画) attach/release 开始加在SoundSource上,后来许多又没有此属性,除了 masterVolume 还创建一个 淡入淡出GainNode 去做切换.. 我思量着混音器也不是这么用的啊。 不过它的每个特效都有音量(这时倒可配置起来了,然而特效不支持fade hhh ,节点都用上了 请问 source.volumeGain 和 source.eff[0].volGain 有区别吗)
其实没糟蹋 WebAudio 的项目有很多,比如 p5js.org 和 wavesurfer-js.org ,一看就知道绝对不是喜欢跨文件复制粘贴的人做得到的 :sob
感觉作者真是有把这个项目当项目做,可是他的HTML真的令我十分头痛啊…… 重构期我都产生700行待改代码和3,4个JSON了,不过我把那个滑条配置默认区间 用函数简化了,算是积累点观察法经验;但是看这种代码真的心累…… 🦀
https://okazari.github.io/Rythm.js/ 创意不错
https://github.com/stewdio/beep.js 只有键盘API.
https://github.com/gridsound/daw GS-工作台 和可视化编程 https://noisecraft.app/browse , https://github.com/surikov/webaudiofont 和 audiotool.com 厉害
https://preziotte.com/partymode/ 巨赞的可视化 #signal
https://github.com/rserota/wad#showcase https://github.com/Theodeus/tuna 太虚
http://slang.kylestetz.com/ 编程语言最糟的用途
https://howlerjs.com/ 其实还不错.. 支持分段和3D位置
https://github.com/collab-project/videojs-record 录屏录音
wad和tuna 是啥玩意, bbc/peaks波形是咋..打不开
作者根本没想好就开始暴露API了,包络(参数动画) attach/release 开始加在SoundSource上,后来许多又没有此属性,除了 masterVolume 还创建一个 淡入淡出GainNode 去做切换.. 我思量着混音器也不是这么用的啊。 不过它的每个特效都有音量(这时倒可配置起来了,然而特效不支持fade hhh ,节点都用上了 请问 source.volumeGain 和 source.eff[0].volGain 有区别吗)
其实没糟蹋 WebAudio 的项目有很多,比如 p5js.org 和 wavesurfer-js.org ,一看就知道绝对不是喜欢跨文件复制粘贴的人做得到的 :sob
感觉作者真是有把这个项目当项目做,可是他的HTML真的令我十分头痛啊…… 重构期我都产生700行待改代码和3,4个JSON了,不过我把那个滑条配置默认区间 用函数简化了,算是积累点观察法经验;但是看这种代码真的心累…… 🦀
https://okazari.github.io/Rythm.js/ 创意不错
https://github.com/stewdio/beep.js 只有键盘API.
https://github.com/gridsound/daw GS-工作台 和可视化编程 https://noisecraft.app/browse , https://github.com/surikov/webaudiofont 和 audiotool.com 厉害
https://preziotte.com/partymode/ 巨赞的可视化 #signal
https://github.com/rserota/wad#showcase https://github.com/Theodeus/tuna 太虚
http://slang.kylestetz.com/ 编程语言最糟的用途
https://howlerjs.com/ 其实还不错.. 支持分段和3D位置
https://github.com/collab-project/videojs-record 录屏录音
wad和tuna 是啥玩意, bbc/peaks波形是咋..打不开
GitHub
GitHub - stewdio/beep.js: Beep is a JavaScript toolkit for building browser-based synthesizers.
Beep is a JavaScript toolkit for building browser-based synthesizers. - stewdio/beep.js
duangsuse::Echo
我是这么“保持原汁原味”的……现在看来可真傻 😂早知道会坚持不下去,依然在重复
修好了。这是我第一次重构1.4k star 的项目,也应该是我最后一次“保留原项目风格”…… 复制堆砌 此言不虚 (吐槽: 代码里我无数次用 ()=> 和 ... 以及for() 简化重复 还叫没改风格,非得在Node上才叫改? 😳
(反驳:要是我的JS项目绝对不会出现一整块 o[k]=o[k1] 的代码,早换Obj.assign 乃至列表chunk(2):kv了,可这是 production readily ,要条理清晰.. (被打死
动苏甘拜下风,我对这种代码的维护经验还是不够的…自认写不出同时往HTML .menu,article 和JS里的3个部分里粘贴的,当你添加一个 example ,要改动3文件6位置..
亲爱的各位订户,各种层面上这样的代码,你们今天写了吗?(逃 🙊
(反驳:要是我的JS项目绝对不会出现一整块 o[k]=o[k1] 的代码,早换Obj.assign 乃至列表chunk(2):kv了,可这是 production readily ,要条理清晰.. (被打死
动苏甘拜下风,我对这种代码的维护经验还是不够的…自认写不出同时往HTML .menu,article 和JS里的3个部分里粘贴的,当你添加一个 example ,要改动3文件6位置..
亲爱的各位订户,各种层面上这样的代码,你们今天写了吗?(逃 🙊
duangsuse::Echo
#python #code #telegram #tool 修正tg desktop 的复制成员名太长
我开始讨厌学校里照本宣科了,如果不是因为不熟悉 #JavaScript 这种「动态语言」,怎么会写出如此执掌的代码……我太阳
学校的JS理应把重点,首先让他们写 deep copy 和 deep eq 之类熟悉{} 然后再科普ES6新语法,以及Babel,TypeScript 在完全无需考虑兼容这回事
DOM最少也要把 innerHTML 和 Text 的区别教了,别只AJAX下载html,省得一些人文H不分
学校的JS理应把重点,首先让他们写 deep copy 和 deep eq 之类熟悉{} 然后再科普ES6新语法,以及Babel,TypeScript 在完全无需考虑兼容这回事
DOM最少也要把 innerHTML 和 Text 的区别教了,别只AJAX下载html,省得一些人文H不分
Forwarded from dnaugsuz
如何看待V2EX未经允许公布用户邮箱和手机号? - Sion Kazama的回答 - 知乎 #隐私 #net #china
https://www.zhihu.com/question/270687757/answer/355878537
https://www.zhihu.com/question/270687757/answer/355878537
Forwarded from Solidot
AI 将伦勃朗的杰作转化成 5.6TB 数据
2022-01-21 19:16
伦勃朗的《夜巡》的高分辨率图像现在已上网。容量为 7170 亿像素,分辨率为 0.0005 毫米。阿姆斯特丹国立博物馆发布了一张由人工智能构建的、伦勃朗《夜巡》的超高分辨率图像。原作长近 15 英尺,高超过 12 英尺,自 1900 年代初以来一直在密集地进行修复。新数字图像实际上已根据历史记录重建了多年来被破坏的部分。
2022-01-21 19:16
伦勃朗的《夜巡》的高分辨率图像现在已上网。容量为 7170 亿像素,分辨率为 0.0005 毫米。阿姆斯特丹国立博物馆发布了一张由人工智能构建的、伦勃朗《夜巡》的超高分辨率图像。原作长近 15 英尺,高超过 12 英尺,自 1900 年代初以来一直在密集地进行修复。新数字图像实际上已根据历史记录重建了多年来被破坏的部分。
Forwarded from Solidot
黑客将恶意程序植入到 UEFI 固件中
2022-01-22 20:06
卡巴斯基研究人员 透露了植入到 UEFI 固件中的恶意程序 MoonBounce。该恶意程序被认为来自于 APT41 aka Winnti 或 Double Dragon。恶意程序修改了主板上名为 SPI flash 的元件,它不在硬盘上,因此格式化硬盘或更换硬盘不会清除恶意程序。修改后的固件镜像允许攻击者拦截引导序列的执行流,引入一个复杂的感染链。研究人员认为,黑客对 UEFI 系统的工作原理有着深刻的理解。感染链只在内存中运行,硬盘上没有留下攻击痕迹。黑客主要对 IT 行业、社交媒体、电信、非营利组织和医疗机构进行攻击。
2022-01-22 20:06
卡巴斯基研究人员 透露了植入到 UEFI 固件中的恶意程序 MoonBounce。该恶意程序被认为来自于 APT41 aka Winnti 或 Double Dragon。恶意程序修改了主板上名为 SPI flash 的元件,它不在硬盘上,因此格式化硬盘或更换硬盘不会清除恶意程序。修改后的固件镜像允许攻击者拦截引导序列的执行流,引入一个复杂的感染链。研究人员认为,黑客对 UEFI 系统的工作原理有着深刻的理解。感染链只在内存中运行,硬盘上没有留下攻击痕迹。黑客主要对 IT 行业、社交媒体、电信、非营利组织和医疗机构进行攻击。
https://zhuanlan.zhihu.com/p/460537291 宠物 人
“ 可是,猫主子的地位,是如此的虚妄。血猫产业的存在,恰恰因为所谓猫奴对猫主子的爱是有限的。他们可能会花几千块给猫主子输血,却绝对不肯花上几万乃至几十万去说服别的猫奴自愿带着猫主子献血。
正是这种供求差价区间的存在,导致了血猫产业的诞生。一只吃着三文鱼长大的高贵的猫,随时可能因为猫奴不愿承担成本,而一夜之间沦为流浪猫,最后变成血猫。
就像曾经高贵的奥托.冯.哈布斯堡,在被奥地利驱逐后,流浪到四十岁才有条件结婚。当一头猪盼望着成为猫,或是当一只血猫盼望着成为猫主子,它们自认为这是一种阶级跃升,其实在人类眼里毫无意义。
杀死一只猫比杀死一头猪,或许心理成本略高。然而一两千块钱的利润,就足以让人类克服心理压力,以杀猫为职业。
“ 可是,猫主子的地位,是如此的虚妄。血猫产业的存在,恰恰因为所谓猫奴对猫主子的爱是有限的。他们可能会花几千块给猫主子输血,却绝对不肯花上几万乃至几十万去说服别的猫奴自愿带着猫主子献血。
正是这种供求差价区间的存在,导致了血猫产业的诞生。一只吃着三文鱼长大的高贵的猫,随时可能因为猫奴不愿承担成本,而一夜之间沦为流浪猫,最后变成血猫。
就像曾经高贵的奥托.冯.哈布斯堡,在被奥地利驱逐后,流浪到四十岁才有条件结婚。当一头猪盼望着成为猫,或是当一只血猫盼望着成为猫主子,它们自认为这是一种阶级跃升,其实在人类眼里毫无意义。
杀死一只猫比杀死一头猪,或许心理成本略高。然而一两千块钱的利润,就足以让人类克服心理压力,以杀猫为职业。
知乎专栏
奥斯维辛的猫
今天让我最震惊的新闻,是血猫产业。宠物猫生了病,需要输血,却不像人类一样有制度化的血库。求助于其他猫奴,效率也极其低下。——猫的血量太少了,而检测成本太高了,检测完了配型也不一定成功。即使有需求的猫…
#plt 呃,这几天眼睛有点疼,那个网页重构也接近尾声了(目的就是交个PR),马上把雄狮扭眼的”热度蹭完“,我就能开始二进制pybind了 ……但是到2月我就必须开始制作一个H5动画礼物,以现在这个效率…… (而且之前说的 Java 入门又鸽子了,尽管对话框和离线javac的问题解决,其他内容还是需费精力
说真的我没一次蹭上国内热度,因为每次都是我趁机学了些”没用的“(比如彩字符画、粒子动画、MBR程序、C指针和数组啦),然后数据不好看 😂
这次也是一样,我用shift重映射圆心距l=1~len 环上像素的方式扭曲一块矩形,这个方法是我自己想的(思而不学(我刚刚上网搜了,还没写我这么直白的…… (Android.drawBitmapMesh, web没内建不规则变形)
类似 http://deepred5.com/oppai/ , http://www.htmleaf.com/Demo/201909185795.html (woc dat #gui )这样的。 #Vocaloid 爱好者平时爱看的2D骨架变形是这么做的。
不行这个Grid2Fullscreen #cg webgl实在是太厉害啦 (原作 https://github.com/Anemolo/WebGLDistortionConfigurator . barba.js.org/ 主页动画也很有趣..
它们的原理类似三角形贴图: Mesh=小网格缩放到图片,其上控制点可以移动,相当于小三角在翘曲,例如全向手指位靠(圆挤压 fisheye/pinch C#)
https://blog.csdn.net/lufy_legend/article/details/8084367
当然啦, GLSL 10行内基于笛卡尔座标系() 实现圆的变形是很容易的
https://www.shadertoy.com/view/XsVSW1
甚至
算下距离都能做到同样效果(就是我实现漩涡扭曲滤镜的原理
如果只是圆形其实并不困难,重要是在符合直觉…… (啊草
a:数组,x:项,k:键,q:真假,d:{}表 #code
调用时才去zipMap(形/实参) 然后解析变量,在运行了KV表仍存在,故称『动态作用域』。 若把注意不是微分! 里d.copy()保留,就无需 let old ,且支持『词法域』
有赖于F12 ,在eCall上打断点/
Node和S-expr 一样吗? let a=1,b=2 或 import a.* 应该是S不能表达的语法吧?
欸,大家也看到我编程风格的变化了:宁可用特殊语法+自己注释也不愿用工程的做法.. 主要是省字数,这里是教程 😅
但如果是省字数却弊大于利的情况,我会写自然点:例如 s.trim()!='' 也可写 !/\s/.test 或 !!s.trim ,这都是有取舍的。我经常对一个表达式改了又删,因为所有写法都不过是茫茫语法树里一片叶子罢了,没啥可稀奇
说真的我没一次蹭上国内热度,因为每次都是我趁机学了些”没用的“(比如彩字符画、粒子动画、MBR程序、C指针和数组啦),然后数据不好看 😂
这次也是一样,我用shift重映射圆心距l=1~len 环上像素的方式扭曲一块矩形,这个方法是我自己想的(思而不学(我刚刚上网搜了,还没写我这么直白的…… (Android.drawBitmapMesh, web没内建不规则变形)
类似 http://deepred5.com/oppai/ , http://www.htmleaf.com/Demo/201909185795.html (woc dat #gui )这样的。 #Vocaloid 爱好者平时爱看的2D骨架变形是这么做的。
不行这个Grid2Fullscreen #cg webgl实在是太厉害啦 (原作 https://github.com/Anemolo/WebGLDistortionConfigurator . barba.js.org/ 主页动画也很有趣..
它们的原理类似三角形贴图: Mesh=小网格缩放到图片,其上控制点可以移动,相当于小三角在翘曲,例如全向手指位靠(圆挤压 fisheye/pinch C#)
https://blog.csdn.net/lufy_legend/article/details/8084367
当然啦, GLSL 10行内基于笛卡尔座标系() 实现圆的变形是很容易的
https://www.shadertoy.com/view/XsVSW1
翘曲(k=3)
l=length(xy),r=atan2(x,y); //圆心座标<=>直角
l=l*l*k; 放大 //sqrt(dot())速率试试
l=sqrt(l)*k/1; 挤压
p = l * vec2(cos(r)*0.5, sin(r)*0.5);
//xy就是p的新位置
甚至
p *= length((p-mous)* vec2(w/h,1)); fragColor = texture(iChannel0,p);
vec2 p = center - uv ;
float d = length(p),
factor = .5 * sin( iTime ),
f =d>.5?0.: exp( factor * ( d - .5 ) ) - 1.;
fragColor = texture( iChannel0, uv+ /*normalize*/(p/d) *f);
算下距离都能做到同样效果(就是我实现漩涡扭曲滤镜的原理
如果只是圆形其实并不困难,重要是在符合直觉…… (啊草
a:数组,x:项,k:键,q:真假,d:{}表 #code
let a="run (\\f x. (+ (+ x 2)3)) (f 1)".split(/([()\s\\\.])/g).filter(s=>s.trim()!=''),i=0;
层=(tk)=>{for(let x,q;x=a[i];){i++;if(x==')')break;q=x=='('; tk.push(q?(x=[]):x); if(q)层(x)} }
glo={run:a=>a[a.length-1], ['+']:([a,b])=>a+b }
eva=d/*scope*/=>a=>a.values? (a[0]=='\\'?eFun:eCall)(d,...a) : !/\d/.test(a[0])?d[a] : +a//num
eCall=(d,kf,...a)=>(d[kf]||console.error)(a.map(eva(d)) ) //单步规约
eFun=(d,_,kf,...x)=>{let nArg=x.indexOf('.'),ka=x.slice(0,nArg);x=x.slice(nArg+1);x.unshift("run")//解析:切分 //v 名值表允嵌套
d[kf]=a=>{if(a.length!=nArg)throw `bad arity for ${nArg}`; let old=zipMap(ka,a, (k,v)=>{let v0=d[k];d[k]=v;return[k,v0]});
let r=eva(d)(x);old.forEach(([k,v])=>d[k]=v);return r } }
zipMap=(a,b,f)=>a.map((x,i)=>f(x,b[i]))
层(_6=[]); eva(glo)(_6)
调用时才去zipMap(形/实参) 然后解析变量,在运行了KV表仍存在,故称『动态作用域』。 若把
eFun:eva(d)(x) just=x=>()=>x, f=just(0/*x是参数0吗?*/) ,若编号变量、独立调用栈,不返回编程(eCall: 内项Promise.all 后才done +-*/)就实现 continuation(断续函数,协程)有赖于F12 ,在eCall上打断点/
logs=f=>a=>{console.log(...a);return f(a)};glo["+"]=logs(glo["+"])
再次调用 glo.f([1]) ,可以看到计算过程。 Java上用class造解释器同理,只是给 (run ,if, 1/""/true) 的语义(\f. 内是多表达式) 专门建立Node了而已,因为我们必须区分(顶层/函数内) 是”语句列表“而非调用的特殊「语义」(解释器只看语法树,不知”层级关系“,解析信息必编码为此IR中间表式),S-表达式里用x[0]标注足矣。 解析到此”非规范“AST是完全一样甚至更快的Node和S-expr 一样吗? let a=1,b=2 或 import a.* 应该是S不能表达的语法吧?
(= a 1 b 2) (use-all 'a)/甚至变import作用域表 就可以。把x[0]当节点类型即可。另外S的本质(前序算式)可以和后序的+-*/优先链、.[]()左先链 结合,算符后序 按*+重排序欸,大家也看到我编程风格的变化了:宁可用特殊语法+自己注释也不愿用工程的做法.. 主要是省字数,这里是教程 😅
但如果是省字数却弊大于利的情况,我会写自然点:例如 s.trim()!='' 也可写 !/\s/.test 或 !!s.trim ,这都是有取舍的。我经常对一个表达式改了又删,因为所有写法都不过是茫茫语法树里一片叶子罢了,没啥可稀奇
Telegram
duangsuse::Echo
明晚7点就是验收日了,我把一小段稿子贴这:
对动苏,无论如何计划好的文章会码完的。我本来就计划写 Java 入门,如果能乘上这次机会,或许会有不一样的收获。虽然人少但回形针前端也是非常靠谱的
<[^编程]是什么,许多大学毕业生也无法回答这个问题。许多人认为程序就是代码、Java代码、C代码,编程=写代码=“编码”,没有意识到 __代码背后的「目标领域」及其上「概念」__,其实,编程是从基础API(如List,int,..)用语言的定义结构(如变量,函数,类)和控制结构,实现自己的应用领域(Android…
对动苏,无论如何计划好的文章会码完的。我本来就计划写 Java 入门,如果能乘上这次机会,或许会有不一样的收获。虽然人少但回形针前端也是非常靠谱的
<[^编程]是什么,许多大学毕业生也无法回答这个问题。许多人认为程序就是代码、Java代码、C代码,编程=写代码=“编码”,没有意识到 __代码背后的「目标领域」及其上「概念」__,其实,编程是从基础API(如List,int,..)用语言的定义结构(如变量,函数,类)和控制结构,实现自己的应用领域(Android…
解析器(同时分词)和树遍历(以栈)、集合类型论+型参(in-out性)与推导、二进制组/支结构、(虚表,双指针)多态/(函外量编号保存)闭包/(值变量归一)解构、伪递归,不完整求值等流控 都到齐了,就差实践经验和CPS变换的协程/序列<T> 不会了 🤔
嘛,但那些大佬也对这些没有帮助。说到底最后出力的还是工程界的各位,明明做过那么多尝试,写文出来还是很精炼,很默默无闻
嘛,但那些大佬也对这些没有帮助。说到底最后出力的还是工程界的各位,明明做过那么多尝试,写文出来还是很精炼,很默默无闻
简单和复杂都是选择。这些之上,才有幼稚和成熟
我会努力追求成熟的简单 因为我是程序员 也是「语言」爱好者
为了传递而简化知识对我来说不是一种开销,而是继续学习的收益
编程的目的不是创造,而是表达早已烂熟于心的想法,不是(示例)代码给你创造力,而是API让你明白能干什么,从而设计出许多情况(地点时机动作)。对于框架不使用的人,他们理解领域概念和低层API(如HTTP/socket-bind,UNIX-ABI/x86) 也能组织程序,而这些程序和其它程序亦无不同,概念相同体现不同 先解概念,就像程序与UI。
识得代码暴露的操作框架总让我们感觉程序员与常人不同,比其他人更懂电脑、能做更多,或者觉得移动和桌面就本质不同,试着理解二维数组、各种生硬结构,而忘了Excel表格里最直观的行1列A、文字换行的先y后x,以及许多代码就是自动编辑几字Ctrl+F的事实。 不是因为我们不一样,而是我们能提出模板。
我们总觉得自己不一样,小看那些普通的真理,于是费力解决一个简单的问题,顺带制造更多问题,而把这当成进步。
我们总是崇拜一个偏大的框架和概念,却看不见自己只能利用到它的10%,而其内真正起效的行数是1%,以及程序本身就是由无数孤立、复用的小结构组成最终的“大”产物
过于相信“调用” "类"们的效果、过于相信app是不同于lib的,而忽视了程序语言是语言、程序最终是什么。
许多编程界的流行不是最优解、许多IT话术没实验,而最优解(web,kotlinmp)缓慢发展,与其用技术适用解释,不如用社会心理来猜。
编程和人类的语言是没区别的,也应轻重合适、语序得当、重复得有意义,不重复的有语义。
不是越长越好,也不是1字母就好,如果是套话,不如说给计算机听,它们比数学严谨得更死板;而人类,需要良好上下文和顺序的知识,语言滑坡 就得读者智商来凑,
读懂错误表达,我不视其为能力,更讨厌这种无效智力
我会努力追求成熟的简单 因为我是程序员 也是「语言」爱好者
为了传递而简化知识对我来说不是一种开销,而是继续学习的收益
编程的目的不是创造,而是表达早已烂熟于心的想法,不是(示例)代码给你创造力,而是API让你明白能干什么,从而设计出许多情况(地点时机动作)。对于框架不使用的人,他们理解领域概念和低层API(如HTTP/socket-bind,UNIX-ABI/x86) 也能组织程序,而这些程序和其它程序亦无不同,概念相同体现不同 先解概念,就像程序与UI。
识得代码暴露的操作框架总让我们感觉程序员与常人不同,比其他人更懂电脑、能做更多,或者觉得移动和桌面就本质不同,试着理解二维数组、各种生硬结构,而忘了Excel表格里最直观的行1列A、文字换行的先y后x,以及许多代码就是自动编辑几字Ctrl+F的事实。 不是因为我们不一样,而是我们能提出模板。
我们总觉得自己不一样,小看那些普通的真理,于是费力解决一个简单的问题,顺带制造更多问题,而把这当成进步。
我们总是崇拜一个偏大的框架和概念,却看不见自己只能利用到它的10%,而其内真正起效的行数是1%,以及程序本身就是由无数孤立、复用的小结构组成最终的“大”产物
过于相信“调用” "类"们的效果、过于相信app是不同于lib的,而忽视了程序语言是语言、程序最终是什么。
许多编程界的流行不是最优解、许多IT话术没实验,而最优解(web,kotlinmp)缓慢发展,与其用技术适用解释,不如用社会心理来猜。
编程和人类的语言是没区别的,也应轻重合适、语序得当、重复得有意义,不重复的有语义。
不是越长越好,也不是1字母就好,如果是套话,不如说给计算机听,它们比数学严谨得更死板;而人类,需要良好上下文和顺序的知识,语言滑坡 就得读者智商来凑,
读懂错误表达,我不视其为能力,更讨厌这种无效智力
duangsuse::Echo
#plt 呃,这几天眼睛有点疼,那个网页重构也接近尾声了(目的就是交个PR),马上把雄狮扭眼的”热度蹭完“,我就能开始二进制pybind了 ……但是到2月我就必须开始制作一个H5动画礼物,以现在这个效率…… (而且之前说的 Java 入门又鸽子了,尽管对话框和离线javac的问题解决,其他内容还是需费精力 说真的我没一次蹭上国内热度,因为每次都是我趁机学了些”没用的“(比如彩字符画、粒子动画、MBR程序、C指针和数组啦),然后数据不好看 😂 这次也是一样,我用shift重映射圆心距l=1~len 环上像…
我太阳,才发现这个别人能发博文的东西,我竟然连标题和名字都没起,试运行成功贴上就pass了…… 这不是在线教SICP(程序的构造和解释)吗🤪 #lisp #fp #zhihu #statement
放到以前我绝对搞大新闻一样,就像之前仿造(但也没成功)Lice 时专门建了项目画了logo,然后文档拼缀别人的,最后模板代码写完不会了 🙈
但说起来,元编程最后也不过是编程。你了解编程语言,很好,但语言只是载体,美丽的、各种各样的应用才是我们的最终目的。
你能写编译器,很好,但也不过是完成了文本模式和树遍历,加上一些理论。 编译器的中/后端分析优化 也是同样的处理流程,也有简单和最优的做法,「编译器」,对这个流程而言并不特殊。「编程」,对代码可变的计算机并不特殊。
就像让语言运行(尽管一些没执行序)于计算机的工具,也竟只不过是种应用,如果你了解可复用的前缀解析器:
#js #code #parsing
顺便一提: eCall 的首项其实不是
那么语言的实现,以及各种DSL(make,ant.xml) 与普通CLI程序(grep,sed,..)没啥不同。 得到了菜刀,就更要懂得取舍其能力。 菜刀不能用来干什么? 如果这么用,人多后风险是什么? 怎么最简及最优地添加功能? 这才是编程语言爱好者该思考的问题。 编程语言是更精确的自然语言,优化一篇文章和优化一段代码,是存在不少相似性的;编程和数学都能”提升思维“,但编程更擅长表达。表达也是智力。
解释或编译,JIT为REPL执行或动态优化,都是相同目标的不同选择,大同小异,关键在懂得它和已知知识的差异。
(补充: Fun,Call,var 在函数式一般称 abs,app,subst .当然王某那篇 就没有用这些稀奇名字. 我这里没有let-in 和 (+ 的 prim 操作,都是通过JS 函数相互引入。换Java用reflect也可
Java/Kt实现之所以长,是因为要强类型检查 而且fun eval() 和override啥的重复许多遍,语义上并没有新概念
C/Py实现之所以长,是在文法期(lex-yacc)和纸面推导磨叽太久、语言本身特性缺失(union:int nodeTag)和
工程界一般科普做个计算器(Node/队列指针)还是很直接的,可是不能表达变量和按语序参数,会造成很多问题(CSS支持变量后就变贼有用了)
毕竟大家开始学编程时都是按直觉的,
你把东西写长,不会让它更”生产“或”可配置“ ”易懂“;写短,不会”更快“或”有内涵“,语义不多不少,它就在那。我觉得这是仍没见过汇编的程序员该有的认识。不知道为什么,重视语义的人很少,仿佛世界上只有语法和”JSON,YAML“这些名字,而操作它们的库API也都是孤立的,并不存在一个”概念“把所有的一切语法和表象连起来。
举个例子,S表达式就能表示HTML🙃。有人想过拿JSON保存这个吧,但是因为含大量children:[]被怼,但S表达式
现在不少人就把它的影子当新DSL呢!我们是不是该说这是「历史倒流」呢🌝
也有许多往JS内嵌XML呢! 作为代码移植的好帮手,还真是十分有必要不独立转化而新建jsx语言呢,这样就能在单文件写html了不是?
语言对程序员来说并不遥远。它笼罩着编程的方方面面。
无论是以何种形式使用,对语言的理解决定程序员的能力,并不是做的事多了,就懂语言。
解释器实现不是不能自顶向下拆开讲,因为许多人某层面就知道那一种做法(比如刚才
另一方面咱领域人少,一些只顾自己写开心的魔法师(人和领域是互相选择的。冷门专业冷门人)就多些,真正做科普的就少
我们从小就被教导要努力向谁看齐、要按套路管理自己的生活乃至一生,要给各种技术排名次、造『鄙视链』,可是我看到许多Vlogger,每个人都有不同的经济条件、地理位置和性格,但真的无法把他们的视频风格分出高低谁谁淘汰,他们都能让你开阔眼界——普通的生活也能如此有意思,原来做记录也可以不像在记录,却达到更好效果。
确实,技术不是最难解决的问题;把眼光放开阔,许多问题或许就是人为制造,可以从更远的地方追溯修整方案呢! #recommended
谁告诉你 combinator 和 Maybe 及类型推导,跨编译就是函数式专属的(Kotlin),谁说逻辑式就必须复杂(miniKanren),谁说{}或end 最严谨(Python),Web怎么会只有”前端“功能呢(ES6+H5API)
如果世界上存在最优的编程语言——是哪个? 最简单的/功能最多的/最快的?
许多衡量标准本身就是冲突的,先有目的,然后才有最优解。 先懂为什么,然后才看做法
我们所学的知识和理论,有多少是罔顾了原因,只有做法和自恰性的? 文档并不是只有易理解与否,还有与现实、与其他的对应性,因为编程是一件实事,目的之下一切可替换的事。
到最后你才发现,根本不存在最优解,你所看到的优秀,不过是圈子里广为流传的假象。 世界上那么多人,所谓的大牛仍是天外有天,为什么你必须向他学习呢,难道你不能有比他做得好/做得广泛之处吗。
语言不重要,思想重要。
放下排名、放下”最佳实践“,做自己想做的
放到以前我绝对搞大新闻一样,就像之前仿造(但也没成功)Lice 时专门建了项目画了logo,然后文档拼缀别人的,最后模板代码写完不会了 🙈
但说起来,元编程最后也不过是编程。你了解编程语言,很好,但语言只是载体,美丽的、各种各样的应用才是我们的最终目的。
你能写编译器,很好,但也不过是完成了文本模式和树遍历,加上一些理论。 编译器的中/后端分析优化 也是同样的处理流程,也有简单和最优的做法,「编译器」,对这个流程而言并不特殊。「编程」,对代码可变的计算机并不特殊。
就像让语言运行(尽管一些没执行序)于计算机的工具,也竟只不过是种应用,如果你了解可复用的前缀解析器:
#js #code #parsing
feed=(s,i=0)=>d/*+peek -take*/=>{let q=d<0,r;if(q)d=-d;r=s.slice(i,i+d);if(q)i+=d; return r}
feed=(s,i=0)=>d=>d<0?(d=-d,s.slice(i,i+d,i+=d) ): s.slice(i,i+d) //返回前可加过滤空格(当前tok==0? 跳空格)和'\n'数行号
sign=s=>{let k=s(1),i; if(-1!= (i="+-正负".indexOf(k)) )return i%2==1}
num=s=>{let n=0,di;for(;/\d/.test(di=s(1));)n=n*10+(s(-1)-'0'); return n} //可以用-0 确保for至少有1次.
Seq=(...ps)=>s=>{let a=[],p;for(p of ps){r=p(s);if(!r)break;a.push(r)} return a}
pSelf=pOf=>{let p=s=>p(s); p.give=(P=pOf(p))=>p=P; return p}//wait give
"+123 负3 正2 -1".split(' ').map(code=>
Seq(sign,num)(feed(code)) )
呃,测试就不做了,大家作为小练习吧(反正外面也没讲的,不信你搜(顺便一提: eCall 的首项其实不是
d[kf] ,能继续(yes?fa:fb)(1),这也是个易混点。 let x=1 in e 与 ((\x. e) 1) 不完全一样,前者不涉及”函数作值“那么语言的实现,以及各种DSL(make,ant.xml) 与普通CLI程序(grep,sed,..)没啥不同。 得到了菜刀,就更要懂得取舍其能力。 菜刀不能用来干什么? 如果这么用,人多后风险是什么? 怎么最简及最优地添加功能? 这才是编程语言爱好者该思考的问题。 编程语言是更精确的自然语言,优化一篇文章和优化一段代码,是存在不少相似性的;编程和数学都能”提升思维“,但编程更擅长表达。表达也是智力。
解释或编译,JIT为REPL执行或动态优化,都是相同目标的不同选择,大同小异,关键在懂得它和已知知识的差异。
(补充: Fun,Call,var 在函数式一般称 abs,app,subst .当然王某那篇 就没有用这些稀奇名字. 我这里没有let-in 和 (+ 的 prim 操作,都是通过JS 函数相互引入。换Java用reflect也可
Java/Kt实现之所以长,是因为要强类型检查 而且fun eval() 和override啥的重复许多遍,语义上并没有新概念
C/Py实现之所以长,是在文法期(lex-yacc)和纸面推导磨叽太久、语言本身特性缺失(union:int nodeTag)和
__init__这种,而且但凡是个公开lib作者都爱过度设计(overdesign),很难写简洁的parser工程界一般科普做个计算器(Node/队列指针)还是很直接的,可是不能表达变量和按语序参数,会造成很多问题(CSS支持变量后就变贼有用了)
毕竟大家开始学编程时都是按直觉的,
int n; new ListSeter(){ void f(List a){a[0]=n;} } 里new了的Type实质是函数(SAM单方法接口),而SAM实质又是包含n和算式的数据(闭包),for(i0;i<;i++) 是 for(i in 0..N) 这样都没想过吧。 框架定义,我就用,这是外国 Java 在 Kotlin 出现后如此被动的原因。 😅你把东西写长,不会让它更”生产“或”可配置“ ”易懂“;写短,不会”更快“或”有内涵“,语义不多不少,它就在那。我觉得这是仍没见过汇编的程序员该有的认识。不知道为什么,重视语义的人很少,仿佛世界上只有语法和”JSON,YAML“这些名字,而操作它们的库API也都是孤立的,并不存在一个”概念“把所有的一切语法和表象连起来。
举个例子,S表达式就能表示HTML🙃。有人想过拿JSON保存这个吧,但是因为含大量children:[]被怼,但S表达式
(div.wtf (id xx) (a (href xx title 上级)) 就能表示HTML-DOM。现在不少人就把它的影子当新DSL呢!我们是不是该说这是「历史倒流」呢🌝
也有许多往JS内嵌XML呢! 作为代码移植的好帮手,还真是十分有必要不独立转化而新建jsx语言呢,这样就能在单文件写html了不是?
语言对程序员来说并不遥远。它笼罩着编程的方方面面。
无论是以何种形式使用,对语言的理解决定程序员的能力,并不是做的事多了,就懂语言。
解释器实现不是不能自顶向下拆开讲,因为许多人某层面就知道那一种做法(比如刚才
zipMap 我不提出来 理解难度就++, 或者我写一大堆XXNode, 人也get不到调用和查变量的重点),他觉得无可替换(或者”这就是最快的“),而篇幅又巨大,对初学者会非常不友好另一方面咱领域人少,一些只顾自己写开心的魔法师(人和领域是互相选择的。冷门专业冷门人)就多些,真正做科普的就少
我们从小就被教导要努力向谁看齐、要按套路管理自己的生活乃至一生,要给各种技术排名次、造『鄙视链』,可是我看到许多Vlogger,每个人都有不同的经济条件、地理位置和性格,但真的无法把他们的视频风格分出高低谁谁淘汰,他们都能让你开阔眼界——普通的生活也能如此有意思,原来做记录也可以不像在记录,却达到更好效果。
确实,技术不是最难解决的问题;把眼光放开阔,许多问题或许就是人为制造,可以从更远的地方追溯修整方案呢! #recommended
谁告诉你 combinator 和 Maybe 及类型推导,跨编译就是函数式专属的(Kotlin),谁说逻辑式就必须复杂(miniKanren),谁说{}或end 最严谨(Python),Web怎么会只有”前端“功能呢(ES6+H5API)
如果世界上存在最优的编程语言——是哪个? 最简单的/功能最多的/最快的?
许多衡量标准本身就是冲突的,先有目的,然后才有最优解。 先懂为什么,然后才看做法
我们所学的知识和理论,有多少是罔顾了原因,只有做法和自恰性的? 文档并不是只有易理解与否,还有与现实、与其他的对应性,因为编程是一件实事,目的之下一切可替换的事。
到最后你才发现,根本不存在最优解,你所看到的优秀,不过是圈子里广为流传的假象。 世界上那么多人,所谓的大牛仍是天外有天,为什么你必须向他学习呢,难道你不能有比他做得好/做得广泛之处吗。
语言不重要,思想重要。
放下排名、放下”最佳实践“,做自己想做的
Htmleaf
基于HTML5 WebGL的图像扭曲变形动画特效效果演示_jQuery之家-自由分享jQuery、html5、css3的插件库
这是一款基于HTML5 WebGL的图像扭曲变形动画特效。该特效中,通过Three.js来制作从一幅缩略图,扭曲变形为全屏大图的动画特效,共有6种炫酷的动画效果。
duangsuse::Echo pinned «我太阳,才发现这个别人能发博文的东西,我竟然连标题和名字都没起,试运行成功贴上就pass了…… 这不是在线教SICP(程序的构造和解释)吗🤪 #lisp #fp #zhihu #statement 放到以前我绝对搞大新闻一样,就像之前仿造(但也没成功)Lice 时专门建了项目画了logo,然后文档拼缀别人的,最后模板代码写完不会了 🙈 但说起来,元编程最后也不过是编程。你了解编程语言,很好,但语言只是载体,美丽的、各种各样的应用才是我们的最终目的。 你能写编译器,很好,但也不过是完成了文本模式和树遍历,加上一些理论。…»