Qconn

Day: Monday
By: Jen Simmons [Full Day]

These days, people use a wide range of devices to surf the web — phones, tablets, televisions, computers of all sizes, and soon cars, watches, and more. It's hard to keep up. Creating separate websites for every device category isn't sustainable, nor the best solution for many projects. That's where responsive web design comes in — use techniques to make your site work on a wide range of screen sizes and device capabilities. It sounds great in theory, but how exactly does it work?  Jen Simmons will walk you through practical nuts-and-bolts for planning, designing, and creating a responsive website that lasts.  

• content strategy
• designing for the web, not for another medium
• responsive layouts
• team workflow and the design process
• performance and speed
• tools, tips and tricks
• what to avoid

Participants need:
1) Paper for sketching. Pencil or pens.
2) A laptop you are familiar with.
3) A place to write HTML & CSS — preferably a code editor.
4) Whatever development tools you use to write CSS (if any).
5) Web browsers, including Firefox (15+).
6) Optionally, mobile emulators: iOS Simulator, Android Emulator, Opera Mobile Emulator

Day: Monday
By: Nilanjan Raychaudhuri [Full Day]

"Have you looked into Scala? Scala is a new object-functional JVM language. It is statically typed and type inferred. It is multi-paradigm and supports both object oriented and functional programming. And it happens to be my favorite programming language. If you are interested in Scala, how you are planning to learn Scala? †You probably are going to pick up a book or two and follow through some examples. And hopefully some point down the line you will learn the language, its syntax and if you get excited enough maybe build large applications using it. But what if I tell you that there is a better path to enlightenment in order to learn Scala? We will start with a set of test cases that will teach you Scala language. As we learn new feature about language we will write code to fix tests. Since learning is guided by failing tests it allows developers to think and play with the language while they are learning"

Day: Monday
By: Sidd Singh [Half Day]

Effective uses of MongoDB often requires data organization that's different from what one finds with other databases, for reasons that range from performance to flexibility to architecture. This workshop will focus on patterns of MongoDB document design, and how they relate to application deployment architectures.

Day: Monday
By: Amr Elssamadisy [Full Day]

This tutorial assumes the following hypothesis: Learning is the Bottleneck of Software Development and Delivery, and asks the question ìwhat is keeping us from learning effectively?î There are some things that are visible such as the length of the release cycle, the clarity of the goal, learning from mistakes and difficulties, etc.... This is valuable, but not what this tutorial is about. This tutorial is about those things that are in our way every single day which we cannot see or touch and that make us uncomfortable to even consider. How does our mindset affect our ability to learn as individuals and as teams? What about ownership? Does our respect - or lack thereof - of our peers affect our ability to build software? What is the cost of a missed agreement? And, just as importantly, what is the cost of failing to confront a missed agreement? These ìtouchy feelyî things are significant to our ability to learn effectively, and thus our ability to create great software efficiently. Attend this session to learn about invisible impediments to learning, and what you can do Monday morning to start making things better.

Day: Monday
By: Richard Clark [Half Day]

WebSockets brings new capabilities to the web ñ reliable, low-latency, low-overhead web communications ñ but also requires new skills and ways of looking at development. Developers and security professionals have been struggling to fit this new technology into their existing models of the web. It's time to look at the fundamentals of WebSocket communication and web development, then use these to build a new way of understanding web development. In this session, we'll look deeply at the WebSocket protocol, see how to apply it to common design patterns (broadcast, request-response, and mediated peer-to-peer), then apply this knowledge to building HTML5 WebSocket clients. We'll also look at how to make this work on the desktop and mobile devices. We'll also cover the testing issues that arise when developing on multiple platforms and provide real-world strategies for efficient testing.†You'll take home pointers to resources, roadmaps for learning the client-side technologies, and a copy of the finished application source code to jump-start your own development efforts. Session objectives: At the end of this session, you should be able to:1.Identify the choices that lead to a successful client-server WebSocket deployment, 2. Name two server options for your webSocket application, 3. Match your application idea to the corresponding communications pattern, 4. Identify the client-side technologies needed to make your application work, 5. Identify where to integrate WebSockets in common client-side technologies such as Backbone and AngularJS, 6. Create a testing plan for your client-server application. Audience: Intermediate to advanced developers who have been building server-rendered apps using technologies such as JSP, Ruby on Rails, Django, etc.

Day: Monday
By: Colin Melia [Full Day]

Microsoft has made bold moves on the software and hardware front for consumers with the launch of Windows 8 and Windows RT, introducing the new WinRT application development platform for building Windows Store Apps. WinRT brings a new style of touch-first user experience, a sand-boxed application runtime with contract-based inter-app communication, a mobile-optimized execution lifecycle and rich notification support. In this 6-hour event, youíll experience the details of these new platform features through a combination of in-depth explanation, demonstration, code samples and end-to-end application building. Agenda: Building your first Windows Store app including platform/tools tour, basic app, minimum feature requirements for certifications1. Exploring controls, 2. MVVM, 3. Animation & Views, 4. Styling & Custom-controls, 5. App bar, 6. Settings, Search, 7. Location & Sensors, 8. Navigation, 9. App lifecycle, 10. Tiles, Toasts & Push notifications, 11. Background running, 12. Async programming and data access, 13. Working with Microsoft Accounts, Skydrive and Windows Azure, Audience: Developers, team leads, architects.

Day: Monday
By: Mark Meretzky [Full Day]

This is a full-day tutorial in writing iOS apps using the Xcode IDE on Macintosh. An iPhone or iPad app is made of intercommunicating objects. Learn to create and destroy the objects and send them messages in the language Objective-C. Use them to draw text and graphics on the screen, respond to a touch or keystroke, perform simple animations, and display controls such as buttons and sliders.
 
We concentrate on three iOS design patterns. (1) A control object can call a method of its "target" object in response to a touch. (2) An object can call a method of its "delegate" object in response to a changing situation, e.g., upon reaching the end of an audio file during a playback. (3) A "view controller" can manage the view object underneath it, and forms the connection between the view and the other objects in the app.

Day: Monday

You've heard your friends say that "Git is the version control system of the future." You may have also heard such hallway talk as "A GitHub account is the the new resume." But there are a lot of technologies to chase these days and you just might not have had time for Git until now. This half-day workshop takes you from never having used Git all the way up to daily-workflow proficiency with both Git and GitHub. We'll help demystify the directed acyclic graph manipulations that Git performs, not by oversimplifying, but rather by dissecting these complex data structure operations. Our unique disassembly of Git into layers helps computer science-domain practitioners deeply understand "how Git works" and enables them to leverage this newfound knowledge back at the office for version control, collaborative development, and release management excellence.

Day: Monday

Git and GitHub are tools that, as a variation on the cliche would say, "can be learned in a day, but take a lifetime to master." That whole lifetime bit is a little too long, so we've packed dozens of our favorite practical tips and tricks into a half-day hands on workshop. This session takes students who've worked with Git and GitHub for a while and showcases efficient new ways to do existing tedious tasks. This includes, but is definitely not limited to: automatically finding which commits have been cherry-picked to other branches, partially reverting to old commits, fetching and merging pull requests via custom refspecs, creating, pushing, plus pulling notes, and using signed tags and commits for chain-of-custody tracking towards highly content-sensitive releases. Join us for this action-packed workshop and let us take your Git and GitHub skills to the next level.

Day: Tuesday
By: Matthew McCullough [Half Day]

Presentations are a fact of life in the technical business space. Sooner or later, you're going to have to deliver one. But make no assumption that they have to be dry, full of bullet-point agony, and illegible font choices. A handful of concrete solutions and actionable advice gleaned from years of presenting can transform your talk into a memorable event with a payoff in political currency due to your adept delivery. We'll explore the full timeline of giving an excellent presentation, starting from the creative ideation phases, to the collection of slide-sized ideas, through linearization of the story points, and finally to the delivery of the presentation. This session will push on a few of your past-experience presentation pain points and offer 10 articulated steps towards your radically improved next delivery.

Day: Tuesday
By: Mike Amundsen [Half Day]

Based on the upcoming O'Reilly book "RESTful Web APIs" by Leonard Richardson and Mike Amundsen, this 1/2 day workshop covers the basics of Fielding's REST style, HTTP standards, and common practices for APIs for Web. Key topics such as how how use hypermedia to increase API flexibility and how application profiles can improve API interoperability are also covered. In addition, a wide range of existing message formats and semantic vocabularies are reviewed along with a procedure for selecting and applying these existing standards to your own implementations. Other subjects will be covered such as caching, versioning, and supporting RESTful APIs on protocols other an HTTP.Throughout the workshop, attendees will be able to apply step-by-step guidance on how to create their own RESTful Web API and share these designs with the group at the end of the session.

Day: Tuesday
By: Erik Meijer [Full Day]
Day: Tuesday
By: Mark Trostler [Full Day]

As with most things, getting started is the hardest part. This is especially true of testing in general and an unfortunately reality with JavaScript testing in particular. Beyond the myriad of choices available to the JavaScript community for testing there is the persistent problem of running the tests automatically in a browser (or several browsers) during the normal build and release process.This tutorial will finally give you the chance to get started! Bring your own JavaScript and we will start the test process together - from writing unit tests, to integration tests, all the way to running them manually and most importantly run them automatically as part of an automated process. Along the way we will investigate ideas for refactoring your code to make it more testable and give quick overviews about testable patterns and how they apply to your JavaScript.We will use the Jasmine as the unit test framework, Karma (nee Testacular) for automation, and Istanbul for code coverage as we construct a complete JavaScript testing solution. We will also touch upon WebDriver and how it fits into client-side JavaScript integration testing. By the end of the tutorial you will have a solid foundation upon which to build out a complete suite of automated tests - along with canonical examples of written tests to use as a template for writing the remainder of your tests.

Day: Tuesday
By: Christophe Coenraets [Half Day]

Learn how to build large, complex, and native-like mobile apps using HTML, JavaScript, and CSS. This session covers modern strategies to build large JavaScript projects using JavaScript MVC frameworks, and how to use PhoneGap to leverage the native capabilities of your device in JavaScript and to package your HTML application as a native app for distribution through the different app stores.

Day: Tuesday
By: Trevor McLeod [Half Day]

Node.js is one of the fastest growing platforms for building scalable web applications. In this workshop, attendees will learn how to get up and running quickly with Node, it's background and history, and the problems that it seeks to address. In addition, they will see how asynchronous, event-based development works with Express, Node's more popular web framework. Finally, attendees will build, together with each other and the instructors, their own Real Time Web Applications.

Day: Tuesday
By: Dave Farley [Half Day]

This tutorial will be delivered as an in-depth, interactive talk. It will describe the ideas of Continuous Delivery as a practical everyday process, highlighting some of the techniques developed while working on a complex real world CD project. It will provide an overview of the key process details: describing deployment pipelining as a technique to structure automation, pipeline monitoring to gain insight into progress and status, approaches to configuration management, automated acceptance testing and automated deployment as well as many other aspects of the CD approach to software delivery. At the end of this you should have more insight into how to tailor the Continuous Delivery approach to your needs. Dave Farley is co-author of the book "Continuous Delivery" which describes the use of high levels of automation and collaboration in the delivery process to ensure high quality software and a reduction in errors and late nights.

Day: Tuesday
By: Mark Meretzky [Full Day]

This is a one-day tutorial in writing Android apps with the application Eclipse. An app is made of two parts: a screen layout written in XML (Extensible Markup Language), and objects written in Java. Learn how the two halves of the app communicate with each other. Draw text and graphics on the screen, detect and respond to a touch, perform simple animations, display controls such as buttons and sliders, and play background music. Two examples of Android design patterns: plugging a "listener" into a "view" to make it touch-sensitive; and plugging an "adapter" into an "adapter view" to let it read items from a source of data.Hardware and software: Macs or PCs with the JDK (Java Development Kit), the application Eclipse (currently version 4.2 [Juno]), Android SDK and ADT.

Day: Tuesday
By: Mike Amundsen [Half Day]

Hypermedia APIs are getting some buzz. But what are they, really? What is the difference between common URI-based CRUD API designs and hypermedia-style APIs? How do you implement a hypermedia API and when does it make sense to use a hypermedia design instead of a CRUD-based approach? Based on the Mike Amundsen's multi-part InfoQ article series of the same name, this fast paced, hands-on four-hour workshop shows attendees how to design a hypermedia style API, how to implement a server that supports varying hypermedia responses, and how to build clients that can take advantage of hypermedia. Additional time will be spent exploring when clients break and how reliance on hypermedia can reduce the need for re-coding and re-deploying client applications while still supporting new features in the API. Hands-on labs include authoring a hypermedia format for your API, designing server-side components that can emit hypermedia responses, and deciding on which client-side style of hypermedia fits best for your needs. A final challenge will be to update the server-side responses with new features that do not break existing hypermedia clients.

Day: Tuesday
By: Jim Webber [Full Day]

Graph databases like Neo4j are a powerful member of the NOSQL family. For highly connected data, Neo4j can be thousands of times faster than relational databases, making it popular for managing complex data across many domains from finance to social, and telecoms to geospatial. This hands-on workshop covers the core functionality from the Neo4j graph database, providing a mixture of theory and accompanying practical sessions to demonstrate the capabilities of graph data and the Neo4j database. Specifically attendees will learn about: NoSQL and Graph Database overview, Neo4j Fundamentals and Architecture, The Neo4j Core API, Indexing, Neo4j Traverser APIs, Declarative querying with Cypher, Solutions architecture. Each session (apart from the fundamentals and architecture) will be a mixture of a small amount of theory combined with a set of practical exercises designed to reinforce how to achieve sophisticated goals with Neo4j. The practical parts of the tutorial consist of Koan-style lessons where a specific aspect of the Neo4j stack is presented as a set of failing unit tests which attendees will fix, gradually becoming more challenging until the attendees are capable of implementing sophisticated graph operations against Neo4j. Attendees won't need any previous experience with Neo4j or NOSQL databases, but will require some fluency in Java, a little familiarity with a modern IDE, and a basic understanding of JUnit to help complete the lab tasks.