Author: qingbo

  • 根据EXIF日期信息整理照片

    一般相机拍下来的照片都是JPEG格式,文件头部有一块专门用来存储EXIF信息,包括光圈、快门、焦距等,还有拍摄照片时的日期。

    用ruby写一个这样的程序非常简单:

    require 'exifr'
    require 'ftools'
    
    unorganized_dir = 'e:\\flickr-photo\\unorganized\\'
    root_dir = 'e:\\flickr-photo\\'
    Dir.chdir(unorganized_dir)
    Dir.glob('*.jpg') { |filename|
    	exif_info = EXIFR::JPEG.new(filename)
    	date_time = exif_info.date_time
    	unless date_time.nil?
    		target_dir = File.join(root_dir, date_time.year.to_s, "%02d" % date_time.month)
    		File.makedirs(target_dir)
    		File.move(filename, target_dir)
    	end
    }

    我在E盘的flickr-photo目录下存放组织有序的照片,第一层子目录是年,2006,2007,2008……第二层子目录是月,01,02,03……把未组织的照片放在unorganized目录里,在命令行里执行ruby organize.rb,就把这些照片各自移动到合适的月份目录下了,不存在的目录会自动创建。

    当然你需要修改这个程序,把unorganized_dir和root_dir设置成你自己的目录。另外需要先执行gem install exifr命令来安装exifr这个library.

    也有个别的照片(或者图片)是没有携带exif信息的,程序不会对它们进行处理,执行完后,这些照片留在原地不动。我把它们移动到一个叫”no-exif”的文件夹中。

    差点忘记,首先,请把你的相机时间设置正确! 🙂

    这是我的第一个ruby程序……虽然简单,但很实用,帮我把从flickr备份回来的图片分好了目录。

  • 收到了咔嚓鱼冲洗的照片

    惠普的咔嚓鱼,注册就送10张免费冲洗(现在是10张,据说以前是20张,甚至有的账户有源源不断的免费)。16号选了10张照片上传到账户里,让它给冲洗
    ,前天(25号)终于拿到手了。

    咔嚓鱼 (by qingbo)

    当然不是一分钱不花,快递要了7.9元。咔嚓鱼没有自己的物流,它是委托快递公司给送货的。冲洗似乎是在上海,速度这么慢大概是因为这个原因。

    冲洗的质量还不错,相纸可以选择光面还是磨砂,不过感觉相纸比较薄(改天跟楼下的冲印店比较一下),毕竟这是6毛一张的东西。其实我更希望多花几毛钱换成质量更好的相
    纸。包装方面,有一块硬纸板防止折叠。

    咔嚓鱼是舶来品。惠普最初收购了国外的snapfish,开始发展在线冲印。在咔嚓鱼的页面最下方选择United States,就会跳转到snapfi
    sh的网站。但是现在咔嚓鱼的本地化工作做得并不是太好,有的地方还有错别字,比如上传照片用的客户端写成“咔嚓鱼上传精灵”,显然是输入法把把“传销”作
    为一个词了。

    说到上传,我使用北京网通的网络上传极慢,在网页上由于受到HTTP连接时间的限制,上传多个照片的时候经常失败,所以还是建议使用客户端上传。

    不过,如果我冲洗少量的照片,肯定会到楼下的冲印店直接去冲了,最迟第二天就可以拿回来,而不必花8块运费,等上10天再拿到照片。

    在线冲印,需要更优质的产品,更快速的物流。

  • 用FlickrDown下载flickr上的照片

    决定把flickr上的照片下载回来备份一下,于是花了不少时间在网上找下载工具。

    不少人推荐flickredit,不过我试了好多次,下载不了几张照片就出错,换了它的前身似乎叫flickrbackup也是一样。看起来很强大,实际上不能用,真是可惜。

    试了好多个,最后还是FlickrDown解决了我的问题。它主页上的图片已经old了,新版本加入了authentication,这样我们就可以下载自己账户中带有权限的照片了。当然也可以下载朋友账户中部分加有权限的照片,不过我没兴趣给别人的照片作备份,如果喜欢加到flickr的favourite里就可以了。

    默认配置下,FlickrDown仅下载最近的500张照片。目前我有700多张照片,后来才发现可以把这个值调大一点。

    FlickrDown也有个缺点,缓存似乎不会刷新,尤其是当你新建了一个set的时候,不管怎么办,它显示的还是第一次去下来的set列表。我本来想新建一个set把500张之后的照片放进去,一起下载回来,后来发现了这一点,很是郁闷。研究了半天也不知道它的缓存放在什么地方。FlickrDown首页上也有用户提出这个问题,但是没人给出解决办法。

    除此之外,FlickrDown是相当稳定的,非常推荐。

    P.S. 个篱留言说Flickr Pro是无底洞,实际上并不是这样。可以说Flickr的策略是最宽容的,即使你没有pro account,它一样为你保存了原始文件,一样不限制空间使用总量和浏览流量,只是你的photostream只能显示最新的200张照片(对200张之前的照片的外链完全不受影响),并且不能获得原始文件。一旦购买了pro,这些限制完全解除(包括每月上传限制等),什么都没有损失。假如我明年不想用它了,我的照片也不会有任何损失,只是有些功能加了限制,可以随时买一次pro,把照片搬出去。

  • 自己做个花生壳(动态IP解析)

    花生壳动态域名解析曾经风靡一时,把域名指向某台随时改变IP的机器。我从来没用过花生壳,不过大致也明白它的基本道理,自己也时常遇到需要访问某动态IP机器的问题,其实可以用很简单的方式来实现类似的功能。

    现在有许多专门做查询IP的网站,一个基本功能就是你一上去马上就可以看到自己的IP. 嗯,一般情况下你访问网站时对方就会获知你的IP地址。

    实现这个功能,只要在外网有一个固定IP的服务器(或者共享空间)就可以了。比如说,我的网站有个子目录叫”ip”. 第一步,我想在访问http://qingbo.org/ip/的时候,显示出我家计算机的IP地址。

    1. 在ip子目录里放一个ip.php文件,内容如下:

      <?php
              $file = fopen("index.html",'w');
              fwrite($file, $_SERVER["REMOTE_ADDR"]);
              fclose($file);
      ?>
      

    2. 在家里的计算机上访问http://qingbo.org/ip/ip.php
    3. 不论我在哪里,打开地址”http://qingbo.org/ip/”都可以看到家里的IP了。因为访问ip.php的时候,它把IP写入了index.html文件。

    这样有几个问题存在。首先,家里用的是ADSL(其它的网络提供商大部分也都如此),IP地址是不定期变化的,总不能家里老是放个人不停上网吧 🙂 其次,如果别人在别的地方访问ip.php,这不是捣乱吗?这个捣蛋鬼的IP会被记录下来,而家里的IP则不见了。最后,我们想访问http://qingbo.org/ip/的时候,直接转到家里的服务器去浏览网页(这是一台不太正规的web server)。

    第一个可以用cron来解决,让它定期自动执行。执行命令”crontab -e”,然后加入这一行:

    0 * * * * wget -q -O /dev/null http://qingbo.org/ip/ip.php

    Windows应该可以用计划任务,不过我没有试过。

    第二个,应该加个认证码(相当于密码)。只要在ip.php里记录IP的时候加一个判断:

    if ($_POST["code"] === "strongauthenticationcode") {
       ...
    }
    ?>
    

    这样,只有提供了正确的认证码,IP才会被记录下来,防止别人瞎捣乱。(这是cron task的最终版本

    0 * * * * wget -q -O /dev/null –post-data ‘code=strongauthenticationcode’ http://qingbo.org/ip/ip.php

    第三个问题,只要把写入index.html的内容改一下,让它作自动转向就可以了(最终版本):

    <?php
    if ($_POST["quqi"] === "_-5QzdkhxNnI5EOM6ucW") {
            $file = fopen("index.html",'w');
            fwrite($file, '<html><head><title>Redirecting...</title><meta http-equiv="refresh" content="1;url=http://'
    . $_SERVER["REMOTE_ADDR"]
    . '/"></head><body>You have crossed the oceans of time, to find me.</body></html>');
            fclose($file);
    }
    ?>
    

    现在一般的家庭网络都是由一台路由器自动拨号,这样的话,内网有一台机器不停访问外网服务器的IP记录程序就可以了,不一定非得是要做服务器的那台机器。当然了,路由器上要设置好NAT,好让外部可以访问到内部的服务器。

    写该文的时候手头没有合适的测试环境,所以文中可能有些错误 🙂 希望能帮助大家,也希望给我指出错误。

  • 如何管理照片——考虑便捷与安全

    Flickr在图片管理方面可谓是物美价廉,一年25美金的价钱,无限存储,又不会像国内的抄袭者一样限制访问流量(不可思议)。

    在正式使用Flickr之前,我把DC拍的所有照片都保存在硬盘上,不管好坏。一般是用当天的日期作为文件夹,保存之后一般就不会再去看第二眼了。这样的后果是拍下来的照片几乎不会再返回来看,想找某个照片的时候也非常麻烦,因为文件名是相机默认的编号命名,只能靠回忆拍摄的日期来找到那个文件夹。

    之前也用过几次flickr,但是想到免费的账户只能浏览200张,难免让人觉得有点不爽,所以有段时间使用国内的yupoo. 改革开放了,我的观念也有所转变——我都工作的人了,虽然赚钱不多,不过一年25美金还是非常拿得出来的。尤其是Flickr不限制上传流量和存储总量,还提供原始文件的下载。于是赶在买一年送三个月的时候买了一个pro account.

    买到了pro,把硬盘上的照片全部过了一遍,删掉拍得不好的和重复的,剩下的通通传到了Flickr上。在这个过程中又回顾了一下历史,还是有许多值得怀念的时刻的,也有一些让人感动的,还有些地方想找个时间再去。删掉的照片也非常多,应该能占到一半吧。在上传的时候,都给照片尽量打了标签,加了标题,这样将来搜索起来非常方便。

    上传之后,我把photos文件夹从硬盘上彻底删掉了。我当时是这么想的,Flickr挂掉的可能性比我硬盘挂掉的可能性要小。

    接下来的几天里,我才真正的开始“玩”Flickr,此前接触到的都是最基本的功能。建立一些Set、Collection,把照片组织一下;在地图上把照片安顿好;等等。能做的事太多了,我又把自己的照片翻了几遍。Flickr让我发现了自己照片中蕴含的一点点价值,这让我很高兴(作为一个web开发者,也由衷地佩服Flickr的Orgnizer,JavaScript做成这样太完美了,尤其是Map上的操作)。

    照片过了几遍,没的玩了……于是我有了去拍照的冲动,并且开始尝试使用我的小破A510的M档。调光圈、快门、ISO,甚至对焦。当然先去wikipedia补习了一下凸透镜成像原理 🙂 我开始喜欢摄影了,不过还称不上是爱好者(我准备买一台数码单反,不过目前有更重要的事需要钱)。后来拍的照片我就在SD卡上选好了直接上传到Flickr了,都不经过硬盘。

    但是随着对照片价值越来越高的重视,我开始怀疑Flickr的安全性。万一它挂掉,我的照片不就完蛋了吗?

    在Flickr的group里问,有没有人把Flickr作为唯一的照片存储?有人提了一个很严重的事情:flickr有些账户被钓走,内容全部被删除了……不得不说这很可恶,不过这种事情就是存在,让你不得不担心。前阵子我疏忽的时候,Paypal的帐号都差点被钓鱼成功。存储的危险性,除了硬件损毁外,还有人为的删除。在这一点上,flickr的安全性绝对比自己的硬盘要低。Flickr上一旦得到了账户密码,删除内容太容易了,直接Delete Account,而且删除是无法恢复的。自己的硬盘误删了,也许还可以做一下数据恢复,但是flickr是绝对不会为你去做这样的事的。

    硬盘很便宜的,现在基本是一块钱1G,白菜价了。有空去弄一块硬盘,专门做照片存储,把Flickr上的照片备份回来……

  • Feed两要素:质量、频率

    这年头估计大部分走在互联网前沿的人都会订阅RSS了。要是在国外,就可以说,50%的网民都了解RSS了。可是国内“网民”的定义有点不同——QQ就是网,上了QQ,就是网民了。

    我订阅的RSS不太多,总共也就几十个吧,都是我比较关注的科技、互联网、web技术等话题。有些人的RSS阅读器里动辄就是成百上千的Feed,而我感觉就这么几十个都够我每天浪费不少时间了,也许是我效率太低了?

    大部分人在消费Feed带来的信息时,自己也都在通过Feed输出信息,基本是以blog的形式,其它的有twitter、照片分享,以及friendfeed这样的life streaming。

    在这些信息的传播过程中,就体现出人性的许多矛盾。我们有时希望可以随心所欲地表达自己的观点,有时又希望自己的观点能够迎合自己的读者。有时想把blog作为人生脚步的记录,有时又想作为个人思想的窗口。

    实际上,既然提供了Feed输出,RSS也好,Atom也好,你肯定想让你的Feed有更多的受众,几乎所有的blogger都在追求订阅量。

    要让更多的人订阅你的Feed,第一,质量要高。解决一个技术难题,有了一个才华横溢的点子,这些都是高质量的内容。近期来我一直在幻想未来的美好生活,实际上却不思进取,所以blog内容非常之空洞,这就叫质量低。这样的Feed我忍几天就受不了了,喀嚓。

    第二,频率不能太高。作为一个普通blog,Feed的新生条目频率自然不会超出想象,因为大家写blog还是比较有节制的,一般每天绝对不会超过10篇。某些新闻、时评类blog就不一样了,它们可能是一个团队在写,每天可能有几十篇。TechCrunch我就退订了,因为每天的post太多,而且里面夹杂了一些毫无意义甚至是垃圾的东西。RWW虽然更新相对比较频繁,不过文章质量普遍比较高。

    频率过高,在twitter、life streaming这些服务上表现尤其突出,我已经因为某些人无病呻吟太多而把他们喀嚓掉了——当然对这些朋友完全没有恶意,只是个人习惯问题,呵呵。有时候觉得闷了,可能我又会重新follow某些人 🙂

    这篇垃圾文章,就这么结束了?记得曾经有一段时间,我写文章还有板有眼的,有个思路呢。现在怎么又不行了呢?唉……攒钱,攒钱去喽

  • 圆明园、植物园、香山一日游

    这三个地方,今天都是第一次去。来北京这么久了,也没怎么好好出去玩过,呵呵。

    本来是打算早上先去爬香山,然后去植物园的。后来坐车正好路过圆明园,我就在那下车了,最后证明还是圆明园最好玩。

    去圆明园,主要是看那些遗址了:

    大水法 远瀛观

    我看到这些的时候感觉很不爽,毕竟这是自己的祖国被蹂躏的证据,是耻辱。有些人却很兴奋,仿佛这是极大的荣耀,兴高采烈的脚踏着它们拍照留念,那神情,是不是曾经在英法联军的脸上出现过?只不过那时的相机没现在这么先进和普及。

    此外,正好是荷花节,连植物园也不可能有这么多荷花。还有黑天鹅:

    接天莲叶无穷碧 荷花 黑天鹅

    后来去了植物园,正好是中午,虽然已到秋天,仍然骄阳似火,也没怎么逛,就觉得两只老鼠比较有意思:

    两只老鼠

    最后是香山,比我想象中要高,加上已经逛了两个地方(圆明园从南门步行到大水法又绕了圈子回来)爬上去已经很累。下来是想坐缆车,一看50块,就走了下来,还是不费力的,就是膝关节有点不舒服。在顶上的时候,看北京城被灰尘笼罩的情景有点恐怖,蓝天和深色的灰尘之间有比较明显的界限。以前看到外国佬总是批评北京空气差,我一直觉得夏天是气候原因。现在没得说了,这还是空气质量好的时候呢……(右边是香山西侧的天空,作对比)

    北京市上空的“红尘” 香山西侧的天空

    今天真累,周末就休息了。今天的照片颗粒感很明显,跟那天早上的相差甚远,看了一下,原因应该是ISO太高了。我那相机ISO最高就400,已经不行了,而那天早上ISO设定是100. 全部照片在这个相册里:

    http://www.flickr.com/photos/qingbo/sets/72157606884271780/

  • 梦想与传奇

    互联网出现了许多神话,youtube, facebook, 还会有更多。

    它们是业内人士的梦想,在圈外人看来是传奇。

    实际上,梦想和传奇非常不简单。创意、技术、管理、营销,任何一个环节失误都不行。

    实际上我并不期望做成什么大事,我只想有个比较舒适的工作,可以在累了的时候休息,到处旅游。

  • 黄百合

    这几日天气异常的好,有秋高气爽的感觉。周六早上醒得早,于是下楼去逛,顺便拍了几张照片。不知道这是什么花,后来问了别人才知道是百合……

    相机是很old的A510,模式设置为“白炽灯”,开始的时候并不知道,后来才发现。于是出现了这样的效果:

    黄百合-剥离背景

    背景灰暗,花朵和花蕾却很突出,这种效果也不错。

    下面这两张仍旧是白炽灯模式,焦点刚好落在花朵上,手也没有抖,看大图的话,细节也很清楚(早上,有细微的露水):

    黄百合 黄百合

    这两张是在日光模式下拍的:

    黄百合 黄百合

    今天都是自己设定光圈、曝光时间和焦距,这么低端的傻瓜相机,能拍成这样我很满意了,呵呵,以前不知道这么短距离可以拍这么清楚的。flickr账户里有更多早上拍的照片。

  • 海内扎绵羊终极成绩——0.0001秒

    首先登录海内网。在这个页面,输入你想要的成绩和海内用户ID,提交。然后去看你的排行榜,傲视群雄吧……

    提交数据的计算公式,参考这篇帖子