<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Rookie's Cookies</title>
	<atom:link href="http://moux.net/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://moux.net/blog</link>
	<description>Notebook of learning materials of Jin Li, playin' with IT</description>
	<lastBuildDate>Sun, 27 Dec 2009 12:45:36 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Obtain Certificate From Sun</title>
		<link>http://moux.net/blog/2009/11/30/obtain-certificate-from-sun/</link>
		<comments>http://moux.net/blog/2009/11/30/obtain-certificate-from-sun/#comments</comments>
		<pubDate>Mon, 30 Nov 2009 07:05:27 +0000</pubDate>
		<dc:creator>Jin Li</dc:creator>
				<category><![CDATA[dairy]]></category>

		<guid isPermaLink="false">http://moux.net/blog/?p=22</guid>
		<description><![CDATA[Today we went to the Sun&#8217;s Melbourne office on St Kilda road to present our SOVoIP project.
This is the first time I tried video conference. Arif gave a presentation on our project and we made a demonstration on the SOVoIP software.
The audience in the Melbourne side included Dr. Tao,  from the HPC team, Ashley and Nick, the manager of Melbourne [...]]]></description>
			<content:encoded><![CDATA[<p>Today we went to the Sun&#8217;s Melbourne office on St Kilda road to present our <a href="http://kenai.com/projects/sovoip" target="_blank">SOVoIP project</a>.</p>
<div id="attachment_19" class="wp-caption alignright" style="width: 160px"><a href="http://moux.net/blog/wp-content/uploads/2009/11/PB300066.JPG"><img class="size-thumbnail wp-image-19" title="PB300066" src="http://moux.net/blog/wp-content/uploads/2009/11/PB300066-150x150.jpg" alt="In front of SUN's house" width="150" height="150" /></a><p class="wp-caption-text">In front of SUN&#39;s house</p></div>
<p>This is the first time I tried video conference. Arif gave a presentation on our project and we made a demonstration on the SOVoIP software.</p>
<div id="attachment_20" class="wp-caption alignleft" style="width: 160px"><a href="http://moux.net/blog/wp-content/uploads/2009/11/PB300052.JPG"><img class="size-thumbnail wp-image-20" title="PB300052" src="http://moux.net/blog/wp-content/uploads/2009/11/PB300052-150x150.jpg" alt="On the presentation" width="150" height="150" /></a><p class="wp-caption-text">On the presentation</p></div>
<p>The audience in the Melbourne side included Dr. Tao,  from the HPC team, Ashley and Nick, the manager of Melbourne office; on the other side facing the camera are Cristina and her staff from Brisbane office.</p>
<p>At the end of the presentation, people&#8217;s opinions focused on &#8220;how this system would be attractive comparing to other existing ones&#8221;. Yes indeed, business models sometimes are more important than the technical issues. <span id="more-22"></span></p>
<div id="attachment_17" class="wp-caption alignright" style="width: 160px"><a href="http://moux.net/blog/wp-content/uploads/2009/11/PB300059.JPG"><img class="size-thumbnail wp-image-17" title="PB300059" src="http://moux.net/blog/wp-content/uploads/2009/11/PB300059-150x150.jpg" alt="Certificate Obtained" width="150" height="150" /></a><p class="wp-caption-text">Certificate Obtained</p></div>
<p>Nowadays you can pick serveral programmers to implement a blue print easily, however, the most important thing is how to make customers use it, like it and be royal to use it and like it, since that can determine whether you can or cannot generate benifits from it and use them to support it later. Arif used many use cases and the audience seem to like them, thus we would come up with more in the future.</p>
<p>From this project I learnt a lot, from planning on resources, to dealing with several kinds of issues during the development and testing. Never stop climbing.</p>
]]></content:encoded>
			<wfw:commentRss>http://moux.net/blog/2009/11/30/obtain-certificate-from-sun/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>First Dip in Enterprise System</title>
		<link>http://moux.net/blog/2009/09/27/1/</link>
		<comments>http://moux.net/blog/2009/09/27/1/#comments</comments>
		<pubDate>Sun, 27 Sep 2009 11:34:06 +0000</pubDate>
		<dc:creator>Jin Li</dc:creator>
				<category><![CDATA[dairy]]></category>

		<guid isPermaLink="false">http://moux.net/blog/?p=55</guid>
		<description><![CDATA[This is a project I have done in RMIT University, which involves a lot of cooperation and interaction between multiple applications, which is so-called &#8220;Enterprise System&#8221;. The first part of the system is used to serve the University which relies on an old-fashioned system for student administration. As it usually happens in industry, requirements and/or [...]]]></description>
			<content:encoded><![CDATA[<div id="attachment_56" class="wp-caption alignleft" style="width: 160px"><a href="http://moux.net/blog/wp-content/uploads/2009/12/flying_spaghetti_monster_2.jpg"><img class="size-thumbnail wp-image-56" title="its name is spaghetti monster, or enterprise system" src="http://moux.net/blog/wp-content/uploads/2009/12/flying_spaghetti_monster_2-150x150.jpg" alt="its name is spaghetti monster, or enterprise system" width="150" height="150" /></a><p class="wp-caption-text">its name is spaghetti monster, or enterprise system</p></div>
<p>This is a project I have done in RMIT University, which involves a lot of cooperation and interaction between multiple applications, which is so-called &#8220;Enterprise System&#8221;. The first part of the system is used to serve the University which relies on an old-fashioned system for student administration. <strong>As it usually happens in industry, requirements and/or values may change, so you should take this into account and design for flexibility. </strong>(This is an instruction in the project description, which is quite useful trying hard to figure out the blueprint.)</p>
<p>Another helpful tool when I was designing the restrictions in the data manipulation is thhe <strong>CRUD Management table<span id="more-55"></span>:</strong></p>
<table border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td valign="top"><strong> entities</strong></p>
<p><strong> </strong></p>
<p><strong> </strong></p>
<p><strong> </strong></p>
<p><strong> </strong></p>
<p><strong> </strong><strong> </strong></td>
<td valign="top"><strong>STUDENT </strong></p>
<p><strong>(App 1*)</strong><strong><sup>[2]</sup></strong></td>
<td valign="top"><strong>SUBJECT</strong></p>
<p><strong>(App 1* &amp; 2)</strong></td>
<td valign="top"><strong>ENROLMENT</strong><strong> </strong></p>
<p><strong>(App 1 &amp; 2*)</strong></td>
<td valign="top"><strong>INVOICE</strong><strong> </strong></p>
<p><strong>(App 3*)</strong></td>
<td valign="top"><strong>PAYMENT</strong><strong> </strong></p>
<p><strong>(App 3*)</strong></td>
<td valign="top"><strong> </strong></td>
</tr>
<tr>
<td><strong>Application #1  SMA</strong></td>
<td>
<p align="center">CRUD</p>
</td>
<td>
<p align="center">CRUD</p>
</td>
<td>
<p align="center">R</p>
</td>
<td>
<p align="center">&#8212;-</p>
</td>
<td>
<p align="center">&#8212;-</p>
</td>
<td valign="top"></td>
</tr>
<tr>
<td><strong>Application #2</strong><strong> EOL</strong></td>
<td>
<p align="center">&#8212;-</p>
</td>
<td>
<p align="center">R</p>
</td>
<td>
<p align="center">CRUD</p>
</td>
<td>
<p align="center">&#8212;-</p>
</td>
<td>
<p align="center">&#8212;-</p>
</td>
<td valign="top"></td>
</tr>
<tr>
<td><strong>Application #3  FA</strong></td>
<td>
<p align="center">&#8212;-</p>
</td>
<td>
<p align="center">&#8212;-</p>
</td>
<td>
<p align="center">&#8212;-</p>
</td>
<td>
<p align="center">CRUD</p>
</td>
<td>
<p align="center">C</p>
</td>
<td valign="top"></td>
</tr>
<tr>
<td colspan="7" width="613" valign="top"></td>
</tr>
</tbody>
</table>
<p><em>[1] Note: the initiator of the CRUD operations refer to the user’s behaviors in its main application, the propagations of the operations are not shown in this table, but in the business rules</em></p>
<p><em>[2] <strong>SUBJECT (App 1* &amp; 2) </strong>means subject table exists in App #1 and #2, and App #1 is the primary application maintains the data;</em></p>
<p><strong>Source Code:</strong><br />
<a href="http://moux.net/blog/wp-content/uploads/2009/09/deployment.rar" target="_blank">deployment.rar</a>:  complied code and war/ear files<br />
<a href="http://moux.net/blog/wp-content/uploads/2009/09/Table_Structures.rar" target="_blank">Table_Structures.rar</a>:  tables for applications<br />
<a href="http://moux.net/blog/wp-content/uploads/2009/09/development.rar" target="_blank">development.rar</a>:  source codes (NetBeans projects)</p>
<p>For the usage of the codes, please refer to the <a href="http://moux.net/blog/wp-content/uploads/2009/09/PROJECT_MANUAL.pdf" target="_blank">Project Manual</a> for illustrated guides:</p>
<p>For code inspection and compiling:<br />
Section 6    Developer Manual</p>
<p>For deployment:<br />
Section 4    Deployment Guide</p>
<p>For running and using the system:<br />
Section 5    User Manual</p>
<p><img src="file:///E:/DOCUME%7E1/ADMINI%7E1/LOCALS%7E1/Temp/moz-screenshot.jpg" alt="" /></p>
]]></content:encoded>
			<wfw:commentRss>http://moux.net/blog/2009/09/27/1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sleep Manager &#8212; An App Based on JS</title>
		<link>http://moux.net/blog/2009/08/06/42/</link>
		<comments>http://moux.net/blog/2009/08/06/42/#comments</comments>
		<pubDate>Thu, 06 Aug 2009 07:13:50 +0000</pubDate>
		<dc:creator>Jin Li</dc:creator>
				<category><![CDATA[Web Apps]]></category>
		<category><![CDATA[DB4O]]></category>
		<category><![CDATA[Java Script]]></category>
		<category><![CDATA[Web 2.0]]></category>
		<category><![CDATA[Web Application]]></category>

		<guid isPermaLink="false">http://moux.net/blog/?p=42</guid>
		<description><![CDATA[This article will introduce an  application called SleepManager with its story of birth, which is an Ajax-based  web diary application. DWR will form the foundation of the server side of  things, DB4O for the persistence tier, and some client-side DOM scripting and  CSS will be used to make this application &#8220;pretty&#8221;, [...]]]></description>
			<content:encoded><![CDATA[<p align="left">This article will introduce an  application called SleepManager with its story of birth, which is an Ajax-based  web diary application. DWR will form the foundation of the server side of  things, DB4O for the persistence tier, and some client-side DOM scripting and  CSS will be used to make this application &#8220;pretty&#8221;, ExtJs will help us to do  so.</p>
<p align="left">Wanna try by yourself?<br />
1. <a href="http://www.moux.net/blog/wp-content/uploads/2009/06/sleepnamager.rar" target="_blank">Source Code</a><br />
2. <a href="http://www.moux.net/blog/wp-content/uploads/2009/06/sleepmanager.war" target="_blank">War File</a> (put it into Tomcat Server&#8217;s container)</p>
<p align="left"><strong>1. The Idea.</strong><strong> </strong></p>
<p align="left">
<p align="left">The future applications seem to be  more concerning on the individuals. <span id="more-42"></span>Sleeping counts nearly 1/3 of life time, if  an application would help people to analyze the factors of sleeping, why not  spend 5 minutes on recording your sleep status and make it better. Though  the improvement on quality and quantity  of sleeping depends on the real actions  taken by the sleepers themselves, SleepManager can help people who suffer from  sleeping-troubles to record, analyze and discover their sleep  patterns.</p>
<p align="left">
<p align="left">Google makes the blur idea turn to  be clear. Frankly speaking, at first, the idea is nearly to lose an election  when we search and find out a website in Japanese language that is already doing  the same thing and is fairly mature in functionalities. However, after digging  around that website and using it as a normal user&#8217;s role, we still think it is  worth of building such an application of English version( there are no such a  website in English language right now) since the Japanese website contains  numerous modules which may not suit for the most of users ( it is a common style  that asian website tend to contain as much information as it can). After all,  this existent application is a tutorial, too. We learn the &#8220;use cases&#8221; from its  portal (or say, user panel) and use firebug to do the &#8220;anatomy&#8221;.</p>
<p align="left">
<p align="left">Then, our task becomes to be  &#8220;abstract the essentials of it and find ways to implement the  functions&#8221;.</p>
<p align="left">
<p align="left"><strong>2. The Scope</strong><strong> </strong></p>
<p align="left">
<p align="left">Let’s now codify the features  this sleep diary application will support, and the general design  goals:</p>
<p align="left">1, Who are our users: people  living in a fast life-style, i.e. employees and students under pressure, who  care about their health status and want healthy sleep.</p>
<p align="left">2, In what situation, when and  where: we assume the users are using our application when they are going to bed  or just getting up, no much time to wait for the page jumping, so our  applications should be a little easier on the eyes. User can go to the action by  NO MORE THAN ONE CLICK.</p>
<p align="left">3,  In addition to the UI being &#8220;efficient&#8221;, We want user interface (UI) to  be &#8221;tidy&#8221;, like other Web2.0 sites do. For example, Gmail and Youtube are more  like to concern on the functionalities and provide only simple but beautiful UI.  (This conclusion is based on the observation more than 150 Web2.0  sites).</p>
<p align="left">4, Users can see graphs  demonstrating the statistics.</p>
<p align="left">5, The individual user can  create, update his/her sleep records;<br />
6, What is the data being  transferred and stored: Nothing much, integers and strings representing date,  time and notes (that means browser-side needs to do the rendering job for statistics graphs, not server  side)</p>
<p align="left">The  6th scope answers the 4th scope, before reaching this point we discus a little  bit on how can we render the graph (bar chart). We use firebug to dig and find  that the existent application is transferring a image from server to the client.  Apparently, such a solution is of slowness in performance. Therefore, we turn to  use JavaScript-based to do the job. Although Flash-based solution is also a good  idea, but none of team member are familiar with that one, learning Action Script  costs more time and we don&#8217;t want our project get delayed. After an hour of  searching work, JavaScript tends to be the one (details in Specification  section).</p>
<p align="left"><strong>3.  Requirements</strong><strong> </strong></p>
<p align="left">After  making some decisions, more decisions are waiting! We use Google Docs to record  the content of our online discussion, which becomes to perform as documentation  in the following work. Furthermore, we draw a scratch and invite  seven friends to give some suggestion of requirement; they are of a range of age  from 12 to 65.</p>
<p align="center"><a href="http://moux.net/blog/wp-content/uploads/2009/12/image001.jpg"><img class="alignnone size-full wp-image-43" title="1" src="http://moux.net/blog/wp-content/uploads/2009/12/image001.jpg" alt="1" width="300" height="200" /></a></p>
<p align="center"><strong><em>Figure1.  Scratch of user panel (at suggestion gathering phase)</em></strong><strong><em> </em></strong></p>
<ul>
<li>The sleep diary form  should be simple and intuitive for users to enter.</li>
<li>Sleeping usually  overlaps two adjacent dates. The following method is used to organize  data</li>
</ul>
<p align="left">o     Record  date</p>
<p align="left">o     Sleep date (should  either be the record date or the date before)</p>
<p align="left">o     Sleep time (sleep  date time should precede wake-up date time)</p>
<p align="left">o     Wake-up date (should  either be the record date or the date before)</p>
<p align="left">o     Wake-up  time</p>
<p align="left">o     Wakefulness (a scale  indicating wakefulness after getting up)</p>
<p align="left">o     Note (for user&#8217;s own  reference)</p>
<ul>
<li>The current version does not allow  users to store other information, for example, afternoon nap.</li>
<li>Users can see his or her sleeping  pattern in a diagram form.</li>
<li>Sleep related articles can show up  on users&#8217; pages and users can click those links to read more.</li>
<li>Users are identified by a user  name and a password.</li>
</ul>
<p align="left"><strong>4.  Specification and Design</strong><strong> </strong></p>
<p align="left"><strong> </strong></p>
<p align="left">Basically, to finish the task, we  will write persistence beans, controller’s classes and web pages, but what is  exactly the technique should be used? Which one can be used and tested most  efficiently? Which one gives the best performance?</p>
<p align="left">
<p align="left"><strong>4.1 Server Side:  Persistence-Tier</strong><strong> </strong></p>
<p align="left">The use cases and objects lead to  database modeling, two entities in it: user entity and diary entity, then we  search for a technique for persistence-tier. The first thing comes to our mind  is MySQL server, a popular and Relational Database product. It is free and well  supported (lots of books and tutorials provide &#8220;Hands-On Training&#8221;).  The second  candidate, DB4O, is object-oriented. After checking the tutorial and guide books, we find  out that:</p>
<p align="left">1, the  operation DB4O is transparent and friendly for programmers;</p>
<p align="left">2, it  provides helpful querying functionalities, handy for Java developer: <em>Query by  Example</em> (QBE), <em>Native Queries</em> (NQ) and the <em>SODA Query  API</em> (SODA);</p>
<p align="left">3,  DB4O can release us from headaches on writing in-line SQL statement, which tends  to have error and hard to debug (from the earlier experience);</p>
<p align="left">4, the  migration  of the DB4O database is easy &#8212; just copying the stored file. But for MySQL, we  need to generate MySQL script for your schema and tables (administrator  privilege is required, also maybe a new username may need to be set up), that  will bring troubles and is not agile.</p>
<p align="left">
<p align="left">Because of the advantages of DB4O,  we decide to choose it.</p>
<p align="left">
<p align="left"><strong>4.2 Server and Client  Communication: DWR.</strong><strong> </strong></p>
<p align="left"><em>(In this report, the word &#8220;client&#8221;  and &#8220;browser&#8221; are referring to the same concept.)</em><em> </em></p>
<p align="left">The preliminary technology is AJAX  + servlet/RPC. It requires verbose and repeated coding; DWR (direct web  remoting) will help us to invoke a server side method/function more easily. For  example, the submitted form is treated as a bean and will be sent as a parameter  via a function of a object in JavaScript, this object is mapping to a class on  the server side. DWR also has a friendly test suite for debugging. Such a clear  mechanism will make our life easier; furthermore, it supports reverse AJAX well,  which is useful to add splashy functions (i.e. sending advertisements) in  future.  So we choose it!</p>
<p align="left">
<p align="left"><strong>4.3 Client-Side: User  Interface</strong><strong> </strong></p>
<p align="left">XHTML + CSS + JavaScript, which  becomes the web standard, defines the &#8220;structure&#8221;, &#8220;presentation&#8221; and &#8220;behavior&#8221;  very well, we cannot find another combination as competitor. Since we want  our user happy with the reacting time (stated in scope 2nd), AJAX are needed  (DWR-based). User Interface should be compact and tidy, so that user can go to  the action he/she needs by NO MORE THAN ONE CLICK (stated in scope 3rd), in  order to do so, ExtJs can be taken advantage of, because its panel has a  beautiful layout with collapsibility. When going deeper into the ExtJs, we find  out that it can accomplish &#8220;structure&#8221;, &#8220;presentation&#8221; and &#8220;behavior&#8221; all  together. But its learning curve is steep, which means it needs professional  knowledge in JavaScript. Resource are from API documents, ExtJs forum  and tutorials, no book existing for ExtJs. Unless we get the official support,  otherwise it is risky. But we really need ExtJs to let our users to have better  experience.</p>
<p align="left">
<p align="left">We are confused at the very start  to this point, since both of team members are not familiar with JavaScript. To  decrease the risk, we decide to take a compromised procedure:</p>
<p align="left">Phase1: Basic</p>
<p align="left">Build  a face/faces with DIV + CSS, accomplish JavaScript functions (i.e. form  submitting, client side DWR method invoking); (Figure1)</p>
<p align="left">Phase2: &#8220;ExtJslized&#8221;</p>
<p align="left">Implement ExtJs, use its  components to replace the module step by step.</p>
<p align="left">
<p align="left"><strong>4.4 Client-Side: Graph  Module</strong><strong> </strong></p>
<p align="left">As stated in the 6th scope, the  task is to transform the integers to the bars on the chart. Some articles<a href="#_ftn1">[1]</a> offer  us a list of possible choices, and we select Flot, which is a component of  jQuery framework. Compared to some other JS-based chart rendering module  (montch, flotr), Flot is kind of that can be built in an hour to archive the  task, less function but easy, and we choose it.</p>
<p align="left">
<p align="left"><strong>5, Coding and  Debugging</strong><strong> </strong></p>
<p align="left">
<p align="left">We decide to do it in &#8220;extreme  programming&#8221; way, and use SVN (Subversion Control) for the &#8220;working separately&#8221;  situations (both team members can update and download the edited code at  home, without conflicts). Google Docs are used for task-definition and  documentation. To get a better efficiency on coding work, several methods and  principles are taken, which is proved to benefit a lot along the whole  process:</p>
<p align="left">
<p align="left"><strong>5.1 Conventions</strong><strong> </strong></p>
<p align="left">0. We  write interfaces to communicate and express the requirements; all the implement  classes should pass the tests by JUnit.</p>
<p align="left">1. The  classes which are used and converted by DWR should provides test method (since  DWR cannot use a bean as a parameter to test) and pass the tests.</p>
<p align="left">2. The  client side DWR object and method should be validated</p>
<p align="left">(by sending to the  console: console.log (object) <img src='http://moux.net/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  in the callback method.</p>
<p align="left">3. Use  Adapter Mode to assemble the classes together.</p>
<p align="left">4. Use  Factory Mode to provide the DAO.</p>
<p align="left">5. Use  Singleton Mode to avoid conflicts when connecting to ObjectContainer(the DB4O  database). Why we do so: DB4O do not have a management system like traditional  6. Relational Database, it may have risk on  concurrency operations. Fortunately, its CRUD(Create, Retrieve, Update, Delete)  methods are syncronized, so, if DBConnector returns a static singleton instance  of ObjectContainer, the concurrency problem, when each DAO instance are  accessing the same database, can be solved.</p>
<p align="left">7. Use  DWR to set and get the information in session. Why we do so: JavaScript cannot  access session (of course), but we want to record the information of user in the  page he/she is opening, after googling we find DWR has such utilities. By doing  this, we actually abandon the utilities of JSP.</p>
<p align="left">
<p align="left"><strong>5.2 Re-design</strong><strong> </strong></p>
<p align="left"><strong>5.2.1 </strong><strong>On which side should we  put validation?</strong></p>
<p align="left">In the coding process, there are  re-design session, for example, when doing the user register module, we change  the decision: making the validation from the client side (by JavaScript hard  coding) to server side, to make our system more robust in future (because in  future we may tranform the application for different language, so the validation  rules change due to some reason such as encoding charset or length of username)  .</p>
<p align="left">
<p align="left"><strong>5.2.2</strong><strong> Refractor by ExtJs  framework</strong></p>
<p align="left">After finishing all the components  on the server side and the basic functions by JavaScript + DWR-mapping-object,  we feel safe about this &#8220;0.9&#8243; version, planning to go to Phase2 and make it  &#8220;ExtJslized&#8221;.</p>
<p align="left">
<p align="left">ExtJs is chosen to make the UI  more compact by using its collapsing panel layout (and yes, it&#8217;s a one page  application). Since there are many JavaScript libraries are imported in one page  (ExtJs, DWR, Flot, our own usages), we use name space to avoid collisions on  naming. We write ExtJs components in object-oriented way to let them reflect to  the major DOM elements, for example, a nested panel reflects to a div called  &#8220;left-side&#8221; bar.</p>
<p align="left">
<p align="left"><strong>5.2.3</strong><strong> RSS  feature</strong></p>
<p align="left">After the phase 2, we decide to  put more features on it about RSS generating and subscribing. The system will  help user to subscribe feed on the topic of sleeping heath, taking advantage of  yahoo service. User can also generate their own feed of sleep diaries. This  is done by ROME, a Java library for RSS; we choose it simply because the  tutorial gives enough information to implement our functions.</p>
<p align="left">
<p align="left"><strong>5.3 Tools and  Plug-in</strong></p>
<p align="left">Firebugs in firefox and Spket  plug-in for Eclipse are good tools for JavaScript Coding. If not using such  kits, a missing semi-colon will kill us. ExtJs forum is a good place to ask  questions, if the question is presented clearly, people here are willing to  help. It is always good to ask people.</p>
<p><strong>6. Screen-shots of  version1.0</strong></p>
<p align="center"><a href="http://moux.net/blog/wp-content/uploads/2009/12/image0021.jpg"><img class="alignnone size-full wp-image-49" title="image002" src="http://moux.net/blog/wp-content/uploads/2009/12/image0021.jpg" alt="image002" width="575" height="289" /></a></p>
<p align="center"><strong><em>Figure2. User panel  with record graph</em></strong></p>
<p align="center"><a href="http://moux.net/blog/wp-content/uploads/2009/12/image004.jpg"><img class="alignnone size-full wp-image-45" title="image004" src="http://moux.net/blog/wp-content/uploads/2009/12/image004.jpg" alt="image004" width="528" height="369" /></a></p>
<p align="center"><strong><em>Figure3. User  panel(collapsed) with amount graph</em></strong></p>
<p align="center">
<p align="center"><a href="http://moux.net/blog/wp-content/uploads/2009/12/image0051.jpg"><img class="alignnone size-full wp-image-50" title="image005" src="http://moux.net/blog/wp-content/uploads/2009/12/image0051.jpg" alt="image005" width="467" height="420" /></a></p>
<p align="center"><strong><em>Figure4. User  registering</em></strong></p>
<p align="center">
<p align="center"><a href="http://moux.net/blog/wp-content/uploads/2009/12/image006.jpg"><img class="alignnone size-full wp-image-47" title="image006" src="http://moux.net/blog/wp-content/uploads/2009/12/image006.jpg" alt="image006" width="432" height="388" /></a></p>
<p align="center">
<p align="center"><strong><em>Figure5. Register  success and redirecting</em></strong></p>
<p align="center"><a href="http://moux.net/blog/wp-content/uploads/2009/12/image007.jpg"><img class="alignnone size-full wp-image-44" title="image007" src="http://moux.net/blog/wp-content/uploads/2009/12/image007.jpg" alt="image007" width="502" height="451" /></a></p>
<p align="center"><strong><em>Figure6. Validation of  login panel</em></strong></p>
<p align="center">
<hr size="1" /><a href="#_ftnref1">[1]</a> <strong><a href="http://www.smashingmagazine.com/2007/10/18/charts-and-graphs-modern-solutions/">http://www.smashingmagazine.com/2007/10/18/charts-and-graphs-modern-solutions/</a></strong></p>
]]></content:encoded>
			<wfw:commentRss>http://moux.net/blog/2009/08/06/42/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Make Gadgets for UI of Applications: Icon</title>
		<link>http://moux.net/blog/2009/07/01/make-gadgets-for-ui-of-applications-icon/</link>
		<comments>http://moux.net/blog/2009/07/01/make-gadgets-for-ui-of-applications-icon/#comments</comments>
		<pubDate>Wed, 01 Jul 2009 09:56:06 +0000</pubDate>
		<dc:creator>Jin Li</dc:creator>
				<category><![CDATA[UI design]]></category>
		<category><![CDATA[graphic design]]></category>
		<category><![CDATA[icon]]></category>
		<category><![CDATA[UI]]></category>
		<category><![CDATA[user interface]]></category>

		<guid isPermaLink="false">http://moux.net/blog/?p=25</guid>
		<description><![CDATA[Did you notice that web 2.0 apps use huge, shining icons in their interfaces? Quite straightforward and intuitive, aren&#8217;t they?
I find these very useful when I was designing the UI, they are helpful on give users an instruction and making the app stylish. Choosing the right .  Today I am going to make one.
 
 1 [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://moux.net/blog/wp-content/uploads/2009/12/5.png"><img class="alignleft size-full wp-image-31" title="Border" src="http://moux.net/blog/wp-content/uploads/2009/12/5.png" alt="Border" width="300" height="150" /></a>Did you notice that web 2.0 apps use huge, shining icons in their interfaces? Quite straightforward and intuitive, aren&#8217;t they?</p>
<p>I find these very useful when I was designing the UI, they are helpful on give users an instruction and making the app stylish. Choosing the right .  Today I am going to make one.<span id="more-25"></span></p>
<p><strong> </strong></p>
<p><strong> </strong><strong>1 Blue print:</strong><br />
Open the illustrator. If I am making a set of icons, I will make these blue prints for every icon before I go into details for them, the purpose is to make them consistent in terms of style at the first stage.<br />
<a href="http://moux.net/blog/wp-content/uploads/2009/12/1.png"><img class="alignnone size-full wp-image-27" title="Blue print" src="http://moux.net/blog/wp-content/uploads/2009/12/1.png" alt="Blue print" width="300" height="150" /></a></p>
<p><strong> </strong><br />
<strong>2 Basic shape:<br />
</strong>Open illustrator and use pen tool to draw these vectors, fill them with gradient colors.<br />
<a href="http://moux.net/blog/wp-content/uploads/2009/12/2.png"><img class="alignnone size-full wp-image-28" title="Basic shape" src="http://moux.net/blog/wp-content/uploads/2009/12/2.png" alt="Basic shape" width="300" height="150" /></a><br />
<a href="http://moux.net/blog/wp-content/uploads/2009/12/3.png"><img class="alignnone size-full wp-image-29" title="Basic shape" src="http://moux.net/blog/wp-content/uploads/2009/12/3.png" alt="Basic shape" width="300" height="150" /></a></p>
<p><strong>3 Decoration:<br />
</strong>Add the highlights (glisten) and shadows, in order to emphasize the feel, yeah, the feel&#8230;..</p>
<p><a href="http://moux.net/blog/wp-content/uploads/2009/12/4.png"><img class="size-full wp-image-30 aligncenter" title="Decoration" src="http://moux.net/blog/wp-content/uploads/2009/12/4.png" alt="Decoration" width="300" height="150" /></a><a href="http://moux.net/blog/wp-content/uploads/2009/12/5.png"></a><a href="http://moux.net/blog/wp-content/uploads/2009/12/6.png"></a></p>
<p><strong><br />
4 Border:</strong><br />
Make a copy of the portrait, fill it with dark color. Resize it to be a bit larger than the original. Send it to the back-end.<br />
(It is not necessary to do this in the illustrator, you can just simply use &#8220;stroke&#8221; in photoshop, it works fine.)<br />
<a href="http://moux.net/blog/wp-content/uploads/2009/12/5.png"><img class="aligncenter" title="Border" src="http://moux.net/blog/wp-content/uploads/2009/12/5.png" alt="Border" width="300" height="150" /></a></p>
<p><strong> </strong></p>
<p><strong>5 (Optoinal)Make the icon file:</strong></p>
<p><a href="http://moux.net/blog/wp-content/uploads/2009/12/6.png"><img title="Make the icon file" src="http://moux.net/blog/wp-content/uploads/2009/12/6-150x150.png" alt="Make the icon file" width="150" height="150" /></a><br />
There are two options:<br />
A. You can use Axialis IconWorkshop to generate the icons (*.ico)<br />
Trial version: <a href="http://www.axialis.com/iconworkshop/">http://www.axialis.com/iconworkshop/</a></p>
<p>B. Use online icon generator:<br />
<a href="http://www.genfavicon.com/">http://www.genfavicon.com/</a><strong> </strong></p>
<p><strong>6 Use it:<br />
</strong>You can use this new icon for different purpose:<br />
&#8211;on the interface of your software;<br />
&#8211;in search box in your website;<br />
&#8211;as a favicon when people are browsing or bookmarking your website;<br />
&#8211;as your windows desktop icon.</p>
<p><em>This aritcle was inspired by this </em><a href="http://www.artcn.cn/Article/wysj/HtmlCss/200809/17721_2.html"><em>tutorial</em></a><em>.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://moux.net/blog/2009/07/01/make-gadgets-for-ui-of-applications-icon/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Develope &amp; deploy a simple web service</title>
		<link>http://moux.net/blog/2009/06/06/develope-deploy-a-simple-web-service/</link>
		<comments>http://moux.net/blog/2009/06/06/develope-deploy-a-simple-web-service/#comments</comments>
		<pubDate>Sat, 06 Jun 2009 06:00:28 +0000</pubDate>
		<dc:creator>Jin Li</dc:creator>
				<category><![CDATA[web service]]></category>
		<category><![CDATA[ant]]></category>
		<category><![CDATA[glassfish]]></category>
		<category><![CDATA[IDE]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[netbeans]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://moux.net/blog/?p=6</guid>
		<description><![CDATA[
In this article, a web service is created without IDE and is deployed into Glassfish server in the form of war file. The purpose of doing so is to gain more independence when deploying services.
Meanwhile, a client is built using NetBeans IDE’s benefits to achieve fast development. The client can be distributed and run on [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: right;"><a href="mailto:auswer@hotmail.com"><em><img class="alignright" title="thatfish" src="http://moux.net/blog/wp-content/uploads/2009/06/images.jpg" alt="" width="150" height="76" /></em></a></p>
<p>In this article, a web service is created without IDE and is deployed into Glassfish server in the form of war file. The purpose of doing so is to gain more independence when deploying services.<br />
Meanwhile, a client is built using NetBeans IDE’s benefits to achieve fast development. The client can be distributed and run on the computer equipped with JVM.</p>
<p><strong>The files related to this article can be found </strong><strong>in</strong><strong> this zip file (<a href="http://moux.net/blog/wp-content/uploads/2009/06/all.zip">all.zip</a>).</strong></p>
<p><span id="more-6"></span></p>
<p><strong>Server side</strong><br />
(Attached with <a href="http://moux.net/blog/wp-content/uploads/2009/06/server_side_source.zip">source codes</a> and the <a href="http://moux.net/blog/wp-content/uploads/2009/06/HelloWorld.war">war file</a>, the Glassfish will auto-deploy the war file)</p>
<p><strong>1 Initial Setup</strong></p>
<p><strong> 1.1 JAVA_HOME</strong> (if you are already using Java, skip this step)</p>
<p> <strong>1.1.1</strong>  Download and install Java JDK 6<br />
<a href="http://java.sun.com/javase/downloads/index.jsp">http://java.sun.com/javase/downloads/index.jsp</a></p>
<p> <strong>1.1.2</strong>  set an environment variables, named <strong>JAVA_HOME</strong>, point it to the installation directory of Java. (to set environment variables in Windows, right click<strong><em> &#8220;my computer&#8221; &gt; properties &gt; advanced &gt; environment variables</em></strong> )<br />
 <br />
<strong>1.2 AS_HOME</strong></p>
<p><strong>1.2.1</strong>  Download Application Server. (I am using the <strong>Glassfish v2.1</strong>)<br />
Download: <a href="http://java.sun.com/javaee/glassfish/getit.jsp">http://java.sun.com/javaee/glassfish/getit.jsp</a></p>
<p><strong>1.2.2</strong>  set an environment variables, named: <strong>AS_HOME</strong><br />
to the installation directory of Glassfish Server<br />
for example, my server is installed at <strong><em>E:toolsglassfish-v2.1</em></strong><br />
 <br />
<strong>1.3 ANT_HOME</strong></p>
<p>set an environment variables, named: ANT_HOME, to the installation directory of Apache Ant. If you have already been using ANT and have set the ANT_HOME, just skip this step; if you haven&#8217;t got the Apache ANT on your computer, you can find it is part of Glassfish Server. In Windows, Ant resides on libant. Thus, <strong>ANT_HOME</strong> can be defined as <strong>%AS_HOME%libant</strong>; then append <strong>%ANT_HOME%</strong> to the environment variable <strong>PATH<br />
</strong> <br />
<strong>1.4 use command line to start server</strong></p>
<p>(For UNIX) <strong> $AS_HOME/bin/asadmin start-domain domain1</strong><br />
(For Windows)  <strong>%AS_HOME%/bin/asadmin start-domain domain1</strong><br />
 <br />
Here is an example of the output:<br />
Starting Domain domain1, please wait.<br />
Default Log location is <strong>E:toolsglassfish-v2.1domainsdomain1logsserver.log</strong><br />
The domain (domain1) is already running.<br />
 <br />
 <br />
So, <strong>what is a domain</strong>? From <strong>Glassfish v2.1 reference manual</strong>: <a href="http://docs.sun.com/app/docs/doc/820-4332">http://docs.sun.com/app/docs/doc/820-4332</a><br />
<em>A domain provides a common authentication and administration point for a collection of zero or more server instances. The administration domain encompasses several manageable resources, including instances, clusters, and their individual resources. A manageable resource, such as a server instance, may belong to only one domain.</em><br />
 <br />
<strong>2 Development and Deployment</strong></p>
<p><strong>2.1 Development</strong></p>
<p>I create simply web service HelloImpl, in which there is a method sayHello takes a String as input, and return this String with prefix and postfix.<br />
 <br />
This is the source code:</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1"><span class="kw2">package</span> service;</div>
</li>
<li class="li1">
<div class="de1"><span class="co2">import javax.jws.WebService;</span></div>
</li>
<li class="li1">
<div class="de1"> </div>
</li>
<li class="li1">
<div class="de1">@WebService</div>
</li>
<li class="li2">
<div class="de2"><span class="kw2">public</span> <span class="kw2">class</span> HelloImpl <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="coMULTI">/**</span></div>
</li>
<li class="li1">
<div class="de1"><span class="coMULTI">&nbsp; * @param name</span></div>
</li>
<li class="li1">
<div class="de1"><span class="coMULTI">&nbsp; * @return Say hello to the person.</span></div>
</li>
<li class="li1">
<div class="de1"><span class="coMULTI">&nbsp; */</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp; <span class="kw2">public</span> <a href="http://www.google.com/search?hl=en&amp;q=allinurl%3AString+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span class="kw3">String</span></a> sayHello<span class="br0">&#40;</span><a href="http://www.google.com/search?hl=en&amp;q=allinurl%3AString+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span class="kw3">String</span></a> name<span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw2">return</span> <span class="st0">&quot;Hello, &quot;</span> + name + <span class="st0">&quot;!&quot;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1"> </div>
</li>
</ol>
</div>
<p><strong>2.2 Deployment</strong></p>
<p>All the works of compiling, generating war file is done by the ant script. You can find a war file in the &#8220;war/&#8221; folder and it can be deployed to the server. I insert <strong>sun-web.xml</strong> and <strong>web.xml</strong> in the folder <strong>WEB-INF</strong> manually (Actually, it is done by ant script, see it in the source code).<br />
 <br />
any problems will be recorded in the log file, it is helpful when debugging on deployment: <strong>%AS_HOME%/domains/domain1/logs/server.log</strong><br />
 <br />
Now we have a war file called Helloworld.war. There are two ways to deploy it:<br />
<strong>1.</strong> use <a href="http://localhost:4848/">http://localhost:4848/</a>, click <strong>Applications &gt; Web Applications &gt; deploy<br />
2.</strong> copy the file into <strong>%AS_HOME%domainsdomain1autodeploy</strong><br />
 <br />
Now we have deployed the service, the Endpoint Address URI: <strong>/HelloWorld/HelloImplService<br />
</strong>So the WDSL is: <a href="http://localhost:8080/HelloWorld/HelloImplService?wsdl">http://localhost:8080/HelloWorld/HelloImplService?wsdl</a><br />
 <br />
<strong>Client side</strong><br />
(The client is developed in Netbeans, attached with <a href="http://moux.net/blog/wp-content/uploads/2009/06/client_side_source.zip">project source</a> and <a href="http://moux.net/blog/wp-content/uploads/2009/06/HelloWorldClient.jar">jar file</a>)</p>
<p>The client is designed to take a string from user and send it to the web service we have just created. If the JVM is installed on the machine, you can type in the command line, “Jin” is the parameter for you to assign:<br />
<em><strong>java -jar HelloWorldClient.jar Jin</strong></em><br />
 <br />
The result should be:<br />
<em>I send: Jin<br />
Result = Hello, Jin!</em></p>
<p>This is the main method in the source code:</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1"><span class="kw2">public</span> <span class="kw2">static</span> <span class="kw4">void</span> main<span class="br0">&#40;</span><a href="http://www.google.com/search?hl=en&amp;q=allinurl%3AString+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span class="kw3">String</span></a><span class="br0">&#91;</span><span class="br0">&#93;</span> args<span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw2">try</span> <span class="br0">&#123;</span> <span class="co1">// Call Web Service Operation</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; service.<span class="me1">HelloImplService</span> service =</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">new</span> service.<span class="me1">HelloImplService</span><span class="br0">&#40;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; service.<span class="me1">HelloImpl</span> port = service.<span class="me1">getHelloImplPort</span><span class="br0">&#40;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">// initialize WS operation arguments here</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; java.<span class="me1">lang</span>.<a href="http://www.google.com/search?hl=en&amp;q=allinurl%3AString+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span class="kw3">String</span></a> arg0 = args<span class="br0">&#91;</span><span class="nu0">0</span><span class="br0">&#93;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">// process result here</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; <a href="http://www.google.com/search?hl=en&amp;q=allinurl%3ASystem+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span class="kw3">System</span></a>.<span class="me1">out</span>.<span class="me1">println</span><span class="br0">&#40;</span><span class="st0">&quot;I send: &quot;</span>+ arg0<span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; java.<span class="me1">lang</span>.<a href="http://www.google.com/search?hl=en&amp;q=allinurl%3AString+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span class="kw3">String</span></a> result = port.<span class="me1">sayHello</span><span class="br0">&#40;</span>arg0<span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <a href="http://www.google.com/search?hl=en&amp;q=allinurl%3ASystem+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span class="kw3">System</span></a>.<span class="me1">out</span>.<span class="me1">println</span><span class="br0">&#40;</span><span class="st0">&quot;Result = &quot;</span>+result<span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="br0">&#125;</span> <span class="kw2">catch</span> <span class="br0">&#40;</span><a href="http://www.google.com/search?hl=en&amp;q=allinurl%3AException+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span class="kw3">Exception</span></a> ex<span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; ex.<span class="me1">printStackTrace</span><span class="br0">&#40;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; <a href="http://www.google.com/search?hl=en&amp;q=allinurl%3ASystem+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span class="kw3">System</span></a>.<span class="me1">exit</span><span class="br0">&#40;</span><span class="nu0">1</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
</ol>
</div>
<p><strong></strong></p>
<p>Finally, the client will call the web service on the &#8220;localhost&#8221;. Future works are:<br />
1. Let client use properties files to store the server&#8217;s location;<br />
2. Let server use database technique to maintain the information;<br />
3. Use objects as input and output parameters.</p>
<p><strong>References:</strong><br />
Managing and Monitoring Web Services in Project GlassFish<br />
<a href="http://developers.sun.com/appserver/reference/techart/ws_mgmt.html">http://developers.sun.com/appserver/reference/techart/ws_mgmt.html</a><br />
Using the IDE to develop a JAX-WS web service.<br />
<a href="http://www.netbeans.org/kb/docs/websvc/jax-ws.html">http://www.netbeans.org/kb/docs/websvc/jax-ws.html</a></p>
<p><em>Great appreciations to the helps from <strong>Arif </strong>(University of Melbourne) and <strong>Nathan</strong> (Sun).<br />
</em>Development and deployment of a simple web service and a client consuming it.<br />
<em>Jin Li, </em><a href="mailto:auswer@hotmail.com"><em>auswer[at]hotmail.com</em></a></p>
]]></content:encoded>
			<wfw:commentRss>http://moux.net/blog/2009/06/06/develope-deploy-a-simple-web-service/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Hello world!</title>
		<link>http://moux.net/blog/2009/06/05/hello-world/</link>
		<comments>http://moux.net/blog/2009/06/05/hello-world/#comments</comments>
		<pubDate>Fri, 05 Jun 2009 07:44:20 +0000</pubDate>
		<dc:creator>Jin Li</dc:creator>
				<category><![CDATA[dairy]]></category>

		<guid isPermaLink="false">http://moux.net/blog/?p=1</guid>
		<description><![CDATA[Hi, this is Jin Li, welcome to my blog. In this blog, I will deliver some experience on programming and other interesting gadgets. Let me try my new plug-in for displaying codes.



/* HelloWorld.java */


public class HelloWorld &#123;


&#160; public static void main&#40;String arg&#91;&#93;&#41; &#123;


&#160; &#160; &#160;System.out.println&#40;&#34;Hello, World!&#34;&#41;;


&#160; &#125;


&#125;



]]></description>
			<content:encoded><![CDATA[<p>Hi, this is Jin Li, welcome to my blog. In this blog, I will deliver some experience on programming and other interesting gadgets. Let me try my new plug-in for displaying codes.</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1"><span class="coMULTI">/* HelloWorld.java */</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">public</span> <span class="kw2">class</span> HelloWorld <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="kw2">public</span> <span class="kw2">static</span> <span class="kw4">void</span> main<span class="br0">&#40;</span><a href="http://www.google.com/search?hl=en&amp;q=allinurl%3AString+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span class="kw3">String</span></a> arg<span class="br0">&#91;</span><span class="br0">&#93;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp;<a href="http://www.google.com/search?hl=en&amp;q=allinurl%3ASystem+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span class="kw3">System</span></a>.<span class="me1">out</span>.<span class="me1">println</span><span class="br0">&#40;</span><span class="st0">&quot;Hello, World!&quot;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li2">
<div class="de2">&nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
</ol>
</div>
]]></content:encoded>
			<wfw:commentRss>http://moux.net/blog/2009/06/05/hello-world/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
