duangsuse::Echo
#os #design 作为编程语言爱好者,谈谈RCE这些bug的根源吧: 程序员没做错, Dennis Ritchie 们错了 😅 为什么“溢出”基本上是C的专属呢?因为老冯的时代,“汇编器是在浪费 CPU cycle” 这种反人性的设计,被推崇为《程序员的自我修养》 (x86汇编的应用与骇客少,不讨论单片机界的情况) #recommend 就像JS人不懂 1+"1", 1-"1" 为啥会不同, 初学C的人很奇怪为啥 1+1 可以而 "a"+"b" 却不行(还必须 strcat 或 sprintf),…
Telegram
Ray Tracing
最近有些累,今天才抽时间看完。
鸿蒙(HongMeng, HM)是少有的能完整运行例如AOSP和OpenHarmony等大规模生产系统的微内核 microkernel。与它的一众先驱者(如 L4 / seL4)相比,比较有趣的是HM为不同的服务分出了不同的“隔离级别(IC)”,这样在不同IC间互相调用就有不同的性能开销(图1),从而允许根据负载场景来自由调整内核是更偏向隔离性即安全(路由器和车机系统:all in IC2)还是性能(手机:部分 IC0、兼容层IC1、驱动IC2):其中IC0、IC1均在…
鸿蒙(HongMeng, HM)是少有的能完整运行例如AOSP和OpenHarmony等大规模生产系统的微内核 microkernel。与它的一众先驱者(如 L4 / seL4)相比,比较有趣的是HM为不同的服务分出了不同的“隔离级别(IC)”,这样在不同IC间互相调用就有不同的性能开销(图1),从而允许根据负载场景来自由调整内核是更偏向隔离性即安全(路由器和车机系统:all in IC2)还是性能(手机:部分 IC0、兼容层IC1、驱动IC2):其中IC0、IC1均在…
duangsuse::Echo
#os #design 作为编程语言爱好者,谈谈RCE这些bug的根源吧: 程序员没做错, Dennis Ritchie 们错了 😅 为什么“溢出”基本上是C的专属呢?因为老冯的时代,“汇编器是在浪费 CPU cycle” 这种反人性的设计,被推崇为《程序员的自我修养》 (x86汇编的应用与骇客少,不讨论单片机界的情况) #recommend 就像JS人不懂 1+"1", 1-"1" 为啥会不同, 初学C的人很奇怪为啥 1+1 可以而 "a"+"b" 却不行(还必须 strcat 或 sprintf),…
#life “中国人的一生就像被一个进度条拖着,一旦不能往前进,就是重回起点。——反正不是《人间失格》”
🤔 你们是否好奇,刚才对C语言本身甚至SQL的设计指点江山、挥斥方遒,甚至亲手写了个SQL方言的人,该住在哪个城市,是哪个学校的毕业生呢? 上海?深圳? 985? 211? 与仓颉/OpenArk合作的北大CS系 ?
请评价文章的内容,结合你之前认识技术人的资历,仔细思考,什么级别的人能搞出这种批评。 该不会是刚入门的《C语言程序设计》本科生吧,毕竟他们喜欢抱怨?
若认识的大佬较少,您也可以看看提供Linux镜像的中科大CS老师在写什么: https://github.com/USTC-Resource/USTC-Course
记住这个心理预期。
记住,我谁都不是。 我高二的数学成绩是40分(120满分的那种),我在一个三线小城上了职业技术学院,甚至因为懒得抄作业还是肄业,之后也从未被人录用过(虽然差点被破格转正一次 )
但我的写作都是发自真心,包括上面tg这个"雪花粒子"效果我都用JS弄过( #cg 类代码也贴过)
(js代码可以F12粘贴到 https://duangsuse.github.io/tv//参动之画/粒子/index.html 执行
刚才和棍父友好交流了下,得知他想让我参军的理由
- 现在报名的人多的很,你想还去不了
- 干12年出来就分工作,前三年只需要努力,5w(1.4k/mo) 补贴谁管它啊
- 去了就是人上人,就像那些千军万马过独木桥的「考研人」一样。 不争取进步有什么意思
- 反正不能[躺]在家里
不过因为政策和官网不一样,暂时是去不了了,真希望我能在明年之前做出成绩吧 🙉
今天开始你永远是中国人! ✊😤
🤔 你们是否好奇,刚才对C语言本身甚至SQL的设计指点江山、挥斥方遒,甚至亲手写了个SQL方言的人,该住在哪个城市,是哪个学校的毕业生呢? 上海?深圳? 985? 211? 与仓颉/OpenArk合作的北大CS系 ?
请评价文章的内容,结合你之前认识技术人的资历,仔细思考,什么级别的人能搞出这种批评。 该不会是刚入门的《C语言程序设计》本科生吧,毕竟他们喜欢抱怨?
若认识的大佬较少,您也可以看看提供Linux镜像的中科大CS老师在写什么: https://github.com/USTC-Resource/USTC-Course
记住这个心理预期。
但我的写作都是发自真心,包括上面tg这个"雪花粒子"效果我都用JS弄过( #cg 类代码也贴过)
(js代码可以F12粘贴到 https://duangsuse.github.io/tv//参动之画/粒子/index.html 执行
刚才和棍父友好交流了下,得知他想让我参军的理由
- 现在报名的人多的很,你想还去不了
- 干12年出来就分工作,前三年只需要努力,5w(1.4k/mo) 补贴谁管它啊
- 去了就是人上人,就像那些千军万马过独木桥的「考研人」一样。 不争取进步有什么意思
- 反正不能[躺]在家里
不过因为政策和官网不一样,暂时是去不了了,真希望我能在明年之前做出成绩吧 🙉
今天开始你永远是中国人! ✊😤
cs.pku.edu.cn
北京大学助力仓颉编程语言发展 携手华为深耕国产基础软件研究-北京大学计算机学院
北京大学助力仓颉编程语言发展携手华为深耕国产基础软件研究2024年6月21日,在华为开发者大会(HDC)上,华为发布了一款全新的编程语言—仓颉。仓颉编程语言是一款面向全场景智能的新一代编程语言,主打原生智能化、天生全场景、高性能、强安全。早在2019年,由北京大学计算机学院院长胡振江教授带领的北京大学程序语言研究室就已经与华为仓颉团队围绕仓颉语言的开发环境与工具课题展开长期合作,旨在推进中国自主研发的编程技...
👍1
#dalao https://blog.gslin.org/archives/2024/08/07/11924/openai-現在可以輸出定義的-json-了/
https://blog.gslin.org/archives/2024/07/17/11893/scale:另外一個試著在-amd-gpu-上面跑-cuda-程式的嘗試/
https://blog.gslin.org/archives/2024/07/17/11893/scale:另外一個試著在-amd-gpu-上面跑-cuda-程式的嘗試/
Gea-Suan Lin's BLOG
OpenAI 現在可以輸出定義的 JSON 了
OpenAI 在「Introducing Structured Outputs in the API」這邊提到目前的 JSON mode 不能保證 schema 的正確性: While JSON mode improves model reliability for generating valid JSON outputs, it does not guarantee that the model’s response will conform to a particular schema.
Forwarded from Milkice's 我是高仿号我根本不懂中文
https://mp.weixin.qq.com/s/kZUafwIat2qpj7JyRFrmHw
文中提到的CVE的微软官方MSRC地址在这里:https://msrc.microsoft.com/update-guide/vulnerability/CVE-2024-38077
提到的mitigation是Disable Remote Desktop Licensing Service,而根据频道主浅薄的知识和简单的互联网搜索,Remote Desktop Licensing Service似乎仅仅是用于管理和分发RDS客户端访问许可的,如果你只是一个普通路过的开启了远程桌面服务(3389端口)的用户,似乎不会受影响,受影响的是那些Windows Server里安装并激活了RD Licensing角色
当然频道主也对此不甚了解,欢迎讨论,还是建议大家能更新的尽速更新
文中提到的CVE的微软官方MSRC地址在这里:https://msrc.microsoft.com/update-guide/vulnerability/CVE-2024-38077
提到的mitigation是Disable Remote Desktop Licensing Service,而根据频道主浅薄的知识和简单的互联网搜索,Remote Desktop Licensing Service似乎仅仅是用于管理和分发RDS客户端访问许可的,如果你只是一个普通路过的开启了远程桌面服务(3389端口)的用户,似乎不会受影响,受影响的是那些Windows Server里安装并激活了RD Licensing角色
当然频道主也对此不甚了解,欢迎讨论,还是建议大家能更新的尽速更新
#dalao https://www.kxxt.dev/blog/programming-thoughts/2022-04-16/
https://lutaonan.com/blog/code-artists/ #ai #dev 第二次提及了,不符合刻板印象的 #js 人 👍
把 AI 当作是你的员工,就像某一天你突然只需要 $20 一个月就能招无数多愿意帮你打工的人,你很快就会发现,你最终会面临两种局面:
局面1:你将手足无措,你突然发现如果你不是实现函数的那个人,你就不知道你应该做什么了。从前你沾沾自喜的手写快排,手写红黑树突然变得一文不值,无处施展。
局面2:你将如虎添翼,你突然发现你曾经有很多想法没有精力和时间去实现,现在突然有这么多廉价劳动力将不厌其烦地帮你写代码
在这里我要申明,这篇文章我是写给有一定经验的程序员看的。对于没有什么经验的程序员,多写点代码总是好的
就像下面这个例子,我只要说一句 add tanstack query provider 就能让 AI 帮我把 @tanstack/query 加到我的程序里,但如果你没有任何代码经验,你连 query 是什么都不知道
#sql
https://github.com/duckdb/pg_duckdb
https://github.com/asg017/sqlite-vec
#asm C语言的变量符号
https://t.iss.one/kaedeharakazuha17/3548?comment=26435
https://evian-zhang.github.io/learn-assembly-on-Apple-Silicon-Mac/1-底层的整数.html
https://nan-archive.vercel.app/debugger
#bash
https://github.com/kxxt/tracexec?tab=readme-ov-file#origin
可是 stra execve 也可以
https://lutaonan.com/blog/code-artists/ #ai #dev 第二次提及了,不符合刻板印象的 #js 人 👍
把 AI 当作是你的员工,就像某一天你突然只需要 $20 一个月就能招无数多愿意帮你打工的人,你很快就会发现,你最终会面临两种局面:
局面1:你将手足无措,你突然发现如果你不是实现函数的那个人,你就不知道你应该做什么了。从前你沾沾自喜的手写快排,手写红黑树突然变得一文不值,无处施展。
局面2:你将如虎添翼,你突然发现你曾经有很多想法没有精力和时间去实现,现在突然有这么多廉价劳动力将不厌其烦地帮你写代码
在这里我要申明,这篇文章我是写给有一定经验的程序员看的。对于没有什么经验的程序员,多写点代码总是好的
就像下面这个例子,我只要说一句 add tanstack query provider 就能让 AI 帮我把 @tanstack/query 加到我的程序里,但如果你没有任何代码经验,你连 query 是什么都不知道
#sql
https://github.com/duckdb/pg_duckdb
https://github.com/asg017/sqlite-vec
#asm C语言的变量符号
https://t.iss.one/kaedeharakazuha17/3548?comment=26435
https://evian-zhang.github.io/learn-assembly-on-Apple-Silicon-Mac/1-底层的整数.html
https://nan-archive.vercel.app/debugger
#bash
https://github.com/kxxt/tracexec?tab=readme-ov-file#origin
可是 stra execve 也可以
alias stra='strace --quiet=attach,exit -f -e "signal=!chld" -e'
www.kxxt.dev
[编程感想] 2022年4月16日
最近在进行开发的时候, 总有一种感觉, 我感觉编程时很多知识是通过尝试来尝试出来的,而不是通过阅读文档得来的。我并不清楚这是我的个人体验还是很多人的共同感受。但是,经过思考,我发现这种方式存在着一些问题: 通过尝试得来的知识有时是不准确的,甚至会造成非常严重的后果,一些…
Forwarded from Programmer Humor
duangsuse::Echo
#china #meme #freedom 😁 “断网证”DLC的上线,将再次加强恶俗互害力度,由民粹发展到官粹? 从泄露个资到赋红马,中国民主们也一直在努力呢~ 再次鉴证大秦的诞生,通过严刑峻法与文字狱,为苛捐盐税保驾护航。只是,这一届的商鞅们啥时候被车裂呢?🥰 “网信办所希望的举报队呢,可以说是新时代的纳粹党卫队,只是枪是赛博的枪。比疫情时获得权力的大白效率还高” “一些人觉得这只是言论自由的问题,(看图吧🌚以刑化国债还真是资本主义的罪过呢)” 尽管如此,方脸仍然是乐观的 “你不让别人说话,别…
#life 这次应该是言出法随了😊
做好准备刷身份证上网,管网信办叫亲爷爷
但大家在墙内发帖,如果想曝光烂尾楼水电费什么的,大概就会被赋红马喽,受害者是自己也不行。
《历史的垃圾时间》 可以藏好自己,但清理做得太好,个人权利也会万劫不复。
https://m.youtube.com/watch?v=hatVCKjTY30
#评论
“你心里没有鬼,你为什么害怕监控“
你心里没有鬼,你为什么不敢把你家门钥匙交给可疑的陌生人?
“你听说了吗,他们要把驴都阉了!”。
“你又不是驴,慌什么?”
“等你被阉了以后再想办法证明自己不是驴吧”
美國教育:3億人,擁有30億種可能性;
日本教育:1億人,產生10億種創意;
中國教育:14億人,只允許一種聲音。
法家秦制+马列斯毛+古早资本主义
現在有人對你們說:『犧牲你們個人的自由,去求國家的强大!』
我對你們說:『爭取個人的自由,就是爭取國家的自由;爭取個人的人格,就是爭取國家的國格!
自由平等的國家不是一群奴才建造得起來的!』ーー胡適
https://m.youtube.com/watch?v=fuFta32KYig
方脸:集权价值观的名存实亡与特权的继续,是人心不古的预兆
做好准备刷身份证上网,管网信办叫亲爷爷
但大家在墙内发帖,如果想曝光烂尾楼水电费什么的,大概就会被赋红马喽,受害者是自己也不行。
《历史的垃圾时间》 可以藏好自己,但清理做得太好,个人权利也会万劫不复。
https://m.youtube.com/watch?v=hatVCKjTY30
#评论
“你心里没有鬼,你为什么害怕监控“
你心里没有鬼,你为什么不敢把你家门钥匙交给可疑的陌生人?
“你听说了吗,他们要把驴都阉了!”。
“你又不是驴,慌什么?”
“等你被阉了以后再想办法证明自己不是驴吧”
美國教育:3億人,擁有30億種可能性;
日本教育:1億人,產生10億種創意;
中國教育:14億人,只允許一種聲音。
法家秦制+马列斯毛+古早资本主义
現在有人對你們說:『犧牲你們個人的自由,去求國家的强大!』
我對你們說:『爭取個人的自由,就是爭取國家的自由;爭取個人的人格,就是爭取國家的國格!
自由平等的國家不是一群奴才建造得起來的!』ーー胡適
https://m.youtube.com/watch?v=fuFta32KYig
方脸:集权价值观的名存实亡与特权的继续,是人心不古的预兆
YouTube
对话刘力朋:网证网号来了我们该怎么办?我们的个人信息是如何泄露的?塔学真的存在吗?
00:00 - 开场
01:43 - 实名制是如何诞生的
09:26 - 审核员可以看到用户的哪些信息
13:00 - 网证和网络实名制有哪些区别
22:13 - 为什么公安部和网信办如此迫切要推行网证网号
26:38 - 我们该如何应对网证网号的施行
29:10 - 对中国互联网未来的看法
37:18 - 中国互联网审核和国外的区别
44:38 - 塔学真的存在吗
我是李老师🐱
新闻类视频黄标不易!还请大家多多支持!
欢迎大家通过每个月一杯咖啡或一块披萨来投喂我~
https://www.y…
01:43 - 实名制是如何诞生的
09:26 - 审核员可以看到用户的哪些信息
13:00 - 网证和网络实名制有哪些区别
22:13 - 为什么公安部和网信办如此迫切要推行网证网号
26:38 - 我们该如何应对网证网号的施行
29:10 - 对中国互联网未来的看法
37:18 - 中国互联网审核和国外的区别
44:38 - 塔学真的存在吗
我是李老师🐱
新闻类视频黄标不易!还请大家多多支持!
欢迎大家通过每个月一杯咖啡或一块披萨来投喂我~
https://www.y…
👍2
duangsuse::Echo
#china #meme https://youtu.be/5Z-BZ_x11r8?t=217 😂 可爱模式的 ChatGPT 作出既有 党性 也有人性的回答……真的笑死 #bing 无法作出类似级别的创作 )试用 @OpenAI_GPT_Chatbot also:@littleb_gptBOT @rachelBackyardBot u dont choose China China choose u
#china #bear 一场围绕着(2952)的脱口秀😂
采访官场大佬,邓小平的翻译
https://m.youtube.com/watch?v=cONy52ocpoA&t=14m
很难想象,仅仅过了10年,中国的大家就又不敢“口无遮拦”,浑身敏感瓷了。 改革开放终究是要亡?
直到今天看这些洋人用数字和信息源说话说话,居然仿佛在听天书。
“u can criticize the gov if u were positive.
What? nice insults?😅”
让人回忆起good god days:
“毛泽东是全中国最聪明的人,8亿人就只有他有思想。还得等他死了,我们的智慧才从0岁开始增长——袁腾飞说相声”
哎,其实中国人本来有机会卖出口20个台积电,毕竟地大人多。如果没有用十三年“摸着石头过河”赔了家底。为什么要靠抢呢?
我仍需要提醒大家: “人权vs主权” 是一种阴谋家的比较
现代小学生都知道,国家主权在民,劳动没人权,就等于没有主权保护,是当了亡国奴。
哪里有人权更大的说法呢🌚?
采访官场大佬,邓小平的翻译
https://m.youtube.com/watch?v=cONy52ocpoA&t=14m
很难想象,仅仅过了10年,中国的大家就又不敢“口无遮拦”,浑身敏感瓷了。 改革开放终究是要亡?
直到今天看这些洋人用数字和信息源说话说话,居然仿佛在听天书。
“u can criticize the gov if u were positive.
What? nice insults?😅”
让人回忆起good god days:
“毛泽东是全中国最聪明的人,8亿人就只有他有思想。还得等他死了,我们的智慧才从0岁开始增长——袁腾飞说相声”
哎,其实中国人本来有机会卖出口20个台积电,毕竟地大人多。如果没有用十三年“摸着石头过河”赔了家底。为什么要靠抢呢?
我仍需要提醒大家: “人权vs主权” 是一种阴谋家的比较
现代小学生都知道,国家主权在民,劳动没人权,就等于没有主权保护,是当了亡国奴。
哪里有人权更大的说法呢🌚?
Forwarded from yihong0618 和朋友们的频道 (伊)
就像读书没比打游戏高尚多少一样,我不觉得读书的习惯比刷短视频高尚多少,时代的车轮滚滚向前,会碾过所有人,有先后而已。
Forwarded from Milkice's 我是高仿号我根本不懂中文
破案了,KernelSU会在/data/adb/ksu创建一个1T大小的modules.img,这文件是个sparse file,意味着不会实际占用1T而是根据使用量自动扩展……但是备份的时候就当一个1T的文件备份导致了这个问题……
KernelSU用户留意一下……
KernelSU用户留意一下……
https://ray-eldath.me/programming/three-important-ideas/ #statement #PLT
Ray: 我的一位朋友如此评论这些文章:他说真正理解抽象的唯一方式是通过抽象本身,而不是通过并不准确的类比。
「为了充分地("有用处"地)学习这些抽象,你必须去学数学,而不是通过一些糊里糊涂的文章,它们除了类比还是类比」
Dr: 要找到 “哪些代码遵循此抽象” 并不是必须的。像 Monad 这样的概念是非常抽象和通用的:它是一个描述了一套广泛的编程模式、数据结构、库和 API 的概念,其强大之处在于它们,是对如何设计和使用这种抽象的指导原则
成为高效的程序员并不需要理解全部的联系。其他人自然会强烈反对 :-)
Ray: "可仅仅知道 JavaScript 里的 Promise 本质上是 Monad,而 Functor “又是一个盒子” 并不能帮助你成为更好地程序员,而在你自己的库中使用这些词语只会让你的下游觉得不舒服"
...概念是非常抽象和通用的
等等,
逻辑学告诉我,抽象是通用的反面,就像社会是丛林的反面: 您的知识若是通用的,它一定能与各应用领域紧密联系,学生如何觉得它抽象!?
人们就是讨厌空谈,所以设计各种简洁而通用的API;人民就是讨厌丛林,所以组织出了社会。 现在竟有人觉得存在通用抽象和丛林社会?? 这就像是说javadoc等机翻的玩意,比各种demo, test甚至产品更能展示项目的价值!
“靠代码行数来衡量软件功能的进度,就像是凭零件重量来衡量飞机制造的进度——Gates
靠知识点的难度衡量价值,同理。😅
我看这种观念者,确实是够抽象。 “类比”的本质是抽象,而「学习」只是用自己领域的思维,去「组合」「代换」出别人说的那种东西,带给你工具和知识图谱上的价值。
大家来到世上都是白痴,没有谁拥有无法被代换给别人的知识「原子」。写文爱用「未定义就使用的概念」,想设计新的抽象,却不谈理由?那就是 lier
无论我们用什么领域的「原子」组合出了CS的知识点,那都是潜在的价值,为空洞的术语绑定了新的语意,更摒弃了其中被“凭空捏造”的哲学。让IT人说话,天塌不下来!
难者,不会也。作者已死,凭什么说的道你就是「高等抽象」,大家能跟上的就是"糊里糊涂"的抽象? Einstein, Feynman 说物理的最前沿应该教高中生搞懂,难道你们的方法论比爱翁还科学?
人们给车设计的引擎,能达到原理极限的98%,那么 #CS 对IT的指导,除了让空指针反复造成十亿美元bug,就是让功能不变的软件,随着更新越来越臃肿和慢? 这算什么CS!
Monad很图论,很优雅啊! 但它能从
数学的精度是无限的、数学的等号是有交换律的。 #Haskell 里有模式匹配,但有"Var(x)作为值"吗?
只要变量是值,模式匹配、类型推理、响应式,甚至函数的编译,就真是小孩都会写的栏大街了。让
FP们连正反函数如
https://arendjr.nl/blog/2024/07/post-architecture-premature-abstraction-is-the-root-of-all-evil/#:~:text=achieved%20through%20a%20much%20simpler%20function
“个体的经历,不过是一个庞大的(形式主义)系统下极其表面化的闪烁而已”
可那个闪烁对某一天的用户来说就是一切。 自然原理,亘古不变。如果只是发现他们就能改变世界? 工业革命可以提早数百年。
人一思考,上帝就发笑。 你们的抽象,永远概括不了现实的领域、具体的人所提供独有的组合与可能性。
知其变,守其恒,为天下式?
穷其变,悟不穷,以明我志!
不能为每个人产生普世价值,是理论的悲哀。
Ray: 我的一位朋友如此评论这些文章:他说真正理解抽象的唯一方式是通过抽象本身,而不是通过并不准确的类比。
「为了充分地("有用处"地)学习这些抽象,你必须去学数学,而不是通过一些糊里糊涂的文章,它们除了类比还是类比」
Dr: 要找到 “哪些代码遵循此抽象” 并不是必须的。像 Monad 这样的概念是非常抽象和通用的:它是一个描述了一套广泛的编程模式、数据结构、库和 API 的概念,其强大之处在于它们,是对如何设计和使用这种抽象的指导原则
成为高效的程序员并不需要理解全部的联系。其他人自然会强烈反对 :-)
Ray: "可仅仅知道 JavaScript 里的 Promise 本质上是 Monad,而 Functor “又是一个盒子” 并不能帮助你成为更好地程序员,而在你自己的库中使用这些词语只会让你的下游觉得不舒服"
...概念是非常抽象和通用的
等等,
逻辑学告诉我,抽象是通用的反面,就像社会是丛林的反面: 您的知识若是通用的,它一定能与各应用领域紧密联系,学生如何觉得它抽象!?
人们就是讨厌空谈,所以设计各种简洁而通用的API;人民就是讨厌丛林,所以组织出了社会。 现在竟有人觉得存在通用抽象和丛林社会?? 这就像是说javadoc等机翻的玩意,比各种demo, test甚至产品更能展示项目的价值!
“靠代码行数来衡量软件功能的进度,就像是凭零件重量来衡量飞机制造的进度——Gates
靠知识点的难度衡量价值,同理。😅
我看这种观念者,确实是够抽象。 “类比”的本质是抽象,而「学习」只是用自己领域的思维,去「组合」「代换」出别人说的那种东西,带给你工具和知识图谱上的价值。
大家来到世上都是白痴,没有谁拥有无法被代换给别人的知识「原子」。写文爱用「未定义就使用的概念」,想设计新的抽象,却不谈理由?那就是 lier
无论我们用什么领域的「原子」组合出了CS的知识点,那都是潜在的价值,为空洞的术语绑定了新的语意,更摒弃了其中被“凭空捏造”的哲学。让IT人说话,天塌不下来!
难者,不会也。作者已死,凭什么说的道你就是「高等抽象」,大家能跟上的就是"糊里糊涂"的抽象? Einstein, Feynman 说物理的最前沿应该教高中生搞懂,难道你们的方法论比爱翁还科学?
人们给车设计的引擎,能达到原理极限的98%,那么 #CS 对IT的指导,除了让空指针反复造成十亿美元bug,就是让功能不变的软件,随着更新越来越臃肿和慢? 这算什么CS!
Monad很图论,很优雅啊! 但它能从
x+1==2 得出x=1吗? does it run backwards?数学的精度是无限的、数学的等号是有交换律的。 #Haskell 里有模式匹配,但有"Var(x)作为值"吗?
只要变量是值,模式匹配、类型推理、响应式,甚至函数的编译,就真是小孩都会写的栏大街了。让
let(['x','y'],a) 生成 x=a[0],y=a[1] 谁不会啊 也配叫语言特性FP们连正反函数如
show-out(1, "1"); show(res, "1"); res==1 都没建模,无精度int、向量、矩阵和微分都不如numpy sympy,也好意思谈数学性? 起码把Fortran的矩阵搞明白再说吧https://arendjr.nl/blog/2024/07/post-architecture-premature-abstraction-is-the-root-of-all-evil/#:~:text=achieved%20through%20a%20much%20simpler%20function
费曼家有一套《大英百科全书》,父亲常让费曼坐在他的膝上,给他念里边的章节。
有一次念到恐龙,书里说,“恐龙的身高有 25 英尺, 头有 6 英尺宽。” 父亲停顿了念书, 对费曼说,
“唔,让我们想一下这是什么意思。这也就是说,要是恐龙站在门前的院子里,那么它的身高足以使它的脑袋凑着咱们这两层楼的窗户,可它的脑袋却伸不进窗户,因为它比窗户还宽呢!”
就是这样, 他总是把所教的概念变成可触可摸, 有实际意义的东西。
“个体的经历,不过是一个庞大的(形式主义)系统下极其表面化的闪烁而已”
可那个闪烁对某一天的用户来说就是一切。 自然原理,亘古不变。如果只是发现他们就能改变世界? 工业革命可以提早数百年。
人一思考,上帝就发笑。 你们的抽象,永远概括不了现实的领域、具体的人所提供独有的组合与可能性。
知其变,守其恒,为天下式?
穷其变,悟不穷,以明我志!
不能为每个人产生普世价值,是理论的悲哀。
Ray Eldath's Blog
计算机领域的三个重要思想:抽象,分层和高阶
昨晚看了点比较有意思的东西,于是决定写一篇文章简单讲一下。 本文致力于概括我对计算机界三个重要思想的体会和认识。我希望做的并不是简单的百科全书式的列举(“A 体现了抽象思想;B 体现了分层思想…”),而是从这些思想中选取几个我个人较有体会(或者是我单纯觉得十分有趣)的侧面拿来细讲。这些侧面仅仅能覆盖这些思想应用范围中十分微小的一部分,它们并不是最有代表性的、亦非最为重要的——仅仅因为,我个人对这点
duangsuse::Echo
https://ray-eldath.me/programming/three-important-ideas/ #statement #PLT Ray: 我的一位朋友如此评论这些文章:他说真正理解抽象的唯一方式是通过抽象本身,而不是通过并不准确的类比。 「为了充分地("有用处"地)学习这些抽象,你必须去学数学,而不是通过一些糊里糊涂的文章,它们除了类比还是类比」 Dr: 要找到 “哪些代码遵循此抽象” 并不是必须的。像 Monad 这样的概念是非常抽象和通用的:它是一个描述了一套广泛的编程模式、数据结构、库和…
#PLT #learn 文中提到一个Futa对应关系(第一类二村映射 first Futamura projection), 展开讲讲还蛮有趣 🙉
首先,js人都会写计算器的,和 echo input/server 一样的难度
这被称为「前缀式polish notation」,是Lisp的国是
教个小诀窍:js里函数只是一种字面常量,可以被for生成
为了更像“语言”,可以用列表(进一步就是"1+2"的代码)实现语法,便于糖化
Monadic递归下降是这样AbBc的,因为不能右移流指针。不如逆波兰好看!不过这种程度的递归可以学学。
再看下「解释器interpreter」比计算器强在哪: 能够“在调用时传值”,也就是要有 argument[0] 这种“环境变量”
很厉害!现在有常数外的“语法”了,有变量了,高阶了!或许你需要学动态作用域(原型链?)、调用栈call-ret、惰性求值如&&|| blabla,还有深不可测的编译优化呢!
不就加一个箭头么。
env被称为运行时,它可以是JVM, import dis 或者别的bytecode解释器,这能减少tree-walk对递归栈的频繁依赖
这种
编译器并不需要与DSL这些技巧隔离,如果我们把 env=>x 写作 JSON(x) 而 env=>env[i] 写作$i ,既
以这种人类或机器可读的结构序列化一些函数被"bind"到的lit,就得到了对应的代码。jvm的 lconst 1, aload_0 this参数, iadd (2->1)甚至是自动分配参数寄存器的!
https://www.yinwang.org/blog-cn/2014/01/04/authority#:~:text=partial%20evaluator。其实并不是特别神奇的东西,只需要在普通解释器里面改一两行代码就行,可是有人
二段求值。代码是流动的数据,内存是暂停的程序。本文甚至比赢王更直观: https://www.yinwang.org/blog-cn/2012/08/01/interpreter
定义个“元循环加法”吧?
如果你乐意,还可以支持基于全局表的递归 fib=f(x)=x<2? 1 : f(x-1)+f(x-2)
这一切都不会突破以上的定义框架。 If 不会,Call(f,x-1) 不会.. 这就是java的反射嘛。
我不想再写什么了。 我看过许多“编译原理书”,他们连这个=>都写不明白。 更何谈用Visitor实现(反)序列化 这些既理论又实践的approach
#haskell
这类基于list或class{子类多型} 的
> 高阶的思想或许是本文的所有思想中最为重要的那一个 https://ray-eldath.me/programming/three-important-ideas/
你们知道函数的函数、类型的类型、语言的语法,却难以创造「语言中的语言」—跨越用途与界限而一致的语意。
我看numpy和 taichi-lang.org 就用的很好,比LLVM好一个世代
顺带一提,上文还使用了 Tagless Final 和 De Bruijn 索引 😇 。只是…… 你甚至不需要知道它们的名字。
说到底,元编程也只是编程。就像“学会学习”只是一种策略,它对学习而言,并非例外情况。难者,不会也,譬如在谈"bind(x=1)后函数值字面是否改变"时提起「颗粒化curryArg」 当然会让人迷糊
node,graal会编译js,jvm代码(这也是为何Chrome页偶尔会segfault); JVM会使用汇编模板+JIT 的混合式优化,Cython则把“甜妹语言”翻译到C,LLVM则是个伪装成NodeGraph虚拟机的codegen
如果只用"是否该调用javac"来区分语言,认为C类型总比python更快的话,你会发现程序员钟意的都是freak!
宏,macro码可揉,是传入与生成class{}等字面的函数。和+-*/一样只是函数,而函数、类型,只是值,别被“静态分析”骗了,它们送你的class只是病态类型。
入,lambda栏目答,看x,A,B等栏目回答的算式
这点篇幅放前言都觉得寒碜吧? 可就是没人做到啊。 扶她投影?不知道的还以为是HP projector 的娘化版呢。。
PLT能对dev点化到的可谓寥寥, 但100%都是必要且急需的知识和"抽象",像Prolog的模板与响应式html编程("FRP") 什么的。 Monadic错误处理我不想吐槽什么,只能说不怕不识货,只怕和Kotlin比!
跑题了。当然,聪明的你会发现Fun的返回违背了"基线指明了递归的类型"这一原则,没生成 env=>
那C语言函数指针是这样的,env由*rbp[0:2]=[retRbp,retAddr]这些CPU变量提供,但JS里的闭包可以从env偷变量(Var作为值,mut ref),所以说「闭包是穷人的(单方法)对象」
C里还有"函数符号",那是由ld.so实现的全局表,让.o对象能先被mmap到任意地址,再去回填calls
真正的那个全局表叫 $PATH: ,以及没定义main的对象的 $LD_LIBRARY_PATH 。
首先,js人都会写计算器的,和 echo input/server 一样的难度
1+2*3
十(1, X(2,3)) -7
十=(A,B)=>A+B
这被称为「前缀式polish notation」,是Lisp的国是
教个小诀窍:js里函数只是一种字面常量,可以被for生成
Object.entries("十一Xノ").forEach(([i,x])=>
this[x]=eval(`(A,B)=>A${"+-*/"[i]}B`))为了更像“语言”,可以用列表(进一步就是"1+2"的代码)实现语法,便于糖化
Eval([十,1, X,2,3]) -7
Eval=([f,...x])=>(!f.call)? [f,x] : //基线返回两项,递归就都是两项
(([A,b]=Eval(x),[B,c]=Eval(b))=>[f(A,B), c] )()
Monadic递归下降是这样AbBc的,因为不能右移流指针。不如逆波兰好看!不过这种程度的递归可以学学。
再看下「解释器interpreter」比计算器强在哪: 能够“在调用时传值”,也就是要有 argument[0] 这种“环境变量”
很厉害!现在有常数外的“语法”了,有变量了,高阶了!或许你需要学动态作用域(原型链?)、调用栈call-ret、惰性求值如&&|| blabla,还有深不可测的编译优化呢!
不就加一个箭头么。
十=(A,B)=> (env=>A(env)+B(env)) //现在知道为啥该用for生成函数?
Lit=x=> env=>x
Arg=i=> env=>env[i] //PHP写作 $x, 模仿bash的$1~$*
Fun=(n,f)=>f(Array(n).fill(0).map((x,i)=> Arg(i)))
env被称为运行时,它可以是JVM, import dis 或者别的bytecode解释器,这能减少tree-walk对递归栈的频繁依赖
这种
formSytanx.bind(consts=lit/arg/global/Types..) 的"部分传参"函数,称为编译器,而它的返回就是classFile等类型。 编译器并不需要与DSL这些技巧隔离,如果我们把 env=>x 写作 JSON(x) 而 env=>env[i] 写作$i ,既
Lit=x=> gcc? CBor.dumps(x) : (env=>x)以这种人类或机器可读的结构序列化一些函数被"bind"到的lit,就得到了对应的代码。jvm的 lconst 1, aload_0 this参数, iadd (2->1)甚至是自动分配参数寄存器的!
https://www.yinwang.org/blog-cn/2014/01/04/authority#:~:text=partial%20evaluator。其实并不是特别神奇的东西,只需要在普通解释器里面改一两行代码就行,可是有人
二段求值。代码是流动的数据,内存是暂停的程序。本文甚至比赢王更直观: https://www.yinwang.org/blog-cn/2012/08/01/interpreter
定义个“元循环加法”吧?
十1=Fun(1, ([A])=>十(A, Lit(1)))
十1([232]) -233
//[Lit(f),x] 补丁下Eval"解析器"。计算器、解释器、编译器间,其实并非泾渭分明
Eval([十,1, X,2,X,1,3])[0]([2]) -7
如果你乐意,还可以支持基于全局表的递归 fib=f(x)=x<2? 1 : f(x-1)+f(x-2)
这一切都不会突破以上的定义框架。 If 不会,Call(f,x-1) 不会.. 这就是java的反射嘛。
我不想再写什么了。 我看过许多“编译原理书”,他们连这个=>都写不明白。 更何谈用Visitor实现(反)序列化 这些既理论又实践的approach
#haskell
data Val=L Int|Op Char Val Val deriving(Show)
(Op '+' (L 1) (Op '*' (L 2) (L 3) ))这类基于list或class{子类多型} 的
Eval(e=^^, env={proto:{..}}),与本文使用的闭包法是等价的。「闭包是穷人的对象」,Promise 给它暴露到了 obj.then(Continuation)> 高阶的思想或许是本文的所有思想中最为重要的那一个 https://ray-eldath.me/programming/three-important-ideas/
你们知道函数的函数、类型的类型、语言的语法,却难以创造「语言中的语言」—跨越用途与界限而一致的语意。
我看numpy和 taichi-lang.org 就用的很好,比LLVM好一个世代
顺带一提,上文还使用了 Tagless Final 和 De Bruijn 索引 😇 。只是…… 你甚至不需要知道它们的名字。
([A])=> 经常被实现为KV["A"],但点明它的本质,却比写解释器更简单!说到底,元编程也只是编程。就像“学会学习”只是一种策略,它对学习而言,并非例外情况。难者,不会也,譬如在谈"bind(x=1)后函数值字面是否改变"时提起「颗粒化curryArg」 当然会让人迷糊
node,graal会编译js,jvm代码(这也是为何Chrome页偶尔会segfault); JVM会使用汇编模板+JIT 的混合式优化,Cython则把“甜妹语言”翻译到C,LLVM则是个伪装成NodeGraph虚拟机的codegen
如果只用"是否该调用javac"来区分语言,认为C类型总比python更快的话,你会发现程序员钟意的都是freak!
宏,macro码可揉,是传入与生成class{}等字面的函数。和+-*/一样只是函数,而函数、类型,只是值,别被“静态分析”骗了,它们送你的class只是病态类型。
入,lambda栏目答,看x,A,B等栏目回答的算式
这点篇幅放前言都觉得寒碜吧? 可就是没人做到啊。 扶她投影?不知道的还以为是HP projector 的娘化版呢。。
PLT能对dev点化到的可谓寥寥, 但100%都是必要且急需的知识和"抽象",像Prolog的模板与响应式html编程("FRP") 什么的。 Monadic错误处理我不想吐槽什么,只能说不怕不识货,只怕和Kotlin比!
跑题了。当然,聪明的你会发现Fun的返回违背了"基线指明了递归的类型"这一原则,没生成 env=>
那C语言函数指针是这样的,env由*rbp[0:2]=[retRbp,retAddr]这些CPU变量提供,但JS里的闭包可以从env偷变量(Var作为值,mut ref),所以说「闭包是穷人的(单方法)对象」
C里还有"函数符号",那是由ld.so实现的全局表,让.o对象能先被mmap到任意地址,再去回填calls
真正的那个全局表叫 $PATH: ,以及没定义main的对象的 $LD_LIBRARY_PATH 。
Telegram
duangsuse::Echo
#plt #code 谈到RPN,我昨天有个灵感想把js做成缩进的形式
就回顾了优先级算法(嵌套深度包括h1~h6树本质上也是优先级)
示例算法 sexp(tok('1 (2 3) 4')), exp(tok('1*2+3'), optab)
optab={[';']:-1}
"=;+ -;* /".split(';').map((a,l)=>a.split(' ').forEach(x=> optab[x]=l ))
exp=(s/*token x单项o算符 x..*/, l/*evels 大则深…
就回顾了优先级算法(嵌套深度包括h1~h6树本质上也是优先级)
示例算法 sexp(tok('1 (2 3) 4')), exp(tok('1*2+3'), optab)
optab={[';']:-1}
"=;+ -;* /".split(';').map((a,l)=>a.split(' ').forEach(x=> optab[x]=l ))
exp=(s/*token x单项o算符 x..*/, l/*evels 大则深…
Forwarded from Solidot
Firefox 移植到 Haiku
2024-08-13 16:56 by 巴比伦Ⅲ:终结
开源 BeOS 操作系统 Haiku 有了 Firefox 移植版本。Firefox 有被称为 Bezilla 的 BeOS 移植版本,但那是几十年前的事情了。Haiku 的原生浏览器 WebPositive 表现不佳,因此有开发者不断移植其它的主流浏览器,最新的努力成果就是 Firefox。目前移植版本还是处于早期阶段,没有可下载的软件包,感兴趣的用户需要自己去编译。移植版本是 v128,比最新的稳定版 v129 落后一个版本。
https://discuss.haiku-os.org/t/progress-on-porting-firefox/13493/143
https://discuss.haiku-os.org/t/progress-on-porting-firefox/13493/148
#Firefox
2024-08-13 16:56 by 巴比伦Ⅲ:终结
开源 BeOS 操作系统 Haiku 有了 Firefox 移植版本。Firefox 有被称为 Bezilla 的 BeOS 移植版本,但那是几十年前的事情了。Haiku 的原生浏览器 WebPositive 表现不佳,因此有开发者不断移植其它的主流浏览器,最新的努力成果就是 Firefox。目前移植版本还是处于早期阶段,没有可下载的软件包,感兴趣的用户需要自己去编译。移植版本是 v128,比最新的稳定版 v129 落后一个版本。
https://discuss.haiku-os.org/t/progress-on-porting-firefox/13493/143
https://discuss.haiku-os.org/t/progress-on-porting-firefox/13493/148
#Firefox
duangsuse::Echo
#china #android 魔幻现实 :阿里郎 https://www.bilibili.com/video/BV1oZYRetEHN
#china #life 起个变量名都要有证有手续😁
但是,这种『漫长的戒严』能持续多久呢?
https://m.youtube.com/watch?v=fLc2fwqG90s
- 朝鲜化以加速师的智力,实现不了
- 文革所需要的三年饥荒、权力内斗,没有出现。反而是李克强声望更高,这就像刘少奇把毛泽东关牛棚一样
- 拉美化的可能性最高,但一旦被转移矛盾的义和团调转矛头向内, 拉美化就会停止
- 它们很想让中国成为《1984》,也很想用超国民待遇卖国,换自己的特权永不变色,但经济上不允许!
- 从现况分析,方脸对中国人的未来是乐观的
但是,这种『漫长的戒严』能持续多久呢?
https://m.youtube.com/watch?v=fLc2fwqG90s
- 朝鲜化以加速师的智力,实现不了
- 文革所需要的三年饥荒、权力内斗,没有出现。反而是李克强声望更高,这就像刘少奇把毛泽东关牛棚一样
- 拉美化的可能性最高,但一旦被转移矛盾的义和团调转矛头向内, 拉美化就会停止
- 它们很想让中国成为《1984》,也很想用超国民待遇卖国,换自己的特权永不变色,但经济上不允许!
- 从现况分析,方脸对中国人的未来是乐观的
duangsuse::Echo pinned «#PLT #learn 文中提到一个Futa对应关系(第一类二村映射 first Futamura projection), 展开讲讲还蛮有趣 🙉 首先,js人都会写计算器的,和 echo input/server 一样的难度 1+2*3 十(1, X(2,3)) -7 十=(A,B)=>A+B 这被称为「前缀式polish notation」,是Lisp的国是 教个小诀窍:js里函数只是一种字面常量,可以被for生成 Object.entries("十一Xノ").forEach(([i,x])=> …»
duangsuse::Echo
#PLT #learn 文中提到一个Futa对应关系(第一类二村映射 first Futamura projection), 展开讲讲还蛮有趣 🙉 首先,js人都会写计算器的,和 echo input/server 一样的难度 1+2*3 十(1, X(2,3)) -7 十=(A,B)=>A+B 这被称为「前缀式polish notation」,是Lisp的国是 教个小诀窍:js里函数只是一种字面常量,可以被for生成 Object.entries("十一Xノ").forEach(([i,x])=> …
>火之魔女: 不过unification我是想写好久了(应该按年计)但是一直没写的(
https://github.com/duangsuse/mkey 写过,不过落后很久了 #sql
这算法就是
reify([a]) 解引用一下=[1] ,其实也挺有趣,包括npm也在牵强附会这玩意,真让人搞不懂从哪看的
https://minikanren.org/ 使用了一个自有的def: yield 实现,对 a&b 顺序执行,a|b 保存a的回溯以及交替yield ,但 inf(a,x): a=x|inf(a,x+1) 这种递归好像要套一层
append-out 生成加法表是比较知名的范例 https://www.adamsolove.com/microScopeKanren/
https://tca.github.io/veneer/editor.html https://swish.swi-prolog.org/
https://tomstu.art/hello-declarative-world
logicalVars 的真正力量是用在AST里实现函数参数、类型参数及推理等等,比如 vars(x=> Fn([x], [x 1 +])
所谓的HOAS ... 还真挺搞笑的,PLT人怎么会用字符串表示变量??
可以在js里直接解释,也能被整齐替换为为 iload_0 之类的编译
也包括推理
然并暖。 国内讲这个都都是局限于那几个术语和过程,真够无聊的。
unification(变-量叠合) 不是解方程的办法(不能取代sympy.solve),但React都在用它,只是在用一种很低性能的赝品(Svelte和Compose也是,快但丑)
PHP拼接SQL而不是用 (?)生成匿名函数, 一群PHD也这么搞,结果现在搞出个 AST v2,就“数学且高阶”了。指望这群人纠正IT界的错误实践? 呵
Prolog已经50岁了,Lisp计算图和深先遍历则更久远,它们的思想稍微补丁一点,就能对今天的编程产生巨大的改变。 只是把"变量"这个概念初次写对,就说是Higher-Order tree了,真幽默啊PLT
(Lua lparser.c 在第一遍历就会查好栈/闭包/全局表的具体地址,这是所谓“不理论”的算法人,人家的var最开始就不是str,更别说Ruby和C符号呢。 PLT人只是目标更简单,并非语意更明确!)
如果ES6支持模式匹配时直接把Prolog的变量作为值学过来,React就可以带着它随地大小变的"FP" memo消失了
full: https://t.iss.one/dsuses/5341
https://github.com/duangsuse/mkey 写过,不过落后很久了 #sql
这算法就是
unify(a,b); unify(a,1); unify(1,a) 得出 a.v==1==b.v reify([a]) 解引用一下=[1] ,其实也挺有趣,包括npm也在牵强附会这玩意,真让人搞不懂从哪看的
https://minikanren.org/ 使用了一个自有的def: yield 实现,对 a&b 顺序执行,a|b 保存a的回溯以及交替yield ,但 inf(a,x): a=x|inf(a,x+1) 这种递归好像要套一层
append-out 生成加法表是比较知名的范例 https://www.adamsolove.com/microScopeKanren/
https://tca.github.io/veneer/editor.html https://swish.swi-prolog.org/
https://tomstu.art/hello-declarative-world
logicalVars 的真正力量是用在AST里实现函数参数、类型参数及推理等等,比如 vars(x=> Fn([x], [x 1 +])
所谓的HOAS ... 还真挺搞笑的,PLT人怎么会用字符串表示变量??
可以在js里直接解释,也能被整齐替换为为 iload_0 之类的编译
也包括推理
fun let(:[T Box], :[Fn1 T R]): [R Box] 了, unify([T Box], [Int Box]) 一下就出来了,再给[(R=Any) Box]做一个freeze(reify),比模式匹配不知道优美多少倍然并暖。 国内讲这个都都是局限于那几个术语和过程,真够无聊的。
unification(变-量叠合) 不是解方程的办法(不能取代sympy.solve),但React都在用它,只是在用一种很低性能的赝品(Svelte和Compose也是,快但丑)
PHP拼接SQL而不是用 (?)生成匿名函数, 一群PHD也这么搞,结果现在搞出个 AST v2,就“数学且高阶”了。指望这群人纠正IT界的错误实践? 呵
Prolog已经50岁了,Lisp计算图和深先遍历则更久远,它们的思想稍微补丁一点,就能对今天的编程产生巨大的改变。 只是把"变量"这个概念初次写对,就说是Higher-Order tree了,真幽默啊PLT
(Lua lparser.c 在第一遍历就会查好栈/闭包/全局表的具体地址,这是所谓“不理论”的算法人,人家的var最开始就不是str,更别说Ruby和C符号呢。 PLT人只是目标更简单,并非语意更明确!)
如果ES6支持模式匹配时直接把Prolog的变量作为值学过来,React就可以带着它随地大小变的"FP" memo消失了
full: https://t.iss.one/dsuses/5341
Forwarded from David's random thoughts (David Huang)
Linux的triple-A gaming现在已经成熟到黑神话这种新游戏发布当日就能用proton+RADV跑起来,proton甚至是用的几个月之前发布的9.0而不是experimental。
与此同时Windows还在热衷于给游戏本强制开VBS+HVCI这种严重影响游戏性能的事情,并且Windows本身一个版本比一个版本性能差,跑分都跑不明白。
与此同时Windows还在热衷于给游戏本强制开VBS+HVCI这种严重影响游戏性能的事情,并且Windows本身一个版本比一个版本性能差,跑分都跑不明白。
👍3