0%

因为服务器太乱,我清理了一下服务器并且重新使用letsencrypt加密了https,现在将我的经验分享出来。

本文基于ubuntu16.04、nginx环境

第一步:安装 Certbot

第一步是安装letsencrypt提供的certbot工具

1
2
3
sudo add-apt-repository ppa:certbot/certbot
sudo apt-get update
sudo apt-get install certbot

第二步: 获得SSL的证书

我们使用WebRoot这个插件。

阅读全文 »

最近在学习docker,看到了一篇比较好的文章,于是转载了过来,原文出处在最后。

AUFS是一种Union File System,所谓UnionFS就是把不同物理位置的目录合并mount到同一个目录中。UnionFS的一个最主要的应用是,把一张CD/DVD和一个硬盘目录给联合 mount在一起,然后,你就可以对这个只读的CD/DVD上的文件进行修改(当然,修改的文件存于硬盘上的目录里)。

阅读全文 »

最近正好有个项目,需要接收到用户传过来的数据之后存到本地当作临时文件,用完删除。

本来以为需要自己造轮子,结果发现go标准库提供了临时文件的功能,这里记录一下。

ioutil

go标准库里有个ioutil的库,里面提供了一些实用的轮子。

阅读全文 »

最近正在用go写一个各语言的lint server,需要调用外部的命令,所以这里整理一下用到的方法。

Command

os/exec包中有一个 type 叫 cmd,定义如下:

阅读全文 »

这是 Golang官方的一个总结: SliceTricks

由于引入了内建的append的方法, 包container/vector的很多方法都被移除了,可以被内建的appendcopy方法代替。

下面是栈vector的操作方法的实现,使用slice实现相关的操作。

AppendVector

1
a = append(a, b...)

Copy

1
2
3
4
b = make([]T, len(a))
copy(b, a)
// 如果a不为空,也可以用下面的方式
b = append([]T(nil), a...)
阅读全文 »

百度的SEO是个很蛋疼的事情,讲道理的话应该说是比较麻烦的。

有时候百度的爬虫因为各种原因会爬不到我们的网站,所以需要我们主动进行链接提交。

百度提供了三种方法来让我们提交链接:

1、主动推送

2、自动推送

3、sitemap

这里我会主要讲自动推送的部分。

阅读全文 »

这两天又发现一个问题,就是hexo的html、css、js都是没有压缩过的,这样是很不好的,因为会浪费服务器的资源 & 让用户的下载速度变慢。

于是继续使用Google大法搜索有没有解决方案,然后看到了前辈已经遇到过这种问题了,原文链接放在了最后,这里整理一下过程。

阅读全文 »

昨天刚折腾好博客,喜欢折腾的我又发现了一个问题——每次我在本地hexo deploy完都需要登录服务器去:

1
2
git pull
sudo nginx -s reload

作为一个程序猿,怎么能忍受这么不geek这么不技术的事情发生!

于是,我就想到了,能不能我在本地git push之后自动在服务器上git pull然后自动重启nginx呢?

于是Google了一下,发现果然前辈们的智慧是无穷尽的,早就有人提供了解决方案,我就来整理 & 搬运一下。

有一个东西叫做git hook,这个东西是干嘛的呢?简单来说,就是在git的执行流程中设置了断点,执行到某个流程的时候先去执行一下我们设置好的脚本,再接着执行。

阅读全文 »

第一题

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
一年一度的阿里运动会又要开始了,同学们终于有一天可以离开鼠标键盘显示器,全身心的投入到各种体育项目中。UED设计师小红虽然没有参加体育项目,但她的责任重大,因为她是拉拉队的队长,她需要在每个项目中为参赛的同学们加油助威。
因为运动会的项目众多,很多项目在在同一时间会同时进行着。作为拉拉队长,小红需要遵守以下规则:
不能同时给多个体育项目加油助威
给每个体育项目加油的时长必须超过项目时长的一半,每个体育项目只能加油一次
体育项目的开始和结束时间都是整点,如果项目进行到一半想要离开,也只能选择整点离开
不考虑往返于各个体育项目比赛场地中花费的时间
请帮小红设计一个算法,在已知所有体育项目日程的前提下,计算是否能在每个体育项目中为参赛的同学们加油。

说明:
如果体育项目时长为2,超过时长的一半为2;
如果体育项目时长为3,超过时长的一半为2;
如果体育项目时长为4,超过时长的一半为3

编译器版本: Java 1.8.0_66
请使用标准输入输出(System.in, System.out);已禁用图形、文件、网络、系统相关的操作,如java.lang.Process , javax.swing.JFrame , Runtime.getRuntime;不要自定义包名称,否则会报错,即不要添加package answer之类的语句;您可以写很多个类,但是必须有一个类名为Main,并且为public属性,并且Main为唯一的public classMain类的里面必须包含一个名字为'main'的静态方法(函数),这个方法是程序的入口
时间限制: 1S (C/C++以外的语言为: 3 S) 内存限制: 64M (C/C++以外的语言为: 576 M)
输入:
输入包括1+N行 第一行输入一个整数N, 1 <= N <= 10,表示今天要参加多少个讨论会 后续N行,每行输入开始和结束时间,均为整数,用空格分隔,0 <= startTime < endTime <= 24
输出:
输出包括一行 如果小红能够参加全部讨论会,返回1 如果小红不能够参加全部讨论会,返回-1
输入范例:
3
3 10
1 5
4 6
输出范例:
1

代码运行全部通过! 耗时: 470ms, 内存: 24168K
阅读全文 »

这篇有趣的文章编译自一篇西班牙博客。

有一位美丽的公主,被关押在一个城堡中最高的塔上,一条凶恶的巨龙看守着她,需要有一位勇士营救她……

阅读全文 »