再见我莫名其妙_(:з」∠)_的贰零壹七一事无成并没有什么可怕的开心就好

不知道标题里面放个表情会不会出现排版问题,导致无法正确传到某种心情。

博客犀利糊涂的也挂了三年了,时间真的很快,在那么一瞬间,还在回味刚刚逝去的那一秒,却发现一年又过去了,比如回到家,水水水又生了一儿子了,谁又和女朋友去哪个村那个岛过新年,而我妈有时候会幻想她儿子找个女朋友生个娃之类的情景,一切来的太突然了,多么可怕( ゚д゚)。
是的这种本来应该就元旦或者2-15这种数字比较吉利或者有某些意义日子里发出来的,但却因为各种小问题比如说没时间不在状态网络延迟的各种方方面面的因素,没有写出来,我前天刚刚知道摩尔定律,如果有一定几率出错,那么一定会出错,那么如果能拖这么久,那么一定是有问题,比如说真的太懒了。

方正教务系统一键评教脚本

每学期都有那么一次,直到大三才写这么一个脚本,貌似太迟了,所有的脚本外挂都是为了不合理的系统设计的,比较简单的做法是下载Firefox浏览器,按Tab键和键,快速选一个。

var doc = document.querySelector("#iframeautoheight").contentDocument;
var l = doc.querySelector("#pjkc").length;
console.log("评教项目数量",l);
document.querySelector("#iframeautoheight").onload = function () {
    var doc = document.querySelector("#iframeautoheight").contentDocument;
    if(doc.querySelector("#pjkc").lastElementChild == doc.querySelector("#pjkc>option[selected=selected]")){
        document.querySelector("#iframeautoheight").onload = null;
        doc.querySelector("#Button2").click();
    }
    console.log("加载完成。。")
    doing(doc)
};
var finish = 0;
function doing(doc) {
    console.log("正在评教",doc.querySelector("#pjkc>option[selected=selected]").innerText);
    doc.querySelectorAll("#DataGrid1 select").forEach(function (item) {
        var i = Math.ceil(Math.random() * 2);
        item.options[i].selected = true;
    });
    finish ++;
    doc.querySelector("#Button1").click()
}
doing(doc);

安装ubuntu + PHP7 + Caddy环境

Caddy使用golang编写的一款http服务器,和Apache nginx一样的存在,和前两者区别是用golang编写,有莫名的亲切感,自带https证书(来自let’s encrypt),支持http2,配置简单,只能性能并不是很清楚,但是使用golang编写,想来也不会很差,所以便把博客从Nginx更换到Caddy

安装

curl https://getcaddy.com | bash -s personal
apt install php7.0-curl php7.0-gd php7.0-mysql php7.0-sqlite3 php7.0-pgsql php7.0-fpm php7.0-mcrypt php7.0-mbstring php7.0-zip

配置

将下列文件保存到/etc/Caddyfle,这边注意域名和括号之间的空格不能省略,官方的教程里面是fastcgi /blog/ 127.0.0.1:9000 php,但是新版的PHP并没有监听9000端口,所以要换成下面的方式。

tristana.cn {
        root /var/www/html/blog
        fastcgi / /run/php/php7.0-fpm.sock php
}

然后在/etc/rc.localexit之前添加下面行:

ulimit -n 8192
caddy -conf /etc/Caddyfile &

重启一下服务器即可。

Caddyfile 配置文件语法详解

文件和编码

配置文件使用UTF-8编码,其中文件开始的0xFEFF文件头会被忽略如果存在的话(Windows下记事本会自动添加这个文件头)。

字符串和注释

指令和参数,参数和参数之间使用空格分割,如果参数不包括空格或换行,可以直接使用,包括空格需要使用双引号包含进来,这时候,里面的双引号需要转义\",除了双引号可以被转义,其他符号不能被转义。

行以\n作为分隔符,\r和空白行和所有空白字符将被忽略,不包括被引号包含的行。

#后面到行结束内容将作为注释被忽略,注释可以在指令的后面,也可以单独一行。

结构

以下内容与原文存在一定的差异,但不影响理解。

Caddyfile里面不存在全局变量。如下图,配置文件由标签定义组成,标签加定义是最基本的单位:
Screenshot-2017-12-25 The Caddyfile Syntax.png

标签由简单的字符串组成,定义则可以由一行或者多行,其中多行需要使用大括号({})括起来,大括号的左边({)和标签同一行,大括号的结束(})需要单独占用一行:
Screenshot-2017-12-25 The Caddyfile Syntax(1).png

缩减推荐使用一个Tab,文件的第一行永远是标签,空行、注释、import除外。

Caddyfile 配置文件快速入门教程

Caddyfile 配置文件的第一行始终是服务器的域名或者IP地址,例如:

localhost:8080

将上面内容保存为Caddyfile,当你运行的时候,会自动寻找该文件,你可以指定文件配置路径:

caddy   -conf ../path/to/Caddyfile

站点的下一行紧接着是指令,你可以点击查看全部指令,例如下面的gzip指令可以压缩页面:

localhost:8080
gzip

指令的后面可以附带一个或者多个参数:

localhost:8080
gzip
log ../access.log

有些指令需要设置多个参数,这些指令需要在后面使用大括号添加一个块,大括号开始必须与指令同一行:

localhost:8080
gzip
log ../access.log
markdown /blog {
    css /blog.css
    js  /scripts.js
}

If the directive block is left empty, you should omit the curly braces entirely.
参数里面如果包含空格必须使用" 括起来,# 后面跟着的是注释内容

# Comments can start a line
foobar # or go at the end

再用000webhost空间

12年,刚刚接触PHP,用的是在线环境,那时候找免费空间,加上一个文件管理器,就开始开搞,博客用的是WordPress,论坛程序用的PHPbb,空间用的是三蛋的空间,申请的时候用的是代理加gmail邮箱,需要挂代理,没有shadowsocks,用的是改过代理的Opera,手机端的,依旧用免费的空间搭的代理服务器.

/images/000webhost.gif

再战18个月,为M8启用f2fs

f2fs 是什么

F2FS是一种闪存文件系统,由金载极在三星集团研发,提供给Linux内核使用。 此文件系统起初是为了NAND闪存而设计的,例如这一类的存储设备,甚至可以自移动设备广泛应用至服务器。 三星应用了日志结构文件系统的概念,使它更适合用于存储设备。

如何切换到f2fs分区格式

  • 编译内核添加f2fs驱动
  • 修改boot.img,开机挂载分区的时候以f2fs方式挂载
  • 格式化分区为f2fs

为A20开发板适配红外遥控,记录遇到的问题

我手上的开发板是BananaPi-m1,自带红外接收器,这里以Android 4.2为例,虽然说是开发板,但是全志提供的东西少的可怜,A20对应的Android源码只有4.2一份,网络上的教程坑很多。

源码和编译工具

BananaPi-Android-4.2.2-Liab 这个项目里面基本都有了,但是整个项目10G+, 我们并不需要那么多,只要克隆lichee目录就可以了。

 mkdir BananaPi-Android-4.2.2-Liab
 cd BananaPi-Android-4.2.2-Liab
 git init
 git remote add origin https://github.com/ChrisP-Android/BananaPi-Android-4.2.2-Liab.git
 git config core.sparsecheckout true
 echo "lichee/*" >> .git/info/sparse-checkout
 git pull --depth=1 origin master

编译工具使用gcc-linaro,使用Ubuntu软件仓库上的arm-linux-gnueabihf-gcc都是5以上的版本,没办法编译。

为yaourt设置代理

https_proxy='socks5://127.0.0.1:1080' http_proxy='socks5://127.0.0.1:1080' yaourt arm-linux-gnueabihf

上面只是设置环境变量,并不能强制使用代理.顺带记录一下git代码

git config --global https.proxy 'socks5://127.0.0.1:1080'
git config --global http.proxy 'socks5://127.0.0.1:1080'

美化博客hexo文章中表格显示

博客文章的样式是主题提供的,我使用的主题phase,并没有提供表格样式,所以自己修改。创建文件themes/phase/source/css/user.css,添加需要的样式:

table {
    width: 100%; /*表格宽度*/
    max-width: 65em; /*表格最大宽度,避免表格过宽*/
    border: 1px solid #dedede; /*表格外边框设置*/
    margin: 15px auto; /*外边距*/
    border-collapse: collapse; /*使用单一线条的边框*/
    empty-cells: show; /*单元格无内容依旧绘制边框*/
    border-radius: 4px;
}

table th,table td {
  height: 35px; /*统一每一行的默认高度*/
  border: 1px solid #dedede; /*内部边框样式*/
  padding: 0 10px; /*内边距*/
}
table th {
    font-weight: bold; /*加粗*/
    text-align: center !important; /*内容居中,加上 !important 避免被 Markdown 样式覆盖*/
    background: rgba(158,188,226,0.2); /*背景色*/
}
table th {
    white-space: nowrap; /*表头内容强制在一行显示*/
}
table td:nth-child(1) {
  /*首列不换行*/
    white-space: nowrap;
}
table tbody tr:nth-child(2n) {
  /*隔行变色*/
    background: rgba(102, 128, 153, 0.05);
}
table tr:hover {
    background: #efefef;
}

修改文件themes/phase/layout/_partial/head.ejs,在

<link rel="stylesheet" href="<%- config.root %>css/style.css" media="screen" type="text/css">

下面添加

<link rel="stylesheet" href="<%- config.root %>css/user.css" media="screen" type="text/css">

重新生成页面即可,样式参考文章Markdown 表格样式调整与自适应优化 中的样式