diff options
author | Martin Ashby <martin@ashbysoft.com> | 2024-03-02 10:37:47 +0000 |
---|---|---|
committer | Martin Ashby <martin@ashbysoft.com> | 2024-03-02 10:37:47 +0000 |
commit | cb2b9eff709e6adba4e8ff7bd0535a59fe5d53bf (patch) | |
tree | 1a2d8330b624f694b864bfc3b85a0fb0aa1012e2 /content | |
parent | 1c7126215a8c74154b0d2579b90b346097dcae69 (diff) | |
download | mfashby.net-cb2b9eff709e6adba4e8ff7bd0535a59fe5d53bf.tar.gz mfashby.net-cb2b9eff709e6adba4e8ff7bd0535a59fe5d53bf.tar.bz2 mfashby.net-cb2b9eff709e6adba4e8ff7bd0535a59fe5d53bf.tar.xz mfashby.net-cb2b9eff709e6adba4e8ff7bd0535a59fe5d53bf.zip |
Add about page and CV
Make comments configurable
Move last updated date to the footer
Diffstat (limited to 'content')
60 files changed, 162 insertions, 0 deletions
diff --git a/content/about/_index.md b/content/about/_index.md new file mode 100644 index 0000000..a176d94 --- /dev/null +++ b/content/about/_index.md @@ -0,0 +1,9 @@ +--- +title: "About" +date: 2024-03-01T23:59:52Z +draft: false +--- + +Hi, my name's Martin. + +I write about software engineering and other stuff.
\ No newline at end of file diff --git a/content/about/cv.md b/content/about/cv.md new file mode 100644 index 0000000..95c66c0 --- /dev/null +++ b/content/about/cv.md @@ -0,0 +1,37 @@ +--- +title: "CV" +date: 2024-03-02T00:06:37Z +draft: false +--- + +# Martin Ashby - Software Engineer + +I solve problems in software. My two strongest skills are technical design & architecture, and debugging. + +## Education / Employment History + +- 2018 - Present Patients Know Best, Software engineer +- 2010 - 2018 The Phoenix Partnership, Software Engineer +- 2007 - 2010 University of Warwick, Physics BSc (1st class) + +## Projects + +In 2023/2024 I am transitioning PKBs primary web application from WildFly to Spring Boot. This is an important step for improving our security, and for reducing onboarding effort both for new developers and mental overhead for the existing development team. This requires deep knowledge of all the libraries and technologies used in the existing application and their analogs in Spring Boot. It also requires a lot of debugging! + +In 2022/2023 I helped to define a new software architecture for PKB. The new architecture had to overcome several pain points of the existing system, and also enable new possibilities. I designed this system in conjunction with the CTO, product management team, and my peers. The new architecture better allowed PKB to focus on their core competencies while outsourcing essential but non-core items such as authentication, audit and orchestration to managed or self-hosted third party software. This required collaboration with many groups including co-developers, product management teams, and third parties. + +From 2021 I have led the 'application & infrastructure engineering' team at PKB. Our team is responsible for implementing cross-cutting system changes to improve the security and scalability of PKB. This requires good domain knowledge and situational awareness in order to choose the right projects to ensure PKB's future operational needs are met. It also requires the soft skills necessary to take care of a small team (2-4 engineers, senior and junior) + +From 2021 I have been chair of PKB's 'architecture clinic', a weekly forum for discussing PKB architecture and design. This requires both the technical chops to understand the problems that the engineering team face, as well as the soft skills to ensure that decisions are made and that engineers are on-board with them. + +In 2020 I moved PKB from running on co-located hosting using docker-swarm at a small provider, to Google Cloud Platform using kubernetes. This allowed PKB to significantly improve their operational security, as well as enabled accelerated development by using google managed services. This required learning about kubernetes, google cloud platform, networking in a cloud environment, and a host of other technical details. This also required planning and managing the final switchover in conjunction with my co-developers and our support team. + +In 2016-2017 I worked on TPP's mobile applications and their backend; expanding their existing backend to support new patient-facing mobile applications. I also worked on the client side of the initial version of TPP's [Airmid UK](https://play.google.com/store/apps/details?id=px.mw.android.aihealth.patient.live.production&pcampaignid=web_share) app. + +I am comfortable using a variety of programming languages, and I have used a variety of frameworks. My current work uses Java and Spring. I'm very open to learning new technology as it becomes necessary or interesting. My current favourite language is Zig. Ask me why! + +## Links + +- [Blog](https://mfashby.net) +- [GitHub](https://github.com/MFAshby) +- [Code](https://code.mfashby.net/)
\ No newline at end of file diff --git a/content/posts/2018-05-31-new-site.md b/content/posts/2018-05-31-new-site.md index 7dfd4c3..6b60cc2 100644 --- a/content/posts/2018-05-31-new-site.md +++ b/content/posts/2018-05-31-new-site.md @@ -2,6 +2,8 @@ layout: post title: "New Site" date: 2018-05-31 17:51:07 +0100 +params: + comments: true --- I'm intending to write more online about the stuff I tinker with. diff --git a/content/posts/2018-06-01-mailu.md b/content/posts/2018-06-01-mailu.md index 628e64f..2c0d75f 100644 --- a/content/posts/2018-06-01-mailu.md +++ b/content/posts/2018-06-01-mailu.md @@ -2,6 +2,8 @@ layout: post title: "Mailu" date: 2018-06-01 20:17:00 +0100 +params: + comments: true --- ## My search for an email server diff --git a/content/posts/2018-06-02-unicornpaint.md b/content/posts/2018-06-02-unicornpaint.md index 9c11e8a..9a77f12 100644 --- a/content/posts/2018-06-02-unicornpaint.md +++ b/content/posts/2018-06-02-unicornpaint.md @@ -2,6 +2,8 @@ layout: post title: "Unicorn Paint" date: 2018-06-02 22:33:00 +0100 +params: + comments: true --- See [unicornpaint] for details. I'll write about this later... diff --git a/content/posts/2021-09-17-restart.md b/content/posts/2021-09-17-restart.md index d2171fa..48fa0a0 100644 --- a/content/posts/2021-09-17-restart.md +++ b/content/posts/2021-09-17-restart.md @@ -2,6 +2,8 @@ title: "Restart" date: 2021-09-17T23:41:39+01:00 draft: false +params: + comments: true --- I'll restart blogging, likely in the form of micro-blogs restricted to just a few sentences. (like twitter) diff --git a/content/posts/2021-09-18-maddy.md b/content/posts/2021-09-18-maddy.md index b4c2437..3f75181 100644 --- a/content/posts/2021-09-18-maddy.md +++ b/content/posts/2021-09-18-maddy.md @@ -2,6 +2,8 @@ title: "Maddy" date: 2021-09-18T22:05:32+01:00 draft: false +params: + comments: true --- Since my [last post on mail servers](https://mfashby.net/posts/2018-06-01-mailu/), the [maddy](https://maddy.email/) email server has advanced significantly, and now includes enough functionality to be a useful mail server adhering to current best practices. This includes DKIM, spam filtering with rspamd, virtual user management and more. diff --git a/content/posts/2021-09-19-longboard-setup.md b/content/posts/2021-09-19-longboard-setup.md index e8ed98d..b0c341e 100644 --- a/content/posts/2021-09-19-longboard-setup.md +++ b/content/posts/2021-09-19-longboard-setup.md @@ -2,6 +2,8 @@ title: "Longboard Setup" date: 2021-09-19T10:20:49+01:00 draft: false +params: + comments: true --- ![Longboard](/assets/longboard.jpg) diff --git a/content/posts/2021-09-21-manjaro.md b/content/posts/2021-09-21-manjaro.md index 4c46352..337bfb4 100644 --- a/content/posts/2021-09-21-manjaro.md +++ b/content/posts/2021-09-21-manjaro.md @@ -2,6 +2,8 @@ title: "Manjaro" date: 2021-09-21T20:03:48+01:00 draft: false +params: + comments: true --- I've used [Ubuntu](https://ubuntu.com/) linux for many years, but just recently it's started to become a bit more difficult due to proliferation of package managers. With the introduction of snap, flatpak, I'm never quite sure where I should be getting my software from. diff --git a/content/posts/2021-09-26-pine64.md b/content/posts/2021-09-26-pine64.md index 62948ec..dbc2d93 100644 --- a/content/posts/2021-09-26-pine64.md +++ b/content/posts/2021-09-26-pine64.md @@ -2,6 +2,8 @@ title: "Pine64" date: 2021-09-26T16:39:28+01:00 draft: false +params: + comments: true --- I bought a [Pinebook Pro](https://www.pine64.org/pinebook-pro/) some while back, and I'm quite happy with it. It has a nice small form factor, decent display, nice shell, and reasonable battery life. When I first bought it software support was somewhat sketchy, however most linux distributions and even OpenBSD now have support for it, so I'm hoping I can keep using it for a number of years. I have even managed to do some dayjob (software development) work with it. diff --git a/content/posts/2021-09-29-bike.md b/content/posts/2021-09-29-bike.md index ff6e853..0eda361 100644 --- a/content/posts/2021-09-29-bike.md +++ b/content/posts/2021-09-29-bike.md @@ -2,6 +2,8 @@ title: "Bike" date: 2021-10-01T12:27:26+01:00 draft: false +params: + comments: true --- I recently refurbished my bike for use as a commuter. I work at home, but I need to commute my daughter to nursery a couple of days a week. It's also handy to be able to increase my range without having to use the car, as traffic around the area can get bad. diff --git a/content/posts/2021-09-29-recipe.md b/content/posts/2021-09-29-recipe.md index c1c3b78..3e5f893 100644 --- a/content/posts/2021-09-29-recipe.md +++ b/content/posts/2021-09-29-recipe.md @@ -2,6 +2,8 @@ title: "Recipe" date: 2021-09-29T22:56:01+01:00 draft: false +params: + comments: true --- I found [plainoldrecipe](https://github.com/poundifdef/plainoldrecipe) a while back, I find it really handy for some recipe sites which are full of cookie banners and ads, it makes them much easier to read on a phone or small laptop while I'm actually trying to cook. diff --git a/content/posts/2021-10-01-blog.md b/content/posts/2021-10-01-blog.md index 947bfc0..a4e25f9 100644 --- a/content/posts/2021-10-01-blog.md +++ b/content/posts/2021-10-01-blog.md @@ -2,6 +2,8 @@ title: "Blog" date: 2021-10-01T19:34:15+01:00 draft: false +params: + comments: true --- I originally started this blog using [Jekyll](https://jekyllrb.com/), but I've since switched to using [hugo](https://gohugo.io/) after I found it simpler to install and use (`pamac install hugo` on manjaro linux). diff --git a/content/posts/2021-10-06-clojure.md b/content/posts/2021-10-06-clojure.md index 51eda00..78b209d 100644 --- a/content/posts/2021-10-06-clojure.md +++ b/content/posts/2021-10-06-clojure.md @@ -2,6 +2,8 @@ title: "Clojure" date: 2021-10-06T21:35:37+01:00 draft: false +params: + comments: true --- I'm learning [Clojure](https://clojure.org) on the basis that you should learn something that will change your way of thinking. I've previously stuck to C-family languages, and I work professionally with Java. diff --git a/content/posts/2021-10-30-openbsd.md b/content/posts/2021-10-30-openbsd.md index dd51449..f366b8d 100644 --- a/content/posts/2021-10-30-openbsd.md +++ b/content/posts/2021-10-30-openbsd.md @@ -2,6 +2,8 @@ title: "OpenBSD" date: 2021-10-30T20:25:43+01:00 draft: false +params: + comments: true --- I've tried installing & using [OpenBSD](https://openbsd.org/) 7.0 on my Pinebook Pro. I've previously used OpenBSD on a small VPS just to try it out, and I was quite impressed. diff --git a/content/posts/2021-11-05-postgres-query-rewrite.md b/content/posts/2021-11-05-postgres-query-rewrite.md index 32041be..a70323c 100644 --- a/content/posts/2021-11-05-postgres-query-rewrite.md +++ b/content/posts/2021-11-05-postgres-query-rewrite.md @@ -2,6 +2,8 @@ title: "Postgres Query Rewrite" date: 2021-11-05T11:57:12Z draft: false +params: + comments: true --- Recently at work, I needed to be able to rewrite some [postgresql](https://www.postgresql.org/) queries which were coming from a closed-source application in order to integrate the app into our own system testing setup. Specifically I needed to replace instances of `current_timestamp` with invocation of `now()` function. diff --git a/content/posts/2021-11-09-longboard-2.md b/content/posts/2021-11-09-longboard-2.md index d198304..1aa1af4 100644 --- a/content/posts/2021-11-09-longboard-2.md +++ b/content/posts/2021-11-09-longboard-2.md @@ -2,6 +2,8 @@ title: "Longboard 2" date: 2021-11-09T21:56:41Z draft: false +params: + comments: true --- Since my last post on longboarding, I've been learning to [push up slide](https://downhill254.com/how-to-push-up-slide-longboarding/) and [coleman slide](https://downhill254.com/coleman-slide-for-longboard-downhill-pendulum-slide/). These are essential skills to control your speed so you can safely tackle steeper and longer hills. diff --git a/content/posts/2021-11-14-backups.md b/content/posts/2021-11-14-backups.md index 09689eb..65fb676 100644 --- a/content/posts/2021-11-14-backups.md +++ b/content/posts/2021-11-14-backups.md @@ -2,6 +2,8 @@ title: "Backups" date: 2021-11-14T11:12:44Z draft: false +params: + comments: true --- I've recently setup a full system backup for my raspberry pi home server, backing up to my NAS over NFS. Working backups give me the confidence to use it for more critical things like email, calendar and contacts. diff --git a/content/posts/2021-12-04-contacts.md b/content/posts/2021-12-04-contacts.md index f36bd34..c6fb5a5 100644 --- a/content/posts/2021-12-04-contacts.md +++ b/content/posts/2021-12-04-contacts.md @@ -2,6 +2,8 @@ title: "Contacts" date: 2021-12-04T15:05:47Z draft: false +params: + comments: true --- I'm now using [radicale](https://radicale.org/) for calendar and contacts. This was very easy to install and configure in manjaro linux. I'm using this in conjunction with [radicale-imap](https://github.com/r3c/radicale-imap) plugin for authentication. Eventually I might look at an SSO solution for the variety of services I have installed on my server. diff --git a/content/posts/2021-12-28-chat-server-protocol.md b/content/posts/2021-12-28-chat-server-protocol.md index 436d454..337868b 100644 --- a/content/posts/2021-12-28-chat-server-protocol.md +++ b/content/posts/2021-12-28-chat-server-protocol.md @@ -2,6 +2,8 @@ title: "Chat Server Protocol" date: 2021-12-28T22:22:01Z draft: false +params: + comments: true --- I wrote a previous post about [clojure](/posts/2021-10-06-clojure/) where I expressed an intent to write a slack clone using the language. Like most ideas, this didn't go anywhere, however it did spawn a new idea: Chat Server Protocol. diff --git a/content/posts/2022-02-11-philosophy-software-dev.md b/content/posts/2022-02-11-philosophy-software-dev.md index e7628ca..64dff45 100644 --- a/content/posts/2022-02-11-philosophy-software-dev.md +++ b/content/posts/2022-02-11-philosophy-software-dev.md @@ -2,6 +2,8 @@ title: "Book - Philosophy Of Software Design" date: 2022-02-11T19:18:07Z draft: false +params: + comments: true --- This is my short list of ideas I've taken away from reading [a Philosophy of Software Design](https://www.goodreads.com/en/book/show/39996759-a-philosophy-of-software-design) by John Ousterhout. diff --git a/content/posts/2022-02-23-wordle.md b/content/posts/2022-02-23-wordle.md index fb225d9..3c7f2b1 100644 --- a/content/posts/2022-02-23-wordle.md +++ b/content/posts/2022-02-23-wordle.md @@ -2,6 +2,8 @@ title: "Wordle" date: 2022-02-23T13:41:22Z draft: false +params: + comments: true --- I really enjoyed playing [wordle](https://www.powerlanguage.co.uk/wordle/) recently, and I really appreciated how simple and fun the game is. I enjoyed comparing my scores with my friends and family; it's also fun to see people learning new words! diff --git a/content/posts/2022-03-19-wildcard.md b/content/posts/2022-03-19-wildcard.md index 1662075..4e70715 100644 --- a/content/posts/2022-03-19-wildcard.md +++ b/content/posts/2022-03-19-wildcard.md @@ -2,6 +2,8 @@ title: "Wildcard" date: 2022-03-19T13:17:26Z draft: false +params: + comments: true --- I've switched to using a wildcard certificate for everything I host on `*.mfashby.net`. diff --git a/content/posts/2022-03-27-fossil.md b/content/posts/2022-03-27-fossil.md index 7574983..d58bd14 100644 --- a/content/posts/2022-03-27-fossil.md +++ b/content/posts/2022-03-27-fossil.md @@ -2,6 +2,8 @@ title: "Fossil" date: 2022-03-27T11:28:31+01:00 draft: false +params: + comments: true --- I have switched to using [fossil SCM](https://fossil-scm.org) for managing the source code of this website. I am attracted to the idea of having a decentralized store not only for code but also for tickets, wiki, forums / chat, etc etc. Basically everything github provides, but capable of offline working. diff --git a/content/posts/2022-04-30-longboard-3.md b/content/posts/2022-04-30-longboard-3.md index 01f6e5e..ebeb454 100644 --- a/content/posts/2022-04-30-longboard-3.md +++ b/content/posts/2022-04-30-longboard-3.md @@ -2,6 +2,8 @@ title: "Longboard 3" date: 2022-04-30T19:49:39+01:00 draft: false +params: + comments: true --- Since my [last post](/2021-11-09-longboard-2/) on longboarding, I've become a lot more comfortable with push-up and coleman slides, and now I aim to learn [toeside pendulum slide](https://youtu.be/a5B_XaubQNE). I have had limited success so far, and one bad high-side attempting it (fall down-hill direction, as opposed to low-side falling in the uphill direction). Luckily my helmet did it's job, I'll be trying again in the future. diff --git a/content/posts/2022-05-07-stolen-focus.md b/content/posts/2022-05-07-stolen-focus.md index 1b5632b..113c460 100644 --- a/content/posts/2022-05-07-stolen-focus.md +++ b/content/posts/2022-05-07-stolen-focus.md @@ -2,6 +2,8 @@ title: "Book - Stolen Focus" date: 2022-05-07T15:18:58+01:00 draft: false +params: + comments: true --- I've recently finished reading [Stolen Focus](stolenfocusbook.com/) by Johann Hari. diff --git a/content/posts/2022-06-09-rustlings.md b/content/posts/2022-06-09-rustlings.md index 97a279e..cc40a87 100644 --- a/content/posts/2022-06-09-rustlings.md +++ b/content/posts/2022-06-09-rustlings.md @@ -2,6 +2,8 @@ title: "Rustlings" date: 2022-06-09T21:58:40+01:00 draft: false +params: + comments: true --- I recently completed the [rustlings](https://github.com/rust-lang/rustlings/) introduction to learning the [Rust](https://www.rust-lang.org/) programming language. diff --git a/content/posts/2022-07-09-longboard-4.md b/content/posts/2022-07-09-longboard-4.md index 3ecf812..f8a9716 100644 --- a/content/posts/2022-07-09-longboard-4.md +++ b/content/posts/2022-07-09-longboard-4.md @@ -2,6 +2,8 @@ title: "Longboard 4" date: 2022-07-09T22:00:07+01:00 draft: false +params: + comments: true --- Since the [last](/posts/2022-04-30-longboard-3/) post on longboarding, I've started skating at the local park with a friend. Park skating is pretty different to downhill & freeride! It's a lot of fun. It challenges you to think about how you're going to navigate the park (what line you'll take), and pushes the boundaries of what you are capable of. It also looks awesome :) diff --git a/content/posts/2022-07-30-fossil2.md b/content/posts/2022-07-30-fossil2.md index 2711877..d44518c 100644 --- a/content/posts/2022-07-30-fossil2.md +++ b/content/posts/2022-07-30-fossil2.md @@ -2,6 +2,8 @@ title: "Fossil 2" date: 2022-07-30T22:57:38+01:00 draft: false +params: + comments: true --- I tidied up [my github](https://github.com/MFAshby) and archived a bunch of old repositories. The few that I have kept, I have moved to my [self-hosted fossil](https://code.mfashby.net), and I have enabled a few useful options there like [login-groups](https://fossil-scm.org/home/doc/trunk/www/caps/login-groups.md) and correctly setting base URL and individual repository paths within fossil. diff --git a/content/posts/2022-09-09-serverless.md b/content/posts/2022-09-09-serverless.md index fbd572c..bc00d53 100644 --- a/content/posts/2022-09-09-serverless.md +++ b/content/posts/2022-09-09-serverless.md @@ -2,6 +2,8 @@ title: "Serverless" date: 2022-09-09T21:48:19+01:00 draft: false +params: + comments: true --- At work, our main product is a web application. Its primary function is receiving health data from hospital systems (and GP systems, and anyone else that has health data) and making it available to patients. I've been heavily involved in the infrastructure side of things; including migration to public cloud infrastructure. diff --git a/content/posts/2022-09-25-back-to-git.md b/content/posts/2022-09-25-back-to-git.md index b55c97c..6ae614d 100644 --- a/content/posts/2022-09-25-back-to-git.md +++ b/content/posts/2022-09-25-back-to-git.md @@ -2,6 +2,8 @@ title: "Back to Git" date: 2022-09-25T21:09:31+01:00 draft: false +params: + comments: true --- I moved back to git from fossil SCM, after [previously](posts/2022-03-27-fossil/) migrating the other way. diff --git a/content/posts/2022-10-07-blocky.md b/content/posts/2022-10-07-blocky.md index 2d6005e..2e48ebe 100644 --- a/content/posts/2022-10-07-blocky.md +++ b/content/posts/2022-10-07-blocky.md @@ -2,6 +2,8 @@ title: "Blocky" date: 2022-10-07T20:24:03+01:00 draft: false +params: + comments: true --- I recently revisited the idea of installing [pi-hole](https://pi-hole.net/) in my local network to help remove ads from miscellaneous devices on my network. However, my raspberry pi already runs a lot of stuff including this blog, and runs on an unsupported-by-pi-hole OS (manjaro linux). diff --git a/content/posts/2022-10-09-quine.md b/content/posts/2022-10-09-quine.md index d104a03..58f3c85 100644 --- a/content/posts/2022-10-09-quine.md +++ b/content/posts/2022-10-09-quine.md @@ -2,6 +2,8 @@ title: "Quine" date: 2022-10-09T13:11:52+01:00 draft: false +params: + comments: true --- A [quine](https://en.wikipedia.org/wiki/Quine_%28computing%29) is a program that takes no input, and it's output is it's own source code. A quine-relay is a program that outputs the source code for another program, and when that next program is run it outputs the source code of the first program. I recently saw [this quine relay](https://github.com/mame/quine-relay) program which was super impressive as it goes through 128 languages like this! diff --git a/content/posts/2022-10-09-skateboard-1.md b/content/posts/2022-10-09-skateboard-1.md index f65454a..de06dec 100644 --- a/content/posts/2022-10-09-skateboard-1.md +++ b/content/posts/2022-10-09-skateboard-1.md @@ -2,6 +2,8 @@ title: "Skateboard 1" date: 2022-10-09T13:21:00+01:00 draft: false +params: + comments: true --- Following my [previous post](posts/2022-07-09-longboard-4/) on longboarding, I took a few more trips to the skate park. I eventually decided to buy a regular (or 'popsicle') board as they really open up a lot more of the park, and tricks. diff --git a/content/posts/2022-10-14-blogsite.md b/content/posts/2022-10-14-blogsite.md index 29a7520..d7bc1e1 100644 --- a/content/posts/2022-10-14-blogsite.md +++ b/content/posts/2022-10-14-blogsite.md @@ -2,6 +2,8 @@ title: "Blogsite" date: 2022-10-14T22:59:01+01:00 draft: false +params: + comments: true --- I was thinking about this blog and how it's set up. I [covered](posts/2021-10-01-blog/) the setup in a previous post, but it's quite simple: the site is generated from markdown files with [hugo](https://gohugo.io/) and published to git. The server pulls from git on a schedule, rebuilds it and copies it to the web server directory. diff --git a/content/posts/2022-10-14-caddy.md b/content/posts/2022-10-14-caddy.md index 0074a04..248aca0 100644 --- a/content/posts/2022-10-14-caddy.md +++ b/content/posts/2022-10-14-caddy.md @@ -2,6 +2,8 @@ title: "Caddy" date: 2022-10-14T22:58:22+01:00 draft: false +params: + comments: true --- I switched to [caddy](https://caddywebserver.com) from nginx. Caddy has a 'simpler' configuration syntax, and offers built-in automatic TLS support with letsencrypt. I've also enabled automatic TLS support in [maddy](https://maddy.email) mail server, and I have been able to remove certbot entirely from my home server and disable the cron job that refreshed certs! diff --git a/content/posts/2022-10-15-blogsite2.md b/content/posts/2022-10-15-blogsite2.md index 6a26594..b92c642 100644 --- a/content/posts/2022-10-15-blogsite2.md +++ b/content/posts/2022-10-15-blogsite2.md @@ -2,6 +2,8 @@ title: "Blogsite 2" date: 2022-10-15T22:39:18+01:00 draft: false +params: + comments: true --- I made another [small experiment](https://blogsite2.mfashby.net/) [source](https://code.mfashby.net/martin/blogsite2) to do my blog yet another way; rather than using hugo static site generation, I can leverage Caddy server's built-in [template rendering](https://caddyserver.com/docs/caddyfile/directives/templates) and markdown support to serve markdown files 'directly' without a pre-build step. diff --git a/content/posts/2022-12-04-aoc.md b/content/posts/2022-12-04-aoc.md index 9ef4154..da6c838 100644 --- a/content/posts/2022-12-04-aoc.md +++ b/content/posts/2022-12-04-aoc.md @@ -2,6 +2,8 @@ title: "Advent of Code" date: 2022-12-04T08:54:56Z draft: false +params: + comments: true --- I'm having a go at [Advent Of Code](https://adventofcode.com/2022) this year, this time [writing solutions in Rust](https://code.mfashby.net/martin/aoc2022). diff --git a/content/posts/2022-12-20-longboard-5.md b/content/posts/2022-12-20-longboard-5.md index a7a1152..16e140c 100644 --- a/content/posts/2022-12-20-longboard-5.md +++ b/content/posts/2022-12-20-longboard-5.md @@ -2,6 +2,8 @@ title: "Longboard 5" date: 2022-12-20T14:16:49Z draft: false +params: + comments: true --- I've been stuck inside with the cold weather recently. However, I've also discovered [Ampskate](https://www.ampskate.com/tricks) which is a great little guide for learning longboard dance and freestyle. diff --git a/content/posts/2022-12-26-spotifyd.md b/content/posts/2022-12-26-spotifyd.md index d4fed27..5a82976 100644 --- a/content/posts/2022-12-26-spotifyd.md +++ b/content/posts/2022-12-26-spotifyd.md @@ -2,6 +2,8 @@ title: "Spotifyd" date: 2022-12-26T23:08:03Z draft: false +params: + comments: true --- I recently discovered [spotifyd](https://spotifyd.github.io/), an open source alternative to the deprecated libspotify. I happened to also have a [pi-zero W](https://www.raspberrypi.com/news/raspberry-pi-zero-w-joins-family/) from a while back, and a [pHAT DAC](https://learn.pimoroni.com/article/raspberry-pi-phat-dac-install) amplifier. diff --git a/content/posts/2022-12-30-comments.md b/content/posts/2022-12-30-comments.md index c4bcdbd..6a90c52 100644 --- a/content/posts/2022-12-30-comments.md +++ b/content/posts/2022-12-30-comments.md @@ -2,6 +2,8 @@ title: "Comments" date: 2022-12-30T17:53:00Z draft: false +params: + comments: true --- I've added an extremely basic, probably insecure, comments form to my blog site. I've built it in Rust for practice. Code is [here](https://code.mfashby.net/martin/mfashby.net/src/branch/main/comments). diff --git a/content/posts/2022-12-31-cgit.md b/content/posts/2022-12-31-cgit.md index 210c529..f42fc03 100644 --- a/content/posts/2022-12-31-cgit.md +++ b/content/posts/2022-12-31-cgit.md @@ -2,6 +2,8 @@ title: "Cgit" date: 2022-12-31T23:39:38Z draft: false +params: + comments: true --- In a [previous post](posts/2022-09-25-back-to-git/) I switched back from fossil to git. I found [gitea](https://gitea.io/) to be a pretty good server. However, it has many features I do not use, and it takes a minimum of 15% of the RAM on my Raspberry Pi home server! I found a simpler setup. diff --git a/content/posts/2023-01-31-oso.md b/content/posts/2023-01-31-oso.md index ed5aa07..cace628 100644 --- a/content/posts/2023-01-31-oso.md +++ b/content/posts/2023-01-31-oso.md @@ -2,6 +2,8 @@ title: "Authorization and search operations" date: 2023-01-31T21:14:06Z draft: false +params: + comments: true --- Background: at work I help to build a [SAAS](https://en.wikipedia.org/wiki/Software_as_a_service) web application for healthcare. An important aspect of our web application is [authorization](https://csrc.nist.gov/glossary/term/authorization). It's a pretty hard problem, because the business has a fairly complex set of rules about who can see what data. The rules involve attributes of the [subject](https://csrc.nist.gov/glossary/term/subject) and [object](https://csrc.nist.gov/glossary/term/object), and the direct or indirect (e.g. via a group) relationship between them. It's also a pretty important problem; healthcare data is typically very sensitive and we need to obey the law and keep our users' trust in order to provide useful services. The problem is also constrained by speed; in order to render a web page in a reasonable time e.g. under a second, data must be fetched and authorized in just a few milliseconds. diff --git a/content/posts/2023-02-05-book-site-reliability-engineering.md b/content/posts/2023-02-05-book-site-reliability-engineering.md index 496d7b8..031ab93 100644 --- a/content/posts/2023-02-05-book-site-reliability-engineering.md +++ b/content/posts/2023-02-05-book-site-reliability-engineering.md @@ -2,6 +2,8 @@ title: "Book - Site Reliability Engineering" date: 2023-02-05T15:53:43Z draft: false +params: + comments: true --- I've read [Site Reliability Engineering](https://sre.google/sre-book/table-of-contents/) (SRE) from Google/O'Reilly. It's an interesting insight into how Google scales their operations work. diff --git a/content/posts/2023-02-05-semantic-dissonance.md b/content/posts/2023-02-05-semantic-dissonance.md index 5ccc6aa..7333baf 100644 --- a/content/posts/2023-02-05-semantic-dissonance.md +++ b/content/posts/2023-02-05-semantic-dissonance.md @@ -2,6 +2,8 @@ title: "Semantic Dissonance" date: 2023-02-05T16:38:55Z draft: false +params: + comments: true --- A while ago I read [Enterprise Integration Patterns](https://www.enterpriseintegrationpatterns.com/). It was too long ago to write a review, however the phrase that I first encountered in that book and has stuck with me since is 'semantic dissonance'. In the field of software development, this means that we have two (or more!) _incompatible_ models of the same real-world situation. This happens a lot in healthcare IT. The latest and greatest standard for data exchange is [Fast Healthcare Interoperability Records](https://hl7.org/fhir/) (FHIR). Many healthcare IT suppliers are being pushed towards exposing their data over this standardised format, and they have to handle mapping from their own internal models to the standard and back again. These mappings are sometimes irreversible, i.e. mapping forward then backward again does not result in the same exact result as the input. They might also be lossy; i.e. a concept exists in one model which does not exist in the other at all, or a concept with a similar meaning but subtly different exists. diff --git a/content/posts/2023-04-09-designing-data-intensive-applications.md b/content/posts/2023-04-09-designing-data-intensive-applications.md index 03c9da7..cfef735 100644 --- a/content/posts/2023-04-09-designing-data-intensive-applications.md +++ b/content/posts/2023-04-09-designing-data-intensive-applications.md @@ -2,6 +2,8 @@ title: "Book - Designing Data Intensive Applications" date: 2023-04-09T21:45:01+01:00 draft: false +params: + comments: true --- [Link](https://www.oreilly.com/library/view/designing-data-intensive-applications/9781491903063/) to the book. diff --git a/content/posts/2023-06-16-bike.md b/content/posts/2023-06-16-bike.md index d7d8d85..579e680 100644 --- a/content/posts/2023-06-16-bike.md +++ b/content/posts/2023-06-16-bike.md @@ -2,6 +2,8 @@ title: "Bike 2" date: 2023-06-16T21:04:31+01:00 draft: false +params: + comments: true --- I haven't posted about my bike for a while; there have been a couple of changes. diff --git a/content/posts/2023-08-11-4-eyes.md b/content/posts/2023-08-11-4-eyes.md index 0ba76ef..ebf6c14 100644 --- a/content/posts/2023-08-11-4-eyes.md +++ b/content/posts/2023-08-11-4-eyes.md @@ -2,6 +2,8 @@ title: "Four Eyes" date: 2023-08-11T22:50:43+01:00 draft: false +params: + comments: true --- The four-eyes principle (also known as [two-man rule](https://en.wikipedia.org/wiki/Two-man_rule) or no-lone-zone) stipulates that for certain very critical operations like the launch of a nuclear weapon or the handling of very sensitive cryptographic key material, at least two qualified persons must be actively involved. diff --git a/content/posts/2023-08-22-comments-2.md b/content/posts/2023-08-22-comments-2.md index 9e5df20..dd97bba 100644 --- a/content/posts/2023-08-22-comments-2.md +++ b/content/posts/2023-08-22-comments-2.md @@ -2,6 +2,8 @@ title: "Comments 2" date: 2023-08-22T14:48:41+01:00 draft: false +params: + comments: true --- [Previously](/posts/2022-12-30-comments/) I added a basic comment system to my website using a separate web server which served only the comment HTML. This is fine, but it does require another program running continuously on my server. Since that server is a raspberry pi, and it is running a lot of other software as well, and my blog doesn't get a lot of hits (let alone comments), I thought I could do better by using the [Common Gateway Interface (CGI)](https://en.wikipedia.org/wiki/Common_Gateway_Interface). CGI doesn't require a daemon program, but instead will launch a program to generate dynamic content when someone loads the page. In this way, no memory or CPU is required until an actual page is requested. The downside is that a new process is launched for each page load, but I think that's an OK trade-off for me. I already have CGI configured on my web server for running [cgit](/posts/2022-12-31-cgit/). diff --git a/content/posts/2023-09-12-mcl.md b/content/posts/2023-09-12-mcl.md index 7172d59..3edfe96 100644 --- a/content/posts/2023-09-12-mcl.md +++ b/content/posts/2023-09-12-mcl.md @@ -2,6 +2,8 @@ title: "Mcl (minecraft launcher)" date: 2023-09-12T07:03:15+01:00 draft: false +params: + comments: true --- I wrote a [minecraft launcher](https://code.mfashby.net/mcl/about/) in [zig](ziglang.org/) as a learning exercise. diff --git a/content/posts/2023-10-01-parable-of-the-sower.md b/content/posts/2023-10-01-parable-of-the-sower.md index 731d865..41aeb75 100644 --- a/content/posts/2023-10-01-parable-of-the-sower.md +++ b/content/posts/2023-10-01-parable-of-the-sower.md @@ -2,6 +2,8 @@ title: "Book - Parable of the Sower / Parable of the Talents" date: 2023-10-01T22:23:00+01:00 draft: false +params: + comments: true --- By [Octavia E Butler](https://en.wikipedia.org/wiki/Octavia_E._Butler). *Note, spoilers* diff --git a/content/posts/2023-10-07-zipdl.md b/content/posts/2023-10-07-zipdl.md index 2488cc5..d870e26 100644 --- a/content/posts/2023-10-07-zipdl.md +++ b/content/posts/2023-10-07-zipdl.md @@ -2,6 +2,8 @@ title: "Zipdl" date: 2023-10-07T23:28:16+01:00 draft: false +params: + comments: true --- I wrote a small program for downloading individual files from a remote ZIP file on a http server that supports [Range](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Range) requests. This was an interesting learning exercise. diff --git a/content/posts/2023-11-25-roc.md b/content/posts/2023-11-25-roc.md index 32d0e15..9028ca6 100644 --- a/content/posts/2023-11-25-roc.md +++ b/content/posts/2023-11-25-roc.md @@ -2,6 +2,8 @@ title: "Roc" date: 2023-11-25T21:19:27Z draft: false +params: + comments: true --- I had a go at [writing some code](https://code.mfashby.net/roctorrent/tree/main.roc) in the [Roc](https://www.roc-lang.org/) programming language. It's a functional programming language, which is statically typed, and compiled to a standalone executable. I first heard about it after listening to an interview with it's author on the [Legacy Code Rocks](https://legacycode.rocks/) podcast, and later thought about it again after seeing a comment about it on [hacker news](https://news.ycombinator.com/). diff --git a/content/posts/2023-11-26-skateboard-2.md b/content/posts/2023-11-26-skateboard-2.md index 2bbfac7..e09011d 100644 --- a/content/posts/2023-11-26-skateboard-2.md +++ b/content/posts/2023-11-26-skateboard-2.md @@ -2,6 +2,8 @@ title: "Skateboard 2" date: 2023-11-26T20:33:27Z draft: false +params: + comments: true --- I've been skating indoors at [LS-ten skatepark](https://ls-ten.org/) recently, as the poor weather over the last few weeks has made outdoor skating... not fun. I've mostly abandoned my shorter board in favour of the [Lush Throttle](https://lushlongboards.com/buy/throttle/). At 34" length it's not too much longer than a typical 'popsicle' board, but I find it much more comfortable. I don't mind the lack of double kicktail, and I prefer the longer wheelbase. diff --git a/content/posts/2023-12-01-aoc2023.md b/content/posts/2023-12-01-aoc2023.md index 9fdfc68..2ae954d 100644 --- a/content/posts/2023-12-01-aoc2023.md +++ b/content/posts/2023-12-01-aoc2023.md @@ -2,6 +2,8 @@ title: "Advent of Code 2023" date: 2023-12-01T21:42:21Z draft: false +params: + comments: true --- I'm doing [Advent of Code](https://adventofcode.com) again this year, this time in [Zig](https://ziglang.org). diff --git a/content/posts/2024-01-26-data-oriented-design.md b/content/posts/2024-01-26-data-oriented-design.md index 39e9635..808a6fd 100644 --- a/content/posts/2024-01-26-data-oriented-design.md +++ b/content/posts/2024-01-26-data-oriented-design.md @@ -2,6 +2,8 @@ title: "Book - Data Oriented Design" date: 2024-01-26T20:19:31Z draft: false +params: + comments: true --- I recently read [Data Oriented Design](https://www.dataorienteddesign.com/dodbook/) by Richard Fabian. diff --git a/content/posts/2024-01-26-dyn.md b/content/posts/2024-01-26-dyn.md index e54fc82..23eba15 100644 --- a/content/posts/2024-01-26-dyn.md +++ b/content/posts/2024-01-26-dyn.md @@ -2,6 +2,8 @@ title: "Dynamic DNS" date: 2024-01-26T00:02:35Z draft: false +params: + comments: true --- I recently upgraded my home broadband, however in the process I lost my static IP address. I have requested a new one, but in the meantime I wrote a [program](https://code.mfashby.net/do-dyn/file/src/main.zig.html) to dynamically update my DNS records in case my router restarts and my WAN IP address changes. diff --git a/content/posts/2024-02-01-1brc.md b/content/posts/2024-02-01-1brc.md index 8ec7dd1..20f20cc 100644 --- a/content/posts/2024-02-01-1brc.md +++ b/content/posts/2024-02-01-1brc.md @@ -2,6 +2,8 @@ title: "1brc" date: 2024-02-01T13:58:47Z draft: false +params: + comments: true --- I [had a go](https://code.mfashby.net/z1brc/file/src/main.zig.html) at the [One Billion Row Challenge](https://github.com/gunnarmorling/1brc), but in Zig rather than Java. diff --git a/content/posts/2024-02-05-phones.md b/content/posts/2024-02-05-phones.md index ae684e2..e3b9973 100644 --- a/content/posts/2024-02-05-phones.md +++ b/content/posts/2024-02-05-phones.md @@ -2,6 +2,8 @@ title: "Fairphone" date: 2024-02-05T19:56:17Z draft: false +params: + comments: true --- I bought a [fairphone 4](https://shop.fairphone.com/fairphone-4) just under 2 years ago. I'm pleased to say last week I repaired it! I had accidentally filled the pocket on my jeans with sand on holiday, and then I put the phone in the pocket. The USB-C on the bottom of the phone got sand in it, and stopped holding a cable correctly. It just about worked for charging still, but the cable would pop out very easily, and this was pretty inconvenient. I tried a few ways to clear it out, with no success. diff --git a/content/posts/2024-03-01-communication.md b/content/posts/2024-03-01-communication.md index fbdd49a..e56388c 100644 --- a/content/posts/2024-03-01-communication.md +++ b/content/posts/2024-03-01-communication.md @@ -2,6 +2,8 @@ title: "Communication" date: 2024-03-01T14:40:50Z draft: false +params: + comments: true --- I believe that in software development, being open and working in the open are crucial to wellbeing and efficiency; even moreso when working remotely. There are 3 things that I think should be communicated: intention, struggle, and progress. Communications should be clear, public, searchable, and regular. This post explains my thoughts on the subject. |