We, Adam Lith and Magnus Härlin, from Squeed attended the Øredev conference this year, and we want to share our experience of this event.
How pairing adds value – Lisa Crispin (@lisacrispin)
Lisa Crispin made an excellent presentation on the subject of pair programming. She discussed why people might have a hard time starting to pair up, such as feeling uncomfortable and exposed. She also made several good arguments of the downside of pair programming as in the difficulty to get in the “zone”. She made one point which gave a nice transition to the next session we went to by Ryan McGeary, and that point was that even though you have a harder time getting into the zone as a pair, you will have a much more disciplined focus from not having your attention stolen from things such as Twitter, Facebook or emails.
Asynchronous Collaboration – Ryan McGeary (@rmm5t)
All in all this was one of the most thought provoking presentations, touching a very controversial subject, and therefore it deserved its very own blog post.
Software won – so what now? – David Rowan (@iRowan)
Volunteer your time and make great things. Lots of charity hacker groups have popped up and helped in different areas like maps with weather forecasts and videos from the New York storm.
Anything is possible. The tools and the platforms are here, the developers are the rock stars and can change the world.
Organizations where you can report if you paid a bribe to any official with all the data open so that everyone can see who are taking bribes and the extent of the corruption. With open data a lot can be achieved.
2 billion people currently connected to the internet, a number that is estimated to grow to 5 billion within 5 years. The reach of a good idea is endless.
Informative session focusing on how to only use side effects and mutability where it is really necessary and the benefits that gives.
Pure functional functions are functions without side effects which make them easier to test and the risk for subtle bugs is reduced. The functions that have side effects should be isolated.
It is possible to use first class functions, functions that are declared as variables. That enables higher order functions that accepts functions as arguments or functions that return other functions. Utilizing that makes it easier to create small abstractions for common tasks.
For-loops can often be replaced with the foreach, map or reduce depending on the purpose of the loop. It gives a shorter more readable code.
Advanced Raven Db – Aeynde Rahien (@ayende)
Raven Db is a document database and compared to a lot of other document databases it has good tooling to view, update, import and export data. The size of the database only has a fractional impact on performance for read and write operations. The indexes are automatically created based on usage. First time a query is run a temporary index is created, it takes between 10 – 20 ms. If the same index is used multiple times it will be persisted as a permanent automatic index. All index updated and creates are done on the fly by a background thread.
Any data that is stored can be queried. Raven utilizes Lucene so it is possible to make full text search as well as fuzzy search that gives suggestions if no matches are found. For data aggregation map reduce queries are used and they are created automatically and can also be updated without being recreated if the underlying data is changed.
The Raven Db server can be run as a console application, in memory or as a Windows service. When running tests it’s very handy to use the in memory server. The only thing needed is to change to the connection string.
Micro-Services Architecture – Fred George (@fgeorge52)
As the session heading suggests, Micro-Service architecture consists of a lot of small services that only have one responsibility each which makes them quite small at about 100 lines of code in each service. This enables very rapid deployment of each service as soon as it is ready for release. Every service should be able to be deployed on its own. The messages that are passed around by the services are formatted in JSON. In the reference project that Fred referred to they had used Kafka for message passing.
By using this setup the the micro services are made language agnostic. The services should be self monitoring and report problems that stops message processing. Multiple versions of the same service can exist, this way there won’t be any problems with several services needing to be updated at the same time.
Git scaling at GitHub – Vicent Martí (@vmg)
Vicent talked about the challenge of scaling the Github service. We won’t go into the details of this, but it was truly fascinating and we as windows users look forward to the future release of libgit2!
A note worthy to mention was that Vicent was excellent at rhetoric, and we would gladly listen to him again.
Exploring Datomic – Tim Ewald
This session blew our minds. Tim held a session about the Datomic database, with a very unique rethinking of the client-server architecture of most databases today. If this database is as promising as described by Tim, then you can expect a whole blog post about it in the future, once we have studied it more.
Build Web Apps Much Faster – Steve Sanderson (@stevensanderson)
Microsoft has release Windows Azure Mobile Services that is a backend service for simpler web applications, like mobile sites. By using the services you can just plug in authentication against Twitter, Facebook, Google and Microsoft Accounts. There is also a data store that is easy to use. It accepts json messages and automatically created the database structure based on the content. There is also the possibility to set up server side scripts that can be hooked in before an data manipulation to update the incoming request. The service runs on node.js and can use socket connections to make real time updates on the client.