这篇文章写于2018年,因为一些原因停留在草稿状态两年之久……
——我是鸽子,咕咕咕咕
偶然间翻出来,发现自己对前端开发的喜好不减当年,实属幸事。
我与前端开发
掐指一算,我做软件开发已经12年了,算上社团、兼职、实习的话时间会更长一些。其间做过ASP也做过JSP,做过Java也做过Javascript,做过服务器端也做过移动端,做过商业软件也做过大众网站。很多做技术的朋友都表示技术做久了会枯燥,我是很理解的。但对我而言,唯独前端技术,我竟一直能从中找到乐趣,可谓技术人之幸。
这篇文章写于2018年,因为一些原因停留在草稿状态两年之久……
——我是鸽子,咕咕咕咕
偶然间翻出来,发现自己对前端开发的喜好不减当年,实属幸事。
掐指一算,我做软件开发已经12年了,算上社团、兼职、实习的话时间会更长一些。其间做过ASP也做过JSP,做过Java也做过Javascript,做过服务器端也做过移动端,做过商业软件也做过大众网站。很多做技术的朋友都表示技术做久了会枯燥,我是很理解的。但对我而言,唯独前端技术,我竟一直能从中找到乐趣,可谓技术人之幸。
由于备案原因,本站域名由原来的evis.me更换为ywsong.com,原evis.me域名下所有URL都会自动跳转(301)到ywsong.com对应的URL。
-evis.me +ywsong.com
眼看这个博客已经变成“年更”了,基本还得归咎于个人原因。但毕竟是陪伴自己度过年轻岁月的老朋友,不希望让他就此消失掉。留个念想,哪天又因个人原因突然开始更新了也说不定。
一开始,我只是想找一个当前博客程序的替代品。而我发现了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在缺少此类支持的情况下,能为我带来多少好处?