Categories
Diversity Weblogging

Exclusionary language

Several webloggers have been focusing on the use of language in weblogs and how this can form an exclusionary barrier to women (see Body and Souldes femmes, and Feministe (as well as here)).

I remember when I brought this up as an issue with Doc Searls and got slapped down rather royally. It’s good to see the issue being raised by others, especially by people as eloquent and resolute as these.

Lately though I find myself less concerned about the use of overt terms such as ‘bitch’ and ‘babe’, or the use of phrases such as ‘real men’. I have found that, for the most part, when these are used within political writings the level of discourse is usually rather primitive and the writing rather dull, so I’m not necessarily offended by being excluded.

Atrios may say that he’s just directing his writing to the opponent using the opponent’s language:

If I say Bush “isn’t a real man,” I’m speaking the language of him and his supporters. I don’t think it’s insulting, but they do. It’s meant to be doubly mocking – hit them where it hurts and mock them for being so stupid as to be hurt by it.

All he’s doing though is coming across as a man who has run out of good arguments and has to resort to verbal pissing. No, I just don’t feel excluded by not being a part of these conversations. The danger is more to the writer then me–they may eventually get around to saying something worthwhile, but by that time lack the audience to hear it.

It is the subtle language of exclusion that worries me more. It is the language of Hemingway and Kerouac, and a society that praises such coming from men, but would condemn the same from a woman.

It is the secret handshake, the spirit of mano a mano; it is the weight placed on the origination, not the words themselves; that and not being told that one must press, ever so slightly, one’s finger on the scale to get full worth, or one’s side ends up light.

It is the language of Kierkegaard, who wrote:

It is the man’s function to be absolute, to act absolutely, to express the absolute; the woman consists in the relational. Between two such different entities no real interaction can take place. This misrelation is precisely the joke, and the joke entered the world with woman.

It is the same Kierkegaard who, with devestating skill, captures the essence of the language of exclusion:

History throughout the ages shows that woman’s great abilities have at least in part been recognized. Hardly was man created before we find Eve already as audience at the snake’s philosophical lectures, and we see that she mastered them with such ease that at once she could utilize the results of the same in her domestic practice. […]

As a speaker, woman has so great a talent that she made history with her own special line: the so-called bed-hangings sermons, curtain lectures, etc., and *Xanthippe is still remembered as a pattern of feminine eloquence and as founder of a school that has lasted to this very day, whereas Socrates’ school has long since disappeared…And when the rabbis forbad [women] to put in their word, it was solely because they were afraid that the women would outshine them or expose their folly. In the Middle Ages, the countless witch trials sufficiently showed the deep insight woman had into the secrets of nature.

Bloody marvelous. One almost doesn’t mind being so completely skewered when the act is accomplished by such a rapier wit. Phrases such as ‘’pussy boy’ and words such as ‘bitch’ seem crude and uninspired by comparison.

*Xanthippe was Socrates wife, and seen by him and his friends to be a shrew. He is reported to have said of her, I wish to deal with human beings, to associate with man in general; hence my choice of wife. I know full well, if I can tolerate her spirit, I can with ease attach myself to every human being else.

(Recommended reading on Kierkegaard and feminism is the paper Kierkegaard and Feminism: A Paradoxical Friendship. More on Xanthippe here, and more on the history of misogyny in literature here.)

Categories
Technology Weblogging

Some Gratuitous Weblog Software Writing

I’m starting to get a pretty good handle on what WordPress 1.3 will be offering, both from the code and forum discussions. I also found a link in the support forum for a WordPress 1.3 release wiki, which details the individual changes.

(From the wiki software used, I wonder if the WordPress documentation wiki is being moved to MediaWiki – the same wiki software used for Wikipedia. We can only hope.)

I’ve discovered some of these changes with the work I did for Doug, am doing for Steve right this moment (you can see the actual transform taking place here, as I migrate the HTML table layout to pure CSS), Tim (if he doesn’t lose his heart to Tinderbox), and might be doing for Loren (if he has a mind for this direction, now that he knows I’m not disappearing at the end of the month).

One big change, and one I adore, is pagination. With this, search results and archives are now paginated to list twenty or so entries at a time, with navigation automatially handled to go back and forth in the list. If you’ve ever searched my site on say, ‘flower’, my but you’ll kill both your and my bandwidth. Pagination will eliminate this problem.

The developers are also providing a Dashboard, I think for an overall linking mechanism to the site and the features, but it’s still under development–right now there’s nothing in the page. and you’re redirected to new posts. They’ve also packaging themes into their own subdirectory, and you can install and switch between themes just by coping the files into the directory and clicking a button in the administration pages. This will be good if you like to play around with your site a lot.

Architecturally, for the tweakers, the individual global values that you used to access in code previously have been added to a general object, but the old global values are maintained for backwards compatibility, at least for one release. The organization of the pages has changed, with a new header and footer page, which should help make the pages a little cleaner to work with. Recently when I talked about keeping your weblog tool independent, I mentioned about a split between the content of the page before the posts, the post listings, and the content after the posts. This is mirrored in the WP page split between wp-header.php, index.php, and wp-footer.php. I like it.

There’s also been function changes, and I’m still exploring what these are. From what I read, existing functions will be supported in a deprecated state for at least one software release. Good for those who have tweaked their pages.

Multiple blog support isn’t there, but an interesting announcement was made last week for what sounds like might be a parallel branch of development called WordPress MU. This isn’t a ‘fork’ in the code (i.e. a new and separate development based on original code) as much as it is a ‘wrapper’ around WordPress, from what I’ve read. The announcement about it says that it provides both Smarty template support and multi-user/multi-weblog support–in hosted environments.

The multi-user/multi-weblog capability should make WordPress more attractive for those who need a classroom solution to weblog hosting – a tool that can be used to create many weblogs for many different people, but administered from one spot.

As for the use of the Smarty template system, I am curious if this can be dropped into a regular installation of WordPress, for those who would prefer Smarty over the embedded function calls. If so, this would make a nice option to those who are uncomfortable messing with PHP code directly. Where before a person did the following:

<?php the_date(‘’,'<h2>’,'</h2>’); ?>

They would, instead, use a Smarty template tag such as the following that would resolve to the function call:

<h2>{$smarty.now|date_format:”%Y-%m-%d”}</h2>

 

The sidebar is also split off into a separate file. This does concern me a bit from a design perspective as this tends to enforce a specific type of weblog look, the two column look.

As an aside from a discussion of WordPress 1.3, when Movable Type announced it was providing a dynamic PHP-based wrapper around Movable Type, I thought that the company would take core bits WordPress and modify these to point to their own database so that WordPress plugins and templates would work with the Movable Type database. With this, though users would have lost the Perl plugins for MT, they would have gained the PHP-based WordPress plugins. At least, those plugins that deal with parameterized data, only.

This wouldn’t be all that complicated either. Smarty could have been used to transform tags for the traditional MT users; while others could have used the WordPress embedded function calls (and themes) if they wished. Licensing wouldn’t have to be an issue because MT could continue to license the MT ‘engine’ with associate Perl code, and GPL’d the code for the PHP wrapper. They would gain friends from the open source community, while the supported, proprietary, corporate Perl code would still be there for corporate types who get nervous around the word ‘open’.

And wouldn’t this have been an interesting way to mix proprietary and GPL code?

Categories
Weblogging

This is wrong on so many levels

Recovered from the Wayback Machine.

As Matt Mullenweg said recently in comments about another post, this is wrong on so many levels.

Both Biz Stone and Robert Scoble have a ‘How to Win the Blogging Game’ entries, except their posts are titled, Promoting your Blog and How will your blog get discovered. There is much in what both write that I can agree with; but there is an underlying implication with both writings that the act of having our participation discovered is more important than the act of participating, itself.

Wrong wrong wrong wrong wrong.

I do agree that webloggers can help themselves be discovered by pinging the recently updated services such as Pingomatic or weblogs.com or Technorati. Unless you’re writing for a closed audience, and aren’t interested in new readers, you’re going to want to ping when you post. Same can be said for making your site search engine friendly, though many of us are taking a closer look at the viability of this.

I also agree that comments are a wonderful calling card for other webloggers. I think that almost all of the people I read now I met at one time or another through links in other weblogs or through comments: in my weblog or other weblogs. I still think this, and links to specific posts, are great ways of connecting with new people.

I also see the benefit of putting your weblog on your business cards or email signature, or attaching it as part of your profile – if you want the extra visits (not everyone does). And of course, providing interesting material is always helpful if you want readers.

But Scoble talks about linking to other weblogs just to get them to notice you, and that reminds me of the kids we all knew back when we were young who would bring candy in so that the other classmates would be friends with them. And I also think this is much of a reason why many of the top webloggers are in the A-lists – because they have buzz and people want in on that buzz, not necessarily because anyone is that interested in what the person is saying.

He follows this with a suggestion to ‘hang out with’ the bloggers you want to connect with, such as Glenn Reynolds, or the gang that ended up at FooCamp. Leave aside that geographically, webloggers live in cities other than Boston, San Francisco, LA, Seattle, New York, London, and Tennessee, all this will do is give even more ego gratification to those in the upper echelons of weblogging. Bluntly, he’s advocating groupie behavior.

Wanting to meet people who you’ve come to know over time on weblogs is not only natural and healthy, it can be an exciting prospect–think about meeting people for the first time when you’ve read their writing for years.. And wanting to spend time with someone you admire or are interested in is a great way to grow personally and intellectually; isn’t this the main reason why we weblog? But wanting to ‘hang out’ with someone specifically to get your weblog noticed? Sad stuff. Very sad stuff.

I am more ambivalent about Scoble’s suggestion to do things for people and they’ll remember you. I happen to think it can be very satisfying doing things for others, but to do so primarily because you want to get more buzz for yourself or your weblog–well, all I can say is there is a fine line between whoring and marketing. I don’t think there’s anything wrong with marketing your site, your abilities, or something you believe in; I don’t do it enough, myself. But marketing should be peripheral when you’re ‘doing things for others’.

I remember conferences and going to this bash or that put on by a company. This was expected and accepted as such – none of us believed that the invitations and gifts were personal. But to do something, personally, for others, personally, purely for marketing purposes can lead to mixed messages and confusion about the reasons you’re doing what you’re doing. There’s few things I can stand less than a person who is acclaimed a ‘hero’ for helping others, when the only reason they did their ‘good deed’ is to add to their own status.

Someone bringing martinis for a group of people in a biz-tech environment can be seen as indulging in friendly marketing without any confusion about motives. But taking a weblogger out to lunch just to chat, or exchanging books or gifts, or even dating a person–that’s personal. If you do this just because you’re trying to get hits and buzz, that’s cheap. And pretty sleazy too.

As for pitching your site or a post to others–that’s a tough call. Sometimes we want something we believe in to have a wider audience than we have ourselves, and I can’t help thinking this can be a good thing. But pitching something just to get links: see above.

Biz Stone had some of the same suggestions as Scoble, but he also gets into type of weblog posts and following memes.

Like Scoble’s suggestion on doing things for others, I am ambivalent about Stone’s suggestion to follow the memes that circulate throughout weblogging. On the one hand, they can be a lot of fun and a great way to connect with others. He mentioned the Friday Five, but I’ll also add the Carnival of the Cats, which has been nothing but fun when I’ve participated with it recently. The Ecotone projects that people participate in also seems to provide a very positive kernel to some very interesting writing, as well as a way of finding great new folks to read.

But in each of these cases, the people participating are doing so based less on hits and more on interest. The interest is in the topic of the meme, not the fact that it is a meme. I think that someone participating just to get noticed is going to come across phony – as if they’ve studied weblogging as a genre and are now applying the ‘Ten rules to become an A-Lister in 6 months or less’.

As for style of weblog writing, Stone wrote:

Keep your posts and paragraphs short. Note the brevity of the aforementioned Kottke post. People will come back daily to read your fresh new work but spare them the one thousand word diatribes. Strive for succinct posts that pump pertinent new information into the blogosphere and move on. Keep it short and sweet so visitors can pop in, read up, and click on. Think of you[r] blog as a cumulative effect. This doesn’t mean you should never practice some long form writing now and then, it’s just something to keep in mind.

This is wrong on oh so many levels. (I love this phrase, and I’m not even sucking up to Matt. Honest.)

You, who ever you are, do what you want; but if you’re only here to be the next Kottke, or Scoble, or Stone, quit now. You’ll never get to their position aping their behavior or their rules; you’ll just end up miserable because you’re not writing the way you want, and for the joy of the act. Fuck me, too many sheep in this environment. How can your ‘ba-ah-ahh’ be heard when you’re surrounding by people bleating the same thing?

Someone let in the wolves – it’s feeding time.

Of course, you have to take what I write with a grain of salt. Domestic, refined, mined salt. I’m not as popular as Robert Scoble or Biz Stone, so one can assume that their suggestions work, while my ‘long form diatribe’ won’t do you a bit of good if all you want is to be known.

Or as a friend (someone who I actually like and respect as a person, regardless of how many hits he could send me) says: do what you want, anyway, because we’re all just making this stuff up.

Use of surnames does not imply lack of friendly feeling towards those who have been referenced in this weblog entry. Just a quirkly thing I feel like doing today.

Categories
Weblogging

Moult’s Protea and Golby

hat’s a heck of a title, isn’t it? Moult’s Protea and Golby. It sounds like the name of something on four legs that wins a lot of shows.

(Will I be forgiven this? Hard to say…)

Allan Moult has a new edition of Leatherwood Online out, and he shares his own Protea photo album. This is an interesting and lovely flower, and Allan’s photos are first rate. I’d steal one to display, but I promised to ease up on bandwidth for the nonce.

(Besides – Allan’s work will show mine up.)

There’s also a story about a sea kayaking trip to Finder’s Island, featuring an excellent animated panoramic slide show; and a illustrated article on butterflies using drawings rather than photos, which makes a lovely change. Definitely worth a visit.

Turning now to Mr. Golby, if you’ve accessed his site recently, you may have noticed that he has his own domain name now, mikegolby.info. We’re still working through some issues with archive files, old permalinks, and .htaccess redirects, but if you link Mike in Bloglines, an aggregator, or your blogroll, you’ll want to update the URL.

New address, but still the same passion, excellent writing, and Dylan.

Categories
Weblogging

WP to MT: Template engine or function call

When exploring the differences between the dynamic version of Movable Type and WordPress, it’s easy to get caught up in the one using a template engine and tags and the other using function calls. Those who support tags will say, and rightfully, that actual PHP code in a template can be intimidating to non-techs; but those who support function calls say, and rightfully, that template engines add an extra layer of processing to the application.

A template engine parses the template and generates an intermediate page that replaces tags with actual function calls. The reasoning behind doing this is to separate the presentation from the processing, in this case separate the PHP processing from the (X)HTML. Movable Type uses one of the more well known engines, the Smarty template engine, to handle the tag parsing in its new dynamic architecture.

However, a criticism of Smarty is that it doesn’t separate the processing enough, and can add it’s own level of complexity, as demonstrated in this small example from the Smarty site:

<html>
<head>
<title>User Info</title>
</head>
<body>

User Information:

Name: {$name|capitalize}<br>
Addr: {$address|escape}<br>
Date: {$smarty.now|date_format:”%Y-%m-%d”}<br>

</body>
</html>

But then, all template tag systems have some level of complexity if they’re going to be any use. At least for experienced MT users, they don’t have to learn another set of tags: Six Apart’s developers have extended the Smarty class to ‘translate’ so to speak, between MT’s tags, and Smarty’s. All combined, when you put something like this in a MT template such as Main Index:

<MTEntries lastn=”10″>
<div class=”sidecomments”><a href=”<$MTEntryPermalink$>”><$MTEntryTitle$></a></div>
</MTEntries>

After transformational magic, you get:

<?php $this->_tag_stack[] = array(’MTEntries’, array(’lastn’ => ‘10′)); smarty_block_MTEntries($this->_tag_stack[count($this->_tag_stack)-1][1], null, $this, $_block_repeat=true);while ($_block_repeat) { ob_start(); ?>
<div class=”sidecomments”><a href=”<?php echo smarty_function_MTEntryPermalink(array(), $this);?>
“><?php echo smarty_function_MTEntryTitle(array(), $this);?>
</a></div>
<?php $this->_block_content = ob_get_contents(); ob_end_clean(); echo smarty_block_MTEntries($this->_tag_stack[count($this->_tag_stack)-1][1], $this->_block_content, $this, $_block_repeat=false); } array_pop($this->_tag_stack); ?>

Looks like templates engines make the code a whole lot simpler. But then, look at what you use with WordPress to get the same result:

<?php get_archives(’postbypost’, 10,’other’, ‘<div class=”sidecomments”>’, ‘</div>’, 0) ?>

One of the challenges with a template engine is that you have to account for variations in what people want. This usually means having to build template starting and ending blocks, modifiers, and so on so you can get somewhat complex template tag use. However, with straight function use, you just pass all of this user defined options in as parameters.

As you can see, straight function calls can be simple, and template tags can be simple: it’s how each are integrated into the page that makes the difference. What I think is more important isn’t which approach is used, but how clean the end result is, and how extensible is the underlying architecture. And in these, both Movable Type and WordPress excel, especially with some of the new design considerations with WordPress 1.3. and the intermediate step taken to handle template tag differences between MT and Smarty in the new MT 3.1.

(Weird naming synchronocity, eh?)

(I’ll cover other ‘clean’ tools when I get into porting the Movable Type weblogs.)

As for extensibility, both Movable Type and WordPress are known for their plugin environments, though there has been some criticism of MT’s new PHP plugin environment–existing Perl plugins don’t work with it. However, with Six Apart’s use of the ezSQL database library in addition to Smarty, WordPress plugin authors may now have a new venue for their efforts.

For instance, I have a plugin in WordPress that provides the recent trackbacks, pingbacks, and comments, in one list in my sidebar. I also provide the URL for those who comment, which is why I don’t use the packaged comment functions.

WordPress uses ezSQL for database access, a simplified database API. So does MT for its PHP plugins. Because of the similarity, I could take much of my existing WP plugin and just port it over to MT. The code for the plugin I ported to MT can be downloaded here.

Key code differences, aside from the database structures that set the MT plugin apart from the one in WordPress is the function name, how the database connection is accessed, and the generated text output. Smarty requires that all objects have file names that reflect their nature, such as ‘function.’ for functions, and ‘modifier.’ for modifiers, and so on. The next part of the name is the actual tag element name that’s used in the template, using MT naming conventions, starting with “MT_”. The tag in this case is MTCustomComments. Since the plugin is a function, the file is called “function.MTCustomComments.php”, and the function is named smarty_function_MTCustomComments, the ’smarty’ also being a requirement for the function name within the template system.

Two parameters are passed, ‘$args’ representing any arguments passed to the function, and a reference to the Smarty context, ‘&$ctx’. Looking in the code, you can see how the database connection, db, is accessed through the Movable Type object (that buffer between Smarty and MT), that’s part of the Smarty Context:

$lines = $ctx->mt->db->get_results($sql);

One other difference is that rather than print out the result directly in the function, as I do in WP, I return a string, which is then output automatically within the template. I could do the same with the WP plugin if I was seeking to minimize differences between the environments.

To install the MT plugin, I created a sub-directory called ‘plugin’ in the PHP directory, loaded the new function file into it, and it’s ready to use. In the Main Index page, I then invoke the plugin as follows:

<$MTCustomComments$>

Any PHP function, Smarty Plugin, and even WordPress plugin could be adapted quite easily to the new Six Apart dynamic environment. And this also means that a Six Apart plugin could be easily adapted for use in WordPress. In fact, it wouldn’t take much to create tool-specific wrappers to wrap around functions so they can operate in both environments.

Not just MT and WordPress: let’s not forget other PHP systems with plugin environments, too.

The possibilities are intriguing.