The Gathering Technical blog

We are online!

02 Apr 2017, by Martin Karlsen from Tech:Net

The beacons are lit!

We are happy to report that the internet connection for TG17 is up and running.

Tech:Net decided to take the "pre-TG" preparations one step further this year by building our backbone network and installing our DHCP/DNS servers a week before schedule! This gives us the opportunity to tweak and polish all the nuts and bolts of our most critical infrastructure without being on site.

What does this mean for us? It means that we're able to deploy and provision our edge switches from day 1 without waiting for internet access or the DHCP/DNS-servers to be installed on the first day.

Pretty sweet!

core firewall

Stay tuned - we will post details about our network design later on..

Labels: Tech TG17

Invitation: Tech meetup at The Gathering 2017!

21 Mar 2017, by Kristian Lyngstøl from Tech:Net

Do you do Tech-stuff at a computer party? Any computer party? Then this is for you.

We are looking to put together an informal "Tech-meetup" during The Gathering 2017. The exact program is yet to be decided, the only thing we know is who we want there: Anyone who are part of a tech crew at a computer part or similar event.

This is the result of seeing just how many great people there are out there. And to be more open about what we do at The Gathering, or any other computer party.

The idea is simple: We meet up during the event. Most likely some time during Friday (daytime), but that's subject to change. We perhaps do a small presentation of TG tech crew with a twist of some sort, Q&A, and then open the floor to discussion about whatever. There's no super-hard agenda. We can talk about TCP checksum mechanics, DHCP lease times, cable termination, how to best store switches, what candy makes for the best NOC-candy, pros and cons of renting equipment versus buying it. Or just exchange "war stories".

Does this sound interesting? Then drop me a mail at and let me know. This isn't an application, just a "I want in! I've been setting up the network at this local party with 40 participants for the last few years and this would be fun!" thing.

I'm sure we should've put together a better sign-up process, but we're lazy.

Well, I'm lazy anyway. If my mail-box explodes due to this, we might have to rethink this.

From "our" side you can expect me and whoever I manage to kidnap. I know several people in the NOC have expressed an interest. We'll also obviously provide some sort of room.

Labels: Meetup, Tech TG17

A sign of life...

17 Mar 2017, by Marius Fylling from Core:Systems


This year, the Info:System has had some major changes. The structure of The Gathering has been changed, and in that process the Info:Systems crew has been renamed Core:Systems (read more about the change here, in Norwegian..). Oh, and another thing, no one from the old Info:Systems crew is participating this year. That means the entire Systems crew is new blood. Of course, this is not without some challenges.

Christian, aka lizter, has been so nice to help with the transition. He has been with the old Info:Systems crew for many years and has a lot of information and experience that we in Core:Systems really appreciate. Together with reading code, understanding documentation and sorting through config files, we have managed to somewhat get control over the potentially messy situation. I mean, everyone with some programming and/or IT-background knows it can be a messy thing to take over the work of a group of people.

We are pretty sure TG17 will be a really nice experience for all of us new bloods, and we really hope that the transition has not been too obvious. Well... Apart from closing down the forum. And did you notice the front page has SSL now? More on that later!

Labels: Blog, Systems TG17

Hello World 2.0

05 Apr 2015, by Tri Nguyen from

Welcome to the whole new Technical Blog by the crews behind The Gathering.

This is an unofficial rambling place and playground for the Info:Systems, Tech:Net and Tech:Server crews from The Gathering. The teams will share their thoughts, ideas and frustration from their work behind the scenes.

Read more about the new

The Drawing Board

Well, it is not all that new. Tech:Net was already running a blog over at posting their findings and thoughts on network design for The Gathering, and in general everything network.

We were midway in TG15 when the idea of having a joint collaboration between the three technical crews, for us to dribble down our thoughts, frustration and knowledge, got serious. Our chiefs were talking, and we were whispering. Suddenly it became true.

It all started out from scratch not using any old work. The drawing board was empty, and the backend was non-existing. The first lines were drawn and the first Python/Django code was written, nearly at the same pace. The design was converted into beautiful markup and stylesheets, connected to the backed and, here it is. A whole new blog!

Data Migration

The process on migrating from the former Wordpress blog to our new solutions started out as a headache. While wishing for one well structured document containing only the posts, we got a huge XML containing, well, every related element on the site.

The idea of only migrating the latest post was scrapped. If we were going to spend time on understanding the exported data format, we might as well transfer all of it.. A script was thrown together to withdraw all 130 posts and its related information, and structured to reflect the new data model. The content was converted to markdown, the images from each post was fetched by their inline url, and every image reference inside any post was updated to reflect the new paths. Old authors is kept from the Tech:Net blog.

A littled snippet from the data dump:

  <title>We are getting close.</title>
  <pubDate>Mon, 16 Mar 2009 21:41:11 +0000</pubDate>
  <guid isPermaLink="false"></guid>
   <img class="alignnone size-medium wp-image-5" title="ciscos" src="" alt="ciscos" width="300" height="225" />
    <![CDATA[ ]]>
  <wp:post_date>2009-03-16 22:41:11</wp:post_date>
  <wp:post_date_gmt>2009-03-16 21:41:11</wp:post_date_gmt>
  <category domain="category" nicename="status-updates">
    <![CDATA[ status updates ]]>

Was turned into:

    "fields": {
      "title": "TG15 wireless design - with Meru networks :)",
      "author": 1,
      "tags": [
      "created": "2015-03-28 09:09:09",
      "published": true,
      "text": "# **Simplifying and making WiFi less complex and ready to adopt the user needs ...

By using this little bash one-liner. The content was up running on the new page in seconds.

  find oldposts/ -name "*.json" -type f -print | awk '{ print $1"\ "$2 }' | xargs python loaddata
Labels: Blog

The new

05 Apr 2015, by Christian Strand Young from

Apart from the new graphical design, have you noticed any other changes to the website this year? Well, you are right. For The Gathering 2015, we decided to rewrite the entire site from scratch. The result is what you see on today.

The old website was based on CMSMS, a PHP-based content management system that for several years have shown its limitations in what we can do with the site. Last year, the decision was thus made to create a new site from scratch. The concept for the new site was finalized in late 2014 by Info:Content, Info:Graphics and Info:Systems. It was implemented during January and February this year, and launched on March 1st. The front-end, back-end and CMS functionality is built with much help from our beloved Django Web Framework. This allows us to customize the site to our hearts' desire for the content-producing crews, enabling them to do their job as smoothly as possible.

The site is built with Django 1.7.7 as the back-end, with a fine soup of HTML5 and some nifty Javascript and LESS libraries on the front-end side. Although we use a MySQL database as our data store, we don't see much of it —Django abstracts away the database as much as possible by giving us data access through an ORM. This means that instead of writing complicated queries in SQL, we can use code like this in our back-end logic to e.g. get all our articles:


How the stack works

So, let us move on the technical bits. At the bottom of the stack in the production environment is our Django application with all its Python code, such as models, views and templates. This is served locally on the server through a Gunicorn WSGI server. We then use Apache to ProxyPass to the Gunicorn app. On top of this we have a Varnish cache that caches almost every page on the website so that the end users experience fast loading times—even when the server has a lot of concurrent requests.


Using the Varnish cache means that when a user hits a warm cache when viewing e.g. an article, no database queries, Gunicorn or Apache requests will take up any resources; the response comes directly from Varnish without going through the underlying layers of the stack. When something on the site gets updated, we invalidate the cache. This means that the first user to request the page will hit a cold cache. Varnish then forwards the request to Apache which in turn forwards it to Gunicorn. The response is then again stored in Varnish, and the cache is warm again for users to browse the content swiftly. :)

We hope you are as happy as we are with the new solution! It is a joy for us to code with a framework as fully-featured as Django.

This was Info:Systems' first post on the brand-new The Gathering: Technical Blog. In Info:Systems we have a ton of other cool and/or quirky systems that we would like to tell you about, so stick around to hear more about the technology that makes TG tick!

TG15 wireless design - with Meru networks :)

28 Mar 2015, by Marius Hole from Tech:Net

Simplifying and making WiFi less complex and ready to adopt the user needs.

The image below is an example of how channel layers can be deployed to support high client density areas such as a open space like TG. For this we will use different ESSIDs, some deployed on multiple channels some may only be needed on one or two channels. The ESSID used for video broadcasting may be at just one channel. This channel is then "in the air" reserved for this purpose only. Do we need capacity it's all about adding in AP's and maybe using more channels for this ESSID.

This can in general actually for TG be handled by just one wireless controller, but for density and RF reasons we can spilt the channels and ESSID we need across multiple controllers also. We have also placed in a redundant controller ready if one of the master controllers should fail.

In addition we use the unique Airtime Fairness technology Meru provides by default.
Meru's Airtime Fairness governs Wi-Fi access so that every client gets the same amount of time, ensuring consistent performance for the users. With Meru Airtime Fairness(r), the speed of the network is not determined by the slowest traffic. By allocating time equally among clients, Airtime Fairness allows every transmission to move at its highest potential. At TG this is very useful since we will serve many wifi clients in same RF space ☺. So we will most likely use all the possible RF bandwidth, but dived equal to the clients based on air time.

Network Management:
For getting the option to monitor and follow the wireless network at TG we use Meru Network Manager
We can then track down clients, usage per AP/radio, controller and so on. This will give a good insight where to fine-tune and optimize the entire installation at TG.

Here is the latest revision of the wireless design, the different colors indicates different layers:

(we will make the final version in high quality format available after TG).

Here are some relevant links to Meru resources, if you are interested in wireless networking:



TG - Technical Blog is the unofficial rambling place of the Info:Systems, Tech:Net and Tech:Server crews from The Gathering.

Filter posts by crew

Related sites