On walkabout in life and technology

My Workspace

I have no idea why I am sharing this, but this is my current workspace:

On and around it you will find (left-to-right-ish):

This is where I work and spend my days. What does yours look like and what do you use - please link in the comments?

Warning: Some links on this page are affiliate links; I get a few pennies if you buy any of these products.

Follow the author as @hiltmon on Twitter and @hiltmon on App.Net. Mute #xpost on one.

Make Perfectly Good Mistakes

We’re not perfect, yet:

You can only learn from making perfectly good mistakes.

We all know of people’s reluctance to try things out in new software products because they are afraid of making mistakes and looking foolish. They are striving for perfect execution, yet unknowingly fail to learn the product or gain the benefits of its power.

Yet the failure to try new things is the biggest mistake of all. If you do not take a chance and try, you cannot learn anything.

Mistakes themselves are not bad. Making mistakes is not bad either. Mistakes are not failures. Instead, making mistakes is evidence of trying things out. And trying things out is evidence of learning. And learning is never foolish.

So go ahead, try things out as I do. And make a lot of perfectly good mistakes as I do. We will both learn new things, new paths, new ways, new techniques and also new things not to do. Make a perfectly good mistake, learn something, shrug and move on.

Think of it this way: One needs to make a lot of perfectly good mistakes in order to learn new things, grow and develop.

Follow the author as @hiltmon on Twitter and @hiltmon on App.Net. Mute #xpost on one.


punc·tu·al /ˈpəNGkCHo͞oəl/

1. Happening or doing something at the agreed or proper time; on time.
2. Denoting or relating to an action that takes place at a particular point in time.

precise - exact - accurate - prompt

One of my many peeves is with people who are not punctual. If we schedule a call or a meeting at a given time, I will be there, on time, prepared and ready to go. It’s only right that others do the same.

10:00 AM means “At exactly ten o'clock in the morning”, not 10:15 AM or 10:30 AM or later.

It really is easy to be punctual. We are surrounded by timepieces, on our computers, phones and even on our wrists. Our lives are all scheduled in calendars which automatically bleep reminders to all our devices in advance of an event. And we all know what’s in our daily plans because we continually check them, so it’s not hard to ensure we can be on time to each event.

Tardiness is disrespectfulness. A tardy person implies that they believe their time is more valuable than others, or in other words, they disrespect others. I take it personally when someone is 15 minutes late and offers no excuse. And I take it even more personally if the excuse is lame, or they could have called to let me know they were running late beforehand.

In fact, these days there is no excuse after the fact for being tardy. If your previous event is running late, or your transport is gridlocked, send a text or an email before the fact. Let others know that you are trying to be there on time and the circumstances in advance for being late. If the other person can accommodate, all is well. If they cannot, reschedule there and then. At least you respect them enough to alert them and give them a choice.

Now I understand that there are cultures where punctuality is not the norm. And douchebags who like to keep others waiting as part of their power games. I do not live in that culture, and I am not a power player nor politician. I have, in fact, gotten up and walked away on several occasions where I knew the person was alone in their room, but was making me wait on purpose.

And I accept that there are certain areas where service providers, like Doctors and Dentists, cannot schedule as tightly as they would like because they cannot know in advance just how long each consult will take and so make people wait. In that scenario, there’s still no excuse for the patient to be tardy, it holds up all later patients.

Whether or not you can plan the length of each consult, trust George Washington:

Undertake not what you cannot Perform but be Careful to keep your Promise.

A person who is punctual:

  • Has integrity, they make and keep their promises.
  • Is dependable, you know they will be there on time.
  • Has discipline, they planned to be prompt and are most likely also better prepared.
  • Has respect for others, as they are available as agreed when others are available too.
  • Is not a thief. If “Time is Money” then tardy folks waste punctual people’s time, burn their money and are therefore thieves (according to Washington).
  • Respects the relationship, a punctual person values the time they spend in the relationship.

So next time we schedule something, know that I will be there on-time out of respect for you and your time. I expect you to do the same. And if you are going to be late, text me, let me know in advance so I can manage my time better. Surely that’s a small thing to ask and an even smaller thing to grant.

Follow the author as @hiltmon on Twitter and @hiltmon on App.Net. Mute #xpost on one.

Analyst Expectations

Lets take a look at the Widget market. It’s maturing but still expanding, with sales growing to about 2 million a quarter.

An experienced investor, looking at fundamentals, history and buyer preferences, will expect Peach to sell 1 million Widgets and Pear to sell about 250 thousand, with the remaining Widgets being sold by others.

But lets assume the presence of an Analyst that wants to drive Peach’s stock down, and wants to promote Pear. They want to do this because that Analyst’s firm makes more money when Pear shares, securities and derivatives trade.

The Analyst cannot say Peach will sell 2 million widgets this quarter, that’s the whole market and will seem like an unreasonably large and implausible number to their clients. They also cannot say the correct number they expect based on fundamentals, because if Peach achieves that number (very likely it will) then the Peach stock price will go up, not what their employer wants. So the Analyst picks a number that sounds reasonable, but is made up, that will achieve their goal.

Lets say the Analyst picks 1.25 million sales. On the surface it seems a reasonable, if high, expectation. A long pass if you will.

On the other hand, the Analyst calls 150 thousand sales for Pear, also not unreasonable, a 2 yard rush, especially if Peach is growing quickly.

Then Peach announces its earnings. Revenue is up, profits are up, cash is up, debt is nonexistent and market share is up on great sales of 1.1 million Widgets. It is, in fact, Peach’s best quarter ever. Fundamentally, Peach just proved itself to be a more valuable company and it’s share price should rise.

The press and the Analyst report the Peach earnings as a miss, because Peach reported fewer Widgets sold than the Analyst made-up number claimed was expected, and the Peach stock price tanks. The Analyst’s company wins.

Later that week, Pear announces its earnings. Revenue is down, profits are negative, margins are down, market share is down, and debt is up on sales of 200 thousand Widgets. All in all, a shitty quarter by all measures for Pear. Fundamentally, this company looks worse, the prognosis is that it’s getting worse and it’s share price should drop.

The press and the Analyst report that Pear beat expectations and the Pear share price rises instead. It seems that Pear did better than the intentionally low-ball figure chosen. The Analyst’s company wins again.

It makes no sense. Fundamentally, economically, and return-wise, Peach is a good, sustainable business and Pear is a money-burning disaster heading over a cliff. Yet Pear shares go up and Peach shares go down.

Now replace Peach with Apple and Pear with, well, anyone else in the same space (or use Amazon if you wish).

It makes no sense. It’s wrong. Yet this is how it really works on Wall Street these days. And it’s perfectly legal.

I am expecting this scenario to play out tonight at the Apple earnings call, and at the next, and the next. Just like the last one and the one before. And there is nothing we can do about it.

Follow the author as @hiltmon on Twitter and @hiltmon on App.Net. Mute #xpost on one.

Apple's Scheduled Releases Are a Mistake

I think Apple’s recent move to annual releases for major products like iOS, OS X, iPhone and iPad is a huge mistake. It opens up too many cans of worms and is hurting the company’s public image and stock price.

Slogger After 6 Months

I have been using Brett Terpstra’s (@ttscoff) Slogger for the last six months, and I think it’s time to review it. Slogger is a script and a set of plugins that log your online activity each day into Day One, the best journaling application for OS X, or in Markdown files if you prefer. It’s a core part of my Backing up your Online Life process.

TL;DR: It’s totally worth taking the time to set it up and get it going. The data captured is so useful and often hard to gain access to, especially as we operate across many services, and as these services come and go.

Have to Have It Just to Have It

I often come across users who tell me they just have to have something in the software I am designing for them: some data or a report or an export. When I ask them how they use this requested item, or why they need it, they usually answer that they just have to have it. Sometimes, they even try to justify the request using the excuse that they have always had it, so they should continue to have it.

I’m sorry, but that is not a good enough reason to spend time and money.

The thing is, if you have to have it, whatever it is, then it must be useful to you, serve a purpose and be used in another process or decision. So if it is useful, then it should be also be easy to explain it’s uses and purposes. But if a user has to have it just to have it, well, that implies it’s not useful, and there is no explanation why it is needed.

It often takes an outsider’s mind like mine asking odd questions about why users need something that they obviously need or how users use something they have always used before folks start to think about what they do, why they do it and how they use it. When I get unsatisfactory answers to these questions, often an “I don’t know” or more commonly “Because we always have”, I usually decline to create the requested data, report or export. And, of course, I say why. I don’t know how it is used or where else it is needed, so I cannot design or execute it properly.

The first few times I say no to a have to have because they have to have it feature, people get frustrated and angry. Who is this outsider, this tech nerd, to question the need and the process that has worked just fine for ages?

But eventually, folks get over it and start to think. Why did the consultant say no? What reason did he give? And they start to think about how do they really use the thing they asked for, and why did they request it, and what they did with it in the past.

In some cases. we, the developer and the user together, eventually do identify a why or a how, and the feature gets implemented. But in an equal number of cases, we realize that it was unnecessary and unused and that request can be safely omitted.

This makes for happier users and workers as they can spend more time on the productive things they should be doing to benefit the team or company. Versus just pack-ratting data they had to have for no reason. And therefore not having the time to spend on the real work.

On the other side of the coin, clients do not pay us consultants to create data, reports and exports just because they are nice to have. They are paying us to create data, reports and outputs that they can and need to use to achieve their own goals. Any hours we consultants spend working on data, reports and outputs that our clients do not need or have to have just to have is time and money wasted.

It does seem wonderful to have software that does everything you want and provides you with everything you ask for. But it is far more practical, cost effective, efficient and beneficial to have software that does and provides for everything you need. Software that eschews the production of data, reports and exports that are unnecessary, and software that discourages processes that hinder the team or overload users without any real useful business benefits.

It’s really hard, though, to identify that which you need versus that which you just have to have just to have it. Especially if the business, task or process has been in place for a long time. Using a consultant, like me, with a fresh mind and different outlook to help you think through these questions while designing your next product will result in a simpler, more focussed product. And in a more flexible, nimble, happier and productive team.

Follow the author as @hiltmon on Twitter and @hiltmon on App.Net. Mute #xpost on one.

The People Who Love Something Are Its Best Critics

I have been accused of being an Apple fan-something as if this was a bad thing, a blinkered delusional existence, a sign of mental degradation. I could come back that it is a Stockholm Syndrome like relationship that binds Windows users to Excel, PowerPoint and Outlook. Or declare that Linux-on-the-desktop users are hallucinating when they claim productivity and usability in a sea of incomprehensibly complex, buggy and mediocre open source software.

It’s all bullshit, just name calling really, and that is so childish.

The people who choose to love something are its best supporters, promoters, and yes, critics. They don’t need others to call them names and drown their honesty in a wash of white noise.

The people I know who are the true Linux-on-the-desktop fans are also its biggest critics. They are smart, and express themselves clearly in an adult manner. They love the ability to tinker with Open Source, which is why they love Linux. Yet they criticize bad code and design in the harshest of terms. They love productivity and ease of use, and are extremely comfortable on their platform of choice, and again criticize vehemently when they don’t find it. They are happy to explain why their platform of choice works so well for them. They do this because they love Linux and Open Source, and hope their voices get heard to make their platform better. And I think it’s working.

On the other hand, I don’t know many who treat Windows in the same way. They seem resigned to the complex interfaces, slow downs, annoyances, chicken-dances, anti-virus alerts, reboots and The Microsoft way. So they don’t criticize it, they just keep using it. Maybe it is because they never got the opportunity to choose, their employers just gave them Windows and that’s all they know. And Windows users know their voices would not be heard anyways.

There are exceptions of course. I know several smart people who are on Microsoft because there is this one application that they love and use all the time and choose not to change from it. Good for them too, yet we treat them as being a tad “special”. Not true, they have made a considered choice too, and are fans and critics too.

For me, I’d like to think of myself as an Apple fan who tries to criticize them in private more than in public, mostly because of the noise that it generates that drowns out the actual message. For example, I am pissed at Apple for dumping pro and creative users for the masses, I am annoyed that a lot of the new software is buggy yet still ships and I am concerned that the pressure to innovate is hindering Apple’s ability to iterate (which is where Apple really excels).

I still feel that Apple produces the best hardware, the best operating systems, the best user experience, and most importantly, has the best indie software ecosystem. For me, for my needs. Which is why I still use and choose Apple products. It’s why I often talk about this ecosystem on this blog.

We, as an industry, need to get away from viewing fans of any particular platform as idiotic blinkered sheep and recognize that their love for the platforms they intentionally chose is tempered with a knowledge of that platform’s strengths and weaknesses. They have taken the time to examine each platform and found the features that make their chosen one work well for them. And become fans and critics of it in equal measure.

We need to be able praise that which we feel is great about our favorite platform, and criticize it just as harshly, without name calling.

I claim that I am a clear eyed, clear headed, big fan of Apple and its products. I am also one of its biggest critics. I hope to be heard so that the platform I love gets better for me, and maybe for others too.

And I expect you to do the same for the platform you chose. That way, we can make them all better.

Remember, the people who love something the most are always its best critics.

Follow the author as @hiltmon on Twitter and @hiltmon on App.Net. Mute #xpost on one.

18 Months of Octopress

A lot of reviews are written by people who played with the product for a few hours and report their first impressions. This is all about a product I have been using for 18 months every day: Octopress, the blogging platform behind hiltmon.com.

Before Octopress

I consolidated to hiltmon.com from a series of sites based on Wordpress and a static site generated by RapidWeaver.

The Wordpress sites drove me crazy. Wordpress itself was (and still is) buggy, inexplicably complicated and slow to render. Even though I became “expert” at Wordpress customization, I still found the experience of updates, fixes and customization to be heinous and painful.

Which is why the precursor to this blog was generated using RapidWeaver for the static parts. RapidWeaver made it easy for me to create photo streams and pages. But the process to update the site was the same as for manual, static sites, invariably requiring editing several files and pages even though RapidWeaver took care of the navigation for me.

Why Octopress

I wanted a blogging platform to produce:

  • A site without any dependencies on third party services like databases and execution environments. A web server should be all that is needed so I could run it anywhere.
  • A site that was blazingly fast to render for the user and could be cached on the server to enable even faster web access.
  • A site that used the latest HTML5 and CSS3 standards.
  • A site that did not require me to edit more than one file when making changes – a site where the navigation, sidebar, headers and footers would all magically updated as needed.
  • A site that looked great and focussed on readability.
  • A site that I could write using Markdown.

Octopress fit the bill perfectly.

Setting it Up

The initial setup of Octopress was very simple. I followed the installation instructions at http://octopress.org/docs/setup/, configuration instructions at http://octopress.org/docs/configuring/ and setup rsync deploy following the deployment instructions at http://octopress.org/docs/deploying/. And it just worked.

Later on, I changed the asides list to add my information block and to display products and tweets. And even later I added a logo to the header, the ad at the right, a new font and the donation button.

Customizing It

Given that Octopress is a wrapper around the lovely Jekyll, you need command line fu to operate it. The commands are simple and well documented, start with rake -T.

Since I am lazy, I scripted up the set of commands to create new posts and publish the site and wrote about it in Octopress Post and Publish. After 18 months, using these macros are habitual.

Seeking Annoyances

I only have two annoyances with Octopress, both of which can be resolved but, well, I never actually needed to do so. Because they really are not annoying at all.

My biggest annoyance was that I had to give up my beloved MarsEdit for blog writing. Sure, I know there’s a scripting hack to make it work, but I don’t want multiple copies of files everywhere. Given that Byword and Marked have come out since, this is no longer an issue. But I do miss MarsEdit.

The other annoyance is generation time. I use the rdiscount markdown plugin so it is the fastest. And I do rake isolate posts while writing and previewing so that I can write and preview in real time. It’s just that the whole site generation takes some time. This too is no longer a real annoyance because I now have an SSD. And in the upcoming release, I expect partial regenerations to be available.

My Octopress Experience

Since I switched to Octopress 18 months ago, I have published 385 posts containing 217 images. I have updated the core product a few times without issue. The blog has survived some pretty heavy traffic days. And yet I have been able to stay on the cheap Dreamhost hosting. And I have moved my Company sites over to it as well: Noverse and Shukaico.

Brandon Mathis (@imathis), the developer behind Octopress, has really done a top-notch job with this platform. You can see the care and hours he spent in making the platform work well and look amazing. Most Octopress installs don’t even change the default theme because it’s just awesome. And some top bloggers like Matt Gemmell use it. Brandon also happens to be a seriously nice guy and is very responsive on Twitter.

In short, switching to Octopress 18 months ago was a brilliant decision for me and I still love the platform, the look and writing workflow. If you are looking to replace your outdated, heavy blog with something technical and beautiful, I cannot recommend Octopress more.

Follow the author as @hiltmon on Twitter and @hiltmon on App.Net. Mute #xpost on one.