Archive for October, 2012

One of our servers has been running with a 3-way mirrored Raid-1 volume for a very long time. Occasionally I stop (freeze) one of the volumes and this is later “swapped” with one of the 2 active ones, so that we have a point-in-time backup of the boot-disk. It’s also backed up with Time Machine.

The reason for this is that it is almost impossible to restore certain files – and you will need something to boot from to restore anyway, meaning that the boot disk that’s out of rotation should in theory alway be a “known good” boot disk.

A couple of months ago I swapped one of the active disks to a SSD – figuring that could speed up the server.

And this worked well until Thursday – when the server crashed.

When I tried to reboot from the active mirror this turned out to not work, so I booted from the “known good” disk. And it turned out the SSD had failed. Unfortunately it had failed in such a way that it had corrupted the other disk in the mirror as well.

I tried Disk Utils and Disktools Pro – both told me that the disk was corrupted beyond repair.

It was while I was scratching my head I remembered DiskWarrior – my faithful companion in pre-OsX days. I downloaded (yes I actually purchased a copy), and started it up.

30 minutes later it showed me a repaired directory from the disk, and asked me for permission to write it to the volume. I gave permission, and a few minutes later I had a readable directory from the disk.

I rebooted from this disk (after having cloned it to another volume) – and lo and behold I could boot from it!.

WOW! Thanks DiskWarrior!!!

HM!

About MogileFS

See http://danga.com/mogilefs/

MogileFS is our open source distributed filesystem. Its properties and features include:

Application level — no special kernel modules required.
No single point of failure — all three components of a MogileFS setup (storage nodes, trackers, and the tracker’s database(s)) can be run on multiple machines, so there’s no single point of failure. (you can run trackers on the same machines as storage nodes, too, so you don’t need 4 machines…) A minimum of 2 machines is recommended.

[From mogilefs – MogileFS distributed filesystem – Google Project Hosting]

image

I get a lot of emails with footers similar to this :

“This message contains information that may be privileged or confidential and is the property of nnnnnnn. It is
intended only for the person to whom it is addressed. If you are not the intended recipient, you are not authorized to
read, print, retain, copy, disseminate, distribute, or use this message or any part thereof. If you receive this message in error, please notify the sender immediately and delete all copies of this message.”

The really ironic part is when the To: lines says ” “undisclosed-recipients”

Turbolinks

Turbolinks makes following links in your web application faster. Instead of letting the browser recompile the JavaScript and CSS between each page change, we keep the current page instance alive and replace only the body and the title in the head (and potentially spend extra HTTP requests checking if the assets are up-to-date). Think CGI vs persistent process.

This is similar to pjax, but instead of worrying about what element on the page to replace, and tailoring the server-side response to fit, we replace the entire body. This means that you get the bulk of the speed benefits from pjax (no recompiling of the JavaScript or CSS) without having to tailor the server-side response. It just works.

By default, all internal links will be funneled through Turbolinks, but you can opt out by marking links with data-no-turbolink.

201209291749.jpg

Some time ago I went to a routine health screening – and the only comment I had from the doctor was that my blood pressure was ‘a bit elevated” – but it could be due to external factor, so I should at some stage talk to my GP about it.

Being a bit of a nerd I instead went out and bought a Withings blood pressure monitor – to enable automatic uploads od blood pressure readings to the same services that receive all the rest of my health data (aka “having your body”). And here’s the first few data points

201209291020.jpg

I did 2 sets of 3 measurements this morning, one set before I did my running, and one immediately after. The first set is on the high side, but the second set are all green and normal.

Excellent.

Ah – it turn out there is a problem with certain versions of the Ruby xml-rpc client library where it will not work with some xml-rpc servers where the content type response is not correctly set :< Some xmlrpc servers don't properly set the Content-Type headers. I know based on responses tracked here http://rubyforge.org/tracker/?func=detail&atid=1698&aid=2727&group_id=426 that the .NET (C#) implementation doesn't set it properly. I am having the same issue with some implementations of Java. When this is missing I get the following error: See : http://bugs.ruby-lang.org/issues/5660

My first attempt at writing a XML-RPC routine (in Ruby) to communicate with the Domotiga XML-RPC server did not work out.

So I hunted around for a OsX xml-rpc debugger – and I did find one called “XML-RPC Client”. It works – as in the screen dump below:

201209272111.jpg

We are using a Mac Mini as a video server (and transcoder) for our video library – and using AirPlay to enable us to show it on any TV in the house. With the newest version of the AppleTV it’s capable of doing “proper” HD – 1080 lines.

A lot of the videos we have are not stored in a format that’s native to the AppleTV (.mp4 etc) – and therefore will require transcoding to enable AirPlay to transmit it.

We are using ServeToMe (a excellent server application) to do the transcoding, and StreamToMe to work with AirPlay on any of our iPads.

But transcoding creates a lot of small files on the hard disk of the server, and this is not IMHO ideal – as they will be created quickly, then almost immediately streamed to AirPlay, and destroyed. The hard disk is slowing this down – and as the server has 8 Gb of RAM, and only uses part of this during normal operation I decided to try to create a RAMdisk for all this temporary storage – as a RAMdisk should be a whole lot faster than a hard disk.

And ServeToMe allows you (under Advanced preferences) to set the location of the RAMdisk as a cache folder.

I found a excellent little script to create a RAMdisk here : https://github.com/blebo/osx-ramdisk.

——

Btw. – it works, and allows StreamToMe to convert the movies with the highest possible quality.