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

<channel>
	<title>Jayway Team Blog &#187; oredev</title>
	<atom:link href="http://blog.jayway.com/tag/oredev/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.jayway.com</link>
	<description>Sharing Experience</description>
	<lastBuildDate>Sat, 28 Jan 2012 15:53:55 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>7 Reasons to go to &#216;redev 2011</title>
		<link>http://blog.jayway.com/2011/10/04/7-reasons-to-go-to-redev-2011/</link>
		<comments>http://blog.jayway.com/2011/10/04/7-reasons-to-go-to-redev-2011/#comments</comments>
		<pubDate>Tue, 04 Oct 2011 15:54:24 +0000</pubDate>
		<dc:creator>Anders Janmyr</dc:creator>
				<category><![CDATA[Dynamic languages]]></category>
		<category><![CDATA[Events]]></category>
		<category><![CDATA[coffeescript]]></category>
		<category><![CDATA[oredev]]></category>
		<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">http://blog.jayway.com/?p=9959</guid>
		<description><![CDATA[I’m am looking forward to Øredev 2011 more than I have looked forward to any of the previous ones. The reason for this is that Øredev has finally become a leading conference for dynamic programming. Øredev has always been good in the enterprise sphere led by Java, .Net and mobile tracks, but it has been [...]]]></description>
			<content:encoded><![CDATA[<p>I’m am looking forward to Øredev 2011 more than I have looked forward to<br />
any of the previous ones. The reason for this is that Øredev has finally<br />
become a leading conference for dynamic programming.</p>
<p>Øredev has always been good in the enterprise sphere led by Java, .Net and<br />
mobile tracks, but it has been weaker in the area of dynamic programming<br />
languages. Last year was better than before, but this year is going<br />
to be great. Here are some speakers that you should not miss.</p>
<h2>Yehuda Katz</h2>
<p>Yehuda Katz was one of the driving forces behind the great Rails<br />
3 refactoring, that made sure that Rails will remain the most productive<br />
web development environment for many years to come. Yehuda just released<br />
a new book, <a href="http://www.amazon.com/Rails-3-Action-Yehuda-Katz/dp/1935182277?tag=thtasta-20">Rails 3 in Action</a>, Its the first book about Rails 3.1, including the awesome <a href="http://guides.rubyonrails.org/asset_pipeline.html">Asset Pipeline</a>, <a href="http://asciicasts.com/episodes/266-http-streaming">streaming</a>,and <a href="http://guides.rubyonrails.org/migrations.html#writing-your-change-method">reversible migrations</a>.</p>
<p>Yehuda has also been involved with jQuery and written <a href="http://www.amazon.com/jQuery-Action-Second-Bear-Bibeault/dp/1935182323?tag=thtasta-20">jQuery in Action</a>.</p>
<p>He will be speaking about <a href="http://oredev.org/2011/sessions/rails">Rails</a> and <a href="http://oredev.org/2011/sessions/sproutcore">Sproutcore</a>.</p>
<h2>Felix Geisendörfer</h2>
<p>Felix Geisendörfer is a core Node.js developer and he will of course be<br />
talking about <a href="http://oredev.org/2011/sessions/node-js--a-practical-introduction">Node</a>.<br />
Node.js is a set of Javascript libraries that runs on top of the Google<br />
V8 virtual machine. What is interesting about Node, apart from being<br />
server-side Javascript is that it uses asynchronous programming as the<br />
default. This default makes Node extremely interesting for developing<br />
solutions involving multiple open connections, such as websockets, and<br />
for streaming video and audio. Node is definitely part of the future of<br />
the web. I have written <a href="http://anders.janmyr.com/2011/05/not-very-short-introduction-to-nodejs.html">extensively about it</a> in the past.</p>
<h2>Corey Haines</h2>
<p>Cory Haines is a legend in the TDD community. He is also famous for his <a href="http://coderetreat.com/">Code Retreats</a>. He will give one workshop, <a href="http://oredev.org/2011/sessions/improving-your-tdd">Improving your TDD</a>, and two presentations,<a href="http://oredev.org/2011/sessions/fast-ruby-on-rails-tests">Fast Ruby on Rails Tests</a> and <a href="http://oredev.org/2011/sessions/come-introduce-yourself-to-the-concepts-and-fundamental-technique-behind-tdd">Come introduce yourself to the concepts and fundamental technique behind TDD</a></p>
<h2>Ilya Grigorik</h2>
<p>Ilya Grigorik is the founder of <a href="http://www.postrank.com/">PostRank</a>, that was recently acquired by Google. He is now working on Social Analytics at Google. At PostRank he used Ruby to perform analysis on very large amounts of data. While doing this he developed<br />
<a href="http://postrank-labs.github.com/goliath/">Goliath</a>, a high-performance non-blocking web server using Ruby 1.9 and fibers.</p>
<p>He will be talking about <a href="http://oredev.org/2011/sessions/0-60-with-goliath-building-high-performance-ruby-web-services">Goliath</a>, <a href="http://oredev.org/2011/sessions/modeling-concurrency-in-ruby-and-beyond">Concurrency</a> and <a href="http://oredev.org/2011/sessions/intelligent-code-getting-started-with-machine-learning">Machine Learning</a></p>
<p>I can recommend that you <a href="https://twitter.com/#!/igrigorik">follow Ilya on Twitter</a> since his tweets has the highest signal-to-noise ratio I know of.</p>
<p>And, finally, make sure to check out <a href="http://vimgolf.com/">Vim Golf</a>, a really cool way to become a Vim wizard.</p>
<h2>Trevor Burnham</h2>
<p><a href="http://jashkenas.github.com/coffee-script/">Coffeescript</a> is the new way to write Javascript without actually writing it <img src='http://blog.jayway.com/wordpress/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> . Coffeescript is an elegant language, created by Jeremy Ashkenas, with features from Ruby and Python. The language is very pure and removes a lot of clutter. Coffeescript is compiled into good, efficient Javascript. Trevor Burnham has written a book, <a href="http://www.amazon.com/CoffeeScript-Accelerated-JavaScript-Development-Pragmatic/dp/1934356786?tag=thtasta-20">CoffeeScript: Accelerated JavaScript Development</a>, on the subject and he will be giving two presentations about it,<br />
<a href="http://oredev.org/2011/sessions/coffeescript-design-patterns-for-the-new-javascript">CoffeeScript: Design Patterns for the New JavaScript</a> and <a href="http://oredev.org/2011/sessions/transforming-data-into-pixels-visualization-with-canvas-and-coffeescript">Transforming Data into Pixels: Visualization with Canvas and CoffeeScript</a></p>
<h2>Charles Nutter</h2>
<p>Charles Nutter is the man behind JRuby. He has also create another<br />
language called <a>Mirah</a>, which he will be talking about in <a href="http://oredev.org/2011/sessions/have-you-tried-mirah-yet">Have you tried Mirah yet?</a>.</p>
<p>While doing all this he has obviously learned a thing or two about the<br />
JVM and about bytecodes. Who could be better to teach us about the<br />
internals of the JVM. Charles will be giving another talk about this in <a href="http://oredev.org/2011/sessions/what-the-jvm-does-with-your-bytecode-when-nobodys-looking">What the JVM Does With your Bytecode when Nobody’s Looking</a>.</p>
<h2>Simon Peyton Jones</h2>
<p>Even though this list of people is mostly about dynamic programming<br />
languages, it has to include <a href="http://oredev.org/2011/speakers/simon-peyton-jones">Simon Peyton Jones</a>.</p>
<p>Haskell is one of the most statically typed languages there is. It<br />
is, probably, also the most elegant programming language in the world.<br />
It is purely functional, has lazy evaluation, pattern matching, and<br />
currying by default. Even if you never use Haskell in a real-life<br />
project learning Haskell will be worth your while. If you want to get<br />
a good introduction to Haskell I can highly recommend <a href="http://www.amazon.com/Programming-Haskell-Graham-Hutton/dp/0521871727?tag=thtasta-20">Programming in Haskell</a> by Graham Hutton.</p>
<h2>Summary</h2>
<p>As you can see, <a href="http://oredev.org/2011/">this years Øredev</a> is looking better than ever before and I have only included a select part of it in this post. Missing it should be considered professional misconduct!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.jayway.com/2011/10/04/7-reasons-to-go-to-redev-2011/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Øredev 2009 Panel Video &amp; Books</title>
		<link>http://blog.jayway.com/2009/11/09/%c3%b8redev-2009-panel-books/</link>
		<comments>http://blog.jayway.com/2009/11/09/%c3%b8redev-2009-panel-books/#comments</comments>
		<pubDate>Mon, 09 Nov 2009 14:39:24 +0000</pubDate>
		<dc:creator>Björn Granvik</dc:creator>
				<category><![CDATA[Events]]></category>
		<category><![CDATA[oredev]]></category>
		<category><![CDATA[panel]]></category>

		<guid isPermaLink="false">http://blog.jayway.com/?p=2218</guid>
		<description><![CDATA[The panel of Øredev 2009 proved to be a great group of people ready to take the panel format further. As the moderator I wanted something other than your daddy's discussion - something edgy or just plain edutainment. I certainly got what I asked The folks on the stage were: James Bach - Author of [...]]]></description>
			<content:encoded><![CDATA[<p>The panel of Øredev 2009 proved to be a great group of people ready to take the panel format further.<br />
As the moderator I wanted something other than your daddy's discussion - something edgy or just plain edutainment.<br />
I certainly got what I asked <img src='http://blog.jayway.com/wordpress/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>The folks on the stage were:<br />
James Bach - Author of Lessons Learned in Software Testing<br />
Ola Bini - Thoughtworker, core developer of JRuby and creator of Ioke<br />
Stu Halloway - Author of Programming Clojure<br />
Scott Hanselman - Principal Programmer at MS and general spreader of good info for developers<br />
Oren Eini (Ayende Rahien) - NHibernate Profiler, NHibernate, Castle, Rhino Mocks<br />
Chris Hughes - AT&T iPhone Hacker</p>
<p>Scott Hanselman did a great job of setting up a live feed together with the Øredev people.<br />
Here's a good page from Scott, <a href="http://bit.ly/3C2UIi">http://bit.ly/3C2UIi</a>, on the event with video and everything.</p>
<p>Oh, and the non-computer related books that the panel recommended:<br />
* The Gathering Storm (12th book of The Wheel Of Time) - Neil Jordan<br />
* Anathem - Neal Stephenson  +1<br />
* Gödel Escher Bach - Douglas Hofstadter<br />
* Replay - Ken Grimwood<br />
* Flow - Mihaly Csikszentmihaly</p>
<p>Thanks guys!<br />
/Björn</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.jayway.com/2009/11/09/%c3%b8redev-2009-panel-books/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Questions from the Øredev session Shock Therapy</title>
		<link>http://blog.jayway.com/2008/12/09/questions-from-the-%c3%b8redev-session-shock-therapy/</link>
		<comments>http://blog.jayway.com/2008/12/09/questions-from-the-%c3%b8redev-session-shock-therapy/#comments</comments>
		<pubDate>Tue, 09 Dec 2008 13:43:46 +0000</pubDate>
		<dc:creator>Björn Granvik</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[oredev]]></category>
		<category><![CDATA[scrum]]></category>

		<guid isPermaLink="false">http://blog.jayway.com/?p=545</guid>
		<description><![CDATA[The Øredev conference was a real success. I'm involved in it ,so that probably makes me biased:-). However, I struggled for the first 10 minutes of my presentation to get my slides on the projector. A tip for you Mac users out there: Plug the adapter (dmi to vga) into the VGA cable first! I [...]]]></description>
			<content:encoded><![CDATA[<p>The Øredev conference was a real success. I'm involved in it ,so that probably makes me biased:-). However, I struggled for the first 10 minutes of my presentation to get my slides on the projector. A tip for you Mac users out there: Plug the adapter (dmi to vga) into the VGA cable first! I plugged a lone adapter into the computer first. It couldn't find any projector and gladly gave up on me...  Sigh. After that bumpy start I got going, but had to keep a brisk pace. Sorry, for that to those of you who where listening.</p>
<p>I asked for comments/questions. As it turns out I got mostly questions on Scrum in general and not so much on my topic - how to bootstrap Scrum. I'm not sure what to make of this.<br />
Anyway, here are my takes on those questions. I hope they're of some value.</p>
<blockquote><p>
Dear Björn,</p>
<p>How do you motivate a team to produce more without paying more for IT (salaries)?<br />
Hourly salary seems retarded for agile teams.<br />
Thanks!
</p></blockquote>
<p>Dear anonymous,</p>
<p>I'll first look at the non-monetary part, mostly Scrum, and later on salaries and bonuses.</p>
<p><strong>Self organizing</strong><br />
In many organizations people enjoy very limited control over their own situation. Being able to self organize is important. We humans just tend to like this.</p>
<p><strong>Pick your tasks and choose your implementation</strong><br />
Again, if I can use my competence and decide (as far as possible) on how to implement a certain goal, I will enjoy my work the more. Using this approach I've even been able to rehire people to very problematic situations. Very powerful.</p>
<p><strong>Deliver</strong><br />
When I ask programmers what they are most proud of, I usually hear words like "idea, made by me, real users". It might not be the hardest and certainly not the biggest project they worked on. They used their competence, created something and delivered! In Scrum you get the delivery feeling at every sprint. If you break it down into activities no bigger than a day, then you will get that nice "flow" and people will be able to say "I did" every morning.</p>
<p><strong>Good Colleagues</strong><br />
I've found that Agile makes sense if for no other reason than you can keep and hire the good people. SmartFriends(tm) is a great way to work!</p>
<p>I'm sure I could pick more facets of Scrum and Agile on how to motivate your team. But let's move on to the Money. This part of my answer doesn't have so much to do with Scrum or Agile, but rather my beliefs. So you have to be the judge here - what would work for you and your situation?</p>
<p><strong>Powerful, way too powerful</strong><br />
Salaries, bonuses etc affect you - all the way to the bank and your holiday and...<br />
In short: Once you start using money in different forms as your primary means of rewards, you will get a powerful ally in driving your people. Perhaps to powerful. </p>
<p>Take bonuses at a consultancy firm (a real example from life). You have all the good intentions so you set up a bonus system so that everyone will benefit if they have a client. More hours with customers, bigger bonus. Easy. This way you can lower your costs in bad times. Nice, if you're just counting beans. </p>
<p>Effect: No one wants to come in do monthly meetings if it's going to cost them money.<br />
Counter effect: Introduce a threshold so that there is room for a bonus even though it doesn't mean 100% with customer.</p>
<p>Another effect: You just removed your ability to make strategic decisions like "put someone on the big corporate account" that pays less, but means more hours. Who wants to loose money working for that customer if they have to take a cut money-wise?<br />
Counter effect: You introduce another "rule" specifying that a lower price per hour will not affect their bonus.</p>
<p>Yet another effect: Holidays suddenly never cross the monthly boundaries. That would put your people below the threshold for the bonus on two separate salaries.<br />
Counter effect: ...haven't got the faintest here what they did here.</p>
<p>I hope my example makes sense in your situation. My point is that money matters. When used to drive people you will get side-effects.<br />
For me this is not good enough. I don't want just to persuade people's wallets - I want their hearts and minds. It has to be fun and engaging.</p>
<p><strong>Here's my short take:</strong> First make sure you have decent salaries etc. When this in place, aim for those things that make our working day worth while. Set interesting goals, get good colleagues, the right work to do, empower people and so on.</p>
<blockquote><p>
How to ensure creativity and quality in Scrum?<br />
/Fredrik
</p></blockquote>
<p>Hi Fredrik,<br />
I liked the way you wrote this on a green note (meaning "good" when voting at the conference). Thanks <img src='http://blog.jayway.com/wordpress/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p><strong>Creativity</strong><br />
I believe there doesn't have to be a contradiction between setting a goal and using proper frames (time, resources etc) vs. creativity - at least as long as we have the right to work to our own judgement within these constraints. I often find that this last part is missing. You get all the obligations, but no mandate.</p>
<p>In Scrum, one part of the creativity is built right into the process: Understanding the different goals. In the product backlog you should enter business value. This way the team has direct contact with the user's intentions and can suggest alternative solutions that might be better, i.e. be creative.</p>
<p><strong>Quality</strong><br />
If we're talking IT, I would like to use automatic testing, continuous integration and so on to ensure consistent quality. Add to this an annoying email whenever something breaks and you have a good start <img src='http://blog.jayway.com/wordpress/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>Moreover, the tight feedback loop using sprint reviews and such should pick up on issues like usability etc. Basically make sure you have a product owner that can spend time on the project.</p>
<p>Also make sure that your "definition of done" reflects your quality goals. It has to be very clear what "done" means within your organisation.</p>
<blockquote><p>
Hur gör man för att bryta ner gigantiska projekt över flera plattformar i lagom stora bitar för att köra Scrum?<br />
[How to break down into gigantic projects over several platforms into decent chunks so that Scrum can be used.]<br />
Sven Nilsson, SAAB
</p></blockquote>
<p>Hi Sven,</p>
<p>Your question seems to revolve around two hefty issues: Breaking down the project into several teams that are likely to depend on each others and breaking down the actual work to fit into a sprint. Perhaps "platform" has a special meaning within your organization and how you work. I would have to know a bit more to answer you on that point.</p>
<p><strong>Teams and dependencies</strong><br />
This is tough on several levels. First let's do the pure Scrum answer - Scrum of Scrums. This basically means that we organize our teams so that one person from each group "steps up" and forms a team that work across several teams. Dependencies etc can be resolved in this group, set up an encompassing backlog and work much in the same fashion as a Scrum Team. Jeff Sutherland, co-fonder of Scrum, has run this set up on 500+ persons. I would love to work on such an outfit.</p>
<p>However, and this is a big however, this is a major change for most companies. The ones I've met (medium size and up) just aren't geared to handle such an approach right now. The number of issues and obstacles with such a transformation can be huge. If you find yourself in such a situation then I suggest you adapt piece by piece and continuously strive to be ever more agile. This is hard work and will mean small improvements upon each other, but maybe no hyper productive state.</p>
<p>This is where I chicken out and suggest you should get someone with experience. Every company is different and needs their set of actions.<br />
Hell, buy me lunch and maybe I can point you in a good direction <img src='http://blog.jayway.com/wordpress/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p><strong>Breaking up the work into chunks</strong><br />
This takes creativity. </p>
<p>First: Try to slice the work so that you will touch base with most layers/parts. This way we can have a better understanding of what it means to deliver the whole system. Therefore make the slice as thin as you can while at the same time deliver something "valuable". This might mean you need to mock other components (code that isolates different components with dummy answers). This can be very beneficial since it becomes some sort of contract with other teams.</p>
<p>If the chunk still is to big then you might have to resort to cutting up the chunk into parts by level in your architecture. This of course has the drawback that we don't know what it will take to implement the parts we didn't do. Business value might be less, but we might be able to "prove" that we're on the right track. What is "proof" to your product owner?<br />
If you can, stay away of doing tasks in your product backlog. In worst case people will be task-driven: "I've changed the registry, can I go home now?"</p>
<blockquote><p>
If we want to/have to promise the customer a delivery date. How can we do that when we don't analyse the whole project?<br />
We are focusing on the next sprint?</p>
<p>How can we tell management how many resources we will need in one month?<br />
/Patrik Johansson, Ericsson
</p></blockquote>
<p>Hi Patrik,</p>
<p>Several questions and perhaps the most common ones. Let's dive into them.</p>
<p><strong>Analyze the whole project?</strong><br />
Why we can't analyze the whole project? Because, this is blatant lie for anything bigger than a trivial project. I apologize for my frankness, but I've never seen a project with a single version of the Gantt schema, a single time plan, with a known set of resources...<br />
They always change. Always.</p>
<p>If you and your management can't agree that things change then you might have to go dualistic - outwards project manager old style, inwards ScrumMaster. It's not easy, but in time you will gain some victories, err deliveries, and you can move the agile thinking further up. Hard work, but it's better than doing waterfall all the way.</p>
<p>Your question is still valid. How do we commit on delivery if most things might change? The customer still needs to plan an ad campaign.<br />
One trick is to reinterpret the "commit to delivery date" into agile terms. Get a stable backlog and learn the team's velocities. This way you can commit to the same "distance". Things will change, but (as always) it's down to making things fit into the available time.</p>
<p>For this work we need some iterations under our belt to know our velocity and hashing out what the product backlog should contain. Therefore, mix the project plan's you have do at the start with some "real work" like coding. Inspect and adapt. After while I think you will able to commit to management.</p>
<p><strong>Focus on the next sprint?</strong><br />
You shouldn't just focus on the next sprint. The closest work (sprint) is fine grained and the most well understood. The further away (further down on the product backlog), the more coarse grained should the user stories be. No point in being specific, when they're far into the future.</p>
<p><strong>Resources?</strong><br />
Which resources can you get? Go for full time members. Make sure can keep them. Look at the product backlog and calculate what you can get done with the people (velocity etc) that you got. The important part is to couple the resources with the goals. All too often your resources get slashed and the goal knocked into orbit - and not on the same day.<br />
Get them in synch so that a change in one of them will affect the other.</p>
<p>I hope this helped.</p>
<p>Regards,<br />
Björn</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.jayway.com/2008/12/09/questions-from-the-%c3%b8redev-session-shock-therapy/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Accelerometer and Vibration on the iPhone</title>
		<link>http://blog.jayway.com/2008/11/25/accelerometer-and-vibration-on-the-iphone/</link>
		<comments>http://blog.jayway.com/2008/11/25/accelerometer-and-vibration-on-the-iphone/#comments</comments>
		<pubDate>Tue, 25 Nov 2008 07:48:47 +0000</pubDate>
		<dc:creator>Fredrik Olsson</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[Embedded]]></category>
		<category><![CDATA[accelerometer]]></category>
		<category><![CDATA[frameworks]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[objective-c]]></category>
		<category><![CDATA[oredev]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://blog.jayway.com/?p=464</guid>
		<description><![CDATA[Last friday I attended an excellent session at Øredev 2008, on Android by Mike Jennings from Google. At the end of the presentation Mike show the code for a simple application with a bouncing blue ball, controlled by the accelerometer. What stroke me was that the git of the application was 85 lines of code, [...]]]></description>
			<content:encoded><![CDATA[<p>Last friday I attended an excellent session at <a href="http://www.oredev.org">Øredev 2008</a>, on <a href="http://code.google.com/android/">Android</a> by Mike Jennings from Google. At the end of the presentation Mike show the code for a simple application with a bouncing blue ball, controlled by the accelerometer. What stroke me was that the git of the application was 85 lines of code, and Mike told us most of the physics and life cycle code was hidden away. I have never used the accelerometer on the iPhone, but my gut told me that 85 lines was allot of code.</p>
<p>So I took out my laptop during the next 60 minutes of Panel Debate, and wrote an iPhone app, and as I expected the code landed on 46 lines of code for the actual application logic, physics, grits and all. Or 112 lines of code if headers and boiler-plate should be counted as well.</p>
<p>This blog post will describe what I did, in a quite nice model-view-controller fashion <em>(Model and Controller is implemented in the same class)</em>.</p>
<ul>
<li>First of all I needed a view to display my bouncing ball on, I choose to subclass UIViewController to handle this view.</li>
<li>A standard UIView instance with a UIImageView sub-view for the ball is all I need for my view, this I setup using Interface Builder.</li>
<li>And the model/logic is handled by one CGPoint for the current location, and one CGPoint with the current delta movement of the ball.</li>
</ul>
<p>First the custom view controller sets up itself as the accelerometer delegate when awakening from it's nib-file.</p>
<pre class="objc">-<span style="color: #002200;">&#40;</span><span style="color: #0000ff;">void</span><span style="color: #002200;">&#41;</span>awakeFromNib;
<span style="color: #002200;">&#123;</span>
  self.location = CGPointMake<span style="color: #002200;">&#40;</span><span style="color: #0000dd;">160</span>, <span style="color: #0000dd;">230</span><span style="color: #002200;">&#41;</span>;
  UIAccelerometer* accelerometer = <span style="color: #002200;">&#91;</span>UIAccelerometer sharedAccelerometer<span style="color: #002200;">&#93;</span>;
  accelerometer.updateInterval = <span style="color: #0000dd;">0.02</span>;
  accelerometer.delegate = self;
<span style="color: #002200;">&#125;</span></pre>
<p>Then comes a private function for the <em>quite faked physics</em>, it is responsible for detecting if a value with a given delta movement has hit a min or max edge. If it do hits an edge, it flips it's delta movement with some deceleration, and corrects it's value.</p>
<pre class="objc"><span style="color: #0000ff;">static</span> inline <span style="color: #0000ff;">BOOL</span> bounce<span style="color: #002200;">&#40;</span><span style="color: #0000ff;">float</span>* val, <span style="color: #0000ff;">float</span>* delta, <span style="color: #0000ff;">float</span> min, <span style="color: #0000ff;">float</span> max<span style="color: #002200;">&#41;</span> <span style="color: #002200;">&#123;</span>
<span style="color: #339900;">#define FLIP(val, c) (c - (val - c))</span>
  <span style="color: #0000ff;">if</span> <span style="color: #002200;">&#40;</span>*val &lt; min || *val &gt; max<span style="color: #002200;">&#41;</span> <span style="color: #002200;">&#123;</span>
    *delta = -<span style="color: #002200;">&#40;</span>*delta * <span style="color: #0000dd;">0.75</span><span style="color: #002200;">&#41;</span>;
    <span style="color: #0000ff;">float</span> loc = *val &lt; min ? min : max;
    *val = FLIP<span style="color: #002200;">&#40;</span>*val, loc<span style="color: #002200;">&#41;</span>;
    <span style="color: #0000ff;">return</span> YES;
  <span style="color: #002200;">&#125;</span>
  <span style="color: #0000ff;">return</span> NO;
<span style="color: #002200;">&#125;</span></pre>
<p>And lastly the delegate method that is called by the accelerometer. Here we update the delta movement, and use the bounce-function to detect and compensate location+delta when the ball hits any edges. If an edge it hit, a vibration is also triggered.</p>
<pre class="objc">-<span style="color: #002200;">&#40;</span><span style="color: #0000ff;">void</span><span style="color: #002200;">&#41;</span>accelerometer:<span style="color: #002200;">&#40;</span>UIAccelerometer*<span style="color: #002200;">&#41;</span>accelerometer
       didAccelerate:<span style="color: #002200;">&#40;</span>UIAcceleration*<span style="color: #002200;">&#41;</span>acceleration;
<span style="color: #002200;">&#123;</span>
<span style="color: #339900;">#define CAP(val, max) (val &lt; -max ? -max : (val &gt; max ? max : val))</span>
  CGPoint delta = CGPointMake<span style="color: #002200;">&#40;</span>CAP<span style="color: #002200;">&#40;</span>self.delta.x + acceleration.x, <span style="color: #0000dd;">32</span><span style="color: #002200;">&#41;</span>,
                              CAP<span style="color: #002200;">&#40;</span>self.delta.y - acceleration.y, <span style="color: #0000dd;">32</span><span style="color: #002200;">&#41;</span><span style="color: #002200;">&#41;</span>;
  CGPoint location = CGPointMake<span style="color: #002200;">&#40;</span>self.location.x + delta.x,
                                 self.location.y + delta.y<span style="color: #002200;">&#41;</span>;
  <span style="color: #0000ff;">if</span> <span style="color: #002200;">&#40;</span>bounce<span style="color: #002200;">&#40;</span>&amp;location.x, &amp;delta.x, <span style="color: #0000dd;">8</span>, self.view.bounds.size.width - <span style="color: #0000dd;">8</span> <span style="color: #002200;">&#41;</span> ||
      bounce<span style="color: #002200;">&#40;</span>&amp;location.y, &amp;delta.y, <span style="color: #0000dd;">8</span>, self.view.bounds.size.height - <span style="color: #0000dd;">8</span><span style="color: #002200;">&#41;</span><span style="color: #002200;">&#41;</span>
  <span style="color: #002200;">&#123;</span>
      AudioServicesPlayAlertSound<span style="color: #002200;">&#40;</span>kSystemSoundID_Vibrate<span style="color: #002200;">&#41;</span>;
  <span style="color: #002200;">&#125;</span>
  self.delta = delta;
  self.location = location;
  self.ballView.center = self.location;
<span style="color: #002200;">&#125;</span></pre>
<p>In conclusion Cocoa Touch requires surprisingly little code for accessing and using the accelerometer and trigger a vibration. Triggering a vibration is literary done with a single line of code. The lines of code needed to setup and listen to the accelerometer can literary be counted on the fingers of one hand.</p>
<p>On the downside there is no finer control of the vibration, and if you like to have the rotation angles of the device instead of simple gravity forces of the x, y and z axis, then you must do the math for yourself. Simple enough, but it would had been nice to have to current rotations around each axis as well. </p>
<p>The full source code can be downloaded <a href="http://www.peylow.se/BouncyBall.zip">here</a>.</p>
<p>ps. I dare Mike Jennings to best this <img src='http://blog.jayway.com/wordpress/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> . ds.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.jayway.com/2008/11/25/accelerometer-and-vibration-on-the-iphone/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>PowerMock 1.0 released</title>
		<link>http://blog.jayway.com/2008/11/21/powermock-10-released/</link>
		<comments>http://blog.jayway.com/2008/11/21/powermock-10-released/#comments</comments>
		<pubDate>Fri, 21 Nov 2008 20:54:42 +0000</pubDate>
		<dc:creator>Jan Kronquist</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Testing]]></category>
		<category><![CDATA[easymock]]></category>
		<category><![CDATA[junit]]></category>
		<category><![CDATA[mock]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[oredev]]></category>
		<category><![CDATA[powermock]]></category>

		<guid isPermaLink="false">http://blog.jayway.com/?p=456</guid>
		<description><![CDATA[We have released 1.0 of PowerMock just in time for the Øredev conference! PowerMock is an open source mock framework based on EasyMock that allow you to mock static methods, private methods and even constructors. Our intent is mainly to allow unit testing of legacy code and people really seemed to appreciate this idea at the conference.]]></description>
			<content:encoded><![CDATA[<p>We have released 1.0 of <a href="http://www.powermock.org">PowerMock</a> just in time for the <a href="http://www.oredev.org/">Øredev</a> conference! PowerMock is an open source mock framework based on <a href="http://www.easymock.org/">EasyMock</a> that allow you to mock static methods, private methods and even constructors. Our intent is mainly to allow unit testing of legacy code and people really seemed to appreciate this idea at the conference.</p>
<p>We now think that the API is stable enough and we have also tested PowerMock in a couple of projects, but of course since we were presenting at the conference it is no coincidence that we released PowerMock 1.0 just days before. <img src='http://blog.jayway.com/wordpress/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>The details of the changes can be found in the <a href="http://powermock.googlecode.com/svn/trunk/changelog.txt">changelog</a> but here are some of the highlights since <a href="http://blog.jayway.com/2008/10/27/powermock-08-released/">PowerMock 0.8</a>:</p>
<ul>
<li>The ability to <a href="http://code.google.com/p/powermock/wiki/BypassEncapsulation">set and get internal state</a> based on an object type. This means that you get more refactor friendly code while still being able to set internal state. </li>
<li>Implemented <a href="http://code.google.com/p/powermock/wiki/ReplayAllAndVerifyAll">replayAll and verifyAll</a>. These can be used to replay and verify all mocks created by PowerMock without having to explicitly specify each and everyone. Thanks to <a href="http://www.agilejava.eu/">Ivar Grimstad</a> for suggesting this!</li>
<li>Added support for specifying parameter types for expectNew. <a href="http://code.google.com/p/powermock/wiki/MockConstructor">Mocking constructor calls</a> is a unique feature of PowerMock that people typically find very cool!</li>
</ul>
<p>During the conference I talked to several people and got really good feedback. Everybody seemed to like the idea of being able to unit test legacy code and code that haven't been designed for testing. <a href="http://www.two-sdg.demon.co.uk/curbralan/kevlin.html">Kevlin Henney</a> made a good job of <a href="http://www.oredev.org/topmenu/program/tracktest/kevlinhenney.4.3efb083311ac562f9fe800011931.html">defining and describing various types of unit testing</a> during his talk at Øredev and we talked about the difference between essentially untestable code and accidentally untestable code. PowerMock solves the problem with code being untestable for technical reasons (part of the accidentally untestable). With all the great sessions and good discussions Øredev was yet again a great experience!</p>
<p>I have made <a href="http://powermock.googlecode.com/files/PowerMockAtOredev.pdf">the slides from the presentation</a> available at <a href="http://powermock.org">powermock.org</a>. Note that the demo we showed was actually from the trunk and not from the 1.0 release!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.jayway.com/2008/11/21/powermock-10-released/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Android on the FreeRunner</title>
		<link>http://blog.jayway.com/2008/11/21/android-on-the-freerunner/</link>
		<comments>http://blog.jayway.com/2008/11/21/android-on-the-freerunner/#comments</comments>
		<pubDate>Fri, 21 Nov 2008 17:01:48 +0000</pubDate>
		<dc:creator>Peter Neubauer</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[Embedded]]></category>
		<category><![CDATA[Events]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[oredev]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://blog.jayway.com/?p=450</guid>
		<description><![CDATA[Hi there, Øredev was great success, especially all the people and the organization - a big Thank You to Michael and Emily for making this possible, you rock! Now, it was really awesome to exchange Android games with Mike Jennings fro the Android team, and get him excited over the recent Android port to the [...]]]></description>
			<content:encoded><![CDATA[<p>Hi there,</p>
<p>Øredev was great success, especially all the people and the organization - a big Thank You to Michael and Emily for making this possible, you rock!</p>
<p>Now, it was really awesome to exchange Android games with Mike Jennings fro the Android team, and get him excited over the recent Android port to the Neo FreeRunner! Thanks Anders Hedberg for coming over to fix the FR, and to all the OpenMoko enthusiasts doing the hard work!</p>
<p><a href="http://blog.jayway.com/wordpress/wp-content/uploads/2008/11/1227281553155.jpg" rel="lightbox"><img class="alignnone size-medium wp-image-451" title="Android on the NeoFreerunner" src="http://blog.jayway.com/wordpress/wp-content/uploads/2008/11/1227281553155-225x300.jpg" alt="" width="225" height="300" /></a></p>
<p>/peter neubauer</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.jayway.com/2008/11/21/android-on-the-freerunner/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Give back my XMPP in Android!</title>
		<link>http://blog.jayway.com/2008/11/21/give-back-my-xmpp-in-android/</link>
		<comments>http://blog.jayway.com/2008/11/21/give-back-my-xmpp-in-android/#comments</comments>
		<pubDate>Fri, 21 Nov 2008 16:46:25 +0000</pubDate>
		<dc:creator>Peter Neubauer</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[Embedded]]></category>
		<category><![CDATA[Events]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[oredev]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://blog.jayway.com/?p=443</guid>
		<description><![CDATA[Since the release of the Android SDK 1.0, people (including me) have been complaining about the lack of connectivity for the very convenient Smack API to talk to Googles GTalk servers following http://davanum.wordpress.com/2007/12/31/android-just-use-smack-api-for-xmpp/, see here. However, yesterday @Øredev, I met Mike Jennings from the Android team and together we looked into this problem over a [...]]]></description>
			<content:encoded><![CDATA[<p>Since the release of the Android SDK 1.0, people (including me) have been complaining about the lack of connectivity for the very convenient Smack API to talk to Googles GTalk servers following <a title="this tutorial" href="http://davanum.wordpress.com/2007/12/31/android-just-use-smack-api-for-xmpp/">http://davanum.wordpress.com/2007/12/31/android-just-use-smack-api-for-xmpp/</a>, see <a title="XMPP problems" href="http://groups.google.com/group/android-developers/search?hl=en&amp;group=android-developers&amp;q=xmpp&amp;qt_g=Search+this+group">here</a>.</p>
<p>However, yesterday @Øredev, I met Mike Jennings from the Android team and together we looked into this problem over a beer in the Oracle booth. Looking into the current SVN source at <a title="source" href="http://svn.igniterealtime.org/svn/repos/smack/trunk/source" target="_blank">http://svn.igniterealtime.org/svn/repos/smack/trunk/source</a>, it seemed that a fast hack to get things working (especiallly the keystore problem on the device) would be to simply disable SSL negotiation.This does of course not work for SSL stuff, but it gets you going and it is enough for talk.google.com:5222. It is enough to just disable SSL negotiation by hardcoding it away in the ConnectionConfiguration.java, and comment out everything related to java.beans and other packages that are not present on the Android platform to get things working.</p>
<p>After doing that, voila things started to work and I am now happily logging in programatically via SVN Smack again!</p>
<p>Thanks Mike for the hints, help and a great BouncingBall application!</p>
<p>For anyone intersted, I am attaching the patch.</p>
<p>/peter neubauer</p>
<p><a href="http://blog.jayway.com/wordpress/wp-content/uploads/2008/11/smackdiff.zip">smackdiff</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.jayway.com/2008/11/21/give-back-my-xmpp-in-android/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>Where to listen to Scrum Shock Therapy</title>
		<link>http://blog.jayway.com/2008/11/18/where-to-listen-to-scrum-shock-therapy/</link>
		<comments>http://blog.jayway.com/2008/11/18/where-to-listen-to-scrum-shock-therapy/#comments</comments>
		<pubDate>Tue, 18 Nov 2008 10:12:29 +0000</pubDate>
		<dc:creator>Björn Granvik</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[oredev]]></category>
		<category><![CDATA[scrum]]></category>
		<category><![CDATA[shock]]></category>
		<category><![CDATA[therapy]]></category>

		<guid isPermaLink="false">http://blog.jayway.com/?p=429</guid>
		<description><![CDATA[Just a quick note on Scrum Shock Therapy. I will give a session on this subject at the Øredev conference on Tuesday at around 10 o'clock. If you can make it I will talk about the whole shebang - recipes for the team, management and organisation. I'd love to get your feedback. See you in [...]]]></description>
			<content:encoded><![CDATA[<p>Just a quick note on Scrum Shock Therapy. I will give a session on this subject at the <a href="http://www.oredev.org">Øredev</a> conference on Tuesday at around 10 o'clock. If you can make it I will talk about  the whole shebang - recipes for the team, management and organisation.</p>
<p>I'd love to get your feedback. See you in the halls and the Way Group booth.<br />
Or you can just give your comments about the session here on this blog.<div id="attachment_434" class="wp-caption alignright" style="width: 140px"><a href="https://www.oredev.org"><img src="http://blog.jayway.com/wordpress/wp-content/uploads/2008/11/oredev2008.jpg" alt="Developer&#039;s conference in Malmö, Sweden" title="Øredev 2008" width="130" height="180" class="size-full wp-image-434" /></a><p class="wp-caption-text">Developer's conference in Malmö, Sweden</p></div></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.jayway.com/2008/11/18/where-to-listen-to-scrum-shock-therapy/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Øredev 2007</title>
		<link>http://blog.jayway.com/2008/02/01/%c3%b8redev-2007/</link>
		<comments>http://blog.jayway.com/2008/02/01/%c3%b8redev-2007/#comments</comments>
		<pubDate>Fri, 01 Feb 2008 11:41:58 +0000</pubDate>
		<dc:creator>Stefan Li</dc:creator>
				<category><![CDATA[Events]]></category>
		<category><![CDATA[conference]]></category>
		<category><![CDATA[jayview]]></category>
		<category><![CDATA[oredev]]></category>

		<guid isPermaLink="false">http://blog.jayway.com/?p=3409</guid>
		<description><![CDATA[As most of you know Jayway is one of the organizers of Øredev. Knowing that, and knowing how much we love our own conference, you might not trust our judgment in this review. We beg to differ, and ensure you that Øredev is just as enjoyable as we describe it in this article. The Conference [...]]]></description>
			<content:encoded><![CDATA[<p><strong>As most of you know Jayway is one of the organizers of Øredev. Knowing that, and knowing how much we love our own conference, you might not trust our judgment in this review. We beg to differ, and ensure you that Øredev is just as enjoyable as we describe it in this article. </strong> </p>
<h2>The Conference</h2>
<p>During the last three years, Øredev has grown from a promising initiative to one of<br />
the biggest IT-conferences in Scandinavia. During this year’s event, over 800 visitors<br />
attended more than 100 events. To handle the increasing crowd, the conference was<br />
held at a new location, MalmöMässan, which offered bigger and better conference<br />
halls and more space for the show floor.<br />
The location also offered a lack of heating in some rooms, which in the Swedish<br />
November weather translates into cold conference halls. People kept chugging cof-<br />
fee to keep warm, and everybody wished Oracle would hand out blankets instead<br />
of bottle chillers.<br />
As many as nine parallel tracks were available this year. Back from last year were:<br />
Java, .NET, Methods & Tools, etc. In addition to these, Øredev 2007 offered several<br />
new tracks such as Architecture, Case Studies and more. Especially refreshing were<br />
the User Experience sessions, an important yet often overlooked topic.<br />
Further indicating the growing status of the conference was the number of no-<br />
table speakers that participated this year. The list included big names such as Andy<br />
Hunt, Joel Spolsky, Kevlin Henney, James Coplien, Dan North, and Dr. Jeff Suth-<br />
erland.<br />
At the exhibition floor 26 companies were fighting for the visitors attention. The<br />
innovation in terms of advertising varied ranging from plain old booths with posters<br />
and free pens to elaborate coding competitions with iPods to win.<br />
In spite of being an IT conference, there was only one robot on the show floor,<br />
the SMErobot from Lund. Completely implemented in Java the robot was solving<br />
sudoku and carving in wood taking it’s instructions from a piece of Anoto paper. As<br />
a request for new functionality we would like to see the robot performing massage.<br />
Should not be too hard to implement, considering that the platform is Java based.</p>
<h2>The keynotes</h2>
<p>Being a keynote speaker is always special. There are high expectations of both vi-<br />
sions and entertainment. Being recognized in the business, you would better have a<br />
good presentation up your sleeve. Although some of this years speeches contained<br />
more wittiness than visions, there were three enjoyable keynotes to listen to. </p>
<h3>Andy Hunt: How hard can it be?</h3>
<p>Andy Hunt is well known as one of the 17 founders of the Agile Alliance and the<br />
co-founder of the Pragmatic bookshelf.<br />
During his opening keynote, Hunt asked the audience the infamous question<br />
“How hard can it be?”. He answered the question himself by stating that there are<br />
two different types of complexity, namely essential complexity and accidental com-<br />
plexity. Essential complexity is the complexity required to do a job. It is something<br />
that we all have to live with, some things are hard to achieve by nature. Accidental<br />
complexity or unnecessary complexity on the other hand is something that is arti-<br />
ficial. It should and can be prevented if it is recognized accordingly. There are many<br />
possible reasons for accidental complexity; prejudices or ignorance, stress or lack of<br />
motivation or even just bad luck. Regardless reason, the recipe to avoid accidental<br />
complexity is always the same: rely on reliable things, make a purposeful plan and<br />
stick to it. </p>
<h3>Dan North: No Best Practices: Methodology for thinkers</h3>
<p>Dan North is a renowned speaker from other conferences like JAOO, Agile and<br />
OOPSLA in topics like learning theory and behaviour-driven design. The keynote<br />
North gave at Øredev showed he has a rightful reputation.<br />
As the title indicates, the main mantra in North’s presentation was that there is<br />
no such thing as best practices. As he presented this theory the feeling was similar to </p>
<p><img src="http://blog.jayway.com/wordpress/wp-content/uploads/2009/12/Picture-77.png" alt="Keynote speaker Dan North" title="Keynote speaker Dan North" width="424" height="242" class="alignnone size-full wp-image-3410" /></p>
<p>the scene in Dead Poet’s Society where the teacher asks his students to rip out the<br />
first chapter of their text books.<br />
As a basis for his claim, North explained the Dreyfus Model of Skill Acquisi-<br />
tion. The Dreyfus Model is in itself an interesting topic and describes five different<br />
stages in learning: Novice, Advanced Beginner, Competent, Proficient and Expert.<br />
The novice is the stage of an absolute beginner who relies on rules and guidance to<br />
be able to function whereas the Expert works based off intuition and knowledge at<br />
the subconscious level that has been gathered through many years of work. The in-<br />
teresting part is that the efficiency of people at the expert level is severely reduced if<br />
they are bounded by the safe environments such as a “best practice” that the novice<br />
needs. Best practices are in other words obstructing the people who are the best, the<br />
experts, from doing their job effectively. </p>
<h3>Joel Spolsky: Developing Great Software</h3>
<p>Joel Spolsky has reached his biggest audience through his website joelonsoftware.<br />
com. He is the founder of Fog Creek Software and has created FogBugz, a popular<br />
project management system.<br />
Ten seconds into his seminar, Spolsky immediately showed that he belongs to the<br />
rare selection of people that knows how to make a powerpoint presentation that is<br />
more than just a bunch of slides. As Spolsky brought up a huge picture of Victoria<br />
Beckham on the first page, you knew that you were in for a treat. The topic of the<br />
speech was the importance of good looking software.<br />
Spolsky argued that no matter how good your software is, you will not reach<br />
mass market unless it looks good. He illustrated this through various comparisons<br />
of popular products. Particularly entertaining was the part where he brought up a<br />
Windows XP simulation created entirely within the powerpoint presentation. One<br />
could argue whether that was a good example to bring up in the context of his<br />
speech. Windows is a product that doesn’t necessarily look good compared to one<br />
of its main competitors (OS X), yet has a vastly larger market share. Nevertheless,<br />
the display was impressive and produced lots of laughs from the audience as Spolsky<br />
struggled with various pop-ups and failures in his powerpoint-driven “Windows”.<br />
Even though his presentation clearly was more about entertainment than anything<br />
else, he managed to state an important point: software needs to look good to suc-<br />
ceed! </p>
<p><img src="http://blog.jayway.com/wordpress/wp-content/uploads/2009/12/Picture-78.png" alt="Keynote speaker Joel Spolsky " title="Keynote speaker Joel Spolsky " width="427" height="289" class="alignnone size-full wp-image-3411" /></p>
<h2>Sharing knowledge</h2>
<p>Besides the keynotes the real knowledge sharing was made in the around 80 semi-<br />
nars and in the exhibition hall.<br />
Following the Java track we witnessed the official launch of the Qi4J framework,<br />
introducing Composite Oriented programming, redefining the way we use OOP<br />
today. The new concepts that Qi4J bring are not obvious, even to somebody with<br />
extensive Java experience. We are hoping that Qi4J for dummies will turn up in our<br />
local book store soon.<br />
We also got a first glimpse of Java FX Script, the new GUI framework from<br />
SUN. It has been developed to provide an alternative to the clunky looking Swing<br />
interfaces. Although not yet mature, it is meant to compete with technologies like<br />
Flash and Silverlight.<br />
Another interesting seminar was delivered by Neo Technology, showing us a new<br />
and faster way to store data. Briefly, they have implemented a database using a net-<br />
base, i.e. networks in Java rather than database tables. During the presentation, they<br />
performed a simulated Facebook relation search outclassing a traditional database<br />
by the magnitude of a million.<br />
Identifying some of the trends using Java as a platform rather than as a language is<br />
becoming big. More lightweight languages and scripts such as JRuby on Rails make<br />
use of the Java platform. Domain Driven Design and Web 2.0 (still) were other buz-<br />
zwords that floated around in the lecture halls. As always at Øredev there was a big<br />
focus on open source. The business is changing more towards using and developing<br />
open source frameworks incorporating community thinking into their development<br />
process. There were several seminars that both presented new functionality within<br />
existing frameworks and showed smart ways of using existing technologies. One<br />
example was the demonstration of the new batch framework in Spring.<br />
Sitting in on some of the test and project management seminars a couple of key-<br />
words emerged over and over again, namely “agile” and “test driven”. Even though<br />
most people know that these methods increase productivity and quality of the code,<br />
a quick audience survey showed that there are still few development teams that<br />
actually have incorporated these into their processes. Apparently, it is still tricky to<br />
convince your boss that agile development actually does bring huge winnings.</p>
<h2>Evening activities </h2>
<p>After a full day of new knowledge, inspiring lectures and networking the stage was<br />
taken by the UK stand-up comedian Shazia Mirza. Mirza is a highly acclaimed co-<br />
median and a columnist for the New Statesman. She was recently profiled on CBS<br />
‘60 minutes and has performed all over Europe and USA. Mirza put on a great show<br />
not being the least shy or politically correct, even though she was, as she put it, “the<br />
only Asian woman amongst 600 computer nerds”.<br />
Some great laughs later it was back to business with late evening “Birds Of Feath-<br />
ers” (BOFs), making full flown eagles out of the feathers of knowledge we had been<br />
given during the conference. Some of us joined Owen Taylor at Gigaspaces, making<br />
a complete Gigaspace storage run on our laptops. We were given a chance to try<br />
out this new technology together with one of it’s creators, enabling us to bring the<br />
installation back home for further experiments and tests. We got (and still have) a<br />
good possibility to look under the hood of the magic this product brings, at least that<br />
is promised by Taylor.<br />
For the people that had enough of birds and feathers there was more entertain-<br />
ment from our own band Rockway. </p>
<p><img src="http://blog.jayway.com/wordpress/wp-content/uploads/2009/12/Picture-79.png" alt="Stand-up comedian Shazia Mirza " title="Stand-up comedian Shazia Mirza " width="418" height="246" class="alignnone size-full wp-image-3412" /></p>
<h2>Workshops </h2>
<p>There were many that sought a hands-on experience with the material that was<br />
presented during Øredev, and all participants were given a chance to follow up the<br />
lectures with a variety of workshops. The most popular one was the full Scrum certi-<br />
fication course held by Dr Jeff Sutherland, one of the main creators and preachers of<br />
the Scrum methodology. Another popular workshop was a full day of Qi4J training<br />
allowing programmers to try out the newly launched framework. Andy Hunt also<br />
followed up his lecture on refactoring wetware, i.e. the human mind, with a three<br />
hour workshops, allowing the participants to try out some of the concepts that will<br />
increase productivity and make more efficient use of our brain cells. Hunt presented<br />
a bunch of mind tricks that would have come very handy earlier in the conference. </p>
<h2>Finally</h2>
<p>The yearly Øredev conference is a source of inspiration to an increasing amount of<br />
people. As an employee in the IT sector it is a great opportunity to get access to all<br />
the knowledge presented at the conference, get hands-on with new technologies<br />
and share the visions of some of the biggest names in the business. We tend to spend<br />
more and more time behind our screens, teaching ourselves new tools, technologies<br />
and reinventing the wheel. With Øredev there is a possibility to meet like-minded<br />
people, share experiences and last but not least, to network. Adding new contacts on<br />
your favorite social website is an important goal as any.<br />
Besides the large amount of participants attending there is an increasing number<br />
of exhibitors from all over the world. Be sure to sign up for next year, because the<br />
conference will keep on growing, not only in the number of participants, but also<br />
in importance. There is no better way to keep up to speed with the ever changing<br />
market. Hopefully, the heat will be switched on in all seminar rooms by then.<br />
Until next Øredev... </p>
<p><img src="http://blog.jayway.com/wordpress/wp-content/uploads/2009/12/Picture-80.png" alt="Øredev" title="Øredev" width="424" height="275" class="alignnone size-full wp-image-3413" /></p>
<p><em>Stefan Li, Jakob Klamra, Mattias Severson</em></p>
<p><em>Originally published in <a href="http://jayway.se/jayview">JayView</a>.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.jayway.com/2008/02/01/%c3%b8redev-2007/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

