转置张量文件 2024-11-30 本文讨论了safetensors文件格式的优缺点,并提出了一种改进方案tensorsafe。safetensors文件格式用于存储多维数组,其头部包含张量元数据(形状、类型、偏移量),之后是原始张量数据。然而,这种设计需要两次遍历数据集才能创建文件,并且元数据中的偏移量是相对于数据部分的,使用不便。tensorsafe格式将元数据块移到文件末尾,并使用绝对偏移量,从而解决了这些问题。文章还探讨了其他替代方案,如分块元数据和浮动元数据,并总结了各种设计的优劣。 阅读更多 (mmapped.blog) 8 未分类 safetensors tensorsafe
编程先锋 2024-11-04 本文介绍了四位编程先锋:Edward Kmett,Haskell社区的知名人物,以lens库的工作而闻名;Casey Muratori,Handmade Hero项目的创始人,倡导从零开始构建软件;Aaron Hsu,Co-dfns(一个在GPU上运行的APL编译器)的作者;以及Bret Victor,一位界面设计师,致力于创造更直观的交互工具。文章赞扬了这些程序员对编程的深刻思考和创新贡献,并鼓励读者在日常工作中寻找更深层次的意义。 阅读更多 (mmapped.blog) 19 未分类
交易模型是编程范式 2024-08-18 这篇文章探讨了账户模型和UTXO模型这两种交易模型之间的区别,这两种模型分别类似于面向对象编程和函数式编程。账户模型使用类似面向对象编程的风格,每个更新都会影响全局分类账状态,而UTXO模型则采用具有子结构类型的函数式编程风格。文章深入探讨了每种模型在抵抗重放攻击、多路交易、错误恢复和监管合规性方面的优缺点,并得出结论:UTXO模型在所有这些方面都表现出色。 阅读更多 (mmapped.blog) 35 未分类 交易模型 UTXO
计划-执行模式 2024-06-26 本文介绍了一种通用的解决问题的方案:计划-执行模式。该模式将复杂算法的实现分为两个阶段:计划阶段和执行阶段。计划阶段负责根据输入制定计划,该计划以数据结构的形式封装了算法的所有决策。执行阶段则负责根据计划执行操作。这种方法可以更全面地测试决策部分,并增强系统的调试能力。文章还讨论了执行阶段的两种方式:直接执行计划和使用状态机和驱动循环来处理不确定性。 阅读更多 (mmapped.blog) 51 未分类
数字塔的惨败:为何面向对象编程在处理数字类型层次结构上力不从心? 2024-05-22 本文批判了面向对象编程在处理数字类型层次结构(例如自然数、整数、有理数等)时的缺陷,并提出了函数式编程的解决方案。作者以自然数和整数为例,指出OOP中基于继承的建模方式会导致“is a”关系的错误,以及代码冗余和维护困难等问题。相反,函数式编程通过代数数据类型和函数组合,能够更清晰、灵活地表示数字类型及其之间的关系,并通过类型提升和简化操作来减少代码冗余。 阅读更多 (mmapped.blog) 45 未分类
启迪软件 2024-05-20 这篇文章介绍了作者心目中的启迪软件,包括UNIX、Git、Emacs、Boost.Graph和Bazel。作者从个人经历出发,讲述了这些软件如何帮助他理解编程、操作系统、版本控制、文本编辑和构建系统等概念,并深入探讨了它们的内部机制和设计哲学。作者认为,好的启迪软件应该能够解决日常问题,具有简洁的设计和易于探索的内部结构,并鼓励用户深入学习和掌握。 阅读更多 (mmapped.blog) 51 未分类