修跳跳灯

跳跳灯就是皮克斯动画片的片头,生命力充沛跳来跳去的那盏台灯。看过不少动画片,也看到过很多次这个家伙跳来蹦去,但是没有和现实世界结合起来。直到典少尉告诉我,“我跟你说老杨,这个东西可真是太好了。”

如下图所示,白色的就是了。

买了一个,果然好。调整位置和角度都灵活,且能稳定保持。特别是看着它就想起来生命活力,想起动画片里的温馨故事,心情大好。后来又买,一共有三个了。

时光飞逝,老的跳跳灯开始出毛病了。连接弹簧的两端,是螺丝的末端。可能出于成本考虑,螺丝的末端套了一段塑料管,弹簧就挂在这塑料件的上面。五六年过去了,塑料氧化,逐渐断裂了。这几根弹簧非常重要,对保持跳跳灯姿态既灵活又稳定不可或缺。

如下图左边所示,黑色塑料连接弹簧的位置,那个凹槽是最先断裂的部分,后来有的纵向裂开了。如何断裂不一而足,共同的特点是不能承受弹簧的拉力了。

我就换成了上图中右侧的白色塑料件。这个白管是粗的圆珠笔芯,内径刚刚好比螺丝细一点,可以用螺丝攻出螺纹来,稳定。上面的凹槽是我用刀削的,为了稳定挂住弹簧。

白色塑料件和黑色塑料件的里面是同一根螺杆,从左至右贯穿过台灯支撑杆。

又五六年过去了,黑色塑料件有四五个逐渐断裂,同样粗细的白色圆珠笔芯却找不到了。我只好切了手头上最粗的圆珠笔芯。如下图所示。

从弹簧向外的一段,用来挂弹簧。这段圆珠笔芯的缺点是,1.滑,弹簧在梁上面会滑动;2.挠度不够,弹簧滑到偏向外侧的时候,梁弯曲变形,末端没有阻挡,弹簧有时会脱落;3.这个物性称为什么?如果在上面切出凹槽,弹簧的强度下降严重,挂上弹簧以后会从凹槽处断裂。

坚持了一段时间,就用下图的方法。两边夹个铁夹子。暂时对付,然而相当不优雅。

考虑了几种方法。

在两端缠上橡皮筋,靠摩擦力较大保持住。塑料杆太细,不容易缠。

粘补黑色塑料件。最近学到的方法,还没有实践。用强力胶如502,掺进泡沫塑料或者棉纤维或者碱或者塑料碎末,凝固以后据说强度甚佳。塑形的方法可以用模具,模具用橡皮泥、陶泥,或者淀粉和水。如果精度要求高的话工艺相当麻烦;如何保证内径稳定且符合要求,我没有想到办法,把螺丝杆放在里面成型么,还能拆出来么;外表面怎么办,用砂纸?

Zhumao说:用筷子削一个呀。我猜强度不行,特别是两端要有凹槽,容纳弹簧,避免脱落。

后来想到,换个螺丝杆吧。换长一点的,把弹簧挂在金属螺丝杆上,两端用螺母阻拦。这个办法好。

去装修店,走了三五家,遍历了附近每一家。没有螺丝。

去锁店,想也许有吧。关门。

Zhumao和xl同学分别找了一下,从面板上拆之类的,螺母数量不够,各种缺点都不尽人意。

按zhumao启发,量了长度和粗细。淘宝。

直径3毫米多,后来证明3毫米有点细,不过没负面影响,可用。长度比原来的多加1厘米,左右各0.5厘米,用来拧螺丝。

下图,新螺丝和旧螺丝对比一下,有蝴蝶螺母的是新螺丝。这时才注意到,三盏台灯里最老的一盏的螺杆居然长度不同。也就是前几天,我才注意到,它的弹簧长度也不同,分成两种规格。后来的新台灯的弹簧长度就都是一样的。

效果非常好。

螺母有点松,不过如果不主动去拧应该不至少掉下来。如果以后发现有不听话的,用胶水粘一样,或者在螺母和螺杆之间夹一层薄纸什么的也差不多。还可以在螺杆的外面套一层圆珠笔芯,减少螺杆和台灯支撑杆上的孔洞的间隙,不过考虑圆珠笔芯更光滑对稳定性可能只有坏处没有好处,算了。

还有备用的螺丝,再有氧化断裂的,随时可以换。

这就修好了,继续保持活力,继续跳。

浮光掠影——看世界科幻大会 2023 成都(2)

2. 科普,科幻感,周边

在大会前和大会后,都有人问到同一个问题,“你参加科幻大会,在单位/公司请假容易吗,有没有遇到障碍?”向我提问的,有老学生在群里问,也有高校科幻的朋友在网上研讨的时候问。现实世界中,听到作者们互相提问不止一次。毕竟有些作者的笔名和本名不同,并且单位领导、上级同事、老师同学、老婆孩子可能都不知道他写作科幻,所以参加大会要编个理由。是不是像地下工作者?

我写作科幻是实名的。我的职业是高校教师,作为科技工作者,向公众做科普宣传是职责之一。不同于有些人误解的,教师就是(暗示 仅、只)应该教好学生,教育部不是这么说的。高校教师的责任包括 科研、教学、社会服务,总共三项,不是一项。如果没有科研经验,无论成功的和失败的,不适宜作为高校教师,更适合作为高中、初中、小学教师,传授传统和相当确定性的知识。高校的课程内容需要包括教师对前沿的理解和科研经验,无论正确错误、成功失败,都比没有理解和经验要好。高校教学过程不仅包括传授,对探索和探讨的比例、对错误的容忍度比基础教育要高很多。第三项,社会服务包括横向课题为企业服务,也包括技术培训和咨询。也包括,科学普及宣传。科幻,是科普中非常重要的部分。参加科幻大会,向来自五湖四海各行各业的牛作家们学习请教,交流信息和痛苦,正是科幻大会的动机,也是我参加的动机和职业责任。职业中包括自己喜欢的事,挺幸运的。

科普,我一直在尝试。虽然没有能力写好硬科幻,然而心向往之。当年笔会时,大刘先生和我是唯二认为 科幻指导不了科学、并且科学的想像力比科幻高多了 的人,被戏称为硬科幻原教旨主义者。我还坚定地认为,科幻承担着科学普及的责任。这个看法大家读到的科学的春天之后的主流观点有所不同,科幻有责任科普,并不意味着科幻只能科普。我喜欢吃肉,但是我不反对别人吃蔬菜,也不反对别人吃素,更不会说吃这么多蔬菜不恶心吗,也不会对这一口没吃肉的同学作负面评价。

科普很好,硬科幻很棒,即使软科幻也普及了科学而并非巫术和原始宗教的背景。科幻的周边也很有意思。美国的60年代黄金时代所孕育的科学家和工程师,还有技术人员,有几个当年是看懂了科学原理才喜欢科学的呢。我们喜欢好吃的,最初的动力难道是因为营养吗。

我没有奢望在科幻的大会上看到科普,虽然实际上比预期的还要隆重很多。

我参加过劳动部组织的装机器比赛,到达北京以后,距离比赛时间还远,就把大家手机都收走了。我参加过一次国际的化学大会,换会场的时候长春市主干路暂时封闭请来自各国的科学家们从容穿过。但是都没有此次科幻大会震撼。

一下飞机,就看到很多巨大的牌子,有在路灯柱子上的,有在地面一人高半人高的,各种各样,可谓张灯结彩。有志愿者接机陪伴引导,沿途又遇到很多志愿者站岗,有专门的大巴等候着,大巴前是熬了很久的编辑们。合影,聊两句,上车。一路上很多路灯柱子上挂着黄、紫、蓝作为主色的世界科幻大会标识。这个东西学名叫什么什么,一拉宝,条幅,还是旗帜?宾馆门前也有一人高半人高的标识,大厅里有一柜子两柜子的纪念品。

会议期间,坐上通勤大巴半个多小时四十分钟左右到达终点。到达终点前就能看到科幻馆主建筑,科幻感十足。整个建筑都是银色的,没有一条长直平的立面,全是曲线,弯转迂回,流线生辉。在评论中我见到了各种比喻,只记住了像外星飞船,其余的都忘记了,印象里大家都觉得像自己没见过的伟大的奇迹。后来发的纪念品里有一个徽章,就是科幻馆造型,金属的,沉甸甸的,质感厚重,我非常喜欢。

下车旁边就是入口,有安检。在以后的几天里通过大家聊天发现,安检的规则一直在调整。调整的规则不是函数单调的,也不是震荡的,没有发现规律。有时候安检人工凝视我们的胸卡,上面写着嘉宾证和姓名。姓名,有的通知必须与身份证一致,有的使用了笔名,有的笔名是英文被拒绝了。我们都采集了照片,有严格的要求,多少像素乘多少像素,眼镜不得有反光,脸不能太大不能太小,要占特定比例。我当时感慨科幻圈的信息素养真高啊,后来知道对付随便上传一个也行,知道的时候我对自己认真花时间做照片惋惜了一秒钟,由于为不值得的事情惋惜,我又惋惜了半秒,由于为不值的事情惋惜导致了惋惜,我又惋惜了1/4秒……不用怀疑,函数是收敛的,所以后来惋惜停止了。有的时候,要求把脸对着摄像头,要人脸识别,就比我们先前上传的照片比对。手拿着嘉宾证,扫描,脖子举着脸,扫描。忘了嘉宾证的绳子还拴着脖子,来回调整,有一瞬间突然就想到了林冲和武松。奇怪,和他们有什么共同点?

出入这些次以后,我总结的规律是,每次都看嘉宾证,每次都有扫描金属的设备在身上虚拍,以及“转过去”或者“请转身”。其余的规律不是很强。有时候要求身份证,有时候不要求。有时候要求扫脸,有时候不要求。有时候翻包,有时候不。有时候不允许带水,考虑到有些工作人员在里面工作就是一整天超过10个小时,午饭也没有,相当考验人的意志和肉体呢。后来又听说可以带水,玻璃瓶不行。大家都很费解,但是也就从了。唯我不屈不挠地思考,有天吃饭时突然悟了,一拍大腿啊一声,给周围的作家们讲原理——玻璃瓶可以打碎了作为凶器啊!他们都夸我,你可真有想像力。不不,我谦虚地说,和制定规则的人相比,我差得远呢。

建筑给我带来的强烈科幻感冲突,在入品处降低了一些。外国人也从同一个入口进,也许他们会觉得科幻一些,如果他们见识少的话。我猜他们听不出来“转过去”或者“请转身”的区别。不过我错了,不少老外的中文相当好,听说都不错,令我震惊。应该能分清有没有“请”吧。

入口并不是真正的入口,场地远比我想像得要大。从入口开始向外2.5公里左右都是交通管制区,人烟稀少,非常安全。我只见到了大巴和警车,见到了志愿者在垃圾筒上吃饭,见到行色匆匆的工作人员。

我也有幸成为管制区中的风景之一。当时正跟亿万大哥往会场里走,感慨这路还挺长,科幻风格强烈,连垃圾筒、变电站的涂装都是星辰大海。走了一半,他的同事心丁女士(可能是“年轻人网友!”的命名者)把电话打给了我们。所有人的嘉宾证都在亿万大哥的身上,得返到入口,跟入口2.5公里的真正入口,在管制区的边界,把嘉宾证送回去。之所以嘉宾证都在一个人身上,是因为原计划大家一起进入。之所以大家没有一起进入,是因为有人没带身份证。是的,在这个真正入口,规则是不同的,要求身份证和嘉宾证同时并且匹配。还没等取到身份证,他们又发现,自己的嘉宾证已经进入管制区了。所以,我们又赶回去。路上有科幻色彩浓郁的公交站,没有公交车;有科幻色彩浓郁的大厦,大厦下面没有人类;有我和亿万大哥来回奔波,没有观众。空旷死寂,在地球上的闹市区里我感觉到了宇宙深空。

在科幻馆里,一进门是个那~么~大~的机器狗。四足踏麦克纳姆轮,装甲细节丰富。外面全白,汉白玉雕塑感。后来有人告诉我,你不知道啊,那个表面是用来投影的,每天什么时间来着?我说,我不道啊,会议日程上没有啊。我懂了,要去发现,主动发现。我后来看到了投影,银灰、黄蓝,诸多涂装在巨大的音乐轰呜里变换,非常壮观。

光线是从周围的柱子里投出来的,那些柱子上的射灯投影仪,我本以为是摄像头。周围还有些弧面的斜坡,我的第一反应就是这太适合滑板、小轮车冲上去了,如果没有这些载具,徒步冲上去一定也不错。我不敢,因为我以为射灯是摄像头。后来终于看到一个小孩冲上去了,咚咚咚跑,我心里为他加油。我因为一个保安大声喊那孩子才转头看到的,谢谢这位保安大哥。后来那个斜坡的下面站了一排志愿者,一直驻立着。我想他们也想冲上斜坡吧。

那个巨大的机器狗是有名字的,它就是流浪地球里那只。电影里那里非常小,半米左右,方方正正的,在船上不敢下水,被教训“你是一只军犬啊,笨笨。”然后扑通一声,不知道是推下去的,还是跳下去的。但是我没能把这么巨大,直抵三层天花板的家伙和电影里的形像结合起来。所以科幻世界的编辑老师约我在大厅见面,我说“大厅的哪里,那么大”,她说“笨笨,就在笨笨的下面”,我问“什么是笨笨?”啊,就是它啊。

笨笨的周围也充满了科幻色彩。每个屋子,无论用于沙龙的小房间,还是大报告厅,它们的名字就都够科幻。名字叫 地球、天王星、海王星、土星、木星,还有雨果。如果有室内导航的话,那么科技感会更足一些,不然就仅仅科幻了。我在室内移动的过程中,每换一次房间,都必须依靠问志愿者三到五次,我的定向能力不足以依靠地上的标志寻迹。

电梯里是紫蓝的灯,还有无穷反射的镜子。大厅旁边的走廊里也是深蓝浅紫。确实挺科幻的,跟科幻电影里演的一样,虽然人们不会喜欢在其中生活和工作的。人们也不会喜欢在末世废土里工作生活,幸好这次的科幻感没有采用这个系列。

笨笨所在的大厅有两层楼高,旁边墙上有个两层楼高的雨果奖奖杯的造型,为避免有人不认识(比如我),下面用英文写着 雨果奖 几个大字母,大家纷纷上前合影。我也想合影来着,还设想,要不要错位拍摄好像自己拿了雨果奖一样。

笨笨的周围还有个地方,似乎牌子上写着名字叫做 网红打卡地 之类的。看起来是在虚空里有影像悬浮着,有大熊猫,还有女主持人在动作,有没有声音忘了。我不太了解设置这个装置的原因,印象里牌子上还写着高科技之类的。但是,技术人员或者爱好科技的人,从科普的角度上看,一定不会震惊这科技如此之高,而是会第一时间想,这怎么做出来的。显然,是视觉暂停,有一堆LED在快速转动,在特定相位显示预定的内容。接着会想起来在优酷和B站有制作教程,然后就没有悬念了。如果有创新点或者技术难点的话,可能图像或视频可以定制,或者挥鞭转速更快一些。

不少人拍照,不会拍到好效果的。因为LED转动采样叠加相机采样,留下的照片会是相当残缺不全的。除非有较长时间曝光,并且三角架稳定,但是这对多数拍照者来说过于复杂。

后来因为沙龙排不上队抢不上槽,我又要找河流提到的搬书的地方,迷了路,围到了藏在墙里的科幻周边摊位,很多摊位。我看到了键盘移山轴,跟电影里的一样。非常想要一个,但是很贵。在科幻之夜有个抽奖,听说是移山轴以后我激动得哇哇大叫,抽中我多好啊,万一呢。听说抽中的是个老外,我痛恨得哇哇叫。他知道什么是移山轴,他知道这意味着什么,他不如把移山轴卖给我。但是如果我买得贵了,我不甘心,如果买得便宜了,老外会觉得中国人欺负他占他便宜。我纠结啊。后来安慰自己,用起来一定不太舒服,键盘必须得是生产工具呢,哇哇。

我在周边摊上还看到了自然选择号太空船和无畏级战舰。巨大!细节丰富!会动会闪。我没有那么大的屋里摆它们,但是仅仅靠近看看,看一个小男孩装作若无其事毫不激动得走开,我就已经很满足了。

还有卖什么茶的,所说也是高科技。

还有模拟纳米装配,玩家戴手套伸进装置,探头从镜头看,把一些小零件(怀疑有磁性,如果没有,应该加上)装配成指定结构。这是模仿纳米装配中粗手指粘满黄甘油装配袖珍手表的齿轮,重点突出,形象生动。

还有一个说是展示了反物质,一个箱子四面开口,一个球悬浮在空中,旁边的显示展上曲线闪动。我伸走一推,球叭一声掉了。工作人员双手把它摆正,试了几次,松手,球悬浮住了。我抻头看,箱子里六七个线圈。这是磁悬浮吧,为什么说是反物质呢,还解说科学证明了什么什么。这明明是磁悬浮啊。

反物质与纳米装配的区别在于,玩家明确地知道纳米装配是模拟,是假的,而反物质告诉你这是真的,然而并不是真的。视觉暂留装置与反物质相似,它给了观者一个印象,想强调这是真的,是高科技。并不是,那只是具有科技感未来感的演示,展示的是“感”。

移山轴是假的,自然选择号是假的,无畏级战舰是假的。我们都知道这一点,制作者也明显这一点,所以没有人感觉到受骗。我们所要的不过是情感强化、情感认同,以及宣泄。如果你指着反物质说这就是科学,指着视觉暂留说这就是先进,指着场馆外面的管制区说,这就是未来,那是什么感觉?

我们当然知道光剑是假的。所以500人大群里有人发光剑照片,当我说“管制刀具怎么进去的”,就会有人说“那不过是发光的管子”。我说“那是光剑是光剑”,大家可能也只是在屏幕后面笑笑,笑我能逗,或者笑我不会逗,但是不是笑我无知。如果我严肃地论证那真的是光剑,有人把塑料拆出来给我看,我再找他家长呢。

光剑是假的,笨笨是假的,购物机器人是真的。第一天参加完沙龙,我意识到返回宾馆吃饭来不及。往返的每个单程需要半小时以上,车隔我不确定,也许十分钟,再加上等开饭的时间和吃饭的时间,要么弃了沙龙,要么误了回来以后的(似乎是)银河奖颁奖观礼。所以我决定不回去,但是必须得吃点什么,室内热,为了应对室外穿得不少,出汗;血糖急剧下降,我可能会像个不会从万能口袋里掏出食物的原始人一样晕倒在未来。

不知道有多少参会人员,有两部购物机器人。我知道这个数量时非常震惊,心想,你们真优雅啊。后来才知道,还有麦当劳、肯德基、赛百味。可惜当时我还不知道,虽然知道也没用,因为再后来我又知道排队的人非常多。原来,你们也和我一样庸俗得需要吃喝。

我找到购物机器人,选了含糖量最高的,是饮料。扫码付款,感谢科技,感谢在如此科幻的地方有如此落地的科技。机器人工作了半天,饮料还没出来。一位志愿者注意到我的窘境,告诉我,“等一下。”我问,“从哪里出来?”志愿者一指,我确认了一下,“这里?”当我的手指轻轻落在那个小门上,我发誓是轻轻的,不会按死一只苍蝇那么小的力气。当我的手指轻触,机器人屏幕上显示,机械故障。志愿者说,“会给你退钱的。”

我当时非常没有修养地在心里辱骂了机器人的祖先,我要的不是退钱,是你好使,是给我糖分。过了一会儿,真的退钱了。我举着手机望着这满目高科技的天堂,欲哭无泪,我饿。

幸运的是,机器人有两台,另一台工作正常,虽然没有高糖饮料,也许因为不健康,但是它有薯片。我抓着这救命的稻草,每五片薯片,喝一口水。我走来走去,因为一共没几个的座位早已座无虚席。能被流浪汉忍受的地方,比如笨笨旁边的射灯下面的空槽里也坐了人。我走来走去,每五片薯片,喝一口水。我听到似乎有人在抱怨刚刚卖给我薯片的机器,不知道它是不是也坏了。至少我有薯片了,我咽下一口,笨笨在上。每五片薯片,喝一口水。

另一次在日本作家的沙龙里,有同声传译。戴在单耳上,有翻译人员同步翻译。这几位翻译真是相当专业,在作家回答读者问的时候,没有底稿依据,仍然流畅迅速。一位家长问她的孩子,"你知道同声传译么"。孩子说,"知道,流浪地球里有"。

忍住不扭头去看那个孩子稚气的脸,我不希望我们相互同情。他还不知道以后会看到真实的世界是残酷的,跟电影里一样残酷,但是与电影里残酷得又略有不同。不知道他是否清楚,这时的同声传译靠的是人类,与流浪地球里是不同的。这个世界构造出五彩斑斓科幻感十足的场景,越做越大,越做越逼真,然而背后有几千几万志愿者扮成人列计算机。你,就是计算机里的部件,看不到全局。你能看到的,是一尘不染的大街,是银色的五彩的闪亮的城市,是未来感,是科技感,是无限美丽的希望。

 

浮光掠影——看世界科幻大会 2023 成都(1)

0. 引子

2023秋,有幸参加了世界科幻大会,看到听到感受到异彩纷呈或者纷繁芜杂的事件和景像。如果不趁着热乎赶紧记下来,可能很快就忘光了,只剩下了斑驳的印象。

我所见的,都相当不深入,肤浅地掠过,或者从远方观望,所以称为浮光掠影才算合适——景色斑斓,但是我的所见寥寥。在会议期间,我一直跟着齐然老师,他和编辑聚,我就蹭饭蹭听讲座。齐然老师常向我推荐作品,或者讨论某位作品某篇大作,我刚开始赧然,后来索性厚了脸皮,直截了当地说,“不仅这一篇,你所说的绝大多数作家和作品,我都没读过。”20多年前参加科幻笔会的时候,就是这样的,别人提到博尔赫斯,还有谁来着,作品参考了一堆连名字都没听说过的著作和流派,我当时都是第一次听说。当时我一副“你说的是啥玩意”的表情,对方可能也是“这家伙是什么玩意”的心理。当年我们互相都没有细问对方,所以只是猜测,不得而知。齐然老师很淡然,我不知道的他也不惊讶嘲笑,就给我讲一遍,我收获很多,包括内心的平静。

因为所知太少,所见太窄,所想太浅,所以,我的记录连一家之言都算不上,就是浮光掠影吧。精彩的巨大空间从我身边飞掠而过,我瞥到一瞬,给你讲一下我心跳的感觉,就那一瞬。

1. 见网友

这次见到了神往已久的不少大家,有的得以近观,有的远远瞭望到大屏幕上的影子了。他们平时都是网上和纸上的名字,他们出现在我的视野中的主要是所构造的世界和作品里的角色,这次见到的是他们本人。

又见到了海哥。

海哥是吉林艺术学院的老师,画家,获银河奖美术方面的奖项若干次,少年版有时一整年还是将近一整年的封面都是他画的。吉林艺术学院的老师和学生曾经在中国好声音这个电视节目中惊艳出场过,从而使全国人民得以知晓这所学校的名字。在我看来,这是东北工业曾经高度发达所残留的遗迹尚未完全冷却的余温,是辉煌工业的一部分。海哥的杰作也在其中。

出发前很久,海哥就联系我,买没买机票呢,买哪天的,回程呢……等等。后来海哥看我实在糊涂得紧,就全都包办替代了。一路上,我跟着海哥混,没有跟丢,后来得以平安归来。在飞机上无聊,我又掏出笔记本和笔,开始画画。这是我很久以来的习惯,喜欢画,觉得有趣,不然困倦。我突然哈哈大笑,说我想起了临行前和二猫妈说的,这次画画与往次不同,因为有位画家坐我旁边。我说,你不许笑话我啊。我一共画了两幅,海哥一一指点。

他说:你喜欢画就好,这不是职业,是爱好,所以可以一直画。所欠缺的,就是技巧。

翻译过来,差不多就是 人菜瘾大。甚善。

又见到了亿万星辰大哥。

第一天会议,我正在沙龙现场沉迷着。那场是骑桶人主持的。他说,之前也没有告诉他他就是主持人,只是说好了有个沙龙。来了以后现场的保安(估计我记错了,不是这个词?)问谁是主持人,对了一下单子:好,就是你。你现在要讲什么什么开场白之类的。他问,我这么快的语速,在场的外国朋友,对不起啊,不知道为什么没有安排上同声传译,你们听起来是不是有困难啊。我禁不住哈哈大笑,因为我作为一个中国人听那么快的语速都颇感困难,我笑他相当有自觉。笑得声音太大了,大家都回头看我。靠边坐的老外哥们说,没问题。后来有听众提问,问,桶叔。我刚开始一楞,桶叔,桶叔是谁。随即想到,就是骑桶人,他已经是桶叔了。提问的听众不知道是否了解,骑桶人的桶就是马桶的桶,意思就是骑在马桶上的人。应该不知道吧,提问得语气那么正经。

我正沙龙里沉迷着,并且拍照和实时转播给后方的朋友,其中就风大先生。风大先生告诉了亿万星辰大哥。消息估计有几个往返,亿万大哥和我分别说,想不到你也在啊,太好了。他说,中午去吃饭,一定要去,不能推辞。怎么会推辞!

中午去吃饭,有个群,叫做“年轻人见网友!”,我扫了几眼群友们,嗯,大多认识,20年前大家正是20多岁的年轻人。当时,还没有特别的感觉。几经辗转,要从会场出来,看标识,迷路,再看标识,走到路口,嗯,这里不是出口,出口在——那边——走到马路上,封城一样,2公里范围内没有车辆,人烟稀少。离开封控区,得以打车前往。

在物理世界见到网友,感觉格外不同。

说书人!我们的书什么时候能出呢?他说,明年,明年就能出了。

凌晨!凌晨老师,我一直仰慕您,但是在各个群里都由于您设置了权限加不上好友,能加个微信吗?凌晨老师说,你写的是不是某某作品。不,不是。我心想,您没听说过我,没读过我写的,太正常了;并且,我无知得很,您说的作品我也不知道是什么,惭愧得很。

七月!他总是抿着嘴很腼腆地浅笑,酒窝很深,眼睛很亮,20多年没有什么变化。这几天另外还有一次机会喝酒,去敬酒。我说,七月老师。他说,滚。我说,小七,他什么也没说,举起了一杯。他说本来有几个沙龙,后来有他的几个都没有批。我说,没批是因为你啊?你都说过些什么?他说,不是因为他。我说,反正你的几个都没批,你就想吧。他给我介绍作家,那位是苏老师,获得过少年凡尔纳,在哪哪是技术大牛。我说,少年凡尔纳,就是你没得着的那个吗?七月老师少年天才,高中就投了他的佳作,但是发表的时候他已经考上了大学,痛失少年凡尔纳。可惜也可乐。看,相熟要趁早,敬酒趁年轻,索签名得趁大部队还没有一拥而上。

罗隆翔!他看着我的眼神特别深沉,杨贵福,二十多年啦。我担心他会哭出来。我想说,我知道你有不少优秀作品,我也还在写啊。

最特别的是迟卉。

在群里有她,但是直到菜过五味,我也没有见到她来。后来亿万大哥开始挨个介绍大家,担心时间太久,大家互相忘了吧。介绍了牙晓,蹭蹭,都是太空疯人院论坛里的老人儿。为了什么后来大家都不见了呢,是各为理想渐行渐远吗。后来知道了一个重要的原因,网友中一位半抱怨半开玩笑,于我如晴天惊雷。我视为平常从未多想,然而却是原因。因为我永不再使用QQ,那是从2005年开始吧,从此和大家失去了联系。我知道封号的感觉,就是整个世界离你而去。介绍了拉拉,或者是他的双胞胎兄弟碎石?大家也问,你是哪一个啊,是不是太忙派了另一个来。他说,是啊是啊,我就是另一个,我的哥哥(还是弟弟)经常提起你们。介绍了凌晨老师,大家颇有点 凌晨老师还用你介绍嘛 的不屑。

后来介绍到了一位女士,亿万大哥说,这是迟卉。我没忍住 啊! 了一声。是你啊,必须得握握手。我啊了好几声,感慨而没有具体的言语。我没认出来迟卉,虽然这几年在网上也见过她的照片。然而我完全没有想到那就是她,刚刚见面大家互相笑笑对望一下,我误以为她是另一位作家顾老师呢。

二十多年前的老朋友,突然见面,刺激太大了。想过去,想未来,想到很多人,一幕幕都叠在一起洇浸在一起拆揭不开。这种感觉在突然看到本以为没来的迟卉就坐在我旁边的时候集中爆发,我差点一下子就哭了出来。只好不停地说 啊啊,假装成一个成熟的成年人在感慨人生。

介绍到我了,他们叫“贵妃姐姐,好久不见”。我说,好久不见。谁问的来着,你居然允许他们这么叫。我说,不然呢?毕竟,这都已经是二十多年前就已经发生过了的事情啊。

大河在窗外滚滚而过,白浪带我们回忆听江浦和康定城。唧唧复喳喳,一别经年,又怎么能是一个中午这么短的时间就能叙罢。要去看另外的沙龙,大家纷纷打车。等车的时候,我对亿万大哥说,有两位好朋友,你见过的,他和他都在疫情期间去世了。他啊了一声,又确认了一遍。我简单回顾了情况,我们就望着天。一位译者女士,她说,这太压抑了,我有个好东西给你们看,打开长条纸盒子。我一看,说,这是不是那个什么骨,那个什么,就是它吗?她说,是啊,就是接骨木,我在英国什么什么地方特意买的。有谁问了以后,小心翼翼地拿过去,举起来喊,变成猪!她说,你拿的不对,因为谁谁是反面角色,所以他一直都是倒着拿的。年轻人,善意收到了。

后来还见到了很多大家。有第一次见的朋克风格马老师,加拿大的孔老师,又见到晴姨和任青老师,他们热情地为我引见其他大家牛人,忠厚长者。

等电梯的时候见到了夏笳老师,立习习老师。都表达了景仰。

科幻之夜见到了姚老师,冲上去打了个招呼,没敢再多打扰。

见到了刘维佳。特意跑去他的沙龙,从后面慢慢挪到前排。结束的时候,我上前说,我是杨贵福啊!他说,果然啊,看着像,你QQ也不用了,加个微信。

远远地看到了刘慈欣,他在大屏幕上,看不清楚真人,超出我的视力能力了。靠前也超出我的能力了,传说被层层保护起来,拿书去签名的作家被保安把书扔了出来,凑前去打招呼的作者被保安把人推了出来。传说。我想写邮件发消息,怀疑会淹没在无数喧嚣里。无论是淹没了还是过滤到垃圾箱里了,都会有损我曾经认识大刘先生(他也认识我)的自豪,再动辄拿出来吹牛就底气不足了。

坐车的时候见到了程婧波老师。在科幻之夜,见到了大角。我没有看到大角,齐然老师告诉我,你快看。消息还没过脑袋,我就冲过去打招呼。仍然是初遇偶像时的感觉,当时我内心颤抖着给他复述过他的小说里的情景,主角面对蛟把剑扛在肩上立住,那是步兵削向马腿的姿态,要么削断马腿,要么被踏成肉泥。而我,这么喜欢那个勇敢主角的胆小鬼,三分钟一过,无所措手足。合了影,回来后巴巴拿出来给二猫妈看,照片上我瑟缩着,大角还真是给我这样的压迫感。跟程婧波老师一样,你们板着面孔,我连签名都不敢提出啊。

待续

4行代码播放当前目录下的所有mp3-乱序,技术路线摸索的过程

0. 为什么写这一篇

上一篇 一行代码播放当前目录下的所有mp3 https://zhuanlan.zhihu.com/p/666243724 有个缺陷,mp3未排序。播放如果总是同一次序,那么听到的就总是那么几首曲子,后面200多首没机会听到,让我想起当年背单词多少次止于abandon。

不可忍,所以实现了一个乱序播放的版本。

读我博客或者技术讨论的时候,有的同学提到过,你能做出来是因为你已经了解那些知识,而且记住了。不总是这样,我经常想不起来具体的技术细节,需要搜索。这篇以乱序播放为例,回顾我实现的过程——在知识点记不清的时候。

以下是实现的过程,总计半小时左右。

1. bat 批处理

上一篇是用bat实现的,核心技术包括 遍历目录、调用ffmpeg、播放完每首歌曲后退出到bat再进入循环。批处理是windows原生的,如果不需要引入任何运行环境,那最好不过。所以这一次也想继续用bat。

我需要哪些技术呢?生成随机数,指定随机数范围,建立数组,遍历数组。也许需要平行数组,一个用来存随机数,一个用来存文件名。

都依稀记得,然而印象不清晰,不足以不搜索就写代码。以下依次搜索如何实现。

(1)随机数

乱序,或者随机播放,核心因素是随机。我需要生成随机数,不必太真实,所以伪随机如何才能更真,就超出了考虑范围。

我不知道如何生成随机数。

搜索bing,国际版,关键词 bat, random。关键词指定得如果不是编差太多,一般不会超过第一页。这次幸运,没有超过第5个的,一般都在第3条以内。

看第一条

https://www.delftstack.com/howto/batch/batch-random-number-generator/

里面有这样一段代码。

就是它了,测试一下,很对。

(2)需要指定随机数的生成范围,从第1首到最后一首。

Bing搜索关键词, bat random range。

第1篇,似乎被墙,出现有点慢。

https://ss64.com/nt/syntax-random.html

或者

https://ss64.com/nt/syntax-random.html#:~:text=Two%20commonly%20given%20ways%20to%20generate%20a%20random,_rand%3D%20%28%25RANDOM%25%2A%20500%20%2F32768%29%2B1%20Echo%20Random%20number%20%25_rand%25

看这里。

差不多,测试一下。用Total Commander | ctrl-f | mp3 搜索,看计数263首。需要随机数落在[1,263]这个区间范围内。

差不多。

(3)数组

搜索。

咋只有赋值没有声明呢?看到下面这里,所有的记忆突然复苏了。

Bat是用字符拼出来的数组,实现起来非常丑陋。

放弃bat这条思路。同学们经常觉得别人实现多么顺利,以为自己很菜。并不是,如果你看到菜成像我这样的,把菜的过程都揭示出来 ,就会明白你并不孤独,可能比我还要厉害或者幸运一些呢。人人惨淡,只是在朋友圈里晒得是最高兴的部分就是了。

2. bash

换用bash吧。我机器里刚好已经装了git,附赠了bash。

我刚好学过一点bash,用过一点。虽然忘得快干净了,但是具体细节可以搜索。需要哪些技术呢?

跟bat的一样,并且我确实做了计划。搜索和实验的过程记录在计划的大纲下面。

(1)随机数

搜索 bash random

找到 https://linuxconfig.org/generating-random-numbers-in-bash-with-examples

测试 echo $RANDOM

(2)随机数范围

我在日志中记录了 搜索,参考的链接,实验,如下。

(3)改变路线,洗牌

在看下面这篇时,我突然想到,可以不必随机数。

即这一篇,刚刚搜索到的第1条。

https://www.baeldung.com/linux/bash-draw-random-ints

这篇对随机还给出了其他方案,例如 shuf,可以乱序集合中的元素。

那么我这样不就很好?

ls | shuf

每次执行输出的文件名次序不同。

3. 改变路线,洗牌

可以不需要随机数——乱序遍历。相当于用 foreach 语法而不用 for i=0 这样的循环。

步骤如下:

列出当前目录下所有文件;

洗牌得到文本;

执行文本。

因为不熟悉这些技术,忘得几乎一干二净,所以以上步骤也就是要搜索的知识。

(1)列出当前目录下所有文件,乱序输出文件名。

列目录,这个我会,ls。参数我忘了,那就啥也不给。

看下面这两张截图,指令完全相同“ls | shuf”,输出的开始部分非常不同。乱序效果符合期待(存在可能,每次执行的随机序列都是相同的,如果出现这种情况,到时候再说。);文件格式也符合ffplay的要求,没有后缀、日期时间之类的。

(2)执行文本

我们所希望的并不是输出文本,而是执行它们。

怎么执行一段文本?忘了。忘了不要紧,搜索。

测试,好使。

(3)拼接文本

根据上篇文章已知,我需要这样的效果

ffplay 歌曲的文件名.mp3 -autoexit

要求有参数。

在整行中,两边是固定内容,中间夹着一段变量。

那么需要字符串拼接。

要么是“+”号,要么是空格。

我先测试了“+”,失败了。我没有气馁,因为原计划的列表尚未穷举。又测试了空格,好使。我也并不非常高兴,反正就是这么几个方案,挨个测下去总有一个会行。如果都不行,才需要停下来再想想。

: eval 'ffplay' '歌曲的文件名.mp3' '-autoexit'

(4)四行代码

又搜索了一下bash里的循环怎么写,有了以下代码。

for i in `ls | shuf`

do

eval 'ffplay' $i '-autoexit'

done

命名为 play.sh,运行。

可用,每次运行都随机。就像久未谋面的老友,猛一见到,恍如隔世。

这个方案的现存缺陷是 每次播放新的一首歌曲,ffplay就会跳出来成为顶层窗口,需要手动切一下到后面。上篇提到,可以用 -nodisp 参数避免打开GUI窗口,但是这样我就失去了用q切到下一首歌的渠道。没找到办法,忍吧。

4行代码写了半小时,绝大部分时间都是在搜索、实验。这些弯路对于当前项目而言可以不是必须​的,但是对于整个职业生涯甚至对整个人生而言,那既是以后可用的经验,是对探索技术方案的训练和演习​,同时也是​沿途美丽的风景。

 

一行代码播放当前目录下的所有mp3

所谓彩云易散,无论什么好东西,如果不在自己的手里,就随时可能失去。

原本好好的,突然就不能用了,这样的例子很多。Google reader 当年用得好好的,Google说不再做了。Gmail用得好好的,突然逐渐断断续续不能访问了。Keep练得百八十遍觉得很好的课程,需要会员才能练了。

这几天遇到的是听歌时,网易云音乐听到喜欢的曲子,某一天突然就不能听了。这首不能听是由于版权方要求,还有些是不知道谁要求的,本来能听的突然就要求买会员才能行。惊喜地在网易云音乐找到了这首的视频,官方的,下载,导出为mp3。尝试上传到网易云音乐,它说,它把可能有版权限制的音乐替我筛选去除了。吓得我一哆嗦,赶紧看看自己是不是衣装革履谨言慎行人模狗样。它、它、它怎么能访问我的手机SD卡呢。我要求上传,要求上传时,你当然可以并且那时才能访问我的SD卡。为了筛选,那不是我的要求,你怎么能访问我的SD卡呢,我授权了?试了一下播放,还可以,没有好心替我删除掉。

所以,音乐必须放在本地,播放器也必须可靠,不然会被供应商卡脖子。再这么发展下去,我是不是得自己手挫个C语言编译器才行。然而,这个编译器的源代码,用哪个可靠的编译器才能转换成可执行程序呢。这么说,我还得手搓一个汇编器,手搓一个……用十六进制写个编译器,操作系统可靠吗?还得手搓一个操作系统,手搓一个CPU,亲手手搓电烙铁,以及焊锡。

任务艰巨,来日方长,且顾眼前。并且,开头跑题已经够远的了。

把一堆mp3文件放在同一个目录下。

用ffmpeg。在这里下载 https://ffmpeg.org/download.html,以下红框中的应该都行,我不记得当初自己下载的是哪一个了,每次装机这都是早期必装软件之一。

使用其中的ffplay。在文件资源管理器(猜测 我的电脑 也行)中打开mp3所在的文件夹,然后在文件资源管理器的地址栏,即下图中红框位置,输入 cmd,回车,弹出命令行窗口,当前目录刚好就是文件资源管理器的当前文件夹。

在命令行窗口中输入下述命令。

for %i in (*.mp3) do ffplay "%i" -autoexit

这行代码会遍历当前目录中的所有mp3文件,逐一用ffplay播放。其中的%i表示正在遍历 的变量。-autoexit参数用于要求ffplay播放完当前mp3后退出,以便下一个ffplay进程开始播放下一首mp3。

播放时效果如下图。

左侧是弹出的窗口,ffplay正在播放mp3,开始显示频谱。
按q退出当前音乐,并开始下一首。
按w由频谱切换成波形。

右侧是命令行窗口。在命令行窗口中按 ctrl-C,停止所有mp3播放并退出。

这行代码也可以写个批处理 bat 文件,每次放歌的时候运行这个批处理。代码需要稍微修改,如下。

for %%i in (*.mp3) do ffplay "%%i" -autoexit

缺点包括以下几点。

(1) mp3未排序,可忍。

(2) 左侧窗口总显示在当前虚拟桌面上。不希望它打扰我,但是没有找到方法使它隐藏或者显示在不是我正工作的虚拟桌面上。

优点是 mp3 在本地,不担心云山雾绕或者乱云飞渡,播放器令人放心。

最大的优点是,通过捅咕这些练习了批处理和ffplay的命令行。

 

用数字电路作为基础理解计算机组成原理或系统结构中的硬件实现LRU算法

本文使用 Excel,Digital(lushprojects仿真器 可选),graphviz(可选),用数字电路课作为基础知识解释LRU算法的硬件实现。可以视为数字电路的一个综合实验。

几何原本和SICP教导我们,所有的定理都应该仅由公理直接或间接地逻辑推导而出,不应该在推导的过程中依靠没有证明过的观点。在工程和教学中,出于速度或成本的要求,或者单纯不够严谨,经常不能满足这一要求。虽然产品或同学们也都表示了满意,经常有不够完美的遗憾。

例如,计算机组成原理或系统结构中的Cache替换算法之一LRU,即 最近最少使用Least Recently Used。这个算法不仅有软件实现,也有硬件实现。讨论硬件实现在教学上有其利益,有利于学生理解 软件和硬件都可以实现算法,以及实现简单算法(猜测是乔姆斯基3型文法,使用时序逻辑电路)不一定要使用图灵机等价(例如C语言)的计算能力。但是,查了下教材,要么认为你已经会了,不必讨论,要么语焉不详,甚至不给参考文献。

在学习中,有的同学会担心,用文字和图示从内存访问领域知识解释、硬件、算法(经常被视为软件)是否一致呢。

1. Cache替换算法中的LRU,书上怎么说的

我只在李学干老师那里看到了解释,他在PPT里是如下面的截图中这样说的。

这个解释很清楚,所以后面可以用作依据计算 多少个内存块需要多少个哪种器件。不过这里的触发器(或者“对触发器”)是什么,与同学们见过的数字电路课上的长得略有差异。没有使用 状态方程、状态转换图、状态转换表,所以需要在当前领域(替换)中用文字解释。有的同学可能会误以为这是凭空建立的概念。并不是空中楼阁,这是严密地建立在我们已建立的知识体系之上的。只是为了生动,学习不那么痛苦,所以才有基于领域知识(替换)的讲解。

2. 如果以数字电路为基础,逻辑电路图应该怎么画

用数字电路的方法表达,逻辑电路图如下。

这个仿真的逻辑电路图是可以亲手操作的,在这里 https://tinyurl.com/2r32l3qw

通过按下左侧的某个开关,例如“访问A”,再抬起“访问A”,表示访问内存中的A块。如果按以下次序执行

关闭访问A
断开访问A
关闭访问B
断开访问B
关闭访问C
断开访问C

即以ABC的次序访问内存,右侧的A_LRU点亮,表示A是最近最少访问的块。

在上图中,用到的部件为3个JK触发器,时钟,电源,3个开关,3个与门。JK触发器也可以改用RS触发器,因为RS不会同时为1,所以RS触发器与JK触发器功能相同。

特别说明:从本文此处向下的电路与上面的电路连接略有不同,所以方程和状态转换表不同,但是功能相同。

3. 状态转换方程

接下来我走了点弯路,手推了状态转换方程。结果是对的,不过,可以借助工具,不必非得手推。

手推的过程如下。求功能,其中的一步即由逻辑电路图求状态转换方程,与数字电路课里学的一样,
(1)根据触发器 列出 特征方程,
(2)根据线路连接列出 驱动方程,
(3)把驱动方程代入特征方程,得到状态方程和输出方程。

右边删除那一块,也是对的,只是一会儿求状态转换表用Excel,不需要这一步。

4.状态转换表

由状态方程求状态转换表,我用了Excel。

Excel文件的一部分如下图所示。

共65行,除表头以外还有64行。这64行来自3个输入Ai,Bi,Ci和3个状态变量Q1,Q2,Q3,这6个量的穷举,2^6=64。

(1)穷举64行输入变量和状态变量的方法之一如下。

右侧权重最低的比特,每2行 上半部分是0,下半部分是1;
右数第2行, 每4行 上半部分是0,下半部分是1;

右数第2行, 每8行 上半部分是0,下半部分是1……

可以根据如上图的公式复制,也可以按这个规律复制粘贴,如下图所示。为方便观察,下图中的0涂成粉底色,1涂成绿底色。

(2)次态Q1*,Q2*, Q3*和输出Ao,Bo,Co

Q1*,根据手推的状态转换方程,如下图所示。

以第3行为例,

Q1* 的公式为 =OR(A3,AND(NOT(B3),D3))*1

Q2* 的公式为 =OR(A3,AND(NOT(C3),E3))*1

Q3* 的公式为 =OR(B3,AND(NOT(C3),F3))*1

公式中“*1”的目的是为了观察方便,显示为1或0,而不显示为 True 或 False。

输出,由次态求得,所以手推方程时最后一步没有必要。

以第3行为例,

Ao为 =AND(NOT(G3),NOT(H3))*1

Bo 为 =AND(G3,NOT(I3))*1

Co 为 =AND(H3,I3)*1

这样,就得到了12列*64行的状态转换表。

(3)自动生成电路图

把上述状态转换表导入到 digital (在https://github.com/hneemann/Digital/下载),可以自动生成电路图。步骤如下。

第一步 把EXCEL文件的 输入、现状 和 次态、输出 之间加一个空列;

现态命名为 Z_2^n, Z_1^n, Z_0^n, 次态命名为 Z_2^{n+1}, Z_1^{n+1}, Z_0^{n+1}。调整列的次序为 输入、现态、空列、次态、输出。

第二步 把上述EXCEL导出成CSV。

第三步 在Digital中,分析 | 综合,得到表,然后 文件 | 打开 | 类型选“逗号分开的值”,得到状态转换方程和输出方程,得到状态转换表。

第四步 创建|基于JK触发器的电路。也可以选择基于其他器件。

如下图所示,为基于JK触发器创建的电路,正在仿真运行,当前A是最近最少访问的块。

这个看起来更复杂的电路,与此前展示的电路,是等价的。这由状态转换表相同来保证。基于同样的原理,LRU算法的硬件实现 与 LRU算法是等价的。

5. 捷径,不必手推方程的方法

上文中提到,我走了一点弯路,不必手推方程。

不必手推方程的过程如下。

在 Digital 中,如果不使用异步RS触发器(例如用JK触发器)作为器件,手动画出电路。如下图,请注意从每个触发器的Q引出的三角标志,称为 隧道,以及它的名字。

在菜单中选择 分析|分析,即可得到方程和状态转换表。

附带说一句,上述电路图可以仿真运行。

穷举状态转换表,可以用以证明 上述电路能完成 LRU 算法的功能,因为状态转换表(以及输出),刻画了在所有 某个现态之下(在这里是历史上以何种次序访问过A,B,C哪些块)施加某个信号(在这里是访问A,B,C中的某个块),因此得到新的状态以及输出哪个块是最近最少访问的。

举个例子。在下图中,红框的部分 表明 在某些现态(历史有某些次序的按键)之下,访问了C块,则B块成为最近最少访问的块。

至此,基于数字电路的基础,我们解释了这个电路为什么可以实现LRU运算的功能——状态转换表(以及输出)所刻画的函数与LRU算法是一致的。

下图是使用RS触发器的版本,不能分析,可以仿真。

6. 状态转换图

我原本的目的,还包括用状态转换图表明3个触发器和3个与门的电路与LRU算法一致,这样观察可能更直观一些。

得到状态转换表和方程以后,我才发现 Digital并不支持生成状态转换图。我原以为它能,它能画状态转换图,但是需要用手拖动部件,画状态节点和状态迁移连线。可以估算出,3个触发器,共8个状态,每个状态向外迁移,有3个自变量作为消息,8个可能的消息,并有3个输出。工作量不小。

我搜索了一下画状态转换图的工具,看到了熟悉的 graphviz,自动布局的绘图工具,可以用源代码作为输入。

我做了两个版本。

其一,去除约束项。我们知道,A,B,C三个变量同一时刻只有1个可以是1,因为不允许同时访问内存的不同区域。并且,观察仿真器或状态转换表可知,访问某个块之后,例如访问A以后,A会由1再变为0,次态保持不变与现态相同。输出不全为0,我们暂不关心这种情况。

根据目标文件中的典型一行,

001->000[label="001/100"];

我调整Excel列的次序为 现态、次态、输入、输出。

把Excel文件导出,删除列间的空格。每一行类似下面这样。

001000001100

再使用Emacs的宏,插入箭头、方括号等字符,得到 每一行类似下面这样。

001->000[label="001/100"];

完整代码如下。

命令行

c:\tools\graphviz\bin\dot tran.dot -Tpng -otran.png

得到png图片。

如下图所示,是访问序列为A,B,C的实例之一,输出为A是最近最少访问的块。

另一个版本的状态转换图,方法完全相同。所不同者,我用了全部64行可能。看起来如下图所示,已经失去了帮助直观理解硬件与LRU算法等价的价值,适合炫技和作为熟悉工具的练习。

7. 总结

借助工具,我们可以直观展示和观察 通过数字电路这样的基础知识 理解 计算机组成原理或系统结构中的硬件实现LRU 算法,减少学生对领域知识、硬件、算法间是否同构的担心。