I really hope this is just a visual display bug. I’m getting the shakes just thinking about this.

Inbox Bajillion

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.

new policy on spam

Filed under: general. Tags: , , . | 7 Comments 

It’s my blog, and I get to determine what is spam and what is not. The latest round of human-generated spam is getting past the automated spamblocks because the comments look valid. They’re natural language, often on topic, and occasionally even interesting or insightful – or relevant to the post being spammed.

I’m using a few WordPress plugins to help ease the pain, but for the love of Xenu, this bullshit should not be necessary.

But, if I think a comment is spam, I reserve the right to nuke it. Or to remove the URL and leave the comment in place. It’s my blog, and I’m sick and tired of people crapping on it in order to game google. PFO.

I’m not going to post a conference recap, and others have beaten me to the punch with eloquent reflections on the event. It’s one of those things that sounds like fanaticism – the sense of wonder usually reserved for such things as the TED conference (aside: could you imagine going to that? how many toes would I gladly trade for a TED pass?) But, Northern Voice has become, or has always been, one of those events that help me form my own thinking, and helps to connect that with the awesome stuff that the really great minds (that I am lucky enough to be allowed to tag along with) are doing.

Jim hit the nail on the head, for me, in his description of the role of the Mythical Eduglu. It’s not about any particular implementation, or even about the concepts and strategies that make up EduGlu. The power of EduGlu, according to The Reverend, is as a Hitchcockian McGuffin. It’s a plot device that moves the story along, giving a sense of narrative focus and momentum.

And that, for me, is the real power of Northern Voice. It’s not about the conference (as cool as the conference is) and it’s not purely about the people (as amazing, cool, and open as the people are). Northern Voice is a McGuffin. And for 2 days or so, every year, we are able to work together to peer into the suitcase. That shared sense of purpose and momentum colours the entire event – the conference sessions, the openness of the people, and the emotional intensity of the whole thing.

So, if it takes the guise of a conference to push the story along, to have everyone from a stunningly broad range of backgrounds and perspectives come together as one, however briefly, I think it’s well worth being part of the experience.

aside: my wife’s family tree includes Alfred Hitchcock, so I like this McGuffin analogy on a bunch of levels

One thing that struck me, when reviewing the photos that I took during Northern Voice, was that the most powerful and meaningful ones weren’t taken during the sessions per se, but in the social gatherings. The magic of Northern Voice isn’t part of the conference itself, although it is definitely fed and inspired by the conference. The real magic is in the deeply intimate connections between the people who gather. And one of the amazing things about the particular group that I am so lucky to consider myself a part of – every one of this group met online first. Several only met IRL at the conference. And yet we are all friends, and there was no ramp-up time required, or introductions needed. We all knew each other, and were able to hit the ground running, as it were.

There is a bit of rabid fanboy that bubbles up within me before, during, and after the event. I can’t fracking believe I’m lucky enough to be able to hang out with these people, and to discuss in depth the things that really matter (and a bunch of stuff that’s just plain fun, too).

If I had to pick a single photograph that represents Northern Voice, it is this one because it somehow captures the energy, the intimacy, and the vibrancy of the conversations. The unreserved laughter of The Reverend. The energetic groove of Scott. Mikhail joining in as though we’ve known him for years – even though this was the first time most of us actually met him. And the piercing calm of Chris, the poet. In the warm, safe, inviting home offered to us by Brian and Keira.

casa del McPhee-Lamb - 28

With that said, I am absolutely thrilled at how the entire Northern Voice 2008 photo set turned out. There’s something about the event that causes us all to draw on our strengths, playing our own instrument in the jam session. Mine just happened to be a camera :-)

IMG_0959IMG_0963IMG_0969IMG_0972IMG_0976IMG_0980IMG_0982IMG_0994IMG_0997IMG_0999IMG_1023mitchIMG_1034IMG_1036IMG_1046IMG_1047IMG_1048IMG_1052IMG_1054IMG_1061IMG_1069IMG_1072IMG_1073IMG_1074IMG_1075MooseCamp - 1MooseCamp - 4MooseCamp - 7MooseCamp - 10MooseCamp - 11MooseCamp - 19MooseCamp - 22MooseCamp - 26MooseCamp - 30MooseCamp - 31MooseCamp - 35MooseCamp - 38MooseCamp - 39MooseCamp - 40MooseCamp - 41casa del McPhee-Lamb - 1casa del McPhee-Lamb - 2casa del McPhee-Lamb - 3casa del McPhee-Lamb - 5casa del McPhee-Lamb - 6casa del McPhee-Lamb - 8casa del McPhee-Lamb - 9casa del McPhee-Lamb - 10casa del McPhee-Lamb - 11casa del McPhee-Lamb - 13casa del McPhee-Lamb - 14casa del McPhee-Lamb - 15casa del McPhee-Lamb - 17casa del McPhee-Lamb - 19casa del McPhee-Lamb - 21casa del McPhee-Lamb - 24casa del McPhee-Lamb - 28casa del McPhee-Lamb - 29casa del McPhee-Lamb - 30casa del McPhee-Lamb - 34casa del McPhee-Lamb - 42casa del McPhee-Lamb - 47casa del McPhee-Lamb - 55casa del McPhee-Lamb - 58Northern Voice - 1Northern Voice - 2Northern Voice - 3Northern Voice - 4Northern Voice - 5Northern Voice - 6Northern Voice - 7Northern Voice - 8Northern Voice - 9Northern Voice - 10Northern Voice - 11Northern Voice - 12Northern Voice - 13Northern Voice - 14Northern Voice - 15Northern Voice - 16Northern Voice - 17EduBloggers JamFest - 1EduBloggers JamFest - 5EduBloggers JamFest - 8EduBloggers JamFest - 11EduBloggers JamFest - 14EduBloggers JamFest - 15EduBloggers JamFest - 16EduBloggers JamFest - 24EduBloggers JamFest - 30EduBloggers JamFest - 37EduBloggers JamFest - 41EduBloggers JamFest - 51EduBloggers JamFest - 55EduBloggers JamFest - 56memories of northern voicememories of northern voice, redux

If you can read this, then the FeedBurner feed redirection is working properly. If your feed reader didn’t update your subscription automagically, the URL to the main feed for my blog is

http://www.darcynorman.net/feed

Hopefully things won’t get confused or lost in the shuffle…

I just disabled two separate blog stats packages, each for a different reason. This move was partially inspired by the upcoming “F*** Stats – Make Art!” session on the docket at Northern Voice.

First, I disabled the FeedBurner FeedSmith integration plugin. This is a handy way to automatically redirect requests for RSS feeds to the FeedBurner service. I had decided to use FeedBurner as a way to reduce the load on my Dreamhost shared server – the feed would be cached by FeedBurner and served from there, removing a tonne of requests off-site. It did the trick, but at the cost of handing control of my blog’s feed over to a third party (who has since been absorbed by Google). One direct negative side effect of the FeedBurner plugin is that it seemed to interfere with tag- and category-based feeds. That shouldn’t be a problem anymore. I’ll miss some of the stats, but I really don’t need that much data. Now, how do I get the 1494 people sucking the feed off of FeedBurner to come back to the real source? FeedBurner offers to put up an ugly “BLOG MOVED. PLEASE UPDATE SUBSCRIPTIONS” notice to nudge people into resubscribing to the proper URL. But they provide pretty seamless redirection to get people TO FeedBurner. A bit of a roach motel syndrome going on there. You can check in, but you can never leave. (OK. ‘never’ is a little overblown, but it’s not realistic to expect everyone to update their subscriptions – I can’t remember the last time I did that…)

The second plugin to get switched off today is the very cool, extremely addictive, but ultimately creepy Blog Voyeur plugin. It didn’t track any additional info, but presented a list of people who have commented on the blog, and the last page they’ve visited, thanks to the “remember me” cookie. It’s not too invasive, but I felt like I should put on a trenchcoat while viewing the Voyeur report page. It didn’t help that feeling much by inserting “YOU ARE BEING WATCHED” on the comment submission form – I agree that notification is necessary, but maybe with less-creepy wording?

I’m not giving up on stats altogether, but am limiting them to just Google Analytics and Wordpress.com Stats. They’re both generic and anonymous stats packages, without the level of creepiness of Blog Voyeur, and the loss of control involved with FeedBurner.

The spam problem has been the bane of openly available “web 2.0″ sites since, well, forever. Everyone universally hates spam. Everyone, universally, wants to see it go away. Why is it still a problem?

Wait. Not everyone wants it to go away. There are two groups of people who benefit from spam.

  • spammers
  • google

Of course spammers won’t stop – they have a money factory running, and are locked in an arms race against the global online community in an effort to game ever larger lumps of cash from Google.

Google says they want it to stop. They came up with a wonderful solution that would have stopped spam in its tracks – the only downside was that the solution would have destroyed the network effects of the web by negating links. Baby? Meet bathwater. Meet half-assed “solution” that lets Google say “hey! we tried! Really we did!”

But, why did Google stop at a half-assed solution? Why not go fully-assed? Because they benefit from spam. Every time some moron stupidly clicks on a spam factory’s Google ads, Google gets a cut, and they happily send cash to the spammer.

Recursive Cycle of Spam

The evil spam roaches inflict their spam on the various “web 2.0″ resources – anything that has an open form intended to foster dialogue and conversation – this spam gets indexed by Google, who then send the roaches a cut of all proceeds from the ads on those spam factory websites.

Anyone else see a conflict of interest here?

There is an easy solution.

Google: to stop the spam, you have to stop paying the spammers.

How to do that? Well, I’m not a multi-bajillion-dollar company stuffed to the rafters with PhDs or anything, but how about this for a start:

If someone reports a website as a spam factory, their adsense revenue goes into an escrow-like state until it can be shown to NOT be spam. They don’t lose any money if they’re legit, but they have the opportunity to lose their revenue if they are shown to be evil spam roaches. What to do with the revenue seized from verified spam factory adsense accounts? Google can’t keep it – it just maintains the conflict of interest. They should donate it all to the EFF or something similar.

Photo credits:

My blog has been receiving spam in what looks to be a new wave of spam attacks. First, the spammers seed the whitelist by posting apparently innocuous comments with no URLs, or with a URL that doesn’t contain spam. Then, once they’re in, they wait a bit and then throw the switch. The spam starts a’comin’ and it sneaks through Spam Karma 2. Very annoying.

One thing I really like about SK2 is that it is standalone – it doesn’t rely on any network connection or other systems to flag stuff as spam. It just tracks IP addresses, user agents, and sniffs the content and URL for attempted comments.

But, that might be its weak point as well – by not harnessing the power of The Cloud, it’s more vulnerable to these kinds of guerrilla spam insurgencies. Once someone using Akismet has flagged someone as an evil spammer, everyone automattically benefits from that, without having to each individually flag the spammass as a jerkwad.

SK2 has served me well for quite some time. Here’s the current stats report:

SK2 report

Over 200,000 spams dealt with. But the number of moderations required is getting inconvenient – not impossible, but it’s becoming something I need to manage rather than just fire-and-forget, the way things used to be.

Now, with Akismet enabled instead, I’m at the mercy of The Cloud, but that might not be a bad thing…

EduGlu is a concept that came out of some discussions at Northern Voice 2006 – almost exactly 2 years ago – as a way to make sense of an individual’s distributed content in the context of a course. The problem is on one hand very simple – a person publishes a bunch of stuff, and all they need to do is pull it into a course-based resource. On the other hand, it’s really quite hard – how can software provide what appears to be a centralized service, based on the decentralized and distributed publishings of the members of a group or community, and honour the flexible and dynamic nature of the various groups and communities to which a person belongs?

EduGlu Distributed Content

EduGu WhiteboardOne of the problems I’ve had with the EduGlu concept over the last 2 years is actually a problem that is pretty common in software development – I was overthinking things. By several orders of magnitude. My initial response to EduGlu was to start drafting database schemas, planning out code and applications, and to think about building the perfect course-based aggregator system. This overthinking went on for awhile, with an evolution and streamlining of the schemas and plans for the application. A project was set up on EduForge to act as the repository for the code that would be developed.

I realized that for this concept to be sustainable, it shouldn’t be a custom application. An “educational application” for this wouldn’t work. I started looking at every application as a possible way to implement the EduGlu concept. I played with Drupal and Aggregator2, but it wasn’t quite ready for prime time. I thought, maybe Elgg? Not quite.

Then Bill Fitzgerald recommended a more robust feed aggregator for Drupal, and things started clicking into place. That was back in May of 2006. It didn’t quite work, and wound up getting shelved for awhile.

In February 2007, at Northern Voice once again, the idea of EduGlu got tossed around by a bunch of people hanging out after the conference. It was generally agreed that there was something to the idea, but that it was too nebulous and ill-defined to make much sense at the time. WHAT. IS. EDUGLU? I played with Yahoo Pipes as a possible implementation. That didn’t work out very well. It wasn’t flexible enough, and didn’t provide enough control to each individual.

In May 2007, I started playing with BlogBridge Feed Library. It’s a very cool directory application, and I installed a copy of it on a server to experiment with it as an EduGlu implementation. It worked pretty well, with users able to add feeds to groups, and tag them as needed. It imported and exported OPML, and provided a web interface to view the feeds in case someone wasn’t using their own aggregator. It was close, but the workflow wasn’t quite there – user management wasn’t advanced enough to scale to the size of a large class or institution, and the concept of directories/folders/libraries was a bit inflexible for what EduGlu would need. It’s perfect for a relatively static directory, but for something where students may be adding and dropping feeds on a regular basis, and adding them to multiple contexts, it didn’t quite fit the bill.

Fast forward a few months, and Bill Fitzgerald is at it again. This time, he posts a full recipe for building a flexible feed aggregation application using Drupal and the much more robust FeedAPI aggregation management suite of modules. Very cool stuff. He’s got the aggregation stuff nailed.

Then, I start thinking about how we’ve been successfully using Drupal to power the websites for some active and dynamic course-based communities. The thing that is different on those websites is that they allow members to form their own groups at will. To create, join, and leave groups all on their own, without interference from any institutionally mandated concept of classes or departments. This is enabled by the incredible Organic Groups module for Drupal. Getting closer, but still not quite there.

And then Cole Camplese kicked things into high gear by posting a link (was it on Twitter?) to a site his group worked up to integrate feed aggregation and social rating. It let students rate the aggregated items ala Digg, and that rating data is used to determine importance of the aggregated content.

Bingo.

The magic combination of features for EduGlu are:

Aggregation of feeds + Groups + Social Rating + Tagging

Plugging all of these concepts together results in a workflow that looks something like this:

EduGlu Content Flow

Students add feeds to the system, placing them in any relevant groups, and tagging the feed appropriately. Items from these feeds are then aggregated, inheriting the feed’s tags and group settings. Students are able to view the incoming content in any (or all) of their groups at a glance, and apply social rating to sort and rank the items – items ranked over a threshold are pushed to the front page of the site. Tag clouds are generated, allowing easy browsing of content. And a full search engine is available, providing some pretty fully featured data mining tools. The aggregated items are archived for as long as needed, and discussion can occur within the context of the EduGlu website rather than being spread across dozens/hundreds of blogs and other applications scattered around the web.

The beauty of this implementation is that it involved no custom code. I didn’t write a single line of code. All I did was integrate a set of off-the-shelf modules for Drupal. This is all generalizable and re-implementable in any number of various ways.

I’ve been monkeying with a Drupal site that looks like it could fulfill most (even all?) of the mythical Eduglu concept – a website that aggregates all feeds published by students in a class/department/institution, and helps contextualize them in the various groups/cohorts/courses each student participates in. It’s getting really close – it can currently suck in all kinds of feeds, auto-tagging items, and even lets students create their own groups and associate feeds with them. There are issues, to be sure, mostly with respect to honouring the original tags in the aggregated items, and with taking advantage of the social rating system added to the website, but it’s so close I can taste it.

At the moment, there are almost 1200 items aggregated from feeds published by 19 users. It’s only been running for a week, so that’s not a bad start…

One added bonus of using Drupal for this, is that I can drop the Tagadelic module into place to generate a tag cloud representing all aggregated items’ tags. Here’s the tag cloud from the current prototype site:

Eduglu Tag Cloud

Just seeing that aggregate cloud makes me smile. I’ll have to work on things like adding a group-only tag cloud, and maybe a tag with date parameters (which could be REALLY useful to build a movie displaying the shifts in tag weights over the course of a semester or year…)

As an aside, I’m pretty sure that this is the first post that I’ve added to all of the main categories of my blog: General, Work, and Fun. I’m pretty sure there’s something to that…

Next Page →