Soundlogo
March 24, 2009

Overview

Keynote

See abstracts

Java

A mix of latest technology, trends and best practises, including both mobile and enterprise solutions from backend to web development. See abstracts

.NET

New technologies and best practices for the .NET Framework. Real life solutions and experience. We want to get you inspired. See abstracts

System i

Modernization of System i applications, New and revolutionary technology updates See abstracts

Development Process & Methodology

Agile Methodology, Test Driven Development, System Engineering, Architecture, Project Management, Best Practices See abstracts

Emerging Technologies

Emerging Technologies - presented in cooperation with ThoughtWorks. See abstracts

Tracks

Keynote

Kent Beck - Responsive Design

Kent BeckOne of the foundations of delivering a steady stream of features is continual investment in design. How can incremental design be made efficient? What forces influence design? What skills do designers need? To answer these questions I have begun examining my own practice of design and quantitatively studying existing designs. In this talk I will describe the four strategies I use when designing, the curious patterns exhibited by large systems, and successions, the most recent focus of my work.

Java

Niklas Gustavsson - REST made simple with Java

Niklas GustavssonDe senaste åren har snacket kring REST, Representational State Transfer, bara ökat. REST är den arkitekturela stil på vilket webben bygger och allt fler försöker nu se hur man kan dra nytta av den även innanför brandväggarna. JSR-311 är den nyligen antagna Java standarden för att på ett enkelt sätt utveckla REST baserade web APIer.

Vi kommer i denna session ta en närmre titt på REST och JSR-311, med fokus på att utveckla en enkel applikation. Räkna med att lära dig mycket om hur man drar nytta av lärdomarna från webben i din applikationsutveckling.

Peter Norrhall - RIA Architectural Patterns

Peter NorrhallIn this talk Peter will talk about the emerging architectural patterns developing Rich Internet Applications (RIA). There are many design issues such as state management, performance, user experience, fault tolerance and maintenance that have to be taken care of in RIA development. The presentation will cover different patterns to solve these issues and how they are supported by different frameworks. Most examples will target the different options you have on the Java platform, but could be applied on any platform.

Jonas Bonér - State, You're Doing It Wrong:
Exploring Alternative Concurrency Paradigms on the JVM

Jonas BonérWriting concurrent programs in Java is hard and writing correct concurrent programs is even harder. What should be noted is that the main problem is not concurrency itself but the use of mutable shared state. Reasoning about concurrent updates to, and guarding of, mutable shared state is extremely difficult. It imposes problems like dealing with race conditions, deadlocks, live locks, thread starvation etc.

It might come as a surprise to some people but there are alternatives to the so-called 'Shared-State Concurrency' (that has been adopted by C, C++, Java and become the default industry standard way of dealing with concurrency problems).

In this talk we will discuss the importance of immutability and explore alternative paradigms such as Dataflow Concurrency, Message-Passing Concurrency and Software Transactional Memory (STM). We will have a pragmatic discussion on the drawbacks and benefits with each paradigm and through hands-on examples show you how each one, in its own way, can raise the abstraction level and give you a model that is much easier to reason about and use. We will show you how, by choosing the right abstractions and technologies, you can make hard concurrency problems close to trivial. All discussions are driven by examples using state-of-the-art implementations available for the JVM.

Tom Stenström - XTP - when performance and availability really matters

Tom StenströmThe challenge in creating Java based business-critical solutions is Extreme Transacation Processing, when really high performance, scalability and reliability is key. This talk centers on how to improve application performance and scalability via caching architectures to reduce load on the database tier and clustered caching to provide transparent fail-over by reliably sharing live data among clustered JVMs. Oracle Coherence is an example of this kind of solution and will be presented in this talk as an example of the kind of solution needed today and how it can be applied.

Mårten Haglind - Filthy Rich Enterprise Clients

Mårten HaglindExperiences from implementing a rich client interface with Eclipse RCP technology in a production critical J2EE application

The web browser has very much become the default platform for developing user interfaces in the Java Enterprise world. But there are many drawbacks in accepting this paradigm without question. If all you have is a hammer all problems become nails. This session that draws on real-life experiences will present an alternate path complete with benefits and pitfalls on how to provide business value effectively to users of an enterprise application by using a fat client.

THE DECISION

  • How and when to go fat. Driving forces, challenges and risks to consider. Comparing and evaluating options. State of the art of rich UIs - browser-based and standalone.

THE DESIGN

  • Eclipse RCP in a nutshell. SWT, JFace, Views, Editors, Perspectives, Actions and the rest.
  • How to approach interaction design in a rich enterprise client.
  • Addressing various mechanisms. Communication with the server. Distributing the client to customers. Providing online help. Implementing security.
  • The good kind of fat. Avoiding the pitfalls of richness.

THE CONCLUSION

  • Evaluating the pros and cons.

Thorbiörn Fritzon - Java™SE 7

Thorbiörn FritzonJava™SE 7 looks like it will mark a completely new era for Java. Numerous changes are being proposed and worked feverishly on by several parties: a new packaging system with modules, new GUI frameworks and languages, a new type system, closures as well as other major language changes and new JVM features such as dynamic method invocation. All in all, Java 7 will be a very interesting release indeed. This session takes a look at what's happening, what are on the map right now as well as what might be coming in future versions.

Gavin King - Introduction to Web Beans

Gavin KingWeb Beans (JSR-299) is a new Java standard for dependency injection and contextual lifecycle management.

Web Beans defines a set of services for the Java EE environment that makes applications much easier to develop. Web Beans layers an enhanced lifecycle and interaction model over existing Java component types including JavaBeans and Enterprise Java Beans. As a complement to the traditional Java EE programming model, the Web Beans services provide:
  • an improved lifecycle for stateful components, bound to well-defined contexts,
  • a typesafe approach to dependency injection,
  • interaction via an event notification facility, and
  • a better approach to binding interceptors to components, along with a new kind of interceptor, called a decorator, that is more appropriate for use in solving business problems.

Web Beans is especially useful in the context of web applications, but is applicable to many different kinds of applications and may even be used in the Java SE context, in conjunction with an embeddable EJB Lite container, as defined in the EJB 3.1 specification.

.NET

Patrik Löwendahl - Dublin and .NET Framework 4.0 – The story of a service based architecture

Patrik LöwendahlMicrosoft is taking its push towards services even further with their next release of .NET Framework, 4.0, and it’s new application container code named “Dublin”. Come and listen to when Patrik explains how these technologies will matter in the Enterprise and how you can build scalable service based systems, get some tips and tricks and also architectural guidance on the updated version of WCF and WF.

Magnus Mårtensson - ASP.NET MVC Framework

Magnus MårtenssonThe original intent of the MVC architectural model was to capture the users mental model in the code. In ASP:NET this very thing is complex and perhaps unclear. ASP.NET MVC on the other hand promotes a clean separation of concerns between the models, views and controllers within an application. In addition the ASP.NET MVC framework is easily extended and configured with dependency injection (DI), view engines, action filters, and more plus it intuitively supports Test Driven Development (TDD).

Robert Folkesson - Silverlight Futures: Building Business Focused RIA

Robert FolkessonLearn how to take advantage of the ease and speed of the Microsoft development environment to create N-tier applications with cross platform clients that utilize the power of the .NET Framework. With the introduction of an exciting new technology for building Silverlight based business applications much of the heavy lifting when it comes to handling and validating the data through the different tiers in your solution has been built right into the platform. In this session, hear how Microsoft made N-tier application development as simple as traditional 2-tier RAD based development, provided application level solutions to developers, and how all of this is being done with the same .NET platform and tools on both the client and server.

Guy Nirpaz - Building Scalable Applications in .NET

Guy NirpazAs business requirements increase on one hand and the need for cost reduction is eminent on the other hand, it is the challenge of the project team to deliver ever more scalable and more performing services faster. In his talk, Guy Nirpaz, EVP Engineering at GigaSpaces Technologies is going to cover architecture patterns for creating high performance, scalable applications. The talk will cover In-Memory-Data-Grid patterns, as well as rapid SOA and Messaging paradigms.

Marcus Widerberg - Refactoring .NET code towards readability:
From old mess to maintainable beauty!

Marcus WiderbergThe last decade or so has seen a steadily rising awareness of the ineffectiveness coming from discomforts of old code. Visual Studio and other .NET tools provide toolsets for refactoring, and required skills have spread to application developers everywhere.

This hands on session deals with applying refactoring to old code in order to achieve greater readability and understanding. We will start by reviewing the readability of some .NET code samples together and then work through the samples and discussing readability problems as we go.

Joakim Sundén - ALT.NET - Are You Ready for the Red Pill?

Joakim SundénMany, if not most, Microsoft shops use whatever tools and practices Microsoft push out, living in blissful ignorance of the many alternatives out there. The path of least resistance is an easy one. There is, however, a minority of shops and developers, not content with swallowing the "blue pill". ALT.NET, ("Alternative.NET"), is a movement that challenges the mainstream Microsoft orthodoxy and reach outside the mainstream to adopt the best of any community: Open Source, Agile, Java, Ruby, etc. If you are comfortable with the blue pill, the story ends here. If you are curious about the red pill, you should come to this session.

Mathias Olausson - Improve your software quality with continuous integration and automated testing

Mathias OlaussonBuilding good software is hard. Building high-quality software on a tight schedule can be close to impossible. With agile techniques and iterative development we face an increased demand that we have effective quality assurance in order for us to be able to deliver solid, working software in every iteration. In this presentation we'll go through how Visual Studio Team System can be used to create a continuous integration solution where automated tests are a key part for automatic quality assurance. We'll look at the following: • Build automation and continuous integration. • Test automation and integration with Team System. • Project transparency through reports and dashboards.

System i

George Farr - IBM i Tools and compilers latest announcements and future strategy direction.

George FarrIf you are a IBM i Customer, you are in for a treat in 2009!!! IBM has made major announcements to the system as well as application development. George will discuss with you these significant changes and the new releases of RDi as well as the introduction of a new product: Rational Team Concert for IBM i. In addition, more detailed discussion will cover various topics that includes: New packaging and rebranding, new enhancements in ILE RPG and COBOL compilers, the new enhancements to application diagram that helps you in application modernization, and new enhanced capabilities that enables you to build Service Oriented Architecture (SOA) applications. We will also discuss future direction and strategy for IBM i Tools and compilers. This session is once in a life time opportunity not to be missed !

Don Denoncourt - Approaches to Application Modernization

Don DenoncourtDon Denoncourt explains how to rejuvenate your development strategies so your application provides the five basic qualities of a modern application: 1) Maintainable and testable code, 2) modular and component-based, 3) provides a rich user interface, 4) use of the Model-View-Controller design pattern, and 5) responsive to new business requirements.

Uno Ekberg - What you can do with RPG

Uno EkbergI will speak about features and use of different API:s that most programmers never had thought about.

Like dynamic creation of work files, use files without previous declaration and so on.

David Malmgren - From Green to Dream

David MalmgrenIn this presentation I will talk about how to use Silverlight and XAML from RPG to create rich web application experiences.

At IBS I have had had several positions within product development and I was the chief architect for the IBS Enterprise Java version. In my presentation I will also cover this topic and give you some insights from the project in how we succeded in migrating iSeries (RPG) applications to the Java environment.

George Farr - Getting productive with Rational tools for IBM i

George FarrRational Developer for i provides an integrated set of developer tools for native IBM i application development (RPG, COBOL, CL,and DDS). These tools, such as the application diagram, can help developers better understand their applications and help them be more productive. Rational Developer for i is the perfect on ramp for all IBM i application developers wanting to start using Rational tools such as Rational Team Concert for i. Rational Team Concert for i extends Rational Team Concert with process, work item, SCM, and build capabilities for native RPG and COBOL development on IBM i. This session introduces the capabilities of Rational Team Concert for i and how it can help solve your regulatory and audit requirements, make IT more responsive, and manage your IBM i, Web, Java, and EGL application development.

Don Denoncourt - Beyond RPG: Confessions of a Polyglot System i Programmer

Don DenoncourtDon Denoncourt, who has developed extensively with RPG, C++, Java, Groovy, and PHP, will discuss what he feels is wrong with RPG and then talk about what we can do to correct it. Don will then elaborate on what's right with RPG and how can we begin to leverage the wealth of RPG code and coders. Don will also discuss alternative language options for developing a Web front-end to your RPG. The languages that will be covered include Java, PHP, Ruby, and Groovy. Don will also discuss application frameworks including Java Server Faces, Spring, Hibernate, Zend's PHP Framework, Ruby on Rails, and Grails. Don will also cover EGL and other vendor options.

Andreas Steen - Test automation - Why, When & How?

Andreas SteenWhy should you care about test automation? In many cases legacy applications have a longer life span than a "modern" application. The more times you are going to test an application the more time and money you will save by automating the tests. Modernizing your applications? By building the new system in such a way that it will be easy to use test automation already from the start of the modernization project, will help you save time for the rest of the lifespan of the application. Using controls and GUI elements that are easy to navigate can mean the difference between easy to automate to almost impossible to automate. There are some things to consider when starting with test automation. You as a tester need to think like a developer when organizing your tests. Re-use is not just a fancy buzzword, it’s necessary to have tests that are easy to maintain when the applications changes. In this presentation I will walk you through some best practices for where to start and what to think about when automating your tests. I will give some examples

Development Process & Methodology

Emily Bache - Clean Code

Emily BacheBob Martin recently published a book called "Clean Code", in which he writes "Consider this book a description of the 'Object Mentor School of Clean Code'". Perhaps, like me, you have wondered about what other schools of coding practice there are? Whether there is a difference between clean code and beautiful code? I bet you haven't. I bet what you are wondering is whether this is remotely relevant to your daily business of producing working code in an acceptable timeframe. Your real worry is whether you'll be able to implement any functionality at all without screwing up and breaking something else!

The majority of software work involves maintaining and extending existing systems, very few of which are a joy to work with, and even fewer adhere to Bob Martin's style guide. My contention is that if legacy code is your reality, then code cleanliness should be top of your agenda. As Mike Hill once put it, if you're digging yourself into a pit, the first thing to do to improve matters is to stop digging.

Although I think most programmers recognize clean code when they see it, unfortunately it doesn't follow that they are capable of producing it. In this talk I will take a look at some concrete techniques for improving the design of your code, and developing your "code sense". Oh, and in case you were actually wondering, firstly, of course there is more than one school, and secondly, I think "beautiful" is optional, but "clean" shouldn't be.

Ola Ellnestam - Software development Team Antipatterns

Ola EllnestamSoftware development contains many day to day practices. One more effective than the other. In this talk Ola focuses on the practices that looks good but are in fact anti-patterns. He talks about build machines, co-located teams and ineffective meetings.

A handfull of anti-patterns are brought up and described. How to spot early symptoms and how to remedy the situation.

Rickard Eriksson - Fokus på kundvärde och teamutveckling
- så utnyttjar vi Lean principerna för framgång

Rickard ErikssonElicit utvecklar kundanpassad mjukvara inom framför allt administrativa stödsystem, och arbetar sedan flera år enligt en egenutvecklad Lean-baserad metod. Ta del av erfarenheter kring hur Lean används för att få ut bästa effekt ur IT-företagets alla dicipliner.

  • Agile-metoder och verktyg för att hålla kundfokus i leveranserna - så fungerar det i praktiken.
  • Kommunikation är nyckeln - bra kommunikation är bättre än dålig kommunikation, naturligtvis. Men, vad är bra kommunikation?
  • Se helheten. Det enskilda projektets förhållande till andra projekt, drift, förändringsbehov, avvikelsehantering m.m. Lean-principer för att få ut bästa effekt av ITIL.

Jens Östergaard - SCRUM - Failure Modes

Jens ÖstergaardIn this session we will take a look at failure modes for a Scrum implementation. Failure modes for Scrum Master, Team, Product Owner and Management will be discussed. There will also be discussions about failure modes in sprintplanning, daily Scrum, and sprintreview. Finally we will take a look at how to approach failure modes.

Neal Ford - Ancient Philosophers & Blowhard Jamborees

Neal FordIt turns out that ancient philosophers knew a lot about software - did you know that Plato defined object-oriented programming? This session applies old lessons to new problems and old problems to new lessons. Galileo already figured out everything you need to know about SOA. This talk explores the software development world today, spanning technologies, methodologies, the 2nd wave of outsourcing (the rise of Chindia), and pretty much every topic under the sun with an even remote connection to software development in the 3rd century BC and the 21st century AD.

In this talk I discuss how developers and managers deal with the problems encountered in traditional "enterprise" development. It turns out that most common sense has leaked out of these discussions; I hope to plug the hole. The idea behind this talk is to use ancient philosophers as a departure point to talk about all the things that are broken in the development world today.

Little or no code, but issues that developers face on a daily basis, and some solutions to flawed thinking and attitudes.

Chris Hedgate - From good to great developer - why does it matter and how can we achieve it?

Chris HedgateGreat developers know that writing code is a much smaller and easier task than understanding and modifying code is. Therefore, they make sure that the code they write is easy to understand and that future extensions to it can be done without having to go back and rewrite old functions. When implementing a new feature and facing ugly existing code, they do not simply add to the mess. Instead they first do a little cleanup to make it easier to add the new feature.

A good developer might be a lightning fast coder and very competent at solving problems. Even so, if the code is not easily maintainable it will result in reduced productivity over time. If we could only teach them refactoring, design patterns, test-driven development and DDD. If only they would care like we do...

We are doing it wrong! Instead of trying to teach techniques, we should focus on creating awareness. We must first inspire our colleagues to want to learn before we can teach them. In this presentation I will expand on this, and talk about some ways that we can use to achieve interest in moving from good to great.

Laurent Bossavit - Building Your Own Agile Process

Laurent BossavitHow do you figure out where to start with XP/Agile practices ? How to tell which practices should be used together, which can be safely set aside to begin with ? How to predict the consequences, good and bad, of changing your software development processes?

These questions often confront managers new to XP or Agile processes. It turns out that there is a methodic and rigorous way of dealing with them: arising from the discipline known as "Systems Thinking", the use of Diagrams of Effects or Causal Loop Diagrams to understand the dynamics of software projects has, by now, become a standard tool in effective XP/Agile coaching.

This session introduces the notation and the modeling activity, then offers participant a chance to consolidate their learning by actually practicing DOEs.

Niclas Nilsson - The unintuitive parts of agile

Niclas NilssonMany people and many organizations try to get their head around agile software development, but some things are just unintuitive.

How can releasing often not be an increased cost? There are all sorts of things that needs to be done when releasing, so it just have to be a waste of time? How can rework due to change of requirements be a positive thing? The real problem is the fuzzy requirements, and now agilists claim we should solve the symptom instead of the problem? And pair-programming? Come on! Paying two people to do the job of person job?

This talk will dig into why the unintuitive parts of agile actually work and why they are important cornerstones of the agile puzzle. If you think that agile feels a bit strange or if want to understand the fears that others in your organization have when you talk about agile and how you address them, this talk is for you.

Agneta Jacobson - Be Smart: Getting Good Software Quickly and at Low Cost

Agneta JacobsonOne of the most popular buzzwords in software development is agile. Today everyone wants to be agile. That is good! However, being agile is not enough. The most important character you need to have to be a great software developer is to be smart. What does that mean? Most people know intuitively what "being smart" means in everyday language, but what does it mean for software. In this session, Agneta Jacobson will describe what it means to be smart when it comes to developing software from requirements through to deployment. And being smart is more than being agile!

Niclas Nilsson - Outside in - black belt TDD/BDD

Niclas NilssonUnit testing is becoming quite common, Test-Driven Development is definitely increasing and nowadays you can even hear people talk about Behaviour-Driven Development when you enter large companies. These are all positive things, but yet, many organizations struggle.

The most common complain we hear is that the test suites are brittle. Even minor changes breaks a lot of tests and the amount of work needed to fix them is too much. This leads to situations where tests are left red and after a while, entire blocks of tests are turned off. The tests basically don't seem to even carry their own weight, let alone are the productivity gains they were supposed to be.

But don't give up! There are ways to do TDD that will give you the productivity gains you were promised, with test suites that are not heavy burdens but are instead your main point of focus and also a brilliant safety net, test suites that are much less brittle, more maintainable *and* more readable. Any skill takes going through some stages to master, and problems like this only indicate that there are a few more things to learn. This talk aims to be the starting point on your journey to become a black-belt test-driven developer.

Daniel Brolund - Start paying your Technical debt!

Daniel BrolundTechnical debt is a term often used for work to be done in the code, typically undone refactorings. As the code-base grows, unattended technical debt grows with an interest as problems start depending on one another, making it ever harder to do the right thing. Eventually, it is impossible to perform relevant design improvements within a single iteration. "Refactoring paralysis" has occurred. Daniel Brolund and Ola Ellnestam will present a light-weight, yet effective, approach used to visualize, plan and perform the needed refactorings over several iterations, without ever having a broken code-base in the process.

Derek F. Holt - Agile at Scale

Derek F. HoltThe adoption rate and associated success stories around Agile practices are at an all time high. In the early days of Agile, it was often applied to projects which were smaller in scope and typically consisted of co-located teams. Today, the picture has changed significantly. As companies look to scale agile to the enterprise level they also begin to deal with new agile complexities such as globally distributed development, growing team size along with numerous organizational complexities. This session will look at the challenges of Agile @ Scale, introduce a set of core Practices which provide a foundation for scaling Agile, as well as various new solutions from IBM Rational optimized for scaling agile teams.

Neal Ford - On the Lam from the Furniture Police

Neal FordWhen you were hired by your current employer, you may think it's because of your winning personality, your dazzling smile, or your encyclopedic knowledge of (insert technology here). But it's not. You were hired for your ability to sit and concentrate for long periods of time to solve problems, then placed in an environment where it's utterly impossible to do that! Who decides that, despite overwhelming evidence that it's bad for productivity and people hate it, that you must sit in a cubicle? The furniture police! This presentation describes the frustrations of modern knowledge workers in their quest to actually get some work done, and solutions for how to gird yourself against all those distractions. I talk about environments, coding, acceleration, automation, and avoiding repetition as ways to defeat the mid-guided attempts to sap your ability to produce good work. And I give you ways to go on the lam from the furniture police and ammunition to fight back!

David Harvey - When Agile hits the wall

David HarveyHow far does Agile scale? Multi-team, multi-site Agile projects are no big problem. But how far can you go? What happens when agile practices start hitting the boundaries of corporate culture? This talk looks at the reasons behind the organisational impediments to Agile development, and offers ways of resolving them.

Emerging Technologies

Ola Bini - Jruby in Action

Ola BiniJRuby is quickly becoming the default solution for using Ruby in the enterprise. The tight integration with Java technology, together with the outstanding libraries and frameworks in the Ruby world, makes JRuby a technology that makes development easier and more agile, while still retaining the advantages of the Java platform.

In this session, we´ll demonstrate how JRuby can be used to build GUI applications using Swing, how you can build web applications quickly using JRuby on Rails and how you can use JRuby to test your Java applications, using JtestR.

The goal of this presentation is simply to show the audience that JRuby is ready and that you can use it in your projects today and get all the benefits of both Ruby och Java technology.

Erik Stenman - Erlang: Good News, Bad News, How to Win Big

Erik StenmanIn this talk Erik will give a short introduction to Erlang, arguing for why it is so well suited for building high availability systems. He will present the key features of Erlang that have helped in making Kreditor a success. The talk will also touch on some lessons learned from building a start-up with Erlang technology. Finally, Erik will give some advice on when to use Erlang and when not to.

John Davies - Cloud Computing: Developing and Deploying applications in the cloud

John DaviesImagine being able to order 20 new computers, install your own customer version of Linux, network them up, attach a few dozen terabytes of storage and have them attached directly to the internet backbone, cool ah? Well you can and you can do it all in under 5 minutes with Cloud computing, Amazon's EC2 for example. Set up new development boxes, build machines, test boxes, deploy demos, provision hardware on demand, set up disaster recovery sites, scale into the cloud, it's all possible and it becoming a major feature of today's technology. John will explain, demonstrate and look into how cloud computing is already changing the way we work.

Björn Beskow - Agile Enterprise Development with Groovy and Grails

Björn BeskowMany enterprises have made heavy investments in the JavaEE platform. While powerful for complex problems, the productivity of the JavaEE platform has recently been challenged by dynamic web application platforms like Ruby on Rails or Scala/Lift. But how to benefit from the productivity of these dynamic platforms, while still protecting your current investment in the JavaEE platform? Enter Groovy and Grails!

Groovy is a dynamic language for the Java Virtual Machine, which integrates seamlessly with any existing Java technology. The Grails Web Application Framework is an advanced and innovative Web-application framework based on Groovy, which delivers excellent productivity regardless of whether you build your application from scratch, provides a Web GUI on top of your JPA entity model, or a Rest based Web Service adapter to your existing Spring or EJB3 based service layer.

In this talk, Björn Beskow shows how Groovy and Grails can be efficiently added to your existing JavaEE environment and boost your developer's productivity.

Anders Janmyr - Time for smalltalk

Anders JanmyrSmalltalk is a beautiful, ancient, object oriented language. When Smalltalk arrived in the 70's it was arguably before its time: processors were slow, programmers unused to object orientation and IDE's unheard of. But, now it is different: we have lightning fast processors, the majority of programmers are used to object orientation, and almost everyone is using an IDE. On top of this, languages like Ruby and Python have proven the value of dynamic typing. Dynamic typing has been criticized for not allowing proper refactoring, but since Smalltalk is image-based and you are working in a live environment it does not have the same limitations. Even if you never get to write Smalltalk production code, the time spent learning it will be well invested.

This presentation gives an overview of Smalltalk and it's supporting tools. The talk is based on the open source implementation called Squeak.

Don Syme - An Introduction to Functional, Parallel and
Asynchronous Programming with F#

Don SymeFunctional programming a hot topic: there is a growing awareness of functional techniques in the developer community, and people are beginning to see that imperative OO programming has deep limitations in a networked and concurrent multi-core world. This session will use the research language F# to explore how declarative and functional techniques are relevant to these new programming challenges. In this talk we'll take a look at some basic programming with F#, including how you can use F# to explore functional design patterns that are highly relevant no matter which language you're working in. F# also includes constructs called asynchronous workflows that help you tame the complexity of asynchronous and parallel programming and we'll take a brief look at those.

Marcus Ahnve - The Simplest Thing That Could Possibly Work

Marcus AhnveSo, you want to build a web application. You will start out small, but in your dreams it will become big, really big. You want to move fast, the first release should be out in no more than two weeks. You want technology that supports your business, not a kitchen sink solution that can be applied to whatever comes in its way. You want the simplest thing that could possibly work. Most web application stacks are armed with functionality that is never used. Relational databases are used almost exclusively for persistence despite the fact that they have a feature set designed for problems most web application developers never face. Still these kind of technologies are picked again and again by developers faced with the task to pick a tool set. By doing so they use overly complicated technology to solve the problem at hand. This talk will mention a lightweight but very capable alternative stack: Ramaze and CouchDB. Ramaze is a web application framework written in Ruby, similar to Rails but even lighter. CouchDB is an Apache project providing a distributed, fault-tolerant and schema-free document-oriented database. Together they provide all functionality required by a modern web application, but nothing more than that.