Category: Alaric

Ugarit archive mode manifest maker (by )

When I last wrote about Ugarit progress, I had developed archive mode to the point where one could import a list of files with metadata from a "manifest file", and then search for files based on the metadata from the manifest and stream out chosen files. I gave an example of using this to play MP3s matching a search pattern:

[alaric@ahusai ugarit]$ for i in `ugarit search test.conf music '(= ($ artist) "UNKLE")' keys`;
do ugarit archive-stream test.conf music $i | mpg123 -;
done

Well, that was all based on hand-written manifest files, which are no fun to produce (our music collection is large). As such, I've been working on a "manifest maker" that takes a list of files and directories and makes a manifest file from them, recursing down through directories to list all the files. And for each, it automatically extracts metadata into the manifest file, which can then be hand-edited if required, and then used to import from.

The idea is that the manifest maker will have support for a number of file types it knows how to extract additional metadata from, and the first one I've implemented is ID3 tag extraction from MP3s. I've implemented the ID3 V2.2 and ID3 V2.3 specs, as those were the two that I found present in the subset of my MP3 collection I'm testing against!

For example, here's the output it produced for one of my MP3s:

(object "./test-data/THE HOLLIES - He Ain't Heavy, He's My Brother.mp3"
  (filename = "THE HOLLIES - He Ain't Heavy, He's My Brother.mp3")
  (mime-type = "audio/mpeg")

   ;; Unknown ID3 tag "COMM"="engiTunNORM\x00 00000402 00000000 00001B59 00000000 00004E65 00000000 000040EC 00000000 00015FD5 00000000"
  (keyword = "Pop")
  (name = "He Ain't Heavy, He's My Brother")
  (creator = "THE HOLLIES")
  (creation-date = "2002")
  #;(featuring = "")
  (collection-name = "Legends CD2")
  #;(collection-volume = "")
  #;(collection-volumes = "")
  (volume-index = 16)
  (volume-size = 18)

  (mtime = 1428948696.0)
  (ctime = 1428948696.0)
  (size = 4063360))

It prints out unknown ID3 tags as comments, in case a human can glean some useful information from them to put into the metadata, and it suggests the names of metadata tags I might be able to provide by hand that it hasn't found (in this case, a tag for other people featured in the music, and two for indicating that this album is part of a set. As it happens, it is, as the "CD2" in the name suggests, but it wasn't indicated in the ID3 so I'll have to hand-edit it; likewise, the date from the MP3 of 2002 is clearly for the production of the album, not that classic track... ID3 metadata is often a bit shabby!). Also included are file mtime, ctime, and size in bytes.

I hope to add Ogg Vorbis metadata next; I'd like to add EXIF support to parse information out of the JPEGs in our vast family photo library, but it looks much harder, and I'm not sure how useful it will actually be!

Experiments in Food: Soylent and Joylent (by )

I was interested to hear about Soylent - the meal replacement, not Soylent Green - when it came onto the scene. I lead a busy life, which includes cooking for two kids and a wife (one of the children has an intolerance to cow milk, and my wife has an intolerance to gluten as well as milder issues with cow milk and soya). I often find myself in the situation of being quite hungry myself, at the start of needing to cook a complicated meal from fresh ingredients. Also, I don't like eating breakfast until an hour after getting up, so I tend to eat in the office on weekdays; due to a shortage of filling breakfast options that will last long enough for me to finish them off on two days a week, I often end up skipping breakfast at weekends or just grazing on raw root veg from the fridge, then feeling woozy come lunch time (about when I need to start organising lunch for the family). So the idea of a powder I can store for a long period and then turn into a balanced meal replacement with near-zero effort, and cheaply at that, certainly has some appeal.

Sadly, Soylent decided they can't ship to the UK (and muttered something about refunding my contribution to their crowdfunding effort on that basis, but not until November 2015 - and I funded them in July 2013!), so I gave up on the idea of giving it a go.

But thankfully, they have published their recipe online, which has prompted a Dutch company to set up shop making it and shipping it from the EU! They're called Joylent, and as the name suggests, are taking a rather light-hearted approach to producing basically the same stuff. So I gleefully ordered some, and have started experimenting with it.

I don't plan on living on the stuff, although some have - I just want an easy, filling, meal replacement for when circumstances require it.

So far, I've had two "meals" of it, and the results have already been somewhat interesting.

The first one was a weekend breakfast replacement. I started with the vanilla flavour; it was tasty and 600ml of the stuff went down easily, leaving me feeling satiated. I found I felt full, and with plenty of energy, but I was craving crispy and strong-tasting food; I think my mind didn't quite believe that a soupy liquid with a gentle vanilla flavour could have actually fed me. Although I was craving salty fries and pickles, I didn't actually want to eat anything; I just wanted those flavours, and would probably have been happy to just nibble a tiny amount or something.

Come 1:30pm, four and a half hours later, I felt a sudden pang of hunger, but it passed quickly. I still didn't feel light-heated and ill as I often do when I can't easily eat. In this particular case, I was on a long drive, so we didn't get to stop for lunch until 3pm. I was feeling... "peckish" by then; I fancied the idea of eating, but wasn't suffering from hunger, which was unusual for such a late lunch. I ate a paneer tikka wrap and the leftovers of Sarah's nachos, so plenty of exciting textures and strong tastes, which was exactly what I wanted! I didn't have to eat very much to feel full and satiated, and had a light (and nutritionally meagre) dinner of chips and ketchup that evening (due to lack of alternatives, being a vegetarian in a place that focussed on the eating of sausages), and went to bed not feeling malnourished at all.

The next morning, I had a whole grapefruit for breakfast, but was feeling pretty hungry come lunchtime at 1pm. Sadly, the place we ate was focussed on the eating of roasted animals, so all I had for lunch was a small plate of roasted potatoes and steamed vegetables, which was tasty but not very nutritionally diverse (I'd eaten little protein since lunch the day before). So before setting off on the drive home, somewhere in the middle of the afternoon, I had a second vanilla Joylent. It was pleasing that I'd been able to chuck my nice Joylent mixing bottle and the open pack in my bag for the trip; I bought a bottle of water in a shop to mix it up, but if I'd brought my own bottle of water I'd have been ready to throw together a "meal" wherever and whenever I wanted.

I was once again satiated, although a little less so; I think I put less powder in (judging a third of a pack of powder is tricky, although I think I'll soon be able to work out how big a third of a pack looks in the mixing bottle and get it right in future), as it came out a lot more watery this time, despite not being full quite to the 600ml mark. Once again, I was quickly craving crunchy strong tastes, so at about 8pm, I ate some salt and vinegar crisps at a motorway service station. This quickly led to me feeling I'd eaten too much salt; I felt a bit dehydrated and had a nasty salty taste lingering in my mouth. I suspect the morale of that story is that I've become accustomed to eating too much salt; I need to train my mind to realise that I don't need to have tasted savoury salty flavours to have eaten a meal!

As I lie in bed typing this at 11:15pm, I'm feeling a bit hungry, but not uncomfortably so (I didn't have dinner or anything else to eat).

The Joylent flavours are banana, chocolate, strawberry and vanilla; I think it would probably be a good idea for me to train myself out of craving salty tastes in a meal, but it's quite interesting that I've not found anything else I've eaten lately as filling as the Joylent, nor able to keep me "going" as long. I could see myself living happily on the stuff, but I would really miss food tastes and textures. However, it's made me more aware of how nutritionally limited a lot of foods are. I like the thought of using something like this as "fuel" and then having small quantities of spicy crunchy foods for the taste!

Also, it would be interesting to try and make a curry flavoured Joylent. Either get some without any flavourings added, or start with a mild-tasting one and blend in a nice mix of spices. I may have to perform some experiments in that area!

Time to get fit (by )

Sarah's been putting a lot of work into losing weight lately, but apart from the fitness stuff I do in Krav Maga classes most weeks, I've not really paid much attention to my own health. However, my work have a fancy new medical insurance benefit thing, which has two features of relevance: One is that they pay for us to be poked and prodded and weighed and so on to establish our basic health parameters, and the other is that they encourage us to do exercise and eat well through a complex system of points-based incentives.

This has a two-pronged effect: It's told me that my body mass index (23.4) is in the healthy range (18.5-25), but a bit close to the top end; and my blood pressure (124/75) should be under (120/80). Thankfully, both of these can be improved by doing more cardiovascular exercise; and with the complex system of points-based incentives, this is GAMIFIED. Combined that with discounts on interesting fitness tracker gadgets, and feeling that nagging awkward feeling of watching Sarah work really hard on her weight loss while I slumped on the sofa with my laptop, and it started to become inevitable that I was going to start doing more exercise.

So, I got a discounted Polar RC3 GPS. This is a watch with a GPS and some smarts in it, which communicates via radio with a heart rate monitor worn on a strap. By logging heart rate data it can measure my exertion in an activity, and if that activity involves moving around (running or cycling, for instance) it can combine that with speed and gradient information from the GPS to work out what effort I was expending. This data is uploaded via a USB cable to a Web service that Polar run (alas, I have to depend on them keeping the thing up and bothering to securely store all my data, although there does seem to be an option to download it in a documented file format; but if the site goes down, I'll be having to reverse-engineer their USB protocol to continue to get data from my watch).

The fun is in the analysis, however. Their software has a model of human metabolism that works out how much strain I'm putting on my system, how many calories I've used, how many calories of fat I've burnt, and an efficiency factor they call "running index". It'll gather data across exercise sessions and work out trends and all sorts of fun stuff, including a "training load" graph that tracks an exponentially decaying cumulative average of the strain I undergo; horizontal bands on the chart indicate cumulative load levels where I should be taking things easy for a few days.

It also has an ability to suggest training schedules, which can be uploaded into the watch, and will then guide me - giving me a target heart rate to aim for for a given time period, then moving up to a higher pace, than down again, for instance.

So I've set myself the target of doing at least one - and ideally three or four - runs a week, where I spend at least half an hour above seventy percent of my estimated maximum heart rate. Here's one I did earlier. You can even see what I did on a little map, including my cool-down period at the end!

The data from this thing feeds into the health insurance provider, too, which then drives their points-based incentive system. This has an unexpected benefit; although I'm quite enamored of earning points on principle, some of the benefits are things that Sarah and the kids enjoy (free cinema tickets once a week, Starbucks or iTunes credit, etc). That makes an incentive for them to send me out on runs; given how busy our life is, that's surprisingly useful!

Other than meeting my weight and blood pressure goals, and generally increasing the number of armed assailants I can disable at Krav before I start to get sweaty, I'd quite like to do a marathon or something one day.

Of Chickens and Candles and Holes (by )

This weekend has been absurdly busy, for a start I have finally been putting the attic back together after the whole roof fixing of last year! Then there were chickens! It was time to fetch our new rescue chooks - these ones are slightly less rescued than the previous lot as they came from a free range farm and so are a lot perkier than the first lot were initially. They also look better with already red combs and wattles.

Rescue chickens galore!

It was getting dark by the time we got back with them so photos are not brilliant I'm afraid. Felix who is one of the original four, is not impressed as she is in the rabbit run whilst they settle in.

Chickens exploring their new home

She was always quiet pecky so we shall have to see how introductions go!

We had planned on getting four hens but when we got there they had spares, so we ended up with 6. Their names are:

1) Squwashy - apparently this is something minecraft related that Jeany has picked.

2) Rose - named by Mary, she didn't give a reason

3) Chris - a chicken scheme programmer as picked by Alaric

4) Pete - another chicken scheme programmer

5) Tardis - this is my chicken 🙂

6) Firefly - this is my dad's chicken and apparently the most intellegent of all the dinosaurs.

They laid an egg on the way home and have since laid 3 more - we had fried eggs for dinner. The run looks so much better with chickens in it 🙂

1st egg from new batch of hens laid on the journey home!

The weekend also saw Alaric drilling holes in the walls.

Whole in the wall

Apparently I didn't want this part of the house! No he isn't just randomly destroying the house - he is network cabling so that we can have proper internet in all the rooms in the house etc...

Preparing for newtwork cabling!

Also the compressor was the best buy EVER! It now unsurprisingly has a hole saw attachment.

Alaric and the Nuematic hole saw

Last but certainly not least - Jeany has been wanting to do some more of her candle making for ages, in sorting the attic I discovered just how many candle ends we had accumulated - to be fair friends do post her candle ends to melt down.

Jean and Alaric making candles

This is her main craft activity that she does with Alaric, and it is also her little business which she started years ago now 🙂

Candles in the moulds

Infact the square moulds that came with the starter kit that... erm... started it all broke, so this is the last batch of square candles until she sells some candles and buys a square mould with the money.

It was a pretty epic weekend to be honest.

Cheese and Soap and Skillz (by )

At the beginning of the year when we were setting down our New Year Resolutions, me and Alaric realised that we were still stuck with exactly the same stitches for kniting and crochet that we started with three years ago. All our projects have been variants on a theme.

We also wanted to move forward with the home stedding stuff, having added chickens and allotment since moving house. So here is my first cheese - it is a soft spreadable thing but I am very proud of it - I might also have accidently made a butter but that's cool too and is being used 🙂

Our first yogurt cheese formed into a pyramid

The other skill we've been meaning to try has been soap making and we thought this would tie in really well with the yarn craft side of things. So the easiest way of learning the stitches is to knit or crochet squares but I have to be making something or else it wont happen - I've never been good at practice - learning yes but practice no!

Anyway we are basically knitting and crocheting flannels or face/wash cloths to go with the soaps. Here is my first crochet attempt - I think it is double with single as the edging - it is lumpy and bumpy and miss shappen but I am so happy - of course it took me like a month to create.

double crochet flannel

This is the current one - a single crochet - lets hope I can remember how to carry on with it now Mum's gone home - I really struggled with the double when she wasn't about.

The beginnings of a single crochet flannel

I have also added on four different rag rug making techniques to the skillz I haz, recently, plus improvisational comedy and sketch writing so I am feeling quiet chuffed. I am also nerviously awaiting proof copies of a book which is more painful than I would have thought!

WordPress Themes

Creative Commons Attribution-NonCommercial-ShareAlike 2.0 UK: England & Wales
Creative Commons Attribution-NonCommercial-ShareAlike 2.0 UK: England & Wales