Thursday, June 11, 2009

GDD 2009 in Beijing

Years has flied awary since I register the blog.
I became a PM of the SEM team in mezimedia.com.

Here is the latest update on my trip to the GDD 2009 Beijing.

david burke
a close feature about html5
google gears
brize the features, html5, amazine and powerful
draw a directline in html page.
web workers based on html, compete with flex and silverlight
canvas
geolocation api brings browser-based location to your apps
web application and cache db
msnifest list the app feature info

web workers defines an API for running background scripts

as simple as
video display and transfer
video record, threadhold show the change, show different

gphone vodofone
gmail show

O3D
a javascript api.

chrome, firefox, safari, opera  support:
canvas
video
geolocation
app cache
database
workers

google wave developers from 奥洲
new mail just like gmail talk. both can input the messages
show sender and replier’s images, share pictures
input box is very friendly and power compnents. slide show.
use google wave on cell phone.

Has provide the open api.
gadgets, robot, add friends, translation into Chinese use google wave.

mobile search
1. more and more people find the internet useage on phones.
2. gphone, iphone similar desktop platform
3. mobile tax price is reducing

risks:
1. developer are seperated by the systems that not opensource.
2. developer just pick some different platforms.

10 vendar 12 countries
4900 applications
40app/user
just like pc users

open hadset alliance

Posted by vankevin in 08:40:20 | Permalink | No Comments »

Thursday, November 22, 2007

Distribute implementation of Memed cache

My company launched the SmarterV4 this September.
A key feature of this version is Memory cache.
During the development I found and fixed 2 important bugs for the open source client script.
The 1st is: The calucation of cache server host.
The 2nd is: Character Set exception.
Posted by vankevin in 03:28:49 | Permalink | Comments (1) »

Monday, February 5, 2007

My 2006 in Mezimedia.com

I havn’t update this blog for a even long time.

I was busy with my work during the past months. 

I’ll make up a update later. 

Posted by vankevin in 15:31:16 | Permalink | No Comments »

Friday, March 10, 2006

smarter-campanion - c++ gui

The smarter campaion project has been developed to a milestone.

So the sc team handed it over to our support team.

I’m much interested in the vs.net UI related tech, so I took it over.

The form title was hidden, and just like a picture on the panel.

The project has a even long distance to the production.

I’ll update the manual habit of form response and the IO module later.

 

 

Posted by vankevin in 11:10:50 | Permalink | Comments (2)

Amazon Tools - java gui

I found out a java tools that I developed months ago, when I clear up my file sources.

The java swing is not so good at develop windows like forms compared to C#.

I designed the appearance according to JBuilder.

 

The tabpanels is a good container. I want to add a close button onto the tab, but it hasn’t come true by now. :(.

Maybe I’ll refine it later into my new projects.

Posted by vankevin in 09:48:56 | Permalink | No Comments »

Wednesday, February 15, 2006

the art of chinese character

The hand writing of chinese character has existed for thousdands of years.

Even though the personal computer has take up most of our writings, the hand writing is still a popular skill and a adorable art.

Here is the writing from Zhouyongyuan:

Posted by vankevin in 08:48:11 | Permalink | Comments (3)

Tuesday, January 24, 2006

Happy chinese spring festival

February 28th is the chinese spring festival. Happy new year to all of you my friends.

Posted by vankevin in 16:02:22 | Permalink | No Comments »

Thursday, January 12, 2006

ArgoUML, a good UML design tool

The argouml is a cognitive design tool for UML.

It’s much smarter and lighter than other design tool such as rose or ms viso.

I’m using it for a system architecture desin, I’ll share my experience on it later.

ref: http://argouml.tigris.org/

 

Posted by vankevin in 11:08:46 | Permalink | No Comments »

GuoQiao rice noodle

It’s raining today in Shanghai. Trafic jam was much heavy this morning. Buses on Henan south road were layed one by one in a line till the YanAn East road. I got off the bus at 9:15am, and ran toward my office. Even through I had passed 5 Line929 which takes me to office, I was late for about 5 mins.

I had the rice noodle with my colleagues this noon. I like the soup, the noodle is not so vivid.

Here is the photo that taken by my colleague.

It’s good to take the soup as lunch during winter.

Posted by vankevin in 10:55:30 | Permalink | No Comments »

Wednesday, December 14, 2005

How to use multi-datasource in DBCP without JNDI

In order to optimize our mq’s consumer, we import the connection pool and concurrency into our consumer. I’ll describe some problems we met during the development.

Please download the commons.dbcp,pool and connection jars from http://jakata.apache.org first of all.

The consumer.java is used to create connection pools and registed them to the DriverManager.

The DBO.java is a brief capsulated DB operator.

consumer.java
————————————
public static void main(String[] args){
Class.forName(“com.mysql.jdbc.Driver”);
smarterConsumer.setupDriver(“T1″);
smarterConsumer.setupDriver(“T2″);
try{
DBO dboT1 = new DBO(“T1″);
DBO dboT2 = new DBO(“T2″);
dboT1.execUpdate(“create table Test1(ID int(4))”);
dboT2.execUpdate(“create table Test2(ID int(5))”;
}catch(Exception e){
System.out.println(e.getMessage());
}

}

public void setupDriver(String tag) throws Exception {
String connectURI = “jdbc:mysql://localhost/”;
if(tag.equalsIgnoreCase(“etl”)){
connectURI = connectURI + “db1?user=user&password=***”;
}else{
connectURI = connectURI + “db2?user=user&password=***”;
}

ObjectPool connectionPool = new GenericObjectPool(null);
ConnectionFactory connectionFactory = new DriverManagerConnectionFactory(connectURI,null);
PoolableConnectionFactory poolableConnectionFactory = new PoolableConnectionFactory(connectionFactory,connectionPool,null,null,false,true);
Class.forName(“org.apache.commons.dbcp.PoolingDriver”);
PoolingDriver driver = (PoolingDriver) DriverManager.getDriver(“jdbc:apache:commons:dbcp:”);
driver.registerPool(“DS”+tag,connectionPool);

}

DBO.java
————————————
public DBO(String tag) {
try{
conn = DriverManager.getConnection(“jdbc:apache:commons:dbcp:DS”+tag);
}catch(Exception namingE){
System.out.println(namingE.getMessage());
}
}

public int execUpdate(String sql) throws SQLException {
int rs = 0;
Statement stmt = conn.createStatement();
try {
rs = stmt.executeUpdate(sql);
} catch (SQLException sqle) {
SQLErr:” + sqle.getMessage());
}finally{
stmt.close();
}
return rs;
}

Please pay attention the connections return from the DBO. Do not declare the connections static, otherwise they will be confused.

When you use the connection, remember to close the connection when you abande the instance.

The connection we used in the DBCP is a PoolableConnection, the close() method is to return the connection to the pool. The reallyClose() will release the connection.

I’d like to explain this sentence to you:

conn = DriverManager.getConnection(“jdbc:apache:commons:dbcp:DS”+tag);

The DriverManager is used to distribute the request to connectionFactories by sending the URI parameter to connectionFactory. If the connectionFactory can handle the URI, a ‘true’ will return.

The jdbc:apache:commons:dbcp:* will be handled by the DBCP, while the jdbc:mysql:* will be handled directly by mysql-connector-java-3.1.4-bin.jar

You may take the docs as a reference:

http://jakarta.apache.org/commons/dbcp/apidocs/index.html

http://jakarta.apache.org/commons/pool/apidocs/index.html

Posted by vankevin in 09:56:12 | Permalink | No Comments »