Tailwind, Hugo and dx13

For the longest time – well, since before 2010, so over thirteen years, which is pretty much forever in internet time – this site has used extremely old-school CSS. Almost everything in the stylesheet would’ve likely been recognisable to anyone visiting the CSS Zen Garden back in in 2003. I think float was about the most modern directive. The primary CSS file, centred.css, has been adapted a couple of times to tweak the design, notably to create a mobile version of the site in 2011, but the core has remained static for a long time.

Read More…

Link: The micromanager’s dilemma

I found The micromanager’s dilemma a fascinating and valuable read. Matthew Ström applies game theory to explain micromanagement as, potentially, a vital strategy for one’s leadership toolbox.

In this essay, I’ll show you that micromanagement isn’t just a nagging habit; it’s an inevitability. That’s the paradox: micromanagement is both bad management practice and a key component of the best management strategies.

The analysis is by no means exhaustive, and I found some of the inferences less than watertight. It’s certainly not a mathematical proof of an optimal management style! But the article is a great example of applying a mental model from one’s library to a problem and using it to great effect. While talking more specifically about management, I feel there are still lessons that I can draw for my own, more technical, leadership.

Read More…

Generative AI and programming

In my last post, I wondered about when we would be able to have a conversation with AI that we could trust. While that’s an interesting question, I skipped over the more immediately arresting questions of what we can do today and in the near future with generative AI (which is the genre of AI of which ChatGPT is a part).

In this vein, I found How Might Generative AI Change Programming? a fascinating read. It discusses what aspects of programming feel amenable to this type of AI and how we might come to view it as a just another tool over the next decade or so. I found many insights.

I noted in my post that generative AIs appear not to be trustworthy. In the programing context, this means that if you ask them to write code, you have the problem of figuring out whether the code is correct. Worse, it’ll often look plausible but still contain major bugs. The article goes beyond this to present a convincing case for why generating more than trivial production code is currently fanciful. It then looks further into where we might find real utility. The thought that if we look beyond the obvious idea of the AI writing production code we can find deep utility engaged me, and I agree that generative AI feels well suited to fuzz and property testing.

Navel gazing a moment here, it is the piece I wish I’d written: taking a subject I know well and applying a novel, interesting and timely angle to it. But then I realised that the author has been involved deeply in programming languages for many years, and perhaps it’s not so awful that I wasn’t able to write anything in the same ballpark. I just have to keep writing, and thinking, and this practice may enable more original thoughts in the long term.

Read More…

Evaluating conversations with ChatGPT

ChatGPT offers a glimpse of the future, where a program can hold up its side of a conversation with competence. Before thinking about how we might feel about this, let’s look at an example:

Mike: What was the cause of the global financial crisis in 2008?

ChatGPT: The global financial crisis in 2008 was caused by a combination of factors, including the buildup of excessive levels of debt, risky financial practices by banks and other financial institutions, and a lack of adequate regulation. The crisis was triggered by a sharp increase in subprime mortgage defaults in the United States, which led to the collapse of several major financial institutions and the onset of a severe global recession.

Mike: What major financial institutions collapsed?

ChatGPT: During the global financial crisis in 2008, several major financial institutions collapsed, including Lehman Brothers, Bear Stearns, and Merrill Lynch. These failures, along with the problems faced by other large financial institutions, contributed to the severity of the crisis and the onset of the global recession that followed.

What can we see from this snippet?

Read More…

My weird network, or WiFi to Ethernet to Wifi again: will it work?

I recently spent too much time learning about the technologies that undergird my home network.

It came about because we recently built a study in the back garden for me to use when I’m working from home. One question that remained open throughout the build was what the network setup would be. I had four critical devices: my laptop, my phone and a pair of Sonos speakers.

The basic connection to the outdoor study is an ethernet cable running from the house. Due to the location of my router, however, that cable is hooked into my home network via the LAN port on a Google Wifi mesh access point. I wanted to have a further wifi access point in the study, connected to the ethernet cable, for my laptop, phone and speakers. I didn’t really have much confidence, however, in using a two wifi network hop between my router (and, hence, ISP) and my laptop. It just felt weird. Too many network gizmos to work.

Buuuuut, I really, really, really wanted it to work. What better excuse to deep dive on layer two networks to figure out how wild this network really is?! So I put on my sleuthing hat and decided to figure out whether this unholy pile of network was going to work, from the network frames upwards 🕵️

What follows is the picture I put together for myself. While I’ve tried to make it accurate, there’s a bunch of (somewhat educated!) guesswork going on where I tried to apply theory to my actual devices and network.

Read More…