å› ä¸ºæœ€è¿‘çš„å·¥ä½œå½“ä¸é¢‘ç¹åœ°ç”¨åˆ°äº†å¼‚æ¥çš„IOç¼–ç¨‹æ¨¡åž‹ï¼Œå¯¹äºŽå¼‚æ¥æ¨¡åž‹çš„难于维护性深感切肤之痛。工作之余便在考虑有没有什么方法å¯ä»¥ä½¿è¿™ç§æ¨¡åž‹å˜å¾—æ›´åŠ çš„æ˜“è¯»æ˜“å†™å’Œæ˜“ç»´æŠ¤ï¼Œæœ‰ä¸€ä¸ªæƒ³æ³•å¾ˆè‡ªç„¶çš„äº§ç”Ÿäº†ï¼Œå°±æ˜¯ç”¨æˆ‘ä»¬ç†Ÿæ‚‰çš„æµç¨‹åŒ–的方法æ¥åšå†™å¤„ç†æµç¨‹ï¼Œç„¶åŽåœ¨ä¸€äº›IO触å‘点上异æ¥åŒ–,也就是触å‘一个异æ¥IO请求,将当å‰çš„æ‰§è¡ŒçŠ¶æ€æ¢å‡ºï¼Œæ¢å…¥å¦ä¸€ä¸ªæ‰§è¡Œçжæ€ï¼Œç›´åˆ°IO请求结æŸï¼Œè¯¥æ‰§è¡Œçжæ€è¢«å†æ¬¡æ¢å…¥ï¼Œåˆ™ç»§ç»æ‰§è¡Œã€‚
åŽæ¥åŽ»æœç´¢ç›¸å…³çš„问题,å‘现其实这个是一个很è€çš„æƒ³æ³•了。在计算机科å¦å½“ä¸ï¼Œè¿™ä¸ªæœ¯è¯å«åšCoroutine,最早æå‡ºæ˜¯åœ¨1969年,而在早期的高级è¯è¨€lispå’Œschema当ä¸å°±æœ‰å®žçŽ°ã€‚å¦‚æžœæŠŠCoroutine和函数进行比较的è¯ï¼Œå‡½æ•°åªæœ‰ä¸€ä¸ªå…¥å£ç‚¹ï¼Œè€ŒCoroutineå¯ä»¥æœ‰å¤šä¸ªå…¥å£ç‚¹ã€‚当Coroutine被第一次调用到的时候,它将从起始处开始执行,一旦é‡åˆ°å…·æœ‰yieldè¯ä¹‰çš„è¯å¥çš„æ—¶å€™ï¼Œå°±æ˜¯è¿”回给å¦å¤–一个Coroutine或者调用者,而在接下æ¥è¢«è°ƒç”¨çš„æ—¶å€™ï¼Œå°±ä»Žyieldè¯å¥ä¸‹é¢çš„一æ¡è¯å¥ç»§ç»æ‰§è¡Œç›´åˆ°é‡åˆ°æ–°çš„yieldè¯å¥æˆ–者Coroutine的结æŸã€‚
如果了解Python,其实Python当ä¸çš„Generator就是一ç§Coroutine。比如
def xrange(start, end):
   val = start;
   while ( val < start ):
      yield val
      val += 1
除了Python,Stackless-Pythonå’Œ.NET也有相应的实现,而C/C++虽然有一些实现,但是通用性都ä¸å¤ªå¥½ï¼Œå› 为实现难度相对比较大,毕竟Coroutineå®Œå…¨é¢ è¦†äº†C/C++基于stack的函数调用模型。
下é¢å¤§ä½“上看一下Coroutineçš„å‡ ä¸ªC实现,下次å†å†™ã€‚
今天å¶å°”在电视上看到的,HONDA(本田)的工程师带ç€ä»–们的类人形机器人ASIMO到四å·ç¾åŒºç»™å©åä»¬è¡¨æ¼”ã€‚ç”µè§†ä¸Šåªæœ‰å¾ˆçŸçš„一些片æ–,但是ä»ç„¶å±•示了ASIMO的一些很强大的特性,比如奔跑。
éšå³Google了一下这款机器人的资料,å‘现这个机器人还真是ä¸ç®€å•:
æ ¹æ®wikipedia上é¢çš„介ç»ï¼Œè¿™æ¬¾æœºå™¨äººé«˜130公分,é‡54公斤,Airborne time(这是什么,å应时间?)0.03秒,具有34个自由度(å¯ä»¥ç†è§£æˆ34个关节么……)。å¯ä»¥è¯†åˆ«ç§»åŠ¨çš„ç‰©ä½“ã€å§¿åŠ¿ã€æ‰‹åŠ¿ã€çŽ¯å¢ƒã€10å¼ è¿åЍä¸çš„人脸ã€ä»¥åŠä¸åŒçš„声音。
å‡ æ®µYoutube上é¢çš„视频:
CES 2007上é¢çš„demo
http://www.youtube.com/watch?v=cfaAiujrX_Y
以åŠåœ¨HONDA实验室里é¢çš„demo:
http://www.youtube.com/watch?v=Q3C5sc8b3xM
相当的强大。
这款机器人ä¸ä»…具有类人的外观ã€è‡ªä¸»è¡Œèµ°ã€ä¸Šæ¥¼æ¢¯çš„能力,而且å¯ä»¥ä»¥æ—¶é€Ÿ6公里奔跑,以时速5公里转弯。从demo里é¢çœ‹ï¼Œè¿˜å¯ä»¥æ„Ÿå—到人对其手臂的作用力而跟人一起转弯。ä¸ä»…如æ¤ï¼Œçœ‹demoä¸Šé¢æŽ¨ä¸€ä¸ªæŽ¨è½¦çš„éƒ¨åˆ†ï¼Œå¯åŠ¨æ—¶å¤šåŠ çš„ä¸€ç‚¹åŠ›é“,以åŠè½¬å¼¯æ—¶ä¸¤åªæ‰‹ä¸åŒçš„力é“都相当的好。
å¦å¤–就是精度。看机器人体æ“表演的一段,明显能够看出其手臂在快速的è¿åЍ之åŽä»ç„¶å¯ä»¥å¿«é€Ÿçš„åœåœ¨æ£ç¡®çš„ä½ç½®ä¸Šã€‚这个看起æ¥å¾ˆcool,而且我相信也是有相当难度的。
看它推推车的那一段,真想弄个回æ¥å¸®æˆ‘去超市买东西……
ä¸è¿‡æ®è¯´ï¼Œåˆ¶é€ 一个需è¦106,710,325日元,折åˆäººæ°‘å¸6829460.8元。
HONDA的网站上é¢è¿˜æœ‰æ›´å¤šçš„视频。
最åŽç”¨HONDAçš„ASIMO墙纸上é¢çš„一å¥è¯æ¥æè¿°ï¼šThe power of Dreams。翻译过æ¥å°±æ˜¯ï¼šæ¢¦æƒ³çš„力é‡ã€‚
ç¦ç‘ç›’å2F(使用龙芯2F处ç†å™¨ï¼‰å‡ºè´§ï¼ŒåŽ»å¹´å¼€å§‹é¢„å®šçš„æ—¶å€™ç™»è®°äº†ä¸€ä¸‹ï¼ŒäºŽæ˜¯ä¸Šä¸ªæ˜ŸæœŸé¾™æ¢¦å…¬å¸çš„人问我现在è¦ä¸è¦ç¡®è®¤é¢„定。我是很想æžä¸€ä¸ªè¿‡æ¥çŽ©çŽ©çš„ï¼Œä½†æ˜¯ï¼Œä¹°å›žæ¥è¿˜ä¸è§å¾—æœ‰ç©ºæŠ˜è…¾ï¼Œè€Œä¸”æš‚æ—¶é¾™æ¢¦ç›’åæ–è´§ï¼Œæš‚æ—¶å°±æ”¾ä¸€æ”¾äº†ã€‚
å¦ä¸€ä¸ªè¯é¢˜æ˜¯æœ‰äººæŠ˜è…¾å‡ºæ¥çš„Android在Nokia N810上é¢çš„æˆåŠŸå®‰è£…ï¼Œåªæ˜¯Nokia N810也有些å°è´µã€‚
所以……
å°±æ˜¯è¿™æ ·ã€‚
æ¯•ç«Ÿæ ¡å†…ä¸æ˜¯Facebookï¼Œåœ¨å¦æ¥Facebookå¼€å‘APIä¹‹å½¢çš„æ—¶å€™ï¼Œå´æ²¡æœ‰æ²¿ç”¨å¹³å°çš„æ ¸å¿ƒéƒ¨ä»¶ä¹‹ä¸€ï¼šå¼€å‘许å¯ã€‚
为什么一个平å°çš„å¼€å‘许å¯å¦‚æ¤é‡è¦å‘¢ï¼Ÿå› 为开å‘è®¸å¯æ˜¯å¹³å°ä¾›åº”者和开å‘者之间的法律å议。一个设计良好的åè®®å¯ä»¥è®©ä»¥è¿™ä¸ªå¹³å°ä¸ºæ ¸å¿ƒçš„众多应用形æˆä¸€ä¸ªè‰¯æ€§çš„ã€ç›¸äº’促进的庞大的社区甚至是产业。典型的例å就是Mozilla Firefox以åŠå›´ç»•ç€Mozilla通用许å¯è¯å½¢æˆçš„庞大的Mozilla社区,包括数以万计的æ’件程åºã€æ‰©å±•ã€çš®è‚¤ç‰ç‰ã€‚还有GNU通用许å¯ï¼Œä»¥åŠå›´ç»•在GNU Linux周围的庞大的GNU社区。
所有的这些æˆåŠŸçš„è®¸å¯éƒ½æœ‰ä¸€ä¸ªå…±åŒç‰¹ç‚¹ï¼šåœ¨ä¿ç•™éƒ¨åˆ†æƒåˆ©çš„åŒæ—¶ï¼Œä¸å‰¥å¤ºä½œè€…本身对于该作å“的知识产æƒå’Œä»–人利用该作å“赚钱的æƒåˆ©ã€‚Mozillaå°±ä¸ç”¨è¯´äº†ï¼Œå®ƒæ—¢ä¸è¦æ±‚æ’ä»¶å¼€æºï¼Œä¹Ÿè¦æ±‚æ’件必须把知识产æƒè®©æ¸¡ç»™Mozillaï¼Œä½ çˆ±æ€Žä¹ˆæžæ€Žä¹ˆæžã€‚ä¸¥æ ¼å¦‚GPL者,虽然ä¸å…许通过å°é—æºä»£ç 赚钱,但是并没有剥夺他人出售GPL软件的æƒåˆ©ï¼Œæ›´æ²¡æœ‰é™åˆ¶ä½¿ç”¨GPL软件æä¾›æœåŠ¡èµšé’±ï¼Œè€Œä¸”GPL唯一ä¿ç•™çš„æƒåˆ©ä¾¿æ˜¯ä½œè€…çš„çŸ¥è¯†äº§æƒã€‚æ£å› 为有利å¯å›¾ï¼Œèµ„本æ‰ä¼šèšé›†è¿‡æ¥ï¼Œä½ 自己æ‰èƒ½å˜æˆä¸€ä¸ªå¹³å°ã€‚
ä½†æ˜¯åœ¨æ ¡å†…çš„å¼€å‘许å¯å½“ä¸ï¼Œæœ‰ä¸‹é¢çš„一些规定:
2.4
å¦‚å› å…¶æä¾›ç»™æ ¡å†…网的开å‘作å“å˜åœ¨æƒåˆ©ç‘•ç–µæˆ–ä¾µçŠ¯äº†ç¬¬ä¸‰æ–¹çš„åˆæ³•æƒç›Šï¼ˆåŒ…括但ä¸é™äºŽä¸“利æƒã€å•†æ ‡æƒã€è‘—作æƒåŠè‘—作æƒé‚»æŽ¥æƒã€è‚–åƒæƒã€éšç§æƒã€å誉æƒç‰ï¼‰è€Œ
å¯¼è‡´æ ¡å†…ç½‘æˆ–ä¸Žæ ¡å†…ç½‘åˆä½œçš„å…¶ä»–å•ä½é¢ä¸´ä»»ä½•索赔ã€è¯‰è®¼ï¼›æˆ–è€…ä½¿æ ¡å†…ç½‘æˆ–è€…ä¸Žæ ¡å†…ç½‘åˆä½œçš„å…¶ä»–å•ä½å› æ¤éå—任何å誉ã€å£°èª‰æˆ–者财产上的æŸå¤±ï¼Œå¼€å‘者将积æž
地采å–一切å¯èƒ½é‡‡å–的措施,以ä¿è¯æ ¡å†…网åŠä¸Žæ ¡å†…网åˆä½œçš„å…¶ä»–å•ä½å…å—上述索赔ã€è¯‰è®¼çš„å½±å“ã€‚åŒæ—¶å¼€å‘è€…å¯¹æ ¡å†…ç½‘åŠä¸Žæ ¡å†…网åˆä½œçš„å…¶ä»–å•ä½å› æ¤éå—的直接
æˆ–é—´æŽ¥ç»æµŽæŸå¤±è´Ÿæœ‰å…¨éƒ¨çš„èµ”å¿è´£ä»»ï¼›
å…ã€æ’件应用程åºçš„æƒåˆ©å½’å±ž
1.
å¼€å‘è€…åœ¨æ´»åŠ¨æ ¡å†…ç½‘æ’件应用程åºå¼€å‘许å¯è¯ã€ä¸”将其开å‘çš„ä½œå“æä¾›ç»™æ ¡å†…ç½‘ï¼Œå³è§†ä¸ºå…¶å·²ç»å°†åŸºäºŽä½œå“的全部æƒåˆ©ï¼ŒåŒ…括但ä¸é™äºŽæ‰€æœ‰æƒåŠçŸ¥è¯†äº§æƒæ°¸ä¹…性ã€ä¸å¯æ’¤é”€çš„ã€ç‹¬å®¶è®©æ¸¡ç»™æ ¡å†…网。
2.
ç»å¼€å‘者创作完æˆå¹¶æäº¤ç»™æ ¡å†…网的应用程åºï¼Œæ ¡å†…网在全世界范围内享有å…è´¹çš„ã€æ°¸ä¹…性的ã€ä¸å¯æ’¤é”€çš„æƒåˆ©å’Œè®¸å¯ï¼Œä»¥ä½¿ç”¨ã€å¤åˆ¶ã€å‡ºç‰ˆã€å‘行ã€ä»¥åŽŸæœ‰æˆ–å…¶ä»–
å½¢å¼è¿›è¡Œæ”¹ç¼–ã€è½¬è½½ã€ç¿»è¯‘ã€ä¼ æ’ã€è¡¨æ¼”和展示æ¤ç‰å†…å®¹ï¼ˆæ•´ä½“æˆ–éƒ¨åˆ†ï¼‰ã€‚åŒæ—¶å¼€å‘者承诺,ä¸å°±ä¸Šè¿°ä½œå“以åŠä¸Šè¿°ä½œå“的改编作å“对任何第三方进行任何形å¼çš„许
坿ˆ–授æƒä½¿ç”¨ã€‚
3. ç»å¼€å‘者创作而产生的文本ã€å›¾ç‰‡ã€å›¾å½¢ã€éŸ³é¢‘å’Œ/
或视频ç‰èµ„料的所有æƒåŠçŸ¥è¯†äº§æƒå½’å±žäºŽæ ¡å†…ç½‘ï¼Œæœªç»æ ¡å†…ç½‘åŒæ„,开å‘者ä¿è¯ä¸ä»¥ä»»ä½•å½¢å¼ç›´æŽ¥æˆ–间接å‘å¸ƒã€æ’放ã€å‡ºäºŽæ’放或å‘布目的而改编或å†å‘è¡Œï¼Œæˆ–è€…ç”¨äºŽå…¶ä»–ä»»ä½•å•†ä¸šç›®çš„ã€‚åŒæ—¶ä¿è¯ä¸è®¸å¯ä»»ä½•第三方从事上述行为。
[….]
å…«ã€å…责声明
1ã€æ ¡å†…网有æƒåœ¨æå‰é€šçŸ¥æˆ–ä¸é€šçŸ¥çš„æƒ…况下以任何ç†ç”±éšæ—¶ä¿®æ”¹ã€é™åˆ¶ã€æš‚åœæˆ–åœæ¢å…¨éƒ¨æˆ–部分开å‘者æœåŠ¡ï¼Œè€Œä¸”å¯¹äºŽä»»ä½•æ¤ç±»ä¿®æ”¹ã€é™åˆ¶ã€æš‚åœæˆ–åœæ¢è¡Œä¸ºï¼Œæ ¡å†…网对开å‘者或任何第三方ä¸è´Ÿä»»ä½•责任。
简å•çš„è¯´ï¼šåšæ’件的开å‘è€…ï¼Œä½ ä¸æ‹¥æœ‰å¯¹äºŽè¯¥æ’件的知识产æƒï¼Œä½ 的知识产æƒå·²ç»è®©æ¸¡ç»™äº†æ ¡å†…ï¼›ä½†æ˜¯ï¼Œå‡ºäº†é—®é¢˜ä½ è¦è´Ÿè´£ï¼Œéœ€è¦èµ”å¿ä½ 也è¦è´Ÿè´£ã€‚
è¿™æ ·åªä¼šå“èµ°å¼€å‘者,平å°ä¸æ˜¯è¿™ä¹ˆåšçš„。
但是å过æ¥è¯´ï¼Œæ ¡å†…æœ‰åšæˆå¹³å°çš„æ‰“ç®—ä¹ˆï¼Ÿææ€•没有。FacebookåšAPI目的很大程度上是为了把自己平å°åŒ–,让更多的网站å¯ä»¥é€šè¿‡è‡ªå·±çš„ç”¨æˆ·åŸºç¡€æ¥æŽ¨å¹¿ï¼Œç„¶åŽå¤§å®¶ä¸€èµ·èµšé’±ï¼Œå¯»æ±‚的是一ç§Win-Winçš„å¯èƒ½æ€§ã€‚æ ¡å†…åˆ™èµ°äº†å‡ ä¹Žå®Œå…¨ç›¸å的一æ¡è·¯ï¼Œçœ‹èµ·æ¥æ ¡å†…想è¦é€šè¿‡è¿™ç§æ–¹å¼æ¥å¼¥è¡¥è‡ªå·±åˆ›æ–°åŒ®ä¹çš„问题,但是方å¼é”™äº†â€”—想è¦ä¸–ç•Œä¸Šçš„èªæ˜Žäººä¸ºä½ æœåŠ¡ï¼Œä½ å¿…é¡»ç»™ä»–ä»¬ç‚¹ä»€ä¹ˆï¼Œè€Œä¸æ˜¯ä»Žä»–们那里抢过æ¥ã€‚
æ ¡å†…ç§‰æ‰¿ç€å®ƒä¸€è´¯çš„é£Žæ ¼ï¼Œç´§éšè€å¤§å“¥Facebook的脚æ¥ï¼Œä»Šå¤©ä¹Ÿå…¬å¸ƒäº†å…¶API:
http://app.xiaonei.com/developers/home.do
简å•çœ‹äº†ä¸€ä¸‹ï¼Œæžœç„¶æ˜¯ä¸€è´¯çš„æ ¡å†…é£Žæ ¼ï¼šåŸºæœ¬ä¸Šå®Œå…¨æ˜¯Facebook API的翻版。
当å‰çš„版本当ä¸ï¼Œè¿˜æ²¡æœ‰Facebookçš„FQL(Facebook Query Language)和FBJS(Facebook Javascriptï¼‰ï¼Œä½†æ˜¯å·²ç»æœ‰äº†REST-like APIå’ŒFBML(Facebook Markup Language)的翻版XNML(Xiaonei Markup Language)。
å°½ç®¡æ˜¯æ–°å…¬å¼€ï¼Œä½†æ˜¯æ®æœ‹å‹é‚£é‡Œå¾—æ¥çš„资料,两个礼拜å‰å°±å·²ç»å¯¹ä¸€äº›åˆä½œä¼™ä¼´å…¬å¼€äº†ï¼Œæ‰€ä»¥è™½ç„¶å®˜æ–¹çš„APIå‘å¸ƒå®šåœ¨æ˜Žå¤©ï¼Œä»Šå¤©å·²ç»æœ‰äº†å¾ˆå¤šçš„应用在上é¢äº†ã€‚大多数应用都ä»ç„¶ä»¥å°†äººä»¬è”ç³»åœ¨ä¸€èµ·ä¸ºç›®çš„ï¼Œè¿˜æœ‰ä¸€äº›å°æ¸¸æˆçš„æŽ’行榜ç‰ç‰ï¼Œè¿˜æœ‰å°±æ˜¯ä¸ºè‡ªå·±çš„ç½‘ç«™åšæŽ¨å¹¿çš„stub page。
总之还ä¸é”™ã€‚
I mean OpenInkpot.
It cost 5 nights and 7 GB of disk to compile, OMG.
— Update @ 2008-4-19 —
I found I compiled the x86 version, not the ARM version…
Try again, but VM disk is full now…
http://herbsutter.spaces.live.com/Blog/cns!2D4327CC297151BB!917.entry
Herb Sutter, the C++ guru, finally left Live Space due to the comment spam out of control.
I like Live Spaces, and I really
hate moving a blog, but unfortunately the comment spam is out of
control and I just can’t keep up with the tools available to manage it
here — other than accepting a blog with no comments at all, which I’m
unwilling to do. Your comments are too valuable to give up.
I have researched on the blog comment spams for a long time, since my blog was spammed at the first time (in Chinese). Also I created a semi-automatic solution (in Chinese) to delete the spams. I believe not only me is suffering the blog comment spams, so I was thinking to make the solution totally automatic, and create a tool to clean blog comment spams for us spammer haters.
However, even I created the tool, that does not means our bloggers should take the responsibility to do anti-spam tasks. Anti-spam is the business of the service provider. Live Space SHOULD improve its comment system, or it will become Live Spam and more and more people will leave.
Google Android SDKå‘çŽ°å®‰å…¨æ¼æ´ž
Core Security said Android SDK m3-rc37a and earlier are vulnerable to
several bugs in components that process GIF, PNG and BMP images, and
Android SDK m5-rc14 is vulnerable to a security bug in the component
that process BMP images.
CAPTCHA is dead, long live CAPTCHA
Hotmail, Yahoo, å’ŒGMailçš„CAPTCHAè¿‘æœŸç›¸ç»§è¢«ç ´æŽ‰ï¼Œè™½ç„¶å®ƒä»¬çœ‹èµ·æ¥æ˜¯é‚£ä¹ˆåšä¸å¯æ‘§ï¼šGoogle:
Yahoo:
Hotmail: 
— ftofficer的一点看法 —
æ£å¦‚æ–‡ç« ä¸æ‰€æåˆ°çš„é‚£æ ·ï¼ŒCAPTCHA对于专业的spamå‘é€è€…å·²ç»è¶Šæ¥è¶Šæ²¡æœ‰é˜²å¾¡åŠ›ï¼Œå®ƒçš„ä½œç”¨å¯èƒ½åœ¨ä¸ä¹…的将æ¥å°±å°†é€€åŒ–为仅仅为了防script kids了。对于专业的spamå‘é€è€…æ¥è¯´ï¼ŒæŠ€æœ¯æ‰‹æ®µæ˜¯æ— 法防ä½ä»–们的,尤其在ä¸å›½è¿™ç§ä½ŽäººåŠ›æˆæœ¬çš„环境下,真的雇佣人æ¥è¯»CAPTCHA并且解读,都并éžä¸€ä»¶ä¸å¯èƒ½çš„事情。
— /看法完 —
今天å‘现了akismet这个网站。
通过RESTæž¶æž„æä¾›API,å…许blogè½¯ä»¶éªŒè¯æ¯ä¸ªCommentæ˜¯ä¸æ˜¯spam,然åŽå†³å®šæ˜¯å¦å°†å…¶å‘布到blog上é¢ã€‚WordPresså·²ç»å®žçŽ°äº†å¯¹åº”æ’件。
We can’t stand spam.
Who can? You have better things to do with your life than deal with
the underbelly of the internet. Automattic Kismet (Akismet for short)
is a collaborative effort to make comment and trackback spam a
non-issue and restore innocence to blogging, so you never have to worry about spam again.
Akismet is free for personal use.
In the spirit of helping the blogosphere as much as possible, we’ve
decided to make Akismet free for as many people as possible. We have free API keys available for your personal blog.
最近工作比较忙,所以åªèƒ½ä¸‹äº†çæžæžè¿™ä¸ªä¸œè¥¿ã€‚今天终于æžå®šäº†ï¼Œç„¶åŽçœ‹ç€æ•°å个Spam Comment瞬间æžå®šè¿˜æ˜¯å¾ˆæœ‰æˆå°±æ„Ÿçš„。
这个问题的关键在两个问题上:第一,如何得到一个Spam Commentçš„åˆ—è¡¨ï¼›ç¬¬äºŒï¼Œå¦‚ä½•åˆ é™¤å®ƒä»¬ã€‚
先考虑第二个问题。其实ä¸ç®¡Space的代ç å¤šå¤æ‚,最åŽå¯¹Blogçš„æ“作还是è¦ç»è¿‡HTTPä¼ è¾“çš„ã€‚æˆªèŽ·HTTPä¼ è¾“æ•°æ®çš„æ–¹æ¡ˆæœ‰å¾ˆå¤šï¼Œæˆ‘用的是TamperData这个Firefox扩展。简å•的找两个Commentsåˆ é™¤ä¸€ä¸‹ï¼Œå‘现对应的HTTPè¯·æ±‚æ˜¯è¿™æ ·çš„ï¼š
POST http://ftofficer.spaces.live.com/parts/blog/script/BlogService.fpp?cnmn=Microsoft.Spaces.Web.Parts.BlogPart.FireAnt.BlogService.delete_items&ptid=0&a=&au=undefined HTTP/1.1
Host: ftofficer.spaces.live.com
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.8.1.11) Gecko/20071127 Firefox/2.0.0.11
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Accept-Language: zh-cn,zh;q=0.7,en-us;q=0.3
Accept-Encoding: gzip,deflate
Accept-Charset: UTF-8,*
Connection: close
Content-Type: application/x-www-form-urlencoded
X-FPP-Command: 0
sc: [...]
Referer: [...]
Content-Length: 117
Cookie: [....]
Pragma: no-cache
Cache-Control: no-cache
cn=Microsoft.Spaces.Web.Parts.BlogPart.FireAnt.BlogService&mn=delete_items&d=[{1,%22cns!423B72634E2F6B7E!611%22}]&v2
其䏿œ€é‡è¦çš„ä¸œè¥¿å°±æ˜¯çº¢è‰²æ ‡è®°çš„éƒ¨åˆ†ï¼Œå‰é¢Cookieæ˜¯ä½œä¸ºä½ å·²ç»ç™»å½•到Live Spaceçš„è¯æ®ï¼›åŽé¢çš„一串å—符串就是è¦åˆ 除的Commentçš„ID。所以我们需è¦çš„工作就是获å–到这个ID,然åŽä½¿ç”¨HTTP釿”¾å°±å¯ä»¥äº†ã€‚æœ€åŽæˆ‘ç›´æŽ¥å·æ‡’用了NetCat,写了一个Request的模æ¿ï¼Œç”¨Perl替æ¢ä¸€ä¸‹å…¶ä¸çš„ID,用NC连上Live Spaceç„¶åŽé‡æ”¾å°±æ˜¯äº†ã€‚æ–¹æ³•å°±æ˜¯è¿™æ ·ï¼Œå¦‚æžœè¦åšæˆè½¯ä»¶å¯èƒ½è¿˜æ¯”è¾ƒéº»çƒ¦ä¸€ç‚¹ï¼Œçœ‹çœ‹æœ‰ç©ºå†æžï¼Œæœ€è¿‘实在太忙。
ç„¶åŽå›žåˆ°ç¬¬ä¸€ä¸ªé—®é¢˜ï¼Œæˆ‘们需è¦èŽ·å–到所有的Spam Comments的列表,这个问题ä¸å¯é¿å…çš„å°±è¦æŠŠSpace爬一éï¼Œæžšä¸¾å½“ä¸æ‰€æœ‰çš„Comments的内容,并一一判æ–ã€‚å¦‚æžœç¬¦åˆæŸç§æ¡ä»¶ï¼Œå°±å°†å…¶ID记录下æ¥ã€‚ä¸è¿‡è¦ä»Žå¤´åˆ†æžSpace的页é¢ç»“构并且枚举出ID和内容也是个很好大的工程,ä¸å¦‚找找有没有现æˆçš„æ–¹æ¡ˆã€‚ç»è¿‡ä¸€ç•ªGoogle,找到了Live Space Mover这个项目。这个项目当ä¸åŒ…括了枚举Live Space当䏿‰€æœ‰çš„Comments的功能,功能ä¸é”™ã€‚但是ä¸è¶³çš„æ˜¯åªèƒ½èŽ·å–到的是Comments的内容,å‘é€è€…这些信æ¯ï¼Œä¸åŒ…括对我æ¥è¯´æœ€é‡è¦çš„ID,ä¸è¿‡è¿™ä¸æ˜¯ä»€ä¹ˆå¤§é—®é¢˜ï¼ŒPython的脚本在哪里放ç€ï¼Œä»£ç æ”¹æ”¹å°±è¡Œäº†ã€‚è¿™æ®µä»£ç æ”¹è¿‡ä¹‹åŽï¼Œèб10分钟把Blog爬了一é,æˆåŠŸç”Ÿæˆåˆ—è¡¨ï¼Œç„¶åŽæ‹¿perlè§£æžä¸€ä¸‹ï¼Œè°ƒç”¨ä¸€ä¸‹nc,æžå®šã€‚
方案是有了,有空整ç†ä¸€ä¸‹ï¼Œåšä¸€ä¸ªç‚¹ç‚¹é¼ æ ‡å°±èƒ½æžå®šçš„东西,或者一个命令行æžå®šçš„东西。
å†è¯´å†è¯´ï¼Œå¿™å¾—很。有没有人自愿报å实践一下的?