WAYJAM

2018-07-14

无可奈何的页面增强方案

我是这样做的:找到切入点,使这个程序加载一个外部的_JavaScript_脚本,通过脚本去修改页面的DOM,数据来源是页面上的DOM结构以及藏在window对象下的的信息。当然了,单纯地改变页面并不足以满足需求,还要通过各式各样的API(包括这个Web程序的,或者我们自己开发的后端)去获取数据、去触发钩子操作。

仔细分析,这样的操作就是userscript,greasyfork.org上有大量这样的脚本,唯一不同的只是脚本的位置,我将这样的操作叫做:运行在服务端的UserScript。

......

2018-07-04

LogStash的调试

在用LogStash做日志处理的时候,几乎都需要进行许多的调试,主要是针对Filter。而LogStash是运行在Jvm上,意味着每一次的启动都需要耗费大量的时间,许多教程文章都说推荐使用stdin/stdout,从 command line 输入,然后将输出打印到控制台来输出。LogStash也提供了配置文件重载功能,期望场景是:从命令行输入,然后观察输出是否符合预期,如不符合则修改DSL的配置,然后再重复前步骤。但问题是,stdin方式不支持配置重载。

于是,我抛弃了stdin的调试......

2018-07-02

GitLab Shell如何通过SSH工作

GitLab访问Git仓库

首先回顾GitLab的Git仓库四种访问方式:

git pull over http -> gitlab-rails (Authorization) -> accept or decline -> execute git command

git push over http -> gitlab-rails (git command is not executed yet) -> execute git command ->......

2018-06-27

Python打开类

Ruby可以直接打开一个已定义的类(模块),打开与定义与其他语句没有本质区别,第二次使用class关键字之后,之后的语句就是进入这个类的封闭作用域内进行一些操作。

在Python中,类只允许一次有效定义,每使用一次class关键字,都作为一个独立的定义类操作。

在Python里面,需要定义或修改方法、属性不需要专门的“打开”,在专门的作用域里面操作。

def hi():

return 'hi'

class Klass:

pass

Klass.attr1 = ......

2018-06-10

荒原

前几天把域名又续费了一年,算算有博客已经许多年了,可能我这里应该要有一些什么感慨,但是我想不出有什么可以感慨的。

时间真是个可怕的东西,博客也好,其他的什么事物也好,消亡或者破落都可能只是生命中的一部分。有时候遗忘是一个好选择,有时候留下是一个好选择。留下的是什么,遗忘的又是什么呢?其实最后,发现最初坚持留下的东西可能就是一个瘤,腐烂在生活。

朝花仍未拾起,夕花早已如泥。