Futurice Tech Weeklies
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
 
You Make My Head Spin: Reducing Motion on the Web

You Make My Head Spin: Reducing Motion on the Web

April 16, 2021
Some people suffer physically when they encounter something like parallax scrolling or horizontally scrolling text. It can cause them nausea, dizziness, or other symptoms that can last for hours. These people can turn the "reduce motion" settings ON from the system level. As a developer, you have tools to respect that setting.

In this talk, Eevis discusses why motion can trigger the symptoms mentioned above and what kind of animations can be problematic (this can be surprising for some!). She also shows you how to respect the user’s settings with the prefers-reduced-motion media feature.
 
Presenter: Eeva-Jonna Panula
 

You Make My Head Spin: Reducing Motion on the Web (Audio Only)

You Make My Head Spin: Reducing Motion on the Web (Audio Only)

April 16, 2021
Some people suffer physically when they encounter something like parallax scrolling or horizontally scrolling text. It can cause them nausea, dizziness, or other symptoms that can last for hours. These people can turn the "reduce motion" settings ON from the system level. As a developer, you have tools to respect that setting.

In this talk, Eevis discusses why motion can trigger the symptoms mentioned above and what kind of animations can be problematic (this can be surprising for some!). She also shows you how to respect the user’s settings with the prefers-reduced-motion media feature.
 
Presenter: Eeva-Jonna Panula
 
 
React Error Boundary ft. TDD with Testing Library

React Error Boundary ft. TDD with Testing Library

April 9, 2021

Error Boundary is a React component that catches JavaScript errors anywhere in their child component tree, which enables graceful handling of runtime errors and offers a way to recover from them. The way it is used makes it important to have it well-tested.

In this talk, Layla talks about what error boundaries are and why they are a valuable tool in your React toolbox. She also builds you an example of how to test those error boundaries with React Testing Library using Test-Driven Development.

 

Presenter: Layla Ouyang

 

React Error Boundary ft. TDD with Testing Library (Audio Only)

React Error Boundary ft. TDD with Testing Library (Audio Only)

April 9, 2021

Error Boundary is a React component that catches JavaScript errors anywhere in their child component tree, which enables graceful handling of runtime errors and offers a way to recover from them. The way it is used makes it important to have it well-tested.

In this talk, Layla talks about what error boundaries are and why they are a valuable tool in your React toolbox. She also builds you an example of how to test those error boundaries with React Testing Library using Test-Driven Development.

 

Presenter: Layla Ouyang

 
Adversarial Stylesheets: User-styles for better Accessibility

Adversarial Stylesheets: User-styles for better Accessibility

April 1, 2021

User-defined stylesheets allow users to make customizations to websites with CSS to better accommodate their needs and preferences. For example, users can add back removed focus styles or redefine how sticky elements behave on different zoom levels to help make sites more accessible, when they are otherwise less so.

In this talk, Fotis walks you through how to create and use user-styles and showcases an example of his own user-styles written for Duolingo's website.

Presenter: Fotis Papadogeorgopoulos

 


Adversarial Stylesheets: User-styles for better Accessibility (Audio Only)

Adversarial Stylesheets: User-styles for better Accessibility (Audio Only)

April 1, 2021

User-defined stylesheets allow users to make customizations to websites with CSS to better accommodate their needs and preferences. For example, users can add back removed focus styles or redefine how sticky elements behave on different zoom levels to help make sites more accessible, when they are otherwise less so.

In this talk, Fotis walks you through how to create and use user-styles and showcases an example of his own user-styles written for Duolingo's website.

Presenter: Fotis Papadogeorgopoulos

 

Podbean App

Play this podcast on Podbean App