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

<channel>
	<title>Hackerdude &#187; Dev Platforms</title>
	<atom:link href="http://www.hackerdude.com/category/dev-platforms/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.hackerdude.com</link>
	<description>Software Development Blog by David Martinez</description>
	<lastBuildDate>Fri, 17 Sep 2010 18:31:30 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.4</generator>
		<item>
		<title>Stupid monitoring trick: Watch mysql queries fly</title>
		<link>http://www.hackerdude.com/2009/05/14/stupid-monitoring-trick-watch-mysql-queries-fly/</link>
		<comments>http://www.hackerdude.com/2009/05/14/stupid-monitoring-trick-watch-mysql-queries-fly/#comments</comments>
		<pubDate>Thu, 14 May 2009 22:09:58 +0000</pubDate>
		<dc:creator>David Martinez</dc:creator>
				<category><![CDATA[SQL]]></category>

		<guid isPermaLink="false">http://www.hackerdude.com/2009/05/14/stupid-monitoring-trick-watch-mysql-queries-fly/</guid>
		<description><![CDATA[Put this somewhere in your ~/bin: watch 'echo "show processlist" &#124; mysql -u whateveruser --password=mypassword &#124; grep -v "show processlist" ' Now run it and you will have a poor man's monitor, kind of like top but for MySQL. That coupled with screen (or multiple terminals) may give you some quick and easy piece of [...]]]></description>
			<content:encoded><![CDATA[<p>Put this somewhere in your ~/bin:</p>
<p><code>watch 'echo "show processlist" | mysql -u whateveruser --password=mypassword | grep -v "show processlist" '</code></p>
<p>Now run it and you will have a poor man's monitor, kind of like top but for MySQL. That coupled with screen (or multiple terminals) may give you some quick and easy piece of mind.</p>
<p>This should give you *a lot* of monitoring automation ideas. It should be easy to put together a shell script that puts it all in a little "important things panel" to use watch on. Sometimes that's all you need.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.hackerdude.com/2009/05/14/stupid-monitoring-trick-watch-mysql-queries-fly/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Speed Up Firefox web browser &#8211; Ubuntu Geek</title>
		<link>http://www.hackerdude.com/2009/04/09/speed-up-firefox-web-browserubuntu-geek/</link>
		<comments>http://www.hackerdude.com/2009/04/09/speed-up-firefox-web-browserubuntu-geek/#comments</comments>
		<pubDate>Thu, 09 Apr 2009 18:13:55 +0000</pubDate>
		<dc:creator>David Martinez</dc:creator>
				<category><![CDATA[Mozilla XUL]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Mac]]></category>
		<category><![CDATA[osx]]></category>
		<category><![CDATA[software]]></category>

		<guid isPermaLink="false">http://www.hackerdude.com/2009/04/09/speed-up-firefox-web-browserubuntu-geek/</guid>
		<description><![CDATA[Ubuntu Geek provides a great little guide on speeding up Firefox. A lot of the about:config settings he proposes changing are already fairly optimal on a Mac, but disabling IPv6 seemed to make the most difference on my case. [From Speed Up Firefox web browser&#160;&#124;&#160;Ubuntu Geek]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.ubuntugeek.com">Ubuntu Geek</a> provides a great little guide on speeding up Firefox. A lot of the about:config settings he proposes changing are already fairly optimal on a Mac, but disabling IPv6 seemed to make the most difference on my case.</p>
<blockquote cite="http://www.ubuntugeek.com/speed-up-firefox-web-browser.html">
<p>[From <a href="http://www.ubuntugeek.com/speed-up-firefox-web-browser.html"><cite>  Speed Up Firefox web browser&#160;|&#160;Ubuntu Geek</cite></a>]
</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.hackerdude.com/2009/04/09/speed-up-firefox-web-browserubuntu-geek/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>JIRA To Omnifocus Script</title>
		<link>http://www.hackerdude.com/2009/03/04/jira-to-omnifocus-script/</link>
		<comments>http://www.hackerdude.com/2009/03/04/jira-to-omnifocus-script/#comments</comments>
		<pubDate>Wed, 04 Mar 2009 18:47:37 +0000</pubDate>
		<dc:creator>David Martinez</dc:creator>
				<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Mac]]></category>

		<guid isPermaLink="false">http://www.hackerdude.com/2009/03/04/jira-to-omnifocus-script/</guid>
		<description><![CDATA[This script logs into your JIRA and creates OmniFocus tasks for each of the JIRA items that are assigned to you, so they sync to your Omnifocus for iPhone, you only have to keep track of one inbox, etc. It only takes a tiny bit of setup. Setting up To set this up, do the [...]]]></description>
			<content:encoded><![CDATA[<p>This script logs into your <a href="http://www.atlassian.com/software/jira/" title="JIRA: Task Tracking Software">JIRA</a> and creates <a href="http://www.omnigroup.com/applications/omnifocus/" title="Omnifocus - Professional Grade Desktop Task Mnagement">OmniFocus</a> tasks for each of the JIRA items that are assigned to you, so they sync to your Omnifocus for iPhone, you only have to keep track of one inbox, etc. It only takes a tiny bit of setup.</p>
<p><span id="more-548"></span>
<div class="setup_instructions">
<h4>Setting up</h4>
<p>To set this up, do the following:</p>
<ol>
<li><a href="http://www.hackerdude.com/wp-content/sample_code/jiratoomnifocus.zip">Download the script</a> and put it somewhere it will run</li>
<li>Install the required gems (<a href="http://appscript.sourceforge.net/" title="Appscript - Ruby applescript automation">appscript</a>, <a href="http://crypt.rubyforge.org/" title="Crypt: pure-ruby cryptographic cyphers">crypt</a>, <a href="http://gilesbowkett.blogspot.com/2008/09/password-gem-v12-released.html">password</a>) with gem install.</li>
<li>Go to JIRA and create a saved filter with whatever settings you like. Note the filter ID.</li>
<li>Go to the top of the jiratoomnifocus file and set it on the JIRA_FILTER_ID constant, and set the JIRA_BASE_URL to the URL of your JIRA installation.</li>
<li>If you like to keep your system very secure, take a look at the security warning, below, at this time</li>
<li>Run it. You will be asked to login the first time. After it's done, note the new tasks on your Omnifocus. Delete a task and run it again to see it add it again without asking you for authentication.</li>
</ol>
<p>You're set up! Now you can put it on a cron line, like this one which sets it to run at office hours (use cron -e on Terminal for this):</p>
<pre>
0,10,20,30,40,50 7-18 * * * /yourdir/jiratoomnifocus > /yourdir//log/jira_to_omnifocus.log 2>&#38;1
</pre>
<p>Congratulations! You now have only one inbox again. Let me know if you use it; I'd love to know of more ideas on how we can make it better/easier to setup.</p>
<div class="security_warning">
<h4>Security Warning</h4>
<p>The password for your JIRA account will be saved on a file on your computer called ~/.hackerdude/jira_credentials.yml. It is encrypted using blowfish using a constant key.</p>
<p>As long as both your jiratoomnifocus script and your credentials file are secured as (chmod 700 and owned by the user that will be running it on cron), you should be okay and secure (unless someone breaks into your account, in which case you have bigger problems than your JIRA access!). The crypt key used is a constant on the jiratoomnifocus script. Change the CRYPT_KEY key for any other random string of the same length and delete the jira_credentials.yml file (so it asks for your password again) and it will be recreated using your key the next time you start it.</p>
</div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.hackerdude.com/2009/03/04/jira-to-omnifocus-script/feed/</wfw:commentRss>
		<slash:comments>15</slash:comments>
		</item>
		<item>
		<title>Ruby Appscript &#8211; Sweet automation</title>
		<link>http://www.hackerdude.com/2009/01/23/ruby-appscript-sweet-automation/</link>
		<comments>http://www.hackerdude.com/2009/01/23/ruby-appscript-sweet-automation/#comments</comments>
		<pubDate>Sat, 24 Jan 2009 00:50:26 +0000</pubDate>
		<dc:creator>David Martinez</dc:creator>
				<category><![CDATA[Mac]]></category>
		<category><![CDATA[Ruby]]></category>

		<guid isPermaLink="false">http://www.hackerdude.com/2009/01/23/ruby-appscript-sweet-automation/</guid>
		<description><![CDATA[Yesterday a coworker pointed me to ruby's appscript. I have found it nothing short of amazing. I love my Mac, and many of us like the idea of automating our software, until we try to use AppleScript to do it. To say that Applescript is professional developer unfriendly is an understatement. I like ruby but [...]]]></description>
			<content:encoded><![CDATA[<p>Yesterday a coworker pointed me to ruby's appscript. I have found it nothing short of amazing.</p>
<p>I love my Mac, and many of us like the idea of automating our software, until we try to use AppleScript to do it. To say that Applescript is professional developer unfriendly is an understatement. I like ruby but to make ruby and applescript talk requires sending strings to osascript in just the right way and getting the output from osascript back. Not a lot of fun at all.</p>
<p>Enter appscript. <a href="http://appscript.sourceforge.net/" title="Appscript - Ruby applescript automation">Appscript</a> is a ruby library that interfaces with applescript seamlessly.</p>
<p><span id="more-541"></span>
<p>What's pretty amazing is its power after you spend a little while on the irb console and keep using the tab key for autocompletion. It even introspects the dictionary to see what is available at this time. It doesn't always give the right thing but by trying things out and with a bit of logic you always get there. </p>
<p>There's also an app called ASDictionary that will spit out the dictionary with ruby syntax, though I never found the dictionary all that useful anyway (I mean yes, it has definitions for everything, but it seldom provides info on exactly how everything is tied together or examples of use). I personally prefer trying things out on the console.</p>
<p>Here are a few examples of its use. You can do all this on irb immediately after installing it with <strong>sudo gem install appscript</strong>:</p>
<h4>Driving iCal</h4>
<p>This will get all your calendars and print their names:</p>
<pre class="ruby">&nbsp;
<span style="color:#CC0066; font-weight:bold;">require</span> <span style="color:#996600;">'appscript'</span>
app = Appscript.<span style="color:#9900CC;">app</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#996600;">&quot;iCal&quot;</span><span style="color:#006600; font-weight:bold;">&#41;</span>
app.<span style="color:#9900CC;">calendars</span>.<span style="color:#9900CC;">get</span>.<span style="color:#9900CC;">each</span> <span style="color:#006600; font-weight:bold;">&#123;</span> |cal| <span style="color:#CC0066; font-weight:bold;">puts</span> cal.<span style="color:#9900CC;">name</span>.<span style="color:#9900CC;">get</span> <span style="color:#006600; font-weight:bold;">&#125;</span>
&nbsp;</pre>
<p>Just expanding on this concept a little more, you can also grab all the to-dos:  </p>
<pre class="ruby">&nbsp;
app.<span style="color:#9900CC;">calendars</span>.<span style="color:#9900CC;">get</span>.<span style="color:#9900CC;">each</span> <span style="color:#006600; font-weight:bold;">&#123;</span> |cal|
  cal.<span style="color:#9900CC;">get</span>.<span style="color:#9900CC;">todos</span>.<span style="color:#9900CC;">get</span>.<span style="color:#9900CC;">each</span> <span style="color:#006600; font-weight:bold;">&#123;</span>|todo|
    <span style="color:#CC0066; font-weight:bold;">puts</span> todo.<span style="color:#9900CC;">summary</span>.<span style="color:#9900CC;">get</span>
  <span style="color:#006600; font-weight:bold;">&#125;</span>
<span style="color:#006600; font-weight:bold;">&#125;</span>
&nbsp;</pre>
<h4>Automating Safari. Ruby to Applescript to Javascript</h4>
<p>Haven't tried marshaling values back as I'm just exploring, but I don't see why it couldn't.</p>
<pre class="ruby">&nbsp;
<span style="color:#CC0066; font-weight:bold;">require</span> <span style="color:#996600;">'appscript'</span>
app = Appscript.<span style="color:#9900CC;">app</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#996600;">&quot;iCal&quot;</span><span style="color:#006600; font-weight:bold;">&#41;</span>
app.<span style="color:#9900CC;">open_location</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#996600;">&quot;http://www.google.com&quot;</span><span style="color:#006600; font-weight:bold;">&#41;</span>
window = app.<span style="color:#9900CC;">documents</span>.<span style="color:#9900CC;">get</span><span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#006666;">0</span><span style="color:#006600; font-weight:bold;">&#93;</span>
window.<span style="color:#9900CC;">do_JavaScript</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#996600;">&quot;window.alert('Your title is '+document.title)&quot;</span><span style="color:#006600; font-weight:bold;">&#41;</span>
&nbsp;</pre>
<p>I'm sure you can find some use for this. I already did - I wrote myself a quick cron to add all the JIRA tasks assigned to me to <a href="http://www.omnigroup.com/applications/omnifocus/" title="Omnifocus - Professional Grade Desktop Task Mnagement">Omnifocus</a> if I don't already have them there. I'm looking forward to seeing what else I can put this to use.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.hackerdude.com/2009/01/23/ruby-appscript-sweet-automation/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Concurrency Strategies for Hibernate Caching</title>
		<link>http://www.hackerdude.com/2007/07/30/concurrency-strategies-for-hibernate-caching/</link>
		<comments>http://www.hackerdude.com/2007/07/30/concurrency-strategies-for-hibernate-caching/#comments</comments>
		<pubDate>Mon, 30 Jul 2007 19:07:49 +0000</pubDate>
		<dc:creator>David Martinez</dc:creator>
				<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://www.hackerdude.com/2007/07/30/concurrency-strategies-for-hibernate-caching/</guid>
		<description><![CDATA[Caching and concurrency management are tricky. If you have a cache that lives in memory but you have updates to the database that the objects originally came from, how are you going to make sure that the cached objects still reflect the contents of the database? This really depends on what type of data you [...]]]></description>
			<content:encoded><![CDATA[<p>Caching and concurrency management are tricky. If you have a cache that lives in memory but you have updates to the database that the objects originally came from, how are you going to make sure that the cached objects still reflect the contents of the database?</p>
<p>This really depends on what type of data you are dealing with. Data types that are mostly read (news, notices, articles) probably benefit from whatever caching you can provide, while areas of data that change a lot (shopping carts, server status records) probably won't benefit from caching at all.</p>
<p>Here are the concurrency strategies on hibernate caching explained:</p>
<p />
<p /><!-- technorati tags begin -->
<p style="font-size:10px;text-align:right;">technorati tags:<br />
<a href="http://technorati.com/tag/hibernate" rel="tag">hibernate</a><br />
<a href="http://technorati.com/tag/java" rel="tag">java</a>
</p>
<p><!-- technorati tags end --></p>
<p><span id="more-511"></span></p>
<ul>
<li><b>Transactional:</b> Full Transaction Isolation, even <a href="http://en.wikipedia.org/wiki/Isolation_(computer_science)#REPEATABLE_READ" title="Repeatable Read Isolation - Wikipedia, the free encyclopedia">repeatable-read</a>. This is not particularly fast, but it does guarantee full transactional isolation.</li>
<li><b>Read-Write:</b> A bit more relaxed than transactional, it uses a timestamp to maintain <a href="http://en.wikipedia.org/wiki/Isolation_(computer_science)#READ_COMMITTED" title="Read Commited Isolation (computer science) - Wikipedia, the free encyclopedia">Read-Commited</a> transaction isolation.</li>
<li><b>Non-Strict Read-Write:</b> With this one, you start ending up with stale data, because since it is not strict it provides no guarantee of consistency. If you think things may be updated and provide you with stale data, set a short timeout for expiration.</li>
<li><b>Read-Only</b>: Use this one for Reference data that never changes (days of months, cities, states, etc).</li>
</ul>
<p>Note that, on hibernate, the concurrency strategies available will depend on your cache provider. Also note that all caching only focuses on things your application updated. If you have other applications also updating data on the same database consider not using caching at all for those classes.</p>
<p>If you insist on using caching in this situation, be prepared for caching errors on production and be ready to do some cache management - provide a way to look into the cache statistics and clear the cached elements, and use timeouts that are sensible.</p>
<p>Finally, caching should be your last option for performance, not your first. I can't tell you how many times I've seen teams want to mess around with the cache settings when they have queries so bloated that would make Windows Vista blush. Fix your query issues first, then apply caching. If you add caching when you haven't fixed underlying query problems you only accomplish two things: Sweeping your problem under the rug (but you can still see the bump), and cause OutOfMemory errors.</p>
<p>Category: Best Practices</p>
]]></content:encoded>
			<wfw:commentRss>http://www.hackerdude.com/2007/07/30/concurrency-strategies-for-hibernate-caching/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>On the topic of assertions</title>
		<link>http://www.hackerdude.com/2007/03/06/on-the-topic-of-assertions/</link>
		<comments>http://www.hackerdude.com/2007/03/06/on-the-topic-of-assertions/#comments</comments>
		<pubDate>Tue, 06 Mar 2007 23:09:40 +0000</pubDate>
		<dc:creator>David Martinez</dc:creator>
				<category><![CDATA[Best Practices]]></category>
		<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://www.hackerdude.com/2007/03/06/on-the-topic-of-assertions/</guid>
		<description><![CDATA[Every assertion should be thought from the standpoint of What was expected What actually happened Translation: assertTrue should always, always have a message. Consider the following: &#160; assertTrue&#40;mv.getViewName&#40;&#41; .startsWith&#40;myController.getSuccessView&#40;&#41;&#41;&#41;; &#160; This will only return "assertion failed". Which is great, but how do we know what happened? If this is buried on one of the lunt [...]]]></description>
			<content:encoded><![CDATA[<p>Every assertion should be thought from the standpoint of</p>
<ol>
<li>What was expected</li>
<li>What actually happened</li>
</ol>
<p>Translation: assertTrue should <strong>always, always</strong> have a message.</p>
<p>Consider the following:</p>
<pre class="java">&nbsp;
assertTrue<span style="color: #66cc66;">&#40;</span>mv.<span style="color: #006600;">getViewName</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>
    .<span style="color: #006600;">startsWith</span><span style="color: #66cc66;">&#40;</span>myController.<span style="color: #006600;">getSuccessView</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;</pre>
<p>This will only return "assertion failed". Which is great, but how do we know what happened? If this is buried on one of the lunt automated remote builds, how am I supposed to know what is going wrong? Which is the expected? What actually happened?</p>
<p>A much better version of the same looks like this:</p>
<pre class="java">&nbsp;
assertTrue<span style="color: #66cc66;">&#40;</span>
    <span style="color: #ff0000;">&quot;Was expecting something like &quot;</span>
        + myController.<span style="color: #006600;">getSuccessView</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> + <span style="color: #ff0000;">&quot; but was &quot;</span>
        + mv.<span style="color: #006600;">getViewName</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>,
    mv.<span style="color: #006600;">getViewName</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>
        .<span style="color: #006600;">startsWith</span><span style="color: #66cc66;">&#40;</span>myController.<span style="color: #006600;">getSuccessView</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;</pre>
<p>Same assertion, but now it tells me more specifically what's going on and I can fix bugs with it. Once I set this on the test, it becomes easy to see what was going on.</p>
<p>I recently had a Saturday with some other <a href="http://www.testobsessed.com/2007/02/15/bay-area-td-dt-summit/">Bay Area developers where we did a lot of thinking about testing, so expect some more advice in the future as I collect my notes</a>.</p>
<p>Remember the goal of unit tests is to "find bugs" (thanks <a href="http://www.model-based-testing.org">Harry</a>!). An assertion without an associated message merely notifies you that a bug occurred but doesn't actually "find it". As you are writing your unit tests, make sure you find it as well.</p>
<p><!-- technorati tags begin --></p>
<p style="font-size: 10px; text-align: right">technorati tags:<a rel="tag" href="http://technorati.com/tag/testing">testing</a>, <a rel="tag" href="http://technorati.com/tag/junit">junit</a>, <a rel="tag" href="http://technorati.com/tag/assertions">assertions</a>, <a rel="tag" href="http://technorati.com/tag/java">java</a></p>
<p><!-- technorati tags end --></p>
]]></content:encoded>
			<wfw:commentRss>http://www.hackerdude.com/2007/03/06/on-the-topic-of-assertions/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Wazaabi &#8211; XUL for RCP.</title>
		<link>http://www.hackerdude.com/2006/12/08/wazaabi-xul-for-rcp/</link>
		<comments>http://www.hackerdude.com/2006/12/08/wazaabi-xul-for-rcp/#comments</comments>
		<pubDate>Fri, 08 Dec 2006 16:17:31 +0000</pubDate>
		<dc:creator>David Martinez</dc:creator>
				<category><![CDATA[Eclipse]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Mozilla XUL]]></category>
		<category><![CDATA[Web Development: Client Side]]></category>
		<category><![CDATA[XML]]></category>

		<guid isPermaLink="false">http://www.hackerdude.com/2006/12/08/wazaabi-xul-for-rcp/</guid>
		<description><![CDATA[This opens pretty interesting possibilities: Via TheServerSide: Wazaabi includes a GUI framework that brings XUL to Eclipse RCP plugin developers and a set of components that link the client-side XUL based viewers and forms to server-side business components. Thus, rich client developers can use XUL to code a GUI, rather than using SWT. Wazaabi brings [...]]]></description>
			<content:encoded><![CDATA[<p>This opens pretty interesting possibilities:</p>
<p>
</p>
<p>Via TheServerSide:</p>
<blockquote cite="http://www.theserverside.com/news/thread.tss?thread_id=43385"><p>
Wazaabi includes a GUI framework that brings XUL to Eclipse RCP plugin developers and a set of components that link the client-side XUL based viewers and forms to server-side business components. Thus, rich client developers can use XUL to code a GUI, rather than using SWT.</p></blockquote>
<p class="citation"><cite cite="http://www.theserverside.com/news/thread.tss?thread_id=43385"><a href="http://www.theserverside.com/news/thread.tss?thread_id=43385">Wazaabi brings XUL to Eclipse RCP based rich client applications</a></cite></p>
<p />This is an actual XUL viewer, not a similar syntax like XSWT or similar attempts. They use servlets to communicate between the XUL side and your application, to keep the flexibility of sending the XUL to a mozilla browser. Very interesting.</p>
<p /><!-- technorati tags begin -->
<p style="font-size:10px;text-align:right;">technorati tags:<a href="http://technorati.com/tag/java" rel="tag">java</a>, <a href="http://technorati.com/tag/xul" rel="tag">xul</a>, <a href="http://technorati.com/tag/eclipse" rel="tag">eclipse</a></p>
<p><!-- technorati tags end --></p>
]]></content:encoded>
			<wfw:commentRss>http://www.hackerdude.com/2006/12/08/wazaabi-xul-for-rcp/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Cheatsheet: Favorite Eclipse Plugins</title>
		<link>http://www.hackerdude.com/2006/11/15/cheatsheet-favorite-eclipse-plugins/</link>
		<comments>http://www.hackerdude.com/2006/11/15/cheatsheet-favorite-eclipse-plugins/#comments</comments>
		<pubDate>Wed, 15 Nov 2006 18:15:33 +0000</pubDate>
		<dc:creator>David Martinez</dc:creator>
				<category><![CDATA[Eclipse]]></category>

		<guid isPermaLink="false">http://www.hackerdude.com/2006/11/15/cheatsheet-favorite-eclipse-plugins/</guid>
		<description><![CDATA[This is a quick little cheatsheet with my favorite eclipse plugins and the locations of their update sites. It's so I can get back up and running quickly when reinstalling eclipse from scratch. Eclipse Checkstyle - http://eclipse-cs.sourceforge.net/update Spring IDE - http://springide.org/updatesite/ Fitnesse by Band XI - http://www.bandxi.com/fitnesse/ Subversion for Eclipse - http://subclipse.tigris.org/update_1.0.x Memory Monitor - [...]]]></description>
			<content:encoded><![CDATA[<p>This is a quick little cheatsheet with my favorite eclipse plugins and the locations of their update sites. It's so I can get back up and running quickly when reinstalling eclipse from scratch.</p>
<ul>
<li>Eclipse Checkstyle - http://eclipse-cs.sourceforge.net/update</li>
<li>Spring IDE - http://springide.org/updatesite/</li>
<li>Fitnesse by Band XI - http://www.bandxi.com/fitnesse/</li>
<li>Subversion for Eclipse - http://subclipse.tigris.org/update_1.0.x</li>
<li>Memory Monitor - http://dev.eclipse.org/viewcvs/index.cgi/%7Echeckout%7E/platform-ui-home/updates</li>
<li>Mylar - http://download.eclipse.org/technology/mylar/update-site/e3.2 (or e3.3)</li>
</ul>
<p>Also, here's some stuff that I like to install manually:</p>
<ul>
<li><a href="http://www.interaktonline.com/Products/Eclipse/JSEclipse/Overview/">JSEclipse</a> - no offense to the WTP folks, but their JS editor is not that great. This one can understand OO javascript, common ajax libraries, JSDoc and more.</li>
</ul>
<p><!-- technorati tags begin --></p>
<p style="font-size: 10px; text-align: right">technorati tags:<a rel="tag" href="http://technorati.com/tag/eclipse">eclipse</a>, <a rel="tag" href="http://technorati.com/tag/plugins">plugins</a>, <a rel="tag" href="http://technorati.com/tag/java">java</a></p>
<p><!-- technorati tags end --></p>
]]></content:encoded>
			<wfw:commentRss>http://www.hackerdude.com/2006/11/15/cheatsheet-favorite-eclipse-plugins/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Graphical Modeling Framework</title>
		<link>http://www.hackerdude.com/2006/09/15/graphical-modeling-framework/</link>
		<comments>http://www.hackerdude.com/2006/09/15/graphical-modeling-framework/#comments</comments>
		<pubDate>Sat, 16 Sep 2006 04:51:24 +0000</pubDate>
		<dc:creator>David Martinez</dc:creator>
				<category><![CDATA[Eclipse]]></category>

		<guid isPermaLink="false">http://www.hackerdude.com/2006/09/15/graphical-modeling-framework/</guid>
		<description><![CDATA[Boy don't I know this - in a prior life I wrote a GEF editor for a workflow engine. Let me be blunt: In the past, creating graphical editors within Eclipse using the Graphical Editor Framework (GEF) was slow and painful. It involved understanding a complex framework and quite a bit of redundant code. That [...]]]></description>
			<content:encoded><![CDATA[<p>Boy don't I know this - in a prior life I wrote a GEF editor for a workflow engine.</p>
<blockquote cite="http://www-128.ibm.com/developerworks/opensource/library/os-ecl-gmf/"><p>Let me be blunt: In the past, creating graphical editors within Eclipse using the Graphical Editor Framework (GEF) was slow and painful. It involved understanding a complex framework and quite a bit of redundant code. That said, GEF is an excellent framework for creating graphical editors because it is model-agnostic. On the other hand, being model-agnostic creates its own problems.</p></blockquote>
<p class="citation"><cite cite="http://www-128.ibm.com/developerworks/opensource/library/os-ecl-gmf/"><a href="http://www-128.ibm.com/developerworks/opensource/library/os-ecl-gmf/">Learn Eclipse GMF in 15 minutes</a></cite></p>
]]></content:encoded>
			<wfw:commentRss>http://www.hackerdude.com/2006/09/15/graphical-modeling-framework/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Using Hibernate Validators with Spring and Hibernate</title>
		<link>http://www.hackerdude.com/2006/09/14/using-hibernate-validators-with-spring-and-hibernate/</link>
		<comments>http://www.hackerdude.com/2006/09/14/using-hibernate-validators-with-spring-and-hibernate/#comments</comments>
		<pubDate>Fri, 15 Sep 2006 04:19:33 +0000</pubDate>
		<dc:creator>David Martinez</dc:creator>
				<category><![CDATA[Best Practices]]></category>
		<category><![CDATA[CBBTR]]></category>
		<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://www.hackerdude.com/2006/09/14/using-hibernate-validators-with-spring-and-hibernate/</guid>
		<description><![CDATA[In this article, Ted Bergeron shows you how to use the Validator component of Hibernate Annotations to build and maintain validation logic easily in your Web apps. Hibernate can meet your validation needs technorati tags:java, validation]]></description>
			<content:encoded><![CDATA[<blockquote cite="http://www-128.ibm.com/developerworks/java/library/j-hibval.html"><p>In this article, Ted <span>Bergeron</span> shows you how to use the Validator component of Hibernate Annotations to build and maintain validation logic easily in your Web apps.</p></blockquote>
<p class="citation"><cite cite="http://www-128.ibm.com/developerworks/java/library/j-hibval.html"><a href="http://www-128.ibm.com/developerworks/java/library/j-hibval.html">Hibernate can meet your validation needs</a></cite></p>
<p />
<p /><!-- technorati tags begin -->
<p style="font-size:10px;text-align:right;">technorati tags:<a href="http://technorati.com/tag/java" rel="tag">java</a>, <a href="http://technorati.com/tag/validation" rel="tag">validation</a></p>
<p><!-- technorati tags end --></p>
]]></content:encoded>
			<wfw:commentRss>http://www.hackerdude.com/2006/09/14/using-hibernate-validators-with-spring-and-hibernate/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

