Hegwin.Me

寓形宇内复几时?曷不委心任去留?胡为乎遑遑欲何之?

关于HTTPS证书和CAA

HTTPS certificate and CAA

上回说到用 Caddy 做 HTTP server + 反向代理,不用自己操心 HTTPS 证书比较省心,今天就遇到一个不省心的事情。 我除了 blog 这个 web app之外,还有一些其他小玩意挂在次级域名上,比如 wow.hegwin.me 是一个魔兽的战斗宠物工具,我把他添加到 Caddy的配置的时候,出现几行错误: 注意其中的 “DNS problem: query t...

使用Caddy作为反向代理服务并获取HTTPS证书

Use Caddy as reverse proxy server with free HTTPS certificate

因为之前更换服务器OS镜像,数据丢失,我的 blog 服务停了几个月,中间又遇到我父亲中风,在老家照顾了4个多月,一直没时间打理个人博客。今天终于把它修回来了。 在这中间我做了不少更新,Ruby的版本从1.9更新到了2.7,Rails也从3.2更新到了5.2,很多手动部署的过程,也改成了自动部署。另外比较新的一点尝试就是,我用 Caddy 代替了 Nginx 做反向代理服务器,并且利用...

Ruby命令行格式化输出

Format Your Output in Terminal with Ruby

在命令行输出内容,一般而言Ruby基本的方法都是够用的,比如 puts、print、sprintf系列;但如果要在terminal输出颜色,表格进度条等,就会比较难以实现了。 这里小节下自己探索后感觉好用的gems: 彩色输出(基于ANSI):rainbow; 表格输出:terminal-table; 大综合(包含彩色、表格和进度条):formatador。 R...

在Ruby中运行系统命令

Run system command in Ruby

在Ruby中有若干种方法来调用系统命令: 1. 反引号或者 %x(); 2. system 方法; 3. File; 4. Open3。 反引号及 %x() 与 system 的区别在于: system 只会返回 true/false;而`%x`在命令执行成功时,会返回命令的stdout,当命令支持失败时,会返回空字符串 `""` 这样看来其实反引号或者 `%x...

运行特定版本的 bundle

Run specific version of bundler

Ruby小(没)技(鸟)巧(用)系列。 当你同时安装了两个版本的bundler,比如 2.0.1 和 1.17.2,默认情况下 bundle exec 等命令都是使用的最新版本的bundler;而你要维护的程序比较古老,那么你可能就会遇到这个神奇的问题: Bundler could not find compatible versions for gem "bundler" ...

第一个Rust程序

Hello World in Rust

学习新的编程语言时,大家都有第一个传统,先编写一个简单的程序,即在屏幕上输出 "Hello, World!" 在官方的 Getting Started,我们可以看到安装方式非常容易,在命令行输入如下命令即可: curl https://sh.rustup.rs -sSf | sh (Tips: Rust这个语言会使用 rustup 这个工具来管理版本和toolchain。)

Ruby中目录和文件操作的几种方式

Different methods in Ruby to manipulate directories and files

创建目录: 方法一:利用 Dir.mkdir 可以创建一个目录,并且其有一个可选参数用来标记目录的权限。 如我要在 /Users/hegwin/Workspace 目录下创建一个 `ruby` 子目录,那么可以这么操作: Dir.mkdir('/Users/hegwin/Workspace/ruby') 正常创建后,Dir.mkdir 会返回整数 0。 这个方法和Li...

Ruby 2.5 允许在do/end代码块中使用rescue

Ruby 2.5 allows rescue/ensure inside do/end blocks

本文介绍Ruby2.5的一个新特性:在以前的Ruby版本中,如果你需要用的rescue来捕获和处理异常,你必须要把可能抛出异常的代码放在 begin end 块中,而在Ruby 2.5中,普通的 do end 块中你也可以直接使用 rescue 和 ensure 等异常处理的关键字了。注意这个功能不是向下兼容的,如果使用2.4则会遇到错误。

Rails优化SQL可能用到的工具

Tools to Help to Improve SQL in Rails

Rails查询数据慢?想找到性能瓶颈在哪里? 目前我个人是用到了以下几个工具: 1. New Relic 老牌的性能检测工具,与Rails集成之后,在Database监控中能显示最慢的Query之类的,不过这需要New Relic至少订购了Essentials级别的计划。 2. Gem: active_record_query_trace 你可以在log中看到每个SQL是来...

为PostgresQL安装扩展程序

Install Supplied Modules for PostgresQL

如果在安装Postgres时,选择下载源码编译安装,而 make 时又没有 make world,就会导致安装好的 pg 没有一些扩展功能,比如 pg_stat_statements。那么,这篇文章将尝试解决这个问题:如何在编译安装后,为pg安装扩展。 让我们以 pg_stat_statements 为例,看看如何操作。当然这里有个前提——没有删除当初用于编译 pg 的目录。 首...