Erlang was designed for building systems that run forever, once started the system should never be stopped. This implies several things, firstly the system should be able to "self-repair", we should be able to detect errors and correct them at run-time, it should also be distributed. A single-node system could never run forever, it might crash. Secondly it must be able to evolve with time, so we must be able to change code in the system without stopping the system. I'll show you how to do this with some simple examples.
In the lecture I'll build a small generic framework for mobile code so we can move computations around the network and restart failed computations and upgrade the code in a set of processes without stopping the system.
Joe Armstrong is the principle inventor of the Erlang programming Language and coined the term "Concurrency Oriented Programming". He has worked for Ericsson where he developed Erlang and was chief architect of the Erlang/OTP system.
In 1998 he left Ericsson to form Bluetail, a company which developed all its products in Erlang. In 2003 he obtained his PhD from the Royal Institute of Technology, Stockholm. The title of his thesis was Making reliable distributed systems in the presence of software errors." Today he works for Ericsson.
He is author of the book "Programming Erlang - Software for a concurrent world" (Pragmatic Bookshelf - July, 2007).
by Yehuda Katz
by Marcus Ahnve
It's almost impossible to not have heard of Ruby on Rails, the web framework that launched a little over five years ago and that has since grown quickly as one of the goto tool for startups and web developers around the world. Much of what makes Rails interesting comes from the Ruby language and there has never been a better time to learn how to bring Ruby into your toolbox of programming languages.
This talk will provide an introduction to how Ruby can help you, as a developer, become more productive, build more robust and maintainable software and enjoy your job even more than you do now. I will introduce key features of the language, with examples, and show how Ruby applications are developed and how they can evolve as they grow in size and become more mature. I'll go through some of the common patterns found in Ruby applications. Finally, I'll offer tips on how to get started with Ruby, whether you're approaching it for the purposes of web development, interested in using it for system administration or even for building libraries to solve problems that currently exist in your area of expertise.
What has your web application framework done for you lately? Tired of marshaling state, mapping URLs, and making sure your form fields all have unique element IDs? Ever wish complex online applications actually let you use the Back button? Seaside handles these mundane details and leaves you free to focus on creating the applications that can make or break your business.
Find out why Seaside is driving a new generation of developers to pick up a powerful and productive language called Smalltalk. Long a secret weapon in the finance, manufacturing, and transportation sectors, Smalltalk is now being used by more and more businesses to develop complex applications faster and more cheaply than their competition.
Shared Nothing, REST, HTML templates: These all have their place. But leave your conventional wisdom at the door and see if you can't discover a better way to develop your next online application.
Julian Fitzell is, among other things, the co-creator of the Seaside framework, which helps take the pain out of creating dynamic applications for the web.
He works as a software consultant for Cincom, where he provides support, development, and training. As well as web application development, his professional experience includes software engineering, network and server systems, and even theatre technology and production. He loves using tools and technology to make people happier and more productive.
Originally from Vancouver, Canada, he has spent much of the past few years in China, Germany, and various other European locales.
by Emily Bache
Python is a very readable and flexible programming language, that is frequently used to teach programming because of the straightforward syntax. In this presentation I'd like to introduce you to the language and some of the powerful testing tools available for it. I like the unit testing tool py.test because it is very straightforward to use, and it focuses on providing the best possible error message when a test fails. I'd also like to show you CaptureMock, a tool for integration testing which allows you to capture and replay interactions with a third party library.
This session is designed for programmers who don't know python yet. I'll lead you step by step through a small exercise, which will result in a pythonic, readable program with an accompanying comprehensive test suite.
Emily Bache is an independent programmer and agile testing coach, experienced with Python, Java and Ruby. These days she mostly programs Ruby on Rails, but previously held a position at AstraZeneca where she was responsible for an intranet application for computational chemistry.
The system was built using Python, and ran on a large linux cluster. In 2004 she received AstraZeneca's "Global Scientific and Technical Achievement Award" for her work.
Groovy is probably one of most well known alternative languages on the Java Virtual Machine and one of the few that started it’s life as a JVM language. It’s a dynamic scripting language with a tight Java integration that makes it a breeze to pick up if you already know some Java. It’s probably best known for its web-stack Grails, but has over the last couple of years gotten a rich ecosystem with its own testing frameworks and build-systems. In this session I hope to show you just how rich this ecosystem is and how, coupled with some Groovy skills, it can make your life as a developer easier, especially if you happen to know some Java from the start.
Leonard Axelsson first started working with Groovy in 2007 and gradually started using it more and more and now does most of his work in Groovy. In 2009 he co-founded the Groovy user-group SweGUG to further the adoption of Groovy in the Stockholm area. By day he’s a consultant with Agical, with a heavy focus on the JVM and related technologies. Leonard can be found on twitter as @xlson.
Sander van den Berg has been working with and on functional languages since 2004. He worked with statically typed languages like Clean and Haskell, but soon discovered the power of dynamic languages. Today, Sander works for Xebia, a dutch company specializing in agile software development. Within Xebia, Sander tries to promote Clojure as a mature language for projects. To promote the use of Clojure as an alternative or addition to Java projects, Sander is active in writing and speaking about the language. The main attraction of Clojure is it's expressive power: the language provides elegant solutions to complex problems.
Maurits has experience in the IT industry starting in 1991. Since that time he has worked for several multinationals in many different roles before he made the move to Xebia in 2007. Within Xebia he works as an Agile consultant. He would love to have lived in Leonardo da Vinci’s era, so he could have been a polymath (a person whose expertise spans a significant number of different subject areas) but within his limited time he tries to combine a family live, a strong passion for software metrics and toying with cool new and sometimes obscure programming languages. His favorite language at the moment is Clojure. Together with Sander van den Berg he has written several articles about Clojure. Maurits also likes to speak about Clojure on conferences since he firmly believes that because of it's many powerful concepts this language deserves much more exposure to the programming community.
Maurits can be found on Twitter as @mauritsrijk.
In this session you'll become familiar with the basic syntax of Erlang, learn how to write programs and experience the central concepts of the language: functional programming, concurrency, fault tolerance and distribution. You will get familiar with the Erlang shell and basic Erlang programs, try concurrent programming by using message passing and get a taste of Erlang distribution.
In this talk the power of using Smalltalk, in particular coding with the workspace and its image model in center, will be demonstrated. Some important features of both the Smalltalk language and its IDE(s) will be discussed and demonstrated.
In particular demonstrations of how features as closures, monkey typing, unit testing, coding in the debugger, everything is object, coding with live objects, meta objects, and reflection could be achieved.
When Björn first came across Smalltalk (around 1985) the main reasons for him starting to use it was a 50/50 between its pure oo language and its very powerful and flexible environment (and as an extra bonus it was open for inspection and modification).
Björn works as a senior consultant at Devoteam. In this role he mainly develops systems by means of Java, especially JavaEE with related frameworks and techniques.
Björn has a strong background using various systems as DEC, Lisp machines, Mac, Unix, Windows, and programming languages as Pascal, Lisp, APL, Assembler, HyperTalk, scripting, C, Simula, Ruby, Python, and Groovy, and several others. He has been a passionate user of Smalltalk for more than 25 years, and have developed a lot of software by means of it. E.g. CASE tools, (own) distribution frameworks, and various CSCW applications.
Björn has a strong interest in technical solutions, in particular in relation to object orientation, Internet and the Web, design patterns, and agile development (in particular TDD; XP, and Scrum). He has a broad knowledge and continuously follows what happens within these fields. He has also written technical literature for instance books about ooad, Smalltalk, and extreme programming.
Björn holds a PhD from The Royal Institute of Technology/Stockholm Univ. in computer science.
by Carl Lerche
Java type safety is an illusion; it offers only superficial gains, and has a high cost. Dynamic languages free us from this constraint, and open up a tremendous number of possibilities. Ruby is one of many dynamic languages, but unlike some others, it was specifically engineered for developer happiness.
In this talk, Carl will discuss what it means to have a language optimized for developer happiness, dispel some common Ruby myths, and walk the audience through some of his favorite dynamic Ruby features. At the end of this talk attendees will have a solid sense of how Ruby enables the building of great software, by happy developers, using productive and easy-to-use frameworks, like Ruby on Rails.
Until Carl Lerche discovered Ruby on Rails in 2005 he thought he would never do web development again. It was Ruby that lured him back into programming and open source development, where he still spends much of his time. He is a member of the Ruby on Rails core team but participates in many different communities. He is currently employed as a platform architect at Strobe. He also likes pie.
Tom Hughes-Croucher is a Technology Evangelist and Developer. Tom has contributed to a number of Web standards for the World Wide Web Consortium (W3C) and the British Standards Institute (BSI). He has worked for and with numerous well known brands including Yahoo!, NASA, Tesco, Three telecom and UK Channel 4.
In this talk Sergi will demonstrate the open source and web based Cloud9 IDE.
As the ending we'll have a kick ass demo of one of our hack projects at Ajax.org being developed and debugged with Cloud9. You don't want to miss this.
Sergi is Operations Manager/Senior Developer at Ajax.org. He tweets as @sergimansilla and blogs at sergimansilla.com.
While Erlang has much in common with other functional languages it does many things differently from other languages. In this talk I will look at the rationale behind Erlang and try to show how many of its important features combine to work together. I will also look at how Erlang was first developed to show the reason for some of the features in the rationale.
Robert Virding recently joined Erlang Solutions Ltd as Principal Language Expert. While at Ericsson AB, Robert Virding was one of the original members of the Ericsson Computer Science Lab, and co-inventor of the Erlang language. He has also worked as an entrepreneur and was one of the co-founders of one of the first Erlang startups (Bluetail). Robert also worked a number of years at the Swedish Defence Materiel Administration (FMV) Modeling and Simulations Group. He co-authored the first book (Prentice-Hall) on Erlang, and is regularly invited to teach and present throughout the world.
Henk Jurriens is a developer evangelist, experienced with Java, Grails & Groovy and HTML5. From 9 till 5, Henk works for Profict as software developer. Beside these hours Henk spends his time working on Grails & Groovy, HTML5 and Mobile Apps projects.
In this talk Henk will show why Groovy is so groovy and during the presentation a Google TV like web application will be build.
Henk blogs on ihenk.com and can be found on Twitter as @henkjurriens
Hosted software is expensive to run. That is why free software is usually installed, rather than hosted. But as the world moves from installed to hosted software, we see free software move to the background, and a handful of powerful monopolies (google, facebook, apple) take control of much of the software we use. Unhosted is a project that tries to stop this from happening, by providing a very scalable paradigm. It is a move away from the client-server relationship. The server you run will only serve up the source code you write. All dynamic communication between client and server is eliminated. Processing is moved to the browser, and storage is moved to per-user encrypted storage nodes.
Michiel de Jong is a scalability engineer, and founder of the unhosted project. In this talk he will explain how you, as a developer, can take advantage of the unhosted web to drastically cut down the running costs of the websites you program. Using a step-by-step example, he will show you how to turn your existing hosted website into an unhosted web app, and how the per-time and per-user hosting costs drop drastically in each step.
Is software development an art? Are computer scientists, artists? Are Hackers really Painters? In this talk, John will present his live programming system written in Clojure (called Music As Data (M.A.D)) and talk about how music can be used and manipulated as a programming language. Also, he'll talk about the beauty of Clojure and what hackers and rockstars have in common.
John is a researcher and serial entrepreneur and has worked for companies, leaders in their respective fields, ranging from photorealism algorithms to digital signage to geocoding applications to mobile applications and has designed and organized projects for multinational companies like P&G; deep in his heart though, he is an opensource geek and inventor.
He won the "New Scientist" award for his next generation virtual machine (gNVM), gained 3rd place in a national web innovation contest held in Greece, got a metal and distinction from NATO on electronic warfare and has the first advertising platform for opensource projects running on Google AppEngine.
He is part (and frequent speaker) of the Ruby Hellug, organizer of the Google's User Technology Group (GTUG) in Greece and has given numberous talks around the world.
These days he spends most of his time as a CTO at Sfalma.com, creating cool stuff with Niobium Labs and teaching at Technological Insitute of Peiraus.
by Wim Godden
Caching has been a 'hot' topic for a few years. But caching takes more than merely taking data and putting it in a cache : the right caching techniques can improve performance and reduce load significantly. But we'll also look at some major pitfalls, showing that caching the wrong way can bring down your site.
If you're looking for a clear explanation about various caching techniques and tools like Memcached, Nginx and Varnish, as well as ways to deploy them in an efficient way, this talk is for you.
12th–13th March 2011