碌碌无为的 11 月,全都花费在了专业课的实验上。于是乎 11 月又没有更新(上一次更新是补的 10 月的),今天补一个 11 月的更新,聊一聊最近实验中用到的一些新鲜玩意儿。
最近遭遇了数据库、大数据以及操作系统三门专业课的实验围攻。
前两个还好说,数据库没有指定语言,老师推荐用 C# 来写 C/S 和 B/S 结构,但是我喜欢 Java(轻车熟路去谷歌复制粘贴 JDBC 的代码)。数据库我使用了 PostgreSQL,而没有使用书上的 SQL Server,Windows 10 打开 WSL2 之后直接放进 Docker 里,虽然虚拟化会受影响,但是 VMWare 也不是不能用,更何况我也不是重度虚拟化用户,问题不大。关于 C/S 结构,涉及到客户端,换言之老师想看一个漂亮的 GUI,这可算是难倒我了,好在 JavaFX 并不像前几代那么难用,IDEA 自带的图形化编辑器就能解决问题。而 B/S 结构就是另一回事儿了:实话实说我并不太想用 JSP,但是也不想跟 Kotlin 写 Ktor 一样什么都从头开始,对于一个专业课的实验来说,我认为这样可以,但没必要。最终框架选择了 Javalin,是我切换到 Ktor 之前的选择,至于 HTML,我发现了 JTE,这东西更像是轻量级的 JSP,或者 Angular 那种,按照语法定义 if 或者 for 之类的,你给数据,它就能根据模板渲染出 HTML 来。但我万万没想到的是,最大的困难竟在 CSS 上。做出了表格显示数据,我想是不是可以再做好看一些呢,比如加一点颜色,线框整的花哨一点,奇偶行颜色不一样什么的。遂写了 16 行 CSS,一测试,没有一行跟我的预期相符,别说相符了,贴边的都没有。转念一想,黑白的也不是不能看,就此作罢,找老师验机,遂结束。
关于大数据的实验,主要用的还是 Spark 的 RDD 编程,在 Udemy 上买了个课提前学了一下,发现并不难。尽管老师指定了要用 Python,但是我用 Kotlin 老师也认,总体来说顺顺利利。
操作系统的实验就是另一个故事了,准确的来说是操作系统的第三个实验:模拟一个二级目录文件系统。10 月 29 号创建项目,语言选择的 Java,这个任务涉及对二进制文件的读写,因为要模拟操作系统,所以必定要能够支持随机读写,这样一来一些描述类在写入文件的时候就不能用 ObjectOutputStream 了,因为它会根据输出时的动作自动往输出文件里写一些标志,之后如果使用 RandomAccessFile 就不好 seek 寻址了,尽管可以向磁带一样从头开始读,然后封装个方法假装它是随机读写,我总还是觉得那样不够纯粹,遂开始写自己的工具类。半个月一来啥也没干,光工具类就写了 700 多行。昨天算是写完了,1766 行代码,还没有全面测试,等弄完了肯定会整理成文章发上来的。
新鲜玩意儿就到此为止了,毕竟实验这东西年年都有人做一样的,只不过 JTE 和 PostgreSQL 那些只是对我来说新鲜罢了。之后我会尝试将操作系统那个实验整理成文,作为 12 月(可能还有次年 1 月)的更新内容。

【随便写写】61 & No effort November & 近况 由 天空 Blond 采用 知识共享 署名 - 非商业性使用 - 相同方式共享 4.0 国际 许可协议进行许可。
本许可协议授权之外的使用权限可以从 https://skyblond.info/about.html 处获得。