My 2019 Crapathon Project

So yesterday was the fifth Nottingham Hackspace Crapathon, where you make useless things that nobody wanted.

I’ve participated in a couple, mostly making nonsense that just amused me and no one else. Last year, it was the Elmer McCurdy Action Playset – a cardboard box with a neon orange mummified person in it. Just like Laff in the Dark!

This year, the theme was vaguely “Artificial Intelligence”, and I thought I’d bring in a fake robot. Then, for some reason, I started focusing on breakfast, and that lead to Breakfast Bot 5000.

Breakfast Bot 5000

Breakfast Bot 5000 provides you with all the breakfast choices you could ever want. Except that it’s still learning, so there might be substitutions.

It learned about breakfasts by watching British television. Unfortunately, that was really just watching one Monty Python sketch and calling it done.

So I knew I wanted to make something that looked like it had a fancy menu, with plenty of options, and then would just lead to a single can of Spam.

What’s an <a> tag?

The first part was the menu. Where I discovered that I’ve forgotten like 90% of all the HTML I have ever written.

Honestly, I was looking up how to remove bullet points from an unordered list. That’s how much I’ve forgotten.

But after a lot of work, a lot of refreshing, and refusing to do anything fancier than the ancient and arcane art of <meta http-equiv="refresh" /> (which, by the way, I had look up too, because holy smokes I am so out of it), I managed to make a Breakfast Bot 5000 menu system that was appropriately bright, bold, and easy.

(Yes, it looks like an amateur website project. Hello, amateur web designer here.)

Time to build

So after I built the interface, I then went to the Hackspace on the day for the Crapathon.

I knew I wanted a cabinet, because they had to open up the cabinet to get the delicious breakfast. I then wanted a frame for the screen, which was my iPad Mini. And, thankfully, there was plenty of cardboard.

I started planting the cardboard black. I kept on thinking that it’d be a black cabinet, but then I discovered that, because the Hackspace is the Hackspace, there were no paintbrushes to be had, because they had all been left to dry out all covered in gunk.

To the bin with you, bad paintbrushes!

A collection of dried out and useless paintbrushes now in the bin

So I took the only paintbrush that was still usable, a very small one, and tried to paint the box.

Attempting to paint a cardboard box black.

Hot glue works better

I got so far, and then realised it’d be immensely easier (and much more futuristic) to cover it in foil.

The all powerful glue gun

There was a spare mylar emergency blanket, so with a hot glue gun and a bit of folding, I had my Breakfast Bot 5000 chassis.

A cardboard box wrapped in a mylar emergency blanket

(By the way? Mylar really transfers heat. Which means that when you smooth down that bit you just hot glued? Yeah, that’s hot.)

I cut out the door for the cabinet, used part of a gold-coloured plastic egg for the handle, and made another piece of cardboard the frame for the iPad.

The door and handle for Breakfast Bot 5000

I then laser-cut the name on some scrap MDF that was in the laser scrap pile. I was going to use a tiny piece of neon green acrylic, but it was too little to really show it off.

The iPad frame and signage for Breakfast Bot 5000

Chuck the rest of the mylar in the box to make it shine and add in the can of Spam.

A small can of Spam inside a box covered with silver Mylar

And it’s fried gold.

Full shot of Breakfast Bot 5000
Close-up of the Breakfast Bot 5000

Final (Mylar) wrap-up

It’s not an amazing hack. It definitely couldn’t win compared to some of the other great stuff that was there. (The child mannequin turned into a newsreader was the best thing in the world.) And it wasn’t my favourite thing to do, because it didn’t involve my favourite dead guy.

But I had my fun and that’s all that matters.

Plus, afterwards? I had a fantastic hat.

Me wearing the remnants of the Mylar blanket tied up as a very elaborate hat.

I’m speaking on Monday, August 12th

I briefly mentioned it in my post about my WordCamp Belfast talk, but since it’s all definite and being advertised and there are pictures and everything, I thought I should post about it here.

So.

Monday, August 12th.

At Antenna.

Starting at 6:30pm.

Caching and Documenting.

My talk is titled “You Are Not A Precious Snowflake: Document Your Work”. I’ll get into why you should document, what makes it good for you (and other people), and easy ways to get started. Plus ancient complaints, lost gold mines, and, for once, no Elmer McCurdy.

(It was touch and go on that last bit. He might pop up.)

Samathy Barratt is talking about algorithms and caching, so if you’re hoping for good techie talk, she’s definitely going to bring the code. I’m going to bring the soft skills, and I think it’ll be a really nice combination.

I’ll put the slides and my notes up here afterwards, so you don’t have to worry about missing it if you’re not in Nottingham, but if you are, it’d be nice to see you.

Using GraphViz for fun and nerdity

A lot of people I know program. They have pet languages, they develop things, they do all good things. (Well, except for those who program in JavaScript. What. No. That’s for making pop-ups. Stop doing things.)

I don’t really know any languages, but there is one language that I love playing with.

GraphViz.

GraphViz is pretty much exactly what it says – it’s a language that produces visual graphs from code.

Which means that instead of oh-so-carefully trying to make a circle and draw little lines to and from, you can just type, and then the system makes all the circles and lines and colours for you.

And it’s pretty easy to work with too. Arrows = arrows, words = boxes, colours are in word format, and you can get some lovely things done just by typing a few things:

digraph G {
     node [ shape = oval, style = filled, fillcolor = pink];
          One;
     node [ shape= square, style = filled, fillcolor = lightblue];
          Two;
     node [ shape = diamond, style = filled, fillcolor = grey];
          Three;
     One -> Two -> Three;
}
A example of a GraphViz graph - going "One" (a pink oval) -> "Two" (a light blue square) -> "Three" (A grey diamond)

There’s even a web version, so you can make quick and easy graphs in like seconds.

I like using it for flowcharts. This is one I did for people donating stuff to my local local hackspace:

A flowchart focusing on donating things to the local Hackspace.  "Can I donate this?" goes to "Is there a consumables box for it?" and "Do not donate". "Is there a consumables box for it?" goes to "I suppose" and "Not really". "I suppose" goes to "Put it away then". "Not really" goes to "Do not donate".

But this isn’t all I do with GraphViz, even though flowcharts are so much fun and easy and beautiful and I love them.

I also obsessively play The Sims 4. Obsessively. Like, whenever I’m bored and boring and just want something to do, I play Sims.

I also like doing legacies, where I stick with a family and just keep going with them through births, marriages, deaths, pets, new jobs, whatever. I start with a single woman, she ends up with a townie, it goes on and on and on and then the next thing I know…

I’m on my 14th generation with my current family.

My current Sim, Lyric Marshall. She is a young woman with light brown skin and red hair with a blonde ombre effect, and is wearing a hippie shirt, ripped up jeans, a bright turquoise necklace, and a pair of trainers.

This is Lyric Marshall. She’s a young adult, working as a sous chef, living in a nice house in Strangeville. Pretty laid back, likes to cook, has a toddler, a cat, and a small dog.

This is Cherish Marshall, the toddler daughter of Lyric Marshall. She has bright red hair in two ponytails, light green skin, and is wearing a blue tank top, grey jeans, and brightly coloured trainers.

This is Cherish Marshall. She’s the toddler and she’s the 14th generation of Marshalls. She’s green, because her father’s an alien.

So how does my obsessive playing of the Sims match up with my love of GraphViz?

Well, like this:

Ovals are Marshalls and octagons are townies. The colours are unnatural skin colours. As you can see, there are blue aliens and green aliens and then it gets paler the further down you get.

Yeah, okay, there’s a bit of crossing the streams, but that’s also because I like to know whether or not alien genetics change depending on whether or not you’re a blue alien or a green alien. Also, apparently, once you hit second cousins or first cousins once removed, you can totally have kids together. Before that, you’re too related.

This is just the direct descendants too, tracing up from Cherish all the way to Clare.

This is how the family actually is:

The full Marshall family lineage, from Clare to Cherish, all 14 generations and multiple families.
Click to see the full version.

Big families! A whole family of vampires (who are diamonds)! So many lines! Lines lines lines!

But the code is so easy to work with!

digraph Marshalls {
     splines = compound;
     edge [arrowhead=none,arrowtail=none, color=grey];
     node [ shape = oval, color = pink];
          Clare Star Cataleya Makenna Kyla Cleo Aurora Rebecca;
     node [ shape = oval, color = lightskyblue];
          Lucas Mason Demarcus Yusuf Harrison Orson;
     node [ shape = octagon, color = lightskyblue];
          Johnny Solomon Argus Jimmie Joaquin;
     node [ shape = octagon, fillcolor = azure4, style = filled, color = lightskyblue];
          Patrick;
     node [ shape = oval, fillcolor = azure3, style=filled, color=pink];
          Poppy;
     node [ color = grey, shape = circle, label = "", height = 0.01, width = 0.01];
          cj1 ss2 sa2 cp3 cj3 cjo3;
     {rank = same; Johnny -> cj1 -> Clare};
          cj1 -> Star;
          cj1 -> Lucas;
          cj1 -> Mason;
     {rank = same; Solomon -> ss2 -> Star -> sa2 -> Argus};
          ss2 -> Makenna;
          ss2 -> Cataleya;
          sa2 -> Kyla;
     Kyla -> Demarcus;
     Makenna -> Cleo;
     Cleo -> Yusuf;
     {rank = same; Cataleya -> cp3 -> Patrick; Cataleya -> cj3 -> Jimmie; Cataleya -> cjo3 -> Joaquin};
          cj3 -> Harrison; 
          cp3 -> Poppy;
          cjo3 -> Aurora;
          cjo3 -> Orson;
     Aurora -> Rebecca;
} 

So this is what I love doing in my evenings. Me, the Sims, and GraphViz.