Getting to "yes" in a world of "no"…

The Eclipse IDE – if you use it (as I do), you probably love it (as I do). But occasionally you’ll run into stupid, historic things that Eclipse does that are broken and have hung around in that state for years.

workspace_loc and project_loc are exactly two such things: these have been known to be broken since at least 2002 (and heaven only knows how long they had already been broken by then).

What you’re supposed to be able to do is to use these to define path variables relative to your workspace or project, so that you can move projects around and rename them nicely. For example, if your workspace and project were C:\MyWorkspace and MyProject (*sigh*), ${workspace_loc} is supposed to return “C:\MyWorkspace”, while ${project_loc} is supposed to return “C:\MyWorkspace\MyProject”. There’s also some slash-themed trickery whereby (I think) you can automatically swap slash directions to match your operating system: e.g. ${project_loc:/include} should get mapped to “C:\MyWorkspace\MyProject\include” in a Windows box etc.

The problem is that… none of this works at all. Or rather, it seems that this mechanism used to work on the “Navigator and Package Explorer perspectives” (I saw claimed in an ancient comment online, though I’m not even sure it works there any more) but not anywhere else.

So, if you try (as I recently did) to use ${project_loc} to set up a project-independent include path in Eclipse (which you’d have thought would be a completely sensible idea), you can’t. It doesn’t work.

I do have a workaround, but note that this only works for me because all my source library subtrees happened to be exactly one directory level down from the main project directory. It’s a bit old-fashioned, but all I did was replace…
* “${workspace_loc:library1/include}”
* “${workspace_loc:library2/include}”
…with…
* ../library1/include
* ../library2/include

If this trick works for you, feel free to shower my board with virtual gold coins, Frank Marshall-style. 🙂

(3) Right click on the cmd icon that appears at the top of the list dynamically generated above it and select

Run as administrator

(4) Congratulations, you now have command line with administrator privileges. Now, type the following two commands to launch Windows Device Manager in a way that allows you to view unused ports (note that some websites misspell the name of the environment variable in the first line as “devmgr_show_nonpresent_devices”, which doesn’t work, *sigh*):

set devmgr_show_nonpresent_devices=1
devmgmt.msc

(5) Congratulations, you are now running Device Manager with secret settings. From the menu bar, enable the following entry (and make sure it ends up ticked):

View -> Show hidden devices

(6) Now you should be able to click on the Ports (COM & LPT) icon to have a look at all your COM ports, both used and currently unused. Right click on the particular unused one you want to remove (I had 40 of these before I found out this trick), and from the context menu select:

Uninstall

(7) Confirm that you genuinely want to uninstall it: and there you go.

As far as I can see, the self-declared “Islamic State” Caliphate is formed of two major components:-

A whole load of weaponed-up fundamentalists (many of whom are just kids); but who are obviously being funded by…

Some seriously well-connected chancers who are siphoning off extraordinary amounts of oil from Syrian oilfields and selling them to third-party chancers with passing oil tankers.

Really? Yes.

Why does the world not treat Syrian oil as a conflict mineral, and find a way of putting some tracer element into the source oil that can be easily detected downstream, but would survive the oil refining process?

Never mind having “a tiger in your tank”, lots of people around the world now have a Caliphate in their tank.

Do you think it’s nice having diesel under a pound a litre? No, not if it’s conflict diesel, it certainly isn’t.

All the while people focus on tackling the fundamentalists, they’re missing the whole funding issue.

In short, “Islamic State” is nothing more complex than a high-growth startup with a novel funding model. But we need to make their access to funding more difficult.

I’m sorry to have to bring this up, but over the last few weeks it feels to me as though startups are reaching some kind of tipping point: they have become a kind of modern cargo cult. My son, emboldened by the descriptions of startups and pitching permeating the media, has occasionally begun trying to lecture me about New Business, innovation, invention and all the rest of the same sorry mess

Eskimos / ice etc.

I want to inspire him, sure: but how can I get across to him that even if you have an incredible idea, have a powerfully persuasive plan, and can demonstrably prove that you are utterly brilliant at executing such plans, pitching conceptual businesses is an extraordinarily poisoned chalice?

For when you go a-pitchin’, who is on the side of the table?

* Grant-giving organizations – I don’t think so. *choke*
* Angels – really? Really?
* Angel syndicates – hilarious.
* Crowdfunding – good luck with that hoverboard, matey.
* Banks – banks and conceptual business are like oil and water
* Peer to peer lending – interesting concept, but very hard to find a middle ground.
* Private equity – not unless you know all the partners really well, and can scale your concept up to a $5m investment round
* UK Venture capitalists – not unless you have appeared on Newsnight and can scale your concept up to a $10m investment round
* US venture capitalists – not unless you have appeared on Fox News and can scale your concept up to a $20m investment round

In reality, startups circa 2015 have to look at different tables entirely:
* spin-in (where you sell revolutionary ideas into large, late-lifecycle corporations that have become innovation-free zones)
* buy-back customer-funded (where your major customers own you for a period of time, but you have a performance-led buy-back option)
* customer-driven pitches (where you build up a pre-sales relationship with one or two large customers)
* supplier-driven funding (where you build up a relationship with a factory that owns moulds you are deriving your product from)
* etc etc etc

In short, conceptual business pitches now need just as much active innovation for the funding-to-market business model driving their business as any hardware, electronics or software innovation. In many ways, the Widget part of the business equation has become the easy bit: funding, building out, and selling in is where the real innovation bottleneck now is.

But how do you squeeze such a radically different worldview in a PowerPoint presentation deck? It’s really not about high-concept Tech any more, it’s more about having a genuinely integrated approach to business that sees all the parts of the business landscape and finding the precise ways they can all link together that gives all the parties what they are looking for. In short, starting up is now actually all about business configuration innovation, if you can accept that as a genuine phrase without gagging. 🙂

Having been happily away from the London startup ‘scene’ for a little while, it was actually rather refreshing to talk with a friend about her startup ideas a few days ago.

The most difficult part of the conversation was getting across the central idea of building a scalable company – i.e. that, given that starting up a scalable company is almost exactly as hard as starting up a non-scalable one, why waste your time with the latter?

Scalability isn’t about making yourself rich, it’s about seeing the world as a long series of genuinely accessible marketplaces and distribution channels, all of which you can get to from wherever you happen to start. Contrast that with being, say, a maker on Etsy etc: all such ‘creative platforms’ tend to do (in my opinion) is encourage people to build their own never-really-satisfying niche, and then lock themselves firmly into it. It’s nice but… not really (capital-B) Business in any properly entrepreneurial sense.

But at the same time, as we were talking I felt like I had silently morphed into a bit of a dinosaur without even knowing it. For even describing ‘scaling’ in such openly conceptual terms is a bit of a cop-out, startup ‘Top Trumps’ word fakery more for PowerPointing than for actually using in The Real World.

What struck me is that the genuine craft of entrepreneurialism isn’t about “aiming for scalability”, but rather “avoiding nicheness” – for what’s worse, (a) being trapped in a ghetto, or (b) being trapped in a ghetto that you built yourself?

The problem with ‘scalability’ – and indeed with all the other over-blown and over-conceptualized ways of thinking about startups – is that they can so easily become slideware cargo cults, bullet-point lists of abstract qualities or attributes or methodologies that your new business Must Have In Order To Be The Real Deal. You know, like that whole Lean Startup thing. *sigh*

The sad truth is that most startups dismally fail to service even their most accessible, best-understood markets: and so the whole notion of being able to scale that initial hopeful venture to attack larger, more global markets is rarely little more than a tragicomic joke, albeit one that many angel investors like to obsess over.

So what’s the right answer, Nick?

I guess I’m as tired of “conceptrepreneurs” (for whom scalability is not only utterly essential but also the backbone of slides 3-5 in their killer presentation deck) as of “nichepreneurs” (who deliberately aim low, probably out of a misplaced sense of fear). For me, the former group embodies the pointless, ungrounded sophistication that is all too typical of urban startup discourse: while the latter group embodies the trembling wannabe naivety about business I run into all too often these days elsewhere. Both suck.

For me, startups need to be a living social revolution – if you’re not in it to dramatically change people’s lives for the better, you’ve probably wildly misjudged the value of what you’re doing. All ‘scalability’ therefore means is that you’ve tried to set things up so that The Revolution Can Go Big: but without a great big revolution right at its heart, that startup is very probably a waste of time / effort / money, sorry. 😦

Scottish Independence – so what happens next? This post gives you the answers to ten of the most pressing constitutional questions currently being asked.

1. What will the new Scottish currency be called?

This has already been decided: the Scottish “Poond”.

2. Will the “Scottish” Banks have to move out of Scotland?

Major banks will continue to be administered from the Cayman Islands, just as they have been for many years.

3. I have property in Scotland but live in England, will I need dual nationality?

As a transitionary measure, HMRC has confirmed that people with majority land assets in Scotland will by default be considered Scottish.

4. Will Her Majesty The Queen need a visa?

Yes, because Queen Elizabeth II will be a Scottish national by default (see question #3 above), she will pay tax in Scotland by default. The cost of keeping the Queen will therefore also fall to Scottish tax-payers. As a result, Her Royal Highness will therefore need a visa to visit Great Britain.

Moreover, Debrett’s has confirmed that because Her Majesty The Queen will be the first Queen of Scotland named ‘Elizabeth’, she will henceforth have to be known as “Queen Elizabeth I of Scotland, formerly Queen Elizabeth II of the United Kingdom”, or (more usually) “Queen Elizabeth I of Scotland“.

5. Will His Royal Highness Prince Charles need a visa?

Because Prince Charles owns more land in the rest of the United Kingdom than in Scotland, he will – unlike his mother – have British citizenship by default. He will therefore need a visa to visit her in Balmoral.

6. Will Her Majesty The Queen have dual nationality?

Until such time as Queen Elizabeth I of Scotland is granted dual nationality by the British Parliament, she will have Scottish nationality rather than British nationality.

Hence Scottish Independence means that Prince Charles will immediately become King Charles III (or perhaps King George VII) of the United Kingdom, and will have to abdicate should Queen Elizabeth I of Scotland become British again and wish to re-ascend to her former throne. According to Debrett’s, her official title would then be “Queen Elizabeth I of Scotland and II of United Kingdom”.

7. What will Scotland’s official name be?

Because Scotland had its own King when the Union of the Crowns began in 1603, the default constitutional position there is that a monarch would need to be put in place immediately following a vote for independence. Its official name would therefore be “The Kingdom of Scotland“, with Queen Elizabeth I of Scotland its first monarch since the 1707 Acts of Union.

The Scottish people would therefore need to hold a further referendum in order to choose whether to become independent of its own Royal Family.

8. What about the Union Flag?

Many historians and political commentators have pointed out that retaining the blue colour in the Union Flag following Scottish Independence would be historically anachronistic.

It has also been widely pointed out that the Union Flag’s current colours do not express the rich cultural diversity and cosmopolitan diversity of the nation: and so it does not genuinely reflect modern-day Great Britain’s ‘Union’ of cultures.

As a result, proposals to replace the blue areas of the Union Flag with the colours of flags representing nations with significant ethnic subpopulations – such as Poland, Pakistan, and India – are currently at committee stage, but no decision has yet been made.

9. What about North Sea Oil?

This will continue to be passed off as ‘beer’ in Scottish pubs.

10. Are you serious about all this?

I’ve seen many different definitions of technical debt (as it applies to software), but most of them are very specific and indeed often tied to some kind of technical debt metrics dashboard that vendor X is selling.

So when a co-worker asked me to define it a few days ago, I thought I’d better come up with something a bit more useful.

For me, “technical debt” is the long-term price companies pay for adding functionality and features hackily, i.e. without really thinking about how those changes impact architecture, documentation, usability, clarity, maintainability, etc. When the things that come back to bite you actually do bite you, you’re paying interest on your technical debt (i.e. you only pay it off completely if you can get rid of it).

Hence to assess your company’s current level of technical debt, you need to assess what proportion of work time a typical engineer spends actually working productively, as compared to performing other ancillary work-time activities that relate to dancing around the accumulated mountain of hacks and increments that it (perhaps laughably) calls its codebase.

Such unproductive activities include:-
* Finding, reading and understanding informal documentation (often left abandoned on internal Wikis)
* Working out how to add new workarounds to work around the current set of abandoned workarounds
* Spending time in meetings with other engineers trying to convince them that changing old code is a good idea
* Fixing regression failures that just happen to reveal old bugs that had previously been untested by unit tests
* Following arcane coding standards that have not been updated to reflect current tools and practices
* Reinventing software wheels because of policies that prohibit code reuse outside formal APIs
* Using log files to debug full stack builds (because they have become too complicated to use gdb etc)
* And so on.

The problem is that as a company’s technical debt reaches 80% or so, the company becomes largely paralyzed: while having a technical debt of 90% is close to terminal, with each engineer having on average only 6 minutes out of each hour being applied productively. Few companies can sustain this level of burden for long without collapsing.

What is not widely understood is that this isn’t just a feature of large companies with old applications. With their explicit reliance on incrementalism, Agile companies too can exhibit all of these problems if they have no engineers with architectural flair or no time explicitly put aside for refactoring. (The “Lean Startup” is no different.)

All in all, high technical debt can be a crushingly huge problem – how high is your company’s level of technical debt? Can you honestly say that it’s less than 50%?