Codemania 2014

Workshops: Thursday, 3rd April 2014

08:30
to
12:30

Lea Verou

CSS Masterclass

A CSS masterclass with guru Lea Verou. Bring nothing but a laptop with updated Chrome and Firefox, a willingness to learn and an appetite to get inspired!

13:30
to
17:30

Workshop: Katie Miller

Functional Programming in the Cloud

This workshop will introduce functional programming principles in Haskell.

Katie and Tony will also demonstrate how to deploy an application to the open source OpenShift Platform as a Service.

Participants will then use their new FP and PaaS skills to create a simple Haskell web app running in the cloud.

Attendees should have web development experience, but prior knowledge of functional programming and Haskell is not required. Participants can expect to walk away with an understanding of Haskell basics and how applications are created in the functional style, as well as the ability to deploy and manage apps on OpenShift.

Please bring a laptop set up as per the instructions at https://github.com/codemiller/fp-in-the-cloud, and prepare to be challenged!

NB: Workshop tickets are sold separately.

Workshops: Saturday, 5th April 2014

08:30
to
12:30

ASP.NET Workshop: Scott Hanselman

ASP.NET workshop with Microsoft luminary Scott Hanselman:

Join Scott Hanselman and he shows you the current state of ASP.NET and Visual Studio 2013. We’ll learn how to upgrade from older versions of ASP.NET to the latest, and how to future proof as well. We’ll have a discussion about the thinking around the next version of ASP.NET and consider the larger architectural issues presented by more JavaScript on the client.

Come with VS2013 installed on your machine. The Express SKU is fine, although it’d be nice if you also had VS Web Essentials installed.

NB: Workshop tickets are sold separately.

Conference: Friday, 4th April 2014

08:45

Welcome

09:00

Opening keynote: Lea Verou

The Chroma Zone: Engineering Color on the Web

We use color every day, but how well do we really understand it? More often than not, we are merely scratching the surface of a large and complicated discipline. In this dynamic session, we will scratch a little deeper, and you will be surprised at how deep the colorful rabbit hole goes. How does color work on our screens? What’s the difference between color models and color spaces? Which existing features of CSS Color are we underutilizing? What’s in store for CSS Color level 4?

This is not a design talk, it’s a technical talk about the inner workings of one of the most important design aspects. Whether you identify as a designer or a developer, you will walk out of this session with a newfound confidence about anything color related.

09:50

Keynote: Jim Webber

A Little Graph Theory for the Busy Developer

In this talk we’ll explore powerful analytic techniques for graph data. Firstly we’ll discover some of the innate properties of (social) graphs from fields like anthropology and sociology. By understanding the forces and tensions within the graph structure and applying some graph theory, we’ll be able to predict how the graph will evolve over time.

To test just how powerful and accurate graph theory is, we’ll also be able to (retrospectively) predict World War 1 based on a social graph and a few simple mechanical rules. Then we’ll see how graph matching can be used to extract online business intelligence (for powerful retail recommendations). In turn we’ll apply these powerful techniques to modelling domains in Neo4j (a graph database) and show how Neo4j can be used to drive business intelligence.

Don’t worry, there won’t be much maths :-)

10:40

Morning tea

11:15

JD Trask

The scaling & performance toolbox - what Raygun.io uses

Mindscape built Raygun.io to help developers build better quality software. Tracking errors, managing them and ultimately helping resolve the bugs that harm great software.

John-Daniel shares some of the war stories in building a platform that is effectively getting a non-stop denial of service attack from around the world. How the service was scaled, what technologies worked, what technologies didn't.

Discover the technology choices that were needed to scale to handle more than 100 million bits of data a day. This session will be of particular interest to technologists who might want to find out more about the business of software products.

Tony Morris

Comonads, Applicative Functors, Monads and Other Principled Things

In this talk, we will discuss what these concepts represent and how they apply in everyday programming practices. A concrete explanation of the meaning and motivation for each of these will be provided — no metaphors or handwaving. Some of the practical consequences will be introduced by drawing on the ubiquitous knowledge of everyday programmers.

The audience should expect to walk away with an introductory understanding and vocabulary for these topics with a capability to directly apply this knowledge in any programming environment and an aspiration to take this knowledge further.

12:00

Brendan Forster

10 Things I've Learned From Doing OSS

Over the past couple of years, Brendan has worked extensively with OSS projects and helped introduce new and experienced developers to this brave new world.

In this talk he will demonstrate a practical guide to working in Open Source. Join him for real-world advice, based on the things he's seen succeed (and fail!).

If you're looking to start your own OSS journey; or if you already do a little and would like to do more; you need to catch this talk.

Orion Edwards

Understanding C++ templates

Templates are a key feature of C++. They enable you to write safer code with less duplication and better performance. Almost all C++ programmers have encountered them, but few know them well. Orion will show you how to think about and put to use some of the more advanced things you can do with templates, and show that they're simpler than you might think.

Even if you're not a C++ developer, understanding these concepts will give you a better perspective for programming in other languages.

12:45

Lunch

13:45

Brian LeRoux

Mobile Web Whirlwind Tour of PhoneGap, Cordova & Topcoat

Mobile is on the rise, and with it comes mobile web technology. The past year has seen tremendous adoption of the free/open source PhoneGap project with over 1 million downloads. Building fast and clean apps has never been easier thanks to a new CSS library from Adobe called Topcoat.

In this talk, Brian will demonstrate how to quickly build a mobile application using PhoneGap with Topcoat, how it all works under the hood, how it relates to Apache Cordova, and where the project is going in the coming year.

Michelle Dickinson

Will nanobots take over the world?

What is nanotechnology? Should I be scared of it? Can it really make things invisible?

These and many other nano questions will be answered as Michelle discusses the frontiers of nanotechnology research and the fine line between science fact and science fiction.

14:30

Nic Wise

Native, Crossplatform, Mobile

Think the only way to do cross platform mobile development is using HTML5? Or worse, write everything twice?

Think again, it's C# to the rescue. C# is in the middle of a renaissance on mobile, thanks to the Xamarin toolset. Based around the Mono project, the Xamarin tools let you write applications for both iOS and Android - allowing you to share the common bits of your application, while keeping the platform specific bits unique. Combine that with the extensive .NET frameworks and you have a powerful combination for building state of the art mobile apps.

In this session, we'll explore some of the options available at the moment, why write-once-run-anywhere is a myth, and go a bit deeper to see just how it's done.

Rachel Myers

Improve Web Perf Without Breaking Metrics

Using off-the-shelf tools to understand web performance worked really well for me for a while. But when I shipped a javascript-based experience for tablets, the off-the-shelf tools fell over, disastrously.

We've gradually stopped refreshing the page on every click, and we've become progressively blind about the performance of our websites. We ended up creating our own unelaborate way of getting metrics, hoping that soon the tools will notice that ajax and pjax and turbo links are real things.

This is the story of what went wrong, how we 'solved' it, and how it changed how I measure performance.

There will be science.

15:15

Afternoon tea

15:45

Locknote: Troy Hunt

Hack yourself first: go on the cyber-offence before online attackers do

The prevalence of online attacks against websites has accelerated quickly recently and the same risks continue to be exploited. However, these are often easily identified directly within the browser; it’s just a matter of understanding the vulnerable patterns to look for.

'Hack Yourself First' is all about developers building up cyber-offence skills and proactively seeking out security vulnerabilities in their own websites before an attacker does. It recognises that we have huge volumes of existing websites that haven’t gone through sufficient security review plus we continue to create new content that even when built with security in mind, still needs testing from the perspective of a cybercriminal.

In this session we’ll look at website security from the attacker’s perspective and exploit common risks in a vulnerable web application. We’ll also explore ways to easily grab credit cards, gain immediate FTP access to thousands of websites and even look at how your toilet can be pwned.

16:35

Locknote: Scott Hanselman

Angle Brackets, Curly Braces, JavaScript & Assembler

One day we woke up and things were different. Maybe it happened overnight, maybe it took many years. Suddenly we are scripting against thousands of Virtual Machines from the command line while creating things today with JavaScript in the browser that were impossible yesterday. LiveScript becomes JavaScript becomes ES6 and now we’re compiling C++ to JS. Join Scott Hanselman as he explores the relationship between the Cloud and the Browser, many Languages and one Language, how it might all fit together and what might come next.

17:35

Closing notes