I was searching for some things related to a side project I’ve been working on; this seemed like a good place to put those links. Basically, it’s all related to the LEGO Mindstorms stuff I’ve been doing for a number of years now, but this is slightly different. Well, not much. But slightly.

Link Comments
Handyboard H8C11. Ugh. Small.
SDCC Small Device C Compiler; targets the Intel 8051, Maxim 80DS390, and Zilog Z80.
Active Robots These guys sell robot kits in the UK.
WE7U Some guy with a mess of robotics/Handyboard links
XScale robotics No dice; Intel is developing, but has not yet released, XScale prototype boards for small robotics applications. Although, there is a good bit of info on Intel’s site; ah! Acroname seem to have the juice on where to get the boards. Better yet, they have the Garcia, which at a glance doesn’t seem to have much in the way of sensors.
BrickEmu RCX emulator; apparently, ideal for debugging BrickOS stuff. Why haven’t we been using this all along?
GDB for BrickOS Old? No date on the link…
legoSim Another LEGO Simulator. These things are just falling from the sky this evening!
…bases itself on a big lie and a big misrepresentation can only sustain itself by a dizzying succession of smaller falsehoods, beefed up by wilder and (if possible) yet more-contradictory claims. President Bush…

Where did this excerpt come from? Is it a criticism of the Bush administration, and it’s handling of the media for the last three years? Or, is it criticism of Michael Moore’s latest film?

I haven’t seen the film. However, it is clear that the film is biased; I don’t know how this could be contended. Obviously the film has a message; getting worked up over this fact is like getting worked up over Oedipus Rex because of all the incest—of course there’s incest! How else are you supposed to wake up your average Greek farmer some 2500 years ago and get him to understand the dangers of sleeping with his own kin?!? Michael Moore’s films are no different: they slap the average American in the face, for better or worse.

This kind of obvious “bias” I can handle. What I dislike is how carefully the “bias” is hidden in the rest of the media. For example, I read an article the other day via the BBC World News titled Ex-officials lash Bush policies. We begin with a strong statement:

A group of retired US diplomats and generals has condemned the foreign policy of the Bush administration as ideological and callously indifferent.

From here, the bulk of the article is comments from former generals, admirals, and officials of the government of the United States of America; it’s a summary and rehashing of their open letter. Consider: these are people who have spent significant time serving a nation—an idea—and they have a right to say when they feel their life’s work has been undermined. News sources, however, must present a balanced report, so a dissenting view must be found to balance things.

The entire article includes quotes and comments from individuals signed onto the statement delivered to the White House. However, the BBC makes sure they aren’t too biased, and close with this witty bit of reporting:

Cliff May, president of the conservative Foundation for the Defense of Democracies, told the BBC:

“Largely, they are people who were in senior official capacities before 9/11. They are people who are responsible for the policies prior to 9/11.

“Those policies I think, failed spectacularly on 9/11,” he said.

Who the hell is Cliff May? If they really wanted to “balance” the article, they would have asked a dozen current diplomats and representatives of the US government who are in some way comparable or equivalent in position and stature for comment. Cliff May, in this context, is no different than you or me: a nobody. Or, if you prefer, just another Joe with an opinion.

Opinions do not balanced reporting make. At first glance, you think you’re getting “both sides of the story”… and then you realize that you just slept with your mother. Guess it’s time to go pluck out our eyes…

I’m looking at putting in a tiny grant application for a digital audio recorder. I may find myself doing some interviews next fall, and having something that can be transfered to my Powerbook instantly (as opposed to having to play the recording back at 1x speed, as I do with my minidisc) would be a genuine boon.

I’ve found one or two things about people’s experiences using digital audio recorders for interviews and fieldwork:

At the end of the day, I want to be able to drag-and-drop the recorded interview to my laptop. Either using a dedicated “solid-state digital recorder” or an MP3 player with recording functionality. Recording devices that might fit the bill include:

Unit Cost
Beat Sounds EVR-500 $145
Sony MZ-NH9001 $300
Jens of Sweden MP-3002 $300
iRiver iFP790T3 $160
Olympus DS-2000 $185
Apple iPod 15GB4 $360
iRiver iHP-1205 $300
1Probably does not work with my Powerbook. Too bad.
2Would require a small pre-amp for miniplug mics (line-level only). Built in FM transmitter as well.
3 MP3 player/recorder combos are low quality, but might are good enough for interviews.
4Includes the cost of the Belkin voice recorder ($60). Definitely works with my Powerbook and Windows machines.
5No word on this thread regarding integration of the iRiver with the Mac. However, the iRiver does have the ability to record mic-level in (design feature, not an add-on).

I wish I could find more info about how well the Belkin adapter/iPod combo works; that could be really useful, as it also doubles as 15GB of external, portable storage.

This short article summarizes the limitations and drawbacks to using a closed and proprietary content management system like WebCT in conjunction with third-party e-learning tools. Alternative software solutions, as well as the positive social impact of those choices, are considered.
– mcj

The Project

Led by Bob Keim, and with the support of the Kent New Technology Initiative, we are developing an on-line tutorial creation system for BlueJ, an environment designed for beginners learning to program in Java. If at all possible, one of our design requirements was that we integrate this system not only with BlueJ, but also with WebCT, Kent University’s current e-learning solution.

We are particularly committed to leveraging the technologies available to maximize online interactions between the learner, their instructor, and other peers. This means making effective use of email (individually and via lists), discussion fora, weblogs, SMS, and other similar tools in tight conjunction with an interactive tutorial. WebCT is unable to support the kinds of interaction we wish to support in our particular e-learning context.

Why WebCT is Inadequate

WebCT, Blackboard, and other e-learning and course management systems are expensive propositions. I would guess that any institution looking to deploy these systems on a large scale will be spending upwards of £15,000 or more for installation, and similar figures for support contracts. These support contracts do not cover extension of the software in critical ways to better enable their effective use in a given learning environment. In our case, we have no way to programmatically access the WebCT grade book, email system, discussion fora, or any other aspect of the system from our e-learning tool, which exists largely outside of WebCT itself.

This is a problem. If WebCT is the chosen delivery platform for e-learning content at the University of Kent, and we cannot adequately interact with it in a real-world, useful distance education offering, we are left with only three choices:

  1. Make our software work with WebCT,
  2. Upgrade WebCT, or
  3. Leave WebCT as a platform.

I will briefly consider the pros an cons of each of these options.

Make our software work with WebCT

We will never be able to do what we really want to do with WebCT; for example, our external tutorials will never be able to update the grade book in any automatic way. Therefore, to even come close to making use of WebCT, we would need to give up a great deal of functionality. So much functionality, in fact, that we would likely fail to produce a tutorial system of any pedagogic value. This is not acceptable.

Upgrade WebCT

This is the most viable option, if we are committed to keeping WebCT as our platform of choice for the delivery of e-learning content. WebCT Vista is more than an educational content management system: it is an enterprise-class middleware platform that can be programmatically accessed via many different protocols. With this power, however, comes a price: a typical Vista installation will likely cost upwards of £30,000, with support contracts easily doubling from a basic WebCT installation.

This kind of power and flexibility would likely solve the problems of external educational softwares and utilities interacting with WebCT, but I do not believe it is justifiable in either the short or long term. An upgrade to Kent’s WebCT installation would cost many times more than the tutorial itself will cost to develop; the phrase “for want of a nail” comes to mind.

Leaving WebCT

While no-one was ever fired for buying IBM, there is a question of whether IBM was needed in the first place. Leaving WebCT behind actually creates new development opportunities at Kent that would otherwise not be possible, while simultaneously benefiting institutions of higher learning both within the UK and around the world.

The idea of moving from WebCT or Blackboard to an open-source e-learning platform is not new; in a post to DEOS-L (The Distance Education Online Symposium), Timothy Takemoto provides a compelling comparison between WebCT, Blackboard, and Moodle, an open-source product for delivering e-learning content online. Looking at a head-to-head comparison of these three products, we find that the open-source offering is not “wanting” in any significant way; in fact, it is generally more flexible on infrastructure issues (eg. authentication) than the closed-source or proprietary solutions available. Mr. Takemoto highlights much of the same in his comments to DEOS-L:

The following document is particularly interesting, claiming a WebCT advantage
over BlackBoard, and stressing learner control functions (such as “selective
release”) and the price of up to $44,000 to set up, and a mere $29,000 a year, as one of WebCT’s strengths! (http://www.wit.ie/library/vles/WCTCompAdv.pdf)

I notice no significant functionality that is not supported by Moodle. The only thing missing is the price tag, for the software. (Full support, updating, and hosting
comes at only $1000 per year.)

The solution that benefits the world

If Kent is looking to invest in an e-learning solution that is

  1. Flexible,
  2. Extensible, and
  3. well supported

they should consider Moodle. The benefits to the larger educational community are many:

  1. [ Flexibility ] If our work on a tutorial system for BlueJ is a motivator, we believe that the kinds of online interaction we imagine being beneficial to students would be possible under a framework like Moodle, because of it’s extensible design and well-documented approach to storing content and student data.
  2. [ Extensibility & Support ] Moodle has both an engaged community (as evidenced by on-site fora and searching the web), as well as the opportunity for direct commercial support (via Moodle.com, eg. a support contract). Given that development of modules and extensions to Moodle involve work in PHP (a commonly used language for developing web content all over the world), finding developers and staff capable of this work is not a difficult proposition.
  3. [ Ecology ] If Kent were to invest £15,000 per year in either A) hiring a dedicated Moodle developer, or B) using money that would otherwise be spent on a WebCT contract to partially “buy out” the time of existing staff, extensions to Moodle developed at Kent (and given back to the Moodle community) would benefit approximately 1,500 institutions in 86 countries around the world (ref). This is a fraction of the cost of upgrading to WebCT Vista, and while the installed user base of Moodle is much smaller than WebCT, tying freely available tools to other freely available tools is a winning proposition for both. In the free- and open-source world, we might call this “being ecologically sound.”

There are other educational content management solutions that are open-source or otherwise freely available to the educational community. I do not pretend to have done a thorough comparison of all the systems available; however, I am not alone in my belief that Moodle compares favorably with it’s commercial virtual learning environment peers. In our particular situation, it is clear that the commercial offerings cannot, pound for feature, compete with Moodle in meeting the particular needs of a tutorial builder for the BlueJ programming environment.

In Conclusion

We believe there are few benefits to the community at large by investing in closed or proprietary solutions, especially when viable, open solutions exist. A course management solution like Moodle would have eliminated any question of whether our investment of integration effort would be possible (as we could easily use Moodle’s extensibility to our advantage) and valuable (as we would leverage one freely available educational product against another).

I am looking for an embeddable HTML content pane. It probably needs to be written in Java, as it must integrate with an existing Java project. Ideally, this content pane supports

  • A reasonable subset of HTML (4.0?),
  • Forms
  • Javascript
  • Some sort of CSS

This, of course, is like saying “I want an embeddable web browser.” (Embeddable is neither in the Apple spell-check dictionary nor at dictionary.reference.com. Hm.) I’m building a tutorial builder that is specifically designed for supporting the on-line instruction of novice programmers; it will integrate tightly with BlueJ, a programming environment designed for supporting novices learning to program in Java. I want to provide a way to let users (me, other instructors) create interactive content in HTML, and an embedded Javascript engine will handle page transitions (which will be conditional based on the current state of the environment, eg. student’s code).

So far, I’ve found a handful of options, and have no experience with any of them; this evening I’ll start filling in some details based on experimentation. If I’ve missed any, or you have any experience with these kinds of widgets, I’d be glad to hear about it here or via email at mcj4 at kent dot ac dot uk.

CalHTMLPane
http://htmlbrowser.sourceforge.net/

HTML Forms Javascript CSS

It isn’t necessarily the case that I need Javascript in the embedded browser; indeed, it only adds complexity the system that it’s absence might otherwise prevent. CSS, however, would be nice; in particular, for institutional branding of tutorials and for accommodating users with special needs (eg. who need a particular, high-contrast stylesheet).

NetClue
http://www.netcluesoft.com/

HTML Forms Javascript CSS

NetClue isn’t free; distribution for the Pro version costs $900 (£450). If I passed on the Javascript, that would come down to $250 (£125). This could be useful, however, to have a full-featured browser component in the project at hand.

JXWB and WWE
http://sourceforge.net/projects/jxwb/

HTML Forms Javascript CSS

Unfortunately, this project seems mostly dead; the files released aren’t (apparently) enough to get a browser going, and there seems to be no life in it currently. Otherwise, it would suit our needs well enough, providing a renderer for HTML and CSS that conformed to standards (so it is claimed).

X-Smiles
http://www.x-smiles.org/xsmiles_objectives.html

HTML Forms Javascript CSS

Actually, this is “just” an XML renderer; I say “just” because they render, among other formats:

  • XML,
  • XHTML 1.0, 2.0,
  • XForms, and
  • SVG (scalable vector graphics)

and they handle ECMAScript (Javascript). An open-source project out of the Telecommunications Software and Multimedia Laboratory at the Helsinki University of Technology.

I will try out the Java classes later this evening; if X-Smiles seems reasonable, it could be a good replacement engine for the Swing HTMLPane. (XForms: are those, um, like HTML forms? Ah. Here they are. They look complex.)

ICEsoft
http://www.icesoft.com/

HTML Forms Javascript CSS

A 30-day trial license exists for the ICEbrowser SDK. I suspect it is priced out of range for the project at hand; if a free/open solution is possible, that will definitely be the route to go. To be revisited later if no other options seem viable.


Notes
(These last three were found via a list of CSS implementations; searching for embedded Java HTML panes has been a difficult task; Google has not been forthcoming with goodness.)

Bookworm.

As left by officemate late last night on a PostIt:

LEVEL 11 BABY!

261,140 pts!!! ....

Zzz.... need sleep .....

Fortunately, I am immune to video-game addiction.

lunchapp
An office-mate and I wrote a small piece of “social software” a week or so ago. If you prefer, you can call it a “web app,” but at the end of the day it’s just a virtual cork-board.

In the computing lab we try to get a group of people together for lunch. This takes effort and coordination; if you use email, you get around five or six messages just for people to say “I’m eating at 12:30.” Sometimes, people say “I’m in,” or they say “I’m eating at 12:00 because of a meeting,” but really… it’s a lot of mail traffic just to say “Hey! Let’s have lunch together!”

Using LunchApp, you choose the time you’re going to lunch (or coffee, or tea, or dinner, or …), enter a short message, and hit “Submit.” By default, the system username is grabbed, but a number of my fellow PhD students have picked humorous pseudonyms for this kind of thing; normally, I often go by Spock, a carryover from many years ago. Removing your message is simple enough as well: just type “remove” in the message area, and your message is removed.

We’ve been testing it for a week or so now; lunch emails have fallen off considerably, which is good, and we even have one or two people outside the department using it; this is a good sign. We’re about to make one or two updates for usability (defaulting the drop-down to 12:30, etc.) and then we’ll release it to the rest of the department.

If you’re interested in the technical bits: LunchApp uses XML-RPC to post a message to a server. Every few minutes, the app checks to see if anything has updated. While there are better ways to find out about updates, this approach helps guarantee that firewalls won’t be a problem for users (eg. we can’t use a publish-subscribe model when incoming traffic is blocked). The client is written in Java, and uses the Apache XML-RPC library; the server-side is currently written in Scheme using XchemeRPC, but I will likely rewrite that in Perl (using SOAP::Lite) to improve response times and lighten the load on the CGI webserver.

Why XML-RPC as opposed to some other protocol? For example, why didn’t I just use HTTP PUT and GET (a RESTful solution)? In this particular case, using XML-RPC made it very easy to write the client and server quickly; put another way, it allowed us to use libraries on both sides, as opposed to rolling our own solution. The server took no more than 15 minutes to write, and it just worked; the client only took longer because GUI work is that way. However, at no point has the networking and client-server work been a problem. It was far simpler, in this case, than mangling HTTP POST and GET statements between the client and server.

airport-express
I try not to make a big deal about technological goo-gaws, primarily because I’m not in a position to buy them. I have my Powerbook, which serves as a mobile super computer, handles every programming and writing task I have, and even lets me watch movies on-screen and on the TV (via nifty adapter cable). All-in-all, this is my big goo-gaw.

But Apple’s new Airport Express is a hot little toy. At $129 it isn’t cheap, but it solves the multimedia issue we’ve been having in our house for a while now. In short, you

  1. Plug it into the wall,
  2. Plug in your stereo
  3. Tell iTunes to play music through the Airport Express

That’s really cool. And it gives you an extended Wi-Fi network and place to plug in the printer as well; very, very sweet. It also means your computer doesn’t have to be near the party-goers to provide music… hmm….

Tom Hoffman struck a chord with his most recent post:

…to present his work at a fake educational technology conference I’m pretending to begin planning. The working title is “Why doesn’t all this shit work? 2004.” The imaginary theme is “Cheap, robust technologies to make the computers actually work in your school.” Or something like that. Topics would hypothetically include Rendezvous, K12LTSP, LDAP, RSS, weblogs and wikis, wifi, when to use PHP, where you can use Python, how to buy gear on EBay, how to figure our what’s wrong with and return that new computer that crashes intermittently but persistently but passes all the manufacturer’s diagnostics, etc. I’ll round up some imaginary sponsors at NECC.

Why doesn’t all this shit work? 2004. I love it. A first love of mine at the intersection of programming and toys is the LEGO Mindstorm. Truthfully, the toy just works, but there is a lot of ugly to managing between 15 and 30 of these things in an educational setting. Batteries, hardware, connectivity to the host PC… everything.

Supporting technology—simple or complex, useful or cool—in the classroom is hard work. This is made harder by the fact that many teachers A) don’t know what is available to them, B) don’t have time to learn the technologies, and C) have good reason to be wary of them in many cases. Switching from floppies to USB keydrives is a no-brainer—but what can LDAP do? Python? Students using weblogs? I’d add open-source courseware to the list—tools like Moodle, for example. I don’t understand why schools pay thousands upon thousands of dollars for products like WebCT and Blackboard when they could send those thousands of dollars (or none, if they prefer) to open-source projects that benefit the larger community in direct, observable ways.

Why doesn’t all this shit work, indeed. These are hard questions, and simple answers are needed before enabling and empowering technologies find their way into the schools in a broad, consistent manner.

Excellent. Perfect. Gary, I love you—I mean, in a friendly, professional sort of way.

Gary, either by good fortune (because he had a question for me) or because he faithfully reads everything I write (well, I can hope) dropped the answer I was looking for.

I wanted a way to graphically define a finite state machine, and save it as a simple XML file that I could manipulate into something else. In particular, I’m working on a web-based tutorial system this summer, and having the ability to sketch a tutorial (as well as all the possible paths one might want to follow if particular kinds of errors occur) seems like a very nice idea. The tutorial developer would then define the pages associated with each node, as well as the conditions on the edges; I would weave the diagram, content, and conditions into a tutorial on the server.

Or something like that.

The missing link was the drawing tool; Mark Rich correctly pointed me to Dot, but I wanted an interactive GUI for laying out the state machine, not something I could use to specify the visual representation. Given the use pattern I described above, you can see why I’d want a GUI tool; the user is already responsible for a reasonably complex document independent of the layout.

JFLAP does exactly what I need. Although it is designed as a tool for teaching students about finite state machines, grammars, Turing machines, and other nifty stuff, it will work perfectly for sketching simple state machines, and saving them out to a simple, clear XML format.

Excellent. I love it when the readership of a weblog comes together.