<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0"><channel><atom:id>tag:blogger.com,1999:blog-1662570443648714289</atom:id><lastBuildDate>Thu, 16 Feb 2012 08:10:38 +0000</lastBuildDate><category>Customer Development</category><category>Software Development</category><category>Entrepreneurship</category><title>Thoughts of Customer Development, Entrepreneurship, Project Management and Software Development</title><description>by Lim Chee Kin</description><link>http://limcheekin.blogspot.com/</link><managingEditor>noreply@blogger.com (Lim Chee Kin)</managingEditor><generator>Blogger</generator><openSearch:totalResults>31</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/limcheekin" /><feedburner:info uri="limcheekin" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><feedburner:emailServiceId>limcheekin</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><item><guid isPermaLink="false">tag:blogger.com,1999:blog-1662570443648714289.post-4897533020539514660</guid><pubDate>Sun, 15 Jan 2012 06:06:00 +0000</pubDate><atom:updated>2012-01-15T14:19:38.267+08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Software Development</category><title>JQuery Validation UI Plugin 1.2.3 Released - Client Side Validation without writing JavaScript</title><description>I would like to announce the JQuery Validation UI Plugin 1.2.3 Released.&lt;br /&gt;&lt;br /&gt;The   JQuery Validation UI Plugin will bring Javascript Validator, Custom   Constraints, Remote  Constraints, jQuery Validation plugin and qTip  (jQuery tooltip  plugin)  under the same root and deliver comprehensive  client-side  validation  solution.&lt;br /&gt;&lt;br /&gt;Special thanks to &lt;a href="http://savilliantech.blogspot.com/"&gt;Brian Saville&lt;/a&gt;, the release  of 1.2.3 for items of What's New section below is his kindly contribution, otherwise you won't see this release  news. Brian, welcome you to the project team!&lt;br /&gt;&lt;br /&gt;What's New:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Fixed Issue &lt;a href="http://code.google.com/p/jquery-validation-ui-plugin/issues/detail?id=19" target="blank"&gt;#19&lt;/a&gt;: Allow overriding of submitHandler in generated validation block.&lt;/li&gt;&lt;li&gt;Fixed Issue &lt;a href="http://code.google.com/p/jquery-validation-ui-plugin/issues/detail?id=20" target="blank"&gt;#20&lt;/a&gt;: Add module definitions to use with the resources plugin.&lt;/li&gt;&lt;li&gt;First published with the project code at GitHub.&lt;/li&gt;&lt;li&gt;Converted documentation to Grails Docs (no longer at Google Code).&lt;/li&gt;&lt;/ul&gt;Known Issue:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;The Person Sample Application is broken in Grails 2.0.0.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;Find Out More:&lt;br /&gt;&lt;ul&gt;&lt;li&gt; Source code: &lt;a href="https://github.com/limcheekin/jquery-validation-ui"&gt;https://github.com/limcheekin/jquery-validation-ui&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Documentation: &lt;a href="http://limcheekin.github.com/jquery-validation-ui"&gt;http://limcheekin.github.com/jquery-validation-ui&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Support: &lt;a href="https://github.com/limcheekin/jquery-validation-ui/issues"&gt;https://github.com/limcheekin/jquery-validation-ui/issues&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Older Issues: &lt;a href="http://code.google.com/p/jquery-validation-ui-plugin/issues/list"&gt;http://code.google.com/p/jquery-validation-ui-plugin/issues/list&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Discussion Forum: &lt;a href="http://groups.google.com/group/jquery-validation-ui-plugin"&gt;http://groups.google.com/group/jquery-validation-ui-plugin&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1662570443648714289-4897533020539514660?l=limcheekin.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/limcheekin/~4/7ffY-QJTNH4" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/limcheekin/~3/7ffY-QJTNH4/jquery-validation-ui-plugin-123.html</link><author>noreply@blogger.com (Lim Chee Kin)</author><thr:total>0</thr:total><feedburner:origLink>http://limcheekin.blogspot.com/2012/01/jquery-validation-ui-plugin-123.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-1662570443648714289.post-1400425402436702953</guid><pubDate>Wed, 21 Dec 2011 04:11:00 +0000</pubDate><atom:updated>2011-12-21T12:13:51.170+08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Software Development</category><title>The Grails Activiti Plugin 5.8.1 Released</title><description>I would like to announce the Grails Activiti Plugin 5.8.1 released.&lt;br /&gt;&lt;br /&gt;Grails Activiti Plugin was created to integrate Activiti BPM Suite and workflow system to Grails Framework. With the Grails Activiti Plugin, workflow application can be created at your fingertips!&lt;br /&gt;&lt;br /&gt;What's New:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Fixed Issue &lt;a href="http://code.google.com/p/grails-activiti-plugin/issues/detail?id=21" rel="nofollow"&gt;21&lt;/a&gt; : Activiti 5.8 controller reloading broken in Grails 2.0.0. &lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Find Out More:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Project Site and Documentation: &lt;a href="http://code.google.com/p/grails-activiti-plugin/"&gt;http://code.google.com/p/grails-activiti-plugin/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Support: &lt;a href="http://code.google.com/p/grails-activiti-plugin/issues/list"&gt;http://code.google.com/p/grails-activiti-plugin/issues/list&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Discussion Forum: &lt;a href="http://groups.google.com/group/grails-activiti-plugin"&gt;http://groups.google.com/group/grails-activiti-plugin&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1662570443648714289-1400425402436702953?l=limcheekin.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/limcheekin/~4/nSlJPQ___YU" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/limcheekin/~3/nSlJPQ___YU/grails-activiti-plugin-581-released.html</link><author>noreply@blogger.com (Lim Chee Kin)</author><thr:total>0</thr:total><feedburner:origLink>http://limcheekin.blogspot.com/2011/12/grails-activiti-plugin-581-released.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-1662570443648714289.post-3077964742756836581</guid><pubDate>Tue, 20 Dec 2011 08:08:00 +0000</pubDate><atom:updated>2011-12-20T16:56:20.877+08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Software Development</category><title>The Mahout Recommender Plugin 0.5.1 Released</title><description>I would like to announce the Mahout Recommender Plugin 0.5.1 released.&lt;br /&gt;&lt;br /&gt;The Mahout Recommender plugin enabled you to use &lt;a href="http://mahout.apache.org/" target="blank"&gt;Apache Mahout&lt;/a&gt; recommendation  algorithms in your &lt;a href="http://grails.org/"&gt;Grails&lt;/a&gt; project. With the plugin, you can find an effective recommender,  evaluating precision and recall, and evaluating the performance of the  selected recommender without writing single line of code.&lt;br /&gt;&lt;br /&gt;What's New:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;First release of the plugin.&lt;/li&gt;&lt;li&gt;Included Apache Mahout 0.5 jar files.&lt;/li&gt;&lt;li&gt;Introduced command line tools: &lt;a class="Command Line"&gt;average-diff-evaluator&lt;/a&gt;, &lt;a class="Command Line"&gt;create-table&lt;/a&gt;, &lt;a class="Command Line"&gt;import-data&lt;/a&gt;, &lt;a class="Command Line"&gt;install-libimseti-sample-app&lt;/a&gt;, &lt;a class="Command Line"&gt;irstats-evaluator&lt;/a&gt;, &lt;a class="Command Line"&gt;load-runner&lt;/a&gt;, &lt;a class="Command Line"&gt;recommender&lt;/a&gt; and &lt;a class="Command Line"&gt;uninstall-libimseti-sample-app&lt;/a&gt;.&lt;/li&gt;&lt;li&gt;Introduced recommender controller (enhanced version of Mahout's RecommenderServlet) and web-based recommenders' evaluator.&lt;/li&gt;&lt;/ul&gt;Find Out More:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Project Site: &lt;a href="https://github.com/limcheekin/mahout-recommender"&gt;https://github.com/limcheekin/mahout-recommender&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Documentation: &lt;a href="http://limcheekin.github.com/mahout-recommender"&gt;http://limcheekin.github.com/mahout-recommender&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Support: &lt;a href="https://github.com/limcheekin/mahout-recommender/issues"&gt;https://github.com/limcheekin/mahout-recommender/issues&lt;/a&gt; &lt;/li&gt;&lt;li&gt;Discussion Forum: &lt;a href="http://groups.google.com/group/grails-mahout-recommender"&gt;http://groups.google.com/group/grails-mahout-recommender&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1662570443648714289-3077964742756836581?l=limcheekin.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/limcheekin/~4/VLLrL1YdK3k" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/limcheekin/~3/VLLrL1YdK3k/mahout-recommender-plugin-051-released.html</link><author>noreply@blogger.com (Lim Chee Kin)</author><thr:total>0</thr:total><feedburner:origLink>http://limcheekin.blogspot.com/2011/12/mahout-recommender-plugin-051-released.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-1662570443648714289.post-2986533914017761672</guid><pubDate>Thu, 01 Dec 2011 03:08:00 +0000</pubDate><atom:updated>2011-12-01T12:49:26.503+08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Software Development</category><title>The Grails Activiti Plugin 5.8 Released</title><description>I would like to announce the Grails Activiti Plugin 5.8 Released.&lt;br /&gt;&lt;br /&gt;Grails Activiti Plugin was created to integrate Activiti BPM Suite and workflow system to Grails Framework.&lt;br /&gt;With the Grails Activiti Plugin, workflow application can be created at your fingertips!&lt;br /&gt;&lt;br /&gt;Special thanks to &lt;a href="http://codeheadsystems.wordpress.com/"&gt;Ned Wolpert&lt;/a&gt;, without his contribution of effort to upgrade Activiti's jar files to 5.8, test, package and release the plugin, you won't see this release news. Ned, welcome you to the project team!&lt;br /&gt;&lt;br /&gt;What's New:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Upgrade Activiti's jar files to 5.8.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;What's Next:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Nicolas Bohorquez Gutierrez is working on a plugin for &lt;a href="https://bitbucket.org/Nickmancol/grails-activiti-shiro-security-plugin/wiki/Home"&gt;Activiti Shiro Security Integration&lt;/a&gt;. The amendment and integration of this plugin to the Grails Activiti plugin is in the progress. This feature should release under 5.8.1 or 5.9&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt; Note:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;This version of the plugin is worked and tested for Grails 1.3.x. Once Grails 2.0.0 is released, we'll ensure it is working with the latest version of Grails.   &lt;/li&gt;&lt;/ul&gt;  Find Out More:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Project Site and Documentation: &lt;a href="http://code.google.com/p/grails-activiti-plugin/"&gt;http://code.google.com/p/grails-activiti-plugin/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Support: &lt;a href="http://code.google.com/p/grails-activiti-plugin/issues/list"&gt;http://code.google.com/p/grails-activiti-plugin/issues/list&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Discussion Forum: &lt;a href="http://groups.google.com/group/grails-activiti-plugin"&gt;http://groups.google.com/group/grails-activiti-plugin&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1662570443648714289-2986533914017761672?l=limcheekin.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/limcheekin/~4/r2vplcpnTa4" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/limcheekin/~3/r2vplcpnTa4/grails-activiti-plugin-58-released.html</link><author>noreply@blogger.com (Lim Chee Kin)</author><thr:total>0</thr:total><feedburner:origLink>http://limcheekin.blogspot.com/2011/12/grails-activiti-plugin-58-released.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-1662570443648714289.post-2221332301487738338</guid><pubDate>Fri, 19 Aug 2011 10:54:00 +0000</pubDate><atom:updated>2011-08-19T19:00:06.599+08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Software Development</category><title>The Grails Activiti Plugin 5.7 Released</title><description>I would like to announce the Grails Activiti Plugin 5.7 Released.
&lt;br /&gt;
&lt;br /&gt;Grails Activiti Plugin was created to integrate Activiti BPM Suite and workflow system to Grails Framework.
&lt;br /&gt;With the Grails Activiti Plugin, workflow application can be created at your fingertips!
&lt;br /&gt;
&lt;br /&gt;What's New:
&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Upgrade Activiti's jar files to 5.7.&lt;/li&gt;&lt;li&gt;Fixed  Issue &lt;a href="http://code.google.com/p/grails-activiti-plugin/issues/detail?id=15"&gt;15&lt;/a&gt; : UUIDs in domain objects prevent task deletion.&lt;/li&gt;&lt;li&gt;Fixed  Issue &lt;a href="http://code.google.com/p/grails-activiti-plugin/issues/detail?id=18"&gt;18&lt;/a&gt; : logging.properties causes large number of logs in the log file&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;Find Out More:
&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Project Site and Documentation: &lt;a href="http://code.google.com/p/grails-activiti-plugin/"&gt;http://code.google.com/p/grails-activiti-plugin/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Support: &lt;a href="http://code.google.com/p/grails-activiti-plugin/issues/list"&gt;http://code.google.com/p/grails-activiti-plugin/issues/list&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Discussion Forum: &lt;a href="http://groups.google.com/group/grails-activiti-plugin"&gt;http://groups.google.com/group/grails-activiti-plugin&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1662570443648714289-2221332301487738338?l=limcheekin.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/limcheekin/~4/9x6_XJg81Zw" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/limcheekin/~3/9x6_XJg81Zw/grails-activiti-plugin-57-released.html</link><author>noreply@blogger.com (Lim Chee Kin)</author><thr:total>1</thr:total><feedburner:origLink>http://limcheekin.blogspot.com/2011/08/grails-activiti-plugin-57-released.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-1662570443648714289.post-272626744492279758</guid><pubDate>Mon, 25 Jul 2011 06:18:00 +0000</pubDate><atom:updated>2011-07-25T15:11:40.398+08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Entrepreneurship</category><title>My First Experience of Outsourcing</title><description>On one of the Friday of last month, I am looking for part-timer or freelancer to assist me on a data entry work, so I start from my friend's circle, I posted the following message in my facebook's wall:&lt;br /&gt;&lt;table style="border: 1px solid white; padding: .5em 1em 1em 1em;width:100%;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;I am looking for part-time data entry operator to capture data from the web and record it to spreadsheet (MS Excel), may I know whether you or your friend interested to earn extra income?&lt;br /&gt;&lt;br /&gt;Requirements: English literature, Internet Access Connection, Acrobat PDF Reader, Internet Explorer. Technical knowledge is not required.&lt;br /&gt;&lt;br /&gt;Potential candidates: Account Clerk, Admin Clerk, Office Worker, Student&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;The job description is very similar to most job posts in the classified ad, do you think it is good example? It is definitely a bad one, the job description is too general, if you post similar job description, be specific about the job detail, so potential candidates know exactly the scope of the job and your expectation.&lt;br /&gt;&lt;br /&gt;As not much feedback to my offer in facebook wall, I post the job description (it is more specific this time) to several freelancer and part-timer job sites. If you are looking for Malaysian freelancers or part-timer, I recommend &lt;a href="http://asiaparttime.com/"&gt;AsiaPartTime.com&lt;/a&gt;, I received overwhelming responses within 3 days (approximately 100 responses via e-mail, SMS or phone call). A lesson learned:  you must remember to include the following description after your job description and contact information:&lt;br /&gt;&lt;table style="border: 1px solid white; padding:  .5em 1em 1em 1em; width:100%"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;If you are interested to the job, please tell me more about you, such as:&lt;br /&gt;&lt;br /&gt;1) Your previous working experiences related to the job&lt;br /&gt;&lt;br /&gt;2) Your current occupation (If student, please specify the course you studying)&lt;br /&gt;           &lt;br /&gt;3) Your understanding about the job&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;Otherwise, you will face the problem I faced -- asking these 3 questions to hundred applicants, I don't think you will have fun out of it. Based on the responses from these hundred applicants, I selected 7 applicants participate in a test (related to the job) to find the most suitable person for the job based on their test results.&lt;br /&gt;&lt;br /&gt;Upon award the job to the shortlisted applicant, I include the following message:&lt;br /&gt;&lt;table style="border: 1px solid white; padding:  .5em 1em 1em 1em;width:100%"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;Congratulations! The job is awarded to you!&lt;br /&gt;&lt;br /&gt;Please take note for the following items:&lt;br /&gt;Upon completion of the job:&lt;br /&gt;About deadline and payment detail:&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;Finally, I found a right person for the job with deliverable that satisfactory. I paid 50% extra for the job. In the last message you send to your contractor, I urge you to include the following message so that you can get some feedback from her:&lt;br /&gt;&lt;table style="border: 1px solid white; padding:  .5em 1em 1em 1em;width:100%;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;I need further input from you for the following items below:&lt;br /&gt;&lt;br /&gt;1) What make you interested to take this job, besides earning extra $$$?&lt;br /&gt;&lt;br /&gt;2) As this is the first time I involved in outsourcing, is there  anything I can improve (to make the working and communication experience  better)? Did I do anything make you unhappy?&lt;br /&gt;&lt;br /&gt;3) Would you be interested to take similar job in the future, if there is any?&lt;br /&gt;&lt;br /&gt;I hope to hear honest comments and feedback from you (even the negative one). :)&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;I'd love to hear your comments as usual.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1662570443648714289-272626744492279758?l=limcheekin.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/limcheekin/~4/RKXBFB0G3EI" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/limcheekin/~3/RKXBFB0G3EI/my-first-experience-of-outsourcing.html</link><author>noreply@blogger.com (Lim Chee Kin)</author><thr:total>0</thr:total><feedburner:origLink>http://limcheekin.blogspot.com/2011/07/my-first-experience-of-outsourcing.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-1662570443648714289.post-500046466579740738</guid><pubDate>Mon, 06 Jun 2011 12:44:00 +0000</pubDate><atom:updated>2011-06-06T21:02:46.978+08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Software Development</category><title>The Grails Activiti Plugin 5.6 Released</title><description>I would like to announce the Grails Activiti Plugin 5.6 Released.&lt;br /&gt;&lt;br /&gt;Grails Activiti Plugin was created to integrate Activiti BPM Suite and workflow system to Grails Framework.&lt;br /&gt;With the Grails Activiti Plugin, workflow application can be created at your fingertips!&lt;br /&gt;&lt;br /&gt;What's New:&lt;br /&gt;&lt;strong&gt;&lt;/strong&gt; &lt;ul&gt;&lt;li&gt;Upgrade Activiti's jar files and examples to 5.6. &lt;/li&gt;&lt;li&gt;Fixed Issue &lt;a href="http://code.google.com/p/grails-activiti-plugin/issues/detail?id=13" rel="nofollow"&gt;13&lt;/a&gt;: Unable to run grails war after installing grails-activiti-plugin 5.5. &lt;/li&gt;&lt;li&gt;Fixed Issue &lt;a href="http://code.google.com/p/grails-activiti-plugin/issues/detail?id=14" rel="nofollow"&gt;14&lt;/a&gt;: Nullpointer exception when the activiti engine is turned off, using activiti spring security plugin. &lt;/li&gt;&lt;li&gt;Support turning off Activiti Engine by add &lt;tt&gt;activiti.disabled=true&lt;/tt&gt; to Config.groovy. &lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Find Out More:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Project Site and Documentation: &lt;a href="http://code.google.com/p/grails-activiti-plugin/"&gt;http://code.google.com/p/grails-activiti-plugin/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Support: &lt;a href="http://code.google.com/p/grails-activiti-plugin/issues/list"&gt;http://code.google.com/p/grails-activiti-plugin/issues/list&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Discussion Forum: &lt;a href="http://groups.google.com/group/grails-activiti-plugin"&gt;http://groups.google.com/group/grails-activiti-plugin&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1662570443648714289-500046466579740738?l=limcheekin.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/limcheekin/~4/eHykH-vSa5M" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/limcheekin/~3/eHykH-vSa5M/grails-activiti-plugin-56-released.html</link><author>noreply@blogger.com (Lim Chee Kin)</author><thr:total>0</thr:total><feedburner:origLink>http://limcheekin.blogspot.com/2011/06/grails-activiti-plugin-56-released.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-1662570443648714289.post-8905920266814053680</guid><pubDate>Fri, 13 May 2011 23:27:00 +0000</pubDate><atom:updated>2011-05-14T08:18:58.808+08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Software Development</category><title>The Grails Activiti Plugin 5.5 Released</title><description>I would like to announce the Grails Activiti Plugin 5.5 Released.&lt;br /&gt;&lt;br /&gt;Grails Activiti Plugin was created to integrate Activiti BPM Suite and workflow system to Grails Framework.&lt;br /&gt;With the Grails Activiti Plugin, workflow application can be created at your fingertips!&lt;br /&gt;&lt;br /&gt;What's New:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Upgrade Activiti's jar files and examples to 5.5. Ported the Activiti's examples from JUnit3 to JUnit4. &lt;/li&gt;&lt;li&gt;Fixed Issue &lt;a href="http://code.google.com/p/grails-activiti-plugin/issues/detail?id=10" rel="nofollow"&gt;10&lt;/a&gt;: deleteTask with custom domain class. &lt;/li&gt;&lt;li&gt;Add a new command &lt;tt&gt;activiti-quickstart&lt;/tt&gt; to install plugin's index.gsp, logo, favicon and default H2 &lt;tt&gt;DataSource.grooy&lt;/tt&gt; into the project. The index.gsp no longer install by default. &lt;/li&gt;&lt;li&gt;Add businessKey support when start a process instance by assign a value to &lt;tt&gt;params.businessKey&lt;/tt&gt;. &lt;/li&gt;&lt;li&gt;Must use activiti-spring-security plugin 0.4.2 or above for Spring Security Integration. &lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Find Out More:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Project Site and Documentation: &lt;a href="http://code.google.com/p/grails-activiti-plugin/"&gt;http://code.google.com/p/grails-activiti-plugin/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Support: &lt;a href="http://code.google.com/p/grails-activiti-plugin/issues/list"&gt;http://code.google.com/p/grails-activiti-plugin/issues/list&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Discussion Forum: &lt;a href="http://groups.google.com/group/grails-activiti-plugin"&gt;http://groups.google.com/group/grails-activiti-plugin&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1662570443648714289-8905920266814053680?l=limcheekin.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/limcheekin/~4/fiYkk3iiD8c" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/limcheekin/~3/fiYkk3iiD8c/grails-activiti-plugin-55-released.html</link><author>noreply@blogger.com (Lim Chee Kin)</author><thr:total>0</thr:total><feedburner:origLink>http://limcheekin.blogspot.com/2011/05/grails-activiti-plugin-55-released.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-1662570443648714289.post-5455574125481786394</guid><pubDate>Fri, 06 May 2011 05:07:00 +0000</pubDate><atom:updated>2011-05-06T13:43:27.505+08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Software Development</category><title>Is Grails Activiti Plugin production ready? Here is how people use it in production.</title><description>I posted this question "&lt;a href="http://groups.google.com/group/grails-activiti-plugin/browse_thread/thread/ae81540e2885fc47"&gt;&lt;span id="thread_subject_site"&gt;How do you use Grails Activiti Plugin?&lt;/span&gt;&lt;/a&gt;"  last month to the plugin's &lt;a href="http://groups.google.com/group/grails-activiti-plugin"&gt;discussion forum&lt;/a&gt; to find out how people use the plugin. I am glad and appreciated kindness of plugin users to share their experiences.&lt;br /&gt;&lt;br /&gt;The following are some production usages of the &lt;a href="http://code.google.com/p/grails-activiti-plugin/"&gt;Grails Activiti Plugin&lt;/a&gt;:&lt;br /&gt;&lt;br /&gt;&lt;table style="border: 1px solid white; padding: 1em;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt; "We're re-writing a home-grown workflow management system to an order and production management system with Activiti as the BPM side. Its not in production yet but will be in use in 2012Q1." &lt;i&gt;by Ned Wolpert&lt;/i&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;table style="border: 1px solid white; padding: 1em;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;"I'm about to start a new business within an existing company. The new business is around BPM consulting and the supporting IT systems, with a strong focus on logistics processes. After checking several options I've chosen the combination of Grails/Activiti/ExtJs 4 to develop thew new system. I've developed a prototype for our new system and I must say that this combination works just wonderful!" &lt;i&gt;by Markus Menner&lt;/i&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;table style="border: 1px solid white; padding: 1em;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;"I'm using the grails activiti plugin in an application for call-center employees. The idea is support these employees with data from everywhere out of the organization. I use the activiti engine to support call-back appointments: if the call-center employee isn't able to give an answer to the customer, he creates an appointment for a colleague." &lt;i&gt;by Richard Polderman  &lt;/i&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;table style="border: 1px solid white; padding: 1em;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt; "I'm using it to control process performance in geoprocessing internal services. It's a process automation of services like topographic mapping. We are not creating automatic maps or anything like that. It's a simple tool we are using to measure business performance. We'll be using it to track performance and promote people based on results they give. In a near future we could use it in a six sigma project." &lt;i&gt;by Alberto Barcelos  &lt;/i&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;Lastly, I'd love to hear your sharing on how you use the plugin in the comments section below and you can find out more about how others use the plugin in this &lt;a href="http://groups.google.com/group/grails-activiti-plugin/browse_thread/thread/ae81540e2885fc47"&gt;thread&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1662570443648714289-5455574125481786394?l=limcheekin.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/limcheekin/~4/Xaph6TlvMUg" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/limcheekin/~3/Xaph6TlvMUg/is-grails-activiti-plugin-production.html</link><author>noreply@blogger.com (Lim Chee Kin)</author><thr:total>0</thr:total><feedburner:origLink>http://limcheekin.blogspot.com/2011/05/is-grails-activiti-plugin-production.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-1662570443648714289.post-500984356192572391</guid><pubDate>Mon, 25 Apr 2011 11:21:00 +0000</pubDate><atom:updated>2011-04-25T20:08:49.331+08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Customer Development</category><title>An Open Letter to Early Access Registered Users of Form Builder</title><description>I had gone through an blog post titled "&lt;a href="http://jamespanderson.tumblr.com/post/4578587507/startups-dont-just-collect-my-email" target="_blank"&gt;&lt;span&gt;Startups: Don't just collect my email&lt;/span&gt;&lt;/a&gt;" by Phil Anderson few days ago, He write:&lt;br /&gt;&lt;div class="gmail_quote"&gt;&lt;br /&gt;&lt;blockquote style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;" class="gmail_quote"&gt;Collecting emails is a great way to get in touch with your potential users when you are ready to go.  I've since put my email address in quite a few of these.  But I  haven't heard back from a single one.  I know launching a startup takes  time, but by not contacting people who are interested in your startup  and keeping them up to date, I'm probably going to forget all about it.&lt;/blockquote&gt;&lt;br /&gt;Thanks  Phil, your blog post reminded me I should update registered users of early access to the prototype of Form Builder via the &lt;a href="http://leadgen.processcanvas.com/form-builder-for-grails-developer/" target="_blank"&gt;landing page&lt;/a&gt; whose trusted me by sending me their e-mail address. They  are my valued users, they should receive updates of the form builder they deserved.&lt;br /&gt;&lt;br /&gt;Along the way I work out the &lt;a href="http://limcheekin.blogspot.com/2011/02/jquery-and-grails-form-builder-plugin.html" target="_blank"&gt;Form Builder&lt;/a&gt; of &lt;a href="http://www.processcanvas.com/" target="_blank"&gt;ProcessCanvas.com&lt;/a&gt; which targeted to end user (If you would like to find out more about ProcessCanvas.com, please see this &lt;a href="http://blog.processcanvas.com/2011/04/open-letter-to-processcanvascom-launch.html" target="_blank"&gt;post&lt;/a&gt;), I find out that some Grails developers are interested in Form Builder targeted to developer. Learned from &lt;a href="http://limcheekin.blogspot.com/2011/02/crossing-chasm-in-me.html" target="_blank"&gt;my previous mistakes&lt;/a&gt;, I think I am getting smarter, I prepare a landing page, &lt;a href="http://limcheekin.blogspot.com/2011/03/form-builder-for-grails-developer.html" target="_blank"&gt;write about it&lt;/a&gt;, announce and post updates to &lt;a href="http://grails.1312388.n4.nabble.com/Form-Builder-Plugin-targeted-to-Grails-developers-td3331292.html" target="_blank"&gt;Grails user community&lt;/a&gt; to find out whether there is real need for Form Builder to Grails developers.&lt;br /&gt;&lt;br /&gt;The landing page launched in early March and two weeks later, 33 visitors signed up for early access. The result is not too bad in my opinion, thanks to those who help me to spread the news by using twitter, facebook, blog, etc. I learned from &lt;a href="http://www.runningleanhq.com/" target="_blank"&gt;Running Lean&lt;/a&gt;, a book written by Ash Maurya, using qualitative approach, &lt;i&gt;talking to people &lt;/i&gt;by conducting customer interviews such as problem interview is the best way to find out whether "Is this a problem worth solving?". So, I prepare the &lt;a href="https://docs.google.com/document/d/1aNre5oXO9lSDkiO93OmAxjgWr7v_50h35WDs9rkwvtw/edit?hl=en&amp;amp;authkey=CLCU6vYF" target="_blank"&gt;problem interview script&lt;/a&gt; and problem summary form by refer to guidelines in Running Lean, and send out interview invitation message to the 33 registered users. I'm ready for the interviews.&lt;br /&gt;&lt;br /&gt;You guess how was the response rate? &lt;span style="font-weight: bold;"&gt;Zero!&lt;/span&gt; I told my friends I stuck in "talking to people" stage. What's wrong here? Is there anything wrong for qualitative approach suggested by Ash Maurya. Hm... Not really, it was simply the fact that most developers don't like to talk to people (including myself), furthermore they don't know me personally. (I still remembered the pressure I felt the moment I send out the interview invitation message, I still doing it because I think I need to get over it in order to get things done). I understood that developers are busy, they preferred written communication over verbal communication, I should choose communication channel they preferred.&lt;br /&gt;&lt;br /&gt;I would like to seek your input here to ensure I create a form builder that meeting your requirements. Let's me list down top 3 problem hypotheses we experienced:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;The first problem we encountered was creating online form that look great and professional. It was challenge to many developers as it required creative skills.  The design and L&amp;amp;F of the form getting more and more important especially it will impact end-user impression to your application.&lt;/li&gt;  &lt;li&gt;Also, to layout form fields properly was time-consuming and required knowledge of CSS. Some developers layout form fields using HTML table, but we think CSS is better and cleaner approach.&lt;/li&gt;&lt;li&gt;Another problem we constantly faced was effectively creating Master-Detail Dynamic Form. It was most common type of form in application, but to create one still like black art to many developers.&lt;/li&gt;  &lt;/ol&gt;Please response by answer the following questions:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Do any of these problems resonate with you?&lt;/li&gt;&lt;li&gt;How would you rank these problems (must-have, nice-to-have, don't-need)?&lt;/li&gt;&lt;li&gt;Have you run into any other problems I didn't talk about?&lt;/li&gt;  &lt;/ol&gt;&lt;br /&gt;Today, I signed in to my unbounce account to check how many users signed up so far, the following image is the latest update:&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/-Kgnyilrg6u4/TbVZ-PVuhwI/AAAAAAAAACM/qUjgpRSRIU0/s1600/unbounce.png"&gt;&lt;img style="float: left; margin: 0pt 10px 10px 0pt; cursor: pointer; width: 400px; height: 62px;" src="http://2.bp.blogspot.com/-Kgnyilrg6u4/TbVZ-PVuhwI/AAAAAAAAACM/qUjgpRSRIU0/s400/unbounce.png" alt="" id="BLOGGER_PHOTO_ID_5599480637509502722" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Lastly, I included the link of this open letter in e-mail message I sent to 60 registered user.&lt;br /&gt;&lt;br /&gt;Thanks for read until here. I'd love to hear your comments as usual.  &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1662570443648714289-500984356192572391?l=limcheekin.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/limcheekin/~4/FRmBxuhIRd4" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/limcheekin/~3/FRmBxuhIRd4/open-letter-to-early-access-registered.html</link><author>noreply@blogger.com (Lim Chee Kin)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/-Kgnyilrg6u4/TbVZ-PVuhwI/AAAAAAAAACM/qUjgpRSRIU0/s72-c/unbounce.png" height="72" width="72" /><thr:total>2</thr:total><feedburner:origLink>http://limcheekin.blogspot.com/2011/04/open-letter-to-early-access-registered.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-1662570443648714289.post-9072231299904119998</guid><pubDate>Tue, 05 Apr 2011 08:51:00 +0000</pubDate><atom:updated>2011-04-05T17:05:13.671+08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Software Development</category><title>The Grails Activiti Plugin 5.4 Released with Spring Security Integration</title><description>I would like to announce the Grails Activiti Plugin 5.4 Released.&lt;br /&gt;&lt;br /&gt;Grails Activiti Plugin was created to integrate Activiti BPM Suite and workflow system to Grails Framework.&lt;br /&gt;With the Grails Activiti Plugin, workflow application can be created at your fingertips!&lt;br /&gt;&lt;br /&gt;What's New:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Upgrade Activiti's jar files to 5.4.&lt;/li&gt;&lt;li&gt;Support email sending without authentication.&lt;/li&gt;&lt;li&gt;Incorporate Spring Security Integration (enabled by &lt;a href="http://code.google.com/p/grails-activiti-spring-security-plugin/"&gt;Activiti Spring Security plugin&lt;/a&gt;) to the plugin and Vacation Request Sample Application.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Find Out More:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Project Site and Documentation: &lt;a href="http://code.google.com/p/grails-activiti-plugin/"&gt;http://code.google.com/p/grails-activiti-plugin/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Support: &lt;a href="http://code.google.com/p/grails-activiti-plugin/issues/list"&gt;http://code.google.com/p/grails-activiti-plugin/issues/list&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Discussion Forum: &lt;a href="http://groups.google.com/group/grails-activiti-plugin"&gt;http://groups.google.com/group/grails-activiti-plugin&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1662570443648714289-9072231299904119998?l=limcheekin.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/limcheekin/~4/Be0B36JmxGg" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/limcheekin/~3/Be0B36JmxGg/grails-activiti-plugin-54-released-with.html</link><author>noreply@blogger.com (Lim Chee Kin)</author><thr:total>2</thr:total><feedburner:origLink>http://limcheekin.blogspot.com/2011/04/grails-activiti-plugin-54-released-with.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-1662570443648714289.post-8357774710878706097</guid><pubDate>Fri, 18 Mar 2011 15:27:00 +0000</pubDate><atom:updated>2011-03-19T00:24:09.250+08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Software Development</category><title>JQuery Validation UI Plugin 1.2.1 Released - Client Side Validation without writing JavaScript</title><description>I would like to announce the JQuery Validation UI Plugin 1.2.1 Released.&lt;br /&gt;&lt;br /&gt;The  JQuery Validation UI Plugin will bring Javascript Validator, Custom  Constraints, Remote  Constraints, jQuery Validation plugin and qTip (jQuery tooltip  plugin)  under the same root and deliver comprehensive client-side  validation  solution.&lt;br /&gt;&lt;br /&gt;What's New:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Fixed  Issue &lt;a href="http://code.google.com/p/jquery-validation-ui-plugin/issues/detail?id=9" rel="nofollow"&gt;#9&lt;/a&gt;: Validation matches &lt;tt&gt;[a-zA-Z]+&lt;/tt&gt; doesn't support single character &lt;/li&gt;&lt;li&gt;Fixed  Issue &lt;a href="http://code.google.com/p/jquery-validation-ui-plugin/issues/detail?id=10" rel="nofollow"&gt;#10&lt;/a&gt;: In the java.lang.Bigdecimal also thrown an error for unique and range. &lt;/li&gt;&lt;li&gt;Fixed  Issue &lt;a href="http://code.google.com/p/jquery-validation-ui-plugin/issues/detail?id=11" rel="nofollow"&gt;#11&lt;/a&gt;: Type mismatch custom error message not working. &lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Find Out More:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Project Site and Documentation: &lt;a href="http://code.google.com/p/jquery-validation-ui-plugin/" rel="nofollow" target="_top"&gt;http://code.google.com/p/jquery-validation-ui-plugin/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Support: &lt;a href="http://code.google.com/p/jquery-validation-ui-plugin/issues/list" rel="nofollow" target="_top"&gt;http://code.google.com/p/jquery-validation-ui-plugin/issues/list&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Discussion Forum: &lt;a href="http://groups.google.com/group/jquery-validation-ui-plugin" rel="nofollow" target="_top"&gt;http://groups.google.com/group/jquery-validation-ui-plugin&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1662570443648714289-8357774710878706097?l=limcheekin.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/limcheekin/~4/6luGnhn-1l4" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/limcheekin/~3/6luGnhn-1l4/jquery-validation-ui-plugin-121.html</link><author>noreply@blogger.com (Lim Chee Kin)</author><thr:total>0</thr:total><feedburner:origLink>http://limcheekin.blogspot.com/2011/03/jquery-validation-ui-plugin-121.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-1662570443648714289.post-5042436466537637753</guid><pubDate>Fri, 11 Mar 2011 13:24:00 +0000</pubDate><atom:updated>2011-03-16T00:20:32.515+08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Software Development</category><title>Resurrection of Malaysia Groovy and Grails User Group</title><description>Two days ago, I google "Grails Malaysia", I found this thread "&lt;a href="http://grails.1312388.n4.nabble.com/Groovy-Grails-folks-in-Malaysia-or-Singapore-td3079495.html"&gt;Groovy/Grails folks in Malaysia or Singapore?&lt;/a&gt;" in Grails User forum and &lt;a href="http://groups.google.com/group/malaysia-groovy-and-grails-user-group"&gt;Malaysia Groovy and Grails User Group&lt;/a&gt;. As commented by Steve, the Malaysia Groovy and Grails User Group is look like &lt;span&gt;non-existent or spam mailing list. I look into the threads of &lt;/span&gt;Malaysia Groovy and Grails User Group and find out that there are handful of threads related to Groovy and Grails, many are spam as per Steve's comments.&lt;br /&gt;&lt;br /&gt;If you are Malaysia's Groovy and Grails supporter, will you join a user group that have full of spam messages? I doubt it. Like many people, when I saw so many spam messages in the front page (I hate spam!), I quickly move my mouse pointer to "x" to close my browser window and leave the user group, when I move my finger and just before I press a left click button of my mouse, a "light bulb" pop up from my mind - What if every Malaysia's Groovy and Grails developer visited this user group and leave, this user group will become ghost town as commented by the group owner.&lt;br /&gt;&lt;br /&gt;So, I decided to join the user group and try to remove all spam messages, in few minutes time I find out that group member only can report spam, not delete spam. So I send an e-mail to the group owner to request for ownership of the user group. Thanks for his quick response and granted me the owner right on the same day and ask me "What's your plan for the group? I'd like to be involved."&lt;br /&gt;&lt;br /&gt;The following message was my response to him:&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;div&gt;The short term plan is to make the group a "clean" place for local groovy and grails developer to hang out:&lt;/div&gt;&lt;div&gt;1. Clean up spam messages&lt;/div&gt; &lt;div&gt;2. Kick out spammer(s) from the group&lt;/div&gt;&lt;div&gt;3. Make an &lt;a href="http://grails.1312388.n4.nabble.com/ANN-Resurrection-of-Malaysia-Groovy-and-Grails-User-Group-td3348623.html"&gt;announcement&lt;/a&gt; (this group come back "live") and blog about it (need your help to spread the news)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Long term....? I hadn't think of it yet. :)&lt;/div&gt;&lt;/blockquote&gt;&lt;div&gt;&lt;/div&gt;After I responded to him, I continue my work and plan to re-visit the user group in the evening. You guess what? When I re-visit the user group, the group owner had completed item 1. and item 2 above. Thank you so much! So, it is my turn to do item 3.&lt;br /&gt;&lt;br /&gt;If you are Groovy and Grails supporter from Malaysia, please join the user group, invite people like you to join the user group. Do you see the orange button on right top of this blog? Do you like it? Please embed code snippet below to your blog, twitter, etc. to help to promote Malaysia Groovy and Grails User Group.&lt;br /&gt;&lt;br /&gt;&lt;table style="border: 1px solid white; padding: 1em;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&amp;lt;a href="http://groups.google.com/group/malaysia-groovy-and-grails-user-group" title="Join Malaysia Groovy and Grails User Group"&amp;gt;&amp;lt;img alt="Join Malaysia Groovy and Grails User Group" src="http://grails-activiti-plugin.googlecode.com/files/malaysia-ggug-bg-black.png" height="100%" width="100%" border="0" /&amp;gt;&amp;lt;/a&amp;gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;If you are using blogger.com, you can embed the code above to your blog using HTML/JavaScript gadget without any adjustment. Otherwise, please adapt the code above to your blog, twitter, etc. (Please let's me know if you not sure how to do so). The code snippet above support black color background, if your background is white, please change malaysia-ggug-bg-black.png to malaysia-ggug-bg-white.png.&lt;br /&gt;&lt;br /&gt;Thanks for reading. It is your turn to take action!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1662570443648714289-5042436466537637753?l=limcheekin.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/limcheekin/~4/pqgCXRL71BY" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/limcheekin/~3/pqgCXRL71BY/resurrection-of-malaysia-groovy-and.html</link><author>noreply@blogger.com (Lim Chee Kin)</author><thr:total>4</thr:total><feedburner:origLink>http://limcheekin.blogspot.com/2011/03/resurrection-of-malaysia-groovy-and.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-1662570443648714289.post-814051489338819647</guid><pubDate>Sat, 05 Mar 2011 07:59:00 +0000</pubDate><atom:updated>2011-03-08T00:03:59.365+08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Entrepreneurship</category><title>Action Notes of How to Make Money in 6 Easy Steps</title><description>Today, my friend share me an outstanding article written by Jason Fried, &lt;a href="http://www.inc.com/magazine/20110301/making-money-small-business-advice-from-jason-fried_Printer_Friendly.html"&gt;How to Make Money in 6 Easy Steps&lt;/a&gt;. Initially the title of this post is "Reading Notes of How to Make Money in 6 Easy Steps", this post is to capture my thoughts after reading the article. If you really enjoy reading as I did, it is great! However, what matters most is what you do after you read. I change "Reading" to "Action", so it become "Action Notes of How to Make Money in 6 Easy Steps".&lt;br /&gt;&lt;br /&gt;This is quite a long post, feel free to skip.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Why making money?&lt;/b&gt;&lt;br /&gt;The question above seems no-brainer, right? Did you think of what money means to you? Take few minutes of your time and think deeply about it... At the end of this post, I will tell you what money means to most people.&lt;br /&gt;&lt;br /&gt;6 steps from Jason Fried:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Understanding the buyer is the key to being a strong seller&lt;/li&gt;&lt;li&gt;In which I sell electronics, knives, and throwing stars—and learn that it's all about passion&lt;/li&gt;&lt;li&gt;How, and why, to charge real money for real products&lt;/li&gt; &lt;li&gt;There are different pathways to the same dollar&lt;/li&gt;&lt;li&gt;The true value of bootstrapping&lt;/li&gt;&lt;li&gt;A word about practicing&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;By reading the description, the 6 steps above doesn't sound like actionable, let's take one step at a time:&lt;br /&gt;&lt;b&gt;1. Understanding the buyer is the key to being a strong seller&lt;br /&gt;&lt;/b&gt;Jason's lessons learned and discovery from working as tennis-shoe and tennis-racket salesman in his 14:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;People's reasons for buying things often don't match up with the company's reason for selling them&lt;/li&gt; &lt;li&gt;When you describe things in terms people don't understand, they tend not to trust you as much&lt;/li&gt;&lt;li&gt;When customers shop for shoes, they do three things. They consider the  look and style. They try them on to see if they're comfortable. And they  consider the price. Endorsements by famous athletes help a lot, too.  But the technology, the features, the special-testing labs—I can't  remember a single customer who cared. &lt;/li&gt;&lt;li&gt;Understanding what people really want to know—and how that differs from  what you want to tell them—is a fundamental tenet of sales.&lt;/li&gt;&lt;/ul&gt;My understanding:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Understand what make people buy and what they look for in your product and your competitor products. Most likely it is not features. From the example above, it reminded me about the process of buying car, are they look similar?&lt;/li&gt; &lt;li&gt;Speaking terms and language that customer understand&lt;/li&gt;&lt;li&gt;Be a great salesman&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;b&gt;2. In which I sell electronics, knives, and throwing stars—and learn that it's all about passion&lt;br /&gt;&lt;/b&gt;Jason's lesson learned from working as reseller:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Sell only things you'd want to buy for yourself.&lt;/li&gt;&lt;/ul&gt;My understanding:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Do things that you passionate and believe.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Build things that you will use it yourself, a.k.a prosumer. This lesson very similar to &lt;a href="http://blog.processcanvas.com/2010/12/whats-your-problem.html"&gt;Scratch My Own Itch&lt;/a&gt;, build a product to solve your own problem and dogfood the product and sell it to people that have the same problem.&lt;/li&gt; &lt;/ul&gt;&lt;br /&gt;&lt;b&gt;3. How, and why, to charge real money for real products&lt;br /&gt;&lt;/b&gt;Jason's lesson learned from selling his Audiofile program:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;People are happy to pay for things that work well. Never be afraid to put a price on something. Even if there are free options.&lt;/li&gt; &lt;li&gt;Charging for something makes you want to make it better&lt;/li&gt;&lt;/ul&gt;My understanding:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Make a product that so much better than free options and aimed to charge from day 1 by using Free Trial model (Try first, buy later if you like it).&lt;/li&gt; &lt;/ul&gt;&lt;br /&gt;&lt;b&gt;4. There are different pathways to the same dollar&lt;br /&gt;&lt;/b&gt;Jason's lesson learned from 37express:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Don't just charge. Try as many different pricing models as you can.&lt;/li&gt;&lt;li&gt; Try to remove the fear and uncertainty, and people will be more willing to pay you. &lt;/li&gt; &lt;/ul&gt;My understanding:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Be creative and flexible about pricing of your product or service&lt;/li&gt;&lt;li&gt;A/B testing is good way to test for different pricing models for &lt;a href="http://en.wikipedia.org/wiki/Software_as_a_service"&gt;SaaS&lt;/a&gt; product.&lt;/li&gt; &lt;/ul&gt;&lt;br /&gt;&lt;b&gt;5. The true value of bootstrapping&lt;br /&gt;&lt;/b&gt;Jason's lesson learned from bootstrapping:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Bootstrapping forces you to think about making money on Day One. &lt;/li&gt;&lt;/ul&gt;My understanding:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Monetary constraints and pressure make you work hard and think hard seriously to create a profitable business. When you have a lot of easy money, you tend to spend it easily without giving a thought.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;b&gt;&lt;br /&gt;6. A word about practicing&lt;/b&gt;&lt;br /&gt;How and where to start?&lt;br /&gt;In this last step, Jason  suggestion on practice making money: Buy and sell the &lt;i&gt;same thing&lt;/i&gt; over and over on Craigslist or eBay.&lt;br /&gt;&lt;br /&gt;Key takeaway about actions you (and I) can take:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Be reseller or online seller to practice your selling skills&lt;/li&gt;&lt;li&gt;Learn about what make customer buy (your product or service)&lt;/li&gt;&lt;li&gt;Learn about pricing models by experiments (If you sell SaaS product, pick up A/B testing to test different pricing models)&lt;/li&gt; &lt;li&gt;Get inspired? Act now!&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;That's all about it, thanks for reading. I'd love to hear comments from you as usual!&lt;br /&gt;&lt;br /&gt;Oops! Almost forgot &lt;b&gt;Why making money? &lt;/b&gt;With money, you have freedom and autonomy. Jason Fried make a good point in his article:&lt;br /&gt;&lt;br /&gt;&lt;blockquote style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;" class="gmail_quote"&gt;Making money is about freedom. When you owe people money, they own  you—or, at least, they own your schedule. As long as you remain  profitable, the timeline is yours to create.&lt;br /&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1662570443648714289-814051489338819647?l=limcheekin.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/limcheekin/~4/bq7vTAytB9c" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/limcheekin/~3/bq7vTAytB9c/action-notes-of-how-to-make-money-in-6.html</link><author>noreply@blogger.com (Lim Chee Kin)</author><thr:total>0</thr:total><feedburner:origLink>http://limcheekin.blogspot.com/2011/03/action-notes-of-how-to-make-money-in-6.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-1662570443648714289.post-6447593813010632956</guid><pubDate>Thu, 03 Mar 2011 08:20:00 +0000</pubDate><atom:updated>2011-03-14T21:54:13.865+08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Customer Development</category><title>Form Builder for Grails Developer</title><description>Along the way I am working on &lt;a href="http://code.google.com/p/jquery-form-builder-plugin/" rel="nofollow" target="_top"&gt;JQuery Form Builder Plugin&lt;/a&gt; and &lt;a href="http://code.google.com/p/grails-form-builder-plugin/" rel="nofollow" target="_top"&gt;Grails Form Builder Plugin&lt;/a&gt;, I find out that some of you (Yes, I means you... Grails developer)  would like to have a form builder plugin that targeted to developer instead of end-user.&lt;br /&gt;&lt;br /&gt;I'm keen to find out that is there a real need for such a plugin, is this plugin a "must have" to you?&lt;br /&gt;&lt;br /&gt;Please click the image below to sign up for early access to the prototype.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://leadgen.processcanvas.com/form-builder-for-grails-developer/" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img src="https://lh6.googleusercontent.com/-RwF6SDMzUCU/TW9N1lMURCI/AAAAAAAAAGk/r8iPZ9e_Nf4/s400/formbuilder.png" height="150" width="400" border="0" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;span style="font-weight: bold;"&gt;Edited on 07 March 2011: &lt;/span&gt;Total &lt;span style="font-weight: bold;"&gt;18&lt;/span&gt; Grails developers signed up, many thanks for trusted me by sent me your e-mail address (I hate spam too. I promise anything I send to you via e-mail will be relevant).&lt;/p&gt;&lt;p&gt;&lt;span style="font-weight: bold;"&gt;Edited on 08 March 2011: &lt;/span&gt;Total &lt;span style="font-weight: bold;"&gt;24&lt;/span&gt; Grails developers signed up, thanks for your support and trust.&lt;/p&gt;&lt;p&gt;&lt;span style="font-weight: bold;"&gt;Edited on 11 March 2011: &lt;/span&gt;Total &lt;span style="font-weight: bold;"&gt;32&lt;/span&gt; Grails developers signed up, many thanks for your support and trust.&lt;/p&gt;&lt;p&gt;&lt;span style="font-weight: bold;"&gt;Edited on 14 March 2011: &lt;/span&gt;&lt;span style="font-weight: bold;"&gt;1&lt;/span&gt; more Grails developers signed up (hm... seems like slowing down), many thanks for your support and trust.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1662570443648714289-6447593813010632956?l=limcheekin.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/limcheekin/~4/BczNJeznuzc" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/limcheekin/~3/BczNJeznuzc/form-builder-for-grails-developer.html</link><author>noreply@blogger.com (Lim Chee Kin)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://lh6.googleusercontent.com/-RwF6SDMzUCU/TW9N1lMURCI/AAAAAAAAAGk/r8iPZ9e_Nf4/s72-c/formbuilder.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://limcheekin.blogspot.com/2011/03/form-builder-for-grails-developer.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-1662570443648714289.post-6905055909325442382</guid><pubDate>Thu, 03 Mar 2011 03:39:00 +0000</pubDate><atom:updated>2011-03-03T11:39:08.085+08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Software Development</category><title>The Grails Activiti Plugin 5.3 Released</title><description>I would like to announce the Grails Activiti Plugin 5.3 Released.&lt;br /&gt;
&lt;br /&gt;
Grails Activiti Plugin was created to integrate Activiti BPM Suite and workflow system to Grails Framework.&lt;br /&gt;
With the Grails Activiti Plugin, workflow application can be created at your fingertips!&lt;br /&gt;
&lt;br /&gt;
What's New:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Upgrade Activiti's jar files and examples to 5.3. Ported the Activiti's examples from JUnit3 to JUnit4. &lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
Find Out More:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Project Site and Documentation: &lt;a href="http://code.google.com/p/grails-activiti-plugin/"&gt;http://code.google.com/p/grails-activiti-plugin/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Support: &lt;a href="http://code.google.com/p/grails-activiti-plugin/issues/list"&gt;http://code.google.com/p/grails-activiti-plugin/issues/list&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Discussion Forum: &lt;a href="http://groups.google.com/group/grails-activiti-plugin"&gt;http://groups.google.com/group/grails-activiti-plugin&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1662570443648714289-6905055909325442382?l=limcheekin.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/limcheekin/~4/S2xZiHSZ95k" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/limcheekin/~3/S2xZiHSZ95k/grails-activiti-plugin-53-released.html</link><author>noreply@blogger.com (Lim Chee Kin)</author><thr:total>0</thr:total><feedburner:origLink>http://limcheekin.blogspot.com/2011/03/grails-activiti-plugin-53-released.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-1662570443648714289.post-37638251985964151</guid><pubDate>Tue, 01 Mar 2011 15:36:00 +0000</pubDate><atom:updated>2011-03-08T23:35:37.053+08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Software Development</category><title>Looking For Developers Working On Open Source Project In Malaysia</title><description>On last Thursday, 24 February 2011 I sent out the following message with subject "Looking for Web Application Developer" to 80 friends of mine who working in IT industry via Facebook Messages:&lt;br /&gt;&lt;br /&gt;&lt;table style="border: 1px solid white; padding: 1em;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;Hi there,&lt;br /&gt;&lt;br /&gt;I am looking for Web Application Developer experienced in JQuery (http://jquery.com/), Subversion (SVN) and optionally server-side technology such as Grails (http://www.grails.org/), PHP, ASP or etc. to work on an open source project.&lt;br /&gt;&lt;br /&gt;If you are interested, I can be contacted via e-mail: myemail@mydomain.com or my mobile: +6012 9999 999.&lt;br /&gt;&lt;br /&gt;Otherwise, If you know anyone who have the development skills mentioned above included students, junior developers, experience developers or whoever involved in web development or working in IT industry, kindly help me forward this message to them.&lt;br /&gt;&lt;br /&gt;Thank you very much.&lt;br /&gt;&lt;br /&gt;Best regards,&lt;br /&gt;Chee Kin &lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;Also, I personally contacted 25 people out of 80 via one-to-one instant messaging or phone conversation and managed to get their agreement to help me forward the message to their friends who working in IT industry. Highly appreciation to 25 helpful friends, thank you so much for your support and effort to send out the message.&lt;br /&gt;&lt;br /&gt;The same message also published or posted to two popular Malaysia Open Source Developer Communities: jobs-list@lists.foss.org.my (Mailing List) and http://groups.google.com/group/osdcmy-list (Online Group), which pending for approval by moderator at the moment.&lt;br /&gt;&lt;br /&gt;Few close friends of mine commented that it is tough to get local developers working on open source project based on common interest and voluntary basis, I tend to agree with their comment. But I insisted to try it out and interested to see how things turn out. We'll see...&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Edited on 08 March 2011:&lt;br /&gt;&lt;/span&gt;&lt;span&gt;Highly welcome to experience developers below who agreed to join my &lt;a href="http://limcheekin.blogspot.com/p/my-grails-plugins.html"&gt;open source projects&lt;/a&gt;:&lt;br /&gt;&lt;/span&gt;&lt;ol&gt;&lt;li&gt;Eswara from India (based in U.S at the moment), joined the &lt;a href="http://code.google.com/p/jquery-form-builder-plugin/"&gt;JQuery Form Builder Plugin&lt;/a&gt; project. &lt;/li&gt;&lt;li&gt;Liu Chao from Shang Hai, China, joined the &lt;a href="http://code.google.com/p/jquery-validation-ui-plugin/"&gt;JQuery Validation UI Plugin&lt;/a&gt; project.&lt;/li&gt;&lt;li&gt;Yang Qing from Beijing, China, joined the &lt;a href="http://code.google.com/p/jquery-form-builder-plugin/"&gt;JQuery Form Builder Plugin&lt;/a&gt; project and &lt;a href="http://code.google.com/p/grails-form-builder-plugin/"&gt;Grails Form Builder Plugin&lt;/a&gt;&lt;span style="text-decoration: underline;"&gt;&lt;/span&gt; project.&lt;/li&gt;&lt;/ol&gt;Where are you, my dear Malaysian developers?&lt;br /&gt;&lt;br /&gt;I'd love to hear your comments for any great ideas on recruiting developers working on open source project.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1662570443648714289-37638251985964151?l=limcheekin.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/limcheekin/~4/8u9vXsyI_O8" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/limcheekin/~3/8u9vXsyI_O8/looking-for-developers-working-on-open.html</link><author>noreply@blogger.com (Lim Chee Kin)</author><thr:total>2</thr:total><feedburner:origLink>http://limcheekin.blogspot.com/2011/03/looking-for-developers-working-on-open.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-1662570443648714289.post-6854595254935813289</guid><pubDate>Tue, 22 Feb 2011 05:22:00 +0000</pubDate><atom:updated>2011-02-25T00:08:14.556+08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Entrepreneurship</category><title>Crossing the Chasm in Me</title><description>&lt;span style="color: black;"&gt;&lt;span style="color: #0163b3;"&gt; &lt;/span&gt;&lt;/span&gt;I am at a cross road now, if you are frequent reader of my blog (Thanks for reading), even the title of my blog is "Thoughts of Customer Development, Entrepreneurship, Project Management and Software Development", many of my blog posts still focus on Software Development topic, I am still very much a product development guy even gone through so many &lt;a href="http://limcheekin.blogspot.com/p/business-books.html"&gt;business books&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
Is there any thing wrong with product development approach to launch a startup? I think this approach is not wrong, but a very costly approach when things getting ugly. For some products, it taken too long time and need too much efforts (could be few months) even to produce a &lt;a href="http://www.startuplessonslearned.com/2009/08/minimum-viable-product-guide.html"&gt;minimum viable product&lt;/a&gt;. By the time you find out that it is not the product customer will pay to use it after &lt;a href="http://www.startuplessonslearned.com/2009/04/validated-learning-about-customers.html"&gt;customer validation&lt;/a&gt; phase, you may running out of iterations even to &lt;a href="http://www.startuplessonslearned.com/2009/06/pivot-dont-jump-to-new-vision.html"&gt;pivot&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
I launched &lt;a href="http://processcanvas.com/"&gt;ProcessCanvas.com: A workflow builder that allow you to create online workflow in minutes&lt;/a&gt; two months ago to see whether is there enough customers need this kind of product. I launch this product is the result of  &lt;a href="http://blog.processcanvas.com/2010/12/whats-your-problem.html"&gt;Scratch My Own Itch&lt;/a&gt;, it is the first hand experience I gained over the past two years working as Business Analyst and Solution Consultant. ProcessCanvas.com is targeted to the following customer segments:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;IT Consultant: Use it as fast prototyping tool to create workflow application demo/prototype.&lt;/li&gt;
&lt;li&gt;Business Analyst/Business Process (ISO) Consultant: Create production workflow application for their customers.&lt;/li&gt;
&lt;li&gt;Subject Matter Experts from different industries such as Insurance (Claim Mgmt.), Medical (Case Mgmt.), Customer Service (Help Desk) and Small Business Owner to create the workflow application by themselves.&lt;/li&gt;
&lt;/ul&gt;Sadly tell you that the result of the launch is far from satisfactory (if not crying), I only received two e-mail addresses that interested in production launch of ProcessCanvas.com so far (where the e-mail sign up box is put at the end of process wizard by intention to ensure the user explored and used the tool prior to submit their e-mail address) out of 58 visits tracked by Google Analytics (I think actual visits lesser than 58 if excluding my own visits).&lt;br /&gt;
&lt;br /&gt;
I had invested about 4 weeks to produce the &lt;a href="http://processcanvas.com/wizard/create"&gt;process wizard&lt;/a&gt; and &lt;a href="http://blog.processcanvas.com/2010/12/processcanvascom-go-online.html"&gt;introductory screencasts&lt;/a&gt; (excluded time spent to produce the &lt;a href="http://code.google.com/p/grails-activiti-plugin/"&gt;Grails Activiti Plugin&lt;/a&gt;), since then I invested another 7 weeks to produce the &lt;a href="http://limcheekin.blogspot.com/2011/02/jquery-and-grails-form-builder-plugin.html"&gt;Form Builder plugin&lt;/a&gt; which just released version 0.1 on yesterday. It is foreseeable that many more weeks required in development to produce the working minimum viable product that support multi-tenancy and ability to create working workflow application.&lt;br /&gt;
&lt;br /&gt;
I give myself a &lt;i&gt;pause&lt;/i&gt; now from continuing time investment into ProcessCanvas.com and step back to review what had I done &lt;i&gt;wrong&lt;/i&gt; so far：&lt;br /&gt;
&lt;ol&gt;&lt;li&gt;Invested too much time and effort to the product before knowing whether the product have market size that big enough to build a business on it.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Customers may not have the same problems that I faced. Even they faced the same problems, the problems may not pain enough until no choice they have to pay for the product to solve it. Over passionate about the solution without knowing it is real problem to paying customers is a problem by itself. &lt;/li&gt;
&lt;li&gt;Do I know how to reach the targeted customers? Frankly speaking, I have no idea besides posting the release news and announcement to the BPM (Business Process Management) community and hanging there (Developer is poor on marketing).&lt;/li&gt;
&lt;/ol&gt;Some questions cracking my mind:&lt;br /&gt;
&lt;ol&gt;&lt;li&gt;How do I find out a product have big enough market size to build a viable business on it, with the least effort that maximize &lt;a href="http://www.startuplessonslearned.com/2009/04/validated-learning-about-customers.html"&gt;validated learning&lt;/a&gt;? &lt;/li&gt;
&lt;li&gt;Is the vision too big and too broad to fit into my goal as &lt;a href="http://www.webdoh.com/micropreneur.htm"&gt;Micropreneur&lt;/a&gt;?&lt;/li&gt;
&lt;li&gt;Is the product too generic? If the answer is yes, how do I find a niche and pivot toward it?&lt;/li&gt;
&lt;li&gt;Are &lt;a href="http://blog.processcanvas.com/2010/12/whats-your-problem.html"&gt;these problems&lt;/a&gt; worth solving?&lt;/li&gt;
&lt;li&gt;Am I targeted the right customer segments?&lt;/li&gt;
&lt;/ol&gt;Next, I need to perform some finding and reading to find out the corrective actions to make the points listed above clear enough to further support my next decisions and actions. If failing is inevitable in my first web startup in order for me to learn, I wish to fail faster and lighter so that I can get over it quickly and start all over again in shorter time.&lt;br /&gt;
&lt;br /&gt;
What do you think? Any feedback is very much appreciated.&lt;br /&gt;
&lt;ul&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1662570443648714289-6854595254935813289?l=limcheekin.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/limcheekin/~4/rkzP0p04Rjg" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/limcheekin/~3/rkzP0p04Rjg/crossing-chasm-in-me.html</link><author>noreply@blogger.com (Lim Chee Kin)</author><thr:total>0</thr:total><feedburner:origLink>http://limcheekin.blogspot.com/2011/02/crossing-chasm-in-me.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-1662570443648714289.post-3979684674122868620</guid><pubDate>Mon, 21 Feb 2011 06:45:00 +0000</pubDate><atom:updated>2011-02-21T19:08:36.013+08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Software Development</category><title>JQuery and Grails Form Builder Plugin 0.1 Coordinated Released</title><description>I would like to announce the JQuery and Grails Form Builder Plugin 0.1 Coordinated Released. This announcement is for coordinated released of two Grails plugins: JQuery Form Builder Plugin and Grails Form Builder Plugin. JQuery Form Builder Plugin is client-side implementation of the Form Builder using JQuery and JQuery UI libraries, where Grails Form Builder Plugin depends on JQuery Form Builder Plugin and implement server-side of the Form Builder.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;span style="font-size: small;"&gt;JQuery Form Builder Plugin&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
What's New:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Initial release of form builder with Plain Text and Single Line Text (Text Box) field&lt;/li&gt;
&lt;li&gt;Creating online forms that support multilingual (English and Simplified Chinese only)&lt;/li&gt;
&lt;li&gt;Add field by click or drag and drop&lt;/li&gt;
&lt;li&gt;Field ordering by drag and drop&lt;/li&gt;
&lt;li&gt;Ready for server-side integration&lt;/li&gt;
&lt;/ul&gt;What's Next:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Number (Digit &amp;amp; Decimal) and E-mail Address field implementation.&lt;/li&gt;
&lt;/ul&gt;Find Out More:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Plugin Documentation: &lt;a href="http://grails.org/plugin/jquery-form-builder"&gt;http://grails.org/plugin/jquery-form-builder&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Live Demo: &lt;a href="http://jquery-form-builder-plugin.appspot.com/"&gt;http://jquery-form-builder-plugin.appspot.com/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Project Site and Documentation: &lt;a href="http://code.google.com/p/jquery-form-builder-plugin/"&gt;http://code.google.com/p/jquery-form-builder-plugin/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Support: &lt;a href="http://code.google.com/p/jquery-form-builder-plugin/issues/list"&gt;http://code.google.com/p/jquery-form-builder-plugin/issues/list&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Discussion Forum: &lt;a href="http://groups.google.com/group/jquery-form-builder-plugin"&gt;http://groups.google.com/group/jquery-form-builder-plugin&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;b&gt;&lt;span style="font-size: small;"&gt;Grails Form Builder Plugin&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
What's New:&lt;b&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt; &lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Same with JQuery Form Builder Plugin with additional two more items below:&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Initial release of Form Viewer that consists of list, create, edit and show screen with multilingual support (English and Simplified Chinese only)&lt;/li&gt;
&lt;li&gt;Tested with Grails 1.2.5, Grails 1.3.6, Tomcat 6.0.29 and MySQL 5.1.41.&amp;nbsp; &lt;/li&gt;
&lt;/ul&gt;What's Next:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt; Number (Digit &amp;amp; Decimal) and E-mail Address field implementation&lt;/li&gt;
&lt;li&gt;In Form Viewer listing screen, support search by non-String property such as Number field&lt;/li&gt;
&lt;li&gt;Field removal support, especially for non-nullable property/column&lt;/li&gt;
&lt;li&gt;Improve error handling when form instance not found in FormViewerController&lt;/li&gt;
&lt;/ul&gt;Find Out More:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Project Site and Documentation: &lt;a href="http://code.google.com/p/grails-form-builder-plugin/"&gt;http://code.google.com/p/grails-form-builder-plugin/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Support: &lt;a href="http://code.google.com/p/grails-form-builder-plugin/issues/list"&gt;http://code.google.com/p/grails-form-builder-plugin/issues/list&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Discussion Forum: &lt;a href="http://groups.google.com/group/grails-form-builder-plugin"&gt;http://groups.google.com/group/grails-form-builder-plugin &lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1662570443648714289-3979684674122868620?l=limcheekin.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/limcheekin/~4/fklLuJTpIJE" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/limcheekin/~3/fklLuJTpIJE/jquery-and-grails-form-builder-plugin.html</link><author>noreply@blogger.com (Lim Chee Kin)</author><thr:total>3</thr:total><feedburner:origLink>http://limcheekin.blogspot.com/2011/02/jquery-and-grails-form-builder-plugin.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-1662570443648714289.post-7481790147488170437</guid><pubDate>Sat, 19 Feb 2011 12:52:00 +0000</pubDate><atom:updated>2011-02-20T23:46:25.947+08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Software Development</category><title>Grails Dynamic Domain Class Plugin 0.3 Released - Create domain class on-the-fly</title><description>&lt;span class="Apple-style-span" style="border-collapse: collapse; font-family: Verdana,Geneva,Helvetica,Arial,sans-serif; font-size: 13px;"&gt;I would like to announce the Grails Dynamic Domain Class Plugin 0.3 Released.&lt;br /&gt;
&lt;br /&gt;
The Dynamic Domain Class plugin enabled Grails application to create domain class dynamically when application is running.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="border-collapse: collapse; font-family: Verdana,Geneva,Helvetica,Arial,sans-serif; font-size: 13px;"&gt;&lt;br /&gt;
What's New:&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="border-collapse: separate; font-family: arial,sans-serif;"&gt;The demo application no longer install automatically. Created&amp;nbsp;&lt;tt style="font-size: 13px;"&gt;install-ddc-demo&lt;/tt&gt;&amp;nbsp;script to install the demo application manually.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
Find Out More:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Project Site and Documentation:&amp;nbsp;&lt;a href="http://code.google.com/p/grails-dynamic-domain-class-plugin/" link="external" rel="nofollow" style="color: #0000ee; font-size: 1em;" target="_top"&gt;http://code.google.com/p/grails-dynamic-domain-class-plugin/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Support:&amp;nbsp;&lt;a href="http://code.google.com/p/grails-dynamic-domain-class-plugin/issues/list" link="external" rel="nofollow" style="color: #0000ee; font-size: 1em;" target="_top"&gt;http://code.google.com/p/grails-dynamic-domain-class-plugin/issues/list&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Discussion Forum:&amp;nbsp;&lt;a href="http://groups.google.com/group/grails-dynamic-domain-class-plugin" link="external" rel="nofollow" style="color: #0000ee; font-size: 1em;" target="_top"&gt;http://groups.google.com/group/grails-dynamic-domain-class-plugin&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1662570443648714289-7481790147488170437?l=limcheekin.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/limcheekin/~4/g-bE989Pbaw" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/limcheekin/~3/g-bE989Pbaw/grails-dynamic-domain-class-plugin-03.html</link><author>noreply@blogger.com (Lim Chee Kin)</author><thr:total>0</thr:total><feedburner:origLink>http://limcheekin.blogspot.com/2011/02/grails-dynamic-domain-class-plugin-03.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-1662570443648714289.post-1565763091356686844</guid><pubDate>Fri, 18 Feb 2011 10:20:00 +0000</pubDate><atom:updated>2011-02-20T23:46:54.426+08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Software Development</category><title>JQuery Validation UI Plugin 1.2 Released - Client Side Validation without writing JavaScript</title><description>I would like to announce the JQuery Validation UI Plugin 1.2 Released. &lt;br /&gt;
&lt;br /&gt;
The JQuery Validation UI Plugin will bring Javascript Validator,  Remote Constraints, jQuery Validation plugin and qTip (jQuery tooltip  plugin) under the same root and deliver comprehensive client-side  validation solution. &lt;br /&gt;
&lt;br /&gt;
What's New: &lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Implemented 3 new custom constraints from jquery validation additional  methods: alphanumeric, letterswithbasicpunc and lettersonly. (&lt;tt&gt;jqueryValidation.additionalMethods&lt;/tt&gt; in Config.groovy need to set to &lt;tt&gt;true&lt;/tt&gt; to use these new custom constraints.) &lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
Find Out More: &lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Project Site and Documentation: &lt;a href="http://code.google.com/p/jquery-validation-ui-plugin/" rel="nofollow" target="_top"&gt;http://code.google.com/p/jquery-validation-ui-plugin/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Support: &lt;a href="http://code.google.com/p/jquery-validation-ui-plugin/issues/list" rel="nofollow" target="_top"&gt;http://code.google.com/p/jquery-validation-ui-plugin/issues/list&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Discussion Forum: &lt;a href="http://groups.google.com/group/jquery-validation-ui-plugin" rel="nofollow" target="_top"&gt;http://groups.google.com/group/jquery-validation-ui-plugin&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1662570443648714289-1565763091356686844?l=limcheekin.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/limcheekin/~4/Ooxl6NoqGi4" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/limcheekin/~3/Ooxl6NoqGi4/jquery-validation-ui-plugin-12-released.html</link><author>noreply@blogger.com (Lim Chee Kin)</author><thr:total>0</thr:total><feedburner:origLink>http://limcheekin.blogspot.com/2011/02/jquery-validation-ui-plugin-12-released.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-1662570443648714289.post-2652717014044283800</guid><pubDate>Tue, 08 Feb 2011 06:30:00 +0000</pubDate><atom:updated>2011-02-20T23:47:17.271+08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Software Development</category><title>Language Specific Font Support in JQuery Form Builder plugin</title><description>Just completed re-structuring of the plugin to support &lt;i&gt;"Each language can have it's own font family"&lt;/i&gt;. Please see &lt;a href="http://limcheekin.blogspot.com/2011/02/typography-should-jquery-form-builder.html"&gt;previous post&lt;/a&gt; for reasoning behind. Below is the outcome of Form Settings tab after re-structuring (previous version on the left).&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;a href="http://4.bp.blogspot.com/_BJDih4IZC2E/TVDh4walyaI/AAAAAAAAAGg/zvB1kuNlm5I/s1600/languageSupport.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="263" src="http://4.bp.blogspot.com/_BJDih4IZC2E/TVDh4walyaI/AAAAAAAAAGg/zvB1kuNlm5I/s400/languageSupport.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;If you can think of better way to layout the fields of Form Settings tab, I am happy to hear from you!&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1662570443648714289-2652717014044283800?l=limcheekin.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/limcheekin/~4/yOrIbaerYlE" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/limcheekin/~3/yOrIbaerYlE/language-specific-font-support-in.html</link><author>noreply@blogger.com (Lim Chee Kin)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/_BJDih4IZC2E/TVDh4walyaI/AAAAAAAAAGg/zvB1kuNlm5I/s72-c/languageSupport.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://limcheekin.blogspot.com/2011/02/language-specific-font-support-in.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-1662570443648714289.post-4376444559837062132</guid><pubDate>Wed, 02 Feb 2011 04:46:00 +0000</pubDate><atom:updated>2011-02-20T23:47:36.301+08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Software Development</category><title>The Grails Activiti Plugin 5.2 Released</title><description>I would like to announce the Grails Activiti Plugin 5.2 Released.&lt;br /&gt;
&lt;br /&gt;
Grails Activiti Plugin was created to integrate Activiti BPM Suite and workflow system to Grails Framework.&lt;br /&gt;
With the Grails Activiti Plugin, workflow application can be created at your fingertips!&lt;br /&gt;
&lt;br /&gt;
What's New:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Update Activiti's jar files to 5.2.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Support disable activiti engine by specify system property &lt;tt&gt;-DdisabledActiviti=true&lt;/tt&gt;. Eg. &lt;tt&gt;grails -DdisabledActiviti=true run-app&lt;/tt&gt;.&amp;nbsp;&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Fixed &lt;tt&gt;java.lang.NoClassDefFoundError&lt;/tt&gt; in unit test execution (&lt;tt&gt;grails test-app -unit&lt;/tt&gt;) after the activiti plugin installed.&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
Find Out More:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Project Site and Documentation: &lt;a href="http://code.google.com/p/grails-activiti-plugin/"&gt;http://code.google.com/p/grails-activiti-plugin/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Support: &lt;a href="http://code.google.com/p/grails-activiti-plugin/issues/list"&gt;http://code.google.com/p/grails-activiti-plugin/issues/list&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Discussion Forum: &lt;a href="http://groups.google.com/group/grails-activiti-plugin"&gt;http://groups.google.com/group/grails-activiti-plugin&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1662570443648714289-4376444559837062132?l=limcheekin.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/limcheekin/~4/VmkY6opI1fc" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/limcheekin/~3/VmkY6opI1fc/grails-activiti-plugin-52-released.html</link><author>noreply@blogger.com (Lim Chee Kin)</author><thr:total>0</thr:total><feedburner:origLink>http://limcheekin.blogspot.com/2011/02/grails-activiti-plugin-52-released.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-1662570443648714289.post-1637042160962648729</guid><pubDate>Tue, 01 Feb 2011 09:29:00 +0000</pubDate><atom:updated>2011-02-20T23:47:51.493+08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Software Development</category><title>Typography: Should JQuery Form Builder Plugin Support Font Family By Language?</title><description>&lt;b&gt;&lt;span style="font-size: large;"&gt;Overview&lt;/span&gt;&lt;/b&gt; &lt;br /&gt;
These few days, there is a pending decision in my mind that need to be made before I continue the development of new field of the JQuery Form Builder Plugin: Single Line Text field. As mentioned in the title of the post:&lt;br /&gt;
&lt;blockquote&gt;&lt;b&gt;Should JQuery Form Builder Plugin support font family by language? Each language has it's own font family.&lt;/b&gt;&lt;/blockquote&gt;The 1.0 release of plugin is targeted to support &lt;a href="http://www.internetworldstats.com/stats7.htm"&gt;top 2 languages of the Internet&lt;/a&gt; (more can be added later) such as English and Chinese. This decision is crucial as the current implementation of the plugin was support one font family for all languages, if I made up my mind to support each language has it's own font family, I will need to revise the structure of form settings and field settings of the Plain Text field, not a minor restructuring.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;span style="font-size: large;"&gt;Findings&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
As typography is a new topic to me, I goggle it and done some reading. I heard of &lt;a href="http://code.google.com/apis/webfonts/"&gt;Google Font API&lt;/a&gt; and&amp;nbsp; &lt;a href="http://code.google.com/apis/webfonts/docs/webfont_loader.html"&gt;WebFont Loader&lt;/a&gt;, but I curious to see is there other alternatives. First I found &lt;a href="http://cufon.shoqolate.com/generate/" rel="nofollow"&gt;Cufon&lt;/a&gt;, then follow by &lt;a href="http://typeface.neocracy.org/" rel="nofollow"&gt;Typeface.js&lt;/a&gt;, both of these are great web fonts technology, but they are not suitable for web form use as both technology using HTML5 canvas and VML. Also, Robert has &lt;a href="http://stackoverflow.com/questions/1349040/can-cufon-style-form-text-input-and-textarea"&gt;good points&lt;/a&gt; why it is not for input components. Nevertheless, you may consider these technologies if you use it for presentation purpose only, you can learn more about these technologies in this discussion: &lt;a href="http://stackoverflow.com/questions/692990/sifr-vs-cufon-vs-typeface-js"&gt;SIFR vs Cufon vs Typeface.js&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
Many thanks to editorial team of LogoTalks written a post related to typography with title "&lt;a href="http://logotalks.com/2010/09/08/from-typekit-to-google-font-api-the-road-to-web-fonts/"&gt;From TypeKit To Google Font API: The Road To Web Fonts&lt;/a&gt;" provides great introduction of web fonts. From the post, it was the first time I saw the @font-face CSS rule. After few more rounds of reading, I find out that it is the way to go as it is web standard and supported by browser natively (even not all browsers supported yet). Thanks to Paul done a detail write up about &lt;a href="http://paulirish.com/2009/bulletproof-font-face-implementation-syntax/"&gt;@font-face&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
I can find out where to get or buy web fonts from these two posts: &lt;a href="http://logotalks.com/2010/09/08/from-typekit-to-google-font-api-the-road-to-web-fonts/"&gt;From TypeKit To Google Font API: The Road To Web Fonts&lt;/a&gt; and &lt;a href="http://nicewebtype.com/notes/2009/10/20/where-to-get-web-fonts/"&gt;Where to get web fonts&lt;/a&gt;. The following are some sites offer free web fonts:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.fontsquirrel.com/"&gt;http://www.fontsquirrel.com/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.theleagueofmoveabletype.com/"&gt;http://www.theleagueofmoveabletype.com/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://kernest.com/"&gt;http://kernest.com/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;Conclusion&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;span style="font-size: large;"&gt;&lt;span style="font-size: small;"&gt;From findings above, it is clear to me that JQuery Form Builder Plugin &lt;b&gt;should&lt;/b&gt; support font family by language especially Asian languages such as Chinese, Japanese and Korean should use font family different from English. The solution will be Google Font API and WebFont Loader (as it support &lt;a href="http://code.google.com/apis/webfonts/docs/webfont_loader.html#Specifying"&gt;custom provider&lt;/a&gt;, web fonts can be hosted in own server). Thanks to Cedric Dugas written a &lt;a href="http://www.position-absolute.com/articles/introduction-to-the-google-webfont-loader-and-how-to-avoid-font-face-text-flickering-with-it/"&gt;great introductory post&lt;/a&gt; about &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: large;"&gt;&lt;span style="font-size: small;"&gt;WebFont Loader. Lastly, thanks to &lt;/span&gt;&lt;/span&gt;James Brocklehurst created a &lt;a href="http://www.mightymeta.co.uk/web-safe-fonts-cheat-sheet-v-3-with-font-face-fonts-and-os-breakdown/"&gt;Web Safe Fonts Cheat Sheet &lt;/a&gt;that will be very helpful for later improvement of the font picker plugin. Do you have better solution?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1662570443648714289-1637042160962648729?l=limcheekin.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/limcheekin/~4/4eHVx-uaLfU" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/limcheekin/~3/4eHVx-uaLfU/typography-should-jquery-form-builder.html</link><author>noreply@blogger.com (Lim Chee Kin)</author><thr:total>0</thr:total><feedburner:origLink>http://limcheekin.blogspot.com/2011/02/typography-should-jquery-form-builder.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-1662570443648714289.post-1520946524949809714</guid><pubDate>Thu, 27 Jan 2011 10:29:00 +0000</pubDate><atom:updated>2011-02-20T23:49:07.314+08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Software Development</category><title>FreeMarker vs. GSP for Dynamic Template Rendering, Revisited.</title><description>&lt;div&gt;First of all, many thanks to valuable comments and inputs given in my &lt;a href="http://limcheekin.blogspot.com/2011/01/freemarker-vs-gsp-for-dynamic-template.html"&gt;previous blog post&lt;/a&gt; about this topic, &lt;a href="http://grails.1312388.n4.nabble.com/FreeMarker-vs-GSP-for-Dynamic-Template-Rendering-td3213939.html"&gt;grails forum&lt;/a&gt; and &lt;a href="http://stackoverflow.com/questions/4669552/freemarker-vs-gsp-for-dynamic-template-rendering"&gt;stackoverflow.com&lt;/a&gt;. Based on your comments and inputs I find out that the benchmarking test can be divided to 3 parts: Template Creation only, Rendering only and Both (Template Creation and Rendering). So, I update the benchmark application to support these 3 types of test. You can see the screen of updated benchmark application below:&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_BJDih4IZC2E/TUE0RSG4BDI/AAAAAAAAAGY/6jF_o4pVxEg/s1600/2011-01-27_16-59-20.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="123" src="http://1.bp.blogspot.com/_BJDih4IZC2E/TUE0RSG4BDI/AAAAAAAAAGY/6jF_o4pVxEg/s640/2011-01-27_16-59-20.jpg" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;The Result&lt;/b&gt;&lt;/div&gt;&lt;table style="border: 1px solid white; width: 100%;"&gt;&lt;tbody&gt;
&lt;tr&gt;   &lt;th&gt;&lt;/th&gt;   &lt;th&gt;Template Creation&lt;/th&gt;   &lt;th&gt;Rendering&lt;/th&gt;   &lt;th&gt;Both&lt;/th&gt; &lt;/tr&gt;
&lt;tr valign="top"&gt;   &lt;td&gt;&lt;b&gt;FreeMarker&lt;/b&gt;&lt;/td&gt;   &lt;td&gt;17,981ms&lt;/td&gt;   &lt;td&gt;29,909ms&lt;/td&gt;   &lt;td&gt;45,868ms&lt;/td&gt; &lt;/tr&gt;
&lt;tr valign="top"&gt;   &lt;td&gt;&lt;b&gt;GSP&lt;/b&gt;&lt;/td&gt;   &lt;td&gt;In iteration 773, OutOfMemoryError: PermGen space&lt;/td&gt;   &lt;td&gt;23,569ms&lt;/td&gt;   &lt;td&gt;In iteration 669, OutOfMemoryError: PermGen space&lt;/td&gt; &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;
The table above is the results of the test executed in 1000 times. It is clear that GSP is the winner for &lt;i&gt;Rendering&lt;/i&gt;, but &lt;i&gt;Template Creation&lt;/i&gt; and &lt;i&gt;Both&lt;/i&gt; is not comparable as GSP facing OutOfMemoryError.&lt;br /&gt;
&lt;br /&gt;
So, I re-run the tests&amp;nbsp; for 500 times, please see the results below:&lt;br /&gt;
&lt;table style="border: 1px solid white; width: 100%;"&gt;&lt;tbody&gt;
&lt;tr&gt;   &lt;th&gt;&lt;/th&gt;   &lt;th&gt;Template Creation&lt;/th&gt;   &lt;th&gt;Rendering&lt;/th&gt;   &lt;th&gt;Both&lt;/th&gt; &lt;/tr&gt;
&lt;tr valign="top"&gt;   &lt;td&gt;&lt;b&gt;FreeMarker&lt;/b&gt;&lt;/td&gt;   &lt;td&gt;15,885ms&lt;/td&gt;   &lt;td&gt;33,279ms&lt;/td&gt;   &lt;td&gt;47,032ms&lt;/td&gt; &lt;/tr&gt;
&lt;tr valign="top"&gt;   &lt;td&gt;&lt;b&gt;GSP&lt;/b&gt;&lt;/td&gt;   &lt;td&gt;379,783ms&lt;/td&gt;   &lt;td&gt;23,346ms&lt;/td&gt;   &lt;td&gt;420,874ms&lt;/td&gt; &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;
&lt;b&gt;Edited on 28-Jan-2011:&lt;/b&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Running &lt;i&gt;Both &lt;/i&gt;(Template Creation and Rendering) 500 times in Tomcat 7.0.6, FreeMarker take&lt;span id="freemarkerResult"&gt;s 23,291ms &lt;/span&gt;and GSP takes &lt;span id="gspResult"&gt;321,801ms.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;Running &lt;i&gt;Rendering&lt;/i&gt; tests 5,000 times using &lt;i&gt;grails prod run-war&lt;/i&gt;, FreeMarker takes &lt;span id="freemarkerRenderingResult"&gt;177,624ms and GSP takes &lt;/span&gt;&lt;span id="gspRenderingResult"&gt;142,105ms&lt;/span&gt;.&lt;/li&gt;
&lt;/ul&gt;&lt;div style="margin: 0px;"&gt;&lt;b&gt;Edited on 29-Jan-2011:&lt;/b&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;Running&amp;nbsp;&lt;i&gt;Both&amp;nbsp;&lt;/i&gt;(Template Creation and Rendering) 5,000 times in Tomcat 7.0.6, FreeMarker take&lt;span id="freemarkerResult"&gt;s 174,828ms on&amp;nbsp;first time, and I re-run the same test without restart the Tomcat, it takes 161,724ms&lt;/span&gt;&lt;span id="gspResult"&gt;. (I did tried to run the test 10,000 times, facing java.lang.OutOfMemoryError: Java heap space in iteration 5,442.)&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;b&gt;How I Run The Benchmark Tests&lt;/b&gt;&lt;br /&gt;
I run the benchmarking tests with the following steps:&lt;br /&gt;
&lt;ol&gt;&lt;li&gt;Start the application using &lt;b&gt;grails prod run-war&lt;/b&gt;.&lt;/li&gt;
&lt;li&gt;After the application was started, open or refresh the URL &lt;a href="http://localhost:8080/freemarker-vs-gsp/benchmark/index"&gt;http://localhost:8080/freemarker-vs-gsp/benchmark/index&lt;/a&gt; in browser.&lt;/li&gt;
&lt;li&gt;Click on "Template Creation" link and wait for test completion and shutdown the application. Do the same for remaining links, start from step 1.&lt;/li&gt;
&lt;/ol&gt;&lt;b&gt;The Environment&lt;/b&gt;&lt;br /&gt;
Operating System: Puppy Linux 4.3.1&lt;br /&gt;
JDK:&amp;nbsp; 1.6.0_20&lt;br /&gt;
Grails: 1.3.6&lt;br /&gt;
Plugins: freemarker 0.3 and freemarker-tags 0.5.8&lt;br /&gt;
Processor: Intel Pentium M 1.5GHz&lt;br /&gt;
Memory: 1285MB &lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;The Configuration&lt;/b&gt;&lt;br /&gt;
&lt;code&gt; grails.plugins.freemarkertags = [&lt;br /&gt;
&amp;nbsp;&amp;nbsp; autoImport: false,        &lt;br /&gt;
&amp;nbsp;&amp;nbsp; asSharedVariables: true&lt;br /&gt;
]&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
&lt;b&gt;Edited on 29-Jan-2011: &lt;/b&gt;defineFunctions configuration no longer supported, so I remove it, with the updated source code below&lt;span class="Apple-style-span" style="font-family: monospace;"&gt;.&lt;/span&gt;&lt;br /&gt;
&lt;b&gt;&lt;br /&gt;
&lt;/b&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: monospace;"&gt;&lt;/span&gt;&lt;b&gt;The Source Code&lt;/b&gt;&lt;br /&gt;
You can &lt;a href="http://grails-form-builder-plugin.googlecode.com/files/freemarker-vs-gsp2.zip"&gt;download&lt;/a&gt; the complete source code of the benchmark application and run it yourself. If you run the tests, please post the test results under comment section.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Conclusion&lt;/b&gt;&lt;br /&gt;
If your application required dynamic rendering only, go for GSP, otherwise FreeMarker is a better option.&lt;b&gt;&lt;br /&gt;
&lt;/b&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1662570443648714289-1520946524949809714?l=limcheekin.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/limcheekin/~4/GohJkP8bqWk" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/limcheekin/~3/GohJkP8bqWk/freemarker-vs-gsp-for-dynamic-template_27.html</link><author>noreply@blogger.com (Lim Chee Kin)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/_BJDih4IZC2E/TUE0RSG4BDI/AAAAAAAAAGY/6jF_o4pVxEg/s72-c/2011-01-27_16-59-20.jpg" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://limcheekin.blogspot.com/2011/01/freemarker-vs-gsp-for-dynamic-template_27.html</feedburner:origLink></item></channel></rss>

