Skip to content

Instantly share code, notes, and snippets.

@elkorn
Last active October 25, 2015 00:26
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save elkorn/4a2f05c3ab801f3b7909 to your computer and use it in GitHub Desktop.
Save elkorn/4a2f05c3ab801f3b7909 to your computer and use it in GitHub Desktop.
NDC 2015
{
"wednesday": [
{
"title": "Keynote - Data and Goliath: The Hidden Battles to Collect Your Data and Control Your World",
"speaker": "Bruce Schneier",
"tags": [
"Security"
],
"description": "You are under surveillance right now. Your cell phone provider tracks your location and knows who's with you. Your online and in-store purchasing patterns are recorded, and reveal if you're unemployed, sick, or pregnant. Your e-mails and texts expose your intimate and casual friends. Google knows what you're thinking because it saves your private searches. Facebook can determine your sexual orientation without you ever mentioning it. Corporations use surveillance to manipulate not only the news articles and advertisements we each see, but also the prices were offered. Governments use surveillance to discriminate, censor, chill free speech, and put people in danger worldwide. And both sides share this information with each other or, even worse, lose it to cybercriminals in huge data breaches. Much of this is voluntary: we cooperate with corporate surveillance because it promises us convenience, and we submit to government surveillance because it promises us protection. The result is a mass surveillance society of our own making. But have we given up more than we've gained? Security expert Bruce Schneier offers another path, one that values both security and privacy."
},
{
"title": "This is not the search you are looking for",
"speaker": "Toby Henderson",
"tags": [
"Architecture",
"Database",
"Search"
],
"description": "Searching for stuff seems like it should be easy; after all, it’s something we do every day. Take your favourite search engine, type something in the box, click search, and you’re done! All the answers you are looking for, ready for you to consume. With these systems, you generally have no idea what answers you should be getting; just that you’ll get something. Your universe of knowledge is now whatever Google just told you.\nWhen the person searching knows the results they should be getting, producing the expected search results is much harder.\nThis talk is an introduction to text searching: some search terminology, some basics on how text search engines work, the questions you should ask at the start, and some of the common problems you run into when designing search systems."
},
{
"title": "Lean and Functional Programming",
"speaker": "Bryan Hunter",
"tags": [
"People",
"Agile",
"Functional Programming"
],
"description": "Companies adopt Lean because it is a proven path to improving delivery times, reducing cost, and improving quality. A company that writes software cannot truly embrace Lean without also embracing functional programming. Why? Lean is about building quality into the process. Lean is a systemic method for reducing waste, overburden, and inconsistency. With OO, many forms of waste, overburden, and inconsistency are unavoidable. A defect early in the process always results in a defect in the product later in the process, and OO itself is a defective process. In this session we will go from the origins of both Lean and FP and see how specific FP concepts (examples in F#, Elixir) map onto Lean principles. We will also discuss why some companies fail at Lean and FP."
},
{
"title": "The Art of Software Gardening",
"speaker": "Patroklos Papapetrou",
"tags": [
"People"
],
"description": "Software development has evolved a lot the last decade. Developers are not considered code monkeys any more.They're expected to write clean and maintainable code that continuously evolve with business needs. Some times they need to work remotely in dynamic and multi-cutltural environments using a variety of technologies and programming languages. Nevertheless they still want to feel creative and proud about their code. In this session I'm going to discuss the essential skills, the proper attitude and the useful practices that modern developers should have in order be able to treat code, like flowers and systems, like gardens."
},
{
"title": "Duplicating data or replicating data in Micro Services",
"speaker": "Dennis van der Stelt",
"tags": [
"Architecture"
],
"description": "As systems are growing bigger and more complex, we are looking for different ways to work with data. Out of this came design principles and architectural styles like CQRS, Event Sourcing and Micro Services. They take a different approach over standard CRUD based systems. But when the authorities on CQRS tell you that it's not a top level architecture, what do they actually mean? How should you divide a system using Micro Services? And is JSON better than XML/SOAP? In this session you'll learn the differences and why you should be replicating data, but not duplicating data."
},
{
"title": "Practical CSS tips & tricks for backend developers",
"speaker": "Alex York",
"tags": [
"Web",
"Design",
"UI"
],
"description": "Many Java/.NET developers dislike working with CSS, or don't have the time to fully learn its in and outs. Or they think they don't have an \"eye for design\" and leave CSS work for someone else. But in my career as a Clean Coding, TDD-ing, C# developer, it has been my mastery of CSS which has set me apart from other developers, and I am convinced it is the greatest tool in my toolbelt.\nIn this practical session I will share the tips and tricks that I've picked up over the last 15 years of making websites. With these in your toolbox you'll be ready to impress your colleagues and avoid common CSS pitfalls. And start making websites that not only work well, but look great too.\nCome to this session if you want to improve your CSS skills, and have ever asked yourself any questions like the following:\n\nCan I apply SOLID principles to CSS?\nCan I use CSS3 features today without breaking older browsers?\nHow can I make my websites more flexible?\nHow can I use Responsive Design on my website without making my brain explode?\nWhat is CSS Specificity? And how on earth do I pronounce it?!\nWhat are \"em\" and \"rem\" widths and why should I care?\nIf I do CSS won't I end up wasting my days fixing IE6- and IE7-specific bugs?"
},
{
"title": "The Real Price of Shared Pointers in C++",
"speaker": "Nico Josuttis",
"tags": [
"C++"
],
"description": "Shared pointers play a fundamental part of modern C++ programming. However, they come with a price. The price usually known is the overhead of the control object, which can became even more expensive if make_shared() is used. But there is an additional price that can play an important role if good performance is key: synchronization. As a consequence counter-intuitive things such as passing shared pointers by reference can become important. This talk discusses the whole story of shared pointers."
},
{
"title": "ASP.NET 5 & DNX: It’s a X-Platform Party!",
"speaker": "Damian Edwards",
"tags": [
"Web",
"Microsoft"
],
"description": "ASP.NET 5 is coming and it's built on a shiny new thing called DNX (The .NET Execution environment) that provides a lot of the capabilities you've heard about, including dynamic compilation, NuGet packages as dependencies, and application platform portability. This session will take a closer look at DNX and how it provides these and other services to your .NET applications while attempting to run an application on four (or more?) different platforms in under an hour."
},
{
"title": "The New JavaScript: ES6",
"speaker": "Rob Eisenberg",
"tags": [
"Web",
"JavaScript"
],
"description": "This year ECMA International will be ratifying the biggest update to the JavaScript language in its history. In this talk we'll look at key features already appearing in browsers as well as those coming in the near future. We'll also explore how you can begin leveraging the power of ES6 across all browsers today. If you haven't looked at JavaScript recently, you will soon realize that a bigger, better world awaits."
},
{
"title": "Linux Device Driver Best Practices",
"speaker": "Bill Gatliff",
"tags": [
"Embedded"
],
"description": "\"Supported by Linux\" rarely means \"it will work for you\". In fact, most vendor-supplied device drivers require extensive modification---and often a complete rewrite---before deployment in embedded environments.This presentation offers a list of best practices, with examples, drawn from the author's decade of experience writing real-world, high-complexity device drivers for Linux kernels. You'll learn how to make the compiler write bulletproof register access code for you, how to plan for hardware integration and field failures, and considerations for proactive, reactive, and interactive debugging scenarios. You'll also learn the key differences between \"device drivers\" and \"interfaces\", and how that knowledge translates into code that does more AND works better than the code you're delivering now."
},
{
"title": "Approaches to multi-lingual text search with Elasticsearch and Lucene",
"speaker": "Itamar Syn-Hershko",
"tags": [
"Database",
"Search"
],
"description": "Lucene and Elasticsearch are state of the art open-source products which power many search services around the world, including GitHub, LinkedIn, Twitter and many many others. But enabling efficient searches to yield relevant results is not an easy task. Every language has its special attributes, every corpus has its own characteristics, and every user expects to find the results most relevant to him.In this session we will explore one of the biggest challenges in the world of advanced full-text search - muli-lingual search. We will look at real-world pitfalls , and offer tools and solutions to overcome them."
},
{
"title": "A tour of the language landscape",
"speaker": "Yan Cui",
"tags": [
"Functional Programming",
"Programming Languages"
],
"description": "There seems to be a new programming language every week, and for us busy developers we just don't have the time to keep up with them. But have you wondered what we might haved missed out on whilst we're busy working in our language of choice?Having spent time with numerous programming languages the past few years I have learnt something new from each. In this talk, we will go on a whirlwind tour of the interesting concepts and ideas I have encountered, from F#'s type providers and Rust's borrowed pointers, to Elm's signals and Idris's dependent types to name a few."
},
{
"title": "Microservices, cutting through the Gordian Knot",
"speaker": "Ian Cooper",
"tags": [
"Architecture"
],
"description": "Microservcies is the latest industry buzzword, but it's definition seems to be shifting and elusive. In this presentation we will cut through the hype and debate to expose the underlying original ideas that form the pillars upon which the Microservices idea is built. With an understanding of those pillars we will look at what makes Microservices different from it's predecessors, what we need to do to deliver on those differences and how to leverage them to support agile delivery. Finally we will look at impementation, with a focus on libraries and frameworks that can help us deliver Microservices under .NET."
},
{
"title": "Asynchronous generators and promises in ES6",
"speaker": "Francis Paulin",
"tags": [
"Web",
"JavaScript"
],
"description": "EcmaScript 6 introduces many new features that will be a great aid to JavaScript developers, and will transform the way we write JavaScript. In this demo-laden talk I have chosen to take a deep dive into the new promise and generator features introduced in ES 6. I will demonstrate how you can leverage promises to remove callback-nesting (hell) and how to write and consume generators using the new yield keyword.\nFinally we'll combine the two concepts to write asynchronous code that has a pleasant synchronous look and feel to it, much like async/await in C# that we have all learned to love."
},
{
"title": "Developing interfaces — Why developers are the new designers",
"speaker": "Martin Jensen",
"tags": [
"Design",
"UI"
],
"description": "When creating new and innovative products and services, it's becoming more and more important to visualise and test your concepts.\nDevelopers are in a unique position with their access to modern toolchains and their ability to actually craft something quickly. In a sense, developers are the new designers.\nThis talk is for developers everywhere whom make something which eventually ends up in the hands of a user. By using modern tools and techniques, we can bridge the gap between design and development and create products which feel amazing.We’ll see how developers create interfaces in some of the worlds most succesful companies. We’ll cover how you can incorporate a modern prototyping workflow in your teams. How developers can optimise their products so designers can do their work and how developers should all know the basics of animation when creating software. Hopefully this talk will inspire you to create interfaces which not only look good, but feel amazing. We will be looking at state of the art prototyping tools, technologies which allows you to both iterate and test faster, and also the basics of animation in code.\nThe talk is hosted by Martin Jensen. Martin has been designing and developing interfaces for a number of years, and spends about the same amount of time coding as he does designing. Martin is now working at Microsoft, building Delve, a new Microsoft product out of Norway."
},
{
"title": "Faking and Mocking Legacy Embedded C",
"speaker": "James Grenning",
"tags": [
"Embedded",
"C++"
],
"description": "You have test-driven in other languages but need to sharpen your skills for C or C++. In this session we'll see how to test-drive code using CppUTest and CppUMock. You'll also take the legacy C challenge and use all the tools of the trade to get this code, never meant to be tested off its target environment, into CppUTest. To effectively mock and fake in C and C++ you need to know your tools and use them in creative ways. Each stage of compilation must be mastered to tame the legacy C beast."
},
{
"title": "No Estimates, Let's Explore the Possibilities",
"speaker": "Woody Zuill",
"tags": [
"People",
"Agile"
],
"description": "\"The only sure thing about forecasts is that they are WRONG\" - James P. Womack and Daniel T. Jones.\nEstimates have been the bane of software development and programmers for decades. Managers/Customers want to know: When will it be done? How much will it cost? Programmers are told \"We won't hold you to the estimate\", and yet they often are.\nEstimates in themselves are not the problem I see, but rather the dependence on following an estimate-driven approach to software development. For many years we've depended on estimates to inform our decision making process, and yet the results have often been mediocre at best. It's my contention that estimates are often not as useful as we seem to think, and even worse they misinform the decisions they are meant to support. Do we really need estimates? Is simply \"getting better\" at estimates worthwhile? Can we live without them? Will things be better without them?\nEstimates are merely one possible approach to software development, and I suggest we must be open to discussing the possible problems, and to search for alternatives. I don't necessarily have answers for you, but I've worked with \"no estimates\" for over 6 years and I'm still alive. I want to explore the idea of estimates, why they are pervasive in the programming world, how they might be harmful, and see if we can grow the dialogue about finding a better way to make decisions."
},
{
"title": "A Lap Around .NET 2015",
"speaker": "Anthony D. Green",
"tags": [
"Microsoft",
".NET Framework"
],
"description": ".NET 2015 is the next generation of .NET. This release encompasses several new innovations that improve developer productivity and enhance application performance. .NET 2015 builds on the advancements available in .NET 4.5, 4.5.1 and 4.5.2 to deliver a highly compatible platform for building applications for the mobile-first, cloud-first world. This presentation will include .NET Native, ASP.NET 5, C# 6/VB 14/F# 4, the new .NET Compiler Platform (\"Roslyn\"), numerous IDE and debugging improvements including PerfTips as well as new features in WPF."
},
{
"title": "Fundamentals of Type-Dependent Code Reuse in C++",
"speaker": "Mark Isaacson",
"tags": [
"C++"
],
"description": "Code reuse is a tough problem. Duplicated code is almost universally frowned upon, but it's not infrequent that my peers don't know how to restructure things and fix it. The most fundamental techniques for code reuse are a blind spot in the community, misunderstood as being either too simple or too complex to be useful. In textbooks the chapters are enumerated by techniques, rather than problems, I think this is foolish: we should give scenarios and approach them from many angles with many tools. That's this talk. We'll look at the problems that motivate using techniques like templates, overloading, tag dispatch, CRTP, mixins, and more to create highly composable code units. The talk will be designed to be accessible to those who've never written a template before and build up to expert level techniques by the end."
},
{
"title": "IMDB showdown - comparing OrigoDB, Redis and SQL Server Hekaton",
"speaker": "Robert Friberg",
"tags": [
"Architecture",
"Database"
],
"description": "Moving data between RAM and disk is expensive both in terms of runtime performance but also developer productivity. A relational model, stored procedures, data access code and O/R mapping all add complexity and require significant time and effort to maintain.A solution based on a pure in-memory technology eliminates all or some of this extra work reducing both cost and time to market. Using a hybrid, such as Sql Server Hekaton, you can benefit from in-memory performance without sacrificing existing investments in existing RDBMS based architecture.\nIn this session, Robert introduces OrigoDB, Redis and Sql Server Hekaton, demonstrates an application based on each of them and discusses the pros and cons of each approach."
},
{
"title": "Enterprise Tic-Tac-Toe -- A functional approach",
"speaker": "Scott Wlaschin",
"tags": [
"Security",
"Web",
"Architecture",
"Functional Programming",
".NET Framework"
],
"description": "Follow along as I ridiculously over-engineer a simple game to demonstrate how functional programming can be used to create a real-world \"enterprise-ready\" application.\nTopics covered include: encoding business rules into types, data hiding with parametric polymorphism, using functions for capability-based security, exposing a REST API with HATEAOS, the functional approach to logging, actors, scalability and more."
},
{
"title": "Norway, Software and Me",
"speaker": "Ted Nelson",
"tags": [],
"description": "Reminiscenes, musings about The Nature of Norway, and some serious software issues."
},
{
"title": "Async and Streaming JavaScript, We're All Doing it Wrong!",
"speaker": "Matthew Podwysocki",
"tags": [
"Web",
"JavaScript"
],
"description": "On a dark and fateful day, Promises were adopted as the default asynchronous implementation in JavaScript, much to the chagrin of Node community and the church of small modules. So, now we're stuck with it, but was it the right idea? Let's go over that and other asynchronous patterns. From there we will look at Streams and Event patterns for asynchronous and push based information. Is there anything we can learn from that and what about the implementations like Node Streams and WHATWG Streams. Then we'll dissect them and find out how they're wrong and how we can fix them to a better future!"
},
{
"title": "‘Don't Make Me Feel Stupid’ – A. User",
"speaker": "Liam Westley",
"tags": [
"UI",
"UX"
],
"description": "If every developer had read Alan Cooper’s book, ‘The Inmates are Running the Asylum’, we would have a lot less crappy software in the world. Fact!\nIn this UX orientated talk we’ll focus on how anything we design, physical or software, should not cause the user to be made to feel stupid. It’s a simple rule and yet frequently ignored.\nThis will be a subjective look at UX, from poor design in the physical environment, to some of the common pitfalls developers encounter and that can be easily avoided once you consider how the end users will interact with your software.\nYou won’t leave the session being a UX expert (I’m not claiming to be one either) and none of this will bring about world peace, but it sure would improve a lot of people’s lives when they interact with your software."
},
{
"title": "When order does not matter",
"speaker": "Bartek Szurgot",
"tags": [
"C++"
],
"description": "When programming in C++ arguments to function calls are always passed in a predefined order with a type checking. passing them in a wrong order or using a wrong type for them will typically result in a compilation error. This is a feature... most of the time. There are situations when possibility to change order or not to pass some arguments (not necessary the last one(s)) is a huge advantage. during the presentation a case study for such a situation will be presented, along with a template-based solution, using standard modern C++."
},
{
"title": "What’s new in ASP.NET 5 and MVC 6",
"speaker": "Jon Galloway and Damian Edwards",
"tags": [
"Web",
"Microsoft",
".NET Framework"
],
"description": ""
},
{
"title": "CQRS – but different",
"speaker": "Udi Dahan",
"tags": [],
"description": "When many developers think of Command-Query Responsibility Segregation (CQRS), they envision separate datastores for reads and writes, linked together by some kind of event-based synchronization mechanism. The reality is that for many domains this is overkill, while for others it still doesn’t solve fundamental concurrency issues. Join Udi for a different approach to CQRS – with a nice mix of NoSQL databases thrown in for good measure."
},
{
"title": "Omnisharp: .NET sans Microsoft",
"speaker": "Mathew McLoughlin",
"tags": [
".NET Framework"
],
"description": "It used to be that if you wanted to write .NET code you would be completely reliant on Microsoft for their tools, frameworks and even their operating system. Now things are changing. The .NET open source community has grown in size, and with it, so have your options for frameworks and libraries. Microsoft have even announced that they are building a cross platform CLR, so now you have a choice of operating system too.\nThe one thing that has been missing from this story is good cross platform development environment. This is where Omnisharp comes in, allowing you to develop C# code in the editor of your choice. In this talk I’m going to discuss some of these editors and the tools and technologies used to build them. Demonstrating how you can use the Roslyn API’s to build an interactive development environment."
},
{
"title": "Breaking .NET(C#) Applications: Hands-On Attack Scenario Class",
"speaker": "Topher Timzen and Jon McCoy",
"tags": [
"Security"
],
"description": "This class will cover attack techniques against .NET applications. With a focus on Reverse Engineering and memory Hijacking. Hands-On scenarios will be conducted allowing student to modify applications at Runtime and on Disk. Students will leave with the building blocks of developing .NET attacks."
},
{
"title": "A guided tour of the BigData technologies zoo",
"speaker": "Itamar Syn-Hershko",
"tags": [
"Big Data",
"Database"
],
"description": "Elephants (named \"Hadoop\" after a toy), bees and hives, pigs, ELKs, rabbits and one ZooKeeper. You can find them in a zoo, or you are just a software developer trying to make sense out of data using technologies with weird names.This session will be a guided tour of the BigData kingdom. We will explore various challenges one has to face when handling large volumes of data, and learn about various tools with funny names which were built to help in the process.Equipped with real-world examples and use-cases, by the end of this session BigData should stop being a buzzword to you."
},
{
"title": "Learning from Haskell",
"speaker": "Venkat Subramaniam",
"tags": [
"Functional Programming",
"Programming Languages"
],
"description": "Whether you're a fan of static typing or functional style of programming, a language that stands far apart and serves as a guiding force to a lot of different languages in these areas is Haskell. Learning about Haskell gives a very different perspective on typing and about functional programming. Knowing how Haskell does these influences the way we think and design our applications in different languages. Whether you program in C#, F#, or any of the other languages, come to this talk to get influenced by Haskell’s way of thinking and coding."
},
{
"title": ".NETCore Blimey!",
"speaker": "Matt Ellis",
"tags": [
"Microsoft",
".NET Framework"
],
"description": "Microsoft have done the unthinkable and open-sourced .net, making it available on GitHub, and even taking it cross-platform. This is great news for developers, but do you know your .NET Core from your .Net Framework? Can you tell your CoreCLR from your CoreFX? And where does asp.net vnext and DNX come into this story? In this session, we’ll take a look at the big picture, dive deeply into some of the more interesting details and see how the pieces of Microsoft’s new .Net stack fit together, what it means for developers and find out exactly how you do run a .exe on Unix."
},
{
"title": "All Your Tests Are Belong to Us",
"speaker": "Rachel Appel",
"tags": [
"Web",
"Agile",
"Testing",
".NET Framework"
],
"description": "You've spent time and effort to build a website, and you must verify that it works correctly. But you might be tired of manually testing webpages, which is also an error prone process in itself. Have you ever asked yourself if there must be an easier way? Would you like to learn how test all facets of an ASP.NET Web Application? From C# on the server side, to JavaScript on the client, complete with automated UI testing? In this session, you'll learn everything you need to know about how to properly test ASP.NET MVC Applications. We'll review testing server side controllers with xUnit, followed by a look at testing JavaScript in MVC Views with qUnit. Once we've covered unit testing, then we'll move onto UI automation testing with WebDriver. You'll learn everything you need to know about how to get up and get testing."
},
{
"title": "Form with Function: Adding Behavior with CSS",
"speaker": "Tim G. Thomas",
"tags": [
"Web",
"Design",
"UI"
],
"description": "As the web becomes a more vivid, interactive medium, page payloads increase dramatically. Images, templates, and behavioral plugins add needed richness, but also code complexity and, yes, file size. Fortunately, there's an unusual way to add some great interactions to your web apps without bloating your pages: with CSS!"
},
{
"title": "Dealing with noexcept in the C++ Standard Library",
"speaker": "Nico Josuttis",
"tags": [
"C++"
],
"description": "The new exception handling with keyword noexcept was introduced late during the standardization of C++11 as a side effect of the introduction of move semantics. Not knowing about its overall consequences, we used a rough pattern to decide which functions to mark noexcept in C++1.\nOf course, it turned out that we didn't make it right. This talk gives some insights about the mistakes, the consequences of them in the standard, and what it means for day-to-day programming to use noexcept."
},
{
"title": "Anti-fragile and feedback. Trying to make up for the failures of \"agile.\"",
"speaker": "Andy Hunt",
"tags": [
"Agile"
],
"description": "More info coming..."
},
{
"title": "Extremely scalable cloud applications made easy using the Azure service fabric actor model",
"speaker": "Patriek van Dorp",
"tags": [
"Architecture"
],
"description": "Having a platform like Microsoft Azure to host you distributed applications is one thing. Making these applications scalable yet a whole other thing. Microsoft Azure Service Fabric comes with a programming model based on the Actor Model just like the Orleans Framework. The Azure Service Fabric Actor Model enables us to distribute not only our services but also our object model transparently over multiple servers. It takes away the complexity of service location, placement and concurrency for us and lets us focus on what matters most, the business logic."
},
{
"title": "How TDD and SOLID principles can improve your HW abstraction",
"speaker": "Tore Martin Hagen",
"tags": [
"Architecture",
"Agile",
"Embedded"
],
"description": "Embedded SW have often been trailing in SW development practices. In this session we will look at the use of TDD and SOLID principals in embedded SW. We will discover how this ease your SW development and also have the nice side effect that it abstracts your HW in a nice way and make your code portable to other HW."
},
{
"title": "Breaking .NET(C#) Applications: Hands-On Attack Scenario Class",
"speaker": "Topher Timzen and Jon McCoy",
"tags": [
"Security"
],
"description": "This class will cover attack techniques against .NET applications. With a focus on Reverse Engineering and memory Hijacking. Hands-On scenarios will be conducted allowing student to modify applications at Runtime and on Disk. Students will leave with the building blocks of developing .NET attacks."
},
{
"title": "To NoSQL or Not to NoSQL, That Is the Question",
"speaker": "David Ostrovsky",
"tags": [
"Big Data",
"Database"
],
"description": "Everybody is talking about big data, and NoSQL technologies are all the rage these days. But do you really have \"big data\", or is your database server just slow? Should you take the plunge into the deep end of the NoSQL pool, or just use a relational database? If you do start using NoSQL, which of the many different systems best fits your particular use case? And how do you transition your existing infrastructure and code to a whole new, conceptually different, storage mechanism?\nAll of these questions and more will be answered in this session. You'll learn about the various families of NoSQL data stores, their pros and cons, and which problems each one is designed to solve. You'll get a better understanding of when to use relational databases, when to use NoSQL and when to use a polyglot combination of storage technologies. You'll hear about ways to plan and execute staged system migrations from relational to NoSQL databases. And finally, you'll find out how to search and analyze your stored data quickly and efficiently."
},
{
"title": "Computation expression in context : a history of the otter king",
"speaker": "Andrea Magnorsky",
"tags": [
"Functional Programming"
],
"description": "I heard that computation expressions are kind of like monads. I heard that monads are like burritos or space suits, and that they are pretty much magical. I also heard that they are monoids in the category of endofunctors...\nAs a writer of code that all sounds awesome, and I want to know and understand (and I'm sure you do too) what those terms actually mean, and most importantly why we should care about them. What are their practical uses? So, in this talk we are going to attempt to do just that. Failure is possible, but the attempt is valuable. It's a lot to chew so make sure you had your tea/coffee."
},
{
"title": "Monitoring Sensor Data in RealTime over Azure",
"speaker": "Uffe Björklund",
"tags": [
"Cloud",
"IoT"
],
"description": "“Internet Of Things” has been hot for a while now, and these days we are expected to be able to view data from sensors in our smart devices in real-time. Data that in the past was viewed (if viewed at all) historically…\nOne of the challanges with IoT is that different sensors has different abilities. There is no standard way of communication for IoT even though there is work being done in that area.\nIn this session we will build and deploy a real-time communication solution to Azure so that we can view sensor data in real-time. Hopefully there will be people in the room that will help me to produce sensor data to the cloud service.\nThings we need to solve in this session:\n\n\nThe sensor-tag (from Texas Instruments) being used will not have a network connection so we will need to bridge the BLE connection to something with network access\n\n\nWe need to persist sensor data since only real-time is not enough\n\n\nWe cant broadcast all sensor data to all clients, so how do we solve that?\n#IoT #JavaScript #CSharp #CC2541 #Azure #RealTime #Charting"
},
{
"title": "Seriously, you should start testing that JavaScript code",
"speaker": "Kuba Walinski",
"tags": [
"Agile",
"Testing",
"JavaScript"
],
"description": "I think most professional programmers would agree that we should unit test our code to some degree. And usually that unit testing is happening in our back-end code, but what about our front-end? Yes, I am talking about our (increasingly large) JavaScript codebase. Those hundreds of lines of code could benefit a lot from being unit tested. Seriously, it could possibly save you a lot of problems down the line when you add a new feature without realizing that it breaks something else in the system. With tests in place you will know immediately (even right after saving the file with the new code changes). Without tests you will learn about it from your QA staff (if you’re lucky enough to have them) or from your end customer. In this talk you will get to know the tools (Karma, Jasmine, PhantomJS and Grunt) that make unit testing your JavaScript code a real pleasure."
},
{
"title": "Front-end Fun with Sass and Coffee",
"speaker": "Dylan Beattie",
"tags": [
"Web",
"UI",
".NET Framework"
],
"description": "Would you like to take a closer look at how tools like SASS and CoffeeScript can help you create dynamic stylesheets and manage your client-side scripts? Join Dylan who will show you how script files can be based on elegant, expressive source code.\nThe web is built on HTML, CSS and Javascript. These core web technologies are the basis of every website and web application, and like it or not, they're here to stay. These days, of course, it's rare to build a website by hand-coding static HTML pages; instead, we use tools and frameworks to build software applications that write our HTML for us. However, it's all too common to see beautiful, elegant, modular web applications deployed alongside monolithic CSS files and handwritten JavaScript code.\nWe'll look at how you can include these tools in your ASP.NET web applications, with full support for runtime optimisations and HTTP caching, and we'll look at which tools exist to offer first-class support for these abstractions in Visual Studio."
},
{
"title": "History and Spirit of C and C++",
"speaker": "Olve Maudal",
"tags": [
"C++"
],
"description": "To get a deep understanding of C and C++, it is useful to know the history of these wonderful programming languages. It is perhaps even more important to appreciate the driving forces, motivation and the spirit that has shaped these languages into what we have today.\nIn the first half of this talk we go back to the early days of programmable digital computers. We will take a brief look at really old machine code, assembler, Fortran, IAL, Algol 60 and CPL, before we discuss the motivations behind BCPL, B and then early C. We will also discuss influential hardware architectures represented by EDSAC, Atlas, PDP-7, PDP-11 and Interdata 8/32. From there we quickly move through the newer language versions such as K&R C, C89, C99 and C11.\nIn the second half we backtrack into the history again, now including Simula, Algol 68, Ada, ML, Clu into the equation. We will discuss the motivation for creating C++, and with live coding we will demonstrate by example how it has evolved from the rather primitive ³C with Classes² into a supermodern and capable programming language as we now have with C++11/14 and soon with C++17."
},
{
"title": "50 Shades of AppSec",
"speaker": "Troy Hunt",
"tags": [
"Security"
],
"description": "The AppSec industry is enormously diverse and it only continues to diverge as we put more software into more things with more connections. It’s an industry that’s fluctuating between the sophisticated to the absurd, the intelligent to the primitive and the scary to the outright hilarious. There’s valuable lessons to be taken away from these events and applied in our future security efforts.\nIn this talk I’m going to cover a broad spectrum of what’s happening in our industry – an entire 50 shades of it in only 45 minutes – and you’ll get a sense of just how challenging it’s becoming for those of us working in AppSec to keep ahead of the attacks. I’ll cover everything from the social aspects of hacking through to some of the more obscure attacks and the increasing challenges we have as defenders."
},
{
"title": "Ads in Mobile Apps and Games 101",
"speaker": "Alan Mendelevich",
"tags": [
"mobile"
],
"description": "There are several ways to monetize mobile apps and games. Depending on the platform advertising is either number one or two. However, just slapping ads onto your app is a sure way to degrade user experience without reaping the benefits of this powerful monetization instrument. This session will cover the basics you should know about advertising with focus on mobile apps and games. Learn to understand the industry jargon, its hidden secrets and tips & tricks to make ads work for you."
},
{
"title": "Embedded Linux development using the Yocto Project",
"speaker": "Isak Styf",
"tags": [
"Embedded"
],
"description": "In this talk you will first be taken through the background of the Yocto Project and its core components. You will see how a typical build environment is structured and how YP enables you to use a cohesive environment to setup not only a firmware image but also toolchains and SDK's that can be shared between developers for the same platform."
},
{
"title": "Modelling complex game economy with Neo4j",
"speaker": "Yan Cui",
"tags": [
"Database"
],
"description": "The challenge of modelling and balancing the economy of a large scale game is one of the biggest problems game developers face and one that many have tried to solve by simply throwing man-hours at it...\nBut there's a better way! Learn how Gamesys did it by leveraging graph database Neo4j to model the in-game economy of our MMORPG \"Here Be Monsters\" and automate the balancing process.\nWe'll discuss lessons learned, successes and challenges, and how a graph database enables our small team of game designers to stay agile and focused on delivering new content to players."
},
{
"title": "Type-Driven Development",
"speaker": "Mark Seemann",
"tags": [
"Functional Programming"
],
"description": "The F# type system is both stronger and more flexible than the type system in e.g. C#. You can use this to your advantage to rapidly evolve a prototype.\nIn this talk you'll see an example of how to evolve a Finite State Machine that solves a real problem, using the F# type system as a driver."
},
{
"title": "Applying S.O.L.I.D. Principles in .NET/C#",
"speaker": "Chris Klug",
"tags": [
"Microsoft",
"Agile",
".NET Framework"
],
"description": "Have you heard of the SOLID principles? You have? Can you explain them all? And make your colleague understand them, and why they are useful? Ok, in that case you should stay away from this session. If not, you should definitely go to this session, as it goes through each one of the principles, explaining what it means and why it is useful. You will also be shown C# code examples explaining how they help you, and what problems you solve by adhering to them."
},
{
"title": "Shazam mobile apps - data driven project management",
"speaker": "Tomasz Kustrzynski",
"tags": [
"People",
"Agile",
"mobile"
],
"description": "Shazam has been growing very fast recently. A lot of this growth happened in the engineering department at London HQ where our mobile apps are being developed.\nThis talk will go into technicalities of project management techniques we use to keep 100+ MAU a month happy while maintain agility and respond to rapidly changing market situation.\nWe will talk about data driven Kanban, flow, visual standups, changing requirements and structure of our teams. We will show what metrics we care about, how we measure them and what we do with the results.\nYou should expect some observations about development of state of art apps useful from product/project manager’s and developer’s perspective.\n[Note to organisers: An older version of this talk has been presented at several occasions in 2014. Slides can be found at http://www.slideshare.net/tomaszkustrzynski/092014-mobiconf-2014-v2-39838125]"
},
{
"title": "Designing and Programming Accessible Website and App UIs",
"speaker": "Rachel Appel",
"tags": [
"Web",
"Design",
"UI",
"UX"
],
"description": "All too often, popular websites and apps fail to design for accessibility, unknowingly resulting in a huge loss of users who cannot use or access their site. It's all due to a lack of accessible design. That's around 20% of the world's internet users, or 1.4 billion people in total! In this session, you'll learn how to prepare content, design, and code using techniques that enable those with visual, auditory, motor, or cognitive impairments, so that the 1.4 billion accessible users can now use your apps effectively. You'll learn to access what your customer's accessibility needs are, as well as how to code with accessibility in mind. You'll learn about ARIA elements and design practices to keep in mind while crafting webpages and app layouts that adhere to Section 508 requirements (The USAs federal requirements for accessibility). Upon completing this session you will have learned to design sites and apps with better UXs that have the farthest reaching user base."
},
{
"title": "Performance of STL containers",
"speaker": "Hubert Matthews",
"tags": [
"C++"
],
"description": "There are many choices for which STL container to use for an application. This talk, aimed at intermediate level C++ developers, compares the main containers and their performance in terms of speed and memory usage and what you can do to improve both."
},
{
"title": "Lightning Talks",
"speaker": "Pete Smith, Ashfaq Ahmed and Meg Gotshall",
"tags": [],
"description": "Agile Origami - Meg Gotshall\nThis lightning talk provides an application of agile methodologies, explained through a rather unusual real-life case study. In a side project that began simply for fun, our development team found surprising parallels to our agile process. We began turning our completed Scrum task Post-Its into origami, and our paper-folding project eventually took on a life of its own. From iterative development and project estimation to changing priorities and even distributed development, we saw the principles of our new agile process reinforced by the colorful pieces of paper in our hands.\n-------\nContext considered vital - Pete Smith\nA rebuttal to all the recent blog posts titled along the lines of 'X considered harmful', involving a software developer, a dodgy plumber and a hearty dose of realism. A firm yet comical demonstration of how with all such topics, context is everything!\n-------\nEliminate waste for a better life at work - Ashfaq Ahmed\nA typical working day of anyone in software development industry is full of challenges, and we constantly strive to make it more and more productive. However, the dream hardly comes true for some of us. The reason is simple, we do not make any structured effort to make a long lasting change. We will discuss how we used the lean principle 'eliminate waste' to improve our existing development processes, and how we ultimately adopted it as a culture in our team. The key message will be, by adopting eliminate waste mindset, how can we make ours and others working life and even life at home more meaninigful and productive."
},
{
"title": "JavaScript Forensics",
"speaker": "Todd H Gardner",
"tags": [
"Web",
"JavaScript"
],
"description": "Something terrible happened here. Traces of errors litter the floor; memory leaking from cracks in the ceiling. Someone lost their object context in the corner. Everything reeks of jank. In this session, a JavaScript error tracking expert breaks down a series of common and complex crimes against web applications. You’ll leave the session armed with techniques and tools to detect, diagnose, and fix your JavaScript web applications. Bring your bugs and let’s fix up our web."
},
{
"title": "Introducing Bluetooth Low Energy",
"speaker": "Eirik Midttun",
"tags": [
"IoT"
],
"description": "More info coming..."
}
],
"thursday": [
{
"title": "Hafslund AMS: Drinking from the firehose at a large Internet-of-Things project",
"speaker": "Jon Andreas Pretorius and Simen Sommerfeldt",
"tags": [
"IoT"
],
"description": "The AMS project requires us to collect automatic meter values from 670.000 subscribers every 15 minutes. The ESB with its canonical data model had grinded to a halt.\nThis talk is for anyone interested in new ways of dealing with integration and search. Architects and developers who face challenges with ESB’s in their daily lives. People who look for solutions for how to feed Micro Services with lookup-information without introducing unneccesary dependencies.\nJon Andreas Pretorius at Hafslund needed to find an alternative way to effectively collect meter values from 670.000 subscribers in the AMS program. The ESB with its canonical data model had grinded to a halt.\nAt another company, Simen needed to have several systems exchange data and enrich each other. His client also wanted a corporate search that combined content from the systems with unstructured data like documents and emails. Simen went for semantic integration, and never looked back.\nOutline\n\nIntroduction to the Hafslund AMS project and the chosen architecture, with information sources, handling of massive flows, and usage of cloud computing for analysis\nSOA and The common problem with ESB’s, Canonical Data Models, and ETL\nMicro Services: A new and better way - but did we forget something?\nData Oriented Architecture\nA quick look at how data flows using asynchronous mechanisms and eventual consistency\nHow to transform tabular data into RDF graphs and connect them\nCleaning of data and matching without common identifiers, using trained statistical algorithms\nThe SPARQL query language\nSDSHARE - how clients subscribe to changes\nHow different systems can enrich each other\nHow you can combine DOA with Micro Services\nHow to relate to this as a programmer - what are the new skillsets?\nLooking back at ESB’s and Canonical data models - and how the problems just went away\nCASE HAFSLUND: How we solved the AMS challenge with massive amounts of meter readings coming through many channels\nCASE *CUSTOMER NAME WITHHELD FOR NOW* How we solved the other client challenge with diverse system domain Finally\nHow to deal with eventual consistency when you don’t want it\nHow to deal with information security\nHow this new integration paradigm can strengthen the customers position towards troublesome vendors (“I OWN the data now - behave or get out”)"
},
{
"title": "Idioms for building distributed fault-tolerant applications w/ Elixir",
"speaker": "José Valim",
"tags": [
"Functional Programming",
"Programming Languages"
],
"description": "This talk will introduce developers to Elixir and the underlying Erlang VM and show how they introduce a completely new vocabulary which shapes how developers design and build concurrent, distributed and fault-tolerant applications. The end of the talk will focus on Elixir and include some live coding.\n[Expectations: Introduce Elixir, its ecosystem and design goals within the Erlang Virtual Machine]"
},
{
"title": "Building 3D simulators for oil & gas",
"speaker": "Felix Gorbatsevich",
"tags": [
"Fun"
],
"description": "3D simulators are not only used in flight applications. Oil & gas companies have been employing simulators in training, planning and testingfor many years. Drillers are educated in a 3D virtual environment featuring immersive 3D screens and real drilling operator chairs. The 3D technology is derived from gaming, with added data processing engines and accurate physical simulation. Techniques such as laser scanning are used to obstain the physical measurements of every oil rig correctly.\nThe talk provides an insight into the building blocks of a simulator, typical architecture, and how oil & gas companies design simulators for their use today and in the future. Minority Report? Not quite, but still pretty cool."
},
{
"title": "Declarative REST: State Machines for the Web",
"speaker": "Einar W. Høst",
"tags": [
"Web",
"Architecture"
],
"description": "Finite State Machines (FSMs): an old, yet brilliant idea in computer science that unfortunately has been nearly forgotten. The gist of FSMs is that you define a set of legal states, the possible transitions between those states, and the prerequisites for making those transitions. This is a terrific aid in controlling the rampant problems with uncontrolled side-effects due to poorly defined handling of state that haunt applications today. It also turns out to be a remarkably good fit for the web: you structure your web application as a state machine, and allow the client to drive the transitions of that state machine through links. The different HTTP methods, in conjunction with hypermedia controls to specify inbound data, allow for precise definition of the semantics for transitions between various states. Moreover, the dynamic nature of hypermedia messages allows the state machine to evolve over time, without impacting clients and causing versioning headaches. To illustrate the approach, we will use a simple text based adventure game implemented using hypermedia documents and representational state transfer defined using FSMs."
},
{
"title": "Up and Running with ASP.NET on Linux",
"speaker": "Mark Rendle",
"tags": [
"Web",
".NET Framework"
],
"description": "Come and learn all about hacking on ASP.NET on Linux: how to install it; how to run it; how to develop applications; how to edit code; how to test it; and how to deploy it. Oh, and why you'd want to do this at all."
},
{
"title": "Testdriven C++ with Catch",
"speaker": "Phil Nash",
"tags": [
"Testing",
"C++"
],
"description": "C++ has been notorious for being a second class citizen when it comes to test frameworks. There are plenty of them but they tend to be fiddly to set-up and ceremonious to use. Many of them attempt to follow the xUnit template without respect for the language environment they are written for. Catch is an attempt to cut through all of that. It is simple to get and simple to use - being distributed in a single header file - yet is powerful and flexible. Catch includes a number of innovations that make testing in C++ more natural than ever before. This presentation introduces you to the unique approach that Catch brings to unit and integration testing - and how to use Catch to drive your design with TDD or BDD."
},
{
"title": "Continuous Delivery for Architects",
"speaker": "Neal Ford",
"tags": [
"Architecture",
"Devops"
],
"description": "Yesterday’s best practice is tomorrow’s anti-pattern. Architecture doesn’t exist in a vacuum, a painful lesson developers who built logically sound but operationally cumbersome architectures learned. Continuous Delivery is a process for automating the production readiness of your application every time a change occurs–to code, infrastructure, or configuration. Some architectures and practices yield code that works better in this environment. This session takes a deep dive into the intersection of the architect role and the engineering practices in Continuous Delivery. I first set context for the information you must master before delving into the nuances of modern architectural concerns. I discuss the role of metrics to understand code, how Domain Driven Design’s Bounded Context reifies in architecture, how to reduce intra-component/service coupling, the tension between coupling and cohesion, microservices architectures, and other engineering techniques."
},
{
"title": "Principles Of Microservices",
"speaker": "Sam Newman",
"tags": [
"Architecture",
"Devops"
],
"description": "This talk is distillation of what makes microservices different from normal services. While this talk can serve as an introduction to microservices the real goal is to help tease out the key areas of what is a very broard topic.\nThere has been lots of buzz around Microservices over the last year, but there has often been a lack of clarity as to what Microservices are, or how to implement them well. I've been working to distill down the principles of Microservices to help ensure that we don't just end up repeating the mistakes we made during the last 20 years of service oriented architecture. I'll talk about the history of where Microservices came from, what they are, the benefits and downsides, and the core principles to stick to do to them well."
},
{
"title": "Video Capture and Colorspaces",
"speaker": "Hans Verkuil",
"tags": [
"Embedded"
],
"description": "The video4linux kernel subsystem reports which colorspace the captured video uses. But what does that really mean, and what do you have to do to correctly reproduce those colors? This talk will dive into the crazy world of colorspaces and give you a practical guide to colorspace handling with a focus on the HDMI protocol. I will also demonstrate colorspace handling to give an idea of what the result is when you do not process the colorspace information correctly."
},
{
"title": "Typical Pitfalls in Agile Software Development",
"speaker": "Jutta Eckstein",
"tags": [
"People",
"Agile"
],
"description": "Many teams, projects and even organizations are following meanwhile an agile process. However, not always successful. If you're looking behind the scenery, you will find out that although the agile practiceslike pair programming or test-driven development are used properly, the agile value system is not implemented. This is due to the fact that the practices can support agility but they can notestablish agility. This leads to an expectation mismatch regarding acceptance and success of agile development.With her experience in helping projects all over Europe to establish the agile value system, Jutta will point out what to look out for when applying agility."
},
{
"title": "Event Sourcing and DDD with F#",
"speaker": "Jérémie Chassaing",
"tags": [
"Functional Programming"
],
"description": "Storing history rather than current state, Event Sourcing is a radical technique to implement efficiently Domain Driven Design. But many stop before even trying, convinced of the difficulty to implement it.\n\nA short F# sample shows how to implement Event Sourcing. The functional approach leads to a simple, clear and production ready solution, and uncluttered domain code !\n\nNo prior knowledge of F# required…"
},
{
"title": "Don't demo facts. Demo stories!",
"speaker": "Tudor Girba",
"tags": [
"Agile"
],
"description": "Feedback is the central source of agile value. The most effective way to obtain feedback from stakeholders is a demo. That is what reviews are about. If a demo is the means to value, shouldn’t preparing the demo be a significant concern? Shouldn’t the preparation of demos not be left for the last minute? Should it not be part of the definition of done?\nGood demos engage. But, there is more to a good demo. A good demo tells a story about the system. This means that you can tell the story. And it also means that the system is made to tell that story, too. Not a user story full of facts. A story that makes users want to use the system.\nMany things go well when demos come out right. Your system looks different. Stakeholders are in sync. Marketing does not have to lie. And even sales can sell better.\nThis talk tells stories of successful demos and distills demo-driven lessons from both working in research and in industry. These lessons are meant to be used in every day projects."
},
{
"title": "Desktop applications using JavaScript and Electron",
"speaker": "Torstein Bjørnstad",
"tags": [
"Web",
"JavaScript"
],
"description": "Web applications are constantly getting more and more advanced, and with browser features like Application Cache and Local Storage the distinction between web applications and desktop applications is slowly disappearing. Despite being able to do a lot more inside the browser than we used to, there are still reasons to create applications outside of the browser. Either for marketing purposes, providing a branded downloadable application that can be started directly from the OS application launcher, or for accessing operating system functionality that is normally unavailable in the browser for security reasons.\nIn this talk I will present ways of creating and running JavaScript applications on the desktop with HTML UIs. Both embedded inside existing native applications using Chromium Embedded Framework and as standalone native applications using Electron, formerly known as atom-shell. I will give examples of things you can do that you normally wouldn't be able to do in the confines of a browser, and describe how this type of development differs from normal web development."
},
{
"title": "Succeeding in Failing",
"speaker": "Darrel Miller",
"tags": [
"Web",
"Testing"
],
"description": "Testing APIs to ensure they are doing what they are supposed to be doing is essential. However, doing so only tells part of the story. How does your API behave when the API consumer makes a mistake?\nLearning how to consume an API can be hard, but it's even harder if it does not fail in expected ways. The HTTP specification defines a wide range of standard failure conditions. Does your API return the appropriate errors that will help the consumer fix or handle the error condition?\nThis talk will discuss and demonstrate the types of tests you can run against your API to ensure it behaves as the consumer expects and make it as easy as possible for clients to be resilient to failure."
},
{
"title": "The Set of Natural Code",
"speaker": "Mark Isaacson",
"tags": [
"C++"
],
"description": "The set of code that is simple, easy, and natural to write is forever evolving. Back in the days of C, writing a container for your struct meant sacrificing either performance or maintainability, then we got std::vector<T> in C++. Today languages are tearing down more of these barriers, these choices between performance and maintainability. By electing new primitive work units and making bold changes to our compilers, languages like D can vastly improve the expressiveness of your code while at the same time sending your runtime or memory footprint down to O(1). We'll examine an enlarged lifecycle for these modern trends: both the environment in which they were conceived and experimented upon in the D programming language and also how they are reaching more mature languages like C++, where these new features are popping up left and right in language proposals.\nTopics will include:\n\nPower to weight ratio\nRanges as a primitive\nFrictionless compile-time function evaluation\nThe fastest regex implementation in the world No prior experience with D or C++ necessary."
},
{
"title": "What’s new in Visual Studio 2015, ALM + ASP.NET 5: Next Level Development",
"speaker": "Adam Cogan",
"tags": [
"Web",
"Microsoft",
".NET Framework"
],
"description": "Visual Studio 2015 is going to be a huge change for both windows and non-windows developers. Thanks to a new/refreshing/cool/awesome change of attitude, Microsoft is embracing the winning tools in the development space and is building them into the next version of Visual Studio. \nThe open sourcing of .NET Core 5 and ASP.NET 5 along with the release of the free Visual Studio Community Edition and the upcoming release of Windows 10 for all devices makes for some very exciting times ahead.\nCome see Adam give you a tour and expand your development horizons. This session is guaranteed to make you even more productive and highlight why Visual Studio is still the best IDE for developing software.\nWhat’s new in VS 2015 and ALM 2015\n\nAll the best features from .NET versions\nThe cool stuff in Application Insights\nNew tracing and debugging features in VS2015 – Code Lens, Intellitrace, PerfTips\nMiddle Tier testing - Smart Unit Tests\nRoslyn – the new C# compiler\nNew C# Language features\nThe big game changer – Windows 10\nShared Projects vs Portable Class Libraries (PCLs)\nMobile Development Tools – Hybrid (Cordova), Native and Cross Platform (Xamarin)\nVisual Studio Community and open source .NET 5 Core\nNET 5 (was vNext) – New architecture and tools (AngularJS, Bower, Grunt, NPM …)\nThe power of K\nAzure Deployment Slots - Continuous Integration, Testing in Production\nFront end testing frameworks for JavaScript"
},
{
"title": "Resolving Conflicts in Collaborative Occasionally Connected Mobile Apps",
"speaker": "Michael L Perry",
"tags": [
"Architecture",
"mobile"
],
"description": "In collaborative apps, a change made on one device appears on another. Data flows seamlessly across devices. But those devices aren't always connected. And even when they are, users don't want to wait for a network connection before they can see or work with their data. So data needs to be stored locally, and synchronized in the background.\n \nIf users make different changes while offline, they create a conflict. Learn the patterns to detect and resolve those conflicts.\n \nBuild a universal app where the phone and tablet share a common data model. That model is synchronized through a cloud service and into local storage. Project that storage through the view model, and data bind it to the view.\n \nBenefits:\nAttendees will learn how immutable historical facts can be used to model apparently mutable state. They will discover why a partial ordering of events works better for occasionally connected clients than a total ordering. They will see through a series of unit tests how to use those historical facts to discover conflicts. They will test drive their way to an implementation that is both idempotent and order-resilient."
},
{
"title": "Continuous Delivery of Embedded Systems",
"speaker": "Mike Long",
"tags": [
"Devops",
"Embedded"
],
"description": "Continuous Delivery is all the rage, but many of the practices are not applied in the embedded world because the literature seems to focus on the web development community. That is a great shame, because there is a great deal we can apply on our embedded software development projects. This talk will show you how to apply some of the key techniques, such as embedded versioning and software traceability, embedded continuous delivery pipelines, acceptance testing with hardware, automatic deployment to hardware, continuous deployment. Beyond that, the talk will show some real-life examples of companies who are at the leading edge of this adoption."
},
{
"title": "The State of DevOps in Windows Land",
"speaker": "Jon Arild Tørresdal",
"tags": [
"Microsoft",
"Devops"
],
"description": "How are Windows doing with regards to DevOps and automation specifically? How is the tooling space compared to other platforms? Are there changes in the horizon that will make living in Windows Land more attractive and less challenging? What is the community like? What is the culture like? What and how are typical Windows Ops companies and departments thinking?\nJon Arild Tørresdal will try to answer these and other questions based on his experience working with operations, DevOps and Lean for a a number of companies. Not only focusing on automation of their deployment processes and Windows infrastructure, but also organizational changes needed to successfully accomplish their efficiency goals."
},
{
"title": "Phoenix - a framework for the modern web",
"speaker": "Chris Mccord",
"tags": [
"Functional Programming"
],
"description": "Phoenix is an Elixir web framework for building productive, reliable applications with the performance to take on the modern computing world. Together, we’ll review what makes Phoenix great and how it uses Elixir to optimize code for performance – without sacrificing programmer productivity. Along the way, we’ll see neat features like live-reload and generators and how Phoenix’s realtime layer takes on the modern web."
},
{
"title": "Migrating your API from Web API 2 to MVC 6",
"speaker": "Filip W",
"tags": [
"Web",
"Microsoft",
".NET Framework"
],
"description": "While Microsoft is calling their new web framework \"MVC 6\" and branding it as a unified successor of MVC / Web API / Web Pages, the reality is much more complicated than that. The newASP.NET 5 alone is a completely different managed runtime, which results in plenty of changes, compatibility issues and necessary adjustments when trying to bring your old application over to the new world. On top of that MVC 6 introduces plenty of changes. While controllers in \"old\" and \"new\" world may look similarly, a lot of core concepts that you might have been used to when working with Web API projects have changed, and finding corresponding ones is a tricky, and often frustrating, task. This talk will draw parallels between the Web API framework pipeline that you might be used to (MessageHandlers, Filters, Selectors, Formatters etc), to the one which are part of MVC 6, and explore the techniques you can use when migrating a Web API project to MVC 6 - hopefully easing your transition into the next generation of ASP.NET."
},
{
"title": "SOLID Architecture in Slices not Layers",
"speaker": "Jimmy Bogard",
"tags": [
"Architecture"
],
"description": "For too long we've lived under the tyranny of n-tier architectures. Building systems with complicated abstractions, needless indirection and more mocks in our tests than a comedy special. But there is a better way - thinking in terms of architectures of vertical slices instead horizontal layers. Once we embrace slices over layers, we open ourselves to a new, simpler architecture, changing how we build, organize and deploy systems."
},
{
"title": "Test Driven Development in C/C++",
"speaker": "James Grenning",
"tags": [
"Embedded",
"C++"
],
"description": "Test-Driven Development is an important design and problem solving technique that helps software developers improve product quality and the quality of their life. How? By preventing defects and by giving you warning when your design starts to deteriorate.\nThis tutorial describes the problems addressed by TDD, as well as the additional challenges and benefits of applying TDD to C, C++ and embedded software. \nYou will experience the cadence of Test-Driven Development. You will see how it makes sure you know what your code is doing. We'll explore the benefits of test-driving your code. You will see how to test-drive code with dependencies using open source tools CppUTest and CppUMock.\nIf you've heard of TDD and not tried it, this tutorial is a great place to discover what it is and how it can help you . Exercises are done on a custom version of cyber-dojo.org hosted in the cloud."
},
{
"title": "High Performance in the Critical Rendering Path",
"speaker": "Nicolas Bevacqua",
"tags": [
"Web"
],
"description": "This talk begins by looking at the kind of performance optimizations we're are already doing, such as bundling and minification, gzip compression, caching, and using progressive enhancement. Then I'll cover things we should be doing such as measuring performance, setting up a performance budget, using nginx as a reverse proxy, inlining critical CSS while deferring the rest, deferring font loading, using a CDN, experimenting with WebP images, and maybe deferring image loading too.\nLast, we'll take a look at where HTTP is going with HTTP 2.0, and discuss the new multiplexing features that enable HTTP 2.0 to take advantage of a single TCP request, erasing the need for \"hacks\" such as bundling, spriting, CSS or image inlining, taking HTML back to the way it was originally designed to work, while actually improving performance."
},
{
"title": "This is Water",
"speaker": "Neal Ford",
"tags": [
"Architecture"
],
"description": "There are these two young fish swimming along and they happen to meet an older fish swimming the other way, who nods at them and says “Morning, boys. How’s the water?” And the two young fish swim on for a bit, and then eventually one of them looks over at the other and goes “What the hell is water?”\nDavid Foster Wallace, from This is Water\nA fish is swimming along, having some breakfast, when suddenly he’s snatched out of his world by his food, into a bright world where it’s hard to breathe, landing on the bottom of a boat, where strange alien creatures make odd sounds. Overhead, he sees an airplane flying at 500 mph (without knowing what “airplane”, “flying” or “500 mph” means). Suddenly, one of the creatures picks him up, removes the pain, and, just as suddenly, he’s back home. Yet, when he regales his friends with this tale, no one can believe such a strange world could exist.\nThis talk describes the water you swim in but cannot see anymore, like relational databases and application servers. Additionally, it jerks you out of safe, warm water (briefly) to describe a strange, fantastical world with things like immutable database server, phoenix machines, and lambdas.\nYou may have trouble getting your friends who didn’t attend to understand."
},
{
"title": "What business software developers can learn from game developers",
"speaker": "Adam Beres-Deak",
"tags": [
"Fun"
],
"description": "Game development teams have always been cross-functional and had to tackle a wide range of challenges during the development of a new game. They have developed many interesting techniques which also business software developers can use for their jobs. In this talk I would like to share such patterns and techniques with the audience. Some of them are programming techniques, some of them are relevant for teamwork and some are related to user experience.\nSome examples:\n\n\nData oriented programming instead of OOP. This technique supports the efficient handling of large numbers of game objects. In business world these can be large numbers of data records.\n\n\nBehavior trees and state machines. These are tools for the programming of artificial intelligence. They can be easily visualized which enables the whole product team (DEV, QA, designer, manager, etc.) to talk in the same language about a given problem.\n\n\nGame loop and strict performance budgets to offer the best user experience to the users.\n\nTeaching the users how to use the software. First time players usually get some kind of training about the game mechanics, so that they can learn the basics. The same principles can be used on websites or software GUIs too."
},
{
"title": "C++ on the Web: ponies for developers without pwn’ing users",
"speaker": "JF Bastien",
"tags": [
"Web",
"C++"
],
"description": "Delivering a program through a web browser really shouldn't force it to be slower than executing it directly on your OS. Similarly, doing so shouldn't force you to rewrite programs that target venerable, cornerstone native programming APIs—modern C++ STL, OpenGL, files and processes—nor should it forbid you from taking advantage of C++’s concurrency and parallelism in order to meet programming challenges like resource-constrained devices, battery-starved devices, and high performance code. Oh, and the browser should keep users secure from malicious sites.\nIn this presentation we'll showcase some resource-intensive applications that have been compiled for the PNaCl platform and, unsurprisingly, worked just like native code. These include a full development environment, complete with LLVM and your favorite build system and editor, all in an architecture- and OS-agnostic packaging. Then, we'll describe how we deliver native code on the web securely, so developers get their C++ ponies and users don’t get pwn’d. We’ll also touch on the fuzzing, code randomization and sandboxing that keep 1B+ users safe."
},
{
"title": "Automating environments with Azure",
"speaker": "David Lindblad",
"tags": [
"Devops",
"Cloud"
],
"description": "Most Cloud-related talks focus on greenfield development using PaaS offerings. In the meantime, the majority of us are struggling to survive in a world where the field is browner than ever.\nThis talk covers how we can transform traditional environments and infrastructure to become flexible, repeatable and deterministic – using Azure. We explore topics such as Infrastructure as code, treating virtual machines as disposable resources and how to ensure consistency between environments. The talk mixes DevOps ideas with Cloud best practices, lessons learned and technical deep dives through demos.We will see how PowerShell, Azure RM (assuming it is released at Build as planned), Azure IaaS/PaaS and Desired State Configuration can be used to develop a modern, robust and scalable infrastructure. Combined, these technologies are used to reliably provision, configure, deploy and dispose virtual machines, resource groups and complete environments."
},
{
"title": "The Need for Closure",
"speaker": "Karl Krukow",
"tags": [
"Functional Programming",
"Programming Languages"
],
"description": "In psychology, the need for Clojure \"... is usually provoked after experiencing an emotional conclusion to a difficult life event, such as the breakdown of a close interpersonal relationship [with an unreliable concurrent program, personal note]...\" [1]. \"A person with a high need for closure prefers order and predictability and is decisive [...]\" [2].\nMy path to Clojure started with trauma, then Java Concurrency in Practice, (then almost Scala), then hope and then, finally, Clojure in production at Xamarin Test Cloud. When I first heard of Clojure back in 2008, it was love at first sight [3].\nThis talk will be a friendly, practical introduction to Clojure for those who are new and curious. We'll look at the cornerstones of Clojure, as well as look at practical examples drawn from our use of Clojure in building Xamarin Test Cloud [4], a cloud services that provides access to more than a thousand mobile devices for the purpose of mobile quality assurance. Leave inspired to try out Clojure."
},
{
"title": "The Power and Practicalities of Immutability",
"speaker": "Venkat Subramaniam",
"tags": [
"Functional Programming",
".NET Framework"
],
"description": "Functional Programming promotes assignment-less programming. When we remove mutability, we reduce errors in code. How practical is it to really program with immutability in C# and F# and if we manage to achieve that, what are the real benefits. Come to this talk to learn about the power, the benefits that immutability brings and how to practically make use of that in both F# and C#."
},
{
"title": "Real Communication with Real People in Real Time with WebRTC. For Reals.",
"speaker": "Devin Rader",
"tags": [
"Web",
"Architecture",
"JavaScript"
],
"description": "Remember that one time you called a business and after entering your account number the person who answers asks for your account number? We’ve generated zettabytes of data for ourselves, yet for 150 years the person on the other end of a call who says “Hello” somehow still knows nothing about you.\nWhat if instead of asking for an account number, your customer was greeted by name by an agent that already knew what she was calling about. This customer experience is possible with software-driven communication applications, and WebRTC is the technology that will help you get there. WebRTC empowers you to make contextual and intelligent communication something thats is integrated directly into your website and mobile app.\nIn this code-driven talk, I’ll introduce you to WebRTC and how you can use it to build real-time, peer-to-peer voice, video and messaging communication directly in a web browser. We’ll explore the JavaScript API’s and network communication concepts needed to make these applications work. If, like me, you’re tired of lame telephone experiences and want to change the world of communication then you must come to this talk."
},
{
"title": "Securing Web APIs – Patterns & Anti-Patterns",
"speaker": "Dominick Baier",
"tags": [
"Security",
"Web",
"Architecture"
],
"description": "Web APIs and cross-platform (mobile) clients is pretty much the standard architecture for modern applications. These types of applications have also different security requirements compared to the intranet or the classic web. This talk is the result of almost five years of customer projects around the security of these modern applications – what works, what doesn’t, recommendations, dos and don’ts (and duhs)."
},
{
"title": "Lightning Talks",
"speaker": "Sean Trelford, Ronald Mavarez, Martin Gravråk, Michał Śliwoń and Stian Veum Møllersen",
"tags": [],
"description": "A Recipe For A Happy Software Development Team - Michał Śliwoń\nMaking software developers happy is hard. They're smart, they put a lot of energy and emotion in what they do and their road to becoming better is full of obstacles: slow computers, a need to do guesstimates and ongoing Internet debate whether to put a semicolon at the of line or not.We were lucky, things worked for us. After a while spent together, countless rounds of feedback - we found our rhythm. Boiled in uncertainty, heated by questioning everything, topped with a spoonful of team initiatives - our team was ready to be served. We found ourselves happy to be working with each other.I'd like to share with you our recipe for a happy software development team hoping some of the ingredients or procedures will enrich your team as well.\n---------- \nA robot is born - Martin Gravråk\nHow CAD software, 3D printers and cheap parts from eBay have made designing and building robots a lot easier for the average geek.\nI’ve spent the last few weeks creating a robot arm from molten plastic. The parts have been modeled in Autodesk Inventor and 3D printed in PLA, assembled and brought to life with lots of servos and an Arduino microcontroller. In this lightning talk I’ll share the mistakes and lessons I’ve learnt from this hobby project. You will learn the basics, see the robot and get some tips for how you can make your own.\nImproving web performance - Ronald Mavarez\nHave you been in a queue and thought everyone in front is just so slow!!! Its annoying isn't it?. Now imagine that you designed web pages like that, wouldn't you want to fix it!\nExactly the same is happening with most web pages where the resources haven't been optimized and in this session we will talk about preventing slow files and loading our code faster.\nI will show you some small simple but clever optimisations that are quick to implement but will have a big impact in the performance of your web applications.\nThis talk requires some understanding of JavaScript and HTML5.\n-------\nComposing 3D Objects in WebGL - Sean Trelford (8)\nIn this live session I will demonstrate the use of a domain-specific language, written in F#, to compose complex 3D scenes live in WebGL.\n-------\nMaking a web-powered MIDI-controled synthesizer - Stian Veum Møllersen\nThe web is becoming a very interesting platform for creative experimentation. The introduction of the WebMIDIAPI and the capabilities of the WebAudioAPI for creating sounds has opened the doors for musical expressions in a myriad of ways.\nOne such way is to build a simple polyphonic supersaw synthesizer which you can control with a MIDI-enabled interface (such as a tiny keyboard). This is easier than it sounds, and I will show you how. Leaving this talk you will be equipped tostart creating music and explore the creative side of the web.\n-------"
},
{
"title": "Swift: Apple's New Programming Language for iOS and OS X",
"speaker": "Sasha Goldshtein",
"tags": [
"Programming Languages",
"mobile"
],
"description": "At WWDC 2014, Apple announced Swift, a new programming language for iOS and OS X. In this session, we will review Swift’s fundamental concepts, including built-in types and collections, optionals, closures, protocols, extensions, generics and custom operators. We will see how Swift improves upon Objective-C in terms of type safety, readability and developer productivity. During the session, we will demonstrate Swift’s capabilities by building a simple iOS application from the ground up. Prior development experience with iOS or Objective-C is not required."
},
{
"title": "Loosely coupled applications with MassTransit and RabbitMq",
"speaker": "Roland Guijt",
"tags": [
"Architecture"
],
"description": "MassTransit is a distributed application framework and Servicebus for .Net. RabbitMq is the underlying middleware that handles low level messages initiated by MassTransit.Examples of problems MassTransit can solve are sending a message to one application to a completely separated other application. MassTransit makes it possible to subscribe to an incoming message just like you would with an event.The support for sagas is another very powerful feature of MassTransit. Sagas are mostly used for persistant workflows. The saga can sent out messages if the status of the workflow changes and multiple systems can react to that change.In this session I'll show the architecture behind messaging, how you can easily implement it using MassTransit and some advanced features like sagas."
},
{
"title": "FPGAs - a 1000x performance increase. How? What? Why?",
"speaker": "Espen Tallaksen",
"tags": [
"Embedded"
],
"description": "An FPGA is programmable hardware and yields an extreme performance for time critical operations. Throughput and latency are magnitudes better than software solutions due to the massive parallelism of real hardware. FPGAs are basically the best of both worlds; the speed of hardware and the flexibility of software. This presentation will show you the basics of FPGA’s - the technology, the functionality, the methodology, the opportunities - and some limitations."
},
{
"title": "How to build end to end solutions using Raspberry Pi and Azure",
"speaker": "Anders Gill and Pedro Dias",
"tags": [
"Microsoft",
"Cloud",
"IoT"
],
"description": "Learn how to develop IoT based solution with Microsoft using Rasberry Pi, Visual Studio and Azure. In this hands-on lab we will provide you with cool hardware and how-to. You don’t have to be hardware geek to master this workshop. Just bring your pc and willingness to do some low level hardware coding.\nWe have limited number of hardware boards so be quick to register for this workshop.\nRegistraion for this workshop has closed"
},
{
"title": "Continuous Delivery - the missing parts",
"speaker": "Paul Stack",
"tags": [
"Devops"
],
"description": "A lot of developers have started to believe that hooking Visual Studio up to Azure and pushing code direct from their machines is CD. As much as I hate to say it, it isn't. Continuous delivery has so many more moving parts required to work together.\nAs we discuss concepts such as config management, orchestration, security, monitoring and logging, this talk will help developers realise that continuous delivery is something we need to continually measure, learn and adapt to make us a higher achieving organisation"
},
{
"title": "Functional Data",
"speaker": "Greg Young",
"tags": [
"Functional Programming"
],
"description": "I have always said that Event Sourcing is \"Functional Data Storage\". In this talk we will try migrating to a idiomatic functional way of looking at Event Sourcing. Come and watch all the code disappear! By the time you leave you will never want an \"Event Sourcing Framework (TM)\" ever again!"
},
{
"title": "Making .NET Applications Faster",
"speaker": "Sasha Goldshtein",
"tags": [
".NET Framework"
],
"description": "Speed is king on mobile devices, embedded systems, and even run-of-the-mill desktop applications that need to start up quickly and deliver good performance on low-power machines. In this talk we will review a collection of practical tips you can use today to make your .NET applications faster. We will talk about choosing the right collection, improving startup times, reducing memory pressure, and many other techniques for quickly improving your app's performance."
},
{
"title": "It's all messages now: where are my abstractions?",
"speaker": "Matt Barrett",
"tags": [
"Web",
"Architecture"
],
"description": "Web sockets and HTTP/2 give us a bidirectional, fully duplex method to send messages between the server and a web browser.\n\nThe question is: what are we going to do with it, and how? \n\nEnterprise messaging isn't cool, but synchronous RPC isn't cool either. Now that we have a great messaging abstraction pub/sub is cool, but how do we go about building an actual application? What the abstractions I should build, and how do I go about building them? If we don't reinvent REST over a websocket, what should we invent?\n\nThis talk will discuss messaging and a world without REST, drawing on my experience building real time trading systems based on the same fundamental concepts now generally available to everyone."
},
{
"title": "Authentication and authorization in modern JavaScript web applications – how hard can it be?",
"speaker": "Brock Allen",
"tags": [
"Security",
"JavaScript"
],
"description": "Modern web development means that more and more application code is running in the browser as JavaScript. This architectural shift requires us to change how we perform authentication and authorization. Fortunately, using modern protocols such as OpenID Connect you don’t need to invent your own solution for this new environment. This session will show you the modern approach for browser-based JavaScript applications to authenticate users, and perform secure web api invocations. As you might expect, security is sufficiently complex and so even modern security comes with its own set of challenges. Luckily, we will show off some libraries that help manage this complexity so your application doesn’t have to."
},
{
"title": "Building IoT Device Applications in JavaScript and C++",
"speaker": "Günter Obiltschnig",
"tags": [
"IoT",
"C++",
"JavaScript"
],
"description": "In this talk I will share my experience from building macchina.io, an open source toolkit forfor rapidly building IoT applicationsthat run on Linux-based devices like the Raspberry Pi, Beaglebone or RED Brick.It implements a modular, extensible JavaScript and C++ runtime environment inspired by OSGi,providing interfaces to various kinds of sensors and devices, as well as cloud services.macchina.io is based on the POCO C++ Libraries and the V8 JavaScript engine.\nI will first give a brief overview of the toolkit, then talk about some of the more interesting implementation details, like the C++-to-JavaScript bridging mechanism that allows the use of C++ classes from JavaScript without the need to manually write glue code or separate interface descriptions. I will also demonstrate how to build an IoT application that collects various sensormeasurements, stores them in a local database, visualizes them on a local website and performs various actions, such as sending SMS messages or posting to Twitter if certain eventsoccur, all with just a few lines of easily comprehensible JavaScript."
},
{
"title": "Web Development in 2020",
"speaker": "Steve Sanderson",
"tags": [
"Web"
],
"description": "With just 5 years to go until The Future™ officially starts in 2020, it's time to pull on your lycra-and-tinfoil onesie, pick out the colour of your hovercar, and consider the technologies you'll use for your upcoming web projects.\nThanks to a temporal wormhole triggered by a freak SharePoint misconfiguration, I can exclusively reveal the architecture of a web app designed several years in the future. Some of it is predictable ES6/7 stuff - web components, shadow DOM, etc. - but then it gets into metaprogramming, cross-compilation from native code, advanced parallelism techniques, layout *without* CSS, and more.\nIn this demo-centric session I'll show you each of these likely upcoming web technologies. Most of them are impossible (or at least downright irresponsible) to use in production web apps today, but seeing them in action will give you a sense of the possibilities that may soon open up."
},
{
"title": "How to turn software into competitive business advantage",
"speaker": "Gojko Adzic",
"tags": [
"People"
],
"description": "As an industry, our capability for delivering software increased significantly over the last ten years. We now have much better processes, tools and techniques, and we can produce a lot more software a lot easier and faster. But companies rarely get the benefits from this new capability, because the ecosystem around software teams hasn't improved at the same speed. Gojko will talk about ideas how to unlock all that potential and turn the fact that your teams can deliver frequently into an engine that will help you outrun your competition. This is a talk for tech and business people."
},
{
"title": "Memory Access Ordering in Complex Embedded Systems",
"speaker": "Chris Shore",
"tags": [
"Embedded"
],
"description": "There are many cases where it is necessary to enforce a particular order of memory accesses - not all of them are obvious. Most people are aware of the need to use “volatile” when accessing memory-mapped I/O. But that is only the beginning of the story. What about superscalar and out-of-order pipelines? Or multi-threaded and multi-processing systems which use shared memory? What about the effect of write buffers and caches? How does alignment affect this? As embedded systems become more complex, software developers need to know a lot more about how these systems access memory in order to identify potential ordering problems. This presentation will examine simple and complex cases using ARM examples covering VMSAv7 and PMSAv7.\nPrerequisites\n\nEmbedded processor architecture\nComplex memory systems\nAssembler and C programming Audience level\nAdvanced Walk-away points\nIdentify where potential memory ordering issues may occur.\nUnderstand the components of complex memory systems.\nKnow where memory barriers may be needed.\nUnderstand how to implement semaphores."
},
{
"title": "How to build end to end solutions using Raspberry Pi and Azure",
"speaker": "Anders Gill and Pedro Dias",
"tags": [
"Microsoft",
"Cloud",
"IoT"
],
"description": "Learn how to develop IoT based solution with Microsoft using Rasberry Pi, Visual Studio and Azure. In this hands-on lab we will provide you with cool hardware and how-to. You don’t have to be hardware geek to master this workshop. Just bring your pc and willingness to do some low level hardware coding.\nWe have limited number of hardware boards so be quick to register for this workshop.\nRegistraion for this workshop has closed"
},
{
"title": "The elephant in the room: Continuous Delivery for Databases",
"speaker": "Alex Yates",
"tags": [
"Devops",
"Database"
],
"description": "Let’s talk about constraints. What’s holding you back from achieving Continuous Delivery?\nRelational databases.\nIf it’s painful, do it often… Your app is automatically integrated, tested and packaged for deployment in minutes. But what about the database?\nOf course, the database brings with it its own complications and risks. We’ll talk about both the human and technical changes which are necessary to achieve a reliable, nimble, and automatable database deployment process.\nYou’ll learn how to bring Dev and Ops closer together as well as customize established practices and existing toolsets to build a database deployment pipeline and speed up delivery while at the same time protecting the data (and your sanity).\nIn particular, we’ll look at two alternative solutions to the problem and their relative pros and cons. Declarative/state based development vs purely migrations driven development.\nBy the end of the session, delegates will have learned not only that this elephant in the room can be tamed, but they will have an idea about which strategy is right for them."
},
{
"title": "Crunching through big data with MBrace, Azure and F#",
"speaker": "Mathias Brandewinder",
"tags": [
"Functional Programming"
],
"description": "For data exploration and rapid prototyping, the productivity of an interactive scripting environment is hard to beat: simply grab data, run code, and iterate based on immediate feedback. However, that story starts to break down when the data you have to process is big, or the computations expensive. Your local machine becomes the bottleneck, and you are left with a slow and unresponsive environment. \nIn this talk, we will introduce MBrace.net, an open-source and free engine for scalable cloud programming. Using the MBrace programming model, you can keep working in your beloved familiar scripting environment, and easily execute C# or F# code on a cluster of machines on Azure. We will focus primarily on live demos, from provisioning an Azure cluster with Brisk, to analyzing large datasets in a distributed fashion; in particular, we will discuss how this setup is relevant to data science and machine learning."
},
{
"title": "PrivateEye",
"speaker": "Greg Young",
"tags": [],
"description": "We have been working on a project for the CLR. This talk is announcement and a show and tell of what we have been working on it must be pretty cool to bring together a team from three continents! I know it sounds \"mysterious\" but its worth coming if you care about your .NET code!"
},
{
"title": "Hacking .NET(C#) Application: Building and Breaking Layered Defense",
"speaker": "Topher Timzen and Jon McCoy",
"tags": [
"Security",
".NET Framework"
],
"description": "This speech will give core principles of secure design and implementation for .NET applications. This will cover designing applications with a Layered Defense Model, with a focus on defendable segmentation points. Live Demos will show how to attack and exploit common weaknesses in design/implementation/technology. This will show how Hackers can infiltrate critical systems and bypass common defenses. See how to properly design systems to resist, detect and respond to such attacks."
},
{
"title": "Code Gems From the Rosyln and .NET Source Code",
"speaker": "Scott Allen",
"tags": [
"Microsoft",
".NET Framework"
],
"description": ""
},
{
"title": "Encryption in C++",
"speaker": "Jens Weller",
"tags": [
"C++"
],
"description": "Encryption has become a very important topic for C++ developers and this session will serve as an introduction and overview this topic. This overview will include basic concepts such as symmetric vs. asymmetric encryption. We'll also covers some known algorithms and their implementations in cryptopp, botan and libsodium."
},
{
"title": "Modern architectural patterns for the cloud",
"speaker": "John S Azariah and Mahesh Krishnan",
"tags": [
"Architecture",
"Cloud"
],
"description": "Traditional web applications have typically followed a layered architecture; Presentation, Service, Business and Data Access Layers over a relational database. While such applications often have a great deal of capability, there are practical limitations on how well they grow, evolve and scale in a dynamically scalable environment like the cloud.Come and watch John Azariah and Mahesh Krishnan, Microsoft Azure MVPs from Australia share their practical experiences of how Modern Architectural Patterns such as Command Query Responsibility Segregation, Queue Centric Workflow and Event Sourcing combine with NoSQL databases among other things to address issues such as reliability, flexibility and scalability in modern real-world cloud applications.This exciting talk will showcase a Twitter-like social application, written using these patterns running on the Azure platform. They will also explain how the Map/Reduce pattern works using chocolate!"
},
{
"title": "Deliberate creativity",
"speaker": "Andy Hunt",
"tags": [
"People"
],
"description": "Too often we just kind of wait for a good idea to hit, without any deliberate method to harvest it."
},
{
"title": "BDD for Embedded Systems",
"speaker": "Oscar Hellström",
"tags": [
"Agile",
"Embedded"
],
"description": "Too often the hardware is seen as a barrier that is difficult to cross when attempting to setup automated acceptance and regression testing. In this talk we will have a look at the Robot Framework and how it can be used to setup a test harness for testing your embedded systems. You will see how you can write your own custom test libraries to be able to write BDD style test suites using your own domain specific keywords."
},
{
"title": "Running Docker and Containers in Development and Production",
"speaker": "Ben Hall",
"tags": [
"Architecture",
"Devops"
],
"description": "Docker has taken the world by storm and is rapidly becoming the de-facto way to deploy applications and services. With a new development and deployment approach it brings new challenges and best practices.\nDuring this talk Ben will discuss his experiences of working with Docker on a daily basis as a development platform and deploying it into production.\nBen will introduce and discuss:\n- Development, Test and Build lifecycle\n- Building and creating small, streamlined, containers\n- Auto-discovery architecture\n- Scaling production nodes\n- Resource management\n- Security concerns and considerations\nThe talk will also include how new operating systems such as CoreOS, Mesos and Kubernetes are playing a key part in the future of Docker and Container Based Deployments.\nAt the end attendees will understand the advantages along with the potential issues of running Docker based on real world experience. This should enable them to identify how to migrate and build their own applications using a container based architecture."
},
{
"title": "Using Elixir to get the fun back in Lego Mindstorms",
"speaker": "Torben Hoffmann",
"tags": [
"Functional Programming"
],
"description": "Robots are fun. Programming is fun. Programming Lego robots with the visual environment... well, not so fun. This is the starting point for putting Elixir on the Lego Mindstorms EV3. It ought to be fun to do, but my son and I got lost in the visual environment when trying to do advanced things. After having created a simple EV3 library in Elixir the fun started coming back. This talk is about how the EV3 Elixir library works and how to use it to make robot control software that is easy to write and understand. One of the key building blocks in Elixir - as in Erlang - is processes, and we will have a look at how to design things using lots of processes and how that makes things easier to work with. We start from conceptual architecture and end with elegant Elixir programs. As we go along a visual notation that fits the domain will be introduced showing the benefits of having a small semantic gap between domain, architecture and language.\nTalk objectives:\n\nShow how using lots of processes with asynchronous message passing create super solutions in Elixir.\nInspire people to hack Elixir on Lego Mindstorms EV3.\n\nTarget audience:\n\nProgrammers longing for a nice and fun way to work with their Lego Mindstorms."
},
{
"title": "Ten simple rules for creating your own compiler on the CLR",
"speaker": "Philip Laureano",
"tags": [
"Programming Languages",
".NET Framework"
],
"description": "With the .NET Core becoming open source, now is the perfect time to create new languages that span the breadth and depth of the Common Language Runtime.\nIn this talk, I will discuss:\n\nEBNF syntax in a nutshell, and how you can use it to generate your own language\nHow to create your own interpreter in ANTLR 4 and have it up and running in C#\nHow to parse your custom language into a syntax tree\nHow to implement the differences between virtual machines, interpreters, and compilers It will also focus on practical compiler examples in C# rather than burden you with compiler theory. If you're the type of developer that loves learning new languages, then this is definitely the talk you need to attend!"
},
{
"title": "Taking other peoples money: A guide to online payments",
"speaker": "Ben Cull",
"tags": [
"Web"
],
"description": "Taking payments online has come a long way since the early days of PayPal. With more than half the world's population now spending money online, now is your chance to take a slice of that pie.\nIn this talk I take you through the latest and greatest ways to take payments online, including live coding demos."
},
{
"title": "Microsoft Azure Web Jobs - the new way to run your workloads in the Cloud",
"speaker": "Magnus Mårtensson",
"tags": [
"Web",
"Microsoft",
"Cloud"
],
"description": "The new Web Job in the Microsoft Azure Platforms allows you to run background workloads easily and effortlessly as support for your Microsoft Azure Web Sites or other web-facing assets. The service has powerful monitoring and logging capabilities built into the Microsoft Azure Portal allowing you full control of what jobs have executed, are executing and will execute. Another very tasty fact about Web Jobs is that they may be programmed without any knowledge of the Cloud paradigm at all enabling any developer to build them in C#, PHP or as a simple command script. Deploying and monitoring Web Jobs is an operations task which allows for good separation between dev and ops. Let’s have a look at this new delicious service in Microsoft Azure which will change the way you think about Cloud based workloads."
},
{
"title": "Building Isomorphic Applications in JavaScript",
"speaker": "Eirik Langholm Vullum",
"tags": [
"Web",
"JavaScript"
],
"description": "As developers we want to get our products in the hands of our users as quickly as possible, while we strive to keep complexity and context switching overhead down to a minimum.\nMoving towards unifying the server and the client presents some very appealing advantages, suggesting you could get the best of both worlds (performance, SEO, graceful degradation, code sharing, etc.)\nThis talk will explore the available options out there for building isomorphic JavaScript applications, showing both the advantages and drawbacks. Using node.js, React, the Flux pattern and compatible routing solutions, we’ll see that this is in many cases a viable solution already used for notable production applications today."
},
{
"title": ".NET Rocks Panel on Application Security",
"speaker": "André N. Klingsheim, Barry Dorrans, Troy Hunt, Niall Merrigan, Carl Franklin and Richard Campbell",
"tags": [
"Security"
],
"description": "Join Carl and Richard from .NET Rocks with panelists Andre Klingsheim, Barry Dorrans, Troy Hunt and Niall Merrigan as they discuss the state of application security today. What are the simple things that developers should be doing to make their applications more secure? How much of security is a development responsibility versus operations? How do you effectively test the security of your application, and how often do you need to test it again? Bring your questions and be part of this .NET Rocks episode!"
},
{
"title": "Getting the first PR into .NET and other tales from an OSS contributor",
"speaker": "Adam Ralph",
"tags": [
"People"
],
"description": "The world of open source software has never been more exciting than it is right now.\nCommunities spanning all platforms are thriving and more inclusive than ever, with like minded individuals and organisations, small and large, working together to produce great software for everyone. In particular, Microsoft are making huge strides into OSS with frameworks, runtimes, compilers and more being publicized on GitHub at unprecedented rate.\nIn November last year I unexpectedly became the first community member to have a PR accepted for the .NET core framework. With my 15 minutes of fame now over, I'd like to reflect on the journey that took 'that Czechoslovakian guy' from a curious OSS onlooker to a passionate OSS addict and share my views on the future of OSS.\nWe'll discover what OSS is, why it works and just how easy it is to get involved, perhaps even with a contribution or two. OSS is not just about coding and there are plenty of other ways to contribute, so even if you're not a coder, this talk is still for you."
},
{
"title": "Functional C++",
"speaker": "Kevlin Henney",
"tags": [
"Functional Programming",
"C++"
],
"description": "Functional C++? As opposed to what - dysfunctional? Well, kind of, yeah. Sure, in C++ the principal unit of composition is called a function, but that doesn't mean it's a functional language. And the idea of restricting mutability of state gets a nod with const, but it's a nod not a hug. And the STL shows influences of functional programming, although it falls short of being compositional. And, yes, sure, C++11 has lambdas, but then again, these days, who doesn't? Lambda calculus was invented in the 1930s.\nThis talk looks at how to express functional programming ideas in (post)modern C++ in a way that can be considered idiomatic to C++, rather than trying to use the power of overloading and metaprogramming to pretend C++ is Haskell or Lisp. In short, immutability beyond const and into shared and persistent data structures, concurrency beyond threading and locks, and thinking about functions as transformations and units of composition rather than actions."
},
{
"title": "Not Even Close: The State of Computer Security",
"speaker": "James Mickens",
"tags": [
"Security",
"Fun"
],
"description": "In this bleak, relentlessly morbid talk, James Mickens will describe why making computers secure is an intrinsically impossible task. He will explain why no programming language makes it easy to write secure code. He will then discuss why cloud computing is a black hole for privacy, and only useful for people who want to fill your machine with ads, viruses, or viruses that masquerade as ads. At this point in the talk, an audience member may suggest that Bitcoins can make things better. Mickens will laugh at this audience member and then explain why trusting the Bitcoin infrastructure is like asking Dracula to become a vegan. Mickens will conclude by describing why true love is a joke and why we are all destined to die alone and tormented. The first ten attendees will get balloon animals, and/or an unconvincing explanation about why Mickens intended to (but did not) bring balloon animals. Mickens will then flee on horseback while shouting “The Prince of Lies escapes again!”"
}
],
"friday": [
{
"title": "Continuous Delivery Patterns for Cloud-based Applications",
"speaker": "Mitch Denny",
"tags": [
"Devops",
"Cloud"
],
"description": "Continuous Delivery techniques are already being adopted broadly within mature agile development teams, but how does deploying to the cloud change the way that we should approach continuous delivery? Many deployment tools focus on promoting code and components through a set of environments ultimately ending up in production, but when we adopt that pattern in a cloud setting we miss out on one of the biggest advantages of cloud computing - infrastructure as code.\nIn this session Mitch will compare the traditional code promotion pattern for continuous delivery to a cloud-enabled pattern which integrates provisioning of infrastructure into the repeatable deployment process where production workload is shifted from one set of infrastructure to the next as builds of the software are released. We'll look at practical examples of how this can be achieved complete with technical demonstrations.\nFinally we'll look at how this model is great for ISVs who are operating SaaS applications for enterprise customers who want control over when they are migrated and new features are enabled."
},
{
"title": "F# for C# Developers",
"speaker": "Phillip Trelford",
"tags": [
"Functional Programming"
],
"description": "This talk is for C# programmers who are curious about F#, a multi-paradigm and cross-platform programming language.\nIn: test driven development, classes and functions \nOut: maths, monads and moth-eaten jumpers\nExpect plenty of practical examples with live code samples, including interop between C# and F#."
},
{
"title": "Get Unblocked",
"speaker": "Denise Jacobs",
"tags": [
"People"
],
"description": "As tech industry professionals, you need ways to work better so that you can create more, but what do you do when you hit a seemingly insurmountable mental wall? You need to Get Unblocked: to bust through that barrier to allow creativity to flow. Combining the neuroscience of creativity, productivity techniques, emerging practices that spur innovation and synergistic collaboration, we’ll discover techniques and tools to get past those mental barriers that keep you stuck (or at least slow you down). We’ll further uncover the ways in which our brains work best creatively: what’s behind the times when we feel on fire with ideas and inspiration…and when we don’t. These processes and techniques will not only enhance creative productivity, but they will also have you operating from a place of passion and excitement. Beware: this information challenges the standard norms around concentration, focus, productivity, and may change how you work…for the better."
},
{
"title": "DevOps Yourself: Fast-Track Your Windows Development Environment Setup with Chocolatey and Vagrant",
"speaker": "Justin James",
"tags": [
"Devops"
],
"description": "Does this ever happen to you? The development machine configuration takes forever to remember, document and configure. You can't seem to reproduce the configuration on another developers machine? It takes too long to create a new development machine? Then my friend, vagrant and chocolatey is for you. These tools will change how you work. You will forever say goodbye to the \"works on my machine\" excuse for the development environment for everyone on your team and never worry again about rebuilding your development machine."
},
{
"title": "Standing on a Beach, Staring at the C",
"speaker": "Kevlin Henney",
"tags": [
"Embedded",
"C++"
],
"description": "C has followed a slow and steady progression from being a high-level assembler to a general-purpose language with a strong systems focus, becoming the lingua franca that ultimately holds the software universe together. In over four decades the idioms and work practices around the language have changed. But only a little. What if we look at the language from the perspective of other trends? Without trying to fake or shoehorn the language into another paradigm, what practices — big and small — can we bring to it from the worlds of C++, OOP, functional programming, TDD and others?"
},
{
"title": "Boosting security with HTTP headers",
"speaker": "André N. Klingsheim",
"tags": [
"Security",
"Web"
],
"description": "Modern browsers offer multiple opt-in security features that help protect your web application. These features are enabled through a variety of HTTP response headers. You should take advantage of these security headers in your web applications to prevent several common web application attacks.\nWe'll go through the list of security headers and see what they do to improve security for your users.Security headers are the low hanging fruits of web application security. We should all be using them!\nThis talk is relevant for web developers, testers and architects on all platforms. The security headers enable security features in the browser, and so is not tied to any particular web application development stack. Any examples will be shown using the NWebsec security library for ASP.NET."
},
{
"title": "AWS vs. Azure - architectures and choices",
"speaker": "Michele Leroux Bustamante and Lynn Langit",
"tags": [
"Web",
"Cloud"
],
"description": "Both Amazon and Microsoft have compelling stories and rich features supporting cloud-enabled solutions. When you endeavor to leverage the cloud for a new or existing solution – it can be daunting to make sense of the various offerings for compute (IaaS and PaaS), storage, data (noSQL, relational and big data), and content delivery and streaming. Furthermore, other features such as networking, load balancing, security, configuration management and tooling play an important role in the overall cloud topology. How do AWS and Azure compare in these areas? What are their relative strengths and weaknesses? In this session we’ll provide perspective on these questions on both platforms, illustrate with core architecture scenarios that drive choices, and relevant demonstrations."
},
{
"title": "Aurelia: Next Generation Web Apps",
"speaker": "Rob Eisenberg",
"tags": [
"Web"
],
"description": "Want to see what the future of web development will be like? Looking for a simple framework or set of libraries that can help you build complex web or cross platform apps? You’re going to want to see this. In this talk we’ll introduce you to Aurelia, a new framework with a rich heritage stemming from Caliburn.Micro and DurandalJS. You’ll learn about the fundamental features of the framework, such as Dependency Injection, Templating, Databinding and Routing, while we build a simple application. You’ll leave with all the knowledge you need to get started building your own applications with Aurelia."
},
{
"title": "595 billions income - untouched by human hands",
"speaker": "Trond Arve Wasskog",
"tags": [
"Architecture"
],
"description": "The Norwegian Tax administration finances the welfare state by collecting 595 billion NOK from Norwegian tax payers. Currently, the MAG (Modernisering av Grunnlagsdata) and EDAG (Elektronisk Dialog med Arbeidsgivere) projects are implemented, realizing the first part of the modernized target architecture. One of the slogans for the projects has been \"untouched by humans hands\", indicating automated processing of documents. Additionally, the systems should handle both planned and unexpected exceptions and downtime without human intervention. This talk will outline the architecture, techniques and measures taken to handle these requirements, as well as assessing how it works in production, handling millions of documents. The topics covered include:\n\nUsing Atom feeds for event processing\nHandling partial failure and timeouts\nMicro services and REST architecture\nLightweight service discovery and fail-over\nCompeting consumers for redundancy and scalability\nIdempotent job execution\nHealth checks for monitoring and job control\nLessons learned - what works and what needs improvement"
},
{
"title": "Advanced Continuous Delivery Scenarios",
"speaker": "Jeff French",
"tags": [
"Devops"
],
"description": "There's plenty of information on the web about getting started with continuous delivery. When you start auto-deploying a large-scale app to production you'll find yourself in need of more than the basic setup covered in most tutorials. In this session we will look at advanced scenarios for continuous delivery inclucing automated smoke testing, round-robin deployments behind a load balancer, zero-downtime deployments, and more. We will discuss the best practices that need to be in place for these advanced scenarios to be successful and look at some tooling that can help us accomplish these tasks."
},
{
"title": "End-to-end Functional Web Development",
"speaker": "Tomas Petricek",
"tags": [
"Functional Programming"
],
"description": "One of the myths about F# is that it is only good for complex mathematics. In this talk, I’ll show you that this could not be further from truth. A web server is essentially a function from a request to a response and so functional programming is a perfect fit for it.\n \nIn this talk, I’m going to walk through a complete web development story with F#. We’ll start with a script file to test a couple of ideas, wrap the code into a web server and we’ll finish by deploying our system to Azure and Heroku. If you’re curious what this is going to be about, you can check out one of the samples that we’ll build at www.fun3d.net.\nYou will learn:\n\nHow to write web applications using the Suave.io web server\nHow to call REST services using F# Data type providers\nHow functional web server design makes it easier to test your system\nHow to deploy F# web apps to Azure and Heroku with FAKE"
},
{
"title": "Universal Windows Apps – Develop for all Sizes",
"speaker": "Lars Klint",
"tags": [
"Microsoft",
".NET Framework"
],
"description": "When Microsoft recently introduced universal Windows apps, they weren’t given much attention. In fact they created more confusion, especially for the large number of mobile developers on the Microsoft stack. However, the fact that you can develop one app that can then be deployed on multiple platforms and reach an exponentially larger customer base with almost the same effort it extremely powerful.\nUniversal apps work on everything from Windows mobile devices to tablets to “Big” Windows, yes, even on Xbox One. This talk will introduce developers to building universal Windows apps, and take advantage of some of the unique features they deliver:\n\nReuse your user interface by implementing cross platform native controls\nTarget screen sizes from 4 to 27+ inches in a single solution\nGive users a streamlined experience across devices using roaming storage\nGet tips on how to increase your return on investment by targeting the entire Windows user base"
},
{
"title": "Data exploration and analytics with elasticsearch",
"speaker": "Aleksander Stensby",
"tags": [
"Database",
"Search"
],
"description": "Aleksander will give an introduction to Elasticsearch and the many possibilities Elasticsearch offers in terms of search, data exploration and data aggregation. Aleksander will demonstrate how we can navigate structured and unstructured data for search as well as aggregating and visualizing data for analytical purposes. \nWe will look at case studies beyond traditional full-text-search, and hopefully see that Elasticsearch can help us build so much more than just a search engine."
},
{
"title": "A security testers toolkit",
"speaker": "Niall Merrigan",
"tags": [
"Security"
],
"description": "Kali, Backbox, Metasploit, BeEF. All tools in an arsenal that exist to break through security barriers.\nThis talk introduces the tools available and shows how they are used to get through your defences.\nIt is more a massive demo than a talk and is an exploration of the tools and what they do. At end of this talk, you will have better understanding how to defend against them and spot the problems. We will go through recon, exploitation and maintenance of exploits.\nThis is geared at developers, it pros and those with an interest in learning more about security tools and practices"
},
{
"title": "Engagement techniques. How to get people engaged and motivated?",
"speaker": "Anna Danes",
"tags": [
"People"
],
"description": "Objectives:\nLearn proactive strategies for motivating teams.\nDefine and recognize different motivation types.\nLearn the power of positive motivation and its advantages.\nDiscover tools that will help you motivate your team.\nBenefits:\nIdentify your work team's current state of motivation, and in what ways you can enhance this vital element in the work environment.\nAdapt the positive employee motivation techniques. to the characteristics of each individual, team and project.\nKeeping in mind the important role of team leaders, the way they turn the team out and perform their duties influences the motivation of the people they work with, and contributes to stimulating positive motivation on the job.\nPerfect for:\nTeam leaders who need to improve their teams' motivation.\nWorkers and Team Leaders who wish to acquaint themselves with positive motivation and learn about specific materials to use with their team."
},
{
"title": "Get more than a cache back! The Microsoft Azure (Redis) Cache",
"speaker": "Maarten Balliauw",
"tags": [
"Microsoft",
"Cloud"
],
"description": "The Microsoft Azure Redis Cache must be the fourth or fifth generation of a hosted cache service on Azure. This time, an open-source solution has been embraced: Redis. In this session, we’ll see that it’s more than just an in-memory cache system we can use in our applications. Let’s explore what Redis is, what the different data types are and why we should care. And once we grasp how Redis stores its stuff, we’ll delve into how we can use it to its fullest extent: searching the key-value store, transactions, pub/sub support and scripting."
},
{
"title": "Theft, Tributes and Collaboration",
"speaker": "Carl Smith",
"tags": [
"People"
],
"description": "The best things in our world are built on top of the ideas and discoveries of others. Yet we all feel like we have to be original in order to be valuable. In this talk, Carl will show a new way to think about collaboration by embracing creativity as a group endeavor. Examples abound that show us how much better we are when we put away the concept of intellectual property and embrace the best ideas of our time."
},
{
"title": "The rest of ReST",
"speaker": "Dylan Beattie",
"tags": [
"Web",
"Architecture"
],
"description": "So you've built your ReSTful API. You've had lengthy debates with your team about exactly what HTTP POST means, you know your GET from your PUT and you understand why HTTP methods aren't really the same as CRUD operations. So far, so good. But now you're dealing with a whole new set of problems. Do you really need to PUT the entire Customer just to change someone's email address? Why does it take you 25 API calls just to render a shopping cart? How do you find the bottlenecks when just drawing a web page requires fifty HTTP requests? What's going to happen to your database when one of your API consumers accidentally tries to retrieve the entire customer list?In this talk, we'll look at the challenges of building usable real-world ReST APIs. We'll look at Hypertext Application Language (HAL), and the conventions for extending basic JSON data to include references, cross-resource links and paginated result sets. We'll discuss HTTP PATCH, and how to implement it properly. We'll look at inline resource expansion, and how it can reduce load on your servers AND speed up your client applications. We'll look at how you can implement these techniques in popular .NET API frameworks like WebAPI, ServiceStack and NancyFX. We'll see how tools like Apiary and Swagger can help you design, build and support APIs, and we'll discuss the challenges of API versioning and how you can upgrade your APIs without breaking your client apps and upsetting your customers."
},
{
"title": "How do you scale a logging infrastructure to accept a billion messages a day?",
"speaker": "Paul Stack",
"tags": [
"Architecture",
"Devops"
],
"description": "Over the past year, OpenTable have been re-architecting their system from a monolithic architecture to move more towards microservices and small applications. As the infrastructure has changed, so to the logging infrastructure has had to change. Originally we had a logging solution where all logs where based in SQL Server. We then adopted the ELK stack. This allowed us to be able to scale more.\n \nAs the company moved into the cloud, we had to be able to scale even more. We decided that we would move to Apache Kafka.\n \nThis talk is all about the steps we went through and how we approached the work as well as the lessons learned. We are now in a position where we are able to elastically scale our logging infrastructure easily.\n \nAt the end of this talk, Paul will have demonstrated why Apache Kafka is a perfect addition to the ELK stack and how Apache Kafka allows us to add more resiliency and redundancy into our logging infrastructure"
},
{
"title": "Maximizing throughput on Multicore Systems",
"speaker": "Irina Guberman",
"tags": [
"Functional Programming"
],
"description": "Erlang is the best language there is for getting the most out of your concurrent system -- it was created with multi-core processing in mind! However, to get the best of it we need to understand what our concurrent processes are actually doing and how they'll play out with our system's physical limitations, a concept also known as mechanical sympathy. I would like to explore this subject based on my project at Ubiquiti Networks and take a look at an existing tool that could make the task of maximizing throughput on you multicore system easy and fun: the \"Jobs\" Framework by Ulf Wiger.\n\nTalk objectives\n1. Explore a business case scenario of a highly concurrent HTTP server requiring high CPU utilization.\n2. Explore \"Jobs\" framework in great detail with code snippets and fun pics. By the end of it anyone can start using it even developers with no Erlang background!\n3. And last but not least: Demonstrate that Erlang is a fantastic choice for writing highly concurrent applications!\n\nTarget audience\nAny developer interested in writing concurrent applications."
},
{
"title": "Making 2D Games that Run Everywhere using C# and CocosSharp",
"speaker": "James Montemagno",
"tags": [
"mobile",
".NET Framework"
],
"description": "C# has become one of the most prolific languages used in game development. Games developed in C# can be created to target desktops, tablets, mobile devices and game consoles, while sharing nearly the entire code base. On mobile devices 2D games in particular are massively popular. In this session, we'll explore how to use C# in conjunction with Microsoft and Xamarin to develop 2D games that will work on iOS, Android and Windows platforms. We'll cover the basics of 2D game development, working with multiple scenes, animation and even physics. By the end of the session, you'll have seen how to make a cross-platform 2D game that you can use as the basis for creating your own games."
},
{
"title": "Lifestyles of the rich and frameworkless",
"speaker": "Pete Smith",
"tags": [
"Web"
],
"description": "Angular, Ember, Meteor, Backbone, the front-end framework space is a busy place indeed. You'd be forgiven for feeling a bit overwhelmed and unsure where to start, but more importantly you're likely to miss an important alternative: to ditch your frameworks altogether and go it alone. It's not for everyone, but this approach can be valuable and rewarding - not just for you but for your clients as well.\nThis talk will cover all the basics you need to build a complete single page application entirely from scratch (well almost). Instead of getting bogged down in the pros and cons of framework use we'll demonstrate practical solutions to common problems, and even see how we can avoid some problems altogether."
},
{
"title": "Going beyond OWASP",
"speaker": "Barry Dorrans",
"tags": [
"Security",
"Web"
],
"description": "OWASP illustrates that developers keep making the same mistakes over and over again, but what about more esoteric vulnerabilities? In this session Barry will take you beyond SQL injection covering some of the code behind now fixed ASP.NET vulnerabilities. By the end of the session you should be poring through your own code looking for problems with dictionaries, compression, encryption and more."
},
{
"title": "Big Scrum: All You Need and It’s Not Enough",
"speaker": "Martin Hinshelwood",
"tags": [
"People",
"Agile"
],
"description": "The proliferation of scaling frameworks shows there are real challenges in scaling agility, and the solutions don’t seem to involve inventing yet more frameworks or formal processes. So then, why is it so hard to find success in agility at scale? Large scale agility can be found in exploiting Scrum’s simplicity while emerging and sustaining technical excellence. Something that sounds so easy shouldn't be so hard, and for some it isn't. This session highlights successes in growing large scale agility using Big Scrum while maintaining technical excellence to deliver value faster."
},
{
"title": "Make it Faster - Lessons Learned from Benchmarking NoSQL on the AWS Cloud",
"speaker": "Lynn Langit",
"tags": [
"Database",
"Cloud"
],
"description": "This is a new talk, based on benchmarking work I did for the NoSQL database company AerospikeDB. In this talk you will learn best practices for performing database benchmarking on the AWS cloud. More broadly, these processes can be applied to your production workloads to get more speed and efficiency.\nTopics include set up practices and tuning techniques you can use to minimize network, disk, cpu and RAM bottlenecks. Also included is understanding how to choose and tune the appropriate AWS AMI instance type for your data workload.\nDatabasese used are AerospikeDB and Redis. Additionally included are techniques to maximize performance for these two commonly used key-value stores on the AWS cloud."
},
{
"title": "Let’s Start an Epidemic",
"speaker": "Doc Norton",
"tags": [
"People"
],
"description": "How does the common cold spread through a group of friends or co-workers. What about other contagions? Can a contagion be used for good? Doc explores how things like disease, politics, and even moods travel through (meat-space) social networks. What impact do we have on others? What impact do they have on us? And what does this mean for members of the software development community?"
},
{
"title": "Learning Client Hypermedia from the Ground Up",
"speaker": "Mike Amundsen",
"tags": [
"Web",
"Architecture"
],
"description": "In this session, you'll learn how to convert an existing Web application that relies only on plain JSON responses into one that relies primarily on hypermedia information in the returned content. In the process you'll see how you can eliminate code from the client -- code that produces tight coupling with the service. In a series of simple review and refactoring, you'll learn how to move specific knowledge of 1) addresses, 2) inputs, and 3) workflow out of the client app and place it into the message. As a result, you'll have a more robust, adaptable, and resilient client that will reduce the need to versioning and repeated redeployment. This session offers valuable lessons and advice for front end developers, API service providers, and software architects."
},
{
"title": "Mob Programming, A Whole Team Approach",
"speaker": "Woody Zuill",
"tags": [
"People",
"Agile"
],
"description": "Mob Programming is a development practice where the whole team works on the same thing, at the same time, in the same space, and at the same computer. This is a “Whole Team” approach to doing all the work the team does – including coding, designing, testing, and working with the “customer” (partner, Product Owner, user, etc).\nWe have expanded the “team” nature of all the work we do – not just planning, retrospectives, and a daily stand-up or other meetings – but all the work that the team does. This could be thought of as Extreme Pair Programming, or continuous collaboration, perhaps. In other words, this is an evolutionary step beyond the pair programming, face-to-face communication, team alignment, collaboration, and “self organizing team” concepts of the Agile approach to software development.\nI’ll share how we’ve been using this practice to super-charge our development efforts and deliver high value software for almost 3 years. We’ll see what it looks like, the benefits (higher quality, rapid development, more productive, continuous learning, full engagement of the team, and more), and how to do it yourself. In our workplace we “Mob Program” all day, every day, but we’ll also explore some ideas on how you can employ all of the concepts and practices (and get the benefits) of “Mob Programming” in your own company even if you can’t do it “all day, every day”.\nMob Programming is now being done all over the world, and a wide spectrum of projects and in organizations of all sizes. It is quiely learned, and can be adapted to almost any product, project, or problem. In a nutshell, it's about working well together."
},
{
"title": "Metaprogramming Elixir",
"speaker": "Chris Mccord",
"tags": [
"Functional Programming"
],
"description": "Elixir macros give programmers the power to write code that writes code. This power eliminates boilerplate, allows Domain Specific Language abstractions, and provides the freedom to extend the language. Leveraging the fact that it can be represented by its own data structures, Elixir can interrogate its own code to peer in for analysis or to add additional functionality. Used appropriately, macros offer effective module composition and code generation techniques, while more liberal use can serve as an outlet for novel insights through experimentation.\nStarting from the basics of macros, we’ll explore these ideas from an introductory level through advanced topics and real-world use-cases. Along the way, we’ll see how Elixir uses meta-programming to generate parts of its own standard library. We’ll also examine how macros can be used to save time and share functionality in a fun and productive way."
},
{
"title": "Real-time, offline-capable, noBackend web apps with Firebase",
"speaker": "David Ed Mellum",
"tags": [
"Web",
"Database"
],
"description": "Let's write a web-app that can be pushed to in real-time from other users, survive offline and- oh darn that'll take us ages just to get the C#/Java/Node.js project set up! We'll need to select and install a SQL DB or a fancy document store too. And we'll need to either write or choose a library to sync data from the server to the browser in case the browser goes offline. Don't fret though, because with noBackend web apps we don't need no stinkin' server, we can write all our code for the browser!\nDavid will be live coding a collaborative drawing application that shows others drawing in real-time together with you. If you go offline you'll still be able to draw and when you reconnect your changes will be automatically synced back to the server. He'll do all this without ever writing a single line of server-side code."
},
{
"title": "Crafting Evolvable Web API Representations",
"speaker": "Darrel Miller",
"tags": [
"Web",
"Architecture"
],
"description": "Web frameworks help you build an API quickly but most have little support for dealing with an API that needs to evolve, forcing you to prematurely version your API.\nTake back control of the content you send over the wire. API responses are the \"user interface\" of your API and should be crafted with same attention to detail that cause designers to fret over color choices, shadows and highlights.\nIn this talk I’ll show you what I have learned about API response design in the last 8 years of building Web APIs. I'll cover issues like structuring for evolution, sizing for optimum caching, the different ways to include metadata, media type selection and many other issues that surface when trying to design an API for the long haul."
},
{
"title": "You can't change this: Immutable JavaScript",
"speaker": "Christian Johansen",
"tags": [
"Web",
"JavaScript"
],
"description": "Immutable data structures will help you regain your sanity when programming - even in JavaScript! In this talk I will explain what immutability is, what it's good for, and how to effectively put it to use in JavaScript. We will see how immutability can truly help reduce complexity in the UI layer, and even improve performance while we're at it. Immutability goes hand in hand with functional programming, but it doesn't have to - no matter what your pereferred programming paradigm is, immutability will improve your code. If reducing complexity is your cup of tea, this talk is for you."
},
{
"title": "Why monitoring sucks, and how to improve it",
"speaker": "Pavlo Baron",
"tags": [
"Devops"
],
"description": "Computers are good at solving recurrent problems. Much better than humans are. And still, we keep them dumb with a set of simplest heuristics when it's about monitoring complex infrastructures, leaving the largest part of the job - issue recognition and analysis - to ourselves. This might work with a server or two, but definitely won't in a larger setup, even if we convince ourselves it would. We need new approaches to monitoring our systems that combine the best of software engineering and mathematics. In this talk, I will explain the vision and the targets towards it."
},
{
"title": "Making Hacking Child’s Play",
"speaker": "Troy Hunt",
"tags": [
"Security"
],
"description": "How does it keep happening? I mean why are websites so consistently hacked? Is it the work of sophisticated cyber-villains operating from underground lairs? As it turns out, many of today’s online attacks are mounted by kids – legally children – who simply have time, patience and access to Google.\nIn this session we’re going to look at and execute a heap of online attacks with tools that even kids can use. You’ll learn just how easy it is to mount these attacks and most importantly, what it is you need to do to keep your apps secure not just from mischievous kids, but from cyber-criminals and even nation state actors.\nThis talk is scary, entertaining and will make you distrusting of any kid with a PC."
},
{
"title": "Troll Hunting on the Internet",
"speaker": "Gary Short",
"tags": [
"Web",
"Big Data",
"Cloud"
],
"description": "The phenomenon of anonymous cyber bullies trolling individuals, as a pack, has increased over the years. One of the things that makes this appealing for the trolls is that they feel that they can act with impunity due to the anonymity provided by many social networks.\nIn this presentation we'll walk through the development of a theoretical application to identify these trolls, and the multiple accounts they hold, via computational lingustics, before using predictive analytics to suggest likely locations for their homes and places of work/education.\nBy removing the anonymity of the Internet we can drive these trolls off of social media."
},
{
"title": "Multicore Software Development on ARM",
"speaker": "Chris Shore",
"tags": [
"Embedded"
],
"description": "Multicore software development is happening in the embedded world! For many embedded software developers it represents the biggest single challenge they face. Successfully developing software for multicore processing platforms starts early - systems must be designed from the outset with multicore in mind, including application structure, task decomposition, messaging design and shared memory architecture. This presentation will use the standard facilities provided by current ARM platforms to illustrate all of these concepts and will provide practical advice and techniques for designing and implementing successful multicore systems.\nWalk-away points To put it simply, what do you need to do to design, structure and implement your software for the kind of multicore platform which is increasingly found in today's embedded systems\nPrerequisites\n\nEmbedded software development\nFamiliarity with the ARM architecture\nC and assembler programming\n\nAudience level\n\n\nAdvanced"
},
{
"title": "Creative Collaboration; Tools for Teams",
"speaker": "Carl Smith, Doc Norton and Denise Jacobs",
"tags": [
"People"
],
"description": "Even high functioning teams occasionally have a hard time making decisions or coming up with creative ideas. There are times when the conversation seems to drag on long after a decision is reached. There are times when we have too many people involved in the discussion or the wrong people involved. There are times when we're not sure whose the actual decision maker. And there are those times when we just seem to be out of synch with each other. This creative collaboration workshop provides tools that help resolve all of these issues. Come have some laughs with Denise, Doc, and Carl, play with new friends, and learn one or two new techniques you can try at home."
},
{
"title": "Knowledge is power! The guide to measure what matters.",
"speaker": "Mark van Straten",
"tags": [
"Devops"
],
"description": "How do you monitor the key performance indicators of your application? Do you know if signups are decreasing versus last week? Have you adopted agile principles but also a hard time to monitor the improvements of your continuous deployments?\nIn this talk we will briefly discuss multiple measuring solutions before diving into the nitty-gritty details of measuring with the help of StatsD. We will implement a few counters and timers and graph these so we can start to make sense of the data. Then we will use powerful functions to analyse the data and spot trends before your users do.\nAfter this talk you will be empowered to create your own data metrics with help of StatsD and have basic knowledge how to plot these metrics into meaningfull graphs. Be empowered!\nCode examples will be in C# but technology demonstrated is not limited to this."
},
{
"title": "F# as our day job by 2016",
"speaker": "Tomas Jansson",
"tags": [
"Functional Programming"
],
"description": "F# is a language I am passionate about and a language I would like to use on my day job, and for that to be a reality I need you to join me! I want you to join me in the welcoming F# community where you can see a new world open up for you and enabling you to solve problems more efficiently than you do today with C#. F# is not a language that is used only in academia, it is a general purpose language that is growing every day with an awesome community of brilliant people. F# also defines the future of C# in many ways, so if you want to be ahead of the game you should jump on the F# bandwagon today. There are many reasons to learn F# like; a new paradigm will make you a better overall developer, F# will make you write less bugs and you will have more fun at work!\nI this presentation I will show you:\n\nWhat the strengths of F# are\nWhy you should start using F#\nHow you get started with F#\n\nDon't hesitate, join the F# movement. The only way to improve is to change!"
},
{
"title": "Lightning Talks",
"speaker": "Claus Asbjørn Sørensen, Trond Marius Øvstetun, Alex Yates, Todd H Gardner and Glenn F. Henriksen",
"tags": [],
"description": "Making new ASP.NET 5 project commands - Glenn F. Henriksen\nEver wondered what happens when you type \"k web\"? Let's see how ASP.NET 5 project commands work and how you can make your own!\n--------\nRunning Docker in Azure - Trond Marius Øvstetun\nDocker hit the development world like a whirlwind last year, with its focus on lightweight containerization and portability. Since then, Docker has matured into a grown-up platform that is part of many developers' toolchain.\nRecently, Microsoft announced support for running Docker containers in Azure. This talk will introduce how to run Docker containers in Azure and highlight some of the key benefits Azure provides for Docker. I will also take a look at how to interact with Azure services from within Docker containers.\n--------\nThe Cloud Empowered Developer - Claus Asbjørn Sørensen\nSometimes it seems like creating products and services have become harder. Our users are getting more sophisticated, their expectations are soaring and creating something from top to bottom requires a broad skillset.\nIn reality however, we as developers have never had better tools at our dispasal. A prime example is the surge of cloud services that have given individual developers access to infrastructure that was unimaginable just a few years ago.\nI am spending 2015 taking some time off from work as a consultant to travel and work on my own projects.\nIn this talk I will show how I have used Azure technology like cloud services, databases and messaging to single-handedly launch and run a SaaS product.\n--------\nWhich CI server is right for me? - Alex Yates\nTeamCity? TFS Build?Jenkins? Bamboo?\nFor many people it is a given now that CI just happens. But what if you are just starting out on the daunting task of setting it up from scratch? Which CI server should you choose?\nDoing my job I'm constantly setting up or tinkering with different CI servers for organisations across Europe. I'm going to give you a whistle-stop tour of four of the most common CI servers and point out their relative strengths and weaknesses.\nIn a few short minutes you should get a good idea which if these tools is the most suitable for you.\n--------\nNOTEPADLive in Summary - Todd H Gardner\nThe second installment of the Notepadconf saga was NOTEPADLive! Heald in Minneapolis, MN and focused on all that is new with Notepad for Windows 10. This quick lightning talk will summarize the discussions and learning from this important event."
},
{
"title": "Getting started with Meteor",
"speaker": "Kuba Walinski",
"tags": [
"Web",
"JavaScript"
],
"description": "The world of JavaScript Frameworks is constantly evolving. It seems that almost every month there is a brand new thing that will revolutionise web development. However, having a closer look you don’t really see much revolutionary stuff in those new frameworks - they are usually just a small step forward from the previous thing. At least that’s how I felt in the past few years of doing JavaScript. Until I discovered Meteor, that is. It was enough to complete the getting started tutorial to realise that I’m dealing with a potential game-changer. First imagine that all communications happen via web sockets (way faster than REST API calls over HTTP). Then realise that you have a full blown MongoDB implementation accessible on the client side. Finally, remember that from now on you just need one programming language - JavaScript - to implement the whole application - from the client-side through to the back-end and all the way down to the database. In this talk you will see all this goodness brought together in one great package that is called Meteor."
},
{
"title": "Introduction to Windows 10 UWP and Adaptive Design",
"speaker": "Andy Wigley",
"tags": [
"Web",
"Microsoft",
".NET Framework"
],
"description": "Windows 10 brings convergence across all Microsoft device families. Within a few years, Windows 10 could be running on over 1 billion devices – and all those devices will be running the same core app platform, an unprecedented opportunity for developers. From tiny devices like the Raspberry Pi 2, through phones, tablets, PCs, convertibles, Xbox and up to giant screens like the Surface Hub –one developer platform, one app package, one dev center and one store.\nWe’ll look at what it means to build apps for the Universal Windows Platform (UWP). We’ll explain what it is and how to write one app package that runs on multiple device families, and how to build an adaptive UI and write adaptive code."
},
{
"title": "Patterns and Practices for Embedded TDD in C and C++",
"speaker": "Byran Wills-Heath",
"tags": [
"Testing",
"Embedded"
],
"description": "With the ever increasing complexity of software the need to use development practices like TDD is becoming more and more important. Embedded software development presents an extra set of challenges when practicing TDD. Hardware is often still in development, expensive or has limited availability. Deploying to the target device takes a long time. The target device has limited program space and RAM. For these reasons testing of embedded software is often performed manually (if at all).\nThere are a large number of papers and articles that focus on TDD for systems without the added complexities of working in an embedded environment. We’ve been developing embedded software using TDD (and a variety of other Agile techniques) for the past 6 years. This paper presents some of the patterns and practices that help us deal with some of the extra complications incurred when practicing TDD in an embedded environment. It covers how we keep the feedback from our tests fast while still running tests on the target hardware. How we mock out dependencies and discusses the advantages and disadvantages to the techniques shown."
},
{
"title": "Removing barriers",
"speaker": "Hadi Hariri",
"tags": [
"People"
],
"description": "Imagine most of the artificial barriers imposed on your work were to be removed. Imagine if nobody micromanaged you, nobody asked when you come into work or when you leave. Imagine if there was very little management. Wouldn’t it be ideal? Everything would just fall into place and we’d be so much more productive, right? \nAt JetBrains a lot of these barriers don’t exist. But not having barriers isn’t always easy. In fact you cannot just break them all down and think everything will just work. \nIn this talk we’re going to look at the pros and cons of this approach, and see how to overcome certain issues that arise, or even if they can be easily overcome."
},
{
"title": "Cloud-Scale Event Processing with the Reactive Extensions (Rx)",
"speaker": "Bart De Smet",
"tags": [
"Microsoft",
"Cloud"
],
"description": "Come and see how reactive programming is used to build cloud-scale, low-latency, distributed event processing systems at Microsoft, powering end-user experiences such as the personal digital assistant 'Cortana'.In this session we'll show what it took to bring the concepts of Reactive Extensions (Rx) to the cloud to deal with latency, scale, reliability, and other concerns. You'll also learn about the core API abstractions that are used to represent event processing systems of any size across our stack, including the cloud as well as devices and sensors."
},
{
"title": "Beer analysis using Kibana 4 and elasticsearch",
"speaker": "Christoffer Vig",
"tags": [
"Database",
"Search"
],
"description": "A walk through and live demonstration of search & analysis capabilities of elasticsearch and kibana, performed on the open dataset from Vinmonopolet, subset beer.\nUsing metrics and aggregations to perfom analysis on important key performance indicatiors such as alcholol content pr price, and Belgianness.\nThe talk will be very loosely based upon this blog post http://blog.comperiosearch.com/blog/2015/02/09/kibana-4-beer-analytics-engine/"
},
{
"title": "Creative Collaboration; Tools for Teams",
"speaker": "Carl Smith, Doc Norton and Denise Jacobs",
"tags": [
"People"
],
"description": "Even high functioning teams occasionally have a hard time making decisions or coming up with creative ideas. There are times when the conversation seems to drag on long after a decision is reached. There are times when we have too many people involved in the discussion or the wrong people involved. There are times when we're not sure whose the actual decision maker. And there are those times when we just seem to be out of synch with each other. This creative collaboration workshop provides tools that help resolve all of these issues. Come have some laughs with Denise, Doc, and Carl, play with new friends, and learn one or two new techniques you can try at home."
},
{
"title": "Everything I Know About Computers, I Learned From the Movies",
"speaker": "Mark Rendle",
"tags": [
"Fun"
],
"description": "Hooray for Hollywood! Nothing has done more to educate the public about technology and computers than the silver screen. Come on a ride down the boulevard of dreams, where you can learn how hackers hack; why artificial intelligence wants to kill us all; and what happens when a self-replicating trojan virus worm breaks through a 256-bit firewall."
},
{
"title": "Implementing the logic for a board game in Elixir",
"speaker": "Torben Hoffmann",
"tags": [
"Functional Programming"
],
"description": "Board games are fun and good challenges when exploring a new language. The requirements are clear - if only software requirements were as clear - and poses some interesting problems when it comes to implementation of the often quite cunning rules.\nImperative, object-oriented and functional languages all provide their own answers on how to implement board game logic.\nElixir is a concurrency oriented, functional language. This means new ways of solving the problems.\nIn this talk we will look at how Elixir can be used to implement the logic for the board game classic Acquire. And some of the ideas can even be used for \"real-life\" problems as well!\nTalk objectives\n\nShow how to break down board game logic in to manageable pieces.\nShow how processes and functional programming work together in asoftware design.\n\nTarget audience\n\nprogrammers wanting to understand a different way of thinking.\nthe little board gamer inside all of us."
},
{
"title": "Xamarin.Forms: Native iOS, Android, and Windows Phone apps from ONE C# Codebase",
"speaker": "James Montemagno",
"tags": [
"mobile",
".NET Framework"
],
"description": "Building cross-platform native UIs with one shared codebase was once just a dream. With Xamarin.Forms, this dream is now a reality. Xamarin.Forms allows you to build a native UI for three platforms with one shared C# codebase. Simply put, if you know C# then you already know how to build iOS, Android, and Windows Phone apps. Leverage the .NET Framework to build out your shared business logic including integration with web services and Azure Mobile Services and then build out your shared UI in C# or XAML. Xamarin.Forms also features a built-in two-way data binding, dependency service to help you implement platform-specific code, an advanced cross-platform animation system, support for custom controls, and lots of other powerful features to help you build the best apps possible in the least amount of time.\nDuring this session we will cover the Xamarin platform and the brand new Xamarin.Forms library to share even more code across iOS, Android, and Windows Phone. Moreover, we will really focus on the code with several live coding adventures throughout the entire session. When you leave you will have the knowledge to create your first iOS, Android, and Windows Phone mobile apps in C# with Xamarin and Xamarin.Forms."
},
{
"title": "ng-owasp: OWASP Top 10 for AngularJS Applications",
"speaker": "Kevin Hakanson",
"tags": [
"Security",
"Web",
"JavaScript"
],
"description": "The OWASP Top 10 provides a list of the 10 most critical web application security risks. How do these relate to AngularJS applications? What security vulnerabilities should developers be aware of beyond XSS and CSRF?\nThis session will review the OWASP Top 10 with a front-end development focus on HTML and JavaScript. It will look at patterns to implement and others to consider avoiding. We will also explore several built-in features of AngularJS that help secure your application."
},
{
"title": "Business Logic – a different perspective",
"speaker": "Udi Dahan",
"tags": [
"Architecture"
],
"description": "Although it’s been over a decade since the publication of the DDD “blue book”, there are even older principles that are not nearly as well known and, as a result, developers continue to struggle with logic across client and server tiers. This hasn't gotten any easier with the recent craziness around microservices.\nJoin Udi for a quick run through some of the history of software architecture and see how, together with the application of modern version control techniques, we can come to vastly simpler systems."
},
{
"title": "How to build and be a part of a highly efficient team",
"speaker": "Kjell Ljøstad",
"tags": [
"People"
],
"description": "Why are some teams more efficient than others? What are the components of building a great team? How can you contribute to this greatness? In this talk I will give insight to these questions. I will also focus on how every team member can contribute to making the team highly efficient by using and enhancing your relational skills. I will use examples from the norwegian consultancy Webstep and from our projects."
},
{
"title": "Evolving architecture for API delivery on Azure",
"speaker": "Harald Schult Ulriksen",
"tags": [
"Architecture",
"Cloud"
],
"description": "In this session we will look at how software architecture is changing in NRK's online player to take advantage of the services in Azure.\nUsing the API behindtv.nrk.no as a discussion point, we will see how the architecture has evolved alongside Azure and its services. Following our journey into the cloud, I will highlight the cause of the architectural changes we have gone through and where we are heading next.\nTopics covered include Cloud Services, Queues, Table Storage, DocumentDB, Elasticsearch, Redis, geo replication between data centers, application structure and command query separation, operations and reliability."
},
{
"title": "Browserception: Building our own browser with CSS/HTML and Node.js",
"speaker": "David Ed Mellum",
"tags": [
"Web",
"UI",
"JavaScript"
],
"description": "Ever wanted your very own browser with proper support for 200 tabs and a built-in Hello Kitty UI? Watch David code the monstrosity live! Using only CSS, HTML and Javascript we'll create a brand new browser with a custom UI and amazing/horrible features.\n\nWith Node.js and bindings to modern browser engines(Electron, nw.js) we can build desktop applications with web technologies, we can even build browsers where anyone who can program the web can program their browser. This talk will start by looking at just how amazing web-based desktop apps can be and end with building a monster of a browser.\n\nFeatures I'll build in the browser:\n\n\n\nAmazing sound effects\nMultiple rows for tabs enabling hundreds of tabs ruining usability\nBookmark manager that rejects sites that aren't on Alexa top 100, only the best will do!\nA PDF reader"
},
{
"title": "IoT and Machine Learning – a true story of a Smart Grid",
"speaker": "Davide Roverso and Erik Åsberg",
"tags": [
"Microsoft",
"Architecture",
"Big Data",
"Cloud",
"IoT"
],
"description": "With the use of Azure Machine Learning based on R, eSmart Systems created long­ and short term predictions for energy load. Using these predictions, we control heated floors and water heating in households through home automation. The solution is entirely cloud based and is alive and running on the islands of Hvaler outside Fredrikstad, Norway. Join this session to see a real­life story of IoT, Azure and Machine Learning – a story of practical use of all the buzzwords and how it actually helps the utility lower costs."
}
]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment