存档

2009年6月 的存档

google Image-a-nation Challenge

2009年6月30日 Python

Google 发布了这么个东西:http://www.google.com/landing/image-a-nation/#1,大概是个拼图

根据Google自己Google到的结果,可以将这些怪异的字符构造到http://google.com/images?q=tbn:之后,就可以获得一张图片,而冒号前的东西,根据我的猜测可能就是图片的排列位置,而且貌似是十六进制的

写了个脚本把图片都跑到了本地,不过单看图片,似乎有点让我丧失信心,找个时间把这些图按照位置拼一下看看,是否会有网上公布出来的结果

allpics
用于跑图片到本地的脚本

#!/usr/bin/env python
# google Image-a-nation Challenge
import time
import urllib
 
pics = """28:Kx7vy-VBtpYJ
 
7B:PyDg0PjbgxkJ
 
F3:Rd1xXw4alLkJ
 
31:FeaBmsxfey8J
 
20:YsNAjeTGJVEJ
 
A9:leYDU1RuuwIJ
 
81:jufN-4×1RnAJ
 
CB:IhifTIhRpmoJ
 
87:8Maz8upc508J
 
FA:5dh9_zqVdkIJ
 
BA:xyZftsH8RFsJ
 
50:L_zmPN_48bMJ
 
49:iLtQE1Q7CWMJ
 
D6:TuKm3fTasSYJ
 
FE:pls5MhpkpK8J
 
60:thDCBIkyQ2EJ
 
85:CizK2j2yCBIJ
 
23:IkmAcC6lNjIJ
 
F8:kRRYwomQWhIJ
 
8E:_v-YolETks4J
 
E1:Bf8Ltpee0v4J
 
D0:0YM5CoDmx8MJ
 
92:D9zUj4QVc2sJ
 
0C:FsKZkZ1R7t4J
 
45:NVX4OCi9WXAJ
 
A7:aQAFb1464l4J
 
68:aej8Xg6iVhkJ
 
A5:EHkO0tMtSN4J
 
F6:49-gxPeD0IwJ
 
5E:bpLwYqr-990J
 
C0:mawuaWJa1boJ
 
00:NEU6wRmGVq4J
 
84:h5LxuUdV03oJ
 
D9:-Eup1YnE6-0J
 
FC:7fjrc7LzjskJ
 
03:LJouzaZ6nakJ
 
C3:3cyoIZdesRYJ
 
EB:GumIzK6Xwv8J
 
12:KYkKkVzbW-UJ
 
AB:EHkO0tMtSN4J
 
30:vrZQ1rXJEg4J
 
CE:AbXWG_eCFZYJ
 
6B:EOhnwwtJMz4J
 
5F:PyDg0PjbgxkJ
 
62:zzxVlWrc94AJ
 
F2:CwpwlljQ5RUJ
 
7F:9aqBJNfDaUEJ
 
EE:CWVFy5sgo9MJ
 
4C:JDNgZADQwGkJ
 
58:uJB16vUcH38J
 
3D:Jij2JFUry5gJ
 
C8:v7juRN1cZ4EJ
 
1E:16e59DDxd1QJ
 
69:y1f3FuaNqhEJ
 
B0:4cYEeKseVRYJ
 
37:Hnm8AysFIvgJ
 
1D:qFpNdOAQ868J
 
21:Ypml6jLyoaEJ
 
34:UhJBrAWg8MAJ
 
A0:xTaArVPF51IJ
 
EF:14kwBS4zH4kJ
 
ED:eUzfBgFaYAYJ
 
51:1RWzov84HGsJ
 
72:WRUq1C2UF7YJ
 
24:TkF3I-3AqsoJ
 
6E:Cxb4nb_-6wQJ
 
CC:Cfwjydcm5VUJ
 
94:3V77coCFoyUJ
 
0E:lfqBck_AckoJ
 
C7:qTuFDoAZZAIJ
 
E4:X9O9H0rf7UwJ
 
A1:dh_aVJQg-fQJ
 
1B:SSUHFP88ICIJ
 
9A:8LRpia1kQyoJ
 
A8:6OB8e96ajfIJ
 
8D:sekIn_D0FY4J
 
9D:sQbLyZCjcMwJ
 
9C:at2mlybzsckJ
 
2D:gagHFe3EgRcJ
 
7C:sbERUkuwrgkJ
 
DF:jIbY1S4jGOQJ
 
15:sQ5gc2skXDoJ
 
B5:qpQ_jThwIfwJ
 
E7:bujGGLRs6f8J
 
B9:FC8WDc6FfQAJ
 
AC:7PqlCpunKtMJ
 
90:6bCXBm-ZoeMJ
 
05:kUDeAWh_o54J
 
46:BTA_qt_HhUkJ
 
3E:3fscTyozTmYJ
 
14:dsppEkkJ6vIJ
 
AA:q8Xw6c1aDJQJ
 
5C:1Yy-Elilf_wJ
 
67:sYb7HA_7lCwJ
 
99:kPiuzGwRUKIJ
 
E2:3NCEoBX-P-gJ
 
7D:gOHngHfzX8YJ
 
2C:1j66DXvpuf8J
 
07:rWnu8lphvZcJ
 
CA:PFnVqjCPIKIJ
 
D7:ydg0kWMXDeoJ
 
5A:n33l1U6zbEIJ
 
57:hKzAPG_v3g4J
 
3F:XGwx9FgVixQJ
 
36:abLa4yOIyW4J
 
10:sMDENsqLts0J
 
D2:gJsgjLw3nSQJ
 
E0:Z_K4hdZq7h8J
 
75:3C-XszC6kyMJ
 
77:rtHRfe9A27YJ
 
97:-eflxIU8g04J
 
F0:SwVcyzirnnQJ
 
65:7-hjyVDnHjEJ
 
A3:hruuOW22_L8J
 
F9:lEPeKx6ket4J
 
88:M3DdYOcDTWwJ
 
FD:Cfwjydcm5VUJ
 
42:HNXS6FBy7AUJ
 
4A:-n4dEXmbmyMJ
 
F7:IPDuatbjjRoJ
 
52:2xrwdGDvyaEJ
 
5B:vEMG_nMaZygJ
 
27:hfidgDDREMsJ
 
70:DJ1-bAcdQE8J
 
78:aej8Xg6iVhkJ
 
61:4SHBf-6ctTQJ
 
BF:oJWMF8g4n98J
 
3C:wbyliY5Fw7cJ
 
BD:dyCQwPoi_QoJ
 
6D:ROtjpJaaM3AJ
 
D1:u77vCPi7NX4J
 
DA:jr7lZOIXHE4J
 
80:hvDWT2JOOHIJ
 
48:hfidgDDREMsJ
 
8B:TMDNdWekwlEJ
 
73:13SgY09fd9QJ
 
7E:tx3mt6GYR5oJ
 
B3:JTLUoSksUFAJ
 
63:DyaRtEUhtg4J
 
0B:1q-lkiRNa7kJ
 
93:L3R7clDgu44J
 
F5:o-lzUg48_5UJ
 
01:6YJy7S3OGt8J
 
26:vs3cbrj7Bi0J
 
7A:C6L9XGQS6i8J
 
A4:iMWi3RNzLHUJ
 
8F:2ELg7mGC5yUJ
 
1A:rZEfAj2wHgYJ
 
A6:kP-bP5hmF9cJ
 
18:KcznZAsaAk0J
 
FF:kp-fx5_9CzsJ
 
6C:5I-cinT_0_4J
 
8C:zaUGihUPAJwJ
 
0F:AIt7UQkMmZkJ
 
9B:FYtibg-zD20J
 
B7:A2SiPb4NwWQJ
 
89:isoWmMm2QssJ
 
C5:CibMCkpl2kAJ
 
0D:g9lghtXOAFMJ
 
38:gWcquZBJFPIJ
 
11:_TotMQXuZdgJ
 
6A:24tx-mIpwmwJ
 
8A:-FAi_YRhbrgJ
 
1F:kQEIlYRdi2QJ
 
41:FoWhbx2IxiUJ
 
4E:XFlq06C_YeMJ
 
13:vKSdbEgs9aoJ
 
D5:m415gDZ2B-UJ
 
AD:hWBrF9YLK78J
 
2B:HqEtb7AADmMJ
 
DE:eCFYrqg0WsEJ
 
16:QLTeOYg-yB8J
 
BB:jk-d_Ua8BtIJ
 
C9:u0J9izcWwvAJ
 
91:NM3JgAgreZQJ
 
04:sYb7HA_7lCwJ
 
08:VwTb3zO7tL8J
 
DD:kwlsYdonpIgJ
 
F4:_LIV45PtumsJ
 
EC:rpMyxZmO6LwJ
 
54:bDNO5Nsce9EJ
 
2A:XFgcPHiQ6SYJ
 
71:b8UD6gHfO6IJ
 
9E:rwusJNoWjiQJ
 
FB:c-wHLtEdkf0J
 
AE:brdZuMrvAMQJ
 
E8:mzaxbrVLBOUJ
 
4B:6ye4zJaCE_oJ
 
22:6fwxGNK3bJgJ
 
B8:jwvALeEfsbcJ
 
33:Yqx6f_8RvNgJ
 
C2:sxB_6QG_Qb4J
 
C1:RDCyEcRfSgYJ
 
AF:crKfJjXw_5MJ
 
53:0DMvhUWTKb8J
 
DC:e91ckrM89cEJ
 
B4:WDoT2alpGIUJ
 
4D:bFmzm_4qu2kJ
 
C4:0vD_dZABzHMJ
 
1C:sz33mz3wOUQJ
 
C6:E7OZk_UQ4CkJ
 
98:cLfnrVphpKwJ
 
06:oZjZXvq5HtcJ
 
64:iVU_MpjctIIJ
 
9F:X-bZvp5icB4J
 
95:fNZpE0lgEn8J
 
A2:RxHFAXHJtyAJ
 
E3:6HrAalsLflAJ
 
3B:KqNbjwDqqCMJ
 
BE:0RUKM-BlaPsJ
 
0A:1q-lkiRNa7kJ
 
76:m1ROBo00yiEJ
 
32:SkX0iYQQY_AJ
 
40:vl95ZOX_Q4IJ
 
09:ep_I291MX2cJ
 
2F:2H1dZ2lZ248J
 
D4:N-GQv-Nx1z8J
 
19:f561wYNWgkEJ
 
D3:UON-_Wr60O8J
 
74:KQJPHtyNoj4J
 
3A:lzls7PYvd34J
 
F1:yQFSR4MaUpwJ
 
CF:oRRo9yGdXSQJ
 
4F:W6-iAz1ZqaUJ
 
29:C-dd67rIqqwJ
 
66:GO4Tc1u-ugYJ
 
DB:eC0ElD1t9J0J
 
43:d6NIXjVJ7KUJ
 
82:Io93RHeLXQEJ
 
CD:NXjNyJgzy4IJ
 
25:_n6PawUEkHcJ
 
B2:Lc1qYSv3UhUJ
 
BC:I-13107CCxIJ
 
83:Y61PENPCqEkJ
 
EA:9TqNFzh4Z_oJ
 
47:NwDZxatOEc4J
 
B1:B-TsYBhWagAJ
 
6F:fHVktF7dziUJ
 
D8:xzpGFu00WYwJ
 
35:9Rk1mF1piREJ
 
E9:JFkbdecjI8MJ
 
96:CBItbsrnoXMJ
 
55:noMLzjxCNboJ
 
86:sKdRXX1_KzwJ
 
B6:VUPwfdt9GXQJ
 
39:rCHm8PFbAI8J
 
5D:4NwxRMobURQJ
 
79:kiWLB6a7E5MJ
 
02:wS3Nm-eK00cJ
 
E5:eRnVynYCgSsJ
 
2E:Pus5p0uY2KkJ
 
17:tOuRl4j_h8EJ
 
56:YmAwCsJOu2kJ
 
59:zl6uZ0sBNPkJ
 
E6:gDEADZ7sg_4J
 
44:IrzQsQh4XsIJ
"""
 
url = http://google.com/images?q=tbn:
 
strList = pics.split("nn")
for i in strList:
    
reqString = i.split(":")
    
# reqString[0] -> pic name
    
# reqString[1] -> request string
    
print "Request Url : %s%s , Download pic : %s.jpg" %(url,reqString[1],reqString[0])
    
reqUrl = url + reqString[1]
    
urllib.urlretrieve(reqUrl,reqString[0]+.jpg)
    
time.sleep(0.5)
print "ALL Done !"

download

分类: 01 . 杂七杂八 标签:

Will you be there ? Michael

2009年6月26日 Python

MJ走了 ……

没有哪个歌手的全专辑都被我追全的,只有他

对我来说,他就是Ghost里的那个MJ,就是History里的那个MJ,就是BAD里的那个MJ …… 所以我从没有去关注过关于他的任何负面新闻,我不管那是谁,我只知道,站在麦克风前的那个MJ就是我喜欢的那个MJ,我只关注他,不过他就这么突然的走了 ……

没什么可说的了,相信如此悲痛的歌迷不仅仅我一个,他们会理解

BAD里的造型,是我觉得最帅的

BAD里的造型,是我觉得最帅的

Dangerous里,恩,很酷,尤其是Remeber the time里的那个MJ

Dangerous里,恩,很酷,尤其是Remeber the time里的那个MJ

History里的MJ让我觉得不再像以前那样轻狂,而是多了一些成熟

History里的MJ让我觉得不再像以前那样轻狂,而是多了一些成熟

Ghost里的MJ,其实并不恐怖

Ghost里的MJ,其实并不恐怖

还有很多很多 …… 改天回家整理一下MJ的磁带 ……

分类: 01 . 杂七杂八 标签:

今天收拾电脑桌

2009年6月24日 Python

要换新电脑桌了,旧桌子要腾空,仅仅是电脑桌上收拾出来的书,不到图书总量的一半

有时候看着这么多书自己也发愁,不过更多的是纳闷 —— 看了这么多书,咋就还这么不上档次呢?!

r0019398

另外还收拾出一本工作记录本,仔细看封面,别的不多说了 —— 国内某超高级学府内部印刷的

r0019401

分类: 01 . 杂七杂八 标签:

使用python枚举IIS的虚拟目录(改)

2009年6月22日 Python

用python的pywin32扩展操作IIS
其实一切非常简单,只要对象找对了,其他的搜M$的MSDN就OK了

#!/usr/bin/env python
# win32com
# List All Virtual Directory in IIS
# Python[AT]Live.it
import re
import win32com.client
 
def ListVirtualDir(layerName,parentLayer,layerCounter):
    
# layerName : Current Layer Name
    
# parentLayer : Current Layer Path
    
vdName = []
    
IISObj = parentLayer + / + layerName# Current Layer Path
    
vd = win32com.client.GetObject(IISObj)
    
exePerm = #{’Scripts Only’:0,’Scripts and Executables’:0,’None’:0}# Execute Permission
    
for w3 in vd:
        
if iiswebvirtualdir == w3.Class.lower():
            
VirDirList.append(   *layerCounter + "Virtual Directory Name : %s" %w3.Name)
            
VirDirList.append(   *layerCounter + "Virtual Directory Path : %s" %w3.Path)
            
VirDirList.append(   *layerCounter + "Application Name : %s" %w3.AppFriendlyName)
            
VirDirList.append(   *layerCounter + "Script Source Access : %s" %w3.AccessSource)
            
VirDirList.append(   *layerCounter + "Read Permission : %s" %w3.AccessRead)
            
VirDirList.append(   *layerCounter + "Write Permission : %s" %w3.AccessWrite)
            
VirDirList.append(   *layerCounter + "Directory Browsing Enable : %s" %w3.EnableDirBrowsing)
            
#VirDirList.append(’   ’*layerCounter + "Execute Permissions : Scripts and Executables : %s" %w3.AccessExecute)
            
#VirDirList.append(’   ’*layerCounter + "Execute Permission is None : %s" %w3.AccessScript)
            
if w3.AccessExecute:
                
exePerm = Scripts and Executables
            
if w3.AccessScript:
                
if not w3.AccessExecute:
                    
exePerm = Scripts Only
            
else:
                
exePerm = None
            
VirDirList.append(   *layerCounter + "Execute Permissions : %s" %exePerm)
            
vdName.append(w3.Name)
    
layerCounter = layerCounter+1
    
for i in vdName:
        
ListVirtualDir(i,IISObj,layerCounter)
 
 
SiteName = {}
layerCounter = 1
iis = win32com.client.GetObject(IIS://localhost/w3svc)
for w3 in iis:
    
if iiswebserver == w3.Class.lower():
        
SiteName[w3.Name] = w3.ServerComment
for SiteID in SiteName.keys():
    
VirDirList = []
    
ListVirtualDir(ROOT,IIS://localhost/w3svc/%s %SiteID,layerCounter)
    
if len(VirDirList)>0:
        
print "Site : IIS://localhost/w3svc/%s " %SiteName[SiteID]
        
for i in VirDirList:
            
print i
        
print "\n";
#
# E_O_F

vd

bt4-pre-final-iso

2009年6月21日 Python

昨天下午调了半天BT4-BETA的光盘,BT4-BETA里没有带ubiquity,自己装上后,ubiquity有严重问题导致安装到一半会报错

后来看了下代码,是一个ubiquity的库文件有问题 —— filterdcommand.py

改了几次filterdcommand.py的代码,最后却只是跳出了更多的错误信息 —— 但至少说明我的代码工作了,于是放弃,准备放狗搜

随后就在Google上发现这个问题似乎很多人报告,猜想BT必然不会放弃群众

于是到BT网站上去看,就发现了BT4-PRE-FINAL的ISO已经放出,链接:http://www.remote-exploit.org/backtrack_download.html

使用这个ISO启动,发现ubiquity已经带上了,而且安装也没有问题了 …… 可以放心在硬盘上使用了

书,BBLean,美剧

2009年6月19日 Python

先说书,《希腊罗马名人传》国内好像只翻译了第一部,应该有上、中、下三部的,后两部等了这么长时间也没有动静,很不靠谱

还好这种老书都没什么版权问题,网上很容易找到E文版本,打个包藏起来,点击下载

还有BBLean,X61上一直装不上,也不是说完全用不了,只是一些键有兼容问题,很难取舍,只能在公司的R50e上瞎得瑟着

bblean

家里自用的本子不打算用Windows了,麻烦的很,弄个nUbuntu算了

再说美剧,年初出了个新的 —— 《Lie to me》,专门研究谎言
对于坚信本能行为先于理智动作的我来说,很合适,该剧与前段时间出的一本书也有很多相似之处 —— 《FBI教你破解身体语言》
不过图书中似乎更真实一些,而美剧中的内容理性化的成分过多,导致一些所谓的微动作似乎并不是那么真实,至少让我看起来不完全相信那是无意识行为
不过还好,美剧向来不是一条主线走到底,其中还穿插了很多人性的内容,还是值得一看的。

今天的天气好闷热 ……

分类: 01 . 杂七杂八 标签:

娱乐,唯有娱乐

2009年6月17日 Python

这个 …… 让我想起了CCAV关于死亡人数的竞猜,新闻娱乐化的大潮势不可挡啊

msn1

msn2

msn3

记得有个朋友和我说过啥来着?

“就你眼尖,就你嘴闲” —— 我真的很贱

分类: 01 . 杂七杂八 标签:

使用perl将Linux文件权限转换为数字

2009年6月15日 Python

两个版本,同样的问题就是都没考虑SetUID、SetGID和粘住位

最早的版本,方法比较复杂:

#!/usr/bin/perl
# convert permission string to numeric [old]
# Python[AT]Live.it
sub trans_char_to_num{
    
my @acl = @_;
    
my @acl_3_part = ([$acl[0],$acl[1],$acl[2]],
        
[$acl[3],$acl[4],$acl[5]],
        
[$acl[6],$acl[7],$acl[8]]);
    
my %perm = (
        
r,4,
        
w,2,
        
x,1);
    
my @rwx = (r,w,x);
    
my $first = 0;
    
for ($i=0;$i<3;$i++) { # 0,1,2 …….
        
if ($acl_3_part[0][$i] eq $rwx[$i]) {
            
$first = $first+$perm{$rwx[$i]};
        
}
    
}
    
my $second = 0;
    
for ($i=0;$i<3;$i++) { # 0,1,2 …….
        
if ($acl_3_part[1][$i] eq $rwx[$i]) {
            
$second = $second+$perm{$rwx[$i]};
        
}
    
}
    
my $third = 0;
    
for ($i=0;$i<3;$i++) { # 0,1,2 …….
        
if ($acl_3_part[2][$i] eq $rwx[$i]) {
            
$third = $third+$perm{$rwx[$i]};
        
}
    
}
    
return($first.$second.$third);
}
 
my $passacl = `ls -l $ARGV[0]`;
my @ls_l_passwd = split /s+/,$passacl;
@passwd_perm = split //,$ls_l_passwd[0];
shift @passwd_perm;
$passwd_acl = trans_char_to_num(@passwd_perm);
print $passwd_acl,"n";

输出:

bash-2.05# touch test
bash-2.05# chmod 642 test
bash-2.05# perl ttt.pl test
642
前两天的版本,相对简单一些,调用方式也更直接了:

#!/usr/bin/perl
# convert permission string to numeric [new]
# Python[AT]Live.it
sub strTOnum{
    
my $file = $_[0];
    
unless (-f $file){
        
return "$file doesn’t exist.";
    
}
    
my $filePermLine = `ls -l $file`;
    
my $filePerm = NoSet;
    
if ($filePermLine=~/([-|w]([r|-][w|-][x|-]){3})s+d+.*/){
        
# -rwxrwxrwx –> rwxrwxrwx
        
$filePerm = $1;
        
@filePerms = split(//,$filePerm);
        
$filePerm = ;
        
shift @filePerms;
        
# string to binary : rw-rw-rw-  –>  110110110
        
foreach (@filePerms){
            
if (/w/){
                
$filePerm = $filePerm.1;
            
}
            
elsif (/-/){
                
$filePerm = $filePerm.0;
            
}
        
}
    
}
    
my $dec = oct(0b.$filePerm);
    
$perm = sprintf "%o",$dec;
    
# 4 -> 004 , 40->040
    
if (length($perm)!=3){
        
$perm = 0x(3-length($perm)).$perm;
    
}
    
return $perm;
}
print strTOnum($ARGV[0]),"n";

输出:

bash-2.05# touch test
bash-2.05# chmod 642 test
bash-2.05# perl perm.pl test
642

长城游

2009年6月15日 Python

空气和longas来北京了,豆子说出去玩,说找个长城,能代表北京一个特色

起初我说去野长城吧,而且选择了“箭扣野长城”,出游日期就定在6月13日那一天

后来多谢土豆在询问了专业人士之后改变了主意,没选择我的野长城出游方案,否则我们可能尸骨无存

虽然选择了人山人海的八达岭,但我们到的较早,过程中人不算多,但到终点后发现大量通过缆车登顶的人聚拥在那里,很崩溃

长城游玩后去了农家乐,并且找了一个景色不怎么美而且水很脏、树很少的森林淋了会雨,搞的满身泥巴后,就带着疲惫回家了 ……

img_3014

img_3030

img_3040

恩,突然发现很奇怪,虽为长城游,却没整理出一张长城上看着顺眼的照片 ……

分类: 01 . 杂七杂八 标签:

Nitecore 新版EZAA

2009年6月12日 Python

至少在我认为,Nitecore的做工一直是国内靠前的,但这次的EZAA还是比较失望的,Nitecore貌似也走到死胡同里了

EZAA

EZAA

Nitecore的标记,虽说新版的开关行程缩短,但没觉得比老版短多少

看着这段开关,让我想起了《少林足球》里的酱爆,《功夫》里的剃头男

看着这段开关,让我想起了《少林足球》里的酱爆,《功夫》里的剃头男

虽然没有照出来,但作为目前最小的1AA电筒,其筒壁厚度可以想象,那块海绵也看着挺恶心

海绵垫看起来不太干净的样子

海绵垫看起来不太干净的样子

和NDI比起来还真算得上是小,如果狠得下心的话,估计能把EZAA塞到NDI的屁股里

没照屁股只照了脑袋

没照屁股只照了脑袋

分类: 09 . 我的玩具 标签: