Revenge of the Oslo hackathon
A month of blog silence. Ouch. Looking back, the three reasons I can see for my absence from blogging are work, work, and work.
So I saw moritz, jnthn, and pmichaud blog about the weekend, and I must've been too shell-shocked to think to do the same. sjn++ woke me up from my reverie by asking me outright.
So, here goes.
Oslo. We had a hackathon there.
This is the second time. The first time was in 2009, and was quite possible the best hackathon ever, in the history of Perl 6 hackathons. (Or, let's say, certainly among the top 5.)
I haven't fully processed this one, but it's not too early to say this: this one beat the last one.
My weekend, in brief:
jnthn and I arrived Oslo on the Thursday, and watched Damian Conway giving an awesome presentation in a bar. No-one combines geek jokes, almost-accurate physics, and Perl programming like Damian.
On the Saturday, I spent about an hour introducing a group of newcomers to Perl 6, language and culture. Fun!
infosophy++ (Geir Amdal) liked my tote script so much that he did something I never got around to doing: he published it as a module. As part of this, he added back a bunch of IO methods that got lost in the ng→nom transition, and also added spectests for them. As part of this, he became the 100th developer in the perl6 organization.
sergot++ (Filip Sergot) and I built a presentation framework. It's called Sambal, and it turns a DSL into a PDF. I'm happy and proud of how far we managed to get with only two days of work.
sergot++ and I also spit out a
Text::Markdown
module. It's in early stages yet, but it already services Sambal in its slide generation. It's an easy addition to have its objects model serialize to HTML, too.I asked whether
BEGIN
should trigger immediately inside aquasi
, or whether it should trigger only after macro application. People around the hackathon table suggested that we should have aQBEGIN
that did the latter. I felt it was a singularly bad idea, so I asked TimToady. He suggested the same. I exploded. Then I decided not to listen to anyone, and just implement it in the way that turned out to be natural and convenient. pmichaud joked that he should have adopted that approach long ago with respect to implementing Perl 6.(But seriously. If you want to execute a BEGIN block at macro-parse time, put it outside of the quasi. If you want to execute it at macro-apply time, put it inside of it. We don't need a Q*bert
BEGIN
.)We discussed what
s///
should evaluate to. No real consensus.:-(
On the Sunday, we tried a coding dojo (hosted by infosophy++), implementing a roman numerals
Int -> Str
converter in Perl 6. It led to interesting discussions, and many of us had useful insights in collaborative coding and small-step iterative development.frettled++ took some nice pictures.
jnthn++ and pmichaud++ evolved a plan for the new QAST redesign, which will enable the next step in the macros grant. jnthn++ invited me to write some tests on this for great success. It looks doable; I'll dig into this during the next week. As I do this, I can also write tests for my new
QAST::Unquasi
node type.
If Oslo.pm ever hosts a third hackathon, my expectations will found be in geostationary orbit. No chance in the world I'd miss it.