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

2014年4月

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....