OCT

12

Sat

Author:EMINARCISSUS

被拍砖8次,接着砸!

嗯,又失踪了3年,这次登陆上来用户名密码试了将近40次才对,我也是够了。。。

当一个人的兴趣转变为职业的时候,这个人将一生走向无趣。

过去的十年,是自己对这句话体验最深刻的十年。

如果你做的事情你并不喜欢,你应该走出你的舒适区,去寻找你喜欢的事情。

当你喜欢的事情能够支撑你的生活的时候,同时你还喜欢继续做下去,恭喜你,你找到了未来。

当然对于大多数人而言,这句话的前半句已经成了句号。而当后半句成为句号的时候,恭喜你,你的存在已经成为了分布的奇异点,任何值得自己去追寻的目标都不会成为遥不可及的梦。

而当你处于夹缝之间,当如何生存?

8年年,自己做的决定是否是正确的?

6年的坚持,未曾见到成果,是否还能坚持?

幸运的是,自己重新找到了新的乐趣,虽然它是不能再普通的乐趣,但却让自己头一次明白了消费是多么虚无的事情。

有了新的乐趣,也许曾经的乐趣,如今的烦恼,也会逐渐支撑着自己找到属于自己的道路吧。当然更大的可能是把自己拖向更深的深渊,直至无法自拔。

说起来这十年,周围一切都在变,而自己却除了老了之外没感觉自己有任何变化。探求心也跟着越来越淡了,不是懂得多了,而是看得多了,麻木了。同时也明白了什么事情往往追究到最后都是不能再简单而过的事情,过多的粉饰都是无知。越这么想就越为自己的懒惰感到惭愧,但却提不起注意力继续深究。

为什么?

开源社区是狠神奇的存在,一切的结果都必然有其缘由,世界是一个未曾被人完全打开的黑箱,而代码则不是。当你有兴趣深究的时候,一切都变得明明白白,毫无遮掩。当你追其极致,读的越多,越失去对生命的兴趣,因为你发现所有一切的语法糖,底层都是如此的简单,这个世界从未有过什么捷径。

为什么突然会想说这些?

这五年最大的变化莫过于深度学习给业界带来的变化。而自己因为入坑较晚,难以从函数推导做起(懒人先拖去阿鲁巴再说),不过基本原理和模型看得多了,也大致明白了运行机理。从最初的设想,到实践后的无奈,到看人们对未来的展望,怎么说呢,我们看到了最不愿意看到的未来,因为人工智能并不智能,但是却能开启最万能的天网。

而伴随着人工智能这些年带来的“奇迹”,我们见证了历史上最大规模的倒车现场。当然乐观一点,这种超大规模倒车现场也不过是满纸荒唐言,当这一切都成了买卖,某上朝人从不担心自己的适应能力。

未来如何?谁会知道,当酒不醉人人自醉的时候,能期待的不外乎是世人的清醒,当我们活在一个全球化大规模大倒车的背景下?醉?还是不醉?

说到底今年真的是让人不爽的一年,当然这当中有其让人不爽的就是Kyoani。当死者无法安息,活着的人拼尽全力为世人奉献更多作品的时候,我们却连最基本的正义都找寻不到,而社会却在为活着的故人增加更多的压力。

愿逝者安息。愿活着的人为世界创造更大的价值。而不是内耗。

 

P.S.:这货到底在瞎扯什么鬼

P.S.S: 没文化的文盲,看着就觉得累

P.S.S.S: 2年没怎么出去长游了,今年这单要是做的顺利的一些的话还是打算出去逛逛,不过可惜WF2020冬是没希望了(摊手

P.S.S.S.S: 未来努力保持更新下去吧,最近越来越觉得开始有一些精力准备去记录一些东西了。

P.S.S.S.S.S:不知道还有多少人还留着Blog,RSS已死,世界已成孤岛。

 

Read more...

OCT

12

Sat

Author:EMINARCISSUS

被拍砖1次,接着砸!

嗯,怎么说呢。

人人都念过去的好。

5年前Dropbox没有同步设备限制。7年前Dropbox随便注册邀请送空间。

5年前Evernote没有同步设备限制,客户端轻量还好用。

5年前Onenote没有同步设备功能,客户端沉重但是也还算好用。

5年前OSX的Note还是个便签,满满的一瓶看着就觉得爽。

无论是否网络存在与否,记事簿,是人类进步的最基础工具之一,找到一款适合记录,适合查询,适合分享的记事簿却反倒成了难题。

在互联网发展最快的时代,我们却走向了贫瘠。

5年后的今天。再回来看这个命题,感觉懒确实成了贫瘠的主要问题。

Evernote重了,这源于Evernote最初就不曾“轻量”,富文本,WYSIWYG编辑方式。便于用户分享就是Evernote的核心价值。最早入场,最早支持多平台,同样最早收费,最早收割。

作为一个“免费”的笔记平台,现在Evernote依然足够有活力。比如用作本地活动的汇总和分享,用于临时的知识共享。等等,都“很好”。

OneNote,依附于MS Cloud,自己没有在用,之前的笔记也已经做了导出,现在自然,也就没有了更多的动力再去纠结。

OSX的note,可能是目前最好的解决方案之一,可惜,web上不太好用。

写一个笔记本应用有多难呢?可以说只要会上手基本的Coding,就能上手。最终无非都是富媒体与Markdown之类的CRUD和渲染而已。

那么现在写一个怎么样?感觉没啥动力。

说来说去也还是矫情。

感觉这些年见到的Subscription应用越来越多了,真正值得这个价值的有几个?

订阅付费到底是不是个好东西?

 

Read more...

OCT

14

Fri

Author:EMINARCISSUS

被拍砖11次,接着砸!

 

4年,当我们还在初中的时候,时间宛如细沙,一天天流程一般地起床,跑步,上课,吃饭,看着天空,调侃着周围,仿佛一切都和自己无关。

4年,当我们跨入大学的一刻,这一天,时间仿佛加了速的马达,一去不复返。

4年,当我们步入社会,时间,仿佛从我们面前失去所有的重量,追,也也追不上。

 

好几次想回来除草,可是无法让自己维持在一个稳定的生物钟上,坚持每天更新。

好几次想回来除草,可是看着曾经的友链,有如自己的通讯录,越来越多的空号,让自己迷茫。

好几次想回来除草,可是看着自己曾经堆得慢慢的草稿,却难以按下提交。

 

如今,或许是时候找回当年写博的乐趣了。

虽然周围一片漆黑,但我依然相信文字的力量。

社会在变,技术在变,曾经的一切都在以我们难以置信的速度变化,而文字和这小小的一间贡于闲言碎语的房间,确能够积累起不曾变化的自我。

 

是时候静下心,去追寻当年迷失的自我了。

 

P.S.:又到了White album的季节了

 

 

Read more...

JAN

12

Thu

Author:EMINARCISSUS

被拍砖43次,接着砸!

 

之前在路由端配置好了2条openvpn的线路外加一条pptp的线路,后来长期运行一个维护脚本在其中某条线路抽掉后自动切换其他线路。这样的设置在多数情况其实都是没有问题的。不过还是会有很小的概率,在vpn被断掉或路由刚刚重启完用户登陆上网后导致dns被污染。于是就考虑构建这样的一个dns代理。

 

于是查了下文档,决定还是用dns via tcp的方式来做。

选用airyai酱的pwx-dns-proxy (嘛,理由是python写的,像偶这种小白出了问题还能简单应付下)

预期如下:

1.平时查询dns完全不走vpn

2.dns_proxy后台出问题后dns查询转走vpn线路(在vpn某条线路抽掉且未切换的这段间隙,用户基本完全上不去网)

3.不用怕污染(至少短期内gfw不会对dns via tcp下手吧)

 

不过在配置过程中还是发现了一些问题:

1.git clone回来以后直接运行没有任何提示直接退出

2.udp协议不支持UDPServer backend factory

 

目标实现:

于是简单调试修改了下log类,得知原来失败的原因是dnsmasq占用53端口导致端口冲突。

于是将dns_proxy做了一些简单修改(包括src/log/__init.py,run.sh,src/dnsproxy.py,data/dnsproxy.py这几个文件)。

配合dnsmasq可以完美解决。

安装配置方法如下:

1.为支持usb device或jffs的设备配置openwrt(没搞过的可以参考这篇文章)

2.安装python和twisted

 

ipkg update
ipkg install python26
ipkg install py26-twisted

 

3.安装好后下载修改过的pwx-dns-proxy,然后将pwx-dns-proxy文件夹放在/opt/目录下即可。如果是用的dualwan固件可以直接开dualwan的ftp服务器,或者用winscp采用scp的方法传入。当然任何你任何习惯的方式都可以。

文件下回来之后可以修改data/dnsproxy.conf下的这2行

add_server("tw","168.95.1.1",53,True)

add_server("isp", "202.99.224.68", 53, False)

我默认采用的dns是中华电信的dns服务器(因为偶的route表里opendns和google dns都会自动走vpn线路,这里可以换成你喜欢的其他非本土dns服务器)

其中第一行的tw的ip可以改成你喜欢的dns服务器的ip

第二行的isp改成你当地isp提供的服务商的isp(实现本土站点cdn加速)

改完后保存传回路由。

在这里偶只给一张dualwan下的ftp配置截图了

4.telnet或ssh进路由(架设路由服务器地址是192.168.0.1)

 

ssh -l root 192.168.0.1

 

5.运行

 

/opt/pwx-dns-proxy/run.sh

 

之后输入netstat -ln后显示如下则说明安装成功。

 

root@unknown:/tmp/home/root# netstat -ln|grep 8081
tcp        0      0 0.0.0.0:8081            0.0.0.0:*               LISTEN      
udp        0      0 0.0.0.0:8081            0.0.0.0:*                 

 

6.配置dnsmasq.custom

这个根据固件的不同方法也不同,在这里偶也只介绍dualwan的配置方式了。

其中/opt/hosts是用来放自定义hosts文件的位置。

7.自启动配置(注意偶这里的路径是/opt/shareroot/pwx-dns-proxy,如果是把文件夹放在/opt目录下的话需要修改成/opt/pwx-dns-proxy,第二行那个ln -s的可以不输入)

最后再感谢下这个组件的开发者airyai@gmail.com,实在是非常neat~

以上

Read more...

DEC

31

Sat

Author:EMINARCISSUS

被拍砖29次,接着砸!

送别学姐,吊唁逝者,“昂起”头颅,迎接新年。猴儿们,上船了~(哎?

We are here ,2012,the time is now!


明けましておめでとう!

于是,祝大家来年先心想签约,日进斗头了(哎?>_<


恩,日常(?结束,于是来除草,总结一下上12月以及这一年的一些碎碎念:

12月见底了,订的恋物语前天也到了,可是开始却发现很难读下去,或许是因为第一视角是自己当时在看花物语的时候最为反感的一个角色吧。不过昨天晚上看完阖书后,却感觉虽然是物语系列最大的一场骗局,却是至今为止最为甜蜜的一本。

 

于是先流水账纪念下这逝去的12月吧。虽然说今年是自己坑爹的一年,不过如果还有2013的话,2012会成为里程碑的一年揭幕并进入次章吧(这一年各种糟糕~算了,反正都是浮云

哎?说道次章,轨迹,偶怎么想起了PSV的说?

PSV11月初交了订金,不过24号发售后卖家却一再延期发货日期(27-1号之间),于是偶退掉了订金,等年后价格稳定后再和着游戏一起入了,实话说看了下玩家的视频,PSV首发的游戏只能给我一种很新鲜的感觉,却依然缺少一个作为剧情主打的Killer App。看着虽然感觉神海是对机能挖掘的最深的一款,不过这也仅仅是机能而已了,从粗旷的大线条到类似古墓丽影一样的操作感并不会让自己对其异常感冒。年后估计会随着一起订上忍道吧,毕竟这也是偶在PS2上最控的一款game之一了。PSV的发展需要大厂商大量进入移植作品,尤其是对于常规RPG游戏,尝试对机能进行挖掘,对开发平台的适应后才能产出高水准的Game,自己也衷心希望PSV能够保证3年内别被破解吧~

然后,就是Falcom 2012 Galgame候选——那由他の軌跡。看来碧轨的坑是不打算填了,嘛,随他去了,照这个进度下去轨迹系列还能再战500年(茶

先废话两句NBA吧:

停摆结束的喜悦还没结束,就见证了5个Mavs的远走,自然,这也是生意,不过历史上也确实没有一支球队能够在核心大换血的情况下成功卫冕,自然,拳王脱走后所下的评论让人感觉很心酸,不过这也是现状。三连败,面对这么compact的缩水赛程,大换血,如今不谈卫冕,只要能争取40胜,进入季后赛或许自己也就满足了。用现今换未来的做法的,想必库班有自己的经营哲学,不过看着Odom披着蓝白战袍的表现,除了叹气,还能做什么呢?想必这时候用兵败如山倒来形容这支老迈的牛仔队也再确切不过了,司机辛苦经营了13年了,夺冠后又面临停摆自然不能指望他在赛季初能够像06-07赛季初那样,特里的发挥依旧锐利,可惜其他的人表现依然不够醒目,无论是因为停摆后的松散也罢,抑或是人员调整后的缺乏默契也罢,目前这支牛仔队看似已经丧失了来往这几年间争夺冠军时的信念,不过看着Delante West的表现和尚能饭否的Carter不服输的暴扣尝试,或许也还能够走一阵看看吧。不管怎么说,这也是这支传统小牛队的最后一年了(理论)。

btw,Go Mavs!

P.S. 虽然今天成功地捏掉了开赛来第一个软柿子,不过odom继续低沉,前景,祝福他吧~

然后说说偶的玩具XMPP的近况:

最近在读Oreilly的Definitive of XMPP,不过很让自己感动的就是居然原书的例子也全是用SleekXMPP实现的,而自己打算写的Bot也全是基于SleekXMPP的,因为自己对Twisted了解不多,有这么一本书铺路想必能让一切轻松不少吧。目前在Project中的包括四个子测试项目,1:基于XMPP的Tag Synchronizing.2:基于XMPP的Web Sticker(仅在计划阶段),3:基于XMPP的围脖论坛杂交项目。4:基于XMPP的Aria2atom(哎?这个不是坑了么,其实没坑,只是东西暂时见不得人而已,如果这个做好了就真能实现Greasemonkey+aria2atom实现自建离线服务器了)目前先把Strophe和SleekXMPP吃透了再说,同时还在学习Bot learning的课程,估计12年自己的大部分业余时间也会投入在这里面吧。 

然后,就是有关我自己的一些无所谓的碎碎念:

恩,11年过去了,总之不能说完全的无为的一年吧,虽然表人格的一些工作今年没有太多进展(准备工作已经差不多了,嘛,本来这种事情也不是单方面能决定的 不过已经不知不觉拖了1年多了),革命尚未成功,群众仍需努力。至于手头这些玩具,确实很残念,一直没有什么动力正式动工,当然这也和前面所说的事情有一些关系就是了,如果未来的一年依然无消息的话,这相信这应该是自己继续奋斗这个项目的最后一年吧(正式启动了当然则另说),Spanish下半年基本没怎么动,RS也扔那好久没练过了,不过已经做好准备重新启程了,anyway, this is just the best project for me start off my career,maybe feeling down for some how,but just keep one thing in mind - to have a little faith,Fight 2012!

 

最后,回归正文——坑爹物语:

翻开书的第一页,第一行,第一句,自己就知道,这本书,要坑爹了。但阖上书的瞬间,回想西尾下的这貌似很大的一盘棋,再次体会到了怪奇系列所谓——“认真你就输了”。

以下开始剧透:

Read more...

DEC

19

Mon

Author:EMINARCISSUS

被拍砖40次,接着砸!

最近时间富裕打算写两个bot,一个twitter <-> XMPP gateway,一个是春菜的Bot扩展,于是在整理xep-0060和PEP的时候,挖出了年初读到Pubsub的时候写的一个project,大体就是类微博形式的论坛:

1:整个论坛以用户为出发点,以XMPP为backend

2:其中每一条发言的本体是一条微博

3:以relation的方式通过XMPP-Proxies的形式发布到主体为Pubsub节点的论坛下并广播给关注某一Topic的主体(用户)

4:每一条微博都以Atom的形式输出并持久化

5:Web从数据库抓取历史条目,前端通过Strophe实现实时交互

6:为保证Low latency,持久化过程和Web发布端均为XMPP的Consumer.

7:全站点皆可实现自由组合多用户聊天室或单点聊天,同时或许可以在以后实现视频或音频多用户交流。

8:或许能够遵从OMB协议(目前对于该协议唯一的障碍就是是否要有字数限制)。

当时因为对XMPP协议还不是很熟悉,于是只是写了这么一个设想。

现在面对当时写的该形式的论坛,仔细想想和现在已有的Twitter并没有太大的区别,不过细微已有的区别如下:

1:Twitter是以Tag的形式实现类论坛的,和现在的贴吧和tora有些相似,每个人都可以建立自己的tag或者参与trending的tag,来实现Topic指向用户间交流。但是这样对于一些指向性的主题而言缺少可控性,不利于搜索所需。

2:Twitter的交流形式和Chatroom(MUC)有些相似,不过缺少XHTML-IM特性,虽然用户可以修改客户端来改进体验,不过客户端的构建是需要大量的时间和精力的.一旦有新系统平台介入很难找到高度对应的客户端。

3:实时完整的XMPP API,可以在任何平台下以任何喜欢的XMPP客户端进行交互。

 

和当前各种论坛框架相比,这种形式的论坛有如下区别:

1:高度实时:对于每一条Topic可以拥有一种实时的聊天的体验(Web端下采用BOSH,XMPP可能在Websocket成熟后采用Websocket,也可以使用XMPP客户端参与讨论)

2:用户指向性:每个用户本身都是一个XMPP用户。

3:可简单的更改或分离特性。(Web,db,xmpp是完全分离的,同时除了xmpp自身以外每个service都以xmpp消费者的形式在网络中存在)

4:是一种类SNS的存在。

 

目前来看,实现这种方案主要的问题是:

1:全局的负载瓶颈在XMPP的负载能力上。虽然Openfire和ejabberd都支持cluster,不过具体承载能力依然未知。

2:每个Service Consumer bot的承载能力,这个问题估计不会太大。

3:XEP部分协议还未敲定,偶目前最关心的就是XEP-253和XEP-254,对于Persistence,本身就不打算通过XMBB Backend来做。

4:论坛的Spam.......这个绝对是个大问题...

 

依然是个雏形,打算先做些小的测试,到时候可能写个beta出来玩玩,看看时间够不够吧...~

Read more...

DEC

13

Tue

Author:EMINARCISSUS

被拍砖10次,接着砸!

又到12月了,于是今年不幸的是到了入冬时节恐怕又要进入忙时了,明年初可能自己的休闲时间会越来越少,于是打算最近抽时间把自己挖下的坑填完(Aria2atom),除此之外还打算把Blog引擎在进行一些优化。

于是接下来就是上周完成的一些任务:

  • Blog引擎修改,包括

    • 去掉了回复Quote,对回复内容进行Escape,Reply采用BB标签。评论内容的格式可以通过Markdown语法来实现。

    • 发布页面增加了Asciidoc格式,解决一些用wysiwyg编辑器容易带来的问题。

    • 增加了多主题插件,目前仅对User-agent作判断返回一个特定的主题,今后可增加用户手动选择主题的选项。

    • 修复了一些bug

  • 嘛,此外的一些笔记

    1. 发现jQuery如果通过edp的方式来写代码的话效率真的会高很多,于是准备时间重构下RazerGallery,单独先把这个发出来吧。

    2. 写jQuery Mobile的Theme的时候,发现lightbox暂时找不到合适的替代品,于是需要手动给标签打上rel=external的属性,否则会提示加载错误。Form强制刷新需要加data-ajax=false的属性,$(document).ready函数要用$(document).live(pagecreate,function(){//your code})来代替

    3. 本想通过OAuth+punjab+strophe实现Gtalk的整合,不过发现GTalk居然不支持Oauth验证,于是这个想法暂时告吹,目前想到的替代方案是或用Confbot,通过OAuth获取用户email后然后采取广播的方式来变相地实现直播功能,当然也可以通过Django的openid-auth来添加用户,而后在Jabber服务器上通过这个用户来作s2s communication,不过显然这个工作量会大很多,暂时不符合我的需求。

  • Ninjakit 进行了一定的修改,修改处包括

    • xmlhttprequest的请求头装载

    • xmlhttprequest的异步标签

    • openInTab支持

    • registerMenuCommand的部分支持(AccelKey目前未支持)

如果对Ninjakit是什么有疑问的话可以参考

Download|下载地址

Patch

让Blog修改之后自己就可以在本地写作然后通过一个脚本进行rpc发布了,让一切都变得简单了不少,等有时间考虑想用obj-j来实现一下admin的webapp,不过还是打算先等NSTextField支持的完备一些再说了。

嗯,大致就是这些了。 总让博客长草也不是这么回事,不过估计一直到明年的三月间自己会一直处于潜水状态吧,想说的话,打出来,想了想,删掉,写了半天快成文了,结果自己都看不下去,总之这样的事情从上个月到现在为止一直来来回回出现了好多次。估计还是心情使然吧,人在浮躁的环境下基本是不可能写出逻辑清晰的文章的。

P.S.:恋物语要出了,12月唯一的期盼~

P.S.S:上了HK首发的PSV,不过订完之后发现连买存储卡的钱都不够了,于是游戏神马的,还是打算看看PSN锁区的情况再说了,大不了直接入Game,我坚信一定会有马甲棒。

P.S.S.S:NBA停摆终于结束了,不出所料拳王走的很干脆,JJB被抄成天价后挖走了。不过世事难料的是趁火打劫来了Odom,看来河童今年又要尴尬了

P.S.S.S.S:接下来的几天补番看书,到明年过年十五前好好作作准备,准备开始圣战了~

P.S.S.S.S.S:这是一篇用asciidoc写的博文,要去好好读读文档了。

Read more...

NOV

6

Sun

Author:EMINARCISSUS

被拍砖247次,接着砸!

时代变化真快,Netscape->IE->Firefox & Opera -> Safari & Chrome,依然记得自己拥有的第一台Toshiba笔记本电脑,从拿到电脑开始到自己背着自己的电脑远赴日不落帝国见学之间的大半年,开机无非Red alert,Starcraft,以及各种国产RPG。无论如何,这时的自己却从来未考虑过是否有工具可以通过这样的一个盒子来交流,也从来没有考虑过用这样的一个盒子来传达自己的想法,亦或接受时代的潮流。直到自己来到日不落的第一天,电脑课,老师教我们打开了第一个网站Google,试着用拼音拼出了zhong guo,我来到了当时自己上得最多的一个站点——Sina,随着自己点开Sina的一刻,我明白了,自己该要启程了。(大雾,被拖走

跑题了。先简单解释一下什么是Userscript:

页面执行的一些功能,多数是通过Javascript和Flash来实现的。Userscript则是用户端所执行的功能函数。

所以最简单地说什么是Userscript:

我觉得这个网站设计的很不爽,我要让其人性化一些。

于是,就有了各种tweet站点功能的脚本。其中Userscript则是用户脚本的一个集中托管站点,浏览器插件所能实现的大多数功能其实多数也可以通过油猴脚本实现。而且通过油猴实现有一个很大的优点,就是不用过分介意浏览器的升级,并且拥有一定的可移植的可能。当然也有很大的局限性,其中包括但不限于Tab管理,ContextMenu Change等等。不过不管怎么说,通过Userscript,我们可以实现很多站点默认不能实现或者不愿意实现的功能来简化我们日常的操作。

当然,Userscript的实现方式的区别也带来了这样的些缺点——不同浏览器之间对GM函数的支持有所不同。

于是,这里仅就最单纯的东西进行一些介绍好了。

首先

Firefox:

1:Greasemonkey

Firefox应该是最早应用userscript的浏览器了(个人所知),其中Greasemonkey更是创造了userscript开发的奇迹,其强大的功能以及逐渐优化到如今所有的沙箱化操作都称为了如今开发userscrip支持插件的标准

2 : Scriptish

这个我也没用过,不过因为增加了Update和很多便于开发者利用的API,而Greasemonkey也因为趋于稳定长时间未更新,所以愿意尝新的童鞋的可以用这个来代替Greasemonkey(也有点比较奇葩的bug)

 

安装方法:

打开Firefox

工具(Tools)->插件管理(Add-ons)->获取插件(Get-Addons)->上面搜索栏输入Greasemonkey或Scriptish->Install

然后在这里搜索Greasemonkey或者scriptish就可以了,安装Install后可以下载user.js用户脚本后拖入浏览器则可自动安装。

Chrome:

Chrome可以说在Userscript上确实是度过了一段比较坑爹的时期,主要原因就是Google这家“不作恶”的公司在做很多用户产品的时候都做了一些很坑爹的不合理的设定,比如Userscript。

从Chrome刚出的时候就听说Chrome原生支持Userscript,当时听说了这个消息还很兴奋,当用的第一天就发现,自己着着实实被套牢了。无沙箱支持,无跨域请求支持,于是留下的,就是一具空壳...

后面陆续作出的插件就解决了这些问题。包括(Blank Canvas Script Handler,Tampermonkey,Ninjakit)

这里只介绍和推荐Tampermonkey(其他的我没用过不熟)。

主要原因就是Tampermonkey的现任维护者就是Greasemonkey的开发者,虽然在兼容性还存在一定问题(机制上的问题),不过多数情况都可以通过比较简单的Tweak来实现兼容的。

安装方法:

打开Chrome->打开地址->左侧地址栏输入Tampermonkey->点击Install

 

Opera:

Opera是除了Chrome以外另外一个让人感觉很坑爹的浏览器,和Chrome一样,原生支持userscript,可惜直到现在,都没有找到Opera的userscript实现沙箱的方法,不过却在Opera 9升级后通过对userscript的执行机制的修改实现了跨域的可能。虽然如此,Opera还是一定程度上能够兼容多数GM脚本的,不过部分GM函数和Meta则无法支持,会带来一定的兼容性问题。

安装方法:

打开Opera后点击设置(Preference)

然后如图设置:

 

点击Javascript Options(Javascript选项)后,在Userscript Folder那里输入你存放用户脚本的实际目录(比如D:\Opera\USERJS),目录存放位置可以随意定义。初步设置完成。

这里需要解决跨域和HTTPS下USERJS的使用问题:

在地址栏输入about:config里修改如下项目:

修改JS Storage的空间上限,实现跨域需要。

HTTPS页面也使用UERSCRIPT

当然实现GM函数和跨域需要下载一些前置脚本来实现,这里放上自己的,如果对偶不信任的童鞋可以爬帖自炊,这里提供一份mediafire的自己用的前置脚本的分流。

a.对偶信任的可以直接下回来解压后扔进自己的userscript脚本目录

GM函数以及跨域实现

b.不信任的童鞋

GM_emulation脚本以及跨域请求脚本请参阅:

http://userscripts.org/scripts/show/88932

便于寻找留一份原作者分流

下载回来之后放进Opera的Userscript文件夹里,同时将http://userscripts.org/scripts/show/88932拉回来的脚本改名为aab-greasemonkey-emulation.user.js
初始工作完成
之后下载http://userscripts.org/scripts/review/109306

准备工作完成。

 

P.S.Userjs在Opera上的运行慢的很....可能页面出来要5-10s才能加载完成,所以调试的时候经常是否出错了自己都不知道。


Safari

Safari上的Userscript发展史也异常纠结,在Safari支持插件之前只能通过SIMBL和GreaseKit实现,虽然可以解决一些问题,不过跨域和沙箱的问题一直都没有得到解决。直到Extension的出现,Safari才出现了一个像样的插件,即——Ninjakit。安转前需开启Extension支持。

开启Extension

需要安装的童鞋可以直接去作者的官方页面下载,下载地址,不过自己却不推荐直接用作者的这个版本,因为里面跨域请求的代码部分有一些小问题,自己做的一些小fix,已经提交了作者但是还未回应,于是如果信任偶的童鞋可以直接用偶自己打包好的版本。

JS分流

Mirror

当然,不信任的童鞋暂时偶也没什么好办法,只能等原作者更新了。偶修改的部分:

1:GM_xmlhttprequest的请求头未装载

2:GM_xmlhttprequest非async请求,无法追踪status。

3: unsafeWindow支持

而且因为Safari的Extension的执行是完全沙箱化的,所以,暂时没找到办法访问unsafeWindow,这个应该会有其他的trick能够解决,所以在兼容性上是会有一定问题的。不过多数脚本试验后还是可以正常运行的。

 

IE等其他浏览器:

这一点只能暂时说抱歉了,早期的IE5和IE6还是有GM支持的,非常局限的一些功能,如今的IE因为一些众所周知的原因逐渐被众开发者所抛弃,这里只能期待从IE9开始逐渐开始非主流的微软能够重新振奋一下开发者,为开发者提供一个相对Identical的平台来实现作业了。

至于如360浏览器,世界窗浏览器之类的,我不熟悉,或许有其他达人有使用经验的,欢迎提议拍砖,自己也会陆续更新。

userscript.org上脚本安装方法:

支持的浏览器在安装完各自的GM插件后,进入想下载的userscript托管页面,然后点击Install即可。如ThunderAssistant

 

Read more...

1 2 3 4 5 6 Next>>