<?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/"
	>

<channel>
	<title>Elegando</title>
	<atom:link href="http://www.elegando.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.elegando.com</link>
	<description>elegant &#187; being unusually effective and simple...</description>
	<pubDate>Tue, 16 Jun 2009 01:58:49 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.7</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Seam + Google App Engine</title>
		<link>http://www.elegando.com/2009/06/seam-google-app-engine/</link>
		<comments>http://www.elegando.com/2009/06/seam-google-app-engine/#comments</comments>
		<pubDate>Tue, 16 Jun 2009 01:58:49 +0000</pubDate>
		<dc:creator>Jason G.</dc:creator>
		
		<category><![CDATA[JBoss Seam]]></category>

		<guid isPermaLink="false">http://www.elegando.com/2009/06/seam-google-app-engine/</guid>
		<description><![CDATA[I was looking around to see if anyone got Seam working on the Google App Engine for Java&#8230; and the short answer is both yes and no. Here are the 3 links that will tell you the state of the state as of this writing&#8230;

SeamFramework - The people who developed Seam lay down their perspective&#8230;
Get [...]]]></description>
			<content:encoded><![CDATA[<p>I was looking around to see if anyone got Seam working on the <a href="http://code.google.com/appengine/docs/java/overview.html">Google App Engine for Java</a>&#8230; and the short answer is both yes and no. Here are the 3 links that will tell you the state of the state as of this writing&#8230;</p>
<ul>
<li><a href="http://www.seamframework.org/Community/SeamGoogleAppEngine">SeamFramework</a> - The people who developed Seam lay down their perspective&#8230;</li>
<li><a href="http://ctpjava.blogspot.com/2009/04/jboss-seam-on-google-app-engine-first.html">Get it Working</a> - One developer got it working, with more than a few tweaks and hacks&#8230;</li>
<li><a href="http://www.michaelyuan.com/blog/2009/04/09/google-app-engine-for-java-first-impressions/">Overview from Michael Yuan</a> - a quick list of what&#8217;s good, what won&#8217;t be supported, from a Seam expert&#8230;</li>
</ul>
<p>Short answer, it&#8217;s not there yet, at least not with all the features and functionality you would be using Seam for in the first place&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.elegando.com/2009/06/seam-google-app-engine/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Firefox Profile Info</title>
		<link>http://www.elegando.com/2009/04/firefox-profile-info/</link>
		<comments>http://www.elegando.com/2009/04/firefox-profile-info/#comments</comments>
		<pubDate>Tue, 28 Apr 2009 15:30:36 +0000</pubDate>
		<dc:creator>Jason G.</dc:creator>
		
		<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.elegando.com/2009/04/firefox-profile-info/</guid>
		<description><![CDATA[Every once in a while, I seem to need to start with a fresh profile in Firefox&#8230; here&#8217;s the Mozilla support document on keeping only what you want&#8230; for me, passwords, bookmarks, and search plugins. Everything else is easier to reinstall&#8230;
]]></description>
			<content:encoded><![CDATA[<p>Every once in a while, I seem to need to start with a fresh profile in Firefox&#8230; <a href="http://support.mozilla.com/en-US/kb/Recovering+important+data+from+an+old+profile#_Passwords">here&#8217;s the Mozilla support document</a> on keeping only what you want&#8230; for me, passwords, bookmarks, and search plugins. Everything else is easier to reinstall&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.elegando.com/2009/04/firefox-profile-info/feed/</wfw:commentRss>
		</item>
		<item>
		<title>GeekTool and Calendaring</title>
		<link>http://www.elegando.com/2009/04/geektool-and-calendaring/</link>
		<comments>http://www.elegando.com/2009/04/geektool-and-calendaring/#comments</comments>
		<pubDate>Sun, 19 Apr 2009 18:29:02 +0000</pubDate>
		<dc:creator>Jason G.</dc:creator>
		
		<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.elegando.com/2009/04/geektool-and-calendaring/</guid>
		<description><![CDATA[Here&#8217;s what I have on my desktop now, thanks to GeekTool and some simple one-line scripts.

Here are the useful command line arguments:


date +%A » prints the day of the week (Sunday)
date +%d » prints the day of the month (19)
date +&#8217;%B, %Y&#8217; » prints the month, year (April, 2009)
weather.sh » as described below

Here&#8217;s the contents [...]]]></description>
			<content:encoded><![CDATA[<p>Here&#8217;s what I have on my desktop now, thanks to <a href="http://projects.tynsoe.org/en/geektool/">GeekTool</a> and some simple one-line scripts.</p>
<p><img src="http://www.elegando.com/wordpress/../web/2009/04/picture-1.png" width="216" height="92" alt="Picture 1.png" rel="lightbox" /></p>
<p>Here are the useful command line arguments:</p>
<p><span id="more-107"></span></p>
<ul>
<li>date +%A » prints the day of the week (Sunday)</li>
<li>date +%d » prints the day of the month (19)</li>
<li>date +&#8217;%B, %Y&#8217; » prints the month, year (April, 2009)</li>
<li>weather.sh » as described below</li>
</ul>
<p>Here&#8217;s the contents of weather.sh:</p>
<pre name="code" class="java">
curl --silent "http://xml.weather.yahoo.com/forecastrss?p=YOURCITYCODE&#038;u=f" | grep -E '(Current Conditions:|F<BR)' | sed -e 's/Current Conditions://' -e 's/<br \/>//' -e 's/<b>//' -e 's/<\/b>//' -e 's/<BR \/>//' -e 's/<description>//' -e 's/<\/description>//'
</pre>
<p>Replace YOURCITYCODE with your appropriate city code as Yahoo Weather likes it.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.elegando.com/2009/04/geektool-and-calendaring/feed/</wfw:commentRss>
		</item>
		<item>
		<title>FacesMessages Basics</title>
		<link>http://www.elegando.com/2009/04/facesmessages-basics/</link>
		<comments>http://www.elegando.com/2009/04/facesmessages-basics/#comments</comments>
		<pubDate>Wed, 15 Apr 2009 17:54:40 +0000</pubDate>
		<dc:creator>Jason G.</dc:creator>
		
		<category><![CDATA[JSF]]></category>

		<guid isPermaLink="false">http://www.elegando.com/2009/04/facesmessages-basics/</guid>
		<description><![CDATA[<p>You can split your FacesMessages into global and field specific messages.<br /></p>]]></description>
			<content:encoded><![CDATA[<p>In your XHTML Page:</p>
<pre class="xml" name="code">
<s:validateAll>
	<s:decorate id="nameDecorator">
	Name: <h:inputText value="#{bean.name}" id="name" required="true" />
	</s:decorate>
</s:validateAll>
</pre>
<p>In your backing bean:</p>
<pre class="java" name="code">
// to show up where globalOnly messages appear
facesMessages.add("Changes were not applied...");

// do your field-level validation
facesMessages.addToControl("name", "Name was not valid.");
</pre>
<p>Results:<br />
<img src="http://www.elegando.com/wordpress/../web/2009/04/picture-2.png" width="441" height="76" alt="Picture 2.png" rel="lightbox" /></p>
<p>Update your CSS to fit your style preferences.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.elegando.com/2009/04/facesmessages-basics/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Hibernate Validation</title>
		<link>http://www.elegando.com/2009/04/hibernate-validation/</link>
		<comments>http://www.elegando.com/2009/04/hibernate-validation/#comments</comments>
		<pubDate>Wed, 15 Apr 2009 17:43:19 +0000</pubDate>
		<dc:creator>Jason G.</dc:creator>
		
		<category><![CDATA[Hibernate]]></category>

		<guid isPermaLink="false">http://www.elegando.com/2009/04/hibernate-validation/</guid>
		<description><![CDATA[Here’s a list of annotations that you can use to validate java beans:

@Length(min=, max=) Checks whether the string length matches the range
@Max(value=) Checks that the value is less than or equal to the max
@Min(value=) Checks that the value is greater than or equal to the min
@NotNull Checks that the value is not null
@Past For a [...]]]></description>
			<content:encoded><![CDATA[<p>Here’s a list of annotations that you can use to validate java beans:</p>
<ul>
<li>@Length(min=, max=) Checks whether the string length matches the range</li>
<li>@Max(value=) Checks that the value is less than or equal to the max</li>
<li>@Min(value=) Checks that the value is greater than or equal to the min</li>
<li>@NotNull Checks that the value is not null</li>
<li>@Past For a date object, checks that the date is in the past</li>
<li>@Future For a date object, checks that the date is in the future</li>
<li>@Pattern(regex=”regexp”, flag=) For a string, checks that the string matches this pattern</li>
<li>@Range(min=, max=) Checks whether the value is between the min and the max</li>
<li>@Size(min=, max=) For collections, checks that the size is between the two</li>
<li>@AssertFalse Asserts that the evaluation of the method is false</li>
<li>@AssertTrue Asserts that the evaluation of the method is true</li>
<li>@Valid For a collection or a map, checks that all the objects they contain are valid</li>
<li>@Email Checks whether the string conforms to the email address specification</li>
</ul>
<p>From <a href="http://depressedprogrammer.wordpress.com/2008/06/24/jsf-seam-validation-custom-messages-annotations-internationalization/">Depressed Programmer</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.elegando.com/2009/04/hibernate-validation/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Firefox: Remember All Passwords</title>
		<link>http://www.elegando.com/2009/02/firefox-remember-all-passwords/</link>
		<comments>http://www.elegando.com/2009/02/firefox-remember-all-passwords/#comments</comments>
		<pubDate>Sun, 15 Feb 2009 05:18:28 +0000</pubDate>
		<dc:creator>Jason G.</dc:creator>
		
		<category><![CDATA[General]]></category>

		<category><![CDATA[JavaScript]]></category>

		<guid isPermaLink="false">http://www.elegando.com/2009/02/firefox-remember-all-passwords/</guid>
		<description><![CDATA[From cybernetnews&#8230; you can make it so websites can&#8217;t override the password saving feature in Firefox. Edit the file nsLoginManager.js, and modify line 770 to return false all the time.

    _isAutocompleteDisabled :  function (element) {
        if (element &#38;&#38; element.hasAttribute("autocomplete") &#38;&#38;
     [...]]]></description>
			<content:encoded><![CDATA[<p>From <a href="http://cybernetnews.com/2009/02/13/firefox-remember-passwords/">cybernetnews</a>&#8230; you can make it so websites can&#8217;t override the password saving feature in Firefox. Edit the file nsLoginManager.js, and modify line 770 to return false all the time.<br />
<span id="more-94"></span></p>
<pre class="java" name="code">    _isAutocompleteDisabled :  function (element) {
        if (element &amp;&amp; element.hasAttribute("autocomplete") &amp;&amp;
            element.getAttribute("autocomplete").toLowerCase() == "off")
            /** Change this line to be return false **/
            return false;

        return false;
    },</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.elegando.com/2009/02/firefox-remember-all-passwords/feed/</wfw:commentRss>
		</item>
		<item>
		<title>File Download Support</title>
		<link>http://www.elegando.com/2009/01/file-download-support/</link>
		<comments>http://www.elegando.com/2009/01/file-download-support/#comments</comments>
		<pubDate>Mon, 26 Jan 2009 19:59:20 +0000</pubDate>
		<dc:creator>Jason G.</dc:creator>
		
		<category><![CDATA[JBoss Seam]]></category>

		<guid isPermaLink="false">http://www.elegando.com/2009/01/file-download-support/</guid>
		<description><![CDATA[Need to enable file download support in a Seam application? Here&#8217;s how. Make sure you&#8217;re running Seam version 2.1.2 or later.
]]></description>
			<content:encoded><![CDATA[<p>Need to enable file download support in a Seam application? <a href="http://in.relation.to/Bloggers/FileDownloadSupport">Here&#8217;s how</a>. Make sure you&#8217;re running Seam version 2.1.2 or later.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.elegando.com/2009/01/file-download-support/feed/</wfw:commentRss>
		</item>
		<item>
		<title>RefCardz</title>
		<link>http://www.elegando.com/2009/01/refcardz/</link>
		<comments>http://www.elegando.com/2009/01/refcardz/#comments</comments>
		<pubDate>Tue, 13 Jan 2009 15:32:53 +0000</pubDate>
		<dc:creator>Jason G.</dc:creator>
		
		<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.elegando.com/2009/01/refcardz/</guid>
		<description><![CDATA[<p>There are some nice <a href="http://refcardz.dzone.com/">quick reference cards over at DZone</a>... free registration is required to download to pdf. See below for an example Refcardz of jQuery Selectors.</p>]]></description>
			<content:encoded><![CDATA[<p>There are some nice <a href="http://refcardz.dzone.com/">quick reference cards over at DZone</a>&#8230; free registration is required to download to pdf. See below for an example Refcardz of jQuery Selectors.</p>
<p><span id="more-90"></span><object codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0" id="doc_658883887759419" name="doc_658883887759419" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" align="middle" height="500" width="100%"><param name="movie" value="http://documents.scribd.com/ScribdViewer.swf?document_id=7471024&amp;access_key=key-p93ty9pxdq5mjrr7zmh&amp;page=1&amp;version=1&amp;viewMode=" /><param name="quality" value="high" /><param name="play" value="true" /><param name="loop" value="true" /><param name="scale" value="showall" /><param name="wmode" value="opaque" /><param name="devicefont" value="false" /><param name="bgcolor" value="#ffffff" /><param name="menu" value="true" /><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always" /><param name="salign" value="" /><embed src="http://documents.scribd.com/ScribdViewer.swf?document_id=7471024&amp;access_key=key-p93ty9pxdq5mjrr7zmh&amp;page=1&amp;version=1&amp;viewMode=" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" play="true" loop="true" scale="showall" wmode="opaque" devicefont="false" bgcolor="#FFFFFF" name="doc_658883887759419_object" menu="true" allowfullscreen="true" allowscriptaccess="always" salign="" type="application/x-shockwave-flash" align="middle" height="500" width="100%" /><br />
</object></p>
]]></content:encoded>
			<wfw:commentRss>http://www.elegando.com/2009/01/refcardz/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Onyxbits</title>
		<link>http://www.elegando.com/2008/12/onyxbits/</link>
		<comments>http://www.elegando.com/2008/12/onyxbits/#comments</comments>
		<pubDate>Sat, 06 Dec 2008 00:05:22 +0000</pubDate>
		<dc:creator>Jason G.</dc:creator>
		
		<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.elegando.com/2008/12/onyxbits/</guid>
		<description><![CDATA[I found an interesting set of Java tools at OnyxBits. Included is an animated gif maker, LDAP utilities, a program for drawing comics, and more.
]]></description>
			<content:encoded><![CDATA[<p>I found an interesting set of Java tools at <a href="http://www.onyxbits.de/node/8">OnyxBits</a>. Included is an animated gif maker, LDAP utilities, a program for drawing comics, and more.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.elegando.com/2008/12/onyxbits/feed/</wfw:commentRss>
		</item>
		<item>
		<title>SWT Scale and Scroll Mouse</title>
		<link>http://www.elegando.com/2008/12/swt-scale-and-scroll-mouse/</link>
		<comments>http://www.elegando.com/2008/12/swt-scale-and-scroll-mouse/#comments</comments>
		<pubDate>Thu, 04 Dec 2008 23:43:03 +0000</pubDate>
		<dc:creator>Jason G.</dc:creator>
		
		<category><![CDATA[Commentary]]></category>

		<category><![CDATA[SWT]]></category>

		<guid isPermaLink="false">http://www.elegando.com/2008/12/swt-scale-and-scroll-mouse/</guid>
		<description><![CDATA[If you use a SWT Scale object (a.k.a. a Slider), you might want to have it move as your user uses their scroll wheel on their mouse. Here&#8217;s the code to make it happen.
Scale verticalScale = new Scale(composite, SWT.VERTICAL);
verticalScale.addMouseWheelListener(new MouseWheelListener() {
    public void mouseScrolled(final MouseEvent e) {
      [...]]]></description>
			<content:encoded><![CDATA[<p>If you use a SWT Scale object (a.k.a. a Slider), you might want to have it move as your user uses their scroll wheel on their mouse. Here&#8217;s the code to make it happen.<span id="more-82"></span></p>
<pre class="java" name="code">Scale verticalScale = new Scale(composite, SWT.VERTICAL);
verticalScale.addMouseWheelListener(new MouseWheelListener() {
    public void mouseScrolled(final MouseEvent e) {
        Scale src = (Scale)e.getSource();
        src.setSelection( src.getSelection() - e.count );
    }
});</pre>
<p>You can scroll faster by doing (2*e.count) or similar&#8230;  Note that it is necessary to subtract the MouseEvent.count because in a vertical orientation, a Scale&#8217;s max value is at the bottom, not at the top.</p>
<p>You can also do this generically for horizontal and vertical scales with the following MouseWheelListener:</p>
<pre class="java" name="code">MouseWheelListener wheelListener = new MouseWheelListener() {
	public void mouseScrolled(final MouseEvent e) {
		Scale src = (Scale)e.getSource();
		if( (src.getStyle() &#038; SWT.VERTICAL) != 0 ) {
			src.setSelection( src.getSelection() - e.count );
		} else {
			src.setSelection( src.getSelection() + e.count );
		}
	}
};
</pre>
<p>If you don&#8217;t want to respond to the scroll wheel for horizontal scales, you can simply comment out the else block.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.elegando.com/2008/12/swt-scale-and-scroll-mouse/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
