Another good DevWinter

It was DevWinter last weekend, and as usual there was an interesting set of talks.

The “my adventure with elm” talk was good. The speaker gave a very brief introduction to Reactive programming, a brief introduction to the Elm language and then implemented the Snake-and-apples game in Elm inside a browser on one of the Try Elm sites. Apart from a couple of times when he needed to uncomment a couple of pre-written functions, he wrote the whole application in front of us. This was a good introduction to the language and a very well presented talk.

The “anatomy of a catastrophic performance problem” was also very good. A witty presentation of a real life performance problem, which showed how frequently us developers think we’ve analysed the problem and hence push out a fix, without trying the fix on a reproduction [which wasn’t available in this case].

In the afternoon, I attended the double session on ClojureScript. This wasn’t very hands on in the end, and the presenter spent a lot of time discussing the Clojure language and the various benefits of functional styles of programming as well as selling the advantages of transpiling to JavaScript rather than writing in JavaScript in the first place. The presenter did use the lein Figwheel plugin to get a REPL connected to a ClojureScript session running inside a browser which also reloads when modifications are made to the source. This is all build using the lein tool, and getting started is as simple as typing:

lein new figwheel myproject
cd myproject
lein figwheel
… wait for compilation to happen
Open browser on port http://localhost:3449
… and the REPL will connect to the browser
(js/alert “Hello”)
… and the alert dialog is raised inside the browser

If you then open the developer console in your browser and make an edit to any of the project’s ClojureScript files, you will see the modified code reloaded into the browser session allowing quick development turnaround.

The best talk of day was “my first unikernel with mirage os” by Matthew Grey. This was a hands on session based on the code in the speaker’s GitHub repository.  I’d been meaning to play with Mirage for some time, as it is a perfect match with some of my interests – operating systems written in functional languages [which I first read about when I spent a year working in industry before university where I spent some free time playing with LispKit lisp] and hypervisors. The idea is that you can take an application written in OCaml and produce a Unikernel from it. The Mirage team have made it possible to deliver a UniKernel, that runs on top of Xen, very easily from an OCaml application. The Mirage team have also implemented various utilities such as a TLS library and web server that your application can use. Matt Gray’s repository contains a vagrant script that can be used to get a Ubuntu development environment that is suitable for playing around with Mirage. Once you have this running inside VirtualBox, it is easy to get the various examples running.

The speaker gave a brief overview of Unikernels and then helped the audience to get going. There was another talk on Mirage in the afternoon, but I didn’t attend that.

What did I enjoy about DevWinter? The range of the talks, on all kinds of topics. Unlike the typical Microsoft event I go to, the talks cover a range of topics that are interesting and are aimed at what might happen in the future. I also very much enjoyed the developer experience talks. A very nice venue makes this a great way to spend a Saturday twice a year.

This entry was posted in Uncategorized. Bookmark the permalink.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s