Nim 语言的动态分发机制

Nim 是一款 Python 风格的静态类型语言。但事实上,除了缩进语法外,Nim 和 Python 并没有太多相似之处。相对于 Python,Nim 更多地吸收了 Ada 和 Lisp 等语言的特性。

Nim 编译器通过生成 C 或 Obj-C 中间代码的方式来进行本地编译,所以需要依赖一套外部编译器。Nim 也可以生成 Javascript 代码。此外,还有以脚本方式运行的 NimScript

OOP 的一个特性就是支持多态,而动态分发(Dynamic Dispatch)就是实现多态的基础。在讲解 Nim 的动态分发实现前,先讲一下其他语言是如何实现的。

……

不要迷信卢曼卡片盒方法和双向链笔记

卡片盒笔记方法是一种通过扁平化的链接来组织笔记的方法。事实上,卡片盒笔记也并非完全扁平化的,也存在结构化的索引表和枢纽笔记。

双向链就是一种 trackback。简而言之,即A通过链接连接到B,那么B将自动生成对A的反向连接关系,当用户访问B时,也可以通过反向连接关系来回溯到A,从而让笔记系统形成一个可遍历的无向图。

graph

……

    笔记软件 Cherrytree 试用体验

    Cherrytree 是一款支持多平台的笔记管理软件。软件支持树状分级和标签管理,数据以 XML 或 SQLite 格式保存。

    Cherrytree

    ……

      未绑定信用卡的海外苹果应用商店帐号如何支付

      假设你已经拥有了一个未绑定信用卡的海外区的苹果应用商店帐号,当你购买应用时,App Store 就会让你选择支付方式。然而海外区的 Apple Id 是无法绑定国内信用卡或虚拟信用卡的。如果你的帐号是美区的话,通常的做法是购买美区 Gift card 给帐号充值,这个方式需要用到支持外币的信用卡,最低充值金额是 25 美金。另外,据说现在购买美区的 Gift card 也需要用到美区的手机号了。其他地区的帐号可以选择代充服务,不过这种方式风险比较大,对方可能会使用被盗的信用卡来充值,最后导致你的帐号被封。

      ……

        从 APNIC 获取中国大陆地区的 IP 地址数据库

        全球互联网 IP 地址分配由互联网号码分配局(IANA)机构负责。IANA 将分配工作委托给五大区域互联网机构管理(RIR),其中亚太网络信息中心(APNIC)负责管理亚太地区的事务。我们可以在 APNIC 的网站上找到所有分配给亚太地区的 IPv4/IPv6 地址数据库。通过该数据库,可以准确地知道某个 IP 地被分配给了哪个国家或地区。

        打开 APNIC 网站首页,在导航菜单中选择「Insights -> Raw Data」,进入 ftp 数据下载站点。也可以通过 http 接口访问 ftp 目录。下载最新数据文件:delegated-apnic-latest

        ……

          Windows 常用软件清单

          个人日常使用的 Windows 软件清单。并非推荐,仅供参考

          创建支持 Kotlin 协程的 Vert.x 服务代理

          本文提供一个方法,可用于创建支持 Kotlin 协程的 Vert.x 服务代理

          Laravel 强制 api 路由组返回 JSON

          Laravel 的默认错误处理器通过 Illuminate\Http\RequestexpectsJson() 方法来决定是否将错误信息渲染成 JSON 格式输出。这要求将请求头的 Accept 字段设置为 application/json。本文提供一种方法,在尽可能减少代码的情况下,强制让 api 路由组中的所有错误响应变成 JSON 格式,而不依赖于请求的 Accept 头部

          「犬与华人不准入」与B站UP主的「财富密码」

          「犬与华人不准入」,或者说「华人与狗不得入内」是一则流传已久的都市传说。之所以被称作「都市传说」是因为所有人都在谈论它,却没有人能提供任何确凿的影像证据,它可能是真的,也可能并不存在。而这则传闻能在后世流传甚广,则完全归功于某强大的宣传机器的作用:1960年公开的周作人日记中记载了「犬与华人不准入」这七个字;歌舞剧《东方红》被钦定加入这一元素;方志敏在《可爱的中国》中记述了此事并入选语文教材。最终使得这一传闻成为几代人「正确的历史记忆」。

          ……

            使用 Cloudflare 的源站缓存控制

            Cloudflare 默认不缓存 HTML 页面,必须通过添加页面规则(Page Rule)来开启网页缓存。然而,免费用户每个站点最多只能添加三条规则。对于一个复杂的项目来说,三条规则是远远不够用的。通过设置源站缓存控制(Origin Cache Control),可以仅使用一条规则来启用全站缓存。

            ……