- Categories · 编程研究-

2021

Python: JSON 数据转化成 Python 对象的方法

1 问题描述

JSON 格式的数据在和服务器通信过程中很常见,用 Python 处理我们可以用 json 库来读取,将其转化成一个字典。不过字典访问语法太繁琐了,我们需要将其转化一般对象,然后用访问类属性的方法去访问 Key-Value 对。直接硬写的非常繁琐,我们需要显式地讲类定义出来,然后一个个读取属性然后完成复制。我们需要一个更加符合 DRY (Dont Repeat Yourself) 原则的方法。

Jul 20
公式离线渲染的性能问题

之前我在 Hexo + Mathjax: 公式离线渲染 介绍了在服务器端,也就是 Hexo 端渲染时就将 Mathjax 公式渲染成 Html 的方法。不过随着文章数量的增加,Hexo 渲染时会出现并发渲染公式的页面太多导致服务器内存溢出的问题(我用一个小虚拟机来做服务器博客后端,内存只有 2 GB)。因此有必要控制公式渲染的并发数。另一方面,公式渲染时纯 CPU 计算过程,不涉及 IO,因此使用异步函数加速意义也不太大。因此我们的核心思想是把之前实现的异步渲染版本换成同步渲染。

Jun 09
Python 中的 Inspect 模块

1 背景

今天在 Github 的时间线上看到了一个有意思的 Python 库,名字叫做 "IceCream"。这个库用来取代 print() 函数,实现更加可控且优雅的调试输出。IceCream 的接口形式非常简单,只要直接将函数的调用形式传入即可。如下面的代码:

1
2
3
4
5
6
from icecream import ic

def foo(i):
return i + 333

ic(foo(123))

会产生下面的输出

1
ic| foo(123): 456

这个是怎么实现的呢?我查了一下代码发现 ic 函数(实际上一个实现了 __call__ 的类的实例)主要使用了 inspect 这个库。这是一个 Python 的标准库而我从来没有用过。

May 27

2020

构建多用户的 AR 应用

这篇文档翻译自 Apple 的官方文档:Creating a Multiuser AR Experience


在这篇文档里面 Apple 提供了一个范例程序。这个范例程序验证了使用两个或者更多的 iOS 12 以上的设备进行共享的 AR 体验。在开始探索代码之前,你可以自行尝试编译运行这个 APP 以了解这个 APP 提供的用户体验(Xcode 工程代码请前往原文中下载)。

Sep 24
[翻译]:AR 基础: SLAM - 即时定位与地图构建

这篇文章翻译自Basics of AR: SLAM – Simultaneous Localization and Mapping,是上一篇文章 [翻译] AR 基础:锚点,关键点和特征检测 的后续


在上一个部分我们研究了如何在摄像头获取的图像帧中确认关键点。这些技术是算法进行追踪和环境识别的的基础。

对于 AR 应用,设备还需要知道更多的信息:设备自身在现实世界中的三维位置。这通过设备计算自己同多个关键点之间的空间关系来确定,而这个过程被称为 Simultaneous Localization and Mapping,缩写为 SLAM。

Jul 05