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: wordpress, plugin, knowledgebuilding, php, development, api

    The power of the PHP community and the demise of Microsoft

    When I read Moishe Lettvin’s blog entry about the design of the Windows Vista shutdown mechanisms (moblog: The Windows Shutdown crapfest), it immediately connected with the podcast from Open Source Conversations on business benefits of PHP. The main benefit that several companies gained by switching to PHP was reduced time-to-market. The main reason for this is not that the language is simple, but that the PHP community has become so huge and vibrant that any new feature (be it barcode reading, excel sheet processing, pdf generation, etc.) is more often than not available as a PHP module. So instead of needing to implement new features, the work is more in the lines of combining chunks of modules into an application.

    Now, any beginning PHP coder out there should take heart: The difference between a beginning PHP programmer and an expert PHP programmer is knowledge of what’s available. There are countless modules available out there, so for task X, which possibilities are available, and which is the best one, and is that good enough to use as such, or use and improve, or do we need to build from scratch? This is the kind of question that a beginning PHP programmer cannot answer. So the knowledge of the vocabulary of the language (libraries and modules) instead of the grammar (the language syntax) is the factor.

    But back to the main topic. Enterprise level companies are starting to use PHP because

    • there is enterprise level support available and
    • the vast amount of freely available modules decreases time-to-market

    Let’s focus on time-to-market. If you listen to the podcast, you’ll hear that time-to-market is for many companies a mission-critical factor. If their customer base needs a new feature in the services that they provide and if they cannot provide it quickly, the customers will find another service provider. So getting that new feature out there in days, instead of weeks, is of the utmost importance.

    Now enter Microsoft. What made Microsoft big was that their QDOS that Bill maneuvered as the base OS for IBM PCs was a disruptive innovation – it wasn’t as good as the competition, but it was good enough. The strength of Microsoft back in 1980 was that it was small, maneuverable, and fast. Unlike the bulky, slow IBM.

    What’s the situation now? It took them 5 years to deliver a new version of Internet Explorer. What happened in the mean time? They lost their customer base. The market share of IE dropped from 95% to 60%. Why? Because they weren’t able to provide the new features that the competition (Firefox and Opera) were able to roll out, and the customers started switching to something else.

    It’s taken them too many years to get the next release of Windows out. Vista is now coming, but it’s too little, too late. It’s main new features seem to be doubled hardware requirements. The “new UI innovations” have been done by Apple in Mac OS X several years ago. The glossy new graphical excellence is already done in Linux with its 3D-accelerated windowing managers. Their new revolutionary file system got bumped off, while the Linux community has developed several of them. Their new security features are still lagging behind what is available for Linux.

    And what’s the situation now? On the server side Linux is growing its supremacy. On the client side Linux is gaining slowly but surely. Many national governments are switching from Windows to Linux, from MS Office to OpenOffice.org, from IE to Firefox. Why? Because the latter alternative is better, due to pricing, licencing, openness, and – let’s not forget – faster time-to-market. The open alternatives release new versions regularly, usually several times a year, versus Microsoft’s 3-5 year release cycle. The open alternatives release patches in days, not in months. The open alternatives release critical security fixes in a matter of hours, not every 2-4 weeks.

    Agility, maneuverability, reaction time to customer demands, and willingness to react are key factors for businesses for keeping their customer base. Microsoft is doing none of these and losing badly. Based on the blog post I mentioned in the beginning, the reason is also very clear – Microsoft has become the bloated, bureaucratic, clumsy, slow monster that it originally vanquished by being lean, agile, and fast back in the 1980’s.

    What’s left? Protection of their crumbling monopoly. As Lawrence Lessig has been telling me, it’s cost-efficient for a monopoly to spend all of its capital minus $1 in the protection of its monopoly. And apprently this is what Microsfsoft is planning. Lessig already several years ago reported that at Stanford Law School the “suck effect” is the sound they hear as Microsoft hires every patent lawyer they graduate. The stage is set for a huge patent war between Microsoft and the open source community, and the recent Filed Under: English, Technology Tagged With: , , , , ,