tag:blogger.com,1999:blog-5189870991970879112024-02-07T00:00:24.356-05:00Beware The PenguinEric Rizzohttp://www.blogger.com/profile/08407727335073173803noreply@blogger.comBlogger66125tag:blogger.com,1999:blog-518987099197087911.post-58821542702103941082014-09-11T16:56:00.003-04:002021-05-17T14:19:33.701-04:00Java Application Logging GuidelinesHere are some guidelines or "best practices" for logging; they're hard-earned lessons from my own 17+ years' experience writing Java code as well as several other sources.<br />
<br />
First and foremost: use <a href="http://www.slf4j.org/">slf4j</a> exclusively as logging API, with <a href="http://logback.qos.ch/">logback </a>as the underlying logging implementation. slf4j is a flexible API that can utilize any of the popular logging frameworks (logback, log4j, java.util.logging, etc) at runtime to provide the low-level logging implementation. As such, the only dependency in application components should be on the slf4j API; no class should reference any other logging interfaces.<br />
<br />
<h3><a name="ReadYourLogs">
Read your logs often to spot incorrectly formatted messages.</a> </h3>
This seems obvious, but I'm always surprised/appalled by how many developers blindly send stuff to log without ever looking at most of it in runtime. If you read nothing else in these guidelines, please please please at least heed this advice.<br />
<br />
<a name='more'></a><h3><a name="UseLevelsAppropriately">
Use Levels Appropriately</a></h3>
<i>For every logging statement, think about which level is most appropriate.</i><br />
<ul>
<li><b>ERROR</b> – something irreparably wrong has happened that should be investigated immediately. No system can tolerate items logged on this level. Examples: NPE, database unavailable, mission critical use case cannot be continued.<br />
<br />
</li>
<li><b>WARN</b> – the process might be continued, but take extra caution. This can indicate an obvious problem where some codified work-around exists (for example: “Current data unavailable, using cached values”), or a potential problem and suggestions (for example, “Application running in development mode” or “Administration console is not secured with a password”). The application can tolerate warning messages, but they should always be justified and examined.<br />
<br />
</li>
<li><b>INFO</b> – an important business process or system event has happened. Generally, an administrator or advanced user should be able to understand INFO messages and quickly find out what the application is doing. Another use for INFO messages is to indicate significant changes to the state of the application (e.g., database update, external system request).<br />
<br />
</li>
<li><b>DEBUG</b> – information that is useful only to developers. DEBUG level should be disabled in any deployment environment other than DEV and possibly TEST, so it is not to be relied upon for routine troubleshooting by non-developers.</li>
</ul>
<h3>
<br />
</h3>
<h3><a name="DontUseIsEnabled">
Do not use <span style="font-family: Courier New, Courier, monospace;">isXyzEnabled()</span> checks around log statements.</a></h3>
For example:<br />
<blockquote>
<pre>if (log.isDebugEnabled())
log.debug("Something happened");
</pre>
</blockquote>
This idiom clutters the code and provides no real performance benefit when using slf4j's pattern substitution. There are very rare cases when having explicit condition is justified, e.g., when we can prove that constructing a specific logging message is expensive.<br />
<br />
<h3><a name="ReviewLogggedInfo">
Review the information that gets logged</a></h3>
<i>Every time you issue a logging statement, take a moment to examine what exactly will land in the log file</i>. Read your logs afterwards and spot problems, etc.<br />
<br />
Here are some common pitfalls to avoid:<br />
<ul>
<li>Avoid NPEs like this:<br />
<blockquote>
<pre>log.debug("Processing request with id: {}", request.getId());</pre>
</blockquote>
This can be dangerous because request might be null.<br />
<br />
</li>
<li>Be careful when logging collections. Collections can include objects that are expensive or impossible to log, such as entities fetched via JPA/Hibernate. Instead, consider logging just summary information about the elements of a collection, such as IDs.<br />
</li>
</ul>
<h3><a name="ToString">
Implement <span style="font-family: Courier New, Courier, monospace;">toString()</span> carefully.</a></h3>
Create <span style="font-family: Courier New, Courier, monospace;">toString()</span> for each class that appears anywhere in logging statements, preferably using <a href="http://commons.apache.org/lang/api-release/org/apache/commons/lang/builder/ToStringBuilder.html"><span style="font-family: Courier New, Courier, monospace;">ToStringBuilder</span></a> (but not its <a href="http://commons.apache.org/lang/api-release/org/apache/commons/lang/builder/ReflectionToStringBuilder.html">reflective</a> counterpart). <br />
Watch out for arrays and non-typical collections. Arrays and some strange collections might not have <span style="font-family: Courier New, Courier, monospace;">toString()</span> implemented by calling <span style="font-family: Courier New, Courier, monospace;">toString()</span> of each item. Use the <span style="font-family: Courier New, Courier, monospace;"><a href="http://java.sun.com/javase/6/docs/api/java/util/Arrays.html#deepToString%28java.lang.Object%5b%5d%29">Arrays.deepToString()</a></span> JDK utility method. <br />
<br />
<h3>
<i>Read your logs often to spot incorrectly formatted messages.</i></h3>
Yes, it's already said above. But it's important enough to repeat.<br />
<br />
<h3><a name="AvoidSideEffects">
Avoid side effects.</a></h3>
Logging statements should have no impact on the application’s behavior. Too much logging or incorrect implementation of <span style="font-family: Courier New, Courier, monospace;">toString()</span> can impact application performance. Failed logging statements can cause a business process to terminate due to an exception (see the <span style="font-family: Courier New, Courier, monospace;">request.getID()</span> example above). Avoid these situations by double-checking the safety of logging statements and write unit tests that trigger all possible logging scenarios.<br />
<br />
<h3><a name="ConciseAndDescriptive">
Be concise and descriptive.</a></h3>
Most logging statements should include both data and description. Always include relevant context in the statement. Show the data being processed and show its meaning. Show what the program is actually doing. Good logs can serve as a great documentation of the application code itself.<br />
<br />
Consider these examples:<br />
<blockquote>
<pre>log.debug("Message processed"); // No data, only description
log.debug(message.getJMSMessageID()); // No description, only data
log.debug("Message with id '{}' processed", message.getJMSMessageID());
</pre>
</blockquote>
The last one is clearly preferred. The first two do not provide enough information to diagnose a problem or understanding what's happening.<br />
<br />
<h3><a name="ExternalSystems">
Log more details when communicating with external systems.</a></h3>
When communicating with external systems, consider logging all the incoming and outgoing data. The overhead of doing this can be large, so consider the decision carefully and use the DEBUG level for such log statements so that they won't affect production performance under normal circumstances. Because this kind of logging is mostly useful during development and testing, consider using the following pattern:<br />
<blockquote>
<pre>Collection entities = findSomeEntities();
if (log.isDebugEnabled()) {
log.debug("Processing entities: {}", entities);
} else {
log.info("Processing {} entities", entities.size());
}
</pre>
</blockquote>
With this pattern, full details about the entities will be logged only when the logger is configured at the DEBUG level, otherwise only summary information is logged. Remember the other guideline above and make sure that entities can not be null to avoid a NPE when logger is configured at INFO. Yes, this violates the guideline to NOT do log level checking in code, but this is a great example of understanding the reasons for a guideline and when it should not apply. In this case, which should be used rarely, the isDebugEnabled() check actually makes the logging better, not just adds clutter to the code. <br />
<br />
<h3><a name="Exceptions">
Log Exceptions Properly</a></h3>
As a general rule, it should be preferred to not log exceptions at all, but rather re-throw (or wrap and throw) them to let a higher layer handle them. But at some point (usually at the highest layer of the application, such as the controllers), logging exceptions is necessary.<br />
Follow these guidelines when doing so:<br />
<ul>
<li>If you re-throw or wrap-and-rethrow the exception, do <i>not</i> log it. This is bad:<br />
<blockquote>
<pre>try {
// ....
} catch (IOException ex) {
log.error("Something bad happened", ex);
throw new MyCustomException(ex);
}
</pre>
</blockquote>
That is a problem because it results in duplicate statements of the same stack trace in the log file.<br />
<br />
</li>
<li>When an exception is logged, make sure to use the correct call that will result in complete and useful details. The correct form is:<br />
<blockquote>
<pre>log.error("Describe what was going on here", ex);</pre>
</blockquote>
The following are all <i>incorrect</i>, none will produce the desired result in the log file. <i>Don't do any of these</i>:<br />
<blockquote>
<pre>log.error(ex);
log.error("" + ex);
log.error(ex.toString());
log.error(ex.getMessage());
log.error(null, ex);
log.error("{}", ex);
log.error("{}", ex.getMessage());
log.error("Describe what was going on here: " + ex);
log.error("Describe what was going on here: " + ex.getMessage());
</pre>
</blockquote>
</li>
</ul>
<br />
<h3><a name="ReadYourLogsAgain">
<i>Read your logs often to spot incorrectly formatted messages.</i></a></h3>
One last time, this is the most important advice. Heed it. Seriously.<br />
<hr />
<br />
<section id="sources">Sources:</section><section id="sources"><ul>
<li><a href="http://www.slf4j.org/manual.html">http://www.slf4j.org/manual.html</a></li>
<li><a href="http://www.javacodegeeks.com/2011/01/10-tips-proper-application-logging.html">http://www.javacodegeeks.com/2011/01/10-tips-proper-application-logging.html</a></li>
<li><br /></li>
</ul>
</section>Eric Rizzohttp://www.blogger.com/profile/08407727335073173803noreply@blogger.com1tag:blogger.com,1999:blog-518987099197087911.post-66683648070509997722012-05-18T17:13:00.003-04:002012-05-18T17:13:35.278-04:00Am I the only person who catches himself trying to use <span style="font-family: 'Courier New', Courier, monospace;">Command+Space</span> (<span style="font-family: 'Courier New', Courier, monospace;">Ctrl+Space</span> in Windows) when I'm typing in software other than Eclipse?Eric Rizzohttp://www.blogger.com/profile/08407727335073173803noreply@blogger.com2tag:blogger.com,1999:blog-518987099197087911.post-15808483832434922712012-01-18T09:50:00.002-05:002012-01-18T09:56:44.445-05:00Today is "strike" day to protest SOPAToday is "strike against censorship" day to protest the SOPA and PIPA bills that are attempting to pass in the US Congress. Please educate yourself about the potential negative impacts of these laws and get involved.<div>http://sopastrike.com/strike</div><div>https://www.google.com/landing/takeaction/</div><div>http://americancensorship.org/</div><div><br /></div><div><br /></div>Eric Rizzohttp://www.blogger.com/profile/08407727335073173803noreply@blogger.com0tag:blogger.com,1999:blog-518987099197087911.post-66666410530321907602012-01-06T15:55:00.001-05:002012-01-06T15:57:07.632-05:00<p>I've censored the following, in protest of a bill that gives any corporation and the US government the power to censor the internet--a bill that could pass THIS WEEK. To see the uncensored text, and to stop internet censorship, visit: <a href="http://americancensorship.org/posts/33408/uncensor">http://americancensorship.org/posts/33408/uncensor</a></p>Eric Rizzohttp://www.blogger.com/profile/08407727335073173803noreply@blogger.com0tag:blogger.com,1999:blog-518987099197087911.post-54312306805283384552011-12-23T23:21:00.003-05:002011-12-23T23:26:04.180-05:00Silly password requirementsIt's been a long while since I wrote an Eclipse-related post, but this just irks me enough to point it out:<div><br /><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjqd391hhpb0NYC5XRbltc7p7EV_DQ1s7Y57AZL7-oOXxRofsKjOSxT2DjLIbxW61axOraHIdNmoqPUgF3hlwX-GkRtO2L9aOfbRl2cOtpbIOqMAg8sFRfsgB8GK1LxmIF5egaIcU8gpBes/s1600/password.png"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjqd391hhpb0NYC5XRbltc7p7EV_DQ1s7Y57AZL7-oOXxRofsKjOSxT2DjLIbxW61axOraHIdNmoqPUgF3hlwX-GkRtO2L9aOfbRl2cOtpbIOqMAg8sFRfsgB8GK1LxmIF5egaIcU8gpBes/s800/password.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5689545682490779330" /></a><br /></div><div>What is this, 1995? Users should be allowed to use a passphrase instead of this archaic way of trying to make passwords stronger. This is silly.</div>Eric Rizzohttp://www.blogger.com/profile/08407727335073173803noreply@blogger.com6tag:blogger.com,1999:blog-518987099197087911.post-50274829506086333282011-01-22T15:44:00.005-05:002011-03-31T13:16:19.145-04:00My secret weapon for holding OmniPod pods in placeThis question periodically comes up on the <a href="http://www.tudiabetes.org/group/omnipodusers">Tu Diabetes OmniPod users</a> forum, so I thought I'd write a quick summary of my solution.<br />Wearing the pods on your arm, to me, is the most comfortable site, but many people seem to be prone to knocking them off or loose. My solution is to wrap a so-called self-adherent wrap around the pod and my arm. They're self-adhesive, don't stick to the skin, and have just the right amount of "grip" to keep from sliding off the pod with activity. They also seem to "breath" a little to prevent sweating under the wrap. And you can cut them to exactly the length you want to get it as tight as is comfortable for you.<br /><a href="http://www.3m.com/product/information/coban-self-adherent-wrap.html">Coban</a> is the name brand (made by 3M), but to save a few $$$ I just buy the generic version from CVS or Walgreens. For example, <a href="http://www.cvs.com/CVSApp/catalog/shop_product_detail.jsp?skuId=265994&productId=265994">here is CVS's product</a>. Just make sure to get a 4-inch wide variety; the 3-inch ones are not wide enough to cover the entire pod and tend to slip off too easily.<br />In addition to holding pods tightly to the arms, I've also used longer lengths when I used to wear pods on my inner thighs.<br /><br />UPDATE: Someone recently told me about <a href="http://www.bands4life.net/">http://www.bands4life.net/</a> - I like the idea; think I'll order one to try it out as an alternative to the coban-style wrap.Eric Rizzohttp://www.blogger.com/profile/08407727335073173803noreply@blogger.com1tag:blogger.com,1999:blog-518987099197087911.post-43600127358326617812010-08-17T10:14:00.009-04:002010-08-17T10:53:24.089-04:00Setting up .java files to automatically open with Eclipse on Mac OS XWith the 3.6 (aka, Helios) release of Eclipse, there is now support for opening files from the operating system command line or file browser directly into Eclipse. This has been a <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=4922" target="_blank">long-standing feature request</a> (one of the oldest requests to ever have been implemented, in fact) and many people are happy to have it. Here is a quick tutorial on utilizing this feature under Mac OS X to associate .java files so that they open in Eclipse upon double-click from Finder. Although this demonstrates using .java files, you can do the same for any other file type; as long as your installation of Eclipse has an editor to handle that file type, it should work just fine.<br /><br /><ol><li>Just to re-iterate, you have to have <a href="http://www.eclipse.org/helios/"target="_blank">Eclipse Helios</a> (version 3.6 of the platform) in order to take advantage of this feature. If you don't already have it, <a href="http://www.eclipse.org/downloads/"target="_blank">go get it</a>.</li><li>In Finder, locate a .java file that you'd like to open in Eclipse; right-click (or Control+click if that's the way you roll) and select Get Info<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEilQwBnAUid6CcrmRoqVxRZHTKwN19mUaPButNnSTWvNXBjTVSQlNt-KFVRqBJbuq8rxmQT3Ha-5KXjp8opICDzxezgAr15SXEqv-yQdQ7uCrukCIg8bA_ZUcU6j4hwEVdbAvLi9yfb0jge/s1600/Screen+shot+2010-08-17+at+10.31.39+AM.png"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 279px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEilQwBnAUid6CcrmRoqVxRZHTKwN19mUaPButNnSTWvNXBjTVSQlNt-KFVRqBJbuq8rxmQT3Ha-5KXjp8opICDzxezgAr15SXEqv-yQdQ7uCrukCIg8bA_ZUcU6j4hwEVdbAvLi9yfb0jge/s400/Screen+shot+2010-08-17+at+10.31.39+AM.png" alt="" id="BLOGGER_PHOTO_ID_5506387766372816546" border="0" /><br /><br /></a></li><li>In the Info dialog, under the "Open with:" section, click the drop-down list and select Other...<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhkwOh_6zwPIxVsuEzwsK9nHRj_1haVrfIX6wI3fwKHBw2H6jo4c45kOgLyrk20TawSfxGABrZ_icpiQWwgD_VbNFMP9fAuqDA8U6etY-K04WDc99uKu9IeZRzfpvThHKvBFkvz6q5jPajO/s1600/Screen+shot+2010-08-17+at+10.37.55+AM.png"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 242px; height: 400px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhkwOh_6zwPIxVsuEzwsK9nHRj_1haVrfIX6wI3fwKHBw2H6jo4c45kOgLyrk20TawSfxGABrZ_icpiQWwgD_VbNFMP9fAuqDA8U6etY-K04WDc99uKu9IeZRzfpvThHKvBFkvz6q5jPajO/s400/Screen+shot+2010-08-17+at+10.37.55+AM.png" alt="" id="BLOGGER_PHOTO_ID_5506388495827027026" border="0" /><br /><br /></a></li><li>Here comes the only tricky part about this process.<br />In the resulting Finder dialog to select an application, navigate to where Eclipse is installed. You'll see Eclipse.app listed but chances are, it's disabled; you can't select it. You just have to enable it using the Enable: drop-down list at the bottom of the window, as shown here:<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgD-igIoAK7gcJ6a8hnFODxPWzokNy8aRaavcaZned6k7tW5D6RFKa-F9Vc5LvW5qy_kP0hSBXcdFAHYNubLkSe7EKr4Ovy0eftFDkZ7YRx6UyOppJ3qvaVJhLnfDy1zxRc67x8M5IAS_tq/s1600/Screen+shot+2010-08-17+at+10.43.01+AM.png"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 380px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgD-igIoAK7gcJ6a8hnFODxPWzokNy8aRaavcaZned6k7tW5D6RFKa-F9Vc5LvW5qy_kP0hSBXcdFAHYNubLkSe7EKr4Ovy0eftFDkZ7YRx6UyOppJ3qvaVJhLnfDy1zxRc67x8M5IAS_tq/s400/Screen+shot+2010-08-17+at+10.43.01+AM.png" alt="" id="BLOGGER_PHOTO_ID_5506389858571919042" border="0" /></a>Once you do that, you'll be able to select Eclipse.app.<br /><br /></li><li>Before clicking the Add button, decide if you want to select the "Always Open With" option (checkbox). Then click Add.</li><li>Back in the "Info" dialog, you can use the Change All... button to associate all .java files with Eclipse. Even if you don't do it now, you an always come back to this dialog and do it later.</li></ol>That's it. Now when you double-click on .java files they will be opened in the Eclipse installation that you selected. If an instance of Eclipse is already running, that instance will open the file. Otherwise, a new instance will be started.Eric Rizzohttp://www.blogger.com/profile/08407727335073173803noreply@blogger.com0tag:blogger.com,1999:blog-518987099197087911.post-2053365705013159852010-07-28T11:07:00.002-04:002010-07-28T11:14:38.193-04:00Tip of the hat to OracleAs most Eclipse community members probably already know, a recent change by Oracle in the JDK/JRE for Windows <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=319514" target="_blank">caused serious problems</a> for Eclipse. But in a sign that Oracle really does understand the importance of Eclipse in the Java community, as well as a nice gesture of cooperation and consideration, they've <a href="http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6969236" target="_blank">rolled back the change that caused the problems and released new builds</a>.<br />I admire Oracle's willingness to respond quickly to this issue, in spite of the fact that Eclipse code was admittedly relying on non-documented and non-API data. <a href="http://ianskerrett.wordpress.com/">Ian Skerret</a> also deserves credit for directly engaging people at Oracle to make this happen.<br /><br />Hats off to cooperation!Eric Rizzohttp://www.blogger.com/profile/08407727335073173803noreply@blogger.com1tag:blogger.com,1999:blog-518987099197087911.post-49382066675376782282010-04-21T17:50:00.013-04:002010-04-21T23:52:17.105-04:00Launching Multiple Instances of Eclipse on Mac OS X<a href="http://www.blogger.com/profile/14088309262879705593">Doug Schaefer</a> recently griped that Eclipse on Mac "<a href="http://cdtdoug.blogspot.com/2010/04/mac-gets-no-love.html">gets no love</a>." I don't really agree in general, but I don't have the time to debate that in detail. I do, however, have the time to provide a simple work-around to one of his gripes, the inability to launch multiple copies of Eclipse simultaneously. As Doug mentions, this is inherent behavior for OS X applications, not an Eclipse-specific problem. But, there's a simple way to launch additional instances if you're willing to perform a few mouse clicks.<br />The basics:<br /><ol><li>Right-click (Command+click) on the Eclipse Doc icon and choose Show in Finder.</li><li>Right-click on Eclipse.app and choose Show Packages Contents.</li><li>Navigate to Contents > MacOS directory.</li><li>Double-click the eclipse executable there to launch Eclipse. Make sure to select a different workspace than is already open.</li></ol>Here's a short screencast demonstration (click the image to play):<br /><br /><script src="http://www.apple.com/library/quicktime/2.0/scripts/prototype.js" language="JavaScript" type="text/javascript"></script><br /><script src="http://www.apple.com/library/quicktime/2.0/scripts/qtp_poster.js" language="JavaScript" type="text/javascript"></script><br /><a href="http://www.rizzoweb.com/Eclipse/Eclipse%20second%20instance%20on%20Mac.mov" rel="qtposter"><br /> <img src="http://www.rizzoweb.com/Eclipse/Eclipse%20second%20instance%20on%20Mac.jpg" height="496" width="768" /><br /></a>Eric Rizzohttp://www.blogger.com/profile/08407727335073173803noreply@blogger.com6tag:blogger.com,1999:blog-518987099197087911.post-75504502862719705952009-12-22T09:58:00.007-05:002009-12-22T10:44:03.136-05:00The best $5 I Ever Spent on TechnologyI recently discovered <a href="http://alum.hampshire.edu/%7Ebjk02/xGestures/">xGestures</a> and someone had better tell my wife because I'm in love!<br />I've been a long-time user of mouse gestures in <a href="http://www.getfirefox.com/">Firefox</a> (the plugin I currently use is <a href="https://addons.mozilla.org/en-US/firefox/addon/6366">FireGestures</a>, but there are <a href="https://addons.mozilla.org/en-US/firefox/tag/Mouse%20Gestures">others</a>). I recently changed to a combination of <a href="http://caminobrowser.org/">Camino</a> and Safari, but there aren't any really good gestures plugins available for them.<br />My search led me to xGestures, and it truly is the best $5 I've ever spent on a piece of technology. Not only does it make my browser more productive (or rather, <span style="font-style: italic;">almost as</span> productive as Firefox on Windoze), but as an added bonus it applies mouse gestures to every application. It's an amazing productivity boost.<br />For those who aren't familiar with mouse gestures, they are an alternative input mechanism whereby you combine a mouse click with dragging motions in order to trigger a command or action. Basic drag-and-drop is, essentially, a mouse gesture (one that every personal computer user is familiar with); the iPhone and iPod Touch use gestures quite extensively. I've heard them described as "controlling your applications by drawing little mini-pictures with your mouse." Wikipedia introduces them like this:<br /><blockquote>In <a href="http://en.wikipedia.org/wiki/Computing" title="Computing">computing</a>, a <b>mouse gesture</b> is a way of combining <a href="http://en.wikipedia.org/wiki/Computer_mouse" title="Computer mouse" class="mw-redirect">computer mouse</a> movements and <a href="http://en.wikipedia.org/wiki/Click" title="Click">clicks</a> which the <a href="http://en.wikipedia.org/wiki/Software" title="Software" class="mw-redirect">software</a> recognizes as a specific command. Mouse gestures can provide quick access to common functions of a program. They can also be useful for people who have difficulties typing on a <a href="http://en.wikipedia.org/wiki/Computer_keyboard" title="Computer keyboard" class="mw-redirect">keyboard</a>. For example, in a <a href="http://en.wikipedia.org/wiki/Web_browser" title="Web browser">web browser</a>, the user could navigate to the previously viewed page by pressing the right mouse button, moving the mouse briefly to the left, then releasing the button.<br /></blockquote><div style="text-align: right;">[<a href="http://en.wikipedia.org/wiki/Mouse_gestures">full article</a>]</div><br /><br />For those like me who make heavy use of the mouse, the productivity boost gained by not having to find menu items or awkward keyboard combinations is outstanding. If you've never used mouse gestures before, it's probably kind of hard to understand the value unless you try them out.<br />As I've said, I'm in love with <a href="http://alum.hampshire.edu/%7Ebjk02/xGestures/">xGestures</a> on my MacBook, but there are also similar programs for Windows. I haven't tried any of them out, but some that look promising are:<br /><ul><li><a href="http://www.handform.net/gmote.php">gMote</a></li><li><a href="http://www.tcbmi.com/strokeit/">StrokeIt</a></li><li><a href="http://www.winmatrix.com/forums/index.php?/topic/18983-mazzick-a-wand-for-ur-windows/">MaZZicK</a></li></ul><br />So, <a href="http://www.planeteclipse.org/">Planet Eclipse</a> readers are probably asking why this is showing up there... Well, I haven't yet configured xGestures to do anything in Eclipse, but I'm thinking about it. Sometime today I'll set up some gestures for the things I do most frequently in Eclipse (like open the Find Type and Find Resource dialogs). But I'm curious if anyone else uses gestures in Eclipse and, if so, what gestures do you use frequently? I'm interested in exploring the power of combining the best IDE and this great "new" input method to make me even more productive. Eventually I'd like to explore the possibility of writing an Eclipse plugin that adds gesture support and contributing it for inclusion in the platform.<br /><br />Also, if any Windows users have other gestures programs that you like, let us know.Eric Rizzohttp://www.blogger.com/profile/08407727335073173803noreply@blogger.com1tag:blogger.com,1999:blog-518987099197087911.post-35581991665285494642009-12-09T09:05:00.005-05:002009-12-09T09:31:23.222-05:00Looking For an Easy Way To Contribute To Eclipse?Are you an <a href="http://www.eclipse.org/users/">Eclipse user</a> who is looking for an opportunity to get more involved, to contribute something back? Maybe you've considered <a href="https://bugs.eclipse.org/bugs/">reporting bugs</a> (or even done so, but not consistently). Or maybe you've even thought about trying to implement a feature or fix a bug with a code patch, but were intimidated by the huge code base and/or ignorant of <a href="http://dev.eclipse.org/blogs/wayne/2009/09/28/how-to-fix-a-bug-in-eclipse/">how to get started with that</a>.<br />Well, if you happen to also be a Windows 64-bit user there is an excellent specific opportunity for you to get involved. The <a href="http://wiki.eclipse.org/Helios_Simultaneous_Release">next major Eclipse release, code named Helios</a> and based on version 3.6 of the platform, is <a target="_blank" href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=293969">considering offering 64-bit Windows versions</a> of all the EPP packages*. But they need commitment from people who can test and report bugs with the Win64 builds; the team is small and given all the combinations of packages (there are now 9, maybe more by the time Helios is released) and supported platforms (there are currently 6, Win64 would be number 7), it's a daunting task to verify that each one is working correctly. But here is where you can help; if you are on 64-bit Windows you can offer to test the milestone builds of such a package and report bugs if you find them.<br />This is a <span style="font-style: italic;">low-barrier-to-entry</span> way to contribute real value to Eclipse, by doing something (using Eclipse) that you already do. Plus, you'll get early access to all of the new features, enhancements, and bug fixes that the 3.6 release is bringing!<br />So, go ahead and comment on <a target="_blank" href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=293969">Bug 293969</a> and add your pledge to help test - I'm sure the EPP team would be thrilled to have the help.<br /><br />* For those who don't know, the <a href="http://www.eclipse.org/epp/">Eclipse Packaging Project (EPP)</a> is responsible for producing the various useful <a href="http://www.eclipse.org/downloads/">packages of Eclipse</a> projects that are the result of the yearly coordinated release train.Eric Rizzohttp://www.blogger.com/profile/08407727335073173803noreply@blogger.com2tag:blogger.com,1999:blog-518987099197087911.post-44053332261529847742009-10-27T09:22:00.007-04:002009-10-27T09:42:54.205-04:00What's happening with Eclipse recently?It seems that recent times have seen some disturbing (to me) trends in the Eclipse community, most notably the loss (or significant reduction of involvement) of several key individuals. I count myself in that group, since my 5+ month search for Eclipse-related development contracts came up dry and I ended up taking a <a href="http://www.hanekedesign.com/">local job</a> that is totally unrelated to Eclipse. It seems that Eclipse has been bleeding valuable talent in the past year or so - or is it just me?<br /><br />The most recent happening that concerns me is <a href="http://eclipse-projects.blogspot.com/2009/10/eclipsecon-without-me.html">Bjorn's announcement yesterday that he has been locked out of involvement in producing EclipseCon 2010</a><a href="http://eclipse-projects.blogspot.com/2009/10/eclipsecon-without-me.html">.</a> While I'm sure the conference planning is in good hands, this seems like a strange decision given the past success; the cynic in me can't help but wonder if it has anything to do with Bjorn's recent outspokenness and willingness to voice controversial thoughts. Let's hope not...<br /><a href="http://dev.eclipse.org/blogs/mike/">Mike M.</a> commented on Bjorn's blog posting with a most-politically-correct "thank you for your service," but that is a far cry from an open explanation. I think, given his contributions to and love for the community, that Bjorn deserves more of an explanation. I am certain that the community deserves a bit of explanation.Eric Rizzohttp://www.blogger.com/profile/08407727335073173803noreply@blogger.com2tag:blogger.com,1999:blog-518987099197087911.post-77748084874135605932009-08-19T14:43:00.008-04:002009-08-19T15:47:37.852-04:00Mac OS X and Eclipse Debugger's "Drop To Frame"After years of using it, I've become dependent on the debugger feature, <span style="font-weight: bold;">Drop To Frame</span> (described <a href="http://www.javalobby.org/forums/thread.jspa?threadID=15271&tstart=0" target="_blank">here</a>, <a href="http://blog.hantsuki.org/2007/01/23/drop-to-frame-try-it-today/" target="_blank">here</a>, and <a href="http://www.vasanth.in/2004/06/08/eclipse-tip-rewind-during-debugging/" target="_blank">here</a>). Briefly, it allows you to select any level (frame) in the call stack during debugging and force the JVM to rollback to that point. It's a little difficult to explain briefly, but trust me when I say that once you've used it you quickly learn to depend on it.<br /><br />So you can imagine my dismay when I recently started doing all of my Eclipse work on Mac OS X and discovered that Drop To Frame is disabled. It is a feature that not all JVMs support (specifically, those prior to Java 1.4), but I just can't believe that the modern Mac JVMs don't (I've tried running my apps in both Java 5 and Java 6 JVMs).<br />I <a tooltip="linkalert-tip" href="http://www.eclipse.org/forums/index.php?t=msg&th=152725">asked about this on the Eclipse newsgroups/forums</a> and on IRC, but no response so far. I'm hoping that the blogosphere might have some more insight...<br /><br /><span style="font-style: italic;"><span style="font-weight: bold;">Update</span>: </span>it seems that Drop to Frame <span style="font-style: italic;">is</span> enabled sometimes, but only part-way down the stack, and sometimes not at all. The app I'm debugging has no native code in it, so that's not the culprit in this case. So I'm still looking for some insight into what enables/disables the feature.Eric Rizzohttp://www.blogger.com/profile/08407727335073173803noreply@blogger.com7tag:blogger.com,1999:blog-518987099197087911.post-591477220766771332009-08-14T09:43:00.023-04:002009-08-15T13:27:32.247-04:00My Experience with OmniPod<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" target="_blank" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhaEefsvo0jOkRW_6R687mVFrMr-4QJv3hKB9DVqLathYIQt7yfEIvEfkDkEjeKYEiPAh0sYbdNa4m-lUJO4Avi2py56XVuaA14rC6UBus_NevudFrLE5wZ_wMZdjhfLQNPhv8F_VryMJbC/s1600-h/Omnipod_300x200.jpg" onclick="window.open(this.href, 'popupwindow', 'width=350, height=220, resizable=yes, scrollbars=yes, menubar=no, toolbar=no, status=no'); return false;"><img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 200px; height: 133px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhaEefsvo0jOkRW_6R687mVFrMr-4QJv3hKB9DVqLathYIQt7yfEIvEfkDkEjeKYEiPAh0sYbdNa4m-lUJO4Avi2py56XVuaA14rC6UBus_NevudFrLE5wZ_wMZdjhfLQNPhv8F_VryMJbC/s200/Omnipod_300x200.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5370242318453331506" /></a><br />For those that don't know, I am an <a tooltip="linkalert-tip" href="http://www.diabetes.org/type-1-diabetes.jsp" target="_blank">insulin-dependent diabetic</a>. About a year and a half ago I changed from taking 3-5 injections a day, to using an insulin pump. But no ordinary, <a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg877h61-W5dZcXwU1t7eDEcCKY9Y2Yx8yOY57xXYSoE9ZFlCT3mNBKPBy7oEm1jvBejmoTcCiRERK004yI8EXXSDW40aGW1JboSTuO08P38rAXAIwRcAOp7EncUp0CiPj2JOSnxdzoDmoL/s1600-h/Insulin_pump_with_infusion_set.jpg" target="_blank" onclick="window.open(this.href, 'popupwindow', 'width=450, height=410, resizable=yes, scrollbars=yes, menubar=no, toolbar=no, status=no'); return false;">tubes-hanging-out-of-you, beeper-looking-thing-attached-to-your-hip, insulin pump</a> - no, I chose the <a tooltip="linkalert-tip" href="http://www.myomnipod.com/" target="_blank">OmniPod</a> tubeless pump system. I've had some requests for my overall impression, and below is something I wrote in response to one of those requests.<br /><br />I've been a Type I diabetic for over 20 years and I can honestly say that OmniPod has changed my life. For me, not only is the technology an improvement over injections, but it has re-invigorated me and my interest in controlling my disease. In other words, using OmniPod somehow got me more interested in managing diabetes again, instead of being complacent.<br /><br /><img tooltip="linkalert-tip" style="margin: 10px 10px 10px 10px; float: left; width: 171px; height: 200px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj2AfjyvuOCn4RldRQvi0H3m9x20Gw7K8McGpBAFbNqvzeFfrK5SO0osyZfHXdvWRKg3rpKbu6F0JXZsDUvIuyc0IJNedy0VULlQZnSu6gXBvCGluZ-VUrI1pSM-omFmM-HEPiPiOrW_lJq/s200/NoTubes.png" alt="" border="0" id="BLOGGER_PHOTO_ID_5370229471965612066" />Of course like most 'Podders, the big attraction for me was the lack of tubes. I had been turned off by traditional pumps for years because of the tubing, but OmniPod was intriguing because of the freedom from tubes that it offers.<br /><br />As for cost, even with good insurance it is likely that using the OmniPod will cost you more than injections. My insurance coverage is pretty good, but I still have a deductible each year and then pay 20% after that (used to be 10% until this year). If cost is a big concern for you then you should definitely find out exactly what your policy covers. I think any kind of insulin pump is going to have higher cost. You local sales rep at Insulet can tell you exactly how much it will cost before you have to pay anything.<br />If you want specific examples... My deductible is $300 per year, which even before OmniPod I would easily use up for lab/blood work. After that, the pod cost is somewhere around $250-$300 per month, 20% of which I must pay under my insurance plan. So it's not dirt-cheap, but for me easily worth it.<br /><br />I find the system to be very easy to use (but I am a tech geek and love all kinds of gadgets). Even for the average person I think they've spent a lot of effort to make it simple. The process of changing a pod has about 4-5 steps, but they are easy and the PDM (controller "computer") guides you through each one. I think after only 2 or 3 times the average person will be very comfortable with the process; and the training is very thorough. Honestly, think about testing your blood or taking an injection; think of how natural that is for you and how you don't really have to think about it while doing it. Using the OmniPod is the same; you do it so much that it quickly becomes second-nature.<br /><br />I've only had one or two very minor issues, and with the help of the customer service and the local trainer I've been able to solve them. I've read of some people who have certain problems (like someone who says the pods don't stick well to their skin and try to fall off before the 3 days is up), but I really think those are the minority because thousands of people use it successfully. I've never had any kind of trouble like that, even though I am very active and play several different sports with the pods on (including wrestling with my 3-year-old son).<br /><br />My control is much improved since I started using OmniPod. I was always turned off by insulin pumps because of the tubing; it was a big turn-off for me to be attached to a pump all the time. Now that I've been using OmniPod for over a year I can't imagine going back to injections. It is very discreet when I want it to be, but I've found it to be a great "conversation piece" too; everyone is fascinated to hear about it if I talk about it.<br /><br />I love how it lets me be more free to do things like a normal person, instead of having to worry about carrying insulin bottles/pens, needles, and alcohol wipes everywhere. I am so much more free I can't even tell you!<br />Here's an example: this summer we took our son to Disney World for his birthday. We were at the park from 10am until 11pm. We ate at odd times, food that I was not certain of the ingredients or carbohydrate content, and several little snacks. Plus, we were doing lots of walking which tends to lower my blood-sugar quite a bit. That day would have been a nightmare if I was still using injections. I used to take Lantus as a basal, once per day, and then Novolog (pen) at meal times. I would have had to adjust my Lantus the night before to account for the exercise (walking) and then would have worried about keeping my Novolog pen cool throughout the hot day, taking several injections to cover the small "meals" and the unknown carbs I was getting. I would have almost certainly been too high or two low most of the day because of all the uncertainty and irregular schedule. But with the OmniPod, I was able to easily decrease my basal rate once we started walking, based on what my blood-sugar measured. And I was easily able to take a meal dose each time we ate something or I tested my blood-sugar and found it a little high. I was able to do all of this while standing in line for a ride or sitting on a bench watching my son play. No having to sneak off to the bathroom or some other private place to do an injection. I actually enjoyed the day with my family instead of worrying about my diabetes; I didn't really "think about" diabetes at all that day. For me, that is the big advantage of using OmniPod.<br /><br />I guess I've written way too much, but hopefully this will help you understand why I love the OmniPod. If you have any more specific questions, don't hesitate to ask. In fact, I'd even be willing to talk on the phone if you'd like.<br /><br />I am very enthusiastic, but I realize this is a big personal decision to make, and of course the OmniPod (or any insulin pump) is not the right thing for everyone; there are always some people who will be better off with injections. But I'd definitely encourage you to give it a try if you've been curious or considering it.Eric Rizzohttp://www.blogger.com/profile/08407727335073173803noreply@blogger.com24tag:blogger.com,1999:blog-518987099197087911.post-78839413705444682852009-08-10T09:52:00.004-04:002009-08-10T09:55:59.496-04:00Updated Eclipse Community Forums plug-in<span>I've released a slightly updated version of the little <a tooltip="linkalert-tip" href="http://bewarethepenguin.blogspot.com/2009/08/access-new-eclipse-community-forums.html">Eclipse Community Forums plug-in</a> I made last week. I added more of the standard web navigation buttons (back/forward/reload/stop/home) and eliminated the Login button/action (it was a real hack , didn't work 100% reliably, and I'm not sure anyone would really care about that feature anyway).<br />If you've already got 0.1 installed you should be able to update it from the About dialog, Installation Details, then select the Eclipse Community feature and click the Update button. If not, you can install it from scratch from the update site<br /></span><ul><li><span>http://www.rizzoweb.com/Eclipse/updatesite</span></li></ul>Still looking for feedback - even if it is "This isn't very useful, you should drop it."Eric Rizzohttp://www.blogger.com/profile/08407727335073173803noreply@blogger.com0tag:blogger.com,1999:blog-518987099197087911.post-84714960953347488992009-08-03T20:56:00.009-04:002009-08-10T09:52:01.421-04:00Access the new Eclipse Community Forums from inside Eclipse itselfThanks to Denis Roy, Eclipse now has a <a tooltip="linkalert-tip" href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=284281">modern web user interface for its user/developer newsgroups</a>. While I, personally, still prefer to use Thunderbird to access the newsgroups the "old fashioned" way, I'm sure many users will appreciate this big improvement over the <a tooltip="linkalert-tip" href="http://www.eclipse.org/newsgroups/">old web interface</a>.<br />The new forums site is still in a "beta" stage (please report any problems or suggestions to <a tooltip="linkalert-tip" href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=284281">bug 284281</a>), but I thought it would be nice to have easy access to it from right within Eclipse itself. So I've developed this little plug-in that adds an "Eclipse Community Forums" view to all perspectives. The View is basically an SWT Browser widget that is hard-coded to the forums site, along with some basic toolbar buttons for navigation.<br /><br /><a tooltip="linkalert-tip" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiibvF-L3qTx5ftHUjdO8FmQ9O-X5SYsL8PotG-N8YbBVyVRRRrCZpxN7KOLKl-H_fq8L2lRk9Cp-TNQ6s5JeAASdOPtsYJNFBh23KlTlrYCVSIrcaQCjXVjkchX2j_jD-gTfoBWld-Jgzy/s1600-h/EclipseForumsView.png"><img tooltip="linkalert-tip" style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 258px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiibvF-L3qTx5ftHUjdO8FmQ9O-X5SYsL8PotG-N8YbBVyVRRRrCZpxN7KOLKl-H_fq8L2lRk9Cp-TNQ6s5JeAASdOPtsYJNFBh23KlTlrYCVSIrcaQCjXVjkchX2j_jD-gTfoBWld-Jgzy/s320/EclipseForumsView.png" alt="" id="BLOGGER_PHOTO_ID_5365921425848163954" border="0" /></a><br />A few notes on this "first draft" implementation:<br /><ul><li>I've only tested it on OS X (Cocoa) so far; please let me know how (or if) it works on Windows XP, Vista, and Linux.</li><li>The View is supposed to be automatically added as a Fast View to all perspectives (and it does correctly when I test it in a self-hosting environment), but when I installed it into an existing Eclipse instance I had to manually open the View via Window > Show View > Other...<br /><a tooltip="linkalert-tip" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjWtF1kHkLTGheUHn25GVArnSbsjiWweDZqYQKHSL5TtvcKlKsHWlm4yvethPjsK0edpQop5o7DWrByx_MiGIf0kxMvD0ZsyRe3G3TxTCcPPU-rZSrGmVIgDSgngSAa0CQp_Q8yNeuvHgQt/s1600-h/ShowForumsView.png"><img tooltip="linkalert-tip" style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 236px; height: 320px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjWtF1kHkLTGheUHn25GVArnSbsjiWweDZqYQKHSL5TtvcKlKsHWlm4yvethPjsK0edpQop5o7DWrByx_MiGIf0kxMvD0ZsyRe3G3TxTCcPPU-rZSrGmVIgDSgngSAa0CQp_Q8yNeuvHgQt/s320/ShowForumsView.png" alt="" id="BLOGGER_PHOTO_ID_5365921699043932034" border="0" /></a>If anyone has some ideas why it isn't automatically added after installation, please let me know.<br /><br /></li><li>The Login toolbar action currently only takes you to the Login page, but my plan is to have it (optionally) automatically submit your login credentials if you choose to store them. I need to get with Denis to help debug why my attempts at submitting a login via URL isn't working.</li><li>The Shortcuts list is an extension point that any plug-in can contribute to. For now I've included just some of the more popular <del>newsgroups</del> forums; if I get this accepted as an official plug-in, the vision is that different Eclipse projects would contribute to the extension point to have their forum included.</li><li>Notice the "Open in External Browser" button in the View toolbar (not the toolbar that is <span style="font-style: italic;">inside</span> the view above the browser). I waffled back and forth on whether to put the Login and Shortcuts actions up there, too. If you have a UI design opinion about that, please let me know.</li><li>My goal is to get feedback and improve this over the next week or two and eventually submit it for inclusion as a first-class citizen of the SDK and package builds. So please let me know what you think and help me make it better.</li></ul>You can install the plug-in from this update site: http://www.rizzoweb.com/Eclipse/updatesiteEric Rizzohttp://www.blogger.com/profile/08407727335073173803noreply@blogger.com1tag:blogger.com,1999:blog-518987099197087911.post-32665272121428623032009-07-08T12:27:00.002-04:002009-07-08T12:32:02.707-04:00Thoughts on Google's operating system announcementThe <a href="http://googleblog.blogspot.com/2009/07/introducing-google-chrome-os.html" target="_blank">rumors have finally been confirmed</a>, Google is working on an operating system.<br /><br />My thoughts on this are simple and limited: I see a small niche market for such an OS, but I just don't see the majority of computer users willing to accept web-only applications across the board. Connectivity is just too inconsistent and unreliable at this point, and even trying to own "constant connectivity" access (3G-based mobile and/or wi-fi access point access) is still way too expensive. Do we really think the 3G carriers are going to spend billions to make 3G as reliable and fast as the broadband that we're all used to getting at home and work? I doubt it. Without that, the web-only user experience will suck, because it won't be consistent.<br />Not to mention that I, personally, consider most web-based apps that attempt to replace a desktop app to be inferior in key ways. There are exceptions, and things are improving, but not enough for me to see this being a broad appeal by next year.<br /><br />Having said that, I'm not foolish enough to bet against Google, who have quite a track record of success when it comes to delivering on new ideas and technology.Eric Rizzohttp://www.blogger.com/profile/08407727335073173803noreply@blogger.com0tag:blogger.com,1999:blog-518987099197087911.post-37049479997330608562009-07-01T15:20:00.018-04:002009-09-27T21:56:21.382-04:00Screencast: Creating an Eclipse download package "from scratch"<span style="font-weight: bold;">UPDATE:</span> As of Service Release 1 (SR1) of Eclipse Galileo (aka, 3.5.1) the process described in this screencast is no longer necessary for 64-bit Mac OS X builds. 64-bit Cocoa builds of all the download packages are now available directly from the <a tooltip="linkalert-tip" href="http://www.eclipse.org/downloads/">Eclipse downloads page</a>.<br /><br /><br />If the cave you've been living in does not have Internet service, then perhaps it will come as news to you that <a href="http://www.eclipse.org/galileo/">Galileo</a> was successfully <a tooltip="linkalert-tip" href="http://www.eclipse.org/org/press-release/20090624_galileo.php">released last week</a>. It's a truly impressive feat to release so reliably so many projects <a tooltip="linkalert-tip" href="http://en.wikipedia.org/wiki/Eclipse_%28software%29#Releases">year after year</a> - you'd think that corporate internal and consumer software projects would take note and figure out what it is that enables the yearly release train to succeed when <a tooltip="linkalert-tip" href="http://www.codinghorror.com/blog/archives/000588.html">so many projects deliver late, over budget, or not at all</a>. But, I digress...<br /><br />Being a recent immigrant to the <a tooltip="linkalert-tip" href="http://www.theappleblog.com/">Nation of Mac</a>, I was among the glad to see the Cocoa port graduate from <a href="http://wiki.eclipse.org/Development_Resources/Process_Guidelines/What_is_Incubation">incubation</a>. However, all is not 100% happy in Eclipse+Mac land. The <a href="http://www.eclipse.org/epp/">Eclipse Packaging Project (EPP)</a>, the small group that produces those <a tooltip="linkalert-tip" href="http://www.eclipse.org/downloads/">easily consumable downloads</a>, the themed packages of plug-ins built on top of the core platform, has limited resources. And with limited people, they can not produce the packages for <a tooltip="linkalert-tip" href="http://www.eclipse.org/projects/project-plan.php?projectid=eclipse#target_environments">every hardware/OS platform on which Eclipse is known to run</a>. Of particular interest to me is the conspicuous absence of EPP package builds for 64-bit OS X. After <a tooltip="linkalert-tip" href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=281501">some discussion</a>, it appears we the community can't make a 64-bit build happen until the first "service release" of Galileo, sometime in the Fall. I'm disappointed, but I (mostly) understand the position that EPP is in.<br /><br />So, what do we do if we want to make full use of all the 64-bit goodness of our operating system and Java 6 JVM? Well, it turns out that re-constructing the EPP packages from the "base platform" SDK is not all that difficult. Ekke Gentz has already blogged some <a href="http://ekkescorner.wordpress.com/2009/06/30/galileo-epp-for-cocoa-64-bit/">text+picture instructions</a>; my screencast below brings the process to life.<br /><br />Note: the URL of the EPP update site used in the screencast is<br /><pre>http://download.eclipse.org/technology/epp/packages/galileo/</pre><br /><br /><object name="Video" classid="clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B" codebase="http://www.apple.com/quicktime/download/" standby="Loading Quicktime components..." height="400" width="490"> <param name="src" value="http://www.rizzoweb.com/Eclipse/InstallingEclipseGalileoPackage.mov"> <param name="autoplay" value="false"> <param name="controller" value="true"> <param name="enablejavascript" value="true"> <param name="playCount" value="1"> <param name="starttime" value="0"> <embed name="Video" pluginspage="http://www.apple.com/quicktime/download/" type="video/quicktime" src="http://www.rizzoweb.com/Eclipse/InstallingEclipseGalileoPackage.mov" autoplay="false" controller="true" enablejavascript="true" starttime="0" height="400" width="490"></embed> </object><br /><br /><span style="font-weight: bold; color: rgb(51, 0, 51);">UPDATE</span>: The package downloads page has been updated so that the Mac 64-bit SDK download is available directly, rather than having to go through the "Other Downloads" page. This makes the process a bit simpler than what is demonstrated in the screencast. If you're following this process for 64-bit Cocoa on OS X, you can get the Platform SDK directly in the Eclipse Classic section, as shown here (click to enlarge):<br /><a tooltip="linkalert-tip" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjnWu_5lcf6SEtm-iv_9l77MPg9mLvlYOWCOM-D8SkZlvsztuMKswedxwF1sfAVtlHQjhycQwcHNy0iPj4UwhrZBi7tLxzmvVILmtuMy1SK2XqoMXoCeyoSOv7e0o4RIGFFfOoF1a7tvYqw/s1600-h/Eclipse64bitCocoaDownload.png"><img tooltip="linkalert-tip" style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 246px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjnWu_5lcf6SEtm-iv_9l77MPg9mLvlYOWCOM-D8SkZlvsztuMKswedxwF1sfAVtlHQjhycQwcHNy0iPj4UwhrZBi7tLxzmvVILmtuMy1SK2XqoMXoCeyoSOv7e0o4RIGFFfOoF1a7tvYqw/s320/Eclipse64bitCocoaDownload.png" alt="" id="BLOGGER_PHOTO_ID_5361002854806239010" border="0" /></a>Eric Rizzohttp://www.blogger.com/profile/08407727335073173803noreply@blogger.com4tag:blogger.com,1999:blog-518987099197087911.post-3519591839533535972009-05-27T17:38:00.005-04:002009-05-28T07:56:07.166-04:00Looking for WorkAbout a month ago, the <a href="http://www.techcrunch.com/layoffs/">layoff</a> <a href="http://www.bls.gov/mls/">wave</a> finally caught up to me. Everyone at <a href="http://www.skywayperspectives.org/">Skyway</a> was gracious, saying repeatedly that they wish they had the money to keep me on board and that they'd really like to bring me back when the economy starts to turn around. But obviously I'm not holding my breath.<br /><br /><a href="http://www.linkedin.com/in/ericrizzo">Here is my LinkedIn profile</a>, including plenty of recommendations from colleagues and supervisors.<br /><br />So if you know of or hear about any Eclipse-related positions, either contract or "perm" staff, please keep me in mind. For now I'd really like to try to stay in the Eclipse development world (designing/writing plug-ins and RCP-based applications, mentoring, training) but I'm open to just about anything to involves Java and Eclipse.Eric Rizzohttp://www.blogger.com/profile/08407727335073173803noreply@blogger.com1tag:blogger.com,1999:blog-518987099197087911.post-36478636565980764232009-05-22T09:21:00.006-04:002009-05-22T10:03:33.045-04:00Eclipse: Talkin' To Users, ReduxThis is a follow-up to <a href="http://dev.eclipse.org/blogs/wayne/2009/05/14/talkin-to-users/">Wayne's post about the Eclipse newsgroups</a>. As I commented there, I understand that the barrier to entry into the newsgroups is higher than it should be, I really do get that. But, personally, I find web-based forums like phpBB to mostly suck. There are some things about them that I do wish we had on the Eclipse newsgroups, like:<br /><ul><li>the ability to earn and give reputation points for good answers</li><li>the ability to easily find threads that a given user has contributed to</li><li>the ability to search across multiple groups easily.<br /></li></ul>It is true that, other than the points system, most of the other features of web-based forums can be done with newsgroups if you have a <a href="http://www.getthunderbird.com/" target="_new">good client</a>. But with so many people using web-based email these days, isn't it too much to ask them to install a separate piece of software just to participate in the newsgroups? I think so, much as I prefer newsgroups myself.<br />I've been trying to put my finger on why, exactly, I prefer newsgroups and I think it all boils down to flexibility. Because they are based on <a href="http://en.wikipedia.org/wiki/NNTP">NNTP</a>, an Internet standard, there are many clients that are capable of participating. That gives the user total control over his reading/posting experience. Contrast that with most phpBB-style forums, where the most control you usually have is the color scheme and whether or not you want a "flat" view or a threaded one.<br />The other big win, for me, that newsgroups have is the tight integration with my email; because I use Thunderbird all day to read multiple email accounts and RSS feeds, newsgroups fit right in like just another account. So, for me, it's flexibility and integration that win out.<br /><br />In the <a href="http://dev.eclipse.org/blogs/wayne/2009/05/14/talkin-to-users/#comment-1387">comments to Wayne's post</a>, someone mentioned <a href="http://fudforum.org/forum/">FUDforum</a> and it's newsgroups bridge. To me, this sounds like the best-of-both-worlds solution. It even has email list integration, so potentially we could offer total flexibility in how users participate: NNTP, web, or email, take your pick. To me that is an ideal solution.<br /><br />So, are there any other options available? Either competitors to FUDforum that can bridge between web and NNTP, or some completely different technology? Remember, what I consider important is flexibility, giving choice and control of the client to the user, and integration with software I'm already using every day.Eric Rizzohttp://www.blogger.com/profile/08407727335073173803noreply@blogger.com4tag:blogger.com,1999:blog-518987099197087911.post-3643866879773832312009-02-21T23:33:00.037-05:002009-02-22T16:11:54.921-05:00Great Urban Race Tampa 2009<div style="text-align: left;"><span class="Apple-style-span" style="font-family:arial;">Jazmine and I competed in </span><a target="_new" href="http://www.greaturbanrace.com/"><span class="Apple-style-span" style="font-family:arial;">The Great Urban Race</span></a><span class="Apple-style-span" style="font-family:arial;"> when it </span><a target="_new" href="http://www.greaturbanrace.com/register09_tampabay.php"><span class="Apple-style-span" style="font-family:arial;">kicked off its 2009 season in Tampa</span></a><span class="Apple-style-span" style="font-family:arial;"> this weekend. It turned out to be a bit longer than we expected, but was still a great time. We both had fun, got some exercise, and the best part is we are not itching to file for divorce after the ordeal / adventure!<br /></span></div><div><div style="text-align: center;"><a target="_new" href="http://picasaweb.google.com/eric.rizzo/GreatUrbanRace2009?feat=embedwebsite#5305729152344546290"><span class="Apple-style-span" style="font-family:arial;"><img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgmYRw50ioLFsJGYfBZYasF3EaNWg73IwlvNET7-_RnKQiOVc-HxBJ-nAbA0VLe3Eo1d2e5w4gZgmEVKs0ojDAJ65zKGMVWcGqZ3gO6HCK1CL56pb-fYOJ8ZbXvsG1jklO16SLxoLsOu3Wi/s288/DSCF4390.JPG" /></span></a><span class="Apple-style-span" style="font-family:arial;"><br /></span></div><span class="Apple-style-span" style="font-family:arial;"><br />We didn't finish very quickly, 4 hours and 15 minutes which put us in 113th place (out of approximately 150 teams). The winner supposedly did the entire thing in under 2 hours, which I seriously think is impossible without cheating. I mean, we covered over 10 miles of distance and I just don't see how it could be done in less than 8 miles. When you account for having to figure out amd locate clues, it just seems silly to finish in under 2 hours, even if you seriously ran the entire route.</span></div><div><span class="Apple-style-span" style="font-family:arial;">Oh well, we weren't there to win, we were there to have fun which we most certainly did!<br />You can see a </span><a target="_new" href="http://maps.google.com/maps/ms?ie=UTF8&hl=en&msa=0&msid=116147434866793373926.00046376947fbd397e01d&z=15" target="_new"><span class="Apple-style-span" style="font-family:arial;">map of our route</span></a><span class="Apple-style-span" style="font-family:arial;">, including all the stops we made for clues. According to that, we walked/ran almost 5 miles - no wonder I'm sore and worn out!</span></div><div><div><div><span class="Apple-style-span" style="font-family:arial;">I give the organizers credit for making it challenging, but I was a bit disappointed in the decision to take us all the way to Hyde Park without a decent public transit option for getting there (at least, none that we could find that was available on Saturdays).</span></div><div><span class="Apple-style-span" style="font-family:arial;"><br /></span></div><div><span class="Apple-style-span" style="font-family:arial;">We did a couple of strategic things that I think helped a lot:</span></div><div><ul><li><span class="Apple-style-span" style="font-family:arial;">Based on advice from a blog about last year's race, we stopped on our way to the race at the transit center and bought single-day </span><a target="_new" href="http://www.hartline.org/"><span class="Apple-style-span" style="font-family:arial;">HART</span></a><span class="Apple-style-span" style="font-family:arial;"> passes. For less than $4 each we could ride any bus or the </span><a target="_new" href="http://www.tecolinestreetcar.org/"><span class="Apple-style-span" style="font-family:arial;">streetcar</span></a><span class="Apple-style-span" style="font-family:arial;"> all day long. We used the passes 3 times, so it paid off.</span></li><li><span class="Apple-style-span" style="font-family:arial;">Because we didn't arrange for a "support person" to be available on the phone to look up clue information, we took the notebook computer and scoped out some free wireless hotspots near the starting point. This proved invaluable as we spent about 15 minutes looking up the clues that we didn't have a clue about otherwise. Without that, we would have had to call someone and rely on them to find information and relay it over the phone. The only thing we could have done better was to use that internet access to get better bus route information; the maps we had did not provide enough detail to find the stops, nor the times.</span></li></ul></div><div><span class="Apple-style-span" style="font-family:arial;">Here are the clues along with the "answers" when appropriate.</span></div><div><ol><li><span class="Apple-style-span" style="font-style: italic;"><span class="Apple-style-span" style="font-family:arial;">Solve the following puzzle assuming the hyphenated word is "anti-gravity." Then do what it says. Be careful, some letter symbols have subtle differences. [strange symbols were given along with the letters they represent]</span></span><span class="Apple-style-span" style="font-family:arial;"><br /><br />This was a pretty simple "decode" task, but a little tricky because the symbols were small and some </span><span class="Apple-style-span" style="font-weight: bold;"><span class="Apple-style-span" style="font-family:arial;">very</span></span><span class="Apple-style-span" style="font-family:arial;"> similar to each other. The message decoded to "</span><span class="Apple-style-span" style="font-style: italic;"><span class="Apple-style-span" style="font-family:arial;">Take a picture of both teammates with the anti-gravity rock.</span></span><span class="Apple-style-span" style="font-family:arial;">" Google quickly helped us figure out that it was </span><a target="_new" href="http://en.wikipedia.org/wiki/University_of_Tampa#Campus"><span class="Apple-style-span" style="font-family:arial;">on the UT campus</span></a><span class="Apple-style-span" style="font-family:arial;">, next to Plant Hall. Of course, we walked all the way around the building to find it because we took a 50/50 chance on which way to go and Murphy's Law dictated that we chose the longer way.<br /></span><div style="text-align: center;"><a target="_new" href="http://picasaweb.google.com/lh/photo/wmR7-2e6njmS1Ah37qraww?feat=embedwebsite"><span class="Apple-style-span" style="font-family:arial;"><img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg6-4ShuNQjqq1VIGAhYjAP5YcoMh9c-xsZVDA3B5dF8QZKd9Asnx0uDcpkBNn4HWYbr62uk2Hr30qpYcaVo6u9aZa13j1oOTQFIf_olxPm1GrYTNfvd_udvpzCRaRAwX1_csfwKSeSl72k/s288/DSCF4382.JPG" /></span></a><span class="Apple-style-span" style="font-family:arial;"><br /></span></div></li><span class="Apple-style-span" style="font-family:arial;"><br /></span><li><span class="Apple-style-span" style="font-style: italic;"><span class="Apple-style-span" style="font-family:arial;">Go to Lifestyle Family Fitness in Hyde Park and complete the boot camp in the group fitness room. Each teammate must complete the activities required by the trainers. After completing the challenge you must get a business card from the person near the entrance to prove you completed the task. </span><span class="Apple-style-span" style="font-weight: bold;"><span class="Apple-style-span" style="font-family:arial;">This challenge is only available from 1:00pm - 4:00pm.</span></span></span><span class="Apple-style-span" style="font-family:arial;"><br /><br />The Lifestyle location was easy to find, but by the point of the race when we arrived we were already pretty tired from 2+ miles of walking/running and lack of food. The "boot camp" consisted of a handful of machine and dumbell exercises that weren't too bad, finishing with lunge steps that were brutal. My quads were screaming by the end!<br /></span></li><span class="Apple-style-span" style="font-family:arial;"><br /></span><li><span class="Apple-style-span" style="font-style: italic;"><span class="Apple-style-span" style="font-family:arial;">Find Judy's Cuties in the Saturday Ybor Market (open until 3pm). Take a picture of both teammates wearing the jewelry set aside for the race. After taking the picture, return the jewelry.</span></span><span class="Apple-style-span" style="font-family:arial;"><br /><br />This was right around the corner from the race starting point and so was the first task we performed. By sheer luck, we walked right up to Judy's booth - in fact, we were the very first team at this clue. So despite our relatively poor finish at least we can take pride in being in first place for 5 minutes!<br /></span><div style="text-align: center;"><a target="_new" href="http://picasaweb.google.com/lh/photo/6zJPBzCOoJjL6GpLRBg4iQ?feat=embedwebsite"><span class="Apple-style-span" style="font-family:arial;"><img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgWox4wITCzo0-dFgkp4AgofnY3_AF0j9R3sKxXwW4rfHIxj8MlM5mnfFycKgEltGf_sTS4fw06PD0SKz8Wy3Od1uw9HOB7y1ifI5ANBMKXSb_T8j0GskZ9rlpMEq65vz-IEGXQfw3OwhCO/s400/DSCF4378.JPG" /></span></a><span class="Apple-style-span" style="font-family:arial;"><br /></span></div></li><span class="Apple-style-span" style="font-family:arial;"><br /></span><li><span class="Apple-style-span" style="font-style: italic;"><span class="Apple-style-span" style="font-weight: bold;"><span class="Apple-style-span" style="font-family:arial;">DETOUR</span></span><span class="Apple-style-span" style="font-family:arial;"> (complete one of the following two):<br />Bring a box of Grape Mike and Ike's candy to teh finish line.<br />Or...<br />Bring a real copy of a publication named Boat Shopper to the finish line.</span></span><span class="Apple-style-span" style="font-family:arial;"><br /><br />This ended up being a lot harder than it sounds, and this was the task that we skipped. It was not for lack of trying; we looked in at least 5 different stores for either of the items, but no luck.</span></li><span class="Apple-style-span" style="font-family:arial;"><br /></span><li><span class="Apple-style-span" style="font-family:arial;">P</span><span class="Apple-style-span" style="font-style: italic;"><span class="Apple-style-span" style="font-family:arial;">urchase a minimum of 3 non-perishable items per team and donate them to 2nd Harvest of Tampa Bay. 2nd Harvest has a donation truck waiting for you somewhere in the Publix parking lot on Bayshore Blvd. After donating your items, be sure to get this clue sheet stamped!</span></span><span class="Apple-style-span" style="font-family:arial;"><br /><br />An easy task/clue, but a nice gesture from the race organizers to help out </span><a target="_new" href="http://www.a2htampabay.org/"><span class="Apple-style-span" style="font-family:arial;">a local charity</span></a><span class="Apple-style-span" style="font-family:arial;">. The Publix is right across the street from the Columbus statue (see clue # 11 below), so we did them back-to-back. Jazmine actually scouted out bus routes to Hyde Park while I did the shopping.<br /></span></li><span class="Apple-style-span" style="font-family:arial;"><br /></span><li><span class="Apple-style-span" style="font-style: italic;"><span class="Apple-style-span" style="font-family:arial;">Take a picture of both teammates with the following sculpture clearly visible in the picture. [the clue sheet include a small photo but no hints about location]</span></span><span class="Apple-style-span" style="font-family:arial;"><br /><br />At first we recognized the sculpture but couldn't remember from where. It turned out to be at the </span><a target="_new" href="http://www.sptimesforum.com/"><span class="Apple-style-span" style="font-family:arial;">St. Pete Times forum</span></a><span class="Apple-style-span" style="font-family:arial;">, where we've attended dozens of </span><a target="_new" href="http://lightning.nhl.com/"><span class="Apple-style-span" style="font-family:arial;">Lightning</span></a><span class="Apple-style-span" style="font-family:arial;"> games over the past few years, so we're embarrased that we spent even 5 minutes Googleing for it. Credit goes to Jazmine for remembering first and convincing me she was right. </span><a target="_new" href="http://maps.google.com/maps?f=q&source=s_q&hl=en&geocode=&q=st.+pete+times+forum&sll=37.0625,-95.677068&sspn=49.71116,89.121094&ie=UTF8&z=17&layer=c&cbll=27.943574,-82.452492&panoid=gGhZZwgAIT4UrgQaEnni0A&cbp=12,170.13825930266825,,0,5"><span class="Apple-style-span" style="font-family:arial;">Google Street View</span></a><span class="Apple-style-span" style="font-family:arial;"> confirmed her memory.<br /></span><div style="text-align: center;"><a target="_new" href="http://picasaweb.google.com/eric.rizzo/GreatUrbanRace2009?feat=embedwebsite#5305724570243410754"><span class="Apple-style-span" style="font-family:arial;"><img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhGzyFVTInzufs79gz5ep0KdD1Inmyl2635RIojaspnPXrxgyhebf7DcpbANobytk4vlRAsMYdPIvzmiErT5tGO9RPR9W-h7VnnvGRvPaEvV5TUmG9dV-zR_a-bMxPJGSeCeOqcy7Zhcsdk/s288/DSCF4380.JPG" /></span></a><span class="Apple-style-span" style="font-family:arial;"><br /></span></div></li><span class="Apple-style-span" style="font-family:arial;"><br /></span><li><span class="Apple-style-span" style="font-style: italic;"><span class="Apple-style-span" style="font-family:arial;">Find Frankie's Tampa. There will be a tray of cheese cubes in the back room. Take a picture of one teammate dropping a cheese cube into the other teammate's mouth.</span></span><span class="Apple-style-span" style="font-family:arial;"><br /><br /></span><a target="_new" href="http://www.frankieshotdogs.com/"><span class="Apple-style-span" style="font-family:arial;">Frankie's</span></a><span class="Apple-style-span" style="font-family:arial;"> is on Kennedy Blvd, just west of the </span><a target="_new" href="http://www.ut.edu/"><span class="Apple-style-span" style="font-family:arial;">UT</span></a><span class="Apple-style-span" style="font-family:arial;"> campus. We did this one right after Clue #1, the anti-gravity rock.<br /></span><div style="text-align: center;"><a target="_new" href="http://picasaweb.google.com/lh/photo/gD1iBv7IPKEkBLtHiT3GBg?feat=embedwebsite"><span class="Apple-style-span" style="font-family:arial;"><img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh2o7yT59R4OSGzTUqcb3766pZZQPG2cA3Fq3XzTfzOQqcRXeOna2R4s8DSO9O7awIriUCX_AN5vsL0U_Syo65T3WAt6goov9RzpjS_1scRBzKH919QDN6npl25PMRVY5c-RpentyBwQygl/s288/DSCF4383.JPG" /></span></a><span class="Apple-style-span" style="font-family:arial;"><br /></span></div></li><span class="Apple-style-span" style="font-family:arial;"><br /></span><li><span class="Apple-style-span" style="font-weight: bold;"><span class="Apple-style-span" style="font-style: italic;"><span class="Apple-style-span" style="font-family:arial;">DETOUR</span></span></span><span class="Apple-style-span" style="font-style: italic;"><span class="Apple-style-span" style="font-family:arial;"> (complete one of the following):<br />Take a picture of four or more people total with at least one t-shirt from a convert visible in the picture.<br />Or...<br />Take a picture of six or more people total with at least two people wearing a necktie.</span></span><span class="Apple-style-span" style="font-family:arial;"><br /><br /></span></li><span class="Apple-style-span" style="font-family:arial;">We got lucky on this one. The streetcar from Ybor to Channelside was packed with racers. Someone convinced a couple of friendly tourists to don their neckties and pose with some of the racers for the photo. I think at least 8 or 10 teams got the same picture thanks to the good nature of the tourists, one of whom even opened his suitcase (he was on his way to the cruise ship that was docked at Channelside) to get a tie to wear.<br /></span><div style="text-align: center;"><a target="_new" href="http://picasaweb.google.com/lh/photo/lS26ow5Yu2sI4nvU7sGNow?feat=embedwebsite"><span class="Apple-style-span" style="font-family:arial;"><img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhCcrtTfrWndVpKML-cVG-bz_aWq9ZqxR9LiWEfgsR3Jm6BS58-6bN1FSg_r1ye21Baj1WkxvoXj91InV1quIEKDXwh9JhGQ9SadHyM0jT7PsZF_J4DVLocHu2zIkJUSNIJFpJIW-mpdrFQ/s288/DSCF4379.JPG" /></span></a><span class="Apple-style-span" style="font-family:arial;"><br /></span></div><span class="Apple-style-span" style="font-family:arial;"><br /></span><li><span class="Apple-style-span" style="font-style: italic;"><span class="Apple-style-span" style="font-family:arial;">Take a picture of both teammates in front of the arcade game called Chip Away in Gameworks and win at least ten tickets (that means 20 'points') from any game in Gameworks.</span></span><span class="Apple-style-span" style="font-family:arial;"><br /><br /></span></li><span class="Apple-style-span" style="font-family:arial;">This was the last clue we did, and I'm embarrased at how badly my </span><a target="_new" href="http://en.wikipedia.org/wiki/Skee_ball"><span class="Apple-style-span" style="font-family:arial;">skeeball</span></a><span class="Apple-style-span" style="font-family:arial;"> skills have deteriorated over the years!<br />Originally I was thinking we'd use this one or the Improv one (clue # 12) as our skip clue, but because we could not find the candy or shopper magazine from clue #4, we ended up having to do both.<br /></span><div style="text-align: center;"><a target="_new" href="http://picasaweb.google.com/lh/photo/wBcPukBRlfX6OpiLuLEaQA?feat=embedwebsite"><span class="Apple-style-span" style="font-family:arial;"><img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhTrkTsNXpqQ_xfR5y4xnbSHRlJxCiSWNfcHHeTGLKYu1GX4-y7XxT2RxYmPTPguIUT3j7b3nalhSQrWcNkprMEtF85MmJj5TW1m7Fb4EjNYVIkd9w7qxBosy8Gk6rz7bTAhk2M8IXR5Cmp/s288/DSCF4387.JPG" /></span></a><span class="Apple-style-span" style="font-family:arial;"><br /></span><span class="Apple-style-span" style="font-size:small;"><span class="Apple-style-span" style="font-family:arial;">(Can you tell by our enthusiastic faces that we were nearing the end, of the race and our patience?)</span></span></div><span class="Apple-style-span" style="font-family:arial;"><br /></span><li><span class="Apple-style-span" style="font-style: italic;"><span class="Apple-style-span" style="font-family:arial;">Take a picture of both teammates in front of this red phone booth in Hyde Park. [the clue sheet included a small picture of the phone booth]</span></span><span class="Apple-style-span" style="font-family:arial;"><br /><br />This was dead simple; anyone who's ever been to </span><a target="_new" href="http://www.oldhydepark.com/Directory/default.aspx"><span class="Apple-style-span" style="font-family:arial;">Hyde Park Village</span></a><span class="Apple-style-span" style="font-family:arial;"> has seen that phone booth, and it's right on the main street as you walk or drive in. Even if you didn't know about it, it would be hard to go to Lifestyles for clue # 2 without seeing it.<br /></span><div style="text-align: center;"><a target="_new" href="http://picasaweb.google.com/lh/photo/05eQ13VyO1KUH71Pue5wRA?feat=embedwebsite"><span class="Apple-style-span" style="font-family:arial;"><img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjbWfE5Zeu4frRGxzdNR6AV2glACCaS7MM3I7eCFBrMVzI0u1VbQ4KJHHBj5rk-rildoya0qlyaqe8hmaBHQszLbJHGlXkjU5YNlWeCsrFSvXahV9Fv-8Ww43jc48lVKT8mtVEIac5CM00M/s288/DSCF4386.JPG" /></span></a><span class="Apple-style-span" style="font-family:arial;"><br /></span></div></li><span class="Apple-style-span" style="font-family:arial;"><br /></span><li><span class="Apple-style-span" style="font-style: italic;"><span class="Apple-style-span" style="font-family:arial;">The monument is mentioned in the song "Ybor Way" by T. W. Ramsay, 1959. Take a picture of both teammates in front of it.</span></span><span class="Apple-style-span" style="font-family:arial;"><br /><br />Google really helped for this one, as no-one we asked had heard of the song. It refers to the statue of Columbus at the Platt St. end of </span><a target="_new" href="http://www.communitywalk.com/location/bayshore_boulevard_linear_park/parks/1771902"><span class="Apple-style-span" style="font-family:arial;">Bayshore Boulevard Linear Park; </span></a><span class="Apple-style-span" style="font-family:arial;">we stopped there on our way to Publix for clue # 5.<br /></span><div style="text-align: center;"><a target="_new" href="http://picasaweb.google.com/eric.rizzo/GreatUrbanRace2009?feat=embedwebsite#5305724575625710882"><span class="Apple-style-span" style="font-family:arial;"><img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj80VrrSNr3jtxVLX4JE8Z8t2-xIbM-43ZZjHXnYvE-J-UeW4pe2FpCxdgNsYp19eFry5IQBOxxkIwBG8pn1kl4UYxfd2iZAB2soyVZezLF65KIr0oFW5YtKsWdvaZg-zaQfd-Wg2Wt5no8/s288/DSCF4381.JPG" /></span></a><span class="Apple-style-span" style="font-family:arial;"><br /></span></div></li><span class="Apple-style-span" style="font-family:arial;"><br /></span><li><span class="Apple-style-span" style="font-style: italic;"><span class="Apple-style-span" style="font-family:arial;">Find Tampa Improv's secondary stage. Once there, you must tell a joke (of your choice) to the judges. If it makes the judges laugh, you'll get a stamp and this clue is complete. I your joke does nor make them laugh you must perform another joke. Your joke can b simple and does not need to involve both teammates. Our judges are looking more for effort than hilarity. </span><span class="Apple-style-span" style="font-weight: bold;"><span class="Apple-style-span" style="font-family:arial;">You must receive a stamp on the clue sheet from one of the judges! This clue will only be available from 1:0004:00 so strategize accordingly.</span></span></span><span class="Apple-style-span" style="font-family:arial;"><br /><br />We did this one next-to-last after we returned to Ybor from Hyde Park. It was kind of hard to get up there in front of two volunteer judges who had clearly heard more than they wanted of amateur comedians and bad jokes. Not to mention the other teams who were gathered around waiting their turn.<br />The first joke we tried bombed:<br /><br /></span><div style="text-align: left; "><span class="Apple-style-span" style="font-style: italic;"><span class="Apple-style-span" style="font-family:arial;">"Knock-knock.<br /></span></span></div><div style="text-align: left; "><span class="Apple-style-span" style="font-style: italic;"><span class="Apple-style-span" style="font-family:arial;">Who's there?<br /></span></span></div><div style="text-align: left; "><span class="Apple-style-span" style="font-style: italic;"><span class="Apple-style-span" style="font-family:arial;">Impatient cow.<br /></span></span></div><div style="text-align: left; "><span class="Apple-style-span" style="font-style: italic;"><span class="Apple-style-span" style="font-family:arial;">Impatient c-<br /></span></span></div><div style="text-align: left; "><span class="Apple-style-span" style="font-style: italic;"><span class="Apple-style-span" style="font-family:arial;">[rushed, interrupting] Moo! Moo! Moo..."<br /></span></span></div><span class="Apple-style-span" style="font-family:arial;"><br /></span><div style="text-align: left; "><span class="Apple-style-span" style="font-family:arial;">In desperation, I threw out my own made-up corn joke:<br /></span></div><span class="Apple-style-span" style="font-style: italic;"><span class="Apple-style-span" style="font-family:arial;">"What do you say to corn before you eat it? ... 'See ya tomorrow.'"</span></span><span class="Apple-style-span" style="font-family:arial;"><br />One of the judges actually snickered and I think the other one felt pity on us so agreed to give us the stamp.</span></li></ol><br /></div><div>Here's a map of the route we took (click "View Larger Map" underneath to see details and descriptions of the place-markers):</div><div><div style="text-align: center;"><iframe width="300" height="300" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="http://maps.google.com/maps/ms?ie=UTF8&hl=en&s=AARTsJozpZiS6yizRPb5OFAs558klOPvtQ&msa=0&msid=116147434866793373926.00046376947fbd397e01d&ll=27.94854,-82.457199&spn=0.045492,0.051498&z=13&output=embed"></iframe><br /></div><small><div style="text-align: center;"><a target="_new" href="http://maps.google.com/maps/ms?ie=UTF8&hl=en&msa=0&msid=116147434866793373926.00046376947fbd397e01d&ll=27.94854,-82.457199&spn=0.045492,0.051498&z=13&source=embed" style="color:#0000FF;text-align:left">View Larger Map</a><br /></div></small></div></div></div>Eric Rizzohttp://www.blogger.com/profile/08407727335073173803noreply@blogger.com5tag:blogger.com,1999:blog-518987099197087911.post-72831100207742389542009-01-02T14:10:00.002-05:002009-01-02T14:21:48.380-05:00R.I.P Dion GillardI learned today that a long-time colleague of mine, Dion Gillard, passed away back in September. Although I knew him only electronically, we participated together on a close-knit mailing list for many years.<br />He had melanoma and wrote a bit about it <a target="_new" href="http://www.multitask.com.au/people/dion/archives/000621.html ">here</a>. I looked at <a target="_new" href="http://www.flickr.com/photos/diongillard/">photos he had posted over the years</a>, some of them eerily peaceful when viewed in light of his passing.<br />Many people on the email list <a target="_new" href="http://tech.groups.yahoo.com/group/straight_talking_java/message/58469">have expressed regret</a> that we did not notice his departure until now, 3 months after his death. That is sad evidence indeed of the state of our too-busy, information-swamped society, but I feel something else...<br />For some reason, even more than the lose of Dion himself, I feel sadness for his children. I'm feeling the kind of deep sadness and sense of hopelessness as I did yesterday watching a performance by Eric Clapton; I was wondering how Clapton could ever experience happiness again after losing his young son years ago. Now I find myself wondering how Dion's children (and wife?) will ever feel happiness after losing their dad and husband.<br />As scary a thought as my own death is, I think I fear even more the thought of losing my wife or son. To me, the ones left behind continue to suffer more after the dying have rested, and that saddens me. It saddens me so much that I am near tears for a family I have never met and don't know the first thing about.<br />To the Gillard family, my prayers are with you; know that God hears them.Eric Rizzohttp://www.blogger.com/profile/08407727335073173803noreply@blogger.com1tag:blogger.com,1999:blog-518987099197087911.post-73438157554505495912008-11-14T10:39:00.003-05:002008-11-14T10:45:38.239-05:00New photos for 2008Here are the latest pictures of Julian and friends & family from this past summer.<br />You can see more albums from this year in our gallery: <a href="http://picasaweb.google.com/eric.rizzo/">http://picasaweb.google.com/eric.rizzo/</a><br /><br /><embed type="application/x-shockwave-flash" src="http://picasaweb.google.com/s/c/bin/slideshow.swf" flashvars="host=picasaweb.google.com&captions=1&noautoplay=1&RGB=0x000000&feed=http%3A%2F%2Fpicasaweb.google.com%2Fdata%2Ffeed%2Fapi%2Fuser%2Feric.rizzo%2Falbumid%2F5267989293571512417%3Fkind%3Dphoto%26alt%3Drss" pluginspage="http://www.macromedia.com/go/getflashplayer" height="533" width="800"></embed>Eric Rizzohttp://www.blogger.com/profile/08407727335073173803noreply@blogger.com0tag:blogger.com,1999:blog-518987099197087911.post-47659286206842002792008-10-21T09:35:00.005-04:002008-11-14T09:43:44.086-05:00Relative paths in Eclipse .link filesWhen setting up an <a href="http://www.eclipse.org/">Eclipse </a>installation (or a <a href="http://help.eclipse.org/ganymede/topic/org.eclipse.pde.doc.user/guide/tools/preference_pages/target_platform.htm">target platform</a> if you're doing Eclipse plug-in or <a href="http://wiki.eclipse.org/index.php/Rich_Client_Platform">RCP</a> development), it is <a href="http://divby0.blogspot.com/2007/06/managing-plugins-and-features-with-link.html">often recommended to use .link files</a> to <a href="http://www.ibm.com/developerworks/opensource/library/os-ecl-manage/">keep things organized</a>. While this is excellent advice, all of the examples I could find use absolute paths in the .link files (for example, D:/eclipse/eclipse-plugins/MyFavoritePlugin), which is, in my opinion, less than ideal.<br />It turns out that the .link paths can be relative, and that is especially helpful if you want to check in your target platform into source control (CVS) or otherwise share it with others who may not install into the same absolute path (or even on the same OS).<br />The trick is getting the format of the path correct so that <a href="http://www.eclipse.org/equinox/">Equinox</a> can resolve correctly. For example, here is the outline of the target platform we use for developing <a href="http://www.skywayperspectives.org/">Skyway Builder</a>:<br /><br /><pre>TargetPlatform/<br /> eclipse-3.3.2/<br /> plugins/<br /> features/<br /> links/<br /> EPF-RichText.link<br /> maven2eclipse.link<br /> ext/<br /> EPF-RichText/<br /> eclipse/<br /> plugins/<br /> features/<br /> Maven2Eclipse/<br /> eclipse/<br /> plugins/<br /> features/<br /></pre><br /><br />In that structure, the ext/ directory contains a couple of "non-standard" features that we depend on, the RichText editor component from the <a href="http://www.eclipse.org/epf/">EPF project</a>, and the <a href="http://www.eclipse.org/m2e/">Maven integration plug-ins</a>. Now here's the meat of this post, what do the .link files look like to use relative paths. The <span style="font-weight:bold;">EPF-RichText.link</span> and <span style="font-weight:bold;">maven2eclipse.link</span> files each contain one line:<br /><pre>path=ext/EPF-RichText</pre> and <pre>path=ext/Maven2Eclipse</pre> (respectively).<br /><br />Note that the paths are relative to the directory containing both the base Eclipse installation and the ext/ directory. Also note that when selecting the target platform in the Eclipse preferences, you must select <span style="font-weight:bold;">/TargetPlatform/eclipse-3.3.2/</span> (not <span style="font-weight:bold;">/TargetPlatform/</span>).<br /><br />With this structure and the .link files using these relative paths, anyone can easily check out our target platform from CVS (and store it anywhere on their local file system they want), point their development Eclipse at it, and be ready to build our source code.<br /><br />If you have a target platform set up this way with relative link files, and it is a full-blown runnable Eclipse (a target platform does not need to be a full runnable Eclipse, but in my experience it usually is), you have to be careful to <span style="font-weight:bold;">not ever<span style="font-style:italic;"></span></span> run that target (don't launch the eclipse.exe or eclipsec.exe). Once you do, something happens that prevents it from working; for some reason the relative .link files stop working and thus it will not be a good target anymore. In our target that is checked in to CVS, we simple removed the .exe files so that nobody can accidentally run the target platform.<br /><br />One final note: this should also work across platforms (the link files are not Windows or Linux or Mac specific), although I have not actually tested that. If you can try it on Linux or Mac, please let me know how it turns out.Eric Rizzohttp://www.blogger.com/profile/08407727335073173803noreply@blogger.com1tag:blogger.com,1999:blog-518987099197087911.post-63823812596696865262008-08-09T10:35:00.004-04:002008-08-09T10:41:52.479-04:00Model-Driven Software DevelopmentYesterday I blogged on my employer's site <a href="http://www.skywayperspectives.org/blog/wp-trackback.php?p=46">some thoughts on Model-Driven Software Development</a>.Eric Rizzohttp://www.blogger.com/profile/08407727335073173803noreply@blogger.com0