GOTO is a vendor independent international software development conference with more that 90 top speaker and 1300 attendees. The conference cover topics such as .Net, Java, Open Source, Agile, Architecture and Design, Web, Cloud, New Languages and Processes

Erik Meijer, Founder at Applied Duality, Inc.

Erik Meijer

Biography: Erik Meijer

Erik Meijer is an accomplished programming-language designer who has worked on a wide range of languages, including Haskell, Mondrian, X#, Cω, C#, and Visual Basic. He runs the Cloud Programmability Team at Microsoft, where his primary focus has been to remove the impedance mismatch between databases and programming languages. One of the fruits of these efforts is LINQ, which not only adds a native querying syntax to .NET languages, such as C# and Visual Basic, but also allows developers to query data sources other than tables, such as objects or XML. Most recently, Erik has been working on democratizing the Cloud using Volta and preaching the virtues of fundamentalist functional programming in the new age of concurrency and many-core. Some people might recognize him from his brief stint as the "Head in the Box" on Microsoft VBTV.
 
Twitter: @headinthebox

Presentation: Keynote: Open Systems - Actors and Cloud

Time: Wednesday 09:30 - 10:30 / Location: Gold Coast Room

As developers we all like to use tightly couple systems where possible and loosely coupled ones where necessary. In the closed world of the pre-Cloud era, traditional relational databases have gained tremendous leverage from tight coupling of B-tree storage, transaction managers, and query optimizers, providing developers with an efficient, consistent, and easy to use ACID programming model. In the open, distributed, asynchronous, and heterogeneous world of the Cloud, we must consider more loosely coupled computational models that are designed with distribution and concurrency in from the get go, and accept that our knowledge of the world is never fully consistent. Actors as envisioned by Carl Hewitt fit the bill perfectly. In this talk we will show how highly-available stateful Actors provide a flexible and easy to use programming model for the Cloud on the outside, while still allowing for the traditional programming models on the inside.

Presentation: Democratizing Machine Learning With C#

Time: Wednesday 15:10 - 16:00 / Location: Gold Coast Room

There is a lot of hype and mystique around Machine Learning these days. The combination of the words “machine” and “learning” induces hallucinations of intelligent machines that magically learn by soaking up Big Data and then both solving world hunger and making us rich while we lay on the beach sipping a cold one.

Worse yet, the esoteric and mathematical terminology of many Machine Learning textbooks and research papers fuels the mystique, resulting in the persona of the Data Scientist as the 21st century druid that mystically distills insight and knowledge from raw data.

However, just as normal programmers can write code without needing to understand Universal Turing Machines, power domains, or predicate transformers, we believe that normal programmers can use Machine Learning without needing to understand vectors, features, probability density, Jacobians, etc. In fact, the very essence of Machine Learning is creating code from a finite set of sample input/output pairs. This is something that programmers are already deeply familiar with; and in this talk, we will explain how Machine Learning is Test Driven Development performed by code (TDD).

Workshop: Monads for Evil, Monads for Good? It's all just CRUD

Time: Thursday 09:00 - 16:00 / Location: Training 4

One interesting development in the art of war in the age of the Internet is the transition from fighting wars using atoms to fighting wars using bits. If we look at cyber war through the eyes of a developer, we see that that is not much dissimilar from normal data processing in that we need to parse, query, transform, automate, analyze, combine, … data sources. Even the sources of data are very similar, files, network protocols, Twitter feeds, keyboards, etc. we use in programming normal “civilian” applications. As Sun Tzu has taught us “if you know your enemy and know yourself, you need not fear the result of a hundred battles”, inspired TJ O’Connor’s book “Violent Python”, this course will apply monads and functional programming to attack networks, perform digital forensics, and in general create (harmless) digital mayhem in the course room.
 
Keywords: Functional programming, monads, big data, hacking, security.
 
Target Audience:  Programmers interested learning about functional programming and monads by applying it to the real world problem of computer security.
 
Requirements:
This is a hands-on course where you will write functional programs in any language of your choice, Java 8, Scala, PHP, Python, Haskell, OCaml/F#, Scheme/Racket, C# or even Visual Basic. The sample code will be in C#. Several of the examples in the course are inspired by the bookhttp://www.violentpython.org/wordpress/.

Workshop: Asynchronous Programming and Real-time Stream Processing with Reactive Extensions (Rx)

Time: Friday 09:00 - 16:00 / Location: Training 2

One of the most hyped topics in our industry these days is “Big Data”. After focusing on Volume, people are now recognizing that Variety and more importantly Velocity are as important, or in fact, even more important than just pure volume for application developers. All modern Desktop, Web and Mobile applications require sophisticated coordination and orchestration of asynchronous data and event streams originating from web services, UI elements, sensors, GPS, push notifications, etc. and hence developers need powerful tools to compose asynchronous data streams.

In this course, we'll examine how to apply Reactive Extensions (Rx) to manage and analyze events and real-time data streams and act on them in an asynchronous manner. This course will be largely hands-on and driven by practical and language independent examples using sample data sources from  sensors, GitHub, Twilio and Netflix, and applying Rx to the Web via RxJS and HttpClient, as well as creating GUI apps using Rx.NET. We'll also look more data-analytical intensive, such as creating real-time data processing and aggregation of Twitter and stock streams in a clean, testable way.
 
Keywords: Big Data, velocity, streaming data, asynchronous programming, LINQ, complex-event processing, reactive programming.
 
Target Audience:  Developers interested in real-time analytics over streaming big data and compositional event processing. Rx developers of all levels who would like to interact the inventor of the technology.
 
Requirements: We recommend attendees using Windows to install LINQPad from http://www.linqpad.net/ and the reactive extensions for .NET and JavaScript from NuGet. For those on OSX and Linux, we would love you to play along using http://xamarin.com/studio, using GitHub’s ObjectiveC implementationhttps://github.com/blog/1107-reactivecocoa-for-a-better-world, Netflix’s RxJava https://github.com/Netflix/RxJava , or Google’s Darthttp://news.dartlang.org/2012/11/introducing-new-streams-api.html. In case you do want to pre-pare yourself for this course, we recommend to have a look atwww.introtorx.com. Knowledge of monads and category theory is not required.