完全屬於我自己的Blog,運行在我的路由器H218N上.記錄著我想記錄的文字.

03月 05

在RARBG上为电影添加上豆瓣信息

自从发现BT种子/磁力链接 -> 迅雷离线下载 -> Aria2这个快速下载资源的方式后,逐步的冷落的我的几个PT账号了。

发现RARBG这个神奇的站点后更是如此,但是全英文网站用的还是有点别扭,特别是电源简介都是因为的,一点都不接地气,因此,写了个userscript脚本,“本地化”一下~

Chrome装上tampermonkey后,打开这个地址即可安装使用。

功能

RARBG电影列表页中,存在 IMDB 信息时

  • 为该影片添加豆瓣按钮并显示其在豆瓣的信息.
  • 将 IMDB 评分高于6.0的高亮标出,将近3年的影片年份高亮标出.

妈妈再也不用担心找不到最近的好片了!

效果

补充说明

豆瓣的图片服务器做了防盗链了,安装 Referer Control 扩展,并按照下图设置即可解决(重点已用红框标出).

Web Store 打不开的可以下载 这个从Web Store抠下来的crx, 并手动安装

设置说明

06月 09

记 Windows 7 不能进入睡眠状态的原因及解决

受到家里黑苹果使用习惯的影响,用完电脑后不是选择关机,而是选择了睡眠,毕竟免除了每次开机关机的等待时间,心理上还是很爽的。
自从给我的E520加了固态硬盘,把这习惯也带过来Windows 7了。家里有黑苹果,宿舍有黑苹果,这笔记本放在公司也不用背着来回跑了,上班掀开屏幕,下班盖下屏幕,拔掉交流电,走人,多么潇洒!
可最近发现,每次早上回到公司,发现电池电量都剩余不多,我平时可都是插着交流电用的啊,不可能电池这么快就用完,于是开始了漫长的实验之旅...

  • 先是充满电后只用电池,看使用时长...
  • 各种电源计划调整...

最终发现,原来是系统根本没有进入睡眠状态!!什么原因呢?我没有禁止睡眠的软件啊,那只能按照debug的方法来搞了。
第一步当然是看日志,把之前的日志清空后,重新触发系统睡眠,果然屏幕闪了一下,又回到登录界面了。查看系统日志,真凶出现了,竟然是一个打印机!?
Windows 7睡眠失败日志
可我没有装个打印机驱动啊,不管3721,卸了再说!果然,系统能正常睡眠了!
好景不长,才没过几个小时,发现睡眠有抽风了。。。一看日志,这打印机又冒出来了!!!
你牛,惹不起还躲不起?我不删你,我禁用你!嘿嘿!果然,系统睡眠就没再出问题了~
禁用打印设备
总结下,这事应该是我电脑连上公司网络后,“发现网络打印机”的功能自动启动了,并且会悄悄装上驱动,却因为驱动或者打印机的问题,老是阻止系统进入睡眠状态,导致了这诡异事件的发生。。。

04月 27

用dnsforwarder排除DNS污染,加速Android源码下载

起源是要在android上运行sshfs,在Google Play 上有一个现成的,但是是收费软件,在国内买不了,虽然有各种途径可以买到,但是本着不折腾会死精神,在找到了这个项目android_external_sshfs,但是要有编译过cyanogenmod的环境才能编译出来.

然后就先折腾 cyanogenmod 编译吧.不搞不知道,一搞才发现掉大坑里了.新建了个Ubuntu 12.04虚拟机,在这里面搞,编译可以暂停了嘛(虚拟机休眠啊,快照什么的)~

按照Android的的文档搞好了准备环境,用 repo sync -j40 开始下载源码了.可以这下载速度啊...我是12M的宽带,40个并发啊,怎么速度只有几个KB/s啊.不带这样欺负新手的啊!!!!看来是伟大的墙又在发热发亮了.本来以为用goagent就能搞定了遂

export http_proxy="http://192.168.1.161:8087"
export https_proxy="http://192.168.1.161:8087"

可是没用啊,速度一点都没用提高...看来goagent不是万能的.

想起前段时间搞路由器自动翻*墙是用到的DNS解析软件dnsforwarder提供了强大的郁闷解析服务.
遂在虚拟机里

$ git clone https://github.com/holmium/dnsforwarder.git
$ cd dnsforwarder
$ ./configure
$ make -j4

configure没通过,装上各种dev库,
最后就报错了

dnsforwarder/missing: line 81: aclocal-1.14: command not found
WARNING: 'aclocal-1.14' is missing on your system.
         You should only need it if you modified 'acinclude.m4' or
         'configure.ac' or m4 files included by 'configure.ac'.
         The 'aclocal' program is part of the GNU Automake package:
         <http://www.gnu.org/software/automake>
         It also requires GNU Autoconf, GNU m4 and Perl in order to run:
         <http://www.gnu.org/software/autoconf>
         <http://www.gnu.org/software/m4/>
         <http://www.perl.org/>
make: *** [aclocal.m4] Error 127

貌似是autoconf的问题,直觉告诉这种库的错误不好搞.搞不好就把系统的库弄挂了.
转战到虚拟机的宿主,Mac OS X编译.
configure没问题,可能是缺了些什么库,编译的时候有问题了.
祭出Homebrew,不想搞乱整个系统的PATH变量

阅读全文 >>

04月 11

ezdl.it 的一键添加到ARIA2功能加强版

ezdl.it是神马就不介绍了.以前有个自定义函数的功能,通过它可以一键添加下载任务到aria2下载器.
后来可能有这个需求的人多了,就直接把一键添加下载任务的功能做出一个固定函数.但是需要用cookie保存一个rpc地址.
但是对于我这种下载小文件要下载到本机电脑,周一到周五下载电影,美剧要下载到宿舍路由器.周末下载电影要下载到家里路由器的人来说,每次下载前都要去设置一下rpc地址,那太麻烦了,就在那几个rpc地址之间换来换去.

本来想让博主加强一下那个一键添加下载任务功能的,但是想了想,人家都无偿提供服务了,还诸多要求就不太好了嘛.
这不是有自定义函数功能嚒,自己动手,丰衣足食~就有了下面这段代码了.

function to_custom(taskname, links, cookie) {
  $('#container').remove();
  LE.download(function(taskname, links, cookie) {
    var s = $(''),
    default_rpc = {
      '127.0.0.1': '127.0.0.1'
    },
    container = $('
'), setting_right = $('
'), rpc = localStorage.rpc || JSON.stringify(default_rpc); rpc = JSON.parse(rpc); $.each(rpc, function(index, item) { var opt = $("").text(index).val(item); s.append(opt); }); setting_right.append(s).append('
'); container.append('
添加到哪个下载器
').append(setting_right).prependTo('body'); $('body').data('taskname', taskname).data('links', links).data('cookie', cookie).data('rpc', rpc); $('#do_send').bind('click', function() { var cookie = $('body').data('cookie'), taskname = $('body').data('taskname'), links = $('body').data('links'), rpc = $('body').data('rpc'), path = $('#manualrpc').val() || $('#rpc_adr').val(), aria2 = new ARIA2('http://' + path + ':6800/jsonrpc'); rpc[path] = path; localStorage.rpc = JSON.stringify(rpc); $.each(links, function(i, n) { aria2.addUri(n.url, { out: n.title, header: 'Cookie: ' + cookie }); }); $("#tip-box").css("left", "48%").html("导出完成").show(0).delay(3000).hide(0); }); }); var str = '即将添加以下任务到下载器' + "\n"; str += "任务名 = " + taskname + "\n"; str += "包含以下文件\n"; str += "==========================\n"; $.each(links, function(i, n) { str += n.title + "\n"; }); return str; }

一是没有美工底子,二是这么简单的东西,能(neng)正(tou)常(lan)使(jiu)用(tou)就(lan)行(le).
点击自定义函数后可以从下拉框选择地址,也可以把地址填入文本框,填入文本框的会自动记录下来,下次在下列框出现.
ps.ezdl.it 还在用1.4.3版的jQuery....

05月 10

基于复制的MySQL高可用技术

双Master

双Master是非常常用的高可用拓扑结构。两个Master互相复制数据以保持同步,因为是对称的,所以设置起来非常简单。而双主架构又可细分为Active-Passive模式和Active- Active模式。它们都常常搭配共享存储使用,或者低成本的DRBD技术,可以理解为“网络的RAID”实现。

双主Active-Passive架构

Active-Passive模式的拓扑架构示意图如下:

Active- Passive模式

两台Master彼此互为镜像,并且binlog二进制文件存储在共享磁盘之上。这意味着主Master到备Master的切换速度很快,而且Slave也不需要将binlog的文件和位置进行调整,唯一需要做的便这是CHANGE MASTER了。
在Active-Passive模式的双主架构中,最需要注意的便是脑裂(split-brain syndrome)问题了。造成脑裂很有可能是主Master发生故障进入修复期,此时备Master接管服务。不幸的是心跳线或监听服务也发生了故障,那么当主Master完成修复回来时,备Master无法洞悉这一情况,那么将出现两个Master同时运行,那么很有可能出现数据更新的冲突,导致Slave复制出现脏数据。因此,将竭尽全力避免脑裂的发生。值得庆幸的是DRBD内置已经以优雅的方式解决了脑裂split-brain syndrome问题,而共享存储则依赖于该产品自身的处理方式。

阅读全文 >>