Apr 30

Jim talks about the new DLR

Tech No Comments »

Jim has blogged about the DLR as Mary Jo Foley guessed.

Now we get a glimpse of what the DLR is:

It adds to the platform a set of services designed explicitly for the needs of dynamic languages. These include a shared dynamic type system, standard hosting model and support to make it easy to generate fast dynamic code. With these additional features it becomes dramatically easier to build high-quality dynamic language implementations on .NET. More importantly, these features enable all of the dynamic languages which use the DLR to freely share code with other dynamic languages as well as with the existing powerful static languages on the platform such as VB.NET and C#.

Good stuff. I am hoping this isn’t the last announcement and that we get to see the the Rails on the DLR demo? :)

Apr 30

Microsoft announces CLR in the browser

Tech 2 Comments »

I am looking forward to seeing John Lam get up there and show off Ruby in the browser.

I am imagining grabbing the DOM and using Hpricot to build Ajax apps ;)


Apr 29

I am glad I am not a CSci prof

Java, Tech 9 Comments »

I bet some profs saw Java as a simple language to teach back in the day.

After seeing some of the generics hells that you can see in javadoc, we can also see a ’simple’ example of the future:

<R, T extends java.io.Closeable, throws E>
R with(T t, {T=>R throws E} block) throws E {
try {
return block.invoke(t);
} finally {
try { t.close(); } catch (IOException ex) {}

I am glad I don’t have to teach Java. I would be running to teach Scheme for data structures 101…. or Ruby/Python…. or Haskell/Erlang….

Apr 27

Java on Guice: Dependency Injection, the Java Way (Video Presentation)

Tech 2 Comments »

Want to see the juice on Guice? Watch the lead developers do their thing:

Apr 27

Google, privacy, and a higher standard

Tech 1 Comment »

I had a nice conversation with a good friend, who has certain concerns about Google’s motives. He felt that he understands Microsoft’s motus operandi: they want to sell Windows licenses and make lots of money doing it. Google on the other hand “has all of this data on me” and who knows what they will do with it.

I admit to understanding where the concern comes from. We often fear what we do not get to see, especially when the truth is too good to be true. Surely a company couldn’t last long without don’t evil in the name of “protecting our shareholders”. I remember, “When Google goes public… then we will see what happens.” I have had the fortune to be in meetings where privacy is a huge concern. I too get to see first hand that “Don’t be evil” isn’t a clever marketing ploy. I think that Google believes that it can make money by providing true value, and doing so for its users.

If you take a cynical tack, Google has no other choice. By coming out and saying that it will not be evil, it has put itself out there, to be held to a higher standard.

Tim O’Reilly has a great perspective:

I wanted to weigh in with a broader perspective, and a counter-argument. While there is some ground for concern, people seem to be ignoring far greater risks to our privacy that are in the hands of people far less scrupulous than Google. Our credit card company knows everything we buy — and sells that information to marketers; our phone company knows everyone we call — and sells that information to marketers; our supermarket knows what we buy and how often — and sells that information to marketers.

Meanwhile, here’s Google, which is using the information it collects to build better services that we eagerly consume because they are useful to us, and yet we’re complaining about the risks of how much data they collect! At least Google’s harnessing that data for our benefit, while most of the other big data collectors are simply using it for their own.

In short, it seems to me that Google is being held to a much higher standard than the rest of the world.

The last sentence, in some ways, may not be a bad thing. It will make sure that Google dosen’t take shortcuts, and that it sticks to the core values that the founders brought to the table.

I am not expecting anyone to listen to some random employee saying “trust me”. I understand that outsiders are unable to see how the employees themselves are the most forceful critics and watchers. After all, we don’t want to be proven wrong. Keep watching. Look at how we handle privacy first hand. Look at the data.

I know that people will probably talk about some of these concerns for many years to come. Google is sure to make some mistakes along the way, but I am confident that it can keep the trust that has been earned over the years.

NOTE: This is most definitely my own opinion on the subject

Apr 27

Web 3.0 should fix this….

Tech 4 Comments »

Whoever fixes this will be successfull…


Apr 26

Sometimes it makes sense to delay the loading message

Tech 13 Comments »

As soon as people started to get into Ajaxification there was a shout out that we we do not have the throbber in the browser getting all jiggy, so we need a way to tell our users that we are doing stuff.

Quickly, people starting to use “Loading…” messages such as the red message in the top right of Gmail, or the middle potion message in Reader, and then of course the Ajax indicators where we got to feel all Knight Rider and channel Kitt.

Although it is great to tell your users what is going on, I have recently been getting a little frustrated at the loading messages, especially when I see 5 of them on a screen at the same time. This happens when various portals and widgets are asynchronously going after their data.

What often irks me is that the loading message shows up immediately, but for a barely percievable amount of time. It would actually be nicer if nothing appeared there, as the content came in, which seems like, as fast as a normal render process.

Users are used to pages rending as you go down, so if you are pretty sure that your content will come in quickly enough, why bother showing ‘Loading’ for a micro second.

To be safe, you could do some magic that does the following:

  • You start by showing nothing
  • If the content isn’t updated in half a second say, THEN add the “Loading…” message, as it is taking some time to get it

The end result is that most of the time you never see loading, and the user has no idea that content is coming in via Ajax.


I quickly implemented a JavaScript class that does this for you.

You can see it at delayloadingmessage.

That page shows the delay in Loading… coming in. For many cases it doesn’t make sense, for some it may.

If I just want to wait for a bit of time (in case the content comes in already) I can just:

var delayLoader = new DelayLoader(5); // seconds

or if I want to be smarter and check to see if new content has come in yet:

var delayLoader = new DelayLoader({ contentChecker: function() {
return ($("results").innerHTML == '');} });

Apr 25

Would you like some news with that?

Tech No Comments »


This is a feature I have wanted for awhile. I don’t necessarily want to go to news.google.com and blogsearch.google.com and …. when I search, I want to go it in the One True Box.

It is great to see the team come out with more useful One Boxes like this.

Apr 23

Coda: One Pretty Window Web Development

Tech 4 Comments »

Coda is a new web developer tool on the Mac.

I have just started to use it, and so far I like it. They unify the worlds of browser, editor, shell, scp, in a nice clean way.

Most importantly the editor itself is nice. It does the right thing with HTML, meaning that you aren’t spending your time in angle brackets.

I also really like the collaboration feature being built in. I often have to take code and fire up Google Docs, or SubEthaEdit to play with someone else. Now it is in the one tool.

I also like being able to split the pane, and have the preview below the code in some cases. The only issue is that the preview tends to kick off every character or so, which in some cases causes a lot of flickering. I need to hunt to see if I can slow down the puppy.

Finally, I would love to see a few smarts on top of the editor. For example, when you are working with CSS there are two modes, the source code, and the nice UI view that lets you select colors and such. When I am in source code view it doesn’t mean “don’t help me”, so I would love to mouse over the #000000 color and a) show me the color, and b) let me select something else right there.

You have to give them bling points for when you match a brace and it lets you know where the initial brace is.

A great example of a Mac app. Simple, clean, and good looking.


Apr 23

Watching statistics in action

Personal 5 Comments »

I got to watch the wisdom of crowds in action this weekend.

A good friend is getting married this summer, and had the fun idea to get friends together for a wine testing. The aim was to choose the wine for the wedding.

By having the party, people could bring their favourites, a good time could be had, and a solid wine would be served at the wedding itself.

Before the tasting began, everyone had a score sheet, and were asked to rate the wine (1 – 5) and give thoughts on it (spry, smokey, acidic, to name a few that came up).

Surprise, surprise. As the night went on, people ranked them better. My hypothesis throughout was that we may be able to weed out the truly poor wines, but that this is pretty random. If you tasted a wine that had a bad aftertaste, it would affect the next wine (people weren’t even attempting to cleanse the palette).

The a-ha moment was when the same wine was sneaked in twice (all of the wines were hidden, and numbers associated with them).

People gave the same win VERY different scores, and wrote very different thoughts about them.

Well, at least we met the “have a good time” aim of the night.