Enable https support for jnan.org

最近因为工作方面的需要,探索了一下 https 实施的步骤。顺便用本站做了一次练手,在此记录一下。

https 证书有很多颁发者,处于费用的考虑(毕竟这个博客已经从日更变为月更到现在是年更),没必要每年花费个几百上千的去买证书,于是就是用了 Let’s Encrypt 提供的免费 https 证书。

阅读全文

Goodbye, wordpress

用 wordpress 建立博客已经好多年,但是最近 wordpress 开始变得很慢,有些后台功能也不正常;外加虚拟主机即将到期,感觉有了 vps 就没必要再去续费虚拟主机了,所以决定将博客迁移至 vps 上。

但是 vps 上只有 node.js 环境,因此顺便把博客系统换成了 hexo.js。

阅读全文

chrome 关闭时未清除临时 cookie 的问题

前几天在给别人讲解 cookie 相关知识时,发现 chrome 浏览器的一个问题。

正常情况下,如果 server 端在写入 set-cookie 首部的时候,如果不指定 cookie 的有效期,则 cookie 应该在浏览器关闭的时候被删除才对。但是我写的 server 示例代码向 chrome 写入没有有效期的 cookie 后,关闭浏览器再重新打开,该 cookie 依然有效。

阅读全文

maven 出现 'failed to collect dependencies' 错误的解决办法

今天同事在用 maven 编译项目的时候,遇见了’failed to collect dependencies’的错误,google 了一番,通过如下方式解决:

[shell]
mvn -U clean install
[/shell]

-U,–update-snapshots Forces a check for updated releases and snapshots on remote.

阅读全文

git push 时出现 RPC failed 的解决办法

通过 git push 命令提交代码时出现下列错误:

[shell]
$ git push
Counting objects: 9292, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (2136/2136), done.
error: RPC failed; result=22, HTTP code = 411
fatal: The remote end hung up unexpectedly
Writing objects: 100% (8222/8222), 1.27 MiB | 837 KiB/s, done.
Total 8222 (delta 6060), reused 8181 (delta 6033)
fatal: The remote end hung up unexpectedly
Everything up-to-date
[/shell]

阅读全文

OS X Mavericks 下编译代码报头文件找不到的解决办法

最近的业余时间投入了不少精力研究 Node.js。在通过 NPM 安装一些需要编译本地代码,比如说 websocket 时,直接报错:

[shell]
…node-gyp/0.10.22/deps/v8/include/v8stdint.h:34:19: fatal error: stdio.h: No such file or directory
compilation terminated.
make[1]: * [Release/obj.target/validation/src/validation.o] Error 1
[/shell]

阅读全文

解决 Sublime Text 2 删除插件后在启动时弹出提示框的问题

自从 ZenCoding 改名为 Emmet 后,每次启动 Sublime Text,都会弹出一个窗口提示:“The package specified, ZenCoding, is not available”。

阅读全文

iOS 邮件应用标记所有邮件为“已读”的小技巧

翻译自 lifehacker 的 How to Mark All Emails as Read on Your iPhone

阅读全文

通过 Log4j 生成 CSV 格式日志时自动插入表头处理方法

在开发某个类似报表的功能时,感觉用 log4j 直接按天滚动生成 csv 格式的文件很方便,于是研究了一下如何在日志滚动时自动插入表头的方法。

log4j 的各种 layout 都派生自 org.apache.log4j.Layout 这个抽象类。Layout 有一个 getHeader() 方法,默认返回 null,因此只要实现一个你使用的 *Layout 的子类,重写 getHeader 方法就可以了。

阅读全文

microsoft outlook 配置 exchange 邮箱错误导致无法启动的解决办法

在新装的 office outlook 里配置邮箱,想配置成链接 exchange 形式的。结果配置完后显示“到 Microsoft Exchange 的链接不可用。Outlook 必须处于联机或连接状态才能完成此操作。”然后每次启动 outlook 都是这样提示,点击确定后 outlook 就自动关闭了,卸载重装都没用,如下图:
outlookerr1

阅读全文