This site is rarely updated. benbrophy.com is more up-to-date. - Ben

REST APIs and Basic Knowledge

I'm adding a feature in Linkwalla that let's automatically add links to your del.icio.us account when you add a link to Linkwalla. I'm doing this using the del.icio.us api.

Figuring out the API was simple, and writing a function that would add the link was simple. The hard part was figuring out the first sentence line from the API description:

Everything in /api requires HTTP-Auth.

This is a problem I often run into as an wannabe programmer. I can figure out how some fairly fancy stuff works, but there are these little pieces of assumed knowledge that take for ever. I mean every body know how to make HTTP-Auth work, right? I spent hours googling, reading and rereading function descriptions of PHP.net, reading up on HTTP headers, and on and on. I found a great guide to using the del.icio.us API and thought my problem was solved until I read their explanation of HTTP-Auth:

del.icio.us is a login-based system, and uses HTTP-Auth for authentication.

That's it! Finally late last night I was searching through PHP books on O'Reilly's Safari service (free access to Safari is perk of working at MIT) and I found the answer in the book Upgrading to PHP 5. All I had to do was format the Delicious URL in a funny way:

http://username:password@del.icio.us/api/posts/add

Voila. I had it working in 30 seconds. So now I know. It took many hours of wasted time, but I'm a better nerd for it.

By the way, I've tried working with a SOAP API before, and REST is a piece of cake in comparison. I think it's definitely the way to go for Sakai services, if only because we have a goal of letting fuzzy-headed self-taught web developers like myself link their scripts into Sakai, and asking them to figure out SOAP puts big barrier in the way.

Tags:

Comments | 2005-07-30

How Moodle is better than Sakai

Well for one thing there's an O'Reilly Moodle book now. Not a full-scale animal book, just a tree, but still, that's pretty impressive.

Charles Kerns from Stanford recently wrote up a list reasons why Moodle is more pedagogically oriented than Sakai. It's hard to extract from what was a long multi-quoted email chain, but I hope he writes it up and puts in [Sakaipedia](http://bugs.sakaiproject.org/confluence/display/ENC) some time. Here's a interesting quote:

"...we have positioned Sakai as an institutional solution; moodle is a teachers' solution."

There's still hope that Moodle and Sakai might work together. Chuck Severance and Jim Farmer from Sakai recently met with Martin Dougiamas, Moodle's tribal chieftain, in Washington D.C. You can watch Chuck's video from the event.

Tags:

Comments | 2005-07-29

Fresh links via linkwalla 0.2

You can now subscribe to an RSS feed of links to interesting tech-related things I've seen on the web (it's linked over on the right of the screen). I subscribe to about 100 RSS feeds, and many of the links that pop up in my links will be found elsewhere. I may throw in the odd Stellar site or site that someone emailed me about. These are sites that worth a look, but i don't have the time or inclination to write blog entries about.

This also a way for me to use linkwalla, my homegrown open source software for sharing links. I can't run a PHP app on web.mit.edu, but I'm running it on my laptop and synching the feed onto this site using a cron job. In preparing to this I made enough improvement to linkwalla to post version 0.2 on Sourceforge.

Tags:

Comments | 2005-07-28

Students Adding Images

Students should be able to upload images to use in slideshows they create using Stellar Images. This became clear to me while talking to Susan Slyomovics, and anthropology professor and photographer, who has students create photo exhibits as a final project for her class, Photography and Truth.

I've mentioned before that I think Stellar - and Sakai - tend to focus a bit too much on how instructors use the software. There are fairly few opportunities to students to more than passively receive information from the sites. Students should be able to add resources to the class materials page, for example. I'm hoping the Images tool will help us break the habit of focussing on the model of professors lecturing to passive students, and allow for some more collaborative teaching and learning.

We could achieve these goals quickly by using the Flickr API to add creative commons images and images from user's own accounts to the set of browsable collections in the Stellar Images.

Tags:

Comments | 2005-07-27

Specs for Stellar Images

I just posted some initial specs for Stellar Images. I've been getting many urgent requests for more detail on what the tool will be. I've been a little hesistant - we're stillinterviewing instructors, and working with a small team on a tight deadline I want as much flexibility as possible. But the time has come - these are plans for our initial proof-of-concept. The plans are very likely to change, and I'll keep updating the page here.

Tags:

Comments | 2005-07-26

Ten years!

It's hard for me to even imagine this is true, but as of today I have been working at MIT for ten years!

When I arrived I thought I'd work here for a year or so while I figured what I wanted to do. But the Institute just sucks you in. I've always been encouraged to discover what it is I want to do and do it here at MIT, my job description always trying to keep up with my passions (and often lagging behind by a few years...).

So thanks for the decade, MIT. And thanks for the extra week of vacation I get this year, too.

Tags:

Comments | 2005-07-25

Some simple freelance sites

I've designed a couple of simple websites for athletically-inclined friends.

I completed the site for Caroline Hallisey, Olympic speed skater, a couple of months ago. Caroline, whose mom is a project manager here at MIT, was on the Olympic team in Seoul (1998) and Salt Lake City (2002). She is the fastest woman speed skater in the USA, holding three records. Sounds like Caroline has excellent chance of appearing in the XXth Olympic Winter Games Turin, 2006.

I just recently launched a site for Beth Erlichman, a personal trainer in Boston. I've been getting training from Beth, and she managed to design a workout for a someone little time or inclination to exercise.

Tags:

Comments | 2005-07-23

Half a Slideshow tool

This Signal vs. Noise entry mentions their idea of releasing "half a product." That is scaling back scope as much as possible and releasing a minimally useful application that you can then build and improve on.

That's the approach we're planning for our Stellar image tool (it still lacks a final name, which makes it hard to publicize). It's really hard to keep the scope small, because there is so much excitement around using images in teaching.

The current plan is to release a proof-of-concept this Fall, where a proof-of-concept means a pilot with no pilot users. The initial tool will search against multiple repositories and keep copies or references to the images the user selects in Stellar. This should be enough exercise our tool a bit and start getting some quality feed back from MIT instructors. We'll expand the tool later to include better organization, annotation and presentation abilities.

Here's an exciting tidbit: We're planning to integrate dSpace, MIT's digital library.

I'm on vacation now, preparing to go camping and leaving the laptop at home. See you next week.

Tags:

Comments | 2005-07-19

Open Education Conference

I found a notice for the Open Education Conference in Utah while cleaning out my spam filter. Sounds great, I've been working on ways to promote sharing and openness in Stellar. I assume MIT's OCW will be there - I see there is an "MIT Meeting" by invitation only in the schedule.

Tags:

Comments | 2005-07-18

Stellar site downloads

One of the most requested enhancements for Stellar from faculty and students was to be able to "download a copy of my site." We did some interviewing to dig into what that meant. The baseline requirement seemed to the ability to get a download that includes all of the files that have been uploaded to the site, so that the instructor or student can keep a sort of personal archive of the class materials.

In our initial release we will likely include only the files, meeting the clearest requirement. Based on community response, we might add the additional ability to get a copy of the full website as well.

On clicking a link to download a copy of the site's files a zip file will be start downloading to the user's computer. Once unzipped, the user will have a directory with the site's course number. Here's what's in the directory:

  • Folder for every topic
    • Folder for each kind of file
      • Individual files
  • IMS content packaging xml file
  • readme.txt

Homework and class materials share the same topic structure in stellar, so we can load them into the same folders based on topic name. The Folders for "kind of file" include 'lecture note,' 'reading,' 'solution,' 'syllabus' etc. Instructors should get all files. Students should get most files, but electronic reserves will be replaced by a text document containing the citation for that file (this not what the students want, but its the most we can do while staying in the bounds of MIT's fair use policies).

The IMS content packaging file is there to facilitate other kinds of use - it may be possible to use that file to import the materials into another course management system, or into DSpace. We're going to include it at the encouragement of the CWSpace team.

The readme file will explain the directory structure, and give more context about how to reuse materials.

There is a lot more we're not doing - we're not downloading discussion board messages, student submissions, membership lists, custom Stellar pages, the class description and more. Those issues are trickier, and not something we heard a call for. We'll see if the initial ability to download a site satisfies of people realize they want more.

Tags:

Comments | 2005-07-15

Ruby Corrections

More from the inbox. Michael Han said:

Similar to what Steve wrote about Python, Ruby is

  • also an interpreted scripting language
  • features an interpreted shell (irb)
  • got mod_ruby for apache
  • purely object based (not like python)
  • has a Java version (JRuby and Groovy)
  • got tons of web frameworks (Borges/Rails/cerise/...)
  • not to forget Japanese language support ;-)

See this is going to be my new way to learn. Just state ill-informed opinions on this blog, then wait for smarter people to correct me. It's working pretty well this week.

Tags:

Comments | 2005-07-14

iPod Windfall

Apple continues to post massive iPod profits. Their shares jumped 11 cents on the news. My stock portfolio consists of 10 shares of Apple stock so that's a buck and dime right in my pocket!

Tags:

Comments | 2005-07-13

O.K.I.'s Distributed Content Demonstrator

O.K.I. was honored at alt-i-lab:

This year's Distributed Content Demonstrator was a resounding success, taking top honors at alt-i-lab 2005 in Sheffield, UK. Participating in the demonstrator were Giunti Interactive Labs, HarvestRoad, Mac Learning Environments.org and the Open Knowledge Initiative (O.K.I.).

This is the work we're planning to build off of for the Stellar slideshow tool. We will search across multiple repositories to retrieve images for use in online learning. This Fall we'll be gathering a "lightbox" for a class. Next Spring we want to use that light box to assemble presentations, both by instructors and students.

Tags:

Comments | 2005-07-13

What about Ruby?

But what about Ruby? This guy seems to really like Ruby compared to Perl. And after watching this Ruby on Rails video, anyone would want to spend a few days getting to know Ruby.

Note: This is a continuation from recent posts on Perl and Python.

Tags:

Comments | 2005-07-12

Python correction

Steve Githens wrote to set me straight about Python:

Python is an interpreted scripting language like Perl, which you can compile if you want to, but other wise you just run "python script.py" like you would run "perl script.pl". But it's much more object based, so you can compile it if you want using other tools (and to Java using Jython, or .Net using IronPython). If you just need to get work done, you can completely ignore all of python's object oriented support, and just get to work parsing files and outputting html or whatever.

Python is nice to because you can run it in an interpreted shell, so you can just play around. This makes learning it fun and exploring easy.

Apache has a mod_python much like the mod_perl, but it's definitely not as widely installed on common servers as Perl and PHP servers.

I've been using Python for a few months now, and I don't have any real complaints. I think it looks cleaner and not as obfuscated as Perl. And because it's close to Perl in popularity, it has bindings and modules for most everything. But like you said, it doesn't seem to be installed on everybody's web servers yet.

Just thought I'd plug the language that been growing on me as of late.

So there you go. Python does warrant more research next time I get energized about learning another language (could be tomorrow, could be a couple months, who knows). Steve has been doing interesting Sakai work with Python.

Tags:

Comments | 2005-07-12

Maybe not Perl

OK maybe not about the Perl thing. Check out this essay by Tim O'Reilly answering the question is Perl relevant any longer? It strikes me that answer that half-hearted from someone who is such a famous user and supporter of Perl means that maybe it isn't so relevant.

I imagine my Perl-lovin' colleagues would think that it really doesn't matter - as long as it's useful to the task at hand. I've found learning Perl to be the easiest of any scripting language I've dabbled in. But I've done the most work in PHP. because while Perl's been easy to learn PHP has been easier to apply.

I'm not considering Python and Ruby as strongly because they are compiled languages and run off their own special web servers. Not sure that that matters, but it makes it hard to create something I know any web host can can support.

SO where are my training hours best spent? I'm not sure. At this point I'm planning to focus in on MySQL this Fall, since it is generally relevant to any of these scripting languages.

Correction: Steve Githens corrected my false impression of Python.

Another Correction: Michael Han corrected my false impression of Ruby.

Tags:

Comments | 2005-07-11

Scripting Dilletantism

I'm thinking about learning perl again. I got discouraged by some of my colleagues dismissing Perl as a dying language. But our colleagues at harvard and University of Washinton seem to be doing some great work with Perl. I could take Practical Perl this Fall. Surely it would be useful.

Tags:

Comments | 2005-07-08

Compare Sakai to other platforms

Vivie Sinou reported that the Edutools website finally includes Sakai in it's comparisons.

To check out the Sakai 2.0 report, go to: http://www.edutools.info/course/ (right column)

To do a comparison between Sakai and another system:

  1. Go to: http://www.edutools.info/course/
  2. Click on "Compare Products" (middle fat button at the top of the page/below header)
  3. Click on "By Product Name"
  4. Check "Sakai 2.0" and "Blackboard 5.5 and click on "compare"

You can do the same with other platforms.

Tags:

Comments | 2005-07-07

Sakai Core meeting day 2

We're back maybe just slightly hung-over from dinner and after dinner meetings that lasted long into the night. I'm going to try blogging the meeting like yesterday, though once we get into wire-framing I'll be fully occupied by that.

9:15: More on the licensing issues. The issues are mostly around javascript widgets, which have iffy homemade licenses. This project really needs some skilled javascript developers - this comes up again and again. Any volunteers?

9:40: Talking about mobilizing resources for sectioning work. This is much bigger project than Chuck Severance (lead of the Sakai architecture efforts) had originally realized - there's a good chance that this will be the one visible change for Sakai 2.1.

10:00: Talking over whether to try to deliver the full gradebook, with categories, percentage weighting and statistics, or just a section-aware gradebook. Also can we make the announcements and email tools section-aware, since they are older 'legacy' tools from CHEF. The tools team isn't talking making a section-aware resources tool a high priority, which some find surprising.

12:05: We've been really cranking on what we are currently calling the "Membership Tool." You can see a sample wireframe of the class roster (PDF - 41k).

12:35: Our highest priorities for adding "section awareness" to tools are:

  • Announcements
  • Gradebook
  • Samigo
  • Email

Second priority:

  • Assignments
  • Discussion
  • Resources
  • Syllabus

1:55: OK, the official meeting is over. This was a good Sakai meeting, because unlike the usual meeting it was tightly focused on one topic, sectioning. Next time all these people meet will be in Austin in December, though there will be smaller team meetings in the interim.

Tags:

Comments | 2005-07-07

Liveblogging the Sakai meeting

I'm going to live blog the big core schools Sakai meeting at MIT today. Expect typos and incomplete thoughts.

9:00: Early conversation around pedagogy/learning design. Charles Kerns has been waving the banner for pedagogy since the beginning of the project, he's going to be retiring soon.

9:30: At the conference we ought to have an orientation for newcomers.

9:50: Negotiations over the date of the 2.1 release. It's based on the start of Spring semester at schools that are planning to deploy 2.1, working backward from that. Sounds like code freeze October 15, QA complete November 15.

9:55: We decided to make all discussions in confluence public, so that anyone interested can see what we're working on in Sakai. This is really a response to criticism we've hear about Sakai's closed development process.

10:00: A 2.01 release is on track for a July 15 release. It contains many bug fixes (though not all open bugs). There's big debate over how it's determined which bugs are 'blockers.' Also how to make it clear that some bug fixes are available at the head of Subversion.

10:15: Talk about licensing, and being clear about the license for contributed code. I really can't get into licensing conversation. I know it's important, If you're interested here's more on the licensing issue.

10:30: We're reconvening. The board has left the room, designers and developers are gathered together to talk about sectioning.

11:10: Every school defines sections in a different way. At some schools (IU, UMich) the section membership is defined by the registrar, at some schools (MIT, Stanford) the sections are defined by the class. There's a lot of talk around terminology.

11:15: At Indiana instructors are teaching 4 versions of the same class simultaneously, and this what they call sections. So the instructor would like to have one website for their four sites. The students should use the site as if it is just the site for their course. This is quite different then what we do at MIT.

11:40: I'm talking and listening too much here to write much. We're covering some variables (sections can have leaders, sections can have meeting times and places, etc).

11:50: In naming sections, we might consider doing this automatically. Create a set of labs and we'll name them Lab 1 through Lab 10. Or name them using the instructor name, or based on the meeting time.

12:05: We're back to talking about treating sections as subsites, or having sections in separate sites that are aliases of one main site. I really don't think this is a user-friendly approach (even though it's pretty close to what we do at MIT). It's easier on programmers, but not on the people that use tools.

12:20: Lunch at last!

1:10: Were going through the draft sectioning specs item by item with the architecture team.

1:30: This is useful, but fairly agonizing. Thank goodness I got a latte. We talking about having "types" of sections (e.g. labs and discussions) in one class.

1:40: We should think of this as a "class roster" tool. It would be generally useful for instructors to have this tool even if they have no sections. They can see who is in their class and add new members. Just like the membership tool in Stellar. It would also allow for creating managing sections. I am excited that we all, programmers and designers alike, agreed on that. This is big (though I've been reminded we're just having a discussion here).

2:05: I think we decided that this tool we're working on will designed to handle formally defined sections, as opposed to the more informally defined groups. (see my earlier entry on the distinction between groups and section).

2:15: The programmers have taken over the discussion for a while, getting into the whether this is roles based or permissions based, is it tool level or application level. Queries vs. permission checks, AuthZ vs. Course Management API. I'm waiting to hear those magic words "Let's take this off line."

2:25: Section awareness in tools initially will mean things like filtering the student roster in the gradebook by section, or in the announcement tool deciding to send an announcement to only certain sections.

2:30: We're getting clear that the section doesn't have it's own URL. A student goes to own class site, and it shows them information based on which section they are in.

3:25: We've had a long break. In someways breaks are the most important parts of these meetings. We're all repeating what we heard to each other, and cementing the decisions we've made. Time to get back to work though, and start doing some UI work. I probably won't be blogging this part as much.

5:00: This has been great. We put a rough flow diagram up on the blackboard, then went through our requirements, writing each requirement on a post-it note and then sticking it to the flow diagram. We've got a good rough cut at how the too will work right now. Tomorrow we'll break into teams and make wireframes on the blackboard. We're all bringing to bear the experience we have working with instructors on our current CMS. This is how I thought the tools team would work when I signed up 18 months ago.

Tags:

Comments | 2005-07-06

Linkwalla on Sourceforge

My little PHP hobby project Linkwalla is now on sourceforge. I've got a lot to learn about how sourceforge works, but for now I've got the files hosted there for download.

Tags:

Comments | 2005-07-01