New Disk Array at Home

The new disk array is up and running, many thanks to DDB and Frank.  Eventually there may even be some video of the process.  We started filming with taking the parts out of the shipping containers and carried on through hardware and software install, right up to installing the thing in the rack next to the (very similar looking) old one.

Slightly less sunny news is that the video from my build is spread all over as all of my ready disks for dumping (as well as all of my SIMM cards, by the end) were completely full. I was pretty much putting video wherever I could stuff it by the time the new FreeNas server came up.

Even darker, just as I was starting the big copies to free up the scratch space on the Mac, PC, Macbook AIR, Macbook PRO, 4 TB USB3 (primary scratch for video we are actually working with ATM), 1TB USB3 (theoretically project specific) master, five 64GB and two 32GB SIMM cards, and a few other nooks and crannies… a drive failed on the hardware based RAID5 (an array of four 2TB disks with ~6TB usable) hosted by an AMD based Windows Home Server.

It took about a week but I have finally just about bailed the last of the data off from the WHS array.  It was scarey as hell, but things worked exactly right and I was able to use the remaining three disks to copy to scratch disks I mounted into a spare SATA port usually used for the WHS to write out captured audio.

The new FreeNAS solution has six 4TB disks but is still configured for just single disk failure safety.  It provides  around 17TB of usable space via Windows or Mac based network shares, bringing the household up to around 30TB of nominally simultaneously usable disk.   Looks to be right around 50% full and filling at about 8MB/sec if I’m reading the FreeNas reports correctly.

Now that I’ve got all of the data from the WHS server, it’s powered back down.  I plan  to pick up a new 2TB disk this week and see what happens when I try repairing.

One thing we liked immediately about the FreeNAS solution was the each of our shares shows up reflecting the total disk space currently available to the array.  We don’t have to carve out even artificial partitions in terms of estimated disk they will use – just give them a name, share, and “Work In Progress” or “Raw Device Dumps” now appear and have 10TB free.   Fun.

We’ve been talking about making an effort toward putting out more content (blog posts especially) about taking seriously the effort toward making nice video, and what goes into that.  If this would be interesting say so, please.  Please also mention any topics that would especially interest you.

Two Things

I saw a post on FB from samuel-warde.com saying what a waste of money are elections while children hunger. On the one hand, I do like that gobs of people are competing with each other to follow our would-be-government around. It does seem reasonable to argue the vast majority of these media types are directly supported by networks, who sell the air time gobs of this money gets spent on.  And it is gobs of money. My maths[1]  say around $13 per voter in the top contest, if you want to be egalitarian about it.  I have some nice stickers now, my kids know our president.

$13 smells like crazy, but here’s my thought:

Watching various (likely|registered) voter polling results, the only two things I think seemed to dramatically change the numbers (and probabilities, thanks Nate) were

  1. The first debate – Romney did what he needed to do, Obama was too conservative and wishing he were with his wife on their anniversary.  It came across.  In any case, not a big ticket item as represented by the $1.5 billion or so mentioned above.
  2. Sandy – also not funded by either party.

On the other hand, those with means will sway politics, but only by such a margin as those with conscience who vote may give allowance.

[1] I used as sources a NY Times article and an LA Times article.

iMac

I’ve just ordered what will be my first Mac desktop system in quite awhile.  I considered the Mac Pro but decided that the iMac puts a pretty good price point on high definition display with the Retina.

To be clear, I have owned and used many Macs for work over the years.  My primary development system, however, tends to be a desktop and further a

New Look, Missing Images, Irony

So, some (perhaps most) of my images are missing. I recently recovered the site from some backups — mine not the ISPs. Not really sure what happened to this site on the automated backups that the ISP theoretically maintains for me. In any case, between the WordPress database (which wasn’t affected) and my own tarballs I’ve managed to bring up (I think) all of the context except the images and some theme customizations. And vola — new look and feel as if I had planned it!

Recently, in the context of the frequency with which I typically make updates here– so this all went down a couple months ago.

In any case, I may or may not attempt to recreate or dig up the missing screen-shots and what-not. These, if they can be found, would have to come from the various PCs where I was doing whatever work I happened to be talking about, which means digging through entirely different –less grepable– types of backup file.

If there are missing images you’d particularly like to see restored you should mention that — silence will be taken as support for removing rather thgan filling the (currently rather broken looking) image placeholders.

As a final aside, the missing image on the post where I talk about the missing image from an email Linked-In sent me: is that ironic or just sad?

Architecture is All About Practice

The cost of a bad design drawing starts at 1000 words and grows insanely rapidly. This article, the second in a series aimed for syndication via Otterology.com, explores the initial planning stages; specifically, developing blueprints and roadmaps.

Pictures are supposed to be worth a thousand words. I think this means many, many words are required even to attempt replacing a picture. Especially a nice one, like kids or a kitten or something. Nuance, etc, etc. When it comes to technical drawing, and especially technical architecture I’ve found an interesting twist on this –

An architect needs walk the line between practicable –I know it can be done– and remedial –it spells out too much, if the developers don’t fight you management will. This is done by using accepted and proven but somewhat general patterns. The architect guidelines like “put the files that read data here and the ones that make web pages over here” as well the more usual “We’ll have an F5 passing web-pages to a bunch of servers, blah blah bling.” Generally, these take the form of a set of assumptions made within the context of solution proposals. Once these have been accepted (or accepted as assumptions, at any rate) the project team then uses them cost, schedule, and otherwise plan.

So, all that plus gobs of diagramming this weekend got me to thinking – I know I’ve created a really bad drawing when I get a thousand words deep in the meeting where I’ve presented it and we’re still talking about what I’m trying to depict.

Our rule is for most technical drawings to describe a single thing – ideally, the minimum detail needed to make a single clear and unique contribution to the set it will join.

The last part is especially tricky – it means this: suppose I have one set of drawings the show our systems in relation to vendors and other external technology partners (I do!), and a completely unrelated set set describing how our new Near-Real-Time data-processing back-end works (also true).

Clearly, there are plenty of exceptions but usually it’s a time-sink a waste trying to draw all aspects of a problem into a single context.  Even when it can be done the result is often confusing.

Sometimes the places where you have different sets reflecting a common application different ways can be confusing.  Our answer?  Don’t worry about it.  In general and where possible our practice recommends ignoring this problem, where possible. This may sound counter intuitive however the SMEs who do the real heady work to build and maintain the cooperative parts of your complex system will usually coordinate directly with each other to handle the detail of their coupling.   While the project clearly has a duty to capture this material, it is rarely helpful for a systems’ or enterprise architect to attempt to capture specific details in project artifacts.

Other times, however, that’s exactly what your architect does for you. Take for example, a large enterprise where many autonomous technology platforms many be maintained by different teams, each supporting different aspects of your business. Here, the architect (in fact, the architecture practice) has special responsibilities in terms of keeping a master application level set which keeps a “one true” vision for the application or technology portfolio team. This not only keeps a team of architects on the same page for consistent level of service across an architecture practice, much more importantly in enables the team supporting the application to stay aligned with each other as changes affecting their work are planned. As a final side benefit  when and architect provides application level blueprints to the team that maintains that very application, inadequacies related to that architects understanding of realty come quickly to light.

For a technical drawing to be effective it’s got to communicate more effectively than can be done watching video or reading source or docs.  This is easy to do if you don’t confuse people too badly when presenting them with new ideas, to which end we offer this advice:

    1. Keep it simple.  Make lots of drawings, not complex ones.
    2. Keep it consistent.  It’s fine to have different sets that would not make sense if taken together, however if you have lots of teams, architects, or both consider application level blueprinting also.
    3. Is it clear?  Obviously, answering this correctly consistently this isn’t simple.  Without belaboring the each of the obvious and extremely critical activities such as peer and stakeholder reviews, one thing I often find useful is to to show my work to someone I don’t expect to understand it and ask what it looks like.  This often points out where I have two or three drawings that need to be separate so that each key concept can be  properly splayed.

Console Log Factory for jQuery

Appears to give us object hier, like we want.

Sample output under Google Chrome

At some point in every nerd’s career he will grow tired of web browser Alert boxes, especially for those ‘I need output from right here, right now’ situations.

The orthodox alternative is the Console library and its log method, which work great and typically (Chrome and FF, I know) provide a nice recursive inspection capability accessible with printf like semantics. The trouble is, they aren’t always available. Here’s a short snippet for a logging factory that performs the necessary tests once each, at most.

This sample requires jQuery as well as a Console logging service from the client, however it avoids raising errors these things aren’t available or if logging was disabled.
[javascript]
var LOG=true;
var log_factory = function() {
return LOG
&& jQuery
&& console
&& console.log
?function(){
console.log.apply(
console,
jQuery.makeArray(arguments));} //jQuery
:function(){};
};

/// … later …
var log = log_factory();
log( ‘test message, object:%o’,
{ an: ‘object’,
value: ‘here’ });
[/javascript]

It should be possible to extend this to be also able to generate warn() and other messaging levels simply by passing arguments to the factory. In the way, for example, the test for whether logging is enabled could be made each time a message is passed, making things slightly slower but potentially to allow enable/disable of logging on actively running code. This is not something I’m likely not something I need right now.

Also, jQuery is only actually used for makeArray(), which flattens the arguments psudoarray to true Array before the call to console.log.apply(). This suggests it should not be too hard to remove jQuery completely, for example if you have a different library around that provides a similar array flattening utility function, or if you are able to successfully inline the needful.  Again, I’m using jQuery extensively at present so I very probably won’t.

That said, I would love to hear your thoughts, especially if you experiment in these or other interesting directions.

One AM

I think the intensity is starting to go up for Otterology.com.

In the last few days our Facebook page has gone from under a dozen to a couple of hundred likes, which is pretty neat.

More to the point, I am awake and ready to work at 1:00 AM – and I am happy about it.  My current hope is that that a particularly interesting first deploy currently in progress will go very well and I can see how close to the User Test environment I can bring it before Start-of-Business.

Normally, I’d be very, very grumpy in this situation.  While I don’t necessary mind forging away the midnight hours, I usually like actual (not potential) work to do but, if you’ll pardon the expression, this is a particularly special delivery.

Hope to be able to share some detail eventually!

I’m a Five-Percenter (according to LinkedIn)

This email had a broken image. Hmm.

This email had a broken image. Hmm.

According to the email in the graphic, my LinkedIn profile is in the top 5% of profiles viewed. Can’t help but wonder how this miraculous conclusion was drawn, exactly, however the email is interesting, irrespective.

The super-imposed window shows what happened when I dug into the broken image from the email; I suspect my profile [in] profile picture should be there.  Doesn’t matter how big you are kids, broken links and missing images will make people wonder if you are for real.

Rearchitecting for Handholds

Often, in a proof-of-concept level project, you will make some explicit trade-offs wherein you omit features or even whole elements of your conceptual tool chain in order to research suitability, performance, or just to make a sale.   Eventually, if your applications are to be maintained in the market place, you’ll need to ensure for their legacy by effecting an orderly transition to a fully featured product on a technology stack you can plan to maintenance.    This article, the first in a series aimed for syndication via Otterology.com, explores the initial planning stages; specifically, developing blueprints and roadmaps.

Blueprints are diagrams, drawings which represent our current/before business and technology architecture.  Moving forward versions will be generate to reflect change options in terms of their affect on business capability, technical liability (e.g. system, network connection, or something else that might break), or sometime just to provide additional context on the current architectural portfolio.

Road-maps reflect the culmination of several current state and proposed future state blueprints, identifying them in terms of strategic objectives resolved by specific practicable changes.  As such our road-maps will be one part diagram/calendar showing our proposed changes and the delivery objectives, and one part graph/table identifying of change detail from both the technical perspective (what will be changed, when), and from the business perspective (what will be available, when.)

We look forward to updating this article over the coming weeks and months.  Thanks for your support of Otterology.com and for your interest, comments and help!