박성범 Simon Park

RSS: https://parksb.github.io/feed.xml
Simon Park 的个人博客。

为函数式编程辩护:从范式约束到工程实践

作者通过亲身经历和理论分析,论证了函数式编程在错误处理和代码可维护性上的实际优势。Rust 的 Result 类型强制处理异常,Option 类型消除 null,纯函数实现引用透明性使代码更易读。文章对比 Java 与 Haskell 的范式差异,指出语言生态约束比语法特性更能决定编程风格。推荐《Functional Programming in Scala》等学习资源。
评论点赞收藏18 天前

CPU 缓存工作原理的具体解析

文章详细拆解了 CPU 缓存(Cache)的硬件实现原理,包括局部性原理、命中率计算、组相联映射(Set Associative)及替换策略(LRU/FIFO)。特别通过具体地址示例演示了 Tag 匹配过程,并结合代码展示了如何通过调整循环顺序利用空间局部性优化性能。虽然指出编译器常自动处理此类优化,但深入底层机制有助于理解现代计算机体系结构的核心瓶颈与权衡。
评论点赞收藏25 天前

用 Arch Linux 复活一台 15 年前的上网本

作者用 Arch Linux 32 重装了 2009 年的华硕 Eee PC 1000HE 上网本。文章详细记录了在 1GB 内存和老旧 Atom 处理器上安装 Arch 的全过程,包括解决 32 位支持、分区策略(特别是 Swap 大小调整)、GRUB 引导配置及网络设置。对于喜欢折腾旧硬件、关注轻量级 Linux 发行版或 Arch 安装原理的技术读者来说,这是一篇极具参考价值的一手实战指南。
评论点赞收藏32 天前

铁路时刻表如何演变为Unix时间

从太阳时、原子时讲到操作系统与应用程序的时间处理。解释了Unix时间戳起源、2038年问题、闰秒陷阱及单调时钟的重要性。提供Python、Rust、Java等多语言处理时间的最佳实践与避坑指南。
评论点赞收藏41 天前

但“剃牛刀”(Yak Shaving)确实很有趣

文章以作者从零构建博客系统为例,探讨了工程师文化中“剃牛刀”(yak shaving)现象——即为了一个小目标而陷入无限的技术衍生开发中。作者引用了该术语在MIT AI实验室的起源、卡通《Ren & Stimpy》中的典故,以及Donald Knuth因排版需求发明TeX及Literate Programming的著名案例。尽管承认从底层构建往往效率低下且容易偏离初衷,但作者认为这种探索过程本身充满乐趣,且是深入理解计算机体系结构的有效学习方式。
评论点赞收藏60 天前

为什么Web变得如此复杂?

文章回顾了从2000年代简易建站到现代Web开发极度复杂的演变过程,探讨了Web技术栈膨胀背后的原因。
评论点赞收藏395 天前

打造智能手机作为PC的运动控制器

作者分享了自己拥有多平台设备(MacBook, Ubuntu, iPhone, iPad)时,发现跨平台协同(如Universal Control)的局限性。文章指出手机传感器被闲置是一种浪费,提出了将智能手机作为PC运动控制器的构想,旨在解决不同平台间设备联动的问题。
评论点赞收藏936 天前

用 Arch Linux 复活一台服役15年的老式上网本

作者使用Arch Linux成功复活了一台2009年的Asus Eee PC 1000HE老式上网本。文章对比了老旧Intel Atom N280处理器与现代入门级芯片的性能差异,分享了在极低配置硬件上运行现代Linux发行版的实践经验与技巧。
评论点赞收藏1069 天前

函数式编程为何难以真正说服开发者?

文章指出函数式编程虽已成主流并被多语言采纳,但在企业级应用和入门者认知中仍有差距。作者观察到许多程序员虽开始接触FP,却仍缺乏深入思考,甚至产生自我怀疑,暗示了FP学习曲线与认知转变之间的张力。
评论点赞收藏1364 天前

从铁路时刻表到Unix时间:计算机如何处理时间

文章探讨了计算机工程中处理时间的复杂性,从历史背景下的地方平均时(LMT)到现代标准时间的演变,解释了太阳时、原子时等时间体系,以及这些历史和技术因素如何影响了Unix等系统中的时间处理方式。
评论点赞收藏1636 天前

通过服务端驱动UI设计实现界面灵活化

文章探讨了原生移动应用发布后难以修改的痛点,特别是A/B测试和UI调整的限制。作者介绍了Server Driven UI (SDUI) 的设计理念,即通过服务器端控制UI布局和数据,实现无需重新发布应用即可动态调整界面。这为原生应用带来了类似Web的灵活性,解决了热更新和A/B测试的难题。
评论点赞收藏1864 天前

打造易读网页的排版设计指南

本文介绍了基于传统排版规则,如何在网页设计中优化长文的可读性。作者强调不应机械遵循规则,而应灵活应用,并梳理了相关术语背景。
评论点赞收藏2041 天前

互联网运作的非常具体的原理

文章以学校笔记本连接Google为例,详细拆解了从DNS解析、路由选择到数据包传输的完整网络通信过程。作者简化了部分网络拓扑和协议细节,旨在为读者提供清晰的技术直觉,适合对底层网络机制感兴趣的开发者阅读。
评论点赞收藏2393 天前

你不知道Rust的魅力,真为你感到遗憾

作者对比了不同语言开发者的态度,指出Rust开发者积极推荐其语言。随着WebAssembly支持和Deno核心改用Rust等事件,Rust已成为不可忽视的趋势,作者认为不了解Rust的优势是一种遗憾。
评论点赞收藏2452 天前

我在军营里做的每日新闻自动推送工具

作者因在军事训练中感到与外界隔绝,且现有服务体验不佳,决定开发一个自动化程序,将每日新闻摘要通过特定平台发送给战友。这是一篇典型的个人项目分享,结合了真实的生活痛点与工程实践。
评论点赞收藏2512 天前

但剪牦牛毛很有趣:从零构建静态博客系统的经历

作者因现有静态站点生成器定制受限,决定从零开发一套包含Markdown转换和部署工具的完整系统。文章以“剪牦牛毛”比喻这种在底层工具链上重复造轮子的过程,探讨了开发者在构建基础设施时的体验与乐趣。
评论点赞收藏2573 天前

CPU安全漏洞解析:MDS攻击的具体原理

文章详细解释了MDS(微架构数据采样)漏洞的原理,指出其利用CPU内部的Line Fill Buffers、Load Ports和Store Buffers泄露隐私数据。作者回顾了此前著名的Meltdown和Spectre漏洞,旨在深入理解这些底层硬件安全缺陷的具体攻击机制。
评论点赞收藏2632 天前

用一个类型装下狗和猫

文章通过Dog和Cat类的例子,解释了Kotlin中identity函数的概念,展示了如何为不同类型定义重载函数以返回相同类型的参数。
评论点赞收藏2653 天前

缓存运行的具体原理

文章详细解释了计算机系统中缓存(Cache)的作用和具体工作原理。由于处理器速度远快于主内存,缓存作为芯片内的高速小容量存储器,用于存储常用数据以减少处理器访问主内存的延迟,从而提升整体系统性能。
评论点赞收藏2696 天前

Git使用中常见的问题整理

作者结合入职后的实际开发经验,梳理了在使用Git进行版本管理时经常遇到的各类问题与冲突场景,并按案例进行了分类总结,旨在帮助开发者更好地理解和解决日常Git操作中的痛点。
评论点赞收藏2737 天前

登录芦苇

登录后关注作者、收藏内容和参与讨论。