Wednesday

Reception area — Registration
Dragefjellet — Welcome from the organizers
Downstairs — Coffee break
Restaurant — Lunch
Galgebakken
Tårnplass
Dragefjellet
Expand your horizons and learn to make games on a Commodore 64
Ricki Sickenger and John Christian Lønningdal

A lot of programming nowadays has been reduced to Jira tasks, predictable processes, and high-level languages. Let’s step away from that and have some low-level fun with one of the most iconic computers ever made!

In this workshop we will teach you how to get started with game programming on the Commodore 64. This machine was released in 1982 and was one of the most popular home computers of the 1980's.

But why would you want to do anything on 38-year-old hardware? Because it is easy to get started and is super fun! Plus, you get to reap the rewards of decades of hacking on this machine. Kids from the 80s that are now grown-ups, and also new generations of youngsters have been finding new tricks and cool features since it was introduced. And since the advent of the internet, they have been documenting everything on the internet. The Commodore 64 still has a vibrant developer community to this day, with games still being released!

We won't be programming on an actual C64, but rather on modern hardware, with a modern editor with a cross compiler and an emulator with debugging capabilities. This turns the process into a fun adventure, where we learn what assembly is and how to manipulate the old hardware with it.

The goal of this workshop is to learn how to get started making games on a Commodore 64 in assembly. You will also learn what a cross-compiler does, how the hardware works, and how fun it is to try something completely new(old!) 

 

Ricki Sickenger is a former professional game developer with 10 years experience, now working as an IT consultant and hobby game developer.

John Christian Lønningdal has released several C64 games in recent years, but his day job is working as an IT consultant.

They both love retro games and the Commodore 64!

 

Welcome to the retro programming workshop!

Dragefjellet
Muséplass
Teatergaten
Strangehagen
Sydneshaugen
Learn Go by building microservices
Ricco Førgaard and Eirik Årdal

Ten years after Go was officially announced, the language is still gaining traction. Its popularity has increased steadily the past few years after more and more cloud products such as Docker and Kubernetes, and big-scale companies such as Uber, Netflix, Dropbox and Twitter has gone all-in on Go and enjoying the ride.

This workshop will focus on learning the language, its syntax and its weirdness (in a good way), while making a few microservices that communicate with each other over gRPC and HTTP. Learning by doing in other words. We'll move fast and assume you know other programming languages and are able to connect the dots based on your already excellent knowledge and awesome programming skills. Go is a famously easy language to learn due to its extreme pragmatism and we'll put that to the test here.

Things you'll learn:


* How Go differs from other object oriented C-like languages like Java, C#, Python and JavaScript
* Language syntax that are different from other languages
* Communicate between Go applications using HTTP/REST and gRPC
* Running multiple Go applications in Docker and Docker Compose

Things we won't cover:


* What an if-else statement is
* Foo and Bars
* Deploy things to a cloud (AWS, Azure, GCP) - we'll run everything in Docker on your computer
* What the commandline is and how to turn your text green

How to come prepared:


* Install Go (and ensure "go" is on your path). If you already have Go installed, check for updates
* Install Docker (and ensure "docker" and "docker-compose" is on your path). If you already have Docker installed, check for updates
* Bring your laptop
* Bring your laptop charger
* Have a GitHub account (and Git installed on your computer)
* Bring an IDE that understands Go. The best free alternative is Visual Studio Code with a plugin. The best-best alternative is GoLand from JetBrains. IntelliJ also have a Go plugin that gives a GoLand-like experience.
* Double-check that laptop charger

 

Sydneshaugen
Hødden
Downstairs — Coffee break
Galgebakken
Tårnplass
Dragefjellet
Expand your horizons and learn to make games on a Commodore 64
Ricki Sickenger and John Christian Lønningdal

A lot of programming nowadays has been reduced to Jira tasks, predictable processes, and high-level languages. Let’s step away from that and have some low-level fun with one of the most iconic computers ever made!

In this workshop we will teach you how to get started with game programming on the Commodore 64. This machine was released in 1982 and was one of the most popular home computers of the 1980's.

But why would you want to do anything on 38-year-old hardware? Because it is easy to get started and is super fun! Plus, you get to reap the rewards of decades of hacking on this machine. Kids from the 80s that are now grown-ups, and also new generations of youngsters have been finding new tricks and cool features since it was introduced. And since the advent of the internet, they have been documenting everything on the internet. The Commodore 64 still has a vibrant developer community to this day, with games still being released!

We won't be programming on an actual C64, but rather on modern hardware, with a modern editor with a cross compiler and an emulator with debugging capabilities. This turns the process into a fun adventure, where we learn what assembly is and how to manipulate the old hardware with it.

The goal of this workshop is to learn how to get started making games on a Commodore 64 in assembly. You will also learn what a cross-compiler does, how the hardware works, and how fun it is to try something completely new(old!) 

 

Ricki Sickenger is a former professional game developer with 10 years experience, now working as an IT consultant and hobby game developer.

John Christian Lønningdal has released several C64 games in recent years, but his day job is working as an IT consultant.

They both love retro games and the Commodore 64!

 

Welcome to the retro programming workshop!

Dragefjellet
Muséplass
Teatergaten
Strangehagen
Sydneshaugen
Learn Go by building microservices
Ricco Førgaard and Eirik Årdal

Ten years after Go was officially announced, the language is still gaining traction. Its popularity has increased steadily the past few years after more and more cloud products such as Docker and Kubernetes, and big-scale companies such as Uber, Netflix, Dropbox and Twitter has gone all-in on Go and enjoying the ride.

This workshop will focus on learning the language, its syntax and its weirdness (in a good way), while making a few microservices that communicate with each other over gRPC and HTTP. Learning by doing in other words. We'll move fast and assume you know other programming languages and are able to connect the dots based on your already excellent knowledge and awesome programming skills. Go is a famously easy language to learn due to its extreme pragmatism and we'll put that to the test here.

Things you'll learn:


* How Go differs from other object oriented C-like languages like Java, C#, Python and JavaScript
* Language syntax that are different from other languages
* Communicate between Go applications using HTTP/REST and gRPC
* Running multiple Go applications in Docker and Docker Compose

Things we won't cover:


* What an if-else statement is
* Foo and Bars
* Deploy things to a cloud (AWS, Azure, GCP) - we'll run everything in Docker on your computer
* What the commandline is and how to turn your text green

How to come prepared:


* Install Go (and ensure "go" is on your path). If you already have Go installed, check for updates
* Install Docker (and ensure "docker" and "docker-compose" is on your path). If you already have Docker installed, check for updates
* Bring your laptop
* Bring your laptop charger
* Have a GitHub account (and Git installed on your computer)
* Bring an IDE that understands Go. The best free alternative is Visual Studio Code with a plugin. The best-best alternative is GoLand from JetBrains. IntelliJ also have a Go plugin that gives a GoLand-like experience.
* Double-check that laptop charger

 

Sydneshaugen
Hødden
Grand Selskapslokaler(map ) — Conference dinner

Thursday

Reception area — Registration
Galgebakken
VALUE - Implementing continuous change, learning and adapting to produce measurable results
Richard Cornelius and John Le Drew

Overview

A transformation or change to a team, department or organisation, doesn’t have to be based on a traditional framework. In fact, every organisation will have a different context based around existing culture and the value proposition, so why should we state that a few frameworks or a term such as Agile can fit every scenario.

There is value in agility, there are benefits to frameworks. Change most definitely needs to be controlled, but when you are dealing existing processes, the layers of organisational culture and people in general, ideas which sound good now can have unintended consequences and more importantly ideas not considered initially are often the ones that enable the team, department or organisation to stand out above the rest.

During this workshop we will be using a structured approach to allow attendees to:

  • Learn a structure on how to control change
  • Limit risk whilst also having the ability to take advantage of unseen opportunities.
  • Become part of a fictional company and experience this structure and change occurring
  • Understand some of the participants own organisational issues, enabling quality conversations and structure outside of the workshop and back in the attendee’s own team, department or organisation

Audience

This workshop is designed so that you will be looking from your own sphere of influence and as such whether you’re a corporate CEO or just starting a career you should leave with additional confidence in implementing change relevant to yourself.

All you need, is a desire to make a positive change to the world around you.

 

Galgebakken
Tårnplass
Dragefjellet
Muséplass
Teatergaten
Strangehagen
Hødden
Downstairs — Coffee break
Galgebakken
VALUE - Implementing continuous change, learning and adapting to produce measurable results
Richard Cornelius and John Le Drew

Overview

A transformation or change to a team, department or organisation, doesn’t have to be based on a traditional framework. In fact, every organisation will have a different context based around existing culture and the value proposition, so why should we state that a few frameworks or a term such as Agile can fit every scenario.

There is value in agility, there are benefits to frameworks. Change most definitely needs to be controlled, but when you are dealing existing processes, the layers of organisational culture and people in general, ideas which sound good now can have unintended consequences and more importantly ideas not considered initially are often the ones that enable the team, department or organisation to stand out above the rest.

During this workshop we will be using a structured approach to allow attendees to:

  • Learn a structure on how to control change
  • Limit risk whilst also having the ability to take advantage of unseen opportunities.
  • Become part of a fictional company and experience this structure and change occurring
  • Understand some of the participants own organisational issues, enabling quality conversations and structure outside of the workshop and back in the attendee’s own team, department or organisation

Audience

This workshop is designed so that you will be looking from your own sphere of influence and as such whether you’re a corporate CEO or just starting a career you should leave with additional confidence in implementing change relevant to yourself.

All you need, is a desire to make a positive change to the world around you.

 

Galgebakken
Tårnplass
Dragefjellet
Muséplass
Teatergaten
Strangehagen
Hødden
Restaurant — Lunch
Dragefjellet — Introduction to open spaces
Dragefjellet and more — Open spaces 1
Dragefjellet and more — Open spaces 2
Downstairs — Coffee break
Tårnplass
How I built a website and made it completely inaccessible
Vegard Haugstvedt

During the fall of 2019, I worked on a really unique project. I was to build a website (a webshop, actually), that was to be fully accessible, and then add as many accessibility bugs as possible. Sound weird? It was! It was also really fun, and I learned a lot. And all of it was implemented in just over a month!

The inspiration for the project was W3C's "Before and After Demonstration" ( https://www.w3.org/WAI/demos/bad/ ), where you can switch between accessible and inaccessible versions of five types of webpages. But the design of these are old fashioned, the functionality limited and in general the website was not very relatable as the calendar approached 2020.

So we set out to build a more modern version, with the lofty goal of being "the new gold standard for accessibility", a site where users could test complete scenarios and one that could be used both in education and for verifying how many issues automated accessibility testing tools can find.

In this talk, I will share our journey with you, exploring different accessibility issues, user testing, changing requirements and other topics we encountered.

Tårnplass
Dragefjellet
Muséplass
Teatergaten
Downstairs — Coffee break
Tårnplass
Dragefjellet
Muséplass
Teatergaten
— Speaker's dinner

Friday

Reception area — Registration
Galgebakken
Tårnplass
Managing Microservices at Scale 🚀
Hans Kristian Flaatten and Fredrick Myrvoll

Microservices describes the promised land where each service can be implemented completely independent of any other service using any programming language and any framework? But is that even possible? How do we ensure that all services are secure and protected? How do we make sure we can know what is going on inside and between the different services? How do we ensure propper handling of errors when communicating across multiple services? How do we trace errors back to the service that caused it?

In a traditional microservices environment these questions must be solved individually by each service or require the use of several libraries and suddenly your "micro"-service wasn't quite as micro and you most certainly can no longer use the programming language or framework you want any more.

What if there was a better way of managing all these microservices and be able to preserve their individuality and without having to bundle all of the complexity into the code?

The workshop will cover the following:

* Setting up the Istio Service Mesh on Kubernetes

* Deploying our all of the individual microservices required for our webshop application

* Routing traffic with the Istio Ingress Controller

* Monitoring performance with Grafana

* Observing traffic flow with Kiali

* Distributed Tracing with OpenTracing and Jaeger

* Request Routing and Canary Deployments

* Fault Injection and Rate Limiting

* Service Isolation Using the Istio Mixer

* Securing all communication with mutial encryption (mTLS)

What you will need to bring to the workshop:

* A laptop

* Enthusiasm 😅

Nice to have

* Basic understanding of how microservices communicate and are deployed

* Basic understanding of containers and Kubernetes 

Tårnplass
Dragefjellet
Getting started with The Things Network and crowdsourced LoraWAN
Ricco Førgaard and Ketil Moland Olsen

Say hello to The Things Network.

It's an open, crowdsourced, and encrypted wireless IoT network that aims to solve the wireless hurdles of limited range, excessive power consumption, and high operational cost using game-changing LoraWAN technology.

Twelve months after its launch in Bergen, The Things Network has snowballed. Close to thirty gateways spread throughout the city provide wireless coverage in most of the densely populated areas. Every day, thousands of data packets are transmitted from the hundreds of sensors deployed in the area. Maybe the next one will be yours?

In this workshop, you will learn everything you need to get started with The Things Network, LoraWAN, and crowdsourced  IoT. We will provide you with your very own LoRa-ready microcontroller. If you are lucky, you might get the opportunity to take it home with you, too. 

We will cover

– The Things Network and LoraWAN explained – how it works, and how you can use it in your projects (for fun and profit).
– Fair usage and duty cycle limitations. 
– Spreading factors, data rates and bandwidth.
– Different network activation methods and when to use them: Activation by Personalisation (ABP) versus Over The Air Activation (OTAA).
– Case study: TTN Mapper.
– The Things Network Console: How to register your free account, configure your applications, and set up data forwarding to external endpoints.
– "Hello, world!": Your first and simple The Things Network application.
– Raw data payload decoding and port routing.
– IoT thermometer: Air temperature readings over the air.
– Bonus: Setup TTN Mapper and start mapping network coverage.

You should have

– Basic to intermediate programming skills.
– Fundamental knowledge about Arduino and microcontrollers.

What to bring

– A computer with the Arduino IDE installed and working.
– A phone running a recent version of iOS or Android.

What we will provide

– Arduino MKR WAN 1310 Microcontroller.
– Aerial antenna.
– TMP36 Analogue Temperature Sensor.
– Necessary cables and wires.

Dragefjellet
Muséplass
Teatergaten
Strangehagen
Hødden
Downstairs — Coffee break
Galgebakken
Tårnplass
Managing Microservices at Scale 🚀
Hans Kristian Flaatten and Fredrick Myrvoll

Microservices describes the promised land where each service can be implemented completely independent of any other service using any programming language and any framework? But is that even possible? How do we ensure that all services are secure and protected? How do we make sure we can know what is going on inside and between the different services? How do we ensure propper handling of errors when communicating across multiple services? How do we trace errors back to the service that caused it?

In a traditional microservices environment these questions must be solved individually by each service or require the use of several libraries and suddenly your "micro"-service wasn't quite as micro and you most certainly can no longer use the programming language or framework you want any more.

What if there was a better way of managing all these microservices and be able to preserve their individuality and without having to bundle all of the complexity into the code?

The workshop will cover the following:

* Setting up the Istio Service Mesh on Kubernetes

* Deploying our all of the individual microservices required for our webshop application

* Routing traffic with the Istio Ingress Controller

* Monitoring performance with Grafana

* Observing traffic flow with Kiali

* Distributed Tracing with OpenTracing and Jaeger

* Request Routing and Canary Deployments

* Fault Injection and Rate Limiting

* Service Isolation Using the Istio Mixer

* Securing all communication with mutial encryption (mTLS)

What you will need to bring to the workshop:

* A laptop

* Enthusiasm 😅

Nice to have

* Basic understanding of how microservices communicate and are deployed

* Basic understanding of containers and Kubernetes 

Tårnplass
Dragefjellet
Getting started with The Things Network and crowdsourced LoraWAN
Ricco Førgaard and Ketil Moland Olsen

Say hello to The Things Network.

It's an open, crowdsourced, and encrypted wireless IoT network that aims to solve the wireless hurdles of limited range, excessive power consumption, and high operational cost using game-changing LoraWAN technology.

Twelve months after its launch in Bergen, The Things Network has snowballed. Close to thirty gateways spread throughout the city provide wireless coverage in most of the densely populated areas. Every day, thousands of data packets are transmitted from the hundreds of sensors deployed in the area. Maybe the next one will be yours?

In this workshop, you will learn everything you need to get started with The Things Network, LoraWAN, and crowdsourced  IoT. We will provide you with your very own LoRa-ready microcontroller. If you are lucky, you might get the opportunity to take it home with you, too. 

We will cover

– The Things Network and LoraWAN explained – how it works, and how you can use it in your projects (for fun and profit).
– Fair usage and duty cycle limitations. 
– Spreading factors, data rates and bandwidth.
– Different network activation methods and when to use them: Activation by Personalisation (ABP) versus Over The Air Activation (OTAA).
– Case study: TTN Mapper.
– The Things Network Console: How to register your free account, configure your applications, and set up data forwarding to external endpoints.
– "Hello, world!": Your first and simple The Things Network application.
– Raw data payload decoding and port routing.
– IoT thermometer: Air temperature readings over the air.
– Bonus: Setup TTN Mapper and start mapping network coverage.

You should have

– Basic to intermediate programming skills.
– Fundamental knowledge about Arduino and microcontrollers.

What to bring

– A computer with the Arduino IDE installed and working.
– A phone running a recent version of iOS or Android.

What we will provide

– Arduino MKR WAN 1310 Microcontroller.
– Aerial antenna.
– TMP36 Analogue Temperature Sensor.
– Necessary cables and wires.

Dragefjellet
Muséplass
Teatergaten
Strangehagen
Hødden
Restaurant — Lunch
Galgebakken
Tårnplass
Dragefjellet
Muséplass
Teatergaten
Refactor; Computer says no!
Anna Maria Eilertsen

In this workshop, we will practice using the refactoring menu in our IDE. Sometimes automated refactorings can speed up our manual editing and help us avoid errors; other times, a seemingly erratic IDE refuses to perform even the simplest operations. It is no wonder most developers shy away from any automation more complex than Rename. After this workshop, you will be able to decipher refactoring error messages, tweak your code to make automated refactorings succeed, and interleave automated transformations with manual ones to achieve the code change that you want. 

This workshop is not about improving code quality, per se. Rather, you will learn about IDE magic and curious corner cases in seemingly straightforward refactorings. We will focus on simple but powerful code transformations: Extract, Inline, and Move, and how to make them succeed in increasingly tricky application scenarios. 

We will collectively use IntelliJ Community edition with Java 1.8+, BUT! if you usually work with other frameworks, we strongly encourage you to disregard the provided tasks and instead explore the refactoring menu of your favorite IDE. Our main goal is to provide you with refactoring skills that you can apply in your everyday programming. 

Disclaimer: If you choose to work in another language, codebase or IDE, the organizer may not know the answers to your questions as they arise, but will enthusiastically lend herself to help figure them out. 

Teatergaten
Strangehagen
Make Your Own Robot!
Thea Øen and Martine Oppegaard Jakobsen and June Aarem

Make your own robot out of a milk carton and a micro:bit. Coding is a basic skill everyone should master at some level.

The workshop is meant to inspire people to learn coding or teach others to code. The project is a lot of fun, and suitable to teach young or not-so-young people about programming. It is also a low threshold for people on IT teams who do not normally code as a part of their workday.

No matter the motivation, starting small and safe is a great way of learning about coding and trouble shooting. The workshop will provide the parts needed that are not mentioned in the requirements, to complete the workshop.

Target group: Designers, testers or people a part of the team who do not usually program.

Requirements: A laptop (with USB port) for coding. One empty and cleaned milk or juice carton for the robot.

Duration: The workshop is divided into three parts and will take 1,5 hours to complete. 30 people can attend, resulting in 15 groups and 15-30 robots.

  1. Intro to the workshop, and some cues about how to arrange your own workshop.
  1. Prepping the gear, and creating the robot. The team will be provided with all necessary tools, where the first task is to cut out the design of the robot and glue all the part together.
  1. Programming the micro:bit. The coding will be done with the help of the editor https://makecode.microbit.org/#editor. There is an option to choose between Blocks or JavaScript. The instructions are using Blocks which is an easy drag and dropof elements. 
  1. Connect robot and micro:bit. The last step is to connect the wires to the micro:bitand robot and finally make it come to life by moving its mouth. 

 

OPTIONAL 

  1. Further development of the robot. If there is time to spare, there is always the option to code more, change up the robot and explore what else is possible with the help of micro:bits.

 

Happy coding! 

 

Strangehagen
Hødden
Kjellersmauet
Downstairs — Coffee break
Dragefjellet — See you next year