Talks for 2008
I’ve given a few talks so far this year, which I’ve been kinda slack about and haven’t put up any slides for yet. So, if you’re one of the zero people who’ve been eagerly awaiting my incredibly astute and sexy opinions, I guess today’s your lucky day, punk!
Earlier this year, on January 2, 2008, Earth Time, I gave a talk at Kiwi Foo Camp in New Zealand, also known as Baa Camp. (Harhar, foo, baa, get it?) The talk was titled “Towards the Massive Media Matrix”, with the MMM in the title being a pun on the whole WWW three-letter acronym thing. (Credit for the MMM acronym should go to Silvia Pfeiffer and Conrad Parker, who phrased the term about eight years ago :). The talk was about the importance of free and open standards on the Web, what’s wrong with the current status quo about Web video basically being Flash video, and the complications involved in trying to find a solution that satisfies everyone. I’m happy to announce that the slides for the talk are now available for download; you can also grab the details off my talks page.
A bit later this year in March, Manuel Chakravarty and I were invited to the fp-syd functional programming user group in Sydney, to give a talk about… monads! As in, that scary Haskell thing. We understand that writing a monad tutorial seems to be a rite of passage for all Haskell programmers and was thus stereotypical of the “Haskell guys” in the group to give a talk about, but the talk seemed to be well-received.
Manuel gave a general introduction to monads: what they are, how to use them, and why they’re actually a good thing rather than simply another hoop you have to jump through if you just want to do some simple I/O in Haskell. I focused on a practical use case of monads that didn’t involve I/O (OMG!), giving a walkthrough on how to use Haskell’s excellent Parsec library to perform parsing tasks, and why you’d want to use it instead of writing a recursive descent parser yourself, or resort to the insanity of using lex and yacc. I was flattered to find out that after my talk, Ben Leppmeier rewrote the parser for DDC (the Disciplined Disciple Compiler) to use Parsec, rather than his old system of Alex and Happy (Haskell’s equivalents of lex and yacc). So, I guess I managed to make a good impression with at least one of our audience members, which gave me a nice warm fuzzy feeling.
You can find both Manuel’s and my slides online at the Google Groups files page for fp-syd, or you can download the slides directly from my own site. Enjoy.
Finally, during my three-week journey to the USA last month in June, I somehow got roped into giving a talk at Galois Inc. in Portland, about pretty much whatever I wanted. Since the audience was, once again, a Haskell and functional programming crowd, I of course chose to give a talk about an object-oriented language instead: Objective-C, the lingua franca of Mac OS X development.
If you’re a programming language geek and don’t know much about Objective-C, the talk should hopefully interest you. Objective-C is a very practical programming language that has a number of interesting features from a language point of view, such as opt-in garbage collection, and a hybrid of a dynamically typed runtime system with static type checking. If you’re a Mac OS X developer, there’s some stuff there about the internals of the Objective-C object and runtime system, and a few slides about higher-order messaging, which brings much of the expressive power of higher-order functions in other programming languages to Objective-C. Of course, if you’re a Mac OS X developer and a programming language geek, well, this should be right up your alley :). Once again, you can download the slides directly, or off my talks page.
Erlang and Concurrency
Here, you can download the slides for a talk I presented to the Sydney Linux Users’ Group on the 28th of July 2006, named “Erlang and Concurrency”. Note that the PDF file I’ve linked to here is quite large, since there’s a lot of images in there.
Download: Adobe Acrobat PDF (~7MB)
Some things to note about the presentation:
- There were two short videos presented: a tech demo of the Unreal Engine 3, and snippets from the totally groovy Erlang the Movie, which has also been transcoded to the Ogg Theora video format thanks to Silvia Pfeiffer. These movies didn’t make it to the PDF intact.
- I’m very proud that there wasn’t a single slide there with bullet points :).
There’s an excellent blog by Garr Reynolds named Presentation Zen that led me to doing it in the style that I did. In particular, check out the Steve Jobs vs Bill Gates comparison that Reynolds did; no prizes for guessing who Reynolds prefers as a presenter.
There’s a number of resources you can check out on Erlang:
- The unofficial and official Erlang Web sites.
- An Erlang tutorial.
- Another Erlang tutorial.
- How to interpret Erlang crash dumps.
- Writing Low-Pain Massively Scalable Multiplayer Servers, by Joel Reymont.
- Haskell vs Erlang, and Haskell vs Erlang Reloaded.
- An introduction to Erlang on informit.com.
- A Slashdot article about moving toward distributed computing.
- trapexit.org, an online Erlang community site.
- The documentation for Mnesia, Erlang’s awesome distributed, soft-real-time database.
- Joel Reymont on his dream language being a combination of Erlang and Ocaml.
Update: I found another Erlang tutorial named Erlang in Real Time. There’s also a good Erlang FAQ.
Update: Jay Nelson also has some great material on his Erlang web site, including some presentations at ICFP.
Controlled Chaos: Linux in the Visual Effects Industry
“Controlled Chaos: Linux in the Visual Effects Industry” was a talk I presented at the Linux.conf.au 2006 Digital Arts miniconf, with Anthony Menasse of Rising Sun Pictures. We discuss using Linux in the VFX industry, of course, but also talk about problems encountered in VFX in general (e.g. mammoth data storage requirements), and how we manage the day-to-day technical issues that crop up. The slides are now available online, for those interested!
Download: Adobe Acrobat PDF
Beyond C, C++, Perl and Python
Abstract
As a Linux user or developer, you probably know a few programming and scripting languages: shell scripting, Perl perhaps, Python, C or C++, and maybe Java or XSLT. Once you’ve learnt one systems language or one scripting language, you’ve learnt them all, right? Especially because of that “Turing-complete” thing …
In this talk, I’ll explore the research and developments that have happened outside of mainstream programming languages in the past decade, in languages such as Objective-C, Haskell, O’Caml, and Nemerle. The scope of the talk is broad: I’ll touch on many topics, such as meta-programming, generics, type systems, and proof-carrying code, without going too in-depth into any of them. (Believe me, you don’t want to hear me talk for seventeen hours about type systems.) Most of the topics covered (such as meta-programming) are not language-specific, and can be directly applied to your own work, increasing your own programming expertise and repertoire of techniques.
Download
Slides: Adobe Acrobat PDF
Chiba
Chiba is a markup language I’m currently working on, which is inspired by many other markup languages, including the syntax used by HTML, SDF, POD, lout, AFT, APT, Wiki, DocBook, and of course, LaTeX. It’s written in Haskell.
It’s nowhere near finished (and don’t hold your breath), but the framework is currently there. Some very simple functions have been written, so it’s currently possible to convert a Chiba DOM to HTML markup.
Here, you can find all the source code for my presentation in the chiba-20020603.tar.gz file, or you can browse the contents of the tarball . The actual presentation can be downloaded in two formats:
Hicki
Hicki was the working name for my thesis project, which is a case study of writing a WikiEngine in Haskell, before I decided to change thesis topics.
Here are the slides and handouts which I used in my Thesis Part A presentation (22/10/02), if you’re interested:
- Slides: hicki.ps
- One-page summary in Acrobat or PostScript format.
- A tarball with all the files. You can also browse the directory with all the files; all the original LaTeX files are there too.
zsh
What’s zsh?
This is a talk I gave on zsh (the Z shell) at SLUG, the Sydney Linux Users’ Group. You can find more information on this great shell on the zsh homepage, which is at (drumroll) www.zsh.org . Briefly, zsh combines all of the (in)famous interactive power of tcsh and bash’s standard Bourne shell syntax, with its own most utterly crazy and useful word completion, globbing, redirection, and editing features. Once you start using it, everything else seems annoyingly … useless.
You can find a copy of my current zsh configuration files at
My zsh presentation
Feel free to take a peek at the slides that I used for my presentation, in html or MagicPoint format.
Other zsh tutorials and advocacy documents I used for my talk include:
- Paul Falstad and Bas de Bakker’s “An Introduction to the Z shell” (intro.ps). This is also on the zsh homepage.
- The FEATURES document that comes with zsh (taken from 4.0.1prerelease). This is actually a superb quick reference to all of the useful features in the Z shell.
However, you really want to drop by www.zsh.org and see the documentation, FAQs and scripts there.