On walkabout in life and technology

Scratched iPhones

There’s a big brouhaha in the news these days that new iPhone 5’s come scratched out of the box, and that the new aluminium backs scratch too easily. So much noise that Apple is trying to “fix” the problem by not shipping pre-scratched ones, and by telling people that scratching is normal for aluminium products.

I prefer Remy Labesque’s take back in 2011 in Aged to Perfection, the back of scratched iPhones can and does look beautiful.

Image © Remy Labesque, 2011, FrogDesign. Reproduced without permission, hoping they are OK with this.

Spent More on Patents Than R&D?

Ian Betteridge @ianbetteridge takes the New York Times down in Did Apple and Google really spend more on patents than R&D?, in response to the NYT article The iEconomy: Apple and Technology Manufacturing (Subscription required):

Read the NYT piece, and you would think that the technology market has shifted from being about research and development of new products to being about acquisition of patents. Given that this is based on a single year, when some very big patent portfolios came on the market in one-off deals that aren’t likely to be repeated in the future, that’s a long way from the truth.

Microsoft Lost Its Mojo

Another well written article today in Vanity Faire, How Microsoft Lost Its Mojo: Steve Ballmer and Corporate America’s Most Spectacular Decline, which visits Microsoft’s lost decade and current structural problems. Well worth Instapering (Is that a word?).

Ballmer’s key business philosophy for Microsoft was so antiquated as to be irrelevant. The Microsoft C.E.O. used to proclaim that it would not be first to be cool, but would be first to profit—in other words, it would be the first to make money by selling its own version of new technologies. But that depended on one fact: Microsoft could buy its way into the lead, because it always had so much more cash on hand than any of its competitors.

No more. The advantage that Ballmer relied on for so long is now nonexistent. Google has almost the same amount of cash on its books as Microsoft—$50 billion to Microsoft’s $58 billion. Apple, on the other hand, started the year with about $100 billion. Using superior financial muscle to take over a market won’t work for Microsoft or Ballmer anymore.

My only issue with the article is that Microsoft was never “cool”.

BBEdit Still Rules

Lovely article on how the stalwart classic BBEdit still rules by Andy Ihnatko (@ihnatko) on Macworld today, entitled Mac classics: Why BBEdit rules

“BBEdit’s still important because at its essential core, it’s a tool for working with text,” says Rich Siegel, Bare Bones Software’s founder and CEO. “Not text for presentation, as in a word processor or page-layout application, but rather text as data supplied to other software: code for compilers and interpreters, markup and Web applications for Web browsers, log files and data tables for analysis, and for any tool that inhales raw text and turns it into something else.”

I use BBEdit every single day, for all sorts of crazy things. It’s my go-to “hammer” tool.

Stop With the Old Text Editors Already

Over the past few years, it has become a thing to stop using IDE’s and modern text editors in favor of Vim. I understand older programmers using Vim out of habit, but the new generation of programmers? I don’t get it. Every-time I write about text editors, this growing group tweets to give modern GUI editors up and switch to old trusty rusty crusty terminal-based Vim.

Stop it! I’m not going to do that.

My reasoning is not religious fervor or hatred. Folks, I’m a graybeard, I used vi on a real physical VT100 terminal in the late 1980’s and with emulators in the early 1990’s to do all my work. vi worked great when you had full-screen 80x25 terminals, no GUI or mouse, and petrol (gasoline) was leaded. If you remembered the shortcuts, you could be pretty productive in it. I know the product very well. That’s why I used it back then.

But vi on a VT100 was more than 22 years ago. Technology has changed.

We use GUI’s and mice and touch screens now and have for a long time. We’re no longer limited to 80x25 and a keyboard and fixed-width fonts. We’re no longer sharing limited memory or CPU cycles on time-sharing mini-computers.

And text editors have progressed and improved a lot in 20 years. Autocompletion, color-coding, language recognition and macros are all part of modern text editors. Sure, these things have been back-ported and bolted on to vi to make Vim, but how has the process of producing, editing, reviewing and reading text improved?

I switched to BBEdit in the late 1990’s on the Mac (still my hammer tool today) and to UltraEdit on PC’s. And became more productive. Fonts, tabs, scrolling, color coding, keyboard mapping, macros, copy and paste, all available. I used Borland’s amazing Turbo IDE’s to program in Pascal and it was brilliant. And these days, I use Microsoft’s lovely Visual Studio for C# and Apple’s Xcode for programming iOS. For the last 6 years I’ve been using TextMate for Ruby on Rails work. Amazingly productive.

I have never been more productive editing text than I am today with the tools of today.

So what gives with the move to Vim? It’s like moving from a modern motor car back to puttering in a horse and buggy. I don’t get it. You can be as or more productive in a modern editor like TextMate knowing its shortcuts and using a trackpad than with Vim. I know, because I am. TextMate, even the 2 alpha, looks better, works better, displays text better, helps you program better, presents features and preferences better, installs easier and helps me make fewer mistakes.

Alex Payne writing in On The Flight to Old Text Editors had the same problem in 2008 and concluded:

That a new generation of programmers flocking to these old tools is concerning, if for no reason more selfish than the desire for peers in my dissatisfaction. Without a consensus that we can do better, there’s no incentive, no motivation, no market for improvements. If as modest a step towards a better editor as TextMate is abandoned, what hope is there for a true leap forward?

I, for one, want text editors to get even better than what we have and would purchase and use that leap forward product in an instant. Anything that makes text editors better and me more productive is a good thing. BBEdit, TextMate 2 and Sublime Text 2 are currently the leaders, but I want to know what’s next and who is working on this next leap forward. I’ll happily switch to it.

I’m @hiltmon on Twitter and @hiltmon on App.Net. Follow me and let me know what you think.

Hiltmonism - Minimize the Glue

Glue is bad. Too much glue and your systems and processes become rigid, inflexible and incomprehensible. In technology and in business, you need to minimize the glue.

Let’s start with a few definitions. Lets call a potential interconnection between two systems a path. An interface is code to import or export data from an application. Now we can define an integration as a process whereby data is pulled from one interface, travels down a path and is loaded into another interface. A reconciliation is the process of checking that the data that travels along paths matches in both systems. Glue are programs that implement integrations.

The common belief is that integrating ‘best-of-breed’ systems are good. You get the benefit of having the ‘best-of-breed’ system functionality for each function of your business with the ease of shared data and less reliance on a single vendor. In reality, you land up with a bunch of disparate systems, confusing support as vendors blame each-other, duplication of functionality, a massive amount of glue to share the data, a large number of reconciliation processes to ensure all is well and business decision making based on ‘gut-feel’ not trusted facts. And when the systems change, the glue has to, and that takes time and effort. And when the business changes, the glue has to as well.

I do believe that having the best systems for each part of your business provides great functionality, competitive advantage, flexibility and scaleability for that part of the business, and this is a good thing. The issue happens when you glue each part of the business to each and every other part of the business and land up with a lot of glue and a rigid structure. I see this all the time. If you could minimize which systems get glued together, you need less glue code to manage and change, fewer reconciliation processes and you gain more flexibility and scaleability for the business.

The network effect

If you have two systems, A and B, then to glue them together, you need two integrations, four interfaces, one glue program, and one reconciliation process, as follows:

Now add another system, C:

Now you are up to 12 interfaces, 6 integrations, three glue programs and three reconciliation processes.

Add another system, D:

Now there are 24 interfaces, 12 integrations, 6 glue programs and 6 reconciliation processes.

Add one more system, E, and the numbers get crazy:

You get the picture. Ironically, looking at the growth as I have presented it, it’s obvious that there is too much glue, but in practice, I do see this all the time, often with more and more systems in the mix. The glue exists because users may need it or the business grew without a plan to minimize the glue.

Minimize the glue

The solution is to choose which systems to glue, and, where possible, apply only a single integration in each glue code, in other words, only send the data one way. Choosing the glue becomes a function of choosing the single source of each data element, integrating only the paths that match business flow and moving official and necessary company reporting to the final destination systems only.

Let’s look at each.

If you have multiple systems with the same data in them, then integrating them such that this data flows in all directions between all these systems does not make sense. A change in any one system needs to be moved to all other systems, and reconciled to be sure that they are all the same and correct. But, if you select one of these systems to be the single, official or ‘gold’ source of the data, and only make changes in it, then you can push this data from the source system to all the destination systems. As long as the push program doesn’t fail, you can be sure they all have the same version of the truth and so do not need to reconcile.

If you have systems that work at the front-end of a business process, others that work at the middle and others that work at the back-end, integrate from front to back. In my experience, I have only seen a few areas where integrating back to front is necessary, and in those cases, only integrate a limited data set to keep the front-end systems in sync.

Finally, when you need integrated reporting, take these from systems further back in the integration flow. It is this that usually trips organizations up and leads to too much glue. A user uses a system but wants to report data from it and other systems, so glue is written to enable this report. But another user, elsewhere in the business using a different system also needs a similar report, so glue is written to that system as well. Invariably, you now have a one version of the truth issue in that, if unreconciled, these reports may differ significantly, leading to bad business decision making. The correct approach is to select which of these systems is further back in the business workflow, which has the most data fed to it, and to make that the ‘gold’ master for the report. You can email, portal or provide a client to the first user so they can see the same report from the chosen source.

That’s why I have a Hiltmonism to minimize the glue. Less glue means less to change when systems and the business changes, increasing flexibility and scalability. Less glue means less reconciliation needed which means people can spend their time performing business functions instead of reconciling. And less glue means keeping one version of the truth in sync and correct is easier, leading to a common business understanding across the organization and better fact-based decision making.

Export to Excel Is a Red Flag

As a developer, I often get requests from clients asking me if I could deliver them a spreadsheet using their data from their systems that contains X and Y and Z. As a maker of software products, I often get asked whether my product supports ‘Export to Excel’.

Most developers say yes, here is your spreadsheet and yes, the product has ‘Export to Excel’. My answer is different, it’s sometimes and no, and this is why.

The issues with data in Excel

For some, the biggest issue with sending data in Excel is that they lose control of it. They have no idea where that data will go, who is looking at it, how it will be used, and more importantly, how it is changed. Software products themselves ensure that the distribution and availability of data is strictly controlled by their security models. Once its in Excel, it can go anywhere.

For others, the biggest issue is that it’s too easy to change data in Excel, either via intent or by accident. Data loses its consistency and accuracy as it is changed manually. When receiving data in Excel, how does the receiver know if the data is original or manipulated? How can they tell if its correct or faked? Systems ensure consistency, accuracy and traceability, Excel has none of these things.

Another issue is that sending data in Excel introduces manual processes into a business. People get use to getting an Excel extract, manually manipulating it and formatting it and using it and sharing it. And the receivers of the shared sheets get used to their own manipulations and uses. All of these processes start outside the normal business flow, but become the core manual business flow. And once entrenched, they are hard to change.

Which leads to a lesser understanding of the business and the user’s needs. If the core business team are unaware of the needs being fed by the manual Excel flows, they don’t know to update the systems or fix their processes, or even know that things are going wrong. Once the data hits Excel, it’s like it left the building, and no-one knows what’s going on outside.

With these manual processes and data in Excel, the systems teams will never know what their clients’ true needs are and systems never get updated to meet those needs. Yet they get blamed for not doing the right thing because the Excel process is needed. In short, it’s a massive business communication breakdown.

The reason you have a software product in the first place is to get away from all these issues.

Outcomes of data in Excel

The not so hidden secret behind data in Excel is the error rate, leading to bad data, bad reports and terrible business decisions and outcomes (see a 2006 article in FT Beware the perils of spreadsheets for some examples). Error rates in manually changed Excel spreadsheets are high, and are difficult to detect. Accidentally changed cells, bad copy and pastes and incorrect formulae are not uncommon, but are commonly unknown. Excel spreadsheets have no testing or QA like systems do.

But data in Excel is often needed because the darn systems just don’t provide the right answers, so the workaround is necessary. The outcome though is that the Excel manual process takes over and the darn software never gets updated with functionality needed because the workaround works. Users are unhappy because the system does not work right for them and they have to perform all this manual work in Excel. So they stop talking to the developers!

Well of course the software can’t do it, the developers have no idea that the functionality is needed in the first place!

When is data in Excel it useful?

I don’t want you to get the idea that exporting data to Excel is evil in some way. There are some very valid uses for data in Excel and it’s the best platform for these uses, such as:

  • One-off data analyses, or to help define and understand a problem. Excel is a great tool to help someone analyze data to see if there is something there. End users can perform these analyses because they know how to use Excel. And if the analysis works out, it makes a great specification for a developer to test against.
  • Large scale, read-only formatted reports. The problem with the standard PDF or printed page is that it’s often too small to present information to users and decision makers properly, the report is too wide, requires more tabs or even needs some kind of graphics. Excel is good for this, as long as you make the spreadsheet read-only so that then end users cannot change it.
  • Data interchange. As a developer, there are many better formats like CSV, XML or JSON, but Excel has become the de-facto standard for regular people to share data with each other. As long as the sharing is not part of a standard business flow that can be automated, data in Excel is still the most common way to share, and its a good one. Data maintains it’s typing, structure and usability in Excel.

So what do I do?

When asked to provide data in Excel to a client, I first ask a few questions. I want to know if this is a one-off request, why they need it, what information (not data) are they trying to find out, and how they are going to use the data. In most cases, the request is because the client has a problem, has no way to solve the problem, so asks for data in Excel to see if that would help them get a better handle on it. A short conversation with a developer often leads to an easy system change that provides the answer. And if not, interacting with the developer over a few spreadsheets usually leads to a systematic answer, update or change.

And none of my products has a generic ‘Export to Excel’ function. They do produce specific Excel formatted documents for specific needs or interchanges. By not having this function, I find that clients and users come to me with problems that they cannot solve with the system as it is. Communication improves, collaborative problem solving ensues, and systematic solutions are created. The software gets better, the users get happier and none of the above issues occur.

So to me, the request for data in Excel is a red flag. Either the system is missing functionality that requires an Excel workaround, or there is a business problem that needs to be understood, or it’s a one-off. Only if it’s not systematic, or if it’s part of a automatable flow do I believe in releasing data in Excel format.

Take a look at what you do. If you spend your days opening spreadsheets and updating them, you’re doing it wrong. Get with the systems folks and get them to add the functionality to the software. If you rely on ‘Export to Excel’ from your systems to start a process, get the systems changed to implement the process instead, or buy one that integrates. You should only be using Excel to read complex reports, occasionally share data with other people or perform one-off analyses.


Excellent post by Aaron Mahnke called Entitlement about all those moaning about the new iPhone (although I think it applies to all new products), please read and share it:

Where is the sense of gratitude and wonder that we used to have? A tech company sells millions and millions of an amazing smart phone, but decided to create a new model by investing untold amounts of money and energy. And then they released it for the same price as the last model. They didn't have to, but they did. To moan and complain about that smacks of entitlement and selfishness.

Link: Entitlement — Aaron Mahnke.

Windows 8 Preview on a Tablet

While on holiday, I got to play with the Windows 8 Preview on a Samsung tablet. It made some notes of the experience, then decided to wait until I returned home to see what I remembered about the experience.

The tablet itself was larger than the iPad, a lot thicker, a lot heavier and had a lot more ports. It also came with a stylus and a keyboard dock which was useful in turning it into a laptop when needed. The screen was a 16:9 widescreen, bright and colorful, which made it amazing for the kids to watch movies on. The sound was loud and clear. All in all, the feel was hefty, but quite comfortable. The tablet hardware seemed solidly built.

What I really wanted to know was whether Windows 8 was any good. The hardware can only get better, but the operating system will stick around in it’s current incarnation for years to come, minor tweaks notwithstanding.

Metro, er modern UI style, er Windows 8, oh stuff it, I’ll call it Metro here, is very nice. Large clear fonts, accessible square buttons that change dynamically with content, bright colors, all good and easy to touch. You want to prod them and prodding works to launch a Metro app.

I found that the built-in Metro applications, once launched, seemed to be too much of the same: big titles, limited data display and lots and lots and lots of white space between elements, too much in fact. They could have used that space to show more of an email, or more contacts or more whatever. It felt like a blown up phone interface where the amount of content displayed was still being constrained by the small phone screen, and white space was used to pad it out. And each application looks the same, am I in contacts or email? I get that consistency is good, but without titles and differentiation, how does one see what one is running?

The big issue for me, though, is there’s no action list on what you can do once you are in a Metro app. No menus, no buttons, no icons at all. Metro relies too much on the user knowing gestures, the right gestures. You need to know to swipe up or down or left to get different panels, and I did not know. I watched the owner of the tablet swipe randomly in different directions until the right action came up, swipe, no, swipe, no, swipe, aaaaah. I suspect normal users will do what I did and give up in frustration until someone else shows them the gestures.

In fact, the gestures seemed to me to be everywhere and unclear. You need to gesture to log in, shut down, gesture to close an app, gesture to bring up menus. It did not seem intuitive, and even when I did know what they were, I still had to stop and think which one to make. I do prefer the Android and iOS approach that have menus and buttons visible to guide users into the actions they can perform, and use gestures to enhance the experience or provide advanced features.

Given the dimensions of the widescreen, the ability to gesture another window onto the side of a Metro app is great, you can see your contacts while typing an email, for example. In iOS, you need to four-finger swipe to switch screens a lot to get the same benefit. But I doubt most users will find this feature naturally, or figure out how to gesture it away when done.

And then there is Windows Desktop mode, for running Office and the like. This is where it really gets hard. Firstly, you cannot tell whether a Metro tile will launch a Metro or Windows Desktop app (there were two Internet Explorer tiles, one launched a Metro version, the other Desktop). If you do happen to launch a desktop app, the whole user interface paradigm changes.

Desktop mode is just like the Windows 7 desktop, similar chrome, similar Windows menus, toolbars, status bars and scroll bars. But the desktop UI text feels too small to read after the nice big clear Metro text, and this seems out of place on a touch tablet. The menus and icons are also too small, even the ribbon on the new Office is too small, for touch. Trying to use a finger to navigate these menus and applications is an exercise in frustration, you tap the right place but who knows if the menu or one of the toolbar icons gets the hit, so you often land up tapping the application, getting the wrong thing, then tapping furiously to get back to a clean app. The Desktop mode works fine when the keyboard is docked and a mouse attached, but it’s useless for fingers. I tried using the stylus instead of my finger, that helps, when we could find it, it kept on getting left somewhere else.

It sure seems nice in theory to run the same full desktop application on your tablet, and the theory holds when you plug in the keyboard and mouse. But using touch only, no way, the model fails badly. You just cannot make fingers small enough to match the size of a mouse cursor, and the desktop apps themselves would look weird on desktops if the clickable elements were enlarged for touch. Apple has proven that you can make fully functional touch versions of major desktop applications that do work with touch, but require a new interface. If Microsoft made Metro versions of these applications, it would work. But that seems unlikely.

The widescreen that looks great in Metro and for videos gets terrible when the onscreen keyboard comes up. There is simply not enough screen real-estate above the full size keyboard in landscape mode to make it viable. The keys are a good size, but you cannot see much of the web page or document above it. It would be better if they went for a smaller keyboard, or a more square aspect ratio for typing.

Based on my playing with the tablet and the Windows 8 Preview, I believe the following to be true:

  • Metro is a very nice interface for touch on a tablet, it looks good, is snappy and works quite well. But Metro apps need more navigation buttons and visual differentiation to make them useable, instead of all these odd gestures to make these things visible.
  • Windows Desktop mode on the tablet is a unashamed disaster without attaching a keyboard and mouse. Everything is too darn small to operate with a finger. And with desktop windows that move around, the touch targets are all over the place.
  • The schizophrenic mix of touch and desktop makes the whole experience quite powerful and extremely maddening at the same time, but mostly it’s just confusing. Will the next tap launch a desktop app? What gesture shall I use now? How can I get that fracking menu to come up with my finger? And what can I do now?

But the experience did prove two more things to me:

  • Microsoft can still innovate, and when they do, it’s great. Metro is an excellent start and a great alpha level interface, but more needs to be done to make it easier to use once applications are launched.
  • Apple has it completely right in separating the touch operating system from the desktop operating system interfaces, and in creating separate touch versions of applications. Desktop UI does not work at all with touch in the real world.

I’m pleased to see that Microsoft is getting into the touch business, and the Metro part has great potential. But the desktop part is maddening and ruins the whole experience on a touch tablet. In usability, Android and iOS remain far ahead.

Bye Bye Skitch, Hello LittleSnapper

Editor’s Note: Written six months ago, I’ve since moved on to using Glui - a better Skitch to replace Skitch.

Bye bye Skitch

I’ve been using Skitch to grab screenshots since the first beta was announced way back in June, 2007. I paid for Skitch Plus in February 2011 because I loved the product, and the work by Plasq, so much. Then Evernote purchased Skitch and I hoped that they would not mess it up.

They did.

In Skitch 2.0.

Bye bye Skitch.

For the record, I don’t use Evernote, I don’t like it. I tried twice, but still could not like it. See my Text Notes - Going Electronic. I just felt that my notes were no longer mine in Evernote.

With Skitch 2.0, skitch.com accounts are gone and Evernote is the only way to use it, save and share. There seems to be no way to use the product without an Evernote account. Each time you start it, it nags for an Evernote login. That in itself is a reason to drop the product. All I want to do is capture a part of my screen, possibly annotate it and drag the file to the desktop. I do not want to share the snapshot or log into Evernote at all. Can’t do it in Skitch 2.0.

Other annoyances (once you ‘later’ the nag screen) include the fact that it sits in the dock, it was better in the menubar, and the dropdown to choose what you want to Skitch sits plonk in the way.

So it’s gone. Uninstalled after all these years.

Hello LittleSnapper

So what now? I still need to snap screenshots and the built in Grab application is not good enough.

Hello LittleSnapper.

From RealMac Software. The good folks who make RapidWeaver which I also used to use for ages. LittleSnapper is easy to launch, no nags, sits quietly in the menubar, easy to snap and easy to annotate, just like Skitch used to be. Sharing is not as comprehensive but ftp, sftp and flickr are good enough, and I don’t really need it anyway.

But my most common usage pattern works great. Launch LittleSnapper, ⌥⌘4 to go into area snap, drag an area on the screen, click ‘snap’ and the image is snapped to the library. Drag to desktop and off I go.

I actually do like the library and organization features, and am starting to use the Safari snapping features for client sites. I have no idea why all my images are tagged as ‘unprocessed’ but it does not affect the working of the product.

I have also created a ChronoSync document to sync the LittleSnapper database between my laptop and desktop so nothing gets lost. Since it is a single-user database, the only rule I follow is that no LittleSnapper’s are running during a sync so the database remains safe.

It’s really nice when one product gets destroyed that another great, even better product is available to replace it. So those of you who liked Skitch, join me in switching to LittleSnapper.