<?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:feedburner="http://rssnamespace.org/feedburner/ext/1.0" gd:etag="W/&quot;AkIESHg5eip7ImA9WxNaEEs.&quot;"><id>tag:blogger.com,1999:blog-8813074174707015455</id><updated>2009-11-24T14:15:09.622+01:00</updated><title>Unimplemented</title><subtitle type="html">Unsorted thoughts from minds of &lt;a href="http://www.spartez.com/"&gt;SPARTEZ&lt;/a&gt;.</subtitle><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://unimplemented.blogspot.com/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://unimplemented.blogspot.com/" /><link rel="hub" href="http://pubsubhubbub.appspot.com/" /><link rel="next" type="application/atom+xml" href="http://www.blogger.com/feeds/8813074174707015455/posts/default?start-index=26&amp;max-results=25&amp;redirect=false&amp;v=2" /><author><name>Lukasz Guminski</name><uri>http://www.blogger.com/profile/04127722466388107456</uri><email>noreply@blogger.com</email></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>143</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><link rel="self" href="http://feeds.feedburner.com/Unimplemented" type="application/atom+xml" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><entry gd:etag="W/&quot;AkIESHg4eSp7ImA9WxNaEEs.&quot;"><id>tag:blogger.com,1999:blog-8813074174707015455.post-1911187410053249234</id><published>2009-11-24T13:00:00.005+01:00</published><updated>2009-11-24T14:15:09.631+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-11-24T14:15:09.631+01:00</app:edited><title>Devoxx2009 - my impressions</title><content type="html">&lt;p style="margin-bottom: 0in;" lang="en-GB"&gt;This was my second Devoxx. This year a smaller than last year (I'd say by around 30% - European economy seems to be delayed compared to the US wrt suffering from GFC). There were fewer parallel tracks – less pain to pick sessions, but at the same time less choice. I had really problems finding something really cool for some slots (especially University days and the last day – with only 4 tracks).&lt;/p&gt; &lt;p style="margin-bottom: 0in;" lang="en-GB"&gt;I hope that next year will be again better, as our economy improves.&lt;/p&gt; &lt;p style="margin-bottom: 0in;" lang="en-GB"&gt;&lt;b&gt;Twitter&lt;/b&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0in;" lang="en-GB"&gt;Twitter was ubiquitous this year. Devoxx tweets were sometimes pouring in with the rate of 100+ tweets/hour. I was observing tweets during the sessions and they quickly revealed people opinion of currently watched session. I dare say Twitter influenced the traffic and the dynamics of the conference. Sometimes several positive tweets could lure much more people into the session (after it started) and negative tweets could help to empty the rooms as well.&lt;/p&gt; &lt;p style="margin-bottom: 0in;" lang="en-GB"&gt;I am quite reserved regarding new media (like Twitter) and related hype, still I find it really interesting  for such situations like a conference full of geeks.&lt;/p&gt; &lt;p style="margin-bottom: 0in;" lang="en-GB"&gt;&lt;b&gt;Scala&lt;/b&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0in; font-weight: normal;" lang="en-GB"&gt;This was a Scala conference. Almost no sessions about Groovy, JRuby, Jython, Clojure and other JVM languages. Scala won the interest completely.&lt;/p&gt; &lt;p style="margin-bottom: 0in; font-weight: normal;" lang="en-GB"&gt;Some say that's another fad or fashion and the next year will belong to yet another new sexy technology or language. I hope not. Scala is the first serious statically typed JVM language, which has a chance to lead Java (JVM) community into the new decade. Groovy is cool, sure, but I still don't believe in dynamically typed languages for implementing medium-to-big systems, which are to be evolved and maintained for years. After all refactoring (one of core agile techniques) is so much easier and safer in statically typed language than a dynamic one.&lt;/p&gt; &lt;p style="margin-bottom: 0in; font-weight: normal;" lang="en-GB"&gt;Many people (including me) were really impressed by already existing frameworks for Scala – like ScalaTest or Lift.&lt;/p&gt; &lt;p style="margin-bottom: 0in; font-weight: normal;" lang="en-GB"&gt;I bet that with all the experience we accumulated from almost 15 years of Java existence and its evolution, we can expect truly awesome and stable Scala-based frameworks much faster than we had to wait in case of Java (e.g. DI frameworks only in early '00)&lt;/p&gt; &lt;p style="margin-bottom: 0in; font-weight: normal;" lang="en-GB"&gt;&lt;b&gt;Cloud Computing&lt;/b&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0in;" lang="en-GB"&gt;If I were to name any technology which occupied the minds of the attendees (or perhaps the organizers), it would be cloud computing and related implementations/technologies like Amazon EC2 or Google AppEngine. Time will show whether cloud computing (in its current incarnation) will be yet another buzzword (after SOA) or it significantly changes our landscape. I already am convinced about one thing: existing cloud computing solutions may drastically simplify going live for internet startups which would otherwise need to spend a lot of money and time on estimating the predicted load and how to serve it. Cloud computing just makes agile “release early &amp;amp; release often” mantra easier.&lt;/p&gt; &lt;p style="margin-bottom: 0in;" lang="en-GB"&gt;Still I feel that a lot of bigger enterprises, which don't want (often due to a good reason) move their infrastructure outside the firewall, will wait until some stable behind-the-firewall solution will be available (will Eucalyptus be one of them?).&lt;/p&gt; &lt;p style="margin-bottom: 0in;" lang="en-GB"&gt;&lt;b&gt;Closures in Java&lt;/b&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0in;" lang="en-GB"&gt;Probably the most unexpected announcement at Devoxx. Sun delays Java by several months (till Fall 2010), but wants to add “simple” closures. I won't elaborate on that, as there are other blog posts which do it extensively. Two things however strike me: several years have passed since closures for Java were proposed and discussed, yet the current approach seems to be quite disturbing – going for a solution more or less made up randomly.&lt;/p&gt; &lt;p style="margin-bottom: 0in;" lang="en-GB"&gt;&lt;b&gt;Keynotes&lt;/b&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0in;" lang="en-GB"&gt;Keynotes were generally boring this year. Some extremely (like Oracle's and Sun's), some rather (like Ivar's one call to “action” on software engineering).  &lt;/p&gt; &lt;p style="margin-bottom: 0in;" lang="en-GB"&gt;Two keynotes however deserve a separate treatment:&lt;/p&gt; &lt;ol&gt;  &lt;li&gt;&lt;p style="margin-bottom: 0in;" lang="en-GB"&gt;Adobe talk – good  speakers, great slides and great demos. Definitely something to  follow in your own presentations.&lt;/p&gt; &lt;/li&gt;&lt;/ol&gt; &lt;ol start="2"&gt;  &lt;li&gt;&lt;p style="margin-bottom: 0in;" lang="en-GB"&gt;Uncle Bob's talk.  This guy always astonishes me. A great, passionate speaker. His  words are floating in the air for a long time and then catch the  listeners. I expected something similar to his last talk at  Agile2009 (the craftsmanship but around Bob's book “Clean code”).  However he went this time much deeper analyzing the current state of  software developer professionalism and how to achieve it. “They  hated us. And we hated them” - for all these years. “Say no. Do  not be afraid to say no. Your professionalism requires you to say  'no' ” This talk itself is worth buying the subscription from  parleys.com :) Especially if you want to know about the entropy related to a black hole.&lt;/p&gt; &lt;/li&gt;&lt;/ol&gt; &lt;p style="margin-bottom: 0in;" lang="en-GB"&gt;On a side note: it was interesting how Stephan Janssen used his opportunity while officially opening Devoxx to demonstrate his parleys.com. Yeah, this guy definitely deserves big thanks for his hard work, but for me it smelled of some kind of Devoxx monetization. Another thing: parleys.com is a Flash app (BTW a wonderful UI). Still it powers the biggest Java conference in Europe which evangelizes JavaFX. Nice, isn't? I would call it democracy and meritocracy.&lt;/p&gt; &lt;p style="margin-bottom: 0in;" lang="en-GB"&gt;&lt;b&gt;Craftsmanship&lt;/b&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0in;" lang="en-GB"&gt;Will '10 will be a decade of software craftsmanship? We will see, but Robert Martin says so. Ivar Jacobson also complains on years of changing fashions and our forgetfulness with regard to good, verified engineering practices, software management skills, etc.&lt;/p&gt; &lt;p style="margin-bottom: 0in;" lang="en-GB"&gt;Craftsmanship is something which differentiates good and responsible software developer from a bad or irresponsible one. Uncle Bob calls for 100% (or as close as possible to this number) unit test coverage. Calls for clean code. Calls for your professionalism.&lt;/p&gt; &lt;p style="margin-bottom: 0in;" lang="en-GB"&gt;A good observation though is that our industry suffers from an engineering talent drain. There is a lot of skilled and promising software engineers (with around 10 years of professional experience) who quit their engineering work to become various types of managers or analysts. Thus the experience does not accumulate and there are no real mentors (on the code level) and thought engineering leaders across companies. Somehow being a manager is considered by most of people to be a more attractive and desirable career path than being a leading (principal) engineer. We probably have serious problems in our companies which do not offer interesting development paths for their technical staff. That's bad and honestly I myself am often troubled by this dilemma.&lt;/p&gt; &lt;p style="margin-bottom: 0in;" lang="en-GB"&gt;&lt;b&gt;Flash vs JavaFX&lt;/b&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0in;" lang="en-GB"&gt;This was another year when Sun tries to compete with Flash in rich internet applications market. Whereas I wish well JavaFX (especially its desktop controls which will hopefully replace old Swing), it's obvious that Flash has a big advantage – being at this market so much earlier.&lt;/p&gt; &lt;p style="margin-bottom: 0in;" lang="en-GB"&gt;At Devoxx I learnt about a new thing which may even further drive Flash domination: Flash player for mobile devices (v. 10.1), which handles even things like accelerometer or the orientation detection. It seems that Flash may become now the best technology for writing cross-platform mobile apps. Adobe won in desktop browsers space and now with Flash player being able to run exactly the same app on Android, BlackBerry and even iPhone (here due to Apple policies one needs to generate an app executable with a tool Adobe provides). I saw live parleys.com (Flash) on BlackBerry – just awesome.&lt;/p&gt; &lt;p style="margin-bottom: 0in;" lang="en-GB"&gt;I hope that JavaFX can compete with that – having another monopoly would not be good.&lt;/p&gt; &lt;p style="margin-bottom: 0in;" lang="en-GB"&gt;&lt;b&gt;Apple Store&lt;/b&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0in; font-weight: normal;" lang="en-GB"&gt;Apple becomes hated. This is a significant mind shift I am observing.&lt;/p&gt; &lt;p style="margin-bottom: 0in; font-weight: normal;" lang="en-GB"&gt;Developers hate their Apple Store policy which blocks many interesting apps forever and seriously hampers the evolution of others (making iterative releases really painful).&lt;/p&gt; &lt;p style="margin-bottom: 0in; font-weight: normal;" lang="en-GB"&gt;Apple paranoid focus on controlling everything in the store hurts them a lot. They are actually just widely opening a market for a new platform and I bet Android will quickly take its market share.&lt;/p&gt; &lt;p style="margin-bottom: 0in; font-weight: normal;" lang="en-GB"&gt;So Apple itself became the biggest enemy of Apple. Can they fix it or rather they will become another Microsoft – a giant company, which people ridicule, but which still controls most of the market. Everyone waits (or foresees) their doom, but it does not happen … yet.&lt;/p&gt; &lt;p style="margin-bottom: 0in; font-weight: normal;" lang="en-GB"&gt;Paul Graham &lt;a href="http://www.paulgraham.com/apple.html"&gt;wrote a much deeper analysis&lt;/a&gt; of this situation. I recommend you read it.&lt;/p&gt; &lt;p style="margin-bottom: 0in;" lang="en-GB"&gt;&lt;b&gt;Java Store&lt;/b&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0in;" lang="en-GB"&gt;This was something totally unexpected for me: James Gosling announced store.java.com – Apple Store-like website for Java applications run by Sun.&lt;/p&gt; &lt;p style="margin-bottom: 0in;" lang="en-GB"&gt;Sun tries to copy the success of its competitor. Sun believes that all these millions of Java-enabled desktop users and billions of Java-capable mobile phone users may be interested in buying something via a central store.&lt;/p&gt; &lt;p style="margin-bottom: 0in;" lang="en-GB"&gt;I see several problems here:&lt;/p&gt; &lt;ul&gt;  &lt;li&gt;&lt;p style="margin-bottom: 0in;" lang="en-GB"&gt;Sun store is not  present world-wide, it's not even accessible from most of European  countries. They seem to struggle with legal and fiscal stuff and  till now they are ready only to operate for American customers.  That sucks and Apple did much better than that.&lt;/p&gt;  &lt;/li&gt;&lt;li&gt;&lt;p style="margin-bottom: 0in;" lang="en-GB"&gt;Most of iPhone users  download their apps directly from the phone.&lt;/p&gt;  &lt;/li&gt;&lt;li&gt;&lt;p style="margin-bottom: 0in;" lang="en-GB"&gt;Java apps do not work  directly on two most popular mobile platforms now: iPhone and  Android.&lt;/p&gt;  &lt;/li&gt;&lt;li&gt;&lt;p style="margin-bottom: 0in;" lang="en-GB"&gt;Desktop users seem to  be potentially the most promising target. I wonder if they want to  pay several bucks for a game or a small utility when the Internet is  crowded with tons of free Flash games and apps.&lt;/p&gt; &lt;/li&gt;&lt;/ul&gt; &lt;p style="margin-bottom: 0in;" lang="en-GB"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style="margin-bottom: 0in;" lang="en-GB"&gt;That's all folks. Comments? Thoughts?&lt;/p&gt; &lt;p style="margin-bottom: 0in;" lang="en-GB"&gt;Hopefully see you at Devoxx next year.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8813074174707015455-1911187410053249234?l=unimplemented.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Unimplemented/~4/TXUGy6I0xNY" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://unimplemented.blogspot.com/feeds/1911187410053249234/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://unimplemented.blogspot.com/2009/11/devoxx2009-my-impressions.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8813074174707015455/posts/default/1911187410053249234?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8813074174707015455/posts/default/1911187410053249234?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Unimplemented/~3/TXUGy6I0xNY/devoxx2009-my-impressions.html" title="Devoxx2009 - my impressions" /><author><name>Wojciech Seliga</name><uri>http://www.blogger.com/profile/11923347478200368758</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="10674321498060461002" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://unimplemented.blogspot.com/2009/11/devoxx2009-my-impressions.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0cBR3k6fCp7ImA9WxNWGUs.&quot;"><id>tag:blogger.com,1999:blog-8813074174707015455.post-4131157167728268695</id><published>2009-10-19T12:17:00.004+01:00</published><updated>2009-10-19T16:10:56.714+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-10-19T16:10:56.714+01:00</app:edited><title>Crowd at Java Developer Day (JDD) in Krakow</title><content type="html">Last Friday, I attended &lt;a href="http://09.jdd.org.pl/"&gt;JDD&lt;/a&gt; in Krakow.&lt;br /&gt;This was my first time at this conference and I my general impression is really positive. Good place, decent logistics, a lot of people (I believe that around 400 folks), good speakers. And of course a pack of beautiful Polish hostesses you will never see at conferences outside Poland.&lt;br /&gt;&lt;br /&gt;Scott Davis' presentation about Groovy was good (charisma, great slides, real coding demo), but I found it too beginner-level. Hey, we really know what unit testing is and how to do it. You could have skipped almost entirely the first 20 minutes and start from more advanced topics.&lt;br /&gt;Anyway I am somewhat sold to the idea of introducing Groovy as a testing platform (with production code remaining in Java). Especially the ability to examine private fields and generally far more compact language are tempting. Still, without good tooling (and generally Groove as weakly typed language will never have such refactoring support as Java has), I'd rather stay by Java in the production code.&lt;br /&gt;&lt;br /&gt;Mark Richards' talk about messaging was really good too. Rather nothing new to me as seasoned guy in using JMS systems, but a lot of valuable advice for beginners or people astray. Especially the anti-pattern of using multiplexed single queue instead of several queues just do to communication/collaboration problems with admins makes me think... Mark highlighted well misconceptions around priority queues and work balancing.&lt;br /&gt;&lt;br /&gt;The talks about jBPM was also interesting, but I did not like recorded movies instead of real-time demos. After all we are all developers, we know that Demo God may strike at any time.&lt;br /&gt;Definitely jBPM is something I would take a closer look at, if I was about to decide which business process management platform to use.&lt;br /&gt;&lt;br /&gt;I liked the talk about the exception handling by Tomasz Skutnik. Good speaker, a lot of real code samples (we love it), much valuable advice given from the person who seems to suffer a lot from screwed up exception handling in the production code.&lt;br /&gt;I don't agree with every single rule provided by Tomasz (especially I don't like tagging with some magic string every single place the exception may be thrown - famous ORA XYZ, I am talking to you ;)). Still, he raised a lot of valid points about very popular mistakes made to exception handling in Java EE.&lt;br /&gt;&lt;br /&gt;Waldemar Kot gave supposedly interesting talk about using concurrency in Jave EE application servers which generally do not like managed components to use any kind of extra threading. I learnt about &lt;a href="http://www.devx.com/Java/Article/28815"&gt;Work Manager API&lt;/a&gt; and current problems related to including it in Jave EE spec.&lt;br /&gt;I am sure this talk could have been better, if Waldek better managed his time. Fortunately I feel we get only to about 50% of the presentation, when we ran out of time.&lt;br /&gt;&lt;br /&gt;I said JDD was good. Still there is always space for improvement. What could be better:&lt;ul&gt;&lt;li&gt;more strict time-keeping. I had to start my session 10 minutes late, as I was waiting for my predecessor who had did not finish on time. Then I overran by 2 minutes, which means that I not only consumed the whole break, but also immediately delayed Scott Davis by several minutes. Sorry Scott! I wish there was some kind of bell or the organisers were gently interrupting talks at scheduled time.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;probably 3 or 4 parallel tracks in smaller rooms. I hope that we can find in Poland many more decent speakers&lt;/li&gt;&lt;br /&gt;&lt;li&gt;lunch could have been served by more people. Queues were enormous and actually one had to wait c.a. 20 minutes for their food.&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;At JDD I presented myself a 45-minute talk (including demo of Atlassian IntelliJ Connector, Crucible &amp; JIRA) about effective code review in agile teams. Although I used slides from our previous presentation at Agile2009 in Chicago, this time I targeted the talk (especially demo part) more for Java developers and purely technical audience.&lt;br /&gt;I tried to present my stance of how code review relates to agile spirit and common practices (including pair programming). &lt;br /&gt;I estimate than more than 200 people were present at the session. As nobody left before the end, there were a lot of questions and I get some applause, I tend to believe than the presentation was not awful.&lt;br /&gt;&lt;br /&gt;Here are slides from the presentation I gave.&lt;br /&gt;&lt;div style="width:425px;text-align:left" id="__ss_2274498"&gt;&lt;a style="font:14px Helvetica,Arial,Sans-serif;display:block;margin:12px 0 3px 0;text-decoration:underline;" href="http://www.slideshare.net/wseliga/jdd-effective-code-review-in-agile-teams" title="JDD Effective Code Review In Agile Teams"&gt;JDD Effective Code Review In Agile Teams&lt;/a&gt;&lt;object style="margin:0px" width="425" height="355"&gt;&lt;param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=jdd-effective-code-review-in-agile-teams-091019061424-phpapp01&amp;stripped_title=jdd-effective-code-review-in-agile-teams" /&gt;&lt;param name="allowFullScreen" value="true"/&gt;&lt;param name="allowScriptAccess" value="always"/&gt;&lt;embed src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=jdd-effective-code-review-in-agile-teams-091019061424-phpapp01&amp;stripped_title=jdd-effective-code-review-in-agile-teams" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div style="font-size:11px;font-family:tahoma,arial;height:26px;padding-top:2px;"&gt;View more &lt;a style="text-decoration:underline;" href="http://www.slideshare.net/"&gt;documents&lt;/a&gt; from &lt;a style="text-decoration:underline;" href="http://www.slideshare.net/wseliga"&gt;wseliga&lt;/a&gt;.&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Sorry for all these folks whose questions to this presentation remained unanswered due to lack of time. Feel free to mail me or questions here at this blog.&lt;br /&gt;&lt;br /&gt;On the side note: Last week I received on more &lt;i&gt;spam&lt;/i&gt; e-mail inviting my from TSS conference in Prague.&lt;br /&gt;Having read this sentence:&lt;br /&gt;&lt;br /&gt;&lt;i&gt;TheServerSide Java Symposium-Europe is where the community learns, shares and prepares for the future of enterprise development. Register now to &lt;b&gt;join 300&lt;/b&gt; of your peers from across Europe in Prague this October.&lt;br /&gt;&lt;/i&gt;&lt;br /&gt;I tend to believe that with its 400 attendees JDD became this year bigger Java conference that TSS. Congrats folks!&lt;br /&gt;Try next year to be really English conference (still too many talks were in Polish), aim for 2 days and, who knows, JDD may become really 1-st class pan-European conference.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8813074174707015455-4131157167728268695?l=unimplemented.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Unimplemented/~4/Fv9t0LhM9hg" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://unimplemented.blogspot.com/feeds/4131157167728268695/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://unimplemented.blogspot.com/2009/10/crowd-at-java-developer-day-jdd-in.html#comment-form" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8813074174707015455/posts/default/4131157167728268695?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8813074174707015455/posts/default/4131157167728268695?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Unimplemented/~3/Fv9t0LhM9hg/crowd-at-java-developer-day-jdd-in.html" title="Crowd at Java Developer Day (JDD) in Krakow" /><author><name>Wojciech Seliga</name><uri>http://www.blogger.com/profile/11923347478200368758</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="10674321498060461002" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">2</thr:total><feedburner:origLink>http://unimplemented.blogspot.com/2009/10/crowd-at-java-developer-day-jdd-in.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUEHRXg4eCp7ImA9WxNXFkk.&quot;"><id>tag:blogger.com,1999:blog-8813074174707015455.post-8566779367680867254</id><published>2009-10-04T10:13:00.001+01:00</published><updated>2009-10-04T10:13:54.630+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-10-04T10:13:54.630+01:00</app:edited><title>Testing BlogPress for iPhone</title><content type="html">I hoped for some formatting and esp. link pasting support - the days I preferred to write in HTML are long gone.&lt;br /&gt;  &lt;br /&gt;One more thing about that monster I twitted about - it seems to be a GrassHopper, very &lt;i&gt;mobile&lt;/i&gt; one, apparently ;-)&lt;br /&gt;Jean-Christophe, are you up to something?&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;center&gt;&lt;a href='http://blogpress.w18.net/photos/09/10/04/133.jpg'&gt;&lt;img src='http://blogpress.w18.net/photos/09/10/04/s_133.jpg' border='0' width='281' height='210' style='margin:5px'&gt;&lt;/a&gt;&lt;/center&gt;&lt;br /&gt;Bottom line for BlogPress - acceptable, easier than plain safari, but not perfect:&lt;br /&gt;- no formatting support&lt;br /&gt;- can't see saved draft in blogger.com web UI &lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8813074174707015455-8566779367680867254?l=unimplemented.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Unimplemented/~4/0Sshq5x7l1o" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://unimplemented.blogspot.com/feeds/8566779367680867254/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://unimplemented.blogspot.com/2009/10/testing-blogpress-for-iphone.html#comment-form" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8813074174707015455/posts/default/8566779367680867254?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8813074174707015455/posts/default/8566779367680867254?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Unimplemented/~3/0Sshq5x7l1o/testing-blogpress-for-iphone.html" title="Testing BlogPress for iPhone" /><author><name>Slawomir Ginter</name><uri>http://www.blogger.com/profile/11380966944243353645</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="03537443938019929164" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total><feedburner:origLink>http://unimplemented.blogspot.com/2009/10/testing-blogpress-for-iphone.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Ck4BQXs5fCp7ImA9WxNRFUQ.&quot;"><id>tag:blogger.com,1999:blog-8813074174707015455.post-8986556834260026120</id><published>2009-09-10T12:47:00.002+01:00</published><updated>2009-09-10T14:55:50.524+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-09-10T14:55:50.524+01:00</app:edited><title>Agile2009 Take Aways</title><content type="html">In addition to the usual "Made in China" conference trinkets that tend to disintegrate on the next day... ;-)&lt;br /&gt;&lt;br /&gt;Most of the people there were not developers - quite a difference from Java One or Devoxx. This impacted how the sessions looked like - more talking, less demo's; more social, less technical.&lt;br /&gt;&lt;br /&gt;Key points (tracks) of the conference for me (random order):&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.pomodorotechnique.com/"&gt;Pomodoro technique&lt;/a&gt;. I attended a session about Pomodoro, it was interesting enough for me to try at home. My milleage 'varies' so far, but I really want to make it work. There is a simple but useful timer &lt;a href="http://pomodoro.ugolandini.com"&gt;for Mac&lt;/a&gt;. &lt;br /&gt;&lt;li&gt;A lot of stress on TDD. Many people talked about how great it is, how it helps them write good code, how it helps the design to &lt;i&gt;emerge&lt;/i&gt; etc. I guess I have finally been convinced to the when.../should... style of writing unit tests.&lt;br&gt;&lt;br /&gt;My favorite quote was "TDD (test first) is the only way to ensure your code is testable".&lt;br /&gt;&lt;li&gt;Lot's of stress on &lt;i&gt;individuals and interactions over processes and tools&lt;/i&gt;, despite visible presence of tools vendors, esp. continuous integration ones.&lt;br /&gt;&lt;li&gt;I really wanted to learn about Kanban, but I rather failed to achieve that. I attended a session about Lean (and Lego bricks), it taught me a bit about Lean background in manufacturing, but not directly about using Kanban in software development.&lt;br&gt;&lt;br /&gt;There was another session that was intended to prove that Kanban is better then Scrum that I haven't attended, but from what I heard the presenter exaggerated Scrum faults too much just to prove the thesis.&lt;br&gt;&lt;br /&gt;Later I have read the &lt;a href="http://www.crisp.se/henrik.kniberg/Kanban-vs-Scrum.pdf"&gt;article&lt;/a&gt; by Henrik Kniberg, it answered most of my questions.&lt;br /&gt;&lt;li&gt;&lt;i&gt;Agile is dead&lt;/i&gt;. Not literally, but many voices say that Agile already became mainstream, so it's time to bring Agile to higher level.&lt;br&gt;&lt;br /&gt;Everybody already uses Agile for small non-mission critical systems for which Agile was originally advocated. Now it's time to bring Agile to big, mission-critical and corporate environments, or at least this is the subject the 'thinkers' should focus on.&lt;br /&gt;&lt;li&gt;&lt;i&gt;Game theory in agile contracts&lt;/i&gt; was an eye opener. The message to me was "stop being so narrow-minded and think". During this session it was applied to formulating an agile contract equally profitable to both parties. I was too married to my ideas of how the contract should look like that I either favored one party too much or provided too little incentives to get the best contract outcome.&lt;br /&gt;Of course this was just a simplified exercise, but it showed that out of the box thinking can be applied also for contracts.&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The more I think about it, the more I agree with the concept that software development is not about computers and technology, it's about people.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8813074174707015455-8986556834260026120?l=unimplemented.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Unimplemented/~4/7OsCcczJ6Vw" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://unimplemented.blogspot.com/feeds/8986556834260026120/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://unimplemented.blogspot.com/2009/09/agile2009-take-aways.html#comment-form" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8813074174707015455/posts/default/8986556834260026120?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8813074174707015455/posts/default/8986556834260026120?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Unimplemented/~3/7OsCcczJ6Vw/agile2009-take-aways.html" title="Agile2009 Take Aways" /><author><name>Slawomir Ginter</name><uri>http://www.blogger.com/profile/11380966944243353645</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="03537443938019929164" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total><feedburner:origLink>http://unimplemented.blogspot.com/2009/09/agile2009-take-aways.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C08AQn8-fyp7ImA9WxNRE08.&quot;"><id>tag:blogger.com,1999:blog-8813074174707015455.post-6535245796481894138</id><published>2009-09-07T11:54:00.002+01:00</published><updated>2009-09-07T12:10:43.157+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-09-07T12:10:43.157+01:00</app:edited><title>maven-eclipse-plugin problem</title><content type="html">Just short maven tip. Maybe someone will find it useful. &lt;br /&gt;Few days ago I faced following problem when trying to generate eclipse project using &lt;span style="font-weight:bold;"&gt;mvn eclipse:eclipse&lt;/span&gt;:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;Resource directory's path matches an existing source directory. Resources will be merged with the source directory src/main/resources ... Request to merge when ‘filtering’ is not identical.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The solution is to use version 2.6 of the maven-eclipse-plugin (version 2.7 will not work) so add the &lt;span style="font-weight:bold;"&gt;version &lt;/span&gt;tag explicitly to the pom or call maven:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;mvn org.apache.maven.plugins:maven-eclipse-plugin:2.6:eclipse&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8813074174707015455-6535245796481894138?l=unimplemented.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Unimplemented/~4/udRrqIIGthI" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://unimplemented.blogspot.com/feeds/6535245796481894138/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://unimplemented.blogspot.com/2009/09/maven-eclipse-plugin-problem.html#comment-form" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8813074174707015455/posts/default/6535245796481894138?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8813074174707015455/posts/default/6535245796481894138?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Unimplemented/~3/udRrqIIGthI/maven-eclipse-plugin-problem.html" title="maven-eclipse-plugin problem" /><author><name>Jacek Jaroczynski</name><uri>http://www.blogger.com/profile/07835481297815708483</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="00075289580471414357" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total><feedburner:origLink>http://unimplemented.blogspot.com/2009/09/maven-eclipse-plugin-problem.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkIMQH04eSp7ImA9WxNREE0.&quot;"><id>tag:blogger.com,1999:blog-8813074174707015455.post-1270637632735920161</id><published>2009-09-03T10:13:00.004+01:00</published><updated>2009-09-03T21:09:41.331+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-09-03T21:09:41.331+01:00</app:edited><title>Agile2009 Conference Debriefing</title><content type="html">OK, so last week we spent in Chicago at Agile 2009 Conference.&lt;br /&gt;Here is what I think about it.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;Main facts&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;1350 attendees, mostly from the US (I estimate them to be 70 - 80% of all participants).&lt;/li&gt;&lt;li&gt;    more than 50% of sessions presented by a pair of speakers (pair-presenting). Unfortunately it was often problematic rather than beneficial.&lt;/li&gt;&lt;li&gt;up to 22 parallel sessions&lt;/li&gt;&lt;li&gt;    most of the sessions took 90 minutes. Some took 45 minutes. Only a few 3 hours.&lt;/li&gt;&lt;li&gt;every day sessions started at 9:00 and ended at 17:30. Then less official activities lasted till midnight or so&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;Main observations&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;CI vendors crowd. I dare say CI tools vendors constituted with project management tools vendors vast majority of the exhibitors. Also, there was a lot of sessions related to Continuous Integration (comparing to our only single session about code review)&lt;/li&gt;&lt;li&gt;max 1/3 of attendees were active developers (really technical folks), the rest: project managers, product managers, coaches, psychologists, business development managers, social sciences students and consultants,&lt;/li&gt;&lt;li&gt;all really technical talks gathered relatively low attendance rate. On the contrary, social or project/product management sessions usually gathered 50+ people.&lt;/li&gt;&lt;li&gt;Kanban gathers really a lot of interest (it's already an anecdotal war going on between Kanban and Scrum). However vast majority of people seem not to understand what Kanban is and how it applies to software development projects. I attended 2 sessions about Kanban and I am still confused. Just another hype? Another buzzword? Jeff Sutherland said: "Kanban is Scrum without the sprint constraint". Is it true?&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;The good&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;a lot of interesting topics (with varying level of expertise expected) and excellent speakers&lt;/li&gt;&lt;li&gt;good venue, hotel, food, service and the staff&lt;/li&gt;&lt;li&gt;unique accumulation of sessions about social/cultural aspects of agile software development&lt;/li&gt;&lt;li&gt;a lot of networking opportunities (these folks were in general keen to meet new people)&lt;/li&gt;&lt;li&gt;our talk was rated at almost 4 out of 5 points. There were several positive comments (e.g. about the lack of marketing buzz from our side) and no negative ones. Still, I know that I still sucked as a speaker, but at least I can practice and learn&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;The bad&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;wireless worked only in a few places (but it was really fast and reliable there)&lt;/li&gt;&lt;li&gt;90 minutes was too much time for a lot of the sessions (including ours). 45 minutes was sometimes not enough. I think that sticking to 30 minutes and 60 minutes for most of the sessions (excluding tutorials/clinics) would be much better.&lt;/li&gt;&lt;li&gt;when you decided to go for 45 minute session, you had usually very few options after it, as most of other sessions were 90 minutes long and were already in their second half (especially as there were no breaks then).&lt;/li&gt;&lt;li&gt;22 parallel sessions were sometimes too much. I wish I had cloned myself into several copies. Fortunately Slawek naturally selected different sessions, so we could cover usually 2 tracks.&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-size:130%;"&gt;Interesting sessions and quotes (not necessarily verbatim)&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Alistair Cockburn: “if you ask me to give you advice about what to do to improve your agile distributed teams, my simple answer is: don't do distributed teams”.&lt;/li&gt;&lt;li&gt;Esther Derby (a session about performance appraisals): “you are afraid of training your employees because they may leave when they are trained. But if you don't train them ... they will stay!”&lt;/li&gt;&lt;li&gt;Jared M. Spool: “Crappy people have no problems with producing crappy products.", "Get rid of quality as a requirement and writing software becomes easy.”&lt;/li&gt;&lt;li&gt;Giora Morein at a session about distributed agile: “change phones into planes”. The speaker (many years of agile experience) is convinced that only by meeting face to face and establishing personal ties, distributed teams can reasonably cooperate. It calls it “Ambassador”, with several subtypes including:&lt;ul&gt;&lt;li&gt;delegate&lt;/li&gt;&lt;li&gt;traveling star&lt;/li&gt;&lt;li&gt;people exchange&lt;/li&gt;&lt;/ul&gt;Travel has to be voluntarily. I shared these hints:&lt;ul&gt;&lt;li&gt;sites must be located in interesting cities (touristic targets)&lt;/li&gt;&lt;li&gt;do not send two or more people to a remote team at the same time - they happen to create a ghetto (isolate and wander together) rather than immerse and socialize with others&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;UX design is critical (gave Apple 75% market share over 7% of the next competitor in MP3 players market). The following 3 rules determine whether you care for UX (and thus can develop really awesome software):&lt;ul&gt;&lt;li&gt;at least every 6 weeks you (team member) observe for at least 2 hours end users actually using your software (feedback loop). You don't do it, you are screwed.&lt;/li&gt;&lt;li&gt;every employee can give you a vision of the product in 5 years from now&lt;/li&gt;&lt;li&gt;rewarding for failures (no failures -&gt; nothing innovative, risk aversion companies fail)&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;Keynotes&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;There were two keynotes: delivered by Alistair Cockburn about next phase of agile adoption (as agile philosophy was melted down in the ecosystem and now agile is facing new challenges: how to apply to big projects in sophisticated organizations - something which agile methods originally did not (want to) address). Alistair is a great charismatic speaker but I did not find anything new, specially interesting or revolutionary in his talk, although, maybe surprisingly, I liked it.&lt;br /&gt;Another keynote was presented by Jared M. Spool and treated about User Interface Engineering. This was a great, funny and energetic talk. Jared was shining. He emphasized how important user experience is and that it can be a key differentiator in company portfolio (e.g. Apple case). Key learnings were listed above.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;Conclusion&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;This is really a good conference and I think it's worth to be there also next year (Nashville, August 2010).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8813074174707015455-1270637632735920161?l=unimplemented.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Unimplemented/~4/WxGLYNwsYQA" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://unimplemented.blogspot.com/feeds/1270637632735920161/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://unimplemented.blogspot.com/2009/09/agile2009-conference-debriefing.html#comment-form" title="3 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8813074174707015455/posts/default/1270637632735920161?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8813074174707015455/posts/default/1270637632735920161?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Unimplemented/~3/WxGLYNwsYQA/agile2009-conference-debriefing.html" title="Agile2009 Conference Debriefing" /><author><name>Wojciech Seliga</name><uri>http://www.blogger.com/profile/11923347478200368758</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="10674321498060461002" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">3</thr:total><feedburner:origLink>http://unimplemented.blogspot.com/2009/09/agile2009-conference-debriefing.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0IAQX4zfyp7ImA9WxNVEU4.&quot;"><id>tag:blogger.com,1999:blog-8813074174707015455.post-1418021941887201182</id><published>2009-08-24T03:28:00.004+01:00</published><updated>2009-10-21T14:25:40.087+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-10-21T14:25:40.087+01:00</app:edited><title>Can code review be agile? WTF?</title><content type="html">If you want to learn what role code review may play in agile teams, visit our talk at Agile2009 tomorrow (Monday 24th of August) in Chicago - 16:00 - 17:30 in Grand Ballroom E.&lt;br /&gt;We are having a hopefully interesting and entertaining session about effective and possibly painless code review. We are also demoing out Crucible and Atlassian IDE Connector which makes it quite realistic.&lt;br /&gt;&lt;br /&gt;I promise no bullshit and not buzzwords. I know that everyone nowadays abuses  “agile” term (have you heard about “agile UML”, agile maturity model, etc. ...). We are not doing this. Many teams we know (including ours) are really quite agile (sure, they could always be more agile) and still code review plays a vital role in their daily work.&lt;br /&gt;&lt;br /&gt;So see you tomorrow.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8813074174707015455-1418021941887201182?l=unimplemented.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Unimplemented/~4/cEHK8C-SvxQ" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://unimplemented.blogspot.com/feeds/1418021941887201182/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://unimplemented.blogspot.com/2009/08/can-code-review-be-agile-wtf.html#comment-form" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8813074174707015455/posts/default/1418021941887201182?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8813074174707015455/posts/default/1418021941887201182?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Unimplemented/~3/cEHK8C-SvxQ/can-code-review-be-agile-wtf.html" title="Can code review be agile? WTF?" /><author><name>Wojciech Seliga</name><uri>http://www.blogger.com/profile/11923347478200368758</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="10674321498060461002" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total><feedburner:origLink>http://unimplemented.blogspot.com/2009/08/can-code-review-be-agile-wtf.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEYFSHw-fyp7ImA9WxJVE00.&quot;"><id>tag:blogger.com,1999:blog-8813074174707015455.post-3638964664840915684</id><published>2009-06-29T20:44:00.002+01:00</published><updated>2009-06-29T21:08:39.257+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-06-29T21:08:39.257+01:00</app:edited><title>Keep your documentation website backwards compatible</title><content type="html">Most engineers know that you should at least try to keep your software and hardware backward compatible.&lt;br /&gt;If it is not excessively expensive, the new version of your program should read data files created with previous versions, your newest 10Gbit switch should talk to the 100Mbit legacy one etc.&lt;br /&gt;&lt;br /&gt;People seem to forget that this should also apply to your website with product documentation.&lt;br /&gt;&lt;br /&gt;I have a nice Cerberus Pentagram P6381-0 wireless router that usually works perfectly. Today, however, I had a power glitch that left the router in unusable state.&lt;br /&gt;I managed to get to the vendor's site with documentation, but the closest model I could get the PDF for was P6381-2 (can you spot the difference? ;-))&lt;br /&gt;I managed to reset the router to factory settings using that doco - but surprise, surprise: the default password does not work.&lt;br /&gt;&lt;br /&gt;Almost an hour later I googled for the exact model number and I found the right manual &lt;b&gt;on the very same site&lt;/b&gt; - it just was not linked in the &lt;i&gt;support links&lt;/i&gt; section. If it was, it would have spared me 2 hours of looking for the problem.&lt;br /&gt;&lt;br /&gt;And yes, the default passwords are different for P6381-0 and P6381-2 models.&lt;br /&gt;&lt;br /&gt;Lesson learned: keep the documentation for older releases easily findable for as long as you have people using it.&lt;br /&gt;This applies esp to products that are not likely to be upgraded as soon as you release the new version: either because it is a piece of hardware or when upgrade costs money or significant effort.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8813074174707015455-3638964664840915684?l=unimplemented.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Unimplemented/~4/oPESRWPLNXo" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://unimplemented.blogspot.com/feeds/3638964664840915684/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://unimplemented.blogspot.com/2009/06/keep-your-documentation-website.html#comment-form" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8813074174707015455/posts/default/3638964664840915684?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8813074174707015455/posts/default/3638964664840915684?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Unimplemented/~3/oPESRWPLNXo/keep-your-documentation-website.html" title="Keep your documentation website backwards compatible" /><author><name>Slawomir Ginter</name><uri>http://www.blogger.com/profile/11380966944243353645</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="03537443938019929164" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total><feedburner:origLink>http://unimplemented.blogspot.com/2009/06/keep-your-documentation-website.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkYAR3c7cCp7ImA9WxJXEUk.&quot;"><id>tag:blogger.com,1999:blog-8813074174707015455.post-4593352553597531440</id><published>2009-06-04T20:50:00.003+01:00</published><updated>2009-06-04T21:42:26.908+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-06-04T21:42:26.908+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="idea plugin java" /><title>Unit testing your Intellij Idea plugin in a CI build</title><content type="html">It's relatively easy to write a unit test for your Intellij Idea plugins that would work from under Idea.&lt;br /&gt;Just extend an &lt;i&gt;IdeaTestCase&lt;/i&gt; or &lt;i&gt;LightIdeaTestCase&lt;/i&gt;, add some &lt;a href="http://mockito.googlecode.com/"&gt;Mockito&lt;/a&gt; and enjoy :-)&lt;br /&gt;&lt;br /&gt;The challenge is to set this up for an Ant build run on a continuous integration server like &lt;a href="http://www.atlassian.com/software/bamboo/"&gt;Bamboo&lt;/a&gt; - you just don't get the Idea set up on every potential elastic build agent that may turn out to run your build ;-)&lt;br /&gt;I wanted my build to be self-contained - no external dependencies on stuff that may or may not be there, everything gets nicely checked out from the svn.&lt;br /&gt;&lt;br /&gt;I came up with the following configuration:&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Set up new Idea home&lt;/h3&gt;&lt;br /&gt;&lt;br /&gt;My &lt;tt&gt;lib&lt;/tt&gt; contains an &lt;tt&gt;idea_&lt;i&gt;version&lt;/i&gt;&lt;/tt&gt; folder reflecting the structure of the actual Idea installation:&lt;ul&gt;&lt;br /&gt;&lt;li&gt;&lt;tt&gt;lib&lt;/tt&gt; folder containing all the jars from Idea's lib dir - definitely all are not required, but it seemed to be too much work to actually find out which ones are,&lt;br /&gt;&lt;li&gt;&lt;tt&gt;bin&lt;/tt&gt; folder that is necessary for the test framework to start - namely it should contain:&lt;ul&gt;&lt;br /&gt;&lt;li&gt;&lt;tt&gt;idea.properties&lt;/tt&gt; - just copied as is, this is the marker that Idea uses to determine the folder is it's home,&lt;br /&gt;&lt;li&gt;&lt;tt&gt;log4j.dtd&lt;/tt&gt; - also copied as is,&lt;br /&gt;&lt;li&gt;&lt;tt&gt;log.xml&lt;/tt&gt; - modified so that the 'headless' Idea can find the &lt;tt&gt;log4j.dtd&lt;/tt&gt; file: &lt;blockquote&gt;&amp;lt;!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"&amp;gt;&lt;/blockquote&gt;&lt;br /&gt;You may use an unmodified one, but then you need to make sure that the &lt;tt&gt;log4j.dtd&lt;/tt&gt; file is in the current working directory of the test runner.&lt;br /&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Set up test runner&lt;/h3&gt;&lt;br /&gt;&lt;br /&gt;I use this test target:&lt;br /&gt;&lt;pre name="code" class="xml"&gt;&amp;lt;property name="idea.home" location="${basedir}/lib/idea_9833"/&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;target name="idea7.test" depends="idea7.test.build, idea7.testproject"&amp;gt;&lt;br /&gt;        &amp;lt;mkdir dir="${output}/test/xml-report"/&amp;gt;&lt;br /&gt;        &amp;lt;mkdir dir="${output}/test/system/log"/&amp;gt;&lt;br /&gt;        &amp;lt;junit dir="${output}/test" fork="true" forkmode="once" printsummary="on"&amp;gt;&lt;br /&gt;        &amp;lt;jvmarg line="${jvm.args}"/&amp;gt;&lt;br /&gt;                &amp;lt;jvmarg value="-Xbootclasspath/a:${idea.home}/lib/boot.jar"/&amp;gt;&lt;br /&gt;                &amp;lt;jvmarg value="-Xmx256M"/&amp;gt;&lt;br /&gt;                &amp;lt;jvmarg value="-ea"/&amp;gt;&lt;br /&gt;                &amp;lt;jvmarg value="-Xdebug"/&amp;gt;&lt;br /&gt;                &amp;lt;!--&amp;lt;jvmarg value="-Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5006"/&amp;gt;--&amp;gt;&lt;br /&gt;                &amp;lt;sysproperty key="java.awt.headless" value="true"/&amp;gt;&lt;br /&gt;                &amp;lt;sysproperty key="java.compiler" value="NONE"/&amp;gt;&lt;br /&gt;                &amp;lt;sysproperty key="idea.config.path" value="${output}/test/config"/&amp;gt;&lt;br /&gt;                &amp;lt;sysproperty key="idea.system.path" value="${output}/test/system"/&amp;gt;&lt;br /&gt;                &amp;lt;sysproperty key="idea.load.plugins" value="false"/&amp;gt;&lt;br /&gt;                &amp;lt;classpath&amp;gt;&lt;br /&gt;                        &amp;lt;path path="${java.class.path}"/&amp;gt;&lt;br /&gt;                        &amp;lt;path refid="testpath"/&amp;gt;&lt;br /&gt;   &amp;lt;fileset dir="${idea.home}/lib" includes="*.jar"/&amp;gt;&lt;br /&gt;                        &amp;lt;pathelement path="${output}/test/classes"/&amp;gt;&lt;br /&gt;                        &amp;lt;pathelement path="${idea.home}/bin"/&amp;gt;&lt;br /&gt;                &amp;lt;/classpath&amp;gt;&lt;br /&gt;                &amp;lt;batchtest todir="${output}/test/xml-report"&amp;gt;&lt;br /&gt;                        &amp;lt;fileset dir="${basedir}/test" includes="${test.includes}"&lt;br /&gt;                                 excludes="${test.excludes}"/&amp;gt;&lt;br /&gt;                        &amp;lt;formatter type="xml"/&amp;gt;&lt;br /&gt;                        &amp;lt;formatter type="plain"/&amp;gt;&lt;br /&gt;                &amp;lt;/batchtest&amp;gt;&lt;br /&gt;        &amp;lt;/junit&amp;gt;&lt;br /&gt;&amp;lt;/target&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Some highlights:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Make sure both Idea &lt;tt&gt;lib&lt;/tt&gt; and &lt;tt&gt;bin&lt;/tt&gt; are on the classpath.&lt;br /&gt;&lt;li&gt;Make sure you have Java on the classpath - for some reason I had not.&lt;br /&gt;&lt;li&gt;Notice the -Xbootclasspath jvmarg - &amp;lt;bootclasspath&amp;gt; hasn't worked for me.&lt;br /&gt;&lt;li&gt;Remote debugger may be handy sometimes.&lt;br /&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8813074174707015455-4593352553597531440?l=unimplemented.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Unimplemented/~4/7JRwVagSkaI" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://unimplemented.blogspot.com/feeds/4593352553597531440/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://unimplemented.blogspot.com/2009/06/unit-testing-your-intellij-idea-plugin.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8813074174707015455/posts/default/4593352553597531440?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8813074174707015455/posts/default/4593352553597531440?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Unimplemented/~3/7JRwVagSkaI/unit-testing-your-intellij-idea-plugin.html" title="Unit testing your Intellij Idea plugin in a CI build" /><author><name>Slawomir Ginter</name><uri>http://www.blogger.com/profile/11380966944243353645</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="03537443938019929164" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://unimplemented.blogspot.com/2009/06/unit-testing-your-intellij-idea-plugin.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0QBQXg5eSp7ImA9WxJTFEU.&quot;"><id>tag:blogger.com,1999:blog-8813074174707015455.post-5680403151528345397</id><published>2009-04-23T10:47:00.002+01:00</published><updated>2009-04-23T11:09:10.621+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-04-23T11:09:10.621+01:00</app:edited><title>Beware of your IDE code generation!</title><content type="html">I just came up against one of the most frustrating bugs this week.&lt;br /&gt;One of the config panels in my Swing application just stopped showing it's contents on my Linux development machine. It displayed the border, but no contents.&lt;br /&gt;As usual, "I have changed nothing" (TM), and the code works perfectly on other machines.&lt;br /&gt;&lt;br /&gt;The only change I did recently was upgrading the JVM from 1.6.11 to (64bit) 1.6.13 (to solve a SIGSEGV during JUnit tests run from Eclipse).&lt;br /&gt;&lt;br /&gt;Thanks to ad-hoc pair programming session we discovered the cause quite quickly: for no logical reason the panel overrides the isValid() method to return true.&lt;br /&gt;This (apparently) causes the panel not to display it's content on this particular version of Java.&lt;br /&gt;&lt;br /&gt;The only reason I can think of why this code was here is accidentally pressing Ctrl-O or what was the shortcut for "override a method" ;-)&lt;br /&gt;&lt;br /&gt;Lessons learned:&lt;br /&gt;- get rid of suspicious code when you spot one (or make it clear why it is there)&lt;br /&gt;- get someone to have a look at a problem with you - I would probably spend hours if I tried to solve it myself&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8813074174707015455-5680403151528345397?l=unimplemented.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Unimplemented/~4/VyJ3cXopA_U" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://unimplemented.blogspot.com/feeds/5680403151528345397/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://unimplemented.blogspot.com/2009/04/beware-of-your-ide-code-generation.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8813074174707015455/posts/default/5680403151528345397?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8813074174707015455/posts/default/5680403151528345397?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Unimplemented/~3/VyJ3cXopA_U/beware-of-your-ide-code-generation.html" title="Beware of your IDE code generation!" /><author><name>Slawomir Ginter</name><uri>http://www.blogger.com/profile/11380966944243353645</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="03537443938019929164" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://unimplemented.blogspot.com/2009/04/beware-of-your-ide-code-generation.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C08CQH05cSp7ImA9WxJTEkg.&quot;"><id>tag:blogger.com,1999:blog-8813074174707015455.post-6371950040720291957</id><published>2009-04-20T19:02:00.003+01:00</published><updated>2009-04-20T19:24:21.329+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-04-20T19:24:21.329+01:00</app:edited><title>Atlassian Stimulus Package - JIRA for 5 for $5</title><content type="html">In (unlikely) case you haven't already heard - Atlassian is selling 5-person licenses for &lt;a href="http://www.atlassian.com/software/jira/"&gt;JIRA&lt;/a&gt; and &lt;a href="http://www.atlassian.com/software/confluence/"&gt;Confluence&lt;/a&gt; for $5 (Five American Dollars!)&lt;br /&gt;&lt;br /&gt;Despite &lt;a href="http://blogs.atlassian.com/rebelutionary/archives/2009/04/atlassian_stimulus_package_announced.html"&gt;announcements&lt;/a&gt;' catchphrase, it is a fully functional yearly license, not a 5-day one.&lt;br /&gt;You get full support, you will be able to prolong for following years also for $5 (no $5000 surprises once you get addicted to the software). The only limitation is the 5 users limit.&lt;br /&gt;&lt;br /&gt;Seems that the US President does not have a monopoly on Stimulus Packages any more ;-)&lt;br /&gt;&lt;br /&gt;You can find out more on &lt;a href="http://www.atlassian.com/starter/"&gt;http://www.atlassian.com/starter/&lt;/a&gt;&lt;br /&gt;Be quick - it's a time-limited offer.&lt;br /&gt;&lt;br /&gt;Shameless self-promotion: if you need help customizing your new JIRA, you may come to &lt;a href="http://spartez.com/eng/atlassian.html"&gt;us&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8813074174707015455-6371950040720291957?l=unimplemented.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Unimplemented/~4/XhOQyCueHBY" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://unimplemented.blogspot.com/feeds/6371950040720291957/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://unimplemented.blogspot.com/2009/04/atlassian-stimulus-package-jira-for-5.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8813074174707015455/posts/default/6371950040720291957?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8813074174707015455/posts/default/6371950040720291957?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Unimplemented/~3/XhOQyCueHBY/atlassian-stimulus-package-jira-for-5.html" title="Atlassian Stimulus Package - JIRA for 5 for $5" /><author><name>Slawomir Ginter</name><uri>http://www.blogger.com/profile/11380966944243353645</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="03537443938019929164" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://unimplemented.blogspot.com/2009/04/atlassian-stimulus-package-jira-for-5.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUUAR3kzeSp7ImA9WxVaGE8.&quot;"><id>tag:blogger.com,1999:blog-8813074174707015455.post-7389599833885774620</id><published>2009-04-15T19:21:00.003+01:00</published><updated>2009-04-15T20:20:46.781+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-04-15T20:20:46.781+01:00</app:edited><title>When MacBookPro is not enough</title><content type="html">While the dual core MacBookPro is fast enough for web browsing etc, a nice QuadCore workstation with 8 gigs of RAM and a 3.5" HDD is much better for Java development.&lt;br /&gt;It happened that we had a spare one I could use, but I didn't want it under my desk, so I don't &lt;span style="font-weight:bold;"&gt;hear&lt;/span&gt; it's power.&lt;br /&gt;&lt;br /&gt;I decided to go for a VNC setup, looking for configuration that would provide as smooth experience as possible.&lt;br /&gt;I came up with a set of requirements:&lt;br /&gt;- I want the Linux desktop to sit on my secondary monitor without any extra bars, frames etc (fullscreen mode)&lt;br /&gt;- I wanted my mouse cursor to be snappy enough so I don't feel it is remote - first of all no 'shadow' cursors chasing each other,&lt;br /&gt;- keyboard should behave as if it was directly connected (or as close to that as possible)&lt;br /&gt;- clipboard sharing would be a definite win &lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Picking the viewer&lt;/h3&gt;&lt;br /&gt;The first three were easy to meet - just download the (free) &lt;a href="http://www.realvnc.com/products/download.html"&gt;RealVNC&lt;/a&gt; viewer. (hint: download the &lt;span style="font-style:italic;"&gt;Enterprise Edition&lt;/span&gt; for MacOS and install the free viewer only - it's the server you would need to pay for).&lt;br /&gt;I really like RealVNC's fullscreen mode, low-intrusive keyboard handling and especially mouse pointer handling (in contrast to &lt;a href="http://www.jinx.de/JollysFastVNC.html"&gt;JollyFastVNC&lt;/a&gt; I tried before which is my second choice. The built-in MacOSX client is out of question - no fullscreen mode, shadow mouse cursor).&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Clipboard sharing&lt;/h3&gt;&lt;br /&gt;Getting the clipboard sharing has cost me a few hairs off my beard, though.&lt;br /&gt;&lt;br /&gt;You need to run the version 4 of VNC server (&lt;a href="http://packages.ubuntu.com/intrepid/vnc4server"&gt;vnc4server&lt;/a&gt; on Ubuntu) with the  vnc4config utility running.&lt;br /&gt;Unfortunately, I run a x86_64 system that has this little &lt;a href="https://bugs.launchpad.net/ubuntu/+source/vnc4/+bug/119982"&gt;problem&lt;/a&gt;.&lt;br /&gt;I solved it by recompiling the package from sources, thanks to the &lt;a href="https://bugs.launchpad.net/ubuntu/+source/vnc4/+bug/119982/comments/21"&gt;hint&lt;/a&gt; by &lt;span style="font-style:italic;"&gt;tomer t&lt;/span&gt; at the end of the bug report thread.&lt;br /&gt;&lt;br /&gt;For the lazy - here is the deb package for you: &lt;a href="http://dl.getdropbox.com/u/947638/vnc4server_4.1.1%2Bxorg1.0.2-0ubuntu7_amd64.deb"&gt;vnc4server_4.1.1+xorg1.0.2-0ubuntu7_amd64.deb&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Above VNC setup + some samba home folder sharing provide a really nice development environment I would never change for a noisy machine heating my desk, with separate clipboard, keyboard, mouse and monitor (although you may look for some &lt;a href="http://synergy2.sourceforge.net/"&gt;synergy&lt;/a&gt; to solve the last deficiency ;-) )&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8813074174707015455-7389599833885774620?l=unimplemented.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Unimplemented/~4/h-Rn8PXL_M8" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://unimplemented.blogspot.com/feeds/7389599833885774620/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://unimplemented.blogspot.com/2009/04/when-macbookpro-is-not-enough.html#comment-form" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8813074174707015455/posts/default/7389599833885774620?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8813074174707015455/posts/default/7389599833885774620?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Unimplemented/~3/h-Rn8PXL_M8/when-macbookpro-is-not-enough.html" title="When MacBookPro is not enough" /><author><name>Slawomir Ginter</name><uri>http://www.blogger.com/profile/11380966944243353645</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="03537443938019929164" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total><feedburner:origLink>http://unimplemented.blogspot.com/2009/04/when-macbookpro-is-not-enough.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Ck8ERXg4eyp7ImA9WxVbEUk.&quot;"><id>tag:blogger.com,1999:blog-8813074174707015455.post-5562610376540521315</id><published>2009-03-27T08:36:00.005+01:00</published><updated>2009-03-27T09:00:04.633+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-03-27T09:00:04.633+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="open source" /><category scheme="http://www.blogger.com/atom/ns#" term="java" /><category scheme="http://www.blogger.com/atom/ns#" term="eclipse" /><title>My first EclipseCon - a story from the cloud</title><content type="html">&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_9itee73ZiXE/ScyDlDg9QdI/AAAAAAAAAMY/EyBf0I-aA8Y/s1600-h/EclipseCon.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 400px; height: 266px;" src="http://4.bp.blogspot.com/_9itee73ZiXE/ScyDlDg9QdI/AAAAAAAAAMY/EyBf0I-aA8Y/s400/EclipseCon.JPG" alt="" id="BLOGGER_PHOTO_ID_5317769932639650258" border="0" /&gt;&lt;/a&gt;This was my first EclipseCon. As a few months ago I started working on &lt;a href="http://confluence.atlassian.com/display/IDEPLUGIN/Atlassian+Eclipse+Connector"&gt;Atlassian Eclipse Connector&lt;/a&gt;, it was time to get to know Eclipse community and also promote a little bit the whole project, which last Monday reached it the first public beta release.&lt;br /&gt;&lt;br /&gt;We had a poster session about the project and I must admit I was very positively surprised how many people came to ask or talk to us about this project. Also the whole concept of poster reception is a great thing. While serving yourself delicious food, you could in a very informal style chat with various people on topics which interested you. Folks were also coming  to say just to us “hello”, as they really like us and the way Atlassian does its business. I was really proud of it.&lt;br /&gt;&lt;br /&gt;Interesting thing is that almost nobody currently does code reviews in their companies (although almost everyone would love to or plans it). Even more astonishing is the fact that still a lot of people does not use continuous integration or even have no idea what (and what for) continuous integration is. Finally interesting thing is that only less than 5% of people (one hand raised as far as I noticed correctly) admitted that they had some automated UI tests for the tools/systems they write on or for Eclipse platform. And again, most of people plan to use such tool in the near future (this is maybe why significant part of exhibitors offered UI testing tools).&lt;br /&gt;&lt;br /&gt;From technical point of view I have the following short conclusion about current trends:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;web-based IDE: +1,&lt;/li&gt;&lt;li&gt;cloud computing: +1,&lt;/li&gt;&lt;li&gt;SOA: -1&lt;/li&gt;&lt;/ul&gt;More precisely:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Eclipse IDE is heading towards web browser. Yes. With e4 project and a lot of activities around stuff like RAP we may expect that in a year or two we will have most of functionality available currently on the desktop client will be available also in the web browser.&lt;/li&gt;&lt;li&gt;SOA time as a buzzword is gone. &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_9itee73ZiXE/ScyE12jK4eI/AAAAAAAAAMg/QpVJvcLaWPc/s1600-h/soa.JPG"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 400px; height: 313px;" src="http://4.bp.blogspot.com/_9itee73ZiXE/ScyE12jK4eI/AAAAAAAAAMg/QpVJvcLaWPc/s400/soa.JPG" alt="" id="BLOGGER_PHOTO_ID_5317771320728674786" border="0" /&gt;&lt;/a&gt;SOA talks were the ones which were rated the worst and had poor attendance. SOA books were the one which stayed on the bookshelf at the bookstore unbought. SOA seems to be this topic which finally bothers people rather than brings money. It seems that it's the time when SOA was finally called for action: it has to stop claiming how valuable and great it is (feeding endless SOA gurus and consultants) and rather start proving it in reality.&lt;/li&gt;&lt;li&gt;&lt;fota ek=""&gt;Cloud computing is a new trend. &lt;a href="http://aws.amazon.com/ec2/"&gt;Amazon Elastic Cloud&lt;/a&gt; (EC2) was one of the hottest topic (including very interesting keynote). Unfortunately for many people it does seem to be yet another buzzword. I've seen examples of the systems which used cloud computing probably only for cloud computing sake. How cloud computing will change the landscape it is still hard to tell. However it seems that the recent release of Bamboo with it EC2 support may contribute to verification of the future of this stuff.&lt;/fota&gt;&lt;/li&gt;&lt;/ol&gt;&lt;fota ek=""&gt;EclipseCon was yet another conference where some people used word “agile” to make topics of their presentations looking more sexy and attractive. IMO they always failed. Their talks had usually nothing to do with “agile”. Still “agile” seems for some a new key for success. Yes I agree, contrary to some 3-letter buzzword it means concrete valuable thing, but it won't help you if you just put it on your slides or session subject without really understanding and applying it in your organization.&lt;br /&gt;&lt;br /&gt;Sessions which I would probably remember the most:&lt;br /&gt;&lt;/fota&gt;&lt;ol&gt;&lt;li&gt;&lt;fota ek=""&gt;&lt;a href="http://www.eclipsecon.org/2009/sessions?id=751"&gt;The Social Mind keynote&lt;/a&gt;. Really interesting presentation and discussion about social soft aspect of writing scalable software. Refreshing, non-obvious and encouraging.  Well done guys.&lt;/fota&gt;&lt;/li&gt;&lt;li&gt;&lt;fota ek=""&gt;&lt;a href="http://www.eclipsecon.org/2009/sessions?id=753"&gt;Jetty@Eclipse&lt;/a&gt;. Great, technical presentation of Jetty in the context of its recent move to Eclipse foundation. Many interesting observations and examples of web server scalability, threading issues and asynchronous ways to cope with normally thread-blocking operations. Besides, the talk was really convincing (including awesome examples with Maven Jetty plugin) in its claim that Jetty is the best servlet engine currently available. Good job Greg Wilkins, Australia FTW!&lt;/fota&gt;&lt;/li&gt;&lt;/ol&gt;&lt;fota ek=""&gt;I would summarize EclipseCon 2009 as a very good conference, but for one thing: the attendance. It was clearly visible that the organizers had expected much more people. A lot people did not show up, some talks were canceled or rescheduled. Some rooms were left unused, some were almost empty. It was quite depressing. Some EclipseCon veterans admitted that comparing to the previous year the number of attendees dropped maybe even by about 50%. I hope that this is only due to The Crisis and everything will be good again soon (next time).&lt;br /&gt;&lt;/fota&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8813074174707015455-5562610376540521315?l=unimplemented.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Unimplemented/~4/H4TUqE6HRoY" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://unimplemented.blogspot.com/feeds/5562610376540521315/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://unimplemented.blogspot.com/2009/03/my-first-eclipsecon-story-from-cloud.html#comment-form" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8813074174707015455/posts/default/5562610376540521315?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8813074174707015455/posts/default/5562610376540521315?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Unimplemented/~3/H4TUqE6HRoY/my-first-eclipsecon-story-from-cloud.html" title="My first EclipseCon - a story from the cloud" /><author><name>Wojciech Seliga</name><uri>http://www.blogger.com/profile/11923347478200368758</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="10674321498060461002" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/_9itee73ZiXE/ScyDlDg9QdI/AAAAAAAAAMY/EyBf0I-aA8Y/s72-c/EclipseCon.JPG" height="72" width="72" /><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">2</thr:total><feedburner:origLink>http://unimplemented.blogspot.com/2009/03/my-first-eclipsecon-story-from-cloud.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0AHSHYyeSp7ImA9WxVXEkg.&quot;"><id>tag:blogger.com,1999:blog-8813074174707015455.post-6061176110953984935</id><published>2009-02-10T10:44:00.002+01:00</published><updated>2009-02-10T10:55:39.891+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-02-10T10:55:39.891+01:00</app:edited><title>I was sure it just works...</title><content type="html">Today I learned that you cannot plug a mini-jack microphone to a MacBook and expect it to work. MacBooks don't amplify their line-in input to process the signal, they require a special gizmo you have to pay extra for.&lt;br /&gt;&lt;br /&gt;To learn that I had to scratch Mac's case (and notice high mic signal level), then tap my headphones' mic (and notice no mic signal), then consciously process the information.&lt;br /&gt;&lt;br /&gt;This observation makes my everyday habit of connecting headphones' mic to the MacBook and adjusting the mic so other people hear me better just look stupid.&lt;br /&gt;The only upside is that I can still see other guys doing the same ;-)&lt;br /&gt;&lt;br /&gt;I wonder how many things there are that I take for granted that actually are false.&lt;br /&gt;The only problem is that to learn that I would need to challenge the obvious - not an easy task.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8813074174707015455-6061176110953984935?l=unimplemented.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Unimplemented/~4/MrvSQAbMuqw" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://unimplemented.blogspot.com/feeds/6061176110953984935/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://unimplemented.blogspot.com/2009/02/i-was-sure-it-just-works.html#comment-form" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8813074174707015455/posts/default/6061176110953984935?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8813074174707015455/posts/default/6061176110953984935?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Unimplemented/~3/MrvSQAbMuqw/i-was-sure-it-just-works.html" title="I was sure it just works..." /><author><name>Slawomir Ginter</name><uri>http://www.blogger.com/profile/11380966944243353645</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="03537443938019929164" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">2</thr:total><feedburner:origLink>http://unimplemented.blogspot.com/2009/02/i-was-sure-it-just-works.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUICQ3w4fCp7ImA9WxVaGUg.&quot;"><id>tag:blogger.com,1999:blog-8813074174707015455.post-9125602657360567993</id><published>2009-02-05T12:36:00.004+01:00</published><updated>2009-04-17T08:32:42.234+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-04-17T08:32:42.234+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="java" /><category scheme="http://www.blogger.com/atom/ns#" term="idea" /><title>Antialiased fonts in Idea on Linux</title><content type="html">I was switching my dev environment from MacBookPro to a proper Ubuntu server - performance improvement is enormous (see &lt;a href="http://unimplemented.blogspot.com/2009/04/when-macbookpro-is-not-enough.html"&gt;next post&lt;/a&gt; for more).&lt;br /&gt;&lt;br /&gt;There was one small problem that just drove me crazy: Idea has not used font antialiasing. Not only has it looked ugly, but more importantly less legible.&lt;br /&gt;&lt;br /&gt;I thought it is some system-specific or VNC-related problem. Googling did not help me much.&lt;br /&gt;&lt;br /&gt;A quick look at &lt;code&gt;bin/idea.properties&lt;/code&gt; file revealed this gem:&lt;br /&gt;&lt;pre name="code" class="shell"&gt;# Use default antialiasing in system, i.e. override value of "Settings|Editor|Appearance|Use antialiased font"&lt;br /&gt;# option. May be useful when using Windows Remote Desktop Connection for instance.&lt;br /&gt;#----------------------------------------------------------------------&lt;br /&gt;idea.use.default.antialiasing.in.editor=false&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;edit&amp;gt;&lt;br /&gt;Actually, my post has apparently caused more confusion then good - changing the setting above to &lt;span style="font-style:italic;"&gt;true&lt;/span&gt; is not the way to fix the font unless your java antialiases fonts by default.&lt;br /&gt;To make things straight:&lt;br /&gt;&lt;blockquote&gt;Don't change the &lt;span style="font-style:italic;"&gt;bin/idea.properties&lt;/span&gt;.&lt;br /&gt;Tick the "Settings|Editor|Appearance|Use antialiased font" option instead.&lt;/blockquote&gt;&amp;lt;/edit&amp;gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8813074174707015455-9125602657360567993?l=unimplemented.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Unimplemented/~4/pzQqAKNbh2o" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://unimplemented.blogspot.com/feeds/9125602657360567993/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://unimplemented.blogspot.com/2009/02/antialiased-fonts-in-idea-on-linux.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8813074174707015455/posts/default/9125602657360567993?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8813074174707015455/posts/default/9125602657360567993?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Unimplemented/~3/pzQqAKNbh2o/antialiased-fonts-in-idea-on-linux.html" title="Antialiased fonts in Idea on Linux" /><author><name>Slawomir Ginter</name><uri>http://www.blogger.com/profile/11380966944243353645</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="03537443938019929164" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://unimplemented.blogspot.com/2009/02/antialiased-fonts-in-idea-on-linux.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUMHQ3Y6fSp7ImA9WxVQEUs.&quot;"><id>tag:blogger.com,1999:blog-8813074174707015455.post-2977516246834428411</id><published>2009-01-28T19:05:00.002+01:00</published><updated>2009-01-28T19:30:32.815+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-01-28T19:30:32.815+01:00</app:edited><title>Centralized Service-Oriented Architectures without ESB</title><content type="html">Recently we have published a &lt;a href="http://spartez.com/docs/centralized_soa_without_esb.pdf"&gt;whitepaper&lt;/a&gt; which shows how to create service-oriented architecture in a Google-like way i.e. services around huge data repository. Of course, the idea how to create such a repository has been also presented. The inspiration for this concept comes from observations on how people use data warehouses, Wiki and telecommunication systems. I hope you will find there something interesting for you. Enjoy!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8813074174707015455-2977516246834428411?l=unimplemented.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Unimplemented/~4/uPSfWXoYwPQ" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://unimplemented.blogspot.com/feeds/2977516246834428411/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://unimplemented.blogspot.com/2009/01/centralized-service-oriented.html#comment-form" title="3 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8813074174707015455/posts/default/2977516246834428411?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8813074174707015455/posts/default/2977516246834428411?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Unimplemented/~3/uPSfWXoYwPQ/centralized-service-oriented.html" title="Centralized Service-Oriented Architectures without ESB" /><author><name>Lukasz Guminski</name><uri>http://www.blogger.com/profile/04127722466388107456</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="00974977480718116738" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">3</thr:total><feedburner:origLink>http://unimplemented.blogspot.com/2009/01/centralized-service-oriented.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0IFR30-fip7ImA9WxVSFk0.&quot;"><id>tag:blogger.com,1999:blog-8813074174707015455.post-6805933548460494252</id><published>2009-01-10T16:54:00.005+01:00</published><updated>2009-01-10T17:38:36.356+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-01-10T17:38:36.356+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="agile" /><title>Sprint Retrospective - Scrum Practice #1</title><content type="html">Every ScrumMaster has a favorite practice that is supposed to be the most important one (all practices are of course equal in importance, but &lt;i&gt;insert the favorite here&lt;/i&gt; is more equal).&lt;br /&gt;&lt;br /&gt;For a long time I was hesitating between &lt;i&gt;Daily Standups&lt;/i&gt; and &lt;i&gt;Sprint Planning Session&lt;/i&gt;, but my final choice (for today at least) is the &lt;i&gt;Sprint Retrospective Meeting&lt;/i&gt;, a.k.a. the Iteration Post Mortem (sorry for remains of corporate speech ;-))&lt;br /&gt;&lt;br /&gt;Sprint Retrospective Meeting is meant to provide the opportunity to identify positive and more importantly negative factors your team has recently encountered, prioritize them with respect to impact on team performance and take measures to promote desired ones and remove or at least contain the negative ones.&lt;br /&gt;&lt;br /&gt;If your team has such meetings regularly, everybody participates actively and then holds to the decisions made, all other practices will be in place soon. &lt;b&gt;If&lt;/b&gt; they would benefit the team.&lt;br /&gt;&lt;br /&gt;On the other hand, if your team is unable to implement Sprint Retrospectives, what are the chances that it is able to properly implement other Scrum practices? Or just &lt;b&gt;any&lt;/b&gt; practices?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8813074174707015455-6805933548460494252?l=unimplemented.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Unimplemented/~4/y-6lNz9iBz0" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://unimplemented.blogspot.com/feeds/6805933548460494252/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://unimplemented.blogspot.com/2009/01/sprint-retrospective-scrum-practice-1.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8813074174707015455/posts/default/6805933548460494252?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8813074174707015455/posts/default/6805933548460494252?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Unimplemented/~3/y-6lNz9iBz0/sprint-retrospective-scrum-practice-1.html" title="Sprint Retrospective - Scrum Practice #1" /><author><name>Slawomir Ginter</name><uri>http://www.blogger.com/profile/11380966944243353645</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="03537443938019929164" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://unimplemented.blogspot.com/2009/01/sprint-retrospective-scrum-practice-1.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C04GR38yfip7ImA9WxRaFkU.&quot;"><id>tag:blogger.com,1999:blog-8813074174707015455.post-9016052653833319405</id><published>2008-12-19T11:12:00.002+01:00</published><updated>2008-12-19T11:18:46.196+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-12-19T11:18:46.196+01:00</app:edited><title>New cool tool window features in IntelliJ IDEA 8</title><content type="html">&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_9itee73ZiXE/SUt02iQQerI/AAAAAAAAADQ/Ev3PIvI1VEU/s1600-h/IntelliJ-cool-tool-windows.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 244px;" src="http://4.bp.blogspot.com/_9itee73ZiXE/SUt02iQQerI/AAAAAAAAADQ/Ev3PIvI1VEU/s400/IntelliJ-cool-tool-windows.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5281443468278790834" /&gt;&lt;/a&gt;&lt;br /&gt;During last Devoxx, Jetbrains folks showed us a little trick, which I would like to share with everybody.&lt;br /&gt;It turns out that every docking pane for IDEA tool windows (left, bottom and right) has actually two zones where tool window buttons can be dragged. If you have button occupying both zones in single tool window docking pane, you can have TWO tool windows displayed at the same time in given docking zone!&lt;br /&gt;It makes IntelliJ IDEA UI layout much more flexible (almost like Eclipse) and useful for high resolution screens (does anybody nowadays use anything below FullHD? ;)).&lt;br /&gt;Take a look at the screenshot.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8813074174707015455-9016052653833319405?l=unimplemented.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Unimplemented/~4/lc1kiDnyC3Y" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://unimplemented.blogspot.com/feeds/9016052653833319405/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://unimplemented.blogspot.com/2008/12/new-cool-tool-window-features-in.html#comment-form" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8813074174707015455/posts/default/9016052653833319405?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8813074174707015455/posts/default/9016052653833319405?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Unimplemented/~3/lc1kiDnyC3Y/new-cool-tool-window-features-in.html" title="New cool tool window features in IntelliJ IDEA 8" /><author><name>Wojciech Seliga</name><uri>http://www.blogger.com/profile/11923347478200368758</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="10674321498060461002" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/_9itee73ZiXE/SUt02iQQerI/AAAAAAAAADQ/Ev3PIvI1VEU/s72-c/IntelliJ-cool-tool-windows.png" height="72" width="72" /><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total><feedburner:origLink>http://unimplemented.blogspot.com/2008/12/new-cool-tool-window-features-in.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUECQ3o-fCp7ImA9WxRaFkw.&quot;"><id>tag:blogger.com,1999:blog-8813074174707015455.post-4575330203145384714</id><published>2008-12-18T17:09:00.002+01:00</published><updated>2008-12-18T17:27:42.454+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-12-18T17:27:42.454+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="java" /><title>ArrayList is NOT a Vector replacement</title><content type="html">I've been writing a class that needed a dynamically growing array with random access to store it's data. Exactly the stuff that &lt;a href="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Vector.html"&gt;java.util.Vector&lt;/a&gt; provided in the old days.&lt;br /&gt;&lt;br /&gt;As the &lt;i&gt;Vector&lt;/i&gt; is not trendy any more (and performs unnecessary synchronization), my first thought was to just switch to the &lt;i&gt;ArrayList&lt;/i&gt;, as everybody advise.&lt;br /&gt;&lt;i&gt;ArrayList&lt;/i&gt; is not a direct substitution, though. It lacks the &lt;i&gt;setSize()&lt;/i&gt; method that would create holes in the Array - elements filled with nulls up to the requested index.&lt;br /&gt;I know I could overcome this problem with looped &lt;i&gt;add(null)&lt;/i&gt;, but I decided to go the easy way. I just created a plain old java array[] and provided my own private &lt;i&gt;ensureCapacity&lt;/i&gt; equivalent to do the growing.&lt;br /&gt;&lt;br /&gt;Lesson for me: don't blindly assume that what everybody (including Joshua Bloch) says is applicable in all situations. There are contexts where simple array is better then the newest Collections framework :-)&lt;br /&gt;Why there is no direct substitution for &lt;i&gt;Vector&lt;/i&gt; is another story.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8813074174707015455-4575330203145384714?l=unimplemented.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Unimplemented/~4/MPkuLRvhTrI" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://unimplemented.blogspot.com/feeds/4575330203145384714/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://unimplemented.blogspot.com/2008/12/arraylist-is-not-vector-replacement.html#comment-form" title="10 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8813074174707015455/posts/default/4575330203145384714?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8813074174707015455/posts/default/4575330203145384714?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Unimplemented/~3/MPkuLRvhTrI/arraylist-is-not-vector-replacement.html" title="ArrayList is NOT a Vector replacement" /><author><name>Slawomir Ginter</name><uri>http://www.blogger.com/profile/11380966944243353645</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="03537443938019929164" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">10</thr:total><feedburner:origLink>http://unimplemented.blogspot.com/2008/12/arraylist-is-not-vector-replacement.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Ck4BRHo7eyp7ImA9WxRaE00.&quot;"><id>tag:blogger.com,1999:blog-8813074174707015455.post-8848781470076653537</id><published>2008-12-14T15:30:00.004+01:00</published><updated>2008-12-15T01:29:15.403+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-12-15T01:29:15.403+01:00</app:edited><title>My take-aways from Devoxx 2008</title><content type="html">&lt;span style="font-size:150%;"&gt;JavaFX is probably not as dead as I thought&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;After witnessing official announcement from Sun about "&lt;a href="http://javafx.com/"&gt;JavaFX&lt;/a&gt; coming" at JavaOne in 2007, more than year and a half passed and I was anxious that the whole idea is dead.&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_9itee73ZiXE/SUWbCEOBALI/AAAAAAAAADA/vS1jq3aJe_E/s1600-h/devoxx1.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 400px; height: 176px;" src="http://1.bp.blogspot.com/_9itee73ZiXE/SUWbCEOBALI/AAAAAAAAADA/vS1jq3aJe_E/s400/devoxx1.jpg" alt="" id="BLOGGER_PHOTO_ID_5279796597956346034" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;To my astonishment, Sun seems to have changed its strategy with JavaFX. Now it's not to be just a simple Java-based alternative to Flash/Flex rich internet client applications (as for many months have been stated on JavaFX homesite), but something more: a new rich client for Desktop and Mobile. As I am recently quite heavily involved in rich client development with Java (mostly Swing), this is for me a very important shift.&lt;br /&gt;Swing is often quite difficult to tame. Its controls look quite outdated. Definitely it's visible that the library is about 10 years old and is burdened by a lot of garbage.&lt;br /&gt;Firstly JavaFX brings a lot of visually appealing effects which applied to your UI will make it more modern, but also more usable for your customers (like iPhone does, which is BTW referred to by Sun folks very often).&lt;br /&gt;Secondly JavaFx guys promise that there will be a new library of UI controls available for JavaFX. This library is to be built on top of all the knowledge gathered by last 10 years from Swing developers (and not only) and should avoid most of its disadvantages while providing seriously refurbished look &amp;amp; feel. And this library will be accessible naturally also for Java developers. And it's said that ultimately it should become and new Swing 2.0 or rather an alternative to it.&lt;br /&gt;Great! I am keeping my finger crossed.&lt;br /&gt;Seeing how much energy Sun put into promoting JavaFX at Devoxx (which includes several &lt;i&gt;very&lt;/i&gt; interesting presentations), a lot of interest of Devoxx attendess (see the table below about the plans for using JavaFX) and even strong belief in JavaFX from &lt;a href="http://www.javaposse.com/"&gt;Java Posse&lt;/a&gt; guys, I tend to believe that developers forgave Sun its slip in delivering JavaFX and really count on this language.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:150%;"&gt;Java is no longer about just Java, but dozens of languages running on JVM&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_9itee73ZiXE/SUWaGcT9UiI/AAAAAAAAAC4/zw9aCun9etQ/s1600-h/devoxx2.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 400px; height: 313px;" src="http://2.bp.blogspot.com/_9itee73ZiXE/SUWaGcT9UiI/AAAAAAAAAC4/zw9aCun9etQ/s400/devoxx2.jpg" alt="" id="BLOGGER_PHOTO_ID_5279795573631570466" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;I was on a few great session (e.g. by Brian Goetz or a folk from Azul Systems) about JVM internals and garbage collection. It's clear how much effort is now put into making from JVM a friendly platform to various languages (also dynamic).&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:150%;"&gt;Java SE 7 is LATE&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Unfortunately we will probably wait about 2 years more for next major Java release.&lt;br /&gt;And unfortunately there will be there apparently no such wanted language features like properties or closures.&lt;br /&gt;Sun seems to play a role of a perfectionist here. They are obsessed with maintaining backward-compatibility and thus want to avoid putting into language some feature which then would be impossible to remove or change. So they want to analyze and polish everything and then add to the language only ultimately prepared feature. Unfortunately it's &lt;i&gt;very&lt;/i&gt; difficult. And unfortunately both closures and properties are not in the shape of having ultimately prepared proposals. And probably they never will, as it's typically impossible to predict all the aspects of a language feature. I bet nobody in 1996 would dream what possibilities Java would offer to developers 10 years later - practically with the same language or JVM constructs which were available for a long time (e.g. web or application frameworks making heavy use of reflections, proxies, aspects, DI containers, dynamic languages). My opinion is: let's not wait forever with a new language feature. Let's add it, try it out for a few years and then only see how to improve it or not. Which leads us to the next conclusion:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:150%;"&gt;Developers are fed up with Java backward compatibility&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Java 1.6 is practically 100% compatible with Java 1.0. Which is not used by anybody.&lt;br /&gt;The survey made on the whiteboards at Devoxx make me believe that about 95% of Java programs now use version 1.5 or 1.6, maybe maximum 4-5% uses Java 1.4 and only per mills still depend on the older versions (which anyway are not longer supported by Sun). Backward compatibility is one of the major problems with Java and the reason it gets bloated while retaining a lot of garbage: unused APIs, libraries and bad design (to name only a few: Cloneable, finally, old collection framework). It's time to give it up. And the applause for stopping being too obsessed on backward compatibility at live Java Posse session convinces that I am not the only one who thinks so.&lt;br /&gt;If Java is paralysed and does not evolve, it will soon be challenged by other modern languages (like Scala for statically typed languages or Groovy or JRuby for dynamically typed languages) and it may just lose the market. Although a lot of effort is put on JVM itself which will not be directly affected by such possible shift, even more knowledge and effort invested in Java language itself (just take billions of lines of Java code of existing systems, hundreds of huge and powerful Java IDEs and tools) would be more or less wasted. I think it would be very bad. Sun, please don't let Java die now. It's too early. With proper gardening this language may be successful for at least another decade.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:150%;"&gt;Agile development gets lots of attention&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Although Devoxx is a technical conference for computer geeks (or nerds ;)), there were (contrary to JavaOne) many talks related to software development process. There was even a separate track called "Methodology".&lt;br /&gt;AFAIK all talks in this category were more or less connected with agile development. Anything else nowadays (say a session about waterfall process) makes people laugh. I heard that even Ivar Jacobson (the father of bureaucracy in software process one could say) himself seems to change his mind (very good!) and now tries to preach on common sense approach to software engineering (and I heard that his talk was really good).&lt;br /&gt;A little bit surprisingly, all these talks gathered a lot of audience (including our talk on code review). So geeks seemingly like to have a broader view on the computer science. That's good. Unfortunately some sessions were just disappointing (e.g. I did not like the way Dave Nicolette presented his observations. Such talks just looked like unprepared and many people got quickly bored).&lt;br /&gt;I was carefully observing what people say about their agile practices. Although everybody seems to embrace "agile", relatively few people admit to practice pair programming. Also still few people do code reviews or collectively own the source code. In several presentations I saw significant flaws with applied unit testing strategy (which was not "unit" as a matter of fact). So, although the word is spread, there is still much work to do in order to really convert to agile.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:150%;"&gt;Atlassian - respect of the community&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Although I am working on software projects for Atlassian and thus I am somewhat biased, I could not resist to write about it.&lt;br /&gt;Devoxx was the place where I realized how respected Atlassian is in Java community.&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_9itee73ZiXE/SUWYxEZUX-I/AAAAAAAAACw/QAU6iRCTkCA/s1600-h/devoxx3.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 400px; height: 243px;" src="http://4.bp.blogspot.com/_9itee73ZiXE/SUWYxEZUX-I/AAAAAAAAACw/QAU6iRCTkCA/s400/devoxx3.jpg" alt="" id="BLOGGER_PHOTO_ID_5279794106922721250" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;At almost every session I saw lots of people accessing JIRA or Confluence from their laptops or receiving their mails with familiar looking [JIRA] header.&lt;br /&gt;Many speakers (unaffiliated) mentioned Atlassian products during their talks as example of awesome and productive tools.&lt;br /&gt;After our talks revealing that we work on Atlassian tools, people were coming to chat and congratulate us.&lt;br /&gt;Finally, during Thursday's live &lt;a href="http://www.javaposse.com/"&gt;Java Posse&lt;/a&gt; session at Devoxx, Atlassian got a real applause from hundreds of geeks.&lt;br /&gt;And it did not happen to Sun. It did not happen to companies like JBoss, Oracle or even Jetbrains or SpringSource.&lt;br /&gt;People really seem to admire Atlassian. It it not due to free beer. Other companies also served it :)&lt;br /&gt;It is not due to bullshit marketing, but rather because of being just cool and awesome. A huge thing. Very difficult to achieve.&lt;br /&gt;I must admit I felt good then.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:150%;"&gt;OSGi - a new sexy trend&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.osgi.org/"&gt;OSGi&lt;/a&gt; seems to be everywhere or at least affect all bigger platforms. Spring now has it. Java 7 is more or less going in the same direction.&lt;br /&gt;We will see what it will really bring to Java community. For time being it bears two connotation for me:&lt;br /&gt;- the way to deal with jar hell (do you remember infamous DLL hell on Windows?)&lt;br /&gt;- the way to decompose your system into independent and reusable subsystems (or components)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:150%;"&gt;Spring gets heavier and heavier while Java EE with EJB strikes back&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The history likes to loop. In the past the biggest advantage of Spring vs. traditional EJB-based stacks was simplicity (or lightweightness) and testability.&lt;br /&gt;Now as Springs gets bigger and bigger (fortunately still provided in independent packages) and EJB 3.x builds on lessons taught by Spring, we may realize that the roles actually are changing.&lt;br /&gt;EJB is claimed to be simple and lightweight, while Spring ... yeah, it depends on how far you go.&lt;br /&gt;It's like in XML say 8 years ago. We started from simple XML, then people start abusing it with things like transformations (de facto programming languages), complicated schemas, descriptors, poms (I got you Maven!), xml protocols, firewalls, security, WS-* standards. Several years had to pass, in order to people could realize it and now back simplicity and conscience takes the lead. Everybody seems to hate now XML descriptors or XML configuration files (including Spring configuration). Everybody now loves simple (?) and terse annotations. I wonder when we witness just another shift. Probably when in a Java class definition you will have more lines with annotations that with the code itself - the case we are getting quite close with say EJB 3.1 :). But this is how human civilization works.&lt;br /&gt;The lesson for me: it's important to know when to start, but it's equally as important to know when to stop.&lt;br /&gt;BTW: everybody now uses Spring now or claims so.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:150%;"&gt;Quickies competing with hunger&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I presented with Marek a quickie on Atlassian IDE Connector. I think that with current Devoxx schedule and organization, quickies (at least the first slot every day) are unfortunately mistake.&lt;br /&gt;Just imagine all these people who after c.a. 3 hours of listening to various sessions hurry downstairs to line up in a long queue (often for more than quarter) for lunch.&lt;br /&gt;Then your quickie must compete with hunger. And your quickie will always lose. The outcome: even very intersting quickies presented in the first slot (at the very beginning of lunch break) gathered only a few dozens of participantes. The second slot was typically much better. So maybe both slots should be postponed by ca. 10 minutes next year (to have real 20 minutes break to let people grap their food and come back to the room if they are interested).&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:150%;"&gt;Conlusion&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I think that generally Devoxx 2008 was a good conference (of course - we were talking there ;)).&lt;br /&gt;There were wonderful sessions (as usually from stars like Josh Bloch or Brian Goetz or unexpectedly coming from less famous people like Simon Ritter - the session about self-made multitouch screen and Java and JavaFX programs around it) and very good sessions (e.g. from Richard Bair on JavaFX or two blokes - Jonas Jacobi and John Fallows from Kaazing on web sockets).&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_9itee73ZiXE/SUWcpQSilQI/AAAAAAAAADI/uZUepTh0VSU/s1600-h/devoxx4.jpg"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 400px; height: 258px;" src="http://3.bp.blogspot.com/_9itee73ZiXE/SUWcpQSilQI/AAAAAAAAADI/uZUepTh0VSU/s400/devoxx4.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5279798370723075330" /&gt;&lt;/a&gt;&lt;br /&gt;Unfortunately there were also quite poor talks due to either poor speakers (it &lt;i&gt;really&lt;/i&gt; matters who and how presents), poor topics or just too simple content. Comparing to JavaOne 2007, I would say that sessions at Devoxx on average were less demanding - seemed to be targeted often for beginners. Maybe I got something wrong, but I had expected Devoxx to be a conference for intermediate to advanced developers.&lt;br /&gt;The biggest technical problem of the conference itself was the lack of microphones at Q&amp;amp;A sessions. Something really cheap and simple to amend next year I hope.&lt;br /&gt;Considering that Devoxx is really cheep (we can forgive then things like crappy food or nothing to eat on Friday) and anyway everyone can learn a lot there, I conclude that this is the conference I would like to go one more time next year.&lt;br /&gt;&lt;br /&gt;So see you hopefully in 2009.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8813074174707015455-8848781470076653537?l=unimplemented.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Unimplemented/~4/SKqLlQ0h9fc" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://unimplemented.blogspot.com/feeds/8848781470076653537/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://unimplemented.blogspot.com/2008/12/my-take-aways-from-devoxx-2008.html#comment-form" title="10 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8813074174707015455/posts/default/8848781470076653537?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8813074174707015455/posts/default/8848781470076653537?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Unimplemented/~3/SKqLlQ0h9fc/my-take-aways-from-devoxx-2008.html" title="My take-aways from Devoxx 2008" /><author><name>Wojciech Seliga</name><uri>http://www.blogger.com/profile/11923347478200368758</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="10674321498060461002" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/_9itee73ZiXE/SUWbCEOBALI/AAAAAAAAADA/vS1jq3aJe_E/s72-c/devoxx1.jpg" height="72" width="72" /><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">10</thr:total><feedburner:origLink>http://unimplemented.blogspot.com/2008/12/my-take-aways-from-devoxx-2008.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUYDSHkyeCp7ImA9WxRaEkg.&quot;"><id>tag:blogger.com,1999:blog-8813074174707015455.post-5547798389925160888</id><published>2008-12-14T13:13:00.002+01:00</published><updated>2008-12-14T13:19:39.790+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-12-14T13:19:39.790+01:00</app:edited><title>Assorted Devoxx Notes</title><content type="html">&lt;ul&gt;&lt;li&gt;it does not matter what your presentation is about, it is all in how well you are prepared and how you deliver it. The best presentations I have seen (admittedly, I haven't seen many, most of my time being busy in our booth) there were Joshua Bloch's and (unexpectedly) Ivar Jacobson's. Bloch gave a keynote on Java enums. Exciting keynote about enums! The mere mention of the subject should be enough to put you to sleep, yet the keynote had the right pace, engaged the audience and was pleasant to listen to. Ivar Jacobson's presentation about "being smart" - was just a bunch of semi-obvious observations on how to run and how not to run a software project. Semi-obvious yes, but delivered with class and style, without pretense and with much humor. Just splendid. On the other side of the spectrum were blokes that were able to butcher even the most interesting subjects. "Effective pairing" was one example - I had great hopes for this one (being agile and all), but the presenter was simply unprepared and was seemingly trying to improvise on the spot. I know many good improvisers, but this bloke was no Eddie van Halen. Sorry.&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;working as a booth-babe is a lot of HARD work. You meet many interesting people (and many quite scary ones too), but around 4pm you start to feel terminal exhaustion. Note to self: for the next event like this, invest in a pair of Chuck Taylor Converse All Stars. Or Doc Martens.&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;the simplest ideas for a booth that attract people work best. However, you have to be also active in the booth to take advantage of the idea. The most attractive booth on Devoxx was the one of the company called "Logica" - they didn't bother with setting up elaborately-looking booth (like Sun or Adobe did), their trick was simply hiring a beautiful girl who served awesome cappuccino. I was there at least four times a day (imagine caffeine levels in my organism), and so was everybody else. However, despite being at their booth numerous times, I have no idea what Logica is and what they do. Nor do I care. The guys at the booth did not even try to talk to me even once - they were busy sitting around their little table and chatting among themselves.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Amsterdam is a much cooler and visitor-friendly city than Antwerp. And no, I am not talking about pot and the red-light district. It is just that the whole place is organized towards making people feel relaxed and having a good time, while Antwerp is a bit stiff.&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Antwerp's train station has four (four!) levels of platforms and is overall quite beautiful. I actually enjoyed spending time there. Amsterdam's train station on the other hand seems to be under construction since they started having trains there (or at least since I started visiting the place, which was quite a long time ago). It is the place you run out off immediately and don't ever want to come back to.&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;opportunity to meet fellow developers that work on tools that you use, is quite priceless. For me, drinking beer with JetBrains and ALMWorks folks was definitely the most fruitful and high-return moment of the whole Devoxx.&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;railway network in the Benelux is quite simply awesome and is the best way to move around there. I suppose the small size of the country is the key factor, but still, you can catch a train to anyplace you want pretty much every half an hour or so.&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;the part of Belgium with Antwerp in it is pretty much the integral part of the Netherlands. The people, the language, the attitude, it is very much Dutch. The part with Brussels on the other hand, is more French than regular French. Nobody speaks English to save their life, appliances in the hotel are only half functioning and the hotel crew is absolutely unable to issue a correct invoice. Just like in Paris. These two parts of the country are as different as day and night. The only glue that is keeping Belgium together seems to be beer. But believe me, if brewing beer is the only point of having Belgium, this for me is reason enough - their beer is simply the best in the world.&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/8813074174707015455-5547798389925160888?l=unimplemented.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Unimplemented/~4/neAJ1EtyYX8" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://unimplemented.blogspot.com/feeds/5547798389925160888/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://unimplemented.blogspot.com/2008/12/assorted-devoxx-notes.html#comment-form" title="4 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8813074174707015455/posts/default/5547798389925160888?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8813074174707015455/posts/default/5547798389925160888?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Unimplemented/~3/neAJ1EtyYX8/assorted-devoxx-notes.html" title="Assorted Devoxx Notes" /><author><name>Marcin Gorycki</name><uri>http://www.blogger.com/profile/15881673241063551585</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="00854290010665196633" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">4</thr:total><feedburner:origLink>http://unimplemented.blogspot.com/2008/12/assorted-devoxx-notes.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUACRH84eSp7ImA9WxRbGEs.&quot;"><id>tag:blogger.com,1999:blog-8813074174707015455.post-9166782946536441194</id><published>2008-12-09T23:12:00.006+01:00</published><updated>2008-12-10T00:02:45.131+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-12-10T00:02:45.131+01:00</app:edited><title>Devoxx - the crowd at our BOF</title><content type="html">&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_9itee73ZiXE/ST71AznWCpI/AAAAAAAAACg/cIVcZNqvgk4/s1600-h/bof2.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 400px; height: 200px;" src="http://2.bp.blogspot.com/_9itee73ZiXE/ST71AznWCpI/AAAAAAAAACg/cIVcZNqvgk4/s400/bof2.jpg" alt="" id="BLOGGER_PHOTO_ID_5277925207528835730" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;So today Slawek and I had our &lt;a href="http://devoxx.com/display/JV08/Effective+code+reviews+in+agile+teams"&gt;first talk at Devoxx 2008&lt;/a&gt; about code review in agile teams.&lt;br /&gt;We did it as a BOF, as we wanted to engage more people and hear how they cope with code reviews.&lt;br /&gt;As it was rescheduled by Devoxx organizers at the very last moment from 19:00 to 20:00 and all printed-out materials including pocket guides were still pointing to the old time, I was expecting confusion and only several people to show up.&lt;br /&gt;&lt;br /&gt;To my utter astonishment a crowd gathered in front of our BOF room just a few minutes before 20:00 and when we started, we was quickly run out of free seats and some people spend entire hour either standing or just laying down on the floor.&lt;br /&gt;I am not sure what was the reason for such popularity of this topic (especially comparing to other BOFs, which definitely had fewer attendees). Maybe it's due to Atlassian name involved (as we work for Atlassian and I was sharing our lessons learnt there), which IMO has a very good reputation amongst developers. Maybe it was due to "agile" work used in the topic of the session (and "agile" has unfortunately become recently another popular&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_9itee73ZiXE/ST70x55K1PI/AAAAAAAAACY/FfAH1oWeqiY/s1600-h/bof1.jpg"&gt;&lt;img style="margin: 10px 10px 10px 10px; float: left; cursor: pointer; width: 400px; height: 217px;" src="http://2.bp.blogspot.com/_9itee73ZiXE/ST70x55K1PI/AAAAAAAAACY/FfAH1oWeqiY/s400/bof1.jpg" alt="" id="BLOGGER_PHOTO_ID_5277924951516173554" border="0" /&gt;&lt;/a&gt; buzzword, like SOA, although it definitely does not deserve it, as "agile" carries a lot of real value and sense). Maybe it was due to real interest in code reviews. Maybe it was due to &lt;a href="http://www.jetbrains.com/idea/"&gt;IntelliJ IDEA&lt;/a&gt; involved (our &lt;a href="http://confluence.atlassian.com/display/IDEPLUGIN/Atlassian+IntelliJ+Connector"&gt;IntelliJ Connector&lt;/a&gt;), which seems to be really popular among Devoxx participants (according to ad-hoc surveys done on whiteboards, about 30% of developers use it).&lt;br /&gt;&lt;br /&gt;I will probably never know that.&lt;br /&gt;&lt;br /&gt;Anyway, about 60 people showed up, they asked many interesting questions and we spend about an hour after the BOF outside the room, just exchanging our observations.&lt;br /&gt;&lt;br /&gt;So although Demo God does not like me, as my Ubuntu spectacularly failed to properly detect projector and we we forced to use back-up Mac where we fortunately had established the exact copy ready for the presentation). &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_9itee73ZiXE/ST71WAQG8FI/AAAAAAAAACo/YLHXb8DZkPY/s1600-h/bof3.jpg"&gt;&lt;img style="margin: 10px 10px 10px 10px; float: right; cursor: pointer; width: 400px; height: 291px;" src="http://3.bp.blogspot.com/_9itee73ZiXE/ST71WAQG8FI/AAAAAAAAACo/YLHXb8DZkPY/s400/bof3.jpg" alt="" id="BLOGGER_PHOTO_ID_5277925571698290770" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Alas, it did not help, as projector turned out to be supporting only crappy resolution of 800x600 pixels which is practically useless to demonstrate anything in IntelliJ IDEA with such resolution. Also &lt;a href="http://www.atlassian.com/software/crucible/"&gt;Crucible&lt;/a&gt; web UI was hardly usable at such resolution.&lt;br /&gt;&lt;br /&gt;So sorry folks, next time I will probably bring my own projector. :)&lt;br /&gt;&lt;br /&gt;Anyway, a lot of people asked us to share our slides. Here it comes. Enjoy.&lt;br /&gt;&lt;br /&gt;&lt;div style="width:425px;text-align:left" id="__ss_834316"&gt;&lt;a style="font:14px Helvetica,Arial,Sans-serif;display:block;margin:12px 0 3px 0;text-decoration:underline;" href="http://www.slideshare.net/guestc4d461/devoxx08-effective-code-reviews-in-agile-teams-presentation?type=powerpoint" title="Devoxx08: Effective Code Reviews In Agile Teams"&gt;Devoxx08: Effective Code Reviews In Agile Teams&lt;/a&gt;&lt;object style="margin:0px" width="425" height="355"&gt;&lt;param name="movie" value="http://static.slideshare.net/swf/ssplayer2.swf?doc=dvx08effectivecodereviewsinagileteams-1228863566117376-9&amp;stripped_title=devoxx08-effective-code-reviews-in-agile-teams-presentation" /&gt;&lt;param name="allowFullScreen" value="true"/&gt;&lt;param name="allowScriptAccess" value="always"/&gt;&lt;embed src="http://static.slideshare.net/swf/ssplayer2.swf?doc=dvx08effectivecodereviewsinagileteams-1228863566117376-9&amp;stripped_title=devoxx08-effective-code-reviews-in-agile-teams-presentation" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div style="font-size:11px;font-family:tahoma,arial;height:26px;padding-top:2px;"&gt;View SlideShare &lt;a style="text-decoration:underline;" href="http://www.slideshare.net/guestc4d461/devoxx08-effective-code-reviews-in-agile-teams-presentation?type=powerpoint" title="View Devoxx08: Effective Code Reviews In Agile Teams on SlideShare"&gt;presentation&lt;/a&gt; or &lt;a style="text-decoration:underline;" href="http://www.slideshare.net/upload?type=powerpoint"&gt;Upload&lt;/a&gt; your own.&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;And thank you really for your coming and your participation. It was a great lesson for us.&lt;br /&gt;&lt;br /&gt;See you on Thursday on &lt;a href="http://devoxx.com/display/JV08/Atlassian+Connector+-+developers+for+developers"&gt;our Quickie &lt;/a&gt;about Atlassian IDE Connector.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8813074174707015455-9166782946536441194?l=unimplemented.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Unimplemented/~4/GjXXwplDNa0" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://unimplemented.blogspot.com/feeds/9166782946536441194/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://unimplemented.blogspot.com/2008/12/devoxx-crowd-at-our-bof.html#comment-form" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8813074174707015455/posts/default/9166782946536441194?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8813074174707015455/posts/default/9166782946536441194?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Unimplemented/~3/GjXXwplDNa0/devoxx-crowd-at-our-bof.html" title="Devoxx - the crowd at our BOF" /><author><name>Wojciech Seliga</name><uri>http://www.blogger.com/profile/11923347478200368758</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="10674321498060461002" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/_9itee73ZiXE/ST71AznWCpI/AAAAAAAAACg/cIVcZNqvgk4/s72-c/bof2.jpg" height="72" width="72" /><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">2</thr:total><feedburner:origLink>http://unimplemented.blogspot.com/2008/12/devoxx-crowd-at-our-bof.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEEGQ34_eSp7ImA9WxRbF04.&quot;"><id>tag:blogger.com,1999:blog-8813074174707015455.post-1539561029291130180</id><published>2008-12-08T11:15:00.002+01:00</published><updated>2008-12-08T11:37:02.041+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-12-08T11:37:02.041+01:00</app:edited><title>Things That Suck - "I Must What?"</title><content type="html">I have been flying to Belgium on Ryanair this Saturday. As on every cheap airline flight, the seats are (probably on purpose) designed to make you suffer (or Ryanair designed them for midgets). To make myself a bit less miserable, I was listening to music on the iPod.&lt;br /&gt;&lt;br /&gt;When the plane started descending, the steward approached me and asked me to "switch off all electronic devices". Sure, will do, but how? The iPod does not exactly &lt;span style="font-style: italic;"&gt;have&lt;/span&gt; an "off" switch. The closest thing to it is the "hold" thingy that blocks the keyboard. So that was what I did - put the iPod on hold.&lt;br /&gt;&lt;br /&gt;Now, the stock phones that come with iPod are somewhat on a crappy side and I have replaced them with the sort that is plugged &lt;span style="font-style: italic;"&gt;inside&lt;/span&gt; your ear. They are great for canceling out external noise, but unfortunately, putting them on is a bit of a hassle. So had them on all the time.&lt;br /&gt;&lt;br /&gt;Then I saw the steward approaching me again. This time, he seemed pissed off. "Sir, I asked you to switch off electronic equipment" - says he. "I did - as well as I could, man. This iPod is as 'off' as possible". "Sir please at least take the phones out of your ears?". "You ask me to do what?". "Take the phons off".&lt;br /&gt;&lt;br /&gt;Ok, this left me speachless and stunned. Take them off why? So as to not do demoralize fellow passengers? Or maybe I am a mutant and my ears generate huge electromagnetic waves when touched by pieces of plastic? WTF?&lt;br /&gt;&lt;br /&gt;Look airlines, this is just silly. The amount of electromagnetic field generated by FCC-approved electronic equipment is negligible. The iPhone's "EMP generators" are barely able to lift its hard disk's heads by 0.001 mm and spin its miniature motors. You have a huge-ass jet engine operating just 4 meters right of me - I am sure the amount of electricity generated by it could fulfill the needs of a modestly-sized village, why are you worried about my little piece of nothing here?&lt;br /&gt;&lt;br /&gt;God, I hate flying. Mostly because the experience makes you cast a doubt on the sanity of mankind.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8813074174707015455-1539561029291130180?l=unimplemented.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Unimplemented/~4/MnMsBGS_nNE" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://unimplemented.blogspot.com/feeds/1539561029291130180/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://unimplemented.blogspot.com/2008/12/things-that-suck-i-must-what.html#comment-form" title="6 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8813074174707015455/posts/default/1539561029291130180?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8813074174707015455/posts/default/1539561029291130180?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Unimplemented/~3/MnMsBGS_nNE/things-that-suck-i-must-what.html" title="Things That Suck - &quot;I Must What?&quot;" /><author><name>Marcin Gorycki</name><uri>http://www.blogger.com/profile/15881673241063551585</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="00854290010665196633" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">6</thr:total><feedburner:origLink>http://unimplemented.blogspot.com/2008/12/things-that-suck-i-must-what.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkYMRXczeSp7ImA9WxRbFEo.&quot;"><id>tag:blogger.com,1999:blog-8813074174707015455.post-2641169192974809729</id><published>2008-12-05T12:25:00.004+01:00</published><updated>2008-12-05T12:56:24.981+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-12-05T12:56:24.981+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="open source" /><category scheme="http://www.blogger.com/atom/ns#" term="agile" /><category scheme="http://www.blogger.com/atom/ns#" term="idea" /><title>Devoxx 2008 - a few contributions from Atlassian</title><content type="html">So, this year more than half of us from Poland go to &lt;a href="http://devoxx.com/"&gt;Devoxx&lt;/a&gt; (former JavaPolis) in Antwerp, Belgium.&lt;br /&gt;This is the first time I will be there. Till now I have only participated in very big events like JavaOne or smaller conferences like &lt;a href="http://confluence.atlassian.com/display/AUG/AtlasCamp"&gt;AtlasCamp&lt;/a&gt; or JUG gatherings.&lt;br /&gt;&lt;br /&gt;I am presenting (with my colleagues) two things this year:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Quickie: &lt;a href="http://devoxx.com/display/JV08/Atlassian+Connector+-+developers+for+developers"&gt;Atlassian IDE Connector - developers for developers&lt;/a&gt; - Thursday December 11th, 13:10, Room 8&lt;br /&gt;&lt;br /&gt;We will tell you about the open source project &lt;a href="http://www.atlassian.com/software/ideconnector/"&gt;Atlassian IDE Connector&lt;/a&gt; supported by Atlassian - its goals, challenges and future plans. The most significant part will be devoted to live demo of our IntelliJ Connector.&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;BOF: &lt;a href="http://devoxx.com/display/JV08/Effective+code+reviews+in+agile+teams"&gt;Effective code reviews in agile teams&lt;/a&gt; - Tuesday December 9th, 20:00, Room 2&lt;br /&gt;&lt;br /&gt;We will be talking about pros &amp;amp; cons of code reviews, the place of code review in agile teams (also geo-distributed), various findings and observations. We will tell you what hurts us in code reviews and how we are trying to cope with it, maximizing effectiveness of code reviews. And of course we want to hear what your experience in this regard is.&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;If you are interested in those topics, please come and we definitely have an interesting conversation.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8813074174707015455-2641169192974809729?l=unimplemented.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Unimplemented/~4/DPM_2T2nWg4" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://unimplemented.blogspot.com/feeds/2641169192974809729/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://unimplemented.blogspot.com/2008/12/devoxx-2008-few-contributions-from.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8813074174707015455/posts/default/2641169192974809729?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8813074174707015455/posts/default/2641169192974809729?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Unimplemented/~3/DPM_2T2nWg4/devoxx-2008-few-contributions-from.html" title="Devoxx 2008 - a few contributions from Atlassian" /><author><name>Wojciech Seliga</name><uri>http://www.blogger.com/profile/11923347478200368758</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="10674321498060461002" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://unimplemented.blogspot.com/2008/12/devoxx-2008-few-contributions-from.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkEDQns9cCp7ImA9WxRUF08.&quot;"><id>tag:blogger.com,1999:blog-8813074174707015455.post-5399957191353010419</id><published>2008-11-23T19:31:00.004+01:00</published><updated>2008-11-26T18:31:13.568+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-11-26T18:31:13.568+01:00</app:edited><title>Prestige Class: Java Developer</title><content type="html">Golden days when you were a skilled &lt;i&gt;&amp;lt;insert you favourite language&amp;gt; developer&lt;/i&gt; and it was enough to be competitive on the market are unfortunately over.&lt;br /&gt;Today you need to be proficient not only with the language and standard libraries (like STL or &lt;code&gt;java.util&lt;/code&gt;), but also more specific frameworks that let you do the work in acceptable time frame.&lt;br /&gt;&lt;br /&gt;Following statements may describe level of advancement in some technology or technique:&lt;ol&gt;&lt;li&gt;It's black magic!&lt;br /&gt;&lt;li&gt;Hey, I've learnt a few cool rituals!&lt;br /&gt;&lt;li&gt;I know everything now, I can do anything in no-time.&lt;br /&gt;&lt;li&gt;Hmm, there are a few caveats I didn't know about...&lt;br /&gt;&lt;li&gt;I know what I am (not)doing and &lt;b&gt;why&lt;/b&gt;.&lt;br /&gt;&lt;/ol&gt;As a customer, beware of #3's. They are capable of dealing the most damage to the project, with good intentions.&lt;br /&gt;And more importantly, know when &lt;b&gt;you&lt;/b&gt; are level 3.&lt;br /&gt;&lt;br /&gt;Hint: get alert when you hear (or say) the following too often:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;It worked on my computer/database/app server instance/yesterday.&lt;br /&gt;&lt;li&gt;This framework is stupid, why would they do it this way?&lt;br /&gt;&lt;li&gt;I don't get why this needs to be so complicated, lets just take a shortcut.&lt;br /&gt;&lt;li&gt;I just googled some solution, pasting...&lt;br /&gt;&lt;li&gt;I know XXX which does similar things, how different can this one be?&lt;br /&gt;&lt;li&gt;I know I said "just 2 hours" 3 days ago, but I just have to finish this last unexpected XXX.&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;Greetings to all that know what the title is about :-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8813074174707015455-5399957191353010419?l=unimplemented.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Unimplemented/~4/sLk-L9jrDZY" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://unimplemented.blogspot.com/feeds/5399957191353010419/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://unimplemented.blogspot.com/2008/11/prestige-class-java-developer.html#comment-form" title="4 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8813074174707015455/posts/default/5399957191353010419?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8813074174707015455/posts/default/5399957191353010419?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Unimplemented/~3/sLk-L9jrDZY/prestige-class-java-developer.html" title="Prestige Class: Java Developer" /><author><name>Slawomir Ginter</name><uri>http://www.blogger.com/profile/11380966944243353645</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="03537443938019929164" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">4</thr:total><feedburner:origLink>http://unimplemented.blogspot.com/2008/11/prestige-class-java-developer.html</feedburner:origLink></entry></feed>
