AdBlockPlus parser,匹配和透明的HTTP/ HTTPS代理
$ abpcheck easylist.txt
打印不能由 adblock package 进行解析的任何规则。
adblock:实现解析器和匹配的 AdBlockPlus 规则。
adstop:广告拦截透明的 HTTP/ HTTPS 代理。
它被设计为低功耗,低内存的 ARM 设备上运行,和服务几个客户,大多是老的智能手机不能运行广告拦截器本身。
使用前,必须配置您的设备和网络,使之作为一个透明代理访问。实现这一目标的方法之一是安装在服务器端VPN,而且所有HTTP/ HTTPS 流量重定向到与路由规则的代理。然后,让通过 VPN 客户端浏览。
HTTPS 过滤要求代理拦截设备流量和解密。为实现这一点,你必须生成一个证书,并将其添加到您的设备。
您还需要生成一个证书
$ adstop -http localhost:1080 \ -https localhost:1081 \ -cache .adstop \ -max-age 24h \ -ca-cert /path/to/ca.cert \ -ca-key /path/to/ca.key \ https://easylist-downloads.adblockplus.org/easylist.txt \ some_local_list.txt
启动代理并使它监听 HTTP 端口 1080,HTTPS 端口 1081,获取并从 easylist 和本地文件,缓存 easylist 在 .adstop/ 目录下加载规则和每24小时刷新规则。
安装:
cd =/opt
git clone https://github.com/pmezard/adblock
export GOPATH=/opt/adblock/adstop
cd $GOPATH
go get
go build
目录下已经生成adstop应用程序
关于生成abpcheck步骤不再说明,参考上面的步骤,并重新更改GOPATH。
记录一个大坑,在edge上排了一上午错。都没排出来,后来在google居然可以使用。我很不理解。后来发现是因为我在edge上安装了AdBlock广告拦截器。禁用后就可以了。淦!
Go! 是一个 PHP 5.4 库,让 PHP 支持 AOP 面向方面编程方法,无需 PECL 扩展、Runkit、evals 或者 DI 容器支持。可使用 XDebug 轻松调试。 示例代码: // Aspect/MonitorAspect.phpnamespace Aspect;use Go\Aop\Aspect;use Go\Aop\Intercept\FieldAccess;use Go\
命令go vet是一个用于检查Go语言源码中静态错误的简单工具。与大多数Go命令一样,go vet命令可以接受-n标记和-x标记。-n标记用于只打印流程中执行的命令而不真正执行它们。-n标记也用于打印流程中执行的命令,但不会取消这些命令的执行。示例如下: hc@ubt:~$ go vet -n pkgtool /usr/local/go/pkg/tool/linux_386/vet golang/
命令go fix会把指定代码包的所有Go语言源码文件中的旧版本代码修正为新版本的代码。这里所说的版本即Go语言的版本。代码包的所有Go语言源码文件不包括其子代码包(如果有的话)中的文件。修正操作包括把对旧程序调用的代码更换为对新程序调用的代码、把旧的语法更换为新的语法,等等。 这个工具其实非常有用。在编程语言的升级和演进的过程中,难免会对过时的和不够优秀的语法及标准库进行改进。这样的改进对于编程语
Pact Go的版本目前支持Pact v2规范,访问网站开始学习。 Go-Kit例子 Pact Go代码库中有一个详细的Go Kit 例子,介绍如何使用Pact去测试Go Kit微服务。 原生Go实现 还有一个Go版本的Pact(兼容pact v1.1),不需要运行一个守护进程。如果你不需要v2+的匹配以及运行守护进程,可以考虑使用或者为Pact Go贡献。
Panic表示的意思就是有些意想不到的错误发生了。通常我们用来表示程序正常运行过程中不应该出现的,或者我们没有处理好的错误。 package main import "os" func main() { // 我们使用panic来检查预期不到的错误 panic("a problem") // Panic的通常使用方法就是如果一个函数 // 返回一个我们不知道怎么处理
使用os.Exit可以给定一个状态,然后立刻退出程序运行。 package main import "fmt" import "os" func main() { // 当使用`os.Exit`的时候defer操作不会被运行, // 所以这里的``fmt.Println`将不会被调用 defer fmt.Println("!") // 退出程序并设置退出状态值