月度归档:2011年03月

使用 Alchemy 技术编译 C 语言程序为 Flex 可调用的 SWC

最近发现 Flex 里有个新的玩儿法,可以把C语言写的程序编译成SWC供Flex调用。使用 Achemy (http://labs.adobe.com/technologies/alchemy/) 技术。这就为很多算法优化提供了可能。  下面是以我的 Mac OS 系统为例的简单介绍(更详细的请参见官方的文档):

  1. 下载适合你操作系统的版本( http://labs.adobe.com/downloads/alchemy.html ),前置需求:
    • Alchemy Toolkit Package for your operating system
    • XCode 2.4+
    • Flex 3.2+ SDK
    • Flash Player 10
  2. 设置环境:在终端里执行 vim ~/bash_profile 添加如下设置,完成之后重启终端。
  3.  
    
    export FLEX_HOME=~/Development/Adobe/FlashBuilder4/sdks/4.1.0
    export PATH=$FLEX_HOME/bin:/opt/local/bin:/opt/local/sbin:$PATH 
    export ALCHEMY_HOME=~/Development/alchemy-darwin-v0.5a
    source $ALCHEMY_HOME/alchemy-setup
    export PATH=$PATH:$ALCHEMY_HOME/achacks 
    
    
  4. 测试环境。
    • 在 $ALCHEMY_HOME 目录下,修改 config 加入执行权限:chmod a+x config
    • 执行 ./config 仔细检查输出。
  5. 使用
    • 首先执行:alc-on; which gcc 输出 gcc 路径应该在 $ALCHEMY_HOME/achacks/ 下。
    • 编译C语言文件:gcc xx.c -O3 -Wall -swc -o xx.swc
    • 如果一切没错,swc文件已经编译完成。
    • 在Flex应用中调用
var loader:CLibInit = new CLibInit();
var lib:Object = loader.init();
trace(lib.echo("foo"));

如此以来,就可以使用C语言写一些优化的算法,然后在Flex调用,提升算法运行速度。

一波三折地升级 Mac OS 10.6 (Snow Leopard)

话说 Snow Leopard 已经出来很长时间,一直没有升级。其一,是懒,其二就是之前太忙,也没怎么使用我的 MacBook。最近打算用它做个小开发什么的,顺便在玩玩儿XCode,开了之后才发现一个悲催的事实,之前装的很多东西都过时了很久了。凑合用了一段时间,在升级 mercurial 的时候我下定的升级系统的打算。我使用 MacPort 管理这些 Unix 兼容的软件,于是首先升级了 MacPort,执行的时候突然发现,XCode版本太旧了,含泪 Down 了 XCode 3.26 with iOS 4.3 的package(为了down它我开了迅雷的会员,么办法啊,直接down真是很费劲啊,4.3G!!!),花了一夜down之后开始安装,又杯具了,只支持 Snow Leopard, 555~~~。

于是搞了一个 dmg 的 Snow Leopard 安装,在刻坏了近一盒 DVD+R DL 盘之后,我确认,MacBook的Super Driver已经彻底罢工,无奈之下只好选择其他方案。

方案一:使用我的工作本儿 Thinkpad T400 的刻录机刻录。

  1. 首先拷贝 DMG 到 Windows 下。
  2. 转换 DMG 到 ISO,使用 DMG2IMG 这个实用的小工具(http://vu1tur.eu.org/tools/
  3. 下载 DMG2IMG 最新的版本,然后将 DMG 文件放在其同一目录下,在命令行执行: DMG2IMG  LeoSnow.dmg LeoSnow.ios
  4. 转换完成之后,使用各种刻录软件以 Disk Copy 的方式刻录。
  5. 刻录完成,安装。

方案二:使用移动硬盘(U盘)安装,前置条件:一个可运行的 Mac 系统,一个 8 G以上的 Mac格式的移动硬盘, U盘等

  1. 使用 Disk Utility 打开 DMG 文件,使用其还原功能还原 DMG 到你的移动硬盘。source选择你的 DMG 文件,destination选择你的移动硬盘。下面的 Erase Destination 选项是指是否删除 destination的所有数据,如果你不想删除,uncheck it。
  2. 拷贝完成之后,打开 System Prefrences -》 Startup Disk, 选择你的移动硬盘,Restart,等着出现安装界面。
  3. 我是使用这种方案安装的,因为我都已经安装完成了,方案一的盘还没刻好。

安装完成之后,更新了一个1G多的 10.6.7,之后一切就OK了。

苹果系统间的平滑升级做得还是很好,我之前所有东西基本OK,除了重新安装一个 10.6 版本的 MacPort。

 

 

那些小公司

在过去的经历里,时不时的我会回想起那些我记忆中的小公司来。

Orzar

我到北京的第一家公司,也是留给最深印象的公司。Orzar 是西班牙语里逆风而行的意思。公司中文名是 浪驰互动,应该鲜有人听说,当初就连写字楼都很难找。当然,万能的我还是在没有询问任何人找到了,哈哈。

公司当时主要靠做 Laszlo System 的外包维持,技术方向是 RIA。初期主要用 OpenLaszlo 和 RoR,后期因为 Flex 的发展,也转做过 Flex 和 Grails。

有几个有代表性的产品。

Orzar Book – 应该是国内早期很高质量的 RIA 应用,估计接触过 OpenLaszlo的人应该知道,可惜没有商业化。

Orzar 大头贴 – 一个在线拍摄大头贴的应用,做过两个版本。

当然,最难忘的还是 Orzar 的同事们,就像老贾,Seven,小歹(Dynamic被我们给简化了),大全,Vivi等。

老贾那傻样,哈哈

 

老贾和Seven目前还在继续奋斗,而且最新的成果是wap游戏 – 星际海盗,在 wap.renren.com 可以看到哦。放个截图:

 

ENWAY (http://www.enwaysoft.com) 亿维融智

我在中科软很郁闷的时候,面试过的一家小公司,当时公司刚刚成立不久,条件还是比较艰苦的,是在公司老板张维的一套商住两用房子里,虽然我最终没有去这家公司,但是并不是因为条件有多艰苦,也不是因为薪资问题,主要原因在于和我的技术方向不是十分的 Macth,还有给我用 Skype 面试的那位仁兄表现的不是很礼貌(作为一个技术人员,对他态度我表示理解,对他的自以为是我表示遗憾)。哈哈,因为呢,我通常不想谈的时候会装什么都不会,让对方不耐烦,这样我没有心理负担。

不过通过与公司老板张维的沟通,觉得他还是一个十分 Nice 的人。

EnWay 主营产品就是 TaskCity 中文名 智城,http://www.taskcity.com/, 是一个离岸外包服务平台。

张维

我之所以经常会回忆这些,看中的是这些创业者的艰难与坚持,每一个坚持不懈努力的创业者都早就已经是个成功的人,结果真的十分重要吗?为自己的理想而奋斗,有意义的活过,这是每个创业者背后的最大的价值。

 

早期写的 Flex 组织机构图(OrgChart)

在很久之前做山西省电子政务的时候,给那边写了一个 Flex 的组织机构图,后来我把核心的代码开放出来(http://code.google.com/p/myflex/),当然不能说我写的有多好,但是至少是个能用的。而且本来这个组件开源的就不多,在我写这个组件的时候,我只找到 IBM iLog 有一款上商业的组件,最近我在网上发现了一个新的,在这个地址:http://code.google.com/p/cubecomponents/,是用 Flex4 写的。

新窗口中查看

在 Mac OS 10.5 上卸载 MySQL

注意:确保MySQL没有运行

首先编辑 /etc/hostconfig 删掉MYSQL的配置。

  1. 在终端理执行 sudo nano /etc/hostconfig
  2. 删除 “MYSQLCOM=-YES”
  3. 按CTRL+X , 之后按  “Y” 保存并退出。
  4. 复制如下命令到终端,并执行
sudo rm /usr/local/mysql
sudo rm -rf /usr/local/mysql*
sudo rm -rf /Library/StartupItems/MySQLCOM
sudo rm -rf /Library/PreferencePanes/My*
sudo rm -rf /Library/Receipts/mysql*
sudo rm -rf /Library/Receipts/MySQL*
sudo rm /etc/my.cnf

OK,你已经完全删除了MySQL。