This is just minimal personal website and a blog. Just like the old days.
I'm an IT professional, part-time stay-at-home dad with two kids. I love bicycles and good music. I've been making websites since 1996.
Contact
Contact me by email or find me in one of the following services.
Blog Posts
- 2024-11-22 150 Day Streak in Duolingo
- 2024-11-14 New Blog with Gemini Support
- 2024-10-22 Almost There with Wrote
- 2024-10-20 Getting to Know the Gemini Protocol and Gemtext
- 2024-10-11 End of the Week
- 2023-12-15 @naakka at Threads.net
- 2023-09-11 Chrome Hardware Acceleration Issues in Ubuntu 22.04
- 2023-08-25 Fixing Session Fixation
- 2023-08-21 Blogging in Context
- 2023-08-21 Finally Getting a Respberry Pi
- 2023-08-20 Moving on to Stenope
- 2022-07-27 Instagram's New Feed
- 2022-06-23 AWS RDS Automatically Starts Stopped Instances
- 2022-06-23 403 Errors Fixed
- 2022-04-14 AWS Elastic Beanstalk - Dump Environment Variables to .env File
- 2022-03-21 History of RSS and Atom
- 2022-03-17 Raspberry Pi as an iPad Accessory
- 2022-03-10 More Reasons to Run a .onion Site
- 2022-03-10 Enable a TOR Hidden Service for a Clearnet Website
- 2022-03-10 Enable a Hidden Service for a Clearnet Website
- 2022-03-09 CloudWatch Logs and Elastic Beanstalk
- 2022-03-08 Building a Server Side Rendered Symfony App
- 2020-05-04 Wealth to Scale
- 2020-04-20 Surly Steamroller - Fixed Gear
- 2020-03-24 Playing Around with Kindle
- 2019-12-12 Enjoying the Winter with my Steamroller
- 2019-11-16 Surly Steamroller
- 2019-11-16 Playing Around With Lambda@Edge
- 2019-06-14 The age of the Influencer has peaked. It’s time for the slacker to rise again
- 2019-04-05 My New Bike Project: Peugeot PH8
- 2018-09-13 Could Someone Explain the "Link Tax" to Me?
- 2018-05-25 I Don't Know What to Think of GDPR
- 2018-05-25 It's GDPR time!
- 2018-03-20 How Fast is AMP?
- 2018-02-01 Web Manifest Problems and Content Security Policy
- 2017-11-28 Utopia by Björk
- 2017-11-28 Welcome to Helsinki
- 2017-10-05 Just Got My Hands on This
- 2017-10-05 Google's Oct 4th Big Event
- 2017-09-13 Ember Frustration, Data Relationships
- 2017-09-13 The State of Facebook Instant Articles
- 2017-09-13 Don't Use includes(), use indexOf() Instead
- 2017-09-13 Ember "No model was found for `user-role?`"
- 2017-09-13 Dear Google, Why Don't You Know What Kind of Music I Like?
- 2017-09-07 Can't Wait for The National's next Album
- 2017-03-07 Easy Trick to Show Translation only if it Exists in Symfony
- 2017-01-13 Searching
- 2017-01-09 Winter Fog
- 2016-12-15 AWS London Region Open
- 2016-11-30 AWS Elastic Beanstalk: First Impressions
- 2016-11-24 Telegraph by Telegram
- 2016-11-10 Why ContentEditable is Terrible - Medium Perspective
- 2016-11-10 Fresh Coffee from Slurp
- 2016-11-09 Winter is Here
- 2016-11-08 Google Search Going Mobile First
- 2016-11-07 Golden Tree
- 2016-11-04 Mobile Internet Usage Exceeds Desktop
- 2016-10-18 Long Term Support in the JS World
- 2016-10-18 Chat and the Consumerization of IT
- 2016-10-07 JavaScript Frustration
- 2016-10-07 AWS Cognito
- 2016-10-07 Is Facebook a Media Company?
- 2016-10-07 Playing Around with PHP Caching Static Files
- 2016-09-28 AWS CloudFront Supports HTTP/2
- 2016-08-25 SimpleMDE MarkDown Editor
- 2016-07-09 Riding the Trails
- 2016-05-24 Apple Trees
- 2016-04-12 Keep Your WordPress Plugins Updated
- 2016-02-19 Note to Self: Check out Ionic Framework
- 2016-02-02 Walking on Ice
- 2016-01-27 Static Site Generator Buzz
- 2016-01-15 End of the Week Reflections
- 2015-12-20 CloudFront Supports gzip
- 2015-12-12 End of the Vespa Season
- 2015-12-01 Symfony 3.0.0 released
- 2015-11-30 White Birches
- 2015-11-30 Playing Around With Symfony Service Container
- 2015-11-20 Square's Valuation Bubble
- 2015-11-16 Refreshingly Anti-Disruptive Thoughts on Startups
- 2015-11-16 Note to Self: Check out Aurelia
- 2015-10-29 Obfuscating Id's
- 2015-10-28 My First Package
- 2015-10-27 Full Moon
- 2015-10-20 CSS & JS Minification
- 2015-10-19 File Upload in Silex
- 2015-10-16 Friday Afternoon
- 2015-10-02 Angular VS Ember VS React
- 2015-10-02 End of the Week Reflections
- 2015-09-02 ReactJS For Stupid People
- 2015-10-01 Shooting Film
- 2015-07-03 Summer Holiday
- 2015-06-17 Google App Engine for PHP Generally Available
- 2015-06-16 Bike Ride
- 2015-05-05 The Slow Show
- 2015-04-23 Fields, Once Again
- 2015-04-21 Beautiful Spring Afternoon
- 2015-04-07 Easter at the Arctic Circle
- 2015-03-27 Gold Zebra
- 2015-03-26 I Never Get Tired of These Fields
- 2015-03-24 Something Interesting Is Happening
- 2015-03-14 Start of the Vespa Season
- 2015-03-13 Spring Fields
- 2015-03-12 Why ContentEditable is Terrible - Medium Perspective
- 2015-03-12 The New Chromebook Pixel
- 2015-03-09 Spring is Here
- 2015-01-29 Building Blocks
- 2015-01-19 New Duckfeet Soles
- 2015-01-16 Google Street View Goes Finland
- 2015-01-07 Wikipedia Moving to HHVM
- 2014-12-17 New Murakami
- 2014-11-22 Winter Morning
- 2014-11-21 Soundtrack of the Week: Chromatics
- 2014-11-17 React.js & Web Components
- 2014-11-12 Extending Sculpin with Console Commands
- 2014-11-11 Material UI
- 2014-11-01 End of the Vespa Season
- 2013-11-26 Beyond Clean Code
- 2013-11-08 PayPal Moving to node.js
- 2013-04-04 Global Internet Penetration and Ongoing Conflicts Around the World
- 2013-02-16 Posterous Shuts Down, Here Comes Posthaven
- 2013-02-12 Moving on to Silex from Legacy PHP
- 2013-01-21 The Future of ICT
- 2013-01-17 Lenovo Chromebook Announced
- 2013-01-17 Upgraded Ubuntu, Webapps Rock
- 2013-01-04 Kisai Watches
- 2013-01-03 Ubuntu for Phones
- 2012-12-05 Ubuntu Web Apps
- 2012-11-19 Great Web Color Combinations
- 2012-11-18 Great HTML5 Presentations with reveal.js
- 2012-11-14 Scaling a Silex Code Base
- 2012-10-31 Add to Home Screen
- 2012-01-03 Remember not to Use ID as the First Column Name of a CSV File
- 2011-06-20 Great Elgg Reference from Arck Interactive
- 2010-08-17 How to Build Your Own Social Network with Elgg
Articles
Here are some longer posts that didn't quite fit in the blog.