0%

1. github DMCA takedown

前两天, 发现blog突然无法提交了. 去邮箱里看github发的邮件才知道有一篇博文涉及到jetbrains版权问题, 让24小时内处理, 后来完美错过了时间. 就直接被takedown了.

2. 折腾过程

takedown后一脸懵逼, 在网上查询的解决方案基本都是给github发邮件, 请求删除仓库或者再给一次宽限24小时的处理时间.

于是我试着发了一封邮件, 没想到10天后才得到回复 (这效率~). 回复的时间还在十一假期内, 虽然又给我了24小时处理, 又被我完美错过了.(!!!!!一定要定期查看邮件)

阅读全文 »

1. 同一台电脑有2个github账号?

  • 首先要为每个帐号生成公钥私钥对, 并且设置到 github 里, 参考

  • 修改 ~/.ssh/config, 设置如下

1
2
3
4
5
6
7
8
Host unix2dos
HostName github.com
IdentityFile ~/.ssh/github-unix2dos
User unix2dos
Host levonfly
HostName github.com
IdentityFile ~/.ssh/github-levonfly
User levonfly

测试:

1
2
ssh -T git@unix2dos
ssh -T git@levonfly
阅读全文 »

Session是服务器端使用的一种记录客户端状态的机制,Session在用户第一次访问服务器的时候自动创建。客户端只保存sessionid到cookie中,而不会保存session,关掉浏览器并不会关闭session。

阅读全文 »

Cookie 是在 HTTP 协议下,由 Web 服务器保存在用户浏览器(客户端)上的小文本文件,它可以包含有关用户的信息。无论何时用户链接到服务器,Web 站点都可以访问 Cookie 信息。

Cookie实际上是一小段的文本信息。客户端请求服务器,如果服务器需要记录该用户状态,就使用response向客户端浏览器颁发一个Cookie。客户端浏览器会把Cookie保存起来。当浏览器再请求该网站时,浏览器把请求的网址连同该Cookie一同提交给服务器。服务器检查该Cookie,以此来辨认用户状态。服务器还可以根据需要修改Cookie的内容。

阅读全文 »

0. 前言

Selenium 的初衷是打造一款优秀的自动化测试工具,但是慢慢的人们就发现,Selenium 的自动化用来做爬虫正合适。我们知道,传统的爬虫通过直接模拟 HTTP 请求来爬取站点信息,由于这种方式和浏览器访问差异比较明显,很多站点都采取了一些反爬的手段,而 Selenium 是通过模拟浏览器来爬取信息,其行为和用户几乎一样,反爬策略也很难区分出请求到底是来自 Selenium 还是真实用户。

通过 Selenium 来做爬虫,不用去分析每个请求的具体参数,比起传统的爬虫开发起来更容易。Selenium 爬虫唯一的不足是慢,如果你对爬虫的速度没有要求,那使用 Selenium 是个非常不错的选择。

阅读全文 »

1. 常用软件

1.1 健康类

  • autosleep 睡眠。 25元买断终身,可以和heartwatch一起购买,一共50元。

  • heart watch / heart analyzer 心率分析。

  • keep 跑步。

阅读全文 »

0. 前言

Viper(毒蛇)是一个方便Go语言应用程序处理配置信息的库。它可以处理多种格式的配置。它支持的特性:

  • 设置默认值
  • 从JSON,TOML,YAML,HCL和Java属性配置文件中读取
  • 实时观看和重新读取配置文件(可选)
  • 从环境变量中读取
  • 从远程配置系统(etcd或Consul)读取,并观察变化
  • 从命令行标志读取
  • 从缓冲区读取
  • 设置显式值
阅读全文 »

0. 前言

Cobra(眼镜蛇)是一个库,其提供简单的接口来创建强大现代的CLI接口,类似于git或者go工具。同时,它也是一个应用,用来生成个人应用框架,从而开发以Cobra为基础的应用。Docker源码中使用了Cobra。

Cobra基于三个基本概念commands,argumentsflags。其中commands代表行为,arguments代表数值,flags代表对行为的改变。

基本模型如下:

1
2
3
4
5
6
7
APPNAME COMMAND ARG --FLAG

# hugo是cmmands server是commands,port是flag
hugo server --port=1313

# clone是commands,URL是arguments,brae是flags
git clone URL --bare
阅读全文 »

1. 网络接口介绍

1.1 网络接口的命名

网络接口并不存在一定的命名规范,但网络接口名字的定义一般都是要有意义的。例如:

  • eth0: ethernet的简写,一般用于以太网接口。

  • wifi0:wifi是无线局域网,因此wifi0一般指无线网络接口。

  • ath0: Atheros的简写,一般指Atheros芯片所包含的无线网络接口。

  • lo: local的简写,一般指本地环回接口。

阅读全文 »

0. 前言

Chrome59(linux、macos)、 Chrome60(windows)之后,Chrome自带headless(无界面)模式很方便做自动化测试或者爬虫。但是如何和headless模式的Chrome交互则是一个问题。通过启动Chrome时的命令行参数仅能实现简易的启动时初始化操作。Selenium、Webdriver等是一种解决方案,但是往往依赖众多,不够扁平。

puppeteer是谷歌官方出品的一个通过DevTools协议控制headless Chrome的Node库。可以通过puppeteer的提供的api直接控制Chrome模拟大部分用户操作来进行UI Test或者作为爬虫访问页面来收集数据。

pyperteer是puppeteer的Python实现,相比于selenium具有异步加载、速度快、具备有界面/无界面模式、伪装性更强不易被识别为机器人同时可以伪装手机平板等终端;但是也有一些缺点,如接口不易理解、语义晦涩;

阅读全文 »