Older blog entries for Stevey (starting at number 645)

So I have a new project

Recently I decided to set myself a big photography challenge. The three options which I discussed with a couple of people were:

  • Photograph the front of every pub in the nearby area city-centre.
  • Photograph ever plaque, monument, and statue in the city-centre.
  • Photograph every gravestone and memorial bench in the city centre.

Ultimately I decided pubs would be most fun. Not least because you could do it every year or two, to see what changes occurred.

To make it more useful I decided to not only take the pictures, but to collect, and share, the meta-data too:

  • Lat/Longditude GPS for each pub.
  • Contact details for each pub.
  • etc.

Today I spent an hour walking up Easter road, and down Leith Walk. I shot the outside of about 20 pubs, and then fiddled with the layout and organization of the images.

I'm reasonably happy with the result, but it remains obvious that I'm not a designer.

The data-set use to generate the site - which is perhaps the most interesting/useful part of the whole exercise to other people - is available online too:

All the data, even the images, is stored on github for collaboration purposes. I'm not sure if folk will join in, but I can probably manage a few of the major thoroughfares every weekend indefinitely it will only take a couple of days to get "city-wide coverage", then the rest is gravy.

Syndicated 2013-11-10 23:31:39 from Steve Kemp's Blog

Updating my backups

So I recently mentioned that I stopped myself from registering all the domains, but I did aquire rsync.io.

Today I'll be moving my last few backups over to using it.

In terms of backups I'm pretty well covered; I have dumps of databases and I have filesystem dumps too. The only niggles are the "random" directories I want to backup from my home desktop.

My home desktop is too large to backup completely, but I do want to archive some of it:

  • ~/Images/ - My archive of photos.
  • ~/Books/ - My calibre library.
  • ~/.bigv/ - My BigV details.
  • etc.

In short I have a random assortment of directories I want to backup, with pretty much no rhyme or reason to it.

I've scripted the backup right now, using SSH keys + rsync. But it feels like a mess.

PS. Proving my inability to concentrate I couldn't even keep up with a daily blog for more than two days. Oops.

Syndicated 2013-11-06 18:37:21 from Steve Kemp's Blog

Expiration checking services?

Today I'm recuperating, and almost back to full health.

Unfortunately I made the mistake of online-shopping, oops.

Good job I stopped myself from registaring all the domains, but I did get two that I liked: spare.io & edinburgh.io.

I've updated my database to record them, but I wonder what do other people use to remind them about expiration dates of domains, SSL-certificates, & etc?

I googled and didn't find a definitive free/paid service, but it seems like something lots of people need to be reminded about..

Maybe people just rely on registrars sending strident emails. (Of course the redemption period for domains make it reasonably safe to forget for a day or two, until your customers complain and your emails start to bounce..)

Syndicated 2013-10-31 20:17:52 from Steve Kemp's Blog

Some things change, some things do not.

After seven years working from home I've resigned from my position at Bytemark.

Why? A combination of wanting to do something different coupled with the desire to reclaim my second bedroom, which is currently tied up as an office.

Working in an office in the future will be weird ("You mean I have to get dressed every day?!") but hopefully not unduly burdonsome.

My two-year plan still remains in effect: Pay off this flat as soon as possible, then purchase another and rent this one out. Giving me some income of my own, which I will need.

The "five" year plan involves me quitting work, so that I can stay home and raise children. That makes sense because sometime next year I'll become the partner who earns the least amount of monies, and I'll also be the partner with the lowest upper-bound on salary potential (short of moving to London/similar which I've always ruled out).

Having rental income for myself means I'm not utterly dependant on other money, and all being well this place will be 100% paid off within 18 months.

(After that lots of saving will take place for a deposit for the second place. We did bid on a couple of places locally, which were outstanding, but it is perhaps for the best we didn't win them. No more looking at ESPC!)

Bytemark now becomes a company I recommend 100% for hosting in the UK. In the past I've always said nice things, but I've not strongly recommended them/us, because I'm too biased.

All my personal hosting, except for one virtual machine, will remain at Bytemark indefinitely. Lovely, flexible, and great.

(I have one outside guest for the purposes of diversification. That currently lives at Mythic Beasts.)

Syndicated 2013-10-24 09:39:32 from Steve Kemp's Blog

5 Oct 2013 (updated 5 Oct 2013 at 10:14 UTC) »

I understand volunterering is hard

The tail end of this week was mostly spoiled by the discovery that libbeanstalkclient-ruby was not included in Wheezy.

Apparently it was removed because the maintainer had no time, and there were no reverse dependencies - #650308.

Debian maintainers really need to appreciate that no official dependencies doesn't mean a package is unused.

Last year I needed to redesign our companies monitoring software, because we ran out of options that scaled well. I came up with the (obvious) solution:

  • Have a central queue containing jobs to process.
    • e.g. Run a ping-test on host1.example.com
    • e.g. Run an SSH-probe on host99.example.com
    • e.g. Fetch a web-page from https://example3.net/ and test it has some text or a given HTTP status code.
    • (About 15 different test-types are available).
  • Have N workers each pull one job from the queue, execute it, and send the results somewhere.

I chose beanstalkd for my central queue precisely because it was packaged for Debian, had a client library I could use, and seemed to be a good fit. It was a good fit, a year on and we're still running around 5000 tests every minute with 10 workers.

The monitoring tool is called Custodian Custodian, and I think I've mentioned it before here and on the company blog.

It looks like we'll need to re-package the Ruby beanstalk client, and distribute it alongside our project now. That's not ideal, but also not a huge amount of work.

In summary? Debian you're awesome. But libraries shouldn't be removed unless it can't be helped, because you have more users than you know.

Syndicated 2013-10-05 09:09:30 (Updated 2013-10-05 10:14:09) from Steve Kemp's Blog

28 Sep 2013 (updated 28 Sep 2013 at 16:12 UTC) »

Some thoughts ..

It has taken just over two weeks for blogspam to reject 1 million SPAM comments.

I'm not sure how paranoid I should be able false-positives now, (I accept false-negatives easily enough).

Using node.js is pretty good for making toy servers, and on that basis here's another toy server:

This is a small server which is designed to accept HTTP-POSTs containing a payload of a message, these are stored and later retrieved. Seems like a simple thing, right? Imagine how it is used:

root@server1:~# record-log Upgraded mysql

root@server2:~# record-log Tweaked /etc/sysctl.conf

root@server3:~# record-log Added user 'bob'
root@server3:~# record-log Added user 'steve'

Later:

root@server3:~# get-recent
1.2.3.4 2013-09-28T08:08:09.211Z
root:Added user 'bob'

1.2.3.4 2013-09-28T08:08:10.211Z
root:Added user 'steve'

In short it makes it easy to record "activity", and later retrieve it. A host can only fetch the entries it stored, but if you've got access to the remote server then you can get all logs.

I suspect a more standard solution is to use syslog-ng, and logger, or similar. But it is a cute hack and I suspect if you've the discipline to record actions then this is actually reasonably useful.

Syndicated 2013-09-28 10:36:53 (Updated 2013-09-28 16:12:21) from Steve Kemp's Blog

Random hacking for fun

Recently I've been playing gtetrinet, against the publicly accessible server at tetrinet.debian.net.

If you're unfamiliar with the game it is a multi-player variant of Tetris. You clear many lines and your opponents suffer. Want to make them suffer some more? Use the special blocks you acquire.

Special blocks? How about shuffling your opponents playing field? Adding new semi-formed rows? etc. All good stuff.

There is support for up to six players. To fire a special block at the player in field 1 you press "1". To fire the special block to the player in field 6 press "6". But to fire a block at yourself, to clear your playing field ("nuke") or remove a single line ("clear") you have to know what player-number you are, which will change from day to day, as it is literally a marker for the order you joined the channel in.

It seems obvious that there should be a special-case keybinding "fire to self", and indeed there was bug #291844 filed in 2005 saying as much. I've just submitted a functional patch to resolve this, and already my playing is getting better.

Join me sometime.

Syndicated 2013-09-26 19:31:02 from Steve Kemp's Blog

Some days you just want to do nothing

Today I finally pushed out a new binary release of my slaughter server-automation tool. (Think "CFEngine-lite", with perl. full documetnation is available. Though nobody ever reads it.)

Otherwise the weekend is being quiet; we spent last night mostly drinking vodka, until midnight rolled over, and along with some messing around with a camera ("Wow, your arms are getting bigger!")

Today has consisted of a Turkish breakfast, an Indonesian dinner, and an ice-cream based tea.

I could write more, but I'm hung-over. A rare thing for me.

Syndicated 2013-09-22 14:06:32 from Steve Kemp's Blog

A new wordpress plugin

There is now a new wordpress plugin, for testing against my blogspam site/service.

Now time to talk about something else.

This week my partners sister & niece are visiting from Helsinki, so we've both got a few days off work, and we'll be acting like tourists.

Otherwise the job of this week is to find a local photographer to shoot the pair of us. I've shot her many, many, many times, and we also have many nice pictures of me but we have practically zero photos of the pair of us.

I spent a lot of time talking to local volunteers & models, because I like to shoot them, but I know only a couple of photographers.

Still a big city, we're bound to find somebody suitable :)

Syndicated 2013-09-17 08:47:32 from Steve Kemp's Blog

CIDR-matching, in node.js

I recently mentioned that there wasn't any built-in node.js functionality to perform IP matching against CIDR ranges.

This surprised me, given that lots of other functionality is available by default.

As a learning experience I've hacked a simple cidr-matching module, and published it as an NPM module.

I've written a few other javascript "libraries", but this is the first time I've published a module. Happy times.

The NPM documentation was pretty easy to follow:

  • Write a package.json file.
  • Run "npm publish".
  • Wait for time to pass, and Thorin to sit down and sing about gold.

Now I can take a rest, and stop talking about blog-spam.

Syndicated 2013-09-14 12:04:00 from Steve Kemp's Blog

636 older entries...

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!