RSS Amplifier

Blog

Jouni Kantola. Web developer.

I do web. I enjoy doing so.

jouni.kantola.seSource feed ↗14 posts

Dormant Last read · last published · next check
Read 8 days ago and current, but nothing has been published for 5 years.

Written by

Latest posts

Power to the reader

Let me ask you a question. How do your readers prefer to read? All I know about people visiting, are based on what pages have most visits. That information gives me clues about who are reading, but nothing about their preferences. More and more, I've come to read blogs with my browser's Reader View. I've been driven to it. Half the joy of reading is killed by trying to dismiss cookie consent…

Permalinks for Eleventy headings

Quite often I share URLs to a specific section of a web page. For code snippets, on the other hand, I tend to copy & paste. On mobile, the chore of selecting, copying and pasting text is a pain. For a recipient, snippet sharing also results in loss of context . A link would've been more helpful. I'll describe how I use Eleventy, to handle links to sections and code snippets here on the site.…

Call Google Cloud Functions with C#

When using C# and .NET to consume IAM protected cloud functions in Google Cloud Platform (GCP), a lot of information unpacking is needed. In particular, when calls are made from outside of GCP. I hope I can provide a little guidance. Authentication Cloud function invocation is secured by IAM (acronym of Cloud Identity and Access Management). Callers of HTTP Functions need the IAM role…

Generate selfie favicons

Just over 10 years ago, in the green sea off the west coast of Malaysia, I shot an underwater selfie. That image has since become part of my online presence. Now also as favicons, a set generated with Node.js. Face blowing a kiss Until recently, I used an emoji as favicon. The icon set was generated from the Unicode character 😘 with an online favicon generator . I'm pro emoji, but I wanted a more…

No fuzz development with EcmaScript modules

Browser support for EcmaScript modules (ESM) is good. In my opinion, widespread enough to take advantage of to reduce complexity in your development workflow. Let me describe a bundler free approach for developing, unit testing and shipping JavaScript. We'll unit test our code in Node.js and then serve the code unchanged to the browser. Unit testing ES modules By using file extension .mjs with…

The unpragmatic programmer

I have a DIARY.md for logging progress at the gym. It's a long file, partly because I've been consistently going since late 2018. For that, I pat myself on the shoulder. It's also long, because I early on decided to build a web app for logging my sessions. While at it, I figured I'd take on the challenge to build a UI framework. Choosing problem From the get-go, I knew I'd end up with a ton of…

Audit web performance in development environment

I've listed this site into the Eleventy Performance Leaderboard . When doing so, I figured it'd be good to tighten the feedback loop for tracking effect of changes. Shipping to production and then measuring, is a long roundtrip to find a change made performance worse. Production-like performance audits # With a static site generator, like Eleventy, serving its output with a web server enables…

Inline PostCSS generated CSS with Eleventy

Inlining CSS is a common practice for optimizing the critical rendering path . Once you've analyzed and factored out styles blocking rendering, you'll likely want build time enhancements provided by tooling like PostCSS, before inlining. Eleventy shortcode # Eleventy can extend the static site generation with definitions for reusable content. You can utilize this capability to generate your web's…

webpack assets in ASP.NET

As webpack continues to grow in popularity, more tooling evolves for a smooth development experience. This is true for a story with webpack and ASP.NET together as well, at least if you're running .NET Core. I want to share a framework-neutral setup with a satisfactory experience independent of ASP.NET version. I'll describe how to: Integrate webpack 4 with ASP.NET MVC 5 Use webpack's development…

Dark mode toggle

Dark mode for everyone, right? If you're about to add it to your web site, there are a few things to consider: How do you toggle between dark and light mode; by time of day, satisfy operating system settings or user activation? How do you persist the user's choice? How do you reactivate the user's preference on return? Automagic toggle Lately color schemes, especially dark mode, have become…

Decentraliserat lagarbete

Sedan jag nämnde konceptet remote-first lagarbete för min fru så har hon återkommit med jämna mellanrum om att hon inte gillar benämningen. Jag medger att begreppet klingar "hellre än bra". Jag uppskattar hennes engagemang, och tolkar det som positivt att kritiken snabbt istället övergår till att prata om arbetsformen. Enligt mig handlar arbetssättet i huvudsak om att arbetet är där du är .…

Hellre övertydlig, än otydlig

Föreställ dig själv som deltagare i en gruppövning. Mötesrummet har frostade glasväggar. Dörren till rummet står på glänt. Ljudet smiter ut, av och till tydligt, varvat med nästan ohörbart. Du deltar ståendes utanför. "Jämför dessa med de här" säger en av personerna och pekar på whiteboarden i rummet. Förflytta dig i tanken till ditt hemmakontor, fortfarande deltagare i samma övning med…

Närhet är relativt

Med laptopen i knät och solen gassandes över dig, så att du får kisa för att urskilja texten på skärmen. Är det den romantiska bilden du ser framför dig när du tänker på remote-first? Eller är det kanske att få komma undan från öppna kontorslandskap, där du inte får flyt för att du blir störd av frågor och hög ljudnivå? Distansjobb kan ge dig både palmer och sinnesro, men för mig är det främst…

Arbete ekar i huvudet

Har du hört ledmotivet till den tecknade serien En cell-sam historia? "Livet, livet, livet livet, se vad livet ger, ger oss av tiden sin egen rytm, i den värld vi lever, andas lyssnar och ser". Fundera en stund på vad det stycket betyder för dig. Jämför din känsla med när du precis har satt dig på tåget, efter morgonens bestyr och lämning av barn, och får höra att det är ett signalfel som gör att…