Skip to content

Instantly share code, notes, and snippets.

View sleepyfox's full-sized avatar
:shipit:

@sleepyfox sleepyfox

:shipit:
  • TypeError
  • The Midlands
View GitHub Profile
@sleepyfox
sleepyfox / 2024-04-09-everything-old-is-new-again.md
Last active April 20, 2024 06:12
Everything old is new again
author: @sleepyfox
title: Everything old is new again
date: 9-Apr-2024

Everything old is new again

'Plus ça change, plus c'est la même chose' - (French) The more things change, the more they stay the same.

@sleepyfox
sleepyfox / code_of_cthulhu.md
Last active February 6, 2024 11:42
The Code of Cthulhu

The Code of Cthulhu

I did not invent this, I have extensively searched for the original article but failed to find it, so I'll do my best to reproduce it here.

Imagine a large Enterprise software development company. A bright young programmer joins this company, and in their first few weeks sets about the non-trivial task of understanding the gigantic bloated code base for the company's flagship product.

Finally, the young programmer ascends the dizzy spire of the company's office building and storms into the CTO's gloomy office with a stack of fanfold computer printout, pausing as they become aware of the music playing: a cacophany of crazed flutes and pan-pipes emerging from an audiophile system with a turntable that looks like a medieval orrery and a speaker that bears more than a passing resemblance to the monstrous shell of some long-extinct cephalopod. The music stops, the silence replacing it redolent of some awful finality.

Still full of righteous indignation the programmer angrily declares:

@sleepyfox
sleepyfox / 2019-07-25-users-hate-change.md
Last active December 10, 2023 18:20
'Users hate change'

'Users hate change'

This week NN Group released a video by Jakob Nielsen in which he attempts to help designers deal with the problem of customers being resistant to their new site/product redesign. The argument goes thusly:

  1. Humans naturally resist change
  2. Your change is for the better
  3. Customers should just get used to it and stop complaining

There's slightly more to it than that, he caveats his argument with requiring you to have of course followed their best practices on product design, and allows for a period of customers being able to elect to continue to use the old site, although he says this is obviously only a temporary solution as you don't want to support both.

@sleepyfox
sleepyfox / 2021-10-22-simplification.md
Last active October 25, 2023 04:02
Simplicity, and abstractions
author: @sleepyfox
title: Simplification
date: 22 October 2021
preamble: No, that is not the simplest it could be...

Simplification

There's this meme, this pervasive idea nowadays that complex things have to be complex, and only simple things can be simple. That somehow if you're trying to make a complex thing simple, that it is because you're just not 'man enough' to deal with the complexity, or that you're deluding yourself. I reject these notions.

@sleepyfox
sleepyfox / foxs-laws-of-software-development.md
Last active August 2, 2023 16:50
Fox's Laws of Software Development
author: @sleepyfox
title: Fox's laws of software development
date: 27 October 2021
preamble: A not entirely serious treatise on the immutable fundamental laws of software development activities

Fox's laws of software development

A not entirely serious treatise

@sleepyfox
sleepyfox / net-negative-producers.md
Last active August 2, 2023 16:48
A blog post from @sleepyfox in 2012 on developer productivity and net-negative producers

Net-negative producers

author: @sleepyfox date: 13-May-2012

How on earth could a set-top-box app software development team (basically a simple Linux UI app to parse a programme and stream some video?) have 20 people on it, when surely 4 or 5 should be more than enough?' a friend asked.

In answer I told him the story of when I started on an assignment for Hutchinson 3G in their new posh glass building in Maidenhead, working in the new 3G products division in early 2002 producing what were essentially a bunch of web apps. I asked my boss how many people were working on the project: "350" was his reply. My jaw dropped to the floor. "Don't worry," he said with a smile on his face "all the real work is being done by nine guys working in a back room of the pub over the road. This new glass building is just a decoy to confuse Vodafone and Orange!"

How on earth could it possibly take 350 people (DBAs, Product Managers, Product Managers, Architects, BAs, QAs, Developers) to produce a bunch of simple web apps? I s

@sleepyfox
sleepyfox / 2023-05-22-zdd.md
Last active June 6, 2023 07:52
ZDD - Zero Dependency Development
author: @sleepyfox
title: ZDD - Zero Dependency Development
date: 22-May-2023

ZDD - Zero Dependency Development

Heaviest objects in the universe

CI/CD and why they are not the same thing

Last Thursday CircleCI had a security breach, and now many companies are struggling, because not only do they have to rotate their credentials for one SaaS provider, but now they have to rotate ALL THE THINGS in their production and non-prod environments because EVERY SECRET EVERYWHERE for EVERY ENVIRONMENT just got leaked. Because they were all in CircleCI. Because you used CircleCI to deploy at the end of your CI step. Deploy to test. Deploy to staging. Deploy to production. And now all your base are belong to 1337 h4xx0r5.

This has caused a lot of people in a lot of companies a lot of pain.

Here are N simple strategies to enable you to avoid this pain:

  1. Don't use SaaS CI/CD
  2. Use SaaS CI but not to deploy
@sleepyfox
sleepyfox / 2023-01-09-alexandrian-architecture.md
Created January 10, 2023 15:21
Alexandrian Architecture
author: @sleepyfox
title: Alexandrian Architecture
date: 09-Jan-2023

Alexandrian Architecture

My New Year's resolution: I am not going to talk about Micro-services.

Upset

Typically when someone is upset with me, they will express it in a way that is, shall we say, sub-optimal. In an ideal world they would come to me, and calmly explain why they are upset with me, perhaps using the Non-Violent Communication template[1] like so:

  • When X happens
  • I feel Y
  • Because I need A
  • Would you be willing to B?

But this rarely happens. Instead the person who is upset may shout, cry, storm out, or a variety of other emotional responses.