Archive

Archive for February, 2007

Toronto Technology Week May 28 – June 1

February 16th, 2007
Comments Off

Toronto Technology Week is a new initiative to showcase just how much innovation is happening ’round here. Their announcement is below, minus the dozens of mis-matched font tags put into the origina by at least two different versions of Word.


Toronto Technology Week (TTW) will host a series of activities to showcase the depth and breadth of Toronto’s high technology sector. These will include seminars and business networking functions, job fairs, collaboration demonstrations, an ICT business open-door program, school projects, educational seminars, special exhibits showcasing innovation and excellence and more. For more information on how you can participate, please contact: Dave Forde, Chair, Toronto Technology Week, 416-760-3344.What is Toronto Technology Week?Toronto has some 3,300 ICT (Information and Communication Technology) businesses and 150,000 people that make up the sector here in the city. We have very talented workforce and our city is responsible for a lot of the world’s innovation but we need a way to tell the story of Toronto’s technology community a lot better. The Foreign Affairs and International Trade Canada, the Greater Toronto Marketing Alliance, and the City of Toronto have come together on an initiative called “Toronto Technology Week”. This year I have the privilege to be the Chair and Alicia I. Bulwik, Toronto Economic Development as Co-Chair. We also have a powerful organizing committee including:

http://profectio.com/toronto-technology-week-may-28-to-june-1-2007/

http://www.urisaoc.ca/images/uploaded/Toronto%20Technology%20Week-Overview%20May%2028%2007.pdf

Announcements

Acing a Job Fair

February 15th, 2007
Comments Off

Good post from Leona Hobbs on how to ace a TUCOWS job fair.

Employment

BitFrost

February 14th, 2007
Comments Off

Via Bruce Schneier comes BitFrost, a radically different take on computer security being developed for the One Laptop Per Child project.  I have serious reservatios about OLPC — is internet connectivity really more deserving of money than clean water or immunization? — but its emphasis on reliability and usability could upset a lot of first-world apple carts.  If you’re young, idealistic, and ambitious, there aren’t many better projects to get involved in right now…

Uncategorized

U of T Hiring Two Blackboard Developers

February 14th, 2007

The University of Toronto wants to hire two Java developers to work on Blackboard, the learning management system it bought last year. Plugins need writing, there’s integration to be done — if you’re interested, please apply.

Feb 21: I’ve updated the link to the announcement.  Closing date is March 1; please pass it around.

Uncategorized

Problems with Google Calendar

February 11th, 2007

I’m using Google Calendar to organize [sic] my life, and have stumbled across an annoying bug.  I maintain two calendars: one for work-related events, and one for my personal life.  I have set sharing on the latter to “Share only my free / busy information (hide details)”, but if you view my calendar at:

http://www.google.com/calendar/embed?src=gvwilson%40cs.utoronto.ca

all you see is items from the first (work) calendar.  I had expected to see the times from the second blocked out as well, without event names or details.  Is this a “feature”, or…?

Uncategorized

How You Can Tell You’ve Gone Too Far

February 10th, 2007
Comments Off

Jason Haley’s most recent post includes a picture of the tables that make up a .NET Assembly’s manifest. I’ll reproduce it here to save you clicking on the link:

I don’t think there’s any way a human being could keep track of this, or fix it if it was broken. On the other hand, I don’t believe human beings could make sense of an assembler-level trace of a modern Java application.  The difference, of course, is that we have high-level debuggers for the latter…

Uncategorized

DrProject Architecture

February 10th, 2007
Comments Off

I posted a picture of DrProject‘s database schema a while ago. Last week, I found myself drawing its architecture on the blackboard in class, so I figured I should post that too. (It would have been up two hours ago, but my Mac died again…)

architecture1.png
Here are the key elements:

  • Apache forwards HTTP requests for DrProject pages to SCGI; it also handles traffic from other Subversion clients (such as the command line or Eclipse).
  • SCGI runs the Python that makes up DrProject. This is a long-running process, so that we don’t pay the cost of repeated forking and loading.
  • A command-line tool called drproject-admin uses the same Python code; administrators can use it in shell scripts, or in other Python programs, to do batch operations (like setting up one project for each pair of students in a course).
  • (Almost) everything that isn’t in a Subversion repository is stored in a PostgreSQL database.
  • When mail intended for a DrProject project lands on the machine, Postfix drops it in a spool directory. Whenever DrProject runs, it pulls messages out of that directory, archives them in the database, indexes them, and forwards them to project members.
  • The “mail strobe” was written because DrProject only forwards mail when it runs. This means that if no-one visits the site for three days, mail will just pile up in the spool directory. The strobe is just a cron job that pokes the server every minute or so. DrProject 2.0 will pull mail handling out of the CGI, and have it run every time mail is delivered (or alternatively, have Postfix poke SCGI — we haven’t decided yet).
  • The “service check” is another small program that polls all of the DrProject installations on a machine every few minutes to make sure they’re still up, and sends the admins email if they’re not. We’ve always had occasional lockups, but they’ve been growing more common as load on the server increases; the folks at Engenuity are looking into this right now.
  • A program called validate, which checks user IDs and passwords against a password file. We took user management out of the PostreSQL database so that we could piggyback on top of the departmental lab’s user provisioning system; since we don’t want a process running as www-data (the dummy user set up for Apache) to have access to password information, we use an external program that runs under setuid.
  • The password file that validate checks, which is stitched together periodically from (a) the server’s own password file, (b) a subset of the user information from the departmental lab’s password file, and (c) a mock password file for external users who don’t have shell accounts, but who need access to projects.
  • DrProject’s own configuration files. I say “files” because each installation of DrProject has its own configuration (although they all share code). Again, we’ll fix this by the time 2.0 comes out…

(I left out the Apache and Postfix configuration files, both of which have to be edited as well as part of an installation.)

I have two observations about this diagram:

  1. DrProject is actually a fairly simple system compared to many in widespread use today. An equivalent diagram for SourceForge would probably have three times as many boxes on it; Indigo’s order tracking system wouldn’t fit onto your screen (I don’t care how big your screen is, it wouldn’t fit). While we’re making progress on debugging programs (even multithreaded ones — see Zeller’s book), I haven’t seen any substantive work on debugging configurations: if you don’t get it write, all you can do is tweak and pray. Anyone who wants to be rich, famous, and popular should consider tackling this problem.
  2. This diagram combines several of Kruchten’s 4+1 views into one: it shows a logical view of the system’s components, a process-level view of the system’s concurrency, and a development view of which code relies on which. It equally shows elements from all the major divisions in John Reekie’s system (which I’ve been using in class, and have been finding very useful). I see this whenever I try to explain any system’s architecture to anyone: I always want to mix entities of different types in my pictures, because every sensible narrative about the system incorporates them all.

I’d be interested in seeing pictures of other applications’ architectures if anyone has pointers — I rather suspect that everyone else is making up notations on the fly to fit their needs as well.

DrProject

Random Links

February 10th, 2007

The carpet-layers are hammering away upstairs, so I figured I’d distract myself by pulling up a few links from my del.icio.us collection:

Uncategorized

Computing with Railroads

February 10th, 2007
Comments Off

This (from Brian Hayes) is very cool: railroads can perform computations.

Uncategorized

EclipseCon: March 5-8 in Santa Clara

February 10th, 2007
Comments Off

Really wish I could go to thisEclipse, like Linux and Apache, has transformed itself from a tool into an excuse for people doing technically innovative things to hang out and swap ideas.  Or maybe “lingua franca” would be a better analogy, or the early days of Unix, when anything that could consume and produce lines of text could play with so many other tools.  Anyone want to adapt Mylar for DrProject?

Uncategorized