木头的移动开发日志(1)
昨天用eVc4写了程序,并成功在模拟器上面做了一个简单的界面,今天就想用ActiveSync来连接模拟器,好用RAPI来做开发,结果死活连不上,太郁闷了。Google了好久,文章也看了很多,解决的办法大同小异,什么VirtualSwitch啊,.NET 2003的Connect ActiveSync with Emulator啊,什么都试了,可还是连不上,实在是郁闷,摸不着头脑了,算了,先Ruby一会了。
昨天用eVc4写了程序,并成功在模拟器上面做了一个简单的界面,今天就想用ActiveSync来连接模拟器,好用RAPI来做开发,结果死活连不上,太郁闷了。Google了好久,文章也看了很多,解决的办法大同小异,什么VirtualSwitch啊,.NET 2003的Connect ActiveSync with Emulator啊,什么都试了,可还是连不上,实在是郁闷,摸不着头脑了,算了,先Ruby一会了。
昨天在用Embedded VC++写PPC的程序的时候,需要根据ListView选择的ListView Item的不同来执行不同的操作。我用的是ListView_HitTest这个宏,发现如果ListView Item的LV_ITEM的mask设置了LVIF_STATE之后,ListView_HitTest所得到的Item的序号就不正确了,移掉该项就可以了。
使用MySql的话,用命令行工具管理实在是有些不方便,推荐两个工具:
一个是phpMyAdmin,用PHP的人可以考虑这个
另一个是EMS MySQL Manager Lite,Windows下面用这个不错。
Rails Login Engine和User Engine提供了基本的用户登录,用户管理相关的功能,可以直接在应用程序中使用。
安装:
ruby script/plugin install http://svn.rails-engines.org/engines/trunk/
ruby script/plugin install http://svn.rails-engines.org/login_engine/trunk/
ruby script/plugin install http://svn.rails-engines.org/user_engine/trunk/
上面3个命令就分别安装好了所需的Engine。
相关的文档在:http://api.rails-engines.org/engines/
http://api.rails-engines.org/login_engine/
http://api.rails-engines.org/user_engine/
按照文档里面写的一步一步来就OK了。
文件上传(FileColumn)
网页:http://www.kanthak.net/opensource/file_column/
安装:http://opensvn.csie.org/rails_file_column/plugins/file_column
主题支持(Theme Support)
安装:http://mattmccray.com/svn/rails/plugins/theme_support
动态的树型结构(LiveTree)
网页:http://www.epiphyte.ca/code/live_tree.html
下载:http://www.epiphyte.ca/downloads/live_tree/live_tree-0.1.2.zip
国际化插件(Globalize)
网页:http://wiki.globalize-rails.org/
安装:http://svn.globalize-rails.org/svn/globalize/globalize/trunk
本地化(Localization)
网页:http://mir.aculo.us/articles/2005/10/03/ruby-on-rails-i18n-revisited
安装:http://dev.rubyonrails.org/svn/rails/plugins/localization/
文件上传进度显示(Rails Upload Progress)
网页:http://wiki.rubyonrails.com/rails/pages/Upload+Progress+Bar
Demo:http://sean.treadway.info/demo/upload/
Rails引擎(Rails Engine)
网页:http://rails-engines.org/
安装:http://svn.rails-engines.org/
包括LoginEngine, UserEngine,WikiEngine
索引搜索(Indexed Search)
网页:http://lance.langwell-ball.com/pages/indexed-search
安装:http://langwell-ball.com/svn/indexed-search/
Ajax Scaffold生成器(Ajax Scaffold Generator)
网页:http://ajaxscaffold.height1percent.com/
安装:gem install ajax_scaffold_generator
首先当然是下载Ruby了,在Perl Kick Start里面有写地址。
另外的一个是编辑器:一个是基于Eclipse平台的:RadRails;另外一个是之前提到过的Komodo,Komodo是商用的,不过可以试用21天。个人觉得Komodo要好一些,它也提供了其他语言的支持,包括Perl,Python,Ruby,TCL等。
首先到http://www.activestate.com/网站下载Active Perl,Active Python,到www.php.net 下载PHP,到http://www.ruby-lang.org/en/20020102.html下载Ruby,http://rubyforge.org/frs/?group_id=167有Ruby的Windows安装包。
ActiveState还提供一个很好的动态语言的IDE,叫Komodo,可以下载试用的。
好了,启动Komodo,新建一个Perl文件,经典的例子:
print “hello world\n”;
今天在TSS上面看到Spring Web Flow 1.0 EA发布了:http://www.springframework.org/node/239。于是下载了一个适用,它所满足的需要主要是页面上的流程控制,以XML文件的格式描述一个页面流转。其下载的包里面附带了几个例子,都比较简单,不过能说明问题。
可能的应用包括网上商店这样的应用,可能需要根据用户的不同选择呈现不同的页面;另外可以实现很复杂的Wizzard。
另外一个消息是Canoo WebTest 2.0发布了。http://www.theserverside.com/news/thread.tss?thread_id=39430
TSS上面讨论的焦点在于其同Selenium的比较。
当把写好的Portalet放到jetspeed/WEB-INF/deploy目录下之后,jetspeed会自动部署,不过是部署成为另外的一个应用。接下来在引用此portlet的时候会出现Failed to find Servlet context for Portlet Application的错误。其原因是这样部署需要cross context支持,按理说Tomcat 5.5支持的,不过总是出现这个错误。
暂时的解决办法是为portalet的war加上jetspeed-前缀,这样会自动部署到apps目录,这样就可以在一个应用中访问了。
Jetspeed2是一个企业级的开源门户:http://portals.apache.org/jetspeed-2
首先需要下载Maven,Jetspeed2用的还是Maven 1.0,所以多少还是有些不太习惯。下载的地址是:http://www.apache.org/dyn/closer.cgi/maven/binaries/maven-1.0.2.exe
Maven下载后安装即可,并把安装目录添加到Path中。自己建立一个文件夹,比如C:\home\myportal,在下面新建一个build.properties文件,其内容是:maven.repo.remote = http://www.bluesunrise.com/maven, http://www.ibiblio.org/maven, http://dist.codehaus.org, http://cvs.apache.org/repository
然后在命令行运行:maven -DartifactId=maven-jetspeed2-plugin -DgroupId=org.apache.portals.jetspeed-2 -Dversion=2.0 plugin:download
注意要和之前的属性文件在同一个目录下运行。之后Maven就开始下载所需要的插件。插件下载完成之后,运行maven j2:portal.genapp。此时可能会出现某些插件无法下载的情况,可多试几次。如果实在不行,可以用下载工具到build.properties里面列出的网站直接下载,然后拷贝到${USER_HOME}/.maven/repository下的相应目录中即可。手动下载的时候注意连同plugins, poms, jars目录也要下载,保证目录结构完全相同。
接下来配置数据库,Jetspeed默认附带的是HSQLDB,毕竟不适合产品发布。接下来在build.properties中配置数据库,我用的是MYSQL:
# ————————————————————————-
# configure MySQL Test DB (only needed when running unit tests)
# ————————————————————————-
org.apache.jetspeed.test.database.default.name=mysql
org.apache.jetspeed.test.database.url = jdbc:mysql://localhost:3306/jetspeed?useUnicode=true&characterEncoding=UTF-8
org.apache.jetspeed.test.database.driver = com.mysql.jdbc.Driver
org.apache.jetspeed.test.database.user = jetspeed
org.apache.jetspeed.test.database.password = jetspeed
# ————————————————————————-
# configure MySQL Production DB
# ————————————————————————-
org.apache.jetspeed.production.database.default.name=mysql
org.apache.jetspeed.production.database.url = jdbc:mysql://localhost:3306/jetspeed?useUnicode=true&characterEncoding=UTF-8
org.apache.jetspeed.production.database.driver = com.mysql.jdbc.Driver
org.apache.jetspeed.production.database.user = jetspeed
org.apache.jetspeed.production.database.password = jetspeed
# ————————————————————————-
# My SQL Driver Path Example, test and production
org.apache.jetspeed.test.jdbc.drivers.path = D:/thirdparty/mysql-connector-java-3.1.12-bin.jar
org.apache.jetspeed.production.jdbc.drivers.path = D:/thirdparty/mysql-connector-java-3.1.12-bin.jar
之后运行:maven j2:db.recreate,就可以在新建的数据库中构建Jetspeed所需的表。之后依次运行j2:portal.conf.jetspeed,j2:portal.conf.ojb就可以为你的Portal生成配置信息。
接着运行war:install可以把生成的war文件部属到本地仓库中以备部署。接着修改build.properties中内容,添加应用服务器的信息:
# required application server properties
org.apache.jetspeed.server.home = E:/Program Files/Apache Software Foundation/Tomcat 5.5
org.apache.jetspeed.server.shared = ${org.apache.jetspeed.server.home}/shared/lib/
org.apache.jetspeed.deploy.war.dir = ${org.apache.jetspeed.server.home}/webapps/
org.apache.jetspeed.services.autodeployment.user = j2deployer
org.apache.jetspeed.services.autodeployment.password = xxxxx
org.apache.jetspeed.catalina.version.major = 5.5
最后运行j2:portal.deploy就可以部署应用了。