Programme

🔵  Little assumed knowledge
🔵🔵  Moderate assumed knowledge
🔵🔵🔵  Significant assumed knowledge

Morning - Talks

Monday 2 September 2019 RMIT - Building 80
8am
Registration
9am Ken Scambler Introduction by the Committee
9:15am Ambrose Bonnaire-Sergeant 🔵
10:00am
Break
10:15am Svetlana Marina Day-to-Day Property Based Testing in Scala 🔵
10:45am Brendan Zabarauskas Lost in a Universe of Types: My Adventures in Programming Languages 🔵 🔵
11:15am
Break
11:30am Jack Kelly Reflex Outside the Browser 🔵 🔵 🔵
12:00pm George Wilson An Intuition for Propagators 🔵 🔵 🔵
12:30pm
Lunch

12:30-17:00 - Hang Out and Hack Room

Our Hang Out and Hack room will include: "office hours" (people can request help on particular topics, or offer to help others); lightning talks, free discussion and of course — hanging out and hacking… Bring your laptop! TBC

13:30~15:30 - Unconference

The unconference is like open-mic for hackers. It's open for anyone to do a talk, just add your name to the list near the registration desk on the day of the conference. RMIT - Building 80
----

Morning - Talks

Monday 2 September 2019

8am

Registration

Ken Scambler
9am

Introduction by the Committee

Ambrose Bonnaire-Sergeant
9:15am

About Ambrose Bonnaire-Sergeant

"I understand the world by identifying and teaching the essence of important ideas. With computers, I tend towards the design and implementation of programming languages. Recently, I dissertated on extending the Clojure programming language with a static type system."

10:00am

Break

Svetlana Marina
10:15am

Day-to-Day Property Based Testing in Scala

Property-based testing is a popular testing concept, which came from the world of Functional Programming. QuickCheck in Haskell is an iconic framework, which introduced us to this idea. Today we can find testing libraries supporting PBT in any main-stream languages, including Scala, JavaScript, Ruby, Python, Java, etc.

We all like the idea of building high quality and robust code, covering all the possible and impossible edge cases. Maybe this is why many of us are getting hooked on the Property-based testing approach or at least we are not opposed to try it out.

It gives us an ability to run a single test case hundreds of times on a large range of data, covering edge cases we’ve never thought we had in the first place.

However, if you are like me and your day-to-day job is to create an API and save data into a database or maybe even send it over to another API, you also probably struggled to come up with a good application of this practice. It is easy and “very useful” to test that a reverse of a collection is still working. But, when it comes to if-else conditions, we find it hard to come up with the right property to test.

In this talk I would like to focus on a practical application of this concept, presenting some examples in ScalaCheck. I will start with a summary of what Property-based testing (PBT) framework equips you with and what should you expect from it. There will be basic examples demonstrating the power of PBT. But mostly, I will cover existing patterns and tips you can take to your normal life projects and use them to leverage this PBT tool.

About Svetlana Marina

Svetlana is a Software Engineer at ThoughtWorks. She likes delivering software into production and making this a joyful process. She's is a polyglot and during her career she had a chance to work with quite a set of different languages. The most impactful of them for her was Scala, which introduced her to the world of functional programming. Since then, she always tried to adopt FP concepts on her projects, even if they were in the mainstream non-fp languages.

Brendan Zabarauskas
10:45am

Lost in a Universe of Types: My Adventures in Programming Languages

Programming language design is kind of like world building. This is what initially got me excited about it! In this talk I'll take you on journey, showing how I originally became excited about programming languages as a result of my artistic interests. I'll then cover why we are excited about programming languages and dependent types at YesLogic, and share some of the struggles I've had in applying academic research to industrial problems.

About Brendan Zabarauskas

With a background in communication design, illustration, generative art, and open source software development, Brendan is fascinated by the intersection of art, design, mathematics and computer science. His current focus is on exploring how programming languages and type systems can be used as a tool for designing safer, more robust, and friendly software. This involves keeping abreast of past and present academic research and figuring out ways to integrate this into industrial applications. He currently works at YesLogic, building a dependently typed domain specific language for describing binary data formats.

11:15am

Break

Jack Kelly
11:30am

Reflex Outside the Browser

Functional Reactive Programming (FRP) is often introduced by discussing events and behaviors, and how to transform and mix them. But once you understand the primitives, what do you do with them? Where do the first events come from, and how do you wire these parts into a larger whole?

FRP promises benefits in more domains than just user interfaces, so let's take a look at Reflex outside its most common habitat of web frontends. There's now a fairly up-to-date version of Reflex on Hackage, so we can play with it right away and leave GHCjs, Reflex-DOM, special build tools, and the custom nix frameworks for later.

An FRP network of events and behaviors runs inside a library called a "host", which interfaces between the FRP network and the outside world. Using an interactive OpenGL program as our example, we'll explore how a slightly larger reactive program hangs together, and how it uses the host's features to do what it needs to do.

About Jack Kelly

Jack is a Haskell enthusiast, lapsed tall-ship sailor and member of the Queensland FP Lab. He has tutored functional programming at universities and for industrial programmers, and loves seeing the lightbulb go on above people's heads. Jack became frustrated trying to reason about imperative code in dynamic languages, decided that Haskell looked like a good tool to solve business problems and followed a path through Data61 to the QFPL's door.

George Wilson
12:00pm

An Intuition for Propagators

The propagator model of computation developed by Radul and Sussman consists of stateful cells connected by independent stateless machines called propagators. These propagator networks are a helpful way to structure or think about computations, particularly those that are concurrent or distributed.

This talk will give an intuition for what these propagator networks look like, why they work, and how we can use them to build programs. Efficient implementation will not be covered.

The Haskell community has recently seen concurrency abstractions bearing similarities to propagators, such as the work on LVars by Kuper and Newton; and also projects directly influenced by propagators, such as Edward Kmett's recent work.

About George Wilson

George Wilson is an enthusiastic functional programmer from Brisbane, Australia. He works on open source Haskell projects and educational material at the Queensland Functional Programming Lab inside Data61. George is also a member of the Haskell Core Libraries Committee and the Haskell.org Committee.

12:30pm

Lunch

----

12:30-17:00 - Hang Out and Hack Room

Our Hang Out and Hack room will include: "office hours" (people can request help on particular topics, or offer to help others); lightning talks, free discussion and of course — hanging out and hacking… Bring your laptop!
----

13:30~15:30 - Unconference

The unconference is like open-mic for hackers. It's open for anyone to do a talk, just add your name to the list near the registration desk on the day of the conference.
---
Register for Melbourne :: C◦mp◦se :: Conference 2019 tickets at Eventbrite