今天netbeans 6.5正式版发布,netbeans兑现它的承诺,PHP首先从这个版本开始正式支持了。我不是做PHP的对这些本没什么兴奋,不过在下载页面的一个角落里发现NetBeans IDE for Python的下载链接,虽然只是一个Early Access,不过一个明显的信号就是,python有可能在下个netbeans版本被加入了。这是个不错的信号哦,python的很多强大的IDE都是要money的,真的非常希望netbeans能做出一个强大的python ide来,为开源事业再做贡献。

http://www.netbeans.org/features/python/index.html

by admin | Categories: 新闻 | Tagged: , | No Comments

今天早上刚发现的,一登录gmail上面就提示了一个主题标签,以前可从来没见过,一点发现里面有好几十种已经预设好的主题。原来google打算给gmail装扮了,帅!我改了一种“终端机”主题看看:

gmail theme

gmail theme

by admin | Categories: 开发心得 | Tagged: , | 3 Comments

如果你翻看过flex builder 的安装目录,可以发现文件夹sdks里有两个文件夹,分别代表了flex2 sdk和flex3 sdk。flex builder是可以支持多个sdk切换的。方法是:选中某个project,右键点开properties,选择flex compiler,最上面就有flex sdk version可以选择(如果切换到flex2,在编辑的时候给出的代码提示会不同,编译错误提示等,反正完完全全进入flex2的状态了)。当然还可以编辑或加入新的sdk,在Configure flex sdks..里面。

最近为了一些很恼人的需求,我就在做改良sdk的工作,比较麻烦。flex builder支持多个sdk的话,就可以不破坏原来的sdk了。更多详细介绍可以看看老外的视频

by admin | Categories: flex | Tagged: , | No Comments

好不容易找到的,支持最新的Komodo 5版本,点击下载activestatekomodoidev50024586forwindows-bean

by admin | Categories: 开发心得 | 1 Comment

Lua初尝试

Nov 16, 2008

Python,Lua和Ruby是当前动态语言三大当红小生,呵呵,在java,.net等巨头夹击下不容易啊。python是我一向喜欢的,ruby听说也差不多。今天有幸试了下Lua,感觉和它的两位兄弟不大一样。

  • 第一个感觉是小,windows下编译出来的lua库大概就100多k吧,200还不到,这样用来做嵌入式语言不错。当然功能是很简单的。不过我更喜欢用简洁这个词,简洁代表着可配置可扩展,是我喜欢的类型。
  • 第二感觉是跨平台,因为lua很小,那么即使放到手机里也是不错的。Lua正是一种可以移植到移动平台上的语言。
  • 第三点认识是快。我没开发过当然不知道是不是真的,官网这么讲的。

如果有兴趣可以去官网看看,目前Lua的资料很少。我照着programming in lua.pdf文章里的入门例子试了一下。

首先先去下载编译好的lua(当然也可以下source code自己编译,我用VS2008编译过,成功哦),然后用随便那个文本编译器写脚本(不要指望哪个IDE,Lua这么简单的玩意儿),我用的是Komodo Edit,呵呵,这里给Komodo做下广告,这玩意儿好啊,支持十几种语言(同时语法高亮,语法提示),出门在外必备品。下面是lua脚本内容:

-- define a factorial function
function fact(n)
    if n == 0 then
        return 1
    else
        return n*fact(n-1)
    end
end
 
print("enter a number:")
a = io.read("*number") -- read a number
print(fact(a))

然后和执行一下,和python差不多:lua5.1 myfirstlua_fact.lua。

运行结果

运行结果

by admin | Categories: Lua | Tagged: , | No Comments

FireFox四周年纪念

Nov 14, 2008

记得还在读大学那会儿,就注意到很多网页上有firefox的广告。那广告词怎么说来着?稳定,没有乱七八糟的插件等等什么的,记不大清楚了。那时候我下过尝鲜,印象不是太好,感觉慢条斯理的。后来工作了,firefox才算慢慢进入我的生活,我的感觉是,firefox成长很快用户体验也越来越好。前一段时间有很多的firefox新闻,包括一些银行,淘宝等等开始支持firefox(这样的话我用ubuntu也可以上淘宝啦),还有我们做开发也必定会考虑firefox的情况,这是firefox普及的一些必然现象。成就firefox的有IE一份功劳。如果不是IE作为众矢之的,这个那个的黑客骇客都来没事耍耍肌肉的话,firefox也不会迅速普及开来,当然不可否认它在架构上有一定先进性。作为一个不错的后起之秀,firefox到目前为止做得还算对得起人民,我现在是常用它了,以前先后用过IE和Opera没坚持下来。

今天看到篇文章,忍不住贴出来看看,来自LUPA开源社区

11月10日是火狐浏览器发布的第四周年纪念日,2004年火狐浏览器预览版一经推出便被800万用户下载,一个月后也即11月9日,Mozilla基金会宣布正式发布Firefox 1.0版。据Mozilla官方博客网站称,当时的Firefox 1.0所包括的功能只有弹窗拦截、防止欺诈、集成搜索和标签式浏览。四年后,Firefox几经改进,功能日益完善,新增了密码管理、一键书签、智能定位栏、即时网站ID、本地化外观平台和全屏功能。

就在前不久火狐浏览器在全球浏览器市场的占有率突破20%,与该领域的霸主IE浏览器间的差距正在不断缩小。回顾过去的四年,火狐表现令人满意,一年上一个台阶,2004年12月其在全球浏览器市场的占有率为5%;05年12月则上升至 8%;06年12月更是增至 11.59%;2007年12月则是15%,2008年10月更是突破20%,较四年前扩大了2.29倍。如果火狐继续保持这样的增长速度,势必在下一个四年夺得85.67%的市场份额,到时微软IE浏览器和火狐的位置就该互换了。

Firefox四年的高速发展主要得益于其领导者 Mozilla一贯坚持的开源、共享、创新的理念。正是在这种理念的引领下,Mozilla实现了全球只有170名员工而能服务超过一亿八千万的用户。在产品研发中有超过50%的开发者均为社区志愿者,同时全球拥有六个独立的公司,产品的语言版本也超过五十种,Mozilla不仅应对了如此复杂的运营,同时还与庞大的Microsoft展开了竞争。Firefox(火狐浏览器)市场份额持续提升,让我们看到了开源的勃勃生机。

最近,面临竞争日益激烈的浏览器市场,Firefox并没有畏惧和退缩,这个开源的先锋正通过自己不断的努力实现着开源的价值。FireFox 3.1 Beta的发布,众多新功能的登场,让广大用户对更好的FireFox充满期待。而移动版Firefox不断曝光的研发进程也让广大FF迷们颇为关注。尽管多数人目前还不能体验移动 Firefox,但有几件事是我们可以期待的,包括使用侧面导航的全屏显示,包含了历史,书签,搜索的Firefox 3的Awesome Bar,以及大量的Firefox扩展。

不仅如此,Mozilla还于上月推出了一项名为“Impact Mozilla”的市场计划,面向全球征集Firefox(火狐浏览器)推广创意,意在聚合全球智慧,共同推动更多人下载Firefox软件之后经常使用,真正成为火狐浏览器的用户。正如Mozilla一贯坚持开源、共享、创新的理念一样,谁说只有技术人员才有机会参与开源?只要你为Mozilla出谋划策,就是在“开源”!

原来firefox已经四年了(怎么才四年,貌似好久了)。市场份额首次超过20%,IE逐渐缩水,这真是我们这种反垄断人士喜欢看到的,^_^。在这里恭喜一下了,希望firefox不要步IE后尘。

by admin | Categories: 观察 | Tagged: | No Comments

今天偶然上javaeye看看新闻,OpenOffice 3.0正式版早就发布了。我已经用OpenOffice不少时间了,没理由不升级看看。在www.openoffice.org下载下来安装后,发现图标变了,界面也变得更加的“和谐”,o(∩_∩)o…贴个图看看来。

openoffice 3

openoffice 3

这个欢迎界面把office的几个板块和在一起。更关键的是,OpenOffice 3.0的全面支持MS Office 2007的新格式,测试中我打开了一个pptx,感觉不错。OpenOffice给我的感觉是清新简洁,使用起来很方便,兼容MS Office也不错。如果你不是专业的办公人员,像我这样只是简单的用用文本处理,幻灯片,表格,选择OpenOffice挺适合的。咱也以实际行动来支持一下开源社区吧。

by admin | Categories: 开发心得 | Tagged: | No Comments

python 自带了minidom库来解析xml,用起来还算比较简单,很像一个原始版的函数库。如果看一下python manual,minidom的脉路还是很清晰的,以Node(节点)为基本要素。基本上和AS2的解析方式差不多。minidom包含如下几种Node类别:

  • Node
  • NodeList
  • DocumentType
  • Document
  • Element
  • Attr
  • Comment
  • Text
  • ProcessingInstructure

貌似几乎涵盖了所有xml元素。其中Node是所有XML元素的基类。里面最最常用的就是Document,Element和Text了。

  • Document代表了xml文档,由一个很常用的属性叫documentElement,就是根节点,是一个Element对象。一般用parse解析xml文件,或者用parseString转换xml样式的字符串,来得到Document
  • Element代表一般节点,常用属性有tagName(节点名称)等。通常都是用遍历方式来获得子节点的。minidom有个比较恼人的地方就是它不能忽略注释和空白,所以在遍历的时候要注意查看nodeType(Node类的属性,节点类型,Element是1,Text是3),然后再去看tagName。
  • Text是文本节点。比如有一段xml:<p>paragraph</p>。它是一个Element,那么Element的子节点就是Text节点,如果要获得字符串就用data属性。按这个例子,获得字符串paragraph的方法是:Element.firstChild.data

minidom解析xml还算比较方便。俺也是刚入门。以后学多了继续写啊。

by admin | Categories: python | Tagged: , | No Comments

List包含一个很酷的属性allowMultipleSelection(实际是ListBase定义的,所以对于DataGrid也适用),它可以做多项选择。美中不足的是它不能控制多项选择是不是连续的。你既可以选择1,2,3行,也能跳着选1,3,5行。来看看allowMultipleSelection的解释:

A flag that indicates whether you can allow more than one item to be selected at the same time. If true, users can select multiple items. There is no option to disallow discontiguous selection. Standard complex selection options are always in effect (shift-click, control-click).

我在项目中碰到一个要求,禁止非连续多项选择(比如不可以选1,3,5)。如果看List的文档似乎是没可能的,不过天无绝人之路,List不给咱们路,咱们就自己找路。

按照常识,List的多项选择需要借助Ctrl和Shift。Shift是用来连续选择的,放过。而Ctrl则可以任意选择。我的想法就是对Ctrl下手,在flex层面将Ctrl禁掉。为什么说是flex层面呢,你总不能把用户的ctrl键给拆了吧,哈哈。这里就需要借助flex的event流。建议看一下ListBase的源码,LIstBase来自UIComponent,同是它也重写了UIComponent的mouseXXXXHandler方法。这里我只需要继承一个List再次重写那些鼠标响应方法,在那里将Ctrl禁掉。看看代码:

package myvocal.visual
{
	import flash.events.Event;
	import flash.events.KeyboardEvent;
	import flash.events.MouseEvent;
 
	import mx.controls.List;
	import mx.events.*;
 
	public class MyList extends List
	{
		public function MyList()
		{
			//TODO: implement function
			super();
		}
 
 
		protected override function scrollHandler(event:Event):void
		{
			//trace("onUserScroll")
			super.scrollHandler(event);
			this.updateList()
		}
 
		protected override function keyDownHandler(event:KeyboardEvent):void
		{
			if(event.ctrlKey)
			{
				event.ctrlKey = false;
				event.shiftKey = true;
			}
			super.keyDownHandler(event);
		}
 
		protected override function mouseDownHandler(event:MouseEvent):void
		{
			if(event.ctrlKey)
			{
				event.ctrlKey = false;
				event.shiftKey = true;
			}
			super.mouseDownHandler(event);
		}
 
		protected override function mouseClickHandler(event:MouseEvent):void
		{
			if(event.ctrlKey)
			{
				event.ctrlKey = false;
				event.shiftKey = true;
			}
			super.mouseClickHandler(event);
		}
	}
}

知道用户按住了ctrl,event.ctrlKey就是true。然后在我继承的List类里把它们改成false就可以了(我同时也改了shiftKey,为了让ctrl达到shift的效果)。注意键盘响应函数也要改一下。是不是很简单。

经过多次alpha和beta版本,python 2.6的正式版终于发布。新特性的论述见这里。这次业界的反映好像不够热烈,官方也说了,这是一个向 python 3.0的过渡版本,添加了一些3.0的新特性同时也保留和2.x系列的兼容。我个人非常期待3.0,据说这是一次大飞跃啊,而且和2.x不兼容。就如同as2到as3的升级。

by admin | Categories: python, 观察 | Tagged: , | No Comments