WebTech Category Archive

Well said, Tim

Tim Berners-Lee, in a public mailing-list discussion about a very specific technical thing, elucidates something that so many people forget...


Your grandfather would perhaps have suggested that an attempt to define the meaning of common words, as the Académie Française is set up to do, were a 'vain task'. Many would agree. But given that his water came to him through pipes connected, possibly, by half-inch British Standard pipe-thread connections, and he rode on rails set a certain distance apart by some committee, and his TV came for better or worse in 525 or 625 lines as decided by other committees, he may have respected that the creation of standards is a very valuable function, and an essential to progress.

When people meet to define W3C specifications they are not doing it out of vanity. They are performing coordinated effort of the parties who would like to be able to use the symbol. They are, in general, users and representatives of users of the symbol. They come together to allow those who follow them to use it. They often work long hours, receiving inadequate recognition for either products shipped or papers published, the conventional metrics of performance, so I would not call it vanity.

Note also that W3C (IETF, etc) specs have achieved a lot, made a lot of interoperable systems, and formed with each layer a foundation for building new layers. So I would not say that the work as been in vain either.

Tim

I would add that the W3C is a totally open and participatory organization. Any one of us, you included, can and should participate.

Aside; I really feel like I am watching re-enactments of Medieval society and it's wars. The Internet is rife with feudal struggles on every layer of the stack, it'd be funny if it weren't so scary.




I called it

Of totally no interest to anyone, and just of passing to myself, but I so called it.

WordPress is inching towards Drupal, and Drupal towards WordPress.

They will never meet or overlap of course (or maybe they will one day who knows), I'm just saying there is certainly an homogenizing trend.

Drupal gets more user friendly, cleaned up code, separation of admin and public site.
WordPress just decided to introduce taxonomy tables in their database to handle categories and tags. The plugin architecture is mature enough that you can do just about anything with a plugin/module. Making a plugin that creates and manages a whole new taxonomy--like say geo--will be a snap.

That is all. Sorry to bore you. ;)




What is code?

A picture is worth a thousand words...

The premise of the linked article is to show how one can create a web browser in "one line of code" using a bunch of stuff that more or less comes with Mac OS X. "One line of code" is meant to infer extreme easiness...

It is far from easy. It is a very complex set of procedures, tying together a whole bunch of "code" that has been written for you and presented in a visual environment. Sort of like Yahoo! Pipes, and Max/MSP.




no openID

Mike's posted an excellent piece on why he thinks openID is a bad idea.

The problem with OpenID is that it violates one of the longest-runnings stories we tell ourselves about the Internet, from the famous New Yorker cartoon...

I'd give you a more revealing excerpt but I want you to read the whole thing. Please do.




Alternate use

sunday-art-beat-yokohama

Not jogging, but a leisurely evening with friends visiting an exhibit and ChinaTown in Yokohama. (Train rides of course not account in distances.)

Note:
The iPod frequently "paused" the "workout"--sensing prolonged periods of immobility--hence it's shortness. The trip lasted from 5pm to 10pm.




Typical weekend dilemma for me...

I had planned to spend some time this weekend hacking out the "featured article" functionality for the GlobalVoices redesign. It's the last big piece that needs doing and we have a Thursday EST deadline to show off a final version of the site. I'm not hugely worried about it, I just wanted t get it done.

Instead...

I was up until 4am last night (instead of going to an event in Shibuya), and I just missed an afternoon at the 10th Japan Media Arts Festival with Paul, because I badly needed to finish some XML API endpoints for the maps Mike is making for us, and just before running off I discovered a huge snafu in the private pinging infrastructure I developed for our new distributed translation network. (just wait till you see this... insanity.)

gvo chinese
(i screwed up the chinese characters a bit due to DB encoding issues. This will bite me in the ass one day...)

But that's all done now. It's quarter to 4. And in about an hour Paul will ping me to head to Yokohama for some Information Design thing and hopefully some dumplings. w00t.




this is the time on sprockets vere ve ... pump yoo ahp

2st run, Jiyugaoka

After Jan called me a weakling in that heavy german accent that could only remind me of Hans und Franz ("you are litta giwly maan! we are gonna pump j00 up!"), because I said it was too cold to run for me, my lungs start to hurt yada yada... my pride took over, grabbed my inner geek and forced me to get this stupid Nike+iPod gadget to work.

So I stuck the sensor under my insoles and went out. The thing finally worked (it didn't when i first got it and yes I lugged it with me out here).

So above is my quick run. 1.07km in 7 minutes and 8 seconds.

My lungs are on fire and I think I need to lie down. Girly man in-deed. ;)

Oh, right, the reason I humiliate myself so here with this is: look at the graph above. It maps directly to my coming across intersections where I had to slow down, as well as the hilly terrain around here. Oh and I sprinted the last 100 meters. My legs were getting cold. :p

Oh and here's the XML data the iPod created for my run:

<?xml version="1.0" encoding="UTF-8"?>
<sportsData>
	<vers>
		2
	</vers>
	<runSummary>
		<workoutName>
<![CDATA[Basic]]>
		</workoutName>
		<time>
			2007-03-01T22:15:33+09:00
		</time>
		<duration>
			428060
		</duration>
		<durationString>
			7:08
		</durationString>
		<distance unit="km">
			1.0798
		</distance>
		<distanceString>
			1.07 km
		</distanceString>
		<pace>
			6:36 min/km
		</pace>
		<calories>
			84
		</calories>
		<battery>
		</battery>
		<stepCounts>
			<walkBegin>
				834
			</walkBegin>
			<walkEnd>
				1464
			</walkEnd>
			<runBegin>
				220
			</runBegin>
			<runEnd>
				726
			</runEnd>
		</stepCounts>
		<powerSong>
			<title><![CDATA[(don't) give hate a chance (st]]></title> 
			<artist>
<![CDATA[jamiroquai]]>
			</artist>
			<album>
<![CDATA[(don't) give hate a chance CDM]]>
			</album>
		</powerSong>
	</runSummary>
	<template>
		<templateID>
			8D495DCE
		</templateID>
		<templateName>
<![CDATA[Basic]]>
		</templateName>
	</template>
	<goal type="" value="" unit="">
	</goal>
	<userInfo>
		<empedID>
			4H6344GXVSX
		</empedID>
		<weight>
			76.0
		</weight>
		<device>
			iPod
		</device>
		<calibration>
			000000004170000001fe00230000000041f00000046700000000410100000000
		</calibration>
	</userInfo>
	<startTime>
		2007-03-01T22:15:33+09:00
	</startTime>
	<snapShotList snapShotType="userClick">
		<snapShot event="pause">
			<duration>
				8188
			</duration>
			<distance>
				0.014
			</distance>
			<pace>
				631185
			</pace>
		</snapShot>
		<snapShot event="resume">
			<duration>
				8189
			</duration>
			<distance>
				0.014
			</distance>
			<pace>
				631185
			</pace>
		</snapShot>
		<snapShot event="onDemandVP">
			<duration>
				425647
			</duration>
			<distance>
				1.065
			</distance>
			<pace>
				229576
			</pace>
		</snapShot>
		<snapShot event="stop">
			<duration>
				428009
			</duration>
			<distance>
				1.079
			</distance>
			<pace>
				0
			</pace>
		</snapShot>
	</snapShotList>
	<snapShotList snapShotType="kmSplit">
		<snapShot>
			<duration>
				401083
			</duration>
			<distance>
				1.003
			</distance>
			<pace>
				229576
			</pace>
		</snapShot>
	</snapShotList>
	<extendedDataList>
		<extendedData dataType="distance" intervalType="time" intervalUnit="s" intervalValue="10">
			0.0, 0.0111, 0.0264, 0.0476, 0.0851, 0.1209, 0.1562, 0.1918, 0.2254, 0.2626, 0.2816, 0.2964, 0.3129, 0.3294, 0.3456, 0.3616, 0.3765, 0.393, 0.423, 0.4596, 0.4955, 0.5296, 0.5631, 0.596, 0.6101, 0.6277, 0.6424, 0.6582, 0.674, 0.6927, 0.7293, 0.7657, 0.7944, 0.8285, 0.8453, 0.8612, 0.8755, 0.8914, 0.9215, 0.9592, 0.9983, 1.0298, 1.0483
		</extendedData>
	</extendedDataList>
</sportsData>



Second World?

Sorry for the link to a machine translation but here's an article in "Web3D-fr" ("3D Web France") about an immersive 3D MMPORG community platform... launched in 1994.

Very interesting account of the business model, the politics behind the scenes (browser war anyone?), the content providers wanting standards, the money-backers wanting proprietary platforms... how they won, and consequently the whole thing died.

Of curse that's what I got scanning the machine translation...




Machine Tags

super quick little PHP function to parse machine tags into an array. Barely useful. What I'd really like to see is code for querying them in a database. Flickr should share that... ;)




What's that movie?!

Help me out here...

Mid 80's, I think the main actor was a WWF wrestler (first guess was Brutus "The Barber" Beefcake, but IMDB doesn't list any movies for him). Something about aliens already here, controlling society on earth via subliminal messages in advertising that only this main actor guy can see thanks to special sunglasses.

...

AHA! Thanks Mike! It was Rowdy Roddy Piper, and the movie is "They Live"

"Nada, a down-on-his-luck construction worker, discovers a pair of special sunglasses. Wearing them, he is able to see the world as it really is: people being bombarded by media and government with messages like "Stay Asleep", "No Imagination", "Submit to Authority". Even scarier is that he is able to see that some usually normal-looking people are in fact ugly aliens in charge of the massive campaign to keep humans subdued."

Why do I bring this up?

Because of this: "BBC News - Hiding messages in plain sight"

Japanese firm Fujitsu is pushing a technology that can encode data into a picture that is invisible to the human eye but can be decoded by a mobile phone with a camera.

The company believes the technology will have spin off implications for the publishing industry.

"The concept is to be able to link the printed page into the digital domain," said Mike Nelson, general manager for sales operations at Fujitsu Europe.

Aaron, get some yellow markers too!




EcoBlack

How the colour of your website costs the earth

Changing the background colour of Google from white (ffffff) to black (000000) would save an estimated 750 Megawatt hours a year globally, thats about half the full output of a dual-nuclear reactor. This mainly applies to CRT, or tube, monitors as their power usage fluctates widely depending on the colours being shown on screen.

Yow.




The second most dangerous man alive

I'm wondering:
- does my Nokia N80 have QR code reading capabilities?
- does the Nokia N95 allow Python to access the camera and the GPS "easily" (for hacking a quick prototype)
- what is the current trend, if any, in the mobile device industry, for GPS integration in devices?
- can J2ME/3rd party applications be loaded on KDDI's phones?
- do I know anyone in my 2nd/3rd degree social networks who could make J2ME apps that access camera and GPS on available devices?

Get your markers ready Aaron. ;)




Sing a tune

Half a bill.

Viacom executives are in London negotiating the purchase of LastFM, the London based "online social music network" (read: internet radio station), according to a music business source familiar with the negotiations. The purchase price is said to be $450 million dollars.

"I am in your tunEz, tracking uR listening HabiTz!"

I wonder if I delete my account now, will all my stats be deleted?
I could care less about the Last.fm "community". I want my own listening stats. Time for a hack.




The most dangerous man alive

will carry a black marker.




Laying tiles

Tiles of japan

Tiles + Contextual masks generated from shapefiles = beautiful.




Remix!

Holymoly.

Yahoo! Pipes is like a web-based Max/MSP visual multimedia sampler/remixer/filter for web content.

It's a beast. It slices, it dices, it joins and concatenates... it'll even machine translate, extract geo:data, filter by whatever, allow you to input parameters at request time.

And, everything you "remix" is available to you via RSS or JSON feeds.

Terrible, simple example: 20 results for a picture search on Flickr for "Africa", combined with the GVO Sub-Saharan Africa feed, machine translated to Simplified Chinese, ordered by Publication date.

I could have written code to do this, but this environment lets me assemble it by dragging around little widgets and hooking them up.

Here's a neat one: analyse the New York Times feed for keywords, then search Flickr against them, and show me what ya get.

Possibilities are vast.




Oh dotster...

An old client of mine is finally taking hold of their domain and transferring their registration to another registrar.

I just got the following email from my registrar:

If you are unhappy with Dotster's service please let us know your feelings. We'd like a second chance to get you to stay. If this is not a mistake and you are unhappy withDotster's prices or services please let us know your feelings

No, listen, it's not like that. I still have about a dozen domains with you. This is just a...

We'd like to encourage you to stay by offering you reduced account pricing. If you choose to take advantage of this offer and cancel your transfer, we will permanently reduce your registration, renewal, and transfer pricing. Your new pricing will include $8.95 registrations and renewals along with $7.75 transfer pricing.

... but... ah.. wow, that's 50% of your regular prices... Permanently you say?

/me scratches chin wondering just who the fuck they think they are, ripping off their clients with 100% marked up services when here they are literally begging me to stay... sigh...

Tell you what dotster. I can't cancel this transfer as it's not my domain. But what I WILL do is go set up an account somewhere else, initiate a transfer and see if you send me this offer again so that I can cancel it and get the better rate. I'll make sure to pick an even cheaper competitor, see if your offer is competitor-pricing-aware... ;)

Perhaps you should check your mark's account to see if they are transferring out their entire portfolio or, as in my case, just one old client's reg.




Withdrawal

flickr twitter down

Well shit I guess I'll just have to go outside then. :p




A bit of humor please

or "Aristotle's lost second book of Poetics: Comedy"

Alot of people have been crowing about how Flickr's Machine Tags are pseudo Semantic Web and how they could have been RDF.

Well, piddle, and tough luck. I'm quite excited by it all and here's why.

Machine Tags are essentially just words: strings of characters. They make no attempt at assigning meaning or giving Semantics, e.g.: they are words that you and I can use and interpret. Differently if we want to, together if we decide to agree to.

Just like we do when we speak or write to each other.

Ambiguity: the devil's volleyball. I spend my life wrastling ambiguity. It's a good thing.

What makes them slightly different from regular tags is that they allow one to add just a touch of context and thus a touch of disambiguation. Just enough to make them transportable (out of the Flickr domain) with slightly more ease and value* than single dimension tags.

flickr/tag/apple is local to flickr
flickr/tag/fruits:name=apple is still local flickr but:
fruits:name=apple is far more useful out in the enormity of the world wide web then just
apple

Flickr does not want to be "L'Academie Française", or the Encyclopedia Britannica. It's up to you (er us) all to be Wikipedia.

Back to my point though: Meaning is contextual.

Machine Tags are no more Semantic Web than English is Funny. They both *can be*...
(A major mechanism of humor is meaning derived from context, and not the words themselves. The delivery, the story/situation surrounding them, etc.)

Now before the SemWeb'ers and RDF'ers jump on me.: yes, SemWeb accounts for providing context via complexe namespacing URI schema mumbo jumbo voodooh la, but hell: no one *got* it. "dear users, please just get used to angle brackets" is a pipe dream. So calm down and watch what happens next. ;)

All Flickr has done here is given us an example of usage (with a leapfrog over the ramping up part of an adoption rate curve), a place to store them and a means to query for them.

What you do with it from there is your business. Make RDF with it if you want, but I am betting most hackers will simply follow suit and implement their own systems for storage and retrieval of namespace:predicate=value tags. And a bunch of other stuff they will have learnt to want to do when they tried to do anything with RDF (cause RDF IS awesome, it's just a P.I.T.A.). They already are. Some already have been for a while.

None of this means RDF is bad or dead. It's sort of like "do we use C++ or PHP for our web project? Hrmmm, depends!"

Flickr is already a, if not the, Golden Child of the so-called "Web 2.0", but in launching Machine Tags, they have fired the starting gun on what I'd hate to see named "Web 3.0": the lovechild produced when the dumbass naive teenager that is Web 2.0 grows up a bit and meets a Semantic Web that's learnt to relax and slip into something sexy...

Make. Whoopie. It's fun and healthy.

* ease and value: what happens when you lower the barrier to entry and increase the value of what's behind that barrier? The crowds come running. Identify what the masses might find valuable (or take a flying guess) and make it easy for them to get. Then install a toll booth. Profit.




Talking to machines

or "Flickr introduces tags to the Semantic Web"
or "Folksonomies, meet Folktologies"

Aaron, one of the flickereenos, just announced what they are calling "Machine Tags"

Machine tags are tags that use a special syntax to define extra information
about a tag.

Machine tags have a namespace, a predicate and a value. The namespace defines a class or a facet that a tag belongs to ('geo', 'flickr', etc.) The predicate is name of the property for a namespace ('latitude', 'user', etc.) The value is, well, the value.

Like tags, there are no rules for machine tags beyond the syntax to specify the parts of a machine tag. For example, you could tag a photo with :

* flickr:user=straup

* flora:tree=coniferous

This is of course quietly huge. Flickr is providing a way to store and retrieve namespace:predicate=value strings, which means you can now have (single level) ontologies in your tags, and better, you can get together with your friends (colleagues ;) and agree on namespaces to use and share.

The real power here comes from the fact that Flickr provides a means to query these machine tags and extract just the bits you want. (It's mentioned in the "Ceci n'est pas un FAQ". Scroll down to "# Can I query the various part of a machine tag?")

This means you can have your machine talk to their machine for useful structured data. whirr whirrr whirrrr.

How this is different from Del.icio.us "tag bundles":
- no API to query directly
- no real community tools to gel consensus to generate enough valuable shareable namespaces. this might jump start that though, and Joshua has said they are focusing on adding more community-y features.




Updated string 2 color

I needed to update my string to hexcolor function to also check the luminosity before returning a color cause I was often getting colors too bright to be legible when applied to text on a white background.

It now takes an optional $luminosity parameter. The default is 150 (0-255, the lower the darker).
It returns the first hexcolor that passes the test. If it runs thorugh all 5 possibilities without finding one, tough luck, it returns the first one in the array. (Ideally it should then test for the closest hex to the luminosity cutoff and return that but eh... I have other things to do! ;)




Buzzfeed

Hello, what's this?

"We automatically detect new buzz by crawling 50,000 of the very best web sites, blogs, and news sources. Then our technology crunches the raw data from these sites to identify new buzz that’s just starting to spread. We developed the technology to find new things just when they start accelerating in popularity and provoking interesting conversations. Our technology is also supplemented by a network of human taste-makers and tips submitted by BuzzFeed readers. These savvy humans can spot subtle trends our robots might miss."

Aggregator + some statistical analysis + human editors.

Very interesting.




More IMD aggregation fun

Yesterday's achievement for IMD was a bit more straight forward: put a Flickr badge of the department's group photo pool on the homepage.

Flickr-Badge-Imd
Can you tell I did it? ;) To be honest the hardest part was the calculations for the styling: how many thumbnails at what size with a right margin of 1 pixel can I fit on the top row, ditto for the second, while maintaining the grid? View source for some hints...

This was really basic and simple but I had never played with the API before so it was a fun learning experience. If you need to do anything with the Flickr API and are doing it in PHP4, phpFlickr makes it easy (even if the documentation is essentially non-existent... poke around in the Class itself to find some goodies.)

Next up... del.icio.us. :p




IMD group calendar solution using microformats and Technorati

I woke up this morning with, in my head, the first words from an email I had gotten from Scott last night, pleading: "*Desperately* need some kind of shared calendar capability on the [IMD] events page."

"How could I do this?" I thought. The existing events page was already an aggregate of all posts that IMD students and staffers had tagged as "events", so we already had "something". Just not a calendar, and no vCal file...

I spent breakfast researching possibilities:
- create a group on Upcoming and fetch the output from there? No good; it's a separate system, user logins, entry screens etc. I need something integrated.
- hack apart the Drupal "events" module for the calendar display code. Possible. Poked around in there for a few minutes... yeeeeaaahh not so much... drupal modules are pretty deeply integrated with the whole Drupal framework. Not gonna happen.

Let's see if there's anything I can do with Microformats' hCalendar. Neat, they provide a web-based, Javascript enabled hCalendar creator form. Very handy. Zoink!

Since for the IMD blog system I already have a custom Post screen, it was no problem to add a quick link to the above creator and add some instructions: "If you are posting an event, plug the info into this form, then copy and paste the HTML it gives you back into your blog post."

Great, now I have a reasonably easy way for the people to add hCalendar data to their events-related blog posts. Now I need to *do something* with that.

To his great chagrin, Hugh recently showed me Technorati's hReviews service. Maybe they have one for events? Yes sir they do. And what that form is, is essentially a front end for a RESTful hCalendar munging webservice. I feed it an html file full of hCalendar data, it gives me back.. a vCal file.

So, now, every 15 minutes, I fetch that vCal file and feed it to PHPiCalendar and presto: I have a group calendar generated from blog posts.

2 1/2 hours, from initial concept to completion.

(No, switching to Drupal in one afternoon was not only not possible, it was not an option. ;)




IRC logging, revisited

This afternoon I set up a "logger bot" which monitors and logs the GlobalVoices IRC channel.
About an hour ago, Karl showed me the log he tweaked for the Semantic Web Interest Group IRC channel and mentioned how he structured some of the data.

Now, let's think of IRC for a moment not as a place to chat with people, but rather as text entry point.. for whatever.

Ok not whatever, let's think of it as a task logger for small groups.

The IRC bot logs in chronological order everything entered intot he channel, timestamps it and records who "said it".

Say you have a team of people working on a project who wish to keep a log of the tasks they accomplish. Just type it!

"Fixed bug #234"
"changed the color of the links"
etc

This is already doable, out of the box. I just need to set it up and let the team in.

But I want more.

Say our project has several departments: "design", "technology", "editorial", "management". Say also our project is really a bunch of smaller projects: "main site", "wiki", "intranet", "conference in Delhi". Or just you want to be able to tag things: "PITA", "fixed", "researched"... or, like in del.icio.us, you want "send" something to someone's attention: "for:mike", "for:karl", "for:francis".

The syntax should be stupid; in the IRC text input, for example:
# tech, aggregator | caching system is 98% done. I just added OPML flatfiles to the output

or send a task to someone:
# design, mainsite, pita, for:jer, todo | please install that gizmo plugin

I imagine it can't be hard to add the code to handle this functionality to this Perl logger bot... or any good solid Python one.

Did I say more?
I want it to pipe everything in realtime and timestamped, via whatever XML-RPC/Atom/FooAPI, preserving authors and tags, to WordPress. Why? Because WP is easy to theme and will output RSS feeds of any context you want: overall, per tag/category, per author...

I will put up the dev environment, help test and throw in... $50. Who wants to code this with me?

This setup could also be used for quick "tumblelogs" or "mumblelogs".

Ideally I'd want a Jabber bot instead but eh... if anyone's game... all the code is available, we just need to pack it up... another $50 for the Jabber version =)




Tumblelogs?

I'm sorry, I don't get it. Or rather, I'm sorta disappointed.

As Kottke says in his quote in the Wikipedia definition of Tumblelog (jees never thought I'd quote Kottke!), this just seems to me like what Weblogs were originally anyways: a place to quickly dump thoughts and stuff you found on the web, on a webpage, be it for personal or sharing purposes.

They claim they are less structured but if anything I see them as more structured. Or rather "strongly typed", as some programming languages are: you need to define content types and assign your postings to them (or I suppose there is some auto-detection built in), and not doing so will break something. Considering the stern "technological determinism" sermon I got from Lenczner when I told him file type is an inherent, important and immutable quality of a digital object ("why should I treat this piece of media differently just because of what race it is?!"), I must scratch my chin over all this.

So, I must apologize to Bosko and the audience at BarCamp Montreal for asking a question that must have seemed totally out of leftfield: Bosko was talking about tumbleblogs as digital scrapbooks and I was thinking totally on the frontend of things (my "Breaking out of the Document" post a few days ago was precisely about this, sparked by an exchange with Julian Bleeker about a finding a way to produce truly scrapbook-like presentations on the web, of gathered (tumbled?) content, be it aggregated/reblogged bits, bookmarks (URI), audio/video/photo objects etc...)... and Bosko had been talking about the REST architecture of his tumbleblog service. Woops! ;)

I'm not saying it isn't interesting, just that it isn't at all what I thought it was, and while I recognize I may be missing something, I don't see how tumbleblogs aren't just a further formalization of "weblogs."




Color work



Blue
#003
#015
#027
#039
#36B
#69D
#9CF
Green
#030
#150
#270
#390
#6B3
#9D6
#CF9
Orange
#C00
#D20
#E40
#F60
#F94
#FC8
#FFC

Greys
#1A
#333
#4D
 
#666
#80
#999
 
#B3
#CCC
#E6

Black
#000
White
#fff

Explanation:

This is a normalized, cleaned up, new color palette for GlobalVoices. I had Jeremy quickly document our (ok ok my) crazy color use on the existing site and oh man what a mess. In my mad rush to add stuff over the last year, I strayed in my color choices. I have 4 different shades of dark blue going! Ayeee!

So I grabbed our three core colors, and twiddled to get 3 shades lighter and darker for each. Because I am picky, I made sure that
a) the hex values for the colors were "clean" (003399, vs 0134e9)
b) the steps between shades were all mathematically equivalent across the hues
Notice how the orange fades into giving us a bonus deep red and light yellow. For use on alerts and other more subtle attention grabbing needs in the UI.

The process was actually quite involved; the 2 median darker shades were culled from an 8 step gradation, the 2 lighter ones, from a 7 step one. Except for the orange which required a 5 step gradation which actually gave me 7 (no idea...). The grays are a 10 step from 333 to white. (I wanted to have the four "full" grays: 333, 666, 999, CCC, between 000-black and FFF-white.)

(The hexadecimal color values here are in shorthand: 039 expands to 003399, E6 expands to E6E6E6.)

Of course we will not necessarily use all these colors, but we have them on hand if we need, say, a lighter shade of something for a rollover effect, or a darker one for a header, etc...

Fun.

To dig deeper into the geekiness here... if I had followed the same process of hex number/letter shifting, the third color would be a sort of mauve. But I needed the orange. Hence the 039 -> 390 -> F60 sequence. Picking the C00 red for dark orange and the FFC pale yellow for the light orange was done by following patterns in a standard hex color map and plotting relative positions by eye... Worked out real well, me thinks!!




"Getting to know each other" UI design ideas

Quick thought about complex applications, especially web-apps, which have many features and functionalities and which are, of course, always a challenge, not just for the user but for the designers who need to make them usable.

First of all there is the "play with me" approach, which is very much what Flickr uses: make the easy stuff as obvious and plain as day as possible. Get people hooked on one, maybe two aspects, tops. Then as they use the thing, playing, they discover deeper levels of interactions, more possibilities.

Clever that.

Not nearly as clever, is a thought I just had. It comes from pondering the "icon vs text label" debate. Myself, I tended to be of the "make it small and unintrusive and let the user figure it out" school, which of course is not always good, especially when there is no playground in which the user can be bothered to learn in (see above, and see my tiny little comments and trackback icons).

But I also like text labels, however they tend to be so big and clunky, and frankly, parsing text is several orders of magnitude more brain processor intensive that simple image recognition (assuming recognition: i.e. seen it before, learnt already...)

And this brings me to "get to know each other."

Say you've got a complex web-app to design, with lots of functionality, some of which somewhat involved... first of all, go with the playful metaphor. Two or three key interactions, get people in and hooked. Use text labels as best you can.

Then, over time, learn what interactions a user (yes, a specific user, who has an account, and who's interactions you can track) regularly uses. At, say, the tenth use of a feature, add a little icon that signifies this interaction (or have it there from the start if you can spare the real estate). If you are adding it, pop a little note: "hey, this little icon means *this* action..."

Then, say, at the 20th interaction, yank the text label, again with a little notice: "psst, we know you know what this means... shall we unclutter the UI a bit for ya?"

Of course, give the option. A user might prefer to keep only text labels, or only icons... or both...

Just a thought.




Breaking out of the Document

An email from Julian sent me into a whirl.

If I wanted to publish scrapbook-like, and I mean really willy-nilly ad-hoc layouts... is it doable in web-standards today?

I can build a CMS that takes care of navigation, blog-style, across time stamps and various context mechanisms (categories, tags, authors etc...)...

But then what? I can give you a <div> and, following current web-tech, you are stuck with inline or block display.

There's a bunch of threads I can follow from here...

Weblog CMSs have mostly focused on making it easy to build and maintain the infrastructure of personal websites--archives and their navigation, etc--with a passing concern for clean markup in the actual content. But that's "in the div" and, again, it's fairly constrained. Even the most "into it" web designers don't bother doing custom layouts and CSS for their weblogs' content.

And there's a reason: doing even simple stuff in XHTML+CSS isn't simple. Or at least, not simple enough to warrant the time cost. The cost of benefit is too high, exactly how maintaining a personal website used to be too high a cost for the benefit (which we all know now; the benefits of weblogging I mean.)

Is there benefit in maintaining an online multi-media "scrapbook"? You bet there is. You know why? Take your weblog, and replace words with video and audio and drawing and pictures etc. (Hi Marc Canter!) Just ask any of your friends who maintain scrapbooks in their Moleskines.

As is always the case, I think we are at that intersection where a) all the technological pieces necessary are in place (web standards, aggregators, open APIs, UE), b) people have already tried to do similar things (for a while now, a bunch of people have been talking about this, in various ways and from varying angles) and c) there is evidence of a desire in the culture/society/people (scrapbook maintainers, YouTube/MySpace video sharers, rebloggers, bloggers even... Six Apart's "Vox" and Microsoft's "Wallop" are versions of this as well and both have been in development for a looong while... and all I've been doing for 2 years is building aggregators for people...)

Open ended thought... as usual a ramble... back to work.

p.s.: RDF could be the wiring. Like I told Julian:

"[This stuff is still] bare... it's like saying "we want a multimedia room in our house" and you step in after the electricians did their part [and go "hey, wtf?!"]"




Use Case Scenarios

It is SO hard for me to write these scenarios without diving into "how I would build this." I keep going over and back over and having to edit out whispered pre-suppositions of "how."
This is where "technological determinism" is bred, in use cases written with the engineering cap on. ;)

Must deactivate the tech-brain. Tell a story dammit.




Citizendium

Very interesting:

The Citizendium, a "citizens' compendium of everything," will be an experimental new wiki project that combines public participation with gentle expert guidance. It will begin life as a "progressive fork" of Wikipedia. But we expect it to take on a life of its own and, perhaps, to become the flagship of a new set of responsibly-managed free knowledge projects. We will avoid calling it an "encyclopedia," because there will probably always be articles in the resource that have not been vouched for in any sense.

We believe a fork is necessary, and justified, both to allow regular people a place to work under the direction of experts, and in which personal accountability--including the use of real names--is expected. In short, we want to create a responsible community and a good global citizen.

# Registered users will be able to edit as "authors" but there will also be "editors" who have more authority because of their background as specialists in a certain field. While this is being intrinsically ruled out in Wikipedia's approach, Sanger strongly believes that the valuing of expert knowledge would attract more people from the scientific community and thus improve the overall quality.

I especially like this comment by Nathan Rasmussen on the Smartmobs article.




Over mango and chocolate crepes

I coded up a little tiny PHP method that takes any text string and returns 5 usable "html" hexadecimal colors.

It's not as artful as I'd have liked it to be, but then again my programming skills are not everything I'd like them to be either. ;)

$name_colors_array = explode("--",chunk_split(md5($name),6,"--"));

Nothing exciting. Might use it to generate little visual cues of authorship for aggregated views... somewhere.

Update:
You can get 10 three letter hex colors by changing the 6 to 3.

I only need 1 or 4 for my purposes.

Update 2:
$name_colors_array2 = str_split(md5("http://bopuc.levendis.com/feed/feed.xml"),6);
is shorter. ;)




Hello, where am I?

locatr

DESCRIPTION locatr is a Series 60 Python application to display Flickr photos based on your current location (using a GPS device).

HOW IT WORKS
locatr will try to connect to a Bluetooth enabled GPS device and ask it
for its current location.

Then it will query Flickr for recent photos taken nearby.

Once it has a list of photos it will display them on your phone's
screen.

[X] Metaphysical graffiti. done
(Aaron, you are a god amongst geeks)




Buy movies...

Ok here we go.

Amazon just unveiled "Amazon Unbox", their movie and TV show purchasing & download store.

Apple is rumored (damn near confirmed) to release their movie download service next week as well, however with fewer studios signed up (whatever).

Two easy consequences:
DRM will be shoved down everyone's throats and everyone will accept it because hey! I can download "24" and "CSI" and watch it like now! I don't care about my cultural rights! (and why would I for pabulum like that?!) /snark

Mad scramble to find easy solutions for piping movies from your computer to your home entertainment system. This sector has been growing steadily for years but this will probably crank it up a few notches.




Even better...

"Sumaato" have developed a ridiculously slick bookmarklet that uses the Google Maps API to allow even easier Flickr geotagging. A sweet feature made better by using Google's better maps ('specially for Japan ;)

Seriously. Look at this photo of the Torii in the Bay (Miyajima), or the Hotel in Hiroshima that survived the blast, or Daibutsu, the big buddha in Kamakura. I had no idea precisely where I was when I took these photos. Now I do. (the fact that I can find them on satellite photos is a combination of good sense of orientation, memory and patience ;)

Oh and this announcement--"Nokia acquires gate5 to add robust mapping and navigation to its devices"--can't be terrible either.




Geotagging citizen media

Picture 1-4

To keep my mind occupied the last day or so, I have been thinking alot about how Flickr's new Map functionality might affect the whole "citizen journalism" scene.

Alot of people around me have been talking geo for years, and always with that pure geeky "but it would be sooo cool" angle. "Yeah it would," I'd think, "can't wait to see it." With Google Maps and the ensuing "mashup craze", it really was just a matter of time. And of course Flickr Maps is just one more step forward. It's just another beginning. It'll be a BIG beginning though.

Over at GlobalVoices, I am quietly simmering on redesign plans and I am putting alot of attention on "how can we create more better [sic] context for people who come to the site? How can we add to the experience using all the tools we now have at our disposal?" Maps of course figure VERY prominently. Basic ideas like "show the country who's page you are on now on a map."

"How about, on that map, we pinpoint places mentioned in the article?"

Flickr Maps might allow us now to say "show us pictures taken around the places mentioned in this post."

This really is just a start. Now that Flickr has done it, all the other media sharing sites are gonna scramble to figure something similar out. And they don't need to be under Google or Yahoo's wing to do it either. That's why APIs are great.




Automate

Flickr: Import EXIF GPS information from your camera


Automagically import GPS information as geo data

Some cameras can store GPS (location) coordinates in a photo's EXIF header. If you like, Flickr can use that data if it's available to place your photos on your map automatically.

Shall we import that information when a photo is uploaded or replaced?

Yes please, that would be lovely.




Flickr Maps

Flickr map, Montreal

"Lots" indeed. Go nuts.
Montreal area




A little SQL help, again, please? ;D

This seems to work usually and I am always super grateful for any help.

I need two queries to a standard WordPress 1.5.3 database for

1- list of the IDs and names of categories that have been posted to in the last X minutes
2- list of the IDs and names of authors that have posted in the last X minutes

Obviously, my lazy brain just can't wrap itself around the JOINs needed. The first one is more complicated as you need to go through the 'categories' table, the 'post2cat' table and the 'posts' table to check the 'post_date' and compare it to the current time - X minutes.

This is for Global Voices Online. I run a CRON to render JSS files every X minutes and no point in re-burning a file if it isn't updated right? ;)

Pretty please?

UPDATE
Guess i was just tired yesterday. Had some fun figuring out the author one myself this evening:
SELECT DISTINCT
    U.ID AS id, CONCAT(U.user_firstname,' ',U.user_lastname) AS name
FROM
    users AS U,
    posts AS P
WHERE
    user_level > 0
AND P.post_author = U.ID
AND P.post_modified >= '2006-08-25'
AND P.post_status = 'publish'
ORDER BY
    U.ID

Now I do the categories one.

UPDATE 2 (10 minutes later)
Duh.
SELECT DISTINCT
    C.cat_ID AS id, C.cat_name AS name
FROM
    categories AS C,
    post2cat AS PC,
    posts AS P
WHERE
    PC.category_id = C.cat_id
AND P.ID = PC.post_id
AND P.post_modified >= '2006-08-25'
AND P.post_status = 'publish'
ORDER BY
    C.cat_ID




Open Data Movement talk in Helsinki

For the last two weeks I have been dying for an excuse, any excuse, to be in Helsinki right now. The announcement of Matt Biddulph's Aula talk today comes a full 48 hours too late for me to do up and go. Flights went from $1,200 to $6,000 (cause I'd want to go tomorrow morning and not stay a week.)

My personal tragedies aside, I am very pleased and intrigued by the fact that the Aula folks, and entourage, are peeking into Open Data. Though, from the write up it sounds more like Open Content they are talking about...

Around here, Michael and a bunch of a bunch of folks have been organizing Civic Access:

Citizens for Open Access to Civic Information and Data (CivicAccess) is a group of citizens which believes all levels of government should make civic information and data accessible at no cost in open formats to their citizens. We believe this is necessary to allow citizens to fully participate in the democractic process of an "information society."

Objectives:

  1. To encourage all levels of governments (county, municipal, provincial, federal) to make civic data and information available to citizens without restrictions, at no cost, and in useable open formats.

  2. To encourage the development of citizen projects using civic data and information

Making civic data and information freely available to citizens is important because:

  • Citizen participation in decision-making is fundamental to democracy

  • Good decisions are made by informed citizens

  • Quality civic data and information are fundamental to keeping citizens informed in an "information society"

  • Taxes have already paid for civic data and information; therefore these should be made available at no cost to citizens

  • Citizen projects using civic data will generate innovative solutions to social, economic and environmental problems

  • Citizen projects using civic data will allow citizens to creatively plan their communities

  • This is what a democracy looks like!

In this context, Open Data refers to such information as government activities (like "TheyWorkForYou" and "OpenSecrets"), geographical data (hello all you geo wonks, salivating at Google Maps. Can you imagine what geographical resources your government, which you pay for, has access to?), and in combination with Open Content--cultural objects, like BBC archives, all the way to local event listings...

Sorry, distracted by work.. but you get the picture right?




An example of the little stuff I love doing

"Recent comments" list in the sidebar of a weblog.

Before:
Before

After:
After

Yeah, it takes more space, but it is apprehensible. There is more data, but it is better chunked and spooned out, reducing the amount of decoding you need to do (as it is already done for you, using HTML, CSS, PHP and SQL ;)

There is SO much Cog.Psy. in UE.




Image editing for Flickr

"Preloadr" is really quite something. It uses the Flickr API to allow you to modify any of your images, via a web interface totally in sync with Flickr's style, as if you were in a "Photoshop-like" application. Awesome job.




Yeah I'm a bit proud...

I stumbled onto Wikipedia's entry for Moblog and damn near fell over.

Moblog - Wikipedia, The Free Encyclopedia (20060719)

My name's not mentioned of course, but that is my design for Joi's moblog. I did that back in 2003. Custom solution, with a fancy Python-based email-to-xml-rpc script by Francis just for this, giving us square, scaled and cropped thumbnails, and category assignment based on wildcard email addresses. (All of Joi's and my moblogging still passes through Francis' server, directly posting to our weblogs and forwarding to external services like Flickr, Radar [not working!!] and Vox)

Here comes the gloating: in 2003, and very often still today, moblogs consisted of regular blog entries with a photo in them. I wanted Joi's moblog index and archives to have proper scaled cropped thumbnails. Also I wanted Joi's user experience to be as easy as possible, hence the category assignment based on different email addresses that could be stored in his address book. He and I still use that same system (though admittedly it needs some updating.)

That made my day. Forgive my little ego trip. :)

Update: not to be outdone, Karl gently reminded me of this. (Yes, yes I had forgotten that he had offered Joi long before to maintain the moblog mail scripts... ;)




Here, try this.

Give this a try, let me know what you get.

First, let's search Baidu, one of the major chinese search engines, for "chocolate".

Yum yum

Ok now let's try... "Tianamen massacre", written in western script.

Still works.

Ok now try this.

Woops! You'll likely get a web-browser generated error message saying something like "Connection interrupted" or some such.

Hit your browser's back button and reload that chocolate query. Doesn't work either does it?

Bravo. You've just been temporarily blacklisted by the Great Chinese Internet Censorship Program for searching for politically subversive terms ("Tianamen massacre" in chinese).

(Helping out Rebecca for her HRWi report. We also see this stuff daily in the OpenNet Initiative list.)




Yahoo! porn spam

Warning: links to pages not with photos but hardcore porn terminology...

Just got a concerned email from Howard regarding the fact that one of the articles on SmartMobs seems to be a spam magnet according to Yahoo!. The fact was discovered by one our authors doing an ego search and discovering that about 15 pages into the search results, the links turn into hardcore porn spam.

Many of the links seem to be dead (everything going to .ru domains) but many point to sub-domains of odessa.ua. Clicking though and viewing source reveals an ingenious mechanism, one that gives further pause about the whole "Web 2.0", "You work for them", "it's not about you", "esclavage 2.0" debacle:

Hidden in the source of these porn spam sites is loads of republished content, ostensibly culled from highly search-ranking weblogs etc, in outright contravention of, if not just Copyright and Creative Commons Non-Commercial/By-Attribution, but, well let's face it, decency, respect, integrity, what-have-you.

This is the dirty water that drives the water-mill that makes the paper pulp that gets nudie mags printed on it! Hah!

Short of firing off an email to the person registered to the domain, there is pretty much nothing I can do at this point, other than disallow search spiders and the like. This is not an acceptable solution in this case since SmartMobs does generate revenue for Howard and his authors and being findable via Yahoo! et all is important.

In the global digital village, everybody is your neighbor, even the smut seller. ;)




Announcing RaSP!

RaSP

Hah, that sounds so official like.

Back when I was a... oh wait I still am a freelancing web specialist... anyways, I built this "rapid site prototyper" in PHP. It's based on an array which one sets up to mimic one's site directory architecture (it basically provides metadata for stuff like directory label, visibility, has children, etc, and is quicker than to read an entire site's directory structure from disk on every page load). It worked well enough that once a site was done prototyping, there was no reason to not run the site off the same system. Content management was as simple as FTP'ing into the server and editing the file you wanted to edit. hehehe

It's built with all kinds of preconceived notions and ideals and hopes and dreams and dammit it's gone through 4 or 5 from-scratch rewrites, and at one time was all I could think about for weeks at a time. One particularly dreamy sunday afternoon I remember being deep in thought about how having this backbone informs the rest of the site of each of it's nodes existence and place and such and thought "eureka! that's it! the solution to all of man's problems is awareness!"

Ahem.

Anyways. The codebase has laid pretty much dormant for years now. I've recently used it as the corkboard on which sites such as the IMD, Mimi Ito's and Kula/ecto/endo are pinned up on, integrating them with Movable Type generated/maintained content output.

There are actually a dozen other one-off brochure-ware sites out there running on this code. Good stuff, I could build a site in 10 minutes, go over the prototype with the client one or two times, then skin it and deliver. This was before the days of the fancy FOSS CMS systems eh... Also I gave the code to one good friend of mine and it allowed him to feed, clothe and house himself VERY well for almost 2 years... ;)

Anyways, I'm pulling it out again today. My code-fu is of course much better now and I have some new needs for it so I need to recode it somewhat. So I thought I'd give it a new name: RaSP. Not terribly original but its namesake, the wood rasp, seems an appropriate metaphor for how one works with it to gradually file down to a site architecture that fits the client's needs...

Anyways, nothing to see here, move along.

Maybe I'll share it... maybe I won't, we'll see. ;)




Medieval ballisticism

In a follow-up to my "It's not about you" post a few weeks back, Mike Migurski, lead dev on ReBlog, points me to this complaint on "The Taming of The Band-Aid", a small, local weblog about one person's agricultural efforts in rural Florida:

This is new technology. We're out on the cutting edge, folks. Given that fact, technology gets put into play before abuses of said technology can be forseen. And I do see what "Garden Voices" is doing as abuse, plain and simple. They are generating revenue by posting original material without permission - material which, by the way, is copyrighted under Blogger's terms and conditions.

It seems "Garden Voices" (hehe) is reblogging tf23's content, without permission, with attribution (which ReBlog goes out of it's way to make possible) and yes of course... is trying to generate revenue with banner ads.

Classic water-mill setup. Just add water...

Again, I only point this out to say that the key issue here is awareness. The more awareness one has, the more one can help oneself. tf23 has several avenues of recourse, the least effective being to call Jonah, and turn of RSS. Also, tf23 should ask him/herself why he/she is blogging and for whom. Is it for fame? Fortune? Ego? or sharing? Sharing with whom? Why? (Do you see the spiral forming?)

It is a very hairy issue, inelegantly handled in this case but I suspect we will hear this kind of thing more and more.

Mike's comment on the entry bears pointing out as well:

Being quoted is a touchy subject, and I do think that's an appropriate word to describe what Reblog does. There's also a very fine line between being angry at having your work reblogged, and being angry because no one's paying attention. The big lesson of Reblog (and digital media in general) for me has been that the creators of a work have even less control over its dissemination than in the past, that this is *an intentionally-designed feature* of the internet (in fact, it's THE feature of the internet), and that it's a lot more interesting to embrace the weirdness than to fight it.

We essentially agree, inasmuch as we say "It's here, deal with it. Inform yourself and [re]act accordingly".




What is a "podcast"?

UPDATED (to be more precise in the answers I seek)

In your mind, is it:

"A podcast is like radio" ("radio" the medium, not the hardware/technoogy)
or
"A podcast is like a radio show" (the usage of the medium)
?

The difference is VERY significant. Please think about it and let me know.
Answers to this question very clearly indicate biases based on usage and understanding of what is, fundamentally, a profoundly simple thing: a media file URI culled out of a "blog entry" and highlighted in some fashion ("enclosures") in a syndication feed...




Smart move: W3C opens China office in Beijing.

The World Wide Web Consortium (W3C) announces the launch of its China Office on 27 April 2006. W3C, through its newest Office, invites experts in China to join the international project of developing Web standards at W3C. The Office is based at the Advanced Computing Technologies, School of Computer Science & Engineering of Beihang University in Beijing, China.

Bravo!




Web Philo 101

Someone (Hoder) launched a missive in the GlobalVoices public mailing list stating that "[weblog search service X] sucks!" His main point of contention was how it does a poor job of tracking weblogs which aren't in english. Ensued a short spurt of others chiming in about why they think said service is no damn good.

I've had a bit to drink tonight so I fired off this missive. Beware. Boris pontificating.

*cough* *pulls out soapbox* *gets on soapbox* *cups hands around mouth*

The web is, by its very nature, decentralized. The notion that any centralized service or resource meant to be comprehensive is in any way authoritative, even effective, or even truly possible, is absurd.

Even Google is not the web, and try as they might, it will never be.

Furthermore, the desire to centralize all knowledge, even as an index or reference point, is an ages old human endeavor, one fundamentally linked with the fact that we are sentient and have developed language. (It is the role of language to codify all we experience; we call this "reality".)

This desire, this drive and even it progress and development and deployment, isn't "good" or "bad", it just is. It can be helpful but it can also be hurtful. When we structure things too much, when we push our order too far, things inevitably fall apart. In nature that is called "death".

In social/political terms there is a word for this extreme formalization that starts with F, which eventually leads us to getting to a state which is referred to by another word that starts with F. I leave that to your imaginations. ;)

As usual, I digress. (Blame my mind which is one with the Web.)

Technorati *can* be, when it works, a helpful resource. It is by no means authoritative, it will never be, and wanting it to be so is bad for our health. Seek multiple tools and resources.

I truly hope that one of the side-effects Global Voices might one day have (I think already does actually) is to spur on localized developments of aggregating and attention gathering services, such as regional aggregator blogs and ping servers. There is no reason (none) why there cannot and should not be a thousand Technorati-like services around the world, all tweaked and tuned for specific niche interests and purposes. (One of the effects of electronically accelerated communication is the fragmentation of culture.)

And ideally they would not be controlled by a handful well-fed [american] Silicon Valley types.

*cough*
*steps down from soapbox*
*has another glass of sake*

So there. ;)




Blocking Technorati

If you're one of the people who prefers to disallow Technorati's bot, which does not respect the robots.txt convention and it's directives (talk about a good net citizen...), you may have resorted to blocking the bot's IP, 209.237.230.104.

As of today, Technorati has changed the originating IP of its crawler to 209.237.228.227.

Update your block-lists accordingly. ;)

(I don't currently block TR myself. I enjoy the blog-ego hand-job it provides... when it works. ;)




Don't do evil

Oops, seems in their fervor, the community has forgotten to define *what is evil*.

Last year Google hired the bipartisan lobbying firm Podesta Mattoon, whose lobbyists include Daniel Mattoon, a Republican and longtime friend of House Speaker Dennis Hastert, and Lauren Maddox, a former top aide to Newt Gingrich.

Now it has also brought in the DCI Group, which has strong ties to presidential adviser Karl Rove. Its Senior Vice President Stuart Roy is a former aide to Rep. Tom DeLay, The New York Times reports.

Yes, Google as an entity must do what it must do in order to not only survive but to grow as big and as fast as possible within the frameworks of its socio-economic-political environment.

When nature allows something to grow larger than its environment normally allows, we call it an anomaly, a grotesque freak. We observe it with morbid fascination, and are not surprised when it inevitably collapses and dies.

Conversely, we have the bizarre fascination and compulsion to grow our own systems to such gargantuan proportions, totally warping all sense of reality and sustainability. One day one of these experiments will take us with it when it goes down.

It's happened before you know. Many many times.




A little Flash help please?

So um... I have this Flash-based IRC client that we--GlobalVoices-- need tweaked a bit, both aesthetically and there's a strange behavior we would love to see straightened out...

I know exactly zip about Flash. It seems the source is Flash 6? I opened it in Flash 8 and my eyes rolled back in my head.

Anyone with really good Flash skills and an hour to kill sometime in the next 24 wanna give us a hand please? For eternal gratitude and glory? ;)




Summing it up

My post on "it's not about you" the other day sparked a good thread of debate which culminated in Hugh staking some key points, and Karl responding very clearly and directly, and in my opinion, right on the money, so to speak.

If that's not your thing, here's a picture of me scratching my neck in front of some sakura.

Bopuc-Sakura

:D




Say it like it is, brotha!

Joe Clark drops one hell of a rant about everything from web acessibility, web 2.0 and stooped conferences.

And really, the Pied Piper of Ajax, Jason Fried, is principally responsible for this mess. I’m getting a bit tired of having to remind the leader of the pack and his Opera-style fanboys that accessibility isn’t an option (add “anymore” if you wish).

/.../

So, with the Mesh Conference, we’ve got these five middle-aged Toronto guys who, I presume, recently converted from IE6 to Firefox, which makes them totally up to the minute. They got the brainwave to start a conference about Web 2.0. A conference, in other words, celebrating a rampantly mediocre development trend that stands squarely at odds with everything real Web developers like me and my friends have been trying to do for the last six years.

Do you think these people even understand what I’m talking about? Nope. They are apparently incapable.

Woohooo!

I gotta respect the fellow shit-kicker, even if sometimes it's me he kicks. ;)




It's alive!

Before leaving for Tokyo, I mentioned how I was looking forward to getting back to Montreal for the summer. More specifically, what I told a few people in person was I was particularly looking forward to watching, and perhaps being a part of, the blooming of a rather good bacterial culture starting to take hold at my favorite hang out of late, Laïka.

Laïka is essentially a neat little café/bistro/bar in my neighborhood, known to be a hang out for many of Montreal's digital culture makers. Until Ile Sans Fil set up the free WiFi hotspot there, that group comprised mostly of francophone electronic musicians and video artists (not exclusively, but mostly), as well as scenesters, students and various young artists who could afford the $2.50 coffee.

The Wifi brought the web-geeks. Amen.

Over the last 6 months, many many ad-hoc conversations have sparked up and some really great people started showing up, talking and doing cool stuff. Community! Yay!

Michael Lenczner with Ile Sans Fil, WifiDog and all his great ideas.
Hugh McGuire with LibriVox and... something else. ;)
Julien Smith, podcasting hip-hop, but thinking about it all quite a bit.
Brett Gaylor, videoblogger, film-maker, also thinking and talking about it all.
and a few others I have yet to meet or fully contextualize for myself.
Steven Mansour seems to lurk about on occasion and that I am very happy about too.
(Notice that the local "usual-suspects" and "movers and shakers" are absent... too busy at their jobs. ;)

Anyways, it seems I missed a monumental caffee-clatch which spawned a multi modal discussion online after the fact.

The overall theme is "open information" and "what the heck are we doing with all this web stuff?!", and was no doubt sparked by Michael's enthusiasm for what he is calling "open access to civic data." Way. To. Go.

So that was the set up, here's the conversation:

Hugh's write up of the Laika talk, and comment thread.
Robin Millett's blog entry.
Bretts videoblog summary and reply.
Hugh's vlog reply and continuation.
Mike said a few words on his blog too. ;)

I KNEW this was gonna get good-er. All the more for me to look forward to.

(Apologies to any egos that got bruised in my rough and certainly incomplete round of references... There's only so much I can "see" from this side of the Pacific at 2am.)




It's not about you

At least not the way you may be led to believe it is.

With apologies to Stewart and Caterina, the whole Flickr team and all the folks involved in this "Web 2.0" stuff, who, for the most part, are truly wonderful people and bring us wonderful things.

It's not about you, it's about your data--or "bits of your life digitized and uploaded"--and the way you structure it and contextualize it and share it. That's what the big money hubbub is about.

You see, what happened is this: enough dot-com bubble casualties, many of them web designers and programmers and information architects and the like--people who knew how to publish to the web, be it text or photos or audio files or video pieces--got tired of doing it by hand, coding up html and maintaining whole websites. They decided to build tools to automate all that. They called them Content Management Systems before, when they still had their jobs building large e-commerce sites in 1997. But now they started using them to self publish, and they added a few really nice features like comments and "RSS feeds". Weblogs were born and slowly but surely over the last 3-4 years... well you see what happened.

"The promise of the web has been realized!" "The read and write web!" More or less. It is truly great stuff, don't get me wrong. I ain't knockin' it, even if I am nibbling on the hands that feed me.

But that's not what the bankrollers are on about. They don't care about your newfound ability to publish your thoughts or your pictures. They are just glad that you are doing so. Why? Because in an information based economy, data is your primary natural source. And flow of data creates movement which can be harnessed.

Like a water-mill.

The difference is that these millers don't need to go find a river: they can make one. And that's what sites like Flickr, del.icio.us, Upcoming, YouTube, Newsvine and the lot of them, have done.

Centralize, centralize, centralize. Concentrate and control.

What that means:
1- your data is not under your direct control.
2- what is done with your data, is not under your direct control.

So what? What are these people doing with your data? It's pretty simple: they use it to drive advertising revenues.

Here's how. I mentioned structure and context. When you publish something, share it, you try tell a story; you labor to package it up, give it meaning (semantics through communication technologies, like language) and you place it on the web within a context, be it via categories, tags, links to related information. You are organizing data.

To folks like Google and Yahoo!, that is worth gold. Literally.

Before I continue, lest I be labeled disingenuous, I should make clear that I am NOT railing against all this. I use Flickr every day--more like 300 times a day; it's my #1 destination, almost as often as my email inbox--and I manage weblogs that sport Google Ads and Technorati tags and del.ico.us links and all that stuff. I just want to try to make sure people actually realize what is going on.

We are all working for them. For free. That's how it's "about we". It's not a "media revolution", it's a reversion to feudal medievalism. "Voluntary servitude" it's been called (back in 1548!) (This is worth a read too though it has quite a Marxist taste to it. ;p

The counter argument is "but they are providing a service which in order to survive must sustain itself economically somehow, and you free information people are the first to yell "information wants to be free" and so it is and we can't rely on subscription or pay-per-content schemes." Totally fair. And services like all the above mentioned all do fairly decent jobs of providing ways to export and retrieve your data. One way or another, you gotta pay to play, right?

The malaise remains however: they are profiting from our ignorance (or forgetfulness). Whether it is ignorance of their actions or ignorance of your abilities (to do any of this yourself in a de-centralized way) or rights.

Now if you'll excuse me, I have to go check what pictures my friends uploaded, what links they bookmarked and who's talking about me.

This has been another poorly formed and expressed rant brought to you by a bottle of sake, three deadlines and 12 hours in front of too many screens.




Adding missing features

I spent the end of this past summer building the USC Interactive Media Department's website/weblogs/aggregator system. As I said back then, it was a heck of a fun project and I realize now that it gave me many of the skills and certainly a lot of the technical confidence I needed to then tackle GlobalVoices Online as well as everything that has come up since then. Nothing beats learning by doing and trial by fire.

I briefly explained the slug system I built for the IMD site, and I won't get into the details here now, but in a nutshell... All IMD users have their own blog, from which they have a "del.icio.us-like" tag (I call them slugs, because they are a controlled, system defined and relied-upon vocabulary) selection UI which "marks" an entry for "cross-posting", or more accurately, it adds a keyword which the concerned aggregators built into the site then look for.

The homepage is an example of this. It displays entries "tagged" (slugged) as "main" in the center column.

Now, that was 6 months ago. From day one, Scott had complained that entries in the aggregators would roll off the page after the proscribed 20 "most recent entries", with no way to "find them again". In other words, the date context was lost. I needed to figure out a way to get back to them: an archive system.

Six months went by, and I learned all about multi-axis contexts. Heh. I also kept putting it off.

Until tonight.

You'll notice on the main page, as well as the Research area "weblogs", Games, Immersive & Mobile, that a small pulldown menu appears under the green title. The menus allow you to select a month that is known by the system to contain entries, as well as a count of those entries. (The display of this is kinda iffy... not sure I will leave it like that.)

I'll get back to the pulldown in a moment, for it is the "really cool" part of this.

The first thing I needed to do was to modify my slug.aggregator function so as to accept a date context. In english, that means if I ask for "the main page archive for August, 2005", that's what I want to see. (Notice the "2005-08" in the URL there? That is my date context.) This was mostly quite easy to do, especially once Francis taught me how to request database entries throttled by year and month:
MONTH(entry_created_on) = '08' AND YEAR(entry_created_on) = '2005'
(Notice the brilliance of that SQL WHERE: first it looks for entries created in August, the from those only the ones created in 2005. So efficient! Merci encore Francis! ;)

Ok so that went well. Now, the pulldown...

The information I needed in order to generate this pulldown seems pretty straightforward--"give me a list of months where entries with the slug "X" appear, and give me a count of how many entries there are while you're at it"--but the reality of the situation was not so rosy.

You see, the dirty little secret, the Achilles heel of what I built for the IMD site is the fact that the slugs system relies on the keywords field associated with each blog entry. If I want to get all the entries that have been slugged as "main", I have to run though the entire table, looking into each keywords field and character matching in search of the string "main". Some of you are already cringing... yes... I do a "keywords LIKE %slug%" request. This is a dirty, nasty, mean thing to do to a database. But let's not dwell on that.

The fact of the matter is that executing such a request on every page load is not a good idea... especially since I am already doing just that just to render the content. Heh. Also, realistically, the data that generates that pulldown only needs to be requested from the database every so often.

Enter CRON and JSON. (I just lost 95% of those left reading... )

So the solution goes like this: every 24 hours the server runs a script which goes and gets the date-context arrays I need to generate the pulldown, converts it from volatile PHP memory to a string of JSON and writes it to a cache file. Coincidentally, the PHP library that handles this JSON conversion was written by my pal Michal Migurski who just keeps doing cooler and cooler stuff. Getting this JSON stuff to work was a snap. It was SO easy, I literally got up and danced a jig. Thank you Mike!

With that figured out, writing a small function to read the cached data, convert it back to a PHP array and then output the html that renders the pulldown was child's play. Copy and paste the function call across aggregator screens, done.

I feel So much better now that I got this done. Not only to have finally delivered the goods, but it was an easy quick learn of a few things that will serve me VERY well as I move back to extending GVO's interface (as well as a few others...)




Virtual Real Estate

From Dav's Flickr stream:
Dav SL 1
Dav SL 2
Dav SL 3

Dav laments and sells his Second Life plot of land because of the overdevelopment in his neighborhood over the last year. Amazing!
Dav, I'll come visit your new waterfront spot!




WordPress Loop hack/replacement with logical operands for multicategory listings

I just posted this on the WordPress support forums, see if it gets me anything. If you here have any thoughts please please please get in touch. :)

Hi gang,
While poking around for this post, I discovered that WP does handle multi-category listings when you feed it ?cat=23,54,76 but does so with (I think) an OR logical operand.
In other words, it returns posts categorized as any one of the requested categories.

My needs are bit more elaborate... First of all, I'd like the above example to return *only* posts categorized as *all* the requested categories (post is categorized as 23, 54 and 76. If not, I don't want it.)

Further, and this is where it gets really tricky, at least too tricky for me right now, I'd like to mix and match both logical operands.

for example I'd liek all posts that are categorized as 23, and either 54 or 76 (23 and 54, 23 and 76, and --if existent-- 23, 54 and 76)

This means introducing logical operators in the query string and parsing them out right?

?cat=23-AND-(54-OR-76) or some such.

For now I'd settle for the first one though... any ideas? Any existing plugins? I'm willing also to forgo pretty URLs for this feature (i.e. no .htaccess rules required.. dealing with /categories/china-OR-india-AND-free_speech could get nasty.)




Happy 2nd Birthday Flickr!


Mosaic: Happy Birthday Flickr!
Originally uploaded by jbum.
Wow, I totally missed it this year.
Happy birthday gang!! Thanks SO much for this wondrous world of marvels.
I moblogged Stewart, Ben and Eric introducing Flickr at ETech 2004, and I was lucky enough to be in Vancouver for the 1st birthday too. Sigh. :)


On the success of weblogs et al

The success of all these things such as weblogs, websyndication, etc, is directly attributable, I think, to one basic fact: weblogs are basic, rudimentary Content Management Systems. At risk of over-simplifying, I say that human intellect, human intelligence itself, in vasty varying levels of sophistication, is also a Content Management System.

And while over the course of human development we have evolved methods to bridge all our individual Content Management Systems, by using such technologies as speech, writing, printing and their myriad extensions, in keeping with the acceleration afforded to it by "electric communication", it is in the past 10 years that we have built the infrastructure for what we have over the last 3, seen emerge.

It is still early. We have not yet transposed semantics into what we have built recently yet. That will come. Soon.

I gleefully repeat to anyone who will listen, that we are "building out telepathy", echoing McLuhan's "we are extending our central nervous systems"... though we have overshot that already! The nerves are laid out in fiber optic, cable, wireless and POTS world-wide, the basic methods of sending data standardized in protocols layered in the TCP/IP stack (HTTP is a layer in that; the Application layer).

We began relaying messages at first. Now we have begun structuring the messages. This will continue.

All our technology is externalization of ourselves. As such it is fundamentally organic and follows easily predictable paths; if you have the patience and know how to tend a bonsai tree...




Some cool obscure web politics and geekery

While I was out to dinner, I was alerted via IM to two interesting things.

First, the BBC has become a member of the W3C. That is fantastic news. Especially with this past information in mind.

And, while already 3 years old (not that that matters), "Gregorian Calendar URI Space" seems somehow VERY cool and interesting to me, even though I am not entirely sure how or why yet, and despite not being particularly keen on having "interval" or "gregorian" (or the full name of any other time keeping system) written out like that in a URI. (Not that that really matters either... a URI is an address, an abstraction not necessarily meant to be human readable.) But certainly I find the idea of setting a time-based context slice via URI very intriguing, especially with a formalized standard.

"The content of this resource is specifically contained within this time space." A timestamp alone is either too precise -- at this very second now -- or far too general -- today, this hour, this minute, this month, this year. With a range you can much more clearly bind something to the temporal context. "During these 3 hours of this day."

Anyways. To keep in mind.




Comparing

Long story but yesterday over lunch with my new good friends John and Colin, I committed to building this side-by-side comparison of Google China and Google in Chinese for the OpenNet Initiative.

The reason for doing this is explained thusly:

On January 25 2006, Google launched Google.cn, a self-censored Chinese-language search service, a policy shift which follows Yahoo! and Microsoft's recent decisions to provide censored internet services in compliance with Chinese state censorship policies. Google informs its users when their search results have been filtered (to date, Microsoft and Yahoo!'s Chinese search services do not), and provides users with a link to the unfiltered Google.com home page.



Backchannel

Justin's made his backchannel experiments an official project at the USC IMD, where he is studying.

Having experienced several types of backchannel setups myself, though never of the intensely focused and tweaked 14 screens of the ZML, I can say it is definitely not for everybody. You have to not only be of the kind of mind that can assimilate multiple input streams at once[1] and need to prepare yourself beforehand: being aware is key.

[1] This reminds me of the warrior's gaze, as explained in Miyamoto Musashi's "Book of Five Rings":

In regards to the Gaze of someone, he notes that a person must be able to perceive that which is all around him, without moving their eyeballs noticeably, which is said to be a skill which takes an enormous amount of practice to perfect. He notes that this is again one of the most important parts of strategy, as well as being able to see things which are close to you, such as the technique of an enemy, or far away, such as arriving troops, or enemies, as that is the precursor of battle, in that your actions go off what you see.

Anyways.

ConstellationW3 had a setup like this as well apparently at their last big thing at the S.A.T. (I missed the event and the site seems down so nyah...)




Dynapfffffff~~~

Remember I asked about "when was the last time you wrote out an entire webpage" a few weeks back?

Good lord that was still in this same month! So much has happened since then... I remember discussing this at Laika with Karl even! A lifetime ago...

Anyways, sort of lost in that entry was the point that I haven't built a whole website by hand in ages. For the last few years it's due to all these fancy CMS we now have, but even before that I had my own little PHP-based package which allowed me to build entire websites, navigation and infrastructure and plumbing and everything, in minutes. Set it up, put all the content in, move stuff around until "the client" is happy with the architecture.. then skin it. (Its predecessor was hacked together with xSSI variables!)

I have to put up a whole site pronto for something very important. I just tried setting up my little wonder on two different servers (one being "the client's") and it unceremoniously failed. These high-falutin' fancy hosting packages break when you ask for $_SERVER['DOCUMENT_ROOT'], which means I seem to be shit outta luck.

I am faced with the prospect of a ... gulp... static website! Argh!! Over my dead body.

Adriaan, we gotta fix yer goddamn server. ;p

Update:
Just quickly, here are four totally different paths on the same system all supposedly poitning to the same "place". The first three are available to PHP and th efourth is what I see in my SFTP client:

  DOCUMENT_ROOT = /home/www/htdocs
SCRIPT_FILENAME = /home/www/vhosts/name.com/_/test.php
       __FILE__ = /home/www/vhosts/name.com/www/test.php
           SFTP = /home/name/web/www/
Obviously the next step is to actually try each one, but eh, I'm going to bed now. ;)


It slices, it dices...

This is getting kinda absurd...

Quitomzilla helps you quit smoking while you surf the web or wait for new emails, showing the cigarettes, money and time you have saved since you quitted.

Yes, a webbrowser extension, which aids you in quitting smoking... somehow... not sure how... oh right by constantly reminding you about cigarettes. I see. Brilliant.
(It also works out your subconscious greed muscle: "I saved sooo much money!")




Tim Berners-Lee's weblog

TBL created the web. Now Tim Berners-Lee has a weblog. Good first post too!

(I'd quote here but you really need to read the whole thing... to give you a little history lesson. ;)




Dynamo

For some, if not many of you reading this, the answer to the following question is "never." But I pose it anyways, really addressing the rest of you.

When was the last time you wrote out an entire webpage, in HTML, by hand, to be displayed as is, no scripting or templating involved?

I've been doing this for 10 years, and I can honestly not remember the last time I did.

This is very, very telling. (And I use a text editor to do my work, without any "macros" of any kind.)




"after building up a fan base on the internet"

Sheffield rock band the Arctic Monkeys have topped the UK singles charts with their debut track, after building up a fan base on the internet.

"I Bet You Look Good On The Dancefloor" trumped pop trio the Sugababes after three weeks in the number one spot.

Arctic Monkeys gained a significant following thanks to the marketing power of the internet, and were eventually signed by Domino Records.

Arctic Monkeys were widely predicted to enter the charts at number one.

The band has been communicating with fans almost daily on their [myspace] forum, and concerts have sold out around the UK. The buzz was picked up by record label Domino, home of Franz Ferdinand, who signed them in June 2005.

And to boot... they're actually good. BBC Radio 1 had them on Steve Lamacq's show a bit back:

From groups such as the Gorillaz, the poster-band for the digital age, advancing the possibilities of music and live performance in ways others are struggling to keep up with to bands such as the Arctic Monkeys who are leading the way for the underground. They are all realising the future of music.

Good good. Reminds me of The Streets' song "Let's push things forward" (early 2002).

Thanks for the tip Adrian.




Look! Up in the sky!

FlightAware. Wow.
(ugly but ... hell there's alot of data, and it is blazing fast.)


How live is FlightAware's tracking and status data?
The data displayed on FlightAware is typically six minutes delayed from real time.
How often does the data update or fresh?
For operational efficiency, the data is being read unceasingly and being processed in spurts. Generally, FlightAware does not receive position more often than per minute. Pages will automatically refresh as appropriate.
Where is this data from?
FlightAware compiles, aggregates, and processes data from a variety of sources including FlightAware's proprietary algorithms providing updated arrival time estimates to offer the most up-to-date and reliable flight tracking data on the Internet with useful and intuitive supporting information.

I tried to register on their public forums to suggest having an archive scheme accessible via dated space URIs. You know, like bogs? So you can point at something persistent reliably. "I was on this flight." (They have a dated activity log, which means they have the data... I don't mind registering for a permalink!)

via Julian Bleeker's flickr stream.




Madonna 2.0

It's flash! It uses email for submission! But it's got tags!
Ladies and gentlemen, Madonna 2.0!

via Karl via Laurent




,tools

This is very very cool to me and one of those "duh! of course! simple brilliance!"

Emulating W3C ,tools with mod_rewrite

Basically, it allows a visitor to use their browser's Location input as a CLI (Command Line Interface) to any page on your site. The above-linked example offers only a few of the possibilities.

,validate
,checklink
,rchecklink
,text
,cssvalidate
,links
,blinks
,cacheability

Just added ,technorati

RewriteRule ^(.*),technorati http://www.technorati.com/search/%{HTTP_HOST}/$1 [L,R]

and using Google translation:
,en2de (german)
,en2fr (french)
,en2it (italian)
,en2sp (spanish)
,en2pt (portuguese)
,en2jp (japanese - baaad)
,en2ko (korean - baaad)
,en2zh-CN (simplified chinese - baaad)

RewriteRule ^(.*),en2de http://translate.google.com/translate?u=http://%{HTTP_HOST}/$1&langpair=en|de&hl=en&ie=UTF-8&oe=UTF-8&prev=/language_tools [L,R]
RewriteRule ^(.*),en2fr http://translate.google.com/translate?u=http://%{HTTP_HOST}/$1&langpair=en|fr&hl=en&ie=UTF-8&oe=UTF-8&prev=/language_tools [L,R]
RewriteRule ^(.*),en2sp http://translate.google.com/translate?u=http://%{HTTP_HOST}/$1&langpair=en|sp&hl=en&ie=UTF-8&oe=UTF-8&prev=/language_tools [L,R]
RewriteRule ^(.*),en2it http://translate.google.com/translate?u=http://%{HTTP_HOST}/$1&langpair=en|it&hl=en&ie=UTF-8&oe=UTF-8&prev=/language_tools [L,R]
RewriteRule ^(.*),en2pt http://translate.google.com/translate?u=http://%{HTTP_HOST}/$1&langpair=en|pt&hl=en&ie=UTF-8&oe=UTF-8&prev=/language_tools [L,R]
RewriteRule ^(.*),en2jp http://honyaku.yahoofs.jp/url_result?url=http://%{HTTP_HOST}/$1&setting=lang=ja|db=T|eid=CR-EJ&eid=CR-EJ&both=T [L,R]
RewriteRule ^(.*),en2zh-CN http://translate.google.com/translate?u=http://%{HTTP_HOST}/$1&langpair=en|zh-CN&hl=en&ie=UTF-8&oe=UTF-8&prev=/language_tools [L,R]




LibriVox

Friend Hugh started up a neat "sorta Project Gutenberg for audio books" called LibriVox. The project has gotten some good traction and attention - Hugh was invited to the recent Open Library launch shindig by Brewster Kahle - and he's confident that the catalogue's growth is progressing exponentially.

LibriVox volunteers record chapters of books in the public domain in digital format, and we release the audio files back into the public domain (catalog and podcast). We are a totally volunteer, open source, free content, public domain project. Our objective is to make all books in the public domain available, for free, in audio format on the internet.

LibriVox is always looking for volunteers, to read and record chapters of books in the public domain, but also to help with other aspects of this growing project: technical (cataloging, social networking, web design, communication); graphics; publicity; coordination of volunteers etc etc... We have about 80 volunteers right now, more than 10 books finished, and we expect to have 30 done by the end of 2005. Right now all our titles are in English, but we hope to have other languages soon. Come help us out.

Up for some reading out loud? :)




BBC catalogue begins development

Biddulph and Hammersley are on the case.

Screenshot 1 (Searching for "John Peel") and screenshot 2 ("John Peel's contributer page")

I think I would have dropped everything to play on this project too. Sigh. ;)

My favorite line in Biddulph's entry is:

"Nearly a million programmes are catalogued, with descriptions, contributor details and annotations drawn from a wonderfully detailed controlled vocabulary."

Ahhhh structured data.

And from Mr.Hammersley:

it’s all developed in Ruby on Rails, and has oodles of Ajax, and tags, and RDF, and FOAF, and Sparklines, and Microformats, and just about everything else we can fit in. If you’re a Semantic Web or Microformat bod who wants a particular feature, email me and I’ll see what I can do.

I am very pleased by these two entries, the fact that the BBC archive is happening aside; both guys mention traditionally defined as Semantic Web tech, like RDF and FOAF, alongside the young whippersnapper "Web 2.0" stuff like "AJAX" and... uh... what's the other... oh yeah Microformats. (heeeheheeee... I am gleeful to notice just now, no mention of "RSS" and "OPML"! Yay!!!) All done in the programming language Ruby, using one of it's web-app frameworks, Ruby on Rails. (I tried getting into 'rails but just couldn't grok the environment. "Hunh? Better to not use Apache? Hunh? I need to initialize an instance? Whaaa?" Oh well. Django, the Python equivalent seems much simpler...)

I digress... point is, I'm glad the dust is settling and we are seeing that it's all good and let's move forward just building cool stuff. Right? Right.

So, as Manuel would say: "Yes! You... Men! Work."




Immersive Web

About a week ago I went for chinese food with Michael. We hadn't seen each other in a few weeks and Mike had just returned from what seemed like a very exciting trip to Europe. He recounted parts of his trip and his recent move, and once we had finished, the carbo-coma kept us in our seats. As I poured us some more tea, I said to him: "so, I've been thinking about this thing lately... the Immersive Web."

Disclaimer: I am fully aware that there are loads of people who have been thinking about this stuff for a long time, who naturally know waaaay more than I do, etc etc. And while I've taunted Joi about his recent World of Warcraft "research", I trust implicitly that he knows what he's doing and doing it for good reasons. (No seriously. But I just had to link that PotatoChopped picture ;)

In a nutshell, what I mean by Immersive Web, is the combination of everything we know about 3D, virtual reality, networked "video games" and Open Source software projects, Open Standards, interoperability, accessibility, "self publishing", sharing and the whole kit-and-kaboodle linked with URLs.

Michael got really really excited and made it very clear that he definitely thought this was a very very important topic and one he had been thinking about for a long time. I knew he had some involvement with the 3D/games stuff through GameCode, but didn't realize it was something he held so close. Sometimes stuff goes over my head... or... in one ear and out the other... ;) I should also add that Michael's web-handle is mtl3p: "Montreal third place".

Fast forward to this afternoon: I am sitting in the conference room at the Berkman Center for Internet and Society, at the tail end of a Fellows meeting and the topic slowly shifts to "virtual worlds like Second Life and such". Some words fly out of my mouth, some hand gestures are made, some glances are thrown and all of a sudden I have volunteered Ethan and myself to write a 2 page paper on how/why Berkman should get involved in online virtual spaces, or something like that. Wahoo!

I shoot an email to Michael telling him such. Thirty minutes later he replies: "wow." "Goes fast doesn't it" I send back. A few minutes later my phone rings and it's him of course. "So, you at home? Whatcha doing?" "Dude, I'm at Berkman..."

Hehehehe. Then something funny happened, and I did something I haven't told him I did yet. Michael starts explaining why he thinks that my naming it "Immersive Web" is very very important. He is VERY excited as he is explaining this to me... so I switch my phone to speaker mode, letting Ethan listen in. ;)

Now, Michael does a really great job of explaining the socio-politcal and cultural ramifications of all this stuff and the naming, but I also needed to express an actual scenario of how I see an end product of "Immersive Web".

It came to me in two pieces; the first on the way to dinner, talking with Ethan, and the second walking back to the hotel after dinner, talking with Rebecca.

First of all, it should be relatively easy for me to upload and setup my own little "virtual place" on a server somewhere, the same way I can upload and install a weblog today. It shouldn't matter which "vendor" or "package" or "distribution" I choose, it should be able to be part of the greater community; the same way it doesn't matter, as Rebecca correctly pointed out, if I use Movable Type, WordPress, TypePad or Blogger to blog: I can still publish HTML and various RSS feeds, leave comments and have comments left for me, be aggregated and searched and most importantly, I can link and be linked to (that's what the Web *IS*).

Ethan pulled at the logic and we arrived at the question: "ok so what do we do with this?" 3D chat avatars are hold hat. Yawn, been there done that, right?

I emailed a scenario of use to Michael stating thusly:

"Let's say I want to share with you what it's like to stand at Hachiko Square in Shibuya, Tokyo. In a full featured and flexible immersive web environment, I could pull together various "media" from my personal archive and construct a very personal view/experience, pulling together perhaps a Google Earth/Map type of geo visualization, stitch in a bunch of photos I may have taken, a few other people have taken (pulled in dynamically via RSS feeds of tags from Flickr for example, and made available to me), play a recording I may have taken while there (or one someone else took and that I pulled down off the web, perhaps CC licensed?)... Imagine I could actually go and grab a premade virtual wireframe framework of that whole area, and "pin on" it my memories to share with you ... and whoever I gave the URL to it to."

(I should rewrite that to make it less redundant and to the point... it was stream of consciousness...)

Ethan pointed out : "but I can do that on a webpage now!" Yes and no. You can assemble all the bits and pieces but until you stitch them into an "environment", a situated and explorable "space", they remain just fragments, barely held together with some sort of narrative context which depends on the storyteller's story telling ability.

(Granted, very few people can create stunning 3D environments in even the simplest 3D CAD or game authoring system, but give any child a glue gun, a marker, some materials and a wall or four and watch the world he/she creates for you! Also, not every weblog is a impeccably designed masterpiece... most are straight default templates with a photo here and there...)

I also threw in:

"Two things that gave weblogs traction were: "simple" webpage making (post an entry and the webpage is "made for you") and the fact that the created "page" had a unique URI (a "permalink").

The first steps of Immersive Web is about laying the groundwork and making the infrastructure decisions which will eventually allows us "simple" "3D environment making" and giving it a URL..."

Another aspect that Michael is very keen on driving home is the fact that we have learnt over the last 10 years how to manage large scale distributed development of open source software projects. (Need I say it? Linux? Amongst hundreds of thousands of examples...) This is key since 3D virtual stuff, networking protocols, communications standards, programming etc etc etc ... all the stuff we will need to do to make something like an Immersive Web happen will require alot of work by alot of people with a lot of different skill sets.

I think it can be done.

(I am hoping to spend a good amount of time at the USC Interactive Media Department this winter. When I mentioned all this to Scott Fisher, a pioneer in the field of immersive media, his answer was immediate: "sounds good! let's do it!" Awesome. :)




Googoomania

Some people...

Walid Elias Kai, who has a doctorate in search engine marketing, and his wife Carol of Kalmar, Sweden, have named their son Oliver Google Kai




Absurd development

(I'm getting tiiired of this...)

I'm looking at SynchroEdit, a development project to allow "synchronous editing for the web". Let us, for one second, forget that the web was conceived to be two-way, synchronously editable, from day one. (Hah! Tim even wrote WordWideWeb in CamelCase!!!) Looking at the architecture diagram I am struck by the sheer absurdity of it.

Why absurdity? Because a full 80% of the work SynchroEdit needs to create various JAVA and AJAX server modules and client libraries to accomplish, could be solved and done by a technology we've had for almost 10 years and use everyday. You're using part of that technology right now: HTTP 1.1. I spoke a bit about the various commands HTTP specifies recently.

HTTP PUT, combined with Access Control Lists (ACL) and a Version Control System (VCS), both technologies that have been in real-world use for years, and an existing JavaScript-based WYSIWYG library, you can achieve the same effect as SynchroEdit seeks. In fact I have seen this very system in active use.

I am further shocked by some of the names associated to SynchoEdit: The architecture diagram specifies Mozilla support only. Mozilla supports HTTP PUT. Not only is SocialText funding this but Joi himself, who sits on the Mozilla board also, as well. Did I miss a memo? Why was I not consulted? ;)

"Those who do not know history are doomed to repeat it."
That and continuously reinventing the wheel... and wheels within wheels... :p




I was worried but now I am relieved

This will sound like ass-kissing but I assure you it's not. Joi finally posted a really great entry after a long quiet period. (I know I know, research. Daijobu.)

More than that, it runs parallel to my suspicions regarding "what's next" and it is very exciting to me because what's next is what I have been dreaming of for as long as I can remember. And now, very soon, it will be possible.

:D

Yup, I definitely need to hang out in California this winter.




A slight detour

RSS et al are merely a temporary detour, a quick outgrowth which we needed to bring us back to the Web.

Consider this: syndicated items do not have URIs for their "locations" in the feed. They always point back to the web/html version. Put philosophically, they don't exist.

I do hope XHTML 2.0 (hah! somehow ironic in current context) is resolved and pushed out and implemented properly.

(When CSS2 was released in 1998 - yes 1998 - everyone screamed and howled about how complex and unmanageable it was... Now web-designers couldn't live without it and are clamoring for CSS3 support...)

Remember: only YOU can prevent forest fires.




Yahoo acquires Upcoming.org

I'm drunk so I'll do this. Cue Star Wars "The Imperial March"
Yahoo! acquires Upcoming.org

dum dum dum dum da-dum dum da-dum...

inside joke: (Hey Mike, synchronize yer calendars! Here we go!)




The best thing about "Web 2.0"

The absolute best part is this: when Bubble 2.0 comes around and sweeps by, the whole affair will have been so thoroughly documented, annotated, tagged, conversed about, permalinked and RSS'ed... that the future Web 3.0 Blowhards will really need to actually *know* their history[1].

Good lord, I just saw this... This is getting absurd. "My" "Web2.0" "Beta". Must be a joke...

[1] From RFC 2616 (Hypertext Transfer Protocol -- HTTP/1.1):

9.5 POST
POST is designed to allow a uniform method to cover the following functions:
- Annotation of existing resources;
- Posting a message to a bulletin board, newsgroup, mailing list,
or similar group of articles (or a comment to a weblog);
- Providing a block of data, such as the result of submitting a
form, to a data-handling process;
- Extending a database through an append operation.


9.6 PUT
The PUT method requests that the enclosed entity be stored under the
supplied Request-URI. If the Request-URI refers to an already
existing resource, the enclosed entity SHOULD be considered as a
modified version of the one residing on the origin server.




My other new blahg!

Yahoo! SiteExplorer

Michal: there's no escape.

bopuc:
.htaccess [1]
robots.txt [2]

Michal:
sudo apachectl stop [3]

bopuc:
hehehe
ACL [4]
i don't want to stop talking, I want Them to stop listening ;)

Michal:
ha, yeah

The popular misconception is that Big Brother is some sort of government consipracy. This is wrong. Big Brother is a commercial enterprise. :)

All your blog belong to us. Keep talking.

Stop da man:
[1] .htaccess: special file used by Apache webserver which allows, amongst other things, to block access to specific resources (like web pages) based on rules.
[2] robots.txt: special text file used by convention to kindly inform respectful search engine "spiders" (a.k.a. robots) to please not index this, that and that.
[3] Command for quitting the Apache webserver process. In other words, turn off the webserver.
[4] ACL: Access Control Lists. 'Nuff said.




Real browser war

I thought of doing this recently. I can't imagine that no one has suggested it earlier.

The amount of times I have heard web developers curse Internet Explorer, only to then sigh, shrug and say "but it's the client's site so...".

Sure, that's fine but... what about YOUR site. I mean your weblog, your personal publishing outlet; you know, that thing that doesn't exist solely to make someone money.

What am I saying? I am saying: shut 'em out. "This site cannot be viewed with the Internet Explorer web-browser. Please download one of these..."

I think WASP used to have a page sort of like this that you could redirect to based on a simple browser detect, but that was years ago, before the Firefox sweep and associated awareness building of how bad IE is. Perhaps now would be a good time for a whoooole bunch of us to do this... ;)

Whatcha thinks? A couple of prepackaged Javascripts people can pop in their pages, plugins for the various blog systems, etc.




Patterns in Google/Yahoo hirings

Karl has been scouring the web for the last few days looking for all public reports of people hired by Google and Yahoo... and has added them in the comments of my previous post on the subject.

It's a loooong list and quite revealing. Somewhat shocking in some cases even.
(We should put it on a wiki somewhere...)




Google swallows the internet whole, and you with it

First, it was about "indexing" all of the web. Then, it bought a small chunk of that web (Blogger). Then Google said "hey, there's more than the web out there!" and Google Mail was pushed out. Quickly followed by Google Talk.

There was some murmuring recently about something initially called "Ajax Office", wherein you could do all your word processing and spreadsheet work in a web browser and the files would be stored on a remote server. Google was mentioned as "a good place to do it".

I'm not sure what the deal is here but check this out... Google Wifi. Here's the salient part of this:

Why would I want to download and install Google Secure Access?

Google Secure Access allows you to establish a more secure connection while using Google WiFi. By using Google Secure Access, your internet traffic will be encrypted, preventing others from viewing the information you transmit.

Does Google Secure Access connect to a VPN server?

Yes, Google Secure Access connects to Google's VPN ("Virtual Private Network") server provided for this service.

As with everything Google does, yes this is a very good and very much needed service. But what this means is that everything you do on the network goes through Google's servers.

What sort of information does Google have access to?

If you choose to use Google Secure Access, your internet traffic will be encrypted and sent through Google's servers to the Internet. The data that is received will then be encrypted and sent back through our servers to your computer. Your privacy is important to us, we strongly encourage you to read our Privacy Policy to be fully informed about how your privacy is protected.

Oh please. Policy? A few words to soothe my worries? "Policy" is as weak as the paper it is written on, not to mention the laws of the country they are used in. (For example, it is the policy of Yahoo! China to share the contents of their database with chinese police.)
Encryption? You're joking me right? We're talking about the single largest networked computer in the world. Not to mention they are the ones encrypting the tunnel for you. You don' think they can decrypt it?

Is there a fee for using Google Secure Access?

No, Google Secure Access is free.

Of course. You are supplying them with their main invaluable natural resource: content. For free. Who's getting the real bargain here?

Nothing is free, and if it sounds too good to be true, it probably is. ;)

Trust is something that must be fluid and reflexive. Faith is very very dangerous.




Quiennes mas macho?

"Advancing the Effectiveness & Sustainability of Open Education"
($250.00 USD)

o

"Web 2.0"
($2,795.00 USD)

Gee. I wonder which would be far far far more interesting, stimulating and worthwhile...
$600cnd flight to Salt Lake City... hrmmm...




That was quick!

"Apple supports video podcasting"

Seems they "turned it on" without telling anyone.

Told. you. so. :D




My new blog

Well, here it is. My new blog, complete with Atom & RSS feeds, language [fr] switches [de] and "references"...

I think I will call it... "Xanadu"... yes... that sounds right. A centralized master document of all the web, tailored to my needs at any given moment.

(It's a little rough and not up-to-date, but it's a start... )




Trust

Growth

"Lead Camino developer Mike Pinkerton has announced that he has accepted a position at Google."

Public (and there are more such announcements coming)

  • Micah Dubinko -> Yahoo
    XForms Specification Editor

  • TV Raman IBM -> Google
    Participant of many W3C working groups

  • Flickr Team Ludicorp -> Yahoo
    includes Stewart Butterfield, Caterina Fake, Eric Costello, Cal Henderson, George Oates, John Allspaw, Heather Champ, Aaron Straup Cope, Corey Fake, Serguei Mourachov, Paul Lloyd, Kakul Srivastava, Ana Zavala, Dathan Pattishall

  • Dave Beckett Bristol Univ. -> Yahoo
    RDF / Semantic Web, created of librdf

  • Vinton Cerf MCI, ICann -> Google
    One of the "Fathers of the Internet"! What a catch!

  • Mike Pinkerton AOL -> Google
    Camino/Firefox developer, joins Google's Firefox dev team

/.../
"I am leaving King Yao. He is so obsessed with the ideas of benevolence that I am afraid something ridiculous will come of it. In any event, funny or not, this kind of thing eventually ends with people eating each other raw.

"At that moment, there is a great wave of solidarity. The people think they are loved, and they respond with enthusiasm. They are all behind the king because they think he is making them rich. Praise is cheap, and they are all competing for favor. But soon they will have to accept something they do not like and the whole thing will collapse.

"When justice and benevolence are in the air, a few people are really concerned with the good of others, but the majority are aware that this is a good thing, ripe for exploitation. They take advantage of the situation. For them, benevolence and justice are traps to catch birds. Thus benevolence and justice rapidly come to be associated with fraud and hypocrisy. Then everybody doubts. And that is when trouble really begins."
/.../

"Flight from benevolence"
Chuang Tzu

Brush up your french and read this page by Karl. Or, hehe, trust the Google translation of it. ;)

Also, an amusing, cheesy, tongue-in-cheek but really quite accurate tale of Google as the 9 billion names of God. (Er, not the sentient part... that's just silly.)




Relate

Slowly, they are learning. See, look! TagHop:

Taghop allows you to relate categories on the web. If your "Technology" category is related to someone elses "Software" category, then link the two. Someone else may relate their category to the same "Software" category, allowing you to discover a new source of information that may be important. The more people similar to you collaborate, the more new valuable sources of information you will find.

Yay! The funny thing is it took us huge multi-user systems like public folksonomies to "get" that we need ontologies and relationships. Now, let's get to work doing this on our desktops.

For Mac users, we have everything we need: Spotlight, plugin "bundles", open source software. I want a personal ontology management tool which will unify my web-tags (already found in ecto etc), my mail tags (MailTags), my Address Book groups, etc etc.

;)




Break it down, build it up

(just a quick note.)

Existant data-object storage and retrieval systems:
- Hard hierarchialization ("taxonomies", "categories with parent/child relationships")
- Analytico-synthetic ("Faceted categorization", "Semantic Web")
- Unstructured labelization ("Tags", "Labels")
- Statistical extrapolation ("Keywords")
- Unstructured data ("Full text search") [Disclaimer: not taking into account grammar and vocabulary within, i.e. a paragraph of intelligible english text. See the nightmare that is natural language processing.]

Find a UI metaphor that incorporates all in an intuitive, easy to use way.

(Title refers to a natural cycle that all things go though. Birth and death. Development and decay. Information is no exception.)




Immersive

I spent the most part of the last... dunno, lost track... 6 weeks? working on the University of Southern California's Interactive Media Division's website, which we launched last thursday morning at 5am EST. (I went on a 4 day celebration tear thereafter. hah!)

It's really more of a publicly-visible yet closed-community weblog aggregator.

Like Soylent Green, it's made of people, mostly. Aside from the "boring static content" ("about us", "contact us", etc), much of the site is pulled together from weblog entries posted by the students, faculty and staff of the division. At entry posting time, the author has the chance to "cross-post" his/her entry to a handfull of sections of the site: the Main IMD weblog (actually, it's an aggregator), the Events Weblog (also just an aggregator really), the Research area weblogs: Games, Immersive & Mobile (oops, these are aggregators too) and also Course specific weblogs (yup, you guessed it, all aggregators).

The entire site is backed by MovableType (3.2 beta 5 baby! living on the edge) and rendered into a site building framework I feverishly developed over a number of years as a rapid prototyping tool, but which has ended up being very useful in actually running productions sites (and thus making me, and at least one other person, some decent money). The above-mentioned aggregators are generated by a handful of hand coded PHP functions and 3 Smarty templates.

The coolest bits are the way the courses are managed by a "hacked" weblog instance (each course is an entry, semesters are categories, etc...) and the cross-posting "slugs" system (heavily modified since) which uses the keywords field and some UI code lifted from del.icio.us.

The site is replete with all kinds of MT hacks and tweaks, some of which I was pointed to from the excellent Hacking Movable Type book. Brad Choate's KeyValues plugin is a life-saver and having Jay Allen on my buddy list and be the awesome dude that he is helped tremendously as well. ;)

The site is also riddled with unfinished bits, not-as-good-as-it-could-be UI elements and even a few serious flaws that are potentially real problems... but only to me and I'm committed to fixing them.

I had alot of fun working with the IMD team on this. The uncornerable Justin Hall whose hurricane gales of enthusiasm, energy and humor made my summer fly by without my noticing it. Scott Fisher's intensely focused insights posited quietly and gently, almost innocently, causing me to smack myself and yell "of course! why didn't I think of that!". Marientina Gotsis, my embattled comrade-in-arms who would roll up her sleeves and clean out the httpd.conf or dump the database when such was the need. And of course last but not least Tracy Fullerton who made every effort to reign us all in (Justin and I mostly, really), provided the guiding line and much of the decision making (other than Justin's "FUCK YEAH! FLICK THE SWITCH MAN!" hahahaaa.. good times!)

Ok. :)




The right tool for the job

Ethan Zuckerman wrote up a lengthy post part of which was an extension of a conversation-slash-debate we sort of have been having since I started working on Global Voices.

The thing is, I agree with everything he says, more or less. However I need to clarify something.

(notice how wishy-washy I've been so far? "part of which", "conversation-slash-debate", "sort of", "more or less"...)

First of all, I do not recommend using Drupal for GVO. I know I mentioned it originally as a possibility, but not since. The CMS package I do want to recommend but haven't yet is one I had also mentioned but which seemed to sit even lower in Ethan's esteem so it's name has no been uttered since. I fully intend to make a case for it though.

Now, when GVO was first set up, to maintain Ethan's "building our own house" parallel, they basically rented a small apartment for a couple of friends; "see how it would work out" type of thing. When I was brought in, the mandate was to redecorate... oh and can you convert the kitchen into a high volume cafeteria? Cool!

I don't consider WordPress, the platform GVo is currently built on, "bad software". I consider it a fairly decent bit of code for a basic weblog. Easy to set up, easy to manage (mostly... that UI stinks though), easy to theme (if your needs and demands aren't too high) and, if you know a bit of PHP, easy to add a bit of presentation logic and such stuff.

However, by the time I was done hacking, it was very clear to me, on a conscious level as opposed to just the intuition I had had at the onset, that Global Voices is NOT a weblog; it is an aggregator. Amongst other things.

Here's a little meme that is currently in whisper stages in my circles, and I may be partly to blame for it's nascence: blogs are really aggregators...

So, it's really not a question of using bad software, it's a question of using the right tool for the job. Drupal, again to maintain the metaphor, is a farm. We're not doing that. What we are doing, and this may make Rebecca uneasy, or the opposite, is building an international news/voice collecting and disseminating organization. "A bunch of aggregators with very specific outlets and outputs."

In the end, I think Ethan's intuition is correct, but his wording is problematic. One must use the best and most appropriate tools available to us. Using bad anything is never a good idea. Starting simple and growing is. We're growing, and that apartment is way too small. Time to build a condo complex... or commune... or you know something like that... ;)

As it is public, and Ethan's already playing with a major component of the idea, I can say that moving forward, I hope to use reBlog in a multi-tiered editorial system, giving each regional editor a reBlog of their own to use as their interface to the live site. The details are yet to be draughted out.

I figure I should mention this too: in the last 6 months, I have not worked on a single "weblog": it's all been various types of aggregators. Every single weblog client has asked for features that were aggregation/metablogging/content-republishing in nature, some explicitly, some unconsciously. I have been in regular contact with Michal, 1/2 of the reBlog dev team of which I am hoping to make myself 1/3 of. I am also now involved, in various ways, in a flat-out online aggregator, an investment fund focused on aggregation and a desktop aggregator. You know what the coolest thing I've learnt is? I'M an aggregator. And so are you!




Bravo

"World Wide Web Consortium Marks Completion of Quality Assurance Working Group with New Recommendation"

The Quality Assurance (QA) Working Group of the World Wide Web Consortium (W3C) concludes its work this month with the completion of the Specification Guidelines W3C Recommendation, a document which provides clear instruction to writers and editors on creating implementable technical specifications. The QA Interest Group is continuing W3C's four-year effort in outreach through a variety of mailing lists and maintenance of online tools.

"Over the years, we have heard developers call for both standards and ways to test adherence to standards," explained Steve Bratt, W3C COO. "The W3C Quality Assurance Activity led the way in the development of guidelines and tools, helping our Working Groups create implementable specifications, and in turn helping software developers understand and implement W3C technologies. QA's products will be integral resources that ensure the work of W3C's Working Groups is of high quality."

Congratulations. :)




Judge a book by it's thumbprint

A few months ago I enabled a feature on Joi Ito's weblog which I called his "blog thumbprint". What it is, is a weighted list of the most frequently used words in the entirety of Joi's blog, with the text size adjusted to represent the frequency of use. The bigger the word, the more Joi uses it. It's useful to see what's on his mind, long term.

It looks like a tag cloud, but it isn't. It's just a word count, mashed into a list of keywords. I'd like to point out that this display method is very useful for things other than just tags, thank you very much.

Amazon calls it "concordance" and it's a feature that seems to be on for some of the books in their database, along with text stats. (Here are some other definitions for that word.)

Check it out. Very cool. And clicking on any term in the thumbprint gives you it's actual "concordance", i.e., shows it to you in the context of the line it is in, in the book.

Oh how I dream of a Sony Librié type device with a 80Gig 1.5" HD, with an open OS so that we the book geeks of the world could hack out awesome software, like this and who knows what other fantastic heuristics, for traversing our personal libraries.

"I read somewhere ... gimme a sec..."




News, maps, tags, viz

Michal switched his News Project source from Google "In the News" to the Del.icio.us "Popular" feed and called it "Vox Delicii".

Michal is also one of the guys behind Mappr, which mapped Flickr pics based on place-name tags.

Aaron's done all kinds of stuff with New York Times meta keywords, Google results and export of such (SVG, RDF, XHTML).

Ethan Zuckerman, with whom I am working on Global Voices Online, has hooked up Daypop to a global map to meter how much attention various countries are getting in online media.

And there's Greg Sadetsky (hehe) and his buddies at Poly9 up in Quebec City goin' all Google Map/locative APIs crazee.

How can I get you all sitting at one table for an afternoon? There's a lot of stuff to be done... ;)




Fu

Wherein all things can be likened to kung-fu movie story lines / ancient chinese philosophy.

The Wu Wa Wei Clan are warrior monks who live, study and train in a temple over on the mountainside. One of the nearby villages - San Fan Se Cho - has an active commercial environment with many many business minded individuals. Most of them are perfectly happy and fulfilled going about their business with very basic fu skills and knowledge.

As can be expected, there are among them some individuals who feel their fu is superior to that of the Wu Wa Wei monks; that the knowledge of an individual in a granary, unfettered by thus-percieved stodgy dogma and forged in so-called "real-world environments" is far superior than that of the combined gaze of many, over many generations, pondering on a single grain of rice: where it comes from, how it is cultivated, why it is important, how best to store it and distribute it, etc...

Courageous individuals, such as Wi Ne, Che Lik, Roo Bee and Ping Ge, often cross paths with the monks. But differences of personality and opinion always make for tense encounters.

The monks, however, just smile, for they see the rice and the granary, the field and the workers, the bowls and the hungry. They know that sooner or later, the village will figure it out. And the village should know that they can always, always count on the monks to give a few words of advice.

for Karl. and Aaron. Cause you asked for it. Sorta.
(I could have made this far more profound, if not obscure, but hell I'm busy too...)




Oh yes.

Tags-In-Mt

My my. Two groups of system-defined and managed "cross posting slugs" (for reBlog goodness via slug-based RSS extraction1), author specific "tags" AND suggestions, based on all three arrays.

You, whoever coded the del.icio.us tags UI on the post page, I kiss you. :*

[1] I'll explain this some other time, but basically I am going with reBlog in this case because it does full attribution AND makes sure you don't post the same item twice. Otherwise I would have used the Atom API. Oh and because Michal is a really ace dude, awesome techhead and designer.




Tags in MT admin interface

Tags

It took a few hours but I've gone and done it. I hacked out the "suggested tags" UI goodies from del.icio.us and grafted it into the Movable Type admin's "Edit Entry" template.

Now for my purposes, the "suggested tags" are a set of set slugs; terms another component of this behemoth of a project seeks out via a nice SQL LIKE statement and then republishes elsewhere. However, the core code allows me to use it to, say, feed in all my aggregated tags, suggested tags, popular tags, etc...

Movable Type's new "AltTemplatePath" config directive (3.16 up) makes hacking the UI much easier and less worrisome when upgrading time comes around.

And no, I didn't even open Hacking Movable Type yet. I swear.




How da??

Somehow, I find myself in the unenviable position where I, a non-programmer, must figure out how to do tag intersections in PHP + SQL.
How's that for meta? :D

And it's such a beautiful day outside...




CC license jurisdictions

After my "set your Flickr license to Creative Commons!" post the other day, Mikel pointed out jurisdiction issues.

I pinged Joi about it and he gave me a quick cryptic response (WiFi in airplanes rots your brains!), but one which did extended my thinking on the subject.

If I deliberately select a CC license, I indicate my intent to share more easily this data object I am publishing. I don't care who, what, when or where. I may care about "how" though. By Attribution. Non-Commerical. Share Alike. No Derivatives.

So, say I license a picture with Canadian CC BY-NC-SA license. One day I am walking down Times Square in NYC and see this huge lit up billboard advertisement and HOT DAMN there's a piece of my picture!

Legally, what is my recourse?

This is of course purely theoretical. Myself, I would laugh and take a picture of it... ;) (Hrm, then I would publish IT, again with a CC license. Then the advertiser would see it, and sue me for copyright infringement on their ad... Then I would go ask Professor Lessig to kindly take up my case in court please.)

Now, this all started when Rebecca mentioned to me that she was contacting Flickr users around the world asking for permission to republish their photos on Global Voices. She said they were all more than happy and willing, and that when she told them about CC, they had no idea. That's where the "educate Flickr users on CC licenses" campaign started.

Related, Anil points out that MT 3.2 includes CC license jurisdiction selection support.




Flickr & Creative Commons

Flickr-Cc

Help push the more widespread awareness of the use of Creative Commons licenses on Flickr.

You can copy and paste the code below into your Flickr Profile's "Describe Yoruself" field:

And of course pick a license and use it yourself...




Bit Torrent Opera

Yahoo/AP reports:

The upcoming Opera 8.0.2, now available in a test version, will try to make BitTorrent downloads seamless, just like any other download using HTTP or FTP for transfers. The exception is the appearance of a warning that users will be sharing content they receive.

Krogh said Opera isn't trying to encourage piracy but considers the tool, BitTorrent, more efficient for transferring large, legitimate files such as Linux, and now Opera, software.

This is very interesting indeed and I hope Mozilla takes note and follows suit.

In fact, I'd like to see development of this also branch out into another endeavor: browser cache sharing via a Bit Torrent-like architecture.

Over dinner some weeks ago, Karl and I riffed about how to seamlessly allow chinese Internet users to bypass the Great Firewall of China. The idea we came up with was a plugin for webrowsers (Firefox perhaps) that would act as a caching proxy and request manager. Everything would go over http, encrypted and content would be shuffled around and distributed Bit Torrent style. There would be no way to filter such requests since they are not bound to any domains or IP addresses, and text strings could not be filtered for either as it would all be encrypted.

Of course, lots of issues arise, (control of what cache items are shared, privacy, etc) but the core idea may just be feasible. I am seriously thinking of making it one of HelpPush's first OSS (Open Source Software) projects.

[thx for the link Oblivia!]




Microsoft says

Teach your kids the basics of safer blogging before they start

Dated July 7th, MS published this article in their "Security At Home > Child Safety" webzine. Interestingly, much of it applies to everyone, not just kids:

- Ask yourself if you are you comfortable showing any of the content to a stranger.
- Check out other blogs to find positive examples for your kids to emulate.
- Never offer any personal information.
- Never post provocative pictures of yourself or anyone else.
- Assume what you publish on the Web is permanent.

I suppose that as with all child-rearing guidelines, it makes sense but ...

[link via IM from Stevey. For someone who "isn't a blogger", you sure find some deep and obscure and not yet blogged about stuff dude...]




Remote backup script...

I've got an idea for a shell script/program that would be very useful to me, and probably countless others. In fact I bet countless others have already coded something like it up...

Requirements:
I don't care what programming language it's written in as long as I can run it more or less easily from the terminal or cron. Keep in mind it's gonna be doing a lot of network and system level stuff. Shell(?), Perl or Python are probably the top contenders.

Tasks:

  1. Take as input a list of server addresses, username and passwords and paths to directories to be processed, as well as local destination paths. May be multiple paths for individual servers. List can be within the first part of the script or in a separate config file.
  2. SSH to each server, cd to the directory above the one we want to backup, tar-gz it using a dated naming convention (something like SERVERNAME-DIRNAME-YYYY-MM-DD-HH-MI.tgz).
  3. Download the archive to the specified local path.
  4. Delete the archive from the server.
  5. rinse, repeat, exit.

Ideally, I'd also like to do remote SQL database backups this way... SSH in, take a (MySQL) dump, targz the file, pull it down, clean up, exit.

Who is game to hack this up for me, and for how much? Perhaps we could set up a pool on fundable for it.

Maybe I should Learn Perl the Hard Way myself... ;)




Some Soundsystem

Yeah, yeah, yeah, yeah-yeah, yeah-yeah, yeah... yeah, yeah-yeah, yeah-yeah, yeah
Yeah, yeah, yeah, yeah-yeah, yeah-yeah, yeah... yeah, hey, hey, hey, hey

Everybody keeps on talking about it... nobody's getting it done
I'm gettin' tired, tired, tired of listening, listening... knowing that the shit's gotta run

Everybody keeps on pushing and shoving... nobody's got the goods
Everybody keeps on pushing and shoving... nobody's got the guts
You owe me ti-ti-time, now they're writing me in... I never act like I should

Everybody keeps on listening in... Nobody's listening up
We've been try-try-trying now to let you in... And, you just got let in by luck

Everybody keeps on talking about it... nobody's getting it done
I'm getting tired, tired, tired of listening, listening... knowing that the shit's gotta run, shit's gotta run

Yeah, yeah, yeah, yeah-yeah, yeah-yeah, yeah... yeah, hey, hey, hey, hey


... And nobody's falling in love
Everybody here needs a shove
And Nobody's getting any touch
Everybody thinks that it means too much
And nobody's coming undone
Everybody here's afraid of fun
And nobody's getting any play
It's the saddest night out in the U.S.A.

Beat... a connection
Beat... communication (x6)
... ... ...
Confuse... confusion
Refuse... confusion
Refuse... illusion
Confuse... illusion




Wordpress weekend

OMG! I can write plugins!!!
...
...
...

OMG! I HAVE TO write plugins...

;p

Yes, I will be releasing two things:

  1. a WP plugin that extracts media file URLs from posts, allowing you to link them with a nifty icon or text somewhere outside the entry.
  2. an extension (piggyback) framework to the Subscribe2 plugin which allows for Cron-scheduled post digest emailings.

This of course does wonders for my trying to get people to understand that I am NOT a developer... Aw well.




Little PHP help pleeeease?

I'm wanting to write a little function to use in a WordPress template which will do the following:

Taking an input haystack (which would be an entire weblog entry), find the first occurrence of the needle ".mp3". First chop off anything that follows it, then move backwards until you find the beginning of the second needle, "http://", and chop off everything that precedes that.

In other words, I want to extract the full URI of an MP3 embedded in a weblog entry.

The reasons must be obvious if you consider some of my most recent postings.
This code would probably get released as a WordPress plugin once I've put it though it's paces. There's loads of functionality that could be added but this is all I need myself for now. :)

I'd really really really appreciate any help anyone can provide. Credit will of course be given where credit is due. ;)

(Oh and if you know of such a plugin already in existence, advance thanks for marking it out.)




A brief history of Podcasting

Blank Reg
The first Podcaster

Max Headroom
The first Podcast Celebrity.

Coca Cola anybody?

Most ironic thing heard on a Podcast Today:
"Indie nine one one, the best in unsigned, independant and undependant music... Sponsored by Audi!"
- Indie911 Podcast Channel

This must be the fastest full medium pickup ever in the history of media. About a year? Six months? Ted Koppel and "Queer Eye" have Podcasts. Don't get me wrong; I think it's neat. I'm just awestruck by how fast the levy broke on this one.

One more stupid word to deal with though. ;)




WOah

This may be old news but it's new to me; as Francis says,

No joke. WebObjects is included with Tiger. For free. Amazing.

While this *is* cool, it's sad too. Nevermind that the learning curve is high, it goes up against the now defacto PHP, Python and Ruby (*cough* Perl?) communities AND it has to overcome the fact that afterall it IS an Apple *product*. I.e.: closed, owned, untouchable. This may be a good thing, but I don't see it gaining any traction in the DIY web-world.

Had they done this 4-5 years ago, and pushed it ever so slightly, as the geeks started their migration to OS X and looking for web frameworks to work with, they may have had something. But as it is... zippy-dee-doo-dah-day.

Also, try to find a webhosting service that happily runs WebObjects... ;)




I'm watching you


neb
Stewart
George
mikel
blackbeltjones
lhl
justin
maximolly
zephoria
jonl
Poisson
straup
jluster
Joi
jyri
Gen Kanai
marccanter
inevernu
loiclemeur
sebpaquet
Johnny Shoepainter
Herb
nseki
miyuki jane
minjungkim
gruntzooki
mike.d
dav
Pete Barr-Watson
Jean Snow
mtl3p
walkah
migurski
sven
Nika
karlcow
kungfootv
blork
Yuki
Kokochi
iMorpheus
steveyb
Oblivia
sylvaincarle
hoder
pt
cocomsaito
cwhipple
Yuka Oishi
Eve8
adamgreenfield
JasonDeFillippo
brownhat
chipple
mmmishu
ebilodeau
Ryou in the box
imomus
hailun
brookstar
mmdc




Del.icio.us hash

A month ago, joshua mentioned an easy breezy little addition one can do to one's site to allow users to easily del.icio.us bookmark entries on one's weblog.

In some cases though, you might like an easy way to see how many people, and who, has bookmarked an entry on your weblog.

But how!?

Del.icio.us hash, my friends, del.icio.us hash.

You know that little "and X other people" link under each del.icio.us entry? Click on it. See that string of weird string characters in the query string? That's an MD5 hash of the bookmarked URL.

What follows is the list of ideas -in sequence of how they came to me and I dismissed them - of how this could be implemented, and why each can't or shouldn't be. The last one is the best bet. I couldn't do any of these myself, except for one, since I can't code to save my life.

1- MT Plugin run from CRON
Hashes every permalink and checks it against del.icio.us, grabs the RSS feed for each and caches them "locally", parses them out for stats and outputs the numbers ("25 people think this is delicious!") into the templates via template tags.
The idea is based on Ado's excellent MT-Technorati plugin which does basically the same with Technorati. The problem is that del.icio.us is really really sensitive to "abusive behavior". Send it too many requests too quickly and joshua will hate you. Also, calculating that many MD5 hashes, retrieving that many RSS feeds and parsing them all and rebuilding them, every 10-15 minutes, puts a hella load on your server. Ferget it.

2- A simple MD5 hashed permalink link.
"Click here to see who del.icio.us'ed this entry!" style. No numbers, no fancy getting and parsing. Number of ways to do this, server side.
a) If you are running PHP you can just add a little call to it's built in MD5 function, feed it your permalink et voila.
MT:
<a href="http://del.icio.us/url/<?php md5('<$MTEntryPermalink$>');" title="is it delicious?">is it delicious?</a>
WP:
<a href="http://del.icio.us/url/<?php md5('the_permalink();');" title="is it delicious?">is it delicious?</a>

b) Abstract it away with some sort of plugin. In MT, this means that the MD5 hashing occurs at build time and is done by Perl. In WP's case, it's at page request time.

Problem: you have large amount of entries and lots of traffic. Every page request launches an MD5 hash request. System resources-wise, your server needs this like a hole in the head.

3- Client-side, Javascript baby!
Ohhh this could work. A simple JS function included in the header, called from the link:
<a href="#" title="is it delicious?" onclick="do_md5_link('<$MTEntryPermalink$>');">is it delicious?</a>
(any number of ways)

4- Client-side, AJAX/ScrumJAX baby!!!
Basically, do number one above but inline, in real time. On click, MD5 the URL, query del.ico.us for the RSS for the bookmarks of that URL, parse it out, pop a layer showing the number of hits and, whatever, say, the list of users who bookmarked it.

Any takers?


[thanks to Aaron for the hash and calling me a lazy pig-fucker.]




It's damn hot

So Karl and I moved from the sweatlodge-like Laika to the air conditioned Java-U on St-Denis where Oblivia was.

Logging into the free wifi network I spot something familiar in the URL. "Helloooo... what's this..."

Colubris!

I made this! A long long time ago.

Related: sometime last week, Barlow appeared in my buddy list with the status line "wifi on a Lufthansa 747!". There too he would have seen my handiwork, as the APs I worked on are OEMed to the company that provides Boeing with in-cabin WiFi. So, if you find yourself on a Boeing with WiFi, spark up your web browser, surf over to 192.168.1.1 and think of me... ;)
(And flickr it!! yeah!)




Atmospheric stabilization in folksonomic tag clouds

Visual display of how choice of tags on a URL stabilizes over time on Del.icio.us.

I blame "suggested tags" ;)




Playing Flickr Peepshow

Playing Flickr

For one week in May, the diners in Restaurant 11 will be confronted with the photos the users of Playing FLICKR select. By sending a keyword through SMS, users can request all photos on the flickr.com database that are tagged with that particular keyword.

Flickr peep-show

Users can interact with the installation by SMSing tags (keywords) to the server, after which the photographs on flickr tagged with those specific keywords will start showing up on the screens of the the installation.

Mediamatic. Good site. Wish it had a feed.




Backpack is the new Flickr

For the last 6 months it's been "Flickr this" and "Flickr that", "like Flickr does it!", "we want it more like Flickr..."
Don't get me wrong, I do so very very much love Flickr. Really. I'm just saying Backpack will be getting the top-level buzz shortly, and for the next few months.

Why?

You mean I can store all my stuff, not just photos? Yup.
You mean I have more control of who I share with and who sees what? Yup.
You mean it has tags, and snazzy Ajax-based UI twiddles? Yup.
You mean I can relate one bit to others? Yup.
You mean it's basically a wiki with a handful of preset data types? Yup.
You mean I can email content to any part of my backpacks? Yup.

[playing with it as I write this...]

Um. HOLY MACARONI.

Again, to be clear, Backpack does not equal Flickr replacement. Two TOTALLY different things. Just saying Backpack is the new "Insanely Great" web-app on the block.

And it is quite breathtaking an achievement. Bravo.




Talkr

It's not April Fool's is it?
Damn, I didn't think so.

Talkr provides a service that allows you to listen to your favorite text-only news sources rather than read them. If you can point us to an RSS feed (a machine-readable version of your favorite blog or news source) we will convert that feed from text to speech. Talkr can also provide you with a podcast of your favorite news sources.

I want the OPPOSITE service dammit. I want a service I can dictate to and it returns me impeccable text... for blogging of course... :p

At least the logo isn't pink and powder blue. Let the deluge of product/service names ending in "-ckr" begin!

Flickr is the new iMac! The new eCommerce even!

Someone take this coffee away from me.




Google aquires Dodgeball

"On May 11th dodgeball.com was acquired by Google!"

The people at Google think like us. They looked at us in a "You're two guys doing some pretty cool stuff, why not let us help you out and let's see what you can do with it" type of way. We liked that. Plus, Alex and I are both Google superfans and the people we've met so far are smart, cool and excited about what they're working on.

Congrats to them I suppose... but I must say... if I read one more "and the folks at [insert new multibillion dollar multinational parent corporation] are really cool and really really like us and we really really like them" letter, I'll heave hoooo!




CMS themes = money

I found this funny. Looking at my "montreal" tag flickr stream I notice a picture of Guy Kawasaki. Hunh? Oh I see, it's one of these blog/flickr marketing tie-ins. I've done one or two of those myself. Feels slightly dirty but anyways... ;)

SO I Google for "ideasblog", and find myself here. A blog for an Autodesk promotional marketing tour.

Why is this interesting to me? It is interesting because that site reveals a lot about itself, and in so doing reveals a lot about the web industry today.

First of all, from the favicon, I see that the site is built in Drupal. Second, by replacing the "ideasblog" in the URL with "www", I find out the site is built by "Clear ink". (A quick whois also revelas that the cryptic domain "adskhost" - Autodesk Host - is registered to Clear ink as well. I wonder if Autodesk knows this.)

So we have a major software maker organizing a promotional tour and deciding they want some of this "Web 2.0 stuff".

"Hey! We should get a blog for this and put our pictures on Flickr!" they say.
If I had a nickel for every time I hea... oh wait... I do... In fact, I get a nickel every time I say it... cough...

So they go to a Berkley-based web-services bureau, who in turn says "Hey! Yeah! we can do that in Drupal!"

How much money do you think Clear ink got from Autodesk to quickly (and with sloppy all around execution, I must say... default favicon? C'mon!) hack up a Drupal theme? Hrmmm?

Can you say "high margin business"?
Stop asking me what I am doing these days. ;)




The troll pile

I'm writing up a proposal for a potential client (weblogs / community site) who realistically will probably get a fair amount of trolls posting, at least initially. This worries them somewhat, but they are willing to hear any thoughts & suggestions on how to deal with this.

So I'm thinking a few things:
1- Have a clearly stated, reasonably lenient/strict policy of acceptable conduct.
2- Have someone who is responsible for enforcing said policy and making the administrative/editorial decision to remove the offending post, perhaps even have someone from the community second the decision.

But wouldn't it be really funny to also have "the troll pile"? Instead of deleting the post/comment outright, the admin would move it to the pile with a link back to the original entry/topic. An aggregate of nutjobs! Hah!

Hrmmm... this could be done with a custom implementation of a del.icio.us clone/tagsurf type of thing.




Seekrit... aaagent man

Dav says he feels Agents will make a comeback. I agree 200%.

We should talk Dav... ;)




Graphical Command Line, precursory

I've been composing a post about "Graphical Command Line" interfaces, which what alot of "AJAX" enabled features on websites are, and what Quicksilver, a Mac application, is... but it's getting so long and involved and I just don't have the time that I will give you a résumé of my thoughts on all this which I posted on Quicksilver's message board:

Quicksilver is a Graphical Command Line. It combines the ability to manipulate files and applications, executing application commands on files, like a CLI, while using the strong visual cues of a GUI, blurring the line between recall (CLI: gotta remember the right commands and where everything is) and recognition (GUI: navigate to where my files and apps are)...

When you use QS, you are constructing a command to execute, only you are not doing it alone in your mind (like in a CLI/Terminal/C Prompt) trying to remember everything, because as you type, QS *shows* you possible matches of what you may want or may do. The power of the CLI with the diminished need to learn "arcane commands"...

Other examples of GCL, meaning, where a predominantly text-input based User Interface guides you along with visual cues (even if they are text-based), are (in order of appearance in the ecosystem):
- Google Suggest / "LiveSearch"
- ecto & 1001's tagging mechanism
- Jonas's "tags4WP" WordPress tagging plugin




Say it ain't so, Joe, please, say it ain't so...

Gaaaaahhh

U.S. Senator Evan Bayh is a heartland Democrat with a proven and broad appeal, and a history of advancing progressive values in a heavily Republican state. First elected Governor at the age of 32 – the youngest in the nation – Bayh was reelected to the senate in November 2004 with the highest percentage of support in recent history, and outperformed President Bush in Indiana in the 2004 election. Since his election to the Senate in 1998, Bayh has developed a reputation as a common sense pragmatist, focusing on innovative solutions to help America tackle our challenges at home and defeat our enemies abroad.

Taken from Mr. Bayh's FLICKR account.

I feel so dirty now. How about you?




I'm flying!

Whenever I imagine I can fly, I immediately think "Ok, so, where do i go? How do I get there?" I imagine myself bopping up and down, "zooming in" and "zooming out" until I find where I wanna be.

A lot like using Google Maps in satellite view. Only, Google Maps allows me to search for stuff too, aiding me in finding specific things... like... tourist style site seeing spots.

Explanation: the above link is to a listing of Del.icio.us'ed Google Map satellite views of a couple of "neat sites". Try Niagara Falls or Statue of Liberty. Or the BigO...

Wheeeee!




Google Maps application contextualizes real estate

This is stunning. By combining Google Maps and craigslist housing listings you get a very quick visual contextualization of the economic distribution of population for a city; which the affluent neighborhoods, which are less so.

Not that that is necessarily a barometer by which to find an apartment or a home, mind you.

What I find most compelling is ... well, let's say for argument's sake I had to relocate to San Francisco. With the rental listings visually laid out before me, I immediately have an image and an idea of where each place is. If you already know the city, then it spares you the effort of locating the place in your mental map, which is a very subjective map to begin with; but if you hardly know the city, bam, there it is. Enhancements would include "show me where these 5 contacts of mine live in relation to this listing" ... show me the bus stops, grocery stores, cafés with decent coffee and WiFi... ;)

And where to get a baguette...




Yahoo! Term extraction for MT

So Jonas has gotten this working for WordPress, but I have some ideas of how to use it, somewhat differently, with Movable Type. I couldn't code Perl (or anything else really) to save my life so here is just the idea.

In MT admin > entry screen.
a) above the keywords field, add a checkbox to enable "Yahoo! Terms keyword generation"
(We don't wanna start creating new columns/rows/tables in the MT database so let's use Keywords, cause, well, that's what they are.)
b) when an entry is posted, after MT has done everything else it already does, and before we get the "operation completed" message, submit the title, entry and extended entry, as well as the generated permalink (why not... this will notify Yahoo! of a new entry, give it the URL and the text so it doesn't have to come and crawl for it...), get the XML reply of generated "Terms" and save them in the keywords field.

From here, there's all kindsa stuff you can do. Use the keywords for (yawn) header meta-keywords tags, Technorati entry tags or, with a bit of template wizardry (and either some yet to exists plugin, or some CRON and PHP code), generate a weighted list, which you can display as an overall "zeitgeist" (I prefer "what my blog is thinking") affair, as I made for Joi's sidebar. (I generate Joi's global keywords list using the MTKeywords plugin to create and array which I then parse with some PHP.)

Ken McClosky released MTYahooSearch which talks to Yahoo!'s API, but it seems to only pull stuff into templates. Cool, but I want to capture and save the Terms results along with the entry. Why? Because it's relevant?

For fun, someone could also write something that takes the generated keywords and feeds them to Flickr's "tags.getRelated" API call, creating a view of "what the web thinks about what I think". (Nod)

Of course, as someone very smart recently said to me:

"With natural language processing, you end up twiddling a lot of knobs to get what you want."

... so whether you trust Yahoo! to generate relevant keywords is a matter of personal faith.

(Two days in a row staying up till dawn, and I still have an entry on folksonomies in Drupal keeping me awake.)




Mark my words

(pun title intended)

Tags* are Frameworks for Describing Resources...
It's gonna happen, oh it's SO gonna happen.

Actually, it's happening now.

It's not the big software companies, it's not the big media companies. It probably won't follow any current specifications, but I hope it will at least not blindly ignore them.

Baby steps, baby steps.
We begin with the primordial flat tag soup. Then out of the soup will crawl the soft hierarchies of community maintained folksonomies: loosely arranged molecule clusters of communities of usage. When the APIs mature, blood flow can commence, feeding a new organism. Small pieces loosely joined, indeed...

*or rather the systems we build that utilise tags. ;)




Google who?

I was having this very conversation yesterday... with two separate people. Will be interesting to watch this "battle of the titans".




Employee of the month

Click opera - Employee of the month:

"People are strange when you're a stranger," sang Jim Morrison. They're even stranger when you're scrolling around a 1051x1557 pixel employee photograph on a corporate website.

Brilliantly, Momus deconstructs what otherwise would just seem a webmaster's silly oversight.




Let's expand on folksonomies

First of all, purely for background and some interesting ideas, the Wikipedia definition of "taxonomy".

Taxonomy (from Greek ταξινομία (taxinomia) from the words taxis = order and nomos = law) may refer to either a hierarchical classification of things, or the principles underlying the classification. Almost anything, animate objects, inanimate objects, places, and events, may be classified according to some taxonomic scheme.

and "folk taxonomy":

A Folk Taxonomy is a vernacular naming system, as opposed to a scientific naming system which is simply known as a Taxonomy or as a Scientific Taxonomy.

Folk Taxonomies are generated from social knowledge and are used in everyday speech. They are distinguished from scientific taxonomies that claim to be disembedded from social relations and thus objective and universal.

Anthropologists have observed that taxonomies are generally embedded in local cultural and social systems, and serve various social functions.

So, as I've said, I really think all this tagging stuff is great but will be much more interesting once we really start to do more integrating and more social stuff with them. Here's what I mean by that.

The current flat, one dimensionality of the tags-based info management tools we see today (del.icio.us, flickr, et al) is essentially "selfish" or "based on the individual"; the loner walking through the world ascribing his own names to the things he comes across. Sure the fact that those names are there for all to see and aggregated into intersected view (show me everything everybody marked as "funny"!) is neat, but not terribly useful for they lack context, increasingly, especially as the databases grow (and oh my are they growing).

The first thing I'd like to see are some basic true "folksonomies": taxonomies generated and maintained by folks. This of course creates a host of technological presuppositions, like personal tag management software/services and tag aggregation and dissemination. Even more tricky are the social and cultural ramifications, which we still suck at but can muddle our way through as always. ;)

Also, there are already a handful of folksonomic "tags" which are inherent to the system and/or the data in question: date & time stamps, media type, resource URI, ID3 tags (on MP3s)... any standardized-by-usage metadata really.

Key here is the understanding that nothing is forced; you either use the folksonomy or you don't, you either contribute to it or you don't. Up to you. Either way, it is very much like our transition from loose tribes to tight knit communities, with all the value - and headaches - that engenders. It is also consistent with the nature of true democracy, and social life: You have the right to not participate, but you have a duty to do so if you choose to benefit from it.




Folk taxonomies

Fun with Hierarchical Controlled Vocabularies
Very cool, and could be very useful when everyone cools down from "OMG tags!" syndrome. Tags are great, and "folksonomies" are neat but I think, and surely others do too, we will not truly see tags shine until we combine and integrate them with other data classification, storage and retrieval systems... including oh-no-so-rigid hierarchies... and oh-my-so-soft full content indexing...

Time to dig up that data management graphing project I was beating myself about the head with last fall...




Politically correct in Quebec

(or "baladi-balado")

Ok some background. I live in Quebec, a predominantly francophone ("french speaking") province ("state") of Canada. The francophones here are ridiculously anxious about protecting "their culture" (while they love nothing more than buying american products and seeing their sons and daughters listen to american hip hop and heavay métale). Anyways, in an effort to "protect our language", some of our hard earned tax dollars are poured into an organisation called "L'Office de la Langue Française" ("The Office of the french language"). Never mind that the French, from France, laugh spuriously at us for this, and the anglophones refer to them as "The Language Police".

A-Ny-Ways. I must say I am impressed with how on the ball these bureaucrats are. They aren't sitting around on my 50% income tax and 15% sales tax! No sir-ee-bob!

Friends, I give you the official, politically correct translation for french Quebec... of PODCASTING:

Vous avez entendu parler du podcasting? Sans doute, si vous possédez déjà un baladeur iPod. L'Office québécois de la langue française vient tout juste, en cette fin d’octobre 2004, de proposer les termes, encore tout chauds, baladodiffusion et baladiffusion pour nommer en français cette nouvelle réalité.

La baladodiffusion est un mode de diffusion d'émissions de radio Internet qui permet à l’abonné aux fils d'information RSS (la version Internet du fil de presse utilisé dans le monde des médias) de télécharger automatiquement sur son ordinateur, à l'aide de logiciels spécialisés, les émissions de radio qu’il a préalablement sélectionnées, et par la suite de les transférer sur un baladeur numérique à disque dur afin de les écouter en différé.

Le terme anglais podcasting est un mot-valise qui a été formé à partir des syllabes finales des mots iPod (nom commercial d'un modèle de baladeur numérique à disque dur de la société Apple) et broadcasting. Les termes baladodiffusion et baladiffusion sont aussi des mots-valises; ils sont issus de la contraction de baladeur (en référence au iPod) et de radiodiffusion. Dans le cas de baladodiffusion, on a ajouté la lettre de transition o entre les deux formants. Ces termes ont été créés sur le modèle de radiodiffusion, télédiffusion et webdiffusion.

Sadly you need to read french to get the hilarity of this. However, as I said, this is impressive, if not for their choice of translation, but for the fact that they cranked this out back in October 2004, they actually explain what it is, complete with an analogy of RSS as being the Internet version of news feeds, and also displaying their pride in "naming in french this new reality".

Aaron suggests, and I agree, we should petition to have the word changed to "Pataticasting". This would make it truly quebecois.
("Patate" is joual/slang for potato.)




Tagsurf

Just came across Tagsurf. Haven't wrapped my head around it yet but having registered and logged in (the registration process is made difficult by a barely legible capcha), it looks to be very powerful.

I guess one way to describe what I *think* this is about is del.icio.us URL tagging + annotation + access control + Flickr style goodies + customization + filtering/custom views + RSS for everything... for "topics".

Seems brand spanking new so there isn't much in it yet. Gonna play for a few days see where it goes.

Update 1:
So I'm using it to annotate stuff I find, be it news articles, blog entries, neat stuff... URLs basically - and you all can comment ("reply") to my annotations, or trackback to them from your weblog. It's del.icio.us on steroids, and so much more. I can trackback to whatever it is I'm writing about (if the source accepts incoming pings), you can use it as a comment system for your own blog if you wish, or as a blog in and of itslef. You can track topics, discussions on specific topics or specific URLs, tag everything system wide or just for yourself, select a copyright license for your notes...

LOTS of features... and amazingly, with a totally spartan UI, it is still quite usable; you just have to play with it to "get it".

Ohhh... community trust meters! :)

Update 2:
Here is a Bookmarklet for easily adding stuff to Tagsurf.
Duh, they have their own Bookmarklets already done:




Wallpaper advertising

I damn near just fell off my seat. I have never seen a website's background be used for advertising before...

Montrealplus

"Evil genius". I feel ill.




Now what?

So AOL has updated it's Terms Of Use for AIM:

Although you or the owner of the Content retain ownership of all right, title and interest in Content that you post to any AIM Product, AOL owns all right, title and interest in any compilation, collective work or other derivative work created by AOL using or incorporating this Content. In addition, by posting Content on an AIM Product, you grant AOL, its parent, affiliates, subsidiaries, assigns, agents and licensees the irrevocable, perpetual, worldwide right to reproduce, display, perform, distribute, adapt and promote this Content in any medium. You waive any right to privacy. You waive any right to inspect or approve uses of the Content or to be compensated for any such uses.

(eWeek article)

It's bad enough that so much of our communications are going though their systems as it is, now they have the balls to claim they own it.

Just what kind of derivative work can AOL produce from millions of Instant Messages a day? Why, keywords of course. How much do you think a marketing exec would pay to know that his top brand was mentioned X more times today than his competitor? Hrmm? Homeland security would love a daily report of how often someone said "bomb" or "ok, we're set" in the last hour...

It's really too bad that IM didn't develop the same infrastructure as email, where every ISP would handle the account for you, every hosting package came with a IM server built in, etc... Just like mail and www now. Can it still be done? Is it perhaps Jabber's time, now that AOL could conceivably experience a mass exodus, now that there is a plethora of IM clients available, and that even the next version of iChat will support it? Hrm. Is there a business model which could run such a service?




Music makers WANT to share

Creative Commons search index breakdown:

It appears that people licensing audio have chosen to offer more liberal terms than average while those licensing still and moving images have chosen less liberal terms than average.

And THAT, my friends, is VERY telling. VERY telling indeed. I'm looking at you, "the music industry".

(This also make me think out loud about the dichotomy between the aural and the visual "brainframes" and how we, as a culture spurned on by electricity, are moving from the latter to the former.)




Non-Disclosure Agreement

After not even hearing the words for well over 3 years, today I was faced with no less than two prospective NDA's to sign. I haven't yet.

Reading over the one I did get sent to me, I am struck by how... inhuman... it is. Essentially, the NDA says "We, Corporation X, are interested in shoving some data into your CPU and RAM, but by no means may you add this data to your memory, at least not for five years."

In other words, in exchange for the chance to make some money, I relinquish my "self" and serve as a dummy processor.

This makes me uneasy in the extreme. The cost of doing business is relinquishment of self.
I left the corporate world over this. I think I may turn down two very lucrative contracts over it as well.




I think...

bopuc:
I got a machine
And I took over the world
In one weekend
I took over the world
With my machine
I did it because
I was looking for a project
And it was either
Take over the world or learn French
So I took over the world
And next weekend
I can learn French
I got a machine
And I took over the world
But nothing changed
That wouldn't be fair
steven: hahaha
bopuc: Violent Femmes "machine"
steven: you've posted that before
bopuc: prolly
steven: yes on your blog
steven: i remember
bopuc: yup
bopuc: i repeat myself
steven: fuck i have 1337 memory
bopuc: i have very little onboard memory left
steven: you need a transplant ;)
bopuc: IMplant
steven: how much ROM would be enough?
bopuc: 5-6 terabytes
steven: for what? pr0n?!?
bopuc: that would last me for a year or so...
bopuc: dude... everythign I see, everything I hear?
bopuc: indexed...
bopuc: cross referenced
steven: compress it
bopuc: hahahahaa
steven: indexes and refs are just strings of text
bopuc: u realise this is what the brain does...
steven: pics and vids and sound are your prollem
steven: and thoughts
steven: holy fuck yeah, thoughts
bopuc: language is what ties our memory together
bopuc: memory is a product of language
steven: but those ties are just tiny strings between the big files
bopuc: language creates relationships between data objects
steven: like unix links
bopuc: RELATIONSHIPS
steven: right
steven: sorry
bopuc: hence, Semantic Web.
bopuc: SemWed/RDF is all about triplets: object <->relationship <-> object
bopuc: it's a graph
bopuc: a graph of URIs
bopuc: fuck. I just understood it. jesus.
steven: glad someone did
bopuc: hahaha
steven: but each object can have several relationships to other objects, or even the same object, right?
bopuc: yup
bopuc: it's a web...
bopuc: :D
steven: like, both of these are white, and they are both round
bopuc: IT'S A WEB
steven: I HEARD YOU ;)
steven: just trying to "see what you see" :p
bopuc: the W3C is a cult...




Area bagel

or "What do Amazon, A9 Search, Yellow Pages, 90210, and the Mile End of Montreal have in common?"

Trying to see if I had a connection, I hit my A9 bookmark. It worked. Once there I noticed a prominent link to Yellow Pages (with a link under it saying "here's how we did it." That made me curious...)

First of all, it linked me to Yellow Pages listing for my last stored search on A9. Now it was asking me for a U.S. Postal Code or City/State. 90210 is the only US Postal Code I know. Pop that in, and replace the aforementioned search term with "bagel".

Impressive result. A listing of bagel shops in Beverly Hills, CA., complete with hotlinked map. And at the top of the list is "St-Viateur Street Bagels". Back in Montreal, St-Viateur Bagels is one of two most renowned bagel shops. It is located on St-Viateur Street, the same street where Open Da Nite is/was/will be (Fire!).

Neat-O.

Not finished yet. Click through on that listing. You are presented with a strip of pictures ostensibly of the shop's storefront. Seems to be the wrong picture but FRET NOT... you can "WALK DOWN THE STREET" and find the right picture and TELL Amazon "this is the right picture of this business' storefront" (Best picture?).

Amazon is sucking reality into it's databases (somewhat warping it in the process...)

;)




RSS 1.1

The Spec
The Guide
How to start using it.

I've heard some of the bigwigs are "backing it"... ;)
As soon as I have confirmed RSS aggregator support, I throw the switch... and let y'all know too... :)




Today

Overnight, I moved this site to a new, way faster server. This will allow me to start building on it again. In the move I decided to ditch my photo galleries because, well, I didn't like them and they took up over 500 megs of space. Sorry, The Web, for the URL rot. I will rebuild a newer one soon. Also it seems I bungled my SQL export and many many UTF-8 encoded characters got messed up. I'll fix the easy ones shortly, but I fear the two or three instances of japanese characters are lost... sigh. Well, we see.

I switched to Adium for all IM. I was using Proteus and iChat, but it seems iChat was the source of some strange behavior, not to mention a resource hog. It'll take some getting used to...

My flight to Tokyo was paid for this morning. Here I come. A month in Tokyo and 3 weeks in Vancouver. Excited is an understatement. Anxiety has moved into the pit of my stomach as well, as I don't have a clue how I am going to pay for all this. Hehehehe.

Chatting with Soli - yes, THAT Soli - with whom I will be staying for part of my Vancouver leg, he sent me this photo of the view from his window:
Solis View

Yes, well... aren't I the lucky one? ;)

On a side note, instead of working on client projects the last few days, I've started developing a PHP-based tool to make comment management in Movable Type easier. So far I have used it here, on Joi's and on Smartmobs and, though rough around the edges at this stage, it is a godsend. I will release a package once I've cleaned it up.

All the best to you all in the new year!




Input output, part 1

I've been thinking a lot lately about this thing we call the personal weblog, especially the evolution I see, working exclusively on other people's, in how they are used and how their owners want to use them. It comes down basically to output and, increasingly, input as well.

For this scenario, there are two "actors": the individual and the group, or, the weblogger and the network. Me and you; the self and the other:

me and you

From my point of view, everything I put on the network is output, and everything I acquire from the network is input:

me and you talking

(This is why we say it is a conversation. Also notice how I consider The Weblog to be an extension of me - or more precisely, several aspects of me - and The Network as the aggregate of all of the extensions of you... as well as the product of any and all interactions thus produced. But that's another fight.)

This entry is output. Every picture in my photolog is output. Every picture I put on flickr is output, every song I listen to, as tracked by audioscrobbler, is output, every URL I tag in del.icio.us is output.

Every comment and trackback you all leave here (or anywhere I have left something) is, to me, input. Every technorati cosmos linkback is input. Every picture from my contacts in flickr is input. Every last.fm profile recommended song is input. Every weblog entry of yours that I read, be it in my RSS aggregator or my web browser, is input. Every grouped, inboxed or otherwise found URLs on del.icio.us is input. Every red dot on the map locating my visitors is input.

I could go further and say that every email and IM I send is also output, and that I receive, input... but that is out of the scope of the interaction paradigm I am concerning myself with here. It needn't be, but I'll leave that there for now. It is however just an interface thing.

That's a lot of microcontent to keep track of, and if we consider microcontent to be the atoms of "The Web 2.0", then there are also the electrons of those atoms, metadata, to think of. And just like electrons, it is the metadata that can help us bind it all together (amongst other things).

All of this is happening in our web browsers and RSS aggregators. Take this "weblog" for example. Weblog entries, photolog "moblog" entries, links, my 10 most recent flickr pics; all there, and I haven't even integrated my last.fm list, my del.icio.us URLs, my technorati cosmos, etc... On the RSS side I have crammed in all the output I generate locally, to the dismay of some of you.

My clients, and myself included, not only want to share more output, but we also want to keep track of more input, some of which we also want to share, and some that doesn't necessarily need to be. As something of a web interface designer, this all presents me with a very real problem, one that needs a solution. This is what I will try to address here in part 2. Stay tuned! Hah!




Firefox share grows 35% in a month...

Firefox's Share of Browser Market Grows 34 Percent in One Month, According to WebSideStory:

The U.S. browser usage share of Firefox, the upstart Mozilla-based browser that has become a champion of the open source movement, has grown by more than a third over the past month, according to the latest independent study from WebSideStory (Nasdaq: WSSI) (www.websidestory.com), a leading provider of on-demand Web analytics. In the one-month period from Nov. 5, 2004 to Dec. 3, 2004, Firefox's online usage share grew from 3.03 percent to 4.06 percent. This compares to a gain of 13 percent during the previous month, from Oct. 8 to Nov. 5. WebSideStory is a recognized authority on global Internet user trends and has been since 1999. The company's sample size consists of more than 30 million daily Internet users from more than 200 countries.

Great! I just wish I could get it to run on my machine... :p

Anyways, efforts like their 2 page New York Times ad can only help. Congrats all around and a tip of the hat to Jon Hicks for his awesome logo, which is getting hella exposure.




Tags... no! Semantics! No! Ontologies!

Or something like that...

I've been ranting about tags, Ado spoke of APIs, Leonard digs in with facets and triplets, and surely there are looooads of other people talking about all of this, and have been for a long time.

Right now I want to point y'all to this Google Translation of Karl's recent answer to my tags rant. Charmingly enough, Google's french is about on par with Karl's english hehehehehe... (Sorry man couldn't resist. You know I'm kidding! ;)
Please please please, if you are interested in this topic at all, read it and make the effort to get through it. The translation is rough but passable.

So, Exhibit A:
Joi Ito's del.icio.us tags (on the right). What a mess. ;)
More to the point, he has 141 "tags" in his self-maintained taxonomy. Before I go on...

Exhibit B:
Flickr's top 150 tags. Looks cooler but that's not the real difference. Nor does it solve the same problem Joi has, and the rest of us soon will have...

Let's look closer, first at Joi's tags. You'd assume that a taxonomy maintained by one person would stay reasonably redundancy free:

5 cc , 2 creative_commons
2 conference, 1 conferences
1 gadget, 1 gadgets
1 health, 1 heath <- Typo!!!
4 japan, 2 Japanese, 6 japanese_culture
2 movie, 1 movies
1 photography, 5 photos
1 society, 3 sociology
1 stupid, 1 stupidity
1 tech, 1 technology
1 terror, 1 terrorism
9 politics, 3 us_policy, 16 us_politics

And my favorite alphabetical grouping:
5 sex, 5 sharing_economy

This is problematic on many levels. First of all, Joi has to type each tag every time he wants to attach one. That means increased chances of typos or slightly different "way of tagging" (e.g.: CC, creative commons). This in turn increases the number of tags in the soup, as well as reduces chance in finding a match when searching later (e.g.: "I would have sworn I tagged that CC... why isn't it here?" 5 minutes later... "Oh! I tagged it creative commons!" C'mon folks, the computer ain't helping us that much if we still have to think... ;). It also reduces the chance of "matching up" with other people's tags. And that's also part of the point of all this isn't it?

Now, back to Flickr's top 150. "Oh mighty Flickr! Show me all pictures in New York City, New York, U.S.A!" "Boooonk"... NYC? New York? NuYawk? What about York? Manhattan?
(Some intrepid souls are tackling this right now. Bless em.)

animal? or animals?
autumn? or fall?
cat, or cats? (funny, the dog doesn't have this problem...)
I could go on... the redundancy is three to four deep for some terms.

Ontologies, relationships between information, context. The exponents of flat hierarchies would have you believe that "a rose is a rose is a rose" and that "a rose by another name is still a rose". What they forget is that you don't *know* what a rose *IS* until you've seen it, touched it, smelled it; heard that when given to a lady, especially in bunches, it is a romantic gesture; felt the crunch of a dozen roses on your wallet; had a thorn rip into your lip... now THAT's a rose.

One does not learn in a vacuum. One requires context and one must have something one can establish relationships with. Children learn by establishing relationships between information: "mommy says these orange things are called carrots and if I eat them my eyes will be healthy".

"The New York Times is reporting on Fallujah, which looks like this according to the moblogged pictures from there on Flickr."
Cough and cough.

(One more cough... *someone* familiar with XMLHttpRequest-DOM stuff should look into how Livesearch is being implemented here and there and perhaps figure out a way for folks like, oh I don't know, say Flickr, could implement it for easing tag entering. All it takes is a little array of the top 3 to 400 tags...)

I was gonna say something like "Tags are the alphabet's last-ditch effort to bring the electric nature of cyberspace under it's linear perspective thumb! We must not allow this to happen!"... but then you'd most certainly take me for a nutcase. ;)




Tags, ontologies, community and feedback

"Com' follow me now!"

Thinking hard about tags - the new black as Ado says - and various conversations I've had recently, mostly with Karl, about ontologies, explicit relationships (hah!), etc.

Say I have a bunch of files that I have, one way or another, already tagged with pertinent, non-private, information.
Say I share that information and/or file with a community style site.

For many of my files - most in fact -, there already are ontologies, as I've mentioned before. On the FileSystem/OS level, such things as Date Created, Date Modified, File Type - could be useful; on the Applications level, well, for instance iTunes (or any MP3 player for that matter) has a very clearly defined ontology: it's called ID3... ID3 TAGS, people!

Let's stick with the MP3 example for now. I'll do pictures after.

Most of my music has pretty clean ID3 tags: artist name, track name, album name, star rating, genre... Ah genre. Tricky thing trying to categorize music. Wouldn't want to be responsible for what happened to Curt Cobain, you know... "Don't pigeonhole my music man!" Anyways. So, iScrobbler watches iTunes and tells AudioScrobbler/last.fm what I am listening to.

I am too tired to do a TCP dump so I don't know what iScrobbler is telling the mothership exactly but I would like to think it's sending MORE than just artist and track name. The ID3 spec makes room for lots of information, but let's stick with the aforementioned four, since things like "Track number", "Track length" and their ilk are too contextual (which album it's off of, how the track was encoded) to be really useful in a "sharing environment". So, I assume Scrobbler is only relaying track and artist names. This is already problematic due to typos, misspellings, differing entry methods - "Cat Stevens", "Stevens, Cat", "Caht Stebenz" - but can be moderated...

Similarly, if Scrobbler relayed the genres and ratings *I*, and everyone else, set for tracks, not only would they have a potential headache on their hands, but more importantly, they would have some VERY valuable information. Cynics in the room are already screaming "yeah, valuable to music companies!", but I rather think "yeah, valuable to music lovers!".

So here's what they do. First, capture and relationally store all ratings.
"1,275 out of 134,548 listeners of 'Wild World' give it 4 stars."
"264 out of 45,843 listeners of 'Cat Stevens' give him 2 stars."

For record companies, clear metrics - for music lovers, clear indicators of quality...

Then, genres. This is where it gets interesting. Store ALL incoming genres associated to tracks, but only actually 'ascribe' the, say, 5 or 10 most frequently attributed.

Next, open it up for community editing, Wikipedia style. Wikipedia proves that if you provide the community with a valuable resource of authoritative enough information, the community will roll up its sleeves and tend the garden.

But it's not valuable enough, not authoritative enough... until you open it up even more...

Ontological APIs. KABLOOIE.

"According to [ your friends | your 'musical neighborhood' | Scrobbler ], this track has been tagged to be of the following possible genres..." If you find one you agree with (betcha ya will!) you pick it, if not, you enter your own, which gets sent along back to the Ontology server... Feedback loop.

[Hrm... Imagine CDDB was open like that... holy cow.]

Ok, pictures now. You KNOW I'm gonna say Flickr. I'm also gonna say EXIF and Fotonotes. And tags tags tags tags...

There's alot of talk about the shift from top-down enforced hierarchies to the bottoms-up (hihi!) "folksonomies" and I'm thinking "How nice! We've gone from fascism to marxism! And it took all of... 3 months!"

Democracy, people. Create loose, general ontologies, and let community leaders manage them... In Flickr's case, how about simple stuff like "color", "person", "place", "food", "cat", "dog", "stupid cousin"...

Or how about less simple stuff, like full geographical ontologies - city names, capture device ontologies - camera make and model.

The argument that is sure to erupt is "why? if everyone just tags everything, it'll all be easily findable anyways!" Wrong. Relationships between data - subject verb object - grammar - some structure is always needed, and here we have an opportunity to get in in the middle and do it right...

Otherwise, as Karl says, we will go from an ocean of files to an ocean of tags, and no closer to home.
(Google translation of Karl's entry. Beware. It's almost as good as if he'd written it in english himself... ;)


7:30am. Shall I sleep or just stay up now?




Into the wild

Adriaan, the erstwhile developer of such sweet apps as ecto and 1001, today has released two of his little Perl scripts for Movable Type: the Technorati Plugin and the last.fm script.

Both of these have been running, beautifully, on Joi's site for a few months and a week or so, respectively. Ado is well placed to create these, especially the Technorati and Flickr stuff, having worked on the very APIs both offer himself.

I don't really use Technorati myself, but the last.fm one will be put into full effect here as soon as I move servers (soonish?) and have full control of CRON.

Bravo and thanks Ado!




Relate

I want all my data to relate.
I want to connect Bach's Toccata and Fugue in D Minor to Cornelius' Wataridori (because played back-to-back they are a force of nature, IMHO).
I want to relate that relation to a friend's contact info, to remind me to mention it to them and possibly share the files with them.
I want the relations to be date stamped.
I want the network of relations to be discoverable and exposable, hideable and transparent. Like a tree... with branches and roots.




Firepoop

I can't seem to get Firefox to work on my machine.

Immediately after launch, the only item in the top Menu is "Firefox" (no "File, Edit etc...") and essentially the keyboard is disabled (I can't type a URL into the Address box, or into any form elements).

I poked around a bit yesterday and at seemingly totally random, unreproducable times, the menu bar reappears and the keyboard is reactivated, though sporadically. This "reawakening" would happen after sometimes opening a new window, opening a link in a new tab, closing a tab, closing all windows and clicking on Firefox in the Dock to force it to open a new window...

This is not new to me though. I haven't been able to run Firefox on this machine for months. Yes, I have deleted all Preferences and caches and anything and everything related to Firefox (or any of it's myriad previous codenames).

Believe it or not I have even wiped my hard drive and reinstalled a clean OS, just to get Firefox to work. To. No. Avail.

Frustrating because I know I am missing out on something good. In my poking around yesterday I installed a bunch of very very interesting extensions and tools and such. But the bloody thing only works for me 20% of the time, so it's a no-go.

On a tangentially related note, the DNS issues I have been experiencing lately with all webbroswers, where the browser times out saying "Address not found" only to find it as soon I refresh, seems to be fixed by running the built-in system cleanup CRON jobs (daily, weekly, monthly). These scripts run on their own IF your machine is on and awake at the time they are set to run (early morning apparently). This means many many people never, or very very rarely have them run.

For you fine folks, here is some info on how to do this.




Mobile Internet Radio

This afternoon an acquaintance sic'ed a local journalist on me for my opinion on digital/satellite radio. She also mentioned Internet radio and how I currently use it.

My first thought went to those silly "Internet stations" listen in iTunes and other desktop MP3 players. "Hrm, never use those."

Oh wait! I DO use last.fm though. And recently I have been listing to their Profile radio streams ALOT. It's great cause the selection is basically made based on what I listen to and what people like me listen to. I also can listen to individual friends' "playlist radio broadcasts" (called "Personal Radio" on last.fm). The real value-add here is that the selection is contextualized: "This is what you friend so-and-so is listening to", or "this is what people who seem to share your tastes are listening to".

Anyways, the journalist's focus was really on "would you buy one of these XM radio boxes so you can listen to satellite radio in your car?" To which I essentially answered "hell no! why would I? To listen more of the same commercial crap programmed by some unknown DJ somewhere who is more than likely on the record company payroll?!"

Or, more to the point, "No, why would I? I can use my mobile device here to listen to my friend's radio streams via the Internet!"

Wishful thinking. While the Opera browser happily downloaded the M3U stream file, my P900 had no idea what to do with it. I.e.: I have no music player on my Symbian phone that can play M3U.

So, there are a few opportunities here:

  1. 3rd party software developer builds in M3U (streaming MP3) support into a Symbian (or other mobile platform) application.
  2. Last.fm whips up such a client, which would be great cause they could also build a whole API and the client could also interact with their network, not just play the songs.
  3. Somone like Nokia comes in and does both, and markets it as "built in mobile internet radio" (hint hint)

I have some ideas tangential to this to further contextualize/editorialize the selections. But that is for select ears only...




Little SQL help please?

Hoping one of you can help me out with this...

Say I wanted to have a list of the 10 most frequent commenters on this weblog, sorted by number of comments each has left, and selected by the commenter's email address. Can I do this with just an SQL query or would I need some PHP logic as well?

And, of course what would either look like roughly? I'm thinking SELECT DISTINCT and a COUNT in there somewhere?

:D

Thanks in advance.. cough...




[this is aaron]

Because, while I can respect it, Aaron's quiet, "I'll be over here" demeanor drives me batty sometimes, I am going to take license and point out his freshly published résumé.

While I'd love to expound on how he's actually publishing his résumé, via XML and all sortsa crazy parsing voodoo, I'm afraid I haven't the slightest clue. So I'll just point you to his CPAN profile.

I'd *really* like to go on with some real "Happy-Happy Joy-Joy boosterism" of Aaron, but I'm not sure how much he'd let me get away with. ;)

Someone give this supremely intelligent and gifted man some work, lest I start a company just for him!

Hrm. ;)




Ping me

So I was thinking about how I could be notified of the continuation of weblog comments threads I'd participated in. I don't want that stuff in my email. I want an RSS feed I can check once in a while.

I thought "hey, I have a URL... ping me!"
I figure... I leave my name, my email address and my URL.
I figure... I could tell your weblog to notify me for each of the next 3 comments made to that entry right there.

So I am thinking... "how could we implement this in Movable Type?"
We need two things. Something that sends pings and something that can receive/store/publish them. Hey! MT has both of those things! The TrackBack mechanism! In fact all weblog tools have that now!

A quick, rough and dirty way to set up the receiving end (my end) would be to create another "weblog", create an entry and note it's TrackBack URL. Futz out some custom templates (don't need much... an RSS feed to notify me, an index of most recent pings and monthly archives... if that), and we're ready to receive.

The "other end" - the sender - is trickier. MT would need to be hacked or patched or plug-in'ed... Basically, and depending on how we'd architect the User Experience, the comment mechanism would hand off a URL to the Trackback mechanism which would send a ping to it.

If we want we could do all this with some sort of authentication, centralized à la TypeKey (add a field to my profile called "Ping Address"), decentralized with public and private keys (no one is doing this yet. why?)... or we just keep trusting each other. Cough.

Now, here I go off a bit further. Atom. Atom is more than a syndication format, it is a publishing framework. It can be used to retrieve stuff and push stuff out. So instead of sending me a Trackback (a non-standards-body-regulated, loosely and poorly implemented... standard...), send me a ping in Atom, to my Atom "interface". Hey! Guess what! MT has that too!! (I think...?)

I mentioned the ping thing to Ross and Joey at Blogware/Tucows the other day. Ross didn't even need me to finish my sentence he was already all over it... "I was looking for something neat to do with our new ping interface!" Of course Blogware can implement this easily, in one shot, seeing as they are totally centralized.

Can someone explain to me why I had the good sense to drink an espresso at 11pm. No sleep tonight!

(p.s.: this framework could be used for many more communication applications: email style asynchronous exchanges, alerts from services such as Technorati, etc... )




Some of my favorite geeks

... have been mightily busy!

Aaron finally fixed his "I-roll-my-own-thank-you-very-much" weblog and immediately posted about some of the wikkedly neat stuff he's been toying with over the summer. del.icio.us widgets, SVG maps, RDF, let's-see-what-happens-when-I-hook-this-up-to-this data combinatorial wackiness.

Dav hacked up a J2ME bluetooth gps mo-pho-weblogging doodad so he can track Mie... hehehehehe ;)
(Speaking of J2ME... Aaron mentioned something about a J2ME-Atom implementation... hmmmm.)

Francis and I just "got the keys" to our new very own super duper 1U rackserver running Whitebox Linux. w007! I have some plans for that baby that I have yet to nag him with, which I am sure is fine cause he's got some of his own. Aside from becoming an email ninja, setting up and installing the email system for some University in Ohio over the summer, and doing various contract programming jobs, the chicgeek also created Spamity, an online webtool for checking stats on your server-installed anti-email-spam systems (such as SpamAssasin, AMaViS, RBL, RHSBL).

Ado is working so hard that I can't spark up ecto to post a blog entry here without having to download an update. Annoying? Sure. Appreciated? definitely! (As Ado himself... hehehehee) He's also been working on APIs for some folks, but I'm not sure I can mention that here...

Michael and his group at Ile Sans Fil cranked out "Wifi Dog", a "complete and embeddable captive portal solution for wireless community groups or individuals who wish to open a free HotSpot" which, combined with location-specific and community-wide media servers is finally making sense to me as a truly awesome idea. Making locally created (CC-licensed?) content easily available on WiFi hotspots makes alot of sense. Mike's also turned me on to TikiWiki (try the demo) (hate to nutshell it as such, but think Drupal + wiki + steroids), and is gearing up to provide implementation services to academia. (Hats off to you my friend.)

Guys, big "thumbs up" to all of you! :)




Comment Preview Javascript


Aim Steve Jsrift

To see what we're talking about, try typing a comment on this entry...

[Merci Karl!]




Tail wagging

As Joi links to me from his entry on Chris Johnson's Wired article "The Long Tail", I figure I should riff a bit on what I see in all this and why I reminded him of Momus' excellent "Pop Stars, nein danke!" article.

[This will mostly only make sense if you've read both articles and are mildly insane, like me.]

So if you look at this chart, way past the right most end of the "tail"... that's you and me. That's you and me and our friends who are in local bands, making our own electronic music/videos, writing poetry, taking pictures as hobby, etc. We don't actually figure on this chart, but we could if the numbers were stretched and the criteria slightly adjusted.

Right, so it is not only getting easier and easier to produce stuff (*cough* micro content), but it is getting easier and easier to share it as well. Also, it is getting easier and easier to aggregate it and more importantly "communitize" it, i.e.: "check out what I just found that you may like".

In Momus' article he speaks mostly of the indie music scene in early '90's Britain, which is an awesome example, even today, or rather more so today because everything he more or less predicted, or rather "saw happening", is happening or has happened. "Democratization of means of production and distribution."

"In the future, everyone will be famous for fifteen people." Provided those 15 people aren't your mother and your closest friends and that your stuff is actually of some appreciable quality, those 15 people may, just may, tell their 15 people about it... and so on.

(Legally, this is another place where Creative Commons makes ridiculous loads of sense, by the way.)

Following me?

One of the effects of all this is a fragmentation of culture, or micro-cultures if you will. If we look at western music classifications and their associated groupings, gone are the days of "I'm mod, I'm a rocker, I'm punk, I'm a rapper, etc." At this moment, the kids are saying things more like "well, I am into band x and y, but every now and then I'll listen to d..." There are of course still general lines of exclusivity that some less insightful people stick to... "But you listen to x! How can you possibly like d!?!" A-ny-ways. Xenophobia is hard-wired into lack of education/experience/knowledge/exposure.

All of a sudden I am reminded of U2's Bono yelling onstage during the Achtung Baby tour of 1992: "Is this rock 'n roll?! Is THIS rock 'n roll?!" And "good taste is the enemy of art."

You'll notice I am drifting further and further away from business model aspects. That's just because I am way more interested in the philosophical/sociological/cultural and metaphysical aspects... but I'll spare ya.

Oh! Let's go back to that first graph and reinterpret it, for my purposes, as signal/noise x audience ratio. The X axis is signal -> noise, the Y is number of "listeners". The better the signal (less noise), the more people tune in. Takes alot of work/talent to produce a good signal, right? But hey some folks listen to the noise, hoping for some good signal here and there. God bless mom, she loves all my noise. So do a handful of friends. As I get better at producing signal with less and less noise, network dynamics pretty much guarantee more listeners. And so I move left on the graph.

[Insert]
DJ Dangermouse at Web2.0 says:

Mashing is so easy. It takes years to learn how to play the guitar and write your own songs. It takes a few weeks of practice with turntable to make people dance and smile. It takes a few hours to crank out something good with some software. So with such a low barrier to entry, everyone jumps in and starts immediately being creative. I don't understand why that is illegal.

Right now, it is damn hard to get to the point far enough left on the graph where hobby/interest becomes an economically sustainable endeavor. That's because that point lies on the other side of such things as "the music industry", "the publishing industry", "the movie industry", "the blogosphere" *cough*. In the world of distribution-via-atoms (CDs, DVDs, books, magazines, movie theaters), these barriers were erected naturally by the economics of the undertaking. As these economic barriers slide right due to electronic dissemination/distribution (hello everyone from McLuhan to Negroponte and countless others), my barrier to feeding myself from my signal gets smaller.

And oh god are the barrier profiters fighting tooth and nail to keep those barriers to the left of that graph! Cornered animals they are.

This has been a high noise ratio rambling. Thank you for tuning in, SETI.




LionShare

This looks very interesting.

1. What is LionShare?

LionShare P2P is an innovative technology that will facilitate legitimate file-sharing among institutions around the world through the use of authenticated Peer-to-Peer (P2P) networking. LionShare technology (which is currently under development) will provide tools for the exchange of academic, personal and work-related materials on an officially sanctioned and secure P2P network among participating groups and institutions around the world.

Additionally, an authentication/trust model between institutions is being developed that will allow an authenticated P2P network user at one institution to search and access resources at other participating institutions. This will extend LionShare's capabilities to a global scale by creating collaborative networks that will enable individuals from a diverse range of institutions to connect to the same secure P2P system.

Re-read that stripping out the focus on academia and institutional uses. Mix in community access services/portals (Michael, listening?), "legal" file sharing applications (Creative Commons?)... some "Sharing Economy" pixie dust (hehehe)...

Hmmmm.

Nevermind what pirates might do with it.




Pre Announcement

So I am running late on this little "thing I wanna do" so I am going to make a quick pre-announcement here right now.

Basically I am starting a small "Weblog Services" business. (who saw that coming?!) I will be offering a full spectrum (oooo marketing!) of weblogging-related services, such as setups, upgrades, customizations, design, migrations, hosting, maintenance, etc.

Now, as you may know, Six Apart just released MovableType 3.1, as well as the PluginsPack which contains the equally much awaited MT-Blacklist 2.0. These upgrades are really great, with loads of new features. With new features comes new technical challenges though. Now, no it isn't rocket science, but it can be a bit daunting for the non-tech inclined amongst us. Luckily, folks like myself have the know-how to help out!

Wheeee! ;)

Here's the deal:
I will upgrade your installation of MovableType, install MT-Blacklist, configure both with options that make sense for you, and throw in a special template or two here, a configuration tweak there... (sorry, hafta be vague here for now, but I can say, some stuff which makes dealing with Comment Spam a little easier).

Get in touch if you are interested! Seeing as this is a pre-announcement, I'll be offering this at a "special rate" (until i can get my act together and offer a full services and price list!).




Traceroute


6 if-8-1.core1.montreal.teleglobe.net (66.198.81.1) 23.254 ms 14.18 ms 10.804 ms
7 if-2-0.core2.newyork.teleglobe.net (64.86.83.226) 99.625 ms 138.619 ms 261.615 ms
8 if-9-0.core3.newyork.teleglobe.net (64.86.83.158) 117.682 ms 126.477 ms 102.5 ms
9 if-8-0.core2.losangeles.teleglobe.net (64.86.83.174) 86.923 ms 84.187 ms 85.992 ms
10 if-8-0.core2.paloalto.teleglobe.net (207.45.222.26) 98.09 ms 102.803 ms 101.986 ms
11 ix-9-2.core2.paloalto.teleglobe.net (207.45.196.70) 98.785 ms 99.088 ms 97.628 ms
12 ten8-1.paix-osr-a.ntwk.msn.net (207.46.37.21) 98.298 ms 98.072 ms 98.468 ms
13 unused.ntwk.msn.net (64.4.63.74) 97.871 ms 99.846 ms 103.086 ms
14 gig3-47.bay-6nf-srch-2b.ntwk.msn.net (64.4.62.9) 105.528 ms 105.453 ms 107.239 ms

Just ran the above Traceroute on the IP of what I knew to be a search spider, picked up from my access logs. Why is this interesting to me? Well, this tells me Teleglobe, a (what I believe was originally) Montreal based company provides the bandwidth for at least one of Microsoft's MSN data-centers in Palo Alto, California.

Useless but neat trivia.




One feed to unite them all

/me kicks himself for above gratuitous use of pop cultural reference.

So I finally got fed up and hacked up a PHP script that generates a single RSS 1.0 feed containing the 20 most recent entries to my weblog, photolog and links. The script is run via CRON every 10 minutes or so, and a few Apache Redirects make sure you all get this new feed now instead of the old ones.

That was serious fun. Was up until 5am on this one. :)

I must thank the past week I spent redoing and moving smartmobs.com for teaching me the wonderful ways of Apache .htaccess files. I'd never really played with them before and at first I hated 'em, especially some rewrites smartmobs.com was using ("Do not be fooled by Apache mod_rewrite. Sure it looks all nice and cool but it is Satan."), but yay. Good stuff.

Yeah, that's right. Guess where emails to webmaster at smartmobs get sent to... :D

/me does a little strut around the room.




Flexible rate experiment

Some context: I do freelance web specialist work: web design, architecture, etc...

I'll often take on small jobs for extra disposable income (or paying off the debts incurred from thinking I have disposable income... heh.) You know, those little brochure-type websites: "Hi, this is our little company, this what we do, this is how you can contact us." Yeah people still want those. Anyways.

Invariably we do the "how much is this gonna cost" dance. I severely suck at this dance. especially since these contracts usually come through acquaintances who don't want to insult me (with their deflated sense of value) or I them (with my inflated sense of the value of my time... ;) For this kind of work, the clients usually rather a package price, one figure, easy to swallow, no time tracking. Invariably I do way more than what I'm paid for but at least everyone is happy.

Just now I had to dance again. A return client who wants a redesign. Super nice guys, developing a product with some very interesting environmental implications (think carbon filters). "How much" says he. "How much you got" says I. "I'm thinking between $X and $Y... don't wanna insult you..." "Don't be silly!"

Here is what I suggested:

I am perfectly able and happy to stay within that range.
I am thinking of a very "organic", "sensitive to my environment" approach to this job. It is perfect that you give me a range. I have an idea, if you are comfortable with this, here is what I suggest:
Think of a gauge, like an RPM gauge. As the work progresses, the "revs" will fluctuate between X and Y. Without necessarily being mathematical about it, I'll average out a final price as we get to the end. Agreed it seems a bit arbitrary, but then again not... we have a set range that we are both comfortable with, and an unclear amount of hours/work.

Now, I wouldn't do this with just any client, but I think he may go for this. And I'll feel better than just saying "Ok, I'll take $Y..."

It's an experiment.




Whoops

I don't usually mention technical details about this site here but, um, comments are back up.
(I was being spam flooded the other day and quickly renamed the comment script... and promptly forgot to name it back...)




1996 all over again...

I was thinking about writing about this but Tim Bray brought it up (and is in a better position to do so...)

ongoing · Party Like It's 1996!

I'm a major admirer of Safari and of its primary author Dave Hyatt. But a couple of Dave's recent notes have caused me serious discomfort. Here he notes that Safari will support a new search= attribute on the input element, and here he discusses a new canvas element. Even more troubling is the opening phrase: Another extension we made to HTML is... I'd be really happy if someone explained to me how this is different from what Netscape and Microsoft did to each other so irritatingly back in 1996 (<MARQUEE> anyone?). What the W3C and Web Standards Project were created to stop? [By the way, there are namespaces, there are class= attributes, there are legitimate ways to extend HTML.] Someone please explain to me why I'm wrong, because I really hope this isn't what it looks like.

My thoughts and concerns exactly...




Be one with the information

Google is your friend. Accept it.




Friendster: more faster, less java...

I just logged in to friendster to see to my extreme surprise files ending in .php! They redid the system in PHP!

Oh and did I say it is WAY faster? Zing!




Death in the age of Social Software

Following the dreadful email mentioned in the previous post, I was contacted with the following suggestion:

... should we put something onto the bulletin board at Friendster for the non-bloggers who know her there? It seems like a grim task, but maybe you could also notify the people on her friends list. It seems like the right thing to do.

I have a few reservations about this. Any thoughts?




Evil genius

[this is aaronland] proof of concept : what's on first?

Mad scientist Aaron polls the New York Times for metadata keywords, matches them to http://del.icio.us/ "tags", crosschecks those against http://www.flickr.com/ image "tags"... RDFs it all and spits out a nifty SVG graph.

So... um... how do we make this.. um.. useful?

Perhaps an Etherpeg-style UI?




How to Care for Your Web Designer

Eris Design | Standards in Design. Standards in Life

It is important that you carefully read this manual. A well-cared for Designer will be a loyal new asset to your website for many weeks and months to come.

All current and future clients will get a copy of this. I may even send it to a few past ones to give 'em a frikkin' clue. ;)




What do you call it when

This morning, out of the blue, old buddy Michel IMs me this:

i had a friend who had a cool idea for something that'd be kinda like friendster, but for books, music and dvds and stuff.

so basically a group of friends library. where you have your people on your list that are allowed to borrow. and you have your list of books, etc... and the system would let you know who has what, and what's available from your friends.

Not an hour later, a new buddy, who shall remain nameless, mentions he is consulting a also nameless company to build a "social network" tool that would show "people who friended XXX also bought YYY"...

And now, I stumble across a post by also new buddy Jyri Engström where he makes this prediction.

(And he uses the term Kula... Hmmmm...)

Coïncidink?

Tangentially:
About a year ago I had a vision of the worldwide hurricane of garbage and doodads created by entities such as EBay, whereby literally hundreds of thousands of items were flying around in FedEx and UPS parcels all around the world everyday, at any given moment. A veritable typhoon of physical object exchange, encircling the globe...




Conference schedules

I'm sitting here trying to plan which panels and sessions I'm thinking of attending at ETech next week and it is a huge pain in the ass.

Not the "choosing what to attend" part. The planning part.

Sure there's a nice "At-a-Glance" calendar up, but that's only useful for reference. I want to have a copy in my calendar so I can mark which ones I'm interested in, those I am not, etc.

I just emailed Rael asking him if perchance there is a vCal format available of the schedule. Beyond that, I think a "My Conference Planner" web-app would be rocking for this. Should be simple enough. ;)

Sign-up for an account and as you browse the list/schedule of sessions/panels/whathaveyou you can click "Add to my schedule". Voila. From there you can export as vCal, print a PDF or just bookmark your personalized schedule.

As it is, I'm going to have to recreate the schedule in my calendar app and copy and paste each event. Yuck.

Building a web-service module like this would be useful for film-festival sites and the like as well. Hint hint. ;)

UPDATE: mere seconds after finding the link buried in the ETech Wiki, Rael replied with the URL to the iCal version of the schedule. Yay!




Hey ya!

iTunes Music Store RSS Generator

So I grab the URL for the top 10 selling tracks. Guess what's number one currently (must have iTunes installed)?




Live comment previews

Very cool bit of code: // hicksdesign :: Live Comment Previews.

Does what it says. Check it out. I think I may try this out if/when I get a minute again... like maybe some time next year... ;)

Thank you Mr. Hicks!




Ohhhh design

I few years back I worked in an honest-to-goodness (emphasis on the goodness) design firm. Small, cool, fun, good friends, great space... sigh...

Back then, I was surrounded by design. Everyday I'd check out the various design websites and the magazines we had laying about. I'd actually look at everything around me. Then I left for the "souldeath corporate job".

The last two months I have been hacking MovableType templates sans cesse (two just today!) and this evening I hit burnout. Dry as a bone. Been feeling hollow on that front for a little while now but it hit me full frontal this evening.

After a hot shower and a glass of wine, I decided to step away from the machine. But what to do? Can't sleep. It's one am and I can't sleep. Don't feel like reading, don't feel like going out. Back to the machine.

Somehow, I stumble on this.
(Somehow = Foolong => Book of Styles => Wannabegirl => CSS Vault.)

Hellooo design! Hellooo inspiration! Been a while! I've been "going though the motions" but hardly really applying myself.

Hrmph. Now I really can't sleep. And I really have no more wine either. Conundrum. ;)




Standards compliant Slashdot

Retooling Slashdot with Web Standards: A List Apart

Seems Mr.Frommelt already did the really hard part. Now somebody just has to implement.

Another worthy job would be to do the same for some of the more popular Wiki distributions. I've had to toodle with my share and lemme tell you: hacking HTML deeply embedded in 10-12 separate Perl or Python files is a royal pain the patoochus. ;)

/me goes to download MoinMoin... again...




Holy Stylesheet!

CSS House (3D Border Demo 2) by Chris Hester

You may not be able to see this (depends on browsers) but here is a red brick house drwan entirely with CSS.
Link via Tantek




The Library of Am'zon

I was going to write something about this new Amazon feature which searches the contents of books now and not just ttitles, authors, etc... But Wired beat me to it. In fact, apparently they beat themselves to it, which is interesting in itself, but anyways.

Not withstanding all the politics and theories discussed in the Wired article and everywhere else, this feature is, or rather, will be, a boon for anyone with a book collection to which one often wishes to refer to.

This is just the beginning. Bezos has already shown an openness to open standards and has commuted that to Amazon itself. Witness TypePad's integration, and the ability for anyone to set up their own version using their API and some "simple" XML transformations.

I'll gladly give Amazon my credit card number if I can maintain a list of all the books I own, and be able to run a content search on them. Cross reference away, it's fine by me. As long as I can find the passage I'm thinking of and on which page it appears on. And if I can build my own interface to it, so much the better. It costs Amazon next to nothing, ups their mindshare and consequently will sell more books. Simple. Brilliant.




Locales for PHP on Jaguar

Enable setlocale and strftime PHP functions on your MacOS X.2

Does exactly as it says. Merci SÈbastien.




Stats - beautiful, scaleable - stats

20030827-WikiHistory.gif

history flow

visualizing dynamic, evolving documents and the interactions of multiple collaborating authors

Aside from being quite beautiful, I find these rather fascinating. Context derived from patterns are central to how I think. Perhaps how we think? Hmm. More food for thought.

20030827-EMailHistory.gif

I also recently read a paper about "Digital Artifacts for Remembering and Storytelling" (Original PDF - Google HTML rendering) which reveals that essentially data patterns jog memories of social interactions and give one a whole fantastically deep wealth of context.

Pattern learning. Pattern thinking. Pattern recognition. Frequencies. Stimuli.




Fixin' Safari

Oh joy! The one silly little thing that was keeping me from using Safari full time as my personal browser was the fact that Safari didn't like something in MT's bookmarklet javascript.

This evening I spent all of 45 seconds looking at the code myself and decided I'd rather not the headache. Enter Google.

Et voila!

Fixing the MT bookmarklet for Safari :: The Daily Journey :: JayAllen.org

Thank you Mr. Allen!




IRC to weblog

Over on Joi Ito's IRC channel, I expressed the desire to have an ongoing log of the goings-on. It caused some heated debate and Joi decided we should discuss it and come to a decision via his Wiki.

So here I will explain my idea a bit more fully and why I think it would be at least a neat thing to try out, in the spirit of Joi's ongoing experiment to fuse various "social softwares".

First of all, the reasons I'd like a log of the channel are several fold: 1- catch up on anything interesting I may miss while I am asleep or commuting to work or otherwise logged off from the channel. 2- I feel much of what goes on there would be interesting to a bunch of other people who otherwise may not want to participate in an IRC "life". Also a log would remove the time requirement of participating etc...

Secondly, a simple "log" is not what I had in mind. I'd like the "log" to be dumped, in XHTML, into a weblog CMS system (I believe Bloxsom to be the tool of choice here), enabling it with Comments and Trackbacks and making it available to Google and Technorati. This would extend the conversation while stripping the time element.

I propose a proof of concept. A separate IRC channel complete with a logging bot which would dump everything into xhtml textfiles, ordered by day and perhaps at one hour increments, into a directory on a webserver which would have Bloxsom running over them. We could dev this out there, show it off.. and perhaps do a trial run for a day or two on #joiito...

So, I need an IRC channel, a python bot script and an installation of Bloxsom on a server... i can take care of the last one, who will do the first two? :)




Happy to be there...

WWW2003 Community Coverage

I love this phenomenon. Though of course I would LOVE to actually be there, the fact that attendees at these things live blog and that the IRC sessions are logged (chumped?) and posted to the web... well... is great! Not just for me and you but for the future...

Historical documentation... contributed to by multiple sources... master document.




While we're on the topic... (RSS)

Joi Ito has gone and done it. He bought and read Ben Hammersley's new O'Reilly book "Content Syndication with RSS", Of course this means I have to run out and get it too (shame on me for not having it already!).

As Mr. Hammersley says, Ito-san nails the issue right on the head:

It's flexibility vs. simplicity. RSS 2.0 is cool because it extends the simplicity of the original 0.9x RSS with modules. RSS 1.0 is cool because there are so many things you can do with RDF. The problem with RDF is that it is so ugly to read. Honestly, this morning I wouldn't understand what I have just written. The geek inside me is now awake and I want to learn everything there is to know about RDF, bu it took a bunch of people pummeling me to get me to care, whereas plain old RSS 0.91 got me excited just looking at the code. So, I guess I'm on Dave's side in terms of keep it simple and help get it widely accepted. On the other hand, the RDF stuff really does allow a lot of the semantic web attributes that we are talking about in the emergent democracy debate and the RDF framework, once it really starts to get picked up inside of applications could be really powerful.

Myself, I've been cheering for RDF. Not out of any profound understanding of it, mind you. Just out of a very high-level overview conception I have formed over the course of some reading and conversations about it. It does seem to me to be hugely powerful, but I must say that I too tend to have my eyes gloss over whenever I actually look at the code itself. Then again, the same happens, to a lesser degree when I look at any mark up (except HTML/XHTML... after tens years of the stuff I have found myself dreaming in tables some nights!).

Anyways, yes RDF "allows" incredible flexibility, and yes it is a, forgive my french, a "bitch". The true tragedy here is that it has not been adequately picked up by tool developers, which would allow it to reap the benefits of a moderate critical mass.

Let's look at it a tad deeper though, and compare it to other "standards" out there.

And by all means, if I am way off or outright wrong in what I say, feel free to correct me!!! Karl? Ben? Aaron? Steph? Anyone! :)




Kansei Engineering

incorporating affection and emotion into the design process.

"Kansei is a japanese term where the syllable kan means sensitivity and sei means sensibility. It is used to express the quality of an object for producing pleasure through its use."




Dance!

Google Dance explained and tracked. Fun.




Finally the "R" word...

Joi Ito finally said it; the R word: Revolution.

In his case he speaks of Japan and it's political/economic systems, but I've been itching to hear it lobbed about here in North America, and more specifically, in the U.S. Helloooo wildly corrupted borderline fascist state!!!

But this is not why I am writing this tonight.




Digital Identity

This is a hot topic with many implications and applications. Most of the time when DigiID is mentioned, it is in context of government programs to give everyone universal identification. The fear there is of course centralized governmental control of your identity. While there certainly may be benefits in this, it nonetheless opens frightening possibilities.

But this is not what I wish to address here.

I'm thinking again about "your URI is your identity". Self-managed and SECURE Digital Identification.




Le Web c'est des humains

"The Web is humans"
Indeed, when one considers the Web as a force for expression and communication, especially in the context of Weblogging, we can begin to not only see the truly biological characteristics of the Web, but also gain insight into the human mind.

I feel fairly confident to say that, in some cases – not all – weblogs are a sort of extension of one's mind: a memory offload, a place to store thoughts and experiences and share them with the community at large. The ability to comment and "trackback" (off-site commenting essentially) creates a conversation: 2-way communication.

A conversation between weblogs? No. A conversation between people: humans, human minds.




© —> CC

Lawrence Lessig shook the very foundations of the Manufactured Reality. Hallelujah. A trully powerful and engaging orator, masterful presentation giver, he had the room enthralled, shocked, scared, outraged and entertained. This was THE historic event of the convention I felt.

Read Aaron Swartz's notes on the speech (almost a transcript).
Lisa Rein is graciously sharing video and audio of Mr. Lessig's presentation.

Mr.Lessig said he'd be making materials available online. I will link to them as I find them.

All I could keep thinking was "let's push things forward".

I refrained, and kick myself now for having done so, from raising my hand commenting: "I have not heard the one word I think we all need to hear: revolution."




Between the (style) sheets

One of the best panels so far was this morning's "Between the (style) sheets" featuring Jeffrey Zeldman, Tantek Çelik and Eric Meyer. All three did a great job of showing off the power, and yes the relative ease of using valid, semantic markup and CSS for web design (the hot topic nowadays, n'est-ce pas). Though the audience was filled with mostly designers who admitted, by a show of hands, of having some knowledge of CSS based layouts, it was clear from the questions that most still feared it to some extent, or at least are weary of it. However, the job these guys did, I think, went a long ways to soothe some of the fears, simply by *showing* everybody "look what you can do and how easily!"

On an obliquely related note: I spoke briefly with David Weinberger who mentioned he was having some CSS/accessibility issues with one of his sites and I offered to give him a hand, which he happily accepted.




User style sheets

I asked Tantek about how easy it would be to develop a web-browser for web developers / designers where one could really see what was going in terms of the positioning and the layout (rollover highlighting of boxes, coloring of padding and margin etc.)

He opined a lot of that can be achieved through using user style sheets. I'll look into that, and perhaps hit him up again for some help.




Alexa = Amazon + Google

Alexa Web Search

This is... interesting. A webservice combining Amazon-style services with Google search functionality. Users can rate search results... they also have some stats screens.. Top500, Movers & Shakers...

I wonder if DayPop, Technorati et al may not be acquisition targets for Google sometime in the future?




Hex Color Steps

Color Blender

Thank you Mr. Meyer!!!




OPML to scetch out HTML document structures

Mr. Winer, in telling us about the work on some new templates he's doing for some site or another, gives us this: an OPML outline of the html structure of the template.

Brilliant. He just made the cost of OmniOutliner 100% worth it.




XBEL pleeeaaase!

It seems we'll need to evangelise XBEL to the folks at Mozilla and at (gulp) Microsoft.
Oh how I would love it if Mozilla and IE allowed me to store all my bookmarks and borwser histories in XBEL format in a specific folder on my HD... or on a remote HD.. via SOAP... preferably somewhere where a Zoe installation had access to it...

;)




MySQL Explained to Frontier Users

Or vice versa...




Ok I'm still new to this bit but...

I just poked around with Apple's iCal and AddressBook.. and well... yeah bravo they are using the "open standard" (are they?) VCARD and ICS formats respectively... But... but...

I mean I cracked these files open (they are text files after all) and while they seem to follow the same concepts as XML, they aren't... Why? Are there no DTDs or Schemas for these things yet? C'mon folks! There should be! Email too!

Why? Becasue while the Internet is an extension of our collective minds, now that we are going to see "every client is a server and every server is a client" on our desktops, XML-RPC/SOAP, et al... the time is ripe for "personal extensions of our minds/lives"...

This is what Perfect Memory is about. Partly.

So far the only XML based "element" in my plans is XBEL for bookmarks.. but not a one browser uses it as its defacto Bookmark format. This is ridiculous!

Francis, without Schemas for mail, IM, Contacts and Calendars, we'll be doing a whackamole of importing and parsing. What am I saying? we'll be doing mostly that regardless... Sigh...




XMail or XMbox ?

I'm trying to pull together some of the very knowledgeable resources I have to try to get an XML DTD for mail off the ground...

The currenly widely used "mbox" standard is just screeeaaaming to be put into XML...

Francis? Ludovic? Karl? Anyone? Wanna help? :)




Teach myself to validate

I always make sure to learn things the hard way.

I webmaster (v.) my friend's website. It needs not only a redesign but I'm redoing the entire architecture. What is now one site will be broken up into 4 domains, plus two extras for document repository and administration interface (databases et al). They will all be linked by a global navigation scheme, yada yada yada.

Anyways, I decided just now: "what the heck... see if you can make the whole thing validate (XHTML/CSS)". I doubt I'll be able to do the entire thing, but definitly much/most of it.

Stay tuned!