Every abstract is visible to everyone, in order to encourage discussion.
Workshop - Suggested by Tom Glover and Lina Alagrami, 3 months ago.
Fasten your seat-belts and prepare to face your inner biases as you embark on an interactive and live exploration of the future ethical dilemmas faced by designers of autonomous driving software. We revisit the original "Trolley Dilemma" and add a modern-day twist to understand the implications of real-time data being infused into this early 20th Century ethical thought experiment. The more people that attend, the more exciting will be the outcome as this will involve a live, yet anonymous mobile voting session.
The best part of this is that you get the build the solution yourself! In this workshop you’ll build your own privacy-aware, open source, reusable IoT voting system using the BBC micro:bit with a touch of Bluetooth.
The micro:bit is a tiny programmable computer which has been stripped down to the basics for simple, fun, creative coding!
You’ll get to write code to submit and register your vote with the Pixl.js receiver to explore the ethicality of IoT and autonomous vehicles.
Github link for code used in workshop: https://github.com/lalagrami/microbit-voting
Workshop - Suggested by Hulda Seterås Fadnes, 3 months ago.
Are your creativity, your able- and willingness to flex your mind and to look at things from different perspectives important for you, your company - and the world? Yes, it is!
In this workshop you will be introduced to different exercises to flex your mind and to boost your creative confidence.
The exersices are inspired by and selected from the book Creative Confidence, by Tom and David Kelley
Workshop - Suggested by Linda Rising, 3 months ago.
You’ve tried and tried to convince people of your position. You’ve laid out your logical arguments on impressive PowerPoint slides—but you are still not able to sway them. Cognitive scientists understand that the approach you are taking is rarely successful. Often you must speak to others’ subconscious motivators rather than their rational, analytic side. Linda Rising shares influence strategies that you can use to more effectively convince others to see things your way. These strategies take advantage of hardwired traits: “liking”—we like people who are like us; “reciprocity”—we repay in kind; “social proof”—we follow the lead of others similar to us; “consistency”—we align ourselves with our previous commitments; “authority”—we defer to authority figures; and “scarcity”—we want more of something when there is less to be had. Learn how to build on these traits as a way of bringing others to your side. Use this valuable toolkit in addition to the logical left-brain techniques on which we depend.
Workshop - Suggested by Markus Mortensen and André Rivenæs, 3 months ago.
Would you like to get to know your data better? In this workshop, you will learn how to create beautiful visualizations using R. We will also discuss best practices and how to create value for your business with the right visualizations. The workshop will cover everything from simple scatter plots to interactive plots and GIFs, and the participants will get the opportunity to learn by doing through a selection of exercises.
Workshop - Suggested by Martin Gilje Jaatun, 4 months ago.
Software security is about creating software that keeps performing as intended even when exposed to an active attacker. However, it is impossible to prevent all security flaws and vulnerabilities, since you will always have limited resources, in terms of time, money, and/or expertise. It is thus most important to prevent, detect and remove flaws and vulnerabilities with high risk, i.e., those that can easily be exploited by attackers, and that may impact important assets. Protection Poker is a tool for risk estimation to be used as part of the sprint planning meeting, in order to identify the features in the current sprint that represent the highest security risk, and that thus may need additional attention to software security and/or functional security requirements. An important side-effect of playing Protection Poker is a general raising of security awareness within the development team.
Protection Poker is meant to played by the whole team, and for each feature at least two rounds will be played: Once to determine the value of each asset the feature/requirement "touches", and once to determine the exposure of the feature. We define exposure as the extent to which the feature (when implemented) increases the attack surface of the system, what type of assets are made available through the feature, and to what extent it requires special competence to exploit the feature.
This talk will explain the basics of Protection Poker, and explain how it can be played. Participants will then get a chance to play Protection Poker themselves, on an artificial case. Protection poker cards will be provided for all participants.
The slides can be found here: https://sec4dev.io/assets/uploads/slides/sec4dev-2019-Martin-Gilje-Jaatun-Protection-Poker.pdf
More information can be found at https://www.sintef.no/protection-poker
Workshop - Suggested by Ivana Gancheva, 4 months ago.
Workshop - Suggested by Kasia Balcerzak and Bart Szulc, 7 months ago.
Do you have this feeling certain features will yet again start failing in upcoming release? When you catch a bug, does it seem like a deja vu? Incidents happen. Most of us think of them as materialised risks, but they also can be considered as opportunity. Opportunity to learn and improve. Would you be interested to learn how to draw conclusions from failures, propose corrective and preventive actions, and with them improve your development process and grow quality mindset in your team? This is a workshop for you.
We are all agile nowadays, thus we all strive to self improve iteration over iteration. Regular retrospectives help flush out issues with delivery process, compare current iteration with previous, identify things need addressing, areas worth investing in to increase velocity.
However, what happens when we catch a bug? Do we sit together as a team to identify what went wrong as we would normally do seeing a drop in our velocity in current sprint? I don’t think so. Most likely team will fix the bug and move on with feature development. Probably new regression tests will be added to prevent the bug from happening in future.
Regression doesn’t prevent bugs from happening. It helps with catching recurring symptoms of deeper problems, before they reach our customer and our users. Tests alone don’t address root causes. We’re like doctors prescribing yet another drugs. Not spending enough time on doing patient interview to find problems with lifestyle. Missing nutrients in our team diet.
You will learn how to spot and prevent sources of bugs. We’ll walk you through Root Cause Analysis process on a real life incident you can relate to. Help you understand all vital parts of such analysis, and show you how you can conduct similar process next time you catch a bug.
During workshop you will learn:
- techniques helping build context in which incident happened,
- how to build timeline and why it’s important to have one,
- how to identify causal factors and how they differ from root cause,
- techniques helping figure out root cause,
- what are preventive and corrective actions,
- how root cause analysis can not only help prevent bugs from recurring but improve your testing skills.
- what is root cause analysis
- what are causal factors and how they are different from root causes
- techniques helping identify root cause, propose preventive and corrective actions
- how being better in identifying root causes can help you become better tester by focusing your attention on most likely broken parts of your system
Workshop - Suggested by Johannes Brodwall, 7 months ago.
If we can trust the user we can do anything. If we can't trust our user, we can do nothing.
Almost all applications need to know who the user is. You could establish a user database with a password, but what prevents any random user to register as Donald Duck or Barack Obama? How do you find out who to trust?
The demo application used in the workshop is available on https://github.com/jhannes/identity-fun . A live version is running on https://javabin-openid-demo.azurewebsites.net/
Workshop - Suggested by Stian Veum Møllersen and Holger Ludvigsen, 7 months ago.
Learn the basics of 3D visualization in the browser with WebGL and Three.js. You will make a nice sound visualizer, a starry sky, a strange furry-looking ball and some cool particle effects. We will teach you the core concepts of WebGL and basic shader programming, so you can feel empowered to be creative in three dimensions.
Course material here: https://github.com/holgerl/3d-visualization-workshop
Workshop - Suggested by Olav Loen, 7 months ago.
The board game Playing Lean was launched after a Kickstarter campaing in 2015 as a flight simulator for innovation and Lean Startup. In 2018 a new Kickstarter campain was launched to improve the game with bigger game board, new company building mechanincs and a new scenario (hospitality like AirBnB) based on Alexander Osterwalder's Value Proposition Design.
Join this workshop to play the new scenario with the new company building mechanics and learn more about Value Proposition Canvas.
Workshop - Suggested by Iver Skjervum-Karlsen, 7 months ago.
Have you ever as a backend developer started in good faith creating that perfect REST-API, ending up creating a bunch of specialized endpoints, causing a mess of multiple endpoints doing almost the same?
Have you ever as a frontend developer been frustrated over endpoints that gives you almost what you need, and you end up doing multiple round-trips to the server to fetch all the data you need?
This workshop will give you an introduction to GraphQL, and how to solve some of the problems you experience with REST both from a backend and a frontend perspective!
Workshop - Suggested by Isabel Maldonado and Catharina Hansen Berge, 7 months ago.
New to API testing with Postman? Continue reading.
Is your team building application program interfaces (RESTful APIs) faster than you can say “Ready for deployment” ?
Are you being asked to test them, or are you simply curious about how you can test APIs?
More and more APIs are made available, makes it possible for applications to share and correlate data in with ease. Services provided by the likes of Google, Yelp, Instagram and more gives us the opportunity to create user experiences limited only by the imagination. And coming soon is a real game-changer: PSD2, the EU directive driving banks to make their customer's financial data available to them through third-party applications.
Whether you are building an API or consuming it, more knowledge around API testing will be needed.
Of the many different tools available out there that can be used to test APIs, we wish to focus on Postman. This lets you test APIs in a simple way and it is used by many developers. So why not learn what it is and how to use Postman?
In this workshop we will start from scratch going through what is HTTP response codes, JSON, API, etc. before we start playing around with Postman.
Workshop - Suggested by Vidar Berg Tilrem and Kristin Wulff, 7 months ago.
Some of our teams work with a focus on output (producing features) today, because of habits, customer constraints and probably several other reasons. To move the focus to outcome (the effect our solutions have), we are using several models and facilitate workshops to help the teams and our customers change. In this workshop the participants will try out a "greatest hits" of the models and techniques we have used.
Workshop - Suggested by Gry Nagel and Adrian Foster, 7 months ago.
This workshop will give a hands-on introduction for developing application for HoloLens (Mixed Reality) in Unity. We will set up a Unity project for Mixed Reality and learn how to utilize the Mixed Reality Toolkit to create an application.
- Quick introduction to Mixed Reality
- Making sure development environment is set up
- How to use the Mixed Reality Toolkit
- Setting up a Unity project
- Creating an application
- Deploying to the HoloLens/HoloLens emulator
To install the required tools, check out this guide: https://docs.microsoft.com/en-us/windows/mixed-reality/install-the-tools
It would also be prefered if you download the mixed reality toolkit before the workshop to save time: https://github.com/Microsoft/MixedRealityToolkit-Unity
Workshop - Suggested by Olav Gausaker and Alexandra Leisse, 7 months ago.
Amazon's Alexa is built into more and more audio devices. Combine this with cloud functions, and you have a great playground for fun and useful projects.
In this workshop, you will learn how to build an Alexa skill that helps you memorize vocabulary when learning a new language. We're using Spanish because it's what we know, but you'll be able to adapt it to whichever language you want.
+ Quick introduction to Alexa skills
+ Setting up the dev environment
+ Understanding the serverside components
+ Deploying the function to AWS
+ Writing the Alexa skill
+ Practice Spanish with Alexa
Workshop - Suggested by Thomas Tøkje and Sverre Johann Bjørke and John-Olav Storvold, 7 months ago.
Please follow installation instructions found here: https://docs.google.com/document/d/1Ebkw1aSmm5Ep8ozYlzFZa4FFWg0hWgOIl8HMVVYmnkI/edit?usp=sharing
Rust is a reliable systems programming language providing bare-metal performance in a modern wrapping. It guarantees memory and thread-safety without garbage collection, offers great tooling and an amazing community — in fact, Rust has been voted the most loved programming language according to the Stack Overflow Developer Survey three years in a row. The language is experiencing rapid adaptation in multiple industries ranging from game development to backend systems.
In this workshop, we will explore Rust and create a simple synthesizer that can be played with your computer keyboard. We will also implement rudimentary sound effects. The goal of this workshop is to learn some of the basics of Rust through a hands-on project, and no prior knowledge of Rust or audio processing is required.
Workshop - Suggested by Siv Midtun Hollup and Kjersti Asora Sveen, 7 months ago.
How can we bring computational thinking, problem solving and programming concepts to the masses? We'll look at ways to demonstrate programming concepts and create games for teaching kids ages 3 - 6 (or anyone, really) about programming and problem solving. We'll go through basic computational concepts and create games for those who can't even write yet. Bring your creativity and join the fun! Do you have a card game up your sleeve? A game that gets people running around? A way to demonstrate an algorithm or concept that makes people laugh? Can we use music?
You'll see how programming concepts are all around us, and you'll have to examine your knowledge of programming and computational thinking from a completely different viewpoint.
Slides from the workshop can be found at: https://gitpitch.com/sivhollup/get-em-young
Workshop - Suggested by Dmitry Vinnik, 7 months ago.
We all encountered a “Broken Window” theory in practice. The original idea was that if someone breaks a window in a neighbourhood and this window is not repaired right away, the entire area will start getting messier at an accelerated rate.
The same theory can be applied to Software. How many times have you looked at a legacy system with no tests, and decided not to write any automation for your new features because ‘this is how it has always been“, or “nobody has done this before”? By referring to the bad practices which were established before, the system continues degrading the same way a nice neighborhood can turn into a ghost town.
This workshop aims to show how these “Broken Window” systems can be tackled, and how such systems can be set on the right track to high quality.
The speaker will demonstrate from his past experiences how technical and testing gaps can be covered and what every team can implement in their process to start improving existing and future products.
Workshop - Suggested by Heidi Mork, 7 months ago.
The actor model is a great programming model for building concurrent and distributed systems - in other words, most systems we build today! An actor is an entity with its own private state, and it can only respond to messages it receives by sending new messages, creating new actors, or changing its own behaviour. You could say that an actor is an object that takes encapsulation and independence seriously.
In this workshop we will explore the basic concepts of the actor model, by implementing a game similar to the classic game of space invaders. We will explore how this game domain can be modelled within an actor system, and learn the actor concepts like actor hierarchy, mailboxes, the actor life cycle, and common message patterns for actor systems. All while we are gradually building the game, from the laser canon controlled by the player to the army of attacking aliens, and everything else that is needed for a fully functional game.
Workshop - Suggested by Lisa Crispin and Ashley Hunsberger, 7 months ago.
Have you ever found the need for change, but had no idea how to move forward? Without a clear path or the support necessary to succeed, change - especially cultural change - can be daunting. Transformation can be scary and faced with resistance, but it doesn’t have to be.
At the heart of DevOps is the idea that teams work together to innovate faster, reducing the length of feedback loops and delivering value. Applying principles of collaborative practices, continuous improvements, incremental testing, and continuous learning can transform culture - not only within development teams, but also in some less obvious places.
Join me as we go through some real-world examples of applying principles that can lead to real change! We will draw analogies from the automotive safety industry - and show that these principles don't have to be used just in the context of a DevOps organization.
We'll take a look at ways to get organized and find your team's purpose, identify and prioritize work, learn and define iterative feedback loops, and design experiments for continuous learning!
Link to slides and worksheets: https://drive.google.com/drive/folders/1jb89M6GQdO_yWW68ITb5HIPgXwWYk0FJ?usp=sharing (please contact email@example.com if you have any trouble viewing/downloading)
Workshop - Suggested by Adrian Roselli, 7 months ago.
Learn some fundamentals of accessibility and how it can benefit you (whether future you from aging or you after something else limits your abilities). We’ll review differing abilities, generate (minimal) user stories and personas, discuss best practices for design and development, prototype some ideas (on paper), and discuss where to get help. This isn’t intended to be a deep dive into technologies, but more of an overall primer for those who aren’t sure where to start with accessibility nor how it helps them.
Slides from the workshop are available at http://adrianroselli.com/2019/03/slides-prototyping-accessibility-for-booster-2019.html. There is no video from workshops, but I am happy to tell you all about it.
Workshop - Suggested by Lars Lønne, 7 months ago.
Workshop - Suggested by Filip Van Laenen, 7 months ago.
In 1999, NASA lost the $125 million Mars Climate Orbiter as it went into orbital insertion. Due to a mismatch between US customary and SI units of measurements in one of the APIs, the spacecraft came to close to the planet, passed through the upper atmosphere and disintegrated. Sadly, this hasn’t been the only instance where a mismatch between units of measurements had catastrophic consequences, but it’s certainly one of the most spectacular and expensive ones.
How could this happen? The bad news is: if you use primitive types to handle quantities in your code, due to that very same practice. At best, you’ve codified the unit in the name of the variable or the database field, e.g. calling it lengthInMetres. Otherwise, you’re only relying on convention, just like Lockheed Martin and NASA did.
Join this workshop to learn how JSR 385 can help you avoid $125 million mistakes, and discover the immeasurable world of dimensions, units and quantities.
Source code for the exercises during the workshop can be found at https://github.com/filipvanlaenen/booster2019, and the slides are available at https://www.slideshare.net/filipvanlaenen/how-jsr-385-could-have-saved-the-mars-climate-orbiter-138213660.
Workshop - Suggested by Sigmund Hansen, 7 months ago.
We all know the world has gone crazy for μ. μ this and μ that. Java is often used for microservices. Quite a few of them use Spring Boot, which I think is overkill for simpler services. The Eclipse Foundation has worked quite a bit on the Java EE Microprofile, which is another option, where you use Java EE features and small containers. Another popular approach is the use of the many micro frameworks that have flourished, e.g. Spark, Javalin, Ktor and the up and coming Micronaut.
Let's build a small microservice application with Micronaut, Graal, Substrate (ahead of time compiler that's part of Graal) and Docker containers. The service will be your standard, wonderfully CURLable To Do list RESTful JSON API, and we will see just how small we can get this service, and how fast we can make it start up. This will give you a quick and dirty introduction to the spanking new Micronaut microframework, that released version 1.0 in late October. It will also be an intro to very basic use of Graal and Substrate. You are expected to know Java and very basic use of Docker (although the application(s) will be possible to run without containers).
After this workshop, you should hopefully feel like running back to your hotel room, start building Java microservices and throw them at the clouds in the sky. Or at least inspired to experiment further with Java microframeworks and GraalVM.
Slides and code from the workshop can be found at:
Workshop - Suggested by Ado Kukic, 7 months ago.
Passwords are a thing of the past. They should be avoided at all costs. All developers know that but still, this is one of the primary mode of authentication used. In this hands-on workshop, the attendees will see how easy it is to implement an authentication server that uses email links as the primary mode of authentication.
Workshop - Suggested by Richard Cornelius and Martin Burns, 7 months ago.
A workshop that is designed to be very hands-on and suitable for anyone and everyone who wants to get answers to problems and not just coaches.
Clean Language sounds easy in theory, but it is hard work to get it working and sounding natural. This workshop uses Mike Burrows 15-Minute FOTO exercise as a basis https://www.agendashift.com/15-minute-foto , enabling participants to take turns and practice in a safe non-live environment.
This is a very practical session enabling participants to discover their own solutions and real options.
A learning workshop that is designed to be heavily hands-on and suitable for anyone and everyone who wants to get answers to problems and not just coaches.
When trying to discover solutions to a client’s needs it’s very easy to go into consultancy or teaching mode. Often these are not necessary or even desirable as the client is likely to have far more context-based knowledge and so it’s important to use this intrinsic knowledge as much as possible. Clean Language (CL) is very good at preventing these personal opinions and ‘helpful’ suggestions and this session aims to provide enough real practice so that participants overcome any initial apprehension, leaving confident and able to use in a work environment.
This workshop uses Mike Burrows 15-Minute FOTO exercise as a basis, enabling participants to take turns and practice in small groups and in a safe non-live environment. It is a very practical session with the expectation that participants will discover their own solutions and real options that they can then explore further and put into practice after they leave.
It is organised around the participants learning for themselves and as such designed to be slide presentation free, instead each person will leave with their own simple reminder.
The primary focus will be to allow participants adequate time to be comfortable using Clean Language and depending on the speed of the participants, we would then like to expand further on their outcomes previously generated. Showing a simple method for prioritisation and discovering how to use these options as a basis for an experiment, taking the hypothetical idea into a real-world solution.
Workshop - Suggested by Rolf W. Rasmussen, 7 months ago.
Writing your own CPU emulator to successively run programs of increasing complexity
Alan Perlis warns “Beware of the Turing tar-pit in which everything is possible but nothing of interest is easy”.
During this workshop, we’ll build up a CPU emulator one instruction at a time, designing the Instruction Set Architecture (ISA) as we go along, in order to successively run programs of increasing complexity. We’ll discover how few steps are needed to go from running “Hello World”, to a running an OS image with an embedded development environment.
Our goal is to create a practical Instruction Set Architecture, but we’ll also along the way touch upon some theoretical and historical aspects as well. We’ll see how to use abstraction to build layer upon layer of more complex functionality starting with a few basic building blocks. After measuring the cost of such abstraction, we’ll work on fixing inefficiencies that crop up.
Lastly, we’ll look at the different directions we could evolve the embryonic ISA and emulator we’ve created, how we would go about doing so, and what existing ISAs, software, and projects that occupy these spaces in the real world.
Slide deck: http://rolfwr.net/tarpit/
Code examples: https://github.com/rolfwr/rwisa-vm
Example executables: http://rolfwr.net/rwisa/rwisa-exe.zip
Workshop - Suggested by Peter Hilton, 7 months ago.
Sheet music is perhaps the ultimate domain-specific language, but isn’t really accessible to programmers. It hardly has any curly brackets, and they don't even match! This workshop for non-musicians demystifies musical notation by showing you how to generate it from a Scheme-based DSL, called Lilypond, which looks much more like a 'normal' programming language.
During this workshop you will learn the basic Lilypond syntax, starting with note pitches, durations and lyrics. You’ll use this to generate music as PDF that you can print, and MIDI files that you can listen to. This will be based on simple and familiar examples, starting with the world’s most recognisable tune. You’ll also learn how Lilypond separates content from presentation, and how its automatic layout creates professional print-quality results.
Workshop - Suggested by Øyvind Randa and Håvar Eggereide and Hans Kristian Flaatten, 7 months ago.
Functions as a Service (FaaS) is reapidly becoming the next evolution of cloud computing after containerization. FaaS is often refered to “serverless” and has been popularized by the public cloud providers that all delivers some type of serverelss functionality such as AWS Lambda, Azure Functions, and Google Cloud Functions.
In any serverless framework there are two core components. The runtime responsible for executing the functions, and the events for invoking them. What makes a good serverelss framework is it's abilitiy to integrate with other systems and services using this event driven model.
In this wokrshop we will be looking at the different possibilities of running serverless worklods on top of Kubernetes and get some hands on experience with popular frameworks built specifically for running serverless functions in Kubernetes. We will set up a complete serverless environment where functions gets triggerede over a message bus when new files are uploaded to a object storage.
Workshop - Suggested by Erik Vetle Larsen, 8 months ago.
Everyone has received a spam or phishing mail before, but have you ever wondered how the mechanics behind a phishing campaign works? When can you consider your account compromised, from clicking a link or submitting your credentials?
In this workshop we start off by quickly talking about the motivations behind phishing and how an effective scam is created, applying elements from psychology and social engineering. Afterwards we take what we have learned and start designing our own simple phishing scam, from credential harvesting web page to sneaky phishing mails
After this workshop you will know the basic set of tools and techniques attackers use when phishing us, and that will better equip us in learning how to defend against them.
Workshop - Suggested by Manu Gopinathan and Malte Loller-Andersen and Joakim Lehn, 8 months ago.
Have you ever wondered how Youtube and Spotify can possibly recommend new videos and songs to you? Having heard that machine learning plays an important role, you may be wondering what all the fuss is about. How does it work? How can you get started using it yourself?
This session serves as an introduction to machine learning, based on a practical use case. We will be utilizing Spotify's API to extract features from music, before we visualize and cluster the data, and also train classifiers for discovering new music. We will give you an introduction to several algorithms used for clustering and classification of data. In addition to digging into some traditional machine learning algorithms, such as K-means and SVM, we will also take a look at artificial neural networks, which in recent years have produced remarkable results in various fields. For all of this, we will be using frameworks like Keras and Sklearn.
If machine learning has been a mysterious domain to you, this session will most likely leave you with a greater understanding of the process and aid you in how to set up projects of your own.
Workshop - Suggested by Dmitry Lebedev, 8 months ago.
Imagine that your org has adopted scrum, all teams are doing retros, some of action points receive management attention, sometimes even got solved. But still there is some feeling that bigger problems, which are holding your company back, cannot either be addressed or even acknowledge, just because these problems are dispersed through the whole organization an in a single team we might see only a fraction of it. So it is important to get the whole group together and get everyone heard.
How to form and get group's opinion? What kind of techniques you can use to organize such sessions in your organization? How the org will benefit from it?
Workshop - Suggested by Sebastian Golasch, 8 months ago.
As a web developer it´s easy to feel intimidated by the world of hardware hacking and the physical web, we have to leave our comfort zone and need to get familiar with a completely new development environment. But not anymore, thanks to wonderful possibilities that the WebUSB Api brings to our browsers.
In this talk I will give an intro to the endless wonders we can encounter in the hardware world through our browser windows. Aside from leaerning the basics of USB and serial port communication, we´ll paint on USB displays, live tweet to receipt printers, control an Arduino, steal data from Android phones and many more... The only limit is your imagination.
Workshop - Suggested by Nikhil Barthwal, 7 months ago.
F# is a relatively new primarily Functional programming language for the .Net platform. It is a statically typed managed functional language that is fully inter-operable with other .NET languages like C#, Visual Basic.NET etc. It builds on the power of Functional Paradigm and combines it with .NET Object-Oriented model enabling the developer to use the best approach for a given problem.
Functional programming (FP) offers several benefits. The code tends to be terse which leads to enhanced developer productivity. FP encourages pure functions which are much easier to reason about and debug, as well as eliminates large class of bugs due to side effect free programming. Moreover, immutability leads to easy parallelization of the code. Algebraic Data Types can be used to express domain object conveniently and control state space explosion.
F# is great practical choice for developing reliable and highly scalable real-world system that are quick and easy to develop due to the design of the language itself combined with the ability of the language to use a large no. of 3rd party libraries designed for the .NET platform.
Unfortunately, support for multiple paradigms often leads to confusion. Newcomers tend to find the transition from object-oriented world to functional world difficult. Moreover, it often leads to abuse where developer tries to use the same old imperative style of coding in a functional language and is unable to take advantage of the features, the language has to offer.
The objectives of this talk are:
- Introduce the developer to Functional paradigm and functional way of thinking
- Develop the ability to decide which paradigm to use for what problems
- Leverage the existing code in C# and other .Net languages as well as large no. of 3rd party libraries written for the .NET platform.
Workshop - Suggested by Jens Bendisposto, 7 months ago.
Don't write algorithms to solve business problems! Let the computer search for a solution! Constraint programming is often used in logic programming languages, but it can also be used in other languages, such as Java. After an introduction to constraint programming, we will have a hands-on session where we use the Choco Java library to specify and solve some optimization problems. We will also investigate when constraint programming is a good fit for a problem and when to use something else.
Workshop - Suggested by Valarie Regas, 7 months ago.
Docker, Kubernetes, and Jenkins. Oh my! You don't have to be in DevOps to understand the principles of Continuous Integration, Continuous Delivery, and automation. In this workshop, we'll start with an high-level overview of the history of DevOps principles before diving into Dockerfiles, Kubernetes clusters, and Jenkins build pipelines. While we're setting up a build pipeline, we'll also discuss the beauty and splendor of shell scripting.
Lightning talk (10 min) - Suggested by Kristin Wulff, 2 months ago.
Our development teams has a pressure on them to become more innovative. At the same time the stakeholders (leaders, customers, ..) has a need for control. This may lead to less innovation than wanted. I will present a model that helps mapping out the team constraints and discussing how/where they should be.
Lightning talk (10 min) - Suggested by Jarl Totland, 7 months ago.
Modern cloud and container orchestration makes it super easy to collect tons of metrics for your infrastructure and applications. Unfortunately it is not always obvious how to reduce the information flow, and visualize it.
Let's look at some good practices for creating effective dashboards for high level overviews and day to day devops activities.
Based on real life experience using Grafana with Telegraf and Influxdb for managing 500+ servers whilst migrating from on prem to AWS.
Lightning talk (10 min) - Suggested by Elin Langholm, 7 months ago.
Hvis vi ikke feiler så blir vi fattig på læring. For at feiling ikke skal være så kostbart, men nyttig så er fast og safe stikkord som gjerne knyttes til fail.
Vi ser på hvilke gevinster arbeid med Proof of Concepts kan gi deg - mulighet til å feile raskt og uten store kostnader er en av dem.
Lightning talk (10 min) - Suggested by Hilde Bakkeli, 7 months ago.
As a product development team in a large organization you may need to collaborate with other parts of the organization to deliver value to the end users. Your colleagues may have different professions and work culture than your own. Starting off without a shared language, understanding of the goals, process or roles, the collaboration might turn more difficult than expected.
Our team in Oslo kommune work on a mobile app to enable simpler access to buildings, services and events for the inhabitants of Oslo. In order for the product to succeed, it requires close collaboration with people and departments spread across a large organizational map.
What are the factors to make cross-organizational collaboration succeed? In this lightning talk I will share four relevant factors from organizational psychology as foundation for successful collaboration between groups, as well as experiences from Oslo kommune and previous projects.
Lightning talk (10 min) - Suggested by Anne Landro, 7 months ago.
Brukertesting er enkelt å gjennomføre og gir masse insikt på kort tid. Men det er fort gjort å gå i noen feller som gjør at designet ditt faktisk blir DÅRLIGERE av brukertestingen.
I denne lyntalen deler jeg noen skrekkhistorier hvor brukertesting førte til at løsningene våre ble dårligere, heller enn bedre. I tillegg deler jeg enkle løsninger som gjør at andre slipper å gjøre de samme feilene som vi har gjort.
Lightning talk (10 min) - Suggested by Torjus Eidet, 7 months ago.
When your front-end starts getting too big, you might want to split it into smaller parts. Micro Frontends extends the concepts of micro services to the frontend world. The idea behind Micro Frontends is to think about a website as a composition of features. Different features are owned by independent cross functional teams. These teams have distinct areas of business they care about and specialize in.
Lightning talk (10 min) - Suggested by Ami Ahalpara, 7 months ago.
Joining a new programming team to work on an existing product is a situation programmers often find themselves in. In such a situation, becoming productive and delivering business value quickly is a formidable task due to lack of adequate domain knowledge to begin with, exposure to a new code base, getting tuned to a possibly new framework and perhaps to a new programming methodology. Some of the top priorities of a new team member are getting the necessary domain understanding, getting a grasp of the architecture and the reasoning behind the applied methodologies. As vital as all of this is, it cannot be reverse engineered solely by reading the code or the documentation. Based on my experiences I would like to present some of the techniques that can help a new recruit to quickly arrive at a stage where they can make a meaningful contribution towards the evolution of the software.
Lightning talk (10 min) - Suggested by Sindre Johansen, 7 months ago.
Rust er et revelusjonerende språk som er imponerende raskt og sikkert. Det kompilerer vanligvis til maskinkode, men har i det siste fått veldig god støtte for WebAssembly. Dermed får man tilgang til et veldig bra programmeringsspråk med gode biblioteker i browseren. Men Rust mangler et godt bibliotek som erstatter React.
Elm og Rust er tross sine forskjeller egentlig ganske like språk. Det slo meg en dag, ville det vært mulig å lage arkitekturen til Elm i Rust, og hvordan ville det sett ut? Vil det bli like gøy å bruke som Elm? Mister man noe på veien? Støtter typesystemet i Rust det i det hele tatt? Svarene får du i denne talken.
Lightning talk (10 min) - Suggested by Megan Thorsen, 7 months ago.
Get some pointers on optimising your visualisations for your data, your audience, and your objective. Most importantly and most forgotten: what should you think about before you start, and what should you check after you’re done?
Lightning talk (10 min) - Suggested by Daan van Berkel, 7 months ago.
Inspired by the Booster Conference and the city of Bergen I created a language called
bergen. It is a dialect of brainf*ck, a tiny Turing complete language, that uses mountain ranges to describe programs.
In this lightning talk we will show how one can create their own language, create a compiler for it, and see it being executed on an abstract machine. We will demystify the shroud of reverence surrounded by programming languages and their creators.
You will walk away with a better grounded understanding of how programming languages work, and how you can create one on your own.
A link to the bergen language can be found here: https://github.com/dvberkel/bergen
Lightning talk (10 min) - Suggested by Ove Gram Nipen, 7 months ago.
Create a github pull request, and a new app is automatically created and deployed. Review both the code and the running app, merge the pull request, and the pull request app is destroyed and the development app is redeployed. Promote the changes to staging, run the user acceptance tests and promote to production. We'll show how to setup and do all of this live, in ten minutes, with Heroku Pipelines.
Lightning talk (10 min) - Suggested by Christian Sloper, 7 months ago.
Using deep learning and weather data we have succeeded in calculating the power need of the thermal power plant days ahead. This has allowed calculating and optimizing the use of supplementary fuel leading to a reduction in overall use of expensive oil burners.
Explaining the core challenges in the project and the positive results.
Lightning talk (10 min) - Suggested by Christina Seime, 7 months ago.
Gjelder smidige prinsipper kun på jobb eller kan vi bruke disse prinsippene også på privaten? Som Agile coach er jeg over middels glad i smidig og under middels glad i å planlegge i detalj lang tid før en hendelse inntreffer. Da vi reiste jorden rundt på 10 måneder med våre to barn, hadde vi samme innstilling til planlegging av reisen som for produktutvikling. Var det en god ide å ha en smidig tilnærming til planlegging når man skulle reise til ukjente land med to små barn? Kom på denne lyntalen for å høre mine erfaringer med planlegging, på jobb og på reise.
Lightning talk (10 min) - Suggested by Cecilie Wian, 7 months ago.
Password policies try to force users to make more secure passwords, but instead of making passwords difficult for computers, policies leads to difficult passwords for users. Users struggle to remember passwords, leading them to use common phrases, shorten passwords, and reuse passwords. Making passwords even more insecure.
We know what people are bad at, but what are they good at?
In my presentation i will discuss why user interfaces invites to bad password practices, before moving on to talk about human skills that can be used to shape users actions into more secure behavior.
UX, security professionals, developers, testers
Take aways from the talk:
Be aware of the weaknesses of current practices for password policies.
Knowledge about how software interact with human skills
Knowledge about human traits that can be used to improve Human-Computer-Interactions, like registration forms
Lightning talk (10 min) - Suggested by Øyvind Kvangardsnes, 7 months ago.
Hørt om Splunk? Om du bruker det til å søke i logger, så er det sånn ca uendelig nyttig.
Men Splunk eller lignende i et autonomt og tverrfaglig team, det er dynamitt.
I denne lyntalen skal jeg fortelle hvorfor slike verktøy er et av de helt essensielle når man jobber med smidig produktutvikling. Jeg kommer til å fortelle om mine erfaringer med splunk og lignende verktøy for å ta bedre beslutninger rundt forretning, ux, oppsider, nedsider, feilsituasjoner og anna morro.
Og til slutt skal jeg skal fortelle hvordan vi fant ca 36 000 timer og ca 148 milliarder.
Lightning talk (10 min) - Suggested by Anders Grini Hamre, 7 months ago.
- Would you like your person to be of any particular age or gender?
- Would you like an address with that?
- How about an income and employment record?
- That will be eight clicks, thank you very much.
- You killed your person, you say? No worries, three clicks and you have yourself a clone.
Test data, or rather the quest for these, can steal time, ruin your day, and delay deploys. At the Norwegian Welfare and Labour Administration our teams need coherent data across a multitude of systems and test environments. Nobody can wait for days or weeks. We need thousands of people, of all sorts and with various backgrounds. And they all have to be synthetic, of course.
Therefore, we have built a tool for creating synthetic and coherent data on demand. When you have a working test data set, it can easily be recreated or cloned. Dolly, named after what might be the world’s most famous sheep, give the testers and developers test data without delays. On top of that it saves the tax payers vast sums.
In this talk I will explain the concept, how we create coherent and synthetic data across our many (legacy) systems, and how we work to improve our beloved Dolly. You may not be able to steal Dolly, but you may clone the idea.
How to make test data coherent across a multitude of systems?
How to cut time and cost of test data?
How to have a bit of fun whilst managing your test data?
Lightning talk (10 min) - Suggested by Tannaz N. Roshandel and Line Moseng, 7 months ago.
We live in a deeply connected world. Technology impacts our everyday life in many ways. However, the solutions we create do not always reflect our society and the world we live in. We have problems in the tech industry. Let’s take a look at the lack of diversity in our communities and how diversity will help us to solve our problems and meet the needs of our society
Lightning talk (10 min) - Suggested by Lubaba Farin Tanisha, 7 months ago.
Have you ever felt that you are falling into a rabbit hole? Have you seen yourself screwing up with a deadline, or a project or just found yourself dealing with an unhappy customer? Have you noticed the stakeholders falling into a response pattern including words like sh*t, wt* or similar? Well, then welcome to my party of salvage! I will walk you through a path showing you why we fall in to the trap over and over again and how we can make better decisions and manage our products better.
Lightning talk (10 min) - Suggested by Karianne Berg, 7 months ago.
Startups are blowing established organizations out of the water on a regular basis. How on earth can small companies of 1-30 people beat multi-million companies with a lot of money, existing customers and experience? Karianne Berg, who have experience from several startups, will share some simple (but not easy!) tricks of the trade.
Lightning talk (10 min) - Suggested by Nils Norman Haukås, 7 months ago.
For over two years now I've been juggling clients and codebases as an IT-consultant at a digital agency named Netlife Design.
I've been yelled at, I've been on projects that have overrun their budgets and I've endured difficult project talks. It hurts but you learn to fix it, or you burn out and switch jobs. At its best this type of consulting work provide a thrillingly varied work week, at its worst you feel that you never get enough time to make the code right and the clients happy.
To help you survive as a developer IT-consultant I'll share advice on:
1. Disappointing the client early and frequently to ensure project success.
2. Deprecating status meetings by wrangling private messages into public channels.
3. Writing future-compatible code and harnessing a spider sense for failure.
With this, I aim to help you to achieve smooth(er) projects and maybe even get away with writing great code.
Lightning talk (10 min) - Suggested by Anders Norås, 8 months ago.
Artificial Intelligence is a huge thing at the moment, even in enterprise IT. Game developers have been making artificially intelligent software for eons and they have a few tricks up their sleeves to make things "smart" without jumping the machine learning shark.
We'll look at how a very common game AI technique works and learn how we can use it for everyday business logic.
Lightning talk (10 min) - Suggested by Synnøve Kleive, 8 months ago.
Heard the words design thinking and service design thrown around? Wondering whether this is something you should spend any time understanding or are you inherently skeptical to it? The mindset and techniques used in design thinking and service design provides you with a great deal of great change management. This short talk, breaks it down to help you understand how.
Lightning talk (10 min) - Suggested by Erik Assum, 8 months ago.
If we look at job ads for our industry, quite a few of them are looking for stuff like "a passionate developers who loves <a programming language>". In this lightening talk, I'll examine if we really need to be all that passionate and also if passion is such a desirable emotion after all.
Lightning talk (10 min) - Suggested by Einar Høst, 8 months ago.
Lightning talk (10 min) - Suggested by Dag Olav Norem, 7 months ago.
Som med mye annet er svaret at "det kommer an på". Det kommer an på personen, og det kommer an på organisasjonen man skal lede. Men i takt med digitaliseringen er svaret i flere og flere tilfeller «nei». Vi går fra organisasjoner som kjøper IT-systemer for å støtte de ansatte i sitt arbeid, til organisasjoner der de ansatte utvikler IT-systemer. Softwareutvikling blir kjernekompetanse. Som leder har man ansvar for beslutninger om rammene organisasjonen opererer innenfor. God digital tjenesteutvikling krever helt andre rammer og arbeidsprosesser enn tradisjonelle bransjer. Og det pågår et enormt sløseri i Norge i dag fordi mange som beslutter rammene ikke har kunnskap om hva det operative arbeidet faktisk innebærer. Det er ikke lederne selv dette går utover. Det er utviklere, designere, produktsjefer, analytikere og alle andre som jobber med digital tjenesteutvikling. Det er kundene. Og det er samfunnet som helhet. Er du en av de det går utover? Hvorfor finner du deg i det? Hva har du tenkt å gjøre med det? I dette foredraget vil en økonom snakke om sin reise til å bli leder av et teknologi-miljø, hvorfor det fremover trengs færre som han og flere som dere, og hvordan hver av dere kan begynne sin reise.
Short talk (30 mins) - Suggested by Elin Langholm and David Skålid Amundsen, 7 months ago.
How can you succeed with integrating machine learning in your solution? How do you get the customer on board? How do you build a team with the right skill set that can deliver? In this talk we want to tell you the story about how we did this and the challenges we had to overcome on the way so that you can do it too.
We built a proof of concept (PoC) of intelligent search for The Norwegian Courts Administration (Domstoladministrasjonen), where we use machine learning to personalise the search results. We will present how we worked internally, putting together people with different backgrounds and skill sets, and with the customer. We will also discuss our solution and the technology behind it, show a live demo, and talk about things we learned that can be useful for others making PoCs.
The talk will be given by Elin Langholm and David Skålid Amundsen.
How NSD and immutability enabled microdata.no - a revolutionary platform for research on register data
Short talk (30 mins) - Suggested by Ørnulf Risnes, 7 months ago.
Norway has a large number of registers on individuals that have been established for administrative and statistical purposes. These registers represent a unique and valuable resource for research on welfare and society.
Traditionally, getting approvals to do research on these data has been complicated and time-consuming.
The new platform microdata.no reduces approval time from 9 months to 0 days, and makes these valuable data available for a much wider community of researchers.
Microdata.no was released in 2018 after a 5 year collaboration project between NSD and Statistics Norway (SSB). Researchers analyze data through a privacy-preserving web-IDE inspired by Jupyter notebooks and other widely used statistical tools.
The platform is built with ClojureScript, Clojure, Node, Python, Go and Datomic - and immutability is the cornerstone of the architecture.
In this short talk, we will demonstrate how NSD designed microdata.no around immutable data structures, and how this design decision enabled the development of a novel and globally unique platform for safe research on personal data.
We will discuss how we designed and implemented a new domain specific language (DSL) for analyses of temporal register data, how we execute the DSL with functional reactive programming, and how we use immutable data structures and databases to enforce complete statelessness and simplicity throughout the platform.
Disruption from within: How to help an organization (with long-standing traditions) through a digital transformation
Short talk (30 mins) - Suggested by Tone Nordbø and Eivind Trædal, 7 months ago.
Gyldendal is one of Norway's biggest publishers, and they have a centennial success with creating text books. But now, students are being handed tablets or laptops on their first day of school, and being good at making books is no longer sufficient for a publisher. Since the summer of 2017, we have been working towards making Gyldendal into a digital service provider. We will go through our trials & errors, our ups and downs, what we have learned the past year. Design lead Tone and project manager Eivind will give insight into what works and what doesn't when helping a successfull company reinvent themselves in a digital transformation.
Short talk (30 mins) - Suggested by Morten Rosenlund, 7 months ago.
I denne «talken» vil jeg snakke om hvorfor det er viktig at softwaren din kommuniserer med den mest primitive delen av hjernen til brukerne dine.
Den rasjonelle delen av hjernen din er fremdeles ute i betaversjon, og den har kun vært testet og utviklet i 200 000 år. Hvis du vil ha noe gjort på ordentlig, må du henvende deg til brukernes primitive del av hjernen. Urhjernen.
Urhjernen er nemlig blitt refaktorert og oppdatert i 100 millioner år, og den styrer emosjonene og dermed følelseslivet ditt.
Hvis ambisjonen din er å revolusjonere hvordan folk betaler, reiser eller identifiserer seg på nettet, må du sørge for å vekke til live noen følelser som gjør at folk bli glade i løsningen din. De må bli berørt personlig, og de må føle det på ordentlig. Helt inne i det limbiske systemet.
Vi må levere på mer enn funksjonalitet, pålitelighet og brukervennlighet. Både mobilen, internett og kjøkkenbenken fylles opp av nyttige og brukervennlige ting. Skal våre løsninger havne der, må vi i tillegg dekke brukernes følelsesmessige og sosiale behov.
Derfor skal vi snakke om hvordan du kan gjøre dine løsninger til noe som kunden både kan le, smile og gråte sammen med.
Short talk (30 mins) - Suggested by Merete Munch Lange, 7 months ago.
This presentation is a story from my own work life. Had I known what I later learned, I would have tackled the situation better.
Therefore, I want to share my knowledge with the audience; sharing is caring.
My topic is about power abuse and politics,
I believe that the audience can identify with my story, that they will want to explore and discuss it with me and I hope some will share stories of their own. I would like the session to be interactive. This topic is relevant for everybody working in the project world where the core of our work is cooperation I believe the topic to be both relevant and international, and I believe the different strategy solutions can be applied cross professions and across country borders.
Short talk (30 mins) - Suggested by Lauren Goldstein, 7 months ago.
As creatives, especially in the enterprise software field, it’s common for us to start on new projects with no prior domain knowledge. Working in a highly technical field, it is almost a guarantee that learning a new domain is going to be extremely complicated with a steep learning curve. Not only do we need to start designing for this project immediately, but as part of our jobs we need to coordinate on the project and discuss our work with a myriad of people, such as designers, developers and project managers. A lot of the time, we will end up working with people who hold more subject knowledge than we may have, and this often results in feeling scared to speak up in group discussions, thinking we might embarrass ourselves or sound stupid by saying the wrong thing.
In this talk I will focus on some of my own experiences and discuss how instead of being intimidated by subject matter experts in this situation, creatives can re-position their own idea of how to feel like a smart and qualified person in the room. By coming to the table ready to ask questions and not being afraid to share our own point of view, we can show that we are just as able to as anyone to provide great contributions, regardless of our experience in a specific technical domain. You may feel like you're not the “smartest”, or most knowledgeable person in the room, but you still play a vital role on the team and business. By learning how to navigate these types of uncomfortable situations, you can become a stronger contributor than ever.
Short talk (30 mins) - Suggested by Mads Opheim and Anne Landro, 8 months ago.
We dreamed about using Domain driven design, but were stuck in the complex legacy monolith of a case management system.
While all examples and tutorials we found were for trivial domains, we had a lot of domain logic as well as years of inherited corner cases and brain overloads camouflaged as code. That obviously didn't stop us from giving DDD a try.
We have tried DDD in a real world legacy monolith and survived. Now we're here to tell the tale.
In this talk, we share our own experiences from using DDD inside a monolith, as well as lack of DDD, and you will learn to avoid the mistakes we made and how to repeat our success factors.
How do you use DDD in your highly complex legacy project? How do you even get started? We'll help you!
Short talk (30 mins) - Suggested by Espen Dalløkken, 8 months ago.
In a world where green field projects are far and few between our job very often consists of understanding a system someone else has written. Getting thrown into a large system with a complex architecture can be a daunting task. Usually there are developers to talk to or documentation to read, but sometimes none of those exist. Where do you begin when trying to learn about a new system? Which activities can provide valuable insights that you otherwise won’t discover until much later.
This talk will outline some concrete practical strategies I have found useful when being thrown into different systems built by others.
Short workshop (1.5 hours) - Suggested by Tatiana Kolesnikova, 7 months ago.
You all agree that a design system is a great idea, you are inspired by examples of others, but a suggestion “This year we will start building a design system of our own” does not excite your boss or your client? Or you have already started implementing it, but it is not finished and not really used? For many companies creating a design system becomes a huge side project that they are trying to run in addition to the main roadmap. And a huge product that does not become useful before it is finished.
We use lean approach when creating new solutions for the market, but when it comes to design systems a lot of us are still in waterfall era. In this talk we will show how design systems can be implemented the lean way. We will go through five steps that can be taken one by one. We will discuss what to begin with and what to leave for later depending on your product state and goals. We will show, how to establish the foundation that will begin bringing value straight away. We will see how to make the design system robust enough to be able to grow and evolve over time.
You will learn:
- How to find the MVP of a design system for your product;
- How to tie building it in your regular work;
- How to make a design system that is used by everyone from day one.
Short workshop (1.5 hours) - Suggested by J. Rosenbaum, 8 months ago.