0%

之前在项目中将Django从1.7升级到1.8,现在想起来记录一下相关的步骤和过程。

由于项目一开始用的是1.6,所以用python manage.py startapp默认没有migrations这个package,而之前又有一些model是使用syncdb的,并且之后再没修改过,所以在用1.7的时候一直都没什么问题,而且1.7会自动去侦测没有makemigrations的model并自动migrate,导致了在升级1.8的过程中出现了一些小插曲,这里来记录一下。

阅读全文 »

因为服务器太乱,我清理了一下服务器并且重新使用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的执行流程中设置了断点,执行到某个流程的时候先去执行一下我们设置好的脚本,再接着执行。

阅读全文 »