From the monthly archives:

August 2006

No RSS in eBay?

August 19, 2006 · 10 comments

in Uncategorized

I’m trying to pick up a Newton Messagepad 2100 (still by far the best PDA ever created) via eBay, and was trying to find a way to track the item I’ve bid on via RSS so I can keep up to date on the auction.

But, eBay doesn’t offer an RSS feed for item auction notification? That seems like a HUGE oversight! It’s such a natural fit – I use RSS for notification from other things like Subversion, Basecamp, Tracks, etc… eBay would just fit into that. Every time something changes on an item, or on my watchlist, or my bidlist, there should be an entry in an RSS feed for me to monitor.

Or, have I just missed something obvious?

Update: Wow. Is eBay ever poorly designed. Waaay too cluttered. Stunningly ugly. It’s still got text rendered as images for some of the key areas, which is a decent enough option to make sure it looks good everywhere, but they did the rendering on some fugly system that looks worse than what Safari does with real text. If you’re going to go to the effort of pre-rendering text so it looks good, at least antialias it so it doesn’t look like it was coughed up by Windows 3.1!

And, sure, the eBay app does a heck of a lot of stuff, but the controls have been totally NASCARed, looking like the design team sat in a room thinking up all kinds of widgets that absolutely had to be less than one click away. Why not use some intelligent javascript/xhtml to selectively display these widgets? Things like the auction tracking options could be disclosed when you click a “Track this auction” button, which would provide you with the email, IM, and perhaps RSS auction tracking controls.

There’s a lot of required functionality, but 99% of it does NOT have to be only 1 click away. Also, it doesn’t appear as though much filtering has gone on for search result controls. It’s possible to sort lists by the Picture column. What does that mean? How do you sort by a picture? By dimensions? Number of pixels? Average brightness of the image? If it’s a “only show items with a picture” control, that’s what it should be designed to do, not simply repurposing a columnar sort.

Man. The more time I spend in eBay, the more my eyes bleed, and my brain aches. This is one of the biggest/most successful sites in the history of the internet, and they obviously don’t care much about the actual experience of regular users. I’m sure that once you take the 3-day “eBay Power Users” workshop, the cluttered UI is much more desirable. But for the rest of us, it just hurts…

Case in point: Change the email address for your eBay account. You have to provide a credit card to verify something (what? that you’re an actual person? that you can afford to use eBay?), and then it sends an email with a verification link. That’s all that should be required. Prove that the email address is really associated with someone that has control over this eBay account. Why on earth do they invoke a credit card validation? I’m borrowing Janice’s eBay account, and provided MY visa for verification, so it has nothing to do with testing identity. Silliness. The process involved several very clumsy steps that didn’t need to be implemented that badly. The company has revenue that equals many small countries, but they apparently/effectively don’t spend much on visible portions of the app…

{ 10 comments }

CCK and Computed Fields

August 18, 2006 · 22 comments

in Uncategorized

I’ve been using the great CCK module on a bunch of projects (including this blog, for my bikelog). It’s really cool in that it lets you construct custom content types within the Drupal admin interface, without having to touch any PHP code. It’s like having your own personal microformat manager – it could handle things like compound content on a web page (and generate the editing form so you just fill in the blanks – abstract, body, url for more info, email contact, etc…) and I think it could even handle something like a simplified LOM for a “learning object repository”.

One thing I wanted to do on my bikelog was to automatically calculate average speed. I have fields for “duration” and “distance” so entering a value for “average speed” is redundant. Better to just derive the value from the known values already entered.

Which is where the really cool Computed Field module comes in. It’s a contributed module for CCK, and lets you do all kinds of funky things by writing PHP code to perform operations to generate the value of a field. These operations can include calculations on the other fields, or even more complicated things like, I suppose, performing a lookup on wikipedia or something…

After adding the Computed Field module, I just edited my “bikeride” CCK content type to add a new “computed” field called “average speed”. It’s got a “computed code” value, which is executed whenever a value needs to be derived. I just used this:

$node_field[0]['value'] = ($node->field_distance[0]['value'] / $node->field_duration[0]['value']) * 60;

I gave it a data type of “float”, a length of “10,2″ and a default value of 0. I told the module to store the value in the database, so I can use the computed field with Views.module as well (in this case, it performs the computation on edit, and stores the result in a field just as any other CCK field would do). I also flagged the field as being sortable, in case that helped Views.module at all.

The end result is a tiny bit of work entering a simple PHP calculation, and then the module takes over the monotonous and redundant calculation work. All I do is enter the base data, and it can derive the rest from that.

I’d imagine this type of derived field could be really useful in an event manager – looking up the number of registrations and updating an “available seats” field, for instance. Or, in a store or inventory system to calculate prices and stock counts. It’s a really cool addition, and although the setup interface (manually entering PHP code) isn’t something you’d unleash on a noob, it’s simple enough to set up and forget about.

{ 22 comments }

Estimating blog feed subscribers in Drupal

August 15, 2006 · 12 comments

in Uncategorized

Guesstimating the size of an RSS feed audience is always a huge shot in the dark, but sometimes I get curious about how many people subscribe to this silly blog. If I was willing to surrender my feeds to Feedburner, I could get some pretty detailed stats. But, I don’t want to hand over that.

So, I thought about digging into the accesslog that’s stored in Drupal’s database. I’ve set my copy to store access logs for the past 2 weeks, and it dutifully records which pages are viewed, as well as the IP address the request came from. It’s just a subset of a typical webserver log, so there isn’t any privacy issue here (if you’re really worried about being tracked online, you’re already using an anonymizing proxy…)

A quick MySQL poke-and-test session, and I came up with a quick query that spits out a WAG about the number of feed subscribers. It’s not accurate, because people might be accessing the feed from multiple locations (recording different IP addresses), and services like Bloglines might be sending many readers in under the cover of a single IP address (at the moment, Bloglines claims 334 folks are subscribing to various feeds published by this blog). Also, it makes no distinction between bots (Google and friends) and actual human-proxying-agents. Whatever.

Here’s my brain-dead-simple query. It just looks for all requests for feed-related paths, and counts up the number of unique IP addresses.

select count(distinct hostname) from accesslog where path like '%/feed%'

YMMV. IANAP. YHBH. Wait. Not the last one.

According to my Drupal log, there have been 955 unique IP addresses requesting the RSS/atom feeds on this blog in the last 2 weeks. That may be higher or lower than the number of actual humans reading the blog. Still, ballpark order-of-magnitude WAG at roughly 1,000. That kind of boggles my mind.

Update: Oops. My rudimentary query forgot subscribers of “rss.xml” – which turned out to be more than the various /feed subscribers! Also, thanks to a tip from Bér Kessels, I added the cool XStatistics module, which takes care of the guesswork. According to it, there are 2062 subscribers to the various feeds on this blog. Wow.

{ 12 comments }

Music Meme

August 15, 2006 · 4 comments

in Uncategorized

I got tagged, so here goes…

  1. Music that changed my life
    • Beatles' Red and Blue albums. The first vinyl I owned. Still have them somewhere.
    • The Police: Synchronicity. First cassette I ever owned. Who is Miss Gradenko, anyway?
  2. Music I can listen to on repeat – this comes from my iTunes most-played playlist
    • The Police: Synchronicity (still!)
    • The Tragically Hip – Day For Night
    • Black Eyed Peas – Elephunk
    • Smashing Pumpkins – Melon Collie and the Infinite Sadness
    • Moby – Play
    • Bob Marley & The Wailers – Legend
    • Nirvana – In Utero
    • Weezer – Green Album
    • Battlestar Galactica soundtrack (seriously – it's really good)
    • Billy Talent
  3. An album I'd take to a deserted island – album? really? I'd have to take my iPod, fully loaded with CBC Radio 3 .
  4. Music that makes me smile
    1. Bedouin Soundclash
    2. Bob Marley & The Wailers
    3. Mel Blanc – D.O.G. Spells Dog
    4. Pointer Sisters – Pinball Number Count (Songs from the Street). 123 FOUR FIVE 678 NINE TEN. ELEVEN TWELVE.
  5. Music that makes me cry
    1. cry? really? music doesn't make me cry. next track.
  6. Music that I wish had been made
    1. not sure. what an obscure question. what kind of tree would I be?
  7. Music that I wish hadn't been made
    1. Hanson. Mmmmblech.
    2. NKOTB. Baby Jebus cried.
  8. Music I'm currently into
    1. New Pornographers
    2. Broken Social Scene
    3. Bedouin Soundclash
    4. The White Stripes
    5. Weezer
    6. Wynton Marsalis
    7. Miles Davis
  9. Music I've been meaning to explore
    1. More Canadian indy bands (getting more of this, thanks to CBC Radio 3)
    2. More non-touristy Caribbean music
  10. Tag
    1. Joshua Archer
    2. Paul Pival
    3. Stephen Downes
    4. Sami Khan
    5. Brian Lamb

I wasn't going to tag anyone, but screw banality – it's summer.

{ 4 comments }

Getting Things Done with Tracks

August 14, 2006 · 2 comments

in Uncategorized

I've been using an OmniOutliner document to track tasks and hopefully prevent things from slipping through the cracks. It works quite well, especially when combined with kGTD to help prioritize and filter tasks as they start to pile up, but it's limited to a file on one computer. So, I can't easily add stuff from my Powerbook at home. And I can't access it when I'm not sitting in front of my G5. Sure, I can sync the file, and export it to the web, and print it, and sync it to my iPod, and to iCal, etc… but that's a pain, and not bulletproof.

I was doing some Googling for other "getting things done" packages, and found a reference to Tracks. It's a Ruby on Rails app that provides the streamlined context/project interface on top of a plain to-do list. So, I threw a copy of it on my Dreamhost server (it's got all of these bells and whistles just sitting idle, which would be a shame). It Just Worked™. I had to refer to the Dreamhost wiki to see how to best set up a Rails app to be served by Apache, but that was pretty darned easy.

The hardest part of the whole install was figuring htf to create an account – open the "signup" url, and you're good to go.

Performance is a bit lacking, but the entire network is feeling slowish today. It's not fatally slow, anyway. I've added in most of my current projects, and it's already helped me to see at a glance what's the most important set of tasks to be working on.

And it's the first non-Drupal tool I've installed in a while, which is a welcome change :-)

Tracks - Getting Things Done in RailsTracks – Getting Things Done in Rails

Update: Bonus. Now I’ve got multiple RSS feeds to keep me up to date on upcoming important tasks and deadlines…

{ 2 comments }

Vista 2.0

August 6, 2006 · 1 comment

in Uncategorized

King’s in SF for WWDC2006, and just posted a quick note about the shirt/bag combo. Looks like a really sweet black T-Shirt with “veni. vidi. codi” on the front. Very cool.

King also linked to someone’s sneakypic of the banner on the second floor of Moscone West – someone must have neglected to cover it up with black fabric.

If I’m reading it properly (through a window girder), it says “Introducing Vista 2.0″ with a closeup of the MacOSX 10.5 install DVD. That sounds like one hell of a warning shot. Wonder what’s going to be announced tomorrow…

I basically talked my way out of going to WWDC this year. Between my rather hectic travel schedule in 2005, and wanting to stay close to home this year, and wanting to better share the limited travel resources of the Teaching & Learning Centre. I didn’t think I’d really miss it this year, but damn. I’m jealous. This is going to be one hell of a show.

And, to top it off, Monday’s a holiday here, so I’ll be occupied in the yard building an arbor, rather than glued to the various news feeds coming out of Moscone West. Stupid holidays!

{ 1 comment }

Blackboard Patent in Plain English

August 4, 2006 · 3 comments

in Uncategorized

I tried to take some time yesterday to distill the patent into plain english. Michael Feldstein did a much better job than I did, which should make it really easy to find relevant and defensible bits of prior art. Of course, the fun part will be finding prior art that hasn’t been purchased by Blackboard…

{ 3 comments }

Software Patents and Legally Required Greed

August 2, 2006 · 5 comments

in Uncategorized

I’ve been biting my tongue on this whole Blackboard-patents-the-LMS brouhaha that’s going around. I did add my 2 cents to the Wikipedia VLE Prior Art page, with a link to one of the two LMSes I’ve been involved in building before Blackboard applied for this patent.

What follows is a largely stream-of-consciousness rant about some of the issues involved.

I find it completely unfathomable that such a basic and well established classification of software could be summarily handed to a single company. I’m planning on taking some time to actually read the patent, to see if it’s as general as everyone says, or is it really (hopefully) a vaguely worded description of their particular implementation. A cursory glance at it suggests that they’ve managed to throw in utilities ranging from online storage of user data, to storing files on a server…

However, the greater problem isn’t this particular case, but rather the more general issue of software patents as a whole. These intentionally vaguely worded litigation factories only benefit one group of people – shareholders in the patent holding company.

Here’s what’s driving the whole patent engine – public companies are held legally responsible to maximize profit for their shareholders. To the extent that if they fail to generate profit (or acceptably sufficient profit) they can be sued by shareholders. The board of directors is liable. Which drives public companies to squeeze every possible gram of cash out of any possible revenue stream. If they failed to get the patent for a product, and someone else managed to get it – and then came after the company – shareholders would be pissed. So, software patents are conceptually an arms race. Companies are filing patent applications for anything they can think of in order to both protect themselves from others doing the same thing, and to maximize profit by handing the patent to their lawyers and owning a market segment as a result.

But – the patent office should be acting as a filter, preventing these blatant patent grabs as being invalid before getting rubber-stamped. If the patent office can’t properly vet applications, the office should be closed as ineffective or worse.

If Blackboard wants to recoup some karma, they should sign the patent(s) over to an impartial body, ensuring that the patent is used only as a first strike protection to prevent evildoers from obtaining said patent and obliterating an entire marketplace.

So… Who’s the best candidate to be handed the patent? IMS? IEEE? Creative Commons? UN?

{ 5 comments }