<<< Previous speaker next speaker >>>

Guilherme Silveira, Creator of Restfulie and Editorial chief of InfoQ Brazil

 Guilherme  Silveira
Guilherme Silveira is head instructor at Caelum, a training and consulting company.  He is the creator of Restfulie, editorial chief of InfoQ Brazil, technical editor for a brazilian magazine, co-founder of the largest online portuguese speaking java user group.

After several years fighting against tight coupling, Guilherme came across REST and finally understood how hypermedia could help us avoiding the client-must-be-updated mess.

Currently writing and recording a Rest from Scratch series showing how to create REST systems using hypermedia in its core in every language Restfulie supports so far: ruby, java and .net.
 Twitter: @guilhermecaelum

Presentation: "Introducing Online Education to Hypermedia agents"

Time: Wednesday 10:30 - 11:20

Location: Seacliff AB

Collaborative filtering and recommendation systems is awesome and all around us. We think about our industry and how could machine learning help us recommend something to our consumers so they will buy more and we get more money. Another way of thinking is how could machine learning change our clients life.

In the education business detecting drop outs, difficult exercises, above-the-curve students and much more can be done through machine
learning. But consuming all this information and implementing completely different strategies can be a hassle. Instead of one big project, why not distribute artificial intelligent tutors over the web using simple web apis? No hypermedia required. Dumb http apis to change the way we learn, and teach.

While real life is connected, how come the so far stablished standard for online learning does not take hypermedia into account.
Distributing agents is the first step, connecting distributed content - explanations and exercises - through hypermedia might be another step in a more decentralized learning environment.

We will go through the core machine and how both intelligent agents and distributed content can be built using such basic web technology
and connected in order to completely change the user experience while learning from one source or another.

We will see how we have been trying to change the world through education and trying to change education through today's world point
of view: connected systems on the web.

Training: "Neither just TDD nor just experience is enough. Mixing both to design good code"

Track: Tutorial

Time: Monday 09:00 - 16:00

Location: Seacliff A

"TDD is not new and developers already know that, although it has ""testing"" in its name, TDD is a design technique. However, many developers still do not know how to interpret better the test feedback in design. This workshop shows how developers should use the feedback and improve their design, using good OO principles, like SOLID.

Programmers should bring a laptop and already download a Java project.
They will implement some behaviors the way they want in well-prepared exercises. After that, solutions will be discussed and speakers will present good advices on how to interpret test feedback and possible OO solutions to the problems.

For every problem, there is time for discussing implementation quality, and also points of view until in the design point of view. In the end, some examples of bad practices in other OO languages can be discussed, and how they can be refactored into other good OO or functional style code.

We have all developed for one year in the same project and saw it becoming dirtier and dirties, until it reached the point of no return, the dark whole of code quality. How can TDD help us with good OO principles?

Learning outcomes
Real world TDD in practice
Design feedback
Good OO design
SOLID principles (Single Responsibility Principle, Open/Closed Principle, Liskov Substitution Principle, Interface Segregation Principle, and Dependency Inversion Principle) Pair programming


A set of prepared exercises is provided, one at a time, from easy to advanced. The participants are asked to implement a small feature using TDD and pair programming. They are free to solve the problem in any way they want.

After each exercise, speakers will inspect the attendee's solutions, debate them and show how to get design feedback from the test and use it to drive the code to the best possible design.

Requirements: Participants should bring their laptops with a Java compiler and Eclipse installed.

Keywords for the workshop are: TDD, Design, Quality, java, ruby,.net, OO, Solid, Patterns Target audience: Developers and architects who care about good quality and think the ""tdd implies in better code"" does not always hold and have seen poor code written both without and with TDD. Those who want to improve their design based on TDD and those who want to improve their TDD practices based on design.
Attendees for this tutorial are required to bring:
  • a laptop with
  • java and eclipse installed
  • git (optional)

Only those who bring a laptop with java and eclipse installed will be able to benefit from the workshop