<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom"><title>Inconsistent Records Blog</title><link href="https://inconsistentrecords.co.uk/blog/" rel="alternate"/><link href="https://inconsistentrecords.co.uk/feed.xml" rel="self"/><id>urn:uuid:da95d3f5-e0ff-323b-85ab-567e8f11da10</id><updated>2026-02-18T00:00:00Z</updated><author><name/></author><entry><title>The claws are open, until they close around you...</title><link href="https://inconsistentrecords.co.uk/blog/the-claws-are-open-until-they-close-around-you/" rel="alternate"/><updated>2026-02-18T00:00:00Z</updated><author><name/></author><id>urn:uuid:b00a143e-9802-30e4-927a-453e22df8a92</id><content type="html">&lt;h1 id="and-they-may-well-not-be-under-your-control"&gt;...and they may well not be under your control&lt;/h1&gt;&lt;h2 id="pretext"&gt;Pretext&lt;/h2&gt;&lt;p&gt;I recently changed my job. Why? It made sense with a young family to try and cut the amount of travelling I was doing. I don't fly, but being away from them and burning a lot of diesel in the process made it a bit silly. Especially when you consider that I'm predominantly an experienced software engineer with a penchant for enabling others to compute, and compute hard.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://github.com/openclaw/openclaw"&gt;Openclaw&lt;/a&gt; is the flavour of the moment and I first came across it through &lt;a href="https://www.moltbook.com/m"&gt;Moltbook&lt;/a&gt;. The number of name changes to OpenClaw is indicative of it's ridiculous development velocity (I know of three, yes?) Given that it can't be more than a year old, the impact of this project is astounding.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Let's be clear, with what I now say, the ingenuity of the invention is in no doubt. This is machine learning (don't get me started on how it doesn't represent all AI) finally working hard.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Agentic AI unleashed in this way is a terrible idea.&lt;/em&gt;&lt;/p&gt;
&lt;h2 id="why-bring-this-up"&gt;Why bring this up?&lt;/h2&gt;&lt;p&gt;With the sheer level of &lt;a href="https://clawhub.ai/skills?sort=downloads"&gt;integration possibilities&lt;/a&gt; into end user systems, we're allowing unproven and poorly engineered &lt;a href="https://www.cst.cam.ac.uk/blog/afb21/oops-we-automated-bullshit"&gt;bullshit generators&lt;/a&gt; to integrate with our lives. Given the spread of &lt;a href="https://un-dco.org/stories/disinformation-global-risk-so-why-are-we-still-treating-it-tech-problem"&gt;misinformation globally&lt;/a&gt;, this poses an information nightmare for the future generations, whom we owe a responsibility to. If we're employing technology, &lt;em&gt;there needs to be an end goal in sight that discernibly makes things better than we found them&lt;/em&gt;.&lt;/p&gt;
&lt;h2 id="environmental-concerns"&gt;Environmental concerns&lt;/h2&gt;&lt;p&gt;Everything takes power to run and these agents are no less power hungry than, well, something that could be far more useful. Rather than letting them loose as an exercise in seeing what they can do, perhaps isolate and experiment with them responsibly. I'm a hypocrite at this point, &lt;a href="https://www.software.ac.uk/blog/tracking-environmental-impact-research-computing"&gt;because I've acknowledged the scale of the problem&lt;/a&gt; with others. However, we stated that the first thing is to be aware of the cost of what you're doing. That's why I'm working with what I do today.&lt;/p&gt;
&lt;h2 id="ethical-concerns"&gt;Ethical concerns&lt;/h2&gt;&lt;p&gt;Therein lies the ethical rub. Why are we facilitating integration without &lt;a href="https://theshamblog.com/an-ai-agent-published-a-hit-piece-on-me/"&gt;considering impacts such as time-wasting&lt;/a&gt; for individuals in the real world? We are wasting the worlds resources with these highly experimental bullshit generators before extracting the usefulness from the technology we already have to hand.&lt;/p&gt;
&lt;p&gt;And there are great uses for deep learning based technologies, among others. I've been very privileged to be involved with many projects that exemplify the potential.&lt;/p&gt;
&lt;p&gt;But it's still only potential, and we are only just finding our feet. &lt;a href="https://www.unep.org/news-and-stories/story/ai-has-environmental-problem-heres-what-world-can-do-about"&gt;We must use technology responsibly&lt;/a&gt; and cannot absolve ourselves of the responsibility of judging each and every action we take as technologists, because each joule of energy and millilitre of water taken up by these technologies is taken away from someone else.&lt;/p&gt;
&lt;p&gt;I have intentionally tried to tone down the criticism of the &lt;a href="https://www.youtube.com/live/mmKAnHz36v0?si=d3L7BMOXmMfVXXBw"&gt;AI hype bubble which quite frankly is a load of 40-somethings deluded in their faith in themselves&lt;/a&gt;. This constant pursuit of agentic AI being a gamechanger without goals &lt;a href="https://youtu.be/-CHfHA5ptaU?si=azsPJfq9mCGzDQCA"&gt;was really nicely highlighted as a concern&lt;/a&gt; in a recent interview with Meredith Whittaker of Signal. Kudos to her.&lt;/p&gt;
</content></entry><entry><title>What the fook is a pipeline?</title><link href="https://inconsistentrecords.co.uk/blog/what-the-fook-is-a-pipeline/" rel="alternate"/><updated>2025-05-24T00:00:00Z</updated><author><name/></author><id>urn:uuid:65369242-fe33-336c-8bad-46b504949176</id><content type="html">&lt;h2 id="introduction"&gt;Introduction&lt;/h2&gt;&lt;p&gt;One thing I've grown to love about &lt;a href="https://www.bas.ac.uk/team/business-teams/innovation/digital-innovation-team/"&gt;managing a team of software engineers&lt;/a&gt; is that they call out the hand-wavey terms you use without thinking. This is not to say the terms are not well founded or even, arguably, used with a decent underpinning ethos in mind. It's more to say, &lt;strong&gt;be prepared to define something when you talk about it&lt;/strong&gt;. &lt;em&gt;Pipeline&lt;/em&gt; is a term that definitely fits this notion.&lt;/p&gt;
&lt;h2 id="some-etymology"&gt;Some etymology&lt;/h2&gt;&lt;p&gt;&lt;a href="https://en.wikipedia.org/wiki/Pipeline_(disambiguation)"&gt;My favourite thing to do is to look at the Wikipedia disambiguation page&lt;/a&gt; and there are some really nice links to definitions in there.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://en.wikipedia.org/wiki/Pipeline_(software)"&gt;&lt;em&gt;The name "pipeline" comes from a rough analogy with physical plumbing in that a pipeline usually allows information to flow in only one direction, like water often flows in a pipe.&lt;/em&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://en.wikipedia.org/wiki/Pipeline_(computing)"&gt;&lt;em&gt;a set of data processing elements connected in series, where the output of one element is the input of the next one. The elements of a pipeline are often executed in parallel or in time-sliced fashion.&lt;/em&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;But this isn't etymology&lt;/strong&gt;, though I can imagine the first of those goes some way towards defining the word. &lt;a href="https://www.etymonline.com/word/pipeline"&gt;Pipeline from a typical etymology defining website&lt;/a&gt; is interesting, offering the definition "channel of communication", derived from &lt;a href="https://www.collinsdictionary.com/dictionary/english/pipe"&gt;pipe&lt;/a&gt; + &lt;a href="https://www.collinsdictionary.com/dictionary/english/line"&gt;line&lt;/a&gt;. That's it: it's literally a flow of information in one direction, but with &lt;strong&gt;no other defining characteristic&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;This is funny. Think about it. You draw complex pictures from many lines. You (depending on style) might draw many lines to draw a flowing directional line.&lt;/p&gt;
&lt;p&gt;The definition of a pipeline is, I feel, much more than the sum of its parts.&lt;/p&gt;
&lt;h2 id="so-what-do-i-think-a-pipeline-actually-is"&gt;So what do I think a pipeline actually is!?!&lt;/h2&gt;&lt;p&gt;A unix pipe. Put programs either side of it. Repeat.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Or&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;A pipe is a flow of information. Put some things either side and transfer information using that flow. Repeat.&lt;/p&gt;
&lt;h2 id="is-that-useful"&gt;Is that useful?&lt;/h2&gt;&lt;p&gt;Well yes, but not so much as a definition that tells you how to design a pipeline. It's a useful way to think about how things interoperate. I like &lt;a href="https://en.wikipedia.org/wiki/Unix_philosophy"&gt;pipeline definition #1&lt;/a&gt; simply because it's easily demonstrated in any *nix shell with doing command chaining things like this:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;$ downloadmydata.sh | prepmydata.sh | savemydata.sh | runmyprocesing.sh
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;That works to demonstrate the example. If the programs are doing more interesting things and processing each others data, literally feeding one another resiliently, it becomes really powerful as tool for breaking apart steps in an algorithm. As usual for me, selective parts of the unix philosophy offer a nice &lt;strong&gt;engineering&lt;/strong&gt; approach to think about things: &lt;em&gt;write programs that do one thing well&lt;/em&gt; and that &lt;em&gt;use each others outputs as inputs&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;I think pipelines as a concept are even more important though, especially if you think about them beyond the shell and *nix environment. For example, thinking about a machine learning or remote sensor network, having components via a sequential flow that is well understood is pivotal when deploying applications that started out as research or exploratory engineering efforts.&lt;/p&gt;
&lt;h2 id="processing-and-data-flows"&gt;Processing and data flows&lt;/h2&gt;&lt;p&gt;A useful intuition is to think about &lt;strong&gt;data&lt;/strong&gt; transfer between processing engines. This gives a reason for pipelines more generally and then being able to step back when you talk about them. In my day job, there are numerous examples where pipelines exist:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Remote renewable sensor networks: we wait for things to wake up; the things send data back to us; data processing chains that lead to insight or outcomes are executed. &lt;/li&gt;
&lt;li&gt;Data management: acquisition processes deposit data in stores; processing starts generating datasets; these are annotated and published or processed downstream.&lt;/li&gt;
&lt;li&gt;Machine learning: training datasets are composed from various sources; models are trained and evaluated; incremental training or inference datasets are generated as new data arrives for pretrained models; predictions are pushed out from the arrival of new data.  &lt;/li&gt;
&lt;li&gt;Procurement: a project starts; equipment is bought based on designs; it arrives and development and deployment builds are arranged; things are built; data processing pipelines are configured; deployments take place; data flows back.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;em&gt;The list goes on, and on, and on, and....&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Though there are so many examples, there aren't necessarily &lt;em&gt;well engineered&lt;/em&gt; examples everywhere. I think this is what I've tried to exemplify, particularly through my work on developing &lt;a href="https://github.com/environmental-forecasting/model-ensembler"&gt;ensembling workflows&lt;/a&gt; for environmental modelling and &lt;a href="https://icenet.ai"&gt;machine learning for operations in the polar environment&lt;/a&gt;. As such, I'd like to highlight &lt;strong&gt;two key characteristics that help to communicate the benefits&lt;/strong&gt; of thinking of these flows as data pipelines: configuration as data and the separation of concerns.&lt;/p&gt;
&lt;h3 id="configuration-as-data"&gt;Configuration as data&lt;/h3&gt;&lt;p&gt;For me the critical notion to a pipeline is that the data, processing and configuration controlling the processing of those data are kept separate, but all influence each other. This is a design imperative. If you have processing to deal with certain &lt;em&gt;types&lt;/em&gt; of &lt;strong&gt;data&lt;/strong&gt;, aside from being well engineered to handle anomolies, that processing should be controlled by independently managed &lt;strong&gt;configuration&lt;/strong&gt;. The configuration needs to be the controller of the &lt;strong&gt;processing&lt;/strong&gt;, so that it can be managed as its own data source that scales, is well managed, describes the operation of the processing and data used...&lt;/p&gt;
&lt;h3 id="separation-of-concerns"&gt;Separation of concerns&lt;/h3&gt;&lt;p&gt;I like thinking about pipelines in a way that doesn't describe the execution infrastructure. To be fair I have a really bad habit of leaning on simple implementations to describe pipelines, with software tooling and configuration bound through something nice and portable like shell scripts.&lt;/p&gt;
&lt;p&gt;This is not to say that I don't favour things like Airflow, Cylc, BPM or other workflow management systems. My intention is simply that when I implement pipelines in bash, connecting together tooling, feeding it via configurations, to process data, it's all done in a way that means you can hop the set of actions between these WMS systems. That way you only have integration of known workflows in sets of portable steps into a new graph based execution system to worry about, hopefully without implementation changes!&lt;/p&gt;
&lt;h2 id="conclusions"&gt;Conclusions&lt;/h2&gt;&lt;p&gt;The flow in one direction might seem like a limitation, but ultimately any fully integrated system still has to work around the principle of unidirectional information flow. If there is a real world object and a decision making entity independent of it, information must flow one way before the information provided by the entity flows back the other, still considered a unidirectional flow.&lt;/p&gt;
&lt;p&gt;I'd be interested to understand from information theorists whether this flies in the face of cybernetics and feedback systems, but I don't think it does. &lt;em&gt;What I describe is merely a way of handling that complexity&lt;/em&gt;, by splitting it into individual information exchanges. This then helps me to build more complex systems with well engineered wares!&lt;/p&gt;
&lt;p&gt;Comprehending the simplicity of data flows is important, especially if you build them.&lt;/p&gt;
&lt;p&gt;As I am hopeful to describe what I do more to others in the future, it will be even more important in being able to describe them. "Pipeline" is an unhelpful term, if you can't really work out how you apply it in the digital domain.&lt;/p&gt;
&lt;p&gt;The next rambling piece will be "what the flip is a..." something or other.&lt;/p&gt;
&lt;p&gt;Please give me your thoughts below, I'd like to talk pipelines some more!&lt;/p&gt;
</content></entry><entry><title>Not talking about work - but why!?</title><link href="https://inconsistentrecords.co.uk/blog/not-talking-about-work-but-why/" rel="alternate"/><updated>2025-03-13T00:00:00Z</updated><author><name/></author><id>urn:uuid:47d5fe46-33f5-36e2-889d-b10d0de1c6f7</id><content type="html">&lt;h2 id="introduction"&gt;Introduction&lt;/h2&gt;&lt;p&gt;I've decided to write this article because I hope it addresses some thoughts that others might well feel within themselves. Can I solve them? Probably not. I can elaborate as an elder millennial a relaxation of my opinions as time goes by.&lt;/p&gt;
&lt;h2 id="being-restrained"&gt;Being restrained&lt;/h2&gt;&lt;p&gt;In the last 20+ years of being a worker (not always in computing, but mostly) I've kept personal and professional fairly distinct. My family didn't really know what I do, nor did I tell them or my friends what I did. This worked particularly well for the first half of that time I wasn't interested in explaining it and there was no real interest in understanding it. &lt;a href="https://en.wikipedia.org/wiki/Surveillance_capitalism"&gt;Technology was and has been pervasive, but not obvious&lt;/a&gt;, which is how we've ended up in a poor situation societally.&lt;/p&gt;
&lt;h2 id="being-proud-or-happy"&gt;Being "proud" or "happy"&lt;/h2&gt;&lt;p&gt;Things changed when I left industry and was lucky enough to &lt;a href="/blog/tag/antarctica/"&gt;spend time being a sysadmin / data manager (a term new to me) in Antarctica (link is to the photo posts)&lt;/a&gt;. I had been a keen follower of science generally, but not knowledgeably, for most of my life. Then I started to understand and contribute to the environmental sciences. I became passionate about continuing.&lt;/p&gt;
&lt;p&gt;Since then I've continued with this role. [It's grown]. I manage a team and have a life I love living that is &lt;strong&gt;mixed with technology&lt;/strong&gt;. Why? Because I am passionate about the work that I do but open to other experiences around me. That's extremely lucky. It's also a benefit of a change from working for others and now &lt;em&gt;working for my own motivations&lt;/em&gt;.&lt;/p&gt;
&lt;h2 id="not-taking-it-seriously"&gt;Not taking it seriously&lt;/h2&gt;&lt;p&gt;The important thing now is that I want to talk and write about what I do, but I really don't want to be serious about it. I really dislike being serious. When I'm forced to do it, it's worse for everyone involved.&lt;/p&gt;
&lt;p&gt;But I do want to communicate.&lt;/p&gt;
&lt;p&gt;There are serious issues around for sure. If I'm to blog about what I do, then for sure it's important to do it in a way enjoyable to read. &lt;a href="https://www.gilesthomas.com/2025/02/blogging-in-the-age-of-ai"&gt;It's important to think about communicating with others for the joy of creatively communicating&lt;/a&gt;, if nothing else. I haven't worked that out yet, but the point of writing this is that it might persuade others in a similar position, finding a job and life they are content with, to change a culture of silence within themselves.&lt;/p&gt;
&lt;h2 id="having-some-illusion-of-control"&gt;Having some (illusion of) control&lt;/h2&gt;&lt;p&gt;One reason I feel really happy about doing this, is that I've gone to the trouble &lt;a href="/blog/tag/provisioning/"&gt;of provisioning the site and associated services on my own server&lt;/a&gt;. This is a great learning experience and I at least know that the motivation is just to leave a record of a discourse worth having. I know that I don't have to rely on or care about SEO or platform competitiveness or any of that, this is just about content and (admittedly) self-satisfaction.&lt;/p&gt;
&lt;p&gt;Let's see if I can find something more interesting to say about my role next time. Because it's exciting, especially given we're set to build &lt;a href="https://www.aria.org.uk/opportunity-spaces/scoping-our-planet/forecasting-tipping-points/"&gt;environmental digital research infrastructure that is innovative and, hopefully, forward thinking&lt;/a&gt;.&lt;/p&gt;
</content></entry><entry><title>New Year, New Laptop, New Observations</title><link href="https://inconsistentrecords.co.uk/blog/new-year-new-laptop-new-observations/" rel="alternate"/><updated>2025-01-01T00:00:00Z</updated><author><name/></author><id>urn:uuid:32d7d4d8-23e8-3457-aff9-b8def8ca64c0</id><content type="html">&lt;h2 id="welcome-to-2025"&gt;Welcome to 2025&lt;/h2&gt;&lt;p&gt;So I never publish blogs when the publication date actually says in Lektor, they appear afterwards. This time, however, I start on the 1st of January and aim to have this done by the time I'm off of my paternity leave. Software engineering mixed with child rearing, this is the hippest place to be in 2025!&lt;/p&gt;
&lt;p&gt;That said, it offers an outlet for my ramblings that isn't my ever patient partner. Which is good, because the content of this and many other articles are just not their bag. However, it is in my nature to want to write about things, so I'm going to try and chart what I'm doing on the day to day, week to week, month to month a bit better so that my technical frustrations and explorations have an outlet.&lt;/p&gt;
&lt;h2 id="new-laptop"&gt;New Laptop&lt;/h2&gt;&lt;figure&gt;
    &lt;img src="t15g.webp" class="w-25 p3 float-right" alt="Lenovo ThinkPad T15g 4K Xeon W-10885M 64GB 1TB SSD NVIDIA GeForce 2080 Laptop"&gt;
    &lt;figcaption&gt;Lenovo ThinkPad T15g 4K Xeon W-10885M 64GB 1TB SSD NVIDIA GeForce 2080 Laptop (image courtesy of &lt;a href="https://www.ebay.co.uk/str/thebestlaptopdealsaround"&gt;Newandusedlaptops4u&lt;/a&gt;)&lt;/figcaption&gt;
&lt;/figure&gt;&lt;p&gt;I've just gotten hold of a dedicated coding machine. I've again gotten it from a refurb seller on ebay who I've used previously for many Thinkpad: two T410's, a T430, a T430s, that have tided me and members of my family over brilliantly. My T430s is still going, serving as a general purpose laptop, having spent eight years as my primary "home" machine. I don't know why people don't use refurbed machines more often. The only exceptions I've made are for servers, which I go for as tower units.&lt;/p&gt;
&lt;p&gt;That said, this is the "newest" machine I've ever bought and by far the most powerful. It's going to be a dedicated experimentation and code machine (plus maybe the odd game with some friends given its power). This was justified simply as everything else I own is now in use elsewhere and isn't powerful enough for local model development and, ahem, Age of Empires. &lt;strong&gt;More genuinely, I find that not having a dedicated code machine has resulted in a dangerous conflation of purpose with my work machine and that causes me concentration problems.&lt;/strong&gt;&lt;/p&gt;
&lt;h3 id="fedora"&gt;Fedora&lt;/h3&gt;&lt;p&gt;I've been using CentOS for server and desktop, and Fedora for desktop, for easily over a decade now. CentOS disappearing has left me saddened and given work have shifted to Rocky 9, that's what I'm replacing trusted CentOS with for the moment.&lt;/p&gt;
&lt;p&gt;I really am keen to stick with Fedora. But the new laptop is presenting two challenges: the WIFI is unstable and XFCE dislikes any 16:9 resolutions that aren't 4k!&lt;/p&gt;
&lt;h2 id="wifi-problems-a-blast-from-the-past"&gt;WIFI problems, a blast from the past&lt;/h2&gt;&lt;p&gt;The T15g is not new enough that it's bleeding edge and I've noticed circumstantially the following:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Fedora 39 (out of support) - it seems to work fine on power up, not on reboot&lt;/li&gt;
&lt;li&gt;Fedora 40 (about to go out of support) - it seems to work fine on power up, not on reboot&lt;/li&gt;
&lt;li&gt;Fedora 41 (current version) - not working&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a href="https://discussion.fedoraproject.org/t/intel-comet-lake-pch-lp-cnvi-wifi-driver-n-a/78351/2"&gt;This thread on Fedora discussion appears to have similar issues&lt;/a&gt; as the error code &lt;code&gt;probe of 0000:00:14.3 failed with error -110&lt;/code&gt; is exactly what I'm experiencing. But there are key differences and that thread doesn't conclude with specific solutions to the problem. Other than that I've found little else to help, so I'm going to undertake some diagnostics based on that &lt;em&gt;to bring me up to speed before progressing to raising a discussion item!&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;I suspect the issue comes from changing firmware versions loaded by &lt;code&gt;iwlwifi&lt;/code&gt; between kernels in the respective OS's, but given we're fighting the sleeping patterns of a newborn I want to take the opportunity to investigate and get this new laptop working so I can code near the sleeping baba!&lt;/p&gt;
&lt;p&gt;My steps to investigate are:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Find out exactly what equipment is here (which is good to know) and investigate how it's failing. I don't think is the same device code as that &lt;a href="https://discussion.fedoraproject.org/t/intel-comet-lake-pch-lp-cnvi-wifi-driver-n-a/78351/5"&gt;mentioned above&lt;/a&gt; and &lt;a href="https://www.intel.com/content/www/us/en/support/articles/000005511/wireless.html"&gt;firmware support&lt;/a&gt; suggest it should work, so best to make sure it isn't.&lt;/li&gt;
&lt;li&gt;Double check there's no existing issue that explains it (&lt;a href="https://bugzilla.kernel.org/show_bug.cgi?id=205299"&gt;such as this one&lt;/a&gt;, I appear to be very non-linear writing this, because I did a quick check before anything else).&lt;/li&gt;
&lt;li&gt;Raise it in the appropriate place such as the &lt;a href="https://bugzilla.kernel.org/"&gt;Linux kernel Bugzilla&lt;/a&gt;.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;This is very unusual though, as I've not had any issues like this for a good long while with Fedora or similar, so it is interesting that I've ended up in a situation of diagnosing hardware issues like it's two decades ago. Eeek! &lt;em&gt;I so wanted to be moving quickly into developing some toys as well!!!&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;So these steps are useful to go through, it's been ages since I did any real investigation of Linux systems: I've not worked in sysadmin or devops for over four years and not seriously for eight or so. Therefore, these might be interesting steps to take for others, especially if you're looking at &lt;code&gt;iwlwifi&lt;/code&gt;...&lt;/p&gt;
&lt;h3 id="1-work-out-what-s-happening"&gt;1. Work out what's happening&lt;/h3&gt;&lt;p&gt;&lt;a href="https://linux-hardware.org/"&gt;&lt;code&gt;hw-probe&lt;/code&gt;&lt;/a&gt; is new to me, but running it on my new laptop is reasonable so I have done that to add to the collective consciousness of the internet. What a cool project, I hadn't come across it before. It was easily found in the Fedora repositories and uploaded. I'd be a lot more concerned about privacy and looking in depth if it wasn't a completely fresh laptop and install. &lt;code&gt;;)&lt;/code&gt;&lt;/p&gt;
&lt;pre&gt;
$ sudo -E hw-probe -all -upload
Probe for hardware ... Ok
Reading logs ... Ok
Uploaded to DB, Thank you!

Probe URL: https://linux-hardware.org/?probe=c5dc058f75
&lt;/pre&gt;&lt;p&gt;The &lt;a href="https://linux-hardware.org/?probe=c5dc058f75&amp;amp;log=dmesg"&gt;probe includes the error I have in &lt;code&gt;dmesg&lt;/code&gt;&lt;/a&gt;, with &lt;a href="https://linux-hardware.org/?probe=c5dc058f75&amp;amp;log=nmcli"&gt;&lt;code&gt;nmcli&lt;/code&gt;&lt;/a&gt; and &lt;a href="https://linux-hardware.org/?probe=c5dc058f75&amp;amp;log=rfkill"&gt;&lt;code&gt;rfkill&lt;/code&gt;&lt;/a&gt; from the same probe both showing that there is no wifi network apparently present from the &lt;em&gt;&lt;code&gt;Comet Lake PCH CNVi WiFi&lt;/code&gt;&lt;/em&gt; listed. Interestingly, the &lt;code&gt;8086:06f0&lt;/code&gt; device code doesn't match the Fedora thread I saw previously so that quickly tells me to largely ignore that (it seemed to get rambly after a while anyway) and &lt;em&gt;"The device is supported by kernel versions 5.7 and newer according to the LKDDb"&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;Confirming some details, there is definitely a device and firmware available, but I would perhaps expect there to be&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# inxi -Nxx
Network:
  Device-1: Intel Comet Lake PCH CNVi WiFi driver: N/A bus-ID: 00:14.3 chip-ID: 8086:06f0
  Device-2: Intel Ethernet I219-LM vendor: Lenovo driver: e1000e v: kernel port: N/A
    bus-ID: 00:1f.6 chip-ID: 8086:0d4c

# lsmod | grep wifi
iwlwifi               557056  0
cfg80211             1404928  1 iwlwifi

# modinfo iwlwifi
... lots of output, including plenty of available firmware ...
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;So why with &lt;code&gt;dmesg&lt;/code&gt; do we see &lt;code&gt;[   17.780760] iwlwifi 0000:00:14.3: probe with driver iwlwifi failed with error -110&lt;/code&gt;?&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Stab in the dark turning off UEFI network stack&lt;/strong&gt;: it's always &lt;span class="text-decoration-line-through"&gt;good&lt;span&gt; fun idea to try something random, for a bit of excitement. New to the software engineering with parenting game, I'm trying to keep myself excited somehow. It turns out UEFI secure boot was already off, so unchecking the stack options (a) probably had no effect and (b) didn't fix anything even if they did. It was nice to try and live dangerously for a moment!!! &lt;code&gt;:P&lt;/code&gt;&lt;/p&gt;
&lt;h3 id="2-investigate"&gt;2. Investigate&lt;/h3&gt;&lt;p&gt;So next, assuming both the &lt;a href="https://www.intel.com/content/www/us/en/support/articles/000005511/wireless.html"&gt;intel hardware support&lt;/a&gt; and &lt;a href="https://linux-hardware.org/?id=pci:8086-06f0-8086-0070"&gt;device information pages&lt;/a&gt; are correct, the card should be working. Before I start &lt;a href="https://wireless.docs.kernel.org/en/latest/en/users/drivers/iwlwifi/debugging.html"&gt;debugging iwlwifi&lt;/a&gt;, perhaps looking at the &lt;a href="https://bugzilla.kernel.org/"&gt;kernel bugzilla&lt;/a&gt; is a good shout, rather than the Fedora forums, as it obviously isn't a Fedora issue if it's in the kernel logs.&lt;/p&gt;
&lt;p&gt;The best candidate I came up with &lt;a href="https://bugzilla.kernel.org/buglist.cgi?bug_status=NEW&amp;amp;bug_status=ASSIGNED&amp;amp;bug_status=REOPENED&amp;amp;bug_status=RESOLVED&amp;amp;bug_status=VERIFIED&amp;amp;bug_status=REJECTED&amp;amp;bug_status=DEFERRED&amp;amp;bug_status=NEEDINFO&amp;amp;bug_status=CLOSED&amp;amp;component=network-wireless&amp;amp;component=network-wireless-intel&amp;amp;query_format=advanced&amp;amp;short_desc=error%20-110&amp;amp;short_desc_type=allwordssubstr"&gt;from a specific search for the error code&lt;/a&gt; was &lt;a href="https://bugzilla.kernel.org/show_bug.cgi?id=205299"&gt;this issue&lt;/a&gt;, which matches the error code to a different type of adapter, though it is from intel. Interestingly, there's mention of &lt;em&gt;"Disabling Windows Fast Startup fixed the issue"&lt;/em&gt;, as well as this being linked to the hibernate / shutdown of the adapter in Windows. &lt;a href="https://bugzilla.kernel.org/show_bug.cgi?id=219651"&gt;This I confirm is mentioned in the iwlwifi documentation&lt;/a&gt; and so seems like a good candidate.&lt;/p&gt;
&lt;p&gt;I still have the active Windows partition issued with the unit, so will see again if it works (it has every time so far!)&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;No luck&lt;/strong&gt;. Sad face... &lt;code&gt;:(&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Raising this as an issue seems like the only option, so have &lt;a href="https://bugzilla.kernel.org/show_bug.cgi?id=219651"&gt;done so in the kernel bugzilla&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="graphic-problems-i-m-probably-stuck-in-the-past"&gt;Graphic problems, I'm probably stuck in the past&lt;/h2&gt;&lt;p&gt;Why on earth is a resolution listed that doesn't seem to do anything!? If I select 16:10 resolutions or 4:3 resolutions, it all works fine. If I go for any 16:9 that isn't 3840x2160 it doesn't work.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Until I change the refresh rate from 60.01 to &amp;lt;60Hz!&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Then it works fine.&lt;/p&gt;
&lt;p&gt;That's something at least.&lt;/p&gt;
&lt;h2 id="takeaways"&gt;Takeaways&lt;/h2&gt;&lt;ol&gt;
&lt;li&gt;Sometimes there seems like too much information, especially with all the distros cross-fertilising in advice terms. The truth is, think logically about where the problem is and it gets a lot easier.&lt;/li&gt;
&lt;li&gt;It would be nice if there was a simple algorithm painted for diagnosing hardware failures and understanding as a semi-pro linux user with no time (thanks parenthood!) Perhaps that could be a subject for a future post.&lt;/li&gt;
&lt;li&gt;A nice map of all the most poignant sites to uncover information about the interconnected world of linux and software would be nice. A bit like this &lt;a href="https://openinframap.org/"&gt;fancy open infrastructure map&lt;/a&gt; I just found as I checked it didn't already exist!&lt;/li&gt;
&lt;/ol&gt;
</content></entry><entry><title>Diving into Julia: some initial observations</title><link href="https://inconsistentrecords.co.uk/blog/diving-into-julia-1/" rel="alternate"/><updated>2024-11-11T00:00:00Z</updated><author><name/></author><id>urn:uuid:f83cc257-f3ae-3f27-bef6-f9f9f7c246f9</id><content type="html">&lt;h2 id="julia-my-introduction"&gt;Julia: my introduction&lt;/h2&gt;&lt;p&gt;Julia is a language that I've been after getting better acquainted with for a while. I won't lie, I've actually tinkered with it several times, but now I have good reason at work to go in more deeply, so I am.&lt;/p&gt;
&lt;p&gt;I think I know enough to appreciate that Julia is an elegant and very powerful language, but I've not found the transition to a JIT compiled language easy to deal with. Primarily, this is because the best developer worklow that works is more difficult to determine. With compiled languages, you know you have to go on and get on with compiling on amendment. With scripting languages, it's more immediate to get results and understand flow of execution, almost making it too easy to throw things together and debug-as-you-go (yes, I've gotten spoilt in recent years!)&lt;/p&gt;
&lt;h3 id="why-transition-to-julia"&gt;Why transition to Julia?&lt;/h3&gt;&lt;p&gt;I am a pretty experienced programmer, having spent more time with Python, C, Java and Perl in commercial worlds than research. MATLAB I never enjoyed being proprietary and Octave, though I've used it, was only used for explicitly research experimentation and never for anything that would be automated or configuration driven.&lt;/p&gt;
&lt;p&gt;Julia makes serious effort to be both scientific-computation adept and able to perform as a systems programming language. This is in addition to being extremely well-thought out from a language design perspective. Primarily, as I move into research computing for natural environment modelling, I'm explicitly drawn towards something that is designed, well, as a language for distributed computing on these workloads. I know enough to know that Julia is worthwhile on this front.&lt;/p&gt;
&lt;h2 id="challenges"&gt;Challenges&lt;/h2&gt;&lt;p&gt;For someone who is well versed at having effective workflows when programming, I hope it's helpful to highlight some things that I've struggled with.&lt;/p&gt;
&lt;h3 id="versions"&gt;Versions&lt;/h3&gt;&lt;p&gt;Previously, I was using Julia 1.5+ through a manual tarball extract and/or RPM install, either symlinked or at the behest of the RPM channels.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Then came &lt;code&gt;juliaup&lt;/code&gt;!!!&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;I haven't spent time using this but was jumping from 1.9 to 1.11 and it has suddenly appeared in the intervening months I wasn't paying attention. &lt;a href="https://github.com/JuliaLang/juliaup"&gt;Go get JuliaUp!!!&lt;/a&gt;. It's basically &lt;code&gt;nvm&lt;/code&gt; (the thing that makes NodeJS and NPM usable) for Julia and is a welcome addition.&lt;/p&gt;
&lt;p&gt;Managing Julia versions manually is annoying, so get rid of this as a first step into the language. I'm glad it's appeared and is now taking that pain away.&lt;/p&gt;
&lt;h3 id="development-tooling"&gt;Development Tooling&lt;/h3&gt;&lt;h3 id="pluto.jl"&gt;Pluto.jl&lt;/h3&gt;&lt;p&gt;First and foremost, I can't get on with VS Code + Julia extensions. I find the interface wholly unappealing as someone who alt-tabs a lot. &lt;strong&gt;I don't like learning lots of new shortcuts&lt;/strong&gt; to use an IDE effectively (VIM was the last time). In addition, the plotting window is horrible to look at. I'm likely missing something, but both &lt;a href="https://github.com/JuliaLang/IJulia.jl"&gt;Jupyter via IJulia&lt;/a&gt; and &lt;a href="https://plutojl.org/"&gt;Pluto.jl&lt;/a&gt; seem like better options.&lt;/p&gt;
&lt;figure&gt;
    &lt;img src="starting_pluto.png" class="w-75 p3 float-right" alt="Starting the Pluto Notebook Server"&gt;
    &lt;figcaption&gt;Starting the Pluto Notebook Server.&lt;/figcaption&gt;
&lt;/figure&gt;&lt;p&gt;The &lt;strong&gt;deciding factor&lt;/strong&gt; having tried Jupyter is that I didn't want the burden of IJulia managing miniconda to produce a Jupyter environment to instantiate IJulia so that I can run Julia. I use Jupyter notebooks elsewhere, and this seems a bit around the houses.&lt;/p&gt;
&lt;p&gt;So, Pluto is where I'm at!&lt;/p&gt;
&lt;p&gt;Things I immediately like:&lt;/p&gt;
&lt;div class="w-50 p3 float-right"&gt;
&lt;figure&gt;
    &lt;img src="running_notebooks.png" alt="Running the Pluto Notebook"&gt;
    &lt;figcaption&gt;Running the Pluto Notebook.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/div&gt;&lt;p&gt;The fact that it is taking advantage of the Julia ecosystem: this is a big win!&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The reactivity of the notebooks: I'd previously tried using &lt;a href="https://juliagizmos.github.io/Observables.jl/stable/"&gt;Observables&lt;/a&gt; with &lt;a href="https://docs.makie.org/dev/explanations/backends/glmakie"&gt;GLMakie&lt;/a&gt; (which is awesome) in VS code and this is what left me wanting!&lt;/li&gt;
&lt;li&gt;The ability to embed pretty much anything into them&lt;/li&gt;
&lt;li&gt;The speed: debugging might be an issue and these are notebooks, but using this doesn't stop me using a debugger seperately&lt;/li&gt;
&lt;li&gt;The export functionality that allows Julia code to be linearly run straight from the notebook. &lt;/li&gt;
&lt;li&gt;The level of visibility for diagnosing the startup and operation of the notebook.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="finding-libraries"&gt;Finding libraries&lt;/h3&gt;&lt;p&gt;Initially, I was playing simply with plotting and the example notebooks. The system is managed via the &lt;a href="https://pkgdocs.julialang.org/v1/"&gt;Pkg.jl&lt;/a&gt; and relays to the &lt;a href="https://julialang.org/packages/"&gt;packages ecosystem&lt;/a&gt;. The wealth of libraries in Julia is overwhelming, but &lt;strong&gt;that's easily overcome if you have some intended purpose behind you!&lt;/strong&gt;&lt;/p&gt;
&lt;h3 id="suddenly-things-changed"&gt;Suddenly things changed&lt;/h3&gt;&lt;p&gt;I got distracted (life is distracted with a newborn) by lots of other things in writing this post. So over the month or so since I started it, I got frustrated with Pluto due to the onerousness of JIT happening in temporary environments constantly, as well as finding that things aren't entirely translatable directly to Julia. All in all, it wasn't a transparent development process.&lt;/p&gt;
&lt;h3 id="back-to-vss"&gt;Back to VSS&lt;/h3&gt;&lt;p&gt;So I'm back to VSS, from Flatpak: the &lt;a href="https://github.com/microsoft/vscode/wiki/Differences-between-the-repository-and-Visual-Studio-Code"&gt;open-source version without the extra analytics&lt;/a&gt;. That and vim, though that's a slower game for getting things done. We'll see how things go as I employ tactics such as &lt;a href="https://github.com/timholy/Revise.jl"&gt;Revise&lt;/a&gt; and get into more complex projects. I am struggling with VS language server issues in the OSS version, but will persist for a while...&lt;/p&gt;
</content></entry><entry><title>Getting back to tech: a software engineer is easily distracted</title><link href="https://inconsistentrecords.co.uk/blog/getting-back-to-tech-a-software-engineer-is-easily-distracted/" rel="alternate"/><updated>2024-11-02T00:00:00Z</updated><author><name/></author><id>urn:uuid:55ac41fa-3855-3776-bdd8-00357941e244</id><content type="html">&lt;h2 id="a-software-engineer-is-easily-distracted"&gt;A software engineer is easily distracted&lt;/h2&gt;&lt;p&gt;Crapoly, it's been a long time since I wrote anything. Ho hum, it's mostly for me anyway (if not, and you like this, leave a comment!)&lt;/p&gt;
&lt;p&gt;If you get asked to lead a team, undertake challenging projects that aren't "the flavour of the month", or change your life circumstances, it could be the end of you doing serious "coding". Most people tell me all these things will make that so. Hopefully as this post demonstrates, it doesn't need to be the end of you doing engineering. It could even be the start...&lt;/p&gt;
&lt;p&gt;For almost twenty years I skirted aside from the dangers of line management, undesirable projects and splitting my attention to other personal life goals. No longer. Since the time of the last blog (that was over 18 months ago), a lot has changed. Nearly all for the better: work, tech and life have all seen massive upheavals and though challenging, it's rewarding. Some I'll share in detail, some I won't.&lt;/p&gt;
&lt;p&gt;The basic reason for this post is to describe some lessons learned and useful advice I've had along the way, if applicable. Or at least prime the reader for future posts if not.&lt;/p&gt;
&lt;h3 id="leading-a-team"&gt;Leading a team&lt;/h3&gt;&lt;p&gt;Off the back of years advocating for &lt;a href="https://www.software.ac.uk/about"&gt;sustainable software engineering&lt;/a&gt;, mostly &lt;a href="https://www.software.ac.uk/blog/reflecting-ssi-fellowship-new-rse-team-and-future"&gt;off the back of a fellowship&lt;/a&gt;, I &lt;em&gt;"accidentally"&lt;/em&gt; got to start a team of engineers. There will be more about this another time, but some key lessons I've learnt are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Line management and leadership are not the same&lt;/strong&gt;: this is perhaps obvious, but I didn't know it. Line management means you care about the wellbeing of those you (try to) direct in mutually agreeable directions. Leadership means you care about the organisations interests when (trying to) direct[ing] people.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Line management and leadership are both required&lt;/strong&gt;: don't try and do one without the other (see above). The role is to ensure that you work on keeping the balance of the two, pretty much nothing else.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;You'll learn more about your own character than you might have before&lt;/strong&gt;: I've managed plenty of people and projects, but being in a position where you're caring and leading is really complicated. You'll understand more about yourself in the process. Sometimes that's good, sometimes it's not. Always it's helping you grow &lt;strong&gt;&lt;em&gt;so lean into it and learn from it&lt;/em&gt;&lt;/strong&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This was &lt;strong&gt;not a career aspiration for me&lt;/strong&gt;. In fact, I kind of feel like I "fell" into it through pure willingness to try and make things better for an organisation I care about working for. The idea that I could perhaps influence some positive change was a driver, but &lt;em&gt;this comes at a cost and potentially might not be realised&lt;/em&gt;. Therefore, it's worth seeing the other benefits, which I now (after a year) see the above as being.&lt;/p&gt;
&lt;h3 id="pivoting-to-environmental-science-focused-software-engineering"&gt;Pivoting to environmental science focused software engineering&lt;/h3&gt;&lt;p&gt;I was a big data, middleware type of infrastructure / devops engineer type person, dealing with keeping systems up for profit-making companies and service providers. There is nothing wrong with this, it leads to interesting infrastructures to work on. When I went to Antarctica, the pivot was from &lt;em&gt;highly available, fault-tolerant, scaleable and secure infrastructure&lt;/em&gt; to &lt;em&gt;resilient, deeply redundant and continuous infrastructure that scales&lt;/em&gt;. The motivators were different.&lt;/p&gt;
&lt;p&gt;Now I work specifically on software that can, in theory, be responsible in allowing people to scale compute and serve data products for environmental science. Working on projects that seek to integrate environmental data; modelling and AI data pipelines; supercomputing platforms; and data publishing platforms is amazing fun.&lt;/p&gt;
&lt;p&gt;The challenge is (a) the breadth of focus and (b) convincing myself that we're going in the right direction. AI in particular has a lot of questions to answer and is &lt;a href="https://en.wikipedia.org/wiki/Gartner_hype_cycle"&gt;really very high in the peak of inflated expectations&lt;/a&gt;, but the same can be said for many other "cutting-edge" technologies and groundbreaking ideas_.&lt;/p&gt;
&lt;p&gt;The method I try to employ is to (a) always &lt;strong&gt;have one tangible project&lt;/strong&gt; to deliver to keep me grounded and interested in real-world delivery; and (b) to &lt;strong&gt;always remain skeptical&lt;/strong&gt;!&lt;/p&gt;
&lt;h3 id="life-taking-priority"&gt;Life taking priority&lt;/h3&gt;&lt;p&gt;The biggest thing that has had me in recent times is life itself. Family, home life and other businesses now pull at my attention more than ever before. As an "early millennial" (to gauge that, I recall watching &lt;a href="https://en.wikipedia.org/wiki/Innerspace"&gt;Innerspace&lt;/a&gt; the first time it reached TV), the &lt;strong&gt;reality has become that the most important thing I can do is not fuck things up for the upcoming generations...&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;...and this gets to why I've been concentrating on the previous two items alongside the third. They are the thing I can do to try and have a positive impact. But they are not the most important thing. I can demonstrate what I've learned, but others now can learn and adapt way faster than me.&lt;/p&gt;
&lt;p&gt;And in this vein, I've been learning more than ever so that there is something to express (writing, music, math, science, technology) from my knowledge base. I've been enjoying learning again, but it is the application of that knowledge and communication which will become more important.&lt;/p&gt;
&lt;p&gt;That's why I'm back here, blogging pointlessly (perhaps) into the digital void: to illustrate what I'm doing for posterity and to guide myself as things distract me. In no particular order, I will hopefully describe:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;How to rebuild a long forgotten electronic music setup and coupled it with guitars.&lt;/li&gt;
&lt;li&gt;How to dust off maths knowledge and rekindle long forgotten passion in doing so.&lt;/li&gt;
&lt;li&gt;How to build environmental science tooling for field, compute and data platforms.&lt;/li&gt;
&lt;li&gt;How to take the pain out of provisioning systems be they small board computers or multi-host, multi-site infrastructures.&lt;/li&gt;
&lt;li&gt;How to annoyingly conceptualise everything in technology, with a view to communicating about sustainable technology. &lt;/li&gt;
&lt;li&gt;How to get a hold of the modern day internet for research software engineering, without getting smothered by its scale.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Achieving any one of these will be fun. This has been rambling, but hopefully it won't be 18+ months before the next time!&lt;/p&gt;
</content></entry><entry><title>What's open on my phone: start of 2023</title><link href="https://inconsistentrecords.co.uk/blog/whats-open-on-my-phone-jan-2023/" rel="alternate"/><updated>2023-02-19T00:00:00Z</updated><author><name/></author><id>urn:uuid:7823e784-44ec-3c68-ad5a-260f733e2ca2</id><content type="html">&lt;h3 id="introduction"&gt;Introduction&lt;/h3&gt;&lt;p&gt;I'm determined to continue writing publicly, but haven't been able to find much to focus on and understand in relation to my path. Perhaps, this is thanks to the uncertainty of that path, especially in my professional life. That needs sorting, but I love writing so decided to save ten tabs that I found interesting or at least slightly worthwhile from my phone. I don't like reading on my phone, but when I do it allows me to be a very networked affair, inspired by what I'm doing elsewhere, which means there's both a little connectivity and diversity to my general activities without being too focused and specific on a narrative.&lt;/p&gt;
&lt;p&gt;Hopefully people find the pieces herein interesting.&lt;/p&gt;
&lt;h4 id="uk-online-safety-bill-is-a-serious-threat-to-human-rights-online-1"&gt;&lt;a href="https://www.article19.org/resources/uk-online-safety-bill-serious-threat-to-human-rights-online/"&gt;UK: Online Safety Bill is a serious threat to human rights online&lt;/a&gt;&lt;/h4&gt;&lt;p&gt;&lt;strong&gt;This was a really important read&lt;/strong&gt; for me. I've known that some of the elements of this bill have been problematic, but never quite got my head round exactly what the key issues are. I appreciate these will be subjective, but &lt;a href="https://www.bbc.co.uk/news/topics/c1llzgp5rvqt"&gt;over time the rhetoric&lt;/a&gt; of UK news has felt biased towards the idea that the "&lt;a href="https://www.gov.uk/government/publications/online-safety-bill-supporting-documents"&gt;Online Safety Bill&lt;/a&gt;", intrinsically given a name to that belies it's coverage (no change there), is benevolent at it's heart and not at all leveraging public fear and misunderstanding with respect to technology to control information freedoms.&lt;/p&gt;
&lt;p&gt;I really advise reading this, it's a bit old now but it's a great introduction and &lt;a href="https://www.article19.org/"&gt;I will be reading far more from Article 19 in the future.&lt;/a&gt;&lt;/p&gt;
&lt;h4 id="the-big-idea-has-organic-food-passed-its-sell-by-date-2"&gt;&lt;a href="https://www.theguardian.com/books/2022/dec/12/the-big-idea-has-organic-food-passed-its-sell-by-date"&gt;The big idea: has organic food passed its sell-by date?&lt;/a&gt;&lt;/h4&gt;&lt;p&gt;This was an interesting read, especially as (to me) it seemed like a very pointless and damaging journalistic piece, using lazily cherry-picked statistics (from an unknown source) and divisive assertions to express the opinion of the author. The ideas stated in the article that organic farming is trying to overtake the market, claiming health benefits (via the consumers) or working at the expense of other novel approaches to food production is assumptive, especially when the consumers are cited as the proponents of these messages. It seems to me to be an example of poor journalism, but on an interesting topic to consider: people are becoming ever more zealous in their discussion around food and this article highlights that from the way it's written.&lt;/p&gt;
&lt;p&gt;I really like reading and writing, as well as food (organic or otherwise), but I lost respect for the arguments of the author with the tone of the language. That's a real shame, as the last paragraph was the best at bringing across a sensible message that we need sustainable and varied solutions for food production into the future. Organic farming offers insight into &lt;em&gt;how&lt;/em&gt; things can be done better, in an accredited, responsible and controlled fashion: that's something that can be learnt from positively. I think it foolish to talk negatively about any industry that is trying to diversify and experiment for the benefit of us all.&lt;/p&gt;
&lt;h4 id="ownership-of-ai-generated-code-hotly-disputed-3"&gt;&lt;a href="https://spectrum.ieee.org/ai-code-generation-ownership"&gt;Ownership of AI-Generated Code Hotly Disputed&lt;/a&gt;&lt;/h4&gt;&lt;p&gt;This, especially now (since the subsequent release of ChatGPT) is a very poignant article that really does get to the heart of the issue with using &lt;a href="https://en.wikipedia.org/wiki/Wikipedia:Large_language_models"&gt;Large Language Models (LLM)&lt;/a&gt;, in this specific case for the generation of code. The fact that Microsoft developed the system based on its unprecedented access to &lt;a href="https://news.microsoft.com/announcement/microsoft-acquires-github/"&gt;open source code&lt;/a&gt; for the purposes of &lt;a href="https://github.com/features/copilot#pricing"&gt;generating revenue&lt;/a&gt; flies in the face of their &lt;em&gt;"commitment to developer freedom, openness and innovation."&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;This is worth thinking about, as it's a blatant exploitation of the openness of the internet. Not one that is unprecedented so much as one that highlights how &lt;a href="https://profilebooks.com/work/the-age-of-surveillance-capitalism/"&gt;things aren't changing in this space as time presses on&lt;/a&gt;, despite our collective knowledge that a few big players are taking the piss.&lt;/p&gt;
&lt;h4 id="an-urgent-year-for-interoperability-2022-in-review-4"&gt;&lt;a href="https://www.eff.org/deeplinks/2022/12/urgent-year-interoperability-2022-review"&gt;An Urgent Year for Interoperability: 2022 in Review&lt;/a&gt;&lt;/h4&gt;&lt;p&gt;This is an interesting piece to read. What's more interesting is how interoperability and federation are used as terms, they're extremely vague and generalisable. I recently stated in a meeting "federation has no discernable meaning alone, you need to state what you're federating." People love using these without clear context because it sounds really impressive if something is interoperable and federated. In the dire rhetoric-fest of Digital Twinning, these come up a lot.&lt;/p&gt;
&lt;p&gt;This article is quite good at highlighting that interoperability is an important subject. Federation is mentioned too, hence my mentioning it. It describes how people are thinking at the legislative level how to ensure people are not trapped and beholden to individual providers. More importantly though, it shows how woolly and vague these terms can be, lacking in manifestation for readers. I like this article on many levels, and dislike it on many others. That's probably a good thing!&lt;/p&gt;
&lt;h4 id="earthwatch-citizen-science-5"&gt;&lt;a href="https://earthwatch.org.uk/our-science/citizen-science"&gt;Earthwatch: Citizen science&lt;/a&gt;&lt;/h4&gt;&lt;p&gt;&lt;em&gt;"Earthwatch has been using ‘citizen science’ – actively involving non-scientists in scientific research - long before that term was invented."&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;I like the concept of citizen science, but mainly saved this page as I thought that the quote above was hilarious. Does anybody else get the impression that this is the culmination of two children one upping each other in a conversation until the one-ups get so ridiculous, that it just ends in "whatever..."?&lt;/p&gt;
&lt;h4 id="velociraptor-aerospace-dynamics-internet-map-posters-6"&gt;&lt;a href="https://vad.solutions/ipmap/"&gt;Velociraptor Aerospace Dynamics Internet Map Posters&lt;/a&gt;&lt;/h4&gt;&lt;p&gt;I really like maps and posters, and I like that someone has gone to the pain of making these. Also really nice to see both IPv4 and IPv6 (partially) represented!&lt;/p&gt;
&lt;h4 id="edgar-ansel-mowrer-7/dorothy-thompson-19"&gt;&lt;a href="https://en.wikipedia.org/wiki/Edgar_Ansel_Mowrer"&gt;Edgar Ansel Mowrer&lt;/a&gt; / &lt;a href="https://en.wikipedia.org/wiki/Dorothy_Thompson"&gt;Dorothy Thompson&lt;/a&gt;&lt;/h4&gt;&lt;p&gt;Whilst watching a particularly involved documentary called "&lt;a href="https://en.wikipedia.org/wiki/The_U.S._and_the_Holocaust"&gt;The US and the Holocaust&lt;/a&gt;", the experiences of both Edgar Ansel Mowrer and Dorothy Thompson came to my attention in one episode. The film is really insightful and extremely engaging, though understandably horrific. I implore people to watch it, but I think with my desire and fascination around journalism, I'll be following up on my studies regarding these two in particular.&lt;/p&gt;
&lt;h4 id="dempster-shafer-theory-8"&gt;&lt;a href="https://en.wikipedia.org/wiki/Dempster%E2%80%93Shafer_theory"&gt;Dempster–Shafer theory&lt;/a&gt;&lt;/h4&gt;&lt;p&gt;I've saved this tab as I thought it was interesting. However, it highlights that no matter how much interest I might have in reading something, without a reason to read it I just don't find the time if it's on a phone. I've kept it, because it was the end result of a wikipedia bimble whilst watching the film above, and sounded like a very interesting theory to read up on.&lt;/p&gt;
&lt;h4 id="smart-meter-data-9"&gt;&lt;a href="https://www.smartme.co.uk/meter-data.html"&gt;Smart Meter Data&lt;/a&gt;&lt;/h4&gt;&lt;p&gt;I'm very interested in being able to monitor and model the house I live in, and in the UK getting data from your own electricity supply, which runs a &lt;a href="https://en.wikipedia.org/wiki/Home_network"&gt;Home Area Network HAN&lt;/a&gt; in your home without any transparency to the user, seems somewhat cheeky. Following some conversations I narrowed in on a potential source of data, which I will investigate in due course.&lt;/p&gt;
&lt;h4 id="netblocks-mapping-internet-freedom-in-real-time-10"&gt;&lt;a href="https://netblocks.org/"&gt;Netblocks: Mapping Internet Freedom in Real Time&lt;/a&gt;&lt;/h4&gt;&lt;p&gt;One final tab, that is a really useful tool for seeing where internet oppressions might be taking place. This is a real eye-opener and a tool I've no doubt useful for me and others. Hopefully, we in the UK won't find ourselves on this at any point, but I'm an outward looking person and it's a fantastically useful site to help highlight the oppression of information freedoms elsewhere. Definitely take a look.&lt;/p&gt;
</content></entry><entry><title>What's my motivation?</title><link href="https://inconsistentrecords.co.uk/blog/whats-my-motivation/" rel="alternate"/><updated>2022-08-20T00:00:00Z</updated><author><name/></author><id>urn:uuid:f4ec7969-1633-3167-96c7-c305659dd577</id><content type="html">&lt;h2 id="preamble"&gt;Preamble&lt;/h2&gt;&lt;p&gt;I write from a position of privilege. This is an important premise to this piece to acknowledge, because it underpins the need to build my motivation. Reflecting on the topic herein has been important in addressing that not saying anything is far worse than the alternative: to have stood impassively at the watching, and feeding off of, technological development having without trying to influence it for the better.&lt;/p&gt;
&lt;p&gt;And this is where I am. I've been lucky enough to find a comfortable home, a great job that allowed me to travel the world for a few years and I'm now passionate about who I work for. However, this niggling feeling that I'm taking more than I'm giving remains, and that's because I'm in a position of relative privilege and not doing my best to at least try and influence technology for the better. Part of this is disenfranchisement, it's easy to become that way when you look at the reality of what you can really influence. Mostly though, and this is what I've reflected on, it's just outright laziness.&lt;/p&gt;
&lt;h3 id="a-sense-of-responsibility"&gt;A sense of responsibility&lt;/h3&gt;&lt;p&gt;During my times in Antarctica and even during the pandemic when I was treading water, enveloped in what a wise person I know calls "life procrastination." I noticed that I could understand my civic responsibility in these scenarios and tried to work towards it. Once the freedom to move around returned, I figured that I could build an ideal base for exercising and developing this sense of responsibility.&lt;/p&gt;
&lt;h3 id="what-responsibility"&gt;What responsibility?&lt;/h3&gt;&lt;p&gt;In Antarctic seasons, you have to offer your personal energy for the benefit of a relatively closed community. In the pandemic it was (and remains) hugely important to think of others in the wake of an extreme immunological event. For the former I offered as much energy as I had, and in the latter I became a vaccinator because I trust science to provide (in that case) solutions, which it did. Since I moved after the lockdowns finally lifted, I've known that I wanted to develop the role of a British Antarctic Survey (BAS) Research Software Engineer (RSE) for the benefit of polar science, which I think I'm roughly getting there with. For some reason that hasn't been enough to satisfy my desire to make a positive difference.&lt;/p&gt;
&lt;h2 id="developing-a-motivation"&gt;Developing a motivation&lt;/h2&gt;&lt;p&gt;I took a week off, as the need to develop a clear motivation towards what I do has been influenced by reading &lt;a href="https://profilebooks.com/work/the-age-of-surveillance-capitalism/"&gt;The Age of Surveillance Capitalism&lt;/a&gt; by &lt;a href="https://en.wikipedia.org/wiki/Shoshana_Zuboff"&gt;Shoshana Zuboff&lt;/a&gt;, which I'll refer to as T.A.O.S.C. I started it in February (I think) thinking it would be another "dump social media" type parable that tries to sell logic through fear.  I finished it last night, having had every paragraph sink into my mind deeply, instilling a sense of awareness of my own oversight and ignorance in the face of our changing world. &lt;em&gt;I believe this is one of the most important books anyone involved in data science can read&lt;/em&gt;, on a par with &lt;a href="https://www.basicbooks.com/titles/glyn-moody/rebel-code/9780738206707/"&gt;Rebel Code&lt;/a&gt; by &lt;a href="https://en.wikipedia.org/wiki/Glyn_Moody"&gt;Glyn Moody&lt;/a&gt;, which I think &lt;em&gt;every software engineer should read, especially if they are born after the 80's&lt;/em&gt;.&lt;/p&gt;
&lt;h3 id="how-capitalism-undermined-in-particular-gen-z"&gt;How capitalism undermined (in particular) Gen Z&lt;/h3&gt;&lt;p&gt;I've been involved with technology, from the programming sense, since my age was in single figures. Though this is common these days, at the time it was rare for people to start programming so young. Though considered a Millennial I hold clear memory of a time without the internet, mobile technology and email. My passion for computing was not limited to gaming as it was for many at the time, but more in trying to understand how computers worked, so programming became a natural practice for a young person with LOTS of time to spare. It turns out this was a really great time for people to build an interest in technology, communications and the internet, and it's these people who produced the dot-com boom and the big data revolution(s) that followed it.&lt;/p&gt;
&lt;p&gt;For those that grew up after those who saw this transition, the utilisation of computers seems to have shifted to be geared towards interaction over investigation. I distinctly remember being fearful in the early 2000's that the young were going to be culturally and socially impacted in ways too complex to understand and, to be honest, did nothing but watch. T.A.O.S.C really drills into this point in it's later chapters (I'm going to be writing based on this book for a while.) Social media has distorted the very fabric of all generations that followed mine, just as aspirational media sort of did for my generation and the one before it. However, the net effect is far more pronounced for Gen Z and those after them and there is little to no ability for this to be unwoven from the makeup.&lt;/p&gt;
&lt;p&gt;This all makes me realise how lazy I've been in looking at these issues, in spite of working full time in technology for a long while and having lived the transitions first-hand. I turned my attention away from profiteering through technology. I realise now that in doing so I turned my gaze away from a desperate situation that needs to be paid attention to &lt;em&gt;by everyone who utilises technology&lt;/em&gt;. There's a very clear message that &lt;a href="https://www.penguin.co.uk/books/438053/ten-arguments-for-deleting-your-social-media-accounts-right-now-by-jaron-lanier/9781529112405"&gt;you can switch off and be free&lt;/a&gt; which is not misplaced (and I recommend the book linked to highly), but it's often not practical, and potentially even anxiety-inducing, for those who have never existed without this level of communication. Another approach is required that adjusts the system, even exploits it equally, rather than creating a bipolar opposition to it. I feel T.A.O.S.C offers a good insight to leveraging existing frameworks to right the wrongs caused by the extremes of early adoption.&lt;/p&gt;
&lt;h3 id="environmental-data-science-and-ubiquitous-computing"&gt;Environmental Data Science and Ubiquitous Computing&lt;/h3&gt;&lt;p&gt;A pervasive topic within T.A.O.S.C is the reliance on adjusting society for the benefits of surveillance capitalism, namely to maximise benefits via the increase in certainty of those populations influenced by "Big Other." The primary benefit of utilising ubiquitous computing towards the ends of environmental data science is to incorporate uncertainty quantification into the picture. There is no realistic (as far as I know, but I'm limited in understanding, so please get in touch if this needs revision) proposition for ensuring certainty within one or more environmental domains.&lt;/p&gt;
&lt;p&gt;This offers us an interesting proposition for a shift through utilisation of technology (which is all but inevitable, but also rather sensible) to help us understand the environment and address climate issues, which could also feed back for the point of attenuating the need for certainty within the surveillance capitalist domain. One could argue that we should've been developing technology for this purpose initially, but that's not how it worked out, so hey! What I can ascertain is:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;We (particularly technologists) have a responsibility as we move towards developing &lt;a href="https://www.sciencedirect.com/science/article/pii/S266638992100221X"&gt;environmental Digital Twins&lt;/a&gt;, from &lt;a href="https://www.bas.ac.uk/project/digital-twins-of-the-polar-regions/"&gt;localised&lt;/a&gt; to &lt;a href="https://www.weforum.org/agenda/2021/03/scientists-are-developing-a-digital-twin-of-our-earth-to-fight-climate-change/"&gt;broad&lt;/a&gt; that we don't act blindly or unethically, as surveillance capitalism has, in the desires of achieving certainty and increasing capabilities to render real-world behaviour virtually.&lt;/li&gt;
&lt;li&gt;That we use this opportunity to stand on the shoulders of giants, and &lt;strong&gt;feed back&lt;/strong&gt; what we learn for the betterment of humankind &lt;em&gt;and&lt;/em&gt; the environment. &lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="conclusion"&gt;Conclusion&lt;/h2&gt;&lt;p&gt;In writing that last part of this piece, the link between what I do day-to-day and my personal feelings has been established. It's obvious that I have a motivation but without saying anything about it, it's difficult to really get behind it, so writing this is the first step towards writing a personal manifesto of sorts! Being openly vocal about things like this shouldn't be something that I fear, but for some reason I do. Possibly I don't feel educated enough to talk about it, possibly I worry that by writing about this I have the potential to upset people. If there is a risk there, then it's worth taking, because by not voicing an opinion about an industry I've worked in for years, I've been implicitly exploiting my privileged position.&lt;/p&gt;
&lt;p&gt;This is the first step towards building a motivation: doing something I believe in and ensuring it's not ignorant to the possibilities for harm. Tracking the progress in relation to industry development I was aware of and, to a very small degree, part of, is something of potential value to be contributed to the discussion. The above two points couple this agenda to technological and scientific areas I love working in. The areas I work in have the potential to help us gain much needed understanding about our world, what we're doing to it and how to manage our future. If this rambling piece does anything, even points someone at a book or paper worth reading, I'll be bloody glad I wrote something.&lt;/p&gt;
</content></entry><entry><title>Why I've updated my about page</title><link href="https://inconsistentrecords.co.uk/blog/why-ive-updated-my-about-page/" rel="alternate"/><updated>2022-01-11T00:00:00Z</updated><author><name/></author><id>urn:uuid:ab2adb00-d258-3700-a397-41d529e72ea4</id><content type="html">&lt;p&gt;&lt;strong&gt;&lt;em&gt;As usual, all opinions are my own&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;h2 id="a-prelude"&gt;A prelude&lt;/h2&gt;&lt;p&gt;So this post is &lt;a href="/about/"&gt;about why I've updated my about page&lt;/a&gt;, which probably seems pointless but actually is quite an achievement for me as I'm not predisposed to public writing unless it leaves out all semblance of personal information (&lt;em&gt;which hasn't, if I'm honest, done me any favours in the long run!&lt;/em&gt;) There have been a few things that have tipped the balance for me recently though, including being fortunate enough to be able to work as an &lt;a href="https://software.ac.uk/research-software-engineers"&gt;RSE&lt;/a&gt; for the polar science community in the &lt;a href="https://www.bas.ac.uk/project/ai/"&gt;British Antarctic Survey (BAS) AI Lab&lt;/a&gt;, probably because my incomprehensible sense of idealism when it comes to technology &lt;a href="https://arxiv.org/abs/2002.01035"&gt;fits the values associated with the role&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Now I don't like job titles, but the fact is academia has long needed people working as software engineers to be recognised for the role they play in research, because otherwise it'll forever be an ad-hoc endeavour, which in turn could put people off (be they scientists or no) taking up the role. I do find it interesting how there seems to be a &lt;a href="https://ukrse.github.io/who.html"&gt;prevailing assumption that scientific researchers become software engineers&lt;/a&gt;, rather than vice-versa, but it's a small bugbear. I think this speaks more to an issue with there being enough software engineers moving towards research rather than industry. Therefore, &lt;strong&gt;I'm very happy to be called a Research Software Engineer&lt;/strong&gt;, because I've had some completely deranged job titles before now, in the IT industry as well as others...&lt;/p&gt;
&lt;p&gt;I'm very privileged to work in my role and to have had the honour of spending several years supporting Antarctic research projects (&lt;a href="http://localhost:5000/blog/antarctic-part-i-summer-2016-2017/"&gt;retrospective Antarctic blog started here if you're interested&lt;/a&gt;) in addition to my previous experience as well as my current opportunity...&lt;/p&gt;
&lt;h2 id="the-actual-article"&gt;The actual article&lt;/h2&gt;&lt;p&gt;...which leads me onto why I've finally decided to write a better &lt;a href="/about/"&gt;about page&lt;/a&gt; that explains who I am.&lt;/p&gt;
&lt;p&gt;One of the biggest differences I notice in the academic world is that people actually put their name to their work. Now that I'm working with people I want to do the same, because I believe that the work we're all involved with at BAS is something worth communicating. This is the first time I've really thought "hey, this could be worth communicating about..."&lt;/p&gt;
&lt;div class="container w-50 float-right"&gt;
&lt;img alt="Trust No One X-Files" src="trustnoone.jpg" /&gt;
&lt;p style="font-size:0.6em; font-style:italic;"&gt;Almost certainly &amp;copy; 20th Century Fox&lt;/p&gt;
&lt;/div&gt;&lt;p&gt;This might sound slightly bonkers, especially if you're younger and grew up with the internet, but I'm in my late 30's and I started programming &lt;strong&gt;very&lt;/strong&gt; young. When the internet came along I didn't want to be an entrepreneur, nor did I harbour any illusions of making millions. By the time I got a "&lt;em&gt;proper IT job&lt;/em&gt;" I was just trying to make an honest living and live a life without adopting these new mass data collectors into my life ubiquitously (I will suggest a few reading materials on this subject at some point, but &lt;a href="https://www.penguin.co.uk/books/304/304513/weapons-of-math-destruction/9780141985411.html"&gt;this book&lt;/a&gt; is a great read to consider the implications.) I was inherently distrustful of crawlers and social media from the outset (probably not a bad thing), but now I figure they're less the problem than those who seek to abuse the technology. I put some of this luddite-like approach down to spending a lot of time rural areas when I grew up and having a Fox Mulder "trust no one" poster on my wall, though I suspect I'm over-simplifying the true reasons. That's probably for another article...&lt;/p&gt;
&lt;p&gt;Also in the "noughties" and beyond I worked for my fair share of companies who didn't want their technical staff to speak about what they were doing (and sometimes with good reason...) It meant I didn't get swept up in the melee of it all, but it and some significant life events left me wondering along (in a reasonably capable technical career, I won't lie) trying to fathom whether there was actually a route to using my skills for a more beneficial purpose.&lt;/p&gt;
&lt;p&gt;Eventually, following some misguided attempts at charity and socially responsible computing (from whence came the moniker &lt;a href="https://github.com/JimCircadian/"&gt;Circadian&lt;/a&gt;) alongside my permanent roles, I ended up at BAS. I say ended up, I sought it out and waited for the opportunity, for a long time. When I did it, it wasn't exactly like I thought it would be (that would've been very spooky had it been), but the &lt;strong&gt;scope&lt;/strong&gt; for making something out of it was much greater than I could imagine...&lt;/p&gt;
&lt;p&gt;It's been an interesting journey and I see often questions on places like &lt;a href="https://news.ycombinator.com"&gt;Hacker News&lt;/a&gt; and occasionally talk to, or get passed questions from, people asking me about how they can work for the benefit of science and research or look at a more morally satisfying switch out of interest. There is no answer or trick, it's just about going, persuading people you're who they want and then working for an organisation who you agree with. You'll have to prove that you can do it though. Why? Because in research there is f**k all money and often scarce expectation that people will leave industry which means you have to exemplify your credentials for roles that might be looking for academic qualifications. The side effect for academia is that valuable and far less numerous researchers are forced to split their attention because there isn't a massive pool of people leaving industry (I can't find a link, but usually it flows the other way.) Having researchers do this is no bad thing, but it needs to be balanced, so that experience can flow out of industry to nourish the academic and research domains.&lt;/p&gt;
&lt;p&gt;And this is why I have update my about page, because if you're willing to leave industry there are dozens, hundreds, hell, possibly thousands of research organisations who would gladly pay for experienced IT professionals to come and work for them. You might not get a silicon valley or London City lifestyle, but if you want to contribute to the very broad field of academic research at a time when it's most needed, &lt;em&gt;the role of RSE not exclusively offers a path to do so&lt;/em&gt;. From my own experience every day is a heck of a lot more fun and interesting than I ever had in industry, which is why I still do it even though I don't go to Antarctica any more...&lt;/p&gt;
&lt;p&gt;When I mention that RSE offers a non-exclusive path into the research domain, I really mean it. Consider that before being a RSE I've been a "Data Manager", "UNIX Engineer", "Principal Engineer", "Senior Engineer", "Senior Software Developer", "Technical Manager"... the list goes on. For me, RSE is the first job title that actually says &lt;strong&gt;what&lt;/strong&gt; I do properly, &lt;a href="https://arxiv.org/abs/2002.01035"&gt;with a definition&lt;/a&gt; to go with it...! Ignore the job title, find the organisation, then find a way to build the role into what is well defined as a RSE, it'll be rewarding if you do!&lt;/p&gt;
&lt;p&gt;I hope my writing this and about myself more honestly helps me to blog better, because trying to blog whilst being a "Fox Mulder" and not giving anything away wasn't working. I've been pretty honest here about how I feel the switch from industry to a publicly funded research organisation (BAS is funded by the &lt;a href="https://www.nerc.ac.uk"&gt;Natural Environment Research Council&lt;/a&gt; in the UK, if you wondered) has gone. Hopefully this one day crosses the path of someone wondering what to do next, as I was a decade ago when I decided to try and get a job in Antarctica, and persuades them to give it a go...&lt;/p&gt;
</content></entry><entry><title>Solutions and Problems. Problems and Solutions</title><link href="https://inconsistentrecords.co.uk/blog/problems-and-solutions-and-problems/" rel="alternate"/><updated>2021-07-05T00:00:00Z</updated><author><name/></author><id>urn:uuid:029e2eb3-f61f-371a-83e8-46ae2a3b4e81</id><content type="html">&lt;h2 id="introduction"&gt;Introduction&lt;/h2&gt;&lt;p&gt;Holiday and life has given a little break between the blog posts recently, but back to work today and I'm over the moon to be starting a new project in my role as RSE (rather than those I'm doing which are carried over.) There will be more on this technically without doubt, but I want to start with something more abstract and conceptual to write about, which arose during my first day back without having thought about software for a while.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;This is purely an opinion piece&lt;/strong&gt;, derived from personal experience and a trigger to a thought process I have regularly. Nothing so much happened to create this ramble today, it just occurred to me it's a line of thinking I often think of. There are always better practitioners out there and I'd love to hear from you in the comments if you would like to feed back. I will respond to everyone who does!&lt;/p&gt;
&lt;h2 id="problems-to-solutions"&gt;Problems to Solutions&lt;/h2&gt;&lt;p&gt;Once, many moons ago, somebody on a conference call suggested to me that we switch the entire infrastructure from on-premise VM infrastructure (effectively a LAMP stack on steroids) to an on-premise containerised infrastructure. This was in the mid-2010s and my reaction, following the call, was simple: "why on Earth would we consider that a viable proposal when their codebase is fucked?"&lt;/p&gt;
&lt;p&gt;This company was a billion£+ turnvover company and the software infrastructure had numerous problems, not least that it wasn't easily able to scale horizontally because of the way the application stack was built. That's not necessarily important, but what is, is that this was a prime example of the "shiny solution" arriving before identification or addressing of the problems. So instead of solving the problems, they thought that a much more abstracted technology would automatically solve it (and without any significant cost, in spite of us being a contractor!)&lt;/p&gt;
&lt;p&gt;What I mean by this is that with anything developed externally, adopted via legacy or technical debt, or inherited from a previous incarnation we have to identify solutions &lt;strong&gt;&lt;em&gt;to&lt;/em&gt;&lt;/strong&gt; problems before throwing it into a new infrastructure or adopting solutions that don't meet the problem statement. The sad truth of the matter is that the path of least resistance often doesn't lead us there and thus we inherit the debt, design issues and flaws of previous iterations when we use a solution to wrap up problems. I think this is dangerous, as well as being lazy and more importantly it doesn't help us to understand or fix old code which is important for new developers. Addressing technical debt allows us to redesign, rearchitect and understand the development of technologies over time, which is not something to be sniffed at.&lt;/p&gt;
&lt;h2 id="solutions-to-problems"&gt;Solutions to Problems&lt;/h2&gt;&lt;p&gt;Applying solutions to problems is purely a case of misappropriation, so we should always look to solve problems on a case by case basis. This very much follows on from the previous section, is simple to understand when you read the words, but is not the way industry and science always behave. The fact is that computing in the last 30 years (about the time I've been programming) has gone from "get all you can" to "have all you want"; that is, we are so abundantly provided with computational power we can make any shit stick to the problem based on "preferred" solutions.&lt;/p&gt;
&lt;p&gt;Why is this a problem? Well, think about the cost. Firstly, computing power costs energy, something I'm always keen not to waste. If you spend time recycling at home, why are you willing to be lazy at work, especially with something as valuable as computing resource (think about electricity, cooling, precious metals and sheer manufacturing cost and you start to get a picture of the cause-and-effect relationship to mistreating computing resource.)&lt;/p&gt;
&lt;p&gt;Secondly, it costs money; if you (like I do) work for a public sector organisation, that's easy to understand. In the private sector, you're only ever cutting into profit margins, reducing your own pay, or raising costs for the consumer and thus contributing to the ever present dangers of inflation. This all feeds back to the supply chain as well, much like the first example did.&lt;/p&gt;
&lt;p&gt;Finally, think about the technological development and the support chains that are created. If we homogenise technology by applying solutions uniformly to problems irrespective of their suitability, we damage innovation and promotion of skills. A world that is composed of few technologies is less likely to adapt, so it is important that we make every effort to identify where the most appropriate or optimal solution &lt;strong&gt;doesn't&lt;/strong&gt; exist for our use case and work out how to arrive at it, because that innovation will likely serve others.&lt;/p&gt;
&lt;h2 id="is-there-a-conclusion"&gt;Is there a conclusion&lt;/h2&gt;&lt;p&gt;&lt;strong&gt;Not really, it's mostly a ramble.&lt;/strong&gt; However, it does lead me to think that this hints at one of many interesting continuums in IT. Maybe that's something I should really be writing about: &lt;strong&gt;the software continuums&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Every day I learn a little bit more now the context for my work has changed. Today was no different. The discussion topic for this post was something I think about often, so it interested me; whether we approach solutions from the most appropriate or sustainable fashion throughout IT as a whole. Today I also learned other things that I and &lt;a href="https://www.calnewport.com/books/deep-work/"&gt;others have realised, such as the fact that meetings and administration suck concentration away from a role&lt;/a&gt; (which I'm seeing could be more problematic in a research-oriented role.) I learned (again) that small actions can build bridges in the information world, such as the importance of simply forwarding information on.&lt;/p&gt;
&lt;p&gt;These latter items I didn't focus on because every day, you realise that something you think "a-ha" to is probably something you learned at least once before and with me that happens a lot throughout the day. So today I had to pick a topic to try and write about.&lt;/p&gt;
&lt;p&gt;Welcome to the pain in the arse that is the human mind: humans like building habitual behaviours, and that's why I wrote about a habitual thought that keeps cropping up. Ultimately that's the benefit of having a little experience, when someone arrives at a behaviour you have identified as sub-optimal, your habits tell you to ensure you don't follow blindly.&lt;/p&gt;
</content></entry><entry><title>First week in a life of a new RSE</title><link href="https://inconsistentrecords.co.uk/blog/first-week-in-a-life-of-a-new-rse/" rel="alternate"/><updated>2021-06-19T00:00:00Z</updated><author><name/></author><id>urn:uuid:1ae23380-900a-3745-af61-fc5d4327a2f5</id><content type="html">&lt;h2 id="introduction"&gt;Introduction&lt;/h2&gt;&lt;div class="float-right col-md-6"&gt;
  &lt;img src="./homeoffice.jpg" class="w-100 p-3" alt="Home office" /&gt;
  &lt;p class="font-italic"&gt;My home office. Very lucky to have the dedicated space to keep work away from relaxation!&lt;/p&gt;
&lt;/div&gt;&lt;p&gt;So this week was my first as a Research Software Engineer for the British Antarctic Survey, whom I've worked for over the last five years in various roles. I'm keen to blog regularly about this, as I feel it's an important culmination of 20 years working in (and around) the tech industry, with longer spent programming, but especially because I'm not arriving as an academic.&lt;/p&gt;
&lt;p&gt;If anything I can write is inspiring or informative about the research software engineer role, the British Antarctic Survey or the science we do for anyone, then it'll be worth blogging!&lt;/p&gt;
&lt;p&gt;The next section was written as I started, then I got on with some work, then I decided to actually write after the first week. This intro was written at the end of the week, so I best reread what I wrote on my first day! ;-)&lt;/p&gt;
&lt;h2 id="transition-first-is-it-14/6/21"&gt;Transition first, is it!?! (14/6/21)&lt;/h2&gt;&lt;p&gt;So today is my first day as a Research Software Engineer. Nothing feels different, but that's perhaps not so surprising given my line manager is the same, the organisation is the same and I still have a pressing need to deal with the same projects I did on Friday.&lt;/p&gt;
&lt;p&gt;All that said, I am very excited!&lt;/p&gt;
&lt;p&gt;So what has changed? Well firstly, I don't have to deal with ongoing support request (as much) which is a massive time saver (I was in a role that is best described as third line support up until this point.) Secondly, I know that once I get through the initiatives I'd started in my previous, I've got a modus operandi to really take on board what we're doing with software in the British Antarctic Survey and make it more accessible and more beneficial for everyone in the organisation. This is a loose remit, but a very important one.&lt;/p&gt;
&lt;p&gt;That's my message to myself as I transition into this role: keep your eyes on &lt;em&gt;why&lt;/em&gt; you wanted to do this in the first place!&lt;/p&gt;
&lt;h2 id="first-week-down"&gt;First week down!&lt;/h2&gt;&lt;p&gt;As anyone who has even remotely followed this blog knows, I'm not a natural blogger. It's definitely something different to writing fiction, which I've always been more at home with. I'm keen to work on a way of distilling an experiential and technical narrative that is clear in its message, as time goes by, but in truth I'd like for my internal narrative to flow freely as well!&lt;/p&gt;
&lt;h3 id="aspirations-for-bas-and-its-collaborators"&gt;Aspirations for BAS and its collaborators&lt;/h3&gt;&lt;p&gt;Software development, if anything, has been my lifes work so far. I've been fortunate and privileged enough to work in a variety of industries, with a lot of different technologies, as well as gain insight into non-technical areas that are strongly associated, for ill or for gain, with its practice. I've been through a simply ridiculous number of job titles, most of which have seemed rather arbitrary, since I've nearly always just ended up being "that guy who is keen on the software stuff..." The &lt;a href="https://www.research.ed.ac.uk/en/publications/the-research-software-engineer"&gt;Research Software Engineer, a role described only really relatively recently&lt;/a&gt;, seems to have a clearer goal in sight than any I've ever had before.&lt;/p&gt;
&lt;p&gt;Technology as a whole is, to me, a wonderful toolbox for discovery and exploration in both our physical and intellectual pursuits. To me I've really struck lucky in doing what I love with the express aim of finding new ways to improving the way technologists, scientists and any other interested parties can collaborate and discover things that help them use technology! That's really the goal for me, to help improve the tools and culture both within and outside of the organisations I'm involved with.&lt;/p&gt;
&lt;h3 id="building-a-profile"&gt;Building a profile&lt;/h3&gt;&lt;div class="float-left col-md-6"&gt;
  &lt;img src="./homerelax.jpg" class="w-100 p-3" alt="Home studio / living room" /&gt;
  &lt;p class="font-italic"&gt;My living space. This is where I go to relax, separate from my office, or generally to think.&lt;/p&gt;
&lt;/div&gt;&lt;p&gt;&lt;strong&gt;For all my over-exuberant and bold claims above, the truth is you have to take small steps to move forward.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The conclusion I've come to recently, before taking this job (and with growing older), is that if you're really quite passionate about something then it's worth building a profile, personal or not, to communicate through. Working in very, very commercial settings, this almost didn't feel possible. In fact, for me historically, the IT industry often actively inhibits openness. This thankfully has been changing significantly in the last decade or more, as newer companies have facilitated the ability for staff to communicate on their own terms (&lt;a href="https://en.wikipedia.org/wiki/Timnit_Gebru#Exit_from_Google"&gt;though as we've seen with recent stories this isn't always what it's cracked up to be&lt;/a&gt;.) Thankfully, the alternative for me in working in scientific and research oriented domains, has been another manner by which to start thinking about what and how I'd like to communicate with the world!&lt;/p&gt;
&lt;p&gt;This is going to be an ongoing task and somewhat of a learning experience to do virtually. I've been lucky to be relatively good with communicating with people and organisations face to face, but the world has obviously been shifting and taken a proper swing (thanks to the pandemic) towards the importance of virtual engagement (we'll ignore the societal and psychological dangers of technology here. There are many positives to the judicious use of tools for social activity and community engagement, so that's not a discussion I'm getting into here!) Alongside the exciting work I have lined up (which I will write about in subsequent posts), I'm going to make more effort to use the blog to collect together resources for communication, such as my relentless love for music and cooking (well, eating and cooking). This will hopefully get me more active in communicating how fun it is to be a techie, working for science and looking at the future of research and the environment with a hopeful, yet realistic mindset!&lt;/p&gt;
&lt;p&gt;The next few posts I hope to write about interesting projects I'm allocated to work on at BAS, those that I've been working on which still need concluding (but are interesting from my last role) and the efforts I'll put in to make this blog and site a little more interesting to read.&lt;/p&gt;
&lt;p&gt;I hope maybe to give some insight about the perhaps slightly unconventional approach I've taken to get here as well, as I think it could be reassuring for those who, like me, are coming from non-standard, non-academic backgrounds wanting to contribute to science and research. Diversity and acceptance is more important now than at any other time in history, so contributing to the greater narrative can't really do any harm even if it's from a relatively humdrum individual!&lt;/p&gt;
&lt;p&gt;Welcome to the life of a Research Software Engineer...&lt;/p&gt;
</content></entry><entry><title>Science at Halley and Out of Antarctica 2018-2019</title><link href="https://inconsistentrecords.co.uk/blog/science_and_outbound_18_19/" rel="alternate"/><updated>2021-06-13T00:00:00Z</updated><author><name/></author><id>urn:uuid:1253f3c6-1880-3ca6-b37f-3d5e1c185fb3</id><content type="html">&lt;p&gt;So this is the last of the galleries from my time South. Though I did go again for a Halley summer in 2019-2020, I wasn't so active with the camera!&lt;/p&gt;
&lt;p&gt;These were fantastic seasons to be involved with. The shutdown of Halley in 2017 left a big gap in winter science, especially in the long running Dobson dataset, amongst others. The British Antarctic Survey, presented with unprecedented and unforeseeable circumstances, automated the science infrastructure in less than two years giving us now, in 2021, a completely different landscape for Antarctic science into the future.&lt;/p&gt;
&lt;p&gt;It's for this reason I love working for this organisation. It's a genuine bastion of scientific endeavour, one of many, and that gives me hope for the future because it shows that human civilisation has not lost it's desire for a sense of exploration!&lt;/p&gt;
&lt;p&gt;The reason I've pumped these galleries out sharpish is to ensure they're done, that the chapter of my previous roles at BAS (Data Manager and Linux Engineer) reach a nice conclusion in my own mind. Come tomorrow I start a new role, that of Research Software Engineer, which plays to my previous experience as well as gives me hope that I can do something beneficial towards the scientific efforts of planet Earth.&lt;/p&gt;
&lt;p&gt;I hope you enjoy the last of these galleries and into the future I hope that my writings about software, in and for science, among other subjects prove interesting to people, no matter what they do.&lt;/p&gt;
&lt;p&gt;&lt;a href="/blog/working_in_southern_springs_18/"&gt;If you've missed the last post you can find it here&lt;/a&gt;, or if you've been ever so unfortunate to have missed all of them you can &lt;a href="/blog/antarctic-part-i-summer-2016-2017/"&gt;start here!&lt;/a&gt;&lt;/p&gt;
</content></entry><entry><title>Flying for Science at the start of Summer 2018</title><link href="https://inconsistentrecords.co.uk/blog/flying_for_science_18/" rel="alternate"/><updated>2021-06-12T00:00:00Z</updated><author><name/></author><id>urn:uuid:88f91075-487d-3181-a0c2-5ab860c68feb</id><content type="html">&lt;p&gt;With the start of the summer season well under way, I was privileged to get out as co-pilot on a couple of key flights. Firstly, to install the Fossil Bluff backup landing site, which was just a mind-blowingly good day out. Secondly, a trip to Halley as part of the season startup process (a team had already started work to start the season there) to start up some of the science devices we look after.&lt;/p&gt;
&lt;p&gt;This was all towards the end of my time at Rothera, so the next gallery is the last, detailing the transition out of Rothera and the summer at Halley.&lt;/p&gt;
&lt;p&gt;&lt;a href="/blog/working_in_southern_springs_18/"&gt;If you've missed the last post you can find it here&lt;/a&gt;, or if you've been ever so unfortunate to have missed all of them you can &lt;a href="/blog/antarctic-part-i-summer-2016-2017/"&gt;start here!&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="/blog/science_and_outbound_18_19/"&gt;Next post in the series now available here&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
</content></entry><entry><title>Working in Southern Springs 2018</title><link href="https://inconsistentrecords.co.uk/blog/working_in_southern_springs_18/" rel="alternate"/><updated>2021-06-11T00:00:00Z</updated><author><name/></author><id>urn:uuid:e4b01d6e-a570-3425-8943-45f3923c7d42</id><content type="html">&lt;p&gt;As the sun returns, so too does the encroachment of the world into Antarctica, with the first planes arriving and the preparations for the upcoming summer season. That said, some of the fruitiest weather is into spring as the sun and the global weather systems push back slowly into the continent.&lt;/p&gt;
&lt;p&gt;The wonder of the station isn't lost in these times, as you reflect and enjoy life on base as much as you can, but mainly prepare for the switch in pace back to the austral summer season. A couple of us, originally Halley, returned there for the summer, as Halley itself remains uninhabited during the winter.&lt;/p&gt;
&lt;p&gt;Some people do ask which I prefer, and there isn't an answer. I know for sure I love Rothera and I know I wish I could winter at Halley!&lt;/p&gt;
&lt;p&gt;&lt;a href="/blog/winter_tripping_18/"&gt;If you've missed the last post you can find it here&lt;/a&gt;, or if you've been ever so unfortunate to have missed all of them you can &lt;a href="/blog/antarctic-part-i-summer-2016-2017/"&gt;start here!&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="/blog/flying_for_science_18/"&gt;Next post in the series now available here&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
</content></entry><entry><title>Winter Tripping 2018</title><link href="https://inconsistentrecords.co.uk/blog/winter_tripping_18/" rel="alternate"/><updated>2021-06-10T00:00:00Z</updated><author><name/></author><id>urn:uuid:60bad12f-f8c2-31b1-a5ab-6e786ecc9bd2</id><content type="html">&lt;p&gt;I've been a bit offline whilst some life stuff has been happening, but here is the first of four (to be released daily) of the last of my Antarctic galleries.&lt;/p&gt;
&lt;p&gt;This is the record of my second winter trip. With the legendary field guide Dr Snow as my collaborator for the occasion, we decided to maximise recreational endeavours by staying in the hut in the recreation area and make daily trips out. This was opposed to gunning for a much more elaborate trip to the other side of the island.&lt;/p&gt;
&lt;p&gt;I couldn't have been happier with the decision as we got several day trips in, with spectacular weather to boot. There's absolutely no way to describe how grateful I am for the experience.&lt;/p&gt;
&lt;p&gt;&lt;a href="/blog/winter_living_18/"&gt;If you've missed the last post you can find it here&lt;/a&gt;, or if you've been ever so unfortunate to have missed all of them you can &lt;a href="/blog/antarctic-part-i-summer-2016-2017/"&gt;start here!&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="/blog/working_in_southern_springs_18/"&gt;Next post in the series now available here&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
</content></entry><entry><title>Winter Life in Rothera 2018</title><link href="https://inconsistentrecords.co.uk/blog/winter_living_18/" rel="alternate"/><updated>2021-05-14T00:00:00Z</updated><author><name/></author><id>urn:uuid:ece6e1a2-794a-3880-abee-95a10763056f</id><content type="html">&lt;p&gt;The irony of this being called Winter Living as a post is that the first photo is already past the Winter Equinox. However due to the ship only having left in late May and with the lead up to the midwinters week off being so busy with gift making, this album really chronicles the first bedding in of the winter team in isolation.&lt;/p&gt;
&lt;p&gt;&lt;a href="/blog/the_beauty_of_winter_at_rothera_18/"&gt;If you've missed the last post you can find it here&lt;/a&gt;, or if you've been ever so unfortunate to have missed all of them you can &lt;a href="/blog/antarctic-part-i-summer-2016-2017/"&gt;start here!&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="/blog/winter_tripping_18/"&gt;Next post in the series now available here&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
</content></entry><entry><title>The beauty of Rothera in winter 2018</title><link href="https://inconsistentrecords.co.uk/blog/the_beauty_of_winter_at_rothera_18/" rel="alternate"/><updated>2021-05-08T00:00:00Z</updated><author><name/></author><id>urn:uuid:ca51153f-3319-3601-8359-65f24e99071b</id><content type="html">&lt;p&gt;Having finished the winter trip a couple of months before, this gallery shows the lead up to and fun times of midwinter week in June, a celebration akin to Christmas for people in the Antarctic. Full of fun and celebration, everybody makes gifts for one another and enjoys a bit of time to relax, whilst the sun doesn't rise.&lt;/p&gt;
&lt;p&gt;&lt;a href="/blog/its_a_wonderful_autumn_18/"&gt;If you've missed the last post you can find it here&lt;/a&gt;, or if you've been ever so unfortunate to have missed all of them you can &lt;a href="/blog/antarctic-part-i-summer-2016-2017/"&gt;start here!&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="/blog/winter_living_18/"&gt;Next post in the series now available here&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
</content></entry><entry><title>It's a wonderful autumn in Rothera, 2018</title><link href="https://inconsistentrecords.co.uk/blog/its_a_wonderful_autumn_18/" rel="alternate"/><updated>2021-05-03T00:00:00Z</updated><author><name/></author><id>urn:uuid:baa353fd-7f25-365f-95cd-0b5351efa875</id><content type="html">&lt;p&gt;This gallery shows the more recreational side of the autumn at Rothera. The first of my winter trips as well as a shindig we put on in the Rothera garage. As we work hard, it's important to cut loose and have a break. The winter trips also provide the only respite from life on base for many, giving us an opportunity to go out and see the wider environment. It's a massive privilege to have been able to go out, especially with such experienced and lovely people.&lt;/p&gt;
&lt;p&gt;&lt;a href="/blog/nature_and_environment_18/"&gt;If you've missed the last post you can find it here&lt;/a&gt;, or if you've been ever so unfortunate to have missed all of them you can &lt;a href="/blog/antarctic-part-i-summer-2016-2017/"&gt;start here!&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="/blog/the_beauty_of_winter_at_rothera_18/"&gt;Next post in the series now available here&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
</content></entry><entry><title>Nature and Environment at Rothera 2018</title><link href="https://inconsistentrecords.co.uk/blog/nature_and_environment_18/" rel="alternate"/><updated>2021-05-02T00:00:00Z</updated><author><name/></author><id>urn:uuid:96130fa3-349f-3a6f-8a57-27f17ff1fb4e</id><content type="html">&lt;p&gt;Yes, I know, it's amazing that there's a second gallery about the nature and environment of Rothera! This gallery accounts further amazing explorations of the local area whilst doing training and getting to know the team. Truly fantastic.&lt;/p&gt;
&lt;p&gt;I hope you enjoy the pictures as much as I enjoyed the opportunity that afforded my taking them!&lt;/p&gt;
&lt;p&gt;&lt;a href="/blog/intro_to_rothera_18/"&gt;If you've missed the last post you can find it here&lt;/a&gt;, or if you've been ever so unfortunate to have missed all of them you can &lt;a href="/blog/antarctic-part-i-summer-2016-2017/"&gt;start here!&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="/blog/its_a_wonderful_autumn_18/"&gt;Next post in the series now available here&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
</content></entry><entry><title>An introduction to life at Rothera, 2018</title><link href="https://inconsistentrecords.co.uk/blog/intro_to_rothera_18/" rel="alternate"/><updated>2021-05-01T00:00:00Z</updated><author><name/></author><id>urn:uuid:f9a8fbad-46ef-3679-8c3f-0f179f2a8bc6</id><content type="html">&lt;p&gt;This gallery really just records my introduction into the life and the beauty of Rothera, having arrived in 2018 and getting myself settled as a new member of the team. The majority of the winterers spend the summers either side on the base you winter at, but since I and some others were doing our summer (which are generally intense at either base) at Halley, we had to adjust to the new base and team.&lt;/p&gt;
&lt;p&gt;As you can see it wasn't difficult. Being a lover of training to be useful, the operations and training to support them were a joy to behold!&lt;/p&gt;
&lt;p&gt;I kind of realise a little now why I rarely look at these photos, it make me instantly want to go back!&lt;/p&gt;
&lt;p&gt;&lt;a href="/blog/bye_halley_hello_rothera_18/"&gt;If you've missed the last post you can find it here&lt;/a&gt;, or if you've been ever so unfortunate to have missed all of them you can &lt;a href="/blog/antarctic-part-i-summer-2016-2017/"&gt;start here!&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="/blog/nature_and_environment_18/"&gt;Next post in the series now available here&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
</content></entry><entry><title>Bye Halley, Hello Rothera 2018</title><link href="https://inconsistentrecords.co.uk/blog/bye_halley_hello_rothera_18/" rel="alternate"/><updated>2021-04-30T00:00:00Z</updated><author><name/></author><id>urn:uuid:2f6516c8-b5b6-3633-b782-4a065883982a</id><content type="html">&lt;p&gt;This gallery shows the last photos I took at Halley while we prepared for the shutdown of the base for the second time. The winter season I was moving over to Rothera, a base I'd not yet visited but the other of the two wintering bases on the continent (and now the only inhabited BAS base on the continent during Winter.)&lt;/p&gt;
&lt;p&gt;Halley being on an ice shelf and Rothera being on the peninsula of the Antarctic, they're very different bases, but both ultimately set in quite beautiful environments!&lt;/p&gt;
&lt;p&gt;&lt;a href="/blog/some_seasonal_activities_17_18/"&gt;If you've missed the last post you can find it here&lt;/a&gt;, or if you've been ever so unfortunate to have missed all of them you can &lt;a href="/blog/antarctic-part-i-summer-2016-2017/"&gt;start here!&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="/blog/intro_to_rothera_18/"&gt;Next post in the series now available here&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
</content></entry><entry><title>Some Seasonal Activities at Halley - Summer 2017/2018</title><link href="https://inconsistentrecords.co.uk/blog/some_seasonal_activities_17_18/" rel="alternate"/><updated>2021-04-28T00:00:00Z</updated><author><name/></author><id>urn:uuid:d6d7e9cd-23b7-368f-a1a0-587d52652444</id><content type="html">&lt;p&gt;During the summer season 2017-2018 (remember, this is the Southern hemisphere) I was privileged enough to get out for some brief fieldwork. Also we have to ensure our training is kept up to date, which gave some opportunity for on-base shenanigans to simulate breathing apparatus based search and rescue.&lt;/p&gt;
&lt;p&gt;&lt;a href="/blog/halley_17_18_return/"&gt;If you've missed the last post you can find it here&lt;/a&gt;, or if you've been ever so unfortunate to have missed all of them you can &lt;a href="/blog/antarctic-part-i-summer-2016-2017/"&gt;start here!&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="/blog/bye_halley_hello_rothera_18/"&gt;Next post in the series now available here&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
</content></entry><entry><title>Return to Halley: start of the 2017/2018 summer season</title><link href="https://inconsistentrecords.co.uk/blog/halley_17_18_return/" rel="alternate"/><updated>2021-02-13T00:00:00Z</updated><author><name/></author><id>urn:uuid:31263ea4-c6af-34a7-922b-e23ecbae75a1</id><content type="html">&lt;p&gt;Following our being unable to winter Halley in the 2016-2017 season our team had to return to the UK, which was a massive shame. The prospect of spending winter at Halley in 2017 was most exciting. However, we were there to do a job and the right decision was made at the time, and it's afforded me many other opportunities!&lt;/p&gt;
&lt;p&gt;Returning to Halley roughly 9 months later was a great feeling, hopefully illustrated in these photos, but not without its challenges (even to get there!) Returning as both science coordinator and "data manager" was unexpected, as we still had to move the science infrastructure 24km from Halley 6 to Halley 6A. It's amazing what was achieved, and it's definitely a life changing experience to have been involved.&lt;/p&gt;
&lt;p&gt;Thankfully, this is just the first gallery of many more as I stayed in Antarctic over a year!&lt;/p&gt;
&lt;p&gt;&lt;a href="/blog/antarctic-part-i-summer-2016-2017/"&gt;If you missed the first post covering my first season, which is way overloaded with photos, you'll find it here! Don't worry, from now on I've broken it down... ;-)&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="/blog/some_seasonal_activities_17_18/"&gt;Next post in the series is available here&lt;/a&gt;&lt;/p&gt;
</content></entry><entry><title>Blogging from the Britainosphere</title><link href="https://inconsistentrecords.co.uk/blog/blogging-from-the-britainosphere/" rel="alternate"/><updated>2020-12-23T00:00:00Z</updated><author><name/></author><id>urn:uuid:bb08b497-2ddb-3de9-a64d-aeb0aa7a150b</id><content type="html">&lt;p&gt;I've not yet been able to adequately post on here, primarily because I've not gotten comfortable with publishing my internal narrative. The brain is a strange place when confronted with isolation, which I know from previous, non-pandemic related experience. That said, I feel it worth having a bit of a ramble this morning, mainly to try and see whether I can write something that might be useful, interesting or at least publishable!&lt;/p&gt;
&lt;p&gt;The subject of this is mainly just obvservational, it doesn't have a specific purpose!!! :-)&lt;/p&gt;
&lt;h2 id="tl-dr"&gt;TL;DR&lt;/h2&gt;&lt;h3 id="what-s-going-on"&gt;What's going on?&lt;/h3&gt;&lt;p&gt;In the UK we've been greeted by Christmas restrictions, as have many other countries in the world. One wonders whether things have been more complicated than they need to be. There's an odd Churchillian rhetoric from the government whilst the advice is clear, we should probably be locking down again. There's no great answer, and I sympathise enormously with everyone's situation in the UK and around the world, because I don't think there's anyone who isn't having to adapt.&lt;/p&gt;
&lt;p&gt;With that in mind, I look at the news as I sit here with a coffee and realise that my circumstances are very privileged, for which I'm grateful. I have a hot drink, a kettle and somewhere to sleep. I don't get to see family on Christmas, but given what the situation is and what we need to do, I don't really want to. The risk to both them and others to have someone travelling across the country is too great.&lt;/p&gt;
&lt;h3 id="looking-at-the-media"&gt;Looking at the media&lt;/h3&gt;&lt;p&gt;I like watching the news, in many different forms, even though I find much of it inane and well deserving of firm satirical review. For example, when there's important news from around the world why has the UK media fixated on Nicola Sturgeon forgetting her mask for seconds, a HUMAN error to have made (which is stupid, but not exactly a scandal of Berlusconi proportions!) Why are they even listening to the opinions of Tony Blair, someone who I personally feel should still be tried for war crimes: hey, he started a war under false pretences, thus he's a criminal! Also he is not a scientist, he hasn't modelled anything, he doesn't show evidence relating to the efficacy of the vaccine between one or two doses and more to the point he's not taking into account the regulatory restrictions that have been approved based on a second dose!&lt;/p&gt;
&lt;p&gt;Looking at the world, we have disasters unfolding that people should be educated about. I do wish the media would stop finding ways to make inane items of news dramatic, and just concentrate on the dramas that already exist.&lt;/p&gt;
&lt;p&gt;The reason why I say this is, is that people are starving, suffering and being misled and we require honest investigative journalism to highlight the realities of the situations. In the UK for example, today millions are in trouble financially, the borders are closed stranding thousands of lorry drivers and many, many people are going above and beyond to support public services and healthcare.&lt;/p&gt;
&lt;p&gt;There's plenty of things to report on without publicising the opinions of irrelevant has-beens and slight and irrelevant human errors by those (who admittedly should know better) who govern.  Focus on the errors and solutions that matter. Show me how people help and how I too can help...&lt;/p&gt;
&lt;h3 id="staying-positive-in-the-face-of-news"&gt;Staying positive in the face of news&lt;/h3&gt;&lt;p&gt;Watching/reading the new agencies output makes me feel connected. However, you've got to be careful in these times. I select multiple sources for news (I primarily watch or read, in order, &lt;a href="https://www.aljazeera.com/live/"&gt;Al Jazeera&lt;/a&gt;, &lt;a href="https://uk.reuters.com/"&gt;Reuters&lt;/a&gt;, &lt;a href="https://www.channel4.com/now/C4"&gt;Channel 4&lt;/a&gt;,&lt;a href="https://www.bbc.co.uk/iplayer/live/bbcnews"&gt;BBC&lt;/a&gt; and then random bits and bobs on Youtube for US news) and multiple sources for satire (whatever I find). I think that's really important.&lt;/p&gt;
&lt;p&gt;To remain positive this variety helps. The other thing is to ensure I don't watch the news when I'm feeling frustrated or angry about anything at all. Staying positive is important and getting irate or frustrated at the media doesn't make you feel connected, just more isolated. That's not great in these COVID times. That's when I turn to satirical programmes for a laugh.&lt;/p&gt;
&lt;p&gt;I do feel connected when watching the news and manifesting compassion for those I see. Not only can the realisation of how lucky I am to be warm and safe be comforting, but it makes me realise the importance of what little civil responsibility I can exude by remaining at home this Christmas.&lt;/p&gt;
&lt;h2 id="concluding"&gt;Concluding&lt;/h2&gt;&lt;p&gt;I guess I'm kind of just waking up and realising this morning that my activities during these times are the correct one, and taking an interest without getting angry or frustrated is important to avoid becoming overly cynical.&lt;/p&gt;
&lt;p&gt;There, see, it's not so interesting, but at least I've finally blogged about something other than technology. Perhaps I should just stick to that...&lt;/p&gt;
</content></entry><entry><title>Deploying Analytics</title><link href="https://inconsistentrecords.co.uk/blog/deploying-analytics/" rel="alternate"/><updated>2020-11-14T00:00:00Z</updated><author><name/></author><id>urn:uuid:1d8be613-649d-3fe9-9ff3-19f7b5fbe2c1</id><content type="html">&lt;h3 id="overview"&gt;Overview&lt;/h3&gt;&lt;p&gt;I've given in. It would be nice to have some analytics on the site and in looking for alternatives to Google Analytics I came across &lt;a href="https://news.ycombinator.com/item?id=23562664"&gt;this very succint but informative comment on HN&lt;/a&gt;. Looking at &lt;a href="https://matomo.org/matomo-on-premise/"&gt;Matomo&lt;/a&gt; it seemed like a good idea,  I liked the "guarantee" that the self hosted option will be available for free, forever, without data leakage (hope this is true). However, &lt;a href="https://news.ycombinator.com/item?id=23563251"&gt;THIS&lt;/a&gt; post about not burdening users is more my cup of tea, the way I was doing my own basic analysis was via the logs, so as usual why not use the data already present with a OSS solution!&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;I'm a big believer in seperation of concerns too, it's nice not to alter the site for a server side analysis!&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;I'm not interested in any more than looking at whether I get traffic. I'm not really interested in who comes to the user or where it is they arrived from. It'd be interesting for me to see whether, as that commenter states, any of my ramblings have been worth reading!&lt;/p&gt;
&lt;h3 id="deploying-goaccess"&gt;Deploying GoAccess&lt;/h3&gt;&lt;p&gt;So at time of writing this is still a bit incomplete. For some reason the real-time data update isn't working (which I could probably fix easily, but I want to write this article before my long weekend off!) Also, this is only designed as a pattern for internal use only (via &lt;a href="https://www.ssh.com/ssh/tunneling/example"&gt;port forwarding&lt;/a&gt;, which if you don't know about, and you want to be a sysadmin, you definitely should. I'm sorry I don't know how good that tutorial is, but it looked alrigh at first glancet!!!)&lt;/p&gt;
&lt;p&gt;Why don't I fix these up? It's because this is a quick and dirty deployment just to put in a &lt;strong&gt;&lt;em&gt;tiny bit of monitoring based on the available data&lt;/em&gt;&lt;/strong&gt;...&lt;/p&gt;
&lt;h4 id="jimcircadian-role-goaccess-and-ansible-role-publishing"&gt;jimcircadian-role-goaccess and ansible role publishing&lt;/h4&gt;&lt;p&gt;&lt;a href="https://github.com/JimCircadian/ansible-role-goaccess"&gt;I'm planning on getting the docs done this weekend but here is the role I used&lt;/a&gt;. Having searched t'internet (west country slang there) there were only two contenders for roles relating to goaccess, &lt;a href="https://github.com/barm0lekino-ansible-roles/goaccess"&gt;this one byy barm0leykin&lt;/a&gt; and &lt;a href="https://github.com/Anon0511/ansible-goaccess"&gt;this one by Anon511&lt;/a&gt;. I thought about working off these, but I didn't, because by inference they're pinned for a static version of goaccess on Ubuntu, and weren't configurable. It was easier to start from scratch being a CentOS user...&lt;/p&gt;
&lt;p&gt;Though I appreciate the usage of such projects, this is one of the downsides of configuration management systems: when publishing there's no impetus to do anything in a role past the barebones installation of packages. This is not best practice: give people the ability to build on a solid foundation! :-)&lt;/p&gt;
&lt;h4 id="tying-the-role-into-my-ansible-provisioning"&gt;Tying the role into my ansible provisioning&lt;/h4&gt;&lt;p&gt;If you've &lt;a href="https://inconsistentrecords.co.uk/blog/provisioning-this-site/"&gt;read my post on the provisioning setup I use&lt;/a&gt; which is hosted and &lt;a href="https://github.com/JimCircadian/provisioning"&gt;freely available here&lt;/a&gt; then the addition of a new piece of functionality was trivial to achieve. In the &lt;code&gt;web.yml&lt;/code&gt; include for the &lt;code&gt;vps.yml&lt;/code&gt; playbook which gets run, we simply introduce the role:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;- import_role:  name=jimcircadian-goaccess
  tags:         goaccess
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Since I use include_tasks to group the includes together, the tag is also added to &lt;code&gt;vps.yml&lt;/code&gt;. After that, using this provisioning system (which leverages invoke) I can simply run:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;invoke ansible -e staging -t goaccess vps
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;To deploy to my staging vps server (which is actually sat behind me at the moment, quietly, since I added 6TB of storage it got a bit noisier)... There is also an annoying symlink in ansible/roles to the checkout of the role in my filesystem, which is a grimness I really need to fix: &lt;strong&gt;please bear in mind you will need to amend these as I've not submoduled anything at the moment!!!&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;For any experienced ansible dev, this will be super-trivial. However, in order to produce the necessary configuration I wanted for a trial run, I've obviously set some variables for the roles behaviour. This is the pattern I use for all behaviour exhibited as a result of the &lt;em&gt;provisioning&lt;/em&gt; repository: &lt;strong&gt;&lt;em&gt;the data dictates the behaviour the provisioning and role code exhibits... &lt;/em&gt;&lt;/strong&gt; ;-)&lt;/p&gt;
&lt;p&gt;I don't publish the variables controlling my provisioning code, for obvious reasons! However, for this implementation of goaccess I have sanitised and described it here so you can hopefully replicate it. &lt;em&gt;This is not a final solution, just good enough for a trial...&lt;/em&gt;&lt;/p&gt;
&lt;h5 id="xff-log-format"&gt;XFF Log Format&lt;/h5&gt;&lt;p&gt;The first thing that needed changing was my log formats for httpd. I run Apache behind haproxy and previously the proxied traffic could come in using the form &lt;code&gt;n.n.n.n&lt;/code&gt; or &lt;code&gt;n.n.n.n, n.n.n.n&lt;/code&gt; which was no good, as there was no clear identifier for goaccess to delimiter the host from in spite of &lt;a href="https://goaccess.io/man#custom-log"&gt;the &lt;code&gt;~h{," }&lt;/code&gt; field described here&lt;/a&gt;. Therefore the host I believe is far better quoted to enable this extraction, and kudos to the &lt;a href="https://github.com/allinurl/goaccess/issues/615"&gt;this github issue&lt;/a&gt; and &lt;a href="https://github.com/allinurl/goaccess/issues/632"&gt;this one that resulted in changes to support XFF formats&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Therefore the first bit for me was to change:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;      LogFormat "%h %l %u %t \"%r\" %&amp;gt;s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
      LogFormat "%{X-Forwarded-For}i %l %u %t \"%r\" %&amp;gt;s %b \"%{Referer}i\" \"%{User-Agent}i\"" proxy
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;to&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;      LogFormat "\"%h\" %l %u %t \"%r\" %&amp;gt;s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
      LogFormat "\"%{X-Forwarded-For}i\" %l %u %t \"%r\" %&amp;gt;s %b \"%{Referer}i\" \"%{User-Agent}i\"" proxy
&lt;/code&gt;&lt;/pre&gt;
&lt;h5 id="a-virtual-host"&gt;A virtual host&lt;/h5&gt;&lt;p&gt;Since I use &lt;a href="https://github.com/geerlingguy/ansible-role-apache"&gt;geerlingguy-apache&lt;/a&gt; for deploying httpd, the configuration for the virtual host was dead simple. This runs specifically on a non-standard port...&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;  - servername:   "metrics.inconsistentrecords.co.uk"
    documentroot: "/var/www/goaccess/html"
    extra_parameters: |
      DirectoryIndex report.html
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This is thus accessible using a port forward to the non-standard port for access, with /etc/hosts doing the job of naming the destination to localhost on my local machine meaning the host field picks up the correct vhost in apache:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;ssh -L &amp;lt;port&amp;gt;:127.0.0.1:&amp;lt;port&amp;gt; staging-vps
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;I think this is a nice little trick for things you just want to bind to the localhost on the vps, either for a trial or because you'll never need external access...&lt;/p&gt;
&lt;h5 id="goaccess-configuration"&gt;Goaccess configuration&lt;/h5&gt;&lt;p&gt;With the role I've made there's minimal configuration to pick up the logs and produce some kind of data. &lt;strong&gt;The main issue is that I should need daemonize on to continuously collect data&lt;/strong&gt;, but since I only go on there every now and then to look at what's happened over the last few days, I've not yet bothered to get it working properly with the systemd service.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;goaccess_addr:        127.0.0.1
goaccess_daemonize:   false
goaccess_log_file:    "{{ goaccess_apache_logs_dir }}/access_log"
goaccess_log_format:  '~h{", } %^ %e [%d:%t %^] "%^" %s %^ "%U" "%u"'
goaccess_real_time_html:  true
goaccess_output:      "{{ goaccess_html_dir }}/report.html"
&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id="conclusions"&gt;Conclusions&lt;/h3&gt;&lt;p&gt;This is far from a complete project, but a good starting point and very much good for internal system use. &lt;a href="https://goaccess.io/"&gt;Goaccess is a really lush project&lt;/a&gt; offering use of data collected unintrusively, which is exactly what I wanted. My main hope is that people find the role usable for CentOS and extendible for other uses...&lt;/p&gt;
&lt;p&gt;Things to do:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Get daemonize working so that data is continuously updated&lt;/li&gt;
&lt;li&gt;Add non-server specific auth to the role&lt;/li&gt;
&lt;li&gt;Do the docs and show to people (this weekend)&lt;/li&gt;
&lt;li&gt;Maintain as best as I can, in line with newer releases of goaccess and centos&lt;/li&gt;
&lt;li&gt;Incorporate other OS implementations, which should be reasonably easy&lt;/li&gt;
&lt;/ul&gt;
</content></entry><entry><title>Provisioning This Site</title><link href="https://inconsistentrecords.co.uk/blog/provisioning-this-site/" rel="alternate"/><updated>2020-11-13T00:00:00Z</updated><author><name/></author><id>urn:uuid:71c5a88d-af14-3c4d-83e3-57e6c70df495</id><content type="html">&lt;h3 id="introduction"&gt;Introduction&lt;/h3&gt;&lt;p&gt;This really culminates the articles "Making this site" (&lt;a href="https://inconsistentrecords.co.uk/blog/making-this-site"&gt;part 1&lt;/a&gt;, &lt;a href="https://inconsistentrecords.co.uk/blog/making-this-site-ii"&gt;part 2&lt;/a&gt; and &lt;a href="https://inconsistentrecords.co.uk/blog/making-this-site-iii"&gt;part 3&lt;/a&gt;), surrounding the development of this blog. I've been terrible at getting round to doing this for a whole host of reasons, not least due to the onset of lockdown part two!&lt;/p&gt;
&lt;p&gt;&lt;a href="https://docs.ansible.com/ansible/latest/user_guide/index.html"&gt;Ansible&lt;/a&gt; is a tool I've been using for years, almost as long as I've been doing devops style stuff over "plain old" software development. Alas, I've never been as involved as some in the development of it as it's moved from strength to strength. That said, one thing I've never seen a lot of is people exposing their ansible infrastructure or the methodologies behind it. I can, for sure, say that some of the influences for mine have come from implementations I've worked on for massive infrastructures, but I feel &lt;a href="https://github.com/JimCircadian/provisioning"&gt;compelled to open mine up&lt;/a&gt; as an example people can use.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://github.com/JimCircadian/inconsistentrecords"&gt;This too is true for this site&lt;/a&gt;, though the Lektor structure I have put together is very rudimentary from what I've seen around. There are much better examples, but it's a work in progress. Therefore this article focuses on the ansible setup I use to deploy the site, and from here on out it's just going to be an incremental process as the passage of time flows on!&lt;/p&gt;
&lt;h3 id="the-provisioning-repository"&gt;The provisioning repository&lt;/h3&gt;&lt;p&gt;The point of having a provisioning repository was to make it shareable. The repository is intended as a top level container that links together the full orchestration process via use of the &lt;a href="https://www.pyinvoke.org"&gt;Invoke&lt;/a&gt; tool. However, I've never quite finished automating this too well, but it does contain everything nicely.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Please do forgive how loosely everything is put together. If you follow instructions or inspect it, you should find some method to the madness, but this is very much just what was required for recreational usage...&lt;/strong&gt;&lt;/p&gt;
&lt;h4 id="structure"&gt;Structure&lt;/h4&gt;&lt;p&gt;We have the following:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;ansible&lt;/strong&gt;: the ansible code required to build everything with some generic-ish inventory, playbooks and role setups&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;ansible/environments&lt;/strong&gt;: this should be a seperate repository designed to provide the var_files looked up from the playbooks (in my case this is very much a private repo!!!)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;ansible/playbooks&lt;/strong&gt;: you should know what these are if you're interested in ansible, very much the starting point of the documentation!!!&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;ansible/roles&lt;/strong&gt;: this generally contains only my personally developed repositories, plus requirements from galaxy. &lt;/li&gt;
&lt;li&gt;&lt;strong&gt;kickstarts&lt;/strong&gt;: contains CentOS7 kickstarts for various scenarios. &lt;/li&gt;
&lt;li&gt;&lt;strong&gt;tasks&lt;/strong&gt;: defines all the actions Invoke can perform from the CLI&lt;/li&gt;
&lt;li&gt;Some requirements and configuration files...&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The idea is that you always invoke tasks from the this base directory. The only time you need to go anywhere else is to copy kickstarts to an http server (you only do that to begin with) and to edit stuff.&lt;/p&gt;
&lt;p&gt;Each of the following sections goes through these areas of functionality in order...&lt;/p&gt;
&lt;h4 id="kickstarts"&gt;Kickstarts&lt;/h4&gt;&lt;p&gt;There were two originally drafted methods of deploying my online presence.&lt;/p&gt;
&lt;p&gt;The first was originally to set up a &lt;a href="https://github.com/JimCircadian/ansible-role-libvirtd"&gt;libvirt host using an ansible role&lt;/a&gt; with a set of VMs. This used to make sense when I used a physical server in a data center, but it didn't work so well with a VPS since they didn't provide virtualisation extensions when I moved host (lesson learnt, but it's way cheaper.) In the end, I redeveloped the ansible to make both options available, though &lt;strong&gt;you should consider the vps approach the only mature one&lt;/strong&gt;.&lt;/p&gt;
&lt;h4 id="invoke"&gt;Invoke&lt;/h4&gt;&lt;p&gt;This is not very mature, but I use it as an easy proxy for running ansible-playbook. Basically, I can run any playbook with some structure via the following:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;invoke ansible -e &amp;lt;env&amp;gt; [-t &amp;lt;tag(s)&amp;gt;] playbook
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The point here is that it automates vault inclusion and saves me the hassle of doing too much manipulating the commands I want to run. "Is it worth it" I hear you ask? Well, it certainly is if you use this same approach on massive infrastructures, as you can automate injection of parameters via invoke to drive the ansible inventories and var lookups, but this isn't a great example of that...&lt;/p&gt;
&lt;p&gt;I also use invoke for vault editing, there's just some more efficient command line-fu you can get too.&lt;/p&gt;
&lt;p&gt;With the release of Fabric v2 I thought it would be easy to migrate, but I vaguely remember it wasn't as trivial as I hoped. Therefore, I just install invoke on its own. Though I love Fabric, Invoke and Paramiko, the developments and integrations within the ecosystem over the recent years have been a little hard to keep track of!&lt;/p&gt;
&lt;h4 id="ansible"&gt;Ansible&lt;/h4&gt;&lt;p&gt;It really is just ansible-playbook initiating playbooks. However, it's worth noting that recently the focus under RedHat has seen the adoption of collections, which I'm yet to understand, as well as more complexity in the underlying system.&lt;/p&gt;
&lt;p&gt;You'll notice at the end of playbooks I have the following snippet:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;  vars_files:
    - ../environments/all.yml
    - ../environments/data.yml
    - "../environments/{{ env }}/all.yml"
    - "../environments/{{ env }}/data.yml"
    - "../environments/{{ env }}/vault.yml"
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The reason I do this is to &lt;strong&gt;make very explicit the variable hierarchy&lt;/strong&gt; that I'm working to. &lt;code&gt;env&lt;/code&gt; is provided by the invoke command line invocation (eg. staging or production at the moment, I've never bothered getting round to making docker work for my personal development process, as I've no requirement for it just yet, but there is something in the pipeline that would justify the effort...)&lt;/p&gt;
&lt;p&gt;This is probably going to annoy ansible pro's, but I find it very important. A lot of the time with things like cloud-init, there's no reason to have host_vars. I consider it bad practice myself, for example web servers should be set up when scaling out horizontally and the orchestration process should provide host level variables, not the ansible repo.&lt;/p&gt;
&lt;p&gt;I have in the past investigated the variable precedence in ansible and find it irritating to recall, especially as I seem to remember it changing or extending, or otherwise not suiting my group-oriented approach. By using var_files you can easily overcome the need to research this and limit the hierarchy to a set number of levels.&lt;/p&gt;
&lt;p&gt;This is one thing I liked from Puppets Hiera (I don't like Puppet because of the DSL and it's huge amount of changes over the years), which asked you to DEFINE the hierarchy. When a data hierarchy is driving the configuration managements effect on deployment, it needs to be easily understood and obviously specified. Also, in my opinion, working with people of varying amounts of experience with such systems, a limit on the amount of levels is no bad thing.&lt;/p&gt;
&lt;p&gt;Hopefully that explains the design a little. The data drives the code, which largely (there is an exception for an LetsEncrypt ACME deployment I've not yet moved into a role) is functionally defined by roles, included from playbooks...&lt;/p&gt;
&lt;p&gt;Simples! ;-)&lt;/p&gt;
&lt;h4 id="environments"&gt;Environments&lt;/h4&gt;&lt;p&gt;This is a private repository for me, but lives in the location mentioned above: &lt;code&gt;ansible/environments&lt;/code&gt; and is structured to meet the requirements of &lt;code&gt;var_files&lt;/code&gt; in the playbooks. Though I won't reveal the setup I have, it's up to the user of this repo to define what's necessary based on the knowledge of technologies contained therein to define the data in a way that deploys they way they want.&lt;/p&gt;
&lt;p&gt;That would be a very large article, so for the moment I'll just show you the structure of my repo so you know how to start, then you can define based on identifying key variables from the underlying roles.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;./data.yml
./development
./development/all.yml
./host.yml
./production
./production/all.yml
./production/data.yml
./production/proxy.yml
./production/vault.yml
./production/web.yml
./staging
./staging/data.yml
./staging/web.yml
./staging/host.yml
./staging/proxy.yml
./staging/vault.yml
./staging/all.yml
./web.yml
./proxy.yml
./all.yml
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Ignore the development environment in my case, I never did anything with it, as I said before! ;-)&lt;/p&gt;
&lt;h4 id="improvements-i-ve-never-made"&gt;Improvements I've never made&lt;/h4&gt;&lt;p&gt;Here's a load of things I'd like to do, but never did:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;I never created a kickstart hosting invoke task to save on having kickstarts deployed - never needed it yet, but easy to do&lt;/li&gt;
&lt;li&gt;I intend to use docker for playing about with the web, data, proxy structure: but that was pre-VPS&lt;/li&gt;
&lt;li&gt;I've never quite settled on whether include_role, include_tasks, import_role or import_tasks is the way to go. It's largely because I find tags EXTREMELY useful for rerunning tasks, such as renewing certificates, and imports don't work properly. If I'm honest I've just never solidly bothered to read the docs since they added all these in. Though I think things are working, who knows for some of it...&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/JimCircadian/ansible-role-isso"&gt;I really should get round to publishing the ISSO role I wrote, which seems to work well for me!!! I love ISSO, it offers comments without selling people out for leaving them...&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;I still haven't worked out how I feel about cookies, especially in relation to analytics. So at the moment this should be largely cookie free.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;The blog section is the only part really completed so far&lt;/strong&gt;: the projects need deriving from github, the music section doesn't exist yet and I want to offer a better way of accessing my Antarctic galleries without having to trawl through posts.&lt;/li&gt;
&lt;li&gt;I do &lt;strong&gt;a lot&lt;/strong&gt; in my job that I want to blog about, far removed from what this site is so far about. Give it time...&lt;/li&gt;
&lt;li&gt;Probably should have an RSS feed or whatever the vibe is these days! ;-)&lt;/li&gt;
&lt;li&gt;There are loads of things to consider, especially as I have other web applications to bring under here. The staging environment becomes far more complex as a result (it already is). By inference I should split the role requirements based on the ansible environment being deployed....&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The ansible I write is completely idempotent (as far as I've ever realised), so you should be safe to run over and over and over and over again... provided you configure environments properly...&lt;/p&gt;
&lt;h3 id="conclusion"&gt;Conclusion&lt;/h3&gt;&lt;p&gt;Since we're in the middle of lockdown number two, I'm happy I've concluded this piece on building the VPS out with Lektor. I really hope people find things useful, but also welcome comments about what information I've left out.&lt;/p&gt;
&lt;p&gt;There are plenty more articles on the way, but hopefully this has got me caught up now things are working properly!!!&lt;/p&gt;
</content></entry><entry><title>Making This Site (Part III)</title><link href="https://inconsistentrecords.co.uk/blog/making-this-site-iii/" rel="alternate"/><updated>2020-10-18T00:00:00Z</updated><author><name/></author><id>urn:uuid:15d20bbe-9c21-31c1-934f-c079b05ecef5</id><content type="html">&lt;p&gt;It's been a bit busy recently but, now, I return to the blogosphere mainly as an escape from the
insanity of modern life!&lt;/p&gt;
&lt;p&gt;There are a few things that I'm keen to solve, which I must admit I've not found intuitive to get
my head round in Lektor just yet. I've not tried hard, but definitely if it's not immediately
intuitive (or is outstanding from &lt;a href="/blog/making-this-site/"&gt;part 1&lt;/a&gt; or &lt;a href="/blog/making-this-site-ii/"&gt;part 2&lt;/a&gt;) then I fancy having a crack at wrapping
it up in this post. At least from the website point of view.&lt;/p&gt;
&lt;p&gt;The final post will focus on the underlying Ansible provisoning I've put in place which, to be honest,
I'm hoping others might benefit from. Anyway, the remainder of this post will focus on what I consider 
to be the final bits required to make this a usable site!&lt;/p&gt;
&lt;h4 id="querying-the-project-settings-from-lektor-in-templates"&gt;Querying the project settings from Lektor in templates&lt;/h4&gt;&lt;p&gt;Data bags are in fact the manner by which to approach this, but you can query the core site settings
too. This was an outstanding thing I wanted to find the solution too, it's just about RTFM :-)&lt;/p&gt;
&lt;h5 id="site-settings"&gt;Site settings&lt;/h5&gt;&lt;p&gt;This really did baffle me a little bit, though in the end it was quite trivial:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;{{ config.PROJECT.url }}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Will pull the url out of the &lt;code&gt;project&lt;/code&gt; group in the &lt;code&gt;lektorproject&lt;/code&gt; file for the site. This was clearly spelled out on &lt;a href="https://www.getlektor.com/docs/templates/"&gt;this documentation page&lt;/a&gt; so no criticism there! What I don't really understand is the uppercasing of configuration groups, and of course that wasn't documented. One day I'll figure out why that is.&lt;/p&gt;
&lt;h5 id="data-bags-and-considering-dev-alternate-data"&gt;Data bags, and considering "dev" alternate data&lt;/h5&gt;&lt;p&gt;&lt;a href="https://www.getlektor.com/docs/content/databags/"&gt;Data bags&lt;/a&gt; turn out to be the other very useful element of Lektor. I configure the comments settings (see the next section) using these INI based configuration settings. That, coupled with the above finishing of looking up project settings, is awesome.&lt;/p&gt;
&lt;p&gt;One thing that has made me think is that there is no accounting for alternate settings when, for example, you're using &lt;code&gt;lektor serve&lt;/code&gt; to view/edit the site. Therefore when using comments it'd be great to be able to alter the endpoint, which of course is contained in the static HTML as you might expect.&lt;/p&gt;
&lt;p&gt;What I'd like to be able to do is use &lt;code&gt;lektor deploy&lt;/code&gt; to dynamically either:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;index different databags on deployment for the output files from a command line setting&lt;/li&gt;
&lt;li&gt;allow execution of arbitrary build actions with the static file generation from the command line&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This might seem odd, but I noticed with Isso that I really wanted the dev, staging and production instances to point at their respective Isso backends. Unfortunately that does not seem possible because the data is not obviously easy to reference based on the deployment/serving environment.&lt;/p&gt;
&lt;h4 id="comments-with-isso"&gt;Comments with Isso&lt;/h4&gt;&lt;p&gt;This I thought would be much more of a mission than it's ended up being, but actually I really rate &lt;a href="https://posativ.org/isso/"&gt;the Isso project&lt;/a&gt;. It's simple and unintrusive, and it's nice to know that I'm not feeding peoples data to an external party.&lt;/p&gt;
&lt;p&gt;I think there's an entire article able to be devoted to this, an &lt;a href="https://github.com/jimcircadian/ansible-role-isso"&gt;Isso role for ansible has been created&lt;/a&gt; as part of the &lt;a href="https://github.com/jimcircadian/provisioning"&gt;provisioning setup&lt;/a&gt; I use to build out the VPS. So the provisioning article will start me off on that one! :-P&lt;/p&gt;
&lt;p&gt;All of this needs a bit more documentation, so please forgive how messy those links look! I also don't think the mail subsystem for isso is playing nicely with Postfix yet. For the moment, here's the macro, and that's really all you need for the frontend!&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;    &amp;lt;script data-isso="{{ bag('comments.url') }}"
            data-isso-vote-levels="true"
            src="{{ '/static/js/embed.min.js'|url }}"&amp;gt;&amp;lt;/script&amp;gt;
    &amp;lt;section id="isso-thread"&amp;gt;&amp;lt;/section&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;h4 id="image-gallery"&gt;Image Gallery&lt;/h4&gt;&lt;div class="float-right px-3 py-1"&gt;
&lt;a href="/blog/making-this-site-iii/halley_penguin.jpg"&gt;
    &lt;img src="/blog/making-this-site-iii/halley_penguin@300.jpg" 
         alt="Halley Penguin!" class="right" /&gt;
&lt;/a&gt;&lt;/div&gt;&lt;p&gt;This was fun. Again maybe a little article on its own. Basically I wanted to start the process of sharing the amazing Antarctic experiences I am privileged to have, and hopefully continue having, as a result of my work.&lt;/p&gt;
&lt;p&gt;I have a lot of love for the &lt;a href="https://github.com/sachinchoolur/lightslider"&gt;lightSlider&lt;/a&gt; and &lt;a href="https://github.com/sachinchoolur/lightgallery"&gt;lightGallery&lt;/a&gt; projects. :-)&lt;/p&gt;
&lt;p&gt;As with Isso, the galleries are all about taking advantage of Lektors &lt;a href="https://www.getlektor.com/docs/content/attachments/"&gt;captioning (via attachments)&lt;/a&gt; and &lt;a href="https://www.getlektor.com/docs/templates/imageops/"&gt;thumbnailing&lt;/a&gt; capabilities with a nice and simple macro:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;{% macro render_gallery(item, id="gallery", title="Photos") %}
  &amp;lt;ul id="{{ id }}"&amp;gt;
    {% for image in item.attachments.images|list|sort(attribute='path') %}
    &amp;lt;li data-thumb="{{ image.thumbnail(300) }}"
        data-src="{{ image|url }}"
        data-sub-html="{{ image.caption }}"&amp;gt;
        &amp;lt;img src="{{ image.thumbnail(300) }}" alt="{{ image.caption }}"&amp;gt;
    &amp;lt;/li&amp;gt;
    {% endfor %}
  &amp;lt;/ul&amp;gt;
  &amp;lt;script language="javascript"&amp;gt;
    $(document).ready(function() {
      $('#gallery').lightSlider({
          mode: "slide",
          thumbItem: 6,
          currentPagerPosition:'left',
          controls: true,
          pager: true,
          loop: true,
          auto: true,
          speed: 800,
          enableTouch: false,
          enableDrag: false,
          onSliderLoad: function(el) {
            el.lightGallery({
              selector: '#{{ id }} .lslide'
            });
          }
      });
    });
  &amp;lt;/script&amp;gt;
{% endmacro %}
&lt;/code&gt;&lt;/pre&gt;
&lt;h4 id="issue-with-relative-links"&gt;Issue with Relative Links&lt;/h4&gt;&lt;p&gt;So this does not work:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;[Next post in this series...](/blog/making-this-site-ii)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;But this does:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;[part 1][1]
...
[1]: /blog/making-this-site/
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The former is the case for the original post in this series (which at the moment has the FQ URI associated), the latter is used in this article. In the first case I use &lt;code&gt;.../blog/blog/...&lt;/code&gt; which is a bit odd. Removing &lt;code&gt;blog&lt;/code&gt; doesn't work, I end up with no &lt;code&gt;blog&lt;/code&gt;s at all!&lt;/p&gt;
&lt;p&gt;I need to look into this more, but if you suffer the same problem, use the second option... :-)&lt;/p&gt;
&lt;h4 id="issue-with-cache-not-responding-to-macro-changes"&gt;Issue with cache not responding to macro changes&lt;/h4&gt;&lt;p&gt;Another thing I've noticed is that updating HTML macro files in the &lt;a href="https://github.com/JimCircadian/inconsistentrecords/tree/master/templates/macros"&gt;&lt;code&gt;templates/macros&lt;/code&gt;&lt;/a&gt; directory does not trigger caching. Another thing to have a look into on my part, but do let me know if you've noticed something similar!&lt;/p&gt;
&lt;h4 id="conclusion"&gt;Conclusion&lt;/h4&gt;&lt;p&gt;Most of the items in this article were the items I thought needed sorting out prior to offering the site out for people to view. Obviously it's indexable by search engines and wotnot, but I might push this out somewhere as I hope some of my experiences and write ups will help someone at some point! I didn't want to do that until people could look at some pictures and/or comment on things.&lt;/p&gt;
&lt;p&gt;You may ask about the backend. Well, the provisioning is going to be a future write up. Analytics are not my bag. I don't want people to visit the site and worry about whether it's another vector for their browser information to be ingested.&lt;/p&gt;
&lt;p&gt;I'm certain there's nothing on here or any analysis being done that compromises peoples privacy. I intend it to stay that way.&lt;/p&gt;
&lt;p&gt;Ultimately, &lt;a href="https://www.getlektor.com/"&gt;Lektor has more than proven it's worth&lt;/a&gt;. The fact it's so easy to write this with a beer is the only reason I ever do. Hopefully, this is the start of much more in spite of lifes distractions. I'm looking forward to writing about the &lt;a href="https://github.com/jimcircadian/provisioning"&gt;provisioning system&lt;/a&gt; I use, one of many I've developed/worked on.&lt;/p&gt;
&lt;p&gt;I'm also keen to write a bit more about what I do during 95% of the time, when I'm not drinking beer (which is when I work on this site.) :-P&lt;/p&gt;
</content></entry><entry><title>Antarctic Part I, Summer 2016-2017</title><link href="https://inconsistentrecords.co.uk/blog/antarctic-part-i-summer-2016-2017/" rel="alternate"/><updated>2020-10-07T00:00:00Z</updated><author><name/></author><id>urn:uuid:2c237652-1c0a-3f15-a64b-92f577a74df5</id><content type="html">&lt;p&gt;These are some photos of my first season in Antarctica. This is partly a desire to develop the site more, but motivated mainly by a desire to share the wonderful experience I had.&lt;/p&gt;
&lt;p&gt;Hopefully these posts will serve inspiration or interest to budding technologists. It's important highlight that the possibilities are endless in life if we step out of our comfort zone once in a while. It's also important to realise that your skills, no matter what they are, are required all over the world in some form: I've never found any other experience that allows you to work with such a broad variety of people!!!!&lt;/p&gt;
&lt;p&gt;This was my first summer, which was meant to be the start of a 16 month winter at &lt;a href="https://www.bas.ac.uk/polar-operations/sites-and-facilities/facility/halley/"&gt;Halley Research Station&lt;/a&gt;. Due to the glaciological situation of the site on which it resides, we weren't able to winter in the end, but it still started a path that I continue to walk to this day, for which I'm very grateful!&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Use the dots or controls to scroll, at the moment if you click on an image it'll open the full gallery...&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;I realise this gallery is rather large, subsequent ones will be split up! ;-) &lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="/blog/halley_17_18_return/"&gt;Next post in the series available here!&lt;/a&gt;&lt;/p&gt;
</content></entry><entry><title>Life in the age of Lockdown</title><link href="https://inconsistentrecords.co.uk/blog/life-in-the-age-of-lockdown/" rel="alternate"/><updated>2020-09-17T00:00:00Z</updated><author><name/></author><id>urn:uuid:38335d53-b1c2-3d94-b334-cdd20cc118d4</id><content type="html">&lt;p&gt;I've no interest in writing about the positives or negatives of life lived under lockdown. Being in a pandemic, the world mostly knows what's happening as a result of recent events. I only hope that it afflicts fewer as time progresses, the world has enough to deal with.&lt;/p&gt;
&lt;p&gt;What I do want to write a little about, since this is the first time I've really thought about publicising my thought stream (not that I, for a single moment, think anyone will actually read or take notice of it), is the effect it's had on me as an individual. There are numerous people like me around the world, and with the adoption of technology ever more, who find themselves interacting socially, learning and operating generally over the medium of the internet.&lt;/p&gt;
&lt;p&gt;I, apparently and with much chagrin, am defined as a Millenial. It's kind of bollocks really, since neither the internet (in the form of the World Wide Web) nor social media existed when I grew up. Compuserve did. Telex was around. Those in the UK know about Ceefax and Teletext. When I started using computers, at the hearty age of five years old, nobody told me that I could use a modem. This was pre-1990s. So I became a programmer.&lt;/p&gt;
&lt;p&gt;Compare this with my niece, who is also defined as a Millenial, who to be fair did not adopt programming as a hobby prior to turning to double digits in temporal cellular growth, and you'll see why I find such terminology dumb. As fuck. Somebody &lt;strong&gt;born&lt;/strong&gt; in the 1990s had to deal with what could only be described as a genuine onslaught of information thrust uncompromisingly into their face, with zero guidance about how to apply filters to that onslaught. Those born in the 90s had to grow up, for the first time in human history, with too much information to process and too many devices available with which to access it. The adults who were meant to teach them were clueless and incapable of providing guidance.&lt;/p&gt;
&lt;p&gt;This brings me back to the point of the pandemic and my reaction to it. The very fact I'm writing this blog, have learned to learn using Coursera, use messaging applications and make video calls is intrinsically linked to the fact that I won't realisitically (sensibly) see people for socially for a considerable amount of time. Whether you agree with isolation for the protection of others is irrelevant, we've all adapted, young and old, to use technology for the most positive purposes we can derive in such strange social situations.&lt;/p&gt;
&lt;p&gt;To that end, there is a silver lining: the value of technology is being realised. Don't get me wrong, there is still doubt about our information rights, the morality of profiteering and the powerlessness of individual agency in the current political landscape; but there is also some realisation from people across all demographics that these evil little money-grabbing, attention-seeking devices the children of the 1990s became addicted to might genuinely serve some beneficial purpose!&lt;/p&gt;
&lt;p&gt;For a child of the 80s, cast with the sullied reputation of post-Berners-Lee ignorance to the value of the Internet (based on age rather than knowledge), who took Fox Mulders "Trust No One" far too literally, this fills me with hope. People are hopefully beginning to realise that technology AND science holds some answers to the challeges of recent and future generations.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.youtube.com/watch?v=bcln2AL_L1M"&gt;This rambling post was written with a beer, listening to this quite beautiful concert by Olafur Arnaulds...&lt;/a&gt;&lt;/p&gt;
</content></entry><entry><title>Making This Site (Part II)</title><link href="https://inconsistentrecords.co.uk/blog/making-this-site-ii/" rel="alternate"/><updated>2020-09-01T00:00:00Z</updated><author><name/></author><id>urn:uuid:363dd687-f257-350b-b5e0-3478ad7dcca7</id><content type="html">&lt;p&gt;So, on I continue with making this site a bit more satisfying. It's one of those
nice to &lt;a href="http://radio.garden/listen/dr-dick-s-dub-shack/mqdXmYNU"&gt;get some dub on&lt;/a&gt; and just settle into something easy to achieve
with minimal brainpower.&lt;/p&gt;
&lt;h4 id="lektor-plugins"&gt;Lektor Plugins&lt;/h4&gt;&lt;h5 id="lektor-tags"&gt;lektor-tags&lt;/h5&gt;&lt;p&gt;So the first thing I've done is to try and use the &lt;a href="http://radio.garden/listen/dr-dick-s-dub-shack/mqdXmYNU"&gt;lektor-tags plugin&lt;/a&gt;,
which seems to work pretty well: it really is about just following the README!&lt;/p&gt;
&lt;p&gt;A couple of things I've noticed during this is that lektor using server locally
does not tell you which plugins actually load or don't load. Even with &lt;code&gt;-vvvv&lt;/code&gt;
there is no output to tell you that the plugin has loaded or not and
because I made a small spelling mistake this became a bit annoying as there was
no logging to tell me the plugin in the project didn't load.&lt;/p&gt;
&lt;h5 id="lektor-rst"&gt;lektor-rst&lt;/h5&gt;&lt;p&gt;So there's no README &lt;a href="https://github.com/fschulze/lektor-rst"&gt;for the lektor-rst project&lt;/a&gt; which is a shame and once
again there is no conclusive information about the success of the load, though
it is clear from the virtualenv installation that it installed into the build
directory:&lt;/p&gt;
&lt;pre&gt;&lt;code class="lang-bash"&gt;$ lektor plugin add lektor-rst
$ lektor server -vvvv
Updating packages in ~/.cache/lektor/packages/3fcdd194880fbf2be796613aee89c221 for project
Collecting lektor-rst==0.2.0
...
Successfully installed ...lektor-rst-0.2.0...
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;I'm guessing that I can now select &lt;code&gt;rst&lt;/code&gt; as a document type for my models which
is nice. It's a slight shame that it's mutually exclusive (since all I want to
do is have the option), so I wonder if I can implement a checkbox mechanism to
experiment with this only in certain posts, or just suck it up and have two
fields.&lt;/p&gt;
&lt;h5 id="lektor-markdown-header-anchors"&gt;lektor-markdown-header-anchors&lt;/h5&gt;&lt;p&gt;So this was interesting, in &lt;a href="https://github.com/lektor/lektor-markdown-header-anchors"&gt;adding this project&lt;/a&gt; we avoid the virtualenv issue
with plugins (see below). The full process for this is a lot more lightweight
due to utilising &lt;a href="https://packaging.python.org/guides/distributing-packages-using-setuptools/#universal-wheels"&gt;this &lt;code&gt;bdist_wheel --universal&lt;/code&gt; feature&lt;/a&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code class="lang-bash"&gt;$ lektor plugin add lektor-markdown-header-anchors
Package lektor-markdown-header-anchors (0.3.1) was added to the project
$ lektor server -vvvv
Updating packages in ~/.cache/lektor/packages/3fcdd194880fbf2be796613aee89c221 for project
Collecting lektor-markdown-header-anchors==0.3.1
  Downloading lektor_markdown_header_anchors-0.3.1-py2.py3-none-any.whl (4.1 kB)
Installing collected packages: lektor-markdown-header-anchors
Successfully installed lektor-markdown-header-anchors-0.3.1
WARNING: Target directory ~/.cache/lektor/packages/3fcdd194880fbf2be796613aee89c221/__pycache__ already exists. Specify --upgrade to force replacement.
 * Project path: ~/.../inconsistentrecords.lektorproject
 * Output path: ~/.cache/lektor/builds/0fdf35440669b574822909b8822e9aa1
 * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
&lt;/code&gt;&lt;/pre&gt;
&lt;h4 id="lektor-and-virtualenv"&gt;Lektor and virtualenv&lt;/h4&gt;&lt;p&gt;I'm very intrigued by the &lt;a href="https://www.getlektor.com/docs/installation/#pip"&gt;reluctance that Lektor has to optimise for
virtualenv installation&lt;/a&gt;. Since I generally use virtualenvs or conda for
everything I do on my system, having a system managing itself via these
mechanisms without letting me manually go about the installation is a negative
experience for me.&lt;/p&gt;
&lt;p&gt;Another problem with this is after virtualenv installation of packages the
overhead in the lektor/packages directory is pretty high.&lt;/p&gt;
&lt;pre&gt;&lt;code class="lang-bash"&gt;[ ... ~/.cache/lektor/packages ]$ du -hs *
84M 3fcdd194880fbf2be796613aee89c221
74M d00edb3d4a285124a2ee822f57b33698
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;For two relatively simple packages it is quite a high price to pay to use 150MB
for the convenience of having dependency management taken out of my hands. What
I will do is elaborate on whether it's possible to circumvent this easily,
though for the moment I took the bootstrapped environment for the sake of
simplicity. I can see the logic for usability, but am interested in the ease of
development/contributing, as I am keen to switch this mechanism off so I can
easily install these plugins locally and &lt;em&gt;contribute back&lt;/em&gt;.&lt;/p&gt;
&lt;h4 id="conclusion"&gt;Conclusion&lt;/h4&gt;&lt;p&gt;I still really like Lektor, as with any new project it's great to see the
innovations made and get the bit between my teeth to delve into something new.
This was always about having some really quick blogging software as well, and
I can totally see this fulfils that goal as I haven't scratched the surface of
Lektor and it's plugin ecosystem yet. That said, I'm skipping past doing this
a little to get things published and done!!!&lt;/p&gt;
&lt;p&gt;At least there's a record of what I need to do now. ;-)&lt;/p&gt;
&lt;p&gt;PS. Also noticed some weirdness in trying to link between blogposts using
relative URLs in the markdown body. Best investigate that too in case I'm being
dense!&lt;/p&gt;
</content></entry><entry><title>Making This Site</title><link href="https://inconsistentrecords.co.uk/blog/making-this-site/" rel="alternate"/><updated>2020-08-29T00:00:00Z</updated><author><name/></author><id>urn:uuid:de47118f-d442-3a75-88da-859cb73fa76e</id><content type="html">&lt;p&gt;I had a good play with raw bootstrap based static sites, using Jinja. I played
around with Jekyll in the first iteration of the site which I liked: I thought
might be nice to learn Ruby off the back of that. But in reality these "nice"
ideas always end up being more work than they're worth. To be honest
I really like using Python, I don't need any more barriers to putting something.
I don't like blogging, or self promotion or anything like that, so barriers are
easily constructed if you're not careful.&lt;/p&gt;
&lt;p&gt;As a result, I'm using &lt;a href="https://www.getlektor.com/"&gt;Lektor&lt;/a&gt;, it's a nice, Python
based file based CMS which is totally extensible. That's easy, flexible and
functional enough not to produce any barriers.&lt;/p&gt;
&lt;p&gt;I've munged in a bit of bootstrap and jquery around the sides, as I don't do
aesthetics. I have looked at NPM and the like for resource management but I am
not doing anything fancy enough to bother at present (this may well change!)&lt;/p&gt;
&lt;p&gt;Again, too many barriers. I'm keeping it simple. Thankfully we live in a world
where one doesn't have to pour hours into determining if something will work
across browsers. In fact having to do that 10, 20, 25 years ago is probably
what put me off web development and design.&lt;/p&gt;
&lt;p&gt;It was mind-numbingly boring in the old days. As it is I might never end up
updating the site, but we'll see... In this age of lockdown, putting yourself
out there on the internet is not a bad thing, especially considering I was very
much a tech-for-engineering, face-to-face socialising type of animal before all
this.&lt;/p&gt;
&lt;p&gt;I salute the &lt;a href="https://www.w3.org/TR/"&gt;W3C&lt;/a&gt; and framework builders around the
world, you've finally made putting together a website easy enough that the most
stubborn backend/infrastructure programmer will put one together.&lt;/p&gt;
&lt;p&gt;Anyway, this is a working base, but I'll make some new parts to this post to
cover what I do with lektor to:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Tag blog posts&lt;/li&gt;
&lt;li&gt;Integrate with my &lt;a href="https://github.com/JimCircadian"&gt;github&lt;/a&gt; so I can blog
about stuff I genuinely like doing&lt;/li&gt;
&lt;li&gt;Really get under the hood of Lektor to add richer content and automation (e.g.
&lt;a href="https://www.getlektor.com/docs/content/flow/"&gt;Flows&lt;/a&gt;,
&lt;a href="https://www.getlektor.com/docs/content/databags/"&gt;Data Bags&lt;/a&gt; and
&lt;a href="https://www.getlektor.com/docs/templates/imageops/"&gt;Image Operations&lt;/a&gt; are all
interesting and deserve some blogging about I think)&lt;/li&gt;
&lt;li&gt;Blog about some of the things I actually do day to day&lt;/li&gt;
&lt;li&gt;Make the styling a bit less gross!&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;!-- TODO: Cannot use relative links here!?! --&gt;
&lt;a href="https://inconsistentrecords.co.uk/blog/making-this-site-ii"&gt;Next post in this series...&lt;/a&gt;&lt;/p&gt;
</content></entry><entry><title>Welcome</title><link href="https://inconsistentrecords.co.uk/blog/welcome/" rel="alternate"/><updated>2020-08-28T00:00:00Z</updated><author><name/></author><id>urn:uuid:ca99bbcb-5e0d-3583-ac51-6bdeff3bfc5b</id><content type="html">&lt;p&gt;Welcome to Jims Blog. As I’m sure is so often the way for a life-long techie,
I’ve been intending on doing this for years and just never really gotten round
to it.&lt;/p&gt;
&lt;p&gt;I never really thought about what I might like to write!&lt;/p&gt;
&lt;p&gt;My experience is rooted in software development and for years and years I worked
in organisations that didn't allow or need me to create a public presence. As it
is I am still employed in that manner, but thanks to lockdown and a desire to
communicate anything that might be useful to someone, somewhere, I found the
time to get round and do this.&lt;/p&gt;
&lt;p&gt;I hope you enjoy this blog and find something useful along the way.&lt;/p&gt;
&lt;p&gt;I hope I keep adding to it once it’s online! :-)&lt;/p&gt;
&lt;p&gt;As of publishing this and the making this site post, I'm really just getting
something in place to build on, so excuse the rough edges...&lt;/p&gt;
</content></entry></feed>