编游者认为,开发游戏的 Linux 版本带来的额外玩家相比额外的问题报告数太少,因此不值得特意支持。 u/koderski 则以相似的论据提出了一个相反的主张:支持 Linux 平台可以让独立游戏开发者得到一个免费的 QA 团队。
koderski 发布了一款支持 Linux 平台的游戏《ΔV: Rings of Saturn》[1]。这位开发者得来的经验是:对 Linux 平台的支持确实会为游戏开发者带来大量问题报告,
但这些问题报告绝大多数都是平台无关的,
因此并没有耗费开发者额外的时间。而且,Linux 用户提报的问题报告通常质量更好。
https://blog.gslin.org/archives/2021/10/25/10386/
koderski 发布了一款支持 Linux 平台的游戏《ΔV: Rings of Saturn》[1]。这位开发者得来的经验是:对 Linux 平台的支持确实会为游戏开发者带来大量问题报告,
但这些问题报告绝大多数都是平台无关的,
因此并没有耗费开发者额外的时间。而且,Linux 用户提报的问题报告通常质量更好。
https://blog.gslin.org/archives/2021/10/25/10386/
Gea-Suan Lin's BLOG
獨立遊戲創作者推出 Linux 版的好處
標題不知道怎麼下,大概就是這樣... 從 Hacker News 首頁上翻到的,以這個 upvote 數量來看,應該會收到今天的 Hacker News Daily 上:「Despite having just 5.8% sales, over 38% of bug reports come from Linux (reddit.
duangsuse::Echo
这类实用性较低的知识,是否希望解释名词
结束洗稿。感觉可能需要一堆正则重构工具,我不想看到「一个一个一个」这样的量词🌶
😅开个玩笑啦,本频道以「编程」原创内容为主,这些只挑重点
呃既然你们觉得这技术也想了解,我之类弄mkey了解了些 讲。没博客也是我的失败,过几个月大概。
关系式 1=1 成立 1=2 不成立
a=1 和 1=a 成立
成立得解,于是程序=目标Goal=等式的所有解
注意,等号是没有方向的。在 #js 有 [x,y]=p 和 p=[x,y] ;看起来是关系式,其实等号左是模式pat、右值expr,关系式里,变量是值、含变量数组[a,1]=[1,a] 也是值-js里 [x,y]就是死模式
(append-out "a" x "abc") Yes. x="bc"
因为『未知量』也是值。
def (appendo a b c)
b=''&c=a |{x r. [x,r]=b&this([a,x],r,c) }
其中this是递归 ab皆链表
如a=c='?' 则成立
如a='1' b='2' 则 f(12,'',c)=a ,知道abc里任何两项都能推完-除非 f('a','','?a')={c!=a} No.
为啥变量也是值?因为语义不是「重写化简:(1+2)=3」而是归一 #fp unification ,即我开头说的 a=1&1=a ,成立, a=1|a=2 ,在不同上下文-各自成立。KV上下文{x r. goal}就是结果,它没有求值 只有a=b=c 相等性传播。这显然涉及数组解构(unify-[a]=[1])、再构(reify/grab v from ctx),别忘了c=12的例子 有1个x变量,c=123 就有两个x 在回溯时=b[0]
实现细节都讲了,式Goal如=, &| {a b.}是组合其它式,得惰性K=Symbol/唯一str -V流的,一般 &会用eachNext([1],[2])=12 做,|就是并联,然后unify "abc"=[x,r]/grab "${x}bc" 都是deep的。un和deepEq类似但能给变量赋值,un失败得null。有变量 a:b,b:c 则 get(a)=c; get(2)=2
可以去 https://github.com/tca/veneer 试试关系式编程。因为相等关系能构成 [],{},"" 数据- 它们都是“算式得出”的,关系式可以实现列表处理和判定-但不能 while(1)print 这种“动作语义”
纯函数式(不含Scheme,rkt 等)也没有,但二者不同。
它可以用于类型推导 #kotlin #ce #typing
fun<T> T.let(op:(T)->R): R 里,类型参数没有上下界,只有「确定性」-每处T不能同时是Int,Date
因此在检查时,第一遍 receiver T 提供T:Int,ParamType 实例 (T)->R 试把自己的 T 与之归一,比如 Int|Number=Number ;第二遍检查 Int. 仍符合 Number.let 的签名,可以调用。
如果是 fun<T> Any.asType():T ,第一遍T没有信息(参数的-类型表达式 里没有使用) 也非T:Any ,推导就失败了;或者推导出 T=Int|Date=Any ,查不到重载,第二遍检查报错
T在编译期是和语法树1:1的data(var actual:Type?),所以 fun rec(x:T)=rec(x-1).plus(1) 也推不出来/不该想那么多
而 val n=1 写明就是 <T>val n:T=1 ,T=typeof 1 ,如写 (n+2)且(+):TT->T 则也有 {T R. n=1 :T & (n+ 2:T):R } 关系式
qunie就是鸡兔同笼这类问题,TDD 是面向🐒跳键盘编程(确信..其实是先写检查),可以穷举也可上关系式,总之mk是挺直白的,确实是pdf界一股清流
https://t.iss.one/ice_learn_arend/199 那么我们来看实际应用
\func wow {U : \Type} {T : U -> \Type} (A B : U) (a : T A) (b : T B) : Nat => zero
wow(U:T F:U->T) AB:U a(FA) b(FB) :Nat=zero
t1(AB:T) x:A y:B =wow ABxy --fail
t2(AB:T) x:A y:B =wow {_} {\. _} A B x x
是啊,是为什么呢🧐 又是怎么用呢
一说SQL和mk同类,只不过是查询既有关系(而且必需SELECT a,b或*),此外有 swi-prolog.org
这也是我发投票 https://t.iss.one/dsuse/17241 的原因
比如 #zhihu 某专栏的作者
浅尝 miniKanren,传说中的逻辑式编程(二) - 吴烜xuan三声的文章 - 知乎
https://zhuanlan.zhihu.com/p/372280127
如果不是因为科普的萎靡,他本来可以做更有价值的事,这难道不值得所谓的PLT人三思吗? #statement
我到底是一个一个一个什么啊(全恼)🥱
😅开个玩笑啦,本频道以「编程」原创内容为主,这些只挑重点
呃既然你们觉得这技术也想了解,我之类弄mkey了解了些 讲。没博客也是我的失败,过几个月大概。
关系式 1=1 成立 1=2 不成立
a=1 和 1=a 成立
成立得解,于是程序=目标Goal=等式的所有解
注意,等号是没有方向的。在 #js 有 [x,y]=p 和 p=[x,y] ;看起来是关系式,其实等号左是模式pat、右值expr,关系式里,变量是值、含变量数组[a,1]=[1,a] 也是值-js里 [x,y]就是死模式
(append-out "a" x "abc") Yes. x="bc"
因为『未知量』也是值。
def (appendo a b c)
b=''&c=a |{x r. [x,r]=b&this([a,x],r,c) }
其中this是递归 ab皆链表
如a=c='?' 则成立
如a='1' b='2' 则 f(12,'',c)=a ,知道abc里任何两项都能推完-除非 f('a','','?a')={c!=a} No.
为啥变量也是值?因为语义不是「重写化简:(1+2)=3」而是归一 #fp unification ,即我开头说的 a=1&1=a ,成立, a=1|a=2 ,在不同上下文-各自成立。KV上下文{x r. goal}就是结果,它没有求值 只有a=b=c 相等性传播。这显然涉及数组解构(unify-[a]=[1])、再构(reify/grab v from ctx),别忘了c=12的例子 有1个x变量,c=123 就有两个x 在回溯时=b[0]
实现细节都讲了,式Goal如=, &| {a b.}是组合其它式,得惰性K=Symbol/唯一str -V流的,一般 &会用eachNext([1],[2])=12 做,|就是并联,然后unify "abc"=[x,r]/grab "${x}bc" 都是deep的。un和deepEq类似但能给变量赋值,un失败得null。有变量 a:b,b:c 则 get(a)=c; get(2)=2
可以去 https://github.com/tca/veneer 试试关系式编程。因为相等关系能构成 [],{},"" 数据- 它们都是“算式得出”的,关系式可以实现列表处理和判定-但不能 while(1)print 这种“动作语义”
纯函数式(不含Scheme,rkt 等)也没有,但二者不同。
它可以用于类型推导 #kotlin #ce #typing
fun<T> T.let(op:(T)->R): R 里,类型参数没有上下界,只有「确定性」-每处T不能同时是Int,Date
因此在检查时,第一遍 receiver T 提供T:Int,ParamType 实例 (T)->R 试把自己的 T 与之归一,比如 Int|Number=Number ;第二遍检查 Int. 仍符合 Number.let 的签名,可以调用。
如果是 fun<T> Any.asType():T ,第一遍T没有信息(参数的-类型表达式 里没有使用) 也非T:Any ,推导就失败了;或者推导出 T=Int|Date=Any ,查不到重载,第二遍检查报错
T在编译期是和语法树1:1的data(var actual:Type?),所以 fun rec(x:T)=rec(x-1).plus(1) 也推不出来/不该想那么多
而 val n=1 写明就是 <T>val n:T=1 ,T=typeof 1 ,如写 (n+2)且(+):TT->T 则也有 {T R. n=1 :T & (n+ 2:T):R } 关系式
qunie就是鸡兔同笼这类问题,TDD 是面向🐒跳键盘编程(确信..其实是先写检查),可以穷举也可上关系式,总之mk是挺直白的,确实是pdf界一股清流
https://t.iss.one/ice_learn_arend/199 那么我们来看实际应用
\func wow {U : \Type} {T : U -> \Type} (A B : U) (a : T A) (b : T B) : Nat => zero
wow(U:T F:U->T) AB:U a(FA) b(FB) :Nat=zero
t1(AB:T) x:A y:B =wow ABxy --fail
t2(AB:T) x:A y:B =wow {_} {\. _} A B x x
是啊,是为什么呢🧐 又是怎么用呢
一说SQL和mk同类,只不过是查询既有关系(而且必需SELECT a,b或*),此外有 swi-prolog.org
这也是我发投票 https://t.iss.one/dsuse/17241 的原因
比如 #zhihu 某专栏的作者
浅尝 miniKanren,传说中的逻辑式编程(二) - 吴烜xuan三声的文章 - 知乎
https://zhuanlan.zhihu.com/p/372280127
如果不是因为科普的萎靡,他本来可以做更有价值的事,这难道不值得所谓的PLT人三思吗? #statement
我到底是一个一个一个什么啊(全恼)🥱
GitHub
GitHub - tca/veneer: miniKanren in the browser
miniKanren in the browser. Contribute to tca/veneer development by creating an account on GitHub.
duangsuse::Echo
这类实用性较低的知识,是否希望解释名词
感觉我已经变了😂 曾经觉得「好厉害」的东西、在追寻的东西,现在被我穿小鞋;搞唯实用论、刻板标签化。明明开始的时候就是为她离开(也是因为我不会app吧),现在却在嫌弃,为什么?
为什么我不觉得它有意思了呢
我讨厌重复
为什么我不觉得它有意思了呢
我讨厌重复
This media is not supported in your browser
VIEW IN TELEGRAM
#YearPassed 好家伙,本来打算发的3D圣诞环,被我鸽没了!😂
哦对了,我是永远蹭不上热度的 科普也不会的 小众程序员呢
哦对了,我是永远蹭不上热度的 科普也不会的 小众程序员呢
Forwarded from 层叠 - The Cascading
有的事情还是要时不时提一下,或者说 Hacker News 会有人时不时提一下:
https://fuckoffgoogle.de/
https://news.ycombinator.com/item?id=29741709
#Google
https://fuckoffgoogle.de/
https://news.ycombinator.com/item?id=29741709
#fp #haskell 😒简单的问题答得太trivial/泛泛,复杂的问题无论tikv,jetbrains分部 都没几人知道,当然不知道发什么了,因为发了也没人懂
(另:hs是不在语言鄙视链顶端。有趣的是APL这种"优美"的单向数学语言都能排上号
没有简单哪来的复杂? 我们总是喜欢掩盖或隐藏自己的过去、排斥嘲讽幼稚的东西,丢弃一些入门级太随性的理解,却没有意识到正是「基础」的层层累积到达现在的高度,它们只是融化扩张了,不是消失了。
没有人能懂的东西,就发挥这种内行专属的、孤独单一的价值吧,社会上哪哪不是如此,动画片就幼稚、宫斗剧就成熟,胜过一切的成熟是否包含幼稚呢? 其实对不同的目的,小和大、简单和繁杂 都有用处,在它们之上,才有幼稚和成熟。
我们总是以为www就是一切、觉得这是最好最快的时代,其实有多少知识是网上搜不到的、多少技术工具明明可以更好服务于人,却各自主张,似乎是自给自足的孤岛。
我希望无论学到什么,心都是万年幼稚鬼,但口却越来越娴熟,就是这样。 😒#tech #statement
(另:hs是不在语言鄙视链顶端。有趣的是APL这种"优美"的单向数学语言都能排上号
没有简单哪来的复杂? 我们总是喜欢掩盖或隐藏自己的过去、排斥嘲讽幼稚的东西,丢弃一些入门级太随性的理解,却没有意识到正是「基础」的层层累积到达现在的高度,它们只是融化扩张了,不是消失了。
没有人能懂的东西,就发挥这种内行专属的、孤独单一的价值吧,社会上哪哪不是如此,动画片就幼稚、宫斗剧就成熟,胜过一切的成熟是否包含幼稚呢? 其实对不同的目的,小和大、简单和繁杂 都有用处,在它们之上,才有幼稚和成熟。
我们总是以为www就是一切、觉得这是最好最快的时代,其实有多少知识是网上搜不到的、多少技术工具明明可以更好服务于人,却各自主张,似乎是自给自足的孤岛。
我希望无论学到什么,心都是万年幼稚鬼,但口却越来越娴熟,就是这样。 😒#tech #statement
Forwarded from ice learn agda
I haven't been updating this channel for a really long time. I am just unsure what to post. I'll think of something to share once I came up with anything.
duangsuse::Echo pinned «结束洗稿。感觉可能需要一堆正则重构工具,我不想看到「一个一个一个」这样的量词🌶 😅开个玩笑啦,本频道以「编程」原创内容为主,这些只挑重点 呃既然你们觉得这技术也想了解,我之类弄mkey了解了些 讲。没博客也是我的失败,过几个月大概。 关系式 1=1 成立 1=2 不成立 a=1 和 1=a 成立 成立得解,于是程序=目标Goal=等式的所有解 注意,等号是没有方向的。在 #js 有 [x,y]=p 和 p=[x,y] ;看起来是关系式,其实等号左是模式pat、右值expr,关系式里,变量是值、含变量数组[a…»
Forwarded from 螺莉莉的黑板报
有一个教育主题的开源大企划想做,但是不是很确定能不能做得出来,需要很多肝和时间。
如果你对X学科的大学教育感到不满并且有自己的想法的话,我们可以一起聊聊。
如果你对X学科的大学教育感到不满并且有自己的想法的话,我们可以一起聊聊。
这几天也没啥可干🌚 队头就是二进制绑定、kd树等探索和..绝句编译器前的验收 这个我不急 #project
这样并不泛泛的实例,或许也有助于我提升web前端水平
请大家有空时了解下这个科普项目吧 ..虽然现在还在讨论
我这次的文章是 OOP 结合 awt.Graphics 绘制印花,扩充是UI参数化 支持 px,% 单位,以及 Android Painter 移植
形式是带canvas TIY编辑(只有JS伪码部分)
教学目的: 区间迭代、边界情况、子类继承、数据分类型
碎碎念:请看下节!列表处理可以批量转化和过滤出需要的信息,对与排序和字段过滤Excel很在行,Java里可没那么直观,但更强大!它需要咱对程序的流程和流程的复用先有了解-动手做好准备吧
补角:i++或++i 问题、ret/tmp 变量必要性、?:三元表达式、声明与赋值-最右出现原则
可能不会教 for(item:a)list.add(f(item)) 等过时写法,固化 for(=0;<N;+=1) 区间迭代写法(应该会是我入 #fp 以来最克制的教程了)
这样并不泛泛的实例,或许也有助于我提升web前端水平
请大家有空时了解下这个科普项目吧 ..虽然现在还在讨论
我这次的文章是 OOP 结合 awt.Graphics 绘制印花,扩充是UI参数化 支持 px,% 单位,以及 Android Painter 移植
形式是带canvas TIY编辑(只有JS伪码部分)
教学目的: 区间迭代、边界情况、子类继承、数据分类型
碎碎念:请看下节!列表处理可以批量转化和过滤出需要的信息,对与排序和字段过滤Excel很在行,Java里可没那么直观,但更强大!它需要咱对程序的流程和流程的复用先有了解-动手做好准备吧
补角:i++或++i 问题、ret/tmp 变量必要性、?:三元表达式、声明与赋值-最右出现原则
可能不会教 for(item:a)list.add(f(item)) 等过时写法,固化 for(=0;<N;+=1) 区间迭代写法(应该会是我入 #fp 以来最克制的教程了)
Forwarded from dnaugsuz
如果你真的想开始干,4天内我们写自己领域入门级的教程,然后看怎么改吧? 😒
千里之行始于足下
千里之行始于足下
#rblog #yearpassed https://blog.rxliuli.com/p/971404f2f72c429083a614f8ee522237/ webos 里支持一个编程语言自动化,和插件
rxliuli blog
2021 年终总结及 2022 的计划
年初计划 总结似乎很多人已经发布了 2021 年的年终总结,吾辈现在好像有点晚了?不过权当新年寄语吧! 首先祝泥萌新年快乐! 今年发生了一些特别的事情 更换工作,并且从广州跑到了北京 基于 web 技术实现插件体系 在生产中验证了许多技术的可行性 kigurumi 穿了全套的 cosplay 服装 也发一下今年的 github 贡献图 更换工作,并且从广州跑到了北京毫无疑问,今年对吾辈
duangsuse::Echo
这几天也没啥可干🌚 队头就是二进制绑定、kd树等探索和..绝句编译器前的验收 这个我不急 #project 这样并不泛泛的实例,或许也有助于我提升web前端水平 请大家有空时了解下这个科普项目吧 ..虽然现在还在讨论 我这次的文章是 OOP 结合 awt.Graphics 绘制印花,扩充是UI参数化 支持 px,% 单位,以及 Android Painter 移植 形式是带canvas TIY编辑(只有JS伪码部分) 教学目的: 区间迭代、边界情况、子类继承、数据分类型 碎碎念:请看下节!列表处理…
关于这个我说点想法,就比如上图复杂的印花是以6边形旋转而成,在定义『矩形』和『正方形』getArea() 后我简单定义父类『龟』来在Graphics上绘制它,阐述类的封装和多态抽象性(area 正方形= sqrt(4w), 矩=s sqrt(ww+hh) ),
通过点1次 画N边形() 引入子程序调用和成员继承 ,在下节『列表处理』我会回顾这节的矩形:xy累加调用,getArea() ,顺便引入队列 从小到大 逐个绘制
环境配置是 VSCode redhat.java 。
教学目标是理解判断/重复流控、for和while 的等效;画圆时我会引入break 和『语句』概念
这些都在『列表处理』得到加强
最近的大概会是我传递信息量最低的一次,20%篇幅策划在碎碎念指导😒 我都觉得2个图形太少,但对初学者真的太多-甚至要写配置UI.. -而且手动画圆有个dt细度参数,不是日常编程会出现的,我都不知道怎么讲
我真的无语,全网都没有JS版本的 Java2js transpiler ,TeaVM JSweet 都是 #Java 实现,真不知道它们宣称的跨是否能编译自己。 #ce #js ,如果想直接在线上试写Java,就只能自己写转译器(哪来的低时延后端啊
..好吧, https://docs.leaningtech.com/cheerpj/WebWorker-API 的实现有点复杂但应该可用... 问题是它要 bundle 个javac
通过点1次 画N边形() 引入子程序调用和成员继承 ,在下节『列表处理』我会回顾这节的矩形:xy累加调用,getArea() ,顺便引入队列 从小到大 逐个绘制
环境配置是 VSCode redhat.java 。
教学目标是理解判断/重复流控、for和while 的等效;画圆时我会引入break 和『语句』概念
这些都在『列表处理』得到加强
最近的大概会是我传递信息量最低的一次,20%篇幅策划在碎碎念指导😒 我都觉得2个图形太少,但对初学者真的太多-甚至要写配置UI.. -而且手动画圆有个dt细度参数,不是日常编程会出现的,我都不知道怎么讲
我真的无语,全网都没有JS版本的 Java2js transpiler ,TeaVM JSweet 都是 #Java 实现,真不知道它们宣称的跨是否能编译自己。 #ce #js ,如果想直接在线上试写Java,就只能自己写转译器(哪来的低时延后端啊
..好吧, https://docs.leaningtech.com/cheerpj/WebWorker-API 的实现有点复杂但应该可用... 问题是它要 bundle 个javac
duangsuse::Echo
关于这个我说点想法,就比如上图复杂的印花是以6边形旋转而成,在定义『矩形』和『正方形』getArea() 后我简单定义父类『龟』来在Graphics上绘制它,阐述类的封装和多态抽象性(area 正方形= sqrt(4w), 矩=s sqrt(ww+hh) ), 通过点1次 画N边形() 引入子程序调用和成员继承 ,在下节『列表处理』我会回顾这节的矩形:xy累加调用,getArea() ,顺便引入队列 从小到大 逐个绘制 环境配置是 VSCode redhat.java 。 教学目标是理解判断/重复流控、for和while…
https://github.com/libfirm/jFirm/blob/master/src/example/BrainFuck/BrainFuck.java#L152 看 MiniJava 时发现了一个MIR 编译框架,奇怪的知识增加了!
还有靠谱的以及不太靠谱的 #LLVM
考虑到 cheerpJ javafiddle.leaningtech.com 已经有 sun JavaCompier 的打包,考虑下搬运
还有靠谱的以及不太靠谱的 #LLVM
考虑到 cheerpJ javafiddle.leaningtech.com 已经有 sun JavaCompier 的打包,考虑下搬运
GitHub
jFirm/BrainFuck.java at master · libfirm/jFirm
Java Bindings for libFirm intended for compiler construction courses (focus is on ease of use) - jFirm/BrainFuck.java at master · libfirm/jFirm
https://jarble.github.io/transpiler/ 这个 pandoc .. 有点意思 #recommend
https://gitee.com/xupingmao/minipy 这个C实现文档不错 #py #ce
https://python.benwu.ca/ 基于wasm的py repl
https://gitee.com/xupingmao/minipy 这个C实现文档不错 #py #ce
https://python.benwu.ca/ 基于wasm的py repl
duangsuse::Echo
这几天也没啥可干🌚 队头就是二进制绑定、kd树等探索和..绝句编译器前的验收 这个我不急 #project 这样并不泛泛的实例,或许也有助于我提升web前端水平 请大家有空时了解下这个科普项目吧 ..虽然现在还在讨论 我这次的文章是 OOP 结合 awt.Graphics 绘制印花,扩充是UI参数化 支持 px,% 单位,以及 Android Painter 移植 形式是带canvas TIY编辑(只有JS伪码部分) 教学目的: 区间迭代、边界情况、子类继承、数据分类型 碎碎念:请看下节!列表处理…
This media is not supported in your browser
VIEW IN TELEGRAM
那么如果文章写得成功,我接下来半个月都是设计这些js控件、移植浏览器端代码执行... 还要移植 import 的路径, 头疼
不过如果做好了,就是世界上第一个所见即所得的编程课(迫真),话说回来是看网页写代码,还是直接照着网页打字试错,有那么重要吗? 🤔
我的答案是有——许多 JS playground 的流行就证明了这一点。 而且通过 textarea 我们可以提供课程相关的提示,示例 ,在教学阶段,这是自用IDE无法取代的,你不可能指望用户安装 snippet, 在一个孤立无援的陌生环境改代码 ;如果开发IDE插件也是不必要的
不过如果做好了,就是世界上第一个所见即所得的编程课(迫真),话说回来是看网页写代码,还是直接照着网页打字试错,有那么重要吗? 🤔
我的答案是有——许多 JS playground 的流行就证明了这一点。 而且通过 textarea 我们可以提供课程相关的提示,示例 ,在教学阶段,这是自用IDE无法取代的,你不可能指望用户安装 snippet, 在一个孤立无援的陌生环境改代码 ;如果开发IDE插件也是不必要的