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.


# Oct 30, 2007

A PHP function for SEO-happy titles

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 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;
}

# Oct 29, 2007

Speed matters

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).

# Oct 29, 2007

OK I'm trying this with Amelia.

[youtube http://www.youtube.com/watch?v=7gSZfW4gVhI&rel=1]

# Oct 28, 2007

Today's IA tip for beginners.

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.

# Oct 28, 2007

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

# Oct 28, 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.

# Oct 27, 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."

# Oct 26, 2007

Brazilian IA Summit

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.

# Oct 25, 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.

# Oct 25, 2007

How to make a little shrine for your home

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 :)

# Oct 25, 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."

# Oct 25, 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!

# Oct 25, 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

# Oct 24, 2007

A real video.

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.

# Oct 24, 2007

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

# Oct 22, 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.

# Oct 22, 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.

# Oct 22, 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.
# Oct 20, 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?

# Oct 20, 2007

Google widget: click to throw food to the fish.

# Oct 19, 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."

# Oct 18, 2007

Hey it's the 50th birthday of "satisficing".

# Oct 18, 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).

# Oct 18, 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.

# Oct 18, 2007

Social networks and the wireframe as a boundary object.

"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 :)

# Oct 17, 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."

# Oct 17, 2007

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

# Oct 17, 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.

# Oct 17, 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).

# Oct 15, 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."

# Oct 13, 2007

Wrong strategy LinkedIn!

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?)

# Oct 13, 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.

# Oct 13, 2007

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

 


# Oct 13, 2007

Unfuddle (via Simon) seems like a perfect fit for startups. Project management, bug tracking and source control, and it's got a free version too.

# Oct 13, 2007

Is there any way that, using jQuery and the Taconite plugin, you can return HTML that's not valid XML? I tried using cdata, but it doesn't seem to work.

# Oct 12, 2007

The amazing power of sequel on rails.

# Oct 12, 2007

Achieve your childhood dreams

Great presentation on achieving your childhood dreams. Mine were:

  • Write a book. Check.
  • My face on a stamp. Check.
  • Man of the year in Time magazine. Check.
  • Nobel prize for peace. (This one might be a bit harder).
  • Get interviewed in Humo. (Not there yet, but one day.)
3 out of 5, not bad so far.

# Oct 11, 2007

jquery question

I have a very strange jQuery problem: stuff works fine on my local install, but doesn't work on the live install. For example, sign up at poorbuthappy.com, then go to http://poorbuthappy.com/test/ and click the "add friend" button. It should be ajaxy, but it's not (well, kinda, you'll see. The button just greys out, and it should change to a "remove friend" button). The PHP script is reached, but the jQuery "success" function isn't fired. And I have other local Jquery bits that work locally but not live, while others do. It's weird.. any ideas?

# Oct 10, 2007

When Mozy starts backing up (2 gigs of automatic backup for free!), at some point it says "reticulating splines". What does that mean?

# Oct 10, 2007

Scancafe sounds pretty good for the photographers among us: you send them your old slides and negatives, and they send back a DVD with scanned images, high quality. For 25$ you can get about 100 slides scanned.

# Oct 9, 2007

Digg's dead.

When you actually look at the stuff on Digg's homepage (today), it's boooring. Dead, filled with "7 ways to X" and similar SEO spam. Digg's out, as far as I can tell. The Yahoo homepage has a few similar problems, btw. (Specifically, check the URL's. The spammyness jumps out.)

# Oct 9, 2007

Strč prst skrz krk is a Czech sentence. Sounds like something from a Superman comic (who was that little guy that spoke like that?)

# Oct 6, 2007

I moved my book website from iabook.com to petervandijck.com/iabook/ to avoid problems with domain name squatters.

# Oct 6, 2007

My sites on Mediatemple suddenly got REAL slow a few days ago. Luckily they fixed the problem with more hardware, memory and some smart tricks, and the good side of this is that now those sites are really fast. Let's hope they keep it that way.

# Oct 5, 2007

It has become more and more clear to me that the biggest problem enterprises face in their IT selection is the software vendors, who try to sell monolithic "solution" that almost never delivers as promised. There is an inherent conflict of interest. Regardless of the advantages of a closely controlled environment, it's almost bound to go wrong, because there is so much incentive to make it go wrong. So what's the solution? Loosely coupled services that work well and are adopted bottom up can take care of a large part of an enterprise's software needs. For the bits that do need to be closely controlled, I guess we'll need the SAP's of this world for this for a while longer.

(Damn these cryptic posts with no examples! Oh well, no time.)

# Oct 4, 2007

Google is pointing search traffic to their own properties, and now Yahoo's following suit.

I wonder why nobody has written about Google poisoning their search results with video links that without fail point back to Youtube, a video company that they own. And now Yahoo is doing the same: adding "useful" results to search, that point back to their own properties. Have the search engines decided that objectivity is no longer required? I always thought getting into the content game (buying Youtube) was a mistake for Google. Don't get me wrong though, I think the evolving "mixed" search results are brilliant, I just think that the search engine that makes an effort to send traffic to properties they don't own will have a much better chance of winning.

(I also think Yahoo needs to totally redo the yahoo.com homepage. It drives a lot of traffic I'm sure, but it's really quite bad. I'll keep that analysis for another post.)

# Oct 2, 2007

Blip.tv's learning section is great. Really well done, I hadn't seen it before. Makes me want to do some videoblogging again :)

# Oct 1, 2007