A Perl 6-patterned hackathon

What we can learn when we accidentally a hackathon

Oslo.pm organized a Perl 6 Patterns hackathon a short while ago. I feel compelled to address some of the claims that have been made about this event, and hopefully set some records straight. The rumors have been going on for too long. Important issues need to be shed light on. We need more facts, and I hope that this journal entry can help.

Before the facts are served, I have to clarify which parts I played in the events during that fateful hackathon. It must admit I was present much of the event, maybe not fully in my fragile mind, but certainly in in the corporeal sense. I’ve done my best to manage the effects this event did to my psyche, so I hope these half-mad ramblings can serve as a fair heads-up or perhaps a cautionary guide for all who might choose to follow in the footsteps leading to and through the hackathon time-line.

Preparing for the inevitable

We were three who decided to make stuff happen. Jan (frettled), Karl Rune (krunen) and myself, Salve (sjn). We had only a vague idea of what we getting into, but luckily sense enough to spend some attention preparing for the event. Here follows the most important items on our list of pre-hackaton tasks. I choose to list these to give you an idea about our preparations, so others may learn from this. The points are listed in a rough chronological order.

  1. Pick a weekend and a venue. Meeting rooms and classrooms are especially well suited for hackathons, but make an effort at finding a venue that also has a space that is suited for quiet activities, and also isn’t too far away from food and drink.
  2. If you can pick a weekend just before or after a relevant conference, you can use this for your benefit. Conference organizers often appreciate when community members approach them offering to bring interesting people to their attention. They might even help you with the budget!
  3. Then approach a couple of the most prolific core members of a cabal of your choice, asking them if they would be interested in traveling to a distant country for some food, drink and hacking. Make sure to do this well in advance, at least six months, preferably 12.
    • If they seem interested, ask them for a list of people they would like to meet at the hackathon. After receiving a couple of these lists, tally them up to see who should be contacted next. If you ask for a ranked list, it’ll be easier to figure out who to talk with in the beginning. Also, remember to tell them what your intentions with the list is – to find out who to help with funding first. When they’re giving you their list, they’re in fact pointing at someone they would like to meet and saying “these are the guys I’d like to help come to the hackathon”.
    • Keep adding votes to your tally (having a spreadsheet to calculate this helps a lot), and keep on contacting the “most wanted” people, until you can see that your list stabilizes. At this point, you have a good idea about who you should make an extra effort for getting to the hackathon.
    • For bonus points, contact each of the people on the list (or at least a couple of the “most wanted” ones) and ask if there are anyone outside the cabal that they would consider inviting. This might include academics, active newcomers to the community, experts in some related but important field, or people they have some other good experience working with. Add these to the list, and try to get them to come too, if you can.
    • And most importantly, get commitments from the participants. They should be willing to publicly say “If you can manage to organize $event, I’ll come. In any case, I’ll put your $event in my calendar.”
  4. You should now have a list of core participants. Make a very preliminary budget. It should include expenses for travel and hotel for your most wanted participants, and perhaps some of the “bonus” people if possible. It helps to keep down expenses, if some of the participants don’t mind sleeping on a couch, it means you might afford buying air fare for someone who lives further away. Also remember to add the following points to your budget:
    • Venue expenses, if any.
    • Food expenses. Lunch for everyone every day; And if you can, dinner. Also remember plenty of 40cm rotary debuggers.
    • Snacks and fluids for the hackathon.
    • In-city travel expenses, if attendees have their lodging somewhere outside walking distance of the venue.
    • Travel expenses for those who come from far away. Include travel expenses from and to your local airport/train station.
    • Hotel expenses for those who prefer this. Pick a reasonably cheap hotel with easy travel to the venue. Don’t go super-cheap, since a good day of hacking requires a good night of sleep.
    • Add a small buffer for unexpected expenses. You can do this by liberally rounding up the other items in the budget, or by having a separate item for it.
  5. The next task is to find funding. Having a budget ready helps, but you also need a good idea about any issues that need to be addressed in the community. (For the Perl 6 hackathon, we tried to focus on issues around visibility, teaching and teachability.) Find some topic that your attendees “get” and agree with, but keep in mind that hackathons often have a life of their own. The theme or goal you find, should only be used a guide for the participants. The biggest value in a hackathon isn’t a good topic, but rather the fact that people who usually don’t meet in person get an opportunity to do so.
  6. Write a public web page that describes the hackathon, goals, who you’ve invited, and anything else useful (make sure to keep it up to date).
  7. Write a sponsor proposal describing the hackathon, it’s goals, who you have invited and who have confirmed. Send this to any companies, foundations or other institution that might want to help make this happen.
  8. At this stage, it helps a lot if you have access to a good community network (e.g. an active Perl Mongers group) where other members can take the sponsorship request to their bosses. Knowing who to contact helps, and already having a relationship with them helps much more.
  9. If you already have some funding (e.g. your Perl Mongers group has enough to help with an initial sum), then make sure to tell about it! Some people think about risk management, and like the idea that they’re not the only ones funding an event.
  10. Then, get people excited. Talk with the attendees about what you’ll do, about the social events, and about how nice it’ll be to have a weekend full of hacking and fun. Bring the best you can offer. Do they have good beer nearby? Tell about it. Great food? Cool places to visit? Tell about it, and ask your attendees to blog about their plans and expectations.
  11. Finally, make sure you have a clear idea about the necessary cut-off dates and deadlines. For final go/no-go, set the date at least 6 weeks before the hackathon. If you can’t find enough funding, or if there are some other reasons the hackathon has to be downscaled (or even canceled), make the decision as early as sensible, and certainly no later than the final go/no-go date. Also, if there is a risk of a change of plans, make sure to tell the attendees about this possibility as early as you can. Other deadlines you might consider:
    • When can the attendees book the cheapest flights? Set a signup deadline 1-2 weeks before this (take holidays and weekends into account).
    • When does the venue or hotel add cancellation fees? Set your sign-up or pre-pay deadlines accordingly, giving yourself one or two weeks for handling late signup or cancellations.
    • When should you announce the different deadlines? Preferably a week or three before the deadline itself. Announcement deadlines are deadlines too!
  12. Much of the preparations involve talking with people, making sure everyone knows what’s going on, and finding the right people and enough funding. Do your best to find help for this; especially if the hackathon is organized in your spare time. If you can’t find help, consider scaling down your ambitions, but beware that this might make the hackathon less appealing for both sponsors and attendees.
  13. If you have managed to find a good theme for your hackathon, you might also consider preparing some activities related to it. A workshop, a demonstration or something else to get the attendees interested or excited about the theme. But don’t spend too much time preparing. Schedule it early in the hackathon, and try to make the attendees care about your issues in a positive way. If you do your job well, they’ll take your examples and points into account when they do their other tasks during the weekend. But in any case, treat these events as a “bonus” – Nice to have, but not necessary for creating a successful event.

What happened

We started off our pre-hackathon schedule with three days of courses with Damian Conway as the instructor. Thursday evening, Damian gave his awe-inspiring lecture about Quaquaversal Nanomachine Programming in Multiple topologically connected timespaces, and by then the first attendees were already in Oslo in order to see the talk and to start the hacking early. We ended Thursday evening with a few beers at the Schouskjelleren microbrewery. We were quite pleased that even a couple “regular” Oslo.pm people showed up, and not just the die-hard Perl 6 fans.

Friday, we managed to find the early-comers a meeting room so they could dive into their weekend tasks. By dinner time most of the attendees had arrived, and we met up at Amundsen Bryggeri & Spiseri for a nice three-course and socializing to formally start off the hackathon.

And to top it off, several had by this time already blogged about their expectations for the event.

Saturday started showing the first signs of something being not as it should. Salve overslept, and since he was the only one with access to the building, everyone had to wait for him to get to the venue and let them in.

Somehow this didn’t deter the hacking, and several of the attendees blogged later about what they spent their time on. Karl Rune and Jan organized lunch and we had tasty pizza for dinner later in the evening. The day ended late, but not before a few more managed to blog about what happened.

Sunday, Salve managed to get up early, so everyone managed to dive into the code without delay. Lunch was nice, and dinner at a cheap Viet restaurant Salve was fond of, and the evening was rounded off at the Schouskjelleren microbrewery with good discussions and tasty brews.

Monday, everyone was already home or at least on their way.

Post scriptum

So, what went wrong? What could improve?

Our biggest loss was that Damian became sick and wasn’t present for most of the event. A major reason for organizing the hackathon at all was because Damian was in town, and we thought it would be great to gather some of the #perl6 regulars while he was on this side of the planet. There’s not much one can do about things like these, but I do have to admit organizing all this seemed a little wasteful when the “guest of honor” had to stay at the hotel to sleep off a cold.

Furthermore, we didn’t spend much time on topics related to the hackathon theme. The hope was to discuss and come up with novel ways of teaching Perl 6, but with Damian out of the loop, no-one pressed to make anything happen in this regard. Too bad.

The lunch was nice, but not everyone seemed prepared to make their own sandwiches. Maybe it’s worth trying catering next time? (Personally I loved the food, but then again I’m used to having lunches like this.)

Other than that, things went reasonably well. 13 people signed up and 14 showed up. We kept our expenses down, meaning we could cover dinner all three days and even a little beer with the food. Everyone but two people have been reimbursed for their expenses, and the last ones have been thoroughly reminded of this. :)

I think it’s safe to say that despite our setbacks, the hackathon went pretty well. Code was written, we had a good time, Perl 6 newbies learned new things and Perl 6 hackers got to meet face-to-face and discuss. Happy times!

Finally, I’d like to thank the sponsors of the hackathon. Without their help, this event would not be much less successful.

  • NUUG Foundation
  • Oslo Perl Mongers
  • Jan Ingvoldstad

Thank you!

Coding Dojos at the Perl 6 Patterns Hackathon!

Oslo Coding Dojo has jumped at the chance to connect with the Oslo Perl community. They will be present at the hackathon this coming weekend to arrange dojos and spread the word of kata and dojo goodness. Joy and happiness! :)

What can participants expect?

  • Learn about what coding dojos and katas are all about
  • Practice TDD and pair programming in a Perl 6 context
  • Experience true collaborative programming
  • Have fun!

Good programming requires good practice, and at a dojo we get to learn together and practice the good stuff while having fun. We learn by doing (actual practice), from repetition (what can we do better?) and from the conversations (from one another and looking back after we’re done).

Learn a new way to teach Perl 6 and good programming practices!

What are coding dojos?

Dojos are a place to practice. Coding dojos are groups of programmers getting together to practice their craft. The concept of a dojo stems from Andy Hunt’s coding kata article, which reminds us to take time off to get at what we do. For more information about dojos, see

…or just join us at the Perl 6 Patterns Hackathon! (Remember to sign up!)

The first session will last for about an hour, including a short introduction to get us started. Further sessions will last an hour or as long as the participants want to. We’ll aim to spend the first session on getting to know the tools and the format, and then use the subsequent ones to improve on this.

Hope to see you there! :)

- Geir Amdal
- Salve J. Nilsen

Oslo Perl Mongers in 2012

  1. Do something Cool
  2. Tell about it

So, what cool stuff is Oslo Perl Mongers planning to do in 2012?

In February, we’ll visit Telenor – Norway’s largest telecom company, to learn how they’re using Perl to manage half a million routers in Telenor’s network. We’ll also have our general assembly, so this it’s a great time to show give a hand.

In April, Damian Conway will visit us again! He’ll be teaching a couple of his courses, give a presentation for us, and attend the Go Open 2012 conference.

While Damian’s in town we’ll also organize a Perl 6 Hackathon in the Redpill Linpro offices. Invitations have been sent to several core members of the Perl 6 community, and we’re looking for sponsors who would like to help some of them coming to Oslo. (If you haven’t heard from me, check in with sjn on #perl6, and we’ll see what we can do!)

Preikestolen (The Pulpit)

Preikestolen (The Pulpit)

In August, we’ll take a trip to YAPC::EU in Frankfurt am Main, Germany.

Right after YAPC::EU, we’ll fly directly from Frankfurt to Stavanger for a 5 day Moving to Moose hackathon near Lysefjorden, including a trip to Preikestolen (“The Pulpit”). Some details are still pending, but if you’re interested in working on moving Perl 5 to Moose, or move some useful CPAN modules to Moose, then this event may be something for you. On another note – we need sponsors! If your company uses Moose, please consider helping with funding for this hackathon!

In October, we’ll have our 10th anniversary! No plans yet, but we know the date is October 16th.

Now I have to remind myself (and you) that these are plans, and subject to change. But at least you can get a picture of what we’d like to do. If you want to join in, you know where to find Oslo.pm! :D

An Oslo.pm retrospective

2012 is the year Oslo Perl Mongers turns 10 years, and as any other anniversary, it’s a good time for taking a look at the road that got us here.

One thing worth keeping in mind is that Oslo.pm has always been a small group of die-hards, impervious to the changing trends of programming languages. Stubborn geeks that insist there’s a future within the Perl community, and try to “make stuff happen” despite countless reasons to do something cooler, more important or more fun. This has shaped much of what we’ve managed to do and what we haven’t done.

In the last nine-and-a-half years, we managed to meet up the first Wednesday (or Tuesday) of almost every month. Usually this has involved beer, often there’s been discussions about computer nerdy stuff, and sometimes there’s been a presentation or a conference or a trip to YAPC (Yet Another Perl Conference). I think it’s safe to claim that we’ve managed to build a good community for everyone who enjoys learning new stuff in a social setting.

But looking back at this, I have to admit there must have been some kind of brain damage or madness that must have kept those Oslo.pm die-hards going. Either that, or some hidden unknown secret that no-one knew about kept them going despite dwindling usage stats, despite quips from the kids that decided Python or Ruby was “TEH BEST EVAR!!1!”, and despite the unwholesome baggage from the 90′s and early 00′s (Matt’s Script Archive being the dirty example worth mentioning first.) Add “real life” to this, and it becomes obvious that Making Stuff Happen often can be very difficult. So, what kept those old crooks going? Was there a hidden unknown secret that no-one knew about, or had they just lost their marbles?

Before getting into that, it may be useful to take a closer look at what happened in Oslo.pm last year. 2011 was a year that brought many good things.

2011 highlights

In March, we took part in the Communities in Action event in Oslo. The event concept was simple – Gather a bunch of meetup groups, and let them organize their regular meeting at the same venue. More than 500 people dropped by to check out the different meetings, and I’m quite happy to say that Oslo.pm got to be part of one of the cooler ones – a Code Kata where we got to see four people implement Minesweeper in Ruby, Java, Javascript and Perl 6. Carl Mäsak had come to help us with it, and it was truly an enjoyment to see him show off the cool stuff Rakudo could do. And when Carl started saying “I think we can make this code a bit shorter” and then time and time again show off idiomatic Perl 6… I loved it, and so did the rest of the crowd. :)

We

In June, Karl Rune, Karl and Salve went on a Perl cruise. We sailed from Oslo to the Nordic Perl Workshop in Malmö, Sweden. In three days we experienced most of the things that make sailing fun – quiet night time sailing; several hours of high-speed sailing with a strong breeze from the side; relaxing in the sunshine while sailing through the Swedish skärgård; rough puke-inducing seas between Malmö and Copenhagen. We had a great time, with great food, great sailing and great discussions. Also thanks to Copenhagen Perl Mongers for setting up an emergency social meetup just for us! :D

In August we got a visit from Damian Conway. We’ve tried to get him to visit Norway for many years, but when he suddenly found time we jumped right into action. He gave his wonderful talk about Fun with Dead Languages, exposing a whole new crowd of students and hackers to the “Mad Professor” of Perl.

Damian also held two of his courses for people in the Oslo Perl community. He told us about Modern Perls and of Perl Best Practices, and we managed to sell more than 40 seats to the two courses. Out of this, Oslo.pm got wonderful feedback, a bunch of new Perl programmers in the community, and 25% of the profits. I think we can comfortably claim the event was a success.

If you

Right afterwards, several of us went to YAPC::EU in Riga, and were blown away by the venue, the tracks and the smooth organization. In Riga, we also managed to reach a huge milestone in the life of Oslo Perl Mongers – for the first time, Oslo.pm could donate a significant sum of money, and this time we gave €1000 to the Perl Foundation. That’s a pretty hefty sum for a tiny outfit like Oslo.pm. :)

Oslo.pm social meetup, after JavaZone

In September, Oslo Perl Mongers had a stand at the CommunityZone booth at JavaZone 2011. We gave away some of the marketing material that Mark Keating made (he even updated it in a hurry just for us!), and just hanged out talking with the Java crowd about the merits of Perl, Ruby, Scala, Clojure and much else. We also got some good exposure to the other socio-topical (meetup) groups in Oslo, and showed that even if we’re one of the smaller ones we can get things done. After JavaZone, we had our regular monthly meeting.

In October, we visited Opera Software and got a good discussion about the merits of and difficulties with Mojolicious, a look at Bron Gondwana’s cunning module for streaming tar files. Afterwards, we started brainstorming Oslo.pm’s main event for 2012. More on this in a later blogpost. :)

In November, we visited Startsiden, where Andreas Marienborg gave us a nice introduction to their (quite impressive) application build system. They have something really cool going on there, and I hope they manage to release it under an Open Source license sometime soon.

In December, we got the oslo.pm domain, when the .pm top-level domain was opened by AFNIC. Currently the domain just redirects to our main site. Maybe we’ll do something more later. We also had a very enjoyable Christmas dinner together with the Oslo Linux User Group – something definitely worth repeating next year.

Other activities in 2011

In June, we had an extraordinary yearly meeting, were Martin Tostrup Setek came in to replace Kirill Miazine, and Karl Rune Nilsen stepped up to join the board again.

Otherwise, we spent a lot of time at the Schouskjelleren microbrewery, enjoying their wonderful beers. Good times! :)

What secret?

I’m quite pleased with the stuff we did in 2011. But there was quite a bit of work behind it all; and when this happened during off hours and on a volunteer basis, then motivation (or brain damage, or hidden unknown secrets that no-one knows about, as the case may be) becomes an issue. How we got this far is still difficult for me to grok, but if you really want to know, I think we can figure this out over a couple of beers. You’re buying! ;-)

But if you’re reading this while you’re organizing your own Perl Mongers group, or want to organize something completely different, then I hope you can make use of Oslo.pm’s current “secret plan”:

  1. Do something cool
  2. Tell about it

And that’s it. That’s what we tried to do in 2011, and that’s what  we’ll aim for in 2012. Stick around for my next post about Oslo Perl Monger’s plans for our 10th year alive – and I think it will be the best one ever! :D