Oct 23

Don't Track Me Google 不指定

felix021 @ 2012-10-23 19:16 [IT » 网络] 评论(4) , 引用(0) , 阅读(9323) | Via 本站原创
用Google的第一大烦恼是随时被墙。

番羽土啬吧。

用Google的第二大烦恼是,点击的链接总要过一道Google的统计。比如搜索test,第一条是www.test.com,但是点击的时候,打开的页面是

http://www.google.com.hk/url?sa=t&rct=j&q=&esrc=s&frm=1&source=web&cd=1&ved=0CCoQFjAA&url=http%3A%2F%2Fwww.test.com%2F&ei=LHuGUMSUDKf-iAeg7YCAAg&usg=AFQjCNH21KLjC0CBkjon2DwD_CZ0HApLMw

经常发生的事情是,一直卡在这个链接上,不管是否番羽土啬,反正总是跳不过去;而大部分情况下,目标网页不需要番羽土啬也是可以顺利打开的。

至于Google呢,他才不管你是不是总卡死在这个链接,反正他们要的是你这次点击的数据。

这个问题,可以借助一个叫"Don't Track Me Google"的grease monkey脚本来实现:

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

对于Firefox,需要安装Grease Monkey插件,而Chrome用户则方便了,直接可以作为插件使用。

页面右上方有个不起眼的 Install 按钮,点一下,会下载一个 xxxx.user.js ,旧版本的chrome就直接当插件安装上去了,新版本的会提示你,不能这么安装非官方来源的插件。解决方法是:打开扩展管理页面,把这个 js 文件拖进去,会问你是否要安装,点击“添加”,done。
Oct 19

vim内提权保存文件内容 不指定

felix021 @ 2012-10-19 11:16 [IT » 软件] 评论(0) , 引用(0) , 阅读(6482) | Via 本站原创
经常是用vim打开了某个/etc下的文件,使用 :w 保存的时候提示 "E45: 'readonly' option is set (add ! to override)",而 :w! 则提示 "E212: Can't open file for writing"。通常的解决方案是 :q! 然后 sudo !! 再次编辑,然后保存。

虽然挺麻烦,但是一直也就将就用了。今天有人在SegmentFault.com提出了这个问题,于是仔细考虑了下,的确还是有办法实现的:
引用
:%!sudo bash -c "cat > '%'"          #为了防止文件名中的空格之类特殊字符,最好在后一个%前后加上引号
:w !sudo tee %    #另一个回答给出的这个方法更简洁,出自 http://vim.wikia.com/wiki/Su-write

其实最初的想法是 :%!sudo cat > % ,但是由于权限的问题(vim打开的shell没法清空当前文件),所以还是得请shell进来掺和一脚:先用sudo给shell提权,然后shell再执行cat将stdin的内容输出到%。

p.s. 顺便给不了解 :%! 这个含义的同学普及一下, :!xxx 是执行 xxx 命令, :%!xxx 则是把当前缓冲区的所有内容当成 stdin 去执行 xxx 命令,然后将xxx的stdout再替换当前缓冲区的内容。比较常见的用法是 :%!sort 给文件所有的行排序,然后 :%!uniq 去重。另外%可以用范围来代替(同 :s 命令的范围)。
Sep 26

12306刷存在感@chrome 不指定

felix021 @ 2012-9-26 10:25 [IT » 网络] 评论(1) , 引用(0) , 阅读(7471) | Via 本站原创
尽管 https://dynamic.12306.cn/otsweb 的 jsessionid 有效期是一年,但是如果不几分钟发个请求的话,照样会被T出来。

所以写了这么个小代码,可以每隔一段时间自动“点”一下重新查询按钮。

=== update @ 16:40 ===
其实简单一点,按下F12,在console里面执行这个就行了...

var f=document.getElementById('main'); var btn=f.contentDocument.getElementById('submitQuery'); setInterval("btn.click()", 30000);



=== OLD ===

所以写了这么个小代码,可以每隔一段时间自动“点”一下重新查询按钮。

<div>
<textarea id="code">
var x=setInterval("document.getElementById('submitQuery').click();", 30000);alert(x);
</textarea>
<input type="button" value="run" onclick="javascript:try{eval(document.getElementById('code').value);}catch(e){alert(e);}"/>
</div>


用法:在chrome下打开订票页面,按F12,在框架内找个地方把这段代码扔进去,确定,然后在页面上点击多出来Run按钮,这样就会被个30s自动“点击”一次 [重新查询] 按钮。


Sep 23

EOSCard 1.2 不指定

felix021 @ 2012-9-23 11:20 [IT » 软件] 评论(1) , 引用(0) , 阅读(10330) | Via 本站原创
这货太TM难找了!年初找过一回,到处都没有,今天总算找到一个,这里存个档。

DOWNLOAD:
下载文件 (已下载 2069 次)
Sep 3
#!/bin/bash

API=https://dnsapi.cn/Record.Ddns

IP_FILE=/tmp/dnspod_ip

function get_old_ip()
{
    ip=
    if [ -e "$IP_FILE" ]; then
        ip=`cat $IP_FILE`
    fi
    echo $ip
}

function save_ip()
{
    echo -n $1 > $IP_FILE
}

function get_new_ip()
{
    echo `nc ns1.dnspod.net 6666`
}

email=帐号邮箱
password=帐号密码  #dnspod就不能搞成个secret_key么!明文密码让人很不舒服啊。

domain_id=XXXXX #使用Domain.List API获取
record_id=YYYYY #使用Record.List API获取
sub_domain="zzz" #DDNS的二级域名

new_ip=`get_new_ip`
old_ip=`get_old_ip`

if [ "$new_ip" != "$old_ip" ];
then
    curl $API -d "format=json&login_email=$email&login_password=$password&domain_id=$domain_id&record_id=$record_id&sub_domain=$sub_domain&record_line=默认"
    save_ip $new_ip
fi

然后加入crontab,每隔15分钟跑一次进行更新

*/15 * * * * ~/bin/dnspod.sh
Aug 24
:set formatoptions+=m    "允许对multi_byte字符换行(否则默认只能空格或者英文标点,详见set breakat=
:set textwidth=80    "换行的长度
ggVG  "选中全文
gq "应用到选中文本

p.s. 最后两句也可以缩写成 gggpG (少一个字符)..
Aug 22

windows下的批量重命名 不指定

felix021 @ 2012-8-22 22:23 [IT » 其他] 评论(2) , 引用(0) , 阅读(7567) | Via 本站原创
可能很多同学不知道Windows是自带这个功能的。至少从WinXP开始就有。操作要领:

0. 批量重命名的文件应该在一个文件夹内。

1. 选择所有需要被重命名的文件。全选(CTRL+A),或拖动/用shift选择选择一个区间,或按住CTRL一个一个点,都可以。

2. 使用鼠标右键选择你希望被重命名的第一个文件,输入新的文件名。注意,新的文件名如果不带编号(如a.txt),那么会按顺序改成 a.txt, a (1).txt ... a (5).txt,如果带编号(如 b (3).txt,注意编号只能用圆括号包起来),则编号会按顺序增加:b (3).txt, b (4).txt ... b (11).txt。

3. 回车,OVER。

功能很贴心,但是半残,有时候不满足要求,在没有安装额外的语言的情况下,可以用类似如下的vbs来应急:
Set a= WScript.createObject("WScript.Shell")
WScript.sleep 1000
For i = 1 to 23
  j = i
  If i < 10 Then
    j = "0" & i
  End If
  a.sendkeys "{DOWN}{F2}"    '向下,F2(重命名)
  a.sendkeys "TBBTs02e" & j  '文件名, win7下就不用再  & ".rmvb" 了,但是xp需要
  a.sendkeys "~"            '回车
  WScript.sleep 200
Next
Aug 21

博客迁移记#3 不指定

felix021 @ 2012-8-21 09:59 [随想] 评论(1) , 引用(0) , 阅读(7903) | Via 本站原创
去年 czyhd同学 推荐的BurstNet的VPS用了正好一年。到上周一之前,总体来说是很满意的,性价比高,带宽和延迟基本满足要求。但是上周一空间突然无法访问了。我以为是偶然的情况(GFW/公司网络封堵/母鸡整修等),但是却收到一封Reseller发来的邮件,说是BurstNet怀疑我利用VPS乱发垃圾邮件,还附上了一份pstree的输出,其中显示smtpd服务启动了32个,要我对此作出解释。

由于对方是万恶的美帝,还要经过日李万基的reseller,所以往来3封邮件花了三天的时间,仍然没有解决问题,怒了,直接在 Ramhost 另外买了个VPS,基于KVM技术,256M RAM + 7GB HDD,$4.99/Month(可以使用paypal转网银以RMB支付)。看起来参数是不如原先安个OpenVZ的512M+20GB(35元/月,买10送2),但是由于Ramhost承诺不超售,因此实际性能(CPU、内存、网络)应该是要超过BurstNet,而价格上也没有太大的差别。

折腾了两三天,目前装上了Ubuntu 12.04 Server x86_64,nginx + php-fpm + mysql, sshd, pptpd, postfix, denyhosts, 稳定运行了一段时间以后,free的输出大约是
引用
felix021@felix021:~$ free -m
            total      used      free    shared    buffers    cached
Mem:          239        220        19          0        14        133
-/+ buffers/cache:        72        167
Swap:          490        24        466

总体来说还是比较满意的,实际速度也比原先的vps快,尤其是刷网页的时候很明显。

在安全方面,VPS什么都得自己搞,比较头疼。

denyhosts已经往/etc/hosts.deny里面加入了7个ip,都是试图ssh登录失败多次的。

在邮件方面,这次特别注意了,使用iptables限制只能是本地ip才能连上tcp#25。
    iptables -A INPUT -j ACCEPT -p tcp --dport 25 -s 127.0.0.1       
    iptables -A INPUT -j REJECT -p tcp --dport 25

在web方面,大概分析了下头天的nginx log,发现有大量的异常访问,于是根据UA屏蔽了许多抓站请求(不是常见的Spider)。比较特殊的是被GFW屏蔽的那个 /t ,目前仍有少量请求,而且UA为空,看起来像是GFW的回访,所以果断屏蔽之。

大概就是这样。

p.s. 遇到一件很不靠谱的事情:昨晚Ramhost给我换了个IP,居然没有任何通知!折腾了半天,看到管理面板上的IP有异我才发现,果断发TICKET质问他们,看他们如何解释,艹。

p.p.s. 奇葩解释:"You are mistaken. Your IP address was and has always been 199.180.255.30, Seeing as your account is only 4 days old we have absolutely no reason to need to change your IP address. We have not and will not change your IP address like that."  好吧。怪我没有留下证据。
分页: 19/103 第一页 上页 14 15 16 17 18 19 20 21 22 23 下页 最后页 [ 显示模式: 摘要 | 列表 ]