Linux.Conf.Au 2010 Day One
Jan
2010
Got up bright and early and headed off to the first day of LCA 2010. First up, was the conference opening, which included a hilarious and entertaining introduction video, which introduced the conference, New Zealand, and Wellington.
After all the usual notices and information of the opening, we had morning tea, where there were some nice custard/fruit pies.
Next, I went to the Open Programming Languages miniconf. The first talk was about Haskell, “and all the things it doesn’t let you do”. It was an okay basic introduction to the language, but the speaker had too much information on his slides, which he skipped by a bit too fast (and which he didn’t read out either!). I hope that this brings more people to actually try out language, as in my opinion is one of the major very different languages that everyone should know.
After that, was the Gearman talk. Gearman is a distributed job system, which has tons of language bindings. It’s simply used for running a whole bunch of tasks, in parallel across a bunch of workers. There’s also a mysql module, which exposes an SQL interface to the whole system (which is totally crack)
There was an annoying power-cut during the Gearman talk, apparently they cut the power to try solve some audio interference issues on the video stream. Auxesis and I was quite angry at this, because they did it with no warning, cutting of the speaker mid-sentence. I’m sorry, but I paid a fair bit of money to be here, and I feel that the organisers should prioritise towards the people who are actually attending the conference in person. There was a related matter towards the end of the day, where a speaker couldn’t come to one of the sessions, so we ended up having a free-for-all discussion. One of the A/V guys came in bitching that we should be talking into the microphone, because the people on the stream were complaining. I’m sorry, but the people on the stream are not paying anything to watch the stream, and they are free to drop into the IRC channel and start their own conversation.
Next we moved up to the Distro Summit miniconf, and we watched the vcs-pkg talk, which was about how to standardise patch management across distributions. There is currently a problem in how to approach managing distribution-specific patches, as well as fixes which are waiting to be merged upstream, across multiple upstream branches and multiple distro branches, and multiple distros themselves. This project originated from Debian, but they’re very keen to work with other distributions to arrive at a common solution - to encourage different distributions to share features or fixes.
We went across the road the the Felix cafe to have lunch. I ate what was probably one of the most delicious burgers I’ve ever had, a Wagyu beef burger. We started talking about the problems of integrating language-specific package managers (Python Eggs, Ruby Gems, Lua Rocks, etc.) with distro package management systems (which is also what the up-coming talk at the Distro Summit miniconf was about).
The talk at the Distro Summit miniconf was from a Gobolinux developer, talking about how they approached integrating language-specific packages into their distro package manager. What they’ve done, is they write wrappers over the top of language-specific package managers, and defer dependency/version handling to them as well. So, you can have distribution packages which depend on language-specific packages, and they will be installed using their respective language-specific package manager. This apparently works really well, but there are issues with reverse dependencies (ie. how can ruby-gtk depend on gtk+?). This is a problem I’ve often thought about, but haven’t arrived at a good solution. I think it’s good that Gobolinux have taken an initiative to actually try a solution, which, while not perfect, gives us a focus point of discussion.
Moving back to the Open Programming Languages miniconf, the next talk there was An Intro to PyPy, which was an interesting overview of what the PyPy project is. It started out as a Python interpreter written in Python, but has since evolved into a very generic tool for converting a subset of Python (RPython) into lower-level code (C, CLR bytecode, JVM bytecode). PyPy allows you to separate the language implementation, from the back-end generators, from the “language feature” generators. The sort of language features you can just “plug in”, include JITs, GCs, and various threading implementations (STM, message passing, normal threading).
Then Rusty took the stage to give us a talk about his experiences with Talloc, and how it has affected the design of his code. He started off by emphasising, that if you’re not working close to the hardware, and you’re using C, then you’re probably using the wrong language. Talloc is a tree-based memory allocator. It allows you to allocate memory based off existing allocated pointers. By doing this, you’re organising all your “objects” in memory into a tree structure - which means you can easily clean up: freeing a parent will free all of its children. Additionally, to aid with cleanup you get the ability to hook up destructors to pointers. Rusty was explaining that the use of Talloc has changed the way that his code is structured, and it makes it easier to spot bugs earlier (ie. when two “objects” seem to depend on each other). The other cool thing is that you can generate a graph of all the “objects” in memory, which is very cool for visually spotting memory leaks.
After this, it was time for the lightning talks.
The first lightning talk introduced Mercury, which is a vaguely Haskellish, statically typed, function, pure language - but it uses a slightly different typing system so it’s not as monad-heavy. It’s also been out for around 15 years now, so has a fairly mature implementation.
The next interesting lightning talk was an introduction to the Disciple language and its DDC compiler, by Erik. It’s a language that’s a fork of Haskell, but has various extensions to the type system that fix some of Haskell’s type issues, as well as reducing the amount of monadic code you need to directly write. Erik highly recommends that people interested in this stuff read Ben Lippmeier’s thesis about this.
Someone got up and was talking about how compilers and programs these days have grown too big, and maybe we need to take a step back and cut out some of that approach by taking more radical approaches to our programming languages. The suggestion was to look more into concatenative languages, in particular Joy, but also including Forth, Cat and Factor.
Finally, Tim Ansell got up to announce that he and Richard Jones have been discussing about the possibility of hosting a PyCon in Sydney sometime this year. He put out a call for volunteers/interest, and it’s very early times at the moment, but I’m hoping this will go through. I volunteered to help out a bit with the organising committee, as well as the possibility of using Zookeepr (the system that powers the LCA website) for it as well. There was a PyCon held in NZ recently, and it apparently pulled in over a hundred people, so hopefully a Sydney one would be able to pull in even more.
blog comments powered by Disqus