就像这篇博文的作者一样,最早在接触互联网的时候就开始养成写博客的习惯,因为上中学的时候对化学老师的好记性不如烂笔头一句话铭记于心。当时互联网还没有微博,微信,逛论坛和博客是那时的主流。最早写博文是在沪江英语的博客上,因为经常逛沪江论坛,后来由于沪江英语转型博客服务已经不再提供,之前写的一些文章也找不到了。后来又经常逛CSDN论坛,就改为在CSDN的博客上继续写博客,因为是免费的服务,天下没有免费的午餐,博客上的广告投放越来越多,有时还经常显示网站在维护不能访问,故而觉得有必要搭建一个自己的博客。目前是在DigitalOcean上购买的VPS服务,主要用于公众号和博客。其中博客选择的jekyll,因为它的哲学思想就是注重内容,界面简单,可以像hacker一样写文章,正如你看到的样子。工作和生活中难免存在很多琐碎的事情,维护博客目的是将一些有价值的事情记录下来,让自己多一些思考。

VPS的选取

通过我为什么选择DigitalOcean VPS来做开发一文的介绍,在DigitalOcean上创建了一个VPS。体验后有以下感受:

优点:

  • 下载速度快,由于是国外的服务器没有GFW的问题。在下载Dokcer官方镜像的时候可以体会到。
  • Tutorials丰富,很多分享经验的文章,简单易懂。
  • 官方的客服服务响应迅速。如果遇到问题可以向官方提issue获得帮助。
  • 环境自由,可以各种折腾,为程序员而生。
Simple cloud hosting, built for developers. A droplet is a KVM VPS which you get full root access to so you can install anything you like.

缺点:

  • 需要承担一些费用。比如,每月10美元(1GB Mem/1 Core processor/30GB SSD的配置)。使用我的推荐码注册,你可以得到100美元的奖励金额用于购买VPS,如果以后继续付费的话,我也可能得到一些奖励。
  • 暂时没想到第二条。
Give $100, Get $25
Everyone you refer gets $100 in credit over 60 days. Once they’ve spent $25 with us, you'll get $25. There is no limit to the amount of credit you can earn through referrals.

DigitalOcean

完成下面三步,就可以创建和体验自己的VPS服务了。

  1. 完成注册
  2. 更新账单(可以使用DO赠送的金额)
  3. 创建Droplet(有多种image可以选择,比如Ubuntu)

创建完,就可以通过SSH的方式登陆到自己的云服务器了,DigitalOcean会把外网的IP和root密码通过邮件的方式通知我们。可以直接使用root和密码来登录,但更安全便捷(不用每次都输入密码)的方式是使用SSH keys的方式来登录(How to Add SSH Keys to Droplets)。

注意,DO创建完droplet就开始收费,即使你把它power off(sudo poweroff),它也同样在计费,因为droplet使用的资源没有释放。在Billing的选项里可以查看自己的balance和usage情况。如果不希望继续付费可以把droplet删除(destroy),但是会把这个droplet上的数据全部清除(scrub up)。

Note that when you power off your droplet you are still billed for it. This is because your diskspace, CPU, RAM, and IP address are all reserved while it is powered off.

检查环境:

cat /etc/issue
Ubuntu 14.04.1 LTS GNU Linux 3.13.0 37 generic x86_64

查看droplet的public ip:

ip addr show eth0 | grep inet | awk '{ print $2; }' | sed 's/\/.*$//'
curl http://icanhazip.com

Linode

Linode

VPS设置

以下以Ubuntu为例。

账户初始化配置

initial-server-setup-with-ubuntu-14-04

系统安全配置

开发工具配置

注意先更新源apt-get update

  • git
  • gcc
apt-get install gcc
  • docker
apt-get install -y docker.io
ln -sf /usr/bin/docker.io /usr/local/bin/docker
sed -i `$acomplete -F _docker docker` /etc/bash_completion.d/docker.io
  • golang
apt-get install gccgo-go
  • apache/nginx
apt-get install apache2
apt-get install nginx

how-to-install-nginx-on-ubuntu-14-04-lts

反向代理设置:

NGINX Reverse Proxy

  • mysql
apt-get install mysql-server php5-mysql
  • php
# for apache
apt-get install php5 libapache2-mod-php5 php5-mcrypt
# web root is /var/www/html

# for nginx
apt-get install php5-fpm php5-mysql
# web root /usr/share/nginx/html
  • phpMyAdmin
apt-get install phpmyadmin apache2-utils
http://104.131.173.242/phpmyadmin/

科学上网

搭建Shadowsocks服务

Shadowsocks is a cross-platform tunnel proxy which can help you get through firewalls.

Shadowsocks已被河蟹。可以找到一些fork的版本release 2.8.2

Q: 如何在iOS客户端使用?

Step 1: 下载iOS系统可用的Shadowsocks软件,由于苹果中国区下架的原因,可以切换到非中国区下载(需要其他区域的Apple ID)。以下香港ID供参考使用,注意,为防止自己的手机信息泄露,请务必不要使用以下Apple ID登录iCloud。使用下载过后,请及时退出该账号(refer)。

ID KEY
kea6404w@icloud.com Dd112211
z14g024g@icloud.com Dd112211
s4778y1k@icloud.com Dd112211
lnlf6h10@icloud.com Dd112211
oy44mq3h@icloud.com Dd112211
xz7x1npo@icloud.com Dd112211
jl1y8uc7@icloud.com Dd112211
d79b4z6y@icloud.com Dd112211 (验证可用)
y188t17y@icloud.com Dd112211
b27y8u2v@icloud.com Dd112211

Step 2: 注册好后就可以下载下面几款客户端软件。

  • Sockswitch (免费,验证可用)
  • Potatso Lite (免费)
  • Potatso 2 ($2.99)
  • Shadowrocket($2.99)
  • Wingy - Proxy For Http(s),Socks5,Shadowsocks

Step 3: 打开下载的客户端软件,输入ss的服务器信息配置即可使用。

Q: 如何在Mac OS X上使用Shadowsocks代理?

下载客户端并添加服务器,然后选择“自动代理模式”。

https://github.com/shadowsocks/shadowsocks-iOS/releases

https://github.com/shadowsocks/ShadowsocksX-NG/releases/

Q: 如何在Windows上使用Shadowsocks代理?

https://github.com/shadowsocks/shadowsocks-windows/releases/

Q: OpenSSL升级到1.1.0版本以后,运行ss提示AttributeError: /usr/lib/x86_64-linux-gnu/libcrypto.so.1.1: undefined symbol: EVP_CIPHER_CTX_cleanup错误

错误原因:

EVP_CIPHER_CTX was made opaque in OpenSSL 1.1.0. As a result, EVP_CIPHER_CTX_reset() appeared and EVP_CIPHER_CTX_cleanup() disappeared.
EVP_CIPHER_CTX_init() remains as an alias for EVP_CIPHER_CTX_reset().

解决方法:修改/usr/local/lib/python2.7/dist-packages/shadowsocks/crypto/openssl.py,将EVP_CIPHER_CTX_cleanup替换为EVP_CIPHER_CTX_reset

付费服务

我的推广链接

  • 云梯
    • 主站:www.yuntiss.top
    • 备用站:www.yuntiss.site

jekyll配置

  • 目录索引(TOC)

How I Add a Table of Contents to my Jekyll Blog Written in Markdown

kramdown

工具

浏览器

  • Google Chrome
    • 使用Google账户登录,方便同步书签等信息,便于多终端使用。
    • Chrome常用扩展:
名字 功能
DragIt 方便页面浏览
FeHelper WEB前端助手。1. JSON自动格式化(或命令行工具jq) 2. 二维码生成器
印象笔记剪裁 保存网页
Vimium vim快捷键

编辑器

  • Vim
  • Sublime

画图工具

  • canva
    • 在线图形设计平台
  • websequencediagrams
    • 通过脚本语言生成时序图
  • flowchart.js
    • 通过脚本语言生成流程图
    • 使用diagrams工具可以生成各种图形,包括flowchart。
  • Viz.js
    • 借助VizWeb平台使用GraphvizDOT语言在浏览器中生成广义的图形

refer:

使用 Graphviz 生成自动化系统图

graphviz-dotguide官方教程

文档

数学