Posts Tagged “lazyweb”

I’ve been looking for something to fill this need for awhile now, but haven’t found a decent solution.

We’ve got students coming to class with web-enabled devices (laptops, iPod Touch, iPhone, smart phones, etc…) and it makes sense to take advantage of this stuff wherever possible. Instead of making students buy and lug around yet another piece of gear, I’m looking for an effective way to provide assessment and response functionality via a web browser.

I don’t care if it’s a custom app that needs to be installed on a server, or a third party thingamawacky. Just that it’s accessible by a browser, and can be used in the context of a class (so, One Big Shared App would need to have rooms or classes or something to help organize the communication). The web interface for the student responses needs to be lightweight - no java, no flash - so that it can run anywhere (or as close to anywhere as is physically possible) and must be easy to use.

Ideally, the web app should do handy things like collecting stats from responses, charting the breakdown of the responses, letting people ask questions to be answered by the class, etc… It should be displayable on The Big Screen from a computer so the class can see the results in a presentation format. Bonus points for storing the responses for later use as well, and providing a downloadable dump of the data for crunching if needed.

Has anyone found anything that serves this purpose?

Comments 22 Comments »

I’ve been struggling with this problem for some time now, and am a bit stumped. Bits of it are trivial to solve, but when I start hooking things up, there’s a pretty big gap and disconnect.

On the surface, it’s a simple problem. I’m using Drupal, and am building a website to store things like profiles for individuals. That’s easy. I need to add lists of the degrees they’ve been awarded. Like this:

D’Arcy Norman

  • Bachelor’s of Science, 1992 (University of Calgary)
  • Bachelor’s of Education, 1994 (University of Calgary)

Sounds easy. Could just be a CCK content type, with a text field that allows multiple values. Enter whatever text you want.

buuuuut…

I also need for the site to be organized such that I can list everyone who’s earned a BSc in Zoology from UCalgary, or everyone that’s earned a Bachelor’s Degree in 1992, or just people who have earned a BEd from UBC in 1998. Or potentially any combination or permutation.

So, simple text fields don’t cut it. They solve the display problem but not the data modeling and querying problems.

Taxonomies seem like the natural way to store the data - I can set up a Taxonomy vocabulary to represent the full hierarchical structure that is needed.

The problem with a hierarchical taxonomy is that I can’t seem to get it to actually display the hierarchy, with the full lineage shown. On the node display page, I get something like this by default:

First, that shows all terms from all vocabularies. In this case, “calgary” and “ucalgary” are from the Tags vocabulary, and “Bachelors” “Education” and “Science” are all from the Degrees vocabulary. Except they’re all munged together. And the hierarchy is completely gone.

With a bit of custom code, I can separate the vocabularies, like this:

Getting closer. But the hierarchy is still gone. I can’t get it to show something like:

Degrees:

  • Bachelors > Science
  • Bachelors > Education

The specifications call for the end result to look similar to this:

And there’s perhaps an even bigger problem - I can’t associate a year or institution with the degree. Under this strategy, there is no easy way to say Bachelors > Science (University of Calgary, 1992) and have the data be stored in such a way as to be properly searchable and meaningful as opposed to be essentially for display purposes only.

The other thing I’m hitting my head against is the need to keep data entry as simple as possible. Some really nicely designed forms have been sketched out with ease of use as the primary concern. But they’re going to be pretty darned difficult to implement in Drupal without writing custom modules. If ease of use wasn’t such a big concern, I could probably just use text fields for display so I could enter whatever text I wanted to represent the degrees, and have a set of Taxonomy vocabularies to be used to represent the data for querying and filtering. But that’s redundant data entry, and would be very confusing to anyone actually entering the data.

One other idea I had was to model institutions and degrees as nodes (using a custom content type) and use the node relation CCK field to tie it together. That could work, and we’ve used that technique on other projects (like the Great Teachers website) but I’m not sure that’s the best angle to take in this case.

Any Drupalistas out there with some ideas on how to properly represent multiple bits of hierarchical data to store and display things like sets of degrees granted in given years by given institutions?

Comments 7 Comments »

I’m firmly in the @injenuity “The Network is People” camp. And I freaking LOVE my network.

I’ve been experiencing an annoying glitch on my MacBook Pro since upgrading to MacOSX 10.5 - nothing serious, but occasionally it’d bug me. What happened was, if I opened a Finder window to /Users - it would show every user’s home directory except mine. I mean, I know it’s there, because all of my files are there. And if I used Terminal or remote SSH login, the directory was certainly there, as were all of my files. If I used Finder’s Go to Folder command (Command + Shift + G) I could enter “/Users/dnorman” and all was well.

But it was annoying.

Every once in awhile, I’d try to debug. I’d use Terminal and navigate to /Users. I’d run ls -l and I’d see this:

$ ls -l
total 0
drwxrwxrwt   7 root     wheel     238 23 Mar 15:17 Shared
drwxr-xr-x  13 demo     demo      442 14 May  2006 demo
drwxr-xr-x@ 47 dnorman  dnorman  1598 31 Mar 18:12 dnorman

The other user directories had either a + or no symbol after the file mode section. My directory had a @. WTF. I’ve tried looking through man. man ls. man chmod. Couldn’t find any mention of @. Try googling for @. Not helpful. This is where the gaping holes in my *NIX geekery are exposed. I was completely stumped.

Finally, I decide to try checking with the LazyWeb. I posted a tweet to roughly describe the problem - as best I could in the 140 character limit - and…

Waited 3 minutes before @thepatrick responded with a hint, and another one.

So, a few seconds later, I was running a new (to me) command via the command shell, finding out about xattr to list extended attributes about files.

$ xattr -l /Users/dnorman
com.apple.FinderInfo:
0000   00 00 00 00 00 00 00 00 40 00 00 00 00 00 00 00    ........@.......
0010   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................

Bingo. There’s some funky bit set. So, how to nuke it. I ran man xattr and found it has a -d flag, which is used to delete attributes by name. So I ran this:

$ xattr -d com.apple.FinderInfo /Users/dnorman

Done.

My home directory now properly shows up in Finder. Everything’s hunky dory.

The power of my Network, harnessed with a simple LazyWeb plea, solved in 3 minutes what I’d struggled for 5 months to solve on my own.

I love my Network. It’s the people.

Thanks, Patrick. I owe you a $beverage.

Comments 4 Comments »

I’m going to be showing some videos to faculty members who have participated in our Inquiry Through Blended Learning program. I get 20-30 minutes, during a wrap-up lunch on Friday. But I’m stumped. I could easily just show a TED talk (or two, if edited for time) but… what you YOU show, considering the audience is made up of faculty members from a wide range of disciplines, but are brought together by a common interest in inquiry and blended learning?

I was initially just going to remix/edit the Canadian eLearning 2007 Video Party but that’s almost a year old. Surely something more recent could be dropped in. Any ideas?

Comments 6 Comments »

During the MooseCamp session “WordPress and your problems” I promised to look into a few items that we were discussing, and report back to the group. I’ve finally made some time to dig around, and here’s the goods.

Nancy White asked some questions about tweaking her WordPress site, and they were all things that sounded really good, but that I didn’t know how to implement.

  1. Automatically tagging new posts on the WordPress site on del.icio.us - not sucking del.icio.us tags into WordPress, or listing latest sites tagged, but automatically bookmarking each new post (with categories and tags applied as in the WP post) in a way similar to the Twitter Tools plugin’s broadcasting of new posts. I haven’t found any way to do this, but am still looking.
  2. Hierarchical menu display - how to have expandable/collapsible menus within the WordPress site?
  3. Use del.icio.us as a source of tag autocompletion within WordPress? The idea is that there should be a canonical set of tags that a person can use for all of their tagging - blog, flickr, del.icio.us - and that it would be great if WordPress could use a person’s del.icio.us tags as the source for an autocompletion while tagging new blog posts within WordPress. I haven’t found anything that does this, but know a BUNCH of people would be smiling if something could be found.
  4. How to add a link to an external website as part of the main page menu structure? it’s possible to hack a theme to add links this way, but not in the middle of the menu. I’ve found the WordPress Menubar Plugin, which looks close, but am still wondering if there’s a more mainstream way to do this.

Comments 11 Comments »

I’ve been trying to figure out how to build an effective directory of blogs hosted by a WPMU service. There’s the list-all mu-plugin widget, and it has a handy dandy list_all_wpmu_blogs() method. I’ve created a page template for my theme, and added this code to dump the list of public blogs:

<!-- directory stuff goes here -->
<ul>
<?php list_all_wpmu_blogs("","","<li>","</li>","updated"); ?>
</ul>
<!-- end of directory stuff -->

Create a new Page, call it something creative like “Directory” and select the template that contains the above code. That works, technically, but doesn’t produce the most effective directory once the service grows to more than a dozen or so blogs.

WPMU List-all Directory

But, once a service gets a bunch of blogs, say a hundred or so, a directory needs to be a bit more powerful. Sorting. Filtering. Searching. Categorizing. Letting people find blogs by activity (number of posts, number of comments, number of recent posts…) At the bare minimum, it’d be something like the great directories used by UMass and UTA. I haven’t been able to find out any detailed technical information about how either of those directories are built, but they appear to be static HTML files, probably generated by a separate script triggered by a cron job. They appear to run external to WordPress, but I could be wrong on that.

It should be relatively straightforward to build a WPMU blogs directory function, with the wp_blogs table containing basic metadata about each blog, and info about the owner and last post just a join away. Anyone have any cool code to share? Any ideas of how best to implement this?

Comments 13 Comments »

I’ve been struggling with this all day. Haven’t found much help on the Telus website, and their tech agents haven’t had much in the way of helpful suggestions.

I use Telus DSL at home, recently switching to the TelusTV service (which apparently also affects the internet service, as the internet guys keep forwarding me to the TV department for support. wtf?)

My old Linksys 802.11a router has been acting up, so I splurged on a new Apple Airport Extreme 802.11n base station. I have it hooked up to the ethernet switch installed by the TelusTV guy the other day.

DSL Modem –> ethernet switch –> Airport Extreme –> Computer

If I run the AE in “Bridge” mode, with no DHCP service (so it’s essentially a hub, not a router), I can get an IP address if connecting via ethernet to the AE. If I try wireless, there’s no joy. If I try to “share a single IP address” - turn on DHCP and routing - the AE complains about pulling an invalid IP address (even though it’s the same one that was pulled by the computer when running the AE in Bridge Mode). No joy in connecting to the Internet via ethernet or wireless in that mode.

I’ve registered the MAC address for the AE via Telus’ registry app at http://oca.ab.hsia.telus.net - no joy.

Lazyweb request: has anyone configured an Airport Extreme to run over Telus DSL via TelusTV? This really shouldn’t be an all-day ordeal. Any tips? Is there a magic phone number or email address to contact to make things work the way they’re supposed to?

I’ve been seriously considering ditching Telus for internet to get it via Shaw, where this balogna apparently doesn’t happen. But that would likely mess up the whole TelusTV thing…

Update: here’s a kicker - I’ve entered both the AE ethernet and wireless MAC addresses into the 2 slots provided on oca.ab.hsia.telus.net to register my computers. My laptop’s MAC address is not registered. But, if I set the AE to “Bridge Mode”, the laptop can surf the web happily while connected to the AE via ethernet. If I set the AE to “Share a single IP address” mode, so that its MAC addresses are visible, then I can’t get off the LAN. WTF? There’s got to be a secret handshake somewhere… Haven’t been able to connect to the internet via wireless at all, no matter what mode the AE runs in.

Update: a handy dandy OmniGraffle diagram of the network topology:

Telus TV Network Topology

Update, the third: Finally got it working, with “share a single public IP address” running. Looks like the AirportExpress wasn’t reading the DNS values provided by DHCP, so nothing was resolvable. And Telus doesn’t appear to like off-Telus DNS servers, so I couldn’t just manually add others. Seems to be working now, after setting the AE internet panel to use “manual” and providing the info.

For future googlers: the DNS servers I use from Telus are

  • 199.185.220.36
  • 199.185.220.52

Comments 11 Comments »

In the Teaching & Learning Centre, we run a couple of servers, each with a dozen or so Drupal sites installed in a multisite configuration (one copy of Drupal, using the sites directory to respond to various URLs). With every update to core or modules, the update.php file needs to be called for each site. That’s not too onerous, but is a bit of a PITA.

Our central IT shop at the University of Calgary has a whole ‘nother problem. Their Drupal server is currently running well over 400 sites. So, calling update.php on each one effectively means having a bunch of folks (students? interns?) clicking through the update.php screens for each site. Say it takes maybe 5 minutes per site, that’s over 30 hours of labour to update all sites. And new sites are added every day.

There has to be a better way. I was hoping Sympal Scripts had some magic fu, but came up empty. Are there any secret tricks to calling update.php on each site quasi-automatically for a large-scale Drupal multisite installation?

Comments 6 Comments »

I just got an email from a colleague at UCalgary, posing a really interesting question. She is doing some blogging and writing with some residents of Nunavut, and needs a way to represent the Inuktitut language online.

There is a reference to Inuktitut syallabics in Unicode, but I couldn’t find any implementation details so I’m wondering if anyone has any experience dealing with Inuktitut as digital text? Can typical blogging platforms deal with it? How do you handle text input? Do you need special fonts to display it?

Update: I checked out the Attavik website a bit, from a promising-sounding link on the wikipedia page. “publishing Inuktituk on the web” - and got this page that doesn’t appear to have much in the way of content to help.

Inuktituk in Safari

Looks promising (at least in Safari) - but Firefox/Flock show this, instead:

Inuktituk in Firefox/Flock

I’m sending a message via their “Contact Us” form to see if they can provide more implementation information.

Update: it also renders properly in Firefox 2 on Ubuntu 7.0.4

Comments 7 Comments »

I’ve got a fully updated copy of iDVD on my MacBook Pro that refuses to cooperate. I can create a project, save it, and burn it to DVD. But, if I decide I want to quit iDVD, it borks the next time I launch it. It gets past “loading themes” and then just hangs. I can nuke my prefs, and get the “new project” dialog, but if I create a project, I get the same thing if I quit. Which makes editing an iDVD project a bit, well, problematic. I currently have to recreate the project from scratch every time I want to make a modification. Which makes the process a bit more tedious than it needs to be.

I’ve done searching on the Apple Support site. I’ve tried Googling. I’ve poked through manuals and documentation. No joy. Here’s all I get when I launch my incredibly awesome, soon-to-be-Oscar™-winning iDVD project:

iDVD borkage

The strange thing, if I click “Close”, it pauses for a few seconds, the “Unexpected Quit” dialog disappears, and the shell of the iDVD app remains. I can select menu items, and click on interface buttons (but they don’t do anything). I have to then Quit (or Force-Quit) the app to make it really go away.

Nothing in the crash log jumps out at me. I’ve uninstalled all of my InputManagers, all of the extra QuickTime codecs, anything I can think of that’s non-stock-MacOSX. No luck yet. Very frustrating.

Comments 4 Comments »

I’ve been asked to contribute to a series of short briefing papers for use by administration, in identifying and planning for trends in higher education. There are some obvious trends (social software - go to them, instead of making them come to us; open content; remix culture; personal publishing and the PLE; etc…) but I’m wondering about any non-obvious trends that people might be seeing. Anything surprising happening on other campuses? Are things like mobile access really starting to take off (esp. in Canada, where mobile internet charges are so unbelievably expensive)?

Comments 15 Comments »

I’ve been setting up a shared Drupal hosting environment on an Ubuntu Server box, and just about everything is running great. Drupal’s running, MysQL is running, and everything feels nice and fast.

But, the server can’t see itself on the network. It can’t even ping itself (via 127.0.0.1, localhost, or either of the domains pointing to the box). It can ping other boxes, though. It can’t curl or wget or lynx any of the sites on itself. It can’t telnet to its own services (which makes setting up mail services etc… a bit tricky).

The bizarre thing is, I can have full access to the services on that box remotely. SSH, FTP, ping, HTTP, etc… are all up and running, and respond normally to requests from off-machine.

None of that would be fatal, but the result of not being able to even curl a URL on the same box, means I can’t run a script to automatically run cron.php on all Drupal sites.

I’m not sure what might need tweaking to enable the box to see itself over TCP/IP. I’ve checked in /etc/hosts, I’ve checked apache2 configs (nothing is rejecting from localhost).

Any ideas?

Comments 2 Comments »

I’m planning a vacation in the spring. The tickets are all in place, and we’re looking forward to it. Can’t say more, because it’s a surprise Christmas present. I’d love to leave the laptop at home, but would currently need to bring it along to dump photos off the camera every day.

Does anyone have any great (and cheap) solution to offload photos from a camera (Canon Digital Rebel xt) without a laptop? I’ve got a 5G iPod (30 Gig), and have looked at the Apple and Belkin media readers - both of which apparently suck the soul out of the battery before finishing the job.

I’ve seen some pretty sweet portable hard drive systems (Epson P-3000, Smartdisk Photobank, XS Drive Super, etc…), but I’m not going to spend $800 for a handy camera offloader, no matter how cool it is.

Lazyweb, help me! What’s the best bang-for-the-buck solution? DIY is OK, too. Oh, and Epson? If you want to send me a P-3000 to review, I’d be more than happy to test it out…

Comments 28 Comments »

I’ve been struggling with this for what feels like months. On a project, we’re using a third party hosting provider, who offers us space on a managed server, complete with everything we need to run Drupal in a shared hosting environment. We’re running a copy of Provisionator on the server to help us deploy lots of Drupal sites easily.

Here’s where it gets messy. We can create new databases just fine, but importing a .sql file takes for freaking ever. Imports that take 3 seconds on my Powerbook can take 90 - 300 seconds on this server. Running the import on a dual G5 XServe with the same version of MySQL finishes the job in about a second.

I’ve tried removing variables from the equation. Using full-on Provisionator. Using a separate custom .php script. Using phpMyAdmin. Each take so long that browsers often time out before completing the import (leaving partially imported databases). I’ve tried command line mysql directly on the server, with the same range of very slow times.

I can’t seem to find anything that might make imports of a smallish .sql (~400K) file take so long. Unfortunately, it’s making the process of deploying new sites essentially useless for now.

The curious thing is that once a database has (eventually) been populated, the select queries seem to run at normalish speed.

Any ideas on how to get the server back up to speed? It’s running MySQL 4.1.20 with MyISAM tables on a RedHat Linux box. I don’t have access to tools like top, ps, netstat, or even env, so exact details of the box’s config are shrouded in a veil of mystery and obscurity.

Comments 4 Comments »

I’ve been trying to find an answer to this, but haven’t found anything definitive either way. Occasionally, I want to bring my Canon XT DSLR along when riding my bike. I might want to photograph something on campus at work, or along the path.

So, the question is - is it safe to pack the XT inside a compact LowePro case, and stuff that in a pannier? It seems pretty secure, but I wonder about vibrations from the ride (about half an hour, ranging from 20-60 km/h, depending on weather, traffic, blood sugar…)

I’m trying to avoid a backpack, so I’ve tried this a few times without any obvious issues. But, am I begging for trouble? Better to suck it up and use a backpack or messenger bag? I suppose I could also stuff the camera inside the LowePro case, and put that inside the larger LowePro/Canon carrying case, and bungie that to the top of the rear rack…

Update: Did some more Googling, and came up with:

Comments 5 Comments »

Creative Commons License
This work is licensed under a Creative Commons Attribution 2.5 Canada License.