Read on and leave a comment
or return to our portfolio.

24 Oct 2005

by Noel

Neologism of the week

From Shriram Krishnamurthi comes a nice phrase to describe the AJAX applications that are emerging: webtop. It captures succinctly the blend between web and desktop that characterises these applications, and points to a future when the distinction is meaningless. It’s early days for the webtop right now: most time is spent just getting the interface to work. My bet for next stop on the road is disconnected functionality. While SF may be always onlinesometime soon, but it will be a long time before that applies to everyone.

Posted in General | Comments Off on Neologism of the week

18 Sep 2005

by Noel

What is Computer Science?

I love how everyone and their brother has an opinion, and it always stops there. I’d like to take a moment to rant, and point out that opinions do not a curriculum make.

The question of “what is computer science?” has been around for a while. The question of “what goes in a CS curriculum?” has worked the academic circuit for a few years as well. What’s great is that every Tom, Dick, and Harry will come up with an opinion, but not a lot of people work hard at actually trying to come up with a justifiable answer.

Dan Zabonini is a Tom, Dick, and Harry. Over at O’Reilly’s “Policy Center”, he’s posted his half-baked thoughts online (http://www.onlamp.com/pub/wlg/7757); it isn’t worth an active link. Just before a bulleted list of random thoughts, he qualifies his thinking with this choice quote:

So, what would you include in a modern Computer Science/Software Engineering course? I’ve started jotting some draft notes below (in no particular order, this is just a stream of conciousness…)

“This is just a stream of conciousness…”

If you want some thoughts on the topic that are not just a stream of consciousness, you might start reading the ACM Model Curricula documents; I’ve read them all. They’re complex, they consider a wide variety of issues, and they reflect the state of the discipline at the time they were written. Smart, hard-working people who have given their lives to the study of computing, who spent a lifetime teaching the discipline, crafted these documents.

Curriculum 68 was incredibly math-focused; it proposed a CS curriculum that, among other things, included thermodynamics and quantum mechanics. Curriculum 78 saw a lot of maths drop from the curriculum, much to the dismay of many; this is a theme that can be tracked through the ACM DL from the seventies to today. (Here are afew links to get you started.) The writings of Allen Tucker and Anthony Ralston are both particularly insistent on the role of mathematics in the CS curriculum.

The Joint IEEE/ACM Curricula 91 and CC2001 expand the scope of the discipline; CC2001 is particularly painful, as it defines an incredibly broad disciplinary set, yet sets up evaluation criteria that, 75% of the time, can be met without a student ever learning to program. Granted, in practice, programs are not run this way, but the criteria (as stated) do not explicitly require programming skill. I stress skill, because in most all CS departments, programming is not taught as a scientific practice, but as a skill- or craft-based activity. Again, there’s a literature on these different kinds of knowledge (scientific vs. skill vs. craft), and different theories of teaching and learning associated with each.

The curriculum is under constant revision—often pushed and pulled by industry and technology. Physics isn’t pulled about this way; nor is Mathematics, Chemistry, or Biology. Why is it, for example, that the AP curriculum was switched from Pascal to C/C++, and then (in a just a few short years) to Java? The language was incredibly young, untested, and has a convoluted, involved syntax to do simple things. From a first teaching of programming perspective, it’s an abomination. You don’t think so? Perhaps, then, you’ve never tried to teach 45-year-old returning students how to program in Java then.

If you’re going to walk around suggesting what should or shouldn’t be in a computer science curriculum, then perhaps you should begin by catching up on the arguments that have been made for the last 40 years. While you’re at it, I think it would be good if you understood the fundamental research on reading and writing that’s been done in the last 100 years, the research methodologies that were employed in that exploration, and the significance of the findings made with respect to teaching and learning theory over the last five decades. I don’t claim to have a complete grasp of all of this material, but I’ve made a start—and that’s more than 98% of the people who think, just because they can write some Java to transform XML documents in a servlet container, that they have important insights to offer the world regarding the teaching and learning of programming.

Once you’ve made a start on the literature, then we can have aninformed discussion, which is much more interesting than pissing in the wind.

End of rant.

Posted in General | Comments Off on What is Computer Science?

15 Sep 2005

by Noel

The Birmingham Course: OpenLaszlo to the Rescue!

We needed to deliver a prototype on-line exam quickly. Despite their simple appearance, on-line exams can have some complex interaction modes that are annoying to deal with in a client/server model.OpenLaszlo provided an excellent framework for quickly going from idea to solution.

 

The Birmingham Course approached us with the idea of
placing online a mock exam for their MRCPsych course. While the time constraints were tight, we thought there was an interesting opportunity in the project, and enjoyed the enthusiasm that The Birmingham Course brought to the table.

I would have liked to do some paper prototyping, and work through the issues that might arise before starting. However, we also wanted students currently enrolled in the course to trial an on-line version of the mock exam. This left us in a bit of a pickle: can you, in one-and-one-half weeks, go from concept to implementation for an on-line examination, and get it right? (I live far enough away from Birmingham that I didn’t have the ability to take a day or two and go up there to meet with the client.)

The mock exam had no data gathering requirements, nor were there any concerns with authentication and identifying users. Therefore, some of the trickier aspects of web-based application development were not concerns. However, we still needed to deliver 133 True/False questions, and 30 multiple-choice questions in a stateful way, so students could easily “go back” and change their answers, as well as get their end-of-exam score.

While there may be AJAX gurus out there who think this would be a piece of cake, I do almost all of this development work in Scheme, and have no particular expertise in HTML/CSS/Javascript interaction on twelve different browser platforms (that’s why I run with a team). I certainly don’t have a lot of patience for developing code in an unstructured and unsupportive environment. Put another way, I think the browser makes a lousy run-time environment; I want my compiler to check for obvious problems up front, and I want my runtime environment to be rich enough that I can go about debugging a running application. Your typical AJAX app fails on these counts far too readily for me to think that any AJAX code I develop in a hurry will be reliable. (I’d like to point out that I’ve never even given AJAX enough of my time to decide if my biases and opinions are right; I’ve only read code and stories from others, and I don’t like what I see.)

Enter OpenLaszlo. It has a compiler, that tells me when I make silly mistakes. It has a rich run-time environment, which includes an interactive debugging REPL. I can create a window as easily as saying

<canvas><window>Hi there!</window></canvas>

It uses JavaScript 1.5 as it’s scripting language, and has a really sweet little constraint engine built in. The upcoming 3.1 release has some very swish enhancements on the way as well.

I was able to quickly prototype ideas for the customer, push them to the WWW, and let them interact with the application. While it is possible to do all kinds of RPC from OpenLaszlo, I chose to employ another really nice feature of the environment: SOLO application deployment. If you’re willing to give up some (not all) connectivity with remote hosts, OpenLaszlo apps can be compiled to a single, static Flash file. This means that any user with Flash 6 or better can interact with a very rich net-based app, and get a very desktop-like experience.

The end-product of a one-week mad dash can be seen online; I was quite pleased with it. I know I made some choices that were less than optimal, but the code can be refactored and improved in a future iteration of the project. I was also happy working with OpenLaszlo as a development tool—putting together GUIs was no more complex than writing a webpage, the event model and constraint system are both well-behaved and useful, and being able to deliver a static Flash document as an application means I don’t have to worry about a timeouts on client/server interactions, nor do I have to wonder if IE4/IE5/IE6/Opera/Firefox/Mozilla/Safari is going to choke on my particular choice of HTML, CSS, and Javascript idioms. If you’re some kind of “purist” who abhors Flash, then… I can’t help you. But it’s widely deployed, and much better behaved than a gaggle of browsers.

Food for thought. Point is, I liked it. And the customer loved it; the app behaved just the way they wanted. I don’t know what else I can say.

Posted in Javascript, Web development | Comments Off on The Birmingham Course: OpenLaszlo to the Rescue!

15 Sep 2005

by Noel

eBay acquires Skype

eBay to acquire Skype for over 2 billion (euros or USD). That is a lot of biscuits. I think you have to take this as a sign that war is about to erupt in the VoIP market, given Google’s recent entry. Now, who’s left for Yahoo to buy?

Posted in Business | Comments Off on eBay acquires Skype

12 Sep 2005

by Noel

New Apple Products

While I was away on holiday Apple released two new products, the iPod Nano, and an iTunes equipped phone in collaboration with Motorola. Apple is currently the biggest innovator in hardware design so it is worth looking at what they come up with.

In the case of the iPod Nano this is one sleek device. It takes the existing iPod design and makes it smaller and sexier. I suspect this product is driven more by improvements in storage technology allowing a smaller device than any plan to evolve the iPod design, but it sure looks nice.

The iTunes phone though disappoints me. iPods have smooth surfaces, with a minimum of visual noise. This phone is a brick, with all sorts of unnecessary fuss such as the two-tone colour scheme and the raised M on the front. It doesn’t look anything like an iPod, and so dilutes, rather than strengthens, the iconic iPod brand. I’d like to know the inside story of the design of the phone; I suspect it has a lot more involvement from Motorola than Apple.

Posted in Design | Comments Off on New Apple Products

12 Sep 2005

by Noel

Firefox 1.5 Beta 1

Firefox 1.5 beta 1 is out. I’ve been tracking Deer Park (the pre-beta releases of Firefox) for a while now so I’m excited to see this new release. I’m particularly enthusiastic about the canvas support as I’m having fun playing around with vector graphics. The Firefox canvas is much more complete, though slower, than Apple’s buggy implementation in Safari. The other new features don’t excite me as much, as the web applications I develop run on the general Internet. If you have a closed environment they will be more useful. In such an environment, XULRunner becomes very interesting.

Posted in Web development | Comments Off on Firefox 1.5 Beta 1

26 Aug 2005

by Noel

Google’s Business Plan

How the heck does Google manage to stay in business? has some interesting speculation on Google’s business plan for Google Talk. Giving away software for free, building market share, and only then trying to find ways to make money does seem to be a viable business plan for today’s technology companies, but it takes courage, or deep pockets.

I’m on holiday next week, so postings to Untyping will slow down from their usual languid pace.

Posted in Business | Comments Off on Google’s Business Plan

24 Aug 2005

by Noel

Talk Gets Cheaper

Google has just released Google Talk, which is an IM client (not very interesting, though it does use the Jabber protocol) and an internet telephony service (much more interesting, though only a Windows client is available).

In the Voice over IP (VoIP) market Skype is king at the moment, and it is what we use to communicate between all the members of Untyped. However Google has the clout to seriously challenge Skype. Two important steps by Google: they are supporting the open SIP protocol, and actively seeking to integrate their service with other VoIP services such as Gizmo Project, giving them potentially a much wider reach than the closed Skype protocol. It looks like this market is going to get very interesting in a hurry. Now where are the phone companies in all of this?

Posted in Business | Comments Off on Talk Gets Cheaper

18 Aug 2005

by Noel

A little OpenLaszlo lovin’

No doubt I’ll be playing with this technology more in the future, so I thought I’d introduce it now.

OpenLaszlo, released unto the world by Laszlo Systems, is an interesting combination of languages and ideas. It is an XML-based language for specifying the layout and behavior of rich internet applications. For example, I wrote a tabbed slideshow for photographs that you can find on my personal weblog, here….

 

No doubt I’ll be playing with this technology more in the future, so I thought I’d introduce it now.

OpenLaszlo, released unto the world by Laszlo Systems, is an interesting combination of languages and ideas. It is an XML-based language for specifying the layout and behavior of rich internet applications. For example, I wrote a tabbed slideshow for photographs that you can find on my personal weblog, here. I think it would be difficult to write in JavaScript and CSS. Consider:

  1. When you open a slide, audio begins playing.
  2. When you switch slides, the current audio stops, and new audio is started.
  3. I can layer objects (and remove them) over the photo content quickly and easily, when and where I want them.

I imagine this is all possible in JavaScript/DHTML, but… I don’t know how. And, I don’t feel I need to; the OpenLaszlo crew has provided a powerful platform for me to work from—a compiler, GUI toolkit, RPC mechanisms, and more. It seems to me that the whole JavaScript/CSS/AJAX thing is nothing more but a poor reinvention of the technology that OpenLaszlo provides. Granted, for full RPC-functionality, OpenLaszlo currently requires a servlet container, whereas AJAX-apps just need a browser with a JavaScript engine. However, you don’t get much support from the compiler or run-time for debugging AJAX applications, whereas OpenLaszlo apps have a compiler and run-time debugger. That’s worth installing a server to me. (It was a double-click operation on my Mac.)

If I forgo the OpenLaszlo server, I can statically compile my applications; although RPC is no longer available, I can still do HTTP POSTs, and that’s enough to do something RESTful. But, instead of a webpage, I can create a very rich, interactive GUI-based environment that can be delivered to any browser that is Flash-capable. I hear Macromedia has pretty good penetration, and generally things Just Work within that environment, regardless of whether you are on Windows or Mac, IE or Firefox, etc.

So, I think it’s a cool technology. I’ve been poking at the edges of it on-and-off for a few weeks now, and will follow up with some more about what I’ve been doing with it. My tutorial builder/photo slideshow demo just met a need I had; I think OpenLaszlo is capable of much, much more.

Posted in Javascript, Web development | Comments Off on A little OpenLaszlo lovin’

16 Aug 2005

by Noel

Content To Go

Blogs are a good way of building reputation, but many of us are too busy to write regularly. As more commercial organisations get into blogging it should come as a surprise to find there is now a company that will out-source your blogging.

The plan is pretty simple: you give them some cash, and they hire a small army of Chinese people to create content for your blog. It’s a bit like the old monkeys-and-typewriters gag: given enough monkeys and enough typewriters, eventually one of them is going to produce Shakespeare. If the plan is simple the ethics are substantially more murky, though in the final analysis it isn’t too different to contracting out press releases to a public relations firm. The difference, I think, being that people have an expectation that blogs are written by those personally acquainted with that which they write about.

I do like this post. Apparently the writing style of teenage girls is easy imitate, but Super Bloggers are proving more difficult, where Super Bloggers are defined as “bipolars, cynics, liberals, outcasts, super-hip”. I’ve already shown my dislike of Coldplay, but I don’t think I have the requiste 5% self-loathing to crack this exclusive group.

Posted in Business | Comments Off on Content To Go