Origami404 的 Blog 有空的话就随便逛逛吧 www

Python 类型标注之追本溯源

前言

本文是 Python 与 Type Annotations 的续作. 主要是回顾在那篇文章之前的 Python 类型标注(即 Python 3.6 以及之前版本), 并不过多涉及新的类型标注使用. 主要作用是追本溯源, 固实基础. 接下来我应该还会出一篇介绍这两年来 Python 在类型标注方面的新进展.

本来呢是想两篇写成一篇的, 但是发现光是回顾历史就占据了过多篇幅, 索性分为两篇, 一篇往前, 一篇往后, 也是一件美事.

所谓类型标注之本, 在下面的 PEP 里:

我抽出时间来通读了上面的 PEP, 下面便是我在其中看到的一些或有趣或意料之外的事实 (以及吐槽与思考).

HP Chromebook 13G1 刷机记录

前言

拿到 Chromebook, 我直接到手就… 才怪! 我体验了原版 ChromeOS 一两个月, 作为网课机还是很香的. 不过为了自由跟折腾, 我还是决定来刷一个 Debian. 下面是我的刷机记录.

红米 AC2100 刷机记录

背景

入手了一个 Redmi AC 2100, 我直接到手就刷 … 然后就折腾了整整两天.

在刷机的过程中, 我参考了很多教程, 发现刷机的方法简直多姿多彩, 很多教程走的路都不同. 于是我决定总结一下各种刷机方法的 “路径交汇点”, 并且在分享本人刷机路径的同时尝试描述其他的可选项, 让读者在将本文与其他教程交叉参阅时心中有数.

鉴于我初学路由器刷机不过三天, 出错或偏颇恐怕在所难免, 欢迎大佬发邮件指正.

本文假设读者具有基本的 Linux 与计算机网络知识.

访问校内服务的错误方法

背景

好消息: 我校数据结构课程有 OJ 辣!

坏消息: OJ 搭在校内, 然而现在疫情在上网课 :(

我阅读网文的信息熵速率

最近身体不适, 于是荒废了很多时间来看网文, 现在看完了来无聊来测测我的阅读速率. 以此掩盖我看小说摸鱼 21 小时的事实

娱乐至死, 但信息时代

图取样算法简介

发现了重要的一点: 对人来说, 1k 节点的图跟 10k 节点的图完全没有差别: 都是一团黑糊糊的看不清的玩意. 所以大规模图可视化没有活路, 取样才是真理.

主要参考: https://github.com/Ashish7129/Graph_Sampling

毕昇杯专用 ARMv7 汇编急救

总览

主要参考文章: https://thinkingeek.com/arm-assembler-raspberry-pi/

绝大部分示例代码都是从此文章抄来的

这篇参考文章偏向于使用 ARM 汇编进行开发的入门, 期望读者水平为学过 C, 还教了一些算法啥的. 作者还有一本书, 200来页, 书比网站上的更加系统, 建议看书.

当然如果我写错了什么, 那当然是我的问题, 不关作者事.

这是一份对 ARMv7 汇编的急救指南, 目的是以最快速度提供 “实现一个 target 到 ARMv7 的 C 编译器” 所需要的 ARM 汇编知识. 本文章假设读者熟悉汇编语言与 C, 至少看过 CSAPP 的第 4 章, 并且了解一些编译技术.

本文章 没有 :

  • 任何对 不同模式 的介绍与说明 (也就是只考虑 User 模式)
  • 任何对 浮点运算 的介绍与说明
  • 对一些指令的完全介绍, 比如 ldm/stm
  • 对规范的完整解释

本文章的介绍顺序大体按照那本书里的顺序, 为了方便查阅, 根据主题分类索引如下:

购入域名之后...

记录一下当我买了一个域名之后前前后后的折腾结果, 包含很多概论性的讲解, 应该对还没有配过 HTTPS 的小伙伴有一定的帮助.

本文的定位大概就是 “没吃过猪肉, 还没见过猪跑吗” 中的 “猪跑” 吧.

LLVM Kaleidoscope 第 7 章:可变量

7.1 前言

欢迎来到 我的第一个基于 LLVM 的语言前端 教程第七章。在前六章我们构建了一门小而强的函数式编程语言, 从中我们学到了如何去解析程序文本,构建与表示 AST,生成 LLVM IR 以及优化冗余代码和实现即时编译。

尽管 Kaleidoscope 作为一门函数式语言已经足够优秀,但事实上其函数式特性使得为其生成 LLVM IR 显得 “过于简单” 了。特别是,函数式的风格令我们特别容易直接构建出 SSA 形式的 LLVM IR – 而 SSA 经常将那些想用 LLVM 实现一门包含变量的命令式语言的初学者挡在门外。

幸运的是,你并不需要直接在前端生成 SSA form: 尽管偶尔结果出人意料,但 LLVM 提供了非常健壮的 SSA 构建支持。