分类
原创作品 技术

IronRuby+IIS+Typo的尝试和对Ruby跨平台性的质疑

一开始,我只是想找一个当前博客程序的替代品。而我发现了Typo这样令人激动的基于RoR的开源博客程序,跃跃欲试想把Typo运行在IIS + IronRuby + IronRuby.Rack上。

Typo 5.5依赖于Ruby 1.8.7 + Rails 2.3.8。IronRuby 1.0基本兼容Ruby 1.8.6,我想问题应该不大。

XP系统,一个崭新的IronRuby 1.0安装版。安装Rails:

igem install rails -v 2.3.8

为了方便,打算使用SQLite数据库,在IronRuby下,sqlite3-ruby这样的gem是不能用的,需要用sqlite3-ironruby这样的替代方案。早在这一步我就应该注意到一些问题了,但我当时没有在乎:

igem install sqlite3-ironruby

尝试了几次RubyGems直接安装Typo都失败了,我自己从ZIP里解压了一份Typo 5.5。

在config目录下创建database.yml:

production:
  adapter: sqlite3
  database: db/typo.db
  timeout: 5000

然后执行rake操作DB:

rake db:create RAILS_ENV=production
rake db:migrate RAILS_ENV=production

问题来了,rake报告有一系列需要依赖的gem没有安装。那就让它装:

rake gems:install

找不到gem命令,没问题,把igem.bat复制一份命名为gem.bat。

再执行,大部分安装都成功了,除了json、bluecloth 2.0.5和RedCloth 4.2.2。报错都在编译Native Extension上。

去RubyForge上找齐了这三个的Windows预编译版本,再用RubyGems单独从本地安装,成功。

再尝试之前的DB Migrate操作,rake却依然报告找不到两个gem依赖:

Missing these required gems:
  bluecloth  ~> 2.0.5
  RedCloth  ~> 4.2.2

经过各种google,终于在IronRuby官网(Documentation –> Real Ruby Applications –> RubyGems –> Native gems)上得知了一个噩耗:

Native extensions are not supported by IronRuby. Currently, there is no known way of avoiding native gems. When you install gems, you will have to manually exclude gems with win32 in the name.

本来就是希望跨平台采用了IronRuby,结果这又出现平台依赖的要素了。这不得不令我质疑之前自己对Ruby跨平台性的认识。

现在的疑问是Native Extension在Ruby开源界占有多大比重?IronRuby在缺少此类支持的情况下,能为我带来多少好处?

分类
Web2.0 原创作品

游动物园引发的思考:LBS服务在公共场所的强制应用

这个(上个)周六难得有个好天气,我突发奇想并付诸行动——去动物园散步。托朋友的福,终于见到了传说中的神兽(草字辈的那只),它们一家三口,貌似在喝奶的那只最有神兽的范儿。当然也看了保留项目的大熊猫,金丝猴等等。

在动物园的动物们都是明星。作为明星自然少不了粉丝的追捧:观赏、叫喊、投食、拍照、闪光……一只在享用树叶的金丝猴(名字忘了)显然不喜欢观众们打扰它进食,在一个个闪光后,它断然躲到了远处的树枝上,弃观众于不顾。虽然不是动物保护主义者,我也有些担心动物们是否被频繁的闪光灯所伤害,而印象中电视上也有过类似的报道。

Google之,看来并不像我想的那么糟:

http://www.naturescapes.net/042004/do0404.htm

Flash does not cause permanent damage to the eyes of animals or people, even at close range.

文章大意是说只要不是长时间持续的强光直射,眼睛是不会有永久性损伤的。

但我当时想当然认为使用闪光灯对动物园的动物拍照是无公德的行为。玩CS的同好们都知道,自己穿过A门马上被闪光弹击中,只能凭感觉躲在箱子后面,而视觉恢复的同时却莫名发现自己倒在A门外的空地上……这是多么的郁闷啊。我的思路也走向了如何禁止闪光弹,厄,不,是禁止在动物园对动物的闪光行为。

在某一特定公共场所,能约束某一特定行为的方式无外乎:道德、规章制度、法律法规、人为监管、技术手段。工程师的思路自然是技术手段。

第一个进入思路的关键字是GPS。拍照者以手机为工具的不在少数,而最近的手机普遍拥有GPS功能。即是说手机上如果安装了这样一款应用,读取手机用户的的经纬度位置信息,如果发现用户进入了预先定义好的区域,如动物园熊猫馆,则调用照相应用的接口,强制关闭照相的闪光灯功能;当离开此区域,将恢复闪光灯在强制关闭之前的状态。那数码相机呢?经过搜索很惊奇的发现,现在还真有带有GPS功能的相机了。

这基本上就可以归纳为LBS应用了,但显然这不是一个用户会乐于主动选择的应用。这需要管理此公共场所的行政机关、手机行业管理部门,乃至手机厂商的合作。类似的,剧场、电影院等演出场所也可以强制设置入场者的手机静音(至少调成震动)。人性化一些,这些公共场所入口应显著表明其内部将限制用户手持设备部分功能的使用。

当然这个思路也有明显的不足。手机用户如果在这一时间点如果关闭了GPS服务,这一强制就不成立。另一种可能性就是用手机代替或辅助这一场所的入场券,进门划手机——那出门也得划吧,否则闪光灯就再也打不开了。

还有智能手机普及率之类的种种限制。看来LBS服务在公共场所的强制应用似乎还难有较大用武之地,但我个人认为,需求还是存在的:

  • 说回闪光灯,就算动物不怕好了,但名胜古迹是怕的,闪光灯会加速其老化和损坏。
  • 还有前面提到的剧场、电影院乃至学校课堂,不欢迎手机来电铃声打扰的。
  • 医院特定区域、加油站等不允许手机接打电话的地方。
  • 甚至提醒你身边数米内有安装了心脏起搏器的人,建议远离后再接打电话——这有些远离主题了。

总结一下,能亲眼见到神兽真是太高兴了。

分类
原创作品

OPPO电子书阅读器评测

一个月前入手OPPO的Enjoy Ebook E601,今天才想起写下些所谓评测的文字。

这款电子书最特色的算是Android操作系统和相对高昂的售价(汗)。

外观白色,5寸电子墨水屏(16阶灰度,无触摸或手写),重量嘛,单手拿着长时间一定会累。左边框上有1~0的触摸式数字键,右边框上有上下翻页和一个越用越觉得难用的轨迹球,下边框有对称的两组翻页键和五向按键,手感都还不错。算上底部的,整机的翻页键多达4组,充分考虑到了不同用户的使用习惯,包括左撇子用户。

从开机到可以使用大约1分钟的时间。基于Android 1.5的SDK,看得出做了不少的定制。本机内置存储容量有2GB,其中固件系统之类的已经占用了不少,我额外加了4GB的SD卡,而据经销商说安装8GB以上的SD卡系统响应会变慢。

连接电脑USB后的拷贝速度在2.07~2.12MB/秒。书籍列表中按名称排序时是以中文(拼音)英文首字母混排的。

我先后尝试了若干PDF 技术文档:一个31MB的文档经过长时间处理系统提示无法打开;另一个5MB的,花了32秒,却只有首页能显示,其他为白页,可能与文档图文混排的内容有关;最后一个4MB有833页的文档经过10秒的加载成功打开了,而后每次翻页 需要10~11秒,且由于原文档中含有图形的页眉页脚,所以没办法达到令人满意的缩放比例(毕竟程序没办法知道页眉页脚有没有意义)。经多次尝试,可以认为这款电子书对PDF的良好支持只能限定在纯文本的范畴,图片多了、格式多了都有可能无法处理。

购入这款电子书的动机,正所谓醉翁之意不在酒。我一直在为自己的电子版漫画收藏寻找一个合适的浏览设备。当前几年电子墨水技术兴起的时候,我就向往这个技术能为漫画发烧友带来福音。现在终于出手了,自然要用电子书尝试一下看漫画的效果。

论结果只能说中规中矩。优点:

  • 有专门的图片浏览模式,菜单里包含一项漫画模式的选项,从右到左、先右左再上下等六种模式足以看出产品设计和开发人员对这类特定消费人群的理解。
  • 2~4秒钟可以完成图片翻页,这个速度可以接受。
  • 支持ZIP压缩包,可以浏览压缩包内的图片。

缺点:

  • 5寸屏幕果然偏小,虽然缩放失真不大,但费眼睛。
  • 只能显示黑白(彩色图会自动转为灰度),对比度较真正的纸张也差距很大。
  • 图片浏览没有书签功能,只能勉强用收藏功能替代,而遗憾的是ZIP内的图片收藏后无法顺利定位。

总体感觉这不是一个漫画发烧友真正想要的设备。

理想中的设备其阅读体验不仅不该差于纸质漫画,而且应大大超越升华:节省空间、便于保存、可视面积大、机身轻薄、反射自然光、色彩饱满、底色更白、对比度更高、翻页瞬间完成、书签功能易用,等等。更理想的,漫画发烧友可以获得一套以这样设备为基础的完整解决方案:电子出版、无线连接、在线购买、后台下载、虚拟书柜、在线社区要素、更换彩壳、手写涂鸦,等等。AMAZON Kindle的成功就在于它不仅仅是设备,而是提供了完整的解决方案,想想不用接电脑就能更新内容还真是很舒服的事情啊。

最后发发牢骚,买了这款电子书阅读器,iPad的采购计划就无限期搁置了,不过对三星的Galaxy Tab还是有些期待的。