Hackathon my way, part 2

Hackathon my way, part 2
Photo by Wai Yan Moe / Unsplash

From story to reality

In the last post, I described the background and scenario behind the hackathon. Now it is time to look at the final preparations and the actual hackathon itself.

Gamification

To make the hackathon truly my way I added a role playing element to it.

Characters

Every participant was assigned a character. The characters had names like The Besserwisser, The Pixel Peeper, and The Copy Paster

Each character had a set of stats. I did not really know what I was doing 😀. They were meant to be used in encounters with monsters and were loosely inspired by D&D. Unfortunately, I do not fully remember how they were used, and I probably did not have full control back then either, but they looked something like this:

Hack Ability: +1 (12)
Concentration: 0 (9)
Troubleshooting: +2 (14)

Initiative: +1
Protection: 11
HP: 8

Damage: 1d8 + 1

Monsters

I had also create monsters, that the characters would meet in some of the obstacles that they would meet. One of the monsters was of course Maynet, but there was also T-MX and T-Nano. The monsters had the same type of stats as the characters, but with lower HP and penalties on damage.

Obstacles

As mentioned, there were obstacles, some of them involving monsters, and all of them had real world consequences. Here are a few examples.

#1

Maynet has begun to take over parts of Google search. As a result, all searches makes it possible for Maynet to locate developers.

Do you try to hack it and set up a VPN tunnel where Maynet cannot detect you, or do you stop using Google Search entirely?

Succeed: You manage to get a VPN tunnel up and running and can continue to use Google search.

Fail: You fail to setup the VPN tunnel and Maynet's control over Google search increases. You can no longer use Google search anymore due to the risk of Maynet finding you.

#2

(Random person chosen by dice)

The computer's power adapter starts to smoke and make strange noises. It will soon catch fire.

Troubleshoot the power adapter.

Succeed: You manage to find the problem with the power adapter and can continue using it. However, not everything went well. Your backspace key has stopped working. (The participant cannot use the backspace key for the rest of the hackathon.)

Fail: You fail to locate the problem before it catches fire. All that remains is a pile of molten plastic. (The participant cannot use the power adapter for the rest of the hackathon).

#3

(Random person chosen by dice)

A red light starts pulsing from your mouse, and it quickly becomes hot. A few seconds after you pull your hand away, you see heat waves coming from it. The mouse starts to move and change its shape. It is not a mouse. It is a droid. A T-MX.

Combat the T-MX.

Win: You manage to neutralize the T-MX, and it folds back into a normal mouse.

Lose: The T-MX burns your hand and disappears at high speed. You are left with a sore hand and no mouse. (The participant cannot use that mouse for the rest of the hackathon).

Thinking outside the box

The idea behind the obstacles was to force the participants to think outside the box.

What do you do when your mouse is unusable? Get a new one?

If your power adapter is gone, what do you do? Try to share one with someone else?

This are just a few examples.

The task

The final thing I had to come up with was the task for the hackathon.

The task was to build a system to track rebels and droids. To prepare for this, I used some of my HAM radio logs, stripped out a lot of the data, kept the location information, and marked entries as either rebel or droid activity.

Here is the full task text in Swedish, followed by a quick ChatGPT translation.

Uppdrag

För att kunna följa sina medlemmar runt om i vÀrlden fÄr staberna in loggfiler pÄ kommunikationer medlemmarna har med varandra. Staberna fÄr Àven in loggfiler med droidaktiviteter. Med hjÀlp av dessa filer fÄr dom en överblick över medlemmarna och droiderna och kan varna medlemmar om droider Àr i nÀrheten.

I dagslĂ€get hanterar varje stab dessa loggfiler manuellt. Dom sitter och lĂ€ser igenom loggfilerna och försöker göra en koppling mellan medlemmar och droider. Dom vill dĂ€rför ha ett gemensamt system dĂ€r loggfilerna lĂ€ses in automatiskt och sen blir tillgĂ€ngliga föra alla staber. Staben du tillhör har fĂ„tt uppdraget att utveckla detta system.

Utöver inlÀsningen av loggfilerna vill dom minst ha följande funktionalitet:

  • Kunna se informationen som finns för varje medlem och vilken medlemmar som dom varit i kontakt med
  • Se vilka medlemmar som har droid aktiviteter i nĂ€rheten
  • Ha ovan information visualiserad pĂ„ en karta

Du kan bygga systemet  i vilket eller vilka programmeringssprĂ„k och ramverk du vill UTOM .NET(*#, VB.NET) eller React. Om behovet finns fĂ„r valfria molntjĂ€nster anvĂ€ndas UTOM Maynet kontrollerade (Azure).

Detta system Àr vitalt för Rebellerna och du spelar en viktig roll.

And a quick ChatGPT translation:

Mission

To be able to track their members around the world, the command centers receive log files containing communications between members. They also receive log files with droid activity. Using these files, the command centers get an overview of both members and droids and can warn members if droids are nearby.

At present, each command center handles these log files manually. They sit and read through the logs, trying to make connections between members and droids. They therefore want a shared system where the log files are ingested automatically and then made available to all command centers. The command center you belong to has been tasked with developing this system.

In addition to ingesting the log files, they want at least the following functionality:

  • View the information available for each member and which other members they have been in contact with
  • See which members have droid activity nearby
  • Have the above information visualized on a map

You may build the system using any programming language or framework you want EXCEPT .NET (C#, VB.NET) or React. If needed, any cloud services may be used EXCEPT those controlled by Maynet (Azure).

This system is vital to the Rebellion, and you play an important role.

The actual hackathon

The hackathon itself took place in early June 2022 and lasted for two days.

At the start of the first day, I went through the task and showed where the log files could be found. I also made sure everyone had received their character. I told them that taking on the role was optional and said nothing about what the stats were actually used for.

Everyone got started. Some paired up, while others chose to work solo.

After about an hour, I called for attention and introduced the first obstacle. Everyone rolled a die, 1d20, to see who would take it on. The person with the highest roll faced the obstacle.

The first obstacle was the one where Maynet began taking control of Google Search. The outcome was decided using a 1d8 damage roll, and the result was a failure. This meant Google Search could not be used for the remainder of the hackathon.

And so it continued. At random intervals, I introduced new obstacles for them to face. Some they won, and some they lost. In the end, they seemed to enjoy it.

At the end of the second day, everyone presented what they had built. Many had tried languages and frameworks they had never used before, and most seemed to enjoy the experience.

Aftermath

In the days following the hackathon, I received a lot of positive feedback from the participants. That feedback gave me the confidence to, in 2025, take the initiative to organize my second hackathon, which I will continue with in the next post.