Diigo for Android released

Since the Android platform did not have Diigo support built-in, I wrote DiigoDroid, a small free application to do that some days ago. Diigo is a social bookmarking service. If you don’t use Diigo, you don’t need DiigoDroid. But if Delicious isn’t providing you with enough features, Diigo may be a good replacement (it can even clone any links you make to your Delicious account).

You can find the app by searching for DiigoDroid or Diigo in the Android Market. It’s also listed in Androlib.

After installing the app, you can go ahead and click on its icon in the application list. This will launch a browser to the Diigo website, where you’ll need to log in. You should of course create a Diigo account if you don’t already have that. Let the browser remember your password, so you don’t need to type it in all the time.

To actually use DiigoDroid, just browse the web as you normally would. When you find a page that you’d like to bookmark, press the Menu button, select Share page and from the list that comes up, select Diigo. This will launch DiigoDroid, which will figure out the title of the page you were on, and then direct your browser to Diigo’s mobile link posting page, where you can add tags and a description if you like. After you submit the link, you’ll be returned to the original page. It’s that simple.

WordPress plugin for Knowledge Building discussions

Our research group has been working with knowledge building for years now. Some may be familiar with the Fle3 learning environment, built back in 2001. We’ve tried to get someone to create a Moodle plugin for knowledge building, even with the help of a dozen polytechnic students, but without much success.

Hans Põldoja came visiting two weeks ago and said he wanted a knowledge building plugin for WordPress by “next Tuesday”. Well, that wasn’t going to happen, but since our group leader Teemu Leinonen ok’d that I could spend time doing this plugin, I overcame my disgust over the uglyness of PHP and went to work.

Now, after one week, and probably about 20 hours later I have:

  1. Set up SVN and Trac for the project
  2. Got a domain name: fle4.uiah.fi
  3. Taught myself how to create WordPress plugins, basically by looking at these resources:
  1. Writing a Plugin « WordPress Codex
  2. Plugin API « WordPress Codex
  3. Plugin API/Action Reference « WordPress Codex
  4. Plugin API/Filter Reference « WordPress Codex
  5. Option Reference « WordPress Codex
  6. Adding Administration Menus « WordPress Codex
  7. WordPress Coding Standards « WordPress Codex
  8. Inline Documentation « WordPress Codex
  9. Plugin Submission and Promotion « WordPress Codex
  10. I did take a look at a few other plugins that do something similar, but the code quality was so bad that they didn’t help that much.
  • I then tested the plugin on my WordPress site.
  • When I was happy with the result, I applied for hosting at the WordPress Plugin Directory.
  • I then copied my code to the provided Subversion location (where you can checkout the source code as well), waited for the plugin information to be updated, and presto, it was downloadable and installable from within WordPress plugin management screens.
  • Some findings and observations:

    • WordPress development documentation is excellent, and an invaluable resource!
    • Many WordPress plugins (despite the previous point) are of low quality. So if looking for code examples, think carefully what you use.
    • The WordPress API is in general very well made. The Actions and Filters hooks allow plugins to easily effect the places they need to change.
    • The API still has problems – some changes aren’t easy to make using hooks, and need to be manually inserted by editing templates.
    • Some WordPress code still has html and php mixed together (example: the Walker class), which make their extensions really painful.

    But yes, in about half a week of working time I have a functional plugin. You can find it:

    Comments and such about the plugin are welcome at the plugin site. More general comments are welcome here.

    Blogged with the Flock Browser

    Tags: , , , , ,

    Gravatars and other externally loading dynamic content in blogs considered harmful

    I’m a happy user of Gravatars (globally recognized avatars) that allow my face to show up next to comments I write to practically any blog site. However, I’ve recently realized that Gravatars (at least their current implementation) have a major flaw that will really inconvenience its users in the long run.

    The basic problem is that blog posts and their comments are timestamped entities, which stay static forever (theoretically) after they have been created. A blog becomes an archive that with the help of permalinks allows others to refer to specific posts or comments, thus enabling the whole blogsphere, of sending messages between blogs. But if this archive contains information that is loaded from external sources, and thus is liable to change, the blog post no longer stays inert.

    Now, a common practice is to include images or embed videos from other sources to a blog post. Anyone understands that if the video clip or other external media disappears from the referenced URI, then the blog post will lose part of its content, making its remaining parts and its commentary partially meaningless. However, it is easy to see that the cause is missing data.

    Loading more dynamic content becomes problematic. Any external source that is likely to produce different content will make the blog post very difficult to understand later on. For example, embedding something like “today’s newscast” from a news agency, and commenting that, will be quite confusing if the shown content will actually each day show that day’s newscast, and not the one from the day the blog post was made.

    All of this is quite simple, and probably most bloggers intuitively know that they should link to and embed stuff from as permanent sources as possible.

    So what’s my problem with Gravatars? Some of you may have figured it out. While a gravatar image may not change very often, one should consider that Gravatars have been around only for a few years. Let’s take a longer view. My Gravatar image shows me at the age of about 30 years. When I’m fifty, I’ve probably updated by Gravatar image to show my current visage. However, when I do this change, all the hundreds of blogs I’ve commented on in the last 20 years will suddenly show a 50 year old man as a commenter.

    My Gravatar

    This problem is even more acute to teens. When you’re 12 years old and commenting on your friends’ blogs, it’s nice to have your own face in there, probably with a funny grin on it. But after 10-15 years when you’re a respected professional and your Gravatar icon shows you wearing a business suit, your friends’ blogs will seem pretty weird, with you in your suit hanging out with teens.

    Gravatar could of course fix this, by allowing users to have historical images that are sent to older blog postings. This would require a change in the API so that the call to get a Gravatar image based on an e-mail address would also include the date of the comment. Changing the API and getting all implementations to upgrade will be a challenge, but not doing it will simply break the system as people age, change contexts, and change their Gravatar images accordingly.

    Blogged with the Flock Browser

    Tags: , , , ,