PS 制作科幻电路板
科幻大片里的电路背景看上去是非常复杂的也是非常炫酷的,不过用滤镜来制作却不是很复杂。先把一些纹理处理成网格效果,然后用查找边缘等滤镜加强网络的边缘线条,后期细化一下线条,调整一下颜色即可。
科幻大片里的电路背景看上去是非常复杂的也是非常炫酷的,不过用滤镜来制作却不是很复杂。先把一些纹理处理成网格效果,然后用查找边缘等滤镜加强网络的边缘线条,后期细化一下线条,调整一下颜色即可。
「表情包」是一种利用图片来表示感情的方式。在各种社交软件的带动下,「表情包」已经形成了一种流行文化。互联网上,基本人人都会发表情;很多实时通讯软件中,「斗图」成为了一种活跃气氛的常见方式。不知你是否曾有过找不到表情包去应对别人的时候?
今天笔者分享用 Python 开发个人专属的表情包网站的方法,想用什么表情包搜一下就有了!
目标:获取海量表情包,存入数据库,然后搭建简单网站,通过输入关键字获取对应的的表情包。
首先,我们要从这个网站爬取表情包:斗图啦。
我们先来分析一下这个网页的源代码:
通过源码,我们可以发现需要获取的内容包括每个 <img>
标签的 data-original
和 alt
属性。通过爬虫获取网页,用正则表达式提取内容,然后存入数据库即可。
这里用到的数据库是 MySQL。如果还没有安装的话,不妨参考前面的文章 MySQL 8.0 的安装和使用。
安装完成后,你可以用 root,也可以创建一个新用户,来新建数据库和数据表,用来存放表情包:1
2
3
4
5
6
7
8
9
10#建立数据库images
CREATE DATABASE images;
USE images;
#然后在该数据库中新建一个表,并添加相应的name和imageUrl
CREATE TABLE images (
id int(10) UNSIGNED PRIMARY KEY NOT NULL AUTO_INCREMENT,
name varchar(1000),
imageUrl varchar(200)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
QUIT;
至此数据库方面的工作就完成了。
依赖包是 requests
,mysql-connector-python
和 Flask
。使用 pip
进行安装即可。
在前面的文章 NGINX 配置 SSL 中,提到了关于创建 Crontab 定时任务的内容。事实上,在使用 Linux 系统时(特别是在服务器上),经常会碰到需要在某个特定时间执行某些任务的情况。笔者近期研究了 Crontab 的机制,并对常见的 Crontab 用法做了一个总结,收集了一些关于计划任务的实例,现把相关内容分享出来,同时也给自己一个备忘。
1 | crontab [-u user] file |
各参数为:
-u user
:用来设定某个用户的 crontab 服务。file
:file 是命令文件的名字,表示将 file 做为 crontab 的任务列表文件并载入 crontab。如果在命令行中没有指定这个文件,crontab 将接受从标准输入(如键盘)中键入的命令,并将它们载入 crontab 任务列表。-e
:编辑某个用户的 crontab 文件内容。如果不指定用户,则表示编辑当前用户的 crontab 文件。-l
:显示某个用户的 crontab 文件内容。如果不指定用户,则表示显示当前用户的 crontab 文件内容。-r
:从 /var/spool/cron
目录中删除某个用户的 crontab 文件。如果不指定用户,则默认删除当前用户的 crontab 文件。-i
:在删除用户的 crontab 文件时给确认提示。用户所建立的 crontab 文件中,每一行都代表一项任务,每行的每个字段代表一项设置,它的格式共分为六个字段,前五段是时间设定段,第六段是要执行的命令段,格式如下:1
2minute hour day month week command
分 时 日 月 周 命令
具体来说,每一列的内容分别是:
在以上各个字段中,还可以使用以下特殊字符:
1,2,5,7,8,9
。2-6
表示 2,3,4,5,6
。0-23/2
表示每两小时执行一次。同时正斜线可以和星号一起使用,例如 */10
,如果用在 minute 字段,表示每十分钟执行一次。又如,每分钟可以用 *
或者 */1
表示。
由于之前使用的 WordPress 博客在更新后出现未知错误(最后证实是主机商的问题),同时考虑到 WordPress 存在的一些弊端,例如:
可见,用 WordPress 写文章,特别是长文,是一件非常麻烦的事情 —— 你很难专注于写作。虽然它也有不少优点:
这些特点是静态博客所不具有的,但最终喜欢折腾的笔者还是决定将所有内容导出,转而使用 Hexo 进行渲染,并部署到 GitHub Pages 上。借助于 hexo-migrator-wordpress
,这一工作进行的非常顺利。当然,除了 Hexo,也有很多其他的解决方案可以考虑,常见的包括 Typecho 或 Hugo 等。
迁移后的新站点使用了 zhangshuqiao.org 的域名,目前已可以通过 https 正常访问。旧的 WordPress 博客仍会保留,但不再更新,未来可能更多的用于进行插件的测试。
ZSQ.IM 站点近期也实装了全新 LOGO(使用 Monodraw 制作):1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 ___ ___ ___ ___ ___ ___
/\ \ /\ \ /\__\ /\ \ |\__\ |\__\
/::\ \ /::\ \ /:/ / /::\ \ |:| | |:| |
/:/\:\ \ /:/\:\ \ /:/ / /:/\:\ \ |:| | |:| |
/:/ \:\ \ /::\~\:\ \ /:/ / /::\~\:\ \ |:|__|__ |:|__|__
/:/__/_\:\__\ /:/\:\ \:\__\ /:/__/ /:/\:\ \:\__\ ____/::::\__\ /::::\__\
\:\ /\ \/__/ \/__\:\/:/ / \:\ \ \/__\:\/:/ / \::::/~~/~ /:/~~/~
\:\ \:\__\ \::/ / \:\ \ \::/ / ~~|:|~~| /:/ /
\:\/:/ / /:/ / \:\ \ /:/ / |:| | \/__/
\::/ / /:/ / \:\__\ /:/ / |:| |
\/__/ \/__/ \/__/ \/__/ \|__|
___ ___
/\__\ ___ /\__\ ___
/::| | /\ \ /::| | /\ \
/:|:| | \:\ \ /:|:| | \:\ \
/:/|:|__|__ /::\__\ /:/|:|__|__ /::\__\
/:/ |::::\__\ __/:/\/__/ /:/ |::::\__\ __/:/\/__/
\/__/~~/:/ / /\/:/ / \/__/~~/:/ / /\/:/ /
/:/ / \::/__/ /:/ / \::/__/
/:/ / \:\__\ /:/ / \:\__\
/:/ / \/__/ /:/ / \/__/
\/__/ \/__/
同时笔者计划于下半年将原来 ZSQ.IM 站点的所有静态页面进行一次大型的改进,敬请期待。
本文更新于 2018 年 7 月 8 日:
由于在国内 GitHub Pages 加载速度不稳定,且由于 GitHub 政策不利于 SEO,笔者已将所有托管在 GitHub Pages 上的页面迁移至另一台独立服务器。
目前全站已支持 HTTPS 访问,并启用了 HSTS,未来时机成熟时将开启 HTTP/2 访问。
本文更新于 2020 年 7 月:
ZSQ.IM 站点更新了 LOGO(使用 Text ASCII Art Generator 制作):1
2
3
4
5
6
7
8
9
10
11
12
13 ██████╗ █████╗ ██╗ █████╗ ██╗ ██╗██╗ ██╗
██╔════╝ ██╔══██╗██║ ██╔══██╗╚██╗██╔╝╚██╗ ██╔╝
██║ ███╗███████║██║ ███████║ ╚███╔╝ ╚████╔╝
██║ ██║██╔══██║██║ ██╔══██║ ██╔██╗ ╚██╔╝
╚██████╔╝██║ ██║███████╗██║ ██║██╔╝ ██╗ ██║
╚═════╝ ╚═╝ ╚═╝╚══════╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚═╝
███╗ ███╗██╗███╗ ███╗██╗
████╗ ████║██║████╗ ████║██║
██╔████╔██║██║██╔████╔██║██║
██║╚██╔╝██║██║██║╚██╔╝██║██║
██║ ╚═╝ ██║██║██║ ╚═╝ ██║██║
╚═╝ ╚═╝╚═╝╚═╝ ╚═╝╚═╝
Certbot 是用来申请 SSL 证书的。Certbot 的安装方式有几种,具体可以在 Certbot 官网上查询。
笔者尝试了通过 pip
进行安装,直接执行 pip install certbot
即可安装好 Certbot。
安装完成后,可以使用1
sudo certbot -h
查看安装是否成功。如果报错,也可以尝试使用其它安装方式。
如果你使用了 Nginx 服务器,还可以执行1
yum install certbot-nginx
安装 Certbot 的 Nginx 拓展。
执行1
sudo certbot --nginx
即可自动完成配置。不过由于涉及到修改 nginx.conf,建议手动进行配置:1
sudo certbot certonly --webroot -w /path/to/your/webroot -d example.com,www.example.com
将 /path/to/your/webroot
替换为 nginx 的根目录,example.com
替换为你的域名,多个域名用逗号隔开,不支持通配符。
如果一切顺利,会输出以下内容:1
2
3
4
5
6
7
8
9
10IMPORTANT NOTES:
- Congratulations! Your certificate and chain have been saved at
/etc/letsencrypt/live/example.com/fullchain.pem. Your cert
will expire on 20XX-XX-XX. To obtain a new or tweaked version of
this certificate in the future, simply run certbot again. To
non-interactively renew *all* of your certificates, run "certbot
renew"
- If you like Certbot, please consider supporting our work by:
Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate
Donating to EFF: https://eff.org/donate-le
生成的证书将会存放在 /etc/letsencrypt/live/
目录下。