41554 blogs · [ { "id": "01a087a0-ec48-7019-84ef-e8b635bb7dd8", "title": "I made a prettify for Bruno files", "url": "https://martinjoiner.co.uk/blog/2025/12/29/i-made-a-prettify-for-bruno-files/", "published_at": "2025-12-29T19:35:51+00:00" }, { "id": "01a087a0-ec48-7019-84ef-e8b636169fc9", "title": "De-jQuerification of Open Mic Finder", "url": "https://martinjoiner.co.uk/blog/2025/10/18/de-jquerification-of-open-mic-finder/", "published_at": "2025-10-18T18:46:00+00:00" }, { "id": "01a087a0-ec48-7019-84ef-e8b636198fe5", "title": "If I could fix 1 thing about Screwfix", "url": "https://martinjoiner.co.uk/blog/2025/09/24/if-i-could-fix-1-thing-about-screwfix/", "published_at": "2025-09-24T13:34:25+00:00" }, { "id": "01a087a0-ec48-7019-84ef-e8b636bc4b9e", "title": "Solution of the month: Endpoint rename", "url": "https://martinjoiner.co.uk/blog/2025/02/21/solution-of-the-month-endpoint-rename/", "published_at": "2025-02-21T11:55:00+00:00" }, { "id": "01a087a0-ec48-7019-84ef-e8b637a6dcd7", "title": "Did the Trump election just make 110,621 Americans search for an open mic?", "url": "https://martinjoiner.co.uk/blog/2025/01/10/did-the-trump-election-just-make-110621-americans-search-for-an-open-mic/", "published_at": "2025-01-10T11:25:00+00:00" }, { "id": "01a087a0-ec48-7019-84ef-e8b6388c927c", "title": "Events from the future Vs strict API validation", "url": "https://martinjoiner.co.uk/blog/2024/11/22/events-from-the-future-vs-strict-api-validation/", "published_at": "2024-11-22T10:41:00+00:00" }, { "id": "01a087a0-ec48-7019-84ef-e8b6389376a8", "title": "Why Climbing holidays in Spain are better than on Kalymnos", "url": "https://martinjoiner.co.uk/blog/2023/12/18/why-climbing-holidays-in-spain-are-better-than-on-kalymnos/", "published_at": "2023-12-18T20:58:44+00:00" }, { "id": "01a087a0-ec48-7019-84ef-e8b638c8b3b6", "title": "How to climb inside a 35 year old body", "url": "https://martinjoiner.co.uk/blog/2023/09/29/how-to-climb-while-over-35/", "published_at": "2023-09-29T13:48:16+00:00" }, { "id": "01a087a0-ec48-7019-84ef-e8b63965e804", "title": "Eco pension tidy-up", "url": "https://martinjoiner.co.uk/blog/2023/09/15/eco-pension-tidy-up/", "published_at": "2023-09-15T15:55:04+00:00" }, { "id": "01a087a0-ec48-7019-84ef-e8b639b45200", "title": "Essential skills to learn to land a junior developer role", "url": "https://martinjoiner.co.uk/blog/2023/08/11/essential-skills-to-learn-to-land-a-junior-developer-role/", "published_at": "2023-08-11T10:28:39+00:00" }, { "id": "01a0bb53-4276-71bf-a0f5-1f0093164938", "title": "Realising PHPUnit is not just Unit tests", "url": "https://martinjoiner.co.uk/blog/2023/07/28/realising-phpunit-is-not-just-unit-tests/", "published_at": "2023-07-28T11:23:13+00:00" }, { "id": "01a0bb53-4277-72e7-8cdd-60596c696a4c", "title": "Canal de les Dames via ferrata in Montserrat", "url": "https://martinjoiner.co.uk/blog/2023/05/19/canal-de-les-dames-via-ferrata-in-montserrat/", "published_at": "2023-05-19T09:22:00+00:00" }, { "id": "01a0bb53-4277-72e7-8cdd-60596c7e692f", "title": "Open source contribution: Open API validator", "url": "https://martinjoiner.co.uk/blog/2023/03/23/open-source-contribution-open-api-validator/", "published_at": "2023-03-23T18:59:00+00:00" }, { "id": "01a0bb53-4277-72e7-8cdd-60596ce4bfff", "title": "Redefining what Open Mic Finder is to me", "url": "https://martinjoiner.co.uk/blog/2022/05/26/redefining-what-open-mic-finder-is-to-me/", "published_at": "2022-05-26T16:03:00+00:00" }, { "id": "01a0bb53-4277-72e7-8cdd-60596dc8d75a", "title": "Removing loose rock in Avon Gorge", "url": "https://martinjoiner.co.uk/blog/2021/08/30/removing-loose-rock-in-avon-gorge/", "published_at": "2021-08-29T23:31:00+00:00" }, { "id": "01a0bb53-4277-72e7-8cdd-60596de55655", "title": "MTN 94 GIMP Palette", "url": "https://martinjoiner.co.uk/blog/2020/05/24/mtn-94-gimp-palette/", "published_at": "2020-05-24T13:01:49+00:00" }, { "id": "01a0bb53-4277-72e7-8cdd-60596eb95ac9", "title": "Dependency Version Constraints Talk at PHP SW", "url": "https://martinjoiner.co.uk/blog/2019/12/30/dependency-version-constraints-talk-at-php-sw/", "published_at": "2019-12-30T17:00:05+00:00" }, { "id": "01a0bb53-4277-72e7-8cdd-60596f2c3067", "title": "Speedy Seeding: Lightning talk at PHP SW", "url": "https://martinjoiner.co.uk/blog/2018/05/04/speedy-seeding-lightning-talk-at-php-sw/", "published_at": "2018-05-04T14:32:06+00:00" }, { "id": "01a0bb53-4277-72e7-8cdd-605970114972", "title": "Krishnan Guru-Murthy’s Tie – 30th Jan 2018", "url": "https://martinjoiner.co.uk/blog/2018/01/30/krishnan-guru-murthys-tie-30th-jan-2018/", "published_at": "2018-01-30T20:26:30+00:00" }, { "id": "01a0bb53-4277-72e7-8cdd-605970e720fa", "title": "Why I think it’s fine to ask a mobile user to “Click”", "url": "https://martinjoiner.co.uk/blog/2017/08/31/why-i-think-its-fine-to-ask-a-mobile-user-to-click/", "published_at": "2017-08-31T13:38:16+00:00" }, { "id": "01a0bb5a-1e04-71be-86cd-af1078c9f3dd", "title": "A pre-commit hook to block tab-indented code", "url": "https://martinjoiner.co.uk/blog/2017/07/05/a-pre-commit-hook-to-block-tab-indented-code/", "published_at": "2017-07-05T18:04:29+00:00" }, { "id": "01a0bb5a-1e04-71be-86cd-af1079b979bf", "title": "Jade Templating Engine Renamed to Pug", "url": "https://martinjoiner.co.uk/blog/2017/02/13/jade-templating-engine-renamed-to-pug/", "published_at": "2017-02-13T21:14:46+00:00" }, { "id": "01a0bb5a-1e04-71be-86cd-af1079eaecc6", "title": "Utilising the GoodReads API on BookFetch", "url": "https://martinjoiner.co.uk/blog/2017/02/02/utilising-the-goodreads-api-on-bookfetch/", "published_at": "2017-02-02T13:07:47+00:00" }, { "id": "01a0bb5a-1e04-71be-86cd-af107a1e3e6f", "title": "BookFetch scanner tested in the wild", "url": "https://martinjoiner.co.uk/blog/2017/01/28/bookfetch-scanner-tested-in-the-wild/", "published_at": "2017-01-28T19:09:37+00:00" }, { "id": "01a0bb5a-1e04-71be-86cd-af107b11f7fd", "title": "Abandoning Drupal 8 to rebuild BookFetch in Laravel 5", "url": "https://martinjoiner.co.uk/blog/2017/01/23/abandoning-drupal-8-to-rebuild-bookfetch-in-laravel-5/", "published_at": "2017-01-23T20:04:29+00:00" }, { "id": "01a0bb5a-1e04-71be-86cd-af107beaf777", "title": "Adventures in static site generation", "url": "https://martinjoiner.co.uk/blog/2017/01/16/adventures-in-static-site-generation/", "published_at": "2017-01-16T12:38:13+00:00" }, { "id": "01a0bb5a-1e04-71be-86cd-af107bf6e8b6", "title": "To style before testing?", "url": "https://martinjoiner.co.uk/blog/2016/10/27/to-style-before-testing/", "published_at": "2016-10-27T12:15:35+00:00" }, { "id": "01a0bb5a-1e04-71be-86cd-af107c193c7d", "title": "BookFetch Scanner working and ready to test", "url": "https://martinjoiner.co.uk/blog/2016/10/21/bookfetch-scanner-working-and-ready-to-test/", "published_at": "2016-10-21T11:39:39+00:00" }, { "id": "01a0bb5a-1e04-71be-86cd-af107cc77bb0", "title": "A noun for users who write in only uppercase letters", "url": "https://martinjoiner.co.uk/blog/2016/10/14/a-noun-for-users-who-write-in-only-uppercase-letters/", "published_at": "2016-10-14T15:31:37+00:00" }, { "id": "01a0bb5a-1e04-71be-86cd-af107da54a31", "title": "Fun with Drupal 8 and RaspberryPi", "url": "https://martinjoiner.co.uk/blog/2016/10/14/fun-with-drupal-8-and-raspberrypi/", "published_at": "2016-10-14T14:12:52+00:00" }, { "id": "01a0bb62-3c45-72d4-b4bc-56b8ea642f8b", "title": "Run build tasks inside your VM or on the host?", "url": "https://martinjoiner.co.uk/blog/2016/05/06/run-build-tasks-inside-your-vm-or-on-the-host/", "published_at": "2016-05-06T08:11:27+00:00" }, { "id": "01a0bb62-3c45-72d4-b4bc-56b8eabbe88f", "title": "The most hipster Github repo possible", "url": "https://martinjoiner.co.uk/blog/2016/03/01/the-most-hipster-github-repo-possible/", "published_at": "2016-03-01T14:55:19+00:00" }, { "id": "01a0bb62-3c45-72d4-b4bc-56b8eae2863d", "title": "FITC Amsterdam 2016", "url": "https://martinjoiner.co.uk/blog/2016/02/26/fitc-amsterdam-2016/", "published_at": "2016-02-26T11:38:18+00:00" }, { "id": "01a0bb62-3c45-72d4-b4bc-56b8ebd4d022", "title": "Shout app launched", "url": "https://martinjoiner.co.uk/blog/2016/02/01/shout-app-launched/", "published_at": "2016-02-01T11:40:55+00:00" }, { "id": "01a0bb62-3c45-72d4-b4bc-56b8ec85132b", "title": "Book: Blink by Malcolm Gladwell", "url": "https://martinjoiner.co.uk/blog/2016/01/05/book-blink-by-malcolm-gladwell/", "published_at": "2016-01-05T20:17:39+00:00" }, { "id": "01a0bb62-3c45-72d4-b4bc-56b8ed7330e1", "title": "Security and accessibility both get lost in over-specialisation", "url": "https://martinjoiner.co.uk/blog/2015/12/14/security-and-accessibility-both-get-lost-in-over-specialisation/", "published_at": "2015-12-14T14:12:54+00:00" }, { "id": "01a0bb62-3c45-72d4-b4bc-56b8ed9c22fb", "title": "I gave some objectivity to Matt", "url": "https://martinjoiner.co.uk/blog/2015/12/11/i-gave-some-objectivity-to-matt/", "published_at": "2015-12-11T14:42:17+00:00" }, { "id": "01a0bb62-3c45-72d4-b4bc-56b8ee7dc659", "title": "Lightning talk at SWUX", "url": "https://martinjoiner.co.uk/blog/2015/09/10/lightning-talk-at-swux/", "published_at": "2015-09-10T16:14:56+00:00" }, { "id": "01a0bb62-3c45-72d4-b4bc-56b8ef47f5c7", "title": "HTML5 Autofocus attribute is sweet", "url": "https://martinjoiner.co.uk/blog/2015/08/29/html5-autofocus-attribute-is-sweet/", "published_at": "2015-08-29T11:43:45+00:00" }, { "id": "01a0bb62-3c45-72d4-b4bc-56b8ef660d9c", "title": "Preparations underway for Upfest ’15", "url": "https://martinjoiner.co.uk/blog/2015/07/23/preparations-underway-for-upfest-15/", "published_at": "2015-07-23T17:59:26+00:00" }, { "id": "01a0bb68-6b1c-72cb-945c-f323e99d5894", "title": ":invalid pseudo class works on form elements too!", "url": "https://martinjoiner.co.uk/blog/2015/07/20/invalid-pseudo-class-works-on-form-elements-too/", "published_at": "2015-07-20T17:18:40+00:00" }, { "id": "01a0bb68-6b1c-72cb-945c-f323ea897bbd", "title": "What is the skv prefix and when to use it", "url": "https://martinjoiner.co.uk/blog/2015/07/13/what-is-the-skv-prefix-and-when-to-use-it/", "published_at": "2015-07-13T18:32:35+00:00" }, { "id": "01a0bb68-6b1c-72cb-945c-f323eaee5e14", "title": "Mulshing boards in prep for Upfest ’15", "url": "https://martinjoiner.co.uk/blog/2015/07/11/mulshing-boards-in-prep-for-upfest-15/", "published_at": "2015-07-11T16:02:07+00:00" }, { "id": "01a0bb68-6b1c-72cb-945c-f323eb07bdb6", "title": "Helped paint the Bedminster sign", "url": "https://martinjoiner.co.uk/blog/2015/06/14/helped-paint-the-bedminster-sign/", "published_at": "2015-06-14T19:21:36+00:00" }, { "id": "01a0bb68-6b1c-72cb-945c-f323eb4f23c2", "title": "jQuery UK Oxford 2015", "url": "https://martinjoiner.co.uk/blog/2015/03/08/jquery-uk-oxford-2015/", "published_at": "2015-03-08T11:51:06+00:00" }, { "id": "01a0bb68-6b1c-72cb-945c-f323ec43e149", "title": "FITC Amsterdam 2015", "url": "https://martinjoiner.co.uk/blog/2015/02/28/fitc-amsterdam-2015/", "published_at": "2015-02-28T08:16:45+00:00" }, { "id": "01a0bb68-6b1c-72cb-945c-f323ecad39be", "title": "Sketch: A fight at a funeral", "url": "https://martinjoiner.co.uk/blog/2015/01/31/a-fight-at-a-funeral/", "published_at": "2015-01-31T22:41:29+00:00" }, { "id": "01a0bb68-6b1c-72cb-945c-f323ed2cf088", "title": "Responsive re-design damages ad revenue", "url": "https://martinjoiner.co.uk/blog/2014/10/27/responsive-re-design-damages-ad-revenue/", "published_at": "2014-10-27T13:27:14+00:00" }, { "id": "01a0bb68-6b1c-72cb-945c-f323edafcc0d", "title": "Coldfusions cfDump / writeDump() for PHP", "url": "https://martinjoiner.co.uk/blog/2013/08/12/coldfusions-cfdump-writedump-for-php/", "published_at": "2013-08-12T15:40:26+00:00" }, { "id": "01a0bb68-6b1c-72cb-945c-f323ee526e2c", "title": "Bristol geeks and their remarkable spec keyboards", "url": "https://martinjoiner.co.uk/blog/2013/06/21/bristol-geeks-and-their-remarkable-spec-keyboards/", "published_at": "2013-06-21T16:46:30+00:00" }, { "id": "01a0bb6c-a6ee-708e-9ac5-90932f120e7c", "title": "Bristols Biggest Bike Ride 2013", "url": "https://martinjoiner.co.uk/blog/2013/06/17/bristols-biggest-bike-ride-2013/", "published_at": "2013-06-17T21:03:37+00:00" }, { "id": "01a0bb6c-a6ee-708e-9ac5-90932ffb8c29", "title": "Scotch On The Rocks 2013 in Edinburgh", "url": "https://martinjoiner.co.uk/blog/2013/06/08/scotch-on-the-rocks-2013/", "published_at": "2013-06-08T18:42:48+00:00" }, { "id": "01a0bb6c-a6ee-708e-9ac5-9093307c703f", "title": "Bristol IT Megameet", "url": "https://martinjoiner.co.uk/blog/2013/06/01/bristol-it-megameet/", "published_at": "2013-06-01T18:56:15+00:00" }, { "id": "01a0bb6c-a6ee-708e-9ac5-909330acf2eb", "title": "Painting at Upfest 2013 in Bristol", "url": "https://martinjoiner.co.uk/blog/2013/05/27/painting-at-upfest-2013/", "published_at": "2013-05-27T18:20:15+00:00" }, { "id": "01a0bb6c-a6ee-708e-9ac5-909330d29264", "title": "Adobe Create the Web conference in London", "url": "https://martinjoiner.co.uk/blog/2012/10/03/adobe-create-the-web-conference-in-london/", "published_at": "2012-10-03T18:32:00+00:00" }, { "id": "01a0bb6c-a6ee-708e-9ac5-909331377ac4", "title": "Storywalks Mobile Web App Beta Launch", "url": "https://martinjoiner.co.uk/blog/2012/09/22/storywalks-mobile-web-app-beta-launch/", "published_at": "2012-09-22T14:43:31+00:00" }, { "id": "01a0bb6c-a6ee-708e-9ac5-909331e2aeb1", "title": "Bristol inspired live art battle in Taunton", "url": "https://martinjoiner.co.uk/blog/2012/08/15/bristol-inspired-live-art-battle-in-taunton/", "published_at": "2012-08-15T16:37:13+00:00" }, { "id": "01a0bb6c-a6ee-708e-9ac5-9093321b7b17", "title": "Bristol Life Drawing", "url": "https://martinjoiner.co.uk/blog/2012/06/18/bristol-life-drawing/", "published_at": "2012-06-18T09:39:13+00:00" }, { "id": "01a0bb6c-a6ee-708e-9ac5-90933252a1ee", "title": "Repairing the missing Stokes Croft Turbo Island head", "url": "https://martinjoiner.co.uk/blog/2012/05/30/repairing-the-missing-stokes-croft-turbo-island-head/", "published_at": "2012-05-30T10:53:35+00:00" }, { "id": "01a0bb6c-a6ee-708e-9ac5-909332ed1571", "title": "Find an open mic night on your smart phone", "url": "https://martinjoiner.co.uk/blog/2012/05/05/find-an-open-mic-night-on-your-smart-phone/", "published_at": "2012-05-05T09:23:17+00:00" } ] posts Claim your blog
Back to martinjoiner.co.uk
Blog · corpus.blog/blogs/martinjoiner.co.uk/posts

martinjoiner.co.uk

martinjoiner.co.uk

2025

2024

2023

2022

2021

2020

2019

2018

2017

2016

2015

2014

2013

2012