Category Archives: development

Early iPhone Rumours

[The Lar.me/2ke link originally pointed to Mike Davidson’s 2005 piece. More explanations here.]

[Update, a bit later… Added some thoughts, links, and tags…]

While listening to the Critical Path podcast on 5by5 with Asymco’s Horace Dediu, I got stuck on Dediu’s comment that there weren’t iPhone rumours when Google acquired Android. After a quick search, I ended up on this 2005 piece by Mike Davidson (written eight months before the Google purchase), so I tweeted to @Asymco with a link to Davidson’s post. Several people, including Dediu himself, tell me that this wouldn’t qualify as a rumour (though my own definition of rumour probably differs from theirs). Still, I’ve received some comments about how insightful this piece was. It was partly based on a November 2004 piece by Russell Beattie, which was itself a partial reaction to a short Ross Mayfield post about a “WiFi iPod”. In comments on Davidson’s piece, Ste Grainer mentioned a Robert X. Cringely piece about a Mac Media Centre.

I later found a NYT piece from 2002 which contained an actual rumour about the “iPhone”, including the name:

industry analysts see evidence that Apple is contemplating what inside the company is being called an ”iPhone.”

This, I think, would qualify as a rumour in most people’s definitions, though it didn’t include “leaked prototypes”.

But back to this Davidson piece, which might have been more insightful than the NYT’s one or even Beattie’s…

In hindsight, Davidson’s piece was both prescient of what would actually happen and telling in what didn’t happen. He talked about satellite radio, Plays for Sure, and WiMAX none of which panned out as planned. Also, Davidson surmised some things about Apple’s “content play” which were both less ambitious and more impactful (on Apple’s bottomline) than what actually happened. Apple’s 2007 move against DRM might have been surprising to the 2005 Davidson. And it’s funny to think back to an era when high prices for flash storage made it prohibitive to build a mobile device… ;-)

Basically, though, Davidson was speculating about an integrated device which would replace several devices at once:

It won’t be long before the cell phone is your camera, your music player, your organizer, your portable web client, your remote control, and your digital wallet

[We could argue about Android’s NFC play being closer to the digital wallet ideal than Apple’s passbook. The other parts are closer to a Treo anyway…]

In the abstract at least (and in Steve Jobs’s way of describing it), the iPhone has been this integrated communicating device about which people had been talking for years. So, kudos to Mike Davidson for predicting this a while in advance. He was neither the first nor the last, but he painted an interesting portrait.

Now, there are other parts to this story, I think. Given the fact that work on what would become iOS devices (iPad first, we’re told) hadn’t begun when Charles Wolf told the New York Times about a device called “iPhone” internally at Apple, I get the impression that the rumours predated much of the actual development work leading to the device. Speculation happened later still. It seems to relate to a number of things demonstrated by STS generally and SCOT specifically. Namely that technological development is embedded in a broader social process.

I also find interesting some side notions in all of these pieces. For instance, ideas about the impact the device might have on people’s usage. Or the fact that the move from the Treo to the iPhone ends up being quite significant, in retrospect. Even Davidson’s points about headphones and retail stores seem to relate to current things. So does the existence of the iPod touch and Apple TV in Apple’s lineup, addressing Mayfield and Cringely, respectively.

I also end up reflecting upon the shift from the “digital hub” strategy (peaking around 2007 or so) to the one revealed with iCloud, “Back to the Mac” and, yes, even Apple Maps. Dediu devotes much time to his mentor Clay Christensen’s notion of “disruptive innovation” and spent part of this latest Critcal Path episode talking about the risks behind Apple not being disruptive enough.

All of this makes me think…

Not that I have a very clear idea of what might happen but, recently, I’ve been thinking about the broader picture. Including the Maps kerfuffle. The importance of social disruption. Apple’s financial state and market presence. The so-called “Post-PC” era in relation to other “post-” notions (post-industrialism, post-colonialism, post-nationalism, post-modernism…). The boring nature of the Google/Apple conflict. The recent financial crisis. The tech world’s emphasis on Apple. The future of academia and education. The iconicity of Steve Jobs…

As Mike Wesch has been saying:

We’ll need to rethink a few things…

Future of Learning Content

If indeed Apple plans to announce not just more affordable textbook options for students, but also more interactive, immersive ebook experiences…

Forecasting next week’s Apple education event (Dan Moren and Lex Friedman for Macworld)

I’m still in catchup mode (was sick during the break), but it’s hard to let this pass. It’s exactly the kind of thing I like to blog about: wishful thinking and speculation about education. Sometimes, my crazy predictions are fairly accurate. But my pleasure at blogging these things has little to do with the predictions game. I’m no prospectivist. I just like to build wishlists.

In this case, I’ll try to make it short. But I’m having drift-off moments just thinking about the possibilities. I do have a lot to say about this but we’ll see how things go.

Overall, I agree with the three main predictions in that MacWorld piece: Apple might come out with eBook creation tools, office software, and desktop reading solutions. I’m interested in all of these and have been thinking about the implications.

That MacWorld piece, like most media coverage of textbooks, these days, talks about the weight of physical textbooks as a major issue. It’s a common refrain and large bookbags/backpacks have symbolized a key problem with “education”. Moren and Friedman finish up with a zinger about lecturing. Also a common complaint. In fact, I’ve been on the record (for a while) about issues with lecturing. Which is where I think more reflection might help.

For one thing, alternative models to lecturing can imply more than a quip about the entertainment value of teaching. Inside the teaching world, there’s a lot of talk about the notion that teaching is a lot more than providing access to content. There’s a huge difference between reading a book and taking a class. But it sounds like this message isn’t heard and that there’s a lot of misunderstanding about the role of teaching.

It’s quite likely that Apple’s announcement may make things worse.

I don’t like textbooks but I do use them. I’m not the only teacher who dislikes textbook while still using them. But I feel the need to justify myself. In fact, I’ve been on the record about this. So, in that context, I think improvements in textbooks may distract us from a bigger issue and even lead us in the wrong direction. By focusing even more on content-creation, we’re commodifying education. What’s more, we’re subsuming education to a publishing model. We all know how that’s going. What’s tragic, IMHO, is that textbook publishers themselves are going in the direction of magazines! If, ten years from now, people want to know when we went wrong with textbook publishing, it’ll probably be a good idea for them to trace back from now. In theory, magazine-style textbooks may make a lot of sense to those who perceive learning to be indissociable from content consumption. I personally consider these magazine-style textbooks to be the most egregious of aberrations because, in practice, learning is radically different from content consumption.

So… If, on Thursday, Apple ends up announcing deals with textbook publishers to make it easier for them to, say, create and distribute free ad-supported magazine-style textbooks, I’ll be going through a large range of very negative emotions. Coming out of it, I might perceive a silverlining in the fact that these things can fairly easily be subverted. I like this kind of technological subversion and it makes me quite enthusiastic.

In fact, I’ve had this thought about iAd producer (Apple’s tool for creating mobile ads). Never tried it but, when I heard about it, it sounded like something which could make it easy to produce interactive content outside of mobile advertising. I don’t think the tool itself is restricted to Apple’s iAd, but I could see how the company might use the same underlying technology to create some content-creation tool.

“But,” you say, “you just said that you think learning isn’t about content.” Quite so. I’m not saying that I think these tools should be the future of learning. But creating interactive content can be part of something wider, which does relate to learning.

The point isn’t that I don’t like content. The point is that I don’t think content should be the exclusive focus of learning. To me, allowing textbook publishers to push more magazine-style content more easily is going in the wrong direction. Allowing diverse people (including learners and teachers) to easily create interactive content might in fact be a step in the right direction. It’s nothing new, but it’s an interesting path.

In fact, despite my dislike of a content emphasis in learning, I’m quite interested in “learning objects”. In fact, I did a presentation about them during the Spirit of Inquiry conference at Concordia, a few years ago (PDF).

A neat (but Flash-based) example of a learning object was introduced to me during that same conference: Mouse Party. The production value is quite high, the learning content seems relatively high, and it’s easily accessible.

But it’s based on Flash.

Which leads me to another part of the issue: formats.

I personally try to avoid Flash as much as possible. While a large number of people have done amazing things with Flash, it’s my sincere (and humble) opinion that Flash’s time has come and gone. I do agree with Steve Jobs on this. Not out of fanboism (I’m no Apple fanboi), not because I have something against Adobe (I don’t), not because I have a vested interested in an alternative technology. I just think that mobile Flash isn’t going anywhere and that. Even on the desktop, I think Flash-free is the way to go. Never installed Flash on my desktop computer, since I bought it in July. I do run Chrome for the occasional Flash-only video. But Flash isn’t the only video format out there and I almost never come across interesting content which actually relies on something exclusive to Flash. Flash-based standalone apps (like Rdio and Machinarium) are a different issue as Flash was more of a development platform for them and they’re available as Flash-free apps on Apple’s own iOS.

I wouldn’t be surprised if Apple’s announcements had something to do with a platform for interactive content as an alternative to Adobe Flash. In fact, I’d be quite enthusiastic about that. Especially given Apple’s mobile emphasis. We might be getting further in “mobile computing for the rest of us”.

Part of this may be related to HTML5. I was quite enthusiastic when Tumult released its “Hype” HTML5-creation tool. I only used it to create an HTML5 version of my playfulness talk. But I enjoyed it and can see a lot of potential.

Especially in view of interactive content. It’s an old concept and there are many tools out there to create interactive content (from Apple’s own QuickTime to Microsoft PowerPoint). But the shift to interactive content has been slower than many people (including educational technologists) would have predicted. In other words, there’s still a lot to be done with interactive content. Especially if you think about multitouch-based mobile devices.

Which eventually brings me back to learning and teaching.

I don’t “teach naked”, I do use slides in class. In fact, my slides are mostly bullet points, something presentation specialists like to deride. Thing is, though, my slides aren’t really meant for presentation and, while they sure are “content”, I don’t really use them as such. Basically, I use them as a combination of cue cards, whiteboard, and coursenotes. Though I may sound defensive about this, I’m quite comfortable with my use of slides in the classroom.

Yet, I’ve been looking intently for other solutions.

For instance, I used to create outlines in OmniOutliner that I would then send to LaTeX to produce both slides and printable outlines (as PDFs). I’ve thought about using S5, but it doesn’t really fit in my workflow. So I end up creating Keynote files on my Mac, uploading them (as PowerPoint) before class, and using them in the classroom using my iPad. Not ideal, but rather convenient.

(Interestingly enough, the main thing I need to do today is create PowerPoint slides as ancillary material for a textbook.)

In all of these cases, the result isn’t really interactive. Sure, I could add buttons and interactive content to the slides. But the basic model is linear, not interactive. The reason I don’t feel bad about it is that my teaching is very interactive (the largest proportion of classtime is devoted to open discussions, even with 100-plus students). But I still wish I could have something more appropriate.

I have used other tools, especially whiteboarding and mindmapping ones. Basically, I elicit topics and themes from students and we discuss them in a semi-structured way. But flow remains an issue, both in terms of workflow and in terms of conversation flow.

So if Apple were to come up with tools making it easy to create interactive content, I might integrate them in my classroom work. A “killer feature” here is if interaction could be recorded during class and then uploaded as an interactive podcast (à la ProfCast).

Of course, content-creation tools might make a lot of sense outside the classroom. Not only could they help distribute the results of classroom interactions but they could help in creating learning material to be used ahead of class. These could include the aforementioned learning objects (like Mouse Party) as well as interactive quizzes (like Hot Potatoes) and even interactive textbooks (like Moglue) and educational apps (plenty of these in the App Store).

Which brings me back to textbooks, the alleged focus of this education event.

One of my main issues with textbooks, including online ones, is usability. I read pretty much everything online, including all the material for my courses (on my iPad) but I find CourseSmart and its ilk to be almost completely unusable. These online textbooks are, in my experience, much worse than scanned and OCRed versions of the same texts (in part because they don’t allow for offline access but also because they make navigation much more difficult than in GoodReader).

What I envision is an improvement over PDFs.

Part of the issue has to do with PDF itself. Despite all its benefits, Adobe’s “Portable Document Format” is the relic of a bygone era. Sure, it’s ubiquitous and can preserve formatting. It’s also easy to integrate in diverse tools. In fact, if I understand things correctly, PDF replaced Display PostScript as the basis for Quartz 2D, a core part of Mac OS X’s graphics rendering. But it doesn’t mean that it can’t be supplemented by something else.

Part of the improvement has to do with flexibility. Because of its emphasis on preserving print layouts, PDF tends to enforce print-based ideas. This is where EPUB is at a significant advantage. In a way, EPUB textbooks might be the first step away from the printed model.

From what I can gather, EPUB files are a bit like Web archives. Unlike PDFs, they can be reformatted at will, just like webpages can. In fact, iBooks and other EPUB readers (including Adobe’s, IIRC) allow for on-the-fly reformatting, which puts the reader in control of a much greater part of the reading experience. This is exactly the kind of thing publishers fail to grasp: readers, consumers, and users want more control on the experience. EPUB textbooks would thus be easier to read than PDFs.

EPUB is the basis for Apple’s iBooks and iBookstore and people seem to be assuming that Thursday’s announcement will be about iBooks. Makes sense and it’d be nice to see an improvement over iBooks. For one thing, it could support EPUB 3. There are conversion tools but, AFAICT, iBooks is stuck with EPUB 2.0. An advantage there is that EPUBs can possibly include scripts and interactivity. Which could make things quite interesting.

Interactive formats abound. In fact, PDFs can include some interactivity. But, as mentioned earlier, there’s a lot of room for improvement in interactive content. In part, creation tools could be “democratized”.

Which gets me thinking about recent discussions over the fate of HyperCard. While I understand John Gruber’s longstanding position, I find room for HyperCard-like tools. Like some others, I even had some hopes for ATX-based TileStack (an attempt to bring HyperCard stacks back to life, online). And I could see some HyperCard thinking in an alternative to both Flash and PDF.

“Huh?”, you ask?

Well, yes. It may sound strange but there’s something about HyperCard which could make sense in the longer term. Especially if we get away from the print model behind PDFs and the interaction model behind Flash. And learning objects might be the ideal context for this.

Part of this is about hyperlinking.  It’s no secret that HyperCard was among HTML precursors. As the part of HTML which we just take for granted, hyperlinking is among the most undervalued features of online content. Sure, we understand the value of sharing links on social networking systems. And there’s a lot to be said about bookmarking. In fact, I’ve been thinking about social bookmarking and I have a wishlist about sharing tools, somewhere. But I’m thinking about something much more basic: hyperlinking is one of the major differences between online and offline wriiting.

Think about the differences between, say, a Wikibook and a printed textbook. My guess is that most people would focus on the writing style, tone, copy-editing, breadth, reviewing process, etc. All of these are relevant. In fact, my sociology classes came up with variations on these as disadvantages of the Wikibook over printed textbooks. Prior to classroom discussion about these differences, however, I mentioned several advantages of the Wikibook:

  • Cover bases
  • Straightforward
  • Open Access
  • Editable
  • Linked

(Strangely enough, embedded content from iWork.com isn’t available and I can’t log into my iWork.com account. Maybe it has to do with Thursday’s announcement?)

That list of advantages is one I’ve been using since I started to use this Wikibook… excerpt for the last one. And this is one which hit me, recently, as being more important than the others.

So, in class, I talked about the value of links and it’s been on my mind quite a bit. Especially in view of textbooks. And critical thinking.

See, academic (and semi-academic) writing is based on references, citations, quotes. English-speaking academics are likely to be the people in the world of publishing who cite the most profusely. It’s not rare for a single paragraph of academic writing in English to contain ten citations or more, often stringed in parentheses (Smith 1999, 2005a, 2005b; Smith and Wesson 1943, 2010). And I’m not talking about Proust-style paragraphs either. I’m convinced that, with some quick searches, I could come up with a paragraph of academic writing which has less “narrative content” than citation.

Textbooks aren’t the most egregious example of what I’d consider over-citing. But they do rely on citations quite a bit. As I work more specifically on textbook content, I notice even more clearly the importance of citations. In fact, in my head, I started distinguishing some patterns in textbook content. For instance, there are sections which mostly contain direct explanations of key concepts while other sections focus on personal anecdotes from the authors or extended quotes from two sides of the debate. But one of the most obvious sections are summaries from key texts.

For instance (hypothetical example):

As Nora Smith explained in her 1968 study Coming Up with Something to Say, the concept of interpretation has a basis in cognition.

Smith (1968: 23) argued that Pierce’s interpretant had nothing to do with theatre.

These citations are less conspicuous than they’d be in peer-reviewed journals. But they’re a central part of textbook writing. One of their functions should be to allow readers (undergraduate students, mostly) to learn more about a topic. So, when a student wants to know more about Nora Smith’s reading of Pierce, she “just” have to locate Smith’s book, go to the right page, scan the text for the read for the name “Pierce”, and read the relevant paragraph. Nothing to it.

Compare this to, say, a blogpost. I only cite one text, here. But it’s linked instead of being merely cited. So readers can quickly know more about the context for what I’m discussing before going to the library.

Better yet, this other blogpost of mine is typical of what I’ve been calling a linkfest, a post containing a large number of links. Had I put citations instead of links, the “narrative” content of this post would be much less than the citations. Basically, the content was a list of contextualized links. Much textbook content is just like that.

In my experience, online textbooks are citation-heavy and take almost no benefit from linking. Oh, sure, some publisher may replace citations with links. But the result would still not be the same as writing meant for online reading because ex post facto link additions are quite different from link-enhanced writing. I’m not talking about technological determinism, here. I’m talking about appropriate tool use. Online texts can be quite different from printed ones and writing for an online context could benefit greatly from this difference.

In other words, I care less about what tools publishers are likely to use to create online textbooks than about a shift in the practice of online textbooks.

So, if Apple comes out with content-creation tools on Thursday (which sounds likely), here are some of my wishes:

  • Use of open standards like HTML5 and EPUB (possibly a combination of the two).
  • Completely cross-platform (should go without saying, but Apple’s track record isn’t that great, here).
  • Open Access.
  • Link library.
  • Voice support.
  • Mobile creation tools as powerful as desktop ones (more like GarageBand than like iWork).
  • HyperCard-style emphasis on hyperlinked structures (à la “mini-site” instead of web archives).
  • Focus on rich interaction (possibly based on the SproutCore web framework).
  • Replacement for iWeb (which is being killed along with MobileMe).
  • Ease creation of lecturecasts.
  • Deep integration with iTunes U.
  • Combination of document (à la Pages or Word), presentation (à la Keynote or PowerPoint), and standalone apps (à la The Elements or even Myst).
  • Full support for course management systems.
  • Integration of textbook material and ancillary material (including study guides, instructor manuals, testbanks, presentation files, interactive quizzes, glossaries, lesson plans, coursenotes, etc.).
  • Outlining support (more like OmniOutliner or even like OneNote than like Keynote or Pages).
  • Mindmapping support (unlikely, but would be cool).
  • Whiteboard support (both in-class and online).
  • Collaboration features (à la Adobe Connect).
  • Support for iCloud (almost a given, but it opens up interesting possibilities).
  • iWork integration (sounds likely, but still in my wishlist).
  • Embeddable content (à la iWork.com).
  • Stability, ease of use, and low-cost (i.e., not Adobe Flash or Acrobat).
  • Better support than Apple currently provides for podcast production and publishing.
  • More publisher support than for iBooks.
  • Geared toward normal users, including learners and educators.

The last three are probably where the problem lies. It’s likely that Apple has courted textbook publishers and may have convinced them that they should up their game with online textbooks. It’s clear to me that publishers risk to fall into oblivion if they don’t wake up to the potential of learning content. But I sure hope the announcement goes beyond an agreement with publishers.

Rumour has it that part of the announcement might have to do with bypassing state certification processes, in the US. That would be a big headline-grabber because the issue of state certification is something of wedge issue. Could be interesting, especially if it means free textbooks (though I sure hope they won’t be ad-supported). But that’s much less interesting than what could be done with learning content.

User-generated content” may be one of the core improvements in recent computing history, much of which is relevant for teaching. As fellow anthro Mike Wesch has said:

We’ll  need to rethink a few things…

And Wesch sure has been thinking about learning.

Problem is, publishers and “user-generated content” don’t go well together. I’m guessing that it’s part of the reason for Apple’s insufficient support for “user-generated content”. For better or worse, Apple primarily perceives its users as consumers. In some cases, Apple sides with consumers to make publishers change their tune. In other cases, it seems to be conspiring with publishers against consumers. But in most cases, Apple fails to see its core users as content producers. In the “collective mind of Apple”, the “quality content” that people should care about is produced by professionals. What normal users do isn’t really “content”. iTunes U isn’t an exception, those of us who give lectures aren’t Apple’s core users (even though the education market as a whole has traditionally being an important part of Apple’s business). The fact that Apple courts us underlines the notion that we, teachers and publishers (i.e. non-students), are the ones creating the content. In other words, Apple supports the old model of publishing along with the old model of education. Of course, they’re far from alone in this obsolete mindframe. But they happen to have several of the tools which could be useful in rethinking education.

Thursday’s events is likely to focus on textbooks. But much more is needed to shift the balance between publishers and learners. Including a major evolution in podcasting.

Podcasting is especially relevant, here. I’ve often thought about what Apple could do to enhance podcasting for learning. Way beyond iTunes U. Into something much more interactive. And I don’t just mean “interactive content” which can be manipulated seamless using multitouch gestures. I’m thinking about the back-and-forth of learning and teaching, the conversational model of interactivity which clearly distinguishes courses from mere content.

Open Letter: UnivCafé Testimonial

Here’s a slightly edited version of a message I sent about University of the Streets Café. I realize that my comments about it may sound strange for people who haven’t participated in one of their conversations. And there may be people who don’t like it as much as I do. But it’s remarkable how favourable people are to the program, once they participate in it.

Having taught at eight academic institutions in the United States and Canada, I have frequently gone on record to say that Concordia is my favourite context for teaching and learning. By a long stretch.

Concordia’s “University of the Streets Café” program is among the things I like the most about my favourite university.

Over the past few years, I have been a vocal participant at a rather large number of “UnivCafé” events and have been the guest at one of them. Each of these two-hour conversations has provided me with more stimulation than any seminar or class meeting in which I participated, as a teacher or as a student.

In fact, I have frequently discussed UnivCafé with diverse people (including several members of the Concordia community). As is clear to anyone who knows me, UnivCafé has had a strong impact on my life, both professionally and personally.

Given my experience elsewhere, I have a clear impression of what makes Concordia unique.

  • Emphasis on community development.
  • Strong social awareness.
  • Thoughtful approach to sustainability.
  • Seamless English/French bilingualism.
  • Inclusive attitude, embracing cultural and social diversity.
  • Ease of building organic social networks through informal events.

In a way, UnivCafé encapsulates Concordia’s uniqueness.

Yet it goes further than that. Though it may sound hyperbolic to outsiders, I would not hesitate to say that UnivCafé captures some of the Greek academia (Ἀκαδημία) while integrating dimensions of contemporary life. More pithily: ”UnivCafé is a social media version of Plato‘s Academy”.

It seems to me that academia is in a transition period. For instance, the tenure system could be rethought. With social and technological developments challenging many academic models, universities are often searching for new models. I sincerely hope that the UnivCafé model is a sign of things to come.

I have discussed this on several occasions with students and colleagues, and this notion is gaining ground.

There is something remarkable about how appropriate the UnivCafé model is, in the current context. To my mind, UnivCafé does all of the following:

  • Encourages critical thinking.
  • Gives voice to people who are rarely heard.
  • Exposes participants to a diversity of perspectives.
  • Brings together people who rarely get a chance to interact.
  • Integrates practical and theoretical concerns.
  • Allays fears of public speaking.
  • Builds valuable connections through the local community.
  • Brings academics outside the Ivory Tower.

As may be obvious, I could talk about UnivCafé for hours and would be happy to do so in any context.

In the meantime, may this testimonial serve as a token of appreciation for all the things I have gained from UnivCafé.

WordPress as Content Directory: Getting Somewhere

{I tend to ramble a bit. If you just want a step-by-step tutorial, you can skip to here.}

Woohoo!

I feel like I’ve reached a milestone in a project I’ve had in mind, ever since I learnt about Custom Post Types in WordPress 3.0: Using WordPress as a content directory.

The concept may not be so obvious to anyone else, but it’s very clear to me. And probably much clearer for anyone who has any level of WordPress skills (I’m still a kind of WP newbie).

Basically, I’d like to set something up through WordPress to make it easy to create, review, and publish entries in content databases. WordPress is now a Content Management System and the type of “content management” I’d like to enable has to do with something of a directory system.

Why WordPress? Almost glad you asked.

These days, several of the projects on which I work revolve around WordPress. By pure coincidence. Or because WordPress is “teh awsum.” No idea how representative my sample is. But I got to work on WordPress for (among other things): an academic association, an adult learners’ week, an institute for citizenship and social change, and some of my own learning-related projects.

There are people out there arguing about the relative value of WordPress and other Content Management Systems. Sometimes, WordPress may fall short of people’s expectations. Sometimes, the pro-WordPress rhetoric is strong enough to sound like fanboism. But the matter goes beyond marketshare, opinions, and preferences.

In my case, WordPress just happens to be a rather central part of my life, these days. To me, it’s both a question of WordPress being “the right tool for the job” and the work I end up doing being appropriate for WordPress treatment. More than a simple causality (“I use WordPress because of the projects I do” or “I do these projects because I use WordPress”), it’s a complex interaction which involves diverse tools, my skillset, my social networks, and my interests.

Of course, WordPress isn’t perfect nor is it ideal for every situation. There are cases in which it might make much more sense to use another tool (Twitter, TikiWiki, Facebook, Moodle, Tumblr, Drupal..). And there are several things I wish WordPress did more elegantly (such as integrating all dimensions in a single tool). But I frequently end up with WordPress.

Here are some things I like about WordPress:

This last one is where the choice of WordPress for content directories starts making the most sense. Not only is it easy for me to use and build on WordPress but the learning curves are such that it’s easy for me to teach WordPress to others.

A nice example is the post editing interface (same in the software and service). It’s powerful, flexible, and robust, but it’s also very easy to use. It takes a few minutes to learn and is quite sufficient to do a lot of work.

This is exactly where I’m getting to the core idea for my content directories.

I emailed the following description to the digital content editor for the academic organization for which I want to create such content directories:

You know the post editing interface? What if instead of editing posts, someone could edit other types of contents, like syllabi, calls for papers, and teaching resources? What if fields were pretty much like the form I had created for [a committee]? What if submissions could be made by people with a specific role? What if submissions could then be reviewed by other people, with another role? What if display of these items were standardised?

Not exactly sure how clear my vision was in her head, but it’s very clear for me. And it came from different things I’ve seen about custom post types in WordPress 3.0.

For instance, the following post has been quite inspiring:

I almost had a drift-off moment.

But I wasn’t able to wrap my head around all the necessary elements. I perused and read a number of things about custom post types, I tried a few things. But I always got stuck at some point.

Recently, a valuable piece of the puzzle was provided by Kyle Jones (whose blog I follow because of his work on WordPress/BuddyPress in learning, a focus I share).

Setting up a Staff Directory using WordPress Custom Post Types and Plugins | The Corkboard.

As I discussed in the comments to this post, it contained almost everything I needed to make this work. But the two problems Jones mentioned were major hurdles, for me.

After reading that post, though, I decided to investigate further. I eventually got some material which helped me a bit, but it still wasn’t sufficient. Until tonight, I kept running into obstacles which made the process quite difficult.

Then, while trying to solve a problem I was having with Jones’s code, I stumbled upon the following:

Rock-Solid WordPress 3.0 Themes using Custom Post Types | Blancer.com Tutorials and projects.

This post was useful enough that I created a shortlink for it, so I could have it on my iPad and follow along: http://bit.ly/RockSolidCustomWP

By itself, it might not have been sufficient for me to really understand the whole process. And, following that tutorial, I replaced the first bits of code with use of the neat plugins mentioned by Jones in his own tutorial: More Types, More Taxonomies, and More Fields.

I played with this a few times but I can now provide an actual tutorial. I’m now doing the whole thing “from scratch” and will write down all steps.

This is with the WordPress 3.0 blogging software installed on a Bluehost account. (The WordPress.com blogging service doesn’t support custom post types.) I use the default Twenty Ten theme as a parent theme.

Since I use WordPress Multisite, I’m creating a new test blog (in Super Admin->Sites, “Add New”). Of course, this wasn’t required, but it helps me make sure the process is reproducible.

Since I already installed the three “More Plugins” (but they’re not “network activated”) I go in the Plugins menu to activate each of them.

I can now create the new “Product” type, based on that Blancer tutorial. To do so, I go to the “More Types” Settings menu, I click on “Add New Post Type,” and I fill in the following information: post type names (singular and plural) and the thumbnail feature. Other options are set by default.

I also set the “Permalink base” in Advanced settings. Not sure it’s required but it seems to make sense.

I click on the “Save” button at the bottom of the page (forgot to do this, the last time).

I then go to the “More Fields” settings menu to create a custom box for the post editing interface.

I add the box title and change the “Use with post types” options (no use in having this in posts).

(Didn’t forget to click “save,” this time!)

I can now add the “Price” field. To do so, I need to click on the “Edit” link next to the “Product Options” box I just created and add click “Add New Field.”

I add the “Field title” and “Custom field key”:

I set the “Field type” to Number.

I also set the slug for this field.

I then go to the “More Taxonomies” settings menu to add a new product classification.

I click “Add New Taxonomy,” and fill in taxonomy names, allow permalinks, add slug, and show tag cloud.

I also specify that this taxonomy is only used for the “Product” type.

(Save!)

Now, the rest is more directly taken from the Blancer tutorial. But instead of copy-paste, I added the files directly to a Twenty Ten child theme. The files are available in this archive.

Here’s the style.css code:

/*
Theme Name: Product Directory
Theme URI: http://enkerli.com/
Description: A product directory child theme based on Kyle Jones, Blancer, and Twenty Ten
Author: Alexandre Enkerli
Version: 0.1
Template: twentyten
*/
@import url("../twentyten/style.css");

The code for functions.php:

<!--?php /**  * ProductDir functions and definitions  * @package WordPress  * @subpackage Product_Directory  * @since Product Directory 0.1  */ /*Custom Columns*/ add_filter("manage_edit-product_columns", "prod_edit_columns"); add_action("manage_posts_custom_column",  "prod_custom_columns"); function prod_edit_columns($columns){ 		$columns = array( 			"cb" =--> "<input type="\&quot;checkbox\&quot;" />",
			"title" => "Product Title",
			"description" => "Description",
			"price" => "Price",
			"catalog" => "Catalog",
		);

		return $columns;
}

function prod_custom_columns($column){
		global $post;
		switch ($column)
		{
			case "description":
				the_excerpt();
				break;
			case "price":
				$custom = get_post_custom();
				echo $custom["price"][0];
				break;
			case "catalog":
				echo get_the_term_list($post->ID, 'catalog', '', ', ','');
				break;
		}
}
?>

And the code in single-product.php:

<!--?php /**  * Template Name: Product - Single  * The Template for displaying all single products.  *  * @package WordPress  * @subpackage Product_Dir  * @since Product Directory 1.0  */ get_header(); ?-->
<div id="container">
<div id="content">
<!--?php the_post(); ?-->

<!--?php 	$custom = get_post_custom($post--->ID);
	$price = "$". $custom["price"][0];

?>
<div id="post-<?php the_ID(); ?><br />">>
<h1 class="entry-title"><!--?php the_title(); ?--> - <!--?=$price?--></h1>
<div class="entry-meta">
<div class="entry-content">
<div style="width: 30%; float: left;">
			<!--?php the_post_thumbnail( array(100,100) ); ?-->
			<!--?php the_content(); ?--></div>
<div style="width: 10%; float: right;">
			Price
<!--?=$price?--></div>
</div>
</div>
</div>
<!-- #content --></div>
<!-- #container -->

<!--?php get_footer(); ?-->

That’s it!

Well, almost..

One thing is that I have to activate my new child theme.

So, I go to the “Themes” Super Admin menu and enable the Product Directory theme (this step isn’t needed with single-site WordPress).

I then activate the theme in Appearance->Themes (in my case, on the second page).

One thing I’ve learnt the hard way is that the permalink structure may not work if I don’t go and “nudge it.” So I go to the “Permalinks” Settings menu:

And I click on “Save Changes” without changing anything. (I know, it’s counterintuitive. And it’s even possible that it could work without this step. But I spent enough time scratching my head about this one that I find it important.)

Now, I’m done. I can create new product posts by clicking on the “Add New” Products menu.

I can then fill in the product details, using the main WYSIWYG box as a description, the “price” field as a price, the “featured image” as the product image, and a taxonomy as a classification (by clicking “Add new” for any tag I want to add, and choosing a parent for some of them).

Now, in the product management interface (available in Products->Products), I can see the proper columns.

Here’s what the product page looks like:

And I’ve accomplished my mission.

The whole process can be achieved rather quickly, once you know what you’re doing. As I’ve been told (by the ever-so-helpful Justin Tadlock of Theme Hybrid fame, among other things), it’s important to get the data down first. While I agree with the statement and its implications, I needed to understand how to build these things from start to finish.

In fact, getting the data right is made relatively easy by my background as an ethnographer with a strong interest in cognitive anthropology, ethnosemantics, folk taxonomies (aka “folksonomies“), ethnography of communication, and ethnoscience. In other words, “getting the data” is part of my expertise.

The more technical aspects, however, were a bit difficult. I understood most of the principles and I could trace several puzzle pieces, but there’s a fair deal I didn’t know or hadn’t done myself. Putting together bits and pieces from diverse tutorials and posts didn’t work so well because it wasn’t always clear what went where or what had to remain unchanged in the code. I struggled with many details such as the fact that Kyle Jones’s code for custom columns wasn’t working first because it was incorrectly copied, then because I was using it on a post type which was “officially” based on pages (instead of posts). Having forgotten the part about “touching” the Permalinks settings, I was unable to get a satisfying output using Jones’s explanations (the fact that he doesn’t use titles didn’t really help me, in this specific case). So it was much harder for me to figure out how to do this than it now is for me to build content directories.

I still have some technical issues to face. Some which are near essential, such as a way to create archive templates for custom post types. Other issues have to do with features I’d like my content directories to have, such as clearly defined roles (the “More Plugins” support roles, but I still need to find out how to define them in WordPress). Yet other issues are likely to come up as I start building content directories, install them in specific contexts, teach people how to use them, observe how they’re being used and, most importantly, get feedback about their use.

But I’m past a certain point in my self-learning journey. I’ve built my confidence (an important but often dismissed component of gaining expertise and experience). I found proper resources. I understood what components were minimally necessary or required. I succeeded in implementing the system and testing it. And I’ve written enough about the whole process that things are even clearer for me.

And, who knows, I may get feedback, questions, or advice..

Installing BuddyPress on a Webhost

[Jump here for more technical details.]

A few months ago, I installed BuddyPress on my Mac to try it out. It was a bit of an involved process, so I documented it:

WordPress MU, BuddyPress, and bbPress on Local Machine « Disparate.

More recently, I decided to get a webhost. Both to run some tests and, eventually, to build something useful. BuddyPress seems like a good way to go at it, especially since it’s improved a lot, in the past several months.

In fact, the installation process is much simpler, now, and I ran into some difficulties because I was following my own instructions (though adapting the process to my webhost). So a new blogpost may be in order. My previous one was very (possibly too) detailed. This one is much simpler, technically.

One thing to make clear is that BuddyPress is a set of plugins meant for WordPress µ (“WordPress MU,” “WPMU,” “WPµ”), the multi-user version of the WordPress blogging platform. BP is meant as a way to make WPµ more “social,” with such useful features as flexible profiles, user-to-user relationships, and forums (through bbPress, yet another one of those independent projects based on WordPress).

While BuddyPress depends on WPµ and does follow a blogging logic, I’m thinking about it as a social platform. Once I build it into something practical, I’ll probably use the blogging features but, in a way, it’s more of a tool to engage people in online social activities. BuddyPress probably doesn’t work as a way to “build a community” from scratch. But I think it can be quite useful as a way to engage members of an existing community, even if this engagement follows a blogger’s version of a Pareto distribution (which, hopefully, is dissociated from elitist principles).

But I digress, of course. This blogpost is more about the practical issue of adding a BuddyPress installation to a webhost.

Webhosts have come a long way, recently. Especially in terms of shared webhosting focused on LAMP (or PHP/MySQL, more specifically) for blogs and content-management. I don’t have any data on this, but it seems to me that a lot of people these days are relying on third-party webhosts instead of relying on their own servers when they want to build on their own blogging and content-management platforms. Of course, there’s a lot more people who prefer to use preexisting blog and content-management systems. For instance, it seems that there are more bloggers on WordPress.com than on other WordPress installations. And WP.com blogs probably represent a small number of people in comparison to the number of people who visit these blogs. So, in a way, those who run their own WordPress installations are a minority in the group of active WordPress bloggers which, itself, is a minority of blog visitors. Again, let’s hope this “power distribution” not a basis for elite theory!

Yes, another digression. I did tell you to skip, if you wanted the technical details!

I became part of the “self-hosted WordPress” community through a project on which I started work during the summer. It’s a website for an academic organization and I’m acting as the organization’s “Web Guru” (no, I didn’t choose the title). The site was already based on WordPress but I was rebuilding much of it in collaboration with the then-current “Digital Content Editor.” Through this project, I got to learn a lot about WordPress, themes, PHP, CSS, etc. And it was my first experience using a cPanel- (and Fantastico-)enabled webhost (BlueHost, at the time). It’s also how I decided to install WordPress on my local machine and did some amount of work from that machine.

But the local installation wasn’t an ideal solution for two reasons: a) I had to be in front of that local machine to work on this project; and b) it was much harder to show the results to the person with whom I was collaborating.

So, in the Fall, I decided to get my own staging server. After a few quick searches, I decided HostGator, partly because it was available on a monthly basis. Since this staging server was meant as a temporary solution, HG was close to ideal. It was easy to set up as a PayPal “subscription,” wasn’t that expensive (9$/month), had adequate support, and included everything that I needed at that point to install a current version of WordPress and play with theme files (after importing content from the original site). I’m really glad I made that decision because it made a number of things easier, including working from different computers, and sending links to get feedback.

While monthly HostGator fees were reasonable, it was still a more expensive proposition than what I had in mind for a longer-term solution. So, recently, a few weeks after releasing the new version of the organization’s website, I decided to cancel my HostGator subscription. A decision I made without any regret or bad feeling. HostGator was good to me. It’s just that I didn’t have any reason to keep that account or to do anything major with the domain name I was using on HG.

Though only a few weeks elapsed since I canceled that account, I didn’t immediately set out to transition to a new webhost. I didn’t go from HostGator to another webhost.

But having my own webhost still remained at the back of my mind as something which might be useful. For instance, while not really making a staging server necessary, a new phase in the academic website project brought up a sandboxing idea. Also, I went to a “WordPress Montreal” meeting and got to think about further WordPress development/deployment, including using BuddyPress for my own needs (both as my own project and as a way to build my own knowledge of the platform) instead of it being part of an organization’s project. I was also thinking about other interesting platforms which necessitate a webhost.

(More on these other platforms at a later point in time. Bottom line is, I’m happy with the prospects.)

So I wanted a new webhost. I set out to do some comparison shopping, as I’m wont to do. In my (allegedly limited) experience, finding the ideal webhost is particularly difficult. For one thing, search results are cluttered with a variety of “unuseful” things such as rants, advertising, and limited comparisons. And it’s actually not that easy to give a new webhost a try. For one thing, these hosting companies don’t necessarily have the most liberal refund policies you could imagine. And, switching a domain name between different hosts and registrars is a complicated process through which a name may remain “hostage.” Had I realized what was involved, I might have used a domain name to which I have no attachment or actually eschewed the whole domain transition and just try the webhost without a dedicated domain name.

Doh!
Live and learn. I sure do. Loving almost every minute of it.

At any rate, I had a relatively hard time finding my webhost.

I really didn’t need “bells and whistles.” For instance, all the AdSense, shopping cart, and other business-oriented features which seem to be publicized by most webhosting companies have no interest, to me.

I didn’t even care so much about absolute degree of reliability or speed. What I’m to do with this host is fairly basic stuff. The core idea is to use my own host to bypass some limitations. For instance, WordPress.com doesn’t allow for plugins yet most of the WordPress fun has to do with plugins.

I did want an “unlimited” host, as much as possible. Not because expect to have huge resource needs but I just didn’t want to have to monitor bandwidth.

I thought that my needs would be basic enough that any cPanel-enabled webhost would fit. As much as I could see, I needed FTP access to something which had PHP 5 and MySQL 5. I expected to install things myself, without use of the webhost’s scripts but I also thought the host would have some useful scripts. Although I had already registered the domain I wanted to use (through Name.com), I thought it might be useful to have a free domain in the webhosting package. Not that domain names are expensive, it’s more of a matter of convenience in terms of payment or setup.

I ended up with FatCow. But, honestly, I’d probably go with a different host if I were to start over (which I may do with another project).

I paid 88$ for two years of “unlimited” hosting, which is quite reasonable. And, on paper, FatCow has everything I need (and I bunch of things I don’t need). The missing parts aren’t anything major but have to do with minor annoyances. In other words, no real deal-breaker, here. But there’s a few things I wish I had realized before I committed on FatCow with a domain name I actually want to use.

Something which was almost a deal-breaker for me is the fact that FatCow requires payment for any additional subdomain. And these aren’t cheap: the minimum is 5$/month for five subdomains, up to 25$/month for unlimited subdomains! Even at a “regular” price of 88$/year for the basic webhosting plan, the “unlimited subdomains” feature (included in some webhosting plans elsewhere) is more than three times more expensive than the core plan.

As I don’t absolutely need extra subdomains, this is mostly a minor irritant. But it’s one reason I’ll probably be using another webhost for other projects.

Other issues with FatCow are probably not enough to motivate a switch.

For instance, the PHP version installed on FatCow (5.2.1) is a few minor releases behind the one needed by some interesting web applications. No biggie, especially if PHP is updated in a relatively reasonable timeframe. But still makes for a slight frustration.

The MySQL version seems recent enough, but it uses non-standard tools to manage it, which makes for some confusion. Attempting to create some MySQL databases with obvious names (say “wordpress”) fails because the database allegedly exists (even though it doesn’t show up in the MySQL administration). In the same vein, the URL of the MySQL is <username>.fatcowmysql.com instead of localhost as most installers seem to expect. Easy to handle once you realize it, but it makes for some confusion.

In terms of Fantastico-like simplified installation of webapps, FatCow uses InstallCentral, which looks like it might be its own Fantastico replacement. InstallCentral is decent enough as an installation tool and FatCow does provide for some of the most popular blog and CMS platforms. But, in some cases, the application version installed by FatCow is old enough (2005!)  that it requires multiple upgrades to get to a current version. Compared to other installation tools, FatCow’s InstallCentral doesn’t seem really efficient at keeping track of installed and released versions.

Something which is partly a neat feature and partly a potential issue is the way FatCow handles Apache-related security. This isn’t something which is so clear to me, so I might be wrong.

Accounts on both BlueHost and HostGator include a public_html directory where all sorts of things go, especially if they’re related to publicly-accessible content. This directory serves as the website’s root, so one expects content to be available there. The “index.html” or “index.php” file in this directory serves as the website’s frontpage. It’s fairly obvious, but it does require that one would understand a few things about webservers. FatCow doesn’t seem to create a public_html directory in a user’s server space. Or, more accurately, it seems that the root directory (aka ‘/’) is in fact public_html. In this sense, a user doesn’t have to think about which directory to use to share things on the Web. But it also means that some higher-level directories aren’t available. I’ve already run into some issues with this and I’ll probably be looking for a workaround. I’m assuming there’s one. But it’s sometimes easier to use generally-applicable advice than to find a custom solution.

Further, in terms of access control… It seems that webapps typically make use of diverse directories and .htaccess files to manage some forms of access controls. Unix-style file permissions are also involved but the kind of access needed for a web app is somewhat different from the “User/Group/All” of Unix filesystems. AFAICT, FatCow does support those .htaccess files. But it has its own tools for building them. That can be a neat feature, as it makes it easier, for instance, to password-protect some directories. But it could also be the source of some confusion.

There are other issues I have with FatCow, but it’s probably enough for now.

So… On to the installation process… ;-)

It only takes a few minutes and is rather straightforward. This is the most verbose version of that process you could imagine…

Surprised? 8-)

Disclaimer: I’m mostly documenting how I did it and there are some things about which I’m unclear. So it may not work for you. If it doesn’t, I may be able to help but I provide no guarantee that I will. I’m an anthropologist, not a Web development expert.

As always, YMMV.

A few instructions here are specific to FatCow, but the general process is probably valid on other hosts.

I’m presenting things in a sequence which should make sense. I used a slightly different order myself, but I think this one should still work. (If it doesn’t, drop me a comment!)

In these instructions, straight quotes (“”) are used to isolate elements from the rest of the text. They shouldn’t be typed or pasted.

I use “example.com” to refer to the domain on which the installation is done. In my case, it’s the domain name I transfered to FatCow from another registrar but it could probably be done without a dedicated domain (in which case it would be “<username>.fatcow.com” where “<username>” is your FatCow username).

I started with creating a MySQL database for WordPress MU. FatCow does have phpMyAdmin but the default tool in the cPanel is labeled “Manage MySQL.” It’s slightly easier to use for creating new databases than phpMyAdmin because it creates the database and initial user (with confirmed password) in a single, easy-to-understand dialog box.

So I created that new database, user, and password, noting down this information. Since that password appears in clear text at some point and can easily be changed through the same interface, I used one which was easy to remember but wasn’t one I use elsewhere.
Then, I dowloaded the following files to my local machine in order to upload them to my FatCow server space. The upload can be done through either FTP or FatCow’s FileManager. I tend to prefer FTP (via CyberDuck on the Mac or FileZilla on PC). But the FileManager does allow for easy uploads.
(Wish it could be more direct, using the HTTP links directly instead of downloading to upload. But I haven’t found a way to do it through either FTP or the FileManager.)
At any rate, here are the four files I transfered to my FatCow space, using .zip when there’s a choice (the .tar.gz “tarball” versions also work but require a couple of extra steps).
  1. WordPress MU (wordpress-mu-2.9.1.1.zip, in my case)
  2. Buddymatic (buddymatic.0.9.6.3.1.zip, in my case)
  3. EarlyMorning (only one version, it seems)
  4. EarlyMorning-BP (only one version, it seems)

Only the WordPress MU archive is needed to install BuddyPress. The last three files are needed for EarlyMorning, a BuddyPress theme that I found particularly neat. It’s perfectly possible to install BuddyPress without this specific theme. (Although, doing so, you need to install a BuddyPress-compatible theme, if only by moving some folders to make the default theme available, as I explained in point 15 in that previous tutorial.) Buddymatic itself is a theme framework which includes some child themes, so you don’t need to install EarlyMorning. But installing it is easy enough that I’m adding instructions related to that theme.

These files can be uploaded anywhere in my FatCow space. I uploaded them to a kind of test/upload directory, just to make it clear, for me.

A major FatCow idiosyncrasy is its FileManager (actually called “FileManager Beta” in the documentation but showing up as “FileManager” in the cPanel). From my experience with both BlueHost and HostGator (two well-known webhosting companies), I can say that FC’s FileManager is quite limited. One thing it doesn’t do is uncompress archives. So I have to resort to the “Archive Gateway,” which is surprisingly slow and cumbersome.

At any rate, I used that Archive Gateway to uncompress the four files. WordPress µ first (in the root directory or “/”), then both Buddymatic and EarlyMorning in “/wordpress-mu/wp-content/themes” (you can chose the output directory for zip and tar files), and finally EarlyMorning-BP (anywhere, individual files are moved later). To uncompress each file, select it in the dropdown menu (it can be located in any subdirectory, Archive Gateway looks everywhere), add the output directory in the appropriate field in the case of Buddymatic or EarlyMorning, and press “Extract/Uncompress”. Wait to see a message (in green) at the top of the window saying that the file has been uncompressed successfully.

Then, in the FileManager, the contents of the EarlyMorning-BP directory have to be moved to “/wordpress-mu/wp-content/themes/earlymorning”. (Thought they could be uncompressed there directly, but it created an extra folder.) To move those files in the FileManager, I browse to that earlymorning-bp directory, click on the checkbox to select all, click on the “Move” button (fourth from right, marked with a blue folder), and add the output path: /wordpress-mu/wp-content/themes/earlymorning

These files are tweaks to make the EarlyMorning theme work with BuddyPress.

Then, I had to change two files, through the FileManager (it could also be done with an FTP client).

One change is to EarlyMorning’s style.css:

/wordpress-mu/wp-content/themes/earlymorning/style.css

There, “Template: thematic” has to be changed to “Template: buddymatic” (so, “the” should be changed to “buddy”).

That change is needed because the EarlyMorning theme is a child theme of the “Thematic” WordPress parent theme. Buddymatic is a BuddyPress-savvy version of Thematic and this changes the child-parent relation from Thematic to Buddymatic.

The other change is in the Buddymatic “extensions”:

/wordpress-mu/wp-content/themes/buddymatic/library/extensions/buddypress_extensions.php

There, on line 39, “$bp->root_domain” should be changed to “bp_root_domain()”.

This change is needed because of something I’d consider a bug but that a commenter on another blog was kind enough to troubleshoot. Without this modification, the login button in BuddyPress wasn’t working because it was going to the website’s root (example.com/wp-login.php) instead of the WPµ installation (example.com/wordpress-mu/wp-login.php). I was quite happy to find this workaround but I’m not completely clear on the reason it works.

Then, something I did which might not be needed is to rename the “wordpress-mu” directory. Without that change, the BuddyPress installation would sit at “example.com/wordpress-mu,” which seems a bit cryptic for users. In my mind, “example.com/<name>,” where “<name>” is something meaningful like “social” or “community” works well enough for my needs. Because FatCow charges for subdomains, the “<name>.example.com” option would be costly.

(Of course, WPµ and BuddyPress could be installed in the site’s root and the frontpage for “example.com” could be the BuddyPress frontpage. But since I think of BuddyPress as an add-on to a more complete site, it seems better to have it as a level lower in the site’s hierarchy.)

With all of this done, the actual WPµ installation process can begin.

The first thing is to browse to that directory in which WPµ resides, either “example.com/wordpress-mu” or “example.com/<name>” with the “<name>” you chose. You’re then presented with the WordPress µ Installation screen.

Since FatCow charges for subdomains, it’s important to choose the following option: “Sub-directories (like example.com/blog1).” It’s actually by selecting the other option that I realized that FatCow restricted subdomains.

The Database Name, username and password are the ones you created initially with Manage MySQL. If you forgot that password, you can actually change it with that same tool.

An important FatCow-specific point, here, is that “Database Host” should be “<username>.fatcowmysql.com” (where “<username>” is your FatCow username). In my experience, other webhosts use “localhost” and WPµ defaults to that.

You’re asked to give a name to your blog. In a way, though, if you think of BuddyPress as more of a platform than a blogging system, that name should be rather general. As you’re installing “WordPress Multi-User,” you’ll be able to create many blogs with more specific names, if you want. But the name you’re entering here is for BuddyPress as a whole. As with <name> in “example.com/<name>” (instead of “example.com/wordpress-mu”), it’s a matter of personal opinion.

Something I noticed with the EarlyMorning theme is that it’s a good idea to keep the main blog’s name relatively short. I used thirteen characters and it seemed to fit quite well.

Once you’re done filling in this page, WPµ is installed in a flash. You’re then presented with some information about your installation. It’s probably a good idea to note down some of that information, including the full paths to your installation and the administrator’s password.

But the first thing you should do, as soon as you log in with “admin” as username and the password provided, is probably to the change that administrator password. (In fact, it seems that a frequent advice in the WordPress community is to create a new administrator user account, with a different username than “admin,” and delete the “admin” account. Given some security issues with WordPress in the past, it seems like a good piece of advice. But I won’t describe it here. I did do it in my installation and it’s quite easy to do in WPµ.

Then, you should probably enable plugins here:

example.com/<name>/wp-admin/wpmu-options.php#menu

(From what I understand, it might be possible to install BuddyPress without enabling plugins, since you’re logged in as the administrator, but it still makes sense to enable them and it happens to be what I did.)

You can also change a few other options, but these can be set at another point.

One option which is probably useful, is this one:

Allow new registrations Disabled
Enabled. Blogs and user accounts can be created.
Only user account can be created.

Obviously, it’s not necessary. But in the interest of opening up the BuddyPress to the wider world without worrying too much about a proliferation of blogs, it might make sense. You may end up with some fake user accounts, but that shouldn’t be a difficult problem to solve.

Now comes the installation of the BuddyPress plugin itself. You can do so by going here:

example.com/<name>/wp-admin/plugin-install.php

And do a search for “BuddyPress” as a term. The plugin you want was authored by “The BuddyPress Community.” (In my case, version 1.1.3.) Click the “Install” link to bring up the installation dialog, then click “Install Now” to actually install the plugin.

Once the install is done, click the “Activate” link to complete the basic BuddyPress installation.

You now have a working installation of BuddyPress but the BuddyPress-savvy EarlyMorning isn’t enabled. So you need to go to “example.com/<name>/wp-admin/wpmu-themes.php” to enable both Buddymatic and EarlyMorning. You should then go to “example.com/<name>/wp-admin/themes.php” to activate the EarlyMorning theme.

Something which tripped me up because it’s now much easier than before is that forums (provided through bbPress) are now, literally, a one-click install. If you go here:

example.com/<name>/wp-admin/admin.php?page=bb-forums-setup

You can set up a new bbPress install (“Set up a new bbPress installation”) and everything will work wonderfully in terms of having forums fully integrated in BuddyPress. It’s so seamless that I wasn’t completely sure it had worked.

Besides this, I’d advise that you set up a few widgets for the BuddyPress frontpage. You do so through an easy-to-use drag-and-drop interface here:

example.com/<name>/wp-admin/widgets.php

I especially advise you to add the Twitter RSS widget because it seems to me to fit right in. If I’m not mistaken, the EarlyMorning theme contains specific elements to make this widget look good.

After that, you can just have fun with your new BuddyPress installation. The first thing I did was to register a new user. To do so, I logged out of my admin account,  and clicked on the Sign Up button. Since I “allow new registrations,” it’s a very simple process. In fact, this is one place where I think that BuddyPress shines. Something I didn’t explain is that you can add a series of fields for that registration and the user profile which goes with it.

The whole process really shouldn’t take very long. In fact, the longest parts have probably to do with waiting for Archive Gateway.

The rest is “merely” to get people involved in your BuddyPress installation. It can happen relatively easily, if you already have a group of people trying to do things together online. But it can be much more complicated than any software installation process… ;-)

Development and Quality: Reply to Agile Diary

Former WiZiQ product manager Vikrama Dhiman responded to one of my tweets with a full-blown blogpost, thereby giving support to Matt Mullenweg‘s point that microblogging goes hand-in-hand with “macroblogging.”

My tweet:

enjoys draft æsthetics yet wishes more developers would release stable products. / adopte certains produits trop rapidement.

Vikrama’s post:

Good Enough Software Does Not Mean Bad Software « Agile Diary, Agile Introduction, Agile Implementation.

My reply:

“To an engineer, good enough means perfect. With an artist, there’s no such thing as perfect.” (Alexander Calder)

Thanks a lot for your kind comments. I’m very happy that my tweet (and status update) triggered this.

A bit of context for my tweet (actually, a post from Ping.fm, meant as a status update, thereby giving support in favour of conscious duplication, «n’en déplaise aux partisans de l’action contre la duplication».)

I’ve been thinking about what I call the “draft æsthetics.” In fact, I did a podcast episode about it. My description of that episode was:

Sometimes, there is such a thing as “Good Enough.”

Though I didn’t emphasize the “sometimes” part in that podcast episode, it was an important part of what I wanted to say. In fact, my intention wasn’t to defend draft æsthetics but to note that there seems to be a tendency toward this æsthetic mode. I do situate myself within that mode in many things I do, but it really doesn’t mean that this mode should be the exclusive one used in any context.

That aforequoted tweet was thus a response to my podcast episode on draft æsthetics. “Yes, ‘good enough’ may work, sometimes. But it needs not be applied in all cases.”

As I often get into convoluted discussions with people who seem to think that I condone or defend a position because I take it for myself, the main thing I’d say there is that I’m not only a relativist but I cherish nuance. In other words, my tweet was a way to qualify the core statement I was talking about in my podcast episode (that “good enough” exists, at times). And that statement isn’t necessarily my own. I notice a pattern by which this statement seems to be held as accurate by people. I share that opinion, but it’s not a strongly held belief of mine.

Of course, I digress…

So, the tweet which motivated Vikrama had to do with my approach to “good enough.” In this case, I tend to think about writing but in view of Eric S. Raymond’s approach to “Release Early, Release Often” (RERO). So there is a connection to software development and geek culture. But I think of “good enough” in a broader sense.

Disclaimer: I am not a coder.

The Calder quote remained in my head, after it was mentioned by a colleague who had read it in a local newspaper. One reason it struck me is that I spend some time thinking about artists and engineers, especially in social terms. I spend some time hanging out with engineers but I tend to be more on the “artist” side of what I perceive to be an axis of attitudes found in some social contexts. I do get a fair deal of flack for some of my comments on this characterization and it should be clear that it isn’t meant to imply any evaluation of individuals. But, as a model, the artist and engineer distinction seems to work, for me. In a way, it seems more useful than the distinction between science and art.

An engineer friend with whom I discussed this kind of distinction was quick to point out that, to him, there’s no such thing as “good enough.” He was also quick to point out that engineers can be creative and so on. But the point isn’t to exclude engineers from artistic endeavours. It’s to describe differences in modes of thought, ways of knowing, approaches to reality. And the way these are perceived socially. We could do a simple exercise with terms like “troubleshooting” and “emotional” to be assigned to the two broad categories of “engineer” and “artist.” Chances are that clear patterns would emerge. Of course, many concepts are as important to both sides (“intelligence,” “innovation”…) and they may also be telling. But dichotomies have heuristic value.

Now, to go back to software development, the focus in Vikrama’s Agile Diary post…

What pushed me to post my status update and tweet is in fact related to software development. Contrary to what Vikrama presumes, it wasn’t about a Web application. And it wasn’t even about a single thing. But it did have to do with firmware development and with software documentation.

The first case is that of my Fonera 2.0n router. Bought it in early November and I wasn’t able to connect to its private signal using my iPod touch. I could connect to the router using the public signal, but that required frequent authentication, as annoying as with ISF. Since my iPod touch is my main WiFi device, this issue made my Fonera 2.0n experience rather frustrating.

Of course, I’ve been contacting Fon‘s tech support. As is often the case, that experience was itself quite frustrating. I was told to reset my touch’s network settings which forced me to reauthenticate my touch on a number of networks I access regularly and only solved the problem temporarily. The same tech support person (or, at least, somebody using the same name) had me repeat the same description several times in the same email message. Perhaps unsurprisingly, I was also told to use third-party software which had nothing to do with my issue. All in all, your typical tech support experience.

But my tweet wasn’t really about tech support. It was about the product. Thougb I find the overall concept behind the Fonera 2.0n router very interesting, its implementation seems to me to be lacking. In fact, it reminds me of several FLOSS development projects that I’ve been observing and, to an extent, benefitting from.

This is rapidly transforming into a rant I’ve had in my “to blog” list for a while about “thinking outside the geek box.” I’ll try to resist the temptation, for now. But I can mention a blog thread which has been on my mind, in terms of this issue.

Firefox 3 is Still a Memory Hog — The NeoSmart Files.

The blogpost refers to a situation in which, according to at least some users (including the blogpost’s author), Firefox uses up more memory than it should and becomes difficult to use. The thread has several comments providing support to statements about the relatively poor performance of Firefox on people’s systems, but it also has “contributions” from an obvious troll, who keeps assigning the problem on the users’ side.

The thing about this is that it’s representative of a tricky issue in the geek world, whereby developers and users are perceived as belonging to two sides of a type of “class struggle.” Within the geek niche, users are often dismissed as “lusers.” Tech support humour includes condescending jokes about “code 6″: “the problem is 6″ from the screen.” The aforementioned Eric S. Raymond wrote a rather popular guide to asking questions in geek circles which seems surprisingly unaware of social and cultural issues, especially from someone with an anthropological background. Following that guide, one should switch their mind to that of a very effective problem-solver (i.e., the engineer frame) to ask questions “the smart way.” Not only is the onus on users, but any failure to comply with these rules may be met with this air of intellectual superiority encoded in that guide. IOW, “Troubleshoot now, ask questions later.”

Of course, many users are “guilty” of all sorts of “crimes” having to do with not reading the documentation which comes with the product or with simply not thinking about the issue with sufficient depth before contacting tech support. And as the majority of the population is on the “user” side, the situation can be described as both a form of marginalization (geek culture comes from “nerd” labels) and a matter of elitism (geek culture as self-absorbed).

This does have something to do with my Fonera 2.0n. With it, I was caught in this dynamic whereby I had to switch to the “engineer frame” in order to solve my problem. I eventually did solve my Fonera authentication problem, using a workaround mentioned in a forum post about another issue (free registration required). Turns out, the “release candidate” version of my Fonera’s firmware does solve the issue. Of course, this new firmware may cause other forms of instability and installing it required a bit of digging. But it eventually worked.

The point is that, as released, the Fonera 2.0n router is a geek toy. It’s unpolished in many ways. It’s full of promise in terms of what it may make possible, but it failed to deliver in terms of what a router should do (route a signal). In this case, I don’t consider it to be a finished product. It’s not necessarily “unstable” in the strict sense that a software engineer might use the term. In fact, I hesitated between different terms to use instead of “stable,” in that tweet, and I’m not that happy with my final choice. The Fonera 2.0n isn’t unstable. But it’s akin to an alpha version released as a finished product. That’s something we see a lot of, these days.

The main other case which prompted me to send that tweet is “CivRev for iPhone,” a game that I’ve been playing on my iPod touch.

I’ve played with different games in the Civ franchise and I even used the FLOSS version on occasion. Not only is “Civilization” a geek classic, but it does connect with some anthropological issues (usually in a problematic view: Civ’s worldview lacks anthro’s insight). And it’s the kind of game that I can easily play while listening to podcasts (I subscribe to a number of th0se).

What’s wrong with that game? Actually, not much. I can’t even say that it’s unstable, unlike some other items in the App Store. But there’s a few things which aren’t optimal in terms of documentation. Not that it’s difficult to figure out how the game works. But the game is complex enough that some documentation is quite useful. Especially since it does change between one version of the game and another. Unfortunately, the online manual isn’t particularly helpful. Oh, sure, it probably contains all the information required. But it’s not available offline, isn’t optimized for the device it’s supposed to be used with, doesn’t contain proper links between sections, isn’t directly searchable, and isn’t particularly well-written. Not to mention that it seems to only be available in English even though the game itself is available in multiple languages (I play it in French).

Nothing tragic, of course. But coupled with my Fonera experience, it contributed to both a slight sense of frustration and this whole reflection about unfinished products.

Sure, it’s not much. But it’s “good enough” to get me started.

Student Engagement: The Gym Analogy (Updated: Credited)

Heard about this recently and probably heard it before. It’s striking me more now than before, for some reason.

[Update: I heard about this analogy through Peace Studies scholar Laurie Lamoureux Scholes (part-time faculty and doctoral candidate in Religion at Concordia University). Lamoureux Scholes's colleague John Bilodeau is the intermediate source for this analogy and may have seen it on the RateYourStudents blog. There's nothing like giving credit where credit is due and I'm enough of a folklorist to care about transmission. Besides, the original RYS gym-themed blog entry can be quite useful.]

Those of us who teach at universities and colleges (especially in North America and especially among English-speakers, I would guess) have encountered this “sense of entitlement” which has such deep implications in the ways some students perceive learning. Some students feel and say that, since they (or their parents) pay large sums for their post-secondary education, they are entitled to a “special treatment” which often involves the idea of getting high grades with little effort.

In my experience, this sense of entitlement correlates positively with the prestige of the institution. Part of this has to do with tuition fees required by those universities and colleges. But there’s also the notion that, since they were admitted to a program at such a selective school, they must be the “cream of the crop” and therefore should be treated with deference. Similarly, “traditional students” (18-25) are in my experience more likely to display a sense of entitlement than “non-traditional students” (older than 25) who have very specific reasons to attend a college or university.

The main statements used by students in relation to their sense of entitlement usually have some connection to tuition fees perceived to transform teaching into a hired service, regardless of other factors. “My parents pay a lot of money for your salary so I’m allowed to get what I want.” (Of course, those students may not realize that a tiny fraction of tuition fees actually goes in the pocket of the instructor, but that’s another story.) In some cases, the parents can easily afford that amount paid in tuitions but the statements are the same. In other cases, the statements come from the notion that parents have “worked very hard to put me in school.” The results, in terms of entitlement, are quite similar.

Simply put, those students who feel a strong sense of entitlement tend to “be there for the degree” while most other students are “there to learn.”

Personally, I tend to assume students want to learn and I value student engagement in learning processes very highly. As a result, I often have a harder time working with students with a sense of entitlement. I can adapt myself to work with them if I assess their positions early on (preferably, before the beginning of a semester) but it requires a good deal of effort for me to teach in a context in which the sense of entitlement is “endemic.” In other words, “I can handle a few entitled students” if I know in advance what to expect but I find it demotivating to teach a group of students who “are only there for the degree.”

A large part of my own position has to do with the types of courses I have been teaching (anthropology, folkloristics, and sociology) and my teaching philosophy also “gets in the way.” My main goal is a constructivist one: create an appropriate environment, with students, in which learning can happen efficiently. I’m rarely (if ever) trying to “cram ideas into students’ heads,” though I do understand the value of that type of teaching in some circumstances. I occasionally try to train students for a task but my courses have rarely been meant to be vocational in that sense (I could certainly do vocational training, in which case I would adapt my methods).

So, the gym analogy. At this point, I find it’s quite fitting as an answer to the “my parents paid for this course so I should get a high grade.”

Tuition fees are similar to gym membership: regardless of the amount you pay, you can only expect results if you make the effort.

Simple and effective.

Of course, no analogy is perfect. I think the “effort” emphasis is more fitting in physical training than in intellectual and conceptual training. But, thankfully, the analogy does not imply that students should “get grades for effort” more than athletes assume effort is sufficient to improve their physical skills.

One thing I like about this analogy is that it can easily resonate with a large category of students who are, in fact, the “gym type.” Sounds irrelevant but the analogy is precisely the type of thing which might stick in the head of those students who care about physical training (even if they react negatively at first) and many “entitled students” have a near Greek/German attitude toward their bodies. In fact, some of the students with the strongest sense of entitlement are high-profile athletes: some of them sound like they expect to have minions to take exams for them!

An important advantage of the gym analogy, in a North American context, is that it focuses on individual responsibility. While not always selfish, the sense of entitlement is self-centred by definition. Given the North American tendency toward independence training and a strong focus on individual achievement in North American academic institutions, the “individualist” character of the sense of entitlement shouldn’t surprise anyone. In fact, those “entitled students” are unlikely to respond very positively to notions of solidarity, group learning, or even “team effort.”

Beyond individual responsibility, the gym analogy can help emphasise individual goals, especially in comparison to team sports. In North America, team sports play a very significant role in popular culture and the distinction between a gym and a sports team can resonate in a large conceptual field. The gym is the locale for individual achievement while the sports team (which could be the basis of another analogy) is focused on group achievement.

My simplest definition of a team is as “a task-oriented group.” Some models of group development (especially Tuckman’s catchy “Forming, Storming, Norming, Performing“) are best suited in relation to teams. Task-based groups connect directly with the Calvinistic ideology of progress (in a Weberian perspective), but they also embed a “community-building” notion which is often absent from the “social Darwinism” of some capital-driven discourse. In other words, a team sports analogy could have some of the same advantages as the gym analogy (such as a sense of active engagement) with the added benefit of bringing into focus the social aspects of learning.

Teamwork skills are highly valued in the North American workplace. In learning contexts, “teamwork” often takes a buzzword quality. The implicit notion seems to be that the natural tendency for individuals to work against everybody else but that teams, as unnatural as they may seem, are necessary for the survival of broad institutions (such as the typical workplace). In other words, “learning how to work well in teams” sounds like a struggle against “human nature.” This implicit perspective relates to the emphasis on “individual achievement” and “independence training” represented effectively in the gym analogy.

So, to come back to that gym analogy…

In a gym, everyone is expected to set her or his own goals, often with the advice of a trainer. The notion is that this selection of goals is completely free of outside influence save for “natural” goals related to general health. In this context, losing weight is an obvious goal (the correlation between body mass and health being taken as a given) but it is still chosen by the individual. “You can only succeed if you set yourself to succeed” seems to be a common way to put it. Since this conception is “inscribed in the mind” of some students, it may be a convenient tool to emphasise learning strategies: “you can only learn if you set yourself to learn.” Sounds overly simple, but it may well work. Especially if we move beyond the idea some students have that they’re so “smart” that they “don’t need to learn.”

What it can imply in terms of teaching is quite interesting. An instructor takes on the role of a personal trainer. Like a sports team’s coach, a trainer is “listened to” and “obeyed.” There might be a notion of hierarchy involved (at least in terms of skills: the trainer needs to impress), but the main notion is that of division of labour. Personally, I could readily see myself taking on the “personal trainer” role in a learning context, despite the disadvantages of customer-based approaches to learning. One benefit of the trainer role is that what students (or their parents) pay for is a service, not “learning as a commodity.”

Much of this reminds me of Alex Golub’s blogpost on “Factory, Lab, Guild, Studio” notions to be used in describing academic departments. Using Golub’s blogpost as inspiration, I blogged about departments, Samba schools, and the Medici Effect. In the meantime, my understanding of learning has deepened but still follows similar lines. And I still love the “Samba school” concept. I can now add the gym and the sports teams to my analogical apparatus to use in describing my teaching to students or anybody else.

Hopefully, any of these analogies can be used to help students engage themselves in the learning process.

That’s all I can wish for.