Google I/O

Posted on May 18, 2010 in Training / Conferences | 0 comments

I’m in San Francisco for the week to attend this year’s Google I/O conference. So if you happen to email me, chances are my response time will be even lousier than normal.

Exciting stuff, though!

Read More

Google I/O 2010!

Posted on Jan 12, 2010 in Tech News, Training / Conferences | 0 comments

Just got my ticket for this year’s Google I/O conference in San Francisco. Can’t wait!

And in Google-related news, check out the following post on their relationship with China, having discovered sophisticated attacks on their company to extract information about Chinese human rights activists. Heavy stuff.

“These attacks and the surveillance they have uncovered–combined with the attempts over the past year to further limit free speech on the web–have led us to conclude that we should review the feasibility of our business operations in China. We have decided we are no longer willing to continue censoring our results on, and so over the next few weeks we will be discussing with the Chinese government the basis on which we could operate an unfiltered search engine within the law, if at all. We recognize that this may well mean having to shut down, and potentially our offices in China.”

Read More

Open Web Vancouver 2009

Posted on Jun 11, 2009 in Blog, Training / Conferences | 2 comments

My company was kind enough to let me take a couple of days off this week to attend the Open Web Vancouver conference, held at the new Convention Centre. Today was day one.

The keynotes were both quite good, in their own ways. The first was by Rickard Falkvinge, the founder of Sweden’s Pirate Party, which just won two seats in the European parliament. Rickard’s talk centered around associating what’s perceived as “piracy” (downloading and exchanging copyrighted music, video, data etc) with civil liberties and the entertainment industry’s harmful attempts to enforce and secure copyright over artistic content. Throughout the talk he used the analogy of the Catholic Church’s doomed attempts to lock down the printing press – how wrong they were, how it backfired and how it was destructive to society and culture.

It was more interesting and frankly more relevant than I thought it would be, but I’d like to have heard more from the Dark Side: namely, the entertainment industry. The argument I’ve heard again and again is that they’re “protecting the rights of the artists” – which is simple and convincing, foil though it may be to cover their own vested interests.

What I did find interesting was the goal of the Pirate Party: it wasn’t to abolish copyright (which I’d incorrectly assumed) but just to keep it under control – limit copyright to commercial uses, not personal. He described the clear civil liberty violations with laws that allow a private industry to monitor our personal correspondences to check for copyright violations. To my mind, the argument comes down to a question of practicality. If there was a way to monitor any copyright violations across the planet without intruding on people’s right to privacy, then the entertainment industry would have a legitimate case. But they don’t, so any laws that allow such intrusions for the sake of some companies’ bottom lines are simply wrong.

The second keynote was by Angela “Webchick” Byron, on “Women in Open Source” which made me groan and smack myself on the forehead when I first read the title. Sorry, but there you go. In my little bubble where I work and play, there IS no sexism or bigotry (or certainly none that I’m aware of) so anytime I hear about “women in ….” it makes me cringe. For me there’s an inherent element of guilt to such topics – when I hear about sexism, racism or any other acts of idiocy by my ethnic group (I’m a male, middle-class honky)… well, let’s just say it sure doesn’t feel good.

But it was a good talk! She said that when she was first approached with the topic her reaction was kinda similar to my own and only after she did the research did she feel it was a legitimate issue. She argued that it was important to encourage women in IT & open source in order to get their viewpoints. I don’t entirely disagree, but I did wonder about the extent to which women are discouraged from the field. She cited various examples of ignorance, bigotry and hate mongering that kept women from the field which were, frankly, rather depressing, but at the end of it I was left unconvinced that the problem is systemic.

She did raise one astonishing fact: the ratio of women to men working in open source is a mere 1.5% / 98.5%! HOLY CRAP, that’s insane. So perhaps there IS something discouraging women from the field… open source is fun! EVERYONE should be doing it!!

I also wasn’t wholly swayed by her argument that we need to encourage more women in the field. I mean, of course we do in the sense that we should encourage any human being to pursue any subject of interest to them. But to my mind this should be more concerned with removing obstacles than encouraging people to pursue areas for which they may not be suited. Quick back-track: obviously I’m not saying that women aren’t suited for IT or open source, but hell – men and women are different, and I think some fields are more suited for one gender than another. Call me crazy. Just don’t call me a sexist.

Anyway, it was a hell of a lot more interesting that I thought it would be. And what an unbelievably cool lady – very personable.

There were a few other talks which I won’t bother discussing here, except for one. For me, the highlight of the day was Dion Almaer and Ben Galbraith’s talk on “The Future of Web Applications”. I’ve long been a reader of, so seeing the two co-founders in person was pretty exciting. Plus the substance of the talk was really fun: they demoed an early version of “Bespin”, a web-based IDE for code editing and discussed how web technologies are getting used all over the place – not just on the web.

I cornered Dion after the talk and asked him about the syntax highlighting in Bespin. Funnily enough, it’s based on CodeMirror (which is actually bundled in my Form Tools 2 script) and unbelievably fast, by the sounds of it, partly due to his work on Google Gears. Last year Brad Neuberg gave a talk on Google Gears, including the amazing WorkerPools idea. In a nutshell, this allows for multi-threaded javascript, letting you offload work from the client to the operating system to perform independently and send back once it’s complete. This greatly speeds up and enhances the user experience, keeping UIs smooth and receptive. If I understand it right, Bespin leverages a standardized version of WorkerPools, helping keep it nice and speedy.

While I was chatting with him, I confess it crossed my mind to name-drop a few projects I’d done ( anyone?) but, well, it just felt waaayyy too cheesebally. *sigh*. Oh well.

Read More

Open Web Vancouver

Posted on Apr 16, 2008 in Blog, Training / Conferences | 2 comments

“Y’know, just because it’s Open Source, doesn’t mean it has to be ugly…” – Tim Bray, from his keynote, decrying the lack of web designers in the audience

I’ve been in BC this week, attending the Open Web Vancouver conference. It’s a little funny I had to fly back for this, since in a little over two weeks I’ll be returning to Vancouver for good. Bah!

The conference was a little hit and miss, but generally worthwhile. For me, a couple of talks really stood out; both were on JS, which probably isn’t a coincidence. Brad Neuberg – author of the Really Simple History JS library – gave a talk on Google Gears, something I’ve had in my peripheral vision for some time but never closely examined. It’s an AMAZING tool – very promising indeed. Brad emphasized that it’s not just for offline javascript. I’m currently working on a large Ajax app for cardiologists (which today I just heard is being picked up by Vancouver’s St. Paul’s Hospital for managing their CT Scan reports – nice!). I’d been planning to supplement its online functionality with an Adobe AIR desktop version, but now I’ve learned a little more about Gears, I think it may be a better fit. Interestingly, functionally, Gears and AIR share a lot of the same characteristics, but approach it from different angles. One acts as a standalone desktop app, the other directly enhances the user’s web browser. I’m not sure to what extent – if any – Gears provides access to the user’s filesystem, so I’m going to have to do a little more homework… but regardless, I think it may the right tool for the job.

There was also a talk on writing scalable javascript by Eric Promislow from ActiveState which was quite fun. [A friend of mine actually works at ActiveState, and gave me a quick tour of their office. Neat place!] I confess that I’d rather hoped his talk would be of a more generic nature, but ended up covering a single example of scaling up a Google Maps app and some solutions to avoid latency for the user. The crux of the problem revolved around the fact that inserting Markers onto the Google Maps is a CPU-intensive process, and the larger the number of markers to insert, the longer the wait.

Having written a few Google Maps apps myself, it was nice to revisit the code and see his solutions. That said, to put on my UI Developer hat, I have to take exception to his general approach. Reducing latency is certainly important, but more important is focusing on the root cause of the user experience problem (I mean, that’s the reason for refactoring the code in the first place). To explain: people tend to assume that wait time is inherently bad, whereas in fact it really isn’t. It only becomes bad if it irritates the user. If the user doesn’t get angry by having to wait 10 minutes then odd though it sounds, it may not be a bad thing. Sometimes, in fact, a little wait is actually expected, and if it doesn’t happen, users distrust the software thinking it’s not doing its job properly. I’ve heard this allegation leveled at Ajax in general, with people feeling that Ajax apps “feel flimsy”. I can’t say I share the feeling, having worked so much with Ajax apps, but the “feeling” shouldn’t be discounted.

Anyway, if I were faced with Eric’s problem, I’d have supplemented his refactoring solutions with a simple DB query called prior to retrieving and rendering the markers, returning the total number markers to draw. Then, in the UI, I’d add something like a “[X] results found. Displaying: [Y]“. As each marker was rendered (I’d display each one, sequentially), I’d increment the Y counter. Hence, the user would see the total number markers (X), and the total currently on screen (Y) which would keep incrementing until it reaches X. This would be far less frustating or bewildering for the user than seeing nothing happen on the screen for a few seconds and displaying all results in a lump. Even if it took a full minute to sequentially display all the markers, the user would know what to expect – and that’s the key. Sometimes “common sense” UI solutions like this are overlooked in favour of refactoring for efficiency.

Good talk though. Seemed like an interesting dude.

Anyway, my plane’s about to board. Nice of Vancouver airport to provide a publicly available wireless at last…!

Read More