by Rebecca Wirfs-Brock and Joseph Yoder
Agile teams incrementally deliver functionality based on user stories. In the sprint to deliver features, frequently software qualities such as security, scalability, performance, and reliability are overlooked. Often these characteristics cut across many user stories. Trying to deal with certain system qualities late in the game can be difficult, causing major refactoring and upheaval of the system’s architecture. This churn isn’t inevitable. Especially if you adopt a practice of identifying those characteristics key to your system’s success, writing quality scenarios and tests, and delivering on these capabilities at the opportune time. We will show how to write Quality Scenarios that emphasize architecture capabilities such as usability, security, performance, scalability, internationalization, availability, accessibility and the like. This will be hands-on; we present some examples and follow with an exercise that illustrates how you can look at a system, identify, and then write and test quality scenarios.
If you could ever imagine one reason the source code is all about – it is communication. And while communicating your goal to the computer is essential, it is the other human being – a fellow programmer, who desperately needs you to tell them your intent well and clear. It takes a journey to become a grown-up software developer and to master the skill of making your code to say what your brain can only imagine. I will try to give an insight into some of the lessons I learnt on my journey about the different way of communicating with the code and how to get it to „speak its mind”.
In an increasing number of disciplines and industries, data volume and complexity has become both a challenge and an opportunity. Application developers are tasked with bridging the gap between challenge and opportunity and one tool in a developer’s belt to help build that bridge is a data grid. Red Hat JBoss Data Grid – the supportable version of the Infinispan open source project – is a manageable, scalable, highly available, distributed, in-memory data store that lets you scale horizontally, based on memory and distribution across commodity hardware rather than relational database management system (RDBMS) licenses, database expertise or specialist hardware.
by Henri Kerola
Vaadin is a server-side Java framework for building rich internet applications. Since it’s a Java framework, any JVM language can be used to create applications with Vaadin. Since each language has its own characteristics, adding some convenience methods can enable taking full advantage of the language with Vaadin. This presentation introduces Scaladin, a wrapper library that provides a pure Scala API for Vaadin.
Did you ever experience some ugly pain in delivering your software? Probably yes. This session discusses what DevOps is, its building blocks as well as concrete recipes to streamline the software delivery process.
by Michał Trzaskowski
Szeroka prezentacja nie tylko o wytwarzaniu aplikacji biznesowych ale także o (web) game devie. Wspólnym technicznym mianownikiem będzie GWT. Tematyka skupiać się będzie w około szeroko rozumianego „User Experience”.
Znajomość GWT mile widziana ale nie będzie konieczna do zrozumienia przemyśleń / wskazówek / praktyk prezentowanych przez prelegenta.
Prezentacja dotknie między innymi następujących kwestii:
- Wymagania jawne i niejawne na interfejs użytkownika (podział aplikacji ze względu na oczekiwania dotyczące frontend-u)
- Ergonomia, wygoda, intuicyjność, piękno :)
- GWT oraz inne alternatywy
- Projekt, prototyp, nawigacja, lokalizacja, zasoby graficzne, utrzymanie CSS, iteracyjne doskonalenie widoków
- Narzędzia i biblioteki pomocnicze, jak tworzyć wygodne własne narzędzia ?
What is the difference between O(n^2), O(log n), and O(1)? What happens if we design too long critical section? What about fine-grained communication in a distributed environment? These are not only academic questions, these are real-world problems. Even though enterprise applications usually do not require fancy algorithms, they often operate on relatively large data-sets in highly concurrent and distributed environments.
This talk presents several performance and concurrency anti-patterns along with a tool demo to automatically refactor them. We discuss performance anti-patterns related to slow data structures, inefficient data- and call-flows, and suboptimal critical sections. Then, we explain how such anti-patterns can be refactored to more appropriate structures applying the best strategy based on their usage patterns, yet guaranteeing the same semantic. During the demo we show how Yonita Optimizer improves an exemplary application. We also present the results of optimization for an open-source projects, including the before and after execution times along with the refactored code available to download.
Yonita Optimizer is a source-to-source pre-compile refactoring tool with a focus on performance optimization. It performs in-depth data- and call-flow analyses to infer about the behavior of a program (including usage patterns of its data structures) and further applies the optimal strategy to inefficient cases.
Clouds are an interesting deployment platform, but managing state in dynamically scalable environments is not an easy task. There exist a whole range of different NoSQL solutions with strong differences in performance, capabilities, reliability, isolation and ease of use. In this talk we discuss briefly the different NoSQL solutions and show where Hibernate OGM (Object Grid Mapper) fits into the picture. ORM is built on the robust and proven Hibernate ORM engine and helps you to port existing Hibenrate/JPA applications to alternative storage engines decoupling application code from a specific NoSQL solution. We also have a closer look at Red Hat’s OpenShift Cloud solution and how we can use it to deploy a sample OGM application.
by Jessica Kerr
Let’s face it: DVCS is here to stay. But what’s the point? There’s a million tutorials on the internet that tell you what to type in Git, but not why! Go one level deeper: A few straightforward concepts and some pictures, and git will magically make sense. Learn how to use DVCS to tell the story of your project. You’ll get the point of all those extra steps in committing and updating; erase some Subversion-related preconceptions; and grasp the purpose of fast-forward merge, cherry-pick, and rebase. I promise: absolutely no demos.
…or „Combining HTML Hypermedia APIs and Adaptive Web Design”.
This kind of solution has some risks and technical issues related to it though. And it is not a silver bullet (silver bullets don’t kill zombies anyway).
The presentation is based on the article „Combining HTML Hypermedia APIs and Adaptive Web Design”, which has received praise from leading voices within the REST community:
“read this. let it sink in. then read it again. very smart stuff here.” – Mike Amundsen
“Awesome article on a combined mobile/desktop/API strategy using #hypermedia APIs and HTML” – Jon Moore
“Wow, it also got a RT from @fielding “@hypermediaapis: Combining HTML Hypermedia APIs and Adaptive Design”” – C Galtenberg
25th–26th October 2012