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.
Month: October 2007
A step by step explanation of a pattern for jquery plugins. Just fill in the blanks!
Do you speak Japanese? What is taggy.jp?
Related: I wrote a post on 290s.com about tagclouds in Chinese and Japanese.
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.”
Alright so it turns out bloggers DO get paid to put those way annoying snap previews on their blogs.
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
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;
}
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).
OK I’m trying this with Amelia.
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.
wtf?: “Diezelfde disclaimer moet dan ook nog getoond worden in een popup als mensen de site verlaten. ( wtf moment twee)”
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.
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
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.
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
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):
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:
You see shrines everywhere in Asia: in homes, on the streets, on cars, everywhere. Here’s a picture of one in India:
Here’s a tiny shrine, just a little picture at the foot of a tree:
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:
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 :)
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.”
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!
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.
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.
I just published the first free report at 290s consulting about information architecture and user experience for the Latin America locale.
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.
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.
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:
- It kind of works.
- It sucks your soul dry, which in turn limits its effectiveness.
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?
Google widget: click to throw food to the fish.
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.”
Hey it’s the 50th birthday of “satisficing”.
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).
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.