Psion MC 400

    Some time ago, one of my colleagues very kindly brought in his Psion MC 400 to let me try it out and take some photos.

    Considering it was released in 1989, the device is well featured, even sporting a trackpad (though the absolute positioning proves somewhat confusing when you're used to today's laptops).

    The OS has a 'System' folder giving access to all the applications. It's not hard to see how this evolved into the silkscreen buttons of the Series 3 and Series 5 palmtops.

    Another feature that made it across to the Series 3 devices was the Psion key though, disappointingly, it was replaced with the far more generic 'Fn' key on the Series 5.

    Just like the Psion key, many charming design elements of the Series 3 have their origins in the MC series of devices. The badging, colour accents, typography, and ridges in the plastic housing (seen above), can all be found in the Series 3.

    The MC 400 even sported Psion's own 'SSD' external media, which could be found in both a write-once flash version, and the a expensive read-write battery-backed form.

    Google Doodles

    Over the years, I've collected one or two of the Google Doodles that make me smile, and I thought I'd post them here for posterity; these remain one of remain one of Google's most charming features.

    • Audrey Hepburn's 85th Birthday:

    Audrey Hepburn's 85th Birthday

    • 255th Anniversary of the British Museum (if you're wondering why you haven't seen this one before, it's from the UK homepage):

      255th Anniversary of the British Museum

    • Leap Year, 2016:

      Leap Year, 2016

    • Birthday:

      Birthday

    • Beijing Olympics:

      Beijing Olympics

    Classic Wallpapers

    Overcome by a wave of nostalgia, I recently booted up my SheepSaver Mac OS 9 installation and put together a collection of all the system wallpapers.

    Download

    If you're looking for something a little higher resolution, Louie Mantia has a fantastic re-render of the 'Mac OS Default' pattern on his wallpapers page.

    JavaScript Clocks

    Earlier this year, I created a JavaScript analogue clock for a side-project. The clock never made it into shipping code, so I thought I'd share it here for posterity.

    The HTML is more complex than I might like:

    <div class="clock-container">
        <div class="clock-body">
            <div class="clock-hours"></div>
            <div class="clock-center-shadow"></div>
            <div class="clock-minutes"></div>
            <div class="clock-center"></div>
            <div class="clock-seconds"></div>
            <div class="clock-center-seconds"></div>
        </div>
    </div>
    

    And, as always, the CSS is incredibly verbose:

    .clock-container {
        background: #324B72;
        padding: 32px 0;
        margin: 0;
        border-radius: 6px;
        text-align: center;
    }
    
    .clock-body {
        display: inline-block;
        position: relative;
        height: 200px;
        width: 200px;
        border: 8px solid #fff;
        border-radius: 50%;
        box-shadow:
            0 0 5px rgba(0, 0, 0, 0.3),
            inset 0 0 5px rgba(0, 0, 0, 0.3);
        margin: 8px;
    }
    
    .clock-type-night {
        background-color: rgba(0, 0, 0, 0.3);
    }
    
    .clock-type-day {
        background-color: rgba(255, 255, 255, 0.3);
    }
    
    .clock-hours {
        box-sizing: border-box;
        background-color: #fff;
        position: absolute;
        width: 8px;
        height: 50px;
        border-radius: 4px;
        bottom: 96px;
        left: 96px;
        transform-origin: 4px 46px;
        box-shadow: 0 0 5px rgba(0, 0, 0, 0.3);
    }
    
    .clock-minutes {
        box-sizing: border-box;
        background-color: #fff;
        position: absolute;
        width: 6px;
        height: 80px;
        border-radius: 4px;
        bottom: 97px;
        left: 97px;
        transform-origin: 3px 77px;
        box-shadow: 0 0 5px rgba(0, 0, 0, 0.3);
    }
    
    .clock-center-shadow {
        position: absolute;
        width: 18px;
        height: 18px;
        background-color: #fff;
        border-radius: 50%;
        left: 91px;
        top: 91px;
        box-shadow: 0 0 5px rgba(0, 0, 0, 0.3);    
    }
    
    .clock-center {
        position: absolute;
        width: 18px;
        height: 18px;
        background-color: #fff;
        border-radius: 50%;
        left: 91px;
        top: 91px;
    }
    
    .clock-seconds {
        box-sizing: border-box;
        background-color: #aaa;
        position: absolute;
        width: 2px;
        height: 100px;
        border-radius: 4px;
        bottom: 89px;
        left: 99px;
        transform-origin: 1px 89px;
        box-shadow: 0 0 5px rgba(0, 0, 0, 0.3);
    }
    
    .clock-center-seconds {
        position: absolute;
        width: 8px;
        height: 8px;
        background-color: #aaa;
        border-radius: 50%;
        left: 96px;
        top: 96px;
    }
    

    But at least the JavaScript is fairly simple:

    $(document).ready(function() {
    
        var transform = function(degrees) {
            return "rotate(" + degrees + "deg)";
        }
    
        var updateTime = function() {
    
            var now = new Date();
            var hours = now.getHours();
            var minutes = now.getMinutes();
            var seconds = now.getSeconds();
    
            var hourDegrees = (hours * 30) + (minutes * 0.5);
            var minuteDegrees = ((minutes * 60) + seconds) * 0.1;
            var secondDegrees = (seconds * 6);
    
            $('.clock-hours').css("transform", transform(hourDegrees));
            $('.clock-minutes').css("transform", transform(minuteDegrees));
            $('.clock-seconds').css("transform", transform(secondDegrees));
    
        };
    
        setInterval(updateTime, 1000);
        updateTime();
    });
    

    On-Demand 3D-Printed Parts

    We often hear the promise that advances in 3D printing will provide a new supply chain model, giving us access to products for which there is otherwise insufficient demand; that, amongst other things, this is set to revolutionise the spare parts market, allowing companies to provide parts for any item on-demand.

    Unfortunately, although companies such as Shapeways offer comprehensive marketplaces for makers to sell their designs, these are flooded with novelty items (and gadget cases): items of which there is already a glut in traditional retail channels.

    You can imagine my excitement then when I recently had an opportunity to purchase a vaguely practical 3D-printed item which would not have otherwise been available:

    3DS Cartridge Blank Thin

    Having switched to all digital downloads, my Nintendo 3DS now has an empty cartridge slot: ideal for collecting dust and a perfect point of structural weakness. Thanks to 3D printing, it's possible to purchase a blank 3DS cartridge from Shapeways. I opted for the 'Black Strong & Flexible' material – a matte textured plastic – and an very pleased with the result.