Advent of Code 2021

Yesterday I discovered Advent of Code following an article in The Register. While I’m disappointed to discover I’ve missed it for the past few years, I’m quite excited to be taking part this year. This morning I woke up with excitement over what puzzle today’s advent calendar would have, which is the first time I’ve felt like that over an advent calendar in quite a few years now!

The first two days of puzzles have been fairly straight-forward, solvable in about 10-20 lines of code, and I’ve done all of them so far with about 10 minutes of effort. Given the puzzles are released at 00:00 EST (which is 05:00 for me!), I don’t have a hope of getting onto the leaderboards. As such, I’m playing to “save Christmas” and get all fifty stars.

If you’ve got an interest in programming and problem-solving, it’s something I’d highly recommend you give a go! My language of choice here is C# running on .NET 5, but you can use whatever language you want.

If you want, you can see my solutions at https://github.com/stwalkerster/advent-of-code. At the moment, I’m not publishing my solutions for that day’s puzzle until later in the day, but I make no guarantee to keep that up as the month progresses.

On a vaguely related note, I love the CSS glow effect they’ve got on some of the text using a simple blurred text shadow…

… I was thinking of doing a reskin of this site at some point, and I was thinking of a dark theme. Having recently done a ton of work on Helpmebot’s web frontend to turn it into something modern and actually useful (rather than the half-implemented MediaWiki extension it was), I’ve got my eyes set on doing some web design projects again.

Zipline: saving lives with delivery drones

On Saturday, I was made aware of a video by Real Engineering – a YouTube channel I already followed – which goes into the details of how a company is running an autonomous drone-based delivery service for critical medical supplies including blood in remote regions of Rwanda.

I’ve been aware of companies like Amazon and Domino’s wanting to get into the drone delivery service using quad-copter type drones, but this stunned me as an absolutely incredible use of technology for humanitarian purposes.

Continue reading

Hard disk failure

About a week or two ago, I discovered that one of the five 2TB hard disks in my home network server had… vanished. The system was recognising it as an approximately 3G disk, with no health status, and generally no idea what it was doing.

Needless to say, the storage pool wasn’t the happiest of things, and generally the entire system was almost unresponsive.

When I finally got into the OS, I discovered that one disk (disk 5; the failed one) was in a state of  ¯\_(ツ)_/¯, one disk was failing, and another disk was showing warnings

Naturally, the first disk I replaced was disk 5, as I couldn’t get anything out of that at all – connecting it to my PC to try and figure out what was going on caused sufficient disruption to my SATA controller that all other disks vanished from the UEFI configuration tool, but would still start a boot into Windows, which just hung completely. Removal of this disk put the system back to how it was immediately.

This led me to think it was a controller failure – and as my last disk to fail was also a Seagate disk of the same model, I considered doing a quick controller-swap to see if it was indeed a controller failure, but alas no. The “new” controller from the other disk exhibited the exact same symptoms.

Time to open it up!

Dark marks within the seal on the top cover

On first opening the drive, I noticed some dark marks on the lid of the drive, indicating that the internals of the drive were not the clean environment I would expect from a drive.

I also noticed some larger debris on the top platter of the disk – not as visible in the photo due to the presence of dust too – it took me a minute to realise I wanted photos of this and to find my camera. Notably, in contrast to everything else, the debris here is actually the larger bits.

Debris on the platter

One of the first things I noticed was that the little filter pad to the side of the disk was filthy with the same black marks as the lid of the drive, quickly followed by me noticing a read head was missing from the arm – more noticeable if the arm is swung onto the platters

More debris towards the back of the platter – note the missing read head

Obvious missing read head is obvious

It was also at this point that I noticed the surfaces inside the disk were horribly filthy as well, and I realised that this is a fine likely metallic powder.

Detail of obviously missing read head

Head parking – also covered in the powder

I began to disassemble the stack of platters, in the hope of finding this missing read head, and possibly more insight into what actually happened.

Removal of the retaining bracket at the top of the platter showed how filthy even the surface of the platter is

It didn’t take long to find out what happened – the underside of the top platter revealed this pretty patterns of dust, visible on the outer half of the platter still in the case, along with a very obvious wide scratch mark across the surface around the middle.

The next platter down revealed even more dust, along with a massive gouge near the centre of the disk – some serious force must have been involved in this. The entire surface of these platters is also covered in concentric rings of dust which just wipe clean

Needless to say, I think I have a fairly good idea why the drive failed, but there is still one mystery I’ve not solved – where did that read head go to?

For comparison, here’s a photo of another Seagate drive of the same model that also failed (nowhere near as spectacularly) about six months prior – the top read head is clearly visible

Another curious point is that upon replacement of this disk, the other disk that was reported as bad is suddenly only showing caution signs:

It’s possible that the disruption to the SATA bus was causing this to completely go haywire I suppose, that and the three disks with problems were all in the same cage – so it’s possible that one failing disk has caused issues with the others.

The cage to the rear, behind the memory modules, is the one which caused issues. The disk in question was at the bottom of this cage.

Underbelly Cowgate in Minecraft

Myself and another Underbelly tech have been working on recreating Underbelly Cowgate in Minecraft.

It’s still a work in progress, but here’s some screenshots:

00-outside

View from “Cowgate”

01-lane

View down the lane

02-outside-box

Entrance to the bottom garage

03-bottom-garage

Reception area, including flyer shelves

04-boxoffice

Box office counter, with “Demon Shelf”

05-reception

Reception desk

06-behind-reception

Behind Reception, showing radio chargers, and doorway to behind the walls.

07-demonshelf

Behind the walls near the web team. To the left, you can see the Demon Shelf, so called because it’s a pain to get past behind the wall when wiring everything up.

08-web-ticket-office

Office of the web ticket office

09-outside-cafe

Entrance to Cow Cafe

10-cafe

Cow Cafe

11-press-office

Door to the Press Office

12-inside-press-office

Inside the Press Office

13-laughing-stock

The Laughing Stock, at Cow Cafe

14-laughing-stock-kitchen

Kitchen area of The Laughing Stock

15-top-garage

Entrance to Top Garage

16-tech-store

(WIP) Inside the Tech Store

17-bin-store

Bin Store

18-flyer-store

(WIP) Flyer Store and Street Team Office

19-block-stairs

The bottom of Block Stairs

20-block-stairs

Middle floor of Block Stairs

21-block-stairs

Top of Block Stairs

22-dancer-door

Belly Dancer, from the door

23-dancer-op

Belly Dancer, from the tech position

24-dancer-stage

Belly Dancer, from the stage

25-dancer-storage

Belly Dancer storage area

26-delhi-corridor

(WIP) Dehli Belly corridor

27-delhi-corridor

(WIP) Dehli Belly Corridor

28-delhi-door

Delhi Belly, from the door

29-delhi-op

Delhi Belly, from the tech position

30-delhi-backstage

Backstage in Dehli Belly

31-delhi-stage

Dehli Belly from the stage

32-delhi-dressing

Delhi Belly dressing room and storage area

33-delhi-iron-hvac

Delhi Belly and Iron Belly V/AC area

34-jellybelly-blockstairs

Outside Jelly Belly, near Block Stairs

35-staffroom-corridor

Staff room corridor

36-staffroom

Staff Room, and The Wall Of Shame

37-dm-office

Duty Manager’s office

38-jelly-dressing

Jelly Belly Dressing room and storage area

39-iron-door

Iron Belly, from the door

40-iron-op

Iron Belly, from the tech position

41-iron-stage

Iron Belly, from the stage

42-iron-storage

Iron Belly storage area

43-iron2

Iron 2

44-iron2-siphon

Iron 2 near Iron AC area, hole for water siphon into Belly Button

45-white-door

White Belly, from door

46-white-op

White Belly, from tech position

47-white-stage

White Belly, from stage

48-white-backstage

Backstage in White Belly

49-button-door

Belly Button, from door

50-button-seating

Belly Button from seating area

51-button-stage

Belly Button, from stage

52-button-op

Belly Button, from op position

53-button-behindseating

Behind seating area in Belly Button

54-button-underseating

Underneath the seating in Belly Button

55-button-mind-yer-heid

Mind Yer Heid! (Belly Button tech position)

56-button-corridor

Button Corridor

57-button-corridor

Button Corridor

58-button-storage

Button Storage area

59-button-dressing

Button dressing room

60-button-stairs

Big/Button stairs

61-big-stairs

Big/Button stairs

62-big-progress

Big Belly

63-top-of-lane

Top of the Lane Doorway

64-beer-belly

Beer Belly Bar

We’ve still got the other half of the building (Beer Belly / Jelly Belly / Belly Laugh / Wet Corridor / Wet Alcoves / Spiral Stairs / Victoria St Box Office / Lady Cave / Top Office) to do. Stay tuned for updates! I’ll try and get some real photos for comparison too!

Linode NextGen

Linode have been amazing as usual, and recently increased network capacity (bandwidth increased 1000%), and doubled CPU capacity (from 4-core to 8-core), and in the last few days they’ve doubled the RAM in each plan! This is all part of their free* upgrades that happen every now and again.

(* They’ve also adjusted the pricing plans to be easier and more friendly. Thus, their (for example) $19.95 plan has been increased to $20. Technically, it’s not free, but for 5 cents?)

The migrations to the new systems take a while – but I’m planning to do it in the middle of the night. Downtime could be a couple of hours. The bonus is with this reboot, the capacity of the entire cluster will be doubled. :o

In other news, I’m planning on retiring pikachu, it’s caused me nothing but trouble with it’s disk arrays, and the lag from Roubaix compared to the Linodes in London has been less than desirable. Plus, with the new capacity that the London cluster has, there’s no real advantage to having a dedicated machine out in Roubaix (apart from the BOINC work that it’s been sat doing cos it could).

If you’re interested in trying out Linode, they do a free trial! Just please mention this referral code: c88742a23087c8758c2824221626a8c1226c1736