<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss'><id>tag:blogger.com,1999:blog-8762274703812576773</id><updated>2009-07-14T05:27:36.871-07:00</updated><title type='text'>Software Ninja</title><subtitle type='html'>The Software Ninja is a professional software developer.  Here are some &lt;a href="http://astore.amazon.com/matthewonsoftware-20"&gt;books&lt;/a&gt; I find interesting and useful.</subtitle><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8762274703812576773/posts/default'/><link rel='alternate' type='text/html' href='http://m0smith.freeshell.org/blog-software/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/8762274703812576773/posts/default?start-index=26&amp;max-results=25'/><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://m0smith.freeshell.org/blog-software/atom.xml'/><author><name>Matthew O. Smith</name><uri>http://www.blogger.com/profile/09782540965685467311</uri><email>noreply@blogger.com</email></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>78</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-8762274703812576773.post-1841485987886201578</id><published>2009-07-14T05:06:00.000-07:00</published><updated>2009-07-14T05:27:37.000-07:00</updated><title type='text'>3 Code Review Items</title><content type='html'>It is true, things do come in threes.  Yesterday I had three code review related experiences.&lt;br /&gt;&lt;h1&gt;1 - What was I thinking&lt;/h1&gt;I created a code review in Crucible to share with my team.  when it came time to do the code review, Crucible hung.  Strange.  It has always been a good product, why should it have problems now?  Answer:  768 files is probably not a reasonable code review.  At just 10 minutes per file that would be 128 hours for the entire review.&lt;br /&gt;&lt;br /&gt;Lesson learned:  Keep the code review to a reasonable size both for the software and the people.&lt;br /&gt;&lt;br /&gt;&lt;h1&gt;2 - Free book in the mail&lt;/h1&gt;I got a free book on code reviews in the mail.  &lt;a href="http://smartbear.com/codecollab-code-review-book.php"&gt;Best Kept Secrets of Peer Code Review&lt;/a&gt; is a compilation of 10 practical essays from industry experts giving specific    techniques for effective peer code review.  It is short but looks like a good read.&lt;br /&gt;&lt;br /&gt;&lt;h1&gt;3 - 5.0 for 5 users for $5 for 5 days deal&lt;/h1&gt;&lt;br /&gt;While I am a big fan of Crucible, it is not free software, unless you work for a non-profit, like I do.  It which case you can use it for free.  A competitor of Crucible, &lt;a href="http://smartbear.com/code-review-5-for-5.php"&gt;CodeReviewer by Smart Bear Software is running a deal where you can get a 5 user license for $5.00&lt;/a&gt;.  It has some interesting features.  This comes from a conversation with a person at Smart Bear:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;From a big-picture perspective, the two tools are similar: they automate the peer code review process. The biggest difference is the level of support for what we refer to here at Smart Bear as "pre-commit review."  Both tools have good support for doing "post-commit" code review; in other words, creating a code review based on file revisions that have already been checked in to version control.  From what we've seen in our customer base (over 20,000 licensed seats across Code Collaborator and Code Reviewer combined), about half of developers prefer to do pre-commit review and the other half do post-commit review.&lt;br /&gt;&lt;br /&gt;Crucible supports pre-commit review, but not nearly as thoroughly as Code Reviewer. A key reason for that is that Crucible does *not* include a client-side application, with the exception of plugins that they do provide for the Eclipse and IntelliJ IDEA integrated development environments.  Please note, however, that the current version of their Eclipse plugin does not provide any support for creating pre-commit reviews (and further, it only supports Subversion).&lt;br /&gt;&lt;br /&gt;In contrast, Code Reviewer's client side tools consist of: a cross-platform GUI, a cross-platform command-line utility, an Eclipse plugin, and a p4v plugin (for Perforce users). These tools automate the creation of pre-commit reviews by using the developer's version control tools to figure out what files have changed in the developer's local working copy and then Code Reviewer packages up the necessary local changes and creates the review accordingly.  For a pre-commit review, Crucible makes you do all of that manually (with the exception of when you are using their IntelliJ IDEA plugin): you have to create your own diffs, etc.&lt;br /&gt;&lt;br /&gt;So that's the biggest single difference between the two tools.  Some additional points to note:&lt;br /&gt;&lt;br /&gt;1. The list of supported version control systems is similar, but not identical.  Both tools can, in theory, work with *any* version control system that can produce diffs.  Crucible provides specific support for post-commit review creation with CVS, Perforce, Subversion, Git, and ClearCase.  Code Reviewer provides specific support for pre-commit and post-commit review creation with CVS, Perforce, Subversion, Git, Vault, and Mercurial (as a side note, Code Collaborator provides specific support for 14 different version control systems).&lt;br /&gt;&lt;br /&gt;2. Support for iterative review. Code Reviewer has always supported iterative review: the ability to upload multiple revisions of a file(s) and make it easy for users to see the most recent changes only (or all changes) and to keep it straight which comments/defects were entered on which lines of code, even as those lines of code move around because of insertions/deletions across the different revisions.  Historically, this is not something that Crucible supported, but they are claiming support for this in their just released v2.0.  Note, however, that it appears to only work with post-commit reviews, unlike in Code Reviewer where it works with both pre-commit and post-commit reviews.  I haven't tested it enough to figure out if their 2.0 release can accurately move comments/defects with lines of code through multiple revisions of a file.&lt;br /&gt;&lt;br /&gt;3. Real time chat. The Crucible user interface for entering comments/defects works well, but it is not real-time. If someone else enters a comment/defect in the same file that you are working in, you won't see that comment/defect until you refresh your browser page.  In Code Reviewer, this works automatically.  I realize this might not be useful in a "code buddy" environment, but we do have many customers who use this facility as essentially an IM-client in order to chat about the code in real time.&lt;/blockquote&gt;Can't hardly go wrong for 5 bucks.&lt;br /&gt;&lt;br /&gt;&lt;h1&gt;&gt;Summary&lt;/h1&gt;&lt;ul&gt;&lt;li&gt;Keep code reviews reasonable&lt;/li&gt;&lt;li&gt;Check out the &lt;a href="http://smartbear.com/codecollab-code-review-book.php"&gt;free book&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Check out the &lt;a href="http://smartbear.com/code-review-5-for-5.php"&gt;software deal&lt;/a&gt;&lt;br /&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/8762274703812576773-1841485987886201578?l=m0smith.freeshell.org%2Fblog-software%2Findex.html'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/8762274703812576773/1841485987886201578/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=8762274703812576773&amp;postID=1841485987886201578' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8762274703812576773/posts/default/1841485987886201578'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8762274703812576773/posts/default/1841485987886201578'/><link rel='alternate' type='text/html' href='http://m0smith.freeshell.org/blog-software/2009/07/3-code-review-items.html' title='3 Code Review Items'/><author><name>Matthew O. Smith</name><uri>http://www.blogger.com/profile/09782540965685467311</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='11542841890840340209'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8762274703812576773.post-8772190574535087286</id><published>2009-07-06T05:52:00.000-07:00</published><updated>2009-07-06T05:58:00.175-07:00</updated><title type='text'>Source code of Atari games</title><content type='html'>It has been a long time since I looked at assembly code, but today an opportunity presented itself.  The &lt;a href="http://www.programmerfish.com/source-code-of-several-7800-games-released/"&gt;Source Code of Several Atari 7800 Games Released!&lt;/a&gt;  It downloaded &lt;a href="http://www.programmerfish.com/Attari7800/JOUST.zip"&gt;Joust&lt;/a&gt; to take a look and it is a thing of beauty, I think.  Assembly was never beautiful I guess, but it sure got the job done.  I sure do not miss assembly but the&lt;a href="http://domainer.typepad.com/free_game_downloads/2006/11/joust_arcade_ga.html"&gt; games are still around&lt;/a&gt; in various forms.  I don't think anything I wrote even 20 years ago is still running.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8762274703812576773-8772190574535087286?l=m0smith.freeshell.org%2Fblog-software%2Findex.html'/&gt;&lt;/div&gt;</content><link rel='related' href='http://www.programmerfish.com/source-code-of-several-7800-games-released/' title='Source code of Atari games'/><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/8762274703812576773/8772190574535087286/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=8762274703812576773&amp;postID=8772190574535087286' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8762274703812576773/posts/default/8772190574535087286'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8762274703812576773/posts/default/8772190574535087286'/><link rel='alternate' type='text/html' href='http://m0smith.freeshell.org/blog-software/2009/07/source-code-of-atari-games.html' title='Source code of Atari games'/><author><name>Matthew O. Smith</name><uri>http://www.blogger.com/profile/09782540965685467311</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='11542841890840340209'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8762274703812576773.post-517112190798013468</id><published>2009-06-01T13:20:00.000-07:00</published><updated>2009-06-01T13:20:09.050-07:00</updated><title type='text'>Square root of x divided by zero: The speed, size and dependability of programming languages</title><content type='html'>A friend of mine sent me this.  It is a benchmark of a bunch of languages.  Turns out Java 1.4 was not so bad after all.  &lt;a href="http://gmarceau.qc.ca/blog/2009/05/speed-size-and-dependability-of.html"&gt;Square root of x divided by zero: The speed, size and dependability of programming languages&lt;/a&gt;: "The Computer Language Benchmarks Game is a collection of 1368 programs, consisting of 19 benchmark reimplemented across 72 programming languages. It is a fantastic resource if you are trying to compare programming languages quantitatively. Which, oddly, very few people seems to be interested in doing."&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8762274703812576773-517112190798013468?l=m0smith.freeshell.org%2Fblog-software%2Findex.html'/&gt;&lt;/div&gt;</content><link rel='related' href='http://gmarceau.qc.ca/blog/2009/05/speed-size-and-dependability-of.html' title='Square root of x divided by zero: The speed, size and dependability of programming languages'/><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/8762274703812576773/517112190798013468/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=8762274703812576773&amp;postID=517112190798013468' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8762274703812576773/posts/default/517112190798013468'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8762274703812576773/posts/default/517112190798013468'/><link rel='alternate' type='text/html' href='http://m0smith.freeshell.org/blog-software/2009/06/square-root-of-x-divided-by-zero-speed.html' title='Square root of x divided by zero: The speed, size and dependability of programming languages'/><author><name>Matthew O. Smith</name><uri>http://www.blogger.com/profile/09782540965685467311</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='11542841890840340209'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8762274703812576773.post-6795226763659943672</id><published>2009-04-23T09:32:00.000-07:00</published><updated>2009-04-23T09:32:32.075-07:00</updated><title type='text'>Liferay and Eclipse</title><content type='html'>&lt;a href="http://www.jroller.com/holy/entry/developing_portlets_for_liferay_in"&gt;Holy Java Blog&lt;/a&gt;: "Developing portlets for Liferay in Eclipse In this blog I'd like to tell you how to use Eclipse with Liferay to develop portlets with the ability to change a class or a JSP in Eclipse and have that immediatelly reflected on the server (hot deployment)."&lt;br /&gt;&lt;br /&gt;A good look at Liferay and Eclipse.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8762274703812576773-6795226763659943672?l=m0smith.freeshell.org%2Fblog-software%2Findex.html'/&gt;&lt;/div&gt;</content><link rel='related' href='http://www.jroller.com/holy/entry/developing_portlets_for_liferay_in' title='Liferay and Eclipse'/><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/8762274703812576773/6795226763659943672/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=8762274703812576773&amp;postID=6795226763659943672' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8762274703812576773/posts/default/6795226763659943672'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8762274703812576773/posts/default/6795226763659943672'/><link rel='alternate' type='text/html' href='http://m0smith.freeshell.org/blog-software/2009/04/liferay-and-eclipse.html' title='Liferay and Eclipse'/><author><name>Matthew O. Smith</name><uri>http://www.blogger.com/profile/09782540965685467311</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='11542841890840340209'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8762274703812576773.post-606455850014434343</id><published>2009-04-09T07:31:00.000-07:00</published><updated>2009-04-09T07:35:21.079-07:00</updated><title type='text'>14 Days to Ubuntu 9.04 and counting</title><content type='html'>I have been using Xubuntu 9.04 Beta on an older laptop with much happiness.  It is lightweight and snappier on the older hardware.  &lt;br /&gt;&lt;br /&gt;&lt;script type="text/javascript" src="http://www.ubuntu.com/files/countdown/display2.js"&gt;&lt;/script&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8762274703812576773-606455850014434343?l=m0smith.freeshell.org%2Fblog-software%2Findex.html'/&gt;&lt;/div&gt;</content><link rel='related' href='http://www.ubuntu.com/' title='14 Days to Ubuntu 9.04 and counting'/><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/8762274703812576773/606455850014434343/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=8762274703812576773&amp;postID=606455850014434343' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8762274703812576773/posts/default/606455850014434343'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8762274703812576773/posts/default/606455850014434343'/><link rel='alternate' type='text/html' href='http://m0smith.freeshell.org/blog-software/2009/04/14-days-to-ubuntu-904-and-counting.html' title='14 Days to Ubuntu 9.04 and counting'/><author><name>Matthew O. Smith</name><uri>http://www.blogger.com/profile/09782540965685467311</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='11542841890840340209'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8762274703812576773.post-4553967506990294380</id><published>2009-04-06T08:02:00.000-07:00</published><updated>2009-04-06T08:02:00.598-07:00</updated><title type='text'>jbox.dk - Quotations on simplicity in software design</title><content type='html'>&lt;a href="http://www.jbox.dk/quotations.htm"&gt;jbox.dk - Quotations on simplicity in software design&lt;/a&gt;: "Quotations on simplicity in software design"&lt;br /&gt;&lt;br /&gt;This is a great collection of quotes.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8762274703812576773-4553967506990294380?l=m0smith.freeshell.org%2Fblog-software%2Findex.html'/&gt;&lt;/div&gt;</content><link rel='related' href='http://www.jbox.dk/quotations.htm' title='jbox.dk - Quotations on simplicity in software design'/><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/8762274703812576773/4553967506990294380/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=8762274703812576773&amp;postID=4553967506990294380' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8762274703812576773/posts/default/4553967506990294380'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8762274703812576773/posts/default/4553967506990294380'/><link rel='alternate' type='text/html' href='http://m0smith.freeshell.org/blog-software/2009/04/jboxdk-quotations-on-simplicity-in.html' title='jbox.dk - Quotations on simplicity in software design'/><author><name>Matthew O. Smith</name><uri>http://www.blogger.com/profile/09782540965685467311</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='11542841890840340209'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8762274703812576773.post-8787929374199701806</id><published>2009-04-02T10:26:00.000-07:00</published><updated>2009-04-02T10:34:36.370-07:00</updated><title type='text'>Maven documentation</title><content type='html'>Whilst reading &lt;a href="http://www.dzone.com"&gt;dzone&lt;/a&gt;, I came across an article, &lt;a href="http://peterbacklund.blogspot.com/2009/03/five-tips-for-successfully-deploying.html"&gt;Five tips for successfully deploying Maven&lt;/a&gt;, that highlights some good ideas for working with maven.   While all 5 ideas are worth the time to read, the 4th idea intrigued me most because I have always found the maven documentation difficult to find and navigate.  Quoting the 4th idea:&lt;br /&gt;&lt;blockquote&gt;&lt;span style="font-weight: bold;"&gt;4 Use the documentation&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;Well, duh. But a weak point of Maven in the eyes of many people is the lack of documentation and the sometimes poorly organized information. There are a few good points of reference though, that you can spread around you team by setting up links on the Wiki for example:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.sonatype.com/books/maven-book/reference/"&gt;The Definitive Guide to Maven&lt;/a&gt;: a free book from Sonatype, available both as HTML and PDF. Good for the beginner, and sometimes as a reference. If you don't know where to start, start here.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;The &lt;a href="http://maven.apache.org/plugins/index.html"&gt;plugin list&lt;/a&gt;: a comprehensive list to the official plugins, with links to each project page and JIRA subsection. Most of the core functionality is actually performed by one of these plugins, and you can learn a lot by studying things like the &lt;a href="http://maven.apache.org/plugins/maven-resources-plugin/"&gt;resources plugin&lt;/a&gt; documentation.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;The &lt;a href="http://maven.apache.org/pom.html"&gt;POM reference&lt;/a&gt;: for the slightly more advanced user. Every element in the POM is explained. Don't forget to specify the XSD information in your POM file to get the most help from your XML editor. &lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;/blockquote&gt;These are 3 great links for maven documentation.  I must admit I didn't even know about the first 2 and the 3 is great to have a link to as well.  By getting a better understanding of how maven wants things to work, it is easier to work with it instead of against it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8762274703812576773-8787929374199701806?l=m0smith.freeshell.org%2Fblog-software%2Findex.html'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/8762274703812576773/8787929374199701806/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=8762274703812576773&amp;postID=8787929374199701806' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8762274703812576773/posts/default/8787929374199701806'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8762274703812576773/posts/default/8787929374199701806'/><link rel='alternate' type='text/html' href='http://m0smith.freeshell.org/blog-software/2009/04/maven-documentation.html' title='Maven documentation'/><author><name>Matthew O. Smith</name><uri>http://www.blogger.com/profile/09782540965685467311</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='11542841890840340209'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8762274703812576773.post-8525140896577688255</id><published>2009-04-01T10:44:00.000-07:00</published><updated>2009-04-01T11:17:54.002-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='jquery'/><category scheme='http://www.blogger.com/atom/ns#' term='browser'/><title type='text'>jQuery - Simplified interaction with JavaScript</title><content type='html'>I hate JavaScript.  Let there be no confusion about that.  Every line of JavaScript adds another point of failure to my project.  Even if it works in all browsers today, one can never be sure about tomorrow.  I use it very sparingly.&lt;br /&gt;&lt;br /&gt;Today, one of my &lt;a href="http://blog.inflinx.com/"&gt;coworkers&lt;/a&gt; did a &lt;a href="http://blog.inflinx.com/?p=148"&gt;presentation on jQuery&lt;/a&gt;.  He did a great job of presenting it.  What really impressed me was the simplicity and of course the cross-browser support.  The supported browsers as of today are: IE 6.0+, FF 2+, Safari 3.0+, Opera 9.0+, Chrome.  While we still have some IE 5.0 customers out there, this is a confidence inspiring list.&lt;br /&gt;&lt;br /&gt;The basic usage is simple enough:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Select one or more elements&lt;/li&gt;&lt;li&gt;Perform some action on said elements.&lt;/li&gt;&lt;/ol&gt;Selecting elements is done with  CSS selectors wrapped in a $() like &lt;span style="font-family: courier new;"&gt;$('input[type=text]')&lt;/span&gt; which will find all text fields.  Of course, there can be $('#id') and $('.class') as well as more complex $('div div') which gives nested divs.&lt;br /&gt;&lt;br /&gt;Actions can be things like toggle, load and hover.  Toggle changes from hidden to shown and back again.  Load does an AJAX call and hover is an event handler for a mouse hover.    There are lots of actions that can be performed and they are &lt;a href="http://docs.jquery.com/"&gt;documented &lt;/a&gt;as well.&lt;br /&gt;&lt;br /&gt;His demo mostly focused on creating a JavaScript drop down list using jQuery.  He did a good job of showing the benefits without going overboard.   One of the great points was that by moving the javascript out of the tags, the web page would work quite well with JavaScript disabled.  Of course there are other issues but this is a great one to overcome as it is important for customers to have a positive experience even in a non-JavaScript browser.  Looking at the site it looks like there are also some interesting form validation options as well.&lt;br /&gt;&lt;br /&gt;Also of note, it is supported natively by Liferay.&lt;br /&gt;&lt;br /&gt;Definitely worth a look.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8762274703812576773-8525140896577688255?l=m0smith.freeshell.org%2Fblog-software%2Findex.html'/&gt;&lt;/div&gt;</content><link rel='related' href='http://jquery.com/' title='jQuery - Simplified interaction with JavaScript'/><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/8762274703812576773/8525140896577688255/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=8762274703812576773&amp;postID=8525140896577688255' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8762274703812576773/posts/default/8525140896577688255'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8762274703812576773/posts/default/8525140896577688255'/><link rel='alternate' type='text/html' href='http://m0smith.freeshell.org/blog-software/2009/04/jquery-simplified-interaction-with.html' title='jQuery - Simplified interaction with JavaScript'/><author><name>Matthew O. Smith</name><uri>http://www.blogger.com/profile/09782540965685467311</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='11542841890840340209'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8762274703812576773.post-1584210206939249519</id><published>2009-03-31T18:34:00.000-07:00</published><updated>2009-03-31T18:44:23.772-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='page background'/><category scheme='http://www.blogger.com/atom/ns#' term='abiword'/><category scheme='http://www.blogger.com/atom/ns#' term='watermrk'/><title type='text'>Creating a watermark in Abiword</title><content type='html'>I have recently installed Xubuntu and am giving it a try at home.  One of the children was using Abiword to do a paper and wanted a "watermark" like Microsoft Word has.  Using new or different software is always frustrating.  For example, moving to Word 2007 was most frustrating.&lt;br /&gt;&lt;br /&gt;Unfortunately, there is no watermark  in Abiword.  Instead, it is called a "Page Background" which is found under the "Format" menu.  Arguably, calling it a watermark is not correct but it is what we are used to calling the background image.  Doing a Google search for "abiword watermark" didn't find anything useful.  Hopefully this simple posting will make it easier for the next guy.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8762274703812576773-1584210206939249519?l=m0smith.freeshell.org%2Fblog-software%2Findex.html'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/8762274703812576773/1584210206939249519/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=8762274703812576773&amp;postID=1584210206939249519' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8762274703812576773/posts/default/1584210206939249519'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8762274703812576773/posts/default/1584210206939249519'/><link rel='alternate' type='text/html' href='http://m0smith.freeshell.org/blog-software/2009/03/creating-watermark-in-abiword.html' title='Creating a watermark in Abiword'/><author><name>Matthew O. Smith</name><uri>http://www.blogger.com/profile/09782540965685467311</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='11542841890840340209'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8762274703812576773.post-1769118420341763314</id><published>2009-01-08T09:59:00.001-08:00</published><updated>2009-01-08T09:59:39.440-08:00</updated><title type='text'>Code Reviews</title><content type='html'>&lt;div &gt; There is an interesting article on code reviews: &lt;a href="http://www.cio.com/article/472372/Running_an_Effective_Code_Review/" rel="nofollow" target="_blank"&gt;Running an Effective Code Review&lt;/a&gt; &lt;/div&gt;&lt;table cellpadding="0" cellspacing="0" style="margin: 12px 0px; font-family: arial; color: #333333; background: #ffffff; border: solid 4px #e5e5e5; width: 100%; clear: left;"&gt;&lt;tr&gt;&lt;td valign="top"&gt;&lt;!-- BEGIN_CLIP_CONTENT ID:6E60FEA2-EBA5-4614-8DD8-9F2A8CDBC879:0 CLIPMARKS.COM --&gt;&lt;div class="CM_CTB_Content_Wrap" style="margin: 0px; padding: 0px;background-color: #ffffff;"&gt;&lt;div style="border-bottom: solid 1px #dcdcdc; white-space: nowrap; margin-bottom: 8px; background-color: #eeeeee ;background-image: url(http://clipmarks.com/images/source-bg.gif); background-repeat: repeat-x; height: 24px; line-height: 24px; vertical-align: middle; padding-bottom: 4px; color: #666666; font-size: 10px;" &gt;&lt;a href="http://clipmarks.com/clip-to-blog/" title="clipmarks' clip-to-blog"&gt;&lt;img src="http://content.clipmarks.com/blog_icon/3f33c6f3-0795-4470-b83b-097e065ca95d/6E60FEA2-EBA5-4614-8DD8-9F2A8CDBC879/" alt="" width="19" height="19" border="0" style="vertical-align: middle; margin: 0px 4px; display: inline; border: none; float:none;" /&gt;&lt;/a&gt;clipped from &lt;a title="http://www.cio.com/article/472372/Running_an_Effective_Code_Review" href="http://www.cio.com/article/472372/Running_an_Effective_Code_Review" style="font-size: 11px;"&gt;www.cio.com&lt;/a&gt;&lt;/div&gt;&lt;blockquote style="text-align: left; padding: 0px 8px; margin: 4px 0px 8px 0px; background: transparent; border: none;" cite="http://www.cio.com/article/472372/Running_an_Effective_Code_Review"&gt;&lt;H1&gt;Running an Effective Code Review&lt;/H1&gt;&lt;br /&gt;			&lt;H2&gt;Code reviews can be a frustrating waste of time, but they can be a worthwhile experience that contributes to team-building, improves the software, and oh yeah... is also fun. &lt;/H2&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;div style="margin: 0px 6px 6px 4px;"&gt;&lt;table style="font-size: 11px;border-spacing: 0px;padding: 0px;" cellpadding="0" cellspacing="0" width="100%"&gt;&lt;tr&gt;&lt;td style="background:transparent;border-width:0px;padding:0px;"&gt;&amp;nbsp;&lt;/td&gt;&lt;td align="right" style="background:transparent;border-width:0px;padding:0px;width:107px" width="107"&gt;&lt;a href="http://clipmarks.com/share/6E60FEA2-EBA5-4614-8DD8-9F2A8CDBC879/blog/" title="blog or email this clip"&gt;&lt;img src="http://content8.clipmarks.com/images/c2b-foot.png" border="0" alt="blog it" width="107" height="17" style="border-width:0px;padding:0px;margin:0px;" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8762274703812576773-1769118420341763314?l=m0smith.freeshell.org%2Fblog-software%2Findex.html'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/8762274703812576773/1769118420341763314/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=8762274703812576773&amp;postID=1769118420341763314' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8762274703812576773/posts/default/1769118420341763314'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8762274703812576773/posts/default/1769118420341763314'/><link rel='alternate' type='text/html' href='http://m0smith.freeshell.org/blog-software/2009/01/code-reviews.html' title='Code Reviews'/><author><name>Matthew O. Smith</name><uri>http://www.blogger.com/profile/09782540965685467311</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='11542841890840340209'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8762274703812576773.post-5184500230954914898</id><published>2008-12-03T12:33:00.000-08:00</published><updated>2008-12-03T12:50:13.834-08:00</updated><title type='text'>Adding support for decompiling class files in a jar file in emacs</title><content type='html'>This simple &lt;a href="http://www.gnu.org/software/emacs/"&gt;EMACS&lt;/a&gt; hook checks for &lt;a href="http://www.artima.com/insidejvm/whyCAFEBABE.html"&gt;CAFEBABE&lt;/a&gt; at the beginning of a file extracted from the an archive (jar, war, etc) and decompiles it.  Requries &lt;a href="http://jdee.sourceforge.net/contrib/decompile.el"&gt;decompile.el&lt;/a&gt; and &lt;a href="http://jdee.sourceforge.net/"&gt;JDEE&lt;/a&gt;.&lt;br /&gt;Thanks for &lt;a href="http://jdee.sourceforge.net/contrib/decompile.el"&gt;decompile.el&lt;/a&gt;.  It is great.&lt;br /&gt;&lt;code&gt;&lt;pre&gt;&lt;br /&gt;(add-hook&lt;br /&gt; 'archive-extract-hooks&lt;br /&gt; (lambda ()&lt;br /&gt;   (cond ((string-match "\312\376\272\276"  ;;CAFEBABE&lt;br /&gt;                        (buffer-substring-no-properties 1 5))&lt;br /&gt;           (jdc-buffer)))))&lt;br /&gt;&lt;/pre&gt;&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8762274703812576773-5184500230954914898?l=m0smith.freeshell.org%2Fblog-software%2Findex.html'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/8762274703812576773/5184500230954914898/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=8762274703812576773&amp;postID=5184500230954914898' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8762274703812576773/posts/default/5184500230954914898'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8762274703812576773/posts/default/5184500230954914898'/><link rel='alternate' type='text/html' href='http://m0smith.freeshell.org/blog-software/2008/12/adding-support-for-decompiling-class.html' title='Adding support for decompiling class files in a jar file in emacs'/><author><name>Matthew O. Smith</name><uri>http://www.blogger.com/profile/09782540965685467311</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='11542841890840340209'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8762274703812576773.post-5976802998739110552</id><published>2008-11-11T12:54:00.000-08:00</published><updated>2008-11-11T12:54:30.312-08:00</updated><title type='text'>Paul's Time Sink | Force emacs to open files in unix mode</title><content type='html'>I found this over at &lt;a href="http://www.paulstimesink.com/post/2007/04/08/force_emacs_to_open_files_in_unix_mode"&gt;Paul's Time Sink&lt;/a&gt;.  Thanks Paul.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.paulstimesink.com/post/2007/04/08/force_emacs_to_open_files_in_unix_mode"&gt;Paul&amp;#39;s Time Sink | Force emacs to open files in unix mode&lt;/a&gt;: "believe that emacs by default will use the line endings for current system when opening and saving text files.  This may cause a problem when you want to force the file to be saved with different line endings. I found this series of commands to force the file to be opened in unix mode:&lt;br /&gt;&lt;br /&gt;C-x RET c unix RET C-x C-f&lt;br /&gt;&lt;br /&gt;You can replace unix with dos, if you want to use those types of line endings."&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8762274703812576773-5976802998739110552?l=m0smith.freeshell.org%2Fblog-software%2Findex.html'/&gt;&lt;/div&gt;</content><link rel='related' href='http://www.paulstimesink.com/post/2007/04/08/force_emacs_to_open_files_in_unix_mode' title='Paul&apos;s Time Sink | Force emacs to open files in unix mode'/><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/8762274703812576773/5976802998739110552/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=8762274703812576773&amp;postID=5976802998739110552' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8762274703812576773/posts/default/5976802998739110552'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8762274703812576773/posts/default/5976802998739110552'/><link rel='alternate' type='text/html' href='http://m0smith.freeshell.org/blog-software/2008/11/pauls-time-sink-force-emacs-to-open.html' title='Paul&apos;s Time Sink | Force emacs to open files in unix mode'/><author><name>Matthew O. Smith</name><uri>http://www.blogger.com/profile/09782540965685467311</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='11542841890840340209'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8762274703812576773.post-4602682601405851974</id><published>2008-10-15T08:05:00.000-07:00</published><updated>2008-10-15T08:05:42.034-07:00</updated><title type='text'>The 7 CSS Hacks that we should use</title><content type='html'>Over at DZone I cam across this atricle:&lt;blockquote&gt; &lt;a href="http://www.noupe.com/better-design/7-css-hacks-you-cannt-live-without.html"&gt;The 7 CSS Hacks that we should use&lt;/a&gt;: "If you are trying to do pixel-perfect cross-browser CSS layout, then you have probably ran into problems with IE . I am going to highlight the top 7 CSS hacks that we often use to have pixel perfect design."&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;As a web developer, our site supports Mozilla/Firefox and Internet Explorer.  I do not know how many times I have suggested we drop IE support, for just these sorts of issues.  Oh well, I guess I can look on it as job security.  Every time there is a new IE release, we have to redo the website to support the new "standard"&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8762274703812576773-4602682601405851974?l=m0smith.freeshell.org%2Fblog-software%2Findex.html'/&gt;&lt;/div&gt;</content><link rel='related' href='http://www.noupe.com/better-design/7-css-hacks-you-cannt-live-without.html' title='The 7 CSS Hacks that we should use'/><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/8762274703812576773/4602682601405851974/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=8762274703812576773&amp;postID=4602682601405851974' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8762274703812576773/posts/default/4602682601405851974'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8762274703812576773/posts/default/4602682601405851974'/><link rel='alternate' type='text/html' href='http://m0smith.freeshell.org/blog-software/2008/10/7-css-hacks-that-we-should-use.html' title='The 7 CSS Hacks that we should use'/><author><name>Matthew O. Smith</name><uri>http://www.blogger.com/profile/09782540965685467311</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='11542841890840340209'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8762274703812576773.post-1102480110650732989</id><published>2008-08-27T11:52:00.000-07:00</published><updated>2008-08-27T11:58:04.141-07:00</updated><title type='text'>cygwin makes like better</title><content type='html'>I use cygwin a lot and emacs a lot.  As I was recovering my machine, I came across this &lt;a href="http://www-cdf.fnal.gov/~cplager/cygwin.html#tidbits"&gt;great list of useful ideas&lt;/a&gt; which includes:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;Useful Tidbits&lt;br /&gt;&lt;br /&gt;   1. You may want to disable your virus checker when running the Cygwin installer. Don't forget to re-enable it when you're finished installing.&lt;br /&gt;   2. If you are planning on installing CERN's Root, I recommend going to the 3.4.4.3 version. Root 5.14 (or later?) should be immediately compatible with this release. You may have to build the earlier versions from sources.&lt;br /&gt;   3. Cygwin doesn't like it if there is a space in your Windows username. If you have a space, do the following after installing Cygwin:&lt;br /&gt;          * Edit /etc/passwd (using either emacs, vi, or even Windows Wordpad)&lt;br /&gt;          * Find your entry (it will start with your windows username)&lt;br /&gt;          * Take the space out of your username (1st entry) and your home directory (2nd to last entry).&lt;br /&gt;          * Quit all Cygwin&lt;br /&gt;          * Use Windows Explorer to rename your home directory (C:\cygwin\home\cplager in my case) &lt;br /&gt;   4. Cygwin doesn't like spaces in directories. To have access to my program files, I created a 'mount point':&lt;br /&gt;      cygwin&gt; mount -f -s -b "c:/Program Files" "/mount/programfiles"&lt;br /&gt;      You only need to run this command once.&lt;br /&gt;   5. To make access easier to my documents and the decktop, I made the following soft links in my home directory&lt;br /&gt;      cygwin&gt; ln -s 'C:/Documents and Settings/cplager/Desktop' Desktop&lt;br /&gt;      cygwin&gt; ln -s 'C:/Documents and Settings/cplager/My Documents' Documents&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;I also like to use rxvt instead of the standard console.  The command line looks like this: &lt;code&gt;C:\cygwin\bin\rxvt.exe -sl 1500 -fn "Lucida Console-12" -bg black -fg grey -sr -e bash --login -i&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8762274703812576773-1102480110650732989?l=m0smith.freeshell.org%2Fblog-software%2Findex.html'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/8762274703812576773/1102480110650732989/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=8762274703812576773&amp;postID=1102480110650732989' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8762274703812576773/posts/default/1102480110650732989'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8762274703812576773/posts/default/1102480110650732989'/><link rel='alternate' type='text/html' href='http://m0smith.freeshell.org/blog-software/2008/08/cygwin-makes-like-better.html' title='cygwin makes like better'/><author><name>Matthew O. Smith</name><uri>http://www.blogger.com/profile/09782540965685467311</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='11542841890840340209'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8762274703812576773.post-3081412138077576991</id><published>2008-07-25T13:04:00.000-07:00</published><updated>2008-07-25T13:04:39.234-07:00</updated><title type='text'>Color   Design Blog / As Seen By The Color Blind by COLOURlovers</title><content type='html'>The &lt;a href="http://www.ada.gov/"&gt;Americans with Disabilities Act&lt;/a&gt; helps ensure that web sites are accessible to people with special needs.  Having a friend and co-worker who is deaf has made me more aware of the issues involved.  For example, a deaf user will need closed-captions or transcripts of video.&lt;br /&gt;Most of the requirements are not difficult to implement, just hard to remember and to test.  We are seeking tools that automate testing to help us identify problems.&lt;br /&gt;&lt;br /&gt;I have another friend who is color blind and while it is not a disability, software developers need to be aware of some of the problems that can be caused by color blind users.&lt;br /&gt;&lt;br /&gt;A common design is to use color to distinguish a good state versus an alert state.  The obvious choice is to use green for a happy state and red to show some error.  While doing this, keep in mind that some percentage of your users will not be able to distinguish between red and green.  The simple solution is to change something else in the text such as a little stop sign icon.  &lt;br /&gt;&lt;br /&gt;Anyway, checkout this page for some ideas on being more aware of your color blind users. &lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.colourlovers.com/blog/2008/07/24/as-seen-by-the-color-blind/"&gt;Color   Design Blog / As Seen By The Color Blind by COLOURlovers&lt;/a&gt;: "In the U.S. 7% of the male population – or about 10.5 million men – and 0.4% of the female population either cannot distinguish red from green, or see red and green differently. Color blindness affects a significant amount of the population"&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8762274703812576773-3081412138077576991?l=m0smith.freeshell.org%2Fblog-software%2Findex.html'/&gt;&lt;/div&gt;</content><link rel='related' href='http://www.colourlovers.com/blog/2008/07/24/as-seen-by-the-color-blind/' title='Color   Design Blog / As Seen By The Color Blind by COLOURlovers'/><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/8762274703812576773/3081412138077576991/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=8762274703812576773&amp;postID=3081412138077576991' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8762274703812576773/posts/default/3081412138077576991'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8762274703812576773/posts/default/3081412138077576991'/><link rel='alternate' type='text/html' href='http://m0smith.freeshell.org/blog-software/2008/07/color-design-blog-as-seen-by-color.html' title='Color   Design Blog / As Seen By The Color Blind by COLOURlovers'/><author><name>Matthew O. Smith</name><uri>http://www.blogger.com/profile/09782540965685467311</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='11542841890840340209'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8762274703812576773.post-3274647957622460065</id><published>2008-07-15T09:56:00.000-07:00</published><updated>2008-07-15T09:56:16.678-07:00</updated><title type='text'>Quote Details: Rick Cook: Programming today is a... - The Quotations Page</title><content type='html'>Of course this does not apply to my users all of whom are most ingenious. &lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.quotationspage.com/quote/781.html"&gt;Quote Details: Rick Cook: Programming today is a... - The Quotations Page&lt;/a&gt;: "Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots. So far, the Universe is winning.&lt;br /&gt;    Rick Cook, The Wizardry Compiled"&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8762274703812576773-3274647957622460065?l=m0smith.freeshell.org%2Fblog-software%2Findex.html'/&gt;&lt;/div&gt;</content><link rel='related' href='http://www.quotationspage.com/quote/781.html' title='Quote Details: Rick Cook: Programming today is a... - The Quotations Page'/><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/8762274703812576773/3274647957622460065/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=8762274703812576773&amp;postID=3274647957622460065' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8762274703812576773/posts/default/3274647957622460065'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8762274703812576773/posts/default/3274647957622460065'/><link rel='alternate' type='text/html' href='http://m0smith.freeshell.org/blog-software/2008/07/quote-details-rick-cook-programming.html' title='Quote Details: Rick Cook: Programming today is a... - The Quotations Page'/><author><name>Matthew O. Smith</name><uri>http://www.blogger.com/profile/09782540965685467311</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='11542841890840340209'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8762274703812576773.post-7936007683600628173</id><published>2008-06-25T13:28:00.000-07:00</published><updated>2008-06-25T13:28:27.000-07:00</updated><title type='text'>Joda Time - Java date and time API - Home</title><content type='html'>Josh Bloch mentioned this as being the basis for the new Date JSR.  I had never heard of it.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://joda-time.sourceforge.net/"&gt;Joda Time - Java date and time API - Home&lt;/a&gt;: "Joda-Time provides a quality replacement for the Java date and time classes. The design allows for multiple calendar systems, while still providing a simple API. The 'default' calendar is the ISO8601 standard which is used by XML. The Gregorian, Julian, Buddhist, Coptic, Ethiopic and Islamic systems are also included, and we welcome further additions. Supporting classes include time zone, duration, format and parsing."&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8762274703812576773-7936007683600628173?l=m0smith.freeshell.org%2Fblog-software%2Findex.html'/&gt;&lt;/div&gt;</content><link rel='related' href='http://joda-time.sourceforge.net/' title='Joda Time - Java date and time API - Home'/><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/8762274703812576773/7936007683600628173/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=8762274703812576773&amp;postID=7936007683600628173' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8762274703812576773/posts/default/7936007683600628173'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8762274703812576773/posts/default/7936007683600628173'/><link rel='alternate' type='text/html' href='http://m0smith.freeshell.org/blog-software/2008/06/joda-time-java-date-and-time-api-home.html' title='Joda Time - Java date and time API - Home'/><author><name>Matthew O. Smith</name><uri>http://www.blogger.com/profile/09782540965685467311</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='11542841890840340209'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8762274703812576773.post-824715824083350063</id><published>2008-06-25T12:49:00.000-07:00</published><updated>2008-06-25T14:22:48.600-07:00</updated><title type='text'>Josh Bloch: How To Design A Good API and Why it Matters</title><content type='html'>I saw this over at DZone and found it important enough to share.  At the end Josh references a &lt;a href="http://doi.acm.org/10.1145/1176617.1176622"&gt;handout&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;embed id="VideoPlayback" style="width: 400px; height: 326px;" allowfullscreen="true" src="http://video.google.com/googleplayer.swf?docid=-3733345136856180693&amp;amp;hl=en&amp;amp;fs=true" type="application/x-shockwave-flash"&gt;&lt;/embed&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8762274703812576773-824715824083350063?l=m0smith.freeshell.org%2Fblog-software%2Findex.html'/&gt;&lt;/div&gt;</content><link rel='related' href='http://video.google.com/videoplay?docid=-3733345136856180693&amp;q=Designing+API&amp;ei=ADBbSNSKGaLQ4ALW89T5Dg' title='Josh Bloch: How To Design A Good API and Why it Matters'/><link rel='enclosure' type='' href='http://doi.acm.org/10.1145/1176617.1176622' length='0'/><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/8762274703812576773/824715824083350063/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=8762274703812576773&amp;postID=824715824083350063' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8762274703812576773/posts/default/824715824083350063'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8762274703812576773/posts/default/824715824083350063'/><link rel='alternate' type='text/html' href='http://m0smith.freeshell.org/blog-software/2008/06/josh-bloch-how-to-design-good-api-and.html' title='Josh Bloch: How To Design A Good API and Why it Matters'/><author><name>Matthew O. Smith</name><uri>http://www.blogger.com/profile/09782540965685467311</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='11542841890840340209'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8762274703812576773.post-628264798748513446</id><published>2008-06-16T13:08:00.000-07:00</published><updated>2008-06-16T13:08:15.660-07:00</updated><title type='text'>Spread Firefox | Download Day 2008</title><content type='html'>I think I can help with this world record.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.spreadfirefox.com/en-US/worldrecord/"&gt;Spread Firefox | Download Day 2008&lt;/a&gt;: "Set a Guinness World Record&lt;br /&gt;Enjoy a Better Web&lt;br /&gt;&lt;br /&gt;Sounds like a good deal, right? All you have to do is get Firefox 3 during Download Day to help set the record for most software downloads in 24 hours - it’s that easy. We're not asking you to swallow a sword or to balance 30 spoons on your face, although that would be kind of awesome.&lt;br /&gt;&lt;br /&gt;The official date for the launch of Firefox 3 is June 17, 2008. Join our community and this effort by pledging today"&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8762274703812576773-628264798748513446?l=m0smith.freeshell.org%2Fblog-software%2Findex.html'/&gt;&lt;/div&gt;</content><link rel='related' href='http://www.spreadfirefox.com/en-US/worldrecord/' title='Spread Firefox | Download Day 2008'/><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/8762274703812576773/628264798748513446/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=8762274703812576773&amp;postID=628264798748513446' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8762274703812576773/posts/default/628264798748513446'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8762274703812576773/posts/default/628264798748513446'/><link rel='alternate' type='text/html' href='http://m0smith.freeshell.org/blog-software/2008/06/spread-firefox-download-day-2008.html' title='Spread Firefox | Download Day 2008'/><author><name>Matthew O. Smith</name><uri>http://www.blogger.com/profile/09782540965685467311</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='11542841890840340209'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8762274703812576773.post-3262110899281743470</id><published>2008-05-13T06:53:00.000-07:00</published><updated>2008-05-13T06:55:58.569-07:00</updated><title type='text'>Smash Mouth @ Java One 2008</title><content type='html'>Here is a video of Smash Mouth at JavaOne 2008.  Be sure and check out 1:15 into the video.  I am in the frame, guess which one I am.  &lt;br /&gt;&lt;br /&gt;Thanks to &lt;a href="http://weblogs.java.net/blog/arungupta/archive/2008/05/take_12_smash_m.html"&gt;Arun &lt;/a&gt;for posting the video.&lt;br /&gt;   &lt;br /&gt;&lt;object width="425" height="355"&gt;&lt;param name="movie" value="http://www.youtube.com/v/wIVhAZut4Ns&amp;hl=en&amp;rel=0"&gt;&lt;/param&gt;&lt;param name="wmode" value="transparent"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/wIVhAZut4Ns&amp;hl=en&amp;rel=0" type="application/x-shockwave-flash" wmode="transparent" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8762274703812576773-3262110899281743470?l=m0smith.freeshell.org%2Fblog-software%2Findex.html'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/8762274703812576773/3262110899281743470/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=8762274703812576773&amp;postID=3262110899281743470' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8762274703812576773/posts/default/3262110899281743470'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8762274703812576773/posts/default/3262110899281743470'/><link rel='alternate' type='text/html' href='http://m0smith.freeshell.org/blog-software/2008/05/smash-mouth-java-one-2008.html' title='Smash Mouth @ Java One 2008'/><author><name>Matthew O. Smith</name><uri>http://www.blogger.com/profile/09782540965685467311</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='11542841890840340209'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8762274703812576773.post-5578015240404653469</id><published>2008-05-12T10:07:00.000-07:00</published><updated>2008-05-12T11:00:10.662-07:00</updated><title type='text'>JavaOne 2008 Session I attended</title><content type='html'>TS-4817 The Java™ Platform Portlet Specification 2.0 (JSR 286)    &lt;br /&gt;    An excellent session on the features and uses cases for the new portlet spec.  Well worth a look.&lt;br /&gt;&lt;br /&gt;TS-6623 More Effective Java    &lt;br /&gt;    The slides highlight some of the new topics covered in the best selling book at JavaOne.  No Java developer should be without it.  Get yours today!  &lt;br /&gt;&lt;br /&gt;TS-6169 &lt;a id="rdz30"&gt;Spring Framework 2.5: New and Notable&lt;/a&gt;    &lt;br /&gt;    What is new and why we care.  A must see for anyone using Springframework.  Note:  JDK 1.3 support is being dropped.  &lt;br /&gt;&lt;br /&gt;TS-6589 &lt;a id="euin0"&gt;Defective Java™ Code: Turning WTF Code into a Learning Experience&lt;/a&gt;    &lt;br /&gt;    Another excellent session after the vein of the famous "Java Puzzlers", which was missing from this year's lineup.  &lt;br /&gt;&lt;br /&gt;TS-5250 &lt;a id="ok1n0"&gt;Asynchronous Ajax for Revolutionary Web Applications&lt;/a&gt;    &lt;br /&gt;    Focused on Reverse Ajax or Comet with samples on many platforms including Glassfish, Weblogic, Tomcat, Grizzly.  &lt;br /&gt;&lt;br /&gt;TS-6389 &lt;a id="qbpg0"&gt;Growing Open-Source Developer Communities&lt;/a&gt;    &lt;br /&gt;    The presentation gives a few common sense ideas, nothing really earth shattering.  &lt;br /&gt;&lt;br /&gt;TS-5509 &lt;a id="ba270"&gt;Java™ Persistence API 2.0&lt;/a&gt;    &lt;br /&gt;    An overview of the upcoming features of the new JPA.   Worth a look.  &lt;br /&gt;&lt;br /&gt;TS-5859 &lt;a id="lr.l0"&gt;Unit-Testing Database Operations with DBUnit&lt;/a&gt;    &lt;br /&gt;    A great look at a data base unit test tool.  If your project uses a database, this presentation will be worth a look.  Good for those of us already using DBUnit.  &lt;br /&gt;&lt;br /&gt;BOF-4798 &lt;a id="dx5w2"&gt;Parleys.com: An Adobe Flex/AIR and JavaFX™ Case Study&lt;/a&gt;     A look at a website being developed in DHTML, GWT, Flax/Air and JavaFX. &lt;br /&gt;    The presentation included a great overview of the 4 environments with a pros/cons comparison.   A similar discussion can be found at an &lt;a title="interview with Stephan Janssen" target="_blank" href="http://www.infoq.com/news/2008/03/stephan-janssen-parleys-ria" id="xt9w"&gt;interview with Stephan Janssen&lt;/a&gt;.  &lt;br /&gt;&lt;br /&gt;TS-6590 &lt;a id="yxkf0"&gt;Using FindBugs in Anger&lt;/a&gt;    &lt;br /&gt;    If you have 100,00+ lines of code and 2 hours, this presentation will help you make the best use of your time.  Helps sort out the different warning levels and where to get the best return on your investment of time.  &lt;br /&gt;&lt;br /&gt;TS-7669 &lt;a id="tbms0"&gt;Continuous Regression Testing for Java™ EE Apps: Change Code Without Fear&lt;/a&gt;    &lt;br /&gt;    Some older information and somewhat disappointing.  Many of the techniques we currently use were not discussed.  &lt;br /&gt;&lt;br /&gt;TS-5165 &lt;a id="g:b02"&gt;Programming with Functional Objects in Scala&lt;/a&gt;    &lt;br /&gt;    A quick into to Scala which has some nice features.  &lt;br /&gt;&lt;br /&gt;TS-6611 &lt;a id="sxs40"&gt;Filthy-Rich Clients: Filthier, Richer, Clientier&lt;/a&gt;    &lt;br /&gt;    A gee-whiz demo some effects in Swing.  Take a look for some good ideas if you are into Swing.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8762274703812576773-5578015240404653469?l=m0smith.freeshell.org%2Fblog-software%2Findex.html'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/8762274703812576773/5578015240404653469/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=8762274703812576773&amp;postID=5578015240404653469' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8762274703812576773/posts/default/5578015240404653469'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8762274703812576773/posts/default/5578015240404653469'/><link rel='alternate' type='text/html' href='http://m0smith.freeshell.org/blog-software/2008/05/javaone-2008-session-i-attended-ts-4817.html' title='JavaOne 2008 Session I attended'/><author><name>Matthew O. Smith</name><uri>http://www.blogger.com/profile/09782540965685467311</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='11542841890840340209'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8762274703812576773.post-39769297591421302</id><published>2008-05-07T10:49:00.000-07:00</published><updated>2008-05-07T10:49:41.423-07:00</updated><title type='text'>Embedding Apache Pluto</title><content type='html'>This areticle may prove interesting to getting portletUnit packaged with maven.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.developer.com/java/web/article.php/3563411"&gt;Embedding Apache Pluto&lt;/a&gt;: "Apache Pluto, the reference implementation of the Java Portlet Specification, implements a portlet container that can be embedded easily within a portal or Web application. This article provides a comprehensive tutorial that explains how to embed the Pluto Portlet Container (version 1.1) into a Web application. It investigates the basic architecture of Portal Systems, provides an overview of Pluto's public API, and discusses two different integration techniques."&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8762274703812576773-39769297591421302?l=m0smith.freeshell.org%2Fblog-software%2Findex.html'/&gt;&lt;/div&gt;</content><link rel='related' href='http://www.developer.com/java/web/article.php/3563411' title='Embedding Apache Pluto'/><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/8762274703812576773/39769297591421302/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=8762274703812576773&amp;postID=39769297591421302' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8762274703812576773/posts/default/39769297591421302'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8762274703812576773/posts/default/39769297591421302'/><link rel='alternate' type='text/html' href='http://m0smith.freeshell.org/blog-software/2008/05/embedding-apache-pluto.html' title='Embedding Apache Pluto'/><author><name>Matthew O. Smith</name><uri>http://www.blogger.com/profile/09782540965685467311</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='11542841890840340209'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8762274703812576773.post-3681702013005798409</id><published>2008-05-05T05:12:00.000-07:00</published><updated>2008-05-05T05:14:02.181-07:00</updated><title type='text'>Krugle: Source Code search engire</title><content type='html'>Krugle is a search engine for source code.  I could at least find &lt;a href="http://www.krugle.org/kse/files?query=portletunit#1"&gt;my own project&lt;/a&gt;.  Are there any others?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8762274703812576773-3681702013005798409?l=m0smith.freeshell.org%2Fblog-software%2Findex.html'/&gt;&lt;/div&gt;</content><link rel='related' href='http://www.krugle.org/kse/files?query=portletunit#1' title='Krugle: Source Code search engire'/><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/8762274703812576773/3681702013005798409/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=8762274703812576773&amp;postID=3681702013005798409' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8762274703812576773/posts/default/3681702013005798409'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8762274703812576773/posts/default/3681702013005798409'/><link rel='alternate' type='text/html' href='http://m0smith.freeshell.org/blog-software/2008/05/krugle-source-code-search-engire.html' title='Krugle: Source Code search engire'/><author><name>Matthew O. Smith</name><uri>http://www.blogger.com/profile/09782540965685467311</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='11542841890840340209'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8762274703812576773.post-4636042035426093714</id><published>2008-05-01T13:37:00.000-07:00</published><updated>2008-05-01T13:37:30.059-07:00</updated><title type='text'>Occasional Java Coder: Spring 2.0 form tags</title><content type='html'>This page has a really nice example of HTML date input using Springframework form tags.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://locrianmode.blogspot.com/2006/08/i-like-springs-form-tags.html"&gt;Occasional Java Coder: Spring 2.0 form tags&lt;/a&gt;: "I like the Spring's form tags. It just does what it what I wanted. Registered a custom date editor in the controller and used Spring's select tag for the date selection instead of input to a text box."&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8762274703812576773-4636042035426093714?l=m0smith.freeshell.org%2Fblog-software%2Findex.html'/&gt;&lt;/div&gt;</content><link rel='related' href='http://locrianmode.blogspot.com/2006/08/i-like-springs-form-tags.html' title='Occasional Java Coder: Spring 2.0 form tags'/><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/8762274703812576773/4636042035426093714/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=8762274703812576773&amp;postID=4636042035426093714' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8762274703812576773/posts/default/4636042035426093714'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8762274703812576773/posts/default/4636042035426093714'/><link rel='alternate' type='text/html' href='http://m0smith.freeshell.org/blog-software/2008/05/occasional-java-coder-spring-20-form.html' title='Occasional Java Coder: Spring 2.0 form tags'/><author><name>Matthew O. Smith</name><uri>http://www.blogger.com/profile/09782540965685467311</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='11542841890840340209'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8762274703812576773.post-5337670733153031324</id><published>2008-05-01T10:44:00.000-07:00</published><updated>2008-05-01T10:44:12.295-07:00</updated><title type='text'>Code Beach: Get the Names of the Months in Java</title><content type='html'>I did not even know about the DateFormatSymbols class.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://blog.codebeach.com/2008/02/get-names-of-months-in-java.html"&gt;Code Beach: Get the Names of the Months in Java&lt;/a&gt;: "This tutorial shows how to get the month names for the current locale or for a specific locale. Java provides an easy mechanism for getting localized month names. To get the month names, you will use the DateFormatSymbols in the java.text package. By default, the constructor will create a DateFormatSymbols object based on the current locale.&lt;br /&gt;&lt;br /&gt;    DateFormatSymbols symbols = new DateFormatSymbols();"&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8762274703812576773-5337670733153031324?l=m0smith.freeshell.org%2Fblog-software%2Findex.html'/&gt;&lt;/div&gt;</content><link rel='related' href='http://blog.codebeach.com/2008/02/get-names-of-months-in-java.html' title='Code Beach: Get the Names of the Months in Java'/><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/8762274703812576773/5337670733153031324/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=8762274703812576773&amp;postID=5337670733153031324' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8762274703812576773/posts/default/5337670733153031324'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8762274703812576773/posts/default/5337670733153031324'/><link rel='alternate' type='text/html' href='http://m0smith.freeshell.org/blog-software/2008/05/code-beach-get-names-of-months-in-java.html' title='Code Beach: Get the Names of the Months in Java'/><author><name>Matthew O. Smith</name><uri>http://www.blogger.com/profile/09782540965685467311</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='11542841890840340209'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry></feed>