11/08/2012

Dropbox Camera Upload功能的BUG修复


  作为一个Dropbox Camera Upload功能的资深用户,对于我Camera Uploads文件夹里数百个类似2002-12-08 12.00.00-1-2.jpg这种文件名的文件表示不能忍。
  我本来以为是MIUI的Bug,后来MIUI刷了几个月都没能解决。换了原生系统这毛病依然还在,果断去Dropbox的官方论坛搜索之。发现是有些拍照应用拍出来照片的EXIF信息出错造成的(感谢 Lihiniya https://forums.dropbox.com/topic.php?id=91810#post-504267)。虽然文件名和创建文件的时间没有了意义,但文件修改时间和拍照时间相差不大。于是打算用文件修改时间来修改文件名。
  开工,用Autohotkey写。基本思路是遍历Camera Uploads的所有文件,找出需要重命名的文件,然后一个一个的处理。好久没写过AHK了,花了两个多小时才写完。
  使用方法:直接打开exe文件,然后按开始键+2,输入你的Camera Uploads文件夹的地址,回车,它就会自动修改错误的文件名。PS:如果文件重名不会覆盖,会提示你无法重命名的文件名。
  编译好的exe文件链接:https://www.dropbox.com/s/gpthiuylklui3x0/fixDropboxCameraUploadTimeBug.exe
  源代码链接:https://www.dropbox.com/s/wnl6sg13qnc47e4/fixDropboxCameraUploadTimeBug.ahk
  源代码如下:
#2::
   InputBox, photoPath, Please Input the PATH of Camera Uploads , like:D:\Dropbox\Camera Uploads, , 300,128   ;input setting
   if ErrorLevel
      MsgBox, Exit,88~
   else
   {
      photoPath := RegExReplace(photoPath,"\\$","")   ;删除末尾多余的\ | Delete the extra \ in the end of the path
      ;MsgBox, You entered "%photoPath%"
      Loop, %photoPath%\*.*, 0, 1    ;Loop the input fold
      {
          ;MsgBox, 4, , Filename = %A_LoopFileFullPath%`n`nContinue?
          tempFile = %A_LoopFileFullPath%
          FoundPos := RegExMatch(tempFile, "2002-12-08 12.00.00")   ;detect one file is a file with time bug
          if FoundPos
          {
             ;msgbox %tempFile% %FoundPos%
             renameOneFile(tempFile)   ;process one file
          }
      }
   }
return

renameOneFile(filePath)
{
   FileGetTime, modifiedTime, %filePath%    ;get the modified time
   ;tempFileFullPath := RegExReplace(modifiedTime,"(\d4)(\d2)(\d2)(\d2)(\d2)(\d2)","$1-$2-$3 $4.$5.$6")
   tempFileFullPath := RegExReplace(modifiedTime,"(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})","$1-$2-$3 $4.$5.$6")    ;convert only number time to the Dropbox format file name
   tempFileFullPath := RegExReplace(filePath,"(?<=\\)[\d-\. ]{19,}(?=.[a-z]{3})",tempFileFullPath)  ;add path
   ;msgbox %filePath%`n%tempFileFullPath%
   FileMove, %filePath%, %tempFileFullPath%, 0   ;change the file name
   if ErrorLevel
     msgbox %filePath%      ;msg the file path that cannot be changed for user
   return
}

Fix a Bug of Dropbox Camera Upload


I, as a senior user of the feature of Dropbox, especially the feature of Camera Upload, cannot endure the hundreds of photos with such name 2002-12-08 12.00.00-1-2.jpg in my Camera Uploads fold.

Long time ago, I suppose that its the bug of MIUI, a Chinese Mobile OS based on Android. But later I realized the bug didn't relate to the OS because the error-name bug still exist with several versions of MIUI, and even with the native Android OS. So I search in the official forum of Dropbox and thanks for Lihiniya(https://forums.dropbox.com/topic.php?id=91810#post-504267). The problem is the app that cannot provide right EXIF information for their photos. So, I decide to resolve this problem by modify the wrong name. I use the modified time of photo because it's the nearest time of the right time.

I write the program by Autohotkey. Basicall, travel all files in the Camera Uploads fold, and figure out the files needed rename, then process each one. I spend two hours to write this little thing, because I haven't wrote AHK code long time.

The tutor: open the exe file, press Win key & 2, input your Camera Uploads fold path, Enter, it will modify your wrong name files automatically. PS: It will warn you by display the file path if one file cannot be renamed.

The link of exe file: https://www.dropbox.com/s/gpthiuylklui3x0/fixDropboxCameraUploadTimeBug.exe

The link of ahk file: https://www.dropbox.com/s/wnl6sg13qnc47e4/fixDropboxCameraUploadTimeBug.ahk

The source code:
#2::
   InputBox, photoPath, Please Input the PATH of Camera Uploads , like:D:\Dropbox\Camera Uploads, , 300,128   ;input setting
   if ErrorLevel
      MsgBox, Exit,88~
   else
   {
      photoPath := RegExReplace(photoPath,"\\$","")   ;删除末尾多余的\ | Delete the extra \ in the end of the path
      ;MsgBox, You entered "%photoPath%"
      Loop, %photoPath%\*.*, 0, 1    ;Loop the input fold
      {
          ;MsgBox, 4, , Filename = %A_LoopFileFullPath%`n`nContinue?
          tempFile = %A_LoopFileFullPath%
          FoundPos := RegExMatch(tempFile, "2002-12-08 12.00.00")   ;detect one file is a file with time bug
          if FoundPos
          {
             ;msgbox %tempFile% %FoundPos%
             renameOneFile(tempFile)   ;process one file
          }
      }
   }
return

renameOneFile(filePath)
{
   FileGetTime, modifiedTime, %filePath%    ;get the modified time
   ;tempFileFullPath := RegExReplace(modifiedTime,"(\d4)(\d2)(\d2)(\d2)(\d2)(\d2)","$1-$2-$3 $4.$5.$6")
   tempFileFullPath := RegExReplace(modifiedTime,"(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})","$1-$2-$3 $4.$5.$6")    ;convert only number time to the Dropbox format file name
   tempFileFullPath := RegExReplace(filePath,"(?<=\\)[\d-\. ]{19,}(?=.[a-z]{3})",tempFileFullPath)  ;add path
   ;msgbox %filePath%`n%tempFileFullPath%
   FileMove, %filePath%, %tempFileFullPath%, 0   ;change the file name
   if ErrorLevel
     msgbox %filePath%      ;msg the file path that cannot be changed for user
   return
}

11/06/2012

美国宪法与政治制度



看了高晓松讲美国大选。感觉他对美国政治制度的看法太表面了,譬如先贤们多么伟大,美国制度多么牛,美国宪法多么厉害至今200多年一字未改等等。 当然也有可能是时间原因没法详细阐述自己的观点。 近期写篇博客讲讲自己的看法把。@xcv58 @zx358 你一定要来看这一篇啊,以前给你讲的太不具体了。

--------------------------------分割线--------------------------------

美国宪法真的是一字未改吗?
  其实这个说法根本不值一驳,因为「与许多国家的宪法不同,美国宪法的修正案并不对宪法本文进行修改,而是在宪法后进行附加。即使宪法的原文显得过时或者应该被废止,但仍然不能被直接删除或者修改。」 引用自:http://goo.gl/Iy2HZ 当你看完这段话后再说「美国宪法多么多么伟大,这么多年来一字未改」,不觉得荒唐码?
  但其实美国宪法确实修改过,但修改的很少。成文的修改包括27条宪法修正案,其中有18世纪有11条宪法修正案,19世纪4条,20世纪12条,21世纪还没有任何宪法修正案。其实最近几十年来的宪法修正案并不是特别重大的事项。咱们看看1971年的第26条修正案:「保护18岁以上公民选举权」和1992年的第27条修正案:「禁止随意改动议员薪酬」。我认为美国宪法如此厉害的原因之一在于宪法本身与美国的政治制度。另外一个更为重要的原因是二百多年来美国司法界人士争取司法独立的努力有关。
  其实在美国建国之后司法独立并没有实现,甚至一直到现在都还有人质疑美国的司法独立。但司法独立本身不是靠宪法条文就能实现的,就像某国的宪法里规定公民「有言论、出版、集会、结社、游行、示威的自由」,而现实是只有奉旨游行才是合法的游行,到解放碑下喝茉莉花茶就得被劳教。言归正传,既然宪法文本本身不能保证司法独立,那美国人怎么做到司法独立的呢?这就不得不提约翰·马歇尔和「违宪审查权」和马伯里诉麦迪逊案。这里的过程与细节任东来先生讲的很清楚:http://news.163.com/08/0221/13/457SD57G00012GGE.html 关于美国的司法制度在任先生的书《美国宪政历程-影响美国的25个司法大案》里讲的也非常清楚:http://book.douban.com/subject/1144185/

--------------------------------分割线--------------------------------
  
美国的国父(先贤)真的是大公无私吗?
  高晓松说美国先贤不图私利,其实如果详细了解美国制宪的历程估计他的观点会完全反转。在费城的制宪会议上几乎各个环节都有争论,从制宪会议本身的合法性这类大的问题到小的问题诸如公务人员的工资安排都有激烈的争论。就拿大邦与小邦来说大邦要求按人头投票,小邦要求按邦投票,这些不正是他们的代表真正代表当地人民利益而不是代表全美国人民的表现吗?国父们不但在关于制定宪法的费城会议上不停地争论宪法各个方面的问题,甚至当宪法成稿之后还有人拒绝签字。关于费城制宪的细节易中天先生在《美国宪法的诞生和我们的反思》讲的非常详细:http://book.douban.com/subject/1511498/

--------------------------------分割线--------------------------------

美国的制度真的很厉害所以美国才强大吗?
  这个观点很多人都提到过,我以前也深信不疑。但随着后来看了一些关于美国宪政、金融历史、司法史的书。我开始逐渐怀疑这个观点。我首先承认美国的制度很强大很厉害,但光靠制度行吗?我认为不行,至少美国在19世纪的时候法律界是非常腐败的,也有朋友给我说美国社会在20世纪60年代是非常黑暗的。也可能朋友说的不准,但斯科特诉桑福德案是公认的严重损害了美国最高法院的威望的判决,具体内容:http://goo.gl/FsjPw 我的观点是:制度要好,但人要不犬儒才行,犬儒的人会把最先进的制度搞的一团糟。中国的近代史就是明证:拼命比坏,没本事读书也没本事打仗的就搞搞暗杀,弄点会党搞所谓的革命;革命完了还得靠军界的人撑住场面,北洋的人虽然也无所不用其极,各种手段用尽但至少有点底线:只要权不杀人还能给点费用赡养老年;大家小时候挺恨现在更恨的那个委员长就更不堪了点,正经手段不用竟用些暗杀之类的手段;再后来的那个就更不得了啦,都是斩草除根全团活埋也是小case;最终最坏的那个成功上位,祸害至今。

9/10/2012

路西法效应与洗脑

  看完《路西法效应》(津巴多教授,斯坦福监狱实验)已经快半个月了。看得时候一直想写篇博客当作读后感来着,但一直没动笔。可能是之前已经看了太多有关这个监狱实验的文章、讲座、甚至是电影,自己的感受都已经被他们表达完了。不过最近恰逢香港政府要强推所谓的国民教育,我想到了一些和《路西法效应》有关联并很有意思的事。
  首先简单介绍一下斯坦福监狱实验,这是津巴多教授在斯坦福大学旁边的小城市做的一个社会学实验。他为了了解普通人变成囚犯的心理过程,以及情境对人的行为的影响作用。津巴多招募了一批大学生(有回家过暑假的本地人和在当地上学的学生),随机地让其中一部分人扮演囚犯,另一部分扮演狱卒。这个实验进行了几天就完全无法继续下去了。因为大部分狱卒都变得无比残暴,以羞辱囚犯为乐。而囚犯在组织了几次没有成功的暴动之后分化为几种人,一部分变得无条件服从狱卒的命令,还有人已经因为不堪忍受提前退出了实验,还有人以绝食来对抗狱卒的暴行。如果想要了解更多请自己Google之。
  在《路西法效应》这本书里提到了很多细节是以前我不知道的。一是监狱的最高管理者是由津巴多教授自己来担任,他在书中坦诚自己也被监狱这个情境以及自己所扮演的角色所影响了。他说在实验过程中的他不自觉地把一些不正常的现象归因为某个囚犯的性格因素,而不是实验或者狱卒出了问题。二是在实验过程中竟然还有一个提前退出的囚犯打算召集一批人从外部推倒这个监狱。尽管这个囚犯最终没有实施这个计划,津巴多教授还是很慌乱地做了很多应对措施。三是这个实验为了力求真实还安排了探视时间。并且在探视时间之前,狱卒们会尽可能地善待囚犯。在探视过程中,囚犯也会尽量隐瞒他所受的折磨。四是有一个卧底囚犯竟然成了真正的囚犯。在经历了几次暴动之后,津巴多教授为了进一步了解囚犯的行动,安排一个知道实验目的的人员进入监狱扮演囚犯,结果他并没有告知教授,并且似乎比其他囚犯更恨狱卒。当然如果想了解更多的细节还是需要您读一遍《路西法效应》。放心,不是很长。
  津巴多教授要表达的意思就是,很多时候情境的影响比人的思维更加有力。譬如别人无意间的一个词语完全可以改变绝大多数人的行为(书中介绍的另一个实验,无意间的词语是实验的一部分)、一个匿名的警员来电可以让管理人员逼迫女员工接受裸体检查,甚至被人猥亵(真事)、权威人士的一句话可以另人残暴地折磨别人(书中提到的另一个实验,相信很多人知道)。津巴多教授用他的斯坦福监狱实验证明了监狱这个社会实验是完全失败的,因为它会立即地造成狱卒和囚犯的冲突、迫使狱卒折磨囚犯、抹杀囚犯的人格、制造更多的恶。好了这方面不多说了,在书里津巴多教授说的比我好多了。
  说说国民教育吧。看了很多人的言论:有人说国民教育一定不能搞,搞了就会造成香港的沦陷;有人说国民教育可以搞,但不能强制,也不能用官方规定的教材;有人说搞了也没事,反正大家都不信;有人说就因为不信反而会出更大的事,搞得整个国家都这么犬儒。
  我当然是支持不能说谎的了,无论任何时候都不应该用谎言来作为做某事或者不做某事的手段。既然不能有谎言,国民教育就应该告诉我们国家和政府是两码事、告诉我们大跃进到底造成了多少损失,所谓的煤炭行业钢铁行业的长足进步到底是怎么回事、告诉我们所谓的三年自然灾害的真相,到底饿死了多少人,到底是苏联逼债还是愿意提供粮食援助而毛泽东不接受反而提出要提前偿还贷款、告诉我们文化大革命到底害死了多少学者,有没有官方统计的名册,纪念,反思、告诉我们为什么人们在打倒四人帮之后总是伸出五个手指来痛骂四人帮、告诉我们胡耀邦为什么下台、告诉我们为什么89年这么敏感,为什么每年的5月35日会删除这么多的微博,帖子,用户、告诉我们什么是民主与法制、告诉我们世界上并不仅仅一种正确的哲学。可是他们敢吗?
  要我说,国民教育当然是不能搞。津巴多教授说一个无意间的词语都能影响人作出正常的判断。何况从小就不得不接触的教育。我们总是认为对那些我们不信的东西有天然的免疫力,其实我们错了。看看有多少人以为世界上只有一种正确的哲学、看看有多少人敢言之凿凿地说日本在南京杀了30万人、看看有多少人提到美国就猛喊霸权主义,提到绿卡就两眼冒绿光、看看又多少人以为爱这个国家就必须爱这个党,不爱党就是不爱国。我们怎么可能不受那些来自书本、报纸、杂志、电视、论坛、五毛微博等全方位轰炸的荒唐言论的影响呢。他们不但说谎、而且知道我们知道他们在说谎。但是这种谎言仍然生气盎然的存在,理直气壮地声明它代表了伟大、光明、正确。在这何其荒唐的情境下我们都是这个大监狱的囚犯,其实那些狱卒何尝不是受害者呢?

7/15/2012

《搜索》

  今天看了《搜索》,很受感动。童靴们,千万不要被豆瓣上的一/二星党给坑了。这是一部近年来国产电影为数不多值得看的电影之一。
  以下内容有剧透,不喜勿看!
  首先最大的看点就是网络舆论与搜索逼死人,我觉得这一点确实挺真实的。并不像一些人说的那样不符合逻辑或者陈凯歌不会讲故事。我们每个人的生活中都充满了巧合,「历史必然性」是不存在的(感兴趣的请看卡尔·波普尔的《历史决定论的贫困》),而电影为了塑造一种戏剧化的效果自然会有比我们所谓的「常识」中更多的巧合。这并没有什么。恰恰相反,如果有些地方不合理反而更加真实些。举例来说,凤姐刚出来的时候很多人都不相信这是真的。换个说法,在日常生活中,你能从一个单一前提出发解释一切事物和所发生的一切现象吗?如果你能,那请按Alt+F4或者Command+Q。
  好了,那些**主义者都不在了。既然我们承认没有一种单一的前提可以解释一切事物和所发生的一切现象,那我们自然不能承认这样的解释「没有网络舆论她也会自杀的」、「叶篮秋是自己寻死」等。我只能说或许她的死有网络舆论的原因。
  说完逻辑,再说说如何才能避免这种悲剧的发生。很明显,是信息不对称造成的这个悲剧。如果像三体里肯定不会发生这种悲剧,检查出癌症时就该直接脱水了^.^。当然,我是一向不承认存在「信息对称」的。但如果小叶在沈流舒的办公室说出自己得了癌症,相信他肯定会不惜代价地去维护她,从而避免这个悲剧的发生。说不定还会像原本已放弃治疗的白血病患者鲁若晴一样。鲁若晴不就是一个表现网络舆论正能量的活生生的例子吗?
  再说新闻伦理。在一个有真理部、动辄非通稿不能发、经常有报道禁区、官方媒体公然并且经常扯谎、几乎所有媒体都分不清报道与评论的区别的国家,你说新闻伦理。我只能说呵呵后。
  然后说说爱情,「想让他爱上你,就让他和你一起蹦极吧。」这句台词真的很赞。By the way,很久之前我就想去蹦极了,就是木有妹子同去,求妹子同去蹦极啊!
  人性、社会、压力、道德这些今天不想谈。每个词都够单独写篇博客的了。
  《搜索》是一部值得看的电影,它反映了很多当下的社会现象,或许可以引起人们对道德与人性的反思。它让我意识到Stay Foolish很重要,不要轻易地用道德大棒去碾压别人,每个人都有不适的时候。希望能有更多的人意识到尊重他人就是尊重我们自己。
  再吐槽一下豆瓣上的低分党们,神马「给三星以上的都是狗。」,「陈凯歌继无极和赵氏孤儿后又一力作」、「有赵又廷的电影必是烂片无疑」等奇葩言论。这都tmd什么逻辑,还在这说电影拍的没有逻辑。在这个精神病大国里,永远都不愁找到各种精神病患者。

6/13/2012

千万别在Mac上安装Windows


  千万不要在Macbook上安装Windows 7,如果已经安装Windows 7千万不要手贱用压缩卷添加分区。我就这么干了,结果这将近30个小时基本上都浪费了。
  昨天下午我爸的干儿子的爸爸,把他的2011款Macbook air 13拿来让我帮忙装个Windows 7。我想以前也给别人的air装过Windows 7,熟门熟路的,稍微搜索个教程把几个流程一过不就成了。于是满口答应,还说最多四个小时就能来取。
  于是悲剧开始了,开始一切正常。用Boot Camp分区,用U盘引导进入安装界面。装Windows 7,然后装提前在我台式机上在Apple官网下载好的BootCamp_3.3,竟然安装不能。再去官网看,最新的就是3.3啊!只好放狗搜索,发现竟然得先装3.1,再装3.2,再装3.3⋯⋯这不是坑爹吗。这时候我选择了双管齐下,一边在Mac上用Boot Camp下载「最新的Windows支持软件」,一边继续搜索,才发现还有BootCamp 4.0!然后上迅雷,离线下载高速通道全开,Mac同时也在下载。这时候已经是晚上8点左右。在「我们这儿」的网络,你懂得,自然是Windows上先下载好。又怕不兼容,打算还是等Mac上下载完之后再说,慢就慢吧顶多一个通宵就成了。谁知道没过一会滚动条突然从不到三分之一直接变为完成。于是进入Windows开装驱动。装好之后看了看还可以,为了避免兼容性我用的是32位版的Windows 7,一看竟然发现内存只能使用2G多还不到3G。这是第一次手贱。
  我想都这么晚了,今天肯定不来拿了,干脆直接弄的完美点装个64位的吧。于是开始烧录U盘、安装、装驱动。64位的用着就是不一样,但我又手贱了,看了C盘139G,想想这些中老年人已经认识到用电脑「软件要装D盘,资料也不能放C盘」(我现在极度反感这么做,而且我的软件绝大多数都是放到Dropbox里的,需要安装的一律默认位置,关键是用软件用得少啊,一个Chromium基本上就够了)。我说干脆试试压缩卷吧,让他用着更习惯。重启一切正常。然后分配盘符,提示失败,但在explorer里显示的有盘符无空间提示。又重新分配新盘符,这次正常了。再重启,砸了。win 7蓝屏启动不了,mac系统丢失。搜索一翻,先试用了下Remote Recovery,这时候「我们这儿」的网络又发威了,竟然连apple.com都ping不通,自然mac上是各种报错。幸好同时下了两个lion的安装文件,准备明天制作一个U盘试试。
  第二天刚打开电脑,air的主人就来问是否安装好了。如实回答,本来装好了,但又弄坏了,还得重装。抱着最后一线希望问了问有没有随机U盘,然后就彻底死心了,果然2011款是木有U盘的。然后发现在Windows下Lion的DMG文件竟然刻录不能,UltraISO可以打开,但不能写入U盘,一直提示我8G的U盘容量太小!又试了试Remote Recovery,竟然能连接上了,就是速度像蜗牛一样,不蜗牛都比它快多了。放那等待的同时,我意识到中文世界里很难找到让Windows可以把DMG文件写入U盘的方法了。于是开始去www.google.com/ncr进行探险。还是找到了方法,用UltraISO把DMG转换为ISO文件然后再写。还真行,但还是提示容量小。继续搜索,找到了PowerISO,下载试用版,竟然写入成功!这时候MAC网络恢复的进度才走到一半,还是第一个进度。果断放弃,开机option看到Windows和有USB标志的Mac Lion,一阵欣喜,点进去竟然是个禁止的图标。无奈继续尝试网络恢复,这一次等了有4小时+,但进度条从来就没超过十分之一。然后一阵猛搜,发现2011款的air很特殊,必须11C74的才行。幸好昨天在115上下过这个版本。只是当时才下了一半。等到下午3点左右,下好解压之后竟然我电脑上所有有关写入U盘或者虚拟光驱的软件都不能打开这个DMG文件。幸好早上就已经问到了一个朋友说她朋友有用mac的,但下午才能给我回话。下午4点半终于说好了,打车到她家,又等她朋友提着电脑来。把提前存到pinboard的教程拿出来,每步认真做好终于搞定启动U盘。然后就是一路顺风的全新安装Lion,再装Windows 7,装各种软件。直到现在晚上10点开始在Mac上写这一篇博客。
  其实,遇到这种安装Windows 7用压缩卷添加分区之后Windows启动不能(出现那个很帅的动态徽标之后蓝屏),Mac直接消失的情况有一种暴力解决办法。直接再重装Windows 7,但不用BootCamp的安装程序进行驱动安装,到drivers文件夹里手动安装各种驱动。这样可以正常使用Windows系统,但Mac系统就找不回来了。在我朋友没给我回话的时候我已经这么干了。当时想如果借不到Mac或者借到之后Lion启动盘弄不好就这样交差得了。
  PS:我是绝对不会在自己的Mac上装Windows的,这太蛋疼了,而且不科学!网银神马的用虚拟机或者wine就够了。

6/04/2012

纪念64


  五年前,我还不知道「64事件」到底是怎么回事。只是懵懵懂懂地知道有学生被这个不合法的政权杀害了。具体为什么、整个事件的过程、当时的背景皆不知道。后来逐渐看了一些文章、书籍与音像资料,渐渐地了解到了一些当时的历史。听过当时学生领袖的说法、也听过一些人的辩解,更见过各种或自费或收费的辩驳。在这里我无意去澄清或总结出什么结论。只是想好好地纪念一下这个灾难。
  一个不合法的政权、一个号称「伟大、光明、正确」的政权、一个将一党专政写进所谓宪法的政权未经任何合法的程序杀害了这个国家的民众。这是无可置疑的事实,而且我相信每一个有人性的人都不能回避这个事实。德国有被害犹太人纪念碑、美国有越战退伍军人纪念碑、日本有靖国神社,可是我们呢?我们不光没有被杀害学生的姓名;公元2008年汶川地震被劣质校舍害死的学生亦没有姓名;公元2011年7月23日遇难的乘客亦没有姓名;揭露了食品安全的赵普据说被停职了,即使没有被处理却再也没有在电视荧幕上看到过他;这个单子一直列下去恐怕要比美国的人权报告还要长。
  其实纠结于这些「琐事」没有什么意义。这个自称「伟光正」的党可以抢劫并杀害地主乡绅、可以把提出不同意见的人划为右派、可以饿死三千多万人而不予任何援助。而这些,从来没有一个名单、道歉、说法、甚至连表面认个错都没有。竟然还有人指望它复兴中国,哈哈!
  当然,中国的问题不全由这个邪恶的党造成的。但具有正常逻辑与知识的人都不能否认:共产党对中国犯下的罪行、带来的倒退远远大于它所带来的益处。就像微博上很流行的说法:“我家世世代代都生活在这块土地上。满洲人来了,我这块土地是我的;八国联军来了,这块土地还是我的;袁大头来了,这块土地依然是我的;连TM日本鬼子来了都没好意思说这块土地是天皇的。现在你来了,理直气壮地说这块土地是你借给我的——你TM算个什么东西?”国家的权利属于人民,这是任何一个具有文明的社群都必须承认的。它不仅偏偏不承认,还一直想方设法地去奴役人、禁锢人的思维、往孩子脑袋里灌输邪恶的理论。当它不能消灭人的思想的时候,就会从肉体上抹掉你。当然,所谓的中国的传统也在其中起到很大的作用。就像黄仁宇在《万历十五年》中所述:
  「当一个人口众多的国家,个人行动全凭儒家简单粗浅而又无法固定的原则所限制,而法律又缺乏创造性,则其社会发展的程度,必然受到限制。即便是宗旨善良,也不能补助技术之不及。1587年,是为万历十五年,丁亥次岁,表面上似乎是四海升平,无事可记,实际上我们的大明帝国却已经走到了它发展的尽头。在这个时候,皇帝的励精图治或者宴安耽乐,首辅的独裁或者调和,高级将领的富于创造或者习于苟安,文官的廉洁奉公或者贪污舞弊,思想家的极端进步或者绝对保守,最后的结果,都是无分善恶,统统不能在事业上取得有意义的发展,有的身败,有的名裂,还有的人则身败而兼名裂。因此我们的故事只好在这里作悲剧性的结束。万历丁亥年的年鉴,是为历史上一部失败的总记录。」
  「在美国读书和打工时,我常被在中国的痛苦回忆所折磨,不时陷入沉思。后来当教师,拿着麦克风站在五百名大学生面前,无法立即解释:为何康有为失败了,孙中山失败了,袁世凯失败了,张作霖失败了,陈独秀失败了,蒋介石失败了,而毛泽东也失败了。为使我的讲课内容前后一致又有说服力,唯一的方法就是说,中国的问题大于上述人士努力的总和。中国文明将和西方文明融合的说法,是人类历史上空前的事件。上述不同阶段的失败必须被视为阶段的调试,以达成一致的终点。对我们这些有后见之识的人来说,这点很明显,但舞台上的演员看不到。」
  而这个邪恶的党正是把所谓传统中最糟粕的部分拿来作为它愚弄人的工具。很多国人以宽容是美德,去宽容政权的恶、但不去宽容个人的过;以中庸为美德,去放弃理想、甚至嘲笑坚持自己的人;以吃苦为美德,只知道劳动、而不尊重知识;以谦虚为美德,表面恭维、背后咒骂。满口的仁义道德,一肚子的男盗女娼。
  今天在这里纪念六四,不仅是为了纪念过去、更是审视当下。还要勉励自己,做一个堂堂正正的人。

  令:从昨天开始就想写一篇文章纪念一下。但一直没什么思路,今天下午有朋友问写好了没。才写了这么一篇随笔,没什么特殊的含义,只是把我此时此地所想所思记录下来。

5/31/2012

cnbeta关键词屏蔽

  相信不少童靴都看cnbeta这个网站。我以前是用Google Reader订阅看,后来渐渐发现一天百十条甚至数百条的新闻实在hold不住。而且很多我感兴趣领域的新闻也可以在其他更加专业化的网站上迅速地获取到,遂退订。但不得不承认在某些即时新闻的发布上cnbeta是有很大的优势。但有些口水仗,疑似软文的鸡肋文也过多了。遂写了一个js脚本,可以在cnbeta的主页上屏蔽含有特定关键词的新闻。
  本来打算做个chrome扩展的。昨晚花时间学了一下,老是卡在这个函数的使用上:chrome.tabs.executeScript。求大虾指点!干脆直接把js代码放出,反正看cnbeta的没几个不会改脚本的。


  代码如下,如需自己增加关键词修改『'小米|特供'』即可。
javascript:(function(){ var v = new RegExp('cnbeta.com'); var filter = new RegExp('小米|特供'); if (!v.test(document.URL)) { return false; } {a=document.getElementsByClassName('newslist');{for(var i=0;i<a.length;i++){if(filter.test(a[i].innerHTML)){a[i].style.display='none';}};}return;}})();

  或者直接:拖我到书签栏! 

5/30/2012

批量删除Kindle Library中的文档

  我一般都是用邮件给自己的Kindle、Kindle App for iOS/Android发送书籍文章。也直接用dogear狗耳朵ikindle爱看豆等订阅新闻之类的,不用连线的感觉很爽!经常用这个功能的童靴们都知道,每一个文档都会在出现你的Kindle Library中。长期积累下来想找一个以前传送过的文档很麻烦,尤其是Kindle Library还不支持中文搜索。
  我用dogear狗耳朵每日推送的看完就删除,但一直留在Kindle Library实在很烦。而且在Kindle Library里边还得一个一个地删除,每次删除一个文档页面就要自动刷新。在手工删了几十个之后实在不能忍了,只好放狗搜索。在Kindle forum里找到一个解决办法:http://goo.gl/ggjBH。但是他的方法只能一下子删除一整页(15个)。或者进行搜索,在搜索结果页面进行删除。于是自己基于Giacomo1871的脚本修改了一下。
  使用方法如下,译自英文回复:
  非常感谢Giacomo1871。你的方法确实有用!我另外做了一个可以更加灵活地删除条目的Bookmarklet。类似地:1.将代码加入书签栏。2.在Personal Documents页面,点击一下这个书签,然后在每个条目之前会出现一个复选框。3.选择你想删除条目对应的复选框。当然也有全部选择、全部不选和反向选择的快速连接。4.再次点击书签,被选择的条目将被删除。
  代码如下:
javascript:(function(){ var v = new RegExp('PersonalDocuments'); if (!v.test(document.URL)) { return false; } {a=document.getElementsByClassName('rowBodyCollapsed');b=document.getElementsByName('checkboxForDelete');if(b.length==0){document.getElementById('Row1Button').innerHTML += "<a href='javascript:(function(){for(var i=0;i<b.length;i++){b[i].checked=true;};})();'>All</a><a href='javascript:(function(){for(var i=0;i<b.length;i++){b[i].checked=false;};})();'> None</a><a href='javascript:(function(){for(var i=0;i<b.length;i++){b[i].checked=!b[i].checked;};})();'> Reverse</a>";for(var i = 0; i<a.length; i++){ tmp=document.getElementById('Row' + (i+1) + 'Button'); tmp.innerHTML += "<input type='checkbox' name='checkboxForDelete' />";};}else{for(var i = 0; i<b.length; i++){if(b[i].checked){Fion.deleteItem('deleteItem_'+a[i].getAttribute('asin'));}};}return;}})();

请使用下面的代码,修复了某些浏览器中在非Personal Documents页面中执行脚本会跳转页面的bug:
javascript:(function(){ var v = new RegExp('PersonalDocuments'); if (!v.test(document.URL)) {alert("The script can only work in Personal Documents!");}else{a=document.getElementsByClassName('rowBodyCollapsed');b=document.getElementsByName('checkboxForDelete');if(b.length==0){document.getElementById('Row1Button').innerHTML += "<a href='javascript:(function(){for(var i=0;i<b.length;i++){b[i].checked=true;};})();'>All</a><a href='javascript:(function(){for(var i=0;i<b.length;i++){b[i].checked=false;};})();'> None</a><a href='javascript:(function(){for(var i=0;i<b.length;i++){b[i].checked=!b[i].checked;};})();'> Reverse</a>";for(var i = 0; i<a.length; i++){ tmp=document.getElementById('Row' + (i+1) + 'Button'); tmp.innerHTML += "<input type='checkbox' name='checkboxForDelete' />";};}else{for(var i = 0; i<b.length; i++){if(b[i].checked){Fion.deleteItem('deleteItem_'+a[i].getAttribute('asin'));}};}return;}})();



For English Users:

Thanks for Giacomo1871. It does work! And I've made another bookmarklet can delete items more flexibly. Likewise: 1.Make a bookmarklet. 2.In personal documents page, click the bookmarklet, and there will be a checkbox in front of every item. 3.Select the box if you want delete the item, and there are three links can select ALL, NONE and REVERSE. 4.Click the bookmarklet again, the selected items will be deleted perfectly!
Here you are:
javascript:(function(){ var v = new RegExp('PersonalDocuments'); if (!v.test(document.URL)) { return false; } {a=document.getElementsByClassName('rowBodyCollapsed');b=document.getElementsByName('checkboxForDelete');if(b.length==0){document.getElementById('Row1Button').innerHTML += "<a href='javascript:(function(){for(var i=0;i<b.length;i++){b[i].checked=true;};})();'>All</a><a href='javascript:(function(){for(var i=0;i<b.length;i++){b[i].checked=false;};})();'> None</a><a href='javascript:(function(){for(var i=0;i<b.length;i++){b[i].checked=!b[i].checked;};})();'> Reverse</a>";for(var i = 0; i<a.length; i++){ tmp=document.getElementById('Row' + (i+1) + 'Button'); tmp.innerHTML += "<input type='checkbox' name='checkboxForDelete' />";};}else{for(var i = 0; i<b.length; i++){if(b[i].checked){Fion.deleteItem('deleteItem_'+a[i].getAttribute('asin'));}};}return;}})();

Please use the code blow below, fix a bug existed in a few browsers which would redirect page if you run this script in the NONE Personal Documents page:
javascript:(function(){ var v = new RegExp('PersonalDocuments'); if (!v.test(document.URL)) {alert("The script can only work in Personal Documents!");}else{a=document.getElementsByClassName('rowBodyCollapsed');b=document.getElementsByName('checkboxForDelete');if(b.length==0){document.getElementById('Row1Button').innerHTML += "<a href='javascript:(function(){for(var i=0;i<b.length;i++){b[i].checked=true;};})();'>All</a><a href='javascript:(function(){for(var i=0;i<b.length;i++){b[i].checked=false;};})();'> None</a><a href='javascript:(function(){for(var i=0;i<b.length;i++){b[i].checked=!b[i].checked;};})();'> Reverse</a>";for(var i = 0; i<a.length; i++){ tmp=document.getElementById('Row' + (i+1) + 'Button'); tmp.innerHTML += "<input type='checkbox' name='checkboxForDelete' />";};}else{for(var i = 0; i<b.length; i++){if(b[i].checked){Fion.deleteItem('deleteItem_'+a[i].getAttribute('asin'));}};}return;}})();

3/23/2012

评论两个新产品:百度网盘和QQ圈子

    本文将评论两个流氓两家公司最近发布的两个新产品:百度网盘和QQ圈子。
    首先说说百度网盘。我的评论只有两个字:不行。

  • 光靠给用户大空间(15G)是不行的。即使想靠大容量去打压竞争对手,至少也需要用户付出一些代价而获得这个优势。不劳而获会令用户觉得没有价值,同时也不利于用户粘度的建立。
  • 配套的推广措施没有同时上线是不行的。进入pan.baidu.com之后点击左下角的奖励空间,会发现三种可以获得额外容量的活动都是“即将开通”状态。互联网时代——尤其是微博时代——这种有希望产生爆炸式增长的促销活动竟然是“即将开通”,这个即将开通会减少多少潜在客户?谁也无法精确的统计。但定性的结论无疑是否定的。
  • 只有PC和Android两个客户端同时上线是不行的。即使加上Web端也就三个。相信这是远远不够的,不苛求像Evernote或者Dropbox那样做到几乎全平台支持。至少以百度的技术能力,做到iOS、Android、PC端同步上线只是个及格线吧?
  • 客户端体验做的这么差是不行的。用户体验这个东西几乎是主观的,几乎没有一个客观的评价标准。但作为一个几乎国内外每种网盘客户端都用过的用户来说,百度网盘的体验无疑是属于最差的那一梯队里边垫底的。Less is more这帮土鳖可能永远都听不到。当然这只是我的个人看法,欢迎非方舟子式的辩论。

    下边再说说QQ圈子这个逆天的产品。相信用过QQ圈子的人都对它的变态程度有所了解。对于企鹅的批评我也不想在这里累述。只在这里表达一下我自己的不同意见。
    虽然QQ圈子是天朝特殊国情的产物,但这种商业公司通过不那么光彩的手段获取我们隐私的事情是不可避免的,而且肯定会越来越多。一是技术进步永远走在立法和行业规范的前面。立法机构和行业规范的制定者很难预先知道技术进步的细节和可能的应用。甚至就目前现有的技术应用都很难做到合理的限制。这或许就是自由的代价之一。
    被泄露出来的隐私真的有我们想象的这么多吗?我觉得未必。除了寻前度之外的隐私,我觉得都是很容易通过其他渠道获取的。但前度这个事吧,真不太好说。
    现在真正使用过QQ圈子的用户有多少?可能10%都不到,即使超过了10%,相信相对于全体QQ用户也是少数。在我们这些比较喜欢新奇东西的人中间,关注自己隐私的比例是要远远大于普通的QQ用户的。那些沉默的大多数怎么看,怎么想?目前还不得而知。不能否认,沉默的大多数的意见往往是和善于发声的群体不一致的。
    关于善恶。我觉得这事无关善恶,法不禁止即允许。当然天朝的法,╮(╯▽╰)╭

3/20/2012

你赞同理科男这种说法吗?为什么?如果赞同,赞不赞同80后,90后,00后这种分类方法?为什么?

    我不赞同理科男这种说法。原因如下:
    1.理科文科这个概念就很不合适,甚至有点荒谬。自认为没水平从科学史的角度分析这个问题,但相信这几个观点是没有争议的:“理科工科文科等的划分是来源于西方科学的”;“西方科学在早期是不分科的”;“分科的目的之一是为了更好地了解世界,在不同类别的科目之间构建壁垒肯定不是目的”。当然只是我个人的一家之见,欢迎有理有据的反驳,不欢迎方舟子式反驳。在以上的几个观点,我们再看西方(美国)的教育体系。美国的高中是不分科的,大学的前两年也是不分科的。即使到大学的后两年,学生也会在大学期间选修大量看起来和自己专业无关的科目。譬如乔布斯在年轻的时候退学之后还学了字体设计,结果还去搞计算机,简直是太不务正业了。就拿方舟子举例子也可以,他当年是福建省文科状元(自称),中学开始写诗,大学办诗社,通读过二十四史(这分明就是一个文艺青年嘛)方舟子还是<侠客行>游戏的主要开发者;后来还卖过中医书籍,再后来开始批判中医、学术打假、揭露了很多大人物的不堪往事,成功地转型成为很多幼女、少女、妇女、大妈眼中的“理科男”;谁知道现在竟然了行为艺术,(嘘,这事不能多说,要不我这篇博客就是代笔的了,还有铁证)。相信可以得出这个结论:西方(美国)的教育并不重视不同科目的分类。所以把人按照所学的专业进行分类是不科学的。
    2.对人进行贴标签这种方式是不合理的。这也回答了第二个问题。首先我承认每个人都是独一无二的,不会有两个人在每一方面都完全相同。这样当你去用一个标签标记一类人的时候总是会出错的。其次,即使可以用一个标签去标记一类人,那也仅仅能得到标签字面的意思。譬如80后都是在1980年到1990年之间出生的,这是毋容置疑的,其他的所有具有共性的特征只能由这个事实推论而出,若不是则肯定不对。譬如,有人说80后是垮掉的一代,你信吗?有人说80后普遍没有责任心,请问怎么得出的这个结论?有人说80后轻狂、张扬,多少在教室里老实上课、在办公室踏踏实实办公的80后你看到了没有?再说00后,很多人说00后娇生惯养,但都是这样吗,难道有责任心的父母已经少到可以忽略不计了?或者说中国已经提前进入河蟹社会,山区里吃不上饭的00后都不算中国人了?当然这种说法有点极端,他们可以反驳说我们说的是城市里的00后,那我再找出毛病来,他们又可以继续缩小范围,直到把范围缩小到他们所见过的有限的00后为止。这种事情不觉得可笑吗?
    所以我反对一切给特定人群贴标签的行为。虽然我也经常不自觉的这样做,需要多多反省。在一个社区里,每个人都尊重其他的个体,这样能形成一中良好的风气,让每个人活的都有尊严。由于人的种种缺点,很难做到这一点;但大家一起努力的话,事情总会朝着好的方面发展。

写博客计划

    打算写一个系列的博客,用回答问题的形式把自己的思想总结一下。
    现在,问题的来源是我日常的思考,想到有意思的事情就随时记到Evernote里。问题列表会共享出来,共享链接在本文的末尾。
    当然欢迎大家来提问题,但不能保证全部会回答。更欢迎各位童鞋到这个多人博客来发表你的回答。
    想提问题或者需要作者身份的请用Twitter联系我,@xcv58就是本人。最好先写好一篇自认为靠谱的博文。如果你有我其他的联系方式直接联系我就行了。
    今天会先写一篇。


问题列表:https://www.evernote.com/shard/s36/sh/b72efe2a-1a55-4243-afe2-5ad58cc82efb/6df11e9c8bc0dc242fdf07dd94a0137b

3/05/2012

推荐一个关于阅读器软件的网站


Kindle for PC的体验做的并不是太好,尤其是字体和页面设置的时候经常卡住。于是想找一下有没有其他可以在PC上阅读mobi格式的软件。
遂发现了这个关于维基的网站:http://wiki.mobileread.com/
各种平台阅读器的软件见这里:http://wiki.mobileread.com/wiki/E-book_software
基本上所有平台比较知名的阅读软件都齐备了。 另外这个网站还有很多关于电子书格式、制作、电子书市场等方面的知识。基本上和电子书相关的内容都有,总之是个很赞的网站啦……
强烈推荐。


2/29/2012

用vhd安装Windows 8

具体怎么用U盘引导,安装过程就不说了。主要记录一下如何创建虚拟硬盘(VHD)并在安装过程中如何选择虚拟硬盘。
首先在Windows下进入CMD命令行界面,然后输入diskpart;
接着输入四行行命令即可
----------------------------------------------------------------
DISKPART> create vdisk file=d:\Win8.vhd type=expandable maximum=30720
  100 百分比已完成
DiskPart 已成功创建虚拟磁盘文件。
DISKPART> select vdisk file=d:\Win8.vhd
DiskPart 已成功选择虚拟磁盘文件。
DISKPART> attach vdisk
  100 百分比已完成
DiskPart 已成功连接虚拟磁盘文件。
DISKPART> create partition primary
DiskPart 成功地创建了指定分区。
----------------------------------------------------------------
ps:标红的部分是命令,路径和大小可以自己选择。
然后就是正常U盘引导进入系统,到安装界面选择磁盘分区的时候。先按shift+F10调出命令行
然后输入diskpart
----------------------------------------------------------------
DISKPART> select vdisk file=d:\Win8.vhd
DISKPART> attach vdisk
----------------------------------------------------------------
ps:如果你有不止一个硬盘的话,很有可能在进入安装界面的盘符和实际系统的盘符不一样。这时候就要用dir命令不断的切换分区找到真正存储vhd文件的盘符。
返回安装界面刷新即可看到虚拟的硬盘。
完。