Futurice Tech Weeklies
Adventures in Laziness - Solving FizzBuzz without checking x/y

Adventures in Laziness - Solving FizzBuzz without checking x/y

November 12, 2021
While many languages support laziness in some form, be it by explicit data types or generators, it is not one of the best understood features. In this live coding session, Jan shows you how to solve FizzBuzz using laziness and without any "x divides y" checks – first using Haskell, which is lazy by default, and then we will adapt the solution to work in other languages.
 
Presenter: Jan van Brügge
 

Adventures in Laziness - Solving FizzBuzz without checking x/y (Audio Only)

Adventures in Laziness - Solving FizzBuzz without checking x/y (Audio Only)

November 12, 2021
While many languages support laziness in some form, be it by explicit data types or generators, it is not one of the best understood features. In this live coding session, Jan shows you how to solve FizzBuzz using laziness and without any "x divides y" checks – first using Haskell, which is lazy by default, and then we will adapt the solution to work in other languages.
 
Presenter: Jan van Brügge
 
Eleventy + Ghost + Netlify Functions: A case study of building a personal website

Eleventy + Ghost + Netlify Functions: A case study of building a personal website

November 5, 2021
Juha-Matti Santala's (Juhis) personal website was built with Eleventy. And over time, he has added functionality and workflow improvements with Ghost Headless CMS and serverless Netlify Functions. It's as messy as real-life side-projects come and in this session he shares the details of the techstack, flow, and observations from using these different tools together to build a fast static website with an enjoyable blog-writing experience.
 
Presenter: Juha-Matti Santala
 

Eleventy + Ghost + Netlify Functions: A case study of building a personal website (Audio Only)

Eleventy + Ghost + Netlify Functions: A case study of building a personal website (Audio Only)

November 5, 2021
Juha-Matti Santala's (Juhis) personal website was built with Eleventy. And over time, he has added functionality and workflow improvements with Ghost Headless CMS and serverless Netlify Functions. It's as messy as real-life side-projects come and in this session he shares the details of the techstack, flow, and observations from using these different tools together to build a fast static website with an enjoyable blog-writing experience.
 
Presenter: Juha-Matti Santala
 
 
You might not want OpenID

You might not want OpenID

October 27, 2021
The modern de facto solution to identity management is OpenID Connect. OIDC and OAuth2 come with their own problems though. The intention of this session is to look at some of the problems these frameworks bring, to look at some alternatives to OpenID for identity in your applications and what kinds of cases they might be applicable in. 
 
Presenter: Mikael Viitaniemi
 

You might not want OpenID (Audio Only)

You might not want OpenID (Audio Only)

October 27, 2021
The modern de facto solution to identity management is OpenID Connect. OIDC and OAuth2 come with their own problems though. The intention of this session is to look at some of the problems these frameworks bring, to look at some alternatives to OpenID for identity in your applications and what kinds of cases they might be applicable in. 
 
Presenter: Mikael Viitaniemi
 
The power of Fundamental Abstractions

The power of Fundamental Abstractions

July 9, 2021
Many programming languages have collected a variety of features or idioms over the years.
 
For example, Python has List comprehensions. JavaScript and Kotlin have Optional chaining.  Both JavaScript and Rust have async/await. In GO, it is normal to check if err != nil among others.
 
But if you take a step back, the fact is that all those features are the same thing! This is the power of fundamental abstractions.
 
Presenter: Jan van Brügge
 

The power of Fundamental Abstractions (Audio Only)

The power of Fundamental Abstractions (Audio Only)

July 9, 2021
Many programming languages have collected a variety of features or idioms over the years.
 
For example, Python has List comprehensions. JavaScript and Kotlin have Optional chaining.  Both JavaScript and Rust have async/await. In GO, it is normal to check if err != nil among others.
 
But if you take a step back, the fact is that all those features are the same thing! This is the power of fundamental abstractions.
 
Presenter: Jan van Brügge
 
A beginners guide to OpenID Connect

A beginners guide to OpenID Connect

July 2, 2021
Lessons Learned from moving futuLog to Okta
 
In 2020, we built futuLog, an internal tool to help us manage the office usage during the pandemic. With futuLog, employees can book a slot at the office to make sure they'll have space with the pandemic restrictions. 
We decided early on that eventually we want to open source futuLog. But making something open source takes more than just changing the repository to public. What use would futuLog be to others if it required Futurice infrastructure to actually run?
 
For instance, to build futuLog quickly we used playswarm, an internal environment that takes care of authentication and hosting. While the hosting part is easy, having single sign on for all Futurice employees is not.
 
So as a step towards open sourcing it, Jan spent the last month implementing and debugging the OpenID connect protocol that allows futuLog to talk to Okta and similar identity services directly. This talk is a collection of lessons learned in the journey that took Jan from knowing nothing about OpenID, to deploying it to production.
 
Presenter: Jan van Brügge
 

A beginners guide to OpenID Connect (Audio Only)

A beginners guide to OpenID Connect (Audio Only)

July 2, 2021
Lessons Learned from moving futuLog to Okta
 
In 2020, we built futuLog, an internal tool to help us manage the office usage during the pandemic. With futuLog, employees can book a slot at the office to make sure they'll have space with the pandemic restrictions. 
We decided early on that eventually we want to open source futuLog. But making something open source takes more than just changing the repository to public. What use would futuLog be to others if it required Futurice infrastructure to actually run?
 
For instance, to build futuLog quickly we used playswarm, an internal environment that takes care of authentication and hosting. While the hosting part is easy, having single sign on for all Futurice employees is not.
 
So as a step towards open sourcing it, Jan spent the last month implementing and debugging the OpenID connect protocol that allows futuLog to talk to Okta and similar identity services directly. This talk is a collection of lessons learned in the journey that took Jan from knowing nothing about OpenID, to deploying it to production.
 
Presenter: Jan van Brügge
 
AWS Lambda - The Swiss Army Knife of Software Development(?)

AWS Lambda - The Swiss Army Knife of Software Development(?)

June 18, 2021
Serverless has become the buzzword of the recent years.

Most people think of Lambda when hearing Serverless. But Lambdas are literally just a tiny part in that field. Who would have thought that a tiny function goes big and become a crucial part of Software Development!
This talk reveals what you are capable of while using AWS Lambda, the Serverless Compute Service of Amazon. We will determine some architectural approaches such as Microservices, Monolith, or ETL/ELT, and try to answer whether you can do Machine Learning with Lambdas.
 
Presenter: John Nguyen
 

AWS Lambda - The Swiss Army Knife of Software Development(?) (Audio Only)

AWS Lambda - The Swiss Army Knife of Software Development(?) (Audio Only)

June 18, 2021
Serverless has become the buzzword of the recent years.

Most people think of Lambda when hearing Serverless. But Lambdas are literally just a tiny part in that field. Who would have thought that a tiny function goes big and become a crucial part of Software Development!
This talk reveals what you are capable of while using AWS Lambda, the Serverless Compute Service of Amazon. We will determine some architectural approaches such as Microservices, Monolith, or ETL/ELT, and try to answer whether you can do Machine Learning with Lambdas.
 
Presenter: John Nguyen
 
Parse, don’t validate - In Java

Parse, don’t validate - In Java

May 13, 2021

"Parse, don't validate" is an approach to modeling data such that it is impossible to construct without verifying the integrity of the data first. Thus when using such data, one can be sure that it is already in the correct shape and no further validation is necessary.

In short, this approach makes it explicit where your data gets refined. This blog by Alexis King uses examples in Haskell, mostly because the language has a short and concise syntax. To show that such an approach works in any other language too (albeit with a bit more boilerplate approach), Jan will also demonstrate it in Java.

 
Presenter: Jan van Brügge
 

Parse, don’t validate - In Java (Audio Only)

Parse, don’t validate - In Java (Audio Only)

May 13, 2021

"Parse, don't validate" is an approach to modeling data such that it is impossible to construct without verifying the integrity of the data first. Thus when using such data, one can be sure that it is already in the correct shape and no further validation is necessary.

In short, this approach makes it explicit where your data gets refined. This blog by Alexis King uses examples in Haskell, mostly because the language has a short and concise syntax. To show that such an approach works in any other language too (albeit with a bit more boilerplate approach), Jan will also demonstrate it in Java.

 
Presenter: Jan van Brügge
 
Learn from your mistakes

Learn from your mistakes

May 6, 2021
In this edition of Tech Weeklies, Olavi shares his learnings from creating and maintaining a Sailfish OS app for tracking working hours, called Working Hours Tracker. It was a project he started in 2014 and has been developing and maintaining it ever since. The most recent version of the app was released in February 2021.
At the time of starting this project, Olavi had been studying for a few years, and had little real world experience in software projects. As we all know, most of the learning happens at work or when doing some side projects. His limited experience and knowledge led to some of the interesting mistakes made during the project. This talk covers some of those mistakes and the lessons he learned from them.
 
Presenter: Olavi Haapala
 

Learn from your mistakes (Audio Only)

Learn from your mistakes (Audio Only)

May 6, 2021
In this edition of Tech Weeklies, Olavi shares his learnings from creating and maintaining a Sailfish OS app for tracking working hours, called Working Hours Tracker. It was a project he started in 2014 and has been developing and maintaining it ever since. The most recent version of the app was released in February 2021.
At the time of starting this project, Olavi had been studying for a few years, and had little real world experience in software projects. As we all know, most of the learning happens at work or when doing some side projects. His limited experience and knowledge led to some of the interesting mistakes made during the project. This talk covers some of those mistakes and the lessons he learned from them.
 
Presenter: Olavi Haapala
 
Have you tried Deno yet?

Have you tried Deno yet?

April 29, 2021
The creator of Node.js, Ryan Dahl, released a new shiny runtime for Javascript and TypeScript in 2018 called Deno. Release 1.0 finally came out in 2020, and eager developers flocked to use Deno in production. Or did they?
In this TechWeeklies talk, Minna briefly introduces the features and design aims of Deno. Then she addresses the obligatory question "how does it compare to Node?". The talk also includes a live coding demo to showcase how easy it is to use Deno for your daily ad-hoc scripting needs.
 
Presenter: Minna Niemi
 

Have you tried Deno yet? (Audio Only)

Have you tried Deno yet? (Audio Only)

April 29, 2021
The creator of Node.js, Ryan Dahl, released a new shiny runtime for Javascript and TypeScript in 2018 called Deno. Release 1.0 finally came out in 2020, and eager developers flocked to use Deno in production. Or did they?
In this TechWeeklies talk, Minna briefly introduces the features and design aims of Deno. Then she addresses the obligatory question "how does it compare to Node?". The talk also includes a live coding demo to showcase how easy it is to use Deno for your daily ad-hoc scripting needs.
 
Presenter: Minna Niemi
 
A brief tour of next-gen JavaScript build tools

A brief tour of next-gen JavaScript build tools

April 22, 2021
Getting a modern JS project from git to running in a terminal takes ages. There is the installation of dependencies, running the server, running the bundler, maybe a type-checker, the CSS pipeline. There are watchers watching watchers, and the whole thing makes both my head and your computer's fans spin. The setup is yet more complex once you start adding multiple projects in one codebase, when you think of Server-Side Rendering and so on.
 
This delay has a real impact on people being able to contribute to the codebase, especially when it comes to iterative UI work. Trying to make things faster in the current (by some definition) model hits diminishing returns, and takes active time and budget to do right. For example, over three years Fotis has reworked his current project's pipeline four times, and while it was faster each time, it still can be a challenge!
 
In this talk, Fotis tries a different approach. He will give you a brief tour of modern tools that rethink how dependencies are bundled in development, and the very real gains that they offer.
 
Presenter: Fotis Papadogeorgopoulos
 

A brief tour of next-gen JavaScript build tools (Audio Only)

A brief tour of next-gen JavaScript build tools (Audio Only)

April 22, 2021
Getting a modern JS project from git to running in a terminal takes ages. There is the installation of dependencies, running the server, running the bundler, maybe a type-checker, the CSS pipeline. There are watchers watching watchers, and the whole thing makes both my head and your computer's fans spin. The setup is yet more complex once you start adding multiple projects in one codebase, when you think of Server-Side Rendering and so on.
 
This delay has a real impact on people being able to contribute to the codebase, especially when it comes to iterative UI work. Trying to make things faster in the current (by some definition) model hits diminishing returns, and takes active time and budget to do right. For example, over three years Fotis has reworked his current project's pipeline four times, and while it was faster each time, it still can be a challenge!
 
In this talk, Fotis tries a different approach. He will give you a brief tour of modern tools that rethink how dependencies are bundled in development, and the very real gains that they offer.
 
Presenter: Fotis Papadogeorgopoulos
 
Podbean App

Play this podcast on Podbean App