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

<channel>
	<title>Bryan Tsai &#187; utility</title>
	<atom:link href="http://www.bryantsai.com/archives/tag/utility/feed" rel="self" type="application/rss+xml" />
	<link>http://www.bryantsai.com</link>
	<description>I need to think ...</description>
	<lastBuildDate>Sun, 31 Jan 2010 05:44:36 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Password Nightmare</title>
		<link>http://www.bryantsai.com/archives/password-nightmare.html</link>
		<comments>http://www.bryantsai.com/archives/password-nightmare.html#comments</comments>
		<pubDate>Tue, 13 Feb 2007 09:10:14 +0000</pubDate>
		<dc:creator>bryan</dc:creator>
				<category><![CDATA[security]]></category>
		<category><![CDATA[utility]]></category>

		<guid isPermaLink="false">http://www.bryantsai.com/archives/password-nightmare.html</guid>
		<description><![CDATA[<p>Almost every useful/interesting web site requires a password (Digg, del.icio.us, you name it). If you want to play with them, you&#8217;ll need to register. To register, you&#8217;ll need a password. It&#8217;s just the way it is on the net these days. However, it&#8217;s a nightmare considering the number of my daily visited web sites. Well, [...]</p>]]></description>
			<content:encoded><![CDATA[<p>Almost every useful/interesting web site requires a password (<a href="http://digg.com">Digg</a>, <a href="http://del.icio.us">del.icio.us</a>, you name it). If you want to play with them, you&#8217;ll need to register. To register, you&#8217;ll need a password. It&#8217;s just the way it is on the net these days.</p>

<p>However, it&#8217;s a nightmare considering the number of my daily visited web sites.</p>

<p>Well, I don&#8217;t know how you handle it, personally I have my own mental system for this. Obviously I shouldn&#8217;t use the same password for every web site. I don&#8217;t trust anyone, not even Google (do you?). Therefore, I use a few primary words plus some special characters to generate a unique password for each site. For example, for web site <i>foobar.com</i> I might choose a primary word <i>foobarcom</i> mixed with <i>6&amp;8</i> to generate a unique password <i>foo6bar&amp;com8</i><sup class="footnote" id="47-rn1"><a href="#47-fn1">1</a></sup>.</p>

<p>That&#8217;s for generating passwords, the easy one. The hard one is to actually remember them. Currently I rely on Firefox<sup class="footnote" id="47-rn2"><a href="#47-fn2">2</a></sup>. But there&#8217;s one problem: it&#8217;s hard/troublesome to keep sync between multiple computers. Also, if I can&#8217;t use my own computer, I&#8217;m in trouble.</p>

<p>A more thorough refection on this issue could be found here: <a href="http://alexking.org/blog/2007/02/05/more-on-passwords">More on Passwords</a>. And there&#8217;s a new way of handling it: <a href="http://crypto.stanford.edu/PwdHash/">Web Password Hashing</a>.</p>

<p>Basically <a href="https://addons.mozilla.org/firefox/1033/">PwdHash</a> lets you generate a unique password for each site based on a primary word you choose. Yes, it&#8217;s a little like my system described above but without requiring you to remember the special characters (and how to mix them with the primary word). So now all you need to remember is a few primary words (and on which web sites they are used).</p>

<p>PwdHash is a Firefox extension and is very easy to use. Whenever you need to enter a password (for a specific web site), just press F2 (or a special prefix &#8220;@@&#8221;) before you type your chosen primary word. PwdHash would generate a unique password for this site (only) based on the primary word you type<sup class="footnote" id="47-rn3"><a href="#47-fn3">3</a></sup>.</p>

<p>Please bear in mind that I don&#8217;t really think it&#8217;s a good idea to use the exact same method for treating your critical passwords. Be very serious about your critical, secret passwords.</p>

<blockquote><p>Keep your secrets in you mind only, or it is not secret anymore.</p></blockquote>

<p class="footnote" id="47-fn1"><sup>1</sup> Well, this might work for non-critical web sites. But for other critical, life-supporting sites (like <a href="http://etrade.com/">E*Trade</a>, <a href="http://netbank.com/">NetBank</a>), using the same system to generate passwords is simply unacceptable. It is wise to keep them completely separate from those used for non-critical web sites. If you&#8217;ve never been worried about it, you should start to worry. <a href="#47-rn1">&uarr;</a></p>

<p class="footnote" id="47-fn2"><sup>2</sup> Again, that&#8217;s for normal non-critical web sites. For critical passwords, I use <a href="http://www.tranglos.com/free/oubliette.html">Oubliette</a>. These days, web sites start to require you to change your passwords every few months. I really can&#8217;t remember them without some kind of help. <a href="#47-rn2">&uarr;</a></p>

<p class="footnote" id="47-fn3"><sup>3</sup> If you don&#8217;t know what hashing means. Hashing is a process for generating unique word from a given input. It will always generates exactly the same word if the same input is given. And by unique we mean hashing will generate a completely different word if a different input is given (even just a single character change). <a href="#47-rn3">&uarr;</a></p>]]></content:encoded>
			<wfw:commentRss>http://www.bryantsai.com/archives/password-nightmare.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Stock Quote Feed</title>
		<link>http://www.bryantsai.com/archives/stock-quote-feed.html</link>
		<comments>http://www.bryantsai.com/archives/stock-quote-feed.html#comments</comments>
		<pubDate>Tue, 09 May 2006 07:00:00 +0000</pubDate>
		<dc:creator>bryan</dc:creator>
				<category><![CDATA[utility]]></category>

		<guid isPermaLink="false">http://www.bryantsai.com/?p=33</guid>
		<description><![CDATA[<p><span class="caps">OK,</span> I admit I cannot live without Bloglines. I read news, technical publications, and friend blogs everyday on my Bloglines page. Almost everything has feed these days and it&#8217;s just damn convenient to be able to have-it-all in a single place. Well, almost ... One of the strangest thing keeps knocking my head is that [...]</p>]]></description>
			<content:encoded><![CDATA[<p><span class="caps">OK,</span> I admit I cannot live without <a href="http://bloglines.com">Bloglines</a>.</p>

<p>I read news, technical publications, and friend blogs everyday on my Bloglines page. Almost everything has feed these days and it&#8217;s just damn convenient to be able to have-it-all in a single place.</p>

<p>Well, almost ...</p>

<p>One of the strangest thing keeps knocking my head is that there&#8217;s no stock quote feed (or at least I&#8217;m not aware of). There are a lot of web site for you to check the current stock quote, but none of them provide a feed. All I want is a simple feed of stock quote so I can read it on Bloglines once a day (or maybe once a week). I don&#8217;t want to maintain a portfolio on a financial portal site and have to manually log in everyday just to learn the current stock quote.</p>

<p>Luckily, someone has a solution: <a href="http://blog.tc.dk/item/8">Yahoo stock to <span class="caps">RSS </span>converter</a>. It&#8217;s a <span class="caps">PHP </span>script which parses Yahoo&#8217;s stock quote data to generate a feed. Simply put it on a <span class="caps">PHP </span>supported server and you get a personal stock quote feed for your own needs (there are quite a few parameters which let you tune the generated <span class="caps">RSS </span>content).</p>

<p>Since I&#8217;m using it with Bloglines, I have modified it a little bit to fit Bloglines&#8217; interface. The original version makes Bloglines treat each quote update as a new entry. That ends up generating lots of entries for each stock (Yahoo&#8217;s stock quote updates every half an hour) and annoys me since I only care about the most current quote. Here&#8217;s the modified version (download and rename it): <a href="http://www.bryantsai.com/wp/wp-content/uploads/2007/01/stockrss.txt">stockrss</a></p>]]></content:encoded>
			<wfw:commentRss>http://www.bryantsai.com/archives/stock-quote-feed.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Lotus Notes Parser for MoinMoin and Trac</title>
		<link>http://www.bryantsai.com/archives/lotus-notes-parser-for-moinmoin-and-trac.html</link>
		<comments>http://www.bryantsai.com/archives/lotus-notes-parser-for-moinmoin-and-trac.html#comments</comments>
		<pubDate>Tue, 04 Apr 2006 06:57:02 +0000</pubDate>
		<dc:creator>bryan</dc:creator>
				<category><![CDATA[utility]]></category>

		<guid isPermaLink="false">http://www.bryantsai.com/?p=32</guid>
		<description><![CDATA[<p>I have been using MoinMoin and trac in my project for a long time. They are really great tools for development work. It&#8217;s imply damn cool to merge bug tracking with wiki (and vice versa). However, it&#8217;s another story when you want to use wiki for project management purpose. One thing that keeps annoying me [...]</p>]]></description>
			<content:encoded><![CDATA[<p>I have been using <a href="http://moinmoin.wikiwikiweb.de/">MoinMoin</a> and <a href="http://www.edgewall.com/trac/">trac</a> in my project for a long time. They are really great tools for development work. It&#8217;s imply damn cool to merge bug tracking with wiki (and vice versa).</p>

<p>However, it&#8217;s another story when you want to use wiki for project management purpose. One thing that keeps annoying me was that we use Lotus Notes in our company. My work as a project manager has to copy and paste those business emails  into wiki. Since nobody would write their emails in wiki format, and in order to make email looks reasonably ok, I have to manually edit each email before I put it into wiki. What a nightmare!</p>

<p>That&#8217;s not respectable work anyway.</p>

<p>To make my life (and the team&#8217;s) easier, I hacked out a parser for just that purpose. The parser recognize the content you copied from Lotus Notes and will format it in an easier-to-read style (by making email headers stand out). Now I just need to copy-and-paste (but no edit anymore!).</p>

<p><a href="http://moinmoin.wikiwikiweb.de/ParserMarket#LotusNotesParser">Lotus Notes Parser for MoinMoin</a></p>

<p><a href="http://trac-hacks.org/wiki/LotusNotesParserMacro">Lotus Notes Parser for trac</a></p>]]></content:encoded>
			<wfw:commentRss>http://www.bryantsai.com/archives/lotus-notes-parser-for-moinmoin-and-trac.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>My Favorite List of Firefox Extension</title>
		<link>http://www.bryantsai.com/archives/my-favorite-list-of-firefox-extension.html</link>
		<comments>http://www.bryantsai.com/archives/my-favorite-list-of-firefox-extension.html#comments</comments>
		<pubDate>Wed, 06 Jul 2005 10:00:00 +0000</pubDate>
		<dc:creator>bryan</dc:creator>
				<category><![CDATA[utility]]></category>

		<guid isPermaLink="false">http://www.bryantsai.com/?p=27</guid>
		<description><![CDATA[<p>I cannot live (ok, browse) without Firefox. One of the reason is that there are so many usable extensions. Here&#8217;s my list, and most of them could be found on Firefox&#8217;s update site. Only links of those extensions which could not be found there are indicated here. Must-Have ieview Launch IE for viewed page directly [...]</p>]]></description>
			<content:encoded><![CDATA[<p>I cannot live (ok, browse) without Firefox. One of the reason is that there are so many usable extensions. Here&#8217;s my list, and most of them could be found on Firefox&#8217;s update site. Only links of those extensions which could not be found there are indicated here.</p>

<p>Must-Have</p>


<ul>
<li>ieview  <br />
  Launch IE for viewed page directly from within Firefox. Also it can remember which page (when viewed by Firefox) should IE be automatically launched. For web sites that can only work in <span class="caps">IE, </span>it is really very handy!</li>
<li>adblock  <br />
  Block partial content with wild card setting. Useful for AD prevention.</li>
<li><a href="http://extensionroom.mozdev.org/more-info/autohide">autohide</a><br />
  Make Firefox full screen truly full of screen. Help you hide the  toolbar as well. Must-have for those using Firefox as presentation tool.</li>
<li><a href="http://spellbound.sourceforge.net/">spellbound</a><br />
  Spell checking any text field or text area within Firefox. No need for any external dictionary or spell checker any more.</li>
<li>imagezoom  <br />
  Add zoom function for images in Firefox. Very useful when image size does not fit very well.</li>
<li>outsidebar  <br />
  Do you hate the expanding of sidebar to push the window to the right? It expands sidebars to the left to help keep your window static.</li>
<li>disable targets for downloads  <br />
   Prevents an unnecessary blank page opened when clicking a download link.</li>
<li><a href="http://www.extensionsmirror.nl/index.php?showtopic=3614">searchpluginhack</a><br />
  Ever wondered how to remove an installed search engines? It can help you by providing a simple right click directly on the search box dropdown list.</li>
<li><a href="http://www.extensionsmirror.nl/index.php?showtopic=2796">resizable-textarea</a><br />
  Ever complained about the too-small textarea when editing on the web? It can resize textareas to your needs.</li>
<li>pdfdownload  <br />
  Allow to choose how to handle a <span class="caps">PDF </span>file link (download, view it within Firefox, or view it externally).</li>
<li>noscript  <br />
  Help control the usage (allowed or not allowed) of JavaScript (by site).</li>
<li>all-in-one gestures  <br />
  Execute common commands via mouse gestures.</li>
<li>linky  <br />
  Open/download/validate links and pictures in tabs or windows.</li>
</ul>



<p>Usable</p>


<ul>
<li>forecastfox  <br />
  Shows weather forecast in the status bar.</li>
<li>greasemonkey  <br />
  User script manager for Firefox. Required by many other useful user scripts.</li>
<li>mozcc  <br />
  Shows embedded Creative Commons licenses of current pages.</li>
<li>better search  <br />
  Enhance various search engine (search result page), including Google, <span class="caps">A9, MSN,</span> Yahoo, del.icio.us ...</li>
<li>customizegoogle  <br />
  Enhance Google search result page and removes ads and spam.</li>
<li><a href="http://www.m-w.com/firefox/">Merriam-Webster search box</a><br />
  Merriam-Webster search engine to Firebox search box.</li>
</ul>



<p>Web Mail</p>


<ul>
<li>gmail s/mime  <br />
  Add function of sending/receiving encrypted S/Mime messages in GMail.</li>
<li>gmail delete button  <br />
  Add a delete button to GMail. Requires greasemonkey installed.</li>
<li>webmailcompose  <br />
  Directly launch various web mail compose window for mailto: link.</li>
</ul>



<p>Developer</p>


<ul>
<li>colorzilla  <br />
  Advanced eyedropper, color picker, page zoomer, and other colorful goodies.</li>
<li>web color names  <br />
  Let you select color by name or by hex number.</li>
<li>measureit  <br />
  Draw a ruler directly within Firefox to get the pixel width and height of any element on a web page.</li>
<li>editcss  <br />
  Let you modify the currently used <span class="caps">CSS </span>content on the fly (in Firefox, not on the server). Very handy when you are experimenting different styles.</li>
<li><a href="http://www.karmatics.com/aardvark/">aardvark</a><br />
    Let you manipulate(hide/view/view source) pages by block. Very helpful for working with <span class="caps">CSS </span>styles.</li>
<li>view formatted source  <br />
  View source inline or in a formatted (colored syntax) form.</li>
<li>view cookies  <br />
  Add a cookies tab to view page info dialog to check used cookies for current page.</li>
<li>add&#8217;n&#8217;edit cookies  <br />
  Allow you to add/edit session and saved cookies.</li>
<li>web developer  <br />
  Add a menu and a toolbar with various web developer tools.</li>
<li>javascript debugger  <br />
  Provide a JavaScript debugger for Firefox.</li>
<li><a href="http://www.md.pp.ru/mozilla/cc/">curisecontrol monitor</a><br />
    Show a CruiseControl monitor green/red light in the status bar.</li>
</ul>

]]></content:encoded>
			<wfw:commentRss>http://www.bryantsai.com/archives/my-favorite-list-of-firefox-extension.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Self-Controlled CruiseControl</title>
		<link>http://www.bryantsai.com/archives/self-controlled-cruisecontrol.html</link>
		<comments>http://www.bryantsai.com/archives/self-controlled-cruisecontrol.html#comments</comments>
		<pubDate>Tue, 29 Mar 2005 09:28:14 +0000</pubDate>
		<dc:creator>bryan</dc:creator>
				<category><![CDATA[continuous_integration]]></category>
		<category><![CDATA[utility]]></category>

		<guid isPermaLink="false">http://www.bryantsai.com/?p=21</guid>
		<description><![CDATA[<p>CruiseControl is a tool for implementing Continuous Integration. It helps manage the builds for your projects. You can schedule the builds based on time or on any modification made to the repository storing your project. Beyond controlling the builds, it also provides a reporting dashboard for monitoring the status of your projects. So, the workflow [...]</p>]]></description>
			<content:encoded><![CDATA[<p><a href="http://cruisecontrol.sourceforge.net/">CruiseControl</a> is a tool for implementing <a href="http://martinfowler.com/ieeeSoftware/continuousDesign.pdf">Continuous Integration</a>. It helps manage the builds for your projects. You can schedule the builds based on time or on any modification made to the repository storing your project. Beyond controlling the builds, it also provides a reporting <em>dashboard</em> for monitoring the status of your projects.</p>

<p>So, the workflow goes like this. You make some modification to the code base and check it into the repository. After a few minutes of waiting (a cup of coffee or tea), a mail notification will be sent to you telling you whether or not your modification caused any problem to the code base. If no problem, well, you can be relaxed and either go home or get another work item. If there&#8217;s a problem, you can quickly check the build log included in the mail to see what was the cause. After you fix the problem, you can sit back and wait for the email notification of the result of this fix. Normally we would like to set the waiting time to be within 10 minutes so we can get quick feedback. Note that there&#8217;s no manual operation on the server side in the workflow. Every thing is automated.</p>

<p>This is great, really great indeed!</p>

<p>The configuration of <a href="http://cruisecontrol.sourceforge.net/">CruiseControl</a> itself is through a <span class="caps">XML </span>file. In the file you specify the builder, the schedule, the notification, etc. Usually, we would like to put this configuration file in the repository as well. And that brings the idea of &#8220;eating your own dog food&#8221;.</p>

<p>A separate <a href="http://cruisecontrol.sourceforge.net/">CruiseControl</a> builder is set up for updating its own configuration file. Whenever I need to change any settings, I simply modify the <span class="caps">XML </span>file and check it in. A few minutes later, all changes to the configuration are taking effect. This is great in that I don&#8217;t need to log into the build machine. It could be done on any host as long as I or anyone else can check in the configuration file.</p>

<p>Everything is perfect now, except ...</p>

<p>The current version of <a href="http://cruisecontrol.sourceforge.net/">CruiseControl</a> does not support adding/removing builders on the fly. That is, if you add a new builder, you have to restart <a href="http://cruisecontrol.sourceforge.net/">CruiseControl</a>. Well, I admit that the needs for adding builder rarely happens.</p>

<p><em>I know version 2.2.1 has been out for quite a while. I have just installed it but had problems with it, so I go back to version 2.2. The problem relates to <a href="http://subversion.tigris.org/">Subversion</a> modification set, which always reports the last modification is 1970/xx/xx ... Not good!</em></p>]]></content:encoded>
			<wfw:commentRss>http://www.bryantsai.com/archives/self-controlled-cruisecontrol.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Integrating ClearCase with Araxis Merge</title>
		<link>http://www.bryantsai.com/archives/integrating-clearcase-with-araxis-merge.html</link>
		<comments>http://www.bryantsai.com/archives/integrating-clearcase-with-araxis-merge.html#comments</comments>
		<pubDate>Wed, 19 Jan 2005 03:00:00 +0000</pubDate>
		<dc:creator>bryan</dc:creator>
				<category><![CDATA[utility]]></category>

		<guid isPermaLink="false">http://www.bryantsai.com/?p=14</guid>
		<description><![CDATA[<p>I have been using Araxis Merge for a long time. And ever since I used ClearCase in my day job, I got really bad mood. The original merge tool used by ClearCase was really hard to use and confusing. I really couldn&#8217;t get any clue when I was faced with its ugly interface even after [...]</p>]]></description>
			<content:encoded><![CDATA[<p>I have been using <a href="http://www.araxis.com/merge/">Araxis Merge</a> for a long time. And ever since I used ClearCase in my day job, I got really bad mood. The original merge tool used by ClearCase was really hard to use and confusing. I really couldn&#8217;t get any clue when I was faced with its ugly interface even after several months. So I tried to search to find if there&#8217;s any solution for replacing it with other tools. Fortunately, they already had one on their <a href="http://www.araxis.com/merge/scm_integration.html">web site</a>, but that&#8217;s for diff function only.</p>

<p>So here it is, I have modified the sample Perl script to include the merge function as well. Follow the steps and you&#8217;ll be happy thereafter:</p>

<p>Create a Perl script like the following and replace the last line with your own path to Araxis Merge tool:</p>

<pre><code>   $base = &quot;&quot;;
    $out = &quot;&quot;;
    $titleN = 0;
    for ($i = 0; $i &lt;= $#ARGV; $i++) {
        if ($ARGV[$i] eq &quot;-base&quot;) {
            ## it is a base file, replace parameters
            $ARGV[$i] = &quot;&quot;;
            ## process next param:
            ## replace it by /wait /3 /merge /a1
            $i++;
            ## retrieve the base file
            $base = $ARGV[$i];
            $ARGV[$i] = &quot;/wait /3 /merge /a1 $base&quot;;
        }
        
        if ($ARGV[$i] eq &quot;-out&quot;) {
            ## it is a title, delete the parameter
            $ARGV[$i] = &quot;&quot;;
            $i++;
            ## retrieve the output file
            $out = $ARGV[$i];
            $ARGV[$i] = &quot;&quot;;
        }
         
        if ($ARGV[$i] eq &quot;-fname&quot;) {
            # it is a title, delete the parameter
            $ARGV[$i] = &quot;&quot;;
            $titleN += 1;
            ## process next param:
            ## replace it by /titleN:&quot;$argv[$i]&quot;
            $i++;
            $ARGV[$i] = &quot;/title$titleN:\&quot;$ARGV[$i]\&quot;&quot;;
        }
    }
    system &quot;c:/dev/tool/araxis/merge/compare.exe @ARGV $out&quot;;</code></pre>

<p>Get <a href="http://www.indigostar.com/perl2exe.htm">Perl2Exe</a> to convert this Perl script to an executable. You must have Perl installed on your machine for the conversion.</p>

<p>Modify the file <code>&lt;ClearCase root path&gt;\lib\mgrs\map</code> and replace all occurrence of <code>&quot;/..\..\bin\cleardiffmrg.exe/&quot;</code> with &#8220;full path to your converted Perl script executable&#8221;.</p>

<p>That&#8217;s it and now Araxis Merge will appear whenever a compare or merge is needed by ClearCase. </p>]]></content:encoded>
			<wfw:commentRss>http://www.bryantsai.com/archives/integrating-clearcase-with-araxis-merge.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>UML Sketch Tool</title>
		<link>http://www.bryantsai.com/archives/uml-sketch-tool.html</link>
		<comments>http://www.bryantsai.com/archives/uml-sketch-tool.html#comments</comments>
		<pubDate>Wed, 27 Oct 2004 13:15:04 +0000</pubDate>
		<dc:creator>bryan</dc:creator>
				<category><![CDATA[utility]]></category>

		<guid isPermaLink="false">http://www.bryantsai.com/?p=9</guid>
		<description><![CDATA[<p>Recently I have some needs to draw some neat <span class="caps">UML </span>diagrams for demonstration purpose. I&#8217;m never Ration Rose fan, which is really too difficult for my simple usage. Microsoft Visio has always been the choice for drawing diagram, and it does really good job. However, I prefer using Pavel Hruby&#8217;s Stencil instead of the original [...]</p>]]></description>
			<content:encoded><![CDATA[<p>Recently I have some needs to draw some neat <span class="caps">UML </span>diagrams for demonstration purpose. I&#8217;m never Ration Rose fan, which is really too difficult for my simple usage.</p>

<p>Microsoft Visio has always been the choice for drawing diagram, and it does really good job. However, I prefer using <a href="http://www.phruby.com/stencildownload.html">Pavel Hruby&#8217;s Stencil</a> instead of the original default one. They are a lot more useful and <span class="caps">UML</span> 2.0 compliant.</p>

<p>But this time I have tried another little tool for sketching <span class="caps">UML </span>diagrams. Try this: <a href="http://www.umlet.com"><span class="caps">UML</span>et</a>. First of all, it&#8217;s free and it&#8217;s written in Java. Second, it is in some way more convenient than Visio. The main concept of this thing is to help you draw fast. You don&#8217;t need to go through any pop-up/dialog to fill in the value/text you want to be shown. The drawing is as powerful and as convenient as Visio. You can also choose to export the diagram into <span class="caps">JPEG</span>/PDF/SVG/EPS formats. Neat!</p>

<p>If all you want is to quickly draw a diagram and use it to discuss with your peer, this little tool suffices.</p>]]></content:encoded>
			<wfw:commentRss>http://www.bryantsai.com/archives/uml-sketch-tool.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

