JDD 2013. 03 Welcome 04 Schedule 09 After Party 10 Map 12 Lectures 31 Tutorials / Workshops 36 Sponsors



Podobne dokumenty
SSW1.1, HFW Fry #20, Zeno #25 Benchmark: Qtr.1. Fry #65, Zeno #67. like

Tychy, plan miasta: Skala 1: (Polish Edition)

Wojewodztwo Koszalinskie: Obiekty i walory krajoznawcze (Inwentaryzacja krajoznawcza Polski) (Polish Edition)

Katowice, plan miasta: Skala 1: = City map = Stadtplan (Polish Edition)

Karpacz, plan miasta 1:10 000: Panorama Karkonoszy, mapa szlakow turystycznych (Polish Edition)

Zakopane, plan miasta: Skala ok. 1: = City map (Polish Edition)

ERASMUS + : Trail of extinct and active volcanoes, earthquakes through Europe. SURVEY TO STUDENTS.

Miedzy legenda a historia: Szlakiem piastowskim z Poznania do Gniezna (Biblioteka Kroniki Wielkopolski) (Polish Edition)

MaPlan Sp. z O.O. Click here if your download doesn"t start automatically

ARNOLD. EDUKACJA KULTURYSTY (POLSKA WERSJA JEZYKOWA) BY DOUGLAS KENT HALL

Stargard Szczecinski i okolice (Polish Edition)

Wojewodztwo Koszalinskie: Obiekty i walory krajoznawcze (Inwentaryzacja krajoznawcza Polski) (Polish Edition)

Wojewodztwo Koszalinskie: Obiekty i walory krajoznawcze (Inwentaryzacja krajoznawcza Polski) (Polish Edition)

Pielgrzymka do Ojczyzny: Przemowienia i homilie Ojca Swietego Jana Pawla II (Jan Pawel II-- pierwszy Polak na Stolicy Piotrowej) (Polish Edition)

Miedzy legenda a historia: Szlakiem piastowskim z Poznania do Gniezna (Biblioteka Kroniki Wielkopolski) (Polish Edition)

Karpacz, plan miasta 1:10 000: Panorama Karkonoszy, mapa szlakow turystycznych (Polish Edition)

Wojewodztwo Koszalinskie: Obiekty i walory krajoznawcze (Inwentaryzacja krajoznawcza Polski) (Polish Edition)

Karpacz, plan miasta 1:10 000: Panorama Karkonoszy, mapa szlakow turystycznych (Polish Edition)

Wybrzeze Baltyku, mapa turystyczna 1: (Polish Edition)

Ankiety Nowe funkcje! Pomoc Twoje konto Wyloguj. BIODIVERSITY OF RIVERS: Survey to students

Wroclaw, plan nowy: Nowe ulice, 1:22500, sygnalizacja swietlna, wysokosc wiaduktow : Debica = City plan (Polish Edition)

Blow-Up: Photographs in the Time of Tumult; Black and White Photography Festival Zakopane Warszawa 2002 / Powiekszenie: Fotografie w czasach zgielku

DODATKOWE ĆWICZENIA EGZAMINACYJNE

Poland) Wydawnictwo "Gea" (Warsaw. Click here if your download doesn"t start automatically

Wojewodztwo Koszalinskie: Obiekty i walory krajoznawcze (Inwentaryzacja krajoznawcza Polski) (Polish Edition)

Egzamin maturalny z języka angielskiego na poziomie dwujęzycznym Rozmowa wstępna (wyłącznie dla egzaminującego)

Leba, Rowy, Ustka, Slowinski Park Narodowy, plany miast, mapa turystyczna =: Tourist map = Touristenkarte (Polish Edition)

Ankiety Nowe funkcje! Pomoc Twoje konto Wyloguj. BIODIVERSITY OF RIVERS: Survey to teachers

Wojewodztwo Koszalinskie: Obiekty i walory krajoznawcze (Inwentaryzacja krajoznawcza Polski) (Polish Edition)

you see decision. oznacza to, Whenever kiedy widzisz biznes, someone once made Za każdym razem, który odnosi sukces,

Network Services for Spatial Data in European Geo-Portals and their Compliance with ISO and OGC Standards

Dolny Slask 1: , mapa turystycznosamochodowa: Plan Wroclawia (Polish Edition)

Estimation and planing. Marek Majchrzak, Andrzej Bednarz Wroclaw,

Helena Boguta, klasa 8W, rok szkolny 2018/2019

Program szkolenia: Fundamenty testowania

Test sprawdzający znajomość języka angielskiego

Jak zasada Pareto może pomóc Ci w nauce języków obcych?

What our clients think about us? A summary od survey results

18. Przydatne zwroty podczas egzaminu ustnego. 19. Mo liwe pytania egzaminatora i przyk³adowe odpowiedzi egzaminowanego


Revenue Maximization. Sept. 25, 2018

A n g i e l s k i. Phrasal Verbs in Situations. Podręcznik z ćwiczeniami. Dorota Guzik Joanna Bruska FRAGMENT

Hard-Margin Support Vector Machines

Polska Szkoła Weekendowa, Arklow, Co. Wicklow KWESTIONRIUSZ OSOBOWY DZIECKA CHILD RECORD FORM

OpenPoland.net API Documentation

Effective Governance of Education at the Local Level

Dolny Slask 1: , mapa turystycznosamochodowa: Plan Wroclawia (Polish Edition)

Zdecyduj: Czy to jest rzeczywiście prześladowanie? Czasem coś WYDAJE SIĘ złośliwe, ale wcale takie nie jest.

PSB dla masazystow. Praca Zbiorowa. Click here if your download doesn"t start automatically


Installation of EuroCert software for qualified electronic signature

Emilka szuka swojej gwiazdy / Emily Climbs (Emily, #2)

Zarządzanie sieciami telekomunikacyjnymi

Rozmowa kwalifikacyjna z pracodawcą po angielsku str. 4 Anna Piekarczyk. Od Wydawcy

Cel szkolenia. Konspekt

Projekt: Mikro zaprogramowane na sukces!

Steps to build a business Examples: Qualix Comergent

Proposal of thesis topic for mgr in. (MSE) programme in Telecommunications and Computer Science

Machine Learning for Data Science (CS4786) Lecture11. Random Projections & Canonical Correlation Analysis

JĘZYK ANGIELSKI POZIOM PODSTAWOWY

Instrukcja obsługi User s manual

Analysis of Movie Profitability STAT 469 IN CLASS ANALYSIS #2

SubVersion. Piotr Mikulski. SubVersion. P. Mikulski. Co to jest subversion? Zalety SubVersion. Wady SubVersion. Inne różnice SubVersion i CVS

Ogólnopolski Próbny Egzamin Ósmoklasisty z OPERONEM. Język angielski Kartoteka testu. Wymagania szczegółowe Uczeń: Poprawna odpowiedź 1.1.

Lubomierz, Polska

Wroclaw, plan nowy: Nowe ulice, 1:22500, sygnalizacja swietlna, wysokosc wiaduktow : Debica = City plan (Polish Edition)

PROGRAM STAŻU. Nazwa podmiotu oferującego staż / Company name IBM Global Services Delivery Centre Sp z o.o.

No matter how much you have, it matters how much you need

Angielski Biznes Ciekawie

Angielski bezpłatne ćwiczenia - gramatyka i słownictwo. Ćwiczenie 4

Warsztaty Sesja VI. Niedziela 14:00-15:30

Surname. Other Names. For Examiner s Use Centre Number. Candidate Number. Candidate Signature

Export Markets Enterprise Florida Inc.

POLITYKA PRYWATNOŚCI / PRIVACY POLICY

Extraclass. Football Men. Season 2009/10 - Autumn round

Weronika Mysliwiec, klasa 8W, rok szkolny 2018/2019

Why choose No Hau Studio?

TEORIA CZASU FUTURE SIMPLE, PRESENT SIMPLE I CONTINOUS ODNOSZĄCYCH SIĘ DO PRZYSZŁOŚCI ORAZ WYRAŻEŃ BE GOING TO ORAZ BE TO DO SOMETHING

Zajęcia z języka angielskiego TELC Gimnazjum Scenariusz lekcji Prowadzący: Jarosław Gołębiewski Temat: Czas Present Perfect - wprowadzenie

Wydział Fizyki, Astronomii i Informatyki Stosowanej Uniwersytet Mikołaja Kopernika w Toruniu

Wikimedia Polska Conference 2009 You too can create... not only Wikipedia!

PROGRAM STAŻU. Nazwa podmiotu oferującego staż / Company name IBM Global Services Delivery Centre Sp z o.o.

Konsorcjum Śląskich Uczelni Publicznych

Volley English! Dziś lekcja 1 Zaproszenie. Zapraszamy i my

MS OD Integrating MDM and Cloud Services with System Center Configuration Manager

Karpacz, plan miasta 1:10 000: Panorama Karkonoszy, mapa szlakow turystycznych (Polish Edition)

An Empowered Staff. Patty Sobelman

Sargent Opens Sonairte Farmers' Market

ANKIETA ŚWIAT BAJEK MOJEGO DZIECKA

PROGRAM STAŻU. IBM Global Services Delivery Centre Sp z o.o. Nazwa podmiotu oferującego staż / Company name. Muchoborska 8, Wroclaw

English Challenge: 13 Days With Real-Life English. Agnieszka Biały Kamil Kondziołka

deep learning for NLP (5 lectures)


ABOUT NEW EASTERN EUROPE BESTmQUARTERLYmJOURNAL

CENNIK I TERMINARZ SZKOLEŃ

WYDZIAŁ NAUK EKONOMICZNYCH. Studia II stopnia niestacjonarne Kierunek Międzynarodowe Stosunki Gospodarcze Specjalność INERNATIONAL LOGISTICS

Surname. Other Names. For Examiner s Use Centre Number. Candidate Number. Candidate Signature

Odpowiedzi do zadań zamieszczonych w arkuszu egzaminu ósmoklasisty z języka angielskiego 17 KWIETNIA 2019 opracowane przez ekspertów Nowej Ery


PRESENT TENSES IN ENGLISH by

Transkrypt:

JDD 2013 03 Welcome 04 Schedule 09 After Party 10 Map 12 Lectures 31 Tutorials / Workshops 36 Sponsors Welcome to the largest edition of the JDD conference! We hope that you will enjoy both days of the conference and additional trainings. Below I'd like to point out a couple of specific events that will occur during the conference: - We will begin the first day with a dual keynote track, - At the end of first day there will be a couple of BOF meetings so the conversations can last longer, -There will be a traditional After Party in the evening. This year we will visit BASE Club near the City Market, - Second day will feature a special Tutorials track with 2 hours long presentations. No pre-registration is required, - We will launch 3 workshops open for JDD attendees both on the second day and during the third day. Pre-registered attendees will have a priority however if there are free spaces you are welcome to enter those trainings, - On the mid page of this conference guide you can find a map with sponsors. After visiting each stand and collecting all stickers you can claim prizes at the contests stand! Have fun! We would like to thank the program committee, speakers and all people devoted to creating this unique conference. Enjoy! Sławomir Jabs Organizing Committee 2 3

schedule schedule First Day, 14th of October 2013 First Day, 14th of October 2013 Orion Track Pegasus Track 08:30 09:50 Registration 09:50 10:00 Opening ceremony Registration 08:30 09:50 Opening ceremony 09:50 10:00 10:00-10:45 Czego mama nigdy nie mówiła Ci na temat testowania automatycznego Sławomir Sobótka The Epistemology of Software Engineering Nathan Marz 10:00 10:45 10:55 11:40 I ty też możesz mieć swoje dane w cache Jarosław Pałka From Spring Framework to Java EE 7 Ivar Grimstad 10:55 11:40 11:50 12:35 Data base refactorization Marcin Burliński, Leonid Igolnik Taming Big Balls of Mud with Diligence, Agile Practices, and Hard Work Joseph W. Yoder 11:50 12:35 12:45 13:15 Effective software delivery Kuba Kubryński Why developers don t test Yuriy Chulovskyy 12:45 13:15 13:15 14:15 Lunch Orion Track Pegasus Track Lunch 13:15 14:15 Phoenix Track 14:15 15:00 Modularity in the cloud Deploying large scale OSGi applications Paul Bakker Atak SQL Injection w aplikacjach Java Piotr Bucki The Agile Architecture Roadmap Pablo Barros 14:15 15:00 15:15 16:00 JDK8: the parallel, the Nashorn and the lambdas Andrzej Grzesik, Konrad Malawski O przenośności kodu, czyli czego nie dowiesz się z książek Tomasz Skutnik Jak zniszczyć swój kod podstawy lingwistyki dla programistów Michał Bartyzel 15:15 16:00 16:15 17:00 Tell, don t ask Thomas Sundberg Google BigQuery odkrywamy zwyczaje programistów za pomocą interaktywnej analizy dużych zbiorów danych Dawid Ostrowski O co chodzi z tym całym Domain-Driven Design? Piotr Wyczesany 16:15 17:00 17:15 18:00 bck2brwsr project Jaroslav Tulach Oprogramowanie umysłu jak możliwe jest porozumienie pomiędzy ludźmi, którzy myślą zupełnie inaczej Marek Rudziński Przestańmy się zakładać, to notoryczne, nielegalne, nieprofesjonalne i NUDNE Tomek Borek 17:15 18:00 18:00 19:00 BOFs 21:00 24:00 JDD After Party 4 BOFs 18:00 19:00 JDD After Party 21:00 24:00 5

schedule schedule Second Day, 15th of October 2013 Second Day, 15th of October 2013 Orion Track Pegasus Track Phoenix Track Gemini Track 09:00 09:45 10:00 10:45 Vert.x Bartek Zdanowski Visual Management neverending experiment Piotr Leszczyński From Junior Java Developer to Tech Lead and beyond Grzegorz Duda Mantra architektoniczna fundament pracy zespołu programistów Mariusz Sieraczkiewicz Mobile OWASP Top 10 Leonid Igolnik Practice Agile through Impro! Paweł Badeński Workshop 09:00 10:45 11:00 11:45 12:00 12:45 Scala in Action Trond Bjerkestrand Continous Delivery Antipatterns Andrzej Grzesik Testowanie mutacyjne, czyli jak dobre w rzeczywistości są Twoje testy? Marcin Zajączkowski Disillusionment by visualization in Agile software development Rafał Pokrywka d3.js Gareth Rogers Developing modular cloud applications with OSGi Paul Bakker 11:00 12:45 12:45 14:00 Lunch Lunch 10:55 11:40 14:00 14:45 15:00 15:45 Enterprise Vaadin 7 Dominik Dorn 20 API Paradoxes Jaroslav Tulach Przetestuj Usability Mateusz Kaczmarek Mobile applications for everyday users Michał Gruca Ceylon Introduction! Gavin King 14:00 15:45 16:00 16:45 PLAY with legacy Dominik Radziszowski Cross-platform driven development WP8, Win8, Android i ios na wyciągnięcie ręki dla każdego dewelopera. Wprowadzenie do Xamarin dla deweloperów Javy Piotr Karczmarz Testing++ Working with Spock and Geb Ian Kelly Introduction to Scala Konrad Malawski, Jerzy Müller 16:00 17:45 17:00 17:45 Advanced Java EE 7 tricks learned from CDI and Bean Validation Hardy Ferentschik OutOfMemoryError czy to znaczy, że muszę kupić więcej pamięci? Mateusz Herbut 18:00 18:20 Closing ceremony Closing ceremony 18:00 18:20 6 7

schedule after party Additional Day, 16th of October 2013 As usually after the first day of the JDD conference we would like to invite you to the After Party where you can meet with other attendees, 09:00 13:00 Workshops 1 Workshops 2 Speak hadoop like a pro: Cascading/Scalding Andrzej Grzesik, Konrad Malawski 13:00 14:00 Lunch 14:00 16:00 16:00 18:00 Sztuka czytania między wierszami - czyli język R i Data Mining w akcji Kasia Mrowca Modular Application Development using OSGi Paul Bakker Modular Application Development using OSG Paul Bakker speakers and invited guests, and have a relaxed conversation in a laid back atmosphere. We invite all JDD attendees to join the fun on the dance floor. We have also prepared a special game zone arena. The party starts from 9pm at the BASE Club (6 Św. Anny Street, Krakow) on the 14th of October. The official part of the party will end at midnight, but that doesn t necessarily mean the end of fun. A lot more pubs and clubs await you around the Market Square. We hope you join us and have a great time! Workshops 3 Workshops 4 Workshops 5 09:00 13:00 Behaviour Driven Development, BDD, with Cucumber for Java Thomas Sundberg Wzorce Enterprise Integration Patterns z wykorzystaniem Spring Integration Jarosław Pałka Advanced Scala Trond Bjerkestrand 13:00 14:00 Lunch 14:00 18:00 Behaviour Driven Development, BDD, with Cucumber for Java Thomas Sundberg Wzorce Enterprise Integration Patterns z wykorzystaniem Spring Integration Jarosław Pałka Advanced Scala Trond Bjerkestrand Don t miss that! The entrance to the club will be possible only with orange JDD wristband. You can however invite your friends easily. 8 9

ground floor 1 st floor PEGASUS PHOENIX TRACK GEMINI TRACK SPONSORS ZONE COFFEE BREAK PEGASUS TRACK ORION TRACK WC WC CLOAKROOM BAR LEASURE ZONE INFORMATION CONTEST RECEPTION DESK REGISTRATION COFFEE BREAK GAME ZONE LEVEL 1 LEVEL 0 LEVEL 0 LUNCH 10 11

Lectures Nathan Marz The Epistemology of Software Engineering How do you know your software is correct? When you dig deep into that question, it turns out there s no easy answer. There may be no answer whatsoever. This question parallels one of the most fundamental questions in philosophy: How do I know a proposition is true? This question is so difficult that there s an entire field of philosophy dedicated to it, epistemology. The various schools of thought in epistemology are eerily similar to the various techniques used by software engineers to determine software correctness. Take a whirlwhind tour through the epistemology of software engineering and see how philosophers like Descartes, Hume, and Locke can teach us to write better code. See how schools of thought like foundationalism, skepticism, and empiricism relate to software development. And finally, you ll see why Aristotle would have been a terrible programmer. Ivar Grimstad From Spring Framework to Java EE 7 Building Enterprise Applications using Spring Framework has been more or less the industry standard for several years. The introduction of Java EE 6 made it easier to develop enterprise applications based on standards without the need to rely on proprietary frameworks. With Java EE 7 this becomes even more evident. This session will highlight the advantages of using a standards-based approach and step-by-step migrate an existing application based on Spring Framework to a full-fledged Java EE 7 application. Joseph W. Yoder Taming Big Balls of Mud with Diligence, Agile Practices, and Hard Work Big Ball of Mud (BBoM) architectures are viewed as the culmination of many design decisions that, over time, result in a system that is hodgepodge of steaming, smelly anti-patterns. Yet how BBoM architectures come into existence and successfully evolve is much more nuanced. BBoMs often do not result from well-intentioned design ideas gone wrong. Nor are they simply an accretion of expedient implementation hacks. Often BBoM systems can be extremely complex, with unclear and unstable architectural boundaries and requirements. Because of their complexity, BBoM architectures are likely not understood by any single mind. They typically are fashioned out of many parts, which together comprise a sprawling whole. So BBoM systems can and do have good, as well as bad and ugly parts. Successfully deployed BBoM systems continue to work well enough, in spite of their design flaws. How can that be? Much has happened in our industry since the original discussion and publication of the Big Ball of Mud paper in 1998. When that paper was originally published, agile methodologies such as extreme Programming and Scrum were just beginning to gain popularity. The growth and popularity of agile practices might be partially due to the fact that the state of the art of software architectures is so muddy. Being agile, with its focus on extensive testing and frequent integration, arguably makes it easier to deal with evolving architectures and keeping systems working while making significant improvements and adding functionality. However, although Agile has been around for quite some time, we can see that it still does not prevent Mud. This talk will examine the paradoxes that underlie Big Balls of Mud, what causes them, and why they are so prominent. I ll explore what agile practices can help us avoid or cope with mud. I ll also explain why continuous delivery and TDD with refactoring is not enough to help ensure clean architecture and why it is important to understand what is core to the architecture and the problem at hand. Understanding what changes in the system and at what rates can help you prevent becoming mired in mud. By first understanding where a system s complexities are and where it keeps getting worse, we can then work hard (and more intelligently) at sustaining the architecture. Additionally, I ll talk about some practices and patterns that help keep the code clean or from getting muddier. Some of these include: Testing, Divide & Conquer, Gentrification, Demolition, Quarantine, Refactoring, Craftmanship and the like.. The original Big Ball of Mud paper described some best practices such as SHEARING LAYERS and SWEEPING IT UNDER THE RUG as a way to help deal with muddy architectures. Additionally there are some other practices such as PAVING OVER THE WAGON TRAIL and WIPING YOUR FEET AT THE DOOR that can make code more habitable. Yuriy Chulovskyy Why developers don t test How often did you meet a situation when everybody knows about an issue, at retrospective everybody agrees that it should be resolved, but next retrospective brings the same issue and the same action items? Why team of mature developers cannot change a situation on a project, cannot apply new 12 13

Lectures practices or fail to apply innovations? Let me explain it on real project example and get you to the root cause, go from best practices to basic principles and back. Paul Bakker Modularity in the cloud Deploying large scale OSGi applications Deploying applications in the cloud mean a lot of new possibilities but also challenges. Modular applications bring even greater deployment flexibility. In this session, you will learn how to use basic infrastructure as a service (IaaS) to enable autoscaling and automated failover and recovery and how to deal with hot, zero-downtime updates. The speaker has been doing this in a large project for the past two years. In the presentation, he will share his experiences in using an open source OSGi-based development and runtime stack. You will learn about scalable modular architecture and how to deploy this using Apache ACE, an open source provisioning server that takes care of distributing bundles to targets such as cloud servers. Andrzej Grzesik, Konrad Malawski JDK8: the parallel, the Nashorn and the lambdas The most revolutionary* release of a JDK is almost there. Bringing in lambdas, Nashorn, JavaFX, parallel collections The list is long and the features are impressive. Why should you care? Well, this release WILL change the way you write code. And test. And work with collections! And there are so many things there we d like to show! Last, but not the least: no more OutOfMemory PermGen errors :-) *to date Andrzej Grzesik, Marcin Sawicki Continuous Delivery Antipatterns Releasing and Risk start with an R for a reason. Continuous delivery is the buzzed killer for that.. or is it? We d like to take you to a journey through well-practiced malpractice, discussing some of the most interesting hoops people made people jump through. While releasing and doing infrastructure in organisations big and small, ranging from (soon to be multi-million) startups to multi-million corporations, we ve learned that good intentions, backed by poor execution and lack of thinking ahead, can lead to hell on earth. Growing platforms is tough enough by itself, let s not make it harder with insane release processes Thomas Sundberg Tell, don t ask Test driven development follow this pattern Setup, Execute, Verify the new state. Asking the system under test for its new state has traditionally been done to check the new state. This can create problems with the Law of Demeter. The system under test knows unnecessary much about the objects it is collaborating with. This may not seem like a big deal, but when you try to break things apart and replace an object you may end up with refactoring a lot more than you actually wanted. It is like pulling up a tree with the roots. You will damage the ground a lot and have tons of soil among the roots afterwards. Another approach would be to tell the system under test what to do and verify that it has been told properly. This will reduce coupling between objects, not break encapsulation, allocate functionality in the proper place, name functionality better according to the problem domain and prevent classes from being feature envy. I will show some examples where I ask for the state and then compare them when I apply Tell don t ask and discuss the differences. Jaroslav Tulach 20 API Paradoxes One can face a Paradox when one hits something unexpected. However there is nothing paradoxial on seeing a paradox. Paradoxes happen naturally. Why? Knowledge of every individual is limited by some horizon, just like our vision. What is closer to us, can be seen more sharply. What is farer, is more fuzzy. What is almost on the horizon is unclear, not well understood. What is behind the horizon is unknown. Still, our experience tells us that there is something behind the horizon. Because from time to time every individual, or mankind manages to enlarge the known world and shift the horizon further. Then, things that have been unseen get in front of the horizon and we may start to explore them. 14 15

Lectures It is natural for humans to make expectation about the things behind the horizon. To envision how the things behind the horizon are about to look like. There are basically two (extreme) ways to handle this envisioning. Either we can fear the unknown and envision that the world behind the horizon is dangerous (full of lions). In this mode we however are not encouraged to explore such places. It is much easier if we (in contrast to previous attitude) imagine that the unknown world is almost the same as the known one. Just things may be a bit bigger, with higher velocities, but otherwise similar to what we know. With attitude like this it is much easier to undertake a journey behind horizon and explore new creatures. Often our expectations are matched. Especially when we cross the horizon just slightly. However sometimes, when we discover something really new (like the Michelson experiment), it may contradict our pre-made expectations. It may look like a paradox. However that does not mean the world went insane. It only means that our interpretation of the world is not accurate and we need to create new one (just like Einstein did in response to the experiment). There is nothing unnatural in seeing paradoxes. Usually that only means we managed to significantly enlarge our horizons. The newer a topic is the more paradoxes one can expect. As such it is of no surprise that there is a lot of unexpected Paradoxes of API Design. Are you asking now why some API design advices feel so unnatural? Why they are so different compared to the best practices that we learned while working on our small projects or on in-house projects of any size? The reason is that even a small shift in the initial conditions may result in completely opposite advice which may seem paradoxical. However that does not mean such advice is not useful and the chapter 14 describes some of them and explains why adhering to them may be beneficial for any software project. Jaroslav Tulach Introduction to bck2brwsr project. A year ago I started to play with the idea of small Java that would fit into any modern browser and run without any plugins. After a year I managed to reach several milestones. I have special, slim API for controlling an HTML page front end from Java. I can run the system on desktop, some mobile phones/ platforms and also directly in a browser. I have IDE tooling that makes creating such clients real fun. Overall I am starting to believe that coding in my Java/ HTML mixture is more effective, compact and more errorprone than using JavaScript instead. The work is not finished, but I believe there is a lot to show. Stop by, I ll be glad share the direction to get Java bck2brwsr Sławomir Sobótka Czego mama nigdy nie mówiła Ci na temat testowania automatycznego W ciągu godziny pochylimy się nad typowymi problemami, przeglądając mniej lub bardziej znane strategie, taktyki, techniki i narzędzia radzenia sobie z tymi problemami: - Eksplozja kombinatoryczna przypadków testowych - Powolne restarty serwera i żmudne klikanie w ekrany - Koszt stworzenia i utrzymania testów - Nieaktualna dokumentacja (nikt jej nie czyta ani nie aktualizuje) - Problem z komunikacją brak zrozumienia celów biznesowych, biznes nie rozumie systemu - Kosztowne w utrzymaniu skrypty do wyklikania - Architektura wspierająca testability (zależności, rozwarstwienie i rygor warstw) - Delikatne testy (fragile), Nieczytelne testy, Wolne testy A przy okazji rozprawimy się z mitami: - Konieczność 80+% pokrycia kodu testami a może lepiej w 100% przetestować krytyczne 20% kodu? - Testy wpływają korzystanie na design tak, pod warunkiem, że skill programisty na po pozwala - You are not allowed to write a single line of production code until you have written a failing test czasem tak, jednak w praktyce: zależy kto, zależy co, zależy jak Jarosław Pałka I ty też możesz mieć swoje dane w cache Tysiące użytkowników, miliony zapytań HTTP, miliardy odwołań do bazy danych, dziesiątki tysięcy osobogodzin inwestowanych przez firmy na optymalizacje aplikacji webowych, miliony dolarów (czy też euro) wydawanych na infrastrukturę, wszystko to po aby nasz system zapewniał użytkownikom 16 17

Lectures odpowiedni komfort pracy i zadowalający czas odpowiedzi. I gdy już wszystkie optymalizacje zapytań do bazy danych zostaną zastosowane, indeksy wypolerowane na wysoki połysk, czasowa złożoność obliczeniowa wszystkich metod będzie dążyć do O(1), a system dalej nie będzie spełnił wyśrubowanych warunków SLA, zawsze pozostaje wyprawa na ostatni przylądek dobrej nadziei, czyli pełne niebezpieczeństw i ekscytujących przygód krainy, gdzie wasze dane będą na was czekać w ultra wydajnych, skalowalnych i stabilnych serwerach cache. Chciałbym was, drodzy słuchacze, łagodnie wprowadzić w świat cache. Cache dla aplikacji webowych, opowiedzieć o stosowanych topologiach, wykorzystaniach cache w poszczególnych warstwach aplikacji, świat algorytmów cache eviction, rozproszonych serwerów cache (i data grids ) oraz znanych i też przemilczanych sekretów i problemów, z którymi się spotkacie podczas implementacji cache w waszym systemie. Wszystko z wykorzystaniem takich rozwiązań jak memcached, redis, infinispan i ehcache. Marcin Burliński, Leonid Igolnik Refactoring Databases In this talk we will discuss general database refactoring patterns, database multi-tenancy models as well as techniques that are used to apply 100s of changes to 1000 s of live databases with 0 downtime for the application. The session will provide an overview of database refactoring theory, common patterns as well as a short case study of putting all of the concepts together in order to apply 100,000 s of database changes to the production environment reliably. Jakub Kubryński Effective software delivery IIn this presentation we will go through different phases of software delivery, considering optimization opportunities available on each stage. We will learn how to avoid common mistakes when prototyping or how to make use of project specifics and not get carried away with the desire to strike all the problems with the golden hammer. We will discuss myths of slowing down development by writing automatic tests and answer the question of whether DRY rule speaks only about avoiding copy-paste in your application. We will also analyze the broader issue of premature optimization and familiarize with different tools and techniques that allow us to develop software more efficiently. It won t be the next presentation about getting things done we ll focus on core technical aspects of the software delivery. Piotr Bucki Atak SQL Injection w aplikacjach Java Celem wykładu jest pokazanie na czym polega podatność SQL Injection, jakie mogą być jej konsekwencje i jak możemy zabezpieczyć się przed nią korzystając z popularnych frameworków Java. Wykład jest przeznaczony dla osób tworzących aplikacje korzystając z WEBowych frameworków Java. SQL Injection jest od wielu lat klasyfikowany przez OWASP (Open Web Application Security Project) jako najgroźniejsza podatność aplikacji WEBowych. Tomasz Skutnik O przenośności kodu, czyli czego nie dowiesz się z książek. W dynamicznie rozwijającym się świecie współczesnej informatyki na nas projektantach i programistach spoczywa odpowiedzialność za to by aplikacje, które tworzymy dobrze integrowały z istniejącymi jak i nowo pojawiającymi się technologiami. Co zrobić jeżeli nasza aplikacja musi wspierać różne serwery aplikacji? Co jeśli ma wysyłać SMS-y korzystając z systemów różnych usługodawców? Co gdy musimy wspierać różne bazy danych? W takich przypadkach sięgamy po różnorakie narzędzia zapewniające nam przenośność kodu biblioteki, frameworki, wzorce projektowe. Dobrze zaprojektowane znacząco ułatwiają naszą pracę i pozwalają, za pomocą wygodnych abstrakcji, zapanować nad rosnącą złożonością aplikacji.niestety, w przypadku funkcji biznesowych naszych klientów nie ma gotowych rozwiązań to my musimy je wytworzyć. Jest to, tak jak napisanie dobrej biblioteki, zadanie trudne, kosztowne i wymagające sporej dozy doświadczenia. Podczas prezentacji omówimy, na przykładach rzeczywistych projektów realizowanych przez e-point SA, z jakiego typu problemami można spotkać się tworząc aplikacje, które muszą być uruchamiane w różnych środowiskach. Zobaczymy jak takie problemy wykrywać, debugować oraz jak projektować systemy, by zapewnić ich jak największą przenośność pomiędzy różnymi technologiami. 18 19

Lectures Dawid Ostrowski Google BigQuery odkrywamy zwyczaje programistów za pomocą interaktywnej analizy dużych zbiorów danych Czy programiści są częściej zadowoleni czy sfrustrowani? Jaki jest poziom zadowolenia na jeden commit? Na te i inne pytania odpowiemy sobie analizując tabelę o wielkości 79 GB i zawierającą ponad 132 miliony wierszy. Nie będziemy używać indeksów, będziemy robić pełny skan. Zadamy skomplikowane pytania, a wyniki otrzymamy po kilku sekundach. Przy okazji odkrywania zwyczajów programistów omówimy: - Proces ładowania danych do BigQuery - Możliwości analizy dużych zbiorów - Wykonywanie zapytań z poziomu arkusza kalkulacyjnego Marek Rudziński Oprogramowanie umysłu jak możliwe jest porozumienie pomiędzy ludźmi, którzy myślą zupełnie inaczej Agenda Prezentacji: - Czy wszyscy myślimy i mówimy w tym samym języku, pomimo, że wszyscy w tym kraju mówimy po polsku? - Co oznaczają popularne określenia chemia nie gra, nie nadajemy na tych samych falach? - Nieświadome strategie intelektualne (metaprogramy) i style komunikacji z nich wynikające film prezentujący rozmowę prezesa korporacji z jego dyrektorem IT w sprawie wdrożenia systemu ERP. - Strategie motywacyjne: kierunek motywacji od problemu vs. kierunek motywacji na cel. - Strategie decyzyjne: tryb wyboru przez różnicowanie (eliminowanie) vs. tryb wyboru poprzez generalizowanie (upodabnianie). - Strategie decyzyjne: tryb sprawdzania wewnętrzna referencja vs. tryb sprawdzania zewnętrzna referencja. - Jakie są konsekwencje w komunikacji? Jak skorzystać z tej wiedzy? Pablo Barros The Agile Architecture Roadmap Product backlogs describe only the roadmap of the system from a feature set perspective, leaving architectural decisions to be made as needed in order to support new features. However, as products grow, architectural decisions become more complex and costly. In this session, we discuss how introducing an Architecture Roadmap in parallel with your Product Roadmap can help you creating and managing the vision for the Architecture of your system and allowing you to better plan for core changes needed to support your Product future growth. Michał Bartyzel Jak zniszczyć swój kod podstawy lingwistyki dla programistów Na złożone problemy nie ma prostych odpowiedzi. Gdyby były, to z pewnością ktoś by już ich udzielił. Takim właśnie złożonym problemem jest utrzymanie jakości kodu. Techniki czystego kodu, wzorce projektowe, czy architektoniczne zakładają u programisty jedną kluczową umiejętność potrafi on rozdzielić swoje zrozumienie i przemyślenia na temat danego problemu pomiędzy poszczególne elementy składowe danego wzorca, czy techniki. Tak więc kluczem do efektywnego zastosowania technik inżynierii oprogramowania jest umiejętność porządkowania pojęć i struktur myślowych. Jakby tego było mało wspomniane pojęcia i struktury wędrują pomiędzy biznesem a IT, przechodzą przez różnego rodzaju transformacje i wpływają na siebie nawzajem. W trakcie prelekcji przedstawię, w jaki sposób, stosując bardzo podstawowe elementy lingwistyki i świadomości języka, porządkować własne zrozumienie zagadnień biznesowych tak, aby świadomie stosować do nich narzędzia opracowane przez inżynierię oprogramowania. Piotr Wyczesany O co chodzi z tym całym Domain-Driven Design? Wydaje Ci się, że znasz OOP, ale Twój kod przypomina spaghetti? Czy Twoja architektura pomaga, czy też może przeszkadza Ci w pracy nad Twoim systemem? Słyszałeś o złożoności esencjonalnej i przypadkowej, ale nie wiesz jak skupić się na tej pierwszej? Domain-Driven Design to podejście do tworzenia oprogramowania, które całościowo wspomaga tworzenie złożonych systemów IT zarówno na poziomie 20 21

Lectures architektury, jak i kodu. Można je wykorzystywać w każdym języku i w połączeniu z dowolnym frameworkiem. Być może słyszałeś, że w DDD chodzi o Agregaty, Encje i Value Objecty. Być może wydaje Ci się, że to jest jakaś nisza dla garstki pasjonatów. Być może uważasz, że u Ciebie to się nie sprawdzi. Być może uważasz, że wszystko da się napisać przy pomocy Anemicznych Encji z getterami i setterami, oraz Serwisu. Być może jesteś w błędzie W ramach prezentacji dowiesz się czym jest Domena, oraz jej Model. Zobaczysz jakie architektury można wykorzystywać. Poznasz jakie paradygmaty programowania można zastosować do implementacji Modelu na poziomie kodu. Ostatecznie możesz przeżyć szok, dowiadując się, że OOP jakiego używasz na co dzień, może nie mieć wiele wspólnego z prawdziwym paradygmatem obiektowym. Tomek Borek Przestańmy się zakładać, to notoryczne, nielegalne, nieprofesjonalne i NUDNE Jesteśmy jak anonimowi hazardziści. 90% architektur to zakład. Przedstawiamy architekturę i idziemy o zakład, że ona się sprawdzi. Przedstawię dlaczego to szkodzi, co tracimy, co zyskujemy mierząc i jak można stan rzeczy zmienić. Bądźmy mniej jak nałogowi hazardziści, a bardziej jak kasyno ustawmy grę tak, by wygrać! Co planuję tu zawrzeć: - dlaczego należy mierzyć (jakieś 8 powodów, z czego dwa dość psychologiczne) - słówko będzie też o wymaganiach niefunkcjonalnych, estymatach, decyzjach i założeniach - że jak mierzymy, to pytanie po co i dlaczego (dla KOGO)? - jeśli dla KOGOŚ, a nie dla siebie, to dochodzi to, że przekonanie kogoś potrzebuje mocnego wizualizacyjnego bodźca - stąd niedaleko do narzędzi takich pomiarów oraz do metodyk pomiary takiej architektury Bartek Zdanowski Vert.x Vert.x jest skalowalną, rozproszoną, wielojęzyczną i lekką platformą aplikacji. Vert.x jest oparty o przetwarzanie zdarzeniowe, z szyną zdarzeń eventbus. Jest udanym, frameworkiem wielowątkowym, w którym pisanie wielowątkowej aplikacji jest niezwykle proste, bo pisze się ją zawsze jak dla jednego wątku. Nigdy więcej synchronized! Nieblokujące I/O pozwala na obsługę dużej ilości połączeń, przy małym zużyciu puli wątków. Jest wielojęzyczny, tzn. w jednej aplikacji można użyć współgrające ze sobą moduły napisane w: javie, groovym, javascript, coffeescript, python, ruby Posiada przyjemną, przeźroczystą integrację z frontendem, korzystającą z technologii WebSocket lub SockJS. W praktyce, oznacza to nieprzerwaną komunikację z Frontendem w ten sposób zdarzenia z backendu przenikają do frontendu i viceversa, bez zbędnej logiki. Działa wyłącznie w Javie 1.7 lub 1.8, co pozytywnie kopie nas do przodu z wyborem wersji JVM. Koniec z Javą 6! Działa nawet na Raspberry Pi z Javą 8! Podczas prezentacji pokażę jak łatwo pisać skalowalne, wielowątkowe aplikacje. Zademonstruję jak przyjemnie zacząć pracę z Vert.x. Na końcu uruchomię przykładową aplikację na RaspberryPi. Grzegorz Duda From Junior Java Developer to Tech Lead and beyond Every while on the mailing list you see the question: What should I learn to be a good developer? We will go through different stages of the software developer and discuss what is important at each stages. What is crucial and what is nice to have? Does it change when you gain more experience? We will start from Junior Developer and following Dryefus model of skill aquisition we will see how you can make the best decisions on each level. Who should you pair program with? Should you pair program at all? Is it better to learn 20h a day, or just 2h? Should you learn Spring or Java EE stack? What about other HR skills? Is it important to be a good communicator? We will also go through some tools like technology radar, IDEs and productivity tools. As well as processes like JUG meetings, conferences and hackathons. Come to learn and share your experience. It is supposed to be very interactive presentation. Piotr Leszczyński Visual Management neverending experiment What I love the most in working with Visual Managament and having physical board is experimenting. You can change something very easy, see the results and then adapt it again to your needs. You own the whole process, you can visualize it in a serious way or do something that would be fun for your team. Another great aspect about showing everything on the board is transparency. 22 23

Lectures There is no hiding the real state of your project no matter how sad it is. And yes it requires a lot of confidence, trust and it means vulnerability. After a few years on working with Visual Management in the team I m part of I have a lot of smaller and bigger tips & tricks I would like to share with you. There where changes we applied and are still happy with them and there were the others which we abandoned after some time. I hope to show you what we learned and to learn a lot from you about improving our Visual Boards. Mariusz Sieraczkiewcz Mantra architektoniczna fundament pracy zespołu programistów (prezentacja) A: Jakie kluczowe klocki są w Twoim systemie? B: No wiesz controller, view, service, factory, repository, business delegate A: Ok, a powiedz mi, jaka jest ich odpowiedzialność? B: Hmm to bym się musiał zastanowić W większych projektach, ile osób nie zapytasz o dokładny zakres kluczowych bloków budujących, otrzymasz różniące się nieco odpowiedzi. Są one na tyle istotne, że przeskalowane przez wielkość zespołu i złożoność projektu, prowadzą do szybkiej erozji architektury, bałaganu w kodzie i rozwiązań, od których jeży się włos. Chcesz skończyć z dziesiątkami niekończących się sporów, co powinno być w controllerze a co nie? Nie chcesz po raz dzisiąty tłumaczyć, czego nie wolno robić w serwisach? Odpowiedzią jest Mantra Architektoniczna. Jak w zespole zdefiniować Mantrę Architektoniczną? Jak wprowadzić ją w życie? Jak weryfikować? Jak ewoluować? Na te pytania będziemy szukać odpowiedzi. Trond Bjerkestrand Scala in Action Don t you speak Scala yet? Then let us invite you to a journey on which we will explore the outstanding features of this programming language for the Java Virtual Machine. As an introduction we will briefly talk about Scala s key characteristics. Then we will explore this language and some of its typical applications, e.g. concise OO and powerful functional collections. If you are a developer and expect vivid examples and live coding, then you will like this session. Marcin Zajączkowski Testowanie mutacyjne, czyli jak dobre w rzeczywistości są Twoje testy? Badanie standardowego pokrycia kodu przez testy daje nam informację, czy przez daną linię (bądź rozgałęzienie) przeszedł jakiś test. Testowanie mutacyjne idzie o krok dalej i weryfikuje poprzez zmianę (modyfikację lub usunięcie) danej linii, czy kod w niej zawarty był w rzeczywistości istotny dla któregokolwiek z testów. Ta znana od ponad 30 lat w kręgach naukowych, a ostatnio odkryta na nowo dla rozwiązań komercyjnych technika pozwala dowiedzieć się jak dobre w rzeczywistości są nasze testy oraz które fragmenty kodu tak naprawdę tylko wydają się być testowane (a w rzeczywistości nie są), co bardzo przydaje się szczególnie w rozwiązaniach, dla których poprawność działania jest kluczowym wymaganiem. W czasie prezentacji odpowiem między innymi na poniższe pytania: - Czym jest testowanie mutacyjne? - Co może nam dać (po co je stosować)? - Jakie ma ograniczenia? - Dlaczego mimo że znane od ponad 30 lat dopiero teraz zyskuje na popularności w komercyjnym programowaniu? - Jak przygotować naszą aplikację do efektywnego wykorzystywania tej techniki? - Czy ktoś naprawdę używa testowania mutacyjnego w aplikacjach typu enterprise? Prezentacja przeznaczona jest dla osób, które chciałyby dowiedzieć się czym jest testowanie mutacyjne, jakie ma przewagi nad zwykłym badaniem pokrycia kodu przez testy i jak zastosować je we własnych aplikacjach. Przydatna będzie ogólna wiedza dotycząca testów automatycznych oraz zwykłego mierzenia pokrycia (ang. code coverage). Rafał Pokrywka Disillusionment by visualization in Agile software development There is a growing number of failed software projects that have been managed using some kind of Agile software development methodology. There is also a growing number of dissatisfied team members and stakeholders involved in agile development. What s more missed deadlines and budgets are sometimes justified by saying: well&hellip we are Agile we can t predicts everything. Obviously there is something wrong here. The question is: do we, agile teams, look realistically into the process of making good software? In my opinion that s not the case and we can blame the tendency to oversimplify software 24 25

Lectures development. The consequence is that we usually underestimate complexity of the job and fall in our own trap. That s the point where problems are just starting. This talk should induce agile teams to get real in their software development by visualization of the process and by embracing its complexity. All that in the context of Kanban methodology. Dominik Dorn Enterprise Vaadin 7 In this session we will cover what it takes to make a Vaadin 7 application scale to the enterprise level. We will take a look at how you can structure your application development lifecycle to scale to multiple developer teams, how to best structure your project and code base, best practices in architecture & testing of Vaadin 7 applications as well as how Vaadin 7 can be combined with the various elements of Java EE. Mateusz Kaczmarek Przetestuj Usability Każdy, kto choć odrobinę interesuje się tematem użyteczności zna heurystyczne wskazówki takich autorytetów jak Jakob Nielsen, Steve Krug czy też Don Norman. To, co głoszą Ci trzej Panowie nie wzięło się z samo oświecenia są to owoce testów i eksperymentów. Aby dowiedzieć się, co dla użytkowników jest intuicyjne, łatwe i naturalne w obsłudze należy ich po prostu spytać! Postaram się przedstawić moje doświadczenia w testowaniu użyteczności wraz z użytkownikami. Moim celem będzie przekonanie, że ten sposób podnoszenia użyteczności jest najskuteczniejszy, a przy tym wcale nie musi być bardzo kosztowny. Michał Gruca Mobile applications for everyday users Presentation is based on my experiences from working on mobile app, that is targeted for non g33ks. Do you develop mobile apps that people use at work? Have you ever wondered how to make your application more useable? Maybe you ve been considering how to use all those weird features of your mobile device? If you believe that only Facebook, Visa and Google can make use of Camera, GPS, NFC reader and accelerometer, then this talk is for you. Dominik Radziszowski PLAY with legacy Platforma PLAY upraszcza budowę aplikacji Web owych w językach Java i Scala, bazuje na lekkiej, bezstanowej architekturze. Działa w oparciu o model aktorowy (Akka), gwarantuje niskie zużycie zasobów (CPU, pamięć, wątki) umożliwiając budowę wysoko skalowalnych aplikacji. Możesz stosunkowo łatwo wykorzystać ją w istniejących aplikacjach. Pierwsza część wystąpienia będzie wstępem do platformy PLAY, okraszonym live demo, pokazującym wygodę efektywność i elastyczność jej stosowania. Prezentowany w drugiej części sposób integracji PLAY z istniejącymi aplikacjami, zostanie oparty na własnych doświadczeniach łączenia tej platformy z JBoss Seam/JSF. Piotr Karczmarz Cross-platform driven development WP8, Win8, Android i ios na wyciągnięcie ręki dla każdego dewelopera. Wprowadzenie do Xamarin dla deweloperów Javy. Jeśli chciałbyś wskoczyć do odjeżdżającego pociagu o nazwie rewolucja mobilna jest to prelekcja dla Ciebie. Podczas prezentacji dowiesz się w jakis sposób można zacząć tworzyć rozwiązania na kilka platform mobilnych jednocześnie. Odpowiemy sobie na pytania o użyteczność tworzenia moblinych, natywnych rozwiązań w opozycji do popularnych frameworków webowych przeznaczonych dla systemów mobilnych. Podczas prezentacji poruszymy tematy i odpowiemy na pytania: - webowe frameworki, a natywne aplikacje mobilne - roztrzygniemy prawdziwość tezy będącej Świętym Grallem w IT Write once, run everywhere - jakich narzędzi użyć, aby tworzyć rozwiązania wysokiej jakości na kilka najbardziej popularnych platform mobilnych oraz współdzielić kod źródłowy między projektami Wiedzą i doświadczeniem będzie dzielił się deweloper z doświadczeniem w projektach różnej skali i klasy. 26 27

Lectures Hardy Ferentschik Advanced Java EE 7 tricks learned from CDI and Bean Validation After a general EE 7 overview and discussion on what s new in Bean Validation and CDI, we ll dive into the various tricks Bean Validation uses to integrate with Java EE. In particular we will discuss CDI portable extensions, how to dynamically transform an object into a CDI Bean and how to register new interceptors at the right spot in the interceptor stack. You should leave this session with an better idea on how to benefit from the Java EE 7 enhancements in your application or framework. Mateusz Herbut OutOfMemoryError czy to znaczy, że muszę kupić więcej pamięci? W czasach, gdy kości pamięci są tańsze niż dniówka dobrego programisty, mało kto przejmuje się zasobożernością aplikacji. Często programiści nie wiedzą nawet jak JVM zarządza pamięcią oraz jaki rozmiar będzie miał obiekt stworzonej przez nich klasy. Ale tylko do czasu. Okazuje się bowiem, że pamięć też ma swoje granice i nie można jej zwiększać w nieskończoność. Podczas wykładu dowiecie się, jakie konsekwencje niesie za sobą zwiększenie rozmiaru sterty aplikacjach javowych. Ponadto będziecie mieli okazję przyjrzeć się obszarom pamięci w HotSpocie oraz dowiedzieć się, jak zmierzyć rozmiar obiektu zarówno pod 32-bitową, jak i 64-bitową wersją JVM. W dalszej części wykładu zobaczycie co robić, gdy pojawi się OutOfMemoryError. Na przykładzie prostej aplikacji z wyciekającą pamięcią dowiecie się, co można wyczytać ze zrzutu sterty oraz jak za pomocą Eclipse Memory Analyzer a zlokalizować wyciek. Tutorials/workshops Leonid Igolnik Mobile OWASP Top 10 Most of us are already aware about common security risk posed to the web applications. One of the best resources to keep current on those is https://www.owasp.org. Mobile devices and applications have been a major force changing the way we develop and build our applications. In this talk we will cover the current status of OWASP Mobile Security Project, explore the each of the Risk in depth including testing and mitigation strategies. Paweł Badeński Practice Agile through Impro! Kent Beck when introducing extreme Programming said Even programmers can be whole people in the real world. XP is an opportunity to test yourself, to be yourself. Idea behind Impro (improvisational theatre) constitutes the essence of Agile. It is a great way of overcoming your fear of failure, opening yourself to an attitude of taking risks ( experiments in XP), improving your social and emotional intelligence. There s going to be no theory at a workshop. We re planning to have fun and learn to learn from our mistakes (which we re going to do plenty), and get ourselves more aligned with XP values and principles. An example of what Impro is http://www.youtube.com/watch?v=wllawhyqngm. Gareth Rogers d3.js d3.js is a javascript library for binding data to a web page and creating rich visualisations. This workshop will be an introduction to working with d3 and data visualisation in general. It will cover some basic patterns and limitations for working with data on the client side and also discus the user value of data visualisation. The format will be a a short presentation followed by some hands on coding using some provided base code and data. Participants can work alone or in pairs. You will need a laptop capable of checking out or downloading from github, a good javascript or text editor and ideally a python runtime. For any questions please feel free to contact me at gareth.rogers0 at gmail.com 28 29

Tutorials/workshops Paul Bakker Developing modular cloud applications with OSGi In this session, you will learn how to create modular, robust, and durable enterprise applications fit for the cloud age. Modularity forces separation of concerns, which enables you to replace parts of a system without breaking others. Using OSGi and a wealth of open source enterprise components, the presentation shows you how to combine those apparently opposite worlds into coherent applications. It also shows you everything you need to know about setting up your development environment to get started right away. The session features lots of live coding! You will learn about modular architecture and how to practically achieve this using OSGi. Some of the topics included: - Creating OSGi bundles, with proper implementation hiding - Dynamic OSGi Services - Creating real world components such as MongoDB data access and RESTful web services - Semantic versioning Gavin King Ceylon Introduction! Get a taste of the Ceylon language and see how Ceylon s powerful type system and built-in modularity enables sophisticated tooling. Ceylon is a new programming language designed for writing large programs in teams. The language emphasizes readability, modularity, typesafety, and tooling. Ceylon programs execute on Java and JavaScript virtual machines. In this session, Gavin King will demonstrate some interesting features of Ceylon s type system by writing code in Ceylon IDE. Ian Kelly Testing++ Working with Spock & Geb Spock is the awesome new testing framework that is very quickly becoming the default testing tool for many. In this session, Ian introduces you to Spock and walks you through its expressive groovy based DSL, its Behaviour Driven Design approach and shows how automated testing can actually be fun! In the second part of the tutorial, Ian brings Geb and Spock together and shows that along with embedded containers and Gradle, you can have truly automated unit & acceptance tests. Konrad Malawski, Jerzy Müller Introduction to Scala During this workshop we ll discover the marvellous world of Scala. This session is dedicated to mostly beginners or intermediate Scala fans. By learning step by step and implementing small tasks and unit tests we ll get to know the language, and it s unique style. We ll start off with the basics and then continue with a bit more advanced topics. Things learnt during this session be significantly useful to you if you re just starting out on your Scala journey, would like to polish up your code style or venture into frameworks employing a bit of magic, like Scalding for example on which there is another workshop during JDD. We ll put a cherry on this Cake by pointing out a few common mistakes, and lessons learned from real-life production systems implemented using Scala. Level: Beginner Intermediate Recommended: If you re new to Scala and / or also want to attend the Scalding workshop. Andrzej Grzesik, Konrad Malawski Speak hadoop like a pro: Cascading/Scalding Finding Hadoop APIs dated? Struggling writing map-reduces? Wishing there was something better? Your feelings serve you well. Cascading is one of the nicest libraries of the recent times. In Java AND in Scala (it s called Scalding in that dimension). Does anybody use that? Well yes :-) And it s awesome! We d love to give you a tour and shorten your MapReduces by half!* Expected time: 4h Requirements: - 64bit machines capable of running and compiling Java/Scala. - Recent JDK Network: not required 30 31

Tutorials/workshops Kasia Mrowca Sztuka czytania między wierszami czyli język R i Data Mining w akcji Natłok danych jest obecnie normą. Na warsztacie pokażę jak z niepozornej masy nieustrukturyzowanych danych wydobyć ciekawe diamenciki a następnie jak oszlifować je aby prezentowały się okazale. Co oznacza ten wstęp po ludzku? 1. Dowiesz się jak obsługiwać R w podstawowym zakresie 2. Dowiesz się jak ugryźć Data Mining w R 3. Dowiesz się jak zwizualizować obrobione dane w R Przygotowanie: Potrzebne są laptop z zainstalowanym pakietem R (można pobrać stąd: http:// cran.r-project.org/). With great satisfaction we can conclude that our previous projects resulted in a huge success and became the motivation to create a new department, which carries out external conferences for commercial clients. We believe that nine years of experience backed by organising almost 50 Polish and international conferences attended by more than 15,000 participants, will provide the highest level services for you. We offer comprehensive event organisation, web design, software development, graphic service, design and implementation of advertising gadgets, provision of conference venue, organisation of activities and evening after party, provision of conference staff, contact with speakers, sponsors, media partners and company representation at the events. Our current projects include: SECURE PROIDEA Foundation always puts on high level of presentations, but also on professional and efficient organisation. Knowing the needs of the industry and having many years of experience, we encourage you to cooperate with us. We are confident that we can meet all of your expectations and meet the many challenging tasks! 32 33

platinum sponsor gold sponsors www.luxoft.com Luxoft is a top-quality business technology service provider with global delivery capabilities that develops partnership with clients to deliver business critical solutions. With over 5000 employees in 18 locations worldwide and significant investments in R&D, we offer superior service delivery and support across a wide array of industries. Being one of the most rapidly growing IT companies in Eastern Europe, we actively hire IT specialists of different specializations. Together with Luxoft s expansion, every employee and potential candidate gains more opportunities for personal and professional growth. Established in 2010, Luxoft Poland office, located in Krakow, offers a comprehensive mix of application and product development services and specializes in solutions for the finance, travel and logistics industries and currently serves global financial services and large multinational logistics corporations. In November 2011 Luxoft s Poland s operation was honored with the Outsourcing Destination of the Year Award by the National Outsourcing Association. With Luxoft you get a unique opportunity to: - Be a part of challenging projects with world market leaders in truly international environment - Work in complex business domains, on cross of business and IT with the use of cutting-edge technologies - Grow both professionally and career-wise - Work with the best-in class engineers - Get a rewarding, secure and well-paid job. www.epam.com www.hays.pl For More detailed information please visit our web-site: www.luxoft.com/careers

silver sponsors silver sponsors www.allegro.pl www.itkontrakt.pl www.e-point.pl www.kamsoft.pl www.jobs.ebaycareers.com/articles/companies www.schibsted.com

silver sponsor www.pl.sii.eu/pl sponsors www.ericpol.com irtuslab www.virtuslab.com