Why Open Standards?

I'm writing this post at the same time as my "Proprietary Platforms are Harming the Web" post, to cover why I'm blabbing about Open Standards being so great, and why I think the web (or anything, actually) should have standards.

In that sister post, I call products such as Silverlight and Flash a perversion to our internet, and I stand by that. But you want to know why. Here's why.

Silverlight and Flash both add functionality to a website, that runs in the browser, but is very much obfuscated from the browser. This code is made to run in a VM inside the browser. This isn't at all bad. Okay, maybe the obfuscation is a little bad. Or a lot bad. But What is really bad is that these products are, actually, exactly that: products. They are designed to be sold by these companies, at exorbitant prices* when really, what we've got already (HTML, CSS, JavaScript) could do the job just as well, and I'd go so far as to say do the job better.

The problem I have with these products that might not be so obvious (or maybe it is) is that they increase our dependence on the companies that develop this software, and that is, quite obviously, how these companies make their money - increasing our dependence on their products. If we stopped depending on these companies' products, where would they be?

This is not the way the IT world should work. Life, at least as it appeals to our ideals (or my ideals), is governed by options, choices. I'm not talking about the choice of whether to install Silverlight or Flash or neither - with enough market penetration, a user would be required** to install both Silverlight and Flash.

I'm talking about another choice, or set of choices. The choice of which browser you'd like to use, the choice of which Operating System you'd like to use, the choice of which hardware you'd like to use. Without Open Standards, users are not free to make these choices, not free to use Firefox on Linux to access Silverlight content as they please (or apparently their DSL modem settings).

The initial positives with Flash and Silverlight as platforms, and I suspect this was especially true around the early 2000's, is that it allows the companies developing them to develop new features not currently supported by borwsers, and not currently in any current standard, and the companies using these platforms can then use these new fandangled features.

The problem here is that now these companies are only able to run their code in users' browsers supported by the platform. In Silverlight, this is every browser... as long as it's on Windows (or a couple on Mac). I believe that Flash runs in most browsers on most modern operating systems, though support for various browser/operating system combinations varies.

Another problem soon arises -  these feature sets can stagnate - features of a language, say, cannot change quickly after they're initially added, and support has to be had for multiple versions of the platform, depending on what the user is running. Oh hey, doesn't this sound like it's already happened before, with JavaScript in browsers? Oh yea, it does.

So, not only do these products lock the company (or worse, the user) into using them ("vender lock-in"), they also repeat previous mistakes made in browsers... in browsers. Well. Done.

What should be the case, in an ideal web, is browsers that perform and act as expected by the standards. That would save us developers from being required to check which browser our code is running on, or sending data to***, and allow us to write once, use anywhere. That's what the web should be about, write once, use (or interact) anywhere.

* The development tools are usually sold with high price tags. At least, that's the case with Adobe's products.
** This visit Flash/Silverlight rich sites, anyway.
*** The caveat here would be mobile devices, or at least devices with small screens.

Proprietary Platforms are Harming the Web

I have been reading some blog-posts lately, and what they seem to be telling us comes as no surprise, but scares me all the same. Those big corporates, service providers and even software firms, some of which we rely upon, seem to be backing us users, prosumers and consumers alike, into a corner.

I'll start with the Mozilla story. For those unaware (and haven't gone and read the posts linked above), Mozilla recently changed their update/version policy, and corporates are complaining. Firefox 4 was released only a few months ago, now Firefox 5 is already out, and Firefox 4 is receiving no support (from Mozilla) whatsoever. I don't mind this, I'm not really a user of Firefox as it is, and Chrome (my current browser of choice) already has a policy similar to this.

The problem in this case is that with version changes and updates coming out so fast, corporates just can't keep up with browser compatibility testing of their own in-house web applications, used in place of desktop apps. The reason for the switch from desktop apps to these "web apps"? Easier to maintain over time. Right? Wrong. Many corporates are sold a proprietary solution or platform that, one way or another, ends up limiting their advancement of technological use. This is what happens when, as highlighted by the blog-post-in-reference, developers rely on quirks in browsers rather than sticking to standards ("Oh hey, IE supports Visual Basic Script, cool!"). What would be ideal (in my mind), in this case, is for developers of internal web applications to develop according to open standards, rather than develop according to certain features of browsers.

Linked to this is the AT&T DSL setup's use of ActiveX controls. ActiveX controls will typically only work in a Windows environment, and in this very particular case, this ActiveX control will upgrade your browser to Internet Explorer 8 (presumably if it wasn't already), just so it can run. And why? So that it can display a web form(!) for setting up a DSL connection. Being a Linux/Mac user, this idea disturbs me greatly. What happened to the days when I could run any client software to set up my modem? It's not like the modem technology has changed at all. (Also, note that it requires you to upgrade your browser. does it do that over the internet connection you haven't set up yet?)


Ok, that's if for Microsoft bashing.

Oh wait, no it's not. Recently, Microsoft bashed WebGL over a vulnerability in Firefox, calling it harmful to the web. The undertone here would be Microsoft pushing their Silverlight software product, which of course is Windows only (apparently Linux and maybe Mac can use "Moonlight", which I presume uses the Mono project). The irony here being that Silverlight had the same vulnerability, and Flash might very well do so too. The issue I have with this? Microsoft trying to push their own proprietary products, while bashing an open standard. How will the web ever become standard and awesome with all this mess going on?


The crux of the issue as I see it, is this: we live and work in a fast-evolving technological world (or so we like to think). To continue to evolve, we need to lay down a stable, standard foundation of protocols and data formats that we can continue to build upon. With this standard set of tools, we can develop applications that work across many devices and browsers.

With the continuing pervasion of our internet by products such as Silverlight and Flash, that require users to depend on a single corporation to allow that platform to work on their platform (Microsoft would never write Silverlight to work on Linux, and I believe Adobe are pulling official flash support for Linux too), we won't see this beautiful utopia of the internet we envision. Why do I call it perversion? I'm looking to cover that in another post I'm writing alongside this, titled, "Why Open Standards?".

Committing to Core, AKA: I can get mo' satisfaction

My job at Catalyst IT is a Software Developer, in the E-Learning team. Primarily I'm working on Moodle, and generally this is doing small modifications and bugfixes for clients, with the occasional larger development tasks.

But these client-specific changes, due to their limited scope, practically never see the light of day in the Moodle community. I believe there is only one patch of mine upstream for Moodle 1.9.x to date(oh wait, no, but there is an attribution), and even that was slow to come about. Receiving thanks from clients is one thing, and it really is quite awesome when a representative of the Ministry of Education is thanking you for the work you've put in (I'm now the maintainer of the External Search plugin for Moodle 1.9), but knowing that contributions you've made are being used and noticed by the wider community (ie changes to the core project) is something completely different.

For this reason, I was, until recently, feeling a bit down about my work with Catalyst IT. I came from Weta Digital, where people do some awesome stuff with special effects, and while I was not in an artist position, I had access to the same digital tools (I also needed to have some basic understanding of how they worked for my job there), and the work I was seeing made every day was an inspiration, and knowing it was one day going to go global made it doubly so. With my work at Catalyst, not seeing much of my work seem to leave a limited set of four walls and a ceiling, you might start to understand why I would start feeling perhaps a little disheartened by it all.

This is the part in the story where something changes, and all is well in the world again!

Well, kind-of.

Over the last couple of months I've been doing some work for a Moodle 2.0 plugin to integrate with the Kaltura media hosting platform. I'm happy to say I'm going to be officially releasing this very soon (actually the code is already available online, there are just a few tweaks required before I start pointing people at it). What's more, I get to release it myself!

But even more recently, I asked my colleague for some work on a different project, the Mahara project. The idea was to get my mind off Moodle for at least a short period, while staying within the realms of e-learning, as to not upset the general balance at work. I'm very thankful to have received some work on the project and even more thankful that my contributions, after a mandatory code review process, go directly into Mahara core.

Now that is satisfying.

I'm now feeling much more at peace with my place at Catalyst. I find that it is a great environment due to the people and the culture of the company. I'm also having more... fun, shall we say - collecting my commits on Ohloh. (My profile is here: https://www.ohloh.net/accounts/bug ) Geeks, check out my "ohloh xss test" 'project' ;)

So if you're feeling disheartened about your work, look at where your contributions are going, or where you are receiving thanks from.

What ever did I do with myself?

Around mid August last year, I decided something had to change. I was approximately 104kg, and in retrospect, I looked it. See for yourself:

20110504-fg3g1dux3c1shb45573uk

Ok, so this image is from sometime in 2009. So i was closer to 110kg then, but nonetheless, I was fat. Worse than that, I was obese. When I figured this out, it scared the shit out of me.

Back to August last year. Something had to change. I needed to start losing weight, and fast. I bought myself a pair of Vibram Five Fingers, and started running into work. Each day. This wasn't a very long run, about 4 km, but doing that every day adds up. To help motivate me, I also bought some scales, and started tracking my weight variations. The Hacker's Diet Online is a great place for recording weight changes.

Weightloss

As you can see, I wasn't consistent. For those of you wondering, that really big gap in October was around my 21st birthday. I wasn't always running, but I was getting some really good results.

I should note about now that weighting yourself daily is not recommended, especially if you take it badly when you've put on weight. Your weight will fluctuate massively throughout the day - I've noticed increases of 2-4kg in a single day! Consumption of food and water are the obvious causes here, but water is far more notable.

At the start of November, I joined the gym. I got set-up with a routine of exercises to do, and set off to it, about 3 times a week. Every second day was the goal. I wanted to be under 90 kgs by February.

Once I started going to the gym, my results started to change a bit. I'd started to modify my diet too - I ate hardly any carbs, and stayed away from sugary and fatty foods. Obviously you need some of all parts of the food pyramid, but suddenly I was focusing on protein. What was happening was that while I was losing weight in fat, I was starting to put on weight, in muscle.

Me_dec_2010

So this was me, December last year. Quite the improvement.

I stopped running.

I'm now down to 90kg. but in saying that, I've been around 90 kg for the last couple of months. I 'd hit my goal, 90 kgs by February! Then I stopped going to the gym. Apart from walking to work and home again, I wasn't getting any exercise at all. I was about 87kg. My diet changed. I started consuming carbs and fatty foods more than protein. Come Easter, I'd gotten back up to 94kgs. Alarm bells started ringing. After all that goal-setting and effort, I was just letting the weight get back up on me?

This week, perhaps last couple of weeks, is/are the harbinger(s) of another round of change. I've started rock clinbing weekly with friends over the last few weeks. Friday, I started the running-into-work routine again. I've continued running into work this week, and started going to the gym every second day again.

Tomorrow is my rest day, so I can fit in Wellington Python User Group (which I help to organise, by the way).

Friday is beer o'clock... But I sacrificed that last time, didn't I :)

----------

This post should be considered a once-off about my weight and experiences getting it under control. It's something that I just wanted to get off my chest and out there to a wider audience, plus i think it's a good way for people to get to know me rather than the standard "Hello, World!" post. In future I intend to talk about code, games, music, movies, coffee, and a whole host of other things I can't think of at the moment. Oh, I might be a bit of a spelling and grammar nazi too. Just so you know.