41554 blogs · [ { "id": "01a08c63-0cde-72f2-9b83-20158e3cffe9", "title": "From Apple Mail to Spark to Thunderbird", "url": "https://wilw.dev/blog/2021/04/04/applemail-spark-thunderbird/", "published_at": "2021-04-04T11:10:00+00:00" }, { "id": "01a08c63-0cde-72f2-9b83-20158e73e4e8", "title": "The simplicity and flexibility of HTTP for APIs", "url": "https://wilw.dev/blog/2021/03/31/http-simplicity/", "published_at": "2021-03-31T22:00:00+00:00" }, { "id": "01a08c63-0cde-72f2-9b83-20158e82c2d9", "title": "PinePhone and PineTime", "url": "https://wilw.dev/blog/2021/03/27/pinephone-pinetime/", "published_at": "2021-03-27T16:31:00+00:00" }, { "id": "01a08c63-0cde-72f2-9b83-20158eebe168", "title": "The Great Alone by Kristin Hannah", "url": "https://wilw.dev/blog/2021/03/23/the-great-alone/", "published_at": "2021-03-23T19:45:00+00:00" }, { "id": "01a08c63-0cde-72f2-9b83-20158fc934f7", "title": "Running your own Matrix homeserver", "url": "https://wilw.dev/blog/2021/03/22/host-matrix/", "published_at": "2021-03-22T11:50:00+00:00" }, { "id": "01a08c63-0cde-72f2-9b83-20158fdda2ff", "title": "Blood, Sweat, and Pixels by Jason Schreier", "url": "https://wilw.dev/blog/2021/03/17/blood-sweat-pixels/", "published_at": "2021-03-17T19:23:00+00:00" }, { "id": "01a08c63-0cde-72f2-9b83-2015902f60ab", "title": "The Tildeverse", "url": "https://wilw.dev/blog/2021/03/15/tildeverse/", "published_at": "2021-03-15T11:05:00+00:00" }, { "id": "01a08c63-0cde-72f2-9b83-201590b94214", "title": "The Hunt for Red October by Tom Clancy", "url": "https://wilw.dev/blog/2021/03/10/red-october/", "published_at": "2021-03-10T20:18:00+00:00" }, { "id": "01a08c63-0cde-72f2-9b83-201591a9986f", "title": "Thoughts on minimalism, and what happens when I get mail", "url": "https://wilw.dev/blog/2021/03/08/getting-mail/", "published_at": "2021-03-08T19:23:00+00:00" }, { "id": "01a08c63-0cde-72f2-9b83-2015926d2ab8", "title": "Easily set up discoverable RSS feeds on a Gatsby website", "url": "https://wilw.dev/blog/2021/03/04/gatsby-rss/", "published_at": "2021-03-04T22:17:00+00:00" }, { "id": "01a08c63-0cde-72f2-9b83-201592bdfcd3", "title": "Making your Python Flask app serverless", "url": "https://wilw.dev/blog/2021/02/28/flask-serverless/", "published_at": "2021-02-28T22:05:00+00:00" }, { "id": "01a08c63-0cde-72f2-9b83-2015933eb086", "title": "Migrating from Google Photos: Nextcloud, Piwigo, Mega, and pCloud", "url": "https://wilw.dev/blog/2021/02/24/google-photos-pcloud/", "published_at": "2021-02-24T13:46:00+00:00" }, { "id": "01a08c63-0cde-72f2-9b83-2015934e3351", "title": "The Glamour of Cyberpunk and the Road to Solarpunk", "url": "https://wilw.dev/blog/2021/02/20/solarpunk/", "published_at": "2021-02-20T21:42:00+00:00" }, { "id": "01a08c63-0cde-72f2-9b83-201593d8933f", "title": "A Year Without Answering my Phone", "url": "https://wilw.dev/blog/2021/02/18/no-phone-answering/", "published_at": "2021-02-18T21:01:00+00:00" }, { "id": "01a08c63-0cde-72f2-9b83-20159413cfe4", "title": "The Midnight Library by Matt Haig", "url": "https://wilw.dev/blog/2021/02/13/midnight-library/", "published_at": "2021-02-13T21:17:00+00:00" }, { "id": "01a08c63-0cde-72f2-9b83-2015949cbf2f", "title": "SSH Jumping and Bastion Hosts", "url": "https://wilw.dev/blog/2021/02/10/ssh-jumping-bastion-hosts/", "published_at": "2021-02-10T22:11:00+00:00" }, { "id": "01a08c63-0cde-72f2-9b83-201594c6a556", "title": "Using Monica to Help Manage your Personal Relationships", "url": "https://wilw.dev/blog/2021/02/07/monica-personal-crm/", "published_at": "2021-02-07T19:31:00+00:00" }, { "id": "01a08c63-0cde-72f2-9b83-2015956836b6", "title": "Add icing to your websites using pattern.css", "url": "https://wilw.dev/blog/2021/02/06/pattern-css/", "published_at": "2021-02-06T19:34:00+00:00" }, { "id": "01a08c63-0cde-72f2-9b83-2015963d480f", "title": "React State Management with Zustand", "url": "https://wilw.dev/blog/2021/02/05/react-state-zustand/", "published_at": "2021-02-05T23:46:00+00:00" }, { "id": "01a08c63-0cde-72f2-9b83-201596ad1160", "title": "RSS: The Rise and Fall... and Rise Again", "url": "https://wilw.dev/blog/2021/02/03/rss-rise-fall-rise/", "published_at": "2021-02-03T22:16:00+00:00" }, { "id": "01a08c63-0cde-72f2-9b83-2015975a13f9", "title": "Blogging for Devs", "url": "https://wilw.dev/blog/2021/02/02/blogging-for-devs/", "published_at": "2021-02-02T20:31:00+00:00" }, { "id": "01a08c63-0cde-72f2-9b83-201597e4309b", "title": "Why not SQLite?", "url": "https://wilw.dev/blog/2021/02/01/why-not-sqlite/", "published_at": "2021-02-01T21:06:00+00:00" }, { "id": "01a08c63-0cde-72f2-9b83-201598b26845", "title": "Dirty Little Secrets by Jo Spain", "url": "https://wilw.dev/blog/2021/01/31/dirty-little-secrets/", "published_at": "2021-01-31T18:15:00+00:00" }, { "id": "01a08c63-0cde-72f2-9b83-20159922bf8c", "title": "Out with the Old: Moving to Gitea", "url": "https://wilw.dev/blog/2021/01/30/moving-to-gitea/", "published_at": "2021-01-30T15:31:00+00:00" }, { "id": "01a08c63-0cde-72f2-9b83-201599e649a4", "title": "100 Days to Offload Challenge", "url": "https://wilw.dev/blog/2021/01/29/100-days-to-offload/", "published_at": "2021-01-29T17:46:00+00:00" }, { "id": "01a08c63-0cde-72f2-9b83-20159ab40e8b", "title": "Project Gemini", "url": "https://wilw.dev/blog/2021/01/20/project-gemini/", "published_at": "2021-01-20T17:00:00+00:00" }, { "id": "01a08c63-0cde-72f2-9b83-20159b16553b", "title": "Scaling serverless apps: some lessons learned", "url": "https://wilw.dev/blog/2021/01/03/scaling-serverless/", "published_at": "2021-01-03T17:00:00+00:00" }, { "id": "01a08c63-0cde-72f2-9b83-20159b564d3d", "title": "React Query", "url": "https://wilw.dev/blog/2020/12/15/react-query/", "published_at": "2020-12-15T17:00:00+00:00" }, { "id": "01a08c63-0cde-72f2-9b83-20159ba74905", "title": "JS Tidbit: Nullish Coalescing", "url": "https://wilw.dev/blog/2020/11/20/nullish-coalescing/", "published_at": "2020-11-20T17:00:00+00:00" }, { "id": "01a08c63-0cde-72f2-9b83-20159baaf379", "title": "JS Tidbit: Optional Chaining", "url": "https://wilw.dev/blog/2020/10/10/optional-chaining/", "published_at": "2020-10-10T17:00:00+00:00" }, { "id": "01a08c63-0cde-72f2-9b83-20159c6dce47", "title": "Command-line bookkeeping in Animal Crossing", "url": "https://wilw.dev/blog/2020/05/23/command-line-bookkeeping-acnh/", "published_at": "2020-05-23T17:00:00+00:00" }, { "id": "01a08c63-0cde-72f2-9b83-20159cb247c9", "title": "Kubernetes Cluster: Essentials", "url": "https://wilw.dev/blog/2020/02/02/kube-cluster/", "published_at": "2020-02-02T17:00:00+00:00" }, { "id": "01a08c63-0cde-72f2-9b83-20159cd6d492", "title": "Go backends on Now", "url": "https://wilw.dev/blog/2019/08/20/go-now/", "published_at": "2019-08-20T17:00:00+00:00" }, { "id": "01a08c63-0cde-72f2-9b83-20159d81337e", "title": "Hue: Security Lights", "url": "https://wilw.dev/blog/2017/08/18/security-lights/", "published_at": "2017-08-18T17:00:00+00:00" }, { "id": "01a08c63-0cde-72f2-9b83-20159e1aacc6", "title": "Alexa, ask Sherlock...", "url": "https://wilw.dev/blog/2017/07/19/cenode-alexa/", "published_at": "2017-07-19T17:00:00+00:00" }, { "id": "01a08c63-0cde-72f2-9b83-20159e768a32", "title": "CENode in IoT", "url": "https://wilw.dev/blog/2017/06/26/cenode-iot/", "published_at": "2017-06-26T17:00:00+00:00" }, { "id": "01a08c63-0cde-72f2-9b83-20159f5510a5", "title": "CENode", "url": "https://wilw.dev/blog/2017/06/22/cenode/", "published_at": "2017-06-22T17:00:00+00:00" }, { "id": "01a08c63-0cde-72f2-9b83-20159fa2351c", "title": "Two Year Update", "url": "https://wilw.dev/blog/2017/03/16/two-year-update/", "published_at": "2017-03-16T17:00:00+00:00" }, { "id": "01a08c63-0cde-72f2-9b83-2015a05f6357", "title": "Android: Consuming Nintendo Hotspot Data", "url": "https://wilw.dev/blog/2015/05/27/android-consuming-nintendo-hotspot-data/", "published_at": "2015-05-27T17:00:00+00:00" }, { "id": "01a08c63-0cde-72f2-9b83-2015a14e4c62", "title": "Nintendo's Hotspot 'API'", "url": "https://wilw.dev/blog/2015/05/12/nintendos-hotspot-api/", "published_at": "2015-05-12T17:00:00+00:00" }, { "id": "01a08c63-0cde-72f2-9b83-2015a18723c5", "title": "Using Weka in Go", "url": "https://wilw.dev/blog/2015/05/01/using-weka-in-go/", "published_at": "2015-05-01T17:00:00+00:00" }, { "id": "01a08c63-0cde-72f2-9b83-2015a2021535", "title": "Media and volume keys in i3", "url": "https://wilw.dev/blog/2015/04/28/media-and-volume-keys-in-i3/", "published_at": "2015-04-28T17:00:00+00:00" }, { "id": "01a08c63-0cde-72f2-9b83-2015a2370aca", "title": "Web and Social Computing", "url": "https://wilw.dev/blog/2015/02/18/web-and-social-computing/", "published_at": "2015-02-18T17:00:00+00:00" }, { "id": "01a08c63-0cde-72f2-9b83-2015a336e44f", "title": "Developing Useful APIs for the Web", "url": "https://wilw.dev/blog/2015/02/05/developing-useful-apis-for-the-web/", "published_at": "2015-02-05T17:00:00+00:00" }, { "id": "01a08c63-0cde-72f2-9b83-2015a415df2a", "title": "NHS Hack Day", "url": "https://wilw.dev/blog/2015/01/27/nhs-hack-day/", "published_at": "2015-01-27T17:00:00+00:00" }, { "id": "01a08c63-0cde-72f2-9b83-2015a4563cba", "title": "End of an Era", "url": "https://wilw.dev/blog/2015/01/20/end-of-an-era/", "published_at": "2015-01-20T17:00:00+00:00" }, { "id": "01a08c63-0cde-72f2-9b83-2015a4ffde79", "title": "Talk on Open-Source Contribution", "url": "https://wilw.dev/blog/2014/03/26/talk-on-open-source-contribution/", "published_at": "2014-03-26T17:00:00+00:00" }, { "id": "01a08c63-0cde-72f2-9b83-2015a548a859", "title": "Node.js Contribution to Heroku's Dev Center", "url": "https://wilw.dev/blog/2014/03/17/node.js-contribution-to-herokus-dev-center/", "published_at": "2014-03-17T17:00:00+00:00" }, { "id": "01a08c63-0cde-72f2-9b83-2015a619770a", "title": "Seminar at King's College London", "url": "https://wilw.dev/blog/2014/01/28/seminar-at-kings-college-london/", "published_at": "2014-01-28T17:00:00+00:00" }, { "id": "01a08c63-0cde-72f2-9b83-2015a6e53856", "title": "Direct-to-S3 Uploads in Node.js", "url": "https://wilw.dev/blog/2014/01/17/direct-to-s3-uploads-in-node.js/", "published_at": "2014-01-17T17:00:00+00:00" }, { "id": "01a08c63-0cde-72f2-9b83-2015a776435e", "title": "Workshop Presentation in Germany", "url": "https://wilw.dev/blog/2013/10/05/workshop-presentation-in-germany/", "published_at": "2013-10-05T17:00:00+00:00" }, { "id": "01a08c63-0cde-72f2-9b83-2015a7aecbab", "title": "CasaStream", "url": "https://wilw.dev/blog/2013/09/14/casastream/", "published_at": "2013-09-14T17:00:00+00:00" }, { "id": "01a08c63-0cde-72f2-9b83-2015a8705149", "title": "Zoned Network Sound-Streaming: The Problem", "url": "https://wilw.dev/blog/2013/09/02/zoned-network-sound-streaming-the-problem/", "published_at": "2013-09-02T17:00:00+00:00" }, { "id": "01a08c63-0cde-72f2-9b83-2015a8f33f6d", "title": "A rather French week", "url": "https://wilw.dev/blog/2013/08/31/a-rather-french-week/", "published_at": "2013-08-31T17:00:00+00:00" }, { "id": "01a08c63-0cde-72f2-9b83-2015a9270ffb", "title": "Gower Tides v1.4", "url": "https://wilw.dev/blog/2013/07/31/gower-tides-v1.4/", "published_at": "2013-07-31T17:00:00+00:00" }, { "id": "01a08c63-0cde-72f2-9b83-2015a9315a71", "title": "Magic Seaweed's Awesome New API", "url": "https://wilw.dev/blog/2013/07/03/magic-seaweeds-awesome-new-api/", "published_at": "2013-07-03T17:00:00+00:00" }, { "id": "01a08c63-0cde-72f2-9b83-2015a95ecd01", "title": "Accidental Kernel Upgrades on Digital Ocean", "url": "https://wilw.dev/blog/2013/06/20/accidental-kernel-upgrades-on-digital-ocean/", "published_at": "2013-06-20T17:00:00+00:00" }, { "id": "01a08c63-0cde-72f2-9b83-2015aa0d97c9", "title": "WekaPy", "url": "https://wilw.dev/blog/2013/06/12/wekapy/", "published_at": "2013-06-12T17:00:00+00:00" }, { "id": "01a08c63-0cde-72f2-9b83-2015aa610f22", "title": "Gower Tides Open-Sourced", "url": "https://wilw.dev/blog/2013/05/26/gower-tides-open-sourced/", "published_at": "2013-05-26T17:00:00+00:00" }, { "id": "01a08c63-0cde-72f2-9b83-2015aa9b16e3", "title": "Contribution to Heroku Dev Center", "url": "https://wilw.dev/blog/2013/05/07/contribution-to-heroku-dev-center/", "published_at": "2013-05-07T17:00:00+00:00" }, { "id": "01a08c63-0cde-72f2-9b83-2015ab96ba79", "title": "eartub.es", "url": "https://wilw.dev/blog/2013/04/25/eartub.es/", "published_at": "2013-04-25T17:00:00+00:00" }, { "id": "01a08c63-0cde-72f2-9b83-2015abf8d8e6", "title": "flyingsparx.net On Digital Ocean", "url": "https://wilw.dev/blog/2013/04/23/flyingsparx.net-on-digital-ocean/", "published_at": "2013-04-23T17:00:00+00:00" }, { "id": "01a08c63-0cde-72f2-9b83-2015aceadef2", "title": "Trials of Eduroam", "url": "https://wilw.dev/blog/2013/04/16/trials-of-eduroam/", "published_at": "2013-04-16T17:00:00+00:00" }, { "id": "01a08c63-0cde-72f2-9b83-2015ad07098a", "title": "Cardiff Open Sauce Hackathon", "url": "https://wilw.dev/blog/2013/04/11/cardiff-open-sauce-hackathon/", "published_at": "2013-04-11T17:00:00+00:00" }, { "id": "01a08c63-0cde-72f2-9b83-2015ad56d947", "title": "AJAX + Python + Amazon S3", "url": "https://wilw.dev/blog/2013/04/05/ajax--python--amazon-s3/", "published_at": "2013-04-05T17:00:00+00:00" }, { "id": "01a08c63-0cde-72f2-9b83-2015ae480ec8", "title": "Decking Building", "url": "https://wilw.dev/blog/2013/03/30/decking-building/", "published_at": "2013-03-30T17:00:00+00:00" }, { "id": "01a08c63-0cdf-739b-a6ba-101dae7de3ff", "title": "Gower Tides App Released", "url": "https://wilw.dev/blog/2013/03/07/gower-tides-app-released/", "published_at": "2013-03-07T17:00:00+00:00" }, { "id": "01a08c63-0cdf-739b-a6ba-101daefd58b1", "title": "ScriptSlide", "url": "https://wilw.dev/blog/2013/02/18/scriptslide/", "published_at": "2013-02-18T17:00:00+00:00" }, { "id": "01a08c63-0cdf-739b-a6ba-101dafc29dc7", "title": "Research Poster Day", "url": "https://wilw.dev/blog/2013/01/21/research-poster-day/", "published_at": "2013-01-21T17:00:00+00:00" }, { "id": "01a08c63-0cdf-739b-a6ba-101db0a9a3f9", "title": "Delving into Android", "url": "https://wilw.dev/blog/2012/11/13/delving-into-android/", "published_at": "2012-11-13T17:00:00+00:00" }, { "id": "01a08c63-0cdf-739b-a6ba-101db0cff97a", "title": "Seminar: Retweeting", "url": "https://wilw.dev/blog/2012/10/10/seminar-retweeting/", "published_at": "2012-10-10T17:00:00+00:00" }, { "id": "01a08c63-0cdf-739b-a6ba-101db0f20f6c", "title": "DigiSocial Hackathon", "url": "https://wilw.dev/blog/2012/09/20/digisocial-hackathon/", "published_at": "2012-09-20T09:15:00+00:00" } ] posts Claim your blog
Back to wilw.dev
Blog · corpus.blog/blogs/wilw.dev/posts

wilw.dev

wilw.dev

2021

2020

2019

2017

2015

2014

2013

2012