Ars Technica virtually treats the same topic as me, one day apart

Microsoft’s vision of Windows everywhere, an article by Ars Tecnica, they go deep into the subject that I’ve treated, only a day later.

Today I read the article below by Ars, and I couldn’t help but notice how similar it’s theme is to my post of a couple of days earlier. Funny coincidence: Ask Ars: Windows everywhere, or Windows nowhere? What is Microsoft’s “single ecosystem”?

Obviously I was just expressing some thoughts, no research done to back it up. But they are professionals, if you are interested in this subject then you may find more information on Ars Technica’s web site.






OSX Lion experience suggests that a single unified iOS is the next version

Mac OSX Lion feels like a hybrid OS, it’s iOS and OSX at the same time. With Apple leading the charge, the unified OS model supported by the AppStore distribution model looks to be the future. If functionality can be streamed directly to where it is needed, that revolutionises the prevalent distribution and support model. In the long run, the IT organisation structure as we know it today will become obsolete.

My experience with the upgrade and running OSX Lion is very positive so far. It feels stable, confident and trustworthy. The only surprise was that Java runtime wasn’t available right after the reboot. I had to google for a link to a separate download, I feel that was a little obnoxious of them. Other than that, I have a stable and fast OS. Since I removed Flash plugin, upgraded Skype, and now only rely on Google Chrome for flash functionality, I have a very good setup indeed. The fact that my esoteric collection of software runs so far without a glitch, without me having to tweak anything, suggests that OSX Lion builds on a solid and a stable API, most probably enabled by Snow Leopard.

It’s hard to imagine Apple maintaining OSX Desktop line and iOS in parallel, I reckon only iOS will ship in the future and the device where you run it will determine its runtime persona: mobile, desktop, server. For companies that cannot port their products to the new unified model, OSX Lion would become their Rosetta.

I’ve read a post on Windows 8 which indicated that Microsoft is already moving in that direction, a single unified OS for all platforms.

The implications of this change in the industry, lead by Apple, is that the AppStore model will become prevalent. When we reach that point, organisations with large IT teams dedicated to platform support will start looking derelict. Those would still remain the largest number, but they may find it really hard to remain competitive.

Why is it that Apple is seemingly succeeding with a vision that once was actually Microsoft’s pioneering idea: one platform for all your computing needs? They surely didn’t have more money or available potential talent than Microsoft.

Looking a little further, adding Facebook and Google to this mix, the battle for control of the consumer mindshare and purse (indirectly corporate mindshare and purse) is truly exciting. I think most of the mainstream press would have us believe in a zero sum game, which I think is just the same game really: seeking control of the mindshare. Analysing the full spectrum of all the tech titan battle grounds is beyond this posting. I’m only looking at the front where Apple is causing a storm in at the moment.

With all this going on, I have hard time engaging in debates about the definition of things like architecture, enterprise, business, any combination of those. I’m not sure what problem such debates will solve, especially when denial is ingrained in many contributions. I think the only viable debate to be had is the one about “the future of computing“, and that gets my attention.

Ruby on Rails stack on Mac OSX keeps crashing while RVM looks ok (both 10.68 and 10.7). A fix.

My Rails App, set up to run on RVM with all the right gems, kept crashing. To fix it I had to rearrange my environment, and reinstall the entire stack.

I recently spent some time struggling with an annoying problem with a Ruby on Rails app that just kept crashing. My environment is(was) Mac OSX Snow 10.6.8.

How I fixed it

  • uninstall the entire stack: rails, bundler and all dependencies, gem and rvm itself,
  • change my system path settings (sudo vi “/etc/paths”, put “/usr/local/bin” on top)
  • restart the machine, verify that in my path “/usr/local/bin” comes before “/usr/bin”
  • re-install rvm, ruby 1.9.2, gem, bundler
  • verify “which ruby”, “which gem”, “which bundle”, they should all show the rubies path “~/.rvm/…rubies/…”
  • install rails, redo “bundle install” in the project folder

The problem

I was having troubles getting a ruby in rails application running. This same app had been running perfectly fine before, I didn’t touch the code and others didn’t seem to have any problems running it. So it had to be something with my environment. The main change that I did was to have migrated from Ruby 1.8.7 to Ruby 1.9.2. But everyone had done that too, the app had been nicely running on 1.8.7 for me too, but not on Ruby 1.9.2. Why was this happening? Why was I the only one experiencing this problem?

Clues that led to my approach

After some googling and reading up a few blog posts, I came across this post by Yehuda Katz. I followed Yehuda’s recommendations, but that didn’t fix my issue. He’d touched upon one thing that I was sure was going to be a good lead: some gems could have been compiled with the wrong version of Ruby or native libraries. That had to be it, but where, which gems? I thought if a quick reinstall didn’t do it, something must be seriously broken. As I started removing and reinstalling the gems one by one, I kept checking the search paths, that’s how I found out that it was consistently not what I was expecting, some gems were found on /usr/bin while others were found under /usr/local/bin or in the rubies (rvm).

The only way to stop this, for me, was to remove it all, force my system to search /usr/local/bin. So I cleaned my env, adjusted the file /etc/paths to search “/usr/local/bin” before other paths.

What I’ve learned here is, as Yehuda puts it, “check your assumptions first” is probably even stronger for the DRY Ruby on Rails like environments than say Java or .NET environments. Indeed it is too tempting to think that once you’ve installed rvm, the ruby on rails stack and some nifty little gems, all following some quickly assembled and even quicker read blog postings, that everything would be fine from there. And that’s the wrong assumption that one needs to challenge.

Installing rvm, instructing it to default to another ruby version is not all there is to it. One needs to ensure that the entire stack has a consistent chain of dependencies, it’s better to do it at install time when installing anything new, and running things (to check that no assumption was quietly falsified unbeknownst to you).

Much ado about a simple checkbox

Mac OSX Lion scrolling direction can be set back to the old way, it’s very simple to do. As I write this, I’d read rants about this change, tried it myself and actually found it to be a nice and natural improvement.

I read some flames about how the scrolling change in OSX Lion was terrible. Then I checked it this morning and had to sigh:

OSX Lion System Preferences scrolling checkbox
Uncheck to use the get the old way of scrolling

Those who like the new way, I am one, will simply leave this checkbox alone. Those who prefer the old way, absolutely fine, just uncheck this option. I’m not sure I understand the fuss, unless those articles would have been based on some pre-release code. In the latter case, if I were writing such review, I’d be sure to get the latest code and review my review. 😉

Another point, keeping in place the old way of scrolling would have been inconsistent with the touch experience. That should be a no-brainer to see.

Actually, I am wondering why the scrolling was ever made to work the way it used to, that was the wrong decision, this one change should be welcome.

Google+ is a nice work, for a first public beta. What took them so long?

Google+ seems to be “getting it”. What took them so long? This is one social media site that I can more closely relate to, more so than say Facebook. It may be the new thing in town, but it feels more polished than what they’ve shown before, and it’s adoption should be fairly smooth for most google users.

I’ve been using Google+ for a few days now, my first impressions are positives. I find the experience to be generally smooth, the layout is well balanced and just pleasant. This is the first time ever that Google produces a UI that I find polished, and they might even not be done with it yet. I think the recent UI refresh was the tipping point that makes it really palatable for most. By making Circles an opt-in, they’ve finally nailed it – though I’ve read Scoble a few times – who hasn’t ;-).

What took them so long? Why couldn’t Google do this 3 or 4 years ago?

There’s still the geeky stuff in there though, “Stream” for example is not really meaningful to everyone but the nerds.

Circles is a feature that I have always found missing on the social media sites that I’ve used so far. Google+ might even be powered by Buzz and/or Wave, two products that they clearly forgot to put a UI on, but that need not matter.

Speaking of beta, there is no mention of that on the site. So this may be a break from the tradition of keeping a perpetual beta label on their products. It may also be a sign that people no longer pay attention to the “beta” label, folks run production stuff on any odd alpha release they can lay their hands on.

Facebook killer, or Twitter killer, or whatever-killer, that is not for me to say. I tend to think that those “… killer” are overblown 9 out of 10. But I think Google+ will find a daily use for lots of people, and that may be what they are looking for, that may be what they need. The question is though, will they really learn the real lesson here: which is to keep innovating for people, not just besides them.

I like what I’ve seen so far. Let’s see where they take it from here. Whatever thinking framework allowed them to build this, would do wonders if correctly nurtured.

Cappuccino is for Objective-C developers what GWT is for Java developers

Cappuccino looks to be a promising framework for those with years of Objective-C experience looking to leverage that skill to build attractive web sites without learning all the intricacies of CSS and JavaScript

Every once in a while I come across a framework and wonder who on earth would want to learn this? Then time passes by and I would cross it again while exploring something else, then my curiosity is aroused a tad more. That’s how I’ve bumped into Cappuccino for the third time in perhaps an 18 months timespan. So this time I thought I’d look under the bonnet to see what it’s got to offer that I may learn something from.

My time budget was about 1 hr, which was enough to get the code, set it up and take it for a spin. Several times I thought I was reading Objective-C and nearly stopped, then I would carry on a little further.

This was a nice surprise, a topic for another blog posting in the coming weeks.

The traditional IDEs should go on a “diet” program

Traditionally IDEs should go on a diet program, they are unnecessarily too heavy and fail to accomodate the rapid turnaround time they are intended to provide. The emergence of web browser based IDEs is probably going to help a lot.

These days I do a lot of rapid prototyping, turning around small but fully working apps fast is my equivalent of PowerPoint slides. As you do this, you realise just how much of a resource hog the integrated development environments (IDEs) have become (always have been?). And there is really no good excuse for this. Sure, computers are getting faster and cheaper, and the traditional IDEs seem intent to make sure you never realise the benefits of that.

I’ve worked with many popular IDEs over the years, the ones I’ve used most are Eclipse and IntelliJ IDEA, and Microsoft Visual Studio (memories of Powerbuilder and Borland IDE are still there). The one constant thing I’ve noticed with IDEs is that user waiting time is steady, it is getting longer in some cases, not shorter. Aside from code refactoring features there’s nothing fundamentally new to these tools. Somehow you always need the top of the range computer to run traditional IDEs, and if you’re running anything else at the same time such as a word processor, or a database then you might end up spending a lot of time waiting for your computer to give you control.

Why are traditional IDEs lagging behind (actually hindering) the performance gains afforded by the hardware evolution? I think one possible cause is that these IDEs are still failing to become truly modular. Various efforts to tune the IDE into understanding the user role remain too timid, you get a little less clutter on the toolbars and windows here and there, but the start/stop time and various frequent activities remain painfully slow, because the stuff is just too heavy for no particularly useful reason. This topic actually ties in to my rant about virtualisation still failing the desktop power user, more on that on another blog posting.

On the other hand, text editor centric IDEs are quite nippy. Take TextMate, Emacs, VI, you get to work much quicker and spend most of your time doing work rather than waiting for the tool to complete some task. These tools do offer code completion and search, what you really miss is perhaps the refactoring and interactive debugging capabilities. And I think those aspects are becoming less relevant, test-driven development in a good agile process makes debugging unnecessary for the best part of the development lifecycle. If these practices are combined with something like behaviour driven development increases the odds of producing good quality code. The programming language really helps if it’s less verbose, in that sense I’m starting to think of Java as the new Cobol really. Languages that are based on functional programming are such a tremendous help in thinking clearly, writing less code and spending less time with infrastructure stuff.

The emergence of web browser based IDEs such as Mozilla ACE might provide a serious challenge to the traditional IDEs, and that would be a good thing.