申请并配置 Let’s Encrypt 的免费 SSL 证书

  前一段因为网络原因,导致国内 HTTPS 无法访问我的博客,折腾了好一阵,顺手整理一下申请并配置 Let’s Encrypt 免费 SSL 证书的操作步骤,使用环境为 Ubuntu 17.10 + Nginx。 0. 配置 DNS   首先需要配置 DNS,建立一条 A 记录,将要使用的域名指向服务器 IP,具体方法因 DNS 服务提供商不同而有所差异,一般服务提供商都会提供便捷的…
Read more

使用 MathJax 在 WordPress 中显示数学公式

  WordPress 上有多种显示数学公式的插件和方法,我先后用过 WP QuickLaTeX 插件和 JetPack 全家桶的 Beautiful Math,二者都是以图片的形式显示公式,兼容性强,但也都有一些不尽如人意的地方。   WP QuickLaTeX 可以将 Latex 公式渲染为 svg 矢量图,在各种分辨率下都有一致的显示效果。但图片尺寸本身不会响应浏览器窗口尺寸,一些较长的公式…
Read more

配置 Cargo 的 Maven 插件

  Cargo 是一款自动化部署工具,它提供了 Maven 插件 ,可以通过 Maven 快速方便地部署服务。本文简要介绍了 Cargo 的 Maven 插件的配置方法,使用系统为 macOS 10.12。 1. Maven 插件和仓库配置   编辑 Home 下 .m2 目录中的 settings.xml:

添加如下 plugin…
Read more

使用 Jenkins 构建 Android 应用

本文介绍了在 Linux 上配置 Jenkins 构建 Android 应用的方法。下面的说明中,假定已安装 Jenkins,并具有 root 权限。 1. 下载并配置 Android SDK 1.1. 下载 Android SDK 在本文的示例中,会把 Android SDK 下载到 /opt/android-sdk 目录,可以根据需要修改。首先在 /opt 下建立 android-sdk 目录…
Read more

NumPy 中 ndarray 和 matrix 的区别

本文概述了 NumPy 中 ndarray 和 matrix 的使用差异和转换方法。示例代码假设已导入 numpy:

1. 维数限制 matrix 和 ndarray 所能表示的数据维数不同,matrix 只能表示二维数据,而 ndarray 可以表示 N 维数据。 1.1. matrix matrix 只能是二维,可以使用如下的方…
Read more

Kotlin Reference: Type aliases

  使用类型别名可以为已有类型提供了替代的名称。如果某个类型的名称很长,可以为其引入一个更短的名称,以便于使用。   类型别名可以缩短过长的泛型类型,举例来说,通常希望缩短集合类型:   可以为函数类型提供别名:   可以为内部类和嵌套类提供别名:   类型别名不会引入新的类型,它们等同于对应的原类型。当你添加了 typealias Predicate<T> 并在代码中使用 Predi…
Read more

Kotlin Reference: Type-Safe Builders

  建造者(Builder) 的概念在 Groovy 社区中颇为流行。建造者允许以半声明式的形式定义数据,常用于生成 XML、UI 元素布局、描述 3D 场景等。   Kotlin 提供的类型检查建造者适用于大多数用例,比 Groovy 中的动态类型的实现更加诱人。   Kotlin 也支持动态类型建造者,以满足其他用例的需要。 A type-safe builder example   考虑下面…
Read more