Friday, July 10, 2015

Wailing and gnashing at Excel

I just tripped over a monu-$@^*#(%-mental UI "bug" in Excel (for Mac 2011)! Please permit me to rage against the machine, and perhaps help someone else avoid this gotcha. :-(

In large multi-sheet Excel workbooks, I often use color-coding of sheet tabs to provide some visual grouping of related tabs. And such colouring can be applied en masse by selecting all the relevant tabs together via the usual Shift or ⌘ methods. I just did precisely that to 6 sheets within a 30-sheet workbook. Each of the six contained a table, identical in dimensions to the others, providing related but different functions.

Now colouring the tabs is really just one example of a more general feature of such sheet grouping -- i.e. group editing. And it's a very useful feature, especially when the sheets have common aspects. In my case, each sheet with its table acts like a software function or module, and just like in software it's not unusual to want make the same kind of change across a set of functions/sheets.
Not unusual, but not always. You can probably guess where this is going. Immediately after colouring the group, I needed to make a change to one of the sheets. It was a substantial change to the formula in every cell within that sheet's table. I changed one cell, made sure it was correct, and then copy-pasted the change to the rest of the table in the sheet. Or, I thought it was to the rest of the table in the sheet.

You see, when a number of tabs are group selected they remain selected until another tab, outside the group, is clicked. Now that's fair enough, but far less fair enough is that the fact that the sheets are still grouped is not very obvious. There is a slight change to the shading of the selected sheets, but it's subtle and doesn't stand out when neighbouring tabs are also part of the selected group.

So after applying the colour, my group of tabs remained selected, a fact that escaped my Friday-evening-and-been-hacking-Excel-all-day weary eyes. Since I was still operating within one of the grouped sheets, they all stayed grouped, and my edit, intended for only one of the sheets, was applied across the entire group, essentially making all six sheets identical. Although the sheets are related (hence the colouring in the first place), their respective formulae are both different and fairly complex. Wiping out that complexity in five of my six sheets kinda ruined my evening.

Of course Excel left the best bit to the very end. Deciding I hadn't suffered enough, the world's most popular spreadsheet program delivered its coup de grâce. Such group edits have no Undo option.

Wednesday, April 1, 2015

Happy Birthday To Us

Today's date is not necessarily the best on which to make any kind of announcement, and it's true that the complexity of growing an international business from a standing start can often feel like an April's Fool joke, especially when I consider all the silly government-induced things we need to put up with. But it's true; Verilab is fifteen years old today!

Glasgow Herald, 2000

Mark, Jason and I started in Scotland on this same date in 2000, about a week before NASDAQ peaked and then began its heady fall. (Sorry world, we never meant to burst the bubble.) A year or so later, we opened an office in Germany, and then around 2004 we arrived in Texas. Today we have people in those places, but also in: England, Oregon, Washington, Ottawa, and Quebec. The number of states and countries in which we serve clients is at least double that. Overall, across many hundreds of projects, we have seen all the very best (and not-so-very-best) in the development of advanced silicon system. In fact, I think it's likely that in Verilab there lives the single most concentrated collection of tool-independent chip verification expertise anywhere on the planet. In pursuit of the goal of helping clients to "tape-out" as quickly and as safely as possible, if we haven't seen it, it probably doesn't exist.

Well done and thank-you to all the team, our illustrious alumni, our many-splendored clients and partners, and of course our significant and long-suffering others. Happy Birthday to Us!

Thursday, March 12, 2015


Just got back from a bunch of us from Verilab making our annual Journey to the West, to attend DVCon, one of the main conferences for our field. Wrap-up here.

Saturday, March 8, 2014

The Entrepreneur's Creed

Numbers and numerical analysis aren't my favourite part of running a business, but they're not far off it. I wrote the following as a reminder, advice to a young entrepreneur if you will, of the importance of getting to know your numbers. Based, of course, on Major General William H. Rupertus's famous lines.
The Entrepreneur's Creed
These are my numbers. There are many like them, but these are mine. 
My numbers are among my best friends. They are part of my life. 
I must master them as I must master my life.

My numbers, without me, are useless. Without my numbers, I am useless. 
I must keep my numbers true. I must use them to turn confusion into clarity, and complexity into simplicity. 
I must overcome complexity before it overcomes me.

My numbers and I know that what counts in business is not the calls we make, nor the noise and smoke of our marketing. 
We know that it is the value delivered to customers that counts. We will deliver value.

My numbers are human, even as I, because they are part of my life. Thus, I will learn them as a soul-mate. 
I will learn their weaknesses, their strengths, their parts, their deeper levels, their ratios, their essence. 
I will keep my numbers precise and ready, even as I am ready and diligent. We will become part of each other. 
My numbers and I are the defenders of my team and my company. 
We are the masters of our field. We are the heart of success.

Thursday, July 11, 2013

Let's Talk About Me!

Digging around some old emails I came across an interview I did a few years ago for Hi-Tech Scotland Magazine (now defunct apparently -- hope it wasn't my interview that killed them!) Thought I'd post it here, with a few editorial updates where needed. It's in the typical question and answer format.

HTS: Describe your current role.
TK: I'm the overall manager of Verilab. For the UK parent, that's the Managing Director. For our German subsidiary, Verilab GmbH, I'm the awesome-sounding Geschäftsführer. And I'm CEO for the US subsidiary, Verilab Inc. In fact though, all three company entities form one team and I run that from Austin, TX. [Ed: we now also have Canadian teams in Ottawa and Montreal, under the fourth in the group, Verilab Canada Inc.] In theory, the most important part of my role is really, at the risk of sounding pompous, "Keeper of the Vision". My team work on very tough technical problems across Europe and the US, in projects that are often rapidly approaching key market windows and so are short on time and high on pressure. My job is, in the midst of all that stramash[1], to keep in all our minds what we formed Verilab for - to be the "McKinsey of VLSI engineering".

In practice though, I do what all small-firm CEOs do - anything and everything that needs done. Because we're a services firm, we bump into lots of government rules and regulations. I deal with those. I plan and monitor financial performance. I am constantly building and developing the operational infrastructure - HR, Engineering, IT, and so on - to allow us to continue to grow. And so on. It's busy!

HTS: When did you first become interested in technology as a career?
TK: Well, when I was three, I'm told I was hauled off a chair while trying to "fix" the Christmas tree lights with a screwdriver. And in primary five [Ed: US 4th grade] I announced that my ideal career was "Quantum Mechanic". Basically, I've always been interested in technology. I did hover between pure science and engineering for a while, and still harbour a secret desire to do physics. But as soon as I discovered microelectronics, I was so fascinated by those wee black packages on green circuit boards, I decided that's what I'd be working on.

HTS: Broadly speaking, from your own perspective, what sorts of technologies are likely to prove important over the next 10 years?
TK: Anything to do with communication - hardware and software. Every time I fly, I'm frustrated that I can't use my cellphone or connect to the internet. That's going to change. [Ed: Done!] I now have GPS in my cars, but it's annoying that they aren't linked to something like Google maps, or updated in real time. That's going to change. [Ed: Done!] My company has people at clients from California, through Texas, to Edinburgh, and on to Dresden. Despite all the current technology, I still can't get easy-to-setup, high def video conferencing with my teams, from& wherever each person is. That's going to change too. [Ed: Still not done :-( Come on video people: I have pain, I have budget, I am the decision-maker. Give me a call!] I believe that the difference between what I knew as IT as a kid (the build-it-yourself ZX-81), and what I see today, is just a small fraction of the difference between what the kids of today are seeing and what they will see in thirty years. Even the next ten is going to be awesome. And a huge part of that difference will be not from increased computationper se, but from increased communication.

HTS: Was it always your ambition to work overseas?
TK: Overseas in general? Not really. But I've always been a fan specifically of the USA and always wanted to spend some time there. Before moving, I really bought the message of their Lockean philosophy of respect for life and liberty and private property (the "pursuit of happiness" bit always struck me as a bit superfluous when you have the others, but that may just be my inner Scot speaking). And I also believed that precisely because of that philosophy, they were a much more productive nation in business than most of the rest of the world. Now that I have direct experience of the differences between Europe and the US, I think I can confirm that US folks are indeed often more productive in general [Ed: they certainly take fewer vacation days]. But, unfortunately, I've realized that on the philosophy of freedom side of things, there is a bit of a gap between the ideal of their Constitution and what's happening day to day. Sometimes I try to remind them of that :-)

HTS: Has being Scottish ever been an advantage (or disadvantage) to you elsewhere in the world?
TK: It's been both. In general, being Scottish - or, more precisely, having a Scottish accent - is a big plus. People often go all sentimental when they hear my accent and say something like "Ye know,ah'm from Sca'lun' too. Ye ken?" Which typically means, their great-great-great-granny came from Dumbarton via Ellis Island. Also, Scotland is one of those places that everyone would just love to visit. So being a native Scot carries a lot of kudos.

The downside though is, as a thoroughbred Scot, having been born and brought up just outside Paisley, I think I carry some of what Carol Craig described in "The Scots' Crisis of Confidence". There's something about having lived and breathed the cauld rainy air for 40 some years, and having absorbed a culture that sees any display of wealth as ostentatious, that runs deep in a person and is hard to shake. Even today, having grown Verilab to an elite international consultancy of increasingly high reputation, there's still sometimes a wee voice inside that can say, "Here you, don't get too big heided".

HTS: Do you have any remaining ambitions?
TK: To really understand Wittgenstein's Tractatus Logico-Philosophicus.

[1] stramash [strəˈmæʃ] Scot
                   an upoar; tumult; brawl

Sunday, May 20, 2012

On video blogging - not

Because Verilab is spread over a chunk of the western hemisphere, getting regular news and status updates out to the teams can be a challenge. I've tried various methods, one in particular being short videos. I create them using Camtasia, which lets me capture not only my video and audio, but also screen activity like a PowerPoint or Keynote presentation, or maybe just the movement of the mouse across a spreadsheet as I describe the numbers. After minimal editing (I usually do the whole 10 minutes or so in one "take"), I export it to an mp4 file and then  upload it to our business Google Video area within our Google Apps account. Usually the videos are made visible for everyone in the company, and there's an easy default setting to allow that. But on the occasions where I'm addressing only one or two folk, that's easily done too. So far, so good.

But more recently I thought it would be useful to have those videos displayed in the context of a blog. The two big advantages of that are:
  1. It would let me include text and other media (like photos)
  2. It would allow the team to comment on what I was saying and ask questions
Another little advantage is that a blog provides an easy feed mechanism (e.g. RSS) so that the team can know when there's something to see. I know they hang on my every word and can't wait to see the next excitement installment of "Tommy Does Excel".

Of course in theory all of the above can already be done, given that the hardest port -- hosting the video -- is covered by Google Video. I could simply email the team when a new video was ready, and use that email for any text message or photos. And then they could reply to that email as a form of comment stream. But anyone who has frequented the "blogosphere", as either a blogger or a commenter, will know that an important component in determining whether or not you will participate is "friction". That is, all the little, even tiny obstructions that get between you and your thoughts being immortalized in text. There's too much to discus on that topic to fit here so all I'll say is that patched-together combinations of emails, hosted videos (that are linked from but not embedded in the emails), and so on all constitute too much friction.

So I've decided what I want is a decent company-internal-use-only video blogging setup that meets the following criteria:
  1. As easy to use, as an author or commenter or reader, as Blogger, or Wordpress, or Typepad, etc.
  2. Able to host videos of between 5 and 20 minutes duration, and to have those embedded within blog posts
  3. Uses EITHER one of our existing company authentication mechanisms OR a "stand-alone" authentication mechanism wherein the user is not required to create an account on some web service somewhere
  4. Allows for user-by-user authentication
Well, to cut a long story short, I failed. I simply cannot find, certainly among the widely available platforms, any combination of services to do the above. Here, for anyone wanting to avoid blind alleys, were the prime contenders and why they failed.

Wordpress hosted on

Wordpress is blogging software. But to use it, you need a place to run it and on which to keep the blogs themselves. One option for that is On its own, this fails 2 -- won't host videos. But that could have been solved using the not-too-expensive plugin. But the real problem was 3, authentication. Wordpress blogs do allow you to restrict access to certain users but the authentication credentials -- the information you provide, usually a username or email and a password, to tell who you are -- are the username and password of a account. In other words, to restrict my blog to be readable only by my team I'd have had to lock the whole thing down, and then open it up to my team based on each of them having their own account. That's a fail.

Wordpress hosted on our own machines

This is similar to the above in that it would use Wordpress software, but we'd install it on our own machines. Point 1 passed. Crucially, we all already have authentication credentials for that (because we use our company machines for a lot of other stuff), so this passes points 3 and 4. But the problem is hosting the videos, Point 2. We realized that in fact we didn't actually need because we already have a hosting solution -- Google Video for Business (i.e. within our overall Google Apps setup). All we have to do then is figure out how to embed those Google Video videos in wordpress posts. And can we figure that out? Nope. The Google Videos provide the necessary HTML snippet to share the video. And we even tested that that HTML worked by embedding it within a Blogger blog and a Typepad blog; both worked fine. But after several days of hacking, we can't get Wordpress to embed the video.  Of course this leaves as a loose end the option of self-hosted Wordpress combined with the plugin.  I may revisit that, but I don't hold out much hope for getting that to work easily when we've not managed to get Google Video embedding to work. I've no doubt we'd get there eventually, but getting a video blog is not the only thing we have to do with our time, and there comes a point when it makes sense to take the loss and move on. So, another fail.

MovableType hosted on

Analogous to Wordpress, MovableType is blogging software; and analogous to is, a hosting service. And in some ways this is the most promising of all. MT on handles embedding of the Google Videos fine. Authentication to *watch* those videos is achieved via our already-in-use Google Apps authentication. So all we need is something to restrict access to the blog itself (otherwise while unwelcome visitors may not be able to see the videos, they would be able to see everything else). And in fact, has precisely that -- you can simply password a blog. Yay! So it's passing criterion 3. The problem is criterion 4. Because the protection mechanism is a simple password *for the blog* (i.e. it is not authenticating on a per user basis), if someone leaves the company, I'd have to change the password for everyone. And in fact it would probably be wise to be changing the password every few months anyway, even if no one left, just to cover password "leakage" into the wider world. Fail! :-(

OK, but then I had a bit of a Homer Simpson "Doh!" moment. I've noted that we already have the video hosting part of the solution -- Google Video, part of our overall Google Apps setup. But in fact, we now also have that for the blogging engine too; Blogger, now owned by Google, is now (and has been for some time) available within Google Apps too. So:

Blogger under Google Apps

Well at first glance this looks perfect. Authentication is going to be the same as for the rest of Google Apps. Hosting of the video is also Google Apps. And embedding works (I tried it). I think we have a winner. Yeah, if only. To understand the problem it's necessary to understand that while Blogger is owned by Google and the service is now included within Google Apps, it is not -- unlike Gmail, Calendar, Video, and so on -- a core Google Apps service. In theory, all that means is you don't get support for it from Google. But in practice the fact that Blogger is somehow less part of the Google Apps family has made itself known via a nasty little hole in Blogger authentication. Basically, what happened was this. After checking that the core functionality -- blogging, video embedding -- worked, and that the security appeared to do what I expected, I then enabled all my team to read the blog. That's done within the Blogger dashboard and the result is that each user receives an email containing a link that they need to click to accept the invitation. Once that's done, they can then read my blog, and watch the embedded videos, providing their browser is authenticated with their Google Apps credentials.

The problem appeared when the Blogger invites were accepted by a few of my users who also have personal gmail accounts. It turns out that if someone is reading the invitation email and accepts the invitation while in a browser that is also authenticated for (i.e. logged in to) their personal google account, then although the invitation may have been sent to <persons-name-at-verilab>, it gets accepted by <persons-name-at-gmail> Worse, Blogger takes that acceptance as valid! In fact, if I, the inviter, look back at the list of people to whom I've given blog-reading permissions, the entry corresponding to that person has changed -- from <persons-name-at-verilab> to <persons-name-at-gmail> Failalamadingdong!

The only point in Blogger's favour here is that at least I -- the Blog owner -- get an email with subject "Your invitation was accepted using a different email address" and highlighting who the user in question is. But at that point, all I can do is remove their personal gmail from the list, re-insert them under their company address, and try again. Unfortunately if they again accept under a multiply-authenticated browser, the same thing will happen again.

Now, one of my users did argue that maybe Google were doing The Right Thing here. I invited Fred, and Google is permitting Fred access. OK I invited and they're permitting, but they know (not sure how, but they do) that those are one and the same Fred, so they're not being unreasonable. I have two problems with that.

First, from my point of view, and should be regarded as two different people from a security point of view. The reason is that it's conceivable that a person would apply different levels of "security in use" to their personal email versus their work email. For example, someone may share their personal email credentials with a family member, but not do the same with their work email. 

Second, even if I did allow for Blogger seeing two Freds as being the same, Google Video does not see that. So while either or would be able to read the blog, only would be able to see the embedded videos.


Well, the conclusion is, it can't be done. Of course, clearly it can -- all of the bits and pieces are out there waiting to be bolted together. But the same could be said about plain old text-only blogging in the days before blogging machinery. But blogging didn't take off until someone bolted together those blogging machines. So today, for your average small company, even your very technically able small company, getting a company-internal-use-only video blogging setup working may be more bother than it's worth.

But make no mistake, it's worth something. If I'm the only person who'd use this kind of thing, then I fully expect to be ignored and to see nothing change. But if there are enough of me out there (and YouTube, Google Video itself, and even wee curiosities like ConnectNote, suggest that there's all kind of demand for video comms bubbling under the surface), then it looks like an opportunity for some college-dormed entrepreneur or other. When you've got it up and running, I'll be your first user.

Thursday, March 29, 2012

On mats, and cats, and programming

You are a teacher of C++ or any of a number of similar languages. You are marking an exam. The first question is, "Write code to add 1 to variable x."

Candidate A's answer consisted primarily of the following:
x = x + 1;
Candidate B had, by contrast:
I'm guessing, but I reckon the majority of examiners would find no fault with Candidate A's answer. They'd do that because by most standards, there is nothing wrong with Candidate A's answer. It means exactly what it was supposed to mean. It says what it was supposed to say.

Now; you are a teacher of English As A Foreign Language[1]. You are marking an exam. The first question showed a picture and the following jumble of words: "mat", "the", "sat", "cat", "on", "the".

The candidate had to "Rearrange the word jumble to match the picture."

Candidate A wrote the following:
On the mat the cat sat
Candidate B had:
The cat sat on the mat
I'm guessing, but I reckon the majority of examiners would find fault with Candidate A's answer. They'd do that because by most standards, there is clearly something wrong with Candidate A's answer. Although it means exactly what it was supposed to mean, and says what it was supposed to say, it's wrong. It's not how English is spoken by English speakers.

The difference is simple. In natural languages, idiomatic correctness is seen as being part and parcel of overall correctness and we don't stand for it when it is missing. By contrast, we seem to tolerate its absence in programming languages?


[1] I chose EFL instead of just English for my example, because lets face it, the more enlightened examiner may give more marks to "On the mat the cat sat" to reward its more poetic quality, a quality lacking in the idiomatically correct but more mundane, "The cat sat on the mat". But EFL is, sadly perhaps, more about simply getting on in English speaking environments than about writing poetry.