Thursday
Jun132013

Mac Pro 2013 Storage

There’s been a lot of talk about the new Mac Pro just announced at WWDC 2013 and I’m really liking what I see even if I have no real use for anything with that kind of horsepower.

But as usual, when Apple giveth, Apple taketh away. One big thing that’s currently missing from the newest iteration of the Mac Pro is internal storage expansion. Much noise has been made about the simplest types of solutions involving direct Thunderbolt connections to external drives (individually or multiple drive cases) and the resulting problems concerning cable mess, noise issues and the like.

I’m curious to see if Apple is going to be launching the Mac Pro with a suite of associated Thunderbolt peripherals since there is currently a dearth of products in this space since a super quiet complementary multi-disk storage system seems to be an obvious product. But in the meantime, we still have to cope with things like the fact that Thunderbolt over copper is limited to about 3m which can be problematic if you want (potentially noisy) expandable storage that’s not right beside you.

But even before the machine is released, we can imagine some useful and powerful solutions to these issues. In the enterprise world we do any awful lot with high-end NAS and SAN boxes but there are ways to profit from these technologies in a reasonable budget. Well, reasonable to someone ready to drop a few grand on a Mac Pro or two…

In any case, those of us with Mac Minis have already gone through this process of outgrowing storage that is handled by individual drives, and are often in spots that are inconvenient for hooking up external storage like home media servers.

So how to get there from here? The idea is to build an external storage box and using connectivity options that permit you to place it away from the office space where spinning disks and fans disturb the ambiance without penalizing performance. I’ve been using this approach for quite some time now but contenting with standard Gigabit Ethernet since my needs are limited to video and music streaming, plus some basic virtual machines for testing.

The big news that has surprised me is the appearance (finally) of 10GBase-T copper cards and switches. Yes, that’s 10GbE so more than plenty fast enough to handle most anything that a set of SATA drives can spit out like what we see in the last generation of Mac Pros.

Sticking with standard Ethernet CAT6 we can maintain 10GBase-T over a 55 meter cable. So we can easily put our storage a fair distance away from the office.

In order to use a standard PCIe expansion card we need a means of plugging it in. For this we have options like the Sonnet Echo Express SE which is a box with an 8x PCIe slot that you connect via Thunderbolt to the Mac Pro (or any Thunderbolt equipped machine for that matter).

There are a number of different 10GBase-T cards out there and one thing that remains to be determined is the driver availability for OS X. Sonnet proposes the Myricom Myri 10-G, but they don’t currently offer a 10GBase-T version. They are available with SFP+ Fiber (expensive) and CX4 (short cables). I did find a few cards available on Amazon like the Intel X540T1 at $353 or the HP G2 Dual Port card at $300 so there are options out there and I’m hoping that someone with deeper pockets than me will test the waters here.

I have a soft spot for using ZFS as my preferred storage technology for a number of reasons, including reliability and flexibility, but any number of server solutions are possible as long as they can publish a protocol OS X can talk to. With a build your own approach, you can find all sorts of boxes optimized for small, medium and massive storage options.

If your needs are relatively small, you could go the route of something like the HP N40L Microserver. Currently my setup with these machines are capable of saturating a standard GbE link (sequential IO) with 4 low RPM SATA drives, so there’s some headroom left going to 10GbE with speedier disks or even SSD.

Accessing the storage server

I prefer using NFS (but am waiting with great interest to see what 10.9’s SMB2 implementation will bring) for sticking with a NAS protocol approach, but if you prefer working with storage that is seen as disks by the OS, you can use iSCSI if you’re sticking with ethernet and TCP/IP as the transport. Fortunately, the GlobalSAN iSCSI Initiator will do the trick.

If you are dedicating the storage to a single machine, you can simply connect everything directly, but this kind of setup can be shared, but you’ll need a switch. Currently the best deal that I’ve seen out there for reasonably priced 10GbE switches is the Netgear 8 port 10GBase-T switch (~$900).

It’s true that all of this is considerably more complicated that simply popping off the side of the machine and connecting a new disk, or buying a little Thunderbolt external array, but if you need serious performance and serious capacity, even the old Mac Pro would reach some limits pretty quickly. Moving to a dedicated storage system permits better performance, sharing across multiple machines and many more options for growing the system over time.

I suspect that the majority of folks doing massive video work are already using some kind of SAN, whether Fibre Channel or iSCSI so the impact to them is mostly buying the Sonnet expansion box. It’s all the people in the middle who are currently making do with 3-4 disks who have to start asking a lot of questions about how to plan for storage management.

Wednesday
May222013

Clash of cultures

This is going to be a tough one to explain, and very much a reflection in progress.

I’m coming up to two years of working in a very enterprisey space and finally coming to terms with the cognitive dissonance that permeates my daily existence.

Internet and Enterprise cultures have some fundamental disconnects about where and how value is created. Now I’m sure that everyone went, “well yeah, duh” and I’m with you, but I didn’t realize just how much this colors people’s world view and its impact on IT.

I can explain this by illustrating how one very basic role is viewed by the parties: the developer.

On the one hand, the enterprise is built around precepts that have been inherited from the industrial age public works and construction industries: distinct hierarchies where the people at the top, i.e. the architects are the ones who, being the best educated, “know best”. Then there are a series of roles determining what the client wants, translating that into documentation (the functional specification) and then on to the people that translate that into a technical specification, who then break this down into further smaller chunks to be given to the developers - the day labor grunts at the bottom of the totem pole.

In the ‘public works’ worldview of building applications, there is no direct equivalent for the production team, the team that takes care of the code after it’s been released; a building built is a finished product and the client just lives or works in it. That’s fodder for another article.

This structure puts developers at the bottom of a chain, entirely without added value, easily outsourced to pretty much anywhere since they are the equivalent of the bricklayer. As long as you tell them where to put to the bricks and how many and with the correct type of cement, you’re executing requirements properly.

This is in stark contrast to the startup and the Internet worldviews, where the developer is more of an ‘artisan’, with different levels of expertise from the apprentice to the journeyman and finally the master. In addition there is awareness that there are many specific trades that require different skills and talents.

The master diamond cutter, for instance, is an artisan, and a subject matter expert, but would rarely come in direct contact with a client since they live worlds apart. The majority of application development is done by someone who is closer to the jeweler. The jeweler is in direct contact with the customer and knows how to ask them about their wants and desires and has the ability to translate that into a custom product that responds to their needs.

The diamond cutter is the developer we tend to keep behind closed doors and give the really tough problems involving developing new languages, codecs and other low-level complex and conceptual problems that are far removed from the banality of developing applications for enterprises and other customers.

The jeweler, on the other hand shares much with his customers. The basic needs are the similar and he might even design stuff for himself that are of interest to others. The master jeweler can talk to a customer and translate this into a finished product directly. Many of their projects come as the result of scratching a personal itch, which turns out to be shared widely.

The outsourced enterprise approach involves hiring ditch diggers, and as long as they receive sufficiently clear and precise dimensions of the ditch they are required to dig, they’ve done a good job.

To the enterprise, development is grunt work and there’s no additional value to be added by this echelon of the development corps. This is the antithesis of the artisan, who embodies the architect, engineer and artist to actually create something.

These two approaches are polar opposites in terms of determining functional spec, and so produce very different products.

While I have an intellectual understanding of the two approaches, in my heart, I adhere to the artisan vision of the developer, which makes working with people that don’t share this attitude very difficult.

Tuesday
Mar122013

Jobs to be done for Word

The previous article generated a fair bit of feedback, and some of it is misunderstanding the core point that I’m trying to get across. Much of the discussion turned around Word, more than the other components so I’m going to try and clear up a few things.

I’m not trying to say that Word is doomed or that it has no viable use cases going forward. The observation is that Word was the default tool for many people for many jobs, and was often the driving factor for computer purchases. The reflection is more to do with the general public rather than its use in business.

The environment has changed immensely and the general purpose tool of Word has given way to various tools that are hired for specific jobs to be done.

Some examples of tasks that we used to hire Word for and some examples of modern replacements:

The Christmas letter. An annual communication that used to be typed in Word, printed, stuffed in envelopes and mailed. This was followed up by a split workflow with the document also being sent as an attachment to the relatives that had email. Today’s version of the Christmas letter might just be an email with pictures included or even more frequently, a longer Facebook post than usual. Again, the changing nature of communications means that this annual ritual has also been replaced with a more fluid day-to-day diffusion of information by various means.

The venerable Journal or Diary. Many people used Word to maintain a written history over time, perhaps in a single big file or in multiple files named by date. On the public side of things, we now have Facebook and blogs, and on the private side of things we have excellent tools like Day One that go considerably further in serving the job to be done which is as much keeping the diary as it is enjoying it.

Notes. People are discovering keeping general notes in Word is overkill and are moving to tools like Simplenote, Evernote, OneNote, or even just the built in Notes apps offered by their platform.

Screenwriters and authors now have more options that you can shake a stick at, starting with Markdown editors of varying levels of complexity to purpose built editors like Scrivener.

Then there’s the school report. When I hear and read about projects like Frasier Spears’ one-to-one program and where students go beyond typing a report, but assemble multimedia projects and present their reports I’m amazed. The job to be done is to teach students how to research, synthesize and present their findings, and Word as the tool and the container is no longer sufficient, unlike many of the other jobs that Word can be replaced with smaller light weight tools.

Changes to the environnment

Other points that are driving this trend are the changing consumption habits concerning software. Historically, software was expensive, relatively difficult to acquire, potentially difficult to install. On top of all that we (the technologically advanced) frequently pointed out the risk factor of installing software and educated average users that they should be very careful. All of this added to the reticence to use anything but the standard preloaded Office suite of tools.

This is complement of the “if all you have is a hammer, everything looks like a nail”. A PC sold with Office, coupled with the general lack of motivation to install other software leads us to using Office as a hammer for all of the jobs we have at hand. But if buying, installing and learning new software is friction-free, we are much more like to go looking for that left-handed 13mm ratchet wrench that is perfectly suited for the job.

This is a transformative change where the market for software is no longer primarily selling to corporate purchasers, but directly selling to the end user who uses a different set of criteria for making a purchasing decision. The creation of a high volume direct sales channel with the App Store, Google Play and the like has enabled the possibility of much lower cost software which leads to much more experimentation since the risk is minimized.

The decision process for buying Acorn at $50 vs Photoshop at $700 is completely different. On the Office front, Microsoft offers a discounted version Office for business users to install on their personal computers, but there is still the huge gap as they have no version for the growing (non-Windows) tablet market.

Sunday
Feb242013

Changing jobs to be done

Based on a lot of reading and listening to people like Clay Christenson and Horace Dediu I've a few observations concerning the current transformation of the PC market, Apple, Android and tablets.

For many years the PC combined with Microsoft Office were the defacto computing standard. This combination was a product of their time between analog and digital eras. Office is made up of three main components: Word, Excel and Powerpoint.

Word

Word is the cornerstone of the Office suite for most people. But just looking at the current interface for Word, one thing jumps out immediately: it is a product designed to use your computer to produce pages containing information. At the beginning of the PC era, this was a key factor as the electronic exchange with anyone outside of your immediate computing circle still required an analog phase, either in the form of paper or a fax. So it made perfect sense that we built tools that facilitated the bridge between the two worlds. But things have changed in the intervening 20 years, and now Word's primary use (outside of slow moving enterprises, government and education institutions) is a convenient container for transferring information via email. The frustrating part is that it comes along with all of this historical page oriented metadata and associated structure that the page metaphor imposes.

From a practical standpoint, the majority of data entered into Word today is not destined to paper, but some form of electronic transfer or storage.

In addition, computers are no longer rare items, relegated to specialists, like the typing pool where the first inroads started with word processing systems. In most developed nations, the majority of the population have access to some kind of computing device, whether a full fledged PC, tablet or smartphone. This has demoted the importance of the paper document or the paper metaphor for sharing information. The most current widely accepted container for sharing information now is the web page, static or dynamic. Even ePub is nothing more than a packaged web site. With the advent of web applications like blogs and wikis, we can now write, store and share information in a structure adapted for the end-to-end digital toolkit that sheds the need for concepts like headers, footers, margins, page breaks and so on. Purpose-built applications with a web and a local client enable optimized authoring and consumption completely outside of a document or file based ecosystem. The bottom line here is that Word's value has diminished and is becoming increasingly irrelevant for those people ready to embrace a modern toolkit.

Powerpoint

In the beginning (said in stentorian tones), Powerpoint's role was very similar to Word. It was designed to facilitate a bridge between the digital and analog worlds. Presentations were not yet done using digital projectors, but rather using 35mm slides and overhead projectors with transparencies. With the inevitable audience handouts... on paper.

The advent of ubiquitous projectors changed the role of Powerpoint somewhat and the omnipresence of Office permitted it to become the defacto container for sharing presentations, but always in the context of a document object. To this day, I attend meetings where slides are projected, yet every participant is given paper handouts to follow along with.

In this area we see a slower movement towards better tools designed for the all digital lifesyle, but Powerpoint has succesfully transitioned it's job to be done from preparing overheads and 35mm slides to projecting a predominantly static content to an audience.

But we are starting to see changes here where the job to be done is less pure presentation to a passive audience to interactive meetings where the audience participates and drives the content with questions. Products like Roambi and Perspective which are currently tablet only are better adapted to a collaborative presentation or meeting tool.

Excel

Excel remains the tool best positioned to live in this new age. Its links and dependencies with the analog world are considerably weaker than its brethren as the job to be done is processing information. Communicating the data is usually done with separate pages containing graphs or report tables optimized for print or being copied into other documents.

In this case, Excel's job to be done will change very little and still has considerable value that other systems have yet to reproduce at the desktop. On the other hand, much of the heavy lifting of Excel can (and often should) be replaced by server-side tools that can offer better shared access to information, more reliable availability and backups.

Presenting and sharing Excel driven data currently done via OLE and copy/paste is accomplished more efficiently and with more value using the tools noted in the Powerpoint section. But as a backend for interpretation and analysis, Excel continues to offer real value to its users.

Where do we go from here?

The consequences are being played out in the market right now where it would appear that the traditional PC, desktop or notebook is a market that has peaked and is now starting its slow decline. Like any evolutionary platform change, this will not be immediate or quick and will play out over at least a decade. During this period I predict that the mass of computing will move to systems that are deemed good enough for most people, but that drive expert users crazy.

Currently, the driver for this change is predominantly the iPad. Possibly the most interesting thing about the iPad is that is has managed to become as big as it has without Microsoft Office. Granted that there is a level of reasonable compatibility for reading Office documents, but it exists outside of the fully compatible round trip environment deemed essential and necessary by so many.

Perhaps the jobs we hired Office to do for do many years are no longer the jobs that need to be done today?

Tuesday
Jan152013

Stupid Active Directory tricks

Stupid AD tricks

One classic problem I’ve seen with using AD as an generic account repository is that you might end up running up against the LDAP page size limits pretty quickly if you need to do any kind of data extraction or reporting. I have one directory instance that contains a number of user accounts including email addresses. Many of the accounts share email addresses and we needed a method to quickly extract all of the unique email addresses from the directory.

The usual approach is to use Powershell and the Directory objects or WMI, but right away I started hitting the default 1000 entry limits when issuing requests for (mail=*). To make things worse, that part of the directory is a flat structure so I can’t even look through subordinate OUs. I could of course write a loop that requests user accounts by letter prefix but that seemed like overkill, and still wouldn’t protect me from the day that a letter prefix goes over 1000 accounts.

But Active Directory comes with some very useful interrogation tools in the form of ldifde.exe and csvde.exe. Even better, Powershell plays nicely with properly formatted CSV files, making it easy to extract a specific column.

So instead of a 30 line script with various loops and objects, I can accomplish the task with the following three lines:

csvde -f mails.txt -d "OU=Users,OU=MyApp,ou=Applications,DC=mycompany,DC=net" -r "(mail=*)" -l mail
$list = Import-Csv mails.txt
$list | foreach-Object { $_.mail } | select-object -unique

If I wanted to get cleaner, I would just pipe the results of the last command to a CSV file for additional automated treatment.

It’s also worth noting that csvde and ldifde play nicely with AD-LDS, the stripped down LDAP server at the core of Active Directory, without bogging you down with all of the constraints and overhead associated with managing a network of Windows computers.