rssed

a collection of dev rss feeds - blogroll

Add a new feed


Juha-Matti Santala - Community Builder. Dreamer. Adventurer.

Posts

Syntax Error #14: I don't know ๐Ÿ”—

Syntax Error is a newsletter about debugging for developers, students, hobbyists, curious and duck fans. For this May issue, I wrote about starting [...]

Recap of 11ty International Symposium on Making Web Sites Real Good ๐Ÿ”—

Eleventy (aka 11ty). Itโ€™s not only a really good static-site generator but also a center piece of a wonderful community of web developers, blogger [...]

Two small hockey web projects ๐Ÿ”—

Koodiklinikka where we have an active sports fan sub community going on. For both of them, I built small web projects to make them a bit more fun [...]

But someone already wrote about it ๐Ÿ”—

Jimmy Carrโ€™s Before and Laughter and this quote resonated strongly with me: โ€œSometimes, noticing whatโ€™s already there will seem obvious to you, [...]

The nook of creativity ๐Ÿ”—

IndieWeb Carnival is hosted by yours truly! โœจ The topic is creative environments and if you want to particate, learn more about the carnival, [...]

The importance of momentum in writing ๐Ÿ”—

WeblogPoMo going on and while Iโ€™m skipping that in favor of writing daily in August during Blaugust, Iโ€™m reading a lot of other peopleโ€™s posts and [...]

Indie Web Carnival May 2024: Creative environments ๐Ÿ”—

Iโ€™m hosting the next Indie Web Carnival edition in May 2024. The topic of the month is creative environments and if that intrigues you, contin [...]

The Future of Jamstack panel discussion ๐Ÿ”—

Earlier this month we had a fantastic panel discussion about the future of the Jamstack community. It was a follow up discussion to the one I had [...]

Good enough as a power for good ๐Ÿ”—

IndieWeb Carnival, Aaron invited us to think about whatโ€™s โ€œgood enoughโ€ and what ramifications can it have on quality: Personally, I think th [...]

index.md is a valid Eleventy project ๐Ÿ”—

Eleventy, my favorite static site generator right now, and I had an epiphany. Iโ€™ve been using Eleventy to build my own and my communitiesโ€™ sites f [...]

Prepare, Perform, Ponder ๐Ÿ”—

Prepare Perform Itโ€™s the other two parts that make this interesting. Ponder run a startup accelerator back in the day, I learned a super valuable le [...]

I can :has() cheeseburger ๐Ÿ”—

All the most used browsers now support the :has() pseudo-class, which is one of the most exciting additions to CSS in a long time. Ever sin [...]

Markdown - the trade-offs of simplicity ๐Ÿ”—

The pros and cons of using Markdown found its way to my RSS reader the other day. In it, he writes about the good and bad of Markdown in technical [...]

Sharing podcast episodes is weird ๐Ÿ”—

Thereโ€™s one thing I struggle to share: podcast episodes. Anil Dash wrote about how saying โ€œWherever you get your podcastsโ€ is a radical statement, [...]

Documentation pages from dotfiles with config-renderer ๐Ÿ”—

tmux configuration. A .tmux.conf file might look something like this: set -g @plugin 'tmux-plugins/tpm' set -g @plugin 'catppuccin/tmux' set [...]

Full-text RSS feed is an offline-friendly act ๐Ÿ”—

My main connection to abroad is crossing the Baltic Sea with a boat. A boat ride from Turku to Stockholm takes roughly 10-12 hours and a boat ride f [...]

Chance of serendipity ๐Ÿ”—

why one should attend conferences: Meeting someone, or seeing a talk, could change the trajectory of your career. You might choose a product co [...]

Traveling through time ๐Ÿ”—

After I published my review for The Lazarus Project, I was followed in Mastodon by Time Travel Research Community and I learned about the Kron [...]

I had a chat about personal web at The Future of Jamstack ๐Ÿ”—

Mike Neumegen from CloudCannon has been running a great series of interviews about Jamstack and related topics at The Future of Jamstack. He r [...]

I completed #100DaysToOffload ๐Ÿ”—

100 Days To Offload is a blog challenge set up by Kev Quirk to encourage people to write blog posts more consistently. It has very simple set [...]

Recent evolution of my note taking systems ๐Ÿ”—

The imperfect mess of note taking. At that time, my notes were all over the place. I had small things written here and there, used multiple analog a [...]

My most used bookmarklets ๐Ÿ”—

Last week I shared my love for Firefoxโ€™s Keyword search feature. This week, I want to expand that love to bookmarklets. Jeremy Keith wrote abou [...]

Syntax Error #13: Playgrounds ๐Ÿ”—

Syntax Error is a newsletter about debugging for developers, students, hobbyists, curious and duck fans. For this March issue, I wrote about online [...]

On content creation and personal web ๐Ÿ”—

Build yourself a website! You donโ€™t have to be a โ€œcontent creatorโ€ to have a website last Thursday. Itโ€™s a great piece and I wholeheartedly agree wi [...]

Search directly on a website with Firefox bookmark keywords ๐Ÿ”—

PkmnCards website to search information about cards. You can head over to the site, find the search field, write your query and hit enter. [...]

Thoughts on accessibility in personal web ๐Ÿ”—

IndieWeb Carnival is hosted by orchids on the topic of accessibility in small web: Learning everything about accessibility is not a realist [...]

Chestertonโ€™s Fence and tech documentation ๐Ÿ”—

Chestertonโ€™s Fence is a concept in public policy that states: The principle that reforms should not be made until the reasoning behind the ex [...]

Display full URL after a link when a page is printed ๐Ÿ”—

a snippet in CSS-Tricks - checks notes - 15 years ago. @media print { a::after{ content: " (" attr(href) ") "; } } my website into my web [...]

Search, Webmentions and microformats ๐Ÿ”—

I have recently been updating this website with new features! Letโ€™s talk about them. Search a Youtube video by Coding in Public, I decided to add [...]

THE Eleventy Meetup Feb 20th ๐Ÿ”—

a great event at THE Eleventy Meetup. Building a meetup community site using Global Data Files, Juhis Video / Slides Community websites [...]

Pull request is my proposal for changes ๐Ÿ”—

Ellie Huxtable asked in Mastodon recently (emphasis mine): How would you feel if a maintainer pushed a formatting change/simple lint fix to [...]

Talk ideas for new and experienced speakers ๐Ÿ”—

You can be a beginner and also a speaker, blogger, or participant. Terminology: I use the word technology to mean nearly anything in the tech [...]

Thank you, Startuplifers ๐Ÿ”—

Startuplifers (formerly known as Startup Life, hence my use of that name later in the post): Today marks the end of a remarkable era. Startupli [...]

Syntax Error #12: Browser Extension Debugging ๐Ÿ”—

Syntax Error is a newsletter about debugging for developers, students, hobbyists, curious and duck fans. In this 1 year anniversary birthday issue o [...]

We organized a Code in the Dark event ๐Ÿ”—

Code in the Dark. We organized one with our Turku โค๏ธย Frontend community back in 2017 and ever since, every now and then itโ€™s popped up in discussi [...]

Stickers tell stories ๐Ÿ”—

Hereโ€™s my current laptop and some of the stories the stickers tell: Let me share some of those stories and stickers with you. Webbidevaus.fi is a Fi [...]

Public notes ๐Ÿ”—

I have been following a mindset of learning in public for quite a few years now. In a nutshell, it means openly sharing what Iโ€™m learning, what [...]

Anonymous, asynchronous friendships ๐Ÿ”—

This monthโ€™s IndieWeb Carnival is hosted by Manuel Moreale who chose a brilliant topic of digital relationships. topic for the month of Feb [...]

Highlight Mastodon posts by hashtag with Stylus and :has ๐Ÿ”—

followed accounts who used the hashtag from non-followed accounts whose post is on my feed because I follow the hashtag. But itโ€™s a smaller issu [...]

I like to glue things together ๐Ÿ”—

Whatever happened toย programming? from 2010 by Mike Taylor. In it, Mike argues that development has lost its appeal to him because itโ€™s so much of [...]

We have a great developer community scene in Turku ๐Ÿ”—

Letโ€™s take a look at whatโ€™s happening in Turku. Turku โค๏ธย Frontend Turku โค๏ธย Frontend is a community for people interested in frontend web development [...]

Please, donโ€™t force me to log in ๐Ÿ”—

It feels like everything these days needs you to create an account and log in to use them. Philips Hue announced you need to plug your homeโ€™s ligh [...]

Python Bytes featured Syntax Error ๐Ÿ”—

I woke up yesterday with my phone full of notifications from different people. It turns out, the wonderful duo of Michael Kennedy and Brian Okken fr [...]

Community websites with Eleventy ๐Ÿ”—

Update: I did a talk about this in THE Eleventy Meetup 20.2.2024, you can watch a recording in Youtube. Eleventy is a great and powerful s [...]

The Lazarus Project (review) ๐Ÿ”—

This post includes major spoilers for the first season of the 2022 TV series The Lazarus Project. If you havenโ€™t seen it yet, go watch it and then [...]

A few core memories ๐Ÿ”—

This blog post is my participation in this monthโ€™s Indie Web Carnival. Itโ€™s also my first time participating as I learned about the whole thing at [...]

I wish Python had Integer.times ๐Ÿ”—

Advent of Code puzzles. Looping n times In Ruby, integers have a method Integer#times that returns an Enumerator with values from 0 to n [...]

Syntax Error #11: Debugging Python ๐Ÿ”—

Syntax Error is a newsletter about debugging for developers, students, hobbyists, curious and duck fans. In this January issue of Syntax Error I s [...]

Debugging Python ๐Ÿ”—

This blog post is a written form of my presentation Debugging Python (recently given in PyCon Sweden โ€˜23 and archipylago #1). What is debugging? [...]

Join us at Future Frontend 2024 ๐Ÿ”—

Future Frontend 2024 will be organized in Paasitorni, Helsinki June 13-14! Last year, we pivoted from React Finland conferences to a slightly [...]

Write it anyway ๐Ÿ”—

I was reading Jamesโ€™ blog and on one of his recent posts, How a blog post came to be: Behind the scenes, he wrote about the uncertainty of posting w [...]

Workaround for Notionโ€™s lack of heading levels ๐Ÿ”—

The issue with headings use Notion as my headless CMS for these blog posts. I recently ran into an issue as I need to add fourth heading level (<h4>) [...]

Advent of Code 2023 retrospective ๐Ÿ”—

Last month was spent once again helping elves figure out this Christmas thing. Iโ€™m of course talking about Advent of Code, developersโ€™ puzzle adve [...]

Year in Review 2023 ๐Ÿ”—

Introduction Year Compass that provides nice prompts to take a look at the previous year and plan for the next. Previous years 2016, 2017, 2 [...]

Merry Christmas! ๐Ÿ”—

The year is near its end and itโ€™s time to take a break from all the things and spend the Christmas time with the family. If youโ€™ve been part of [...]

Syntax Error #10: Debugging knowledge base ๐Ÿ”—

Syntax Error is a newsletter about debugging for developers, students, hobbyists, curious and duck fans. In this December issue of Syntax Error I shar [...]

Two months with Obsidian ๐Ÿ”—

I love taking notes. Iโ€™m a note-taking geek. In the beginning of the year, I wrote about my imperfect mess and Iโ€™ve had a lot of notes related d [...]

Weโ€™re building community for Python developers ๐Ÿ”—

Itโ€™s been 8 years since I started Turku โค๏ธย Frontend community. I had always been more of a backend developer but as I transitioned into a non-de [...]

Advent of Code is just around the corner ๐Ÿ”—

For the past 8 years, developers around the globe have gathered together to solve daily puzzles from Advent of Code. And this year is no exception [...]

Three travel essentials ๐Ÿ”—

There are three small items that are my absolute essential travel items. 100W 4-port charger Ugreen Nexode 100W GaN 4-port charger. With just one bric [...]

People and Blogs newsletter ๐Ÿ”—

Couple of weeks ago, I ran into a newsletter called People and Blogs by Manuel Moreale. Itโ€™s a weekly newsletter (with RSS feed โค๏ธ) where each w [...]

Syntax Error #9: Distilling the minimum example ๐Ÿ”—

Syntax Error is a newsletter about debugging for developers, students, hobbyists, curious and duck fans. In this November issue of Syntax Error I [...]

What's in the name? The story behind my domain ๐Ÿ”—

Matthias Ott runs a newsletter Own Your Web and in its second issue he wrote about the domains that people have chosen for their personal blogs. [...]

Done is the engine of more ๐Ÿ”—

โ€œDone is the engine of moreโ€ is the 13th item on the Cult of Done Manifesto by Bre Pettis and Kio Stark. And itโ€™s the item that resonates most wit [...]

Use SQL to query your CSV files ๐Ÿ”—

csvkit is a magnificent toolbox of different tooling to manage CSV data on the command line. Today Iโ€™m focusing on one tool in it: csvsql. It [...]

Learning Rust #10: Added new feature with a HashMap ๐Ÿ”—

In December 2020 I finally started learning Rust and built and published my first app with Rust: 235. Learning Rust is a blog series that is defin [...]

Showing most popular posts with Netlify Analytics ๐Ÿ”—

If youโ€™re visiting this blog on a window size large enough to see the sidebar on the right side of the this page, you can see thereโ€™s a new section: [...]

Priority order when you start blogging ๐Ÿ”—

Letโ€™s say you have decided to start a blog. Congratulations, itโ€™s a good decision. I think everyone should at least consider having a blog. Now th [...]

Great details on conference badges ๐Ÿ”—

Over the past decade, Iโ€™ve been to quite a few events that had different styles of event badges. The simplest ones for smaller events only had my na [...]

Syntax Error #8: What we can learn from hardware debugging? ๐Ÿ”—

Syntax Error is a newsletter about debugging for developers, students, hobbyists, curious and duck fans. In this October issue of Syntax Error I took [...]

I got to show you this ๐Ÿ”—

It was 3:30 in the morning. I was sitting on the edge of my bed with my laptop on my night stand and I was cheering for a red marble to defeat a blu [...]

Handling JSON on command line ๐Ÿ”—

JSON is one of my favorite formats for data as it balances human readability/writeability with ease of parsing programmatically. In the modern sof [...]

Document your secrets ๐Ÿ”—

secrets in your software project. API keys, tokens and other secrets should never enter version control (or they will eventually leak by accident) [...]

Traveling Europe on land: Turku to Prague ๐Ÿ”—

As someone who doesnโ€™t fly, living in Finland makes traveling in Europe a bit challenging. While I lived in Berlin, I truly enjoyed the privilege of [...]

How you can make conferences better ๐Ÿ”—

The Price of the Hallway Track and I wanted to follow up on that. In that blog post from 2019, Hynek criticizes a trend where people overly p [...]

Syntax Error #7 ๐Ÿ”—

Syntax Error is a newsletter about debugging for developers, students, hobbyists, curious and duck fans. In this September issue of Syntax Error we lo [...]

Pull requests are great ๐Ÿ”—

What legit benefit is there for pull requests for teams that trust each other? And Iโ€™ve seen this sentiment quite often: some people consider [...]

My iterative approach to software development ๐Ÿ”—

To illustrate this blog post, I made these beautiful pictures in Keynote: wibbly-wobbly. Now that I know and am confident I can reach the goal, Iโ€™m co [...]

Blaugust 2023: Lessons Learned ๐Ÿ”—

I completed Blaugust 2023! Iโ€™m a very proud owner of a Diamond Rainbow Award for publishing 31 posts in 31 days during Blaugust 2023. It was qu [...]

Use pangrams to avoid mistakes in conference badge prints ๐Ÿ”—

The quick brown fox jumps over the lazy dog. If youโ€™ve ever worked with computers or fonts, I bet youโ€™ve seen that seemingly nonsense sentence [...]

My First 100K ๐Ÿ”—

pomada creme donut and a Moomin raspberry soda. The growth has been very slow and steady over the years but then this summer it absolutely bl [...]

Custom cookie consent for video embeds ๐Ÿ”—

Embedding media into a website comes with an annoyance as those embeds set cookies and track your readers. But sometimes it can be worth it, so I wa [...]

Compressing overlapping strings in Python ๐Ÿ”—

A friend published a challenge in one of our Discord groups: The Challenge Goal: Given a list of N strings, your task is to create a new string t [...]

Where do my links live? ๐Ÿ”—

Chris Coyierโ€™s How do I save links for later? and it sparked many thoughts in my head. As someone who also thinks about these kind of things a lot [...]

6 months of recovery, how is life? ๐Ÿ”—

Content warning: This post deals with mental health, struggling recovery of burnout and depressive feelings and thoughts. If youโ€™re not interested [...]

Building Dark Mode for hamatti.org ๐Ÿ”—

Iโ€™m one of the people whoโ€™s answer to โ€œlight or dark modeโ€ is 95% of the time: โ€œwhatever is the defaultโ€. This is especially true in web where [...]

Letโ€™s talk about Steam Deck ๐Ÿ”—

My first impression of Steam Deck after 10 months or so is: itโ€™s what I wished Nintendo Switch would have been. Iโ€™ve been a very happy camper [...]

Website rewrite and switching to Notion as CMS ๐Ÿ”—

I built this current website with Eleventy 0.8 in early 2019. I would write my blog posts with Markdown inside VS Code, build with Eleventy and depl [...]

Stardew Valley Mods I use ๐Ÿ”—

Stardew Valley is a lovely farming and adventure game created by ConcernedApe. It originally came out in February of 2016 and has gotten a few qui [...]

Youtubers I watch ๐Ÿ”—

Tricky Gym Andrew Mahoneโ€™s Tricky Gym. Andrew is a accomplished competitive player and a very entertaining content creator. I really like that despi [...]

Bloggers I read: Saturday ๐Ÿ”—

I follow over a 100 tech blogs in my RSS reader actively and this week Iโ€™ve picked ~25 of my favorites to share with you. The blogs are not in any [...]

Bloggers I read: Friday ๐Ÿ”—

I follow over a 100 tech blogs in my RSS reader actively and this week Iโ€™ve picked ~25 of my favorites to share with you. The blogs are not in any [...]

Syntax Error #6: Debugging CSS ๐Ÿ”—

Syntax Error is a newsletter about debugging for developers, students, hobbyists, curious and duck fans. In this August issue of Syntax Error we look [...]

Bloggers I read: Thursday ๐Ÿ”—

I follow over a 100 tech blogs in my RSS reader actively and this week Iโ€™ve picked ~25 of my favorites to share with you. The blogs are not in any [...]

Bloggers I read: Wednesday ๐Ÿ”—

I follow over a 100 tech blogs in my RSS reader actively and this week Iโ€™ve picked ~25 of my favorites to share with you. The blogs are not in any [...]

Bloggers I read: Tuesday ๐Ÿ”—

I follow over a 100 tech blogs in my RSS reader actively and this week Iโ€™ve picked ~25 of my favorites to share with you over the next 5 days. The b [...]

Pokemon tools updated for Obisidian Flames ๐Ÿ”—

Pokemon TCGโ€™s newest set, Obisidian Flames was published last Friday, August 11th and for me, that means it was time to update my Gym Leader Cha [...]

Desert Island Discs ๐Ÿ”—

Desert Island Discs is a fantastic, long-running (since 1942!) BBC radio show where they interview people through a classic format of "what would [...]

Future Frontend 2023 Recap ๐Ÿ”—

It's been a while since my last conference, DevRelCon in Prague in December. Earlier this summer, we organized Future Frontend in Helsinki to gather t [...]

Projects I'm proud of: Teaching programming ๐Ÿ”—

Blaugust is a month-long event that takes place in August each year that focused on blogging and other serialized content. The goal is to stoke the fi [...]

Projects I'm proud of: Potluck ๐Ÿ”—

Blaugust is a month-long event that takes place in August each year that focused on blogging and other serialized content. The goal is to stoke the fi [...]

Projects I'm proud of: Newsletters ๐Ÿ”—

Blaugust is a month-long event that takes place in August each year that focused on blogging and other serialized content. The goal is to stok [...]

Projects I'm proud of: Turku โค๏ธ Frontend ๐Ÿ”—

Blaugust is a month-long event that takes place in August each year that focused on blogging and other serialized content. The goal is to stoke the fi [...]

Projects I'm proud of: Boost Turku & Startup Journey ๐Ÿ”—

Blaugust is a month-long event that takes place in August each year that focused on blogging and other serialized content. The goal is to stok [...]

Tools don't matter - until they do ๐Ÿ”—

Blaugust is a month-long event that takes place in August each year that focused on blogging and other serialized content. The goal is to stok [...]

What makes a blog post a blog post? ๐Ÿ”—

Blaugust is a month-long event that takes place in August each year that focused on blogging and other serialized content. The goal is to stok [...]

Where to publish your blog? ๐Ÿ”—

Blaugust is a month-long event that takes place in August each year that focused on blogging and other serialized content. The goal is to stok [...]

Build an idea bank and never run out of blog ideas ๐Ÿ”—

Blaugust is a month-long event that takes place in August each year that focused on blogging and other serialized content. The goal is to stok [...]

A bunch more of small game reviews: Dredge, Dishonored, Farm Keeper ๐Ÿ”—

Blaugust is a month-long event that takes place in August each year that focused on blogging and other serialized content. The goal is to stok [...]

Blaugust 2023, here we come ๐Ÿ”—

Blaugust is a month-long event that takes place in August each year that focused on blogging and other serialized content. The goal is to stok [...]

Blog comments via Mastodon ๐Ÿ”—

For quite a while, I've wanted to enable some way to comment on my blog posts as that can provide a great way to get more opinions, points of views [...]

What tech docs can learn from video game tutorials? ๐Ÿ”—

Your job is to write the documentation, including some get started guides and tutorials, for your company's or project's software. The software is b [...]

Syntax Error #5: Python breakpoints ๐Ÿ”—

Syntax Error is a newsletter about debugging for developers, students, hobbyists, curious and duck fans. This fifth issue talks about debugging Pytho [...]

Hey dev student: you should study creative writing ๐Ÿ”—

One of the key skills in modern worklife is the ability to communicate with other people. Communication itself is a vast field of skills but for softw [...]

Give your commands consistent names ๐Ÿ”—

A lot of modern software development involves running different kind of scripts or commands. If you're a Javascript developer, you might use npm r [...]

Document outdated components ๐Ÿ”—

One of the realities of code bases that they don't teach you at school is that they evolve, often bit by bit. What that means is that there's rarely a [...]

How to network while being beneficial to oneself professionally? ๐Ÿ”—

There's a great question in workplace.stackexchange.com about networking from Dec 2022 (I'm quoting the original question here, not the edited-by-anot [...]

Writing documentation is a great tool to improve software quality ๐Ÿ”—

I had a great day at work yesterday. I'm on the final stretch of developing a larger feature and as part of it, I had written code to make it feature [...]

I found new great games ๐Ÿ”—

Last few weeks have been great on the gaming side of things. First, LudoNarraCon, my highlight of the gaming year, was organized. It is an annual digi [...]

I got my hands on the finished product (Potluck) ๐Ÿ”—

Yesterday was a beautiful day. The mail arrived and with it, the physical cards for my Potluck deck. As someone who has always mainly worked on digita [...]

Syntax Error #4: Refreshing wrong window ๐Ÿ”—

Syntax Error is a newsletter about debugging for developers, students, hobbyists, curious and duck fans. This fourth issue discusses the case where y [...]

In a beautiful world, APIs would be open ๐Ÿ”—

I briefly talked about my dislike for walled gardens in my blog post In defence of Quote Toots and this past weekend has been a great reminder for mys [...]

How to document a workaround? ๐Ÿ”—

When writing code, every now and then we end up in a situation where something outside of our influence isn't working properly. It could be a library [...]

A look at my on-going projects ๐Ÿ”—

I realized at some point that I really enjoy reading developers' blogs where people share the progress they've made on their projects, even if I'm not [...]

Syntax Error #3: Who let the ducks out? ๐Ÿ”—

Syntax Error is a newsletter about debugging for developers, students, hobbyists, curious and duck fans. In this month's third issue I write about th [...]

How to sort a Pokemon deck list? ๐Ÿ”—

As a developer, sorting an array or list boils down to two things: a sorting algorithm and a sorting criteria. For day-to-day sorting, you don't usual [...]

Potluck #3: My workflow ๐Ÿ”—

This is the final part in a three part blog series exploring my most recent tabletop design project, Potluck. Previously, Research and Design explored [...]

Organizing a mess with cherry-picking ๐Ÿ”—

Yesterday was the first time I used git's cherry-pick functionality. I've known of it but had never had really good use cases. Until yesterday. Workin [...]

A quick life update ๐Ÿ”—

It's been 9 weeks since I last shared a life update in the blog when I shared my decision to leave Mozilla and Berlin and move back home. Quite a lot [...]

Syntax Error #2: print it like a boss ๐Ÿ”—

Syntax Error is a newsletter about debugging for developers, students, hobbyists, curious and duck fans. Second issue discusses the benefits of using [...]

A bunch of small game reviews: Village Rails, Skulls of Sedlec, Barotrauma ๐Ÿ”—

I want to try something new and write a review of something. What started as one review, grew to three over the weeks when I couldn't quite make up [...]

I combat impostor syndrome with building in public ๐Ÿ”—

I have a massive impostor syndrome and I've had it for as long as I can remember, probably since the school started grading us in the 2nd or 3rd class [...]

Potluck #2: The Deck ๐Ÿ”—

This is the second part in a three part blog series exploring my most recent tabletop design project, Potluck. The first part, Research and Design was [...]

Syntax Error #1: Welcome ๐Ÿ”—

Syntax Error is a newsletter about debugging for developers, students, hobbyists, curious and duck fans. The first issue is now out! In this issue, I [...]

The imperfect mess of note taking ๐Ÿ”—

I'm bit of a productivity junkie and a note taking addict. Instead, currently I use: Notion as my long-term note storage and planning tool for con [...]

In defense of Quote Toots ๐Ÿ”—

This blog post is three opinion pieces in a trenchcoat because they are all related and I couldn't come up with a solid post for each individually. I' [...]

Potluck #1: Research and Design ๐Ÿ”—

This is the first part in a three part blog series exploring my most recent tabletop design project, Potluck. The other parts, The Deck and My workflo [...]

Guide to landing your first dev job ๐Ÿ”—

Introduction Are you a student, hobbyist, junior developer or career-changer looking to find your first developer job? The season for applying to sum [...]

My Pokemon apps updated for Crown Zenith ๐Ÿ”—

Pokemon's new TCG set Crown Zenith dropped today and for me, these Fridays always mean work to update my projects. Gym Leader Challenge Decklist Valid [...]

I'm leaving Mozilla ๐Ÿ”—

I resigned from Mozilla. When I first heard about this Developer Advocate position at Mozilla in March of 2022, it got me interested. Discussing it wi [...]

Me and the elves - Advent of Code 2022 retrospective ๐Ÿ”—

Another year of Advent of Code is over and it's time for a retrospective. In 2022, I finished the year with 38 stars. Surprisingly, I've grown as a de [...]

Introducing: Syntax Error ๐Ÿ”—

We've all been there, right? You write some code and run it. But it ย doesn't work. Maybe it's the compiler or interpreter that is complaining ย or mayb [...]

Year in Review 2022 ๐Ÿ”—

It's time for another journal reflecting on 2022 and looking into 2023. Introduction Year Compass a great free tool to guide the retrospective and f [...]

Merry Christmas ๐Ÿ”—

May the holiday season be good for you, my friends โค๏ธ. I already started my Christmas holidays this year on the 16th, earlier than usual and traveled [...]

7 years of Turku โค๏ธ Frontend (via Medium.com) ๐Ÿ”—

It's been seven years since we started Turku โค๏ธ Frontend. I went down the memory lane to look back at this wonderful time. Read full article at mediu [...]

DevRelCon Prague 2022 Recap ๐Ÿ”—

I got to spend a lovely week in Prague to finish off the adventurous year of 2022. And it was amazing, both for the trip and for the conference. Back [...]

Verifying identity online ๐Ÿ”—

Last month, one of the hot topics was the mess that was created in Twitter regarding their new Verified badge. I want to explore a bit what happened, [...]

Mastodon redirect with your domain in Netlify ๐Ÿ”—

Because Mastodon is federated, the account name includes both the name and the server. For example, my account is in mastodon.world, so you can find m [...]

Python prep for Advent of Code 2022 ๐Ÿ”—

We are 1 day away from this year's Advent of Code, the annual software development puzzle solving Christmas calendar. Last year, I solved nearly all p [...]

steamos-readonly ๐Ÿ”—

The Steam Deck comes configured in a way that part of the filesystem is set to readonly mode. This sometimes gets in the way when installing custom th [...]

New Firefox extension to help Pokemon TCG players ๐Ÿ”—

My explorations in the intersection of Pokemon TCG and technology continue as this week I published a new Firefox extension. You can install it from a [...]

My overengineered tooling for Pokemon TCG Card Viewer extension ๐Ÿ”—

Hobby projects are fun because you can experiment with things: choosing different languages, frameworks/libraries and approaches than what might be ap [...]

How to wait for user input from Firefox extension page before continuing ๐Ÿ”—

If you're new to browser extensions, check out my earlier tutorial for how to build your first extension or check out the documentation and tutorials [...]

I joined Mastodon ๐Ÿ”—

As so many others, I'm also preparing for the possible downfall of the bird site. You can now find me also on Mastodon. If you are in that system too, [...]

Find assigned tasks from Google Drive ๐Ÿ”—

At Mozilla, we write a lot of documents. It enables us to work efficiently while having the team spread across the world. We do a lot of work through [...]

Upcoming live stream: first look at Rocket Oct 22nd ๐Ÿ”—

I'm getting back into live streaming dev stuff and will start this Saturday, October 22nd at 16:00 CEST with a first look at Rocket (the Javascript on [...]

Ad-Filtering Dev Summit 2022 Recap ๐Ÿ”—

Two conference recaps in a row?! Yes indeed, last months have been a great time with developer conferences and after organizing React Finland, I visit [...]

React Finland 2022 Recap ๐Ÿ”—

This year's React Finland was organized in September 12-16th in Helsinki and it was the first one where I was part of the organizing team, having join [...]

Set up a dashboard using Google Slides ๐Ÿ”—

I recently tweeted: I have been using one-slide Google Slides in a /preview mode for quite a while now as a work "dashboard", ie. "What I am working r [...]

kittens-everywhere โ€“ how to build a browser extension ๐Ÿ”—

I recently had an honor to teach a class on the basics of how to build a browser extension for Firefox. This is an article form of that class (with a [...]

Traveling in connected, digitalized world ๐Ÿ”—

While I was traveling back home for the first time since moving to Berlin, I realized something very fundamental. Digital and connected world has made [...]

Why I do what I do? ๐Ÿ”—

I'm in a very lucky and entitled situation where I get to work on things that are aligned with my values, my passions and what kind of change I want t [...]

I built a Firefox extension for Pokemon TCG players ๐Ÿ”—

Pokemon TCG card viewer is a browser extension for Firefox that allows users to see the images of Pokemon TCG cards when hovering over PTCGO codes on [...]

Hello from the new developer advocate (via Mozilla Add-ons Community Blog) ๐Ÿ”—

In August 2022, I started a new job as a developer advocate for Firefox add-ons at Mozilla. Read the entire blog at Mozilla Add-ons Community Blog [...]

The Firehose ๐Ÿ”—

It's been a while since the last update on this site, either on this blog or in the weeklies. I started a new job as a Senior Developer Advocate for a [...]

I wrote my first Dropzone 4 action ๐Ÿ”—

Let me tell you a quick story of a great developer experience. I learned about, installed and got excited about two separate apps for macos today: Iin [...]

Embracing failure ๐Ÿ”—

I've been thinking about my relationship with failure a lot lately. That process has been inspired by a combination of Rach Smith's recent It's okay f [...]

Unit test your Python code in Jupyter Notebooks ๐Ÿ”—

In December of 2021, I participated in Advent of Code, an annual Christmas calendar of programming puzzles. Each year I try to learn something new or [...]

Appendix A to Developer's Guide to Communities ๐Ÿ”—

Earlier this week I wrote about my thoughts and experiences about developer communities. Then something happened yesterday that is a story worth shari [...]

Developer's Guide to Communities ๐Ÿ”—

Software development is such an interesting industry that there are so many communities that have been formed around it: meetups, conferences, onlin [...]

Javascript's console is so much more than just console.log ๐Ÿ”—

If you've ever written Javascript for more than just the first few lines, you've very likely learned about console.log. It's a function that prints ou [...]

A lighthouse ๐Ÿ”—

On top of a small hill, there's a small lighthouse. At the base of the lighthouse, there's a small house, and at the heart of it there's a fireplace t [...]

Goodbye, Futurice ๐Ÿ”—

Time for some personal news. It's time for me to say goodbye to Futurice after a bit over 4 years. A lot has happened and a lot has changed over the [...]

print is your best debugging tool ๐Ÿ”—

I'm a huge fan of debugging. To me, it's one of the most enjoyable aspects of software development. For the past few years, I've been spreading my lov [...]

GLC Decklist Validator updated with Astral Radiance ๐Ÿ”—

In August 2021, I built and published the first version of Gym Leader Challenge Decklist Validator. It's a webapp that allows Pokemon TCG players who [...]

Summer reading for scifi fans ๐Ÿ”—

I always plan to read more when summer holiday approaches, then spend the first few days reading books but then over time I read less and less. Well, [...]

Learning Rust #9: A talk about rustlings ๐Ÿ”—

Last December I finally started learning Rust and in January I built and published my first app with Rust: 235. Learning Rust is my monthl [...]

A good job interview sets both sides up for success ๐Ÿ”—

Over the past few weeks I've ended up in a lot of discussions about job interviews in tech industry. I've talked with people doing interviews, I've ta [...]

A week in life of a developer advocate ๐Ÿ”—

Developer Advocacy and its umbrella term Developer Relations is a relatively new field. Sure, some people have been doing it for a long time (at som [...]

Shy introvert's (short) guide to speaking in conferences ๐Ÿ”—

I'll let you in on a personal secret: every time I go to speak in an event, I get so nervous. Especially the last 10-15 minutes before my turn to ta [...]

Documentation: man pages vs tldr ๐Ÿ”—

In today's blog post, I'm gonna compare two approaches to writing documentation: reference vs. recipes. Now, the point is not to determine which one i [...]

My trip to Django Day Copenhagen 2022 and Stockholm ๐Ÿ”—

Django Day Copenhagen on April 8th 2022 was my first trip after the beginning of the pandemic and a return to a conference where I spoke remotely in 2 [...]

Listen to everyone, listen to no one ๐Ÿ”—

In general, I don't like to give advice because I realize that I can only give advice based on the limited experience and understanding that I have. H [...]

Last two years have been awful ๐Ÿ”—

Content warning: burnout, depression, stress. In this blog post, I'll discuss burnout, depression and related topics from the perspective of how it ha [...]

I'm speaking in Django Day Copenhagen 2022 in April ๐Ÿ”—

I'm so excited to return to in-person tech conferences after such a long time. We were able to run a few meetups in the short period of time last Oc [...]

Added custom highlight function for nhl-235 ๐Ÿ”—

When I originally started developing my nhl-235 project in the beginning of 2021, it was heavily inspired by the teletext service Finnish Broadcasting [...]

Rant: Please stop ruining the search ๐Ÿ”—

Search is one of those features that have gained so much from the evolution of technology, from machine learning and the industry's skills in building [...]

I started writing Weeklies ๐Ÿ”—

A while back, I started a very personal newsletter called What's up with Juhis where I shared monthly what I've been doing: new blog posts, videos, ta [...]

My least favorite board game genre: co-op games ๐Ÿ”—

Long-time readers already know that I'm very passionate about board games. Last fall, I wrote about a genre of games I โ€“ to my own surprise โ€“ found a [...]

45 stars, Christmas was almost saved - Advent of Code retrospective ๐Ÿ”—

Advent of Code 2021 is over and I not only got a major new personal record, I got very close to my first completion. Here's a retrospective of the thi [...]

Year in Review 2021 ๐Ÿ”—

Last year, in my Year in Review 2020, I wrote: "For 2021, my only hope is that we manage to get rid of this damn pandemic." Yeah, that didn't happ [...]

Merry Christmas! ๐Ÿ”—

The holiday season and Christmas is just a few days away which means this Wednesday it's time to start slowing down. Hence, I wish you all a very merr [...]

Tips for Advent of Code ๐Ÿ”—

Second week of Advent of Code is in the books! If you wanna check my solutions, they can be found at hamatti/adventofcode-2021 with commentary and doc [...]

Advent of Code 2021 ๐Ÿ”—

It's December again and like so many years before this, I've picked up Advent of Code to help Santa and the elves to save Christmas. What's Advent of [...]

Customizing liiga.fi experience ๐Ÿ”—

Update Dec 8th: I noticed that when a game was live, my highlighting code at the bottom did not correctly find the right teams. I've fixed that bug an [...]

Minimal Travel Table Top Game Collection 3: Project 108 ๐Ÿ”—

It's time for another Minimal Travel Table Top Game Collection project. If you missed the first two, you can find the first one and second one in my b [...]

Hello code, my old friend ๐Ÿ”—

It's been a while since I've been writing code more than a few lines at the time. Since the pandemic situation eased out and I've been able and allowe [...]

Reaction GIF board with Stream Deck ๐Ÿ”—

Last weekend I was watching lornajane's Twitch stream and we ended up having a discussion about the Elgato's Stream Deck in the stream. I've owned on [...]

The most social and loneliest job: being a solo developer advocate ๐Ÿ”—

At the beginning of the week I gave a talk in this year's DevRelCon about my experience as the only developer advocate of our company and how it creat [...]

Tiny handy tools: Community Edition ๐Ÿ”—

Last week I wrote about the tiny handy tools that I use and that make my life much easier. After that, I asked developers from my communities what sim [...]

Tiny handy tools ๐Ÿ”—

Since I haven't been able to write a proper /uses page for my site, I'll share some small tools that I really enjoy using for work and pleasure with m [...]

Over a year of weekly blogging ๐Ÿ”—

My blog post on Python 3.10 on October 6th marked a full year of weekly blogging on this blog. It was a huge personal milestone for me and this blog p [...]

Python 3.10 is out and I'm excited ๐Ÿ”—

If you're here because it's the first Wednesday of the month and you're looking forward to a Learning Rust blog post, I'm gonna have a break month fro [...]

How would you compare two version numbers? ๐Ÿ”—

Earlier this week, I ran into a tweet by Leah Neukirchen who said "You won't believe how much software breaks because Python 3.10 has a two-digit mino [...]

Where do you see yourself in five years? ๐Ÿ”—

I was recently in a job interview where I got asked the question in the title. It's a classic question in many job interviews but luckily recently I'v [...]

Roll and Write board games are awesome ๐Ÿ”—

What comes to your mind when someone mentions board games? In addition to having a lot of fun with friends (or arguing with family over Monopoly in th [...]

React Finland 2021 Recap ๐Ÿ”—

React Finland 2022, in-person conference in Helsinki 12.-16.9.2022, tickets available now! Organizing โ€“ or attempting to organize โ€“ a tech conference [...]

Learning Rust #8: What's next? ๐Ÿ”—

Last December I finally started learning Rust and in January I built and published my first app with Rust: 235. Learning Rust is my monthl [...]

Syntax highlight all the things ๐Ÿ”—

Almost every developer, who has seen syntax highlighted code in their editor, would never want to go back to monocolor coding. It's been a key feature [...]

Blogging is my new favourite refactoring tool ๐Ÿ”—

I've mentioned a few times in talks and social media before but while writing my blog post on Netlify Functions, I was again reminded by it so I decid [...]

Your blog should have an RSS feed ๐Ÿ”—

To kick off this year, I wrote a blog post about why you should have your own blog. Today I'm writing about the next step: making sure you have an R [...]

Learning Rust #7: Learn from the community ๐Ÿ”—

Last December I finally started learning Rust and in January I built and published my first app with Rust: 235. Learning Rust is my monthl [...]

Blog post filter with Netlify Functions ๐Ÿ”—

I'm so excited. Last week, I wrote and deployed my very first serverless functionality: filtering my blog posts by category. You can test it out at /b [...]

Javascript Basics: Scope ๐Ÿ”—

One of the more abstract concepts a developer needs to understand quite early into their development journey is the concept of scope. In a simplified [...]

codebase ep. 4: Web Components with Matias ๐Ÿ”—

codebase is a new developer community show on Youtube. It's a celebration of technology and different people working with different technologies. Each [...]

Learning Rust #6: Understanding ownership in Rust ๐Ÿ”—

Last December I finally started learning Rust and in January I built and published my first app with Rust: 235. Learning Rust is my monthl [...]

My travel setup for Nintendo Switch ๐Ÿ”—

It's summer time and often for me it means a bit of traveling. Obviously last summer and this summer, it's limited due to the pandemic but I did hav [...]

Why scheduling Slack messages and emails is so valuable for community builders ๐Ÿ”—

It was the first day of my holiday (editor's note: I was on a non-work Slack) last Saturday when I suddenly saw something in my Slack: Finally, nativ [...]

My (career) story in tech and developer relations ๐Ÿ”—

All of our careers are different. When zoomed out enough, they start to blend and look similar but when you really look carefully, all of them are uni [...]

codebase ep. 3: PHP with Larry ๐Ÿ”—

codebase is a new developer community show on Youtube. It's a celebration of technology and different people working with different technologies. Each [...]

Learning Rust #5: Rustlings ๐Ÿ”—

Last December I finally started learning Rust and in January I built and published my first app with Rust: 235. Learning Rust is my monthl [...]

My Employer Supports My Open Source Contributions (via honeypot.io) ๐Ÿ”—

Read full article at cult.honeypot.io. [...]

Does it make sense to finish what you started? ๐Ÿ”—

I'm a university dropout โ€“ three times actually. It's not a brag or something that defines me but it's something that comes up in the discussions quit [...]

Scheduling operations in Python ๐Ÿ”—

I was recently helping out a friend build a small project that would run on regular intervals to fetch data from an API that was provided by an IoT de [...]

codebase ep. 2: Clojure with Ykรค ๐Ÿ”—

codebase is a new developer community show on Youtube. It's a celebration of technology and different people working with different technologies. Each [...]

Learning Rust #4: Parsing JSON with strong types ๐Ÿ”—

Last December I finally started learning Rust and in January I built and published my first app with Rust: 235. Learning Rust is my new mo [...]

Falling forward ๐Ÿ”—

This isn't flying, this is falling with style! flying vs falling with style (Toy Story, 1995). This post is about my personal and professional lif [...]

Documentation-driven command line tools in Python with docopt ๐Ÿ”—

A month ago I wrote a blog post to document examples for how to use argparse to parse command line arguments in Python. After publishing that, I got a [...]

How Spice Program supported my creation of 235 (via Futurice.com) ๐Ÿ”—

Read full article at futurice.com. [...]

Introducing developer community show codebase ๐Ÿ”—

codebase is a new developer community show on Youtube. It's a celebration of technology and different people working with different technologies. Each [...]

Learning Rust #3: crates.io & publishing your package ๐Ÿ”—

Last December I finally started learning Rust and in January I built and published my first app with Rust: 235. Learning [...]

My pockets are full of games ๐Ÿ”—

It's time to ย talk about board games again. I love them. What I don't love is the big boxes many of they come in and how hard those games are to take [...]

5 minutes that changed my life ๐Ÿ”—

One night, I ended up in a discussion on Discord about how some websites use a certain type of algorithm to figure out if user's actions are organic-l [...]

How to parse command line arguments in Python ๐Ÿ”—

Python is a great language for building command line tools. It's versatile, straight-forward and its tooling and community make it a great candidate [...]

I gamified my own blog ๐Ÿ”—

Many platforms these days have some gamification features. One of the common features is awarding users/members/players different badges to reward the [...]

Learning Rust #2: Option & Result ๐Ÿ”—

Last December I finally started learning Rust and in January I built and published my first app with Rust: 235. Learning Rust is my [...]

Learning in public ๐Ÿ”—

A few weeks ago, I did a talk at Futurice Tech Weeklies about learning in public and how it makes me so happy how every time when I end up sharing s [...]

Pattern matching is coming to Python ๐Ÿ”—

I was really excited when last week, a set of PEPs (Python Enhancement Proposals) that introduced pattern matching to Python language were accepted. P [...]

My home office setup ๐Ÿ”—

Inspired by Kara Luton's post on her setup, I figured I wanted to share mine as well. My setup pre-pandemic and 11 months into the pandemic are very d [...]

Learning Rust: Pattern Matching ๐Ÿ”—

Last December I finally started learning Rust and last month I built and published my first app with Rust: 235. Learning Rust is my new mo [...]

Introducing: 235 ๐Ÿ”—

What's the first thing you do after waking up? Maybe take a shower or drink a cup of coffee? For me and many hockey fans in Finland, it's taking a loo [...]

Project: card-print-css ๐Ÿ”—

There are two things I like a lot: small, well contained tools and things that live in deck boxes. Today's project is one that combines both of these. [...]

Thoughts on debugging ๐Ÿ”—

Last year I published Humane Guide to Debugging Web Apps which lead me to do a few talks and small workshops about the topic. All of them further lead [...]

You should start a blog today ๐Ÿ”—

I've been blogging on/off occasionally since 2013. Last year, my goal was to publish a blog post every Wednesday and other than starting a bit late [...]

Year in Review 2020 ๐Ÿ”—

It's never been this difficult to write a post looking back to the previous year. Usually I've been filling in Year Compass which is a nice tool f [...]

Merry Christmas my friends ๐Ÿ”—

Hey! It's holiday time so this week's blog is just gonna be a merry Christmas celebration post. Next week, I'll roll in with the end of year post look [...]

Advent of Code #3: Slowing down ๐Ÿ”—

As of today, I'm at 15 stars. And I've been on that for quite a while now. Basically since the last blog post, the usual happened to me: I hit a few h [...]

Advent of Code #2: Borrows, unwraps and lots of compiler errors ๐Ÿ”—

First full week of learning Rust with Advent of Code is in the bag and I'm so happy I've gotten this far. Due to the pandemic, there's more time to ge [...]

Advent of Code #1: Getting Started ๐Ÿ”—

Every year I embark on a magical Christmas adventure with Advent of Code. Quite often, I end up working on the first few days' challenges and then it [...]

Customize your Internet experience ๐Ÿ”—

Internet is, despite its downsides, a wonderful place. One of the reasons why I love it so much as a medium, is that HTML is so editable and approacha [...]

Added keyboard support to ON24 with bookmarklet ๐Ÿ”—

Bookmarklets are fantastic. Not having a keyboard support for a web app is less fantastic. Here's a short story and bookmarklet of how I added keyboar [...]

Functions 101 ๐Ÿ”—

This blog post is aimed for beginners. If you have already built some software, it's very likely you won't get much out of it but you're welcome to st [...]

Coaching at codebar has given me a lot (via codebar blog) ๐Ÿ”—

Over the past 8 years, Iโ€™ve also coached, mentored, and taught in various other workshops and as a software developer, Iโ€™ve gotten a lot out of it and [...]

Validating dynamic data conditionally with Joi ๐Ÿ”—

I ran into an interesting case of data validation with Joi last week and since I couldn't find a clear answer on the Internet, I figured I'd write dow [...]

How to ask help for technical problems? ๐Ÿ”—

Over the years, I've been involved in a lot of different groups and communities where people ask for help for technical problems. I've seen some g [...]

It's time for a remote work retrospective ๐Ÿ”—

It's been over six months since many of us, especially us working in the information or creative industries, were thrown into a forced remote work sit [...]

Dev Diary #2: Working prototype ๐Ÿ”—

In May, I started working on a side project building an online draft tool for Pokemon TCG. I had a clear idea of what I wanted from the basic function [...]

Pandemia lรถi multa ilmat pihalle ๐Ÿ”—

Kun maaliskuussa pandemia laittoi Suomen sekaisin, multa katosi sormia napsauttamalla suurin osa siitรค missรค olin hyvรค. Tรถistรค katosi tapahtumat, ihmi [...]

The many designs of on-screen inputs ๐Ÿ”—

Most of my readers have probably used a keyboard to fill in a form on a computer. And these days, probably you also have filled in a form with a on-sc [...]

Arts, crafts and software: enhancing Flamme Rouge ๐Ÿ”—

I love Flamme Rouge. It's a cyclist racing game for 1 to 6 players (or 12 if you're adventurous and have that many friends) that is simple in mechanic [...]

Adding keyboard shortcuts to Viaplay ๐Ÿ”—

Now that the NHL playoff season has finally arrived, I've found myself watching a lot of hockey through Viaplay streaming service. When watching those [...]

Secret Santa PnP โ€“ Designer Diary #1: I made some cards! (via BoardGameGeek) ๐Ÿ”—

Note: This was originally published as a forum post at BoardGameGeek.com where you can follow the game's development process. Today I took the first p [...]

Recreational Mathematics ๐Ÿ”—

As I'm returning from a very relaxing 5-week holiday, I figured I'd get back into my weekly blogging with a rather casual topic. I'll be writing about [...]

Hidden Identity in Table Top Games ๐Ÿ”—

One of my favorite table top gaming genres is hidden identity games. This is mainly because I like the idea of co-op games (where all players are on t [...]

I built a digital version of Black Hole game ๐Ÿ”—

Try the Black Hole game yourself. If you have been reading my blog for a while or know me from elsewhere, you might have noticed that I absolutely lo [...]

Different approaches to learning programming ๐Ÿ”—

The opinions presented in this post are based on my personal experience as both a learner and a teacher. It is not based on academic research. If you' [...]

Building Hobby Projects to Help Get Your First Programming Job (via honeypot.io) ๐Ÿ”—

Read this article at .cult. [...]

How to scrape a website with Python & BeautifulSoup ๐Ÿ”—

There's a lot of data on websites in the Internet. Some data is provided via APIs (and I'm currently writing a Humane Guide for people who want to lea [...]

Minimal Travel Table Top Game Collection 2: Social Distancing Edition ๐Ÿ”—

During my Christmas holiday, I created Minimal Travel Table Top Game Collection. The idea was to build a box with a set of games based on cards and di [...]

Tips for giving talks online ๐Ÿ”—

As a public speaker, I have ended up doing a bunch of talks recently remotely. Each time I think I've gotten a slight bit better and especially more [...]

How to Get Overwhelmed in Tech (via honeypot.io) ๐Ÿ”—

<div type="html"/> [...]

Dev Diary #1: Pokemon TCG Cube Draft ๐Ÿ”—

I've been a fan of developers and development teams who make and share content during their development. It's quite a bit more common in the gaming in [...]

<code>blocks ๐Ÿ”—

I've kept this original blog post here for history's sake but I've deleted the codeblocks repository and I do not recommend doing what I've done here. [...]

True, True, True == (True, True, True) in Python ๐Ÿ”—

A friend shared this interesting piece of Python code in our Telegram chat today: >>> True, True, True == (True, True, True) (True, True, False) (If [...]

Morning Coffee Projects: Youtube extension ๐Ÿ”—

We are living at the mercy of recommendation algorithms everywhere online these days. Social media (like Facebook, Twitter and LinkedIn), video platfo [...]

8 tech podcasts I listen ๐Ÿ”—

Podcasts are a great source of learning and staying up to date on what's happening in tech. I listen to a bunch of them during my commute or when [...]

Testing lifehack: testlab repositories ๐Ÿ”—

I want to write better code (and code that in fact works) and writing unit tests helps me a bit in that. However, I'm not very good at setting up test [...]

Helpot askeleet videopuheluun ๐Ÿ”—

Meillรค tietotyรถlรคisillรค videopuhelut ovat alkaneet olla arkea jo viimeiset vuodet, mutta tavalliselle ihmiselle niiden kรคyttรถ ei ole ollut erityisen t [...]

Building a website with a static site generator, part 3: Domain, Analytics and Forms ๐Ÿ”—

In this series: Part 1: Building a website with a static site generator, part 1: Setup Part 2: Building a website with a static site generator, part [...]

Building a website with a static site generator, part 2: Eleventy ๐Ÿ”—

In this series: Part 1: Building a website with a static site generator, part 1: Setup Part 2: Building a website with a static site generator, part [...]

Building a website with a static site generator, part 1: Setup ๐Ÿ”—

I like a lot of things, and static site generators are on that list. This blog series is aimed for students and junior developers who want to build a [...]

How my site is built with Eleventy + Ghost ๐Ÿ”—

First iteration, 2019 In the beginning of 2019, I started building this website and decided to use Eleventy as my static site generator. I got the tem [...]

New Guide - Humane Guide to Debugging Web Apps ๐Ÿ”—

If there's one skill I would tell students and junior developers to really focus on, it's debugging. The ability to debug your programs, figure out wh [...]

Minimal Travel Table Top Game Collection ๐Ÿ”—

I love table top games. Whether it's a complex big box strategy game like Eclipse or Power Grid, a more casual light-weight game like Ticket to Ride o [...]

Helsinki Dev Lunch ๐Ÿ”—

My first touchpoint to developer lunches was when I was working in San Francisco. At Chartio, we'd host Lunch & Learn sessions within our deve [...]

Year in review 2019 ๐Ÿ”—

Another year is coming to its end. Last few years I have done some reflection on the past year, mainly to document to myself what I have been [...]

Lightning talks ๐Ÿ”—

had almost 1000 proposals this year with only 50 slots. This year was my big break into conference speaking. Out of my about 50 proposals, 4 o [...]

My journey in diversity and inclusion in tech ๐Ÿ”—

Some people who know me personally well and have been involved in my professional career for the past 4 years, know that I'm very passionate and incre [...]

Why I love using command line interface? ๐Ÿ”—

My Saturday started by waking up to a Twitter thread I was tagged into: @janik6n @Hamatti @anttiviljami @SvenWal @agraebe Asking some opinions and mi [...]

I love writing scripts to solve small problems ๐Ÿ”—

One of the reasons I like programming so much is that it allows me to automate small and annoying things that would otherwise require bunch of manual [...]

Simple backend system for frontend workshops in Javascript ๐Ÿ”—

I coach in many programming workshops. If you have coached in one too, you might have noticed that it's challenging to find the right balance between [...]

Make your function calls more readable ๐Ÿ”—

Introduction โ€œIndeed, the ratio of time spent reading versus writing is well over 10 to 1. We are constantly reading old code as part of the effort to [...]

How to enable SSL in Netlify with custom domain ๐Ÿ”—

Do you have a static site you need to put somewhere in Internet so others can access it? You're in for a treat: there are dozens of really good option [...]

PHP needs its own ES6 ๐Ÿ”—

I have a love-hate relationship with PHP. I have written PHP in many forms from website templating and Wordpress to full MVC and SPA backend solutions [...]

โ€œEvent is over and it was a failure. What happened?โ€โ€Šโ€”โ€ŠPre-mortem can help you avoid pitfalls ๐Ÿ”—

In modern day and age, many organizations are adopting retrospectives (a session where you look back and talk about what went well, what went wrong an [...]

Event organizer - automate what you can, focus on people with all youโ€™ve got ๐Ÿ”—

I have built hundreds of events, many of them with a very small team. The fewer people you have, the more you have to prioritize your efforts. But I d [...]

Better bash history search with McFly ๐Ÿ”—

If there's one functionality of bash that most beginners don't know but get very excited about when they discover it, it's history. First you learn to [...]

Post a message from Slack to Twitter with Zapier ๐Ÿ”—

I was chatting with friend on a Slack community last Friday, and he had a feature he'd love to have. When people post new job ads into #jobs channel, [...]

Learning programming has never been more accessible in Helsinki ๐Ÿ”—

If you're interested in learning programming, the scene in Helsinki is blooming right now. There are long-term options as well as weekend workshops, e [...]

Year in Review 2018 ๐Ÿ”—

I love reflecting and looking back to the past year: to celebrate accomplishments, to acknowledge failures and to recognize the progress. This yea [...]

Internet = People = โค๏ธ ๐Ÿ”—

I love Internet. And I have ever since I gained access to it in my pre-teens at the turn of the millennium. There has been so many different steps in [...]

Developers do designโ€Šโ€”โ€Šbut weโ€™re not taught it ๐Ÿ”—

In many companies, most of the days we developers end up doing design choices. Whether itโ€™s graphic or service design, by the virtue of building thing [...]

City Bound Nomadic ๐Ÿ”—

In the near future (say, within the next 5 years), I want to explore the possibilities of a digital nomad lifestyle. Working independently of location [...]

The Reset Button ๐Ÿ”—

Look around you. Of all your things, how many of them were a result of a thought-out process? And how many are just a result of an accumulation that s [...]

The Cost of a Purchase ๐Ÿ”—

Last week I had an interesting conversation with a friend. We started talking about minimalism and getting rid of excess stuff as she was moving to a [...]

Space has a Tendency to Fill Itself ๐Ÿ”—

An average US household has 300,000 items. I would argue that it's a lot. But looking at my own childhood in Finland, it's actually not surprising. We [...]

My love-hate relationship with PHP Arrays ๐Ÿ”—

Iโ€™ve been programming PHP for most of my life, almost 20 years now. While PHP has many downsides, horrible history, and terrible reputation, it has im [...]

What living a minimalistic life has taught me ๐Ÿ”—

About a year ago I learned about minimalism from Youtube videos and the two dudes who call themselves the Minimalists. In the end of June last year, I [...]

Beginning of a Journey ๐Ÿ”—

My journey as a minimalist started a year ago. For quite a while I had been a fan of the Tiny House movement and sometime last summer I ended up watch [...]

Do you want to learn new stuff? ๐Ÿ”—

Continuous improvement, life-long learning, staying on top of your game are all things very close to my heart. It's not always easy though: sometimes [...]

Help your customers become better ๐Ÿ”—

Engagement and churn are topics that companies have to think about all the time. How to optimize the on-boarding to keep your users in the platform, h [...]

Food Connects People - How to Hack Your Community with Food ๐Ÿ”—

_One of the things I learned early on was that everybody has to eat. Most people eat lunch and it means taking a โ€œmandatoryโ€ break from work and the b [...]

Communities in Marketing ๐Ÿ”—

This blog post is a recap based on a talk I gave in Fraktio's Perjantaipresis in February 2018. You can watch the recording here. Communities are fant [...]

How I convinced 15+ companies to contribute to OSS ๐Ÿ”—

Story time! On January 2nd I launched Turku Gives Back, a non-profit project to encourage local software companies to give back to open source. Last F [...]

5 Reasons to Contribute to Open Source ๐Ÿ”—

Open source software has had an immeasurable impact on the modern software business. If youโ€™re building anything for the web, you are most likely heav [...]

How to build a kickass developer community ๐Ÿ”—

I was asked by a friend to share some tips and best practices from our two years of running the meetup so that others could replicate and prosper. Whi [...]

Year in Review 2017 ๐Ÿ”—

Around the same time last year, I wrote that 2016 had been okay but I was looking into a much greater year 2017. Right now, Iโ€™m not quite sure I a [...]

5 Reasons to Attend a Meetup ๐Ÿ”—

Meetups are fun and we are happy to see the culture is spreading all around the world making them more accessible to people. We started Turku โค Fronte [...]

Improve the worldโ€Šโ€”โ€Šhelp someone learn ๐Ÿ”—

We all have skills that other people lack. Whether itโ€™s programming, knitting, writing, fixing bikes or cooking delicious food, you are better doing i [...]

Intentional and multifunctional - How I got rid of most of my belongings ๐Ÿ”—

I have a background as a hoarder. I lived my childhood in a big suburban home and we threw away almost nothing. As I moved to smaller and smaller apar [...]

Code in the Dark Turku ๐Ÿ”—

What happens when you put 20 developers behind computers, give them nothing but an editor and a reference screenshot? Together with Valohai and Hub Tu [...]

If you are not doing code reviews, start now! ๐Ÿ”—

I was introduced to code reviews few years back in my first startup job and as a junior developer I immediately felt their impact. Having my code revi [...]

Why do good communities thrive? ๐Ÿ”—

Quick note of terms used: I use the term professional common and professional to refer to whatever topic your community revolves around. It does not h [...]

Build your community like a garden ๐Ÿ”—

All illustrations in this blog post are by the wonderful Jenny Wiik I have recently found interesting parallels in building and managing communities a [...]

What Rails Girls taught me about non-organizations ๐Ÿ”—

Finland is the promised land of organizations. Almost every citizen is or has been part of a non-profit organization during their life and most of us [...]

Building a developer community calls for strong support ๐Ÿ”—

Almost everyone whoโ€™s been in touch with crowdfunding in a form or another or has seen a talk about it, knows the classic 4 Fโ€™s. Friends, Family, Fool [...]

Year in Review 2016 ๐Ÿ”—

After coming home from the Silicon Valley in the Christmas of 2014, I had a year of soul searching and wandering about. I had no idea what I wanted [...]

8 hours later + Turku <3 Frontend Hackathon ๐Ÿ”—

Turku โค Frontend is a community of (mostly frontend) developers in Turku region that was started in December 2015. Between September and May, we organ [...]

Why I love hackathons ๐Ÿ”—

Iโ€™m a huge fan of hackathons. Last weekend, I had the privilege to organize one for the first time after attending a few. Even though being super tire [...]

What's with all these sorts, PHP? ๐Ÿ”—

A few days back I was ranting to my friends about PHP arrays. Iโ€™m not as much of a PHP hater as many but thereโ€™s still some things that really bug me. [...]

Beauty of the Pipe ๐Ÿ”—

The Unix Pipeline is a powerful and beautiful piece of software that is sometimes difficult to grasp for a command line beginner. We are used to use g [...]

Case study - DataMonkey as educational platform ๐Ÿ”—

A coworker of mine shared a link to DataMonkey, a platform/website to learn basics of data manipulation: Excel spreadsheets and SQL, the language used [...]

Adventures of a Junior Developer ๐Ÿ”—

I had never had any real problems in starting a new summer job regardless of the field. I have been building elements for buildings, assembling phones [...]

The Beautiful Game ๐Ÿ”—

I work as an engineering intern at Chartio where we build a data visualization platform for business intelligence use. In addition to developing, I so [...]

Becoming a better programming teacher ๐Ÿ”—

About a week ago I got an email through San Francisco Ruby Meetup Group about a workshop on becoming a better programming teacher and given my backgro [...]

Rails Girls San Francisco ๐Ÿ”—

After coaching at Rails Girls Helsinki last November and getting a job in San Francisco, one of the first things I did was checking out if there would [...]

Command line magic with git and bash history ๐Ÿ”—

So, in the beginning of January I started as an engineering intern in Chartio and since that my workflow has really improved a lot and Iโ€™ve learned an [...]

Difficulties with teaching and learning programming ๐Ÿ”—

Itโ€™s no secret that learning programming is โ€“ at least for some of us โ€“ an obstacle course. Personally, it took me years to grasp the skills to be a s [...]

Computer illiterate generations โ€“ what should we do? ๐Ÿ”—

There has been a lot of discussions during the last years about the IT education of young people. Today, the topic once again popped out in Finnish ne [...]

Rails Girls โ€“ building the future ๐Ÿ”—

Chicago, Taipei, Groningen, Helsinki, Zilina, Oulu and Dresden. 7 Rails Girls events this weekend all around the world. Today was my first ever Rails [...]

69 Lines of SQL ๐Ÿ”—

Sometimes I wonder what programming really is and why we hackers find it so compelling. Most of the time we โ€“ or atleast I โ€“ bang our heads to wall fo [...]

TDD Pair Programming at University ๐Ÿ”—

Today was surprising day at the university. Iโ€™m taking a class called Designing Object-Oriented Software which has before been somewhat boring 7 x 90 [...]