我没有去过巴塞罗那,但是 42
在我为了写操作系统实验而在网络上寻找参考的简单 shell 实现的时候,一个叫做 minishell 的仓库让我印象深刻:框架给的很好,代码也很适合初学者。我诧异为何这么好的项目却只有几个 star,过了几天,Github Mobile 又给我推荐了不止一个十分相似的 minshell。 实际上,不仅框架相同,readme也都标明了一段奇怪的字段: 42 打开其中一个人的 github 主页,这个人自称来自 42 Barcelona,仔细看一下仓库的话,还能看见其它的 42 Core 项目,比如 LibFt 之类的 这到底是个什么?为什么他们一直念叨着这个词汇呢? 我没有去过巴塞罗那,自然不能在当地的街头问 42 有什么含义,我只能在搜索引擎上查找,找到了官网,并被满屏幕西班牙文阻塞住了,等到自动翻译被生产出来才模模糊糊的意识到,这是一个学校, 42 School 的学业安排进一步了解后发现,42 Barcelona 实际上是 42 The Network 的众多校区中的一部分 42 Barcelona...
你的大学,并不是你的大学
Your university is not your university 近来的一件新闻是,全国各地的大学在三年疫情后重新又开放了,舆论是很激烈的,有的学生觉得,进入学校的有些社会人员的素质未免太过差,学校怎么不管管?有的声音则批评三年疫情培养出的学生是又封闭又自私,学校怎么不管管? 在此我不想讨论纳税人是否应该去参观税金养的市政府,也不想讨论中国大学的开放氛围应该怎么体现,我只想问几个问题 没有素质的人为何敢在大学没有素质,而不是在居民小区,或者是市政府没有素质? 回答说,大学生好欺负。 那么,一群二十出头,了无牵挂,没有工作,一人吃饱全家不饿的社会闲散人员们,何以是好欺负的呢? 回答说,大学生有软肋。 那么,大学生的软肋是什么?大学生为什么有软肋?利好于谁人? 谁的大学?支持大学开放的人无不会表达一个观点,大学不只是学生的,还是社会的。...
年终篇下,梦醒了该去哪里
What do you mean by forward ? 对于我而言,一个很自然的想法是,一切都会不断进步,一切都会不断向前,这里的一切,不仅囊括寰宇、世界、社会、人类,当然也包括我自己。我一向是相信进化论的,总以为将来必胜于过去,青年必胜于老人 1然而后来我明白我倒是错了。 未来没有理由更好想想也是,有什么理由能让我们像宗教的狂信徒一般,皈依在所谓未来脚下呢?近来有一个笑话——...
跨平台应用开发框架技术的发展应用与展望
这篇是用来水《认知实习》的结课论文的,参考了以前写的一篇关于 GUI 开发框架的博客,借着这个机会顺便对那篇博文进行了一次修改作为一篇新博文,老文新水了属于是 这个报告只是单纯的应付作业,不要太注意细节 跨平台应用开发框架技术的发展应用与展望 随着移动设备的广泛普及,跨平台应用开发框架成为解决不同操作系统底层API差异的关键工具。本 文回顾了桌面端和移动端跨平台框架的发展历程,在桌面端,从早期的调用API 或自绘技术到如今以CEF 库的应用为代表的框架。在移动端,Web应用、原生渲染技术和自绘方案分别应对挑战与机遇,而UI描述 方式也经历了从混合到声明式、组件化的演变。未来,随着移动设备技术的进步,跨平台开发框架有望在 提高开发效率的同时,进一步优化用户体验。这一领域的创新将继续推动应用开发工具和方法的演进,为 开发者提供更高效、灵活的解决方案。 背景近年来,随着智能手机和平板电脑等移动设备的广泛普及,移动端应用开发一直备受关注。然而,由 于不同移动端平台(iOS、Android)之间底层API 存在差异,大多数应用程序提供商不得不雇佣两组开发...
年终篇上 2023 的结束
首先点首 hardest to be 现在是 2023 年 的 12 月 26 日,我坐在宿舍里,眼神迟缓,精神萎靡不振,为了聊以慰藉,给自己一点好歹还做了点事情的错觉,我于是开始写,这一年的结束 既然这不是例行的学期回首,那不妨就专注一些空泛的主题吧 “这个世界哪里不好了?” 这个世界会变好吗? 如果是在 2020 年这样提问的话,或许所有人都会不禁触动,甚至于,在 2023...
CPP20 Ranges与斐波那契数列的惰性生成
C++ 20 中引入了 Ranges 模块, 该模块提供了一系列的range view, 用于对容器进行操作, 本文将使用Ranges来实现惰性生成斐波那契数列. 在开始之前让我们写一个十分简单的递归函数,用于生成斐波那契数列: 1234567891011121314auto fibo_rec(int n) { if (n <= 1) { return 1; } else { return fibo_rec(n - 1) + fibo_rec(n - 2); }}int main() { for (int i = 0; i < 10; ++i) { std::cout << fibo_rec(i) << " "; } std::cout <<...
CS好课可以改变废柴命运吗?
SICP,大名鼎鼎的 CS 神课,狭义上指的是 MIT 6.001 课程以及同源的巫师书,要是宽泛点也能够指 UC Berkeley 的 CS61A 课程。 所谓 CS 神课,属于那种 早学到这课我还会混成这 dio 样? 的灵丹妙药,相当一部分人接触到的时候都会有这样的惊叹,我也不例外,有那么一瞬间甚至觉得,所谓 Computer Science 似乎也不过如此的错觉 可惜,当我抽出时间来的时候,已经过了入门阶段了,怎奈这门课好评如潮,不免心动,于是来了一遍速通,做了做 hw、lab 和 project,质量相当的高 做完之后,意犹未尽,于是向真正的 SICP 进发,开始看《计算机程序的构造和解释》(Structure and Interpretation of Computer Programs,SICP) 作者是麻省理工学院教授哈尔·阿伯尔森和杰拉德·杰伊·萨斯曼 我得承认,虽然我在读的时候止不住的吐槽翻译很差劲,但当我转而去 MIT 官网上 down 下原版 PDF 的时候,还是不禁叹道: 这 tm 和 CS61A...
那些坠落的感觉与午后的惆怅
fallen如果,只是要表达此刻的感受,或许只需要 悲伤 就够了,但是如果想说清为什么悲伤,恐怕需要比打破现在的情形所需还要更多的智慧与勇气。 是身在其中就永远无法看清楚吗?也是,如果能说清现在的情形,就不会再有半点迷惘了吧。 人真是喜欢偷懒的生物,想着,只要写出什么东西,一切就搞明白了,那样所有的问题都迎刃而解。 人真是不愿承认自己错误的生物,即使是现在,还是更倾向于说 “人类是怎样的” ,这样的话就像置身事外一样,才能放下矜持的批评,或许只有把自己当成另外的事物,才能毫不留情的攻击吧。 这些不会改变什么,当然我也没有指望着神奇的效果会发生,只是觉得这样或许可以聊以抚慰静不下来的心 这种话是从什么时候就开始说的?我的心静不下来 人的距离我想去和人打篮球 🏀 ,可是我不喜欢打篮球 我想和人一块去买水果 🍎 ,可是我不会挑水果 我想找人一起组乐队 🎸...
非常特立独行的随机 cover 实现
这篇文章将会介绍一种非常特立独行的 hexo 博客的随机 cover 实现方式。 我们先来看看,网络上流传的一些 hexo 博客的随机 cover 实现方式: 修改主题的配置文件,在默认 cover 的设置里多加几张图 调用网络上的随机图片 API,然后通过主题的默认 cover 来实现 和第二种类似,但是通过自己写个 .php 来实现一个随机图片 API 接口,这种一般需要自己的服务器 这些方法都不太适合我 为什么不适合我首先,我不想在主题的配置文件里写一堆图片链接,这样太麻烦了,这样看来,随机图片 API 是个不错的选择,但是问题是。 额,我没有服务器啊。 或许你会说,那为什么不用网络上的随机图片 API 呢? 人的 XP 是各不相同的,不一定符合我的审美 更深层次的需求原因如果是用随机图片 API 的话,那么实际上达到的效果会是,每次刷新播客的首页,都会使得 cover 图片发生变化,虽然这样也是种很不错的效果,但是我对随机封面的需求来源其实和效果倒是没有太大关系: 主要原因是我懒得给每个文章都配一张封面图。 更重要的是,毕竟在国内,所以图床一般用 CDN...
make hello! 全局 Makefile 模式匹配
这个博客将会介绍如何编写全局的 makefile 模式匹配,用来替换默认的隐式规则。 最终你可以直接使用 make hello 来编译 hello.c 文件、hello.tex 文件等等,而不用再写更长的编译命令。 同时,你还可以自定义这里的编译器,编译选项等等,甚至增加新的模式匹配。 内置隐式规则 (Built-in Implicit rules )实际上,你很可能已经使用过内置的隐式规则了,假如当前目录下有一个 hello.c 文件,那么你可以直接使用 make hello 来编译它,这就是一个隐式规则。 隐式规则可以自动推导出目标文件的依赖关系,比如 hello.o 依赖于 hello.c,并且可以自动推导出命令,比如 gcc -c hello.c -o hello.o。如果是 .cpp 文件,那么命令就是 g++ -c hello.cpp -o hello.o。 某些标准的方式经常用于重新制作目标文件。例如,一种常见的制作目标文件的方式是使用 C 编译器从 C 源文件制作目标文件。 隐式规则告诉 make...