Archive for October, 2007

Wednesday, October 31st, 2007

Britney Spears has gone Drupal :) Drupal seems particularly popular with websites for places like Sony, MTV, music publishers and such, where a lot of websites have to be developed fast with good social and CMS features, which is exactly what Drupal excels at. Drupal keeps rocking and speeding forward, increasing in popularity, and Dries continues to stay calm as a zen monk in the middle of this storm.

Wednesday, October 31st, 2007

A step by step explanation of a pattern for jquery plugins. Just fill in the blanks!

Wednesday, October 31st, 2007

Do you speak Japanese? What is taggy.jp?

Related: I wrote a post on 290s.com about tagclouds in Chinese and Japanese.

Wednesday, October 31st, 2007

Matt on paid links in templates: “Two years ago I made one of the biggest mistakes of my life when I made
a decision to accept a “sponsorship” on WordPress.org without
considering the ramifications it would have for its users, our
community, and the web as a whole. It pains me to see others going down
a similar path.”

Tuesday, October 30th, 2007

Alright so it turns out bloggers DO get paid to put those way annoying snap previews on their blogs.

Tuesday, October 30th, 2007

Wow, Gmail does catch a LOT of spam. I already thought so, I hardly ever get spam, even though my email is all over the place.

A PHP function for SEO-happy titles

Monday, October 29th, 2007

This is a simple PHP function (two functions actually) that I wrote that generates SEO-happy URL fragments. This way, you can have /something/its-a-title/ instead of /something/19828/ in your URL’s. You’ll have to call the function to generate a URL path and store that in the database with your object every time you add an object. It uses dashes instead of underscores because historically they’ve been better for SEO, although that seems to be changing. Feel free to use this function any way you want. I’m sure it could be improved btw, my PHP skills are of the “it works but it ain’t necessarily pretty” variety.

The function lets you add in a tablename and field that it will use to make sure that the url string it generates is unique.

It uses a “clean()” function in the beginning that just cleans up the text, you can remove that or replace it with your own function.

The second function especially is kinda cheapo, but it works and I’m too lazy to improve it.

/**
* Recursive function that generates a unique "this-is-the-title123" string for use in URL.
* Checks optionally against $table and $field and the array $forbidden to make sure it's unique.
* Usage: the resulting string should be saved in the db with the object.
*/
function seo_titleinurl_generate($title, $forbidden = FALSE, $table = FALSE, $field = FALSE)
{
## 1. parse $title
$title = clean($title, "oneline"); // remove tags and such < - REPLACE WITH YOUR OWN FUNCTION OR REMOVE
$title = strtolower(trim($title)); // lowercase
$title = ereg_replace(" ", "-", $title); // replace spaces by "-"
$title = preg_replace("/([^a-zA-Z0-9_-])/",'',$title); // only letters and numbers, hyphens and dashes

## 2. check against db (optional)
if ($table AND $field)
{
$sql = "SELECT * FROM $table WHERE $field = '" . addslashes($title) . "'";
$res = mysql_query($sql);
if (mysql_num_rows($res) > 0)
{
// already taken. So recursively adjust $title and try again.
$title = append_increasing_number($title);
$title = seo_titleinurl_generate($title, $forbidden, $table, $field);
}
}

## 3. check against $forbidden array
if ($forbidden)
{
while (list ($key, $val) = each($forbidden))
{
// $val is the forbidden string
if ($title == $val)
{
$title = append_increasing_number($title);
$title = seo_titleinurl_generate($title, $forbidden, $table, $field);
}
}
}
return $title;
}

/**
* Function that appends an increasing number to a string, for example “peter” becomes “peter1″ and “peter129″ becomes “peter130″.
* (To improve, this function could be made recursive to deal with numbers over 99999.)
*/
function append_increasing_number($title)
{
##. 1. Find number at end of string.
$last1 = substr($title, strlen($title)-1, 1);
$last2 = substr($title, strlen($title)-2, 2);
$last3 = substr($title, strlen($title)-3, 3);
$last4 = substr($title, strlen($title)-4, 4);
$last5 = substr($title, strlen($title)-5, 5); // up to 5 numbers (ie. 99999)

if (is_numeric($last5))
{
$last5++; // +1
$title = substr($title, 0, strlen($title)-5) . $last5;
} elseif (is_numeric($last4))
{
$last4++; // +1
$title = substr($title, 0, strlen($title)-4) . $last4;
} elseif (is_numeric($last3))
{
$last3++; // +1
$title = substr($title, 0, strlen($title)-3) . $last3;
} elseif (is_numeric($last2))
{
$last2++; // +1
$title = substr($title, 0, strlen($title)-2) . $last2;
} elseif (is_numeric($last1))
{
$last1++; // +1
$title = substr($title, 0, strlen($title)-1) . $last1;
} else
{
$title = $title . “1″; // append ‘1′
}

return $title;
}

Speed matters

Monday, October 29th, 2007

Speed matters much more than many people still think. I always felt the raw speed of Google was one of the reasons for its success. “Google increased the number of search results to thirty. Traffic and revenue from Google searchers in the experimental group dropped by 20%. [...] we had a similar experience at Amazon.com. In A/B tests, we tried delaying the page in increments of 100 milliseconds and found that even very small delays would result in substantial and costly drops in revenue.” I remember a quote by Mark Fletcher about Bloglines: every time they increased the speed, pageviews went way up (people would look at more pages if they’re faster).

Sunday, October 28th, 2007

OK I’m trying this with Amelia.

Today’s IA tip for beginners.

Sunday, October 28th, 2007

Sites that put “community” in a separate tab most likely think of community as an add-on to their business, not as core to their business.

Sunday, October 28th, 2007

wtf?: “Diezelfde disclaimer moet dan ook nog getoond worden in een popup als mensen de site verlaten.  ( wtf moment twee)”

Saturday, October 27th, 2007

I have a serious question. Do bloggers get *paid* to put those annoying SNAP preview thingies on their blogs? Or is it just some kind of collective insanity? I ask that because I see them mainly on high traffic blogs.

Friday, October 26th, 2007

Dabah Boyd on understanding social networks: “One of the things that I figured out really quickly is that having a
profile did me absolutely no good. I needed to have friends who would
interact with me so that I would get what it was like to experience the
technology as a mediating force. Thus, I have dragged my friends
kicking and screaming into using these tools just so that I could get
it.”

Brazilian IA Summit

Thursday, October 25th, 2007

The first Brazilian IA summit was last weekend - 2 days of lectures and talks. With about 160 participants, IA seems to be doing great in Brazil.

Thursday, October 25th, 2007

You don’t want to mess with Jonathan Schwartz: After being threatened to be sued: “We have one of the largest patent arsenals on the internet, numbering more than 14,000 issued and pending globally. [...] We’re going to use our defensive portfolio to respond to Network Appliance, filing a comprehensive reciprocal suit.”

I think some people at NA are going to be doing some serious soul searching today.

How to make a little shrine for your home

Thursday, October 25th, 2007

We made a little shrine on the wall of our house a few weeks ago. It’s really nice, it gives the house a great feeling, especially when a candle is burning on it. Here’s a picture (it’s next to the door):

amelia 052

I got my inspiration for this little shrine in Asia. There are shrines everywhere, and I always thought they were fascinating. And throughout the years, I’ve picked up lots of little “religious” thingies from various travels that are perfect to put in a shrine.

In Thailand, for example, they sell these little thingies in markets that represent gods and wise men that you can put in your home, for luck and financial success and so on. Here’s a picture:

thailand3 009

You see shrines everywhere in Asia: in homes, on the streets, on cars, everywhere. Here’s a picture of one in India:

 IMG_2254

Here’s a tiny shrine, just a little picture at the foot of a tree:

IMG_2467 

Back to the shrine we made at home. I took a wooden thing to put flowers in (from Ikea), turned it on its side and attached it to the wall.The stand of the shrine was finished. Easy! I like it if the stand is a little rough, this flower stand had been used for a while, so it was a little dirty. That’s good.

Then we went through all the religious thingies that we collected throughout the year, and put them on the shrine. See if you can spot:

  • The black madonna from a Hispanic religious shop in New York.
  • The lotus flower with the tiny Ganesh in it from India.
  • The big Indian god.
  • The Thai wise men photographs.
  • The golden buddha (ok not really gold).
  • A picture of Judas, again from New York.
  • The african ancestor statue related to circumcision, from Congo.

The Indian pack of candles is thrown in just because it has a beautiful patina :) Here’s the picture:

amelia 055

OK, that’s the first part of this shrine ready.

One of the big differences between Asia and Europe in the way they experience religion seems to be this: in Europe, they ask “what do you believe in?”. In Asia, that sentence has little meaning. Instead, they ask: “What do you practice?” It’s all about what you DO, not what you BELIEVE. Believing is easy (and lazy), doing is better. In many places in Asia, every house, shop and business has a little shrine, and there are usually some flowers or a candle there.

So DOING something means offerings. We had a nice dried flowerthingie from Thailand, so we added that. Some candles. And to top it off, regularly, we burn a little candle in this shrine.

So there you go. Add a shrine to your house. It’s easy :)

Thursday, October 25th, 2007

1 pro of living in Belgium: good cheap schools. “Now, you may think he’s merely a
curmudgeon, a tired old teacher who stopped caring long ago. Not true.
Teaching is his life. He says he loves his students, loves education
and learning and watching young minds awaken. Problem is, he is seeing
much less of it. It’s a bit like the melting of the polar ice caps.
Sure, there’s been alarmist data about it for years, but until you see
it for yourself, the deep visceral dread doesn’t really hit home.”

Thursday, October 25th, 2007

So this is why I still respect Techcrunch: when they make a mistake (linking to themselves instead of the sites they discuss, in order to generate pageviews), they admit it and change their ways. Respect!

Wednesday, October 24th, 2007

Indeed: “Play with the interactive doodads in the advertisement a bit and you
can create a not unfunny amalgam of chicken, bull and duck, or donkey,
dolphin and rhinoceros, etc. It’s a cute idea, but really, it betrays a
probably unintentional appropriateness. It’s just perfect that Lotus
Notes, an application whose awkward integration of multiple feature
sets I’ve only ever heard spoken about with violent disgust, promotes
itself as freakish software. As if frightening, cross-species
aberrations of nature are what we’ve all been looking for in an email
and calendaring solution.”

Enterprise software is the worst.

Lotus Notes 8

A real video.

Wednesday, October 24th, 2007

A “real” video by Jakob (the guy who started Vimeo which together with blip.tv is where the really cool video kids hang out).


It’s Hard To Be Brutally Honest from Jakob Lodwick on Vimeo.

Monday, October 22nd, 2007

I just published the first free report at 290s consulting about information architecture and user experience for the Latin America locale.

Monday, October 22nd, 2007

Under Florida law, a 16 and 17 year old who have sex are ok (legally), but if they make pictures of it (and don’t show anybody) they are prosecuted for child pornography.

Monday, October 22nd, 2007

Raymond’s tumbler: “Join us and panelists from the most disruptive phenomenons changing the way we live. Let’s face it . . . if you’re not using Twitter, LinkedIn, craigslist, Facebook, digg, Flickr, Laughing Squid, ValleyWag, Google Earth, Bebo, BoingBoing, Skype, WordPress, eBay, Wikipedia, Second Life, 43 Things, Buzznet, Dodgeball, StumbleUpon or, (gasp) YouTube . . . then you just might step off the earth.”

Or, alternatively: “… then you just might not be white, male and middle class.” Youtube and eBay excepted.

Saturday, October 20th, 2007

Indeed: “I mean, for fuck’s sake. Who are these guys? [...] One could just as easily say “If I had two hours a day to market my blog, it probably means I’m missing two hours of sleep, and that’s what I would use it for.” Because, well. That’s what I would use it for.”

The problem with marketing is twofold:

  1. It kind of works.
  2. It sucks your soul dry, which in turn limits its effectiveness.

Saturday, October 20th, 2007

DBSlayer lets you access your database via http and returns JSON. That’s supposed to help with scaling. What I don’t understand is this: won’t accessing your db over http make things slow? Since you have to go over the internets? Compared with hitting your db machine that sits next to you in a rack?

Friday, October 19th, 2007

Google widget: click to throw food to the fish.

Thursday, October 18th, 2007

Yesterday: “Louis Vitale, 75, a Franciscan priest, and Steve Kelly, 58, a Jesuit
priest, were each sentenced today to five months in federal prison for
attempting to deliver a letter opposing the teaching of torture at Fort
Huachuca in Arizona. Both priests were taken directly into jail from
the courtroom after sentencing.”

Thursday, October 18th, 2007

Hey it’s the 50th birthday of “satisficing”.

Thursday, October 18th, 2007

I’ve started a consulting company to more explicitly focus on the stuff I’ve been doing for the past few years: help startups (or startup-like projects) develop consumer products, and help companies organize global websites (”global information architecture”). The company is called 290s consulting. Go check out the new company blog to find out why, category geeks might like it (and the .com was available, for one).

Thursday, October 18th, 2007

If you need help tuning or improving your mySQL databases or queries, percona seems a good choice. I haven’t worked with them but I like their site and their blogs. 200$/hour for an efficient mySQL performance audit isn’t bad. I’ll report back if I ever use them.

Social networks and the wireframe as a boundary object.

Wednesday, October 17th, 2007

The objects that mediate the ties between people” is a powerful concept. On LinkedIn, the “recommendation” is an object that truly connects people, creates lock-in and ads long-term value (more than the network itself, the “friend” connection, for example).

From that post: “Think about the object as the reason why people affiliate with each
specific other and not just anyone. For instance, if the object is a
job, it will connect me to one set of people whereas a date will link
me to a radically different group. This is common sense but
unfortunately it’s not included in the image of the network diagram
that most people imagine when they hear the term ’social network.’”

Exactly. Social networks with objects that connect people are stronger, longer lasting and provide more value.

Social science has more to say about these objects: they can connect different domains of expertise. When they do that, they’re called boundary objects: objects that are used by different communities, and each community attaches different meaning to the object.

The wireframe (an IA deliverable) is a boundary object, and this power to connect different groups (desingers, coders, business people) through a shared object that has different meanings for each group is (I think) one of the reasons why the practice of information architecture has been such a success.

How exactly boundary objects and social networks that connect people through objects fit together I’m not sure. We’ll figure it out :)

Wednesday, October 17th, 2007

Now that’s writing with balls: just tell the truth: “We’ve stopped issuing new Ethnio accounts until November while we make the product amazing instead of promising but buggy.”

Wednesday, October 17th, 2007

If you need someone to make your videoblogs or web 2.0 media, check out smashface.

Wednesday, October 17th, 2007

More on Dewey Decimal and its biases.

Wednesday, October 17th, 2007

Reddit says: “The reason we didn’t display more than 100 comments in the past and
still don’t display more than 100 now is because of bandwidth and
rendering time (both ours and yours).”

I think that’s a mistake. First: bandwidth of a zipped list of a few 100 comments is VERY small: a few K only. Smaller than 1 image often. Second, displaying a long page with comments is fast: here’s an example (380+ comments). I am thinking about the same issue (you have to cap it somewhere, no point in displaying 1000 comments on 1 page?), but as long as there are no threads that hit 1000 comments, I think I won’t bother. I don’t think the reddit solution of only showing “good” comments is right. It breaks the conversation flow.

Monday, October 15th, 2007

Lately I’ve been obsessed with the power of lists and leaderboards. I think smart lists are very, very powerful and this is something that can make or break a website. There’s almost a book in there, but I’ll keep that one for a rainy day :) Here’s a good description by Lucas of the (ex) webJay algorythm, including a discussion on feedback loops (what’s popular stays popular because it’s on the most popular list).

Saturday, October 13th, 2007

The “Star Wars” project is alive and well: “The glossary of acronyms provided by the Pentagon to students of
missile defense is a list of abbreviations, like SBX or MIRACL (Mid
Infrared Advanced Chemical Laser). The glossary is typed on letter-size
paper with single-spaced entries and common type size. It is 327 pages
long.”

Wrong strategy LinkedIn!

Saturday, October 13th, 2007

LinkedIn’s “platform” will reportedly have to “approve” all apps that get on it, in order to make sure it stays nice and business-y.

Wrong strategy. Having to be approved will keep away developers. I understand the need to keep things clean and business-y, but there are much better ways to do that. Putting in constraints *before* the app even gets in is stupid: it’s shooting your own platform in its foot. They should look at the ecosystem as a social system: bad stuff will get in. Instead of heavy guarding at the gates, they should smartly police inside, plus have clever encouragement for the types of apps they want in their system (featured app lists, make sure leaderboards for apps are weighed the right way, etc…). Please LinkedIn, we need Facebook competitors. Don’t shoot yourself in the foot taking the “easy” solution to the app-moderation problem.

(Enough mixed methaphors for you?)

Saturday, October 13th, 2007

I wish Google analytics would do 1 more thing: let me log “events”: short text messages with dates, so I can say: “added this feature on this date”, or “moved to different host” or “was featured in the NYT”, and so on. And then let me display these events against the stats, to easily see where they may have affected traffic. Easy to implement, not too hard to adjust the UI, come on guys! Pulease.

Saturday, October 13th, 2007

wullfmorgenthaler makes me laugh daily: (and has an RSS feed):