<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" gd:etag="W/&quot;CkAFRX09fip7ImA9WhRbEEg.&quot;"><id>tag:blogger.com,1999:blog-260533640632479491</id><updated>2012-01-31T23:58:34.366+01:00</updated><category term="Visual Studio" /><category term="Stammtisch" /><category term="Scanning" /><category term="proxy" /><category term="VDF Tools" /><category term="PDF" /><category term="Google Code" /><category term="security" /><category term="Visual Studio Shell" /><category term="Mylyn" /><category term="Eclipse Summit Europe" /><category term="time tracking" /><category term="PDE" /><category term="Windows" /><category term="Pixma" /><category term="Java" /><category term="Apple" /><category term="Mercurial" /><category term="invoicing" /><category term="equinox" /><category term="USB" /><category term="Open Source" /><category term="C#" /><category term="Xtext" /><category term="Fortran" /><category term="iPhone" /><category term="desktop notifications" /><category term="JFace" /><category term="Jenkins" /><category term="Git" /><category term="build" /><category term="iPod" /><category term="Linux" /><category term="ANT" /><category term="Eclipse" /><category term="Mac" /><category term="Hudson" /><category term="CruiseControl" /><category term="network" /><category term="TableViewer" /><category term="release" /><category term="aggregator" /><category term="SWT" /><category term="eBook" /><title>Yet another coder's blog</title><subtitle type="html" /><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://torkildr.blogspot.com/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://torkildr.blogspot.com/" /><link rel="next" type="application/atom+xml" href="http://www.blogger.com/feeds/260533640632479491/posts/default?start-index=26&amp;max-results=25&amp;redirect=false&amp;v=2" /><author><name>Torkild U. Resheim</name><uri>https://profiles.google.com/114353763327539408721</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/--0J6SSx4TVQ/AAAAAAAAAAI/AAAAAAAAASQ/e0j6O-hLIz0/s512-c/photo.jpg" /></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>45</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/YetAnotherCodersBlog" /><feedburner:info uri="yetanothercodersblog" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><entry gd:etag="W/&quot;CUQMQnk9fSp7ImA9WhRSEU0.&quot;"><id>tag:blogger.com,1999:blog-260533640632479491.post-9117798249339414232</id><published>2011-11-12T13:06:00.001+01:00</published><updated>2011-11-12T14:09:43.765+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-11-12T14:09:43.765+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Eclipse Summit Europe" /><category scheme="http://www.blogger.com/atom/ns#" term="Eclipse" /><category scheme="http://www.blogger.com/atom/ns#" term="Mylyn" /><category scheme="http://www.blogger.com/atom/ns#" term="eBook" /><title>Getting to the EPUB support in Eclipse</title><content type="html">It has been a very hectic week since EclipeCon Europe 2011 and I have not had time to follow up on those of you that have taken contact to learn more about EPUB support in Eclipse. My apologies. In case you missed the presentation you will find it at &lt;a href="http://www.slideshare.net/torkildr/eclipsecon-europe-2011-build-your-epubs-with-eclipse" target="_blank"&gt;SlideShare&lt;/a&gt;&amp;nbsp;(sans the demos). At the time I was told that all presentations were taped and will be published at YouTube. (I'm looking forward to watching those I missed).&lt;br /&gt;
&lt;br /&gt;
Anyway... A short summary of status: The EPUB API, Ant task and UI is currently in &lt;a href="http://www.eclipse.org/projects/dev_process/ip-process-in-cartoons.php" target="_blank"&gt;CQ&lt;/a&gt; and is heading towards a release published with the next Mylyn release in February. So for now you cannot find the code in the Eclipse repositories. Meanwhile it is available at &lt;a href="https://github.com/turesheim/org.eclipse.mylyn.docs" target="_blank"&gt;GitHub&lt;/a&gt;. If you need a p2 repository and have trouble creating it yourself, please ping me.&lt;br /&gt;
&lt;br /&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-TdYN7iV9i1Q/Tr5vzbCvTAI/AAAAAAAAATg/OswaSW24v_c/s1600/Skjermbilde+2011-11-12+kl.+13.43.40.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="295" src="http://2.bp.blogspot.com/-TdYN7iV9i1Q/Tr5vzbCvTAI/AAAAAAAAATg/OswaSW24v_c/s400/Skjermbilde+2011-11-12+kl.+13.43.40.png" width="400" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Screenshot showing "The Book of CSS3" rendered within Eclipse.&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;div style="font-size: 13px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: left;"&gt;
&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;
&lt;span class="Apple-style-span" style="font-size: small;"&gt;The screenshot above shows the EPUB reader within Eclipse. This is currently experimental and not a part of the initial contribution to Mylyn Docs. This code is also at GitHub, just take a look in the&amp;nbsp;&lt;i&gt;&lt;a href="https://github.com/turesheim/org.eclipse.mylyn.docs/tree/reader" target="_blank"&gt;reader branch&lt;/a&gt;&lt;/i&gt;.&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style="font-size: 13px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: left;"&gt;
&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;
&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style="font-size: 13px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: left;"&gt;
&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;
&lt;span class="Apple-style-span" style="font-size: small;"&gt;Please let me know if you have any questions.&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/260533640632479491-9117798249339414232?l=torkildr.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/YetAnotherCodersBlog/~4/V9FWf2N57DM" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://torkildr.blogspot.com/feeds/9117798249339414232/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://torkildr.blogspot.com/2011/11/getting-to-epub-support-in-eclipse.html#comment-form" title="13 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/260533640632479491/posts/default/9117798249339414232?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/260533640632479491/posts/default/9117798249339414232?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/YetAnotherCodersBlog/~3/V9FWf2N57DM/getting-to-epub-support-in-eclipse.html" title="Getting to the EPUB support in Eclipse" /><author><name>Torkild U. Resheim</name><uri>https://profiles.google.com/114353763327539408721</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/--0J6SSx4TVQ/AAAAAAAAAAI/AAAAAAAAASQ/e0j6O-hLIz0/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/-TdYN7iV9i1Q/Tr5vzbCvTAI/AAAAAAAAATg/OswaSW24v_c/s72-c/Skjermbilde+2011-11-12+kl.+13.43.40.png" height="72" width="72" /><thr:total>13</thr:total><feedburner:origLink>http://torkildr.blogspot.com/2011/11/getting-to-epub-support-in-eclipse.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkYFQH48eyp7ImA9WhdaGEQ.&quot;"><id>tag:blogger.com,1999:blog-260533640632479491.post-8030737498274750717</id><published>2011-10-29T15:27:00.000+02:00</published><updated>2011-10-29T16:21:51.073+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-10-29T16:21:51.073+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Eclipse Summit Europe" /><category scheme="http://www.blogger.com/atom/ns#" term="Eclipse" /><category scheme="http://www.blogger.com/atom/ns#" term="Mylyn" /><category scheme="http://www.blogger.com/atom/ns#" term="eBook" /><title>Build your EPUBs with Eclipse, and read them too.</title><content type="html">A lot has happened in the e-book world the past couple of years. There is an abundance of hardware for reading electronic books and the state of desktop reading systems is steadily improving. There is also a large number of electronic books available. Especially novels, but also technical material such as one of my current favorites: &lt;a href="http://progit.org/2010/05/17/progit-for-the-ipad.html"&gt;Pro Git&lt;/a&gt;. And as reading systems are improving, utilizing technologies such as SVG and CSS3; Electronic books become more suitable for publications where there are tables, figures and illustrations that must be presented correctly.&lt;br /&gt;
&lt;br /&gt;
In response to this development I have in the past year worked on implementing support for putting together and reading EPUBs in Eclipse. This &lt;a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=332122"&gt;contribution&lt;/a&gt; is currently being processed and will most likely be available as a part of the next Mylyn release. One of the features of this contribution is the ability to quickly generate an EPUB from wiki markup as the video below demonstrates.&lt;br /&gt;
&lt;br /&gt;
&lt;object style="height: 349px; width: 573px;"&gt;&lt;param name="movie" value="http://www.youtube.com/v/kdcDMmx2ohY?version=3&amp;feature=player_profilepage"&gt;

&lt;param name="allowFullScreen" value="true"&gt;

&lt;param name="allowScriptAccess" value="always"&gt;

&lt;embed src="http://www.youtube.com/v/kdcDMmx2ohY?version=3&amp;feature=player_profilepage" type="application/x-shockwave-flash" allowfullscreen="true" allowScriptAccess="always" width="573" height="322"&gt;&lt;/object&gt;
&lt;br /&gt;
&lt;br /&gt;
If you're interested in creating electronic publications, from wiki markup or other sources – and you're going to&amp;nbsp;the &lt;a href="http://www.eclipsecon.org/europe2011/"&gt;sixth European Eclipse Conference&lt;/a&gt;&amp;nbsp;– you may want to attend my &lt;a href="http://eclipsecon.org/sessions/build-your-epubs-eclipse-and-read-them-too"&gt;talk&lt;/a&gt;&amp;nbsp;about the subject. In any case I'll be happy to answer any questions you may have. Just locate me in the foyer.&lt;br /&gt;
&lt;br /&gt;
And while we're on the subject of EclipseCon Europe. I'm really looking forward to it. This is one of the highlights of the year. A rare opportunity to attend very interesting talks and meet the rest of the community over a beer or two. See you in Ludwigsburg!&lt;br /&gt;
&lt;br /&gt;
(In case the video is missing due to the RSS aggregator removing HTML code you will find it here: &lt;a href="http://www.youtube.com/watch?feature=player_profilepage&amp;amp;v=kdcDMmx2ohY" target="_blank"&gt;From wiki markup to EPUB in 45 seconds&lt;/a&gt;).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/260533640632479491-8030737498274750717?l=torkildr.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/YetAnotherCodersBlog/~4/KIPKEMa1qu8" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://torkildr.blogspot.com/feeds/8030737498274750717/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://torkildr.blogspot.com/2011/10/build-your-epubs-with-eclipse-and-read.html#comment-form" title="3 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/260533640632479491/posts/default/8030737498274750717?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/260533640632479491/posts/default/8030737498274750717?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/YetAnotherCodersBlog/~3/KIPKEMa1qu8/build-your-epubs-with-eclipse-and-read.html" title="Build your EPUBs with Eclipse, and read them too." /><author><name>Torkild U. Resheim</name><uri>https://profiles.google.com/114353763327539408721</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/--0J6SSx4TVQ/AAAAAAAAAAI/AAAAAAAAASQ/e0j6O-hLIz0/s512-c/photo.jpg" /></author><thr:total>3</thr:total><feedburner:origLink>http://torkildr.blogspot.com/2011/10/build-your-epubs-with-eclipse-and-read.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CU8NQHY9cSp7ImA9WhRRFkk.&quot;"><id>tag:blogger.com,1999:blog-260533640632479491.post-8314342059000880112</id><published>2011-06-23T22:45:00.003+02:00</published><updated>2011-11-30T10:04:51.869+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-11-30T10:04:51.869+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Eclipse" /><title>Extending gesture support in Eclipse</title><content type="html">With the release of Eclipse 3.7 the SWT team added support for &lt;i&gt;touch&lt;/i&gt;&amp;nbsp;and &lt;i&gt;gesture&lt;/i&gt; events. Gesture support can be a bit tricky. So much&amp;nbsp;that to solve this; scientists develop &lt;a href="http://vub.academia.edu/BeatSigner/Papers/88526/iGesture_A_Java_Framework_for_the_Development_and_Deployment_of_Stroke-Based_Online_Gesture_Recognition_Algorithms"&gt;intricate algorithms&lt;/a&gt;&amp;nbsp;and give them names.&lt;br /&gt;
&lt;br /&gt;
Currently Eclipse supports the following gestures.&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;SWT.GESTURE_MAGNIFY&lt;/li&gt;
&lt;li&gt;SWT.GESTURE_PAN&lt;/li&gt;
&lt;li&gt;SWT.GESTURE_ROTATE&lt;/li&gt;
&lt;li&gt;SWT.GESTURE_SWIPE&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
Now this set is about what most operating systems have. But would it not be&amp;nbsp;cool if we could have separate, configurable gestures for &lt;i&gt;Debug Launch&lt;/i&gt;, &lt;i&gt;Next Annotation&lt;/i&gt;, &lt;i&gt;switch to&lt;/i&gt;&amp;nbsp;&lt;i&gt;Mylyn Perspective&lt;/i&gt; and so on? I started imagining a preference page similar to the&amp;nbsp;&lt;b&gt;General &amp;gt; Keys&lt;/b&gt; page but with a wide range of gestures instead of key combinations.&lt;br /&gt;
&lt;br /&gt;
Thankfully the guys that wrote the paper linked to above actually did something about that.&amp;nbsp;They developed a framework named &lt;a href="http://www.igesture.org/index.html"&gt;iGesture&lt;/a&gt; and released it under the Apache 2.0&amp;nbsp;license. As their web-page states:&lt;br /&gt;
&lt;blockquote&gt;
&lt;i&gt;"iGesture supports the application developer who would like to add new gesture recognition functionality to their application as well as the designer of new gesture recognition algorithms. The iGesture framework can easily be configured to use any of the existing recognition algorithms (e.g. Rubine, SiGeR) or customised gesture sets can be defined."&lt;/i&gt;&lt;/blockquote&gt;
So you can design your own gestures (or take advantage of predefined ones) and&amp;nbsp;use them in your application. That was almost to good to be true, but I decided to give it a go and downloaded the whole&amp;nbsp;shebang. At the first go it crashed because I'm not using a Windows computer and the mouse device won't work otherwise. Good thing they know a thing or two about API design so I set about to write a &lt;i&gt;SWTInputDevice&lt;/i&gt; (with friends) to solve the issue.&lt;br /&gt;
&lt;br /&gt;
A couple of hours later we have a very simple (and slightly buggy) &lt;a href="https://github.com/turesheim/Eclipse_Gestures/blob/master/no.resheim.eclipse.gestures/sandbox/no/resheim/eclipse/gestures/sandbox/SWTiGestures.java" target="_blank"&gt;SWT application&lt;/a&gt; that blends the new touch support in Eclipse 3.7 with iGesture and is actually able to detect a few custom gestures. It needs a lot more work to be useful, but I think it's a decent proof of concept.&lt;br /&gt;
&lt;br /&gt;
Now what to do in the summer vacation...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/260533640632479491-8314342059000880112?l=torkildr.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/YetAnotherCodersBlog/~4/D30WyGGjDpA" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://torkildr.blogspot.com/feeds/8314342059000880112/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://torkildr.blogspot.com/2011/06/extending-gesture-support-in-eclipse.html#comment-form" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/260533640632479491/posts/default/8314342059000880112?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/260533640632479491/posts/default/8314342059000880112?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/YetAnotherCodersBlog/~3/D30WyGGjDpA/extending-gesture-support-in-eclipse.html" title="Extending gesture support in Eclipse" /><author><name>Torkild U. Resheim</name><uri>https://profiles.google.com/114353763327539408721</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/--0J6SSx4TVQ/AAAAAAAAAAI/AAAAAAAAASQ/e0j6O-hLIz0/s512-c/photo.jpg" /></author><thr:total>2</thr:total><feedburner:origLink>http://torkildr.blogspot.com/2011/06/extending-gesture-support-in-eclipse.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Ak4BRXYzcCp7ImA9WhZUF04.&quot;"><id>tag:blogger.com,1999:blog-260533640632479491.post-3732550467145091899</id><published>2011-06-10T22:46:00.002+02:00</published><updated>2011-06-10T22:49:14.888+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-06-10T22:49:14.888+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Eclipse" /><category scheme="http://www.blogger.com/atom/ns#" term="Fortran" /><category scheme="http://www.blogger.com/atom/ns#" term="eBook" /><title>Building electronic books using ANT part II</title><content type="html">For the last couple of weeks I've been busy reading Fortran77 code in order to re-implement some of it in Java. Most of the code has been fairly easy to understand, even with no prior knowledge of Fortran. But at the end of last week I stumbled upon some code I could not grok. After googling a while I found a book by &lt;a href="http://www.star.le.ac.uk/~cgp/"&gt;Dr. Clive G. Page&lt;/a&gt;; Professional Programmer's Guide to Fortran77. This turned out to be a pretty good resource on the subject. However it's source format is LaTeX and these days I really like ePUB.&lt;br /&gt;
&lt;br /&gt;
Since the book is released under the &lt;i&gt;GNU Free Documentation License&lt;/i&gt; I decided to use it as a test case for my recent efforts to &lt;a href="http://torkildr.blogspot.com/2011/05/building-electronic-books-using-ant.html"&gt;add ePUB support to Mylyn Docs&lt;/a&gt;. As it turned out this was quite straightforward. I did find a few bugs in my ePUB producing code and &lt;i&gt;latex2html&lt;/i&gt; produced some ugly HTML. But with some fixing, configuration tweaking and the help of &lt;i&gt;sed&lt;/i&gt; and &lt;i&gt;tidy&lt;/i&gt; I got a pretty decent result. If you're interested in Fortran you'll find &lt;a href="https://github.com/downloads/turesheim/Guide_to_Fortran77/prof77.epub"&gt;the book&lt;/a&gt; as a download over at GitHub. Where you will also find an &lt;a href="https://github.com/turesheim/Guide_to_Fortran77/blob/master/build-epub.xml"&gt;example&lt;/a&gt; of using the new &lt;b&gt;epub&lt;/b&gt; Ant task.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/260533640632479491-3732550467145091899?l=torkildr.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/YetAnotherCodersBlog/~4/YJNTHcoPguI" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://torkildr.blogspot.com/feeds/3732550467145091899/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://torkildr.blogspot.com/2011/06/building-electronic-books-using-ant.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/260533640632479491/posts/default/3732550467145091899?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/260533640632479491/posts/default/3732550467145091899?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/YetAnotherCodersBlog/~3/YJNTHcoPguI/building-electronic-books-using-ant.html" title="Building electronic books using ANT part II" /><author><name>Torkild U. Resheim</name><uri>https://profiles.google.com/114353763327539408721</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/--0J6SSx4TVQ/AAAAAAAAAAI/AAAAAAAAASQ/e0j6O-hLIz0/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://torkildr.blogspot.com/2011/06/building-electronic-books-using-ant.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0cFRno6fSp7ImA9WhZXGE0.&quot;"><id>tag:blogger.com,1999:blog-260533640632479491.post-3169698963357657031</id><published>2011-05-08T00:52:00.001+02:00</published><updated>2011-05-08T00:56:57.415+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-05-08T00:56:57.415+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="ANT" /><category scheme="http://www.blogger.com/atom/ns#" term="Eclipse" /><category scheme="http://www.blogger.com/atom/ns#" term="eBook" /><title>Building electronic books using ANT</title><content type="html">&lt;p style="clear: both"&gt;It's been a while now since &lt;a href="http://torkildr.blogspot.com/2009/08/electronic-books-and-stanza.html"&gt;I wrote about my first meeting with electronic literature&lt;/a&gt;. Since then a lot has happened in the e-book world and I've been bit by the bug. As many others I now read most of my books, newspapers and magazines using a Kindle, iPad or some of the other reader tablets. So I thought it's only appropriate that I should use my knowledge to help creating such publications from a programmers perspective. Several tools are already available, but I could not find any that can be used as part of a continuos integration build. &lt;br /&gt;&lt;br /&gt;The basic idea is described in &lt;a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=332122"&gt;Eclipse bug 332122&lt;/a&gt;. Wiki markup converted to HTML (using Mylyn WikiText) or pre-existing HTML files is processed by a &lt;a href="http://ant.apache.org/"&gt;ANT&lt;/a&gt; script and a EPUB file is created as a result. I initially thought it would be a good idea to use &lt;a href="http://www.eclipse.org/Xtext/"&gt;Xtext&lt;/a&gt; for creating a DSL that could be used to describe the publication. I'm not so sure about that any more, as it would create some extra overhead and it is strictly not required. Maybe at a later stage.&lt;br /&gt;&lt;br /&gt;There are several e-book formats available, but I chose &lt;a href="http://idpf.org/epub"&gt;EPUB&lt;/a&gt; (version 2.0.1) as it is open, free and based on existing standards such as HTML and CSS. It also appears to be quite popular although it's currently not supported on the Amazon Kindle which is currently the most popular reader tablet.&lt;/p&gt;&lt;p style="clear: both"&gt;&lt;a href="http://lh6.ggpht.com/_7gXx6rV_WQ4/TcXNE169UUI/AAAAAAAAAQY/9eEVUTFQgDk/s800/epub.png" class="image-link"&gt;&lt;img class="linked-to-original" src="http://lh3.ggpht.com/_7gXx6rV_WQ4/TcXNATEgAuI/AAAAAAAAAQU/QjIfTqE2Mmw/s800/epub-thumb.png" height="381" width="485" style=" text-align: center; display: block; margin: 0 auto 10px;" /&gt;&lt;/a&gt;So far I have Ecore models representing the &lt;a href="http://idpf.org/epub/20/spec/OPS_2.0.1_draft.htm"&gt;Open Packaging Format&lt;/a&gt; (OPF), a subset of &lt;a href="http://dublincore.org/"&gt;Dublin Core&lt;/a&gt; and the &lt;a href="http://www.niso.org/workrooms/daisy/Z39-86-2005.html#NCX"&gt;Navigation Control File&lt;/a&gt; (NCX). All required parts of a properly assembled EPUB file. In addition there is a helper type that is used for composing and creating the EPUB file without having to paying attention to all the details (and there are quite a few). There is still a lot of work remaining but it seems my approach is sound. I am easily able to create readable content as the illustration shows (screenshots from iBooks on iPad). The book I made for testing is based on the "&lt;a href="http://wiki.eclipse.org/Development_Conventions_and_Guidelines"&gt;Development Conventions and Guidelines&lt;/a&gt;" page on the Eclipse wiki. &lt;br /&gt;&lt;br /&gt;If you have any ideas on how to make this a even more useful tool please feel free to add them to the mentioned bug report, or comment on this blog. I'll keep you posted on the progress.&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style="clear: both"&gt;&lt;/p&gt;&lt;br class='final-break' style='clear: both' /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/260533640632479491-3169698963357657031?l=torkildr.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/YetAnotherCodersBlog/~4/ACPJZe6uvQ8" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://torkildr.blogspot.com/feeds/3169698963357657031/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://torkildr.blogspot.com/2011/05/building-electronic-books-using-ant.html#comment-form" title="4 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/260533640632479491/posts/default/3169698963357657031?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/260533640632479491/posts/default/3169698963357657031?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/YetAnotherCodersBlog/~3/ACPJZe6uvQ8/building-electronic-books-using-ant.html" title="Building electronic books using ANT" /><author><name>Torkild U. Resheim</name><uri>https://profiles.google.com/114353763327539408721</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/--0J6SSx4TVQ/AAAAAAAAAAI/AAAAAAAAASQ/e0j6O-hLIz0/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh3.ggpht.com/_7gXx6rV_WQ4/TcXNATEgAuI/AAAAAAAAAQU/QjIfTqE2Mmw/s72-c/epub-thumb.png" height="72" width="72" /><thr:total>4</thr:total><feedburner:origLink>http://torkildr.blogspot.com/2011/05/building-electronic-books-using-ant.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0YFRno5eCp7ImA9WhZXGE0.&quot;"><id>tag:blogger.com,1999:blog-260533640632479491.post-1703673749375388288</id><published>2011-04-21T20:43:00.003+02:00</published><updated>2011-05-08T00:58:37.420+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-05-08T00:58:37.420+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Jenkins" /><category scheme="http://www.blogger.com/atom/ns#" term="Hudson" /><category scheme="http://www.blogger.com/atom/ns#" term="Eclipse" /><category scheme="http://www.blogger.com/atom/ns#" term="Mylyn" /><title>Hudson vs Jenkins: Development team responsiveness</title><content type="html">&lt;p style="clear: both"&gt;&lt;a href="http://lh3.ggpht.com/_7gXx6rV_WQ4/TbB65BJ2o1I/AAAAAAAAAPo/52NoseAKDrE/s800/vs1.png" class="image-link"&gt;&lt;img class="linked-to-original" src="http://lh6.ggpht.com/_7gXx6rV_WQ4/TbB64X3oO1I/AAAAAAAAAPk/TxaFrnJ-DHQ/s800/vs1-thumb.png" height="76" align="left" width="203" style=" display: inline; float: left; margin: 0 10px 10px 0;" /&gt;&lt;/a&gt;Well, the headline is slightly misleading. My apologies. Although anyone reading news these days are probably used to worse. I chose it for a reason; a desire to fix &lt;a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=341725"&gt;Eclipse bug 341725&lt;/a&gt;. The story is as follows.&lt;br /&gt;
&lt;br /&gt;
The automatic &lt;a href="http://hudson-ci.org/"&gt;Hudson&lt;/a&gt;/&lt;a href="http://jenkins-ci.org/"&gt;Jenkins&lt;/a&gt; discovery mechanism in Mylyn Builds rely on a certain property announced by the continuous build server to uniquely identify the server. However this property is not unique. It is a simple URL. As the same service may be reached from a multitude of different URLs this is not good enough. A manually added service may be duplicated by a discovered service. Now we could for instance use the address of the announcing server, but also that may not be enough. The server is likely have one address outside of the local network and another on the inside.&lt;br /&gt;
&lt;br /&gt;
So we came up with the idea of the server including an UUID or something similar when announcing itself on the network. That would require a few minor changes to both Jenkins and Hudson. Consequently I created two bug reports:&lt;br /&gt;
&lt;br /&gt;
• &lt;a href="https://issues.jenkins-ci.org/browse/JENKINS-9230"&gt;https://issues.jenkins-ci.org/browse/JENKINS-9230&lt;/a&gt;&lt;br /&gt;
• &lt;a href="http://issues.hudson-ci.org/browse/HUDSON-8800"&gt;http://issues.hudson-ci.org/browse/HUDSON-8800&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Either team have yet to reply, so it's hard to tell which is more responsive. Not that the mentioned bug is a big issue. But I'm still hoping to get it fixed. &lt;/p&gt;&lt;p style="clear: both"&gt;&lt;/p&gt;&lt;p style="clear: both"&gt;&lt;/p&gt;&lt;br class='final-break' style='clear: both' /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/260533640632479491-1703673749375388288?l=torkildr.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/YetAnotherCodersBlog/~4/EYsdWRCBq4Y" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://torkildr.blogspot.com/feeds/1703673749375388288/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://torkildr.blogspot.com/2011/04/hudson-vs-jenkins-development-team.html#comment-form" title="3 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/260533640632479491/posts/default/1703673749375388288?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/260533640632479491/posts/default/1703673749375388288?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/YetAnotherCodersBlog/~3/EYsdWRCBq4Y/hudson-vs-jenkins-development-team.html" title="Hudson vs Jenkins: Development team responsiveness" /><author><name>Torkild U. Resheim</name><uri>https://profiles.google.com/114353763327539408721</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/--0J6SSx4TVQ/AAAAAAAAAAI/AAAAAAAAASQ/e0j6O-hLIz0/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh6.ggpht.com/_7gXx6rV_WQ4/TbB64X3oO1I/AAAAAAAAAPk/TxaFrnJ-DHQ/s72-c/vs1-thumb.png" height="72" width="72" /><thr:total>3</thr:total><feedburner:origLink>http://torkildr.blogspot.com/2011/04/hudson-vs-jenkins-development-team.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkYNRH0yfyp7ImA9WhZQE08.&quot;"><id>tag:blogger.com,1999:blog-260533640632479491.post-7474573662790076960</id><published>2011-04-20T21:29:00.006+02:00</published><updated>2011-04-20T21:36:35.397+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-04-20T21:36:35.397+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Eclipse" /><category scheme="http://www.blogger.com/atom/ns#" term="Mylyn" /><title>Using Mylyn Notifications</title><content type="html">&lt;p style="clear: both"&gt;A couple of years ago I wrote briefly about &lt;a href="http://torkildr.blogspot.com/2009/02/using-desktop-notifications.html"&gt;how to implement desktop notifications&lt;/a&gt; using a feature in Mylyn Commons. Since then the notification system in Mylyn has improved. In the 3.5 release there is now a &lt;a href="http://eclipse.org/mylyn/new/new-3.5.html#framework" title=""&gt;extensible framework for handling and configuring notifications&lt;/a&gt;. While this API is still provisional I see no harm in using it as long as you're aware of the potential consequences. I also think some feedback (and patches) from early adopters would be good. If you're interested in the background story, take a look at &lt;a href="https://bugs.eclipse.org/bugs/buglist.cgi?classification=Mylyn;query_format=advanced;component=Notifications;product=Mylyn%20Commons"&gt;these Eclipse bugs&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;The &lt;em&gt;org.eclipse.mylyn.commons.notifications.notifications&lt;/em&gt; extension point allows four extension types: category, event, eventMapping and sink. The &lt;em&gt;category&lt;/em&gt; is used simply to organize the various events. &lt;em&gt;Event&lt;/em&gt; is used to declare the event types and add some GUI attributes. The &lt;em&gt;eventMapping&lt;/em&gt; is used for assigning default event type handlers. And lastly a &lt;em&gt;sink&lt;/em&gt; is used to declare a mechanism that will handle the event.&lt;br /&gt;&lt;br /&gt;If want to use a popup notification sink there is no longer a need to implement it yourself. You start by declaring the event type itself (a existing category is reused). An added benefit is that you get preference settings for configuring notifications.&lt;br /&gt;  &lt;/p&gt;&lt;pre class="brush: xml" style="clear: both"&gt; &amp;lt;extension
  point="org.eclipse.mylyn.commons.notifications.notifications"&amp;gt;
  &amp;lt;event
    categoryId="org.eclipse.mylyn.builds.ui.category.Builds"
    id="my.event"
    label="My Event"
    selected="true"&amp;gt;
    &amp;lt;defaultHandler
      sinkId="org.eclipse.mylyn.commons.notifications.sink.Popup"&amp;gt;
    &amp;lt;/defaultHandler&amp;gt;
  &amp;lt;/event&amp;gt;
&amp;lt;/extension&amp;gt;&lt;/pre&gt;&lt;p style="clear: both"&gt;&lt;a href="http://lh4.ggpht.com/_7gXx6rV_WQ4/Ta80E2YBq_I/AAAAAAAAAPc/bxAj0rbkkSw/s800/Skjermbilde_2011-04-20_kl._20.34.34.png" class="image-link"&gt;&lt;img class="linked-to-original" src="http://lh6.ggpht.com/_7gXx6rV_WQ4/Ta80Eh5QsrI/AAAAAAAAAPY/tzisZLVx_50/s800/Skjermbilde_2011-04-20_kl-thumb._20.34.34.png" height="128" align="left" width="242" style=" display: inline; float: left; margin: 0 10px 10px 0;" /&gt;&lt;/a&gt;&lt;br style="clear: both" /&gt;&lt;br /&gt;In order to display the popup you will also have to implement an instance of AbstractNotification and trigger the notification.&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style="clear: both"&gt;&lt;/p&gt;&lt;pre class="brush: xml" style="clear: both"&gt;AbstractNotification  notification = new  AbstractNotification ("my.event" ) {
  ...  
  public  String getLabel() { 
    return   "My Label";  
    } 
  public  String getDescription(){
    return "My Description";  
    } 
  }; 
Notifications.getService().notify(  
  Collections.singletonList(notification)) ; 
&lt;/pre&gt;&lt;p style="clear: both"&gt;In Mylyn Builds we demonstrate use of this framework where both a popup and a special service message inside a view are used. &lt;a href="http://wiki.eclipse.org/index.php/Mylyn/Contributor_Reference#Checkout"&gt;Check out the source code&lt;/a&gt; for details. Also take a look at the extension point documentation.&lt;/p&gt;&lt;br class='final-break' style='clear: both' /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/260533640632479491-7474573662790076960?l=torkildr.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/YetAnotherCodersBlog/~4/wHbOY6IsKWg" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://torkildr.blogspot.com/feeds/7474573662790076960/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://torkildr.blogspot.com/2011/04/using-mylyn-notifications.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/260533640632479491/posts/default/7474573662790076960?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/260533640632479491/posts/default/7474573662790076960?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/YetAnotherCodersBlog/~3/wHbOY6IsKWg/using-mylyn-notifications.html" title="Using Mylyn Notifications" /><author><name>Torkild U. Resheim</name><uri>https://profiles.google.com/114353763327539408721</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/--0J6SSx4TVQ/AAAAAAAAAAI/AAAAAAAAASQ/e0j6O-hLIz0/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh6.ggpht.com/_7gXx6rV_WQ4/Ta80Eh5QsrI/AAAAAAAAAPY/tzisZLVx_50/s72-c/Skjermbilde_2011-04-20_kl-thumb._20.34.34.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://torkildr.blogspot.com/2011/04/using-mylyn-notifications.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEUMQXc_fip7ImA9Wx9VFEs.&quot;"><id>tag:blogger.com,1999:blog-260533640632479491.post-5036624815510942460</id><published>2011-01-31T10:31:00.001+01:00</published><updated>2011-01-31T10:31:20.946+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-01-31T10:31:20.946+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Eclipse" /><category scheme="http://www.blogger.com/atom/ns#" term="Stammtisch" /><title>Eclipse Stammtisch Trondheim Q2-2011</title><content type="html">Inspired by community meetings elsewhere in Europe and the growing adaption of Eclipse in Trondheim; my employer, &lt;a href="http://www.itema.no" title="Itema AS"&gt;Itema AS&lt;/a&gt; is sponsoring a Eclipse Stammtisch in the second quarter of this year. There will be at least four presentations followed by the intake of some frosty beverage. The agenda is not planned yet but we'll probably be talking about Git, modeling (EMF), build systems (Mylyn Builds) and Qt. Helping us with the presentations will be representatives from &lt;a href="http://www.marintek.com" title="Marintek"&gt;Marintek&lt;/a&gt; and &lt;a href="http://www.ntnu.no" title="NTNU"&gt;NTNU&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;If you'd like to participate please let us know by filling out the &lt;a href="https://spreadsheets.google.com/a/itema.no/viewform?formkey=dG9aUk43Vm1EYjhybUdZMU8wNWQwZGc6MQ" title="RSVP"&gt;RSVP&lt;/a&gt;.&lt;br class='final-break' style='clear: both' /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/260533640632479491-5036624815510942460?l=torkildr.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/YetAnotherCodersBlog/~4/fUhklzn8wcc" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://torkildr.blogspot.com/feeds/5036624815510942460/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://torkildr.blogspot.com/2011/01/eclipse-stammtisch-trondheim-q2-2011.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/260533640632479491/posts/default/5036624815510942460?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/260533640632479491/posts/default/5036624815510942460?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/YetAnotherCodersBlog/~3/fUhklzn8wcc/eclipse-stammtisch-trondheim-q2-2011.html" title="Eclipse Stammtisch Trondheim Q2-2011" /><author><name>Torkild U. Resheim</name><uri>https://profiles.google.com/114353763327539408721</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/--0J6SSx4TVQ/AAAAAAAAAAI/AAAAAAAAASQ/e0j6O-hLIz0/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://torkildr.blogspot.com/2011/01/eclipse-stammtisch-trondheim-q2-2011.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CE4GQHg9eSp7ImA9Wx5aF0o.&quot;"><id>tag:blogger.com,1999:blog-260533640632479491.post-2575044209386876417</id><published>2010-11-14T21:34:00.000+01:00</published><updated>2010-11-14T23:15:21.661+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-11-14T23:15:21.661+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Git" /><category scheme="http://www.blogger.com/atom/ns#" term="Eclipse Summit Europe" /><category scheme="http://www.blogger.com/atom/ns#" term="Hudson" /><category scheme="http://www.blogger.com/atom/ns#" term="Eclipse" /><category scheme="http://www.blogger.com/atom/ns#" term="Mylyn" /><category scheme="http://www.blogger.com/atom/ns#" term="Xtext" /><title>ESE 2010 Retrospective</title><content type="html">&lt;p style="clear: both"&gt;&lt;a href="http://lh3.ggpht.com/_7gXx6rV_WQ4/TOBH580v0cI/AAAAAAAAAN4/NTPaX6RykKQ/s800/DSC00300.jpg" class="image-link"&gt;&lt;img class="linked-to-original" src="http://lh4.ggpht.com/_7gXx6rV_WQ4/TOBfahKx48I/AAAAAAAAAOM/JgTNYzFfEnE/s800/DSC00300-thumb3.jpg" height="481" align="left" width="128" style=" display: inline; float: left; margin: 0 10px 10px 0;" /&gt;&lt;/a&gt;Last week I had the pleasure of attending my fifth Eclipse Summit Europe. This was the fourth in Ludwigsburg. So I have to &lt;a href="http://blog.rcp-company.com/2010/11/ese-2010-getting-back-to-work-can-be.html" title=""&gt;agree with Tonny Madsen&lt;/a&gt;; It's about time we found another venue. Ludwigsburg is great but it would nice with a change. Also, it was getting a bit crowded with 467 attendees. As usual there was a lot of great sessions to attend, not to mention the stammtisch on Tuesday and the reception on Wednesday. I will only acquaint you with a few of my personal highlights.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://aniszczyk.org/"&gt;Chris Aniszczyk&lt;/a&gt; and &lt;a href="http://dev.eclipse.org/blogs/msohn/"&gt;Matthias Sohn&lt;/a&gt; &lt;a href="http://www.eclipsecon.org/summiteurope2010/sessions/?page=sessions&amp;amp;id=1658"&gt;talked about Git&lt;/a&gt; and showed how to use it with Gerrit. The &lt;a href="http://code.google.com/p/gerrit/"&gt;Gerrit project&lt;/a&gt; delivers a web based code review system using the Git version control system. There is also a &lt;a href="http://wiki.hudson-ci.org/display/HUDSON/Gerrit+Plugin"&gt;Gerrit plug-in to Hudson&lt;/a&gt; which will mark a change as verified if a build was successful. Effectively allowing you to run tests on a change before it is committed. If you use Git (and Hudson) you should really take a proper look at this tool. I certainly will. &lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.peterfriese.de/"&gt;Peter Friese&lt;/a&gt; and &lt;a href="http://HeikoBehrens.net/"&gt;Heiko Behrens&lt;/a&gt; &lt;a href="http://www.eclipsecon.org/summiteurope2010/sessions/?page=sessions&amp;amp;id=1733"&gt;presented a DSL for mobile apps&lt;/a&gt; (&lt;a href="http://code.google.com/p/applause/" title=""&gt;Applause&lt;/a&gt;) that allows you to describe a simple data-driven application and generate code for Android and iOS. I've tried it out and I must say that it really looks promising. If you're into mobile platforms you should probably also take a look at &lt;a href="http://www.phonegap.com/"&gt;PhoneGap&lt;/a&gt;. Applause is driven by &lt;a href="http://www.eclipse.org/Xtext/"&gt;XText&lt;/a&gt; which is a DSL framework for Eclipse based applications.&lt;br /&gt;&lt;br /&gt;There was also a Mylyn BoF which I quite enjoyed. Not surprisingly, there are still quite a few challenges when it comes to supporting all the various versioning systems out there. Interestingly enough &lt;a href="http://www.woodwardweb.com/"&gt;Martin Woodward&lt;/a&gt; of Microsoft was at the summit to show &lt;a href="http://blogs.msdn.com/b/bharry/archive/2010/11/03/team-explorer-everywhere-2010-sp1-beta-is-available-for-download.aspx"&gt;Team Explorer Everywhere&lt;/a&gt;. An extension to Eclipse that allows you to utilize Microsoft's Team Foundation Server from your favorite IDE.&lt;/p&gt;&lt;p style="clear: both"&gt;See you all next year...&lt;/p&gt;&lt;p style="clear: both"&gt;PS: The play castle on the picture can been seen if you take your time to visit the beautiful Schlosspark in Ludwigsburg&lt;/p&gt;&lt;br class='final-break' style='clear: both' /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/260533640632479491-2575044209386876417?l=torkildr.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/YetAnotherCodersBlog/~4/GHfrMwF-mOM" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://torkildr.blogspot.com/feeds/2575044209386876417/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://torkildr.blogspot.com/2010/11/ese-2010-retrospective.html#comment-form" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/260533640632479491/posts/default/2575044209386876417?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/260533640632479491/posts/default/2575044209386876417?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/YetAnotherCodersBlog/~3/GHfrMwF-mOM/ese-2010-retrospective.html" title="ESE 2010 Retrospective" /><author><name>Torkild U. Resheim</name><uri>https://profiles.google.com/114353763327539408721</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/--0J6SSx4TVQ/AAAAAAAAAAI/AAAAAAAAASQ/e0j6O-hLIz0/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh4.ggpht.com/_7gXx6rV_WQ4/TOBfahKx48I/AAAAAAAAAOM/JgTNYzFfEnE/s72-c/DSC00300-thumb3.jpg" height="72" width="72" /><thr:total>1</thr:total><feedburner:origLink>http://torkildr.blogspot.com/2010/11/ese-2010-retrospective.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Dk8BQXg9fCp7ImA9Wx5bEUw.&quot;"><id>tag:blogger.com,1999:blog-260533640632479491.post-7646783554395251740</id><published>2010-10-26T10:41:00.003+02:00</published><updated>2010-10-26T19:40:50.664+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-10-26T19:40:50.664+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Java" /><category scheme="http://www.blogger.com/atom/ns#" term="Mac" /><category scheme="http://www.blogger.com/atom/ns#" term="Eclipse" /><category scheme="http://www.blogger.com/atom/ns#" term="Apple" /><title>Enterprise developers shunned by Apple</title><content type="html">&lt;p style="clear: both"&gt;A lot has been written about &lt;a href="http://developer.apple.com/library/mac/#releasenotes/Java/JavaSnowLeopardUpdate3LeopardUpdate8RN/NewandNoteworthy/NewandNoteworthy.html"&gt;Apple deprecating Java&lt;/a&gt; these days. Not surprising as quite a few engineers including myself are using Macs to build their software. So we get used to great hardware and a powerful operating system which can run all of our software tools. Qualities we really don't want to loose. Naturally we're worried.&lt;/p&gt;&lt;p style="clear: both"&gt;Many of the people supporting the deprecation claims that Java is useless on the desktop anyway so good riddance. Well, Java is still &lt;a href="http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html" title="TIOBE Programming Community Index"&gt;the most popular programming language&lt;/a&gt; as it has been for quite a while. While it is true that Java/JVM is not much used for consumer type software on the desktop, it is &lt;em&gt;heavily&lt;/em&gt; used in tooling and in enterprise software. Both on the desktop and on the server. This situation will not change much in many, many years.&lt;/p&gt;&lt;p style="clear: both"&gt;&lt;div&gt;&lt;div&gt;Apple is probably quite aware of this. But they still chose to drop Java so that they can force native only applications being traded through the new &lt;a href="http://www.apple.com/mac/app-store/"&gt;app store&lt;/a&gt;. Possibly good for Apple but not for the enterprise software developer.&lt;br /&gt;
&lt;br /&gt;
I'm not very worried though. For us Eclipse/headless software developers maybe OpenJDK will be just fine &lt;a href="http://njbartlett.name/2010/10/24/eclipse-soylatte-no-x11.html" title="Running Eclipse on SoyLatte"&gt;as Neil Bartlett points out&lt;/a&gt;. (My bet is on &lt;a href="http://www.eclipse.org/e4/" title="Eclipse 4"&gt;e4&lt;/a&gt; becoming the multi-platform .NET). Maybe we'll even get good news from Oracle. Although I'm not holding my breath for that &lt;a href="http://ianskerrett.wordpress.com/2010/10/22/dear-oracle-get-a-clue/" title="Dear Oracle, Get A Clue by Ian Skerrett"&gt;either&lt;/a&gt;.&lt;/div&gt;&lt;/div&gt;&lt;/p&gt;&lt;p style="clear: both"&gt;&lt;/p&gt;&lt;br class='final-break' style='clear: both' /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/260533640632479491-7646783554395251740?l=torkildr.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/YetAnotherCodersBlog/~4/WehK3y3FU8c" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://torkildr.blogspot.com/feeds/7646783554395251740/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://torkildr.blogspot.com/2010/10/enterprise-developers-shunned-by-apple.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/260533640632479491/posts/default/7646783554395251740?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/260533640632479491/posts/default/7646783554395251740?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/YetAnotherCodersBlog/~3/WehK3y3FU8c/enterprise-developers-shunned-by-apple.html" title="Enterprise developers shunned by Apple" /><author><name>Torkild U. Resheim</name><uri>https://profiles.google.com/114353763327539408721</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/--0J6SSx4TVQ/AAAAAAAAAAI/AAAAAAAAASQ/e0j6O-hLIz0/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://torkildr.blogspot.com/2010/10/enterprise-developers-shunned-by-apple.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C04DRngyeip7ImA9Wx5XF0g.&quot;"><id>tag:blogger.com,1999:blog-260533640632479491.post-4193594331932345488</id><published>2010-09-17T14:22:00.003+02:00</published><updated>2010-09-17T21:32:57.692+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-09-17T21:32:57.692+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="build" /><category scheme="http://www.blogger.com/atom/ns#" term="Hudson" /><category scheme="http://www.blogger.com/atom/ns#" term="Eclipse" /><title>Joining in on the Mylyn/Builds project</title><content type="html">&lt;p style="clear: both"&gt;Early this year I decided to play around with the &lt;a href="http://www.eclipse.org/ecf"&gt;Eclipse Communication Framework&lt;/a&gt; (ECF). One thing lead to another and before I knew it I had a generic build monitoring mechanism for Eclipse; "&lt;a href="http://code.google.com/p/buildmonitor/"&gt;Buildmonitor&lt;/a&gt;".&lt;/p&gt;&lt;p style="clear: both"&gt;I hosted the project on Google code and was planning to make a public build as soon as things got stable. Just as this was about to happen I noticed Steffen Pingel's post titled "&lt;a href="http://dev.eclipse.org/blogs/mylog/2010/08/22/preview-of-mylyn-hudson-connector-now-available/"&gt;Preview of Mylyn Hudson connector available&lt;/a&gt;".&lt;/p&gt;&lt;p style="clear: both"&gt;&lt;a href="http://lh4.ggpht.com/_7gXx6rV_WQ4/TIT4SqFphpI/AAAAAAAAAM0/jVFYHdU3fuE/s800/jobs-transition2.gif" class="image-link"&gt;&lt;img class="linked-to-original" src="http://lh6.ggpht.com/_7gXx6rV_WQ4/TIT4SdsQdLI/AAAAAAAAAMw/pQ0Ph-kedqs/s800/jobs-transition2-thumb.gif" height="52" align="right" width="150" style=" display: inline; float: right; margin: 0 0 10px 10px;" /&gt;&lt;/a&gt;I was not very surprised to see that someone else had the same idea. After all; at the time I started on this there was at least one more build monitor for Eclipse already available. What was intriguing was these two project were so similar, even down to the GUI. (The code is very different though). I contacted Steffen and after exchanging a few emails we both agreed that it would be a good idea that I spend my time on Mylyn instead.&lt;/p&gt;&lt;p style="clear: both"&gt;I'm now assigned to the &lt;a href="http://wiki.eclipse.org/Mylyn/Hudson_Connector/ProjectProposalDraft"&gt;Hudson Connector Project&lt;/a&gt; which is currently being drafted. Initially working on merging in anything useful that is not already covered by Mylyn code.&lt;/p&gt;&lt;p style="clear: both"&gt;After being an Eclipse adopter for six years, this is a great opportunity to contribute directly. So I'd like to thank Steffen and the Mylyn team for being so welcoming.&lt;/p&gt;&lt;p style="clear: both"&gt;See you all at Eclipse Summit Europe!&lt;/p&gt;&lt;br class='final-break' style='clear: both' /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/260533640632479491-4193594331932345488?l=torkildr.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/YetAnotherCodersBlog/~4/ULKUWWnyh9I" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://torkildr.blogspot.com/feeds/4193594331932345488/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://torkildr.blogspot.com/2010/09/joining-in-on-mylynbuilds-project.html#comment-form" title="5 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/260533640632479491/posts/default/4193594331932345488?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/260533640632479491/posts/default/4193594331932345488?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/YetAnotherCodersBlog/~3/ULKUWWnyh9I/joining-in-on-mylynbuilds-project.html" title="Joining in on the Mylyn/Builds project" /><author><name>Torkild U. Resheim</name><uri>https://profiles.google.com/114353763327539408721</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/--0J6SSx4TVQ/AAAAAAAAAAI/AAAAAAAAASQ/e0j6O-hLIz0/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh6.ggpht.com/_7gXx6rV_WQ4/TIT4SdsQdLI/AAAAAAAAAMw/pQ0Ph-kedqs/s72-c/jobs-transition2-thumb.gif" height="72" width="72" /><thr:total>5</thr:total><feedburner:origLink>http://torkildr.blogspot.com/2010/09/joining-in-on-mylynbuilds-project.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEICRX88eCp7ImA9Wx5TGUk.&quot;"><id>tag:blogger.com,1999:blog-260533640632479491.post-6129141574402841060</id><published>2010-08-04T20:11:00.000+02:00</published><updated>2010-08-04T20:29:24.170+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-08-04T20:29:24.170+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="build" /><category scheme="http://www.blogger.com/atom/ns#" term="Mac" /><category scheme="http://www.blogger.com/atom/ns#" term="Hudson" /><category scheme="http://www.blogger.com/atom/ns#" term="Eclipse" /><category scheme="http://www.blogger.com/atom/ns#" term="Windows" /><title>Accessing host from a Parallels virtual machine</title><content type="html">&lt;p style="clear: both"&gt;Sometimes I have the need to test the Eclipse applications I build by using a virtual machine (usually running another operating system). As I've set up &lt;a href="http://torkildr.blogspot.com/2010/06/local-continuous-building-with-hudson.html"&gt;local continuous building using Hudson&lt;/a&gt; I always have a Equinox p2 repository ready containing the latest build. The trick is to access this repository (which resides on the host) from Eclipse running on the virtual machine.&lt;/p&gt;&lt;p style="clear: both"&gt;The first thing I did was to enable &lt;a href="http://www.parallels.com/"&gt;Parallels&lt;/a&gt; to show it's networking information in the OS X system preferences. This is done through the Parallels preference settings as shown below:&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style="clear: both"&gt;&lt;a href="http://lh3.ggpht.com/_7gXx6rV_WQ4/TFlvrLHx-TI/AAAAAAAAAMc/ljiLhl22ito/s800/Skjermbilde_2010-08-04_kl-full._10.57.2.png" class="image-link"&gt;&lt;img class="linked-to-original" src="http://lh3.ggpht.com/_7gXx6rV_WQ4/TFlvqj5TAHI/AAAAAAAAAMY/4s9MATdpOmQ/s800/Skjermbilde_2010-08-04_kl-thumb._10.57.9.png" height="99" width="480" style="  text-align: center; display: block; margin: 0 auto 10px;" /&gt;&lt;/a&gt;Next thing was to figure out the IP-address of the host. This was found in the system network settings when looking for the &lt;em&gt;Parallels Shared Networking Adapter&lt;/em&gt;. In my case this address was set to &lt;code&gt;10.211.55.2&lt;/code&gt;. Now this is the IP-address that guest virtual machines will have to use when referencing the host. It should never change so it's a pretty safe bet. Note that the guest is set up to use &lt;em&gt;shared networking&lt;/em&gt;.&lt;/p&gt;&lt;p style="clear: both"&gt;The easiest way to let the guest know about this address is to modify &lt;code&gt;/etc/hosts&lt;/code&gt; or &lt;code&gt;C:\Windows\System32\drivers\etc\hosts&lt;/code&gt; on Windows and add a line mapping the IP-address to a sensible name. I use "vmhost".&lt;/p&gt;&lt;p style="clear: both"&gt;Now I just have to add the repository to the Eclipse update manager running on the virtual machine and install from there. For instance:&lt;em&gt; http://vmhost:8080/job/Buildmonitor/ws/builds/buildmonitor-p2repo/&lt;/em&gt;. This will reference the Buildmonitor p2 repository built by the Hudson instance running on the host.&lt;/p&gt;&lt;br class='final-break' style='clear: both' /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/260533640632479491-6129141574402841060?l=torkildr.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/YetAnotherCodersBlog/~4/xovpXXnDkfw" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://torkildr.blogspot.com/feeds/6129141574402841060/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://torkildr.blogspot.com/2010/08/accessing-host-from-parallels-virtual.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/260533640632479491/posts/default/6129141574402841060?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/260533640632479491/posts/default/6129141574402841060?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/YetAnotherCodersBlog/~3/xovpXXnDkfw/accessing-host-from-parallels-virtual.html" title="Accessing host from a Parallels virtual machine" /><author><name>Torkild U. Resheim</name><uri>https://profiles.google.com/114353763327539408721</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/--0J6SSx4TVQ/AAAAAAAAAAI/AAAAAAAAASQ/e0j6O-hLIz0/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh3.ggpht.com/_7gXx6rV_WQ4/TFlvqj5TAHI/AAAAAAAAAMY/4s9MATdpOmQ/s72-c/Skjermbilde_2010-08-04_kl-thumb._10.57.9.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://torkildr.blogspot.com/2010/08/accessing-host-from-parallels-virtual.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0MCQ3c-eip7ImA9WhZXFUo.&quot;"><id>tag:blogger.com,1999:blog-260533640632479491.post-2040717247632290523</id><published>2010-07-27T23:23:00.018+02:00</published><updated>2011-05-05T09:11:02.952+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-05-05T09:11:02.952+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="SWT" /><category scheme="http://www.blogger.com/atom/ns#" term="Eclipse" /><category scheme="http://www.blogger.com/atom/ns#" term="JFace" /><title>Decorating icons with status indicators</title><content type="html">&lt;p style="clear: both"&gt;I tend to use &lt;code&gt;IStatus&lt;/code&gt; whenever I can to indicate the status of some object. This have two severity states which are worth extra attention; &lt;code&gt;ERROR&lt;/code&gt; and &lt;code&gt;WARNING&lt;/code&gt;. Usually this object also have a graphical presentation, an icon. So would it not be nice to decorate this icon with an overlay image representing the severity of the status?&lt;/p&gt;&lt;p style="clear: both"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_7gXx6rV_WQ4/TFFInKmVUxI/AAAAAAAAAMQ/hEcykqcp1PY/s1600/decorators.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 105px; height: 34px;" src="http://1.bp.blogspot.com/_7gXx6rV_WQ4/TFFInKmVUxI/AAAAAAAAAMQ/hEcykqcp1PY/s400/decorators.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5499256457693319954" /&gt;&lt;/a&gt;&lt;code&gt;JFace&lt;/code&gt;'s &lt;code&gt;DecorationOverlayIcon&lt;/code&gt; comes to help. I usually use it like this:&lt;/p&gt;&lt;br /&gt;
&lt;script src="https://gist.github.com/956647.js?file=gistfile1.java"&gt;&lt;/script&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;p style="clear: both"&gt;Since images are system resources we must take care to release these when we no longer need them. So I'm using the image registry of the base image to store the decorated image. This will make the process a little bit faster when the same decorated image is needed again and it will also make sure that the resources are released when then system shuts down. &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/260533640632479491-2040717247632290523?l=torkildr.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/YetAnotherCodersBlog/~4/IU6Cb0fnO9Q" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://torkildr.blogspot.com/feeds/2040717247632290523/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://torkildr.blogspot.com/2010/07/decorating-icons-with-status-indicators.html#comment-form" title="3 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/260533640632479491/posts/default/2040717247632290523?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/260533640632479491/posts/default/2040717247632290523?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/YetAnotherCodersBlog/~3/IU6Cb0fnO9Q/decorating-icons-with-status-indicators.html" title="Decorating icons with status indicators" /><author><name>Torkild U. Resheim</name><uri>https://profiles.google.com/114353763327539408721</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/--0J6SSx4TVQ/AAAAAAAAAAI/AAAAAAAAASQ/e0j6O-hLIz0/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/_7gXx6rV_WQ4/TFFInKmVUxI/AAAAAAAAAMQ/hEcykqcp1PY/s72-c/decorators.png" height="72" width="72" /><thr:total>3</thr:total><feedburner:origLink>http://torkildr.blogspot.com/2010/07/decorating-icons-with-status-indicators.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0YCRn8-fip7ImA9WhZXFUQ.&quot;"><id>tag:blogger.com,1999:blog-260533640632479491.post-8449422207865679475</id><published>2010-07-20T20:44:00.003+02:00</published><updated>2011-05-05T12:26:07.156+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-05-05T12:26:07.156+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Eclipse" /><title>Invoking an Eclipse Wizard programmatically</title><content type="html">&lt;p style="clear: both"&gt;Sometimes I find the need to programmatically invoke an Eclipse wizard. I've been using various ways of doing so, but have finally ended up with a more generic function. This will search through all the wizard registries and try to find a wizard with the specified identifier. If found the wizard will be opened. The code is shown below:&lt;/p&gt;&lt;script src="https://gist.github.com/956648.js?file=gistfile1.java"&gt;&lt;/script&gt;&lt;br /&gt;
&lt;p style="clear: both"&gt;I hope you'll find this snippet useful.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/260533640632479491-8449422207865679475?l=torkildr.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/YetAnotherCodersBlog/~4/kxy7yva2gP8" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://torkildr.blogspot.com/feeds/8449422207865679475/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://torkildr.blogspot.com/2010/07/invoking-eclipse-wizard.html#comment-form" title="11 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/260533640632479491/posts/default/8449422207865679475?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/260533640632479491/posts/default/8449422207865679475?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/YetAnotherCodersBlog/~3/kxy7yva2gP8/invoking-eclipse-wizard.html" title="Invoking an Eclipse Wizard programmatically" /><author><name>Torkild U. Resheim</name><uri>https://profiles.google.com/114353763327539408721</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/--0J6SSx4TVQ/AAAAAAAAAAI/AAAAAAAAASQ/e0j6O-hLIz0/s512-c/photo.jpg" /></author><thr:total>11</thr:total><feedburner:origLink>http://torkildr.blogspot.com/2010/07/invoking-eclipse-wizard.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Ak4GRXc9fyp7ImA9WxFaGEQ.&quot;"><id>tag:blogger.com,1999:blog-260533640632479491.post-2442724837084881228</id><published>2010-06-19T11:24:00.007+02:00</published><updated>2010-07-23T17:28:44.967+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-07-23T17:28:44.967+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="build" /><category scheme="http://www.blogger.com/atom/ns#" term="Hudson" /><category scheme="http://www.blogger.com/atom/ns#" term="Eclipse" /><category scheme="http://www.blogger.com/atom/ns#" term="Google Code" /><category scheme="http://www.blogger.com/atom/ns#" term="Mercurial" /><title>Local continuous building with Hudson, Mercurial and Eclipse</title><content type="html">&lt;p style="clear: both"&gt;&lt;div style="clear: both;"&gt;In an &lt;a href="http://torkildr.blogspot.com/2010/05/getting-started-with-google-code.html"&gt;earlier post&lt;/a&gt; I wrote about how to get started with Eclipse, Mercurial and Google Code. In a follow-up to that; I'll describe how I set up local &lt;a href="http://en.wikipedia.org/wiki/Continuous_integration" title=""&gt;continuous integration&lt;/a&gt; for the same project using &lt;a href="http://hudson-ci.org/"&gt;Hudson&lt;/a&gt;. If you're into &lt;a href="http://en.wikipedia.org/wiki/Agile_software_development"&gt;agile development methodologies&lt;/a&gt; you're probably well aware of the importance of such an exercise. Even if you do not practice these arcane arts and just lack central build server; such an set-up can be useful. &lt;/div&gt;&lt;/p&gt;&lt;p style="clear: both"&gt;&lt;div style="clear: both;"&gt;My idea was to write a script that will put together &lt;u&gt;all&lt;/u&gt; the pieces required and start the Hudson server with as little user input as possible. This way anyone (including myself) with access to the source code, can set up building with a minimum of effort.&lt;/div&gt;&lt;/p&gt;&lt;p style="clear: both"&gt;&lt;div style="clear: both;"&gt;I also wanted the finished set-up to do the following:&lt;/div&gt;&lt;/p&gt;&lt;ul style="clear: both"&gt;&lt;li&gt;Check out code from the repository and trigger a build if there were any changes. &lt;/li&gt; &lt;li&gt;Use &lt;a href="http://www.eclipse.org/pde/"&gt;Eclipse PDE&lt;/a&gt; to build a feature.&lt;/li&gt; &lt;li&gt;Use Hudson build numbers where appropriate so that built artifacts can be traced.&lt;/li&gt; &lt;li&gt;Assemble an &lt;a href="http://eclipse.org/equinox/p2/"&gt;Equinox p2&lt;/a&gt; repository for distribution.&lt;/li&gt; &lt;li&gt;Upload to Google Code, tag the source and push changes when a build is promoted through Hudson.&lt;/li&gt; &lt;/ul&gt;&lt;p style="clear: both"&gt;&lt;div style="clear: both;"&gt;&lt;strong&gt;The &lt;em&gt;setup&lt;/em&gt; script&lt;/strong&gt; I contemplated using &lt;a href="http://ant.apache.org/"&gt;ANT&lt;/a&gt; but decided on &lt;a href="http://en.wikipedia.org/wiki/Bash_(Unix_shell)"&gt;Bash&lt;/a&gt;. Consequently the script will only work on *nix hosts or Windows with &lt;a href="http://code.google.com/p/buildmonitor/downloads/list?deleted=1&amp;amp;ts=1276588262"&gt;MSYS&lt;/a&gt; or &lt;a href="http://www.cygwin.com/"&gt;Cygwin&lt;/a&gt;. ANT is still used to start the build and do the post processing.&lt;/div&gt;&lt;/p&gt;&lt;p style="clear: both"&gt;&lt;div style="clear: both;"&gt;&lt;strong&gt;&lt;/strong&gt;The script itself is placed in the &lt;a href="http://code.google.com/p/buildmonitor/source/browse/#hg/releng"&gt;&lt;em&gt;releng&lt;/em&gt;&lt;/a&gt; folder of the Mercurial repository described in the earlier post. In addition to this I needed templates for creating the Hudson job and promotion configuration, the ANT script (&lt;a href="http://code.google.com/p/buildmonitor/source/browse/releng/build.xml"&gt;&lt;em&gt;build.xml&lt;/em&gt;&lt;/a&gt;) and the &lt;a href="http://code.google.com/p/buildmonitor/source/browse/releng/build.properties"&gt;&lt;em&gt;build.properties&lt;/em&gt;&lt;/a&gt; for &lt;a href="http://www.eclipse.org/pde/"&gt;PDE&lt;/a&gt; build.&lt;/div&gt;&lt;/p&gt;&lt;p style="clear: both"&gt;&lt;a href="http://lh6.ggpht.com/_7gXx6rV_WQ4/TEm1KMSQ2SI/AAAAAAAAAMA/78IlGWcJCE8/s800/BuildScripts-full1.png" class="image-link"&gt;&lt;img class="linked-to-original" src="http://lh6.ggpht.com/_7gXx6rV_WQ4/TEm1J7thp_I/AAAAAAAAAL8/1pJaGDemYms/s800/BuildScripts-full-thumb.png" height="113" width="481" style=" text-align: center; display: block; margin: 0 auto 10px;" /&gt;&lt;/a&gt;&lt;div style="clear: both;"&gt;The first thing &lt;a href="http://code.google.com/p/buildmonitor/source/browse/releng/setup.sh"&gt;&lt;em&gt;setup.sh&lt;/em&gt;&lt;/a&gt; will do is to check if there is a &lt;em&gt;HUDSON_HOME&lt;/em&gt; environment variable. If that is the case the existing location for Hudson will be used instead of creating a new one. This is useful when it's desirable to have only one instance of Hudson running while working on multiple projects set up in a similar manner.&lt;/div&gt;&lt;/p&gt;&lt;p style="clear: both"&gt;&lt;div style="clear: both;"&gt;It is assumed that the script is executed from the folder where it is placed and that this folder is the &lt;em&gt;releng&lt;/em&gt; folder inside the Mercurial repository in the Eclipse workspace. The reason for this is that the location is used to determine which Mercurial repository to use. It is also required for finding the Google Code credentials used when uploading built artifacts. &lt;/div&gt;&lt;/p&gt;&lt;p style="clear: both"&gt;&lt;div style="clear: both;"&gt;The script will download and prepare all required components. For instance if the Hudson WAR file is not present the script will download it, the same for all plug-ins required. It will also make sure that Hudson has the required configurations for the job. Note that these will be updated each time the script is executed.&lt;/div&gt;&lt;/p&gt;&lt;p style="clear: both"&gt;&lt;div style="clear: both;"&gt;I also needed an Eclipse instance for the PDE build. Since it is hard to correctly detect which installation to use I set the variable &lt;em&gt;ECLIPSE_HOME&lt;/em&gt; inside my &lt;em&gt;.profile&lt;/em&gt;. When running the script using external tools from within Eclipse, I replace this variable with the path to the running instance.&lt;/div&gt;&lt;/p&gt;&lt;p style="clear: both"&gt;&lt;div style="clear: both;"&gt;Using the base Eclipse location the script will also try to figure out the path to the launcher and the PDE build scripts. This way there should be no need to change any properties between Eclipse versions.&lt;/div&gt;&lt;/p&gt;&lt;p style="clear: both"&gt;&lt;div style="clear: both;"&gt;&lt;strong&gt;Usage&lt;/strong&gt; As soon as I start working on the project I just start Hudson using &lt;em&gt;setup.sh&lt;/em&gt;. Builds will be performed continuously and after each I will have an Equinoix p2 repository that I can install from when wanting to test the full package. Typically I have one plain Eclipse installation where I've added the location of the repository (&lt;em&gt;http://localhost:8080/job/Buildmonitor/ws/repo/&lt;/em&gt;). Since the version number of the feature is incremented on each build I only need to use &lt;strong&gt;Help &amp;gt; Check for Updates&lt;/strong&gt; to get the new version.&lt;/div&gt;&lt;/p&gt;&lt;p style="clear: both"&gt;&lt;div style="clear: both;"&gt;&lt;strong&gt;Summary&lt;/strong&gt; Future extensions could be to run JUnit tests (don't have any for this project yet), update Eclipse Marketplace information and maybe introduce different promotion states.&lt;/div&gt;&lt;/p&gt;&lt;p style="clear: both"&gt;&lt;div style="clear: both;"&gt;If you find this interesting you may want to look at the &lt;a href="http://code.google.com/p/buildmonitor/source/browse/#hg/releng"&gt;source code&lt;/a&gt;. It should be straightforward to tweak for your own purposes.&lt;/div&gt;&lt;/p&gt;&lt;p style="clear: both"&gt;&lt;div style="clear: both;"&gt;&lt;strong&gt;Useful links:&lt;/strong&gt;&lt;/div&gt;&lt;/p&gt;&lt;ul style="clear: both"&gt;&lt;li&gt;&lt;a href="http://intellectualcramps.blogspot.com/2010/06/git-hudson-new-ways-to-develope.html"&gt;David Carver's blog: Git + Hudson = New ways To Develop&lt;/a&gt; &lt;/li&gt; &lt;li&gt;&lt;a href="http://intellectualcramps.blogspot.com/2010/04/local-continuous-integration-with.html"&gt;David Carver's blog: Local Continuous Integration With Hudson And Git&lt;/a&gt; &lt;/li&gt; &lt;li&gt;&lt;a href="http://www.macports.org/"&gt;MacPorts for various GNU utilities on Mac&lt;/a&gt; &lt;/li&gt; &lt;li&gt;&lt;a href="http://code.google.com/p/ant-googlecode/"&gt;ant-googlecode, for uploading to Google Code using ANT&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;&lt;p style="clear: both"&gt;&lt;div style="clear: both;"&gt;&lt;/div&gt;&lt;/p&gt;&lt;p style="clear: both"&gt;&lt;/p&gt;&lt;br class='final-break' style='clear: both' /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/260533640632479491-2442724837084881228?l=torkildr.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/YetAnotherCodersBlog/~4/4QTi9ILcyPk" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://torkildr.blogspot.com/feeds/2442724837084881228/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://torkildr.blogspot.com/2010/06/local-continuous-building-with-hudson.html#comment-form" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/260533640632479491/posts/default/2442724837084881228?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/260533640632479491/posts/default/2442724837084881228?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/YetAnotherCodersBlog/~3/4QTi9ILcyPk/local-continuous-building-with-hudson.html" title="Local continuous building with Hudson, Mercurial and Eclipse" /><author><name>Torkild U. Resheim</name><uri>https://profiles.google.com/114353763327539408721</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/--0J6SSx4TVQ/AAAAAAAAAAI/AAAAAAAAASQ/e0j6O-hLIz0/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh6.ggpht.com/_7gXx6rV_WQ4/TEm1J7thp_I/AAAAAAAAAL8/1pJaGDemYms/s72-c/BuildScripts-full-thumb.png" height="72" width="72" /><thr:total>1</thr:total><feedburner:origLink>http://torkildr.blogspot.com/2010/06/local-continuous-building-with-hudson.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUMHR3Y4fCp7ImA9WxFXF0U.&quot;"><id>tag:blogger.com,1999:blog-260533640632479491.post-4719159502943362034</id><published>2010-05-24T16:07:00.029+02:00</published><updated>2010-05-25T12:30:36.834+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-05-25T12:30:36.834+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="build" /><category scheme="http://www.blogger.com/atom/ns#" term="Eclipse" /><category scheme="http://www.blogger.com/atom/ns#" term="Google Code" /><category scheme="http://www.blogger.com/atom/ns#" term="Mercurial" /><title>Getting started with Google Code, Mercurial and Eclipse</title><content type="html">&lt;p&gt;As I wanted to share an Eclipse based project I’m working on with the open source community I decided to use &lt;i&gt;Google Code&lt;/i&gt; and a distributed version control system (DVCS) for the first time. I did not find much material on how to do this with Eclipse so I decided to document the process as it may be of some use to someone.
&lt;/p&gt;&lt;p&gt;One of the reasons I wanted to use a DVCS is that it will allow me to set up continuous building on my workstation without having to commit changes to the central repository. (More about that later). Google Code currently only offers the Mercurial DVCS so that’s what I'll be using.&lt;/p&gt;&lt;p&gt;First I had to set up Mercurial in Eclipse. I installed the Mercurial client from &lt;a href="http://javaforge.com/project/HGE"&gt;http://javaforge.com/project/HGE&lt;/a&gt;. I then opened preferences and chose &lt;b&gt;Team &gt; Mercurial&lt;/b&gt;. Entered my Mercurial Username as "Torkild U. Resheim &amp;lt;xxx@xxx.xxx&amp;gt;" and specified the paths to the binaries. This last step is absolutely required.&lt;/p&gt;&lt;p&gt;Then it was time to check out the repository that Google Code created when the project was initialized. So I selected &lt;b&gt;Import &gt; Mercurial &gt; Clone Existing Mercurial Repository&lt;/b&gt;. In the dialog I entered the URL of the repository; &lt;i&gt;https://buildmonitor.googlecode.com/hg/ &lt;/i&gt;and my Google code user name and password. Note that this password is not the same as the one used to log into other Google services. It can be found in the Google Code web page at &lt;b&gt;Profile &gt; Settings&lt;/b&gt;. This process created a new project in my workspace named &lt;i&gt;buildmonitor&lt;/i&gt;.&lt;/p&gt;&lt;p&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 250px; height: 57px;" src="http://2.bp.blogspot.com/_7gXx6rV_WQ4/S_qbpU2MWyI/AAAAAAAAAJI/o4f-sftyOKg/s320/Skjermbilde+2010-05-24+kl.+17.28.53.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5474859431295212322" /&gt;For the repository I wanted three folders containing plug-ins, features and various build scripts. This particular layout was chosen because it makes life with PDE build easier. Now, the Mercurial client will not allow me to do this directly so I had to do some tricks.
&lt;/p&gt;&lt;p&gt;First I opened a shell and entered the new project folder.&lt;/p&gt;&lt;pre class="brush: bash"&gt;cd ~/Development/Eclipse/Workspaces/Buildmonitor/buildmonitor&lt;/pre&gt;Next I specified a proper user name that will be used when changes are committed. This is done by adding the name to the settings file. If you replicate the process and take a look at the file you will notice that the credentials are already stored there. In plain text mind you!&lt;pre class="brush: bash"&gt;echo -e '[ui]\nusername = Torkild U. Resheim &amp;lt;xxx@xxx.xxx&amp;gt;\n' &gt;&gt; .hg/hgrc&lt;/pre&gt;I then created folders for holding the source code. As mentioned I wanted both a &lt;i&gt;plugins&lt;/i&gt; and a &lt;i&gt;features&lt;/i&gt; folder as the Eclipse PDE build scripts expect this layout.&lt;pre class="brush: bash"&gt;mkdir plugins
mkdir features
mkdir releng
echo 'Directory for holding Eclipse plug-ins.' &gt; plugins/readme.txt
echo 'Directory for holding Eclipse features.' &gt; features/readme.txt
echo 'Directory for build and release scripts.' &gt; releng/readme.txt
hg add plugins/readme.txt
hg add features/reame.txt
hg add releng/readme.txt
hg commit -m "Basic folder layout."
hg push&lt;/pre&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;The last command committed my changes to the main repository.&lt;/p&gt;&lt;p&gt;I no longer needed the &lt;i&gt;buildmonitor&lt;/i&gt; project per se, so I simply deleted it from Eclipse, taking care not to remove the actual folder from the file system. &lt;/p&gt;&lt;p&gt;Now what I really wanted to do was to place my existing source code inside the new folders in the new repository. Something similar to what you can do with Subversion by adjusting the URL when committing. However I could not find a good way of doing so using the &lt;b&gt;Team &gt; Share&lt;/b&gt; command as this would create a new repository.&lt;/p&gt;&lt;p&gt;
I found that I could simply select each project individually then execute &lt;b&gt;Refactor &gt; Move&lt;/b&gt; and specify the new location to be inside the newly created &lt;i&gt;plugins&lt;/i&gt; (or &lt;i&gt;features&lt;/i&gt;) folder. Then (again individually) select &lt;b&gt;Team &gt; Share Project... &gt; Mercurial&lt;/b&gt; and accept the defaults to add the project to the repository. For new projects I just need to make sure I place them inside the repository file structure.&lt;/p&gt;&lt;p&gt;
Now everything was ready to commit and push. The next step will be to set up continuos building, then maybe migrate to &lt;a href="https://code.google.com/a/eclipselabs.org/hosting/"&gt;Eclipse Labs&lt;/a&gt;. &lt;/p&gt;
&lt;b&gt;A few useful links&lt;/b&gt;&lt;ul&gt;&lt;li&gt;Intland Software: &lt;a href="http://blogs.intland.com/main/entry/39"&gt;Google Code and Mercurial Tutorial for Eclipse Users&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Ekkes-Corner: &lt;a href="http://ekkescorner.wordpress.com/blog-series/git-mercurial/"&gt;Git+Mercurial&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Intellectual Cramps: &lt;a href="http://intellectualcramps.blogspot.com/2010/04/local-continuous-integration-with.html?utm_source=feedburner&amp;amp;utm_medium=feed&amp;amp;utm_campaign=Feed%3A+IntellectualCramps+%28Intellectual+Cramps%29&amp;amp;utm_content=Google+Reader"&gt;Local Continuous Integration With Hudson And Git&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/260533640632479491-4719159502943362034?l=torkildr.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/YetAnotherCodersBlog/~4/8oa1WQ9y3uo" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://torkildr.blogspot.com/feeds/4719159502943362034/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://torkildr.blogspot.com/2010/05/getting-started-with-google-code.html#comment-form" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/260533640632479491/posts/default/4719159502943362034?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/260533640632479491/posts/default/4719159502943362034?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/YetAnotherCodersBlog/~3/8oa1WQ9y3uo/getting-started-with-google-code.html" title="Getting started with Google Code, Mercurial and Eclipse" /><author><name>Torkild U. Resheim</name><uri>https://profiles.google.com/114353763327539408721</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/--0J6SSx4TVQ/AAAAAAAAAAI/AAAAAAAAASQ/e0j6O-hLIz0/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/_7gXx6rV_WQ4/S_qbpU2MWyI/AAAAAAAAAJI/o4f-sftyOKg/s72-c/Skjermbilde+2010-05-24+kl.+17.28.53.png" height="72" width="72" /><thr:total>2</thr:total><feedburner:origLink>http://torkildr.blogspot.com/2010/05/getting-started-with-google-code.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkUDQno-cSp7ImA9WhZXF00.&quot;"><id>tag:blogger.com,1999:blog-260533640632479491.post-5964410355441858163</id><published>2010-02-13T20:48:00.030+01:00</published><updated>2011-05-06T19:51:13.459+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-05-06T19:51:13.459+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Eclipse" /><category scheme="http://www.blogger.com/atom/ns#" term="TableViewer" /><title>Animated GIF in TableViewer</title><content type="html">&lt;p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_7gXx6rV_WQ4/S3cLDcjAS_I/AAAAAAAAAIU/i-4o4aFEVf8/s1600-h/Skjermbilde+2010-02-13+kl.+20.47.45.png"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 320px; height: 184px;" src="http://3.bp.blogspot.com/_7gXx6rV_WQ4/S3cLDcjAS_I/AAAAAAAAAIU/i-4o4aFEVf8/s320/Skjermbilde+2010-02-13+kl.+20.47.45.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5437827228903689202" /&gt;&lt;/a&gt; I'm quite attached to TableViewer and the nice separation between UI and data so I tend to use it pretty much every time I can. However when faced with having to indicate progress in a table row I got into trouble. If the table was implemented just in &lt;a href="http://www.eclipse.org/swt/"&gt;SWT&lt;/a&gt;  it would not be much of a problem as you get pretty much full control. It's not that easy when using a JFace. I decided to hook into the label provider and use an animated image to indicate progress. It proved to be a nice solution so I've exemplified it for your enjoyment. Note that the housekeeping is very much left out in order to keep the code short. &lt;/p&gt;&lt;p&gt;The pretty GIF was lifted off &lt;a href="http://www.ajaxload.info/"&gt;http://www.ajaxload.info/&lt;/a&gt;. &lt;/p&gt;First we have the data class. It's simply represent a person and whether or not that person is busy. &lt;script src="https://gist.github.com/959423.js?file=Data.java"&gt;&lt;/script&gt;&lt;br /&gt;
&lt;br /&gt;
We use the SWT.VIRTUAL flag on the table in order to make sure we're notified whenever new data is added to the viewer. When this happens we store the table item to a list. The GIF is loaded from a file and we store the information in two arrays. One for the images and another for the delays between images. The job is done by a  thread that will update the image of each table item that represents a busy person.&lt;br /&gt;
&lt;script src="https://gist.github.com/959423.js?file=TableViewerAnimation.java"&gt;&lt;/script&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/260533640632479491-5964410355441858163?l=torkildr.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/YetAnotherCodersBlog/~4/2J88aHMbqMY" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://torkildr.blogspot.com/feeds/5964410355441858163/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://torkildr.blogspot.com/2010/02/animated-gif-in-tableviewer.html#comment-form" title="4 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/260533640632479491/posts/default/5964410355441858163?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/260533640632479491/posts/default/5964410355441858163?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/YetAnotherCodersBlog/~3/2J88aHMbqMY/animated-gif-in-tableviewer.html" title="Animated GIF in TableViewer" /><author><name>Torkild U. Resheim</name><uri>https://profiles.google.com/114353763327539408721</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/--0J6SSx4TVQ/AAAAAAAAAAI/AAAAAAAAASQ/e0j6O-hLIz0/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/_7gXx6rV_WQ4/S3cLDcjAS_I/AAAAAAAAAIU/i-4o4aFEVf8/s72-c/Skjermbilde+2010-02-13+kl.+20.47.45.png" height="72" width="72" /><thr:total>4</thr:total><feedburner:origLink>http://torkildr.blogspot.com/2010/02/animated-gif-in-tableviewer.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkUGQH47cSp7ImA9WxBXEU0.&quot;"><id>tag:blogger.com,1999:blog-260533640632479491.post-3569420212259758574</id><published>2010-01-21T20:18:00.013+01:00</published><updated>2010-01-21T21:03:41.009+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-01-21T21:03:41.009+01:00</app:edited><title>Thank you Bose</title><content type="html">&lt;p&gt;
Last year our cat gave birth to six kittens. Our house quickly became a very lively place while we were waiting for them to grow up so that they could be adopted. One night the small monsters went on a rampage, biting in half just about any electrical cable their tiny teeth was capable of handling. I managed to solder together the speaker cables and both the mobile phone chargers but the 2.5mm to 3.5mm jack cable for my QuietComfort 3 could not be rescued. No big deal I figured; these can't be too hard to replace. Well I was very wrong. None of the stores nearby (and there are quite a few) have them, even those selling Bose gear. Not even the Norwegian Bose internet store. The US shop do carry &lt;a href="http://www.bose.com/controller?url=/shop_online/headphones/noise_cancelling_headphones/accessories/qc3_replacement_audio_cable_acc.jsp"&gt;these&lt;/a&gt; but they won't ship abroad. So I created an account at &lt;a href="http://www.jetcarrier.com/"&gt;JetCarrier&lt;/a&gt; for handling the parcel, then went on placing the order. Just as I was about to pay I discovered that they only accept US credit cards. Darn.&lt;/p&gt;
&lt;p&gt;I gave up trying to arrange this by myself and contacted Bose by e-mail asking if they could let me know where I should go to buy the cable. I did not hear from them after the initial e-mail explaining that they were quite busy and that it may take a while.&lt;/p&gt;
&lt;p&gt;This morning a small anonymous package containing the replacement cable and nothing else arrived.&lt;/p&gt;
&lt;p&gt;Thank you Bose A/S Norge.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/260533640632479491-3569420212259758574?l=torkildr.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/YetAnotherCodersBlog/~4/XBBYaMLlINo" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://torkildr.blogspot.com/feeds/3569420212259758574/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://torkildr.blogspot.com/2010/01/thank-you-bose.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/260533640632479491/posts/default/3569420212259758574?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/260533640632479491/posts/default/3569420212259758574?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/YetAnotherCodersBlog/~3/XBBYaMLlINo/thank-you-bose.html" title="Thank you Bose" /><author><name>Torkild U. Resheim</name><uri>https://profiles.google.com/114353763327539408721</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/--0J6SSx4TVQ/AAAAAAAAAAI/AAAAAAAAASQ/e0j6O-hLIz0/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://torkildr.blogspot.com/2010/01/thank-you-bose.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CE4CQHo4eCp7ImA9WxBXEU0.&quot;"><id>tag:blogger.com,1999:blog-260533640632479491.post-835582602803396834</id><published>2009-12-31T11:12:00.029+01:00</published><updated>2010-01-21T20:42:41.430+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-01-21T20:42:41.430+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Open Source" /><category scheme="http://www.blogger.com/atom/ns#" term="Eclipse" /><title>The Year of Open Source</title><content type="html">In an interesting prediction of what will happen in 2010 Doug Schaefer of the &lt;a href="http://eclipse.org/cdt/"&gt;Eclipse C/C++ Development Tooling&lt;/a&gt; (CDT) project thinks that it will be &lt;a href="http://cdtdoug.blogspot.com/2009/12/looking-forward-to-2010.html"&gt;the year when Open Source Wins&lt;/a&gt;. &lt;p&gt;Software development can be difficult. Many systems built today are quite complex and are usually (if not always) based on previous work; whether it be framework or operating system API's. As many software developers already know; building on open source is just easier.&lt;/p&gt; &lt;p&gt;Building software is also putting a lot of trust into the API provider of your choice; that it will continue to be innovative and develop the code in a way that is beneficial to it's downstream users. As we all know this is often not the case. At least building on open source often allows you to participate and make sure that the API moves in the desirable direction.&lt;/p&gt;&lt;p&gt;Many people make the mistake of assuming that open source equals &lt;a href="http://en.wikipedia.org/wiki/Viral_license"&gt;viral licenses&lt;/a&gt; such as the &lt;a href="http://www.gnu.org/licenses/gpl.html"&gt;GNU Public License&lt;/a&gt; (GPL). This is far from the case. There are (too) many different open source licensing schemes out there. The one thing they do have in common is that you're allowed to read the code. One of the more successful is the &lt;a href="http://www.eclipse.org/legal/epl-v10.html"&gt;Eclipse Public License&lt;/a&gt; (EPL) which also gathers for the commercial side of software development. I believe this is the most important reason why the &lt;a href="http://www.eclipse.org/"&gt;Eclipse&lt;/a&gt; project is such a huge success and has a large following amongst corporations. As such it has been dubbed a "&lt;a href="http://eclipse-projects.blogspot.com/2009/11/its-trade-association.html"&gt;trade association&lt;/a&gt;".&lt;/p&gt; &lt;p&gt;Because of licenses such as the EPL, commercial interest can find it convenient to invest time and money into open source projects. The license allows them to keep their company secrets and their "edge" to themselves while taking part in developing the shared foundation. One example is the evolvement of common "standards" such as the &lt;a href="http://wiki.eclipse.org/DSDP/TM/TCF_FAQ"&gt;Target Communication Framework&lt;/a&gt; (TCF), which is rapidly becoming a de facto standard in debugging embedded devices. &lt;/p&gt;&lt;p&gt;If 2010 becomes the year open source wins, it is because of projects such as Eclipse and licenses such as the EPL. Idealism is great, but it does not put bread and butter on the table.&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/260533640632479491-835582602803396834?l=torkildr.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/YetAnotherCodersBlog/~4/WHQSRxLhuJk" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://torkildr.blogspot.com/feeds/835582602803396834/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://torkildr.blogspot.com/2009/12/year-of-open-source.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/260533640632479491/posts/default/835582602803396834?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/260533640632479491/posts/default/835582602803396834?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/YetAnotherCodersBlog/~3/WHQSRxLhuJk/year-of-open-source.html" title="The Year of Open Source" /><author><name>Torkild U. Resheim</name><uri>https://profiles.google.com/114353763327539408721</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/--0J6SSx4TVQ/AAAAAAAAAAI/AAAAAAAAASQ/e0j6O-hLIz0/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://torkildr.blogspot.com/2009/12/year-of-open-source.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CU4HQHo7eip7ImA9WxBXEU0.&quot;"><id>tag:blogger.com,1999:blog-260533640632479491.post-6387374923970071084</id><published>2009-12-28T00:14:00.011+01:00</published><updated>2010-01-21T20:58:51.402+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-01-21T20:58:51.402+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Mac" /><category scheme="http://www.blogger.com/atom/ns#" term="Eclipse" /><category scheme="http://www.blogger.com/atom/ns#" term="aggregator" /><title>Aggregator badge label</title><content type="html">&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_7gXx6rV_WQ4/Szfr0GzEXyI/AAAAAAAAAHs/4_omC7w6PfE/s1600-h/Skjermbilde+2009-12-28+kl.+00.09.06.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 324px; height: 125px;" src="http://2.bp.blogspot.com/_7gXx6rV_WQ4/Szfr0GzEXyI/AAAAAAAAAHs/4_omC7w6PfE/s400/Skjermbilde+2009-12-28+kl.+00.09.06.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5420059956974214946" /&gt;&lt;/a&gt;
A while ago I noticed a post by Prakash G. R. on &lt;a href="http://www.planeteclipse.org/planet/"&gt;Planet Eclipse&lt;/a&gt; explaining how to add a &lt;a href="http://blog.eclipse-tips.com/2009/05/badge-label-on-mac-dock-icon.html"&gt;Badge label on Mac dock icon&lt;/a&gt;. I decided to use his tip to display the number of unread articles. This was done by adding a new platform specific bundle fragment that contains the code and installs into the RCP application bundle. That way the feature is only loaded when on Mac OS X.&lt;div&gt;
&lt;/div&gt;&lt;div&gt;
&lt;/div&gt;&lt;div&gt;The icon was drawn using &lt;a href="http://www.bohemiancoding.com/drawit/"&gt;DrawIt&lt;/a&gt; which is a neat little vector drawing program. What I really like about it is the way effects can be applied in layers — without breaking the drawing. However it does have a few annoying bugs. For instance it will sometimes lock up and gradient strokes are often not painted. It's still worth the price though and hopefully these issues will be ironed out eventually.&lt;div&gt;&lt;div&gt;
&lt;/div&gt;&lt;div&gt;
&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/260533640632479491-6387374923970071084?l=torkildr.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/YetAnotherCodersBlog/~4/7a4PVjXsRzY" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://torkildr.blogspot.com/feeds/6387374923970071084/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://torkildr.blogspot.com/2009/12/aggregator-badge-label.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/260533640632479491/posts/default/6387374923970071084?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/260533640632479491/posts/default/6387374923970071084?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/YetAnotherCodersBlog/~3/7a4PVjXsRzY/aggregator-badge-label.html" title="Aggregator badge label" /><author><name>Torkild U. Resheim</name><uri>https://profiles.google.com/114353763327539408721</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/--0J6SSx4TVQ/AAAAAAAAAAI/AAAAAAAAASQ/e0j6O-hLIz0/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/_7gXx6rV_WQ4/Szfr0GzEXyI/AAAAAAAAAHs/4_omC7w6PfE/s72-c/Skjermbilde+2009-12-28+kl.+00.09.06.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://torkildr.blogspot.com/2009/12/aggregator-badge-label.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DE4AR3g4cSp7ImA9WhZXFkw.&quot;"><id>tag:blogger.com,1999:blog-260533640632479491.post-5950602592547483031</id><published>2009-10-26T08:46:00.029+01:00</published><updated>2011-05-05T19:35:46.639+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-05-05T19:35:46.639+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Eclipse Summit Europe" /><title>Eclipse Summit Europe 2009</title><content type="html">&lt;p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_7gXx6rV_WQ4/Sv_MU2mEA2I/AAAAAAAAAHE/dzBCLUybBfE/s1600-h/eclipse-mints.png"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 200px; height: 150px;" src="http://1.bp.blogspot.com/_7gXx6rV_WQ4/Sv_MU2mEA2I/AAAAAAAAAHE/dzBCLUybBfE/s200/eclipse-mints.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5404262736492495714" /&gt;&lt;/a&gt;I stopped at the office for a couple of hours before catching the flight to Stuttgart. There I met with a collegue that had just returned from the &lt;i&gt;Visual Studio Ecosystem Summit&lt;/i&gt;. Apparently they still have a way to go on the ecosystem side of things. Anyway; knowing that I was on my way to ESE, he had picked up a small box of "Naturally Germ Killing Eclipse Mints". &lt;a href="http://eclipse.org/mylyn"&gt;Mylyn&lt;/a&gt; came to mind.&lt;/p&gt;&lt;p&gt;This &lt;a href="http://www.eclipsecon.org/summiteurope2009/"&gt;summit&lt;/a&gt; was held over three days. Day one was filled with symposia and tutorials. The second day and third day was mostly talks. I managed to get through pretty much only attending the embedded related ones. That is quite good especially considering that the &lt;a href="http://windriver.com/"&gt;Wind River&lt;/a&gt; and &lt;a href="http://www.mvista.com/"&gt;MontaVista&lt;/a&gt; guys were missing. They usually host many of these talks. Though I do find it discomforting that neither the CDT project lead nor anyone else from that team was able to attend. Also I was hoping to discuss the new &lt;a href="http://nokiacarbideoneclipse.blogspot.com/2009/03/eclipse-debugger-for-cc-edc.html"&gt;C/C++ debugger&lt;/a&gt; that Nokia is working on.&lt;/p&gt;&lt;p&gt;There was a lot of great talks, too many to mention. However there were a few that stood out. Following up on older technology; Freescale had someone working on &lt;a href="http://www.eclipsecon.org/summiteurope2009/sessions?id=1023"&gt;CDI based debugger improvements&lt;/a&gt; which was quite interesting. My general impression from the embedded talks is that Java and OSGi is a very much a viable option even on these type of targets. Also the &lt;a href="http://www.eclipsecon.org/summiteurope2009/sessions?id=1000"&gt;B3 platform&lt;/a&gt; got me really exited. I'm really looking forward to the day when I can ditch ANT, Ivy, MS-DOS and bash, replacing these with a DSL crafted for building purposes.&lt;/p&gt;&lt;p&gt;Maybe five tracks is a bit too much? I certainly wish I could attend more sessions. Some presentations have appeared at &lt;a href="http://www.slideshare.net/search/slideshow?q=Eclipse+Summit+Europe&amp;amp;type=presentations&amp;amp;searchfrom=basic&amp;amp;lang=**"&gt;SlideShare&lt;/a&gt; but far from all. All in all a great conference. My only regret is that I forgot to buy a new &lt;a href="http://www.knirps.com/en/folded/topmatic-sl"&gt;Knirps&lt;/a&gt; as the one I had got stolen...&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/260533640632479491-5950602592547483031?l=torkildr.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/YetAnotherCodersBlog/~4/MJiXgb4mfeI" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://torkildr.blogspot.com/feeds/5950602592547483031/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://torkildr.blogspot.com/2009/10/eclipse-summit-europe-2009.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/260533640632479491/posts/default/5950602592547483031?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/260533640632479491/posts/default/5950602592547483031?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/YetAnotherCodersBlog/~3/MJiXgb4mfeI/eclipse-summit-europe-2009.html" title="Eclipse Summit Europe 2009" /><author><name>Torkild U. Resheim</name><uri>https://profiles.google.com/114353763327539408721</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/--0J6SSx4TVQ/AAAAAAAAAAI/AAAAAAAAASQ/e0j6O-hLIz0/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/_7gXx6rV_WQ4/Sv_MU2mEA2I/AAAAAAAAAHE/dzBCLUybBfE/s72-c/eclipse-mints.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://torkildr.blogspot.com/2009/10/eclipse-summit-europe-2009.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUINQHs4cCp7ImA9WxBXEU0.&quot;"><id>tag:blogger.com,1999:blog-260533640632479491.post-6542697010350653795</id><published>2009-10-16T11:14:00.045+02:00</published><updated>2010-01-21T20:53:11.538+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-01-21T20:53:11.538+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Java" /><category scheme="http://www.blogger.com/atom/ns#" term="Eclipse Summit Europe" /><category scheme="http://www.blogger.com/atom/ns#" term="Eclipse" /><category scheme="http://www.blogger.com/atom/ns#" term="C#" /><category scheme="http://www.blogger.com/atom/ns#" term="Visual Studio" /><title>Java vs .NET, 3-0</title><content type="html">&lt;p&gt;That's the score after JetBrains &lt;a href="http://newsblaze.com/story/2009101510120200001.pnw/topstory.html"&gt;announced&lt;/a&gt; that they're making an &lt;a href="http://jetbrains.org/"&gt;open source version of IntelliJ IDEA&lt;/a&gt;. So if you're developing in Java (or just about any of the other mainstream languages); you will have a whopping three &lt;i&gt;free&lt;/i&gt; IDEs to choose from. (The other two are &lt;a href="http://www.eclipse.org/"&gt;Eclipse&lt;/a&gt; and &lt;a href="http://www.netbeans.org/"&gt;NetBeans&lt;/a&gt;).&lt;/p&gt;&lt;p&gt;I wonder what this situation will do to the .NET market in the long run. The Microsoft disciples will no doubt want to stick to what they have. That is until they discover that the other guys have more and better tools to choose from. Also worth noting is that the aforementioned IDEs can run on any of the most common operating systems. Using the OS to lock in developers will only go so far these days.&lt;/p&gt;&lt;p&gt;When it comes to tooling, Microsoft is very much vendors to a niche market; those that develop only in Windows, only for Windows. Still a very lucrative market, but I don't think that will last for long.&lt;/p&gt;&lt;p&gt;However, it appears that at least someone at Redmond is paying attention. Microsoft have funded the &lt;a href="http://silverlight.net/"&gt;Silverlight&lt;/a&gt; &lt;a href="http://www.eclipse4sl.org/"&gt;development tools for Eclipse&lt;/a&gt;. Surely to encourage widespread use. This year they are sponsoring the &lt;a href="http://www.eclipsecon.org/summiteurope2009/"&gt;Eclipse Summit Europe&lt;/a&gt; event where they will &lt;a href="http://www.eclipsecon.org/summiteurope2009/demos/"&gt;demo&lt;/a&gt; these tools.&lt;/p&gt;&lt;i&gt;Not many carpenters would want to build a house using an expensive old fashioned hammer when they can get a modern nail gun — for free&lt;/i&gt;.&lt;p&gt;So when will we see C# and .NET tooling in Eclipse?&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/260533640632479491-6542697010350653795?l=torkildr.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/YetAnotherCodersBlog/~4/KHsJnbrUAds" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://torkildr.blogspot.com/feeds/6542697010350653795/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://torkildr.blogspot.com/2009/10/java-vs-net-3-0.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/260533640632479491/posts/default/6542697010350653795?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/260533640632479491/posts/default/6542697010350653795?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/YetAnotherCodersBlog/~3/KHsJnbrUAds/java-vs-net-3-0.html" title="Java vs .NET, 3-0" /><author><name>Torkild U. Resheim</name><uri>https://profiles.google.com/114353763327539408721</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/--0J6SSx4TVQ/AAAAAAAAAAI/AAAAAAAAASQ/e0j6O-hLIz0/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://torkildr.blogspot.com/2009/10/java-vs-net-3-0.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DE4NRnYyeip7ImA9WxBREk0.&quot;"><id>tag:blogger.com,1999:blog-260533640632479491.post-7760122052002762480</id><published>2009-09-22T14:41:00.008+02:00</published><updated>2009-12-30T22:03:17.892+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-12-30T22:03:17.892+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Windows" /><title>Error Deleting File or Folder</title><content type="html">&lt;div align="left"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_7gXx6rV_WQ4/SrjGQoi1y_I/AAAAAAAAAGs/KbbYdecOtQk/s1600-h/cannot-delete.png"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 320px; height: 94px;" src="http://2.bp.blogspot.com/_7gXx6rV_WQ4/SrjGQoi1y_I/AAAAAAAAAGs/KbbYdecOtQk/s320/cannot-delete.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5384271343585184754" /&gt;&lt;/a&gt;As the error message states Windows XP thinks my file name (or path) is too long so consequently I cannot delete the file. The message even suggests that I should try deleting another file instead. That would be a great idea except that I've already made up my mind about which files to delete and I really want to keep my other files.&lt;/div&gt;&lt;div align="left"&gt;
&lt;/div&gt;&lt;div align="left"&gt;A Microsoft &lt;a href="http://support.microsoft.com/kb/320081"&gt;knowledge base article&lt;/a&gt; got me out of this pickle.

&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/260533640632479491-7760122052002762480?l=torkildr.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/YetAnotherCodersBlog/~4/ZT41WZl0JcM" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://torkildr.blogspot.com/feeds/7760122052002762480/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://torkildr.blogspot.com/2009/09/error-deleting-file-or-folder.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/260533640632479491/posts/default/7760122052002762480?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/260533640632479491/posts/default/7760122052002762480?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/YetAnotherCodersBlog/~3/ZT41WZl0JcM/error-deleting-file-or-folder.html" title="Error Deleting File or Folder" /><author><name>Torkild U. Resheim</name><uri>https://profiles.google.com/114353763327539408721</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/--0J6SSx4TVQ/AAAAAAAAAAI/AAAAAAAAASQ/e0j6O-hLIz0/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/_7gXx6rV_WQ4/SrjGQoi1y_I/AAAAAAAAAGs/KbbYdecOtQk/s72-c/cannot-delete.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://torkildr.blogspot.com/2009/09/error-deleting-file-or-folder.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Ck4NRH44eSp7ImA9WxNQGEs.&quot;"><id>tag:blogger.com,1999:blog-260533640632479491.post-3787812194499767474</id><published>2009-08-30T10:51:00.014+02:00</published><updated>2009-09-25T08:43:15.031+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-09-25T08:43:15.031+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="PDF" /><category scheme="http://www.blogger.com/atom/ns#" term="iPhone" /><category scheme="http://www.blogger.com/atom/ns#" term="iPod" /><category scheme="http://www.blogger.com/atom/ns#" term="eBook" /><title>Electronic Literature</title><content type="html">&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_7gXx6rV_WQ4/Spp1xUAANRI/AAAAAAAAAGE/SXkGI0wkkBc/s1600-h/bilde.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 134px; height: 200px;" src="http://2.bp.blogspot.com/_7gXx6rV_WQ4/Spp1xUAANRI/AAAAAAAAAGE/SXkGI0wkkBc/s200/bilde.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5375738595262870802" /&gt;&lt;/a&gt;
&lt;p&gt;I've pretty much ignored electronic books for too long. Either buying the books on paper or simply searched the web for the information I need. However, spurred by the recent appearance of quality O'Reilly books on Apple's App Store; I decided to take another look. &lt;/p&gt;&lt;p&gt;These books are published using a &lt;a href="http://toc.oreilly.com/2008/11/experimental-oreilly-ebook-iphone-integration-with-stanza.html"&gt;special version Stanza&lt;/a&gt; at a very low price (for instance NOK 29.- or about US$ 4.8 for the &lt;a href="http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=327739498&amp;amp;mt=8"&gt;The Java Cookbook&lt;/a&gt;). But you'd probably be better off installing &lt;a href="http://www.lexcycle.com/"&gt;Stanza&lt;/a&gt; itself and buy the full version of the book. That will give you the option to download the PDF which is a more true representation of the printed book. You'll also be able to download EPUB and Mobi formats which you can enjoy on other platforms instead of being forced to use your iPhone/iPod Touch.&lt;/p&gt;&lt;p&gt;Currently the Java Cookbook sells for US$ 34.99, but if you buy through Stanza you'll get a &lt;a href="http://toc.oreilly.com/2009/03/oreilly-ebooks-now-in-stanza.html"&gt;40% discount for a limited time&lt;/a&gt; for all available books (the offer is still valid).&lt;/p&gt;&lt;p&gt;Needless to say; I'm taking full advantage of this offer and filling up my library. Not as cool as having a nice row of books in the shelf, but just as useful (and I'll save a tree or two).&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/260533640632479491-3787812194499767474?l=torkildr.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/YetAnotherCodersBlog/~4/fmfBXDVSB9o" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://torkildr.blogspot.com/feeds/3787812194499767474/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://torkildr.blogspot.com/2009/08/electronic-books-and-stanza.html#comment-form" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/260533640632479491/posts/default/3787812194499767474?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/260533640632479491/posts/default/3787812194499767474?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/YetAnotherCodersBlog/~3/fmfBXDVSB9o/electronic-books-and-stanza.html" title="Electronic Literature" /><author><name>Torkild U. Resheim</name><uri>https://profiles.google.com/114353763327539408721</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/--0J6SSx4TVQ/AAAAAAAAAAI/AAAAAAAAASQ/e0j6O-hLIz0/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/_7gXx6rV_WQ4/Spp1xUAANRI/AAAAAAAAAGE/SXkGI0wkkBc/s72-c/bilde.jpg" height="72" width="72" /><thr:total>2</thr:total><feedburner:origLink>http://torkildr.blogspot.com/2009/08/electronic-books-and-stanza.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C08FRng6fyp7ImA9WhZXFUQ.&quot;"><id>tag:blogger.com,1999:blog-260533640632479491.post-7703642606861713268</id><published>2009-07-31T23:18:00.014+02:00</published><updated>2011-05-05T12:36:57.617+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-05-05T12:36:57.617+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="PDF" /><category scheme="http://www.blogger.com/atom/ns#" term="Scanning" /><category scheme="http://www.blogger.com/atom/ns#" term="Linux" /><category scheme="http://www.blogger.com/atom/ns#" term="Pixma" /><title>Scanning woes dispelled part 2</title><content type="html">A few months ago I wrote a post about using a &lt;a href="http://torkildr.blogspot.com/2009/04/scanning-woes-dispelled.html"&gt;Pixma scanner on Linux&lt;/a&gt; to create PDF documents from hard copies. The script has been greatly enhanced and now has a few more features: &lt;ul&gt;&lt;li&gt;Select scanner resolution&lt;/li&gt;
&lt;li&gt;Select page size&lt;/li&gt;
&lt;li&gt;Option to not pause between pages&lt;/li&gt;
&lt;li&gt;Option to send PDF as e-mail&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;The code is released under the &lt;a href="http://www.eclipse.org/legal/epl-v10.html"&gt;Eclipse Public License version 1.0&lt;/a&gt; which means that you can pretty much do what you want with it. &lt;/p&gt;&lt;script src="https://gist.github.com/956652.js?file=pixma2pdf.sh"&gt;&lt;/script&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/260533640632479491-7703642606861713268?l=torkildr.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/YetAnotherCodersBlog/~4/bF8pjKQNTx4" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://torkildr.blogspot.com/feeds/7703642606861713268/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://torkildr.blogspot.com/2009/07/scanning-woes-dispelled-part-2.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/260533640632479491/posts/default/7703642606861713268?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/260533640632479491/posts/default/7703642606861713268?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/YetAnotherCodersBlog/~3/bF8pjKQNTx4/scanning-woes-dispelled-part-2.html" title="Scanning woes dispelled part 2" /><author><name>Torkild U. Resheim</name><uri>https://profiles.google.com/114353763327539408721</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/--0J6SSx4TVQ/AAAAAAAAAAI/AAAAAAAAASQ/e0j6O-hLIz0/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://torkildr.blogspot.com/2009/07/scanning-woes-dispelled-part-2.html</feedburner:origLink></entry></feed>

