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;最终最坏的那个成功上位,祸害至今。