The unemployable typically go out with a bang

Leaving an employment with a bang might be a way to let some steam off, but it also might be limiting a person’s chance of landing the next employment role. Before you post a rant, sleep on it and see if you would still do it the next day.

Every now and then someone departs a job at a well known company then blog about all they’ve seen as evil at now former company.  It usually triggers a flurry of commentary. This is just what happened with a former Apple employee blog posting. This is rarely a wise thing to do, but hey, move fast and break things doesn’t mean there would be no consequences.

While such essays might amuse the gallery, gain the author some form of  ephemeral fame, they may also have an influence on such person’s employability. For example, whenever I hired someone, I often took what they said about their former employers to be a template of what they would eventually say about me and my company. In most cases I don’t hire a person that slags their former company off, it’s rarely a good sign.

People might have, legitimate or not, reasons to rant about former employment. In many cases, it says more about the person than the job they’ve just left. Obviously I don’t know if there’s any legitimate reason for this person to have ranted the way he did. I am just commenting on the act, as a cautionary tale for the would-be hipsters that might be tempted to copy-cat at each opportunity.

After all, if/when some reprehensible activity should be going on at a company, whistleblowers might help bring to light such misdemeanours. That could be ultimately beneficial to the society. But, in all likelihood, for every whistleblowing action there’s probably  dozen of frustrated over-reacting actions.

I wouldn’t go out with a bang if I have hope to land another job somewhere else in the future. There are other ways too. It could be much more productive, while still in employment and actually not fearing of getting fired, to internally vent any frustration one might have. It’s also good to check if the reasons for your frustrations are shared by many or not. If nothing helps then leaving with the good memories is often a better attitude. After all, while at an employment one enjoys some of it and are hoping to help build something up.

If I have a few words for the up and coming professionals: Look for reasons to celebrate something, consider any crap to be the part of unavoidable combustible fuel for moving forward.

Could Microsoft’s Windows 8 turn out to be like Novell’s Netware 4 story?

According to Paul Thurrott, Windows 8 is tanking harder than Microsoft is comfortable discussing in public, and the latest release, Windows 8.1, which is a substantial and free upgrade with major improvements over the original release, is in use on less than 25 million PCs at the moment. That’s a disaster

I couldn’t help seeing a parallel between Windows 8 story as told by Paul Thurrott in his latest blog post and what happened with Novell and Netware 4. I was triggered by this phrase:

Windows 8 is tanking harder than Microsoft is comfortable discussing in public, and the latest release, Windows 8.1, which is a substantial and free upgrade with major improvements over the original release, is in use on less than 25 million PCs at the moment. That’s a disaster…

What’s ironic is that, Microsoft was the one who pushed Novell to outdo themselves, and they came out with Netware 4, from which they never recovered.  I remember well when Netware 4 shipped and changed everything.

The blog mentioned: “Threshold” to be Called Windows 9, Ship in April 2015

Software is hard: things get lost in translation

Software can be hard, especially when one is not prepared for it to be so. When something goes wrong, more often than not people are looking at the wrong place or laying blame at the wrong place. This blog provides an oversimplification of the issue.

It’s a euphemism to state that software is hard. It’s hard work. Anything seriously worthwhile is going to take grit and toil. Don’t let all the self-help marketing tell you otherwise, if you do you would actually make it even harder for yourself.

One reason software can be hard is that snowball effect is very common and can quickly result in avalanche-like consequences. So I wrote one reason, not the only reason, not the main reason, just one reason. I am not going to produce long studies, hard numbers or anything of that kind here. Instead, I give an oversimplification of the way the snowball effect, the trickle down with an ever-expanding area of influence, can be visualised.

Illustration, how small issues can trickle down
Illustration, how small issues can trickle down

Whenever something goes wrong, which is to say very often, a good way to go about finding solutions is in re-examining things all the way from the top and work your way down. Which place to start, which direction to go (top-down, or bottom-up ) is a matter of taste, choice, context, but usually just a personal one. Since, quite clearly, it is a complex matter, looking for solutions in a random manner can be extremely inefficient and may never yield any result.

A corollary of this situation is that, software can result in ever-expanding benefits if things go well. Such benefits could be much more than winning the lottery for example. If you revise the diagram, take expressions like “things can get in the way”, “human condition”, “distraction” and turn them respectively into “things can contribute”, “human insight”, “epiphany” or “serendipity”, and you have a different diagram and positive outcome.  Concerns like “fear”, “doubt”, “politics”, “unexpected changes” typically have a double-edged sword effect to them. These can have positive effects when properly leveraged, or negative effects when they actually lead us to inaction or unproductive behaviour.

With software, bad things and good things, don’t only travel top-down or bottom-up, they typically start somewhere and expand like fluid dropped on a piece of absorbing cloth.

Whether are a manager or a doer, next time people rush into quick explanations or laying blames, invite them to look just a little further, to take a deep breath, to just sleep it over, and reconsider their positions. More often than not, the outcome could be different. Taking that chance to just delay conclusions a tad is usually a good bet, a profitable investment strategy.

Web App Development still mainly reduced to publishing and consuming HTML.

Web standards focus more closely on moving forward publishing concepts, and much less on application foundations. Web as a place for publishing is reductive, in my opinion, it plays up visualisation and plays down other aspects such as exchange, translation, communication. We may still be at the cusp of a revolution that has yet to take its definite shape.

Every week I see some articles discussing web app development, and 99% of those only talk about manipulating HTML. It is as though web applications were only about publishing, whereas the way the web serves people today has largely evolved beyond publishing. As popularity would have it, most people involved in web development, the publishing side of it that is, have no formal background in publishing.

As far as I can see, there are lots of W3C and other open initiatives that strive to move forward web standards. W3C HTML groups seem particularly focused on publishing, as in the modern day version of what used to be print publishing (Gutenberg like). When I see talks about semantic HTML, I only see document oriented standards, but nothing seriously useful from an application architecture perspective. OWL doesn’t appear often in the popular architect and developer forums that I frequently visit, the more I look into OWL, the more it reminds me of the way CORBA went. OASIS is very heavily XML focused, which to me is one extra indirection from the basic concepts we manipulate when discussing applications. I tend to think of OASIS as the corporate web world, large companies trying to find common grounds, a bit less about pure and lean application architecture. I don’t see much else popular W3C efforts pushing application standards forward.

Numerous communities have thrived on the many shortcomings of web app development, and that’s a blessing. On the data presentation side, you have some thriving JavaScript frameworks such as jQuery, Emberjs, Angularjs Backbonejs, D3, and many others. These aren’t standards, but I wonder if W3C should just extend itself an bring in these communities somehow (I’m thinking of HTTP 2.0 for example, the way it relates to Google’s SPDY). Beyond this three’s not much else happening with any significant momentum.

If web browsers are only good at manipulating HTML assets, then it would probably be useful to have a new platform for web powered applications in general with HTML manipulation as just a subset of its functionality. There’s been a couple of products, Flock was one, but they didn’t really catch on. I don’t see much else happening in the way of truly facilitating web-enabled applications. This is leaving the field to only publishing oriented experiences. Ubuntu has taken an interesting approach that, at least fits in the way I’ve long envisioned web powered applications. The Web of Things could have been such next-gen platform, if only it didn’t brand itself as hackers’ and tinkerers’ Toy?

For the time being, only web publishing seem to get most attention, that’s where the money goes. We might as well learn a bit about publishing, the blending of apps thinking and publishing concepts may yield new kind of experiences that would enrich the web.

OSX Mavericks is actually ready for the public, it rejuvenated my MBP late 2008!

OSX 9 Mavericks is ready for the public, not just developers. I’ve upgraded a MacBook Pro Late 2008, the installer only asked if I wanted to continue but after that I didn’t get any other question. Once the installation was complete about half an hour later, I could just carry on working where I left off. So far, my laptop actually feels faster, and I am hoping that the battery would last longer on a charge. That’s the only thing I need to witness now before I declare this a great great OSX upgrade.

I know, I know. You don’t install a beta software on your production (everyday) computer. But you know what, blame Apple for all this as they showcased battery-saving old-laptop-life-extending performance-boosting features in last week’s WWDC. From the moment I watched the keynotes my dilemma started, how long was I going to wait to get this stuff on my ageing MacBook Pro Late 2008? Finally, I cracked and upgraded my laptop to OSX Mavericks.

My experience? Well, it felt like it was just a regular patch install or something like that, rather than a major upgrade. If this is what they call beta, then I’d install a beta anytime. I downloaded the beta, installed it and only had to confirm I wanted to install it, it took about 30min to install and restart. When it restarted on OSX Mavericks, I could just continue working where I left off without touching anything at all, absolutely everything I had before was preserved intact where I had left it on OSX Mountain Lion!

Here I was, a mere 45min after clicking “Install OSX Mavericks”, using the brand new bleeding edge OS without having to answer a single question or any form of trouble!

I was thinking that there’s bound to be a catch somewhere, surely something would fail, I’d see some nasty error messages popping all over the place! Nope, none of that occurred, not a single error popped up, not a single trouble so far. I found it hard to believe that would be the case, still expecting something nasty to happen anytime but that may just be paranoia.

Here is the list of programs I am able to just carry on using after installing OSX Mavericks beta 1 without even touching a thing, not even changing a setting, just start it as usual and use it:

  • Google Chrome (both Canary and regular), I also listen to BBC Radio or RTS (Swiss) with this
  • Firefox (latest) and Firefox Aurora
  • Dropbox, Box, Google Drive, Alfred
  • Parallels Desktop 9 (that’s also a beta software)
  • Omnigraffle Pro, Pixelmator, Evernote, Skitch
  • Intellij IDEA 11,  Eclipse Juno, XCode
  • Apache Tomcat, JBoss, Mule ESB
  • Ruby on Rails (3.1.13 and 4.0 RC2)
  • Postgresql 9.2, MySQL 5.6
  • Homebrew (brew), Ruby version manager (RVM)
  • Apple’s iWork: Pages, Numbers, Keynote
  • LibreOffice 4

You can see there’s a lot of software development products, despite that nothing broke. I thought Rails (Ruby on) would certainly fail, or that something like ‘bundle install’ would choke. Nope, they all worked fine just like before. I did notice that Chrome Canary would have a rendering problem in between previews while writing this blog post, but that’s it, and that is actually normal since Canary itself is a bleeding edge program.

What else can I say? Without even trying a benchmark or anything sophisticated, I see that my MBP Late 2008 is noticeably faster than it’s ever been before, just starting programs and carrying out tasks, everything is working smoothly.

I am now expecting gains in battery life, which I can confirm after a couple of days of usage. In fact, my urge to migrate was triggered by the hope that it will be faster and battery life would be better. It delivered on the first, now let’s wait a couple of days on that last point.

Possible landmark: Canadian man to sell house for Bitcoin virtual currency

Someone putting a house for sale in exchange of Bitcoins.

This is an astonishing story: selling a house for Bitcoins. It makes me wonder about a whole range of issues:

  • if there’s a notary act, how would that work without official banks?
  • if this passes, would governments try to take control of Bitcoins soon?
  • if there’s a dispute, what kind of legal framework becomes applicable?
  • what if the transaction gets hacked, how would someone prove ownership of the property?
  • if the seller’s computer eventually get hacked, would he lose everything?
  • would someone start selling things like virtual insurance, BitInsurance?
  • if new economic models should emerge around the Bitcoin type of concept, how would that play out in financial markets with their (already) complex instruments?
  • shudders. The matrix?

These are interesting times. The whole Bitcoin thing may eventually become the next rage. If the model succeeds it may feel like going back to an age where humans did not use minted coins and paper sorts. Mind blowing.

The story can be read here: BBC article.

Minimum Viable Team (MVT), is what matters most

I have been hearing way too much about Minimum Viable Product (MVP). I see us getting locked into yet another misunderstood concept. It reminds me the days at Cambridge Technology Partners where we would hit an impasse with a client trying to nail down the scope for a fixed price engagement.
In order to define an MVP, you need to be able to define precisely each word on its own, which doesn’t make sense without prior experimentation.
I think the MVP should eventually emerge, it shouldn’t be defined. In contrast, a Minimum Viable Team (MVT) would go a long way to uncovering the MVP. The latter comes after the former.

With Windows 8, Microsoft is staging the biggest startup pivot in history

Microsoft is effectively undergoing a startup pivot with the sweeping changes they’ve been doing culminating in Windows 8. This is an extraordinary effort that deserves very close attention, lots of learning opportunity here.

What Microsoft is doing with Windows 8 is effectively a pivot, just like a 12 month old startup would define it. I’ve not read of it being described that way yet, but that’s all I can think of. Microsoft couldn’t be called a Startup or Lean, but I’m curious how they internally think about themselves nowadays in light of the sweeping changes they’re introducing.

Right from the start Apple had gone for intimacy, premium products whilst Microsoft had chosen for cost effectiveness and mass scale. It seems that Apple is continuing on their path, and that Microsoft is now changing strategy. Good analysis abound, I won’t dig any further than this.

If you like this subject, search “startup pivot” and read up the various definitions given of it, it is fascinating to think of Microsoft in the current context.

This is a tremendous learning opportunity, I am excited to see how it all goes.

Why Microsoft Typescript is a breath of fresh air in web application front-end development

Typescript is an elegant solution to a really annoying issue: Javascript code sprawling into a massive spaghetti. If you are a programmer who writes web applications, don’t wait to learn about scaling JavaScript the hard way, start with Typescript and you won’t regret it.

Anders Hejlsberg is one of the most astute thinker alive in the programming language world today. So when he comes up with something I take a careful look at it. Typescript is his latest creation, I watched his presentation video and I really liked what I saw.

Unless you’ve been involved in web application development at scale, you won’t realise what Typescript brings to the picture. It is a very elegant solution to a really common problem: Typescript helps in writing large Javascript code without ending up with a monster spaghetti that even the authors hate to look at.

Naysayers will snarl, isn’t this yet another Microsoft embrace and extend effort? Who needs a new JavaScript like language?

Microsoft lovers would rave.

But, any fanboim set aside, this is a tremendous effort and it is coming from a truly “new Microsoft” that some are still too blind to see. This is a nice case of “embrace and extend” that should be applauded. The team that made it took care of the following essential things:

  • keep the learning curve low and smooth: Typescript is actually just JavaScript, if you think about it, so no new language to learn
  • make it fit within developer’s work flow: the developer can keep his beloved tools and still get the benefits of a less error-prone (thus less bug) development
  • keep it future proof: Typescript team appears to have adopted the open standard that governs JavaScript itself (EcmaScript if you don’t know), so as the standard matures Typescript would have already been there or can easily adjust with changes to the specifications
  • make it open for the wider community: the language and its tooling is all available under a well liked Apache open source License, anyone can use it and extend it, no fear of vendor lock-in here

If you are a programmer who writes web applications, don’t wait to learn about scaling JavaScript the hard way, I highly recommend  Typescript to you. If you already know all the horrors of large JavaScript code, check this out anyway and you will learn something that might even make you want to switch. I definitely plan to integrate this in my tool-chest and the solutions that I am building.