博客迁移到 vps

几周前在 linode 上买了个最低配的 vps(不要问我为什么买,我也不知道,反正就是买了),流量翻墙也用不完,于是想着把博客迁过来,还能省点钱。

nginx 和 php

这里

另外还需要在 /etc/nginx/sites-enabled/default 中的 server{} 部分加上

index index.html index.php;

安装数据库

自从 MySQL 被 Oracle 收购后,开源界为了避免版权问题,fork 了一个分支 MariaDB:

apt-get install mariadb-server

为了能让 php 访问数据库,还需要安装对应的插件:

apt-get install php-mysql

备份原博客

从 cpanel 打开文件管理器,将 public_html …

阅读全文…

nginx 支持 php

记录一下 nginx 和 php 的配置过程。运行环境是 Debian 10 stable。

安装:

apt-get install nginx php-fpm

然后编辑 nginx 的配置文件 /etc/nginx/sites-available/default,去掉以下几行的注释:

location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php5-fpm.sock;
}

这个配置是告诉 nginx,如果请求中有 .php 结尾的文件,就把它交给 php-fpm 来处理。

改完保存后重启 nginx 和 php-fpm:

/etc/init.d/nginx restart
/etc/init.d/php7.3-fpm 

阅读全文…

从 vim 转到 emacs

没错,这次真的转到 emacs 了,而且估计再也回不去了……

几年前有尝试过转到 emacs 的 经历,但是当时用的并不熟练,所以大概坚持了几周就放弃了。最近换了工作,组里要求统一使用 emacs,说是为了结对编程方便,统一操作,还提供了统一的配置文件。刚开始的时候我当然是拒绝的,心想作为一个已经用了 vim 将近 10 年而且还打算继续用一辈子的铁杆粉怎么可能这么容易动摇,顶多工作时间用 emacs,其余时间还是拥抱心爱的 vim。

但是大部分时间还是在工作,为了干活时不那么痛苦,于是一点点地把 vim 的习惯尽量迁移到 emacs 上。第一时间就是打开 .vimrc,对照 elisp 的 手册 一点点地搬过来。首先上手的是 evil。稍稍配置后基本就和默认的 vim 差不多了。这倒是让我很意外,于是把 vim 删了,在工作之外也开始有意识地用 emacs,渐渐地居然也习惯了没有 vim 的日子。主要矛盾解决后剩下的事情就好办多了,我的配置很久都没有什么大改动,也没有动力尝试什么新插件之类,几个常用的 vim 插件都有对应的 emacs 版本。另外比较惊喜的是,这些插件的扩展都做得不错(可以给插件写插件),调整起来相当方便,相对于对应功能的 vim 插件来说,感觉设计和代码质量上都要好很多,尽管有些功能觉得还是没有 vim …

阅读全文…

博客的几个改动

周末两天把博客捣腾了一下。从表面来看,只是换了个代码高亮的配色,但改动远不止看到的内容。

首先是 wordpress 版本从之前的 3.4.x 升级到了当前的最新版 4.5.x。一直拖着没升级的原因是,之前对 wp 的代码有些改动(看 这里),每次升级都需要重新 diff 改回来。反正像这样的个人小站也没啥入侵价值,所以一直没有怎么关注安全补丁啥的,能用就用着。而今天下定决心要升级是因为准备把文章内容全都改成 markdown,这样能用上一些较新的支持 markdown 的插件。支持 markdown 的静态 blog 也有很多,但是有一点不喜欢的是,评论都是用的第三方,像多说和 disqus 之类,万一这些网站挂了评论就没了。

文章 markdown 化。这也是会有这篇博客的直接原因。这两天趁着周末把全站的 90+ 篇文章都转成 markdown 了,把里面的 html 和 wordpress 特有的标记都去掉了。还有个不起眼但是很费时的改动,就是把全站文章的格式都按照 中文文案排版指北 调整了一遍。不过有些单词大小写和使用还是不够规范。

新增了些插件。为了去掉这些标记,新增了几个插件。下面是在用的插件列表:


阅读全文…

git 使用笔记 (2)

合并指定文件

假设 master 中有文件 a 和 b,在分支 br1 中对 a 和 b 都进行了修改并且已经提交,如果只想把在 br1 中对 a 的修改合并到 master 中,执行命令:

git co master
git co br1 a

即先切换到要修改的分支(例如这里的 master),然后执行命令:

git co [分支名称] [要合并的文件1] [要合并的文件2] ...

分支的删除

假设有一个中心仓库 git-repos,有分支 master 和 br1;两个工作目录 …

阅读全文…

wordpress 中实现相关文章推荐

趁着假期给博客换了一个主题,根据自己的喜好改了若干地方。之前用的主题自带了相关文章的推荐,但是新的主题并没有这个功能,于是把原来主题中实现相关文章的部分拿来改改,下面的函数是主要的实现(放到主题目录下的functions.php 中):

/* return list of related posts */
function ou_wp_related_post($related_filter = 'tag')
{
    $ret = array();
    global $post;

    if ($related_filter == 'category')
        $matchby = get_the_category($post->ID);
    else {
        $matchby = wp_get_post_tags($post->ID);
        $related_filter = 'tag';
    }

    if ($matchby) {
        $orig_post = 

阅读全文…

hadoop笔记 (1):安装和配置

记录一下 hadoop 集群的搭建过程,一共 3 台机器,操作系统都是 debian 6,hadoop 版本是1.0.4,jre 是源里的 openjdk-6。hadoop 官网的说明挺详细,就是不能快速搭建出一个能跑的环境。在网上找到一篇文章(见参考资料 [1]),虽然文章中用的是 0.20 版本,但是在 1.0.4 上也适用。

这里使用 master,slave1 和 slave2 分别作为三台机器的主机名。为了操作方便,每台机器上都有一个用户 hadoop,密码都一样。以下的配置操作都在 master 上进行。

hadoop 的配置(2013.03.16 更新)

把下载到的 hadoop-1.0.4.tar.gz 解压到 hadoop 的家目录下,建立一个软链接 hadoop 指向解压得到的目录,这样以后更新只需重新建立软链接指向新版本即可。

进入解压后的目录,根据实际情况修改 conf/hadoop-env.sh 中的 JAVA_HOME,使其指向 jdk 的安装目录:…

阅读全文…

在 debian 上使用 qt 访问 oracle 数据库

之前的一个使用 oracle 的项目自从我把数据库装好之后就没有下文了,最近迎来了另一个也需要使用 oracle 的项目。由于 oracle 不是开源的,为了能在 Linux 下使用 qt 访问,只好自己编译对应的驱动。在网上找了一堆资料,又折腾了好几天,终于在今天晚上成功了,在这里记录一下。

先说一下环境:debian 6.0,qt sdk 4.8.1,oracle 11gR2。本文主要记录的是怎样编译驱动和怎样连接,关于 oracle 数据库服务器端安装中的一些问题可以参考之前的一篇 笔记

准备工作

下载 qt sdk。因为编译的时候 qt 工具链和源代码要保持一致,而 debian 6 源里的 qt 版本是 4.6.3,官网上已经找不到对应的源码包了,所以下载 sdk 安装(sdk 包含工具链和对应版本的源码),安装的时候要注意把安装 source code 的选项勾上。这里使用 QTDIR 表示 …

阅读全文…

自己整理的 latex 模板

为了为祖国的科研事业贡献自己的力量,更为了能顺利毕业以便更好地为祖国作贡献,前两周一直忙着憋论文。本来先打算用中文写了再翻译成英文,但是 boss 说从中文翻译过来的质量不好,而且时间不够,还不如直接上英文。记得上一次写英文文章都已经是两年半前考研的时候了(其实研一第一学期末参加了个英语选修考试,最后题目都来不及做完,作文连题目都来不及写……),而且写过的英文文章最多也就 200 个单词,忽然让我写这么长的文章就像是好几年没运动的人一上来就跑马拉松,还要限时跑完。本来表达能力就不行,再加上肚子里没货,写出来的内容自己都不想看了。

刚开始的时候准备用 word 来写,但是一想到要调格式就头大(一直不知道 word 有“格式刷”这个工具,不知道 excel 可以选中数据画曲线图饼状图直方图等各种图……不知道当时是怎样把本科毕设论文搞定的),最后决定用 latex 来写,顺便整理一下以前的模板。基础内容可以参考《The Not So Short Introduction to LATEX 2ε》,各个宏包的具体介绍可用“texdoc -s 关键字”来搜索相应的手册。

感谢 boss 清明节加班把论文从头到尾改了好几遍,80% 的内容被改得面目全非……感谢师兄帮忙画图;感谢 #大侠 友情提供 gnuplot 画图脚本一个。

最后贴个自用的模板为论文求 rp,内容来自网上和自己的总结(texlive2012 通过,20130601 更新):

\documentclass[a4paper]{article}
%\documentclass[twocolumn]{article}

%\usepackage{graphicx}
\usepackage{listings}
\usepackage{xcolor}

阅读全文…

evince 更改文档背景颜色

先说一下用的是 debian 6,evince 版本是 2.30.3。

去年在 evince 的邮件列表中问过这个问题,得到的回答是人手不够,并且这个功能不是太紧急,因此目前并不考虑实现。随着看 pdf 的时间越来越长,白色背景看着实在很不爽,但是又不懂 gtk 编程,因此想通过修改反色的行为来实现修改背景颜色的功能,即当选择了反色的时候并不是把背景和字体的颜色都反过来,而是把背景颜色修改为我喜欢的颜色,字体的颜色不变。

先到源里把代码下下来,grep 一下关键字“invert”加上人肉筛选加上 gdb 打断点后发现实现反色的功能在 libdocument/ev-document-misc.c:

void
ev_document_misc_invert_surface (cairo_surface_t *surface) {
#if CAIRO_VERSION > CAIRO_VERSION_ENCODE(1, 9, 2)
    cairo_t *cr;

    cr = cairo_create (surface);

    /* white + DIFFERENCE -> invert 

阅读全文…