RSS.Social

Home Page on World of Matthew

follow: @[email protected]

Posts

11 Years of World of Matthew

The Three Cottages, North Walsham Review

Diary of Designing a Language in the Age of Agents, Part 1

Shoelaces and Progress

First Plantings of 2026

Sudden spring

Short Video: Hockey Puck Mouse = Awful

A Small Update

Colchester Trip 09/02/26

Website Progress

AI for Coding: Good, Bad, or Ugly?

Ash

Setback

Acecook SiuKay Spicy Cheese Chicken Noodle Review

Sorters

Trees

Your Go tests probably don't need a mocking library

Glass

Research

In Defense of Pen and Paper

Artificial StupidIntelligence and Airport Sinks

Don't Want to Spend

No Analytics, No Pressure

Public Toilets Degradation of Public Behaviour

Thecold

Power

Metals

Stranded

Introduction

First Snow of 2026

Intentions

For 2026

LocalFirst: You Keep Using That Word

Newyear2026

GNOME Foundation: Executive Strategy

A Trip to Norwich Castle

Missed

Tap compare testing for service migration

Hire Me

Things that made me think: Cycle time, learning theory, and build chain security

Entitled Dangerous Driving and Pedestrians

The British Police Decline

Splintered failure modes in Go

Finding the flow state

Don't Download Apps

Italy workation, Romania, and Portugal ✈️

Publicnudity

Re-exec testing Go subprocesses

My 2025 Life Stack - Or, Why I Haven't Opened Emacs in Two Months

A Dream to Progress

Web Hosting Sticker Shock

Revisiting interface segregation in Go

Lidl and “DeadStock

Lidl and “DeadStock

Separate Work Configurations

Avoiding collisions in Go context keys

One Step Forward Two Steps Back and A Couple Sideways

Uppsala Half Marathon done!

Joint Replacement Guidelines

Does my toaster love me?

How to Monitor Ip Address Changes

Fly-Tipping Outside Charity Clothing Banks

First Bus is the worst.

The Sunday Charity Shop Flytip

Organizing Go tests

From chatbots to autonomous agents - teenage me would be mindblown

Introduction to Hugo

A New Theme for a New Future

Subtest grouping in Go

Let the domain guide your application structure

My first race - Kung Björn's Loppet 6km

Win10 Is Nearing End-of-Life: What Should You Do Next?

Test state, not interactions

Early return and goroutine leak

Git Dual Remotes

Things that made me think: Digital gardening, web degradation, and digital ghosts

Lifecycle management in Go tests

7th August Trip to Norwich Castle

Optimising for trust

Demonstrating the Power of Apple Silicon using Actuated CI

Charity Shop Charges £10 for an Audiobook CD....

29 Years Old

Gateway pattern for external service calls

The Average Person Does Not Understand Their Internet Connection

PSTN Switch Off and Taxi Phone Move to Mobile

What Even Is ‘Adult’ Content?

Things that made me think: Enshittification, apathy, and discrimination

Chantry Place McDonald’s = Ugly

Summer road trips - Jönköping, Tiveden, Dalarna, and more

Janet Jackson's Denial of Service (DoS) Attack

The sound of inevitability

No.1 Cromer: Greasy Chips and Burnt Sausage

(Quite) A Few Words About Async

What's the Point of Physical Video Games?

Entities as Dependencies

Happy Canada Day!

Finished my course on nuclear weapons and disarmament

First day of summer vacation: summer, sun, and e. coli

Planted Potatoes

Flags for discoverable test config in Go

How an Ancient PowerBook Captured a Summer Vacation

AI for Peace - Notes from inaugural Peter Wallensteen Lecture

You probably don't need a DI framework

What Makes Software Projects Work

It’s Still Your Call: Ethics in the Age of AI

64 Albums

Valborg, Axis & Allies, and cross stitching

Amazon Is Hard to Resist

Easter break in Mallorca

Preventing accidental struct copies in Go

The Story Behind the Mac vs PC Rivalry — And Where Linux Quietly Took Over

Go 1.24's "tool" directive

Capturing console output in Go tests

Robot novellfika, pajbakning, Rock Orchestra och mer! För mycket att göra, för lite tid

Go Zero Values Make Sense, Actually

Nuclear Weapons and Academic Responsibility (UU lecture notes)

Balkongprep inför sommaren

Nuclear disarmament: The institutional landscape (UU lecture notes)

Deferred teardown closure in Go testing

Sounds and signs of spring in Uppsala

Individual climate action: Contributor's Dilemma (practical philosophy seminar notes)

Three flavors of sorting Go slices

Reclaiming Speed: My Road Back to Faster Running

Urban Sketching at Gustavianum and a behind the scenes tour at Evolutionsmuseet

Canada: The Unsung Hero of AI Innovation

Co-reading fika

Flowers and fairy tales

Nil comparisons and Go interface

Vandring och utforskning – årets första vårhelg

You hear colours

Stacked middleware vs embedded delegation in Go

The Edge You Carry With You

Poetry fika, a morning of sketching, and another run to the mounds

AI, the future, and norms around the human (UU lecture notes)

Running to the edge of the world (Gamla Uppsala)

Tyra Kleen - Constant Searcher exhibition. And a philosophy seminar on the declaration of art.

Leveraging WSL2 for Systems & Cloud Administration, Cybersecurity, and Software Development

How to Get Off Google Authenticator (and Backup Google 2FA Codes)

Why does Go's io.Reader have such a weird signature?

Go slice gotchas

Gods of Data. Religion, risk, and love - notes from AI seminar at UU

Two months in my new home

The domain knowledge dilemma

Tips to Evolve Your Tech Career in the Age of AI

Hierarchical rate limiting with Redis sorted sets

Dynamic shell variables

2025 Reading List

AI code plus performance minus brittle = ?

Link blog in a static site

Keeping Your Software Lean and Loved

Running only a single instance of a process

How to Use Homebrew `bash` in Macos

Short story fika: Duty

Vandring i Hågadalen

What would it take to add refinement types to Rust?

Function types and single-method interfaces in Go

First month in my new home

Separating Work and Personal Computing

SSH saga

B-CRATOS: Föredrag om hjärnstyrda handproteser med fingertoppskänsla, på UU Centrum för forskning om funktionshinder - Antekningar

Novellfika på Konditori Fågelsången - Fox 8 av George Saunders

AppleID Adventures

Luciatåget på Uppsala slott

Personhood-based arguments on resuscitation of Extremely Premature Infants - practical philosophy seminar notes

Julbord! Jag började äta fisk igen i precis rätt tid.

[AI Act Conference 2024 - Notes] Legislating Technology: Addressing the law's internal dilemma

I am looking for work. (Taylor's Version)

AI Act Conference 2024 Keynote notes: Navigating the AI Act

Optimistic Computing

Första gången fast på tåget från Uppsala och Anki för svenskainlärning

Short story fika about being human and Historisk julmarknad at Gamla Uppsala

Is Murder Bad?

Non-Identity Problem and robust climate action - practical philosophy seminar notes

Is humanity a promise yet to be fulfilled? Becoming human at Uppsalas Stadsbiblioteket

A talk on Polar Gothic literature at Chimära Bokhandel

Injecting Pytest fixtures without cluttering test signatures

Slow and Steady: My 15-Year Endurance Goal

Forty Years of Flying

2024 in Review

Singularity short story fika, co-writing, and Upplandsmuseet

Crashed a talk on moral luck and fairness today - it was great!

Forsskål symposium 2024: American freedoms and unfreedoms through history and now

13x13 Lecture 13 - How it all ends (ett inblick i universums öde)

Om krisen eller kriget kommer...

Running an LLM locally using Ollama

MomBoard E-Ink Display for Parent With Amnesia

MomBoard E-Ink Display for Parent With Amnesia

Reading or About to Read

Installing a Fedora Linux ARM VM from a Raw Image

Maneten - en novell i tre meningar

The Pirate Bay på SVT

From the Mailbox

Thoughts the Day After

Explicit method overriding with @typing.override

Quicker startup with module-level __getattr__

How I fixed my Nothing Ear muffled/underwater audio on Android (hint: it's ChatGPT)

Docker mount revisited

Copilot+ PC Review: Windows on ARM is finally here

Maximizing Your Hiking Experience

Topological sort

Writing a circuit breaker in Go

Discovering direnv

Technical Debt is a Management Failure

Notes on building event-driven systems

Bash namerefs for dynamic variable referencing

Behind the blog

Practical Cybersafety for Everyone

Shell redirection syntax soup

Shades of testing HTTP requests in Python

Sqlite in Sqlx, Automatic File Creation, and Error 14

Taming parametrize with pytest.param

Configuring GitHub Discussions to provide Blog Comments

This Site

Third Wave (Commercial) Open Source

HTTP requests via /dev/tcp

Log context propagation in Python ASGI apps

Please don't hijack my Python root logger

The *nix install command

Modding my Akko MOD007B PC with a flex cut PCB

It's Time to Back Up Your Google Maps Location History

7 Tips for a Healthy Digital Lifestyle

Here-doc headache

The sane pull request

Demystifying Artificial Intelligence (AI)

Some Direnv Patterns

How I Keep my Linux Textbook Updated for New Versions

A reference to a Future is a Future (sort of)

Strategic Forgetting

The Rise of RISC-V and Open Hardware

Small Systems Manfiesto

Tips for Maintaining a Growth Mindset

Incident Response

Remembering Pepper

If You Participate in Taiwan's "Make Up Workday", You are a Bad Boss

Digital Nomading Somewhere Beautiful; or, Should You Bring Your Laptop?

Books I Read in 2023

ZSA, the Awesome Keyboard Company, Interviewed Me

Explorers and Exploiters: Deviations from Rarefaction Curves

40 years of Macintosh

Audiobook narration trial with ElevenLabs

Visiting Greece

Coverage-based Comparisons of Cultural Diversity

Primals and Tempering

Alphinaud Publishes a Paper

Extending the life of an Intel-based Mac using Windows 11

I was Interviewed by Teddy Lai

Creating a writing assistant with ChatGPT Plus

How generative AI has fit into my workflows

I Opened a Restaurant in Taipei

What Did Louisoix Know?

2023 in Review

So You Want to Optimize Your Code? (also, a disordered, confusing and absolutely incomplete oral history of Firefox performance)

Setting up a Raspberry Pi Home Server

Portable writing setup with Onyx Boox Palma

Programming Languages That Blew My Mind

Essential keyboard shortcuts (Windows/macOS/Linux/UNIX)

Less Dangerous Than Careless Talk

Coding for a Finite World

Papers of Note

Books I Read in 2022

Linux Distro Hopping is a Bad Idea

Complex Simulation: Artifacts of a Russian spy

Bob Gunderson Tribute

An Extra Special Family Vacation

The Government Sent Me to Taidong

Running a Mainstream Linux Distro Natively on Apple Silicon: Fedora Asahi Remix First Impressions

Saying the quiet part out loud

How to Leverage Music for Maximum Tech Productivity

Setting Up Projects for Hosting on a VPS

Production Outranks Consumption

The AIGPL

Find Peace or Choose Violence?

The Internet as We Know It Is Dying

7-11 Snack Rankings

So, you’re curious about software development?

Taiwan Citizenship Renunciation Petition

Exploring Reddit Alternatives

A Philosophy of Cheat Codes

My first textbook is now in its sixth edition

Unseen Crime Simulation

I've now been teaching tech for 25 years!

Brainstorming as distraction

Just rambling

Linux is making Apple Great Again

The Ultimate Linux ARM64 Workstation

Family Trip to Taiwan

The Internet is Not Forever

Fun Facts About Linux

About Safety, Security and yes, C++ and Rust

Fiction writing updates

Implementing multiple choice selection in Go with promptui

Choosing a Mastodon Instance

Some Info About Digitizing VHS, and Services in Taiwan for Same

Excellent Article on Taiwan's Legislated Prejudice against Southeast Asians

The Time I Yoga-Balled an Apple Store Employee

My Literate Emacs Configuration

Mastodon and the Fediverse: A Social Media Revolution

What Shall We Do with the Unseen Sailor?

2022 in Review

Functional Diversity as a Generalization of Lexical Diversity

Moderated Federated Networks might actually be what we need - part 1

Zipping Together APIs Sucks

Telling People How Much Money You Make is Ethical, Usually

Reboot your mind once a day

List of publications

Coffeeshop Reviews

Taiwan Ideathon Submission: Unemployment Reaches 100%

How to Correctly Add Segment Analytics to a Typescript App

The leaves

RISCy business: The long and convoluted rise of today's dominant computing platform

Raw

You can't Uninstall Adobe Creative Cloud without Logging In

Converting to Netlify CMS

GrapheneOS: User Impressions

Sympathy is difficult

How modern open source projects work

10 Basic Steps to Digital Privacy

How Linux Certification Has Evolved Over The Years

Exploring testing private TypeScript functions with Jest

Tracking Opacity and the Cause of Consumer Indifference

How leg extensions saved my knees (quick, knock all the wood!)

Finding a Privacy-Friendly Email Provider

My WFH workspace evolution

Dual-booting Asahi Linux on your Apple Silicon Mac

Glastonbury: the Tor and Avalon Orchard

Glastonbury: getting there and the town

The Power of Swag in the Tech Industry

Undetected Functional Attribute Diversity

Trucks, Tubes, and Truth

Avantone Pro Planar first impressions

Easy Explanation of React UseEffect

Cull your dependencies

PiccoloCane Tanto2 pet stroller review

Reflections on starting a limited company in Sweden

macOS for Linux admins (2022 refresh)

Estimating Unseen Shared Cultural Diversity

`json.Marshal()` with additional fields in Go

How I'm testing MongoDB calls in Go (for now)

Population Size Estimation as a Regression Problem

Experimenting with remote work locations

Ontario's Computer Part 2: The LEXICON Server

Rich White People in Taiwan, Please Stop Whining

Ontario's Computer: The Burroughs ICON

Zelterman's Estimator of Population Size

Estimating Richness under Sampling without Replacement

A More Satisfactory Way of Building

Configuring the i3 Window Manager

Demystifying Chao1 with Good-Turing

Brewing the Best Coffee

War and K2

The `tools` directory

How to Rent a Motorcycle in Taiwan

The Power of RISC architecture

The effort of people-ing

SPARCbook teardown

Does the software industry learn?

Understanding the Cult of Mac

Mike Shinoda's video game NFT dreams

Amazon's author banpocalypse

2021 in Review

TypeScript <3

Kubernetes Quickstart

Will my new blood pressure monitor be the thing to get me to finally meditate?

Editing and making myself finish the first series

14 years of game dev

Hosting

Installing a fast Linux server on an M1-based Mac

Blockchain Without the Crypto

Should we welcome or fear the Metaverse?

ARM on the desktop is here to stay

Making a series outline

The second book is harder

Social media break

Scrape, Scrape

Onebag Trip Report: One Month West to East Coast, USA (Indefinite Length Bag)

Testing external API calls in Go

ThinkPad P14s AMD First Impressions

An overview of cloud buzz words

The quest for a humidifier

Work-from-home is the new BlackBerry

I Am "The American Engineer" According to Amcham

Copyleft is dying

Wulai to Yilan Motorcycle Ride Video

It's a great time to be a developer

YanMingShan with Irish Riding Video

Yilan Packlist

How I Write Code, Take Notes, Journal, Track Time and Tasks, and Stay Organized using Emacs

Wulai Motorcycle Ride Video

UNIX/Linux is now a core skill for anyone working in tech

Contributing to a Calibre Plugin: Adding 'Merge All Groups' Functionality to the Detect Duplicates Plugin

Cybersecurity in a Nutshell

Creating a Super Google Maps Favorites List

DORA? I barely know her!

The future looks a lot like mainframe computing

g0v Hackathon in Taiwan

The Strength of the Record

Relating Silicon Valley to the Toronto-Waterloo Corridor

Spring and Rigel

Staying in one place doesn't mean standing still

Mastering the Zen of TrackPoint

Make yourself a happy place in your inbox - a mindfulness tip for your working day

Quarantine Hotel Video

onlinetaxman.com Prices

The computer that saved Apple

Litter Robot 3 Review

Time blocking

Why You Should Remote Work in Taiwan

Investing in sustainable food

Happy-ish New Year

An introduction to WireGuard VPN

2020 in review

Seldom discussed tips for working in the tech industry

highlights-getter

5 Z shell features that will encourage you to switch from Bash

about: Mozilla's Dino Tank

yoric.steps.next()

Why I love teaching online

Interview Concurrency Exercices

about:Mozilla's blockers and needinfos

about:Mozilla's #introduction channel - and how it could work for your project

Switching to Gitalk

A brief history of technology

about:Mozilla's Mentored Bugs - and how it could work for your project

Buying a Grand Seiko

Cybersecurity in the early 1990's

Most people don't want a computer

Why Did Mozilla Remove XUL Add-ons?

Open does not always mean Open Source

Possibly one step towards named arguments in Rust

Tracing difficult shell scripts

Nintendo Switch Ban Essentials: Q&A

ALIFE 2020 - Robot Cancer

ALIFE 2020 - Soft alife with SPLAT and Ulam

Building a Task Manager, part 1

So, you think online conferencing is new?

Fundamental computer science concepts every software developer should know

The old Web was fun

How I Became a Software Engineer

Customizing macOS for development

I Wrote an Emacs Color Theme

FreeBSD UNIX for Linux sysadmins

Twitter network graphing with Gephi

Social distancing ramblings

Microsoft turns 45

Announcing Project Building Firefox@home

Getting the most out of your online course

Tips to survive teaching an online course

XTC discusses Basecamp's Shape-Up

How to write an academic technical textbook

IBM lecture - Introduction to quantum computers and quantum computer programming

How to Job Search as a Bootcamp Grad

Saving Vuex State to localStorage

2020 Reading List

Effects in Rust

I finally beat Tetris!

2019 Travels

Units of Measure in Rust with Refinement Types

Should You Motorcycle?

2019 in review

Nintendo Switch: Best Traveling Companion

Ethical Software For Everyone

Reviving an ancient BSD UNIX workstation

The Temple of Fail

Hacker Villages

Taipei, 2019

Why you should use technology less

What it's like a year after quitting Facebook

Compassion For Donald

How to learn vi (vim)

I started meditating... now what?

What Nokia tells us about the Internet in 2008

The different faces of open source software

Apple is regressing to their 1990s disposition

Docker Containers for testing

Rest in Peace, MAD Magazine

SnailLife Genome Lab

"Efficiency" is bad for your health, and your learning

The UNIX Philosophy in 2019

Offline knowledge, buses, and note-taking

The Dark Side of GNU

How ricing shifted from cars to computers

Setting up a bottom-end Chromebook for development

State of the Liza - 2019

SPARCbook 3000ST: The coolest 90s laptop

Pop!_OS: The first real Linux desktop

Silent Spaces

The Power of Open Source Software

Trip to Monterey

Cult of Mac Book

Happy New Year

Universal Spaces

India Has A Three-Body Problem

35th Anniversary of the Macintosh Computer

How To Disconnect

Does Smoking Marijuana Harm Your Meditation Practice?

Blog Todo

Using the Windows Subsystem for Linux

Steve Yegge, You Are Half Right (Part Two: Software Ethics)

Steve Yegge, You Are Half Right (Part One: An Ethical Void)

The Toxic Notification Bubble

2018 in review

What is Siggu.org?

SSH Foo

Getting the right scale

Fun PresentationFramework side-effect of bad equality

Three reasons why incubators breed failure

New blog: Space·Time Will Tell

How the cloud grew up around Linux

A first stab at gene expression

Brainstorming the SnailLife gene system

Building a snail one organ at a time

Ronin Time Bureaucrats: Is there an afterlife? (part 2)

Ronin Time Bureaucrats: Is there an afterlife?

Ronin Time Bureaucrats: The Time Adjustment Foundation

Ronin Time Bureaucrats: The Time Federation

And now, for something completely different: Ronin Time Bureaucrats

Are YOU experiencing shady output from your Go debugger? Try these things!

Roee: Self Modifying Go Simulation Experiment - Part 2

Roee: Self Modifying Go Simulation Experiment - Part 1

Helping as Learning

Quick and Dirty Function Timing in Go

Coordination

Active worms

Vermicomposting

Letstalkaboutp4

10 to 1 Rule

UAC Notes

Staple Remover Obsession

A simple guide to git

Rubber Ducky Moments: 'Completely unrelated []interface{}!!!'

Sleep

Devops Demystified

Sunset and sunrise on the Tor

First day in Glastonbury - visiting Tor and Chalice Well

IJCAI Session Notes: Rebel Agents

IJCAI Session Notes: Learning Common Sense

IJCAI Session Notes: Verifying Agent Based Autonomous Systems

Blockchain for IT pros

Halt and Catch Fire

Finances in an Employee-Owned Technology Co-operative

go-sql-driver and MySQL 8

Lessons I've learned from teaching 20 years of IT

Input Club K-Type and /dev/tty impressions

Some SnailLife Go client testing notes

Ultimate UNIX timeline

RIP PowerBook

Thinkerbell Postmortem/Brain dump

HolyJIT: Could we write a multi-staged JIT compiler?

JavaScript Binary AST diaries - How to replace proving with validating for fun and profit

Typestates in Rust

The history of IT certification

Testing SnailLife Go repositories

Excluding mocks from coverage reports

Testing SnailLife Go on Go 1.10

A quick guide for productive development

GitLab CI for SnailLife Go

2017 in review

Running tests and getting coverage reports on server deployment in SnailLife

The Binary AST Wishlist

RIP Solaris

Binary AST - Motivations and Design Decisions - Part 1

ECAL session notes: Open-Ended Simulations

ECAL session notes: Digital Evolution

ECAL session notes: Historical and Philosophical Perspectives on Artificial Life

Day 1 of ECAL 2017 - ISAL Summer School

JavaScript Binary AST Engineering Newsletter #1

Windows and macOS could move to Linux

Server and client for SnailLife Go

Towards a JavaScript Binary AST

Go auth (and other) progress

Playing with authentication in Go

Get ready for the chip wars!

Trying Out Go

Why you should buy an old arcade machine

Scripted Hackathon: Kids' First Hackathon

Talk on Big Data Tools and Architectures at Foo Cafe

State of the Snail - Debugging Hell

Finding Idylwild Park

Marionette 2.4.4 Gotcha: Changing a Filter's View

50 shades of Cray

Futuretech '92

The future of smartphones

We Won a Hackathon!

Project Lighthouse: A post-mortem

Things to do before you[r project] die[s]

Migrating again

Developer Week Hackathon

The customer is always right

Hello, TensorFlow

Extracting text from images is not easy (who would have guessed?)

2016 in review

Blog migration in progress

10 years of Facebook humour

New Programmers Should Read Hacker News

How to Use LinkedIn as a Coding Bootcamp Grad

Why am I doing this again?

Notes Towards Initial Rules for a Github Nomic

Github Nomic Rules

How this Coding Bootcamp Grad Found a Job

Good Breakdown of Backbone

"Full-stack" and why I don't like it

A Texas Bootcamp Grad's First Days at a Silicon Valley Startup

An evening with The Woz

New Place, New Job

API World Hackathon

The Linux operating system turns 25 years old today

The World Wide Web turns 25 years old today

The dawn of personal computing

Having a fish tank is supposed to be about stress relief

Some NeXT level stuff

Configuring Browser Apps

Menstrual Leave: 'I Have Cramps'

Final Projects at a Coding Bootcamp

Video Game Reflections

Surviving a Coding Bootcamp - Nearly Halfway Done at Makersquare

4 weeks in at Makersquare coding bootcamp

PowerShell Essentials for SysAdmins

Chest-Deep into a Coding Bootcamp

Snaily Updates: BrainHub + Runners, SnailLife Logo

How To Bicycle Commute in Bangalore

BrainHub and BrainRunner - finally over the hump

How to Drive a Motorcycle Across Vietnam

2015 in review

The brain scope is growing: BrainHub, BrainRunners, Brains

Just a Week in Taiwan

Hanoi

Made it to Hanoi

World of Commodore conference

Stamina and Mountain Passes

Bangalore 2030

Shrimps

Mountains and Beaches

Living Like a King

Got a Massage, Got Lost in a Forest

Vietnam - Still Haven't Gotten a Massage

First Day in Vietnam

Snaily Updates, Nov 10 - Family trees and inbreeding coefficient

Snaily Updates - Bug fixing and cleaning out old stuff

My Livecoding.tv account deletion saga

Snail organs, immunity, and ageing

Wild snails around the world

More location and temperature stuff

Bringing snail stables down to Earth

How to Turn Your Old Android Smartphone into a Dashcam

Snail stable breeding brands

I have become Crazy Cat Lady, the Buyer of Cat Strollers

How to Buy Stocks

Pee-training Rigel

Laravel log file backups to S3

SnailLife messaging system

Video game transcendental meditation

Update on Rigel and response from DjurAkuten

Snaily updates

How to Cure Your Allergies With Two OTC Drugs

Salaries in a Cooperative

Patient Charts

Emergent Continuous Design

Items

Images for combined substrate

Migrating to Laravel 5

Thinking through substrate

Jar substrate is a go

Tackling Gastropoda's memory usage - Round One

Why Ayurveda? Because Science!

The month from Hell

On your mark, get set, crawl!

Rethinking racing. Also cool snail art!

Snail brain semi-stable and reviewing visual traits set during breeding

From Amazon Web Services to Digital Ocean

Breathe new life into an old PowerBook G4 using Linux

It's not so bad. We have snail babies, after all

Snail gym vs training jar

Drugs, Meditation, Warnings

The journey continues - from Elastic Beanstalk to CodeDeploy

2014 in review

Personality

State of the Snail, 2014

Deploying Gastropoda to Amazon Web Services - Never Forget

Claustrophobia and eggicide

Scheduled food delivery, arousal suppressant, and brain woes

No more starving snails

GMOs explained

Detangling snail actions. Also a cat

What is a Software Cooperative?

Welcome, Gratitude

The fastest computer I have ever owned!

Hiking, Beyond Earth, and Gastropoda update

The ongoing saga of snail mating decisions

Went to my first Laravel Meetup

Event queues

The snails are eating again

Websocketing it up for snail movement

Braaaaaainsss

And we're back

How to use Anki to Learn Any Language

How to use VOIP and Google Voice to Have a 10$ Phone Bill

Pathfinder: two heroes are born

Wolfling runs

On snail eggs

New snail shell patterns

Laravel migration done

A battle with racing

Setting up an AWS EC2 instance for Gastropoda

Summer holidays and Amsterdam

Custom validators in Laravel

Experimenting with Laravel

The beginnings of a currency

To the Node and back

Leaving Taiwan T- 2 weeks

A move and a quick Gastropoda update

The day of the lettuce leaf

Taking it easy on the snailing with some lazy layout work

Recording snail history logs

The evolution of BYOD

Thoughts on @HobbyGameDev's post on starting simple

Snail metabolic rates and caloric needs

My 3 favorite Södermalm cafes to work in

Gastropoda - racing progress

A cycling adventure

It's summer!

What Does it Cost to Live in Asia? A Monthly Finance Breakdown

A Couple Reasons you Shouldn't Watch Movie Trailers

100 silly facts about ME

Baby snails!

Book Review: The Stars my Destination

Ripping apart Gastropoda

Two Other Blogs

Gastropoda, the name

Here jars, there jars, everywhere jars jars

Collecting wild snails

Porting Game of Snails to PHP

George H. Jenner

How to Not Be Sleepy All the Time

Stockholm and robot parts

Changing How it's Done

San Francisco and other updates

Microsoft ReFS vs Oracle ZFS - FIGHT!

An icy walk of creepitude

Global Game Jam 2014 in Stockholm (#GGJ14/#GGJSthlm)

Great Canadian Appathon 4

A slow start to 2014

The scenic route

Bromptoning it up

Move to S3 and Octopress. Oh and #1GAM

One Game a Month (#1GAM) Done!

Impressed by a 10 year old desktop computer

First foray into Unity

Why BlackBerry failed

A look back at the dotcom bubble

Steven Enns and "Craftsmanship"

GAME ON 2.0 wraps up!

Bellmanstafetten relay race - didn't die!

How not to run Midnattsloppet

Trying out the Rearth Ringke Fusion Nexus 4 case

The evolution of Information Technology

Porting Interdiction to Android with CocoonJS - overcoming mouse position offset problem

Some Toaster AI improvements

Slowly improving Toaster AI for #1GAM

We're more than halfway through the #1GAM year! What I've made so far.

Reddit took down my website!

June #1GAM game and board game AI

Nara

Osaka part 1

Game of Snails in all its barely-playable glory

A traumatic [read: wimpy] experience

A Game of Snails and Heroku

Revelation: I don't actually want to run a half marathon...

GUI - I hate this part.

A weekend of train-ventures, dodgy restaurants, and the most amazing weather in the universe.

A Game of Snails - Breeding system

A Game of Snails - feature list

Snails, running, and Sweden

Sweden weather is improving so I'm ditching the treadmill. It hurts.

Building in ImpactJS multiplayer is like a jelly wrestling contest

Marshall McLuhan was right

Deploying games to the Chrome Web Store seems stupidly easy

Conference over

iOS to Android - Nexus 4

Still in Singapore, got Pictures Uploaded

Two days in Singapore

Boarded for Singapore

A first try at object pooling

Spring Break to Singapore

Random thoughts on JavaScript performance, garbage collection, and object pooling

Running, unfortunate sprites, and GDC sessions

GAME ON 2.0 and triOS College

Creating randomized eye movement in ImpactJS

February #1GAM Game - My Mind Is Going

Ceci n'est pas une pipe

More tea...Silver Needle!

A potentially unwise newfound interest in tea.

Writing Good Commit Messages

A Users, Roles & Privileges Scheme Using Graphs

AIESEC FACI

Growing JavaScript trees for #1GAM

An Atheist's Glimpse of God

Still drawing... #onegameamonth

One Game a Month - Animatch progress

One Game a Month

Driving educational change

Sweden update - snow and Finland and Russian food and stuff!

The best keynote presentation of all time!

The Galaga no fire cheat mystery

Splitting text into lines according to maximum width + vertical text scroll in JavaScript and HTML5

Selecting from multiple ship/character options before each level (more UI stuff)

How I ended up handling GUI elements in ImpactJS

Modified screen shaker and camera follow in ImpactJS

Saving game state with HTML5 localStorage and JSON - a rough working draft

Dabbling in UI

So long and thanks for all the fish.

Mocap in action

A successful hackathon at our Kitchener campus!

Js13kGames entry finally submitted. Now I can think about something else, right? RIGHT?

KROOG - @Js13kGames entry

Arcade game CPUs

I made a Twitter logo in HTML5. It's like the ugly brother of the actual Twitter logo

Curved laser beams with HTML5 canvas quadraticCurveTo() method

Making a laser beam entity in ImpactJS using HTML5 canvas stroke()

Adventure Time! Pt. 2, Takao Mountain

I relearned basic trig today...kind of...sort of...Let's just say my thing works and leave it at that.

Adventure Time! Pt. 1, Akihabara

Too many tiny functions?

Why I can't not optimize.

Getting around the HTML5 canvas ctx.fillText line break limitation

Kindergarten Trip part 2

How the term 'cloud' was invented

Kindergarten "Western Style Ranch" Trip

Kindergarten and Whatnot

Made a rough Space Invaders clone. Annoyed at Chromium and its HTML5 audio bug.

How to properly pronounce Galaga

Today was not as productive as it should've been - Multitouch and stuff

Guide to buying old arcade games

That thing where I said I was going to take my mind off of coding for a while? It didn't work.

This post is not going to talk about how to do anything. But it's still about (iOS)Impact

Directional swipe and double-click in ImpactJS

Internet connection ACTIVATE

How much impact do ImpactJS timers have on performance? Plus implementing player speed boosts.

Swapping out animation sheets on state change in ImpactJS

Day One, in which I will walk five hundred miles

I should be in Japan right now

Refining on-the-fly pit spawning in Impact

Whoops Summer's Gone

Procedural levels continued: randomized pits and performance enhancements

Experimenting with procedurally generated levels in ImpactJS

Making a player grow as they eat stuff in ImpactJS

My 5 favorite opening lines from books

Can we just stop being unappreciative jerks please?

iiNet TopGeek 2.0, Hippo Creek, & Diablo 3

The zombification of Adam Green

Affecting the world and other things smelling up our fridge - by Joseph Hewitt

A belated post about the first Guild Wars 2 Beta Weekend Event / @GuildWars2

Chat bot nostalgia - old conversation transcripts

Box2D, I have conquered you!!! (sort of)

From iOS to Windows Phone - I got a Nokia Lumia 800

What I should have read a few years ago.

Pre-ordering Guild Wars 2 Collector's Edition from EB Games

College as an Educational Institution? Madness.

Box2D, you are torture.

How our video games evolved over time

Fun per genre - MMORPGs

Men of the Rodeo

Documentation, placeholder audio, and object interaction

I feel so rested right now it's amazing.

QNX on a moon rover

Entity states, animations, and other random stuff

Work, work

1pm breakfast after a 4am night - a JavaScript hangover

JavaScript lighting making slow progress

Working on JavaScript lighting

Entity spawning diagrams, dynamic attributes, and The Making of Prince of Persia

I wish I could remember this dream

JavaScript learning review

ROKS @ Beaumont

Gwen: Streamlining adjacency settings, performance, notifications, allegiance, etc

Sniffling and coding and level design (yes, again)

Heads up: going away. Not dead.

Levels and relaxed features

Today was a bug fixing and facepalming kind of day

Top down perspective vs isometric projection/2.5D

Level design, entity spawning, and art.

The long road to adjacency.

Getting my head around shallow vs deep copy

Twister Happens Too Much

Path follow mostly working - on to detecting adjacent nodes

On luck and having awesome friends.

ARRAYCEPTION

An update on Gwen - we have path follow.

Hello, Gwen.

I slept! And next.

Registered for #AltDevConf 2012

Things on napkins.

Chicago and Wisconsin pt. 1

I'm going to San Francisco for GDC 2012

Das Keyboard Model S Ultimate Silent - I am now a full mechanical keyboard convert.

GenghisCon 2012

SOPA and PIPA

Trent Reznor started this rant.

Using Google like a pro

What I did last year

2011 in review

Just some first thoughts on Star Wars: The Old Republic/SWTOR

Perspective on RIM

RIM is dead. Long live RIM.

Hard drives are dead

Linear vs nonlinear games

Finished Battlefield 3 single player campaign

Between a Break and a Break

Finished Deus Ex: Human Revolution and The Missing Link DLC

Building Adam.

2 weeks with the Razer BlackWidow mechanical keyboard: review/impressions

Publish me! I swears I works hard

Should we be gamifying our lives?

(Undefined - old post about post-PRC trip)

What an awesome weekend. New keyboard and mouse, Fremantle, and a great run.

Discovr Music - not really the app for me

What annoyed me about Real Steel - and the one thing I really really liked.

My mouse went to mouse heaven, so I got Microsoft's Arc Touch mouse. First impressions.

Photos from EB Expo 2011

I got to Brisbane in one piece!

Redesigns and injuries go hand in hand

I'm going to EB Expo 2011 - with a media pass thanks to iiNet

Hello, MacBook Air. Where have you been all my life?

Pistol shooting session at Midland Indoor Shooting Range!

ifttt: if this then that. Automate your social media task list.

How I threw my back out playing Angry Birds

Weird website contests, RPGs, and MMO gold-digging = my childhood

Cryonics and mind transfer

Deus Ex: Human Revolution - I've never been so into an FPS

Razer Blade gaming laptop - pleeeeeease come out in time for Guild Wars 2

HP TouchPad obtained

The Project Dust/From Dust trailer reminds me of something

Things I am most looking forward to this year

Boyfriend draws me on the Wacom Intuos4

Installing Windows 7 through Boot Camp with no Optical Drive on a Mac Mini

Living the High Life

I fail at life and everything - installing my new Wacom Intuos4

The Mac App Store is fricking awesome. And new Mac Mini!

Suzhou

No, I don't want a fracking coupon.

Panasonic Insider Crew Home

Halfway Point

Google+ - the next social networking hit or a messy mashup?

The Quantum Thief. Way over my head, going onto my re-read list.

Shanghai

X-Men: First Class was AWESOME...though that ending

Reading The Quantum Thief

Food is Culture, Fire is Poison

Dancing and Pirates

Nanjing

Source Code - flawed, but good...and disturbing

Teaching Teachers

Kung Fu School

2011 HBF Run for a Reason completed!

Delay

Sony does it again - password reset URL exploit

Markets and Mentality

Visiting Melbourne

Day one

Sweet mother of god

2011 Panasonic Home Entertainment Launch in Melbourne

Test Email Blog Post

Preparation

Yay new monitor! BenQ GL2440 24" LED

Daisyworld

Stranger in a Strange Land

I'm going to Melbourne! Panasonic Insider Crew

More hotlinking, please

Runkeeper LIVE - great runner safety feature potential

I just moved to NAB. Crap.

iiNet TopGeek Final

I'm lucky - I have help. #snails

How does one draw an endearing snail?

The Gargoyle by Andrew Davidson - still sinking in.

Oh hai there, Kindle

iiNet TopGeek - Game Over (for me)

I have just been reminded how much our mailbox sucks.

An overdue post about RIFT

World War Z by Max Brooks = Apocalyptic Goodness

Michael Buble in Swan Valley was AMAZING

Stop Cancelling TV Series

Toaster - My iiNet TopGeek Challenge 2 Entry

Cookie-cutter MMO questing systems.

MAXIMUM DOG - Canine Zombie Protection Suit

The transputer

Finally finished Oryx and Crake by Margaret Atwood

Photoshop challenge - Make an HTC 7 Mozart photo look good!

My gaming rut and mobile games

I made it into TopGeek Top 20 :)

The rise and fall of DEC

All about DEC

GenghisCon 2011 - Awesomeness!

Atari 2600 deep dive

I watched Buried last night

Claiming belief vs knowledge

My most memorable reads

Dinner at The Atrium at Burswood - it sucked.

The Gospel of Tux v1.0

How to buy a US-only Kindle eBook in Australia

Watched Tron: Legacy

D&D and Speed Fighting

Top Geek...and I cancelled my Vodafone plan

Busy weekend - Atrium at Burswood, D&D, and Jarrahdale Hike

Proclamation of undying love - vividwireless

BCE, CE, and the new IE

Harry Potter and the Deathly Hallows: Part 1

Funny Internet Shakespeare typo

What NASA's big announcement SHOULD have been

Removing blemishes in Adobe Camera RAW

Perth Dachshund UN - 47 Dachshunds having a vigorous debate

Pre-ordered Harry Potter tickets. Need wizard's hat.

Ebony & Ivory makeup launch and Slovakian ballet

NaNoWriMo has begun. Day 1 - 2,583 Words

Ghosting it up - Party at the Prison

Morning schedule fail - and Halloween party at the Fremantle Prison!

NaNoWriMo 2010 - National Novel Writing Month

Rearranging my schedule

What happened to the kvass...and the Mad Hatter's Tea Party challenge

Keeda is infected. Zombie virus?

Attempt at kvass-making

eBook pilot

NeXTSTEP is cool

Jaron Lanier on technology

BlackBerry 950 teardown

Copyright in Canada

The Amazon Kindle ROCKS!

Neighborhood Photos

Laser Eye Surgery

Laser Eye Surgery is a-Go!

Fremantle-y Day

Tweetie 2 Freaky Keyboard - Still Worth It

Stargate Universe Looks Promising

Lion King PC Game Nostalgia

A Bad Run - Running in the Heat

Derren Brown Guesses Lottery Numbers

Women's Classic 5km Race

Jim Sparks - Alien Abductee

The famous Pentium FDIV bug

Anatomy of an AS/400

EMERGENCY - "This book has the slight possibility of maybe helping you to save your life one day."

The death of SGI

10 years of UserFriendly.org

Happy Epoch Day!

My First Ever Global Game Jam

BlackBerry then and now

Battlestar Galactica is the Awesomest Thing Ever!

I created the Internet

CrackBerry Book

War Games shell scripting fun

How to please your IT department

How to do an out-of-office auto reply

Bill Gates steps down today

IBM hard drive from 1981

The Nostradamus of UNIX

Cartoons and Comic Books

We Need More -onomy

The UNIX way

Are you a Mac or a PC?

Linuxtopia

Netscape RIP 1994-2008

Dupies (Dollar-Rupees)

History of game consoles

Not Getting Things Done

The end of 2007

The Amazon Kindle: Friend or foe?

Anniversary of the World Wide Web

Thank you, Apple

Ontario Linux Fest

More about Open Source Software and Linux

The Gap

Fidget Weights

The wicked witch is dead

Server closet Buddha shrine

Google is My New Microsoft

A Walk

Richard Stallman talk at UW

When Marketing chooses the cover

eMac family photo frame

Roughing it on vacation

iPhone first impressions

Microsoft Energize IT conference

Linux thin clients

Big fish

Making It Look Easy

iThink therefore iMac

Summer is here. Finally.

Computer evolution

New Years security resolutions for 2006

Old Macs never die

1. Operating Systems

1. What do I do?

2. My published books

2. Retro Computers

3. Arcade Games

3. Personal Interests

4. Tech Flicks

5. Tech T-Shirt Slogans

6. Tech Humour and Puns

7. Three Unconventional Tips for Career Success

City Trails

Cyberpunk, Sci-Fi & General Fiction

Destination Trails

Non-Fiction & Biographies

This website contains zero AI-generated text

Trails in and around Algonquin Provincial Park

Video Game Books

About

Contact

Games

Life Simulation Repository

Rigel

SnailLife

Imprint

Privacy Policy