HandlerMethodArgumentResolver 是一个接口:
public interface HandlerMethodArgumentResolver {
boolean supportsParameter(MethodParameter var1);
@Nullable
Object resolveArgument(MethodParameter var1, @Nullable ModelAndViewContainer var2, NativeWebRequest var3, @Nullable WebDa
Read more ...
antigen 是 zsh 的插件管理工具,在他 GitHub 主页上的一句话非常形象的解释了他的功能。
Antigen is to zsh, what Vundle is to vim.
2021 年更新
在过去几年的使用里面 antigen 并没有出现多大的问题,但是随着 antigen 以及 zsh 安装的插件过多,导致每一次打开一个新的终端都会变得很慢,所以我在今年早些的时候切换成了 zinit。
安装
curl -L git.io/antigen > antigen.zsh
或者
apt-get install zs
Read more ...
部分内容从 Python 3 网络爬虫开发实战 书 中整理。
Python 模块
主要依赖 Python 模块
requests
BeautifulSoup doc
celery 介绍 实践
PyMySQL doc 或者 MySQL-python doc
SQLAlchemy doc
数据库
MySQL
Redis
抓包
Charles 介绍
MitmProxy 介绍
Fiddler
wireshare 介绍
工具依赖
Selenium 自动化测试框架
Appium 移动
Read more ...
在程序中经常要使用到 Unix timestamp 和日期的转换,通常情况下都是 Google 一个时间戳转换的网页在进行转换,其实 Linux 命令中就有能够快速实现转换的命令。主要都是集中在 date 这个命令。date 命令主要用于显示或设定系统时间和日期。
修改系统的时区
Linux 用来修正系统的时区
sudo dpkg-reconfigure tzdata
选择 Asia > Shanghai
date 常用命令
获取当前的 Unix timestamp
date +%s # 返回 10 位时间戳,%s 表示从 19
Read more ...
我已经用了很长一段时间 Vim 了,但是 Vim 最可贵之处便在于你永远达不到 Vim 的天花板,在使用的过程中我永远会发现操作 Vim 的其他便捷方法。最近看了一个关于 Vim 的讲座 ,革新我对 Vim 命令的认识。可以说掌握这样的一个世界观可以对 Vim 的操作上到另外一个层次。下面就总结一下这个视频中的精髓内容。
Text Objects and motions
@ChrisToomey 定义了一种 Vim Language,Vim 的语法由数词 + 动词 + 名词 组成,比如:
d 删除
w 单词
将两个字母组合起来就是 删除单词
这
Read more ...
一些相关的命令
sudo fdisk -l # 列出磁盘分区表
结果是这样的:
Disk /dev/ram0: 4 MiB, 4194304 bytes, 8192 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk /dev/ram1: 4 MiB, 4194304 byte
Read more ...
什么是跨域或者说什么是CORS(Cross-origin resource sharing),中文叫”跨域资源共享”。在了解 CORS 之前首先要知道“同源策略”,出于安全考虑,浏览器会限制Ajax中发起的跨站请求。比如,使用 XMLHttpRequest 对象发起 HTTP 请求就必须遵守同源策略(same-origin policy),”同源策略“是浏览器安全的基石。具体而言,Web 应用程序能且只能使用 XMLHttpRequest 对象向其加载的源域名发起 HTTP 请求,而不能向任何其它域名发起请求。阮一峰写的一篇关于 CORS 的文章 介绍得
Read more ...
这篇文章用来收集整理爬虫相关的资料。
相关技术
如果只想单纯的自己开发,可以使用 Python + Celery + Redis/MySQL 基本能满足 80% 的需求。
如果想要选用框架 Scrapy,pyspider,等等都是非常不错的选择,我甚至在 GitHub 上看到过 Java 的分布式爬虫。
书籍
Python 3 网络爬虫开发实战
这本书在网上有部分 gitbook,链接在这里
网上公开的部分都是无关痛痒的部分,不过提及的工具倒是可以参考一下。大部分我之前的文章也都有提及
mitmproxy
wireshark
Read more ...
树莓派官网有很多系统可以选择,我选了官方维护的 Raspbian 基于 Debian 的衍生版,主要是熟悉他的 APT 包管理,看评价三方维护的 Snappy Ubuntu Core 换用了其他的 snap 的管理,不是很了解,所以还是选择了 Raspbian。
系统安装
官网提供的教程非常方便, 采用开源的镜像烧录工具 Etcher 非常方便的就可以在三大平台上完成镜像到 SD 的烧录。当然如果熟悉各个平台的工具也可以自己手动完成烧制。
启动系统
在将系统写入 microSD 卡之后,将卡插入树莓派板子,启动树莓派,开机即可,可以用 HDMI
Read more ...
Redis 在设计上,是用来被可信客户端访问的,也就意味着不适合暴露给外部环境非可信客户端访问。
最佳的实践方法是在 Redis 前增加一个访问控制层,用于校验用户请求。
基本配置
Redis 本身提供了一些简单的配置以满足基本的安全控制。
IP 绑定。如果不需要直接对外提供服务,bind 127.0.0.1 就行了,切忌 bind 0.0.0.0
端口设置。修改默认的 6379,一定程度上避免被扫描。
设置密码。Redis 的密码是通过 requirepass 以明文的形式配置在 conf 文件里的,所以要尽可能得长和复杂,降低被破
Read more ...