一直担心twitter会被墙,理由很简单,他没有在中国备案。
这事早在预料之中,只是时间问题,所以所有的推友们,都做足了思想准备
在六四来临之际,终于“预言”成真了。
继续这翻墙的日子……
搜索结果 分类目录: 胡说八道
一直担心twitter会被墙,理由很简单,他没有在中国备案。
这事早在预料之中,只是时间问题,所以所有的推友们,都做足了思想准备
在六四来临之际,终于“预言”成真了。
继续这翻墙的日子……

http://code.google.com/p/as3ds/
游戏开发的AS3 数据结构,很多来自java的数据结构,比较全了
详细的结构可以参考:http://www.insideria.com/2009/03/java-collections-for-flex.html
很多初学者在使用cakephp的时候,连基本的配置都需要花费大量的时间,其实我也是摸索了一段时间;
所以翻译这篇文章希望对Cakephp的初学者有帮助。
原文:Installing CakePHP on Windows
这篇教程将教你如何在Windows XP中安装Windows-Apache-PHP-MySQL+CakePHP。这篇教程同样适用于Windows2000和Vista,虽然我没有在这些环境中测试过,但是应该与Windows XP类似。
软件条件:
现在所有的内容就是你所要的了。
安装Apache
双击安装程序图标来运行安装程序。我不喜欢将Apache安装到很多层下的目录,因此我把安装目标改到了:C:\Apache\。除此之外所有的默认的选项都是很好的。
然后启动你的Apache并在浏览器中输入http://localhost/来测试是否成功,如果成功你将看到页面上出现“It Works!”。
如果所有的都成功,你将在Apache Service Monitor 窗口的底部状态栏中看到Apache/2.2.x (Win32) PHP/5.2.6。有时候你可能需要关闭窗口,重新打开才能看到。
安装MySQL
我很想给你更具体的设置但是这里仅仅运行安装。当安装完毕,它将询问你是否想要默认设置(default settings )还是想通过引导安装(guided setup)。选择你想要引导安装(guided setup)。我做了一下的更改,其他都是默认的。
到这里,我会重启我的电脑。也许你会问为什么?如果不重启会有很多因素导致PHP,Apache和MySQL不能很好的运行。
安装CakePHP
现在…
当你在%PATH%中看到新增的路径,试试如下步骤来验证安装是否成功:
你可以看到php的版本信息和cake控制台的帮助信息。
你现在可以在你的Windows XP开发cakePHP了
最后声明:此信息截至2008年9月13日。不是所有的机器都配置相同的方式,让您的系统工作按照这些指示,这可能会导致问题。我发现这些步骤,是可重 复在许多不同的机器,但是它也有可能不适合您。每个工具都有很大的支持社区,以帮助您解决遇到的任何问题。我提供的信息“现状” ,并不会提供技术支持的人谁遇到的问题。

火狐(Firefox)的移动版浏览器Fennec开始为HTC Touch Pro的手机提供下载。但是同样支持是VGA(480X640)屏幕的WM系统。
根据Mozilla团队的日志上看到,这个发布版本还不支持插件、不支持软键盘输入等
下载地址:Fennec
一些领导一直说:“多给我提意见”?存在严重的利益关系,有谁敢说呢?
其实现在的政府部门也一样,很多企业、个人对政府有意见,但是有谁敢当面指出来,谁知道你背后不会出些手段呢?
一直说政府要充当服务的职能,但是这种决定性的服务,已经不是正真意义上的服务,因为你没有其他的选择。
服务应该是可选择性的,当一种服务成了一种不可选择的“必须品”,已经失去了服务的本质。
根据Dynamic Grid重新整理了一个适合在extjs2.2版本下使用的动态editGridPanel。
代码如下:
Ext.grid.DynamicColumnModel = function(store){
var cols = [];
var recordType = store.reader.recordType;
var fields = recordType.prototype.fields;
if (fields.length == 0) {
fields = store.reader.headers;
for (var i = 0; i < store.reader.headers.length; i++) {
var header = store.reader.headers[i]
cols[i] = {
header: header.text,
dataIndex: header.name,
tooltip: ”,
hidden: header.hidden,
renderer: eval(header.renderer)
};
}
}
else {
for (var i = 0; i < fields.keys.length; i++) {
var fieldName = fields.keys[i];
//add checkbox column
if (fieldName == “__chkbox”) {
cols[i] = new Ext.grid.CheckboxSelectionModel();
continue;
}
//add checkbox column
if (fieldName == “__rownum”) {
cols[i] = new Ext.grid.RowNumberer();
continue;
}var field = recordType.getField(fieldName);
cols[i] = {
header: field.header,
dataIndex: field.name,
tooltip: field.tooltip,
hidden: field.hidden,
sortable: true,
renderer: eval(field.renderer),
editor: new Ext.form.TextField()
};
}
}
store.fields = store.reader.recordType.prototype.fields;
Ext.grid.DynamicColumnModel.superclass.constructor.call(this, cols);
};
Ext.extend(Ext.grid.DynamicColumnModel, Ext.grid.ColumnModel, {});Ext.data.DynamicXmlReader = function(meta){
meta = meta ||{};
Ext.data.XmlReader.superclass.constructor.call(this, meta,meta.fields);
};
Ext.extend(Ext.data.DynamicXmlReader, Ext.data.XmlReader, {
getRecordType: function(data){
recordDefinition = Ext.DomQuery.select(this.meta.recordDefinition + ‘ > *’, data);var arr = [];
j = 0;
for (var i = 0; i < recordDefinition.length; i++) {
if (recordDefinition[i].nodeType == 1) {
arr[j] = {
name: recordDefinition[i].tagName,
header: recordDefinition[i].getAttribute(‘header’),
tooltip: recordDefinition[i].getAttribute(‘tooltip’),
hidden: recordDefinition[i].getAttribute(‘hidden’) == “true” ? true : false,
renderer: recordDefinition[i].getAttribute(‘renderer’)
};
j++;
}
}this.recordType = Ext.data.Record.create(arr);
return this.recordType;
},readRecords: function(doc){
this.xmlData = doc;
var root = doc.documentElement || doc;
this.getRecordType(root);
return Ext.data.DynamicXmlReader.superclass.readRecords.call(this, doc);
}
});Ext.grid.DynamicGrid = function(container){
Ext.grid.DynamicGrid.superclass.constructor.call(this, container, []);
};
Ext.extend(Ext.grid.DynamicGrid, Ext.grid.EditorGridPanel, {
onRender: function(ct, position){
this.store.on(‘load’, this.doReconfiguration, this);
this.colModel = new Ext.grid.ColumnModel([{
header: '',
dataIndex: '',
sortable: true
}]);
Ext.grid.DynamicGrid.superclass.onRender.call(this, ct, position);
},
doReconfiguration: function(){
this.colModel = new Ext.grid.DynamicColumnModel(this.store);
this.view.bind(this.store, this.colModel);
this.view.refresh(true);
this.store.removeListener(“load”, this.doReconfiguration);
}
});