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 / 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

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.

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.

@sleepyfox
sleepyfox / 2022-06-22-the-problem-with-AI-coders.md
Created January 9, 2023 13:12
The problem with AI coders
author: @sleepyfox
title: The problem with AI coders
date: 22-Jun-2022

The problem with AI coders

The problem with 'solutions' like GitHub's Copilot, and similar tech, is that it frames the problem as a problem of search. The programmer is searching for some code that does a thing (produce a HTML table with alternating coloured background rows of green and red), and that they just need to find that thing. Machine Learning has had success in this area, just look at Google's page-rank 'algorithm'.

@sleepyfox
sleepyfox / 2013-10-11-aikido-and-the-philosophy-of-software-development.md
Last active May 2, 2022 18:43
Aikido and the Philosophy of Software Development
author: @sleepyfox
title: Aikido and the philosophy of software development
date: 11-Oct-2013

Aikido and the Philosophy of Software Development

I ran an impromptu session at the Software Craftsmanship and Testing conference in the UK a couple of weeks ago, that turned out to be rather well received - though I suspect that this was more due to the novelty of the session rather than anything else. The spark that led to this session was a tweet by James Coplien that both he and Jeff Sutherland practice Aikido, re-tweeted by Bob Marshall.

It led me to think that if one of the two founders of Scrum were positively influenced by Aikido, perhaps Aikido has had other influences within the IT world that we are perhaps unaware of, and perhaps it would be worth talking with people about.

author: @sleepyfox
title: Demon ex machina
date: 03-Jul-2008

Demon ex Machina

I'm gonna get ya!

Why are speed cameras like software metrics? Speed cameras are (or so we are told in the UK) a 'Road Safety initiative' that is designed to reduce the number of fatalities and serious injuries in road traffic accidents. A software metric is measurement of a software system's properties that is used (or so we are told) to increase quality and decrease cost and risk from software development projects.

@sleepyfox
sleepyfox / 2012-03-10-invisible-deficit.md
Last active May 2, 2022 12:30
The Invisible Deficit
author: @sleepyfox
title: The invisible deficit
date: 10-Mar-2012

The invisible Deficit

I read with interest a tweet from Kent Beck the other day as it seemed to ring a bell: "The complexity created by a programmer is in inverse proportion to their ability to handle complexity". He followed up the tweet with a note on his Facebook page explaining that he'd been doing a code review of a developer's code and noticed that the guy didn't recognise that the solution he'd adopted was needlessly complex compared to the problem, but the developer simply couldn't see it. Kent finished with "The programmer least likely to be able to handle the extra complexity is exactly the one most likely to create it. Seems a little unfair. I'm interested in how to break this cycle, and whether it is even possible to break this cycle." (emphasis mine).

A link in the comments led me to the Dunning-Kruger effect, and a light bulb came on as I recognised a friend's comment from last week that none of the rest of the d

@sleepyfox
sleepyfox / proto.js
Created April 14, 2022 12:57
Prototypal inheritance
// Prototypal inheritance example
// Checked on Node v16.14.2
assert = require('assert')
// A cat goes 'meow'
class Cat {
goes() {
return 'meow'
}
}