- 博客(43)
- 收藏
- 关注
是时候了,Adobe应该开源Flash
最近,好像批评Adobe成了一种时髦。所有人都站出来对Flash指指点点。糟糕的是,尽管这些指责存在着一些偏激和私心,但大多数是切中要害的,而且引起了用户的共鸣。概括起来,这些指责包括: * 不稳定,造成浏览器崩溃* 低效率,CPU占用率高,耗电* 封闭,不思进取这些指责来源广泛,有来自用户,有来开发者,有来自平台提供商,有来自设备制造商,芯片提供商,有竞争对手,也有合作伙...
2010-05-08 12:16:31 242
原创 UFFS v1.3.0 发布
UFFS 是一个适用于嵌入式系统的NAND Flash文件系统。经过几个月断断续续的更新,UFFS 终于迎来了她迈向2.0之路的重要版本:v1.3.0。 发布声明在: 这里 v1.3.0 在代码结构上做了很多调整,具备更加灵活清晰的代码结构,更容易增加新特性,为2.0做好了准备。 这个版本的主要改进有:* 增加缓冲组,提升多文件处理缓冲效率* 新增文...
2010-02-24 17:53:35 476
冷眼看Google Chrome OS
Google终于公开了Chrome OS的细节,虽然此前已经陆陆续续透露除了这个os的部分细节,但很多东西未经确认,这次终于是官方确认了。 Chrome OS的公布引发了热议,我们看到了很多很不理智的观点,而人们缺乏清晰的认识来源于没有正确认识到底Chrome OS是什么。希望这篇文章能够帮组理解Chrome OS到底是什么,以及为什么Google为什么要为Chrome OS设置硬件绑定的...
2009-11-21 13:44:02 231
原创 Vista and Snow Leopard
已经有好几个月没有启动到Vista了,今天启动到Vista一看,提示我有50个update.....好吧,update吧.....再一看,好家伙,要下载1.2G !! ..... 慢慢下载....update....重启了2次......终于update完了,接着提示: "你有更多的update...." 哦,还有啊.....update吧.....又几百M.....又重启了2次....又...
2009-09-22 09:23:09 149
交叉编译完全解决方案
[注:本文仅适用于嵌入式Linux系统]背景 嵌入式系统开发的头疼问题之一就是交叉编译。 什么是交叉编译?简单的说,就是程序的目标运行平台与编译这个程序所在的平台不一样,这样的编译方法就是交叉编译。在交叉编译一个软件包的时候,要适当的配置build, host和target参数。 什么是build, host和target ? b...
2009-09-18 09:55:47 327
OpenCV+Ruby构建图像处理研究平台
[size=large]OpenCV[/size]OpenCV是一个很流行的图像处理库,它为图像处理算法研究提供了很好的平台,甚至很多产品在OpenCV的基础上稍作修改就可以达到目标。有关OpenCV的介绍,abruzzi有一篇不错的介绍帖子([url]http://www.iteye.com/topic/463668[/url]),所以这里就不再做详细介绍。[size=large]W...
2009-09-12 15:31:29 266
Maemo下跑RubyGnome2
稍微捣鼓了一下,RubyGnome2顺利在Maemo模拟器上运行,截图:[img]http://dl.iteye.com/upload/attachment/144592/5bfa5c18-64ca-3a4f-9c1f-ecae4e32f4f0.png[/img]看来Maemo的风格尚未起作用,难看了点,没有N800或N900,不知道在真机上如何。不过用ruby编写移动...
2009-09-09 20:07:01 139
GtkSimpleLayout Inspector
[b]Inspector介绍[/b]Inspector是GtkSimpleLayout v0.2.x添加的一个新功能,他允许使用GtkSimpleLayout布局的程序在运行的时候探测UI的信息。(有关GtkSimpleLayout,请看[url]http://rubynroll.iteye.com/admin/blogs/460727[/url])对于web开发者来说,fireb...
2009-09-06 20:01:28 195
300行代码你能做什么
我也标题党一回:300行代码你能做什么?本文介绍一个具有builder风格的RubyGnome2布局器(GtkSimpleLayout)不到300行代码,还包括几个实用的除布局之外的增强功能。 前言随着RubyGnome2库越来越完善,以及ruby1.9的性能提升,用Ruby编写GUI程序渐渐从我的业余爱好转为我工作的一个重要部分。 用Ruby写程序确实很有乐趣,它可以让你的想...
2009-09-02 14:12:12 619
FAT over NAND Flash
引子最近有一个项目需要在NAND FLASH裸片上建立文件系统,由于必须通过USB给Windows访问,所以FAT是唯一的选择。由于FAT不是为Flash设计,因此需要透过FTL(Flash Translation Layer)来访问NAND FLASH。 原本以为FTL的支持在嵌入式Linux下是很成熟的,因为在编译内核时,MTD下就有可选的FTL和NFTL可供选择,但是dig进去才...
2009-04-27 21:03:39 312
UFFS嵌入式NAND Flash文件系统
最近被许多邮件问烦了,于是决定正儿八经地写些介绍UFFS的东西。 UFFS是我几年前发布的一个用于嵌入式系统的NAND FLASH文件系统,陆陆续续有不少改进和bug修复,特别最近将进行一些大的改动,同时也在考虑UFFS2的开发。 文件系统这种底层的东西,要是没有相应的文档描述,光看代码不容易理解,连我自己有时候都要好好回忆一下原始设计意图。尤其是这种面向NAND FLASH的文件...
2009-04-23 21:28:57 800
The tasks of UFFS v1.3
The tasks of next UFFS minor version(v1.3) would be:* New API:int uffs_SkipObject(uffs_Object *obj, int size);This function will make the file object skip "size" bytes from head, return bytes ha...
2009-04-22 19:53:00 195
UFFS usage guidline
UFFS is not a generic file system for every day use like FAT32 or Ext3, or generic flash file system like JFFS2 or YAFFS2 for NAND.The fact that UFFS consumes one block for each directory and one or...
2009-04-22 12:44:00 166
UFFS mounting process
One of the most important feature of UFFS is that it can boot up very fast.How fast is it ? Typically, mounting a full loaded 1Gb(with 8192 blocks, page size 512) NAND flash cost less than 1 seconds o...
2009-04-21 20:39:00 158
Build simulator on Windows (Visual Studio)
UFFS (>1.2.0) source code tree structure:.|-- doc`-- src|-- emu ---> NAND flash simulation, helper codes.|-- example ---> Example codes|-- inc| `-- uffs|-- uff...
2009-04-20 13:08:00 221
UFFS2 features
UFFS2 is under design. Compares to UFFS1, UFFS2 will have new features/improvements:1) Reduce memory footprint by using smaller tree node data structure, save 20%~50% memory comparing with UFFS1. ...
2009-04-19 11:55:00 335
Tips: 为源代码树打一个干净的包
为源代码树打一个干净的包------------- 有时候项目源码树中混有一些额外的,临时产生的文件,或者含有些源代码管理工具产生的管理文件,如.svn。这些文件散步在源码树中。 现在我想对源码树tar一个包,又不想让这些临时文件进入这个tar包,怎么办? 最简单的方法就是利用你使用的源代码管理工具。 如果你用svn管理代码,用以下命令:svn ls -R | xa...
2009-04-02 13:19:02 105
Linux tips: allow more than 4 serial ports
搞嵌入式的经常要和串口通讯打交道,在开发的时候有可能同时使用十几个串口,这个时候一个PCI多串口卡就好用了。 但是很多Linux发行版的8250驱动默认限制检测的最大串口数量为4,例如在Ubuntu 8.10有如下配置: cat /boot/config-`uname -r` | grep 8250 CONFIG_SERIAL_8250=yCONFIG_SERIAL_8250_A...
2009-02-12 12:58:14 382
交叉编译Ruby傻瓜指南
最近看到有人在交叉编译ruby的时候似乎碰到了许多问题(http://www.iteye.com/topic/322718)。其实交叉编译ruby原本应该是很简单的一个过程,希望这个“傻瓜指南”可以让新手也能够轻而易举地进行操作。注 1: 本文以Arm-linux为目标平台,其他平台需要调整到对应的工具链。注 2: 本文的编译平台是Linux (Debian/Ubuntu),如果在Cygw...
2009-02-05 11:35:22 339
优化Debian/Ubuntu下的ruby
我们都知道Debian/Ubuntu通过apt-get安装的ruby包很慢(参考:各种Ruby实现的性能评测修正版本) 通常我们都是通过自己从www.ruby-lang.org上下载源码并编译安装ruby来绕过这个问题,并且自己编译还可以打上各种补丁,比如这个(解决ruby内存泄漏的超级大补丁发布啦) 但是自己编译的ruby不能被dpkg -l识别,debian/ubu...
2008-12-30 19:27:58 169
原创 Debian/Ubuntu Tips: find the right package
Debian/ubuntu下经常碰到需要安装某个程序,却一时想不起到底这个程序属于那个包。在ubuntu下,多数情况会友好地提醒你包的名称,但不是全部。 这时,可以使用Debian网站提供的一个方便的包查询界面: http://www.debian.org/distrib/packages 例如,我想用debuild这个脚本,马上就查到devscripts这个包。...
2008-12-12 17:35:09 78
原创 VirtualBox makes my life eeeasier
我的工作环境很复杂,有些项目是ruby/rails,有些项目是GTK,有些项目是AVR,有些项目是armlinux,而有些项目是C#, .NET, 甚至还有8051,PIC....因此我经常要同时用到Linux,Windows系统。现在桌面上一排3个显示器加上示波器频谱仪器电烙铁什么的显得非常拥挤,最要命的是两个键盘两个鼠标非常不方便。在youtube上看到有个家伙show他的Ubuntu...
2008-11-26 12:49:16 93
Ruby/GTK应用笔记(3):垃圾回收
虽然垃圾回收应该属于RubyVM自动处理的事,但是一旦涉及到C扩展,情况就有些不同了。你可以在C扩展中申请资源并增加引用,导致VM无法回收资源--当然,这个属于bug,不幸的是,Ruby/GTK不是bug free :(以下列出一些我碰到的这样的bug,希望后来的朋友可以借此提前看到这个坑,不要踩到里面去。1) Gdk::PixbufGdk::Pixbuf可以用于从文件系统中装...
2008-09-14 08:39:13 167
Ruby/GTK应用笔记(2): Gdk::Pixbuf
Gdk::Pixbuf是GTK库极为重要的一个组件,从图标到图像控件,到处都可以看到它的身影,Gdk::Pixbuf让GTK使用图像资源变得轻松许多。Gdk::Pixbuf的用法文档说的比较清楚了,就不再重复,值得注意的是,Pixbuf在内部如何存储图像文档并未详细说明,这会给使用带来一些麻烦。1). Pixbuf#pixels: 返回的是内部像素内存的一份[b]拷贝[/b],而不...
2008-09-01 17:08:20 310
Ruby/GTK应用笔记(1): Gtk::Toolbar
由于Gtk的Toolbar内部接口发生了一些变化,在使用Gtk::Toolbar#append时可能会发生问题。当你在一个Gtk::Toolbar里面混合用:[code="ruby"]Gtk::Toolbar#append(stock_id)[/code]与:[code="ruby"]Gtk::Toolbar#append(widget)[/code]那么就会得到:[q...
2008-08-21 13:04:54 187
Ruby/Rails: 不一样的'Web'应用(续)
上一篇文章([url]http://www.iteye.com/topic/219826[/url])发出之后,很多人表示对这个案例很感兴趣,要求我再深入地谈谈。应大家之邀, 我对上一篇内容进行一些补充,谈谈如何在一个传统的嵌入式领域项目中为了拥抱变化而引入web技术,以及用定制的rails框架解决非web应用问题,最后简要地谈谈一般性应用的思考。在上一篇中,我轻描淡写地描述了由于客户对W...
2008-07-28 21:23:30 127
Ruby/Rails: 不一样的'Web'应用
我不是Web程序员,也从来未开发过用户超过10个人的'web'项目:-),但这并不意味着web技术对我无用,正相反,我开发过许多和web技术有关的程序和库,web架构和思想对我的设计和开发有着很大的帮助。例如我经常碰到要设计通讯协议以适应不可靠的传输,web的无状态特性正是克服不可靠传输的法宝,屡试不爽:-)最近一段时间用ruby作了不少东西,也有用rails,但是从来没有对rai...
2008-07-26 15:45:24 148
一个有趣的问题: 如何获取引用名?
我们知道, 对于 [code="ruby"]a = 100[/code]这样的一条语句, a是一个指向 "100" 这个对象的引用. 那么, 如何根据a得到它的名字"a"或者符号:a ?我现在实现了一个'swap'函数,它的作用是交换两个变量的值, 由于Ruby没有类似C的'指针',所以这个swap实现起来还真有点麻烦:[code="ruby"]a = 100b ...
2008-07-24 17:26:40 105
Ruby'陷阱'之: '||=' 的真正展开式
[i]前一段时间,我在这里[url]http://rubynroll.iteye.com/blog/192547[/url]展示了一个空格带来的'陷阱', 今天又见到另一个'陷阱'(http://dablog.rubypal.com/2008/3/25/a-short-circuit-edge-case by David).[/i]之所以为陷阱加引号, 是因为大部分情况下我们都没有机会掉进...
2008-06-27 20:14:52 158
SVN+GIT=鱼与熊掌兼得
使用git已经有一段时间了,从使用git的第一天开始,就计划逐步放弃svn.svn有的功能,git都能做到,而且做得更出色,况且git还有很多特性svn望尘莫及,还有什么理由继续使用svn呢? well,理由很多. 比如,git在windows上的性能问题, TortoiseGIT还没有开发出来(或者根本没有这个计划?),团队中其它人员不习惯用git....等等.那么,鱼与...
2008-06-13 22:45:36 199
动态模块加载和ELF Loader
很早很早以前就想在嵌入式系统上实现动态模块加载的功能了,期间走了些弯路,直到最近,才完整地在嵌入式系统上实现动态模块加载。=== 动态模块加载的好处 ===动态模块加载的好处很多,例如,当你升级一个系统的时候,可以只升级一个模块,而不必升级整个系统。你可以把不同的模块放在不同的介质上,并实施不同等级的保护,例如BIOS部分进行写保护。有些系统允许用户进行二次开发,这个时候几...
2008-06-12 13:09:17 1293
嵌入式Linux下常用的交叉编译方法
要在嵌入式Linux下使用动态语言,首先要解决的是语言解释器或执行引擎的交叉编译问题。交叉编译通常有以下几种途径:1. 直接通过交叉编译工具,手工配置交叉编译。交叉编译工具可以利用这个脚本来自动生成:http://kegel.com/crosstool/此方法的好处是简便快捷,一旦crosstool做好以后,需要什么包直接编译即可,而且可控性很强。缺点是对各种配置参数要很了...
2008-05-21 17:47:33 993
可以使用Python编程的嵌入式无线模块!
Telit 是一家专业设计和生产无线模块产品的公司,值得注意的是,它几乎在所有的最新产品中集成了嵌入式Python解释器,这样使用者就可以使用Python脚本快速地开发应用,这些Python脚本可以保存在模块内部运行,而不用另外的MCU去和模块进行AT命令交互。想起以前在WaveCom的OpenAT平台上开发应用,那个叫郁闷....以下链接是Telit的一个4频GSM/GPRS模块...
2008-05-21 17:45:42 253
空格的 ”陷阱“
今天无意中碰到一个空格带来的“陷阱”:[code="ruby"]def a 10endb = a+1=> 11b = a + 1=> 11b = a+ 1=> 11b = a +1ArgumentError: wrong number of arguments (1 for 0) from (irb):8:in `...
2008-05-13 12:27:31 88
ubuntu 8.04 意外惊喜
刚安装了ubuntu8.04,没想到给我了个惊喜--我的AIT Xpress 200居然可以跑compiz了!用ubuntu 7.10的时候无论怎么折腾,compiz就是起不来,现在好了,哈哈,哈哈,哈哈~如果你的机器也象我的一样,只有一块底端显卡,不凡试试ubuntu 8.04,说不定也会给你个惊喜哦!...
2008-04-26 13:12:12 123
除了Web开发,Ruby还能作点什么
一提到Ruby就Rails,你大概腻了吧? 没关系,看看除了Web开发,Ruby还能作点什么 :)===如果你熟悉嵌入式开发,如果你用C/C++的话,估计离开不了交叉编译工具。虽然网上能下载到编译好的交叉编译工具,但是不一定能满足你的需求,经常不得不自己手动从源代码开始自己编译交叉工具。虽然这不是什么难题,但是就我自己而言,每每碰到这样的问题,都需要到网上google一番,参考一些别人...
2008-03-27 18:54:37 802
Rbuild, 让你的项目立即可配置
虽然工作中在用Ruby,却也想在业余的时候用Ruby作点什么东西。以前用C/C++写东西的时候就有过困扰,一个产品系列总是有那么些差异,需要对一个基础软件进行定制,这个型号的要把这个功能编译进去,那个型号的,需要把另外一个功能编译进去...很羡慕Linux内核有一个好用的基于菜单配置的工具,要是在我的项目中也能用它来管理不同模块的配置该多好啊.....不过要想把Linux内核配置那一套拿出...
2008-03-25 17:47:59 246
A simple inter-process lock
Linux程序员通常喜欢用文件锁来做进程间的同步,或简单地用文件锁指示程序进程是否还健在。在ruby里面可以很简单的实现文件锁:[code]=begin file lock for inter-process sync. usage: FSLock('mylock') do # protected by lock, # do your job here ....
2007-12-29 11:44:35 153
A Simple pseudo keyboard driver for Linux
如果你想把从串口或者其他地方接收到的数据当作是从键盘输入,该如何实现?我最近写了个简单的Pseudo Keyboard (称之为:伪键盘)内核模块来实现这个功能,很简单但很有趣 :)把以下代码存成pkbd.c,编译成模块pkbd.ko,然后用insmod pkbd.ko插入内核。模块插入成功后,会在/proc下建立pkbd文件,以及在/dev下自动建立输入设备(如果你用ud...
2007-12-24 21:04:25 107
OO Programing in C (3)
[b]OO Programing in C is not only POSSIBLE but also PRACTICAL[/b]--------------------------------------------------------------------------------OO的一个亮点是类的"继承",通过"继承",可以重用许多代码。而且"继承"也是现实生活中非常自然的...
2007-12-24 20:22:55 138
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人