无根的根:无名师的 Unix 心传

【全新官方接口】php检测微信域名拦截,检测微信域名被封 你的域名在微信被拦截的3种常见情况 1、域名因违规或有风险被拦截(红色拦截) 2、类似taobao.com,douyin.com这种的恶意竞争式拦截,淘宝、抖音等微信的竞争对手一般都是白色拦截(白色拦截) 3、有一个中间页的拦截,需要多次点击按钮才可以跳转到你的域名的,多是一些新型域名后缀,例如.top .xyz .link后缀,这种情况,备案后可以解决(备案拦截) 通过php get_headers()函数就可以分析到结果 这个下标为6是一个URL,在微信访问后正是这个讨厌的页面! 如果切换为 阅读详情

《Rootless Root:The Unix Koans of Master Foo》, 《Unix编程艺术》一书的附录D,原作者不详

导言

《无根的根》这部心传的收录集在西山纯净的空气中得以保存数十年,它的发现在学术圈中掀起轩然大波。这些出土文稿是否为早期 Unix 教义的新发现?抑或仅是后世高明的赝品?那些半神秘的人物,像尊者 Thompson、Ritchie 和 Mcllroy,是否以此发展出我们所处时代的教义?

答案无法确知。各方争论均被收入那本经典之作,《编程之道》(The Tao of Programming)。但是《无根的根》在论调风格上都与那本 James 松散诗化的逸闻译作有显著差异,所有一切都围绕着卓越而谜一般的无名师。

把 AI Koans(AI 心传)与之相提并论颇为恰当;在 AI Koans 中也可发现《无根的根》作者的着笔痕迹。它和 Loginataka(箴言剧)也有密切关联;实际上,《无根的根》和 Loginataka 大有可能是出自一人之手笔,此人正是无名师。

Tales of Zen Master Greg(禅祖 Greg 传说)也值得一说,对“九寸钉”的引用已经使人对其古老程度产生怀疑,它对《无根的根》影响微乎其微。

毫无疑问,可以认为标题借鉴了 Mumon 的禅宗经典读物《无门之门》(The Gateless Gate)。数个心传都可以看作是对 Mumon 的回应。

无名师应该归于东派(New Jersey)还是西派(尊者 Thompson 往 Berkeley 的划时代之旅)。如果不能回答这个问题,我们甚至也许无法宣称无名师确实存在,它也许只是一群教师,也许是一批达摩尊者。

即使把无名师的传说附会在单独的人身上,那他最看重的学生 Nubi 怎么办? Nubi 是个有血有肉的形象,是个完美的门徒。也许有人会想起佛祖最喜爱的追随者阿难达的传说,但他的性格特质在神话传说中并没留下痕迹,而佛祖也是永恒的谜。

最终,我们可做的便是讲述故事的本原,抽丝剥茧,挖掘其中真意。

《无根的根》还在编写之中,素材的整理和解释都是难题。难题解开后,将被收录到未来版本中。

无名师与万行码

无名师曾对来访的程序员说:“Unix传统上认为,一行shell脚本胜过万行C程序。”

这个程序员自以为对C极其精通,说:“这不可能。UNIX内核正是用C实现的。”

无名师回道:“确是如此。不过,UNIX传统上认为,一行shell脚本胜过万行C程序。“

程序员颇为沮丧:”但是在C中我们可领会到尊者Ritchie的智慧。我们与操作系统和机器合而为一,可以获取无与伦比的性能。”

无名师回道:“诚如你言。不过,Unix传统上认为,一行shell脚本胜过万行C程序。”

程序员冷笑着想愤然离去。无名师向学生Nubi颔首示意,Nubi在黑板上写下一行shell脚本,问道:“尊敬的程序员,看看这行管道,用纯C实现,是不是要一万行C代码?”

程序员沉吟念诵。最终他承认如此。

“你需要多长时间来实现和调试那个C程序?”Nubi问道。

“很长”,来访的程序员承认。“但傻子才会干这个而不去完成更有价值的任务。”

“那么谁更了解Unix传统?”无名师问道。“是写一万行代码的,还是看到任务的无谓而不去编码的?”

听到此,程序员眼中一亮。

无名师与脚本狂

无名师和学生吃早饭时,从黑客大陆来了个陌生访客。

“Ihear y00 are very l33t,”他说。“Pl33z teach m3 all y00 know”。(我听说你很牛,请把你会的都教给我。)

无名师的学生面面相觑,都没听懂这类粗鄙言语。无名师微笑道:“你想弄懂Unix?”

“I want to b3 a wizard hax0r”,陌生人回答,“and 0wn ever3one's b0xen。”(我想当个顶尖黑客,能掌握所有人的机器。)

“我不教这个”,无名师答道。

陌生人很激动。“D00d, y00 r nothing but a p0ser。”,他说。“If y00 n00 anything, y00 wud t33ch m3。”(哥们儿,敢情你没真本事啊,你要知道点儿东西就教给我了。)

“有条路,”无名师说,“可以将你带入真知。”他在纸上写了个IP地址。“黑掉这台机器,这对你来说应该不费什么力气,它的管理员不称职。回来后告诉我你发现了什么。“

陌生人鞠了一躬就离开了。无名师把他的早饭吃完。

几天过去了,几个月过去了。没人再想起陌生人。

数年过去了,黑客大陆来的陌生人回来了。

”你混蛋!“他说,”我黑掉了那台机器,你说的没错,太容易了。但是我被FBI抓起来扔进监狱了。“

”好“,无名师说,”你可以继续下一课了。“他在另一张纸上写了个IP地址交给陌生人。

”你疯了?“陌生人喊道。”经过这事,我再也不黑别人的机器了。”

无名师脸现微笑。“这里就是”,他说,“真知的开始。”

听到此,陌生人眼中一亮。

无名师的双路论

无名师如是教导学生:

“达摩教义有条准线,这在尊者McIlroy的符咒“做一件事并做好”中得到体现。它强调软件应当具有简单一致的行为,这符合Unix惯例,人和其它程序便都很容易想象其心理模型。

“但达摩教义还有另一条准线,体现在尊者Thompson的符咒“有怀疑,用穷举”中,很多经文都教导我们现在得到的90%,比等不来的100%更有价值。它强调实现的健壮性和简单性。

“现在告诉我:什么程序符合Unix传统?“

想了一会儿后,Nubi沉思道:

“老师,这些教义有冲突。”

“简单的实现往往对边缘情况有欠考虑,比如资源耗竭、无法关闭竞争窗口以及在未完成事务中超时等等。”

“发生边缘情况时,软件行为往往不规律、难以猜测。这当然不是Unix传统。“

无名师颔首同意。

“另一方面,大家都知道精巧的程序很脆弱。更进一步说,每个对边缘情况的修正往往牵扯到程序的核心算法,还牵扯处理其它边缘情况的代码。”

“于是,对边缘情况防患于未然、确保描述的简单性,反而会使得代码过分复杂、bug成堆、根本无法发售。这当然不是Unix传统。”

无名师颔首同意。

“那么,什么是正确的达摩道?”Nubi问道。

无名师说:

“当鹰飞翔时,它忘记爪子与地面相触?当虎捕食时,它忘记腾空的一刻?VAX只重三斤!”

听到此,Nubi眼中一亮。

无名师与方法论

无名师和学生Nubi在圣地行走,无名师习惯在晚间为城市和乡村的Unix新门徒布道。

一次,聆听者中混入了一名方法论者。

“优化程序时不对热点进行反复衡量,就像渔夫把网撒入空湖中。”无名师说。

“那么,”方法论者说,“管理资源时不持续地衡量你的产能,不也像渔夫将网撒入空湖中么?”

“我一次碰到一个渔夫时,他正将网撒入船下的湖中,”无名师说,“他摸了好一会儿船底,像在寻找他的船。”

“但是,”方法论者说,“如果他把网撒入湖中,为什么还要找船呢?”

“因为他不会游泳。”无名师答道。

听到此,方法论者眼中一亮。

无名师的GUI论

一晚,无名师和Nubi参加一个程序员的探讨会。有个程序员问Nubi和他的老师来自哪所学校。当得知他们是Unix大道的追随者时,程序员颇为不屑。

“Unix命令行工具太粗糙太落后”,他讥讽道。“现代的、设计得当的操作系统可以在图形用户界面中做任何事情。”

无名师一言不发,只是指着月亮。旁边的一条狗对着他的手狂吠。

“我不明白。”程序员说。

无名师依然缄默,指着一幅佛祖像,然后又指着一扇窗。

“你想说什么?”程序员问。

无名师指着程序员的头,接着指着一块大石。

“请把话说清楚!”程序员要求道。

无名师深深蹙眉,轻拍程序员的鼻子两下,把他扔到旁边的垃圾箱中。

程序员试图从垃圾堆挣扎出来之时,那条狗跑过来在他身上便溺。

此时,程序员眼中一亮。

无名师与Unix狂

一个Unix狂热者听说无名师掌握Unix大道真知,便跑来求教。无名师对他说:

“当尊者Thompson发明Unix时,他并不理解它。随后他理解了,受益了,不再发明了。“

“当尊者McIlroy发明管道时,他只知道它将传递软件,并不知道它能传递思想。”

“当尊者Ritchie发明C时,他将程序员放到缓冲溢出、堆损坏和烂指针bug的地狱中惩罚。”

“说实话,这些尊者又瞎又蠢!”

狂热者对无名师的用词极为愤怒。

“这些智者”,他抗议道,“给了我们Unix的大道。我们嘲笑他们,就是混淆是非,比转世为牲畜和MCSE还不如。”

“你的代码全无污点和缺陷?”无名师问。

“不,”狂热者承认,“没人不犯猎。”

“这些尊者之智,”无名师说,“就是了解自身之愚。”

听到此,狂热者眼中一亮。

无名师的Unix传统论

一学生对无名师说:“我们听说SCO公司把握着纯正的Unix。”

无名师颔首。

学生继续说,“我们还听说OpenGroup公司也把握着纯正的Unix。”

无名师颔首。

“这怎么可能?”学生问。

无名师答道:

“SCO确实把握着Unix源码,但是Unix的源码不是Unix。OpenGroup确实把握着Unix的名称,但Unix的名称不是Unix。”

“那么,什么是Unix传统?”学生问。

无名师答道:

“非源码。非名称。非思想。非实物。恒变。不变。”

“Unix传统是简单和空。正是简单,正是空,才使得它更强胜飓风。”

“以自然法则前行,在程序员手中,吸纳各种优良设计。与之竞争的软件最终必与之想像;空,空,真空,虚无,万岁!”

听到此,学生眼中一亮。

无名师与最终用户

无名师又一次布道时,一个最终用户听说了他的智慧,跑来求教。

他对无名师三鞠躬。“我欲学习Unix大道,”他说,“但是弄不懂命令行。”

一个旁观的新门徒开始嘲讽最终用户,说他脑子一锅粥,说只有经训练者、有智慧者才配使用Unix。

无名师抚手不语,命这个嘲笑最终用户的新门徒前坐,坐到最终用户身边。

“告诉我,”他对新门徒说,“你写过什么代码,有过什么突出设计。”

新门徒嗫嚅了两句,然后沉默了。

无名师转向最终用户。“告诉我”,他问,“为何你要寻求大道?”

“我用的软件并不能令我满意”,最终用户答,“既不稳定,也不美观。听说Unix之道尽管艰难,但超越一切,我愿抛去一切诱饵和虚像。”

“那么,”无名师问,“你为何想尽办法让软件帮你做事?”

“我是个建筑工”,最终用户答道,“这座城里的很多房屋都出自我手。”

无名师转向新门徒。“家猫也能欺负老虎”,无名师说,“但是猫叫永远比不过虎吼。”

听到此,新门徒眼中一亮。



Unity 热更新技术 | (二) AssetBundle - 完整系列教程学习 开始学习热更新方面系列知识,就从这一篇开始吧! 本系列教程 会从热更新基本概念出发,详细介绍热更新相关的全套知识点。 如热更新技术基本原理、热更新主流方案、AssetBundle系列教程、Lua语言编程、Lua与Unity交互教程、Xlua框架使用、热更新实战教程等方面。 热更新作为一个开发者必备技能,如果想学习的话,可以从现在开始了哦~ 接下来从 AssetBundle - 完整系列教程学习 开始学习吧! 阅读详情

相关推荐

RL调参侠之BipedalWalker BipedalWalkerHardcore SAC

前几天用PPO训练了个很一般的agent: RL调参侠之BipedalWalker PPO 我看SpinningUp上面说PPO和SAC是两个领域里各自的State_of_the_art的方法,所以就打算跑SAC试试看,之前因为Open AI Five的原因,一直感觉PPO很牛掰,实际上现在很多自动驾驶的算法也是用PPO在跑,毕竟有一个“必定能够提升期望”的理论保证在这里,我理解这对做项目很大的诱惑。 不过我跑出来的结果明显是SAC更好。 调参侠时间 策略熵的权重alpha用的0.2,我一开始没有看SAC的

weixin_48370148的博客 2099

「学习笔记」无标号生成树计数总结

感觉关于树/图计数是一门博大精深的学问,不知道这辈子有没有搞到足够明白的机会了啊QwQ 一、有标号无根树计数:prufer序列即可。 二、有标号有根树计数:上一个东西乘以n即可。 三、无标号有根树计数: 基本上是这篇的详细版本。 考虑令fnfnf_n表示n个点的无标号有根树数量,其生成函数为F(x)=∑i>0fixiF(x)=∑i&a

Mys_C_K的博客 3019

PCIe设备内存访问实战:从ioremap到DMA映射的完整流程解析

本文深入解析了PCIe设备内存访问的完整流程,涵盖从CPU通过ioremap访问设备寄存器,到设备通过DMA映射高效读写主机内存的核心机制。详细探讨了虚拟地址、物理地址与总线地址的转换关系,对比了一致性与流式DMA映射的适用场景及同步要点,并阐述了IOMMU在安全与效率中的作用,为驱动开发者提供了实战代码与关键陷阱分析。

weixin_29201933的博客 504

【Learning】无标号生成树计数

设fnf_nfn​为nnn个节点的无标号有根树数量。 把生成函数写出来,设F(x)=∑i=1∞fixiF(x)=\sum_{i=1}^{\infty}f_ix^iF(x)=∑i=1∞​fi​xi。 考虑钦点一个点作为根,则需要在下面接若干棵节点数之和为n−1n-1n−1的子树。 fn=[xn]F(x)=[xn−1]∏i=1∞(∑j=0∞xij)fi=[xn−1]∏i=1∞(1−xi)−fi=[xn]x∏i=1∞(1−xi)−fi \begin{aligned} f_n&=[x^{n}]F(x)\\

2016gdgzoi471 581

【Clickhouse从入门到精通】第60篇:ClickHouse生态总结与未来展望

ClickHouse系列收官总结 本文作为《ClickHouse从入门到精通》系列的第60篇收官之作,系统回顾了整个系列的知识体系。文章从基础概念到高级应用,全面梳理了ClickHouse的核心技术: 知识体系:完整回顾了60篇文章的知识图谱,包括列式存储原理、MergeTree引擎家族、分布式架构等核心内容 生态工具:详细盘点了ClickHouse的企业版工具、运维监控、数据集成和可视化方案 版本演进:分析了从21.x到24.x的主要版本特性升级 未来趋势:展望了向量化引擎、湖仓一体、AI集成等发展方向

xyghehehehe的专栏 438

别再只看pLDDT了!AlphaFold预测结果解读保姆级指南:pLDDT、PAE、pTM、ipTM到底怎么看?

本文详细解析了AlphaFold预测结果中的关键指标pLDDT、PAE、pTM和ipTM,帮助用户从单一依赖pLDDT进阶到全面理解蛋白质结构预测。通过实际案例和技巧,指导如何正确解读这些指标,避免常见错误,并提供了从预测到发表的实用建议。

weixin_29100399的博客 353

内向树的生成树计数

所谓内向树,就是树上的边是由儿子指向父亲 来看一个题 元首把花园分为 nnn 行 mmm 列的网格。每个格子中都可以放置一个标识,指向上、下、左、右四个方向中的任意一个。元首位于一个格子时,会按照其中标识所指的方向进入周围的格子,或者走出花园(即目的格子不在网格之内)。举个例子 —— 对于下面的放置方式,元首从第 333 行第 222 列的格子开始,会沿着以红色标出的路径走出花园;

lpf_as_a_oier的博客 1046

计算机视觉(相机标定;内参;外参;畸变系数)

目录 一、预备知识 1、坐标系变换过程(相机成像过程) (1)相机坐标系转换为图像坐标系(透视投影变换遵循的是针孔成像原理) (2)齐次坐标的引入原因:(为什么引入齐次坐标???) 2、内参与外参矩阵的构成 3、畸变参数 二、相机标定 1、张正友标定法(光学标定)及其求解思路 2、求解内参矩阵与外参矩阵的思路: (1)计算内参与外参矩阵的乘积M (2)求解内参矩阵A (3)求解外参矩阵(R1 R2 T) 三、参数优化 1、L-M算法 2、相机标定步骤 四、相关代码及其实验结.

QYJ_WORKHARDING的博客 6万+

无向连通图的生成树个数

我们知道,每个无向连通图都会有自己的生成树。但是大家更熟悉的,是无向图的最小生成树(MST)算法。本文旨在讨论计算无向连通图的生成树个数的时间复杂度为O(n3)的方法。另外一种时间效率高的递推式方法的讲解在文末附有链接。       我们可以利用矩阵在O(n3)的时间内求出无向连通图的生成树个数。对于一个无向连通图,我们可以根据以下规则列出一个矩阵M: 主对角线上的值M(i,i)为

hengfanz的专栏 9667

基于ESP32 蓝牙游戏手柄设计

介绍使用 ESP32 并通过 BLE 通信的 设计手持游戏手柄,包含原理图与代码

DT程序员的博客 2163

48-OpenCVSharp —-Cv2.MatchTemplate() 函数功能(模板匹配)详解

是 OpenCV 中一个常见且简单的模板匹配算法,适用于目标检测和图像识别中的静态场景。它的优点是易于理解和实现,但在面对旋转、尺度变化、复杂背景或光照变化等挑战时,效果可能大打折扣。在这些情况下,结合多尺度图像、特征匹配算法(如 SIFT、SURF、ORB 等)以及深度学习模型可以显著提高匹配的鲁棒性和精度。模板匹配仍然是一个非常基础但强大的工具,适用于一些简单的图像匹配任务。对于更加复杂和动态的图像识别任务,我们通常会使用其他更加复杂的算法或者深度学习模型来处理。

weixin_45590420的博客 4522

无根的根:无名师的Unix心传

一、无名师与万行码无名师曾对来访的程序员说:“Unix传统上认为,一行shell脚本胜过万行C程序。”这个程序员自以为对C极其精通,说:“这不可能。UNIX内核正是用C实现的。”无名师回道:“确是如此。不过,UNIX传统上认为,一行shell脚本胜过万行C程序。“程序员颇为沮丧:”但是在C中我们可领会到尊者Ritchie的智慧。我们与操作系统和机器合而为一,可以获取无与伦比的性能。”无名师回道:“

湛蓝水晶的专栏 1012

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

转载:无根的根:无名师的 Unix 心传

真的很有意思 原文地址:http://i.linuxtoy.org/docs/guide/ch12.html 摘录第一段: [quote] [b]无名师与万行码[/b] 无名师曾对来访的程序员说:“Unix传统上认为,一行shell脚本胜过万行C程序。” 这个程序员自以为对C极其精通,说:“这不可能。UNIX内核正是用C实现的。” 无名师回道:“确是如此。不过,U...

terra的工作站 219

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

无所不在的K.I.S.S——《Unix编程艺术》书评

 本文同步发于原作者的blog: http://www.vingel.com/blog/43      这本书我已经买了三个星期,一直在看。以前看它的英文版,仅仅走马观花般看了一遍。现在这个中文版,目前为止我已经看了三遍,而每次都会有新的体会。我得到的关于《Unix编程艺术》最深的感想就是:Unix中无所不在的K.I.S.S(Keep It Simple, Stupid)原则。      显然,U

博文视点(北京)官方博客 6016

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

无名师的Unix心传

一、无名师与万行码无名师曾对来访的程序员说:“Unix传统上认为,一行shell脚本胜过万行C程序。”这个程序员自以为对C极其精通,说:“这不可能。UNIX内核正是用C实现的。”无名师回道:“确是如此。不过,UNIX传统上认为,一行shell脚本胜过万行C程序。“程序员颇为沮丧:”但是在C中我们可领会到尊者Ritchie的智慧。我们与操作系统和机器合而为一,可以获取无与伦比的性能。

思雨轩的专栏 873

无名师的 Unix 心传

一、无名师与万行码  无名师曾对来访的程序员说:“Unix传统上认为,一行shell脚本胜过万行C程序。”  这个程序员自以为对C极其精通,说:“这不可能。UNIX内核正是用C实现的。”  无名师回道:“确是如此。不过,UNIX传统上认为,一行shell脚本胜过万行C程序。“    程序员颇为沮丧:”但是在C中我们可领会到尊者Ritchie的智慧。我们与操作系统和机器合而为一,可以获取无与伦

一个混迹在安全圈的宅女 1393

无名师的unix心传(转)

一、无名师与万行码 无名师曾对来访的程序员说:“Unix传统上认为,一行shell脚本胜过万行C程序。” 这个程序员自以为对C极其精通,说:“这不可能。UNIX内核正是用C实现的。” 无名师回道:“确是如此。不过,UNIX传统上认为,一行shell脚本胜过万行C程序。“ 程序员颇为沮丧:”但是在C中我们可领会到尊者Ritchie的智慧。我们与操作系统和机器合而为一,可以获取无与伦比...

sunting_bcwl2的博客 194
上一篇: 深入Django(1): 通用视图 (generic views)
下一篇: Python之禅
ThinkInside
博客等级 码龄19年 281粉丝 93原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值