A social network stream of conciousness

Someone else asked me a question whose answer turned out to be Gaia Online.

According to the data in the hints of the question, Gaia needs a serious revision upward in Alexa traffic rankings. I’m still wondering how revenue is going to keep up with costs though.

This company had a booth at ZendCon which was practically the only booth I missed even though they had a totally smokin’ boothbabe there—ZendCon isn’t CES. I guess missing out doesn’t matter much, becauser the lead engineers at the company visited Plaxo before they closed their insane round. All I recall from then was that Gaia Online was like Cyworld meets Second Life for 12 year olds. It’s a pretty cool website for those of you who aren’t Korean and worth a looksie if only to get a hint of what your kids will be doing online when they reach 10.

Speaking of Second Life, Dave was talking to me the other day about someone plunking down $50k for Amsterdam and for some reason it made me think of this. I don’t know why.

vim folding

My favorite vim setting

// vim:set expandtab tabstop=4 shiftwidth=4 softtabstop=4 foldmethod=marker syntax=php:

has the unfortunate side-effect of causing others to complain about the fact that my source code is “folded.” The problem is that some people who are only vim-users-only-when-working-on-a-remote-machine have a small learning curve when they see a page that looks like

<?php
// vim:set expandtab tabstop=4 shiftwidth=4 softtabstop=4 foldmethod=marker syntax=php:
+-- 12 lines: docs -------------------------------------------------------------
+--  6 lines: imports ----------------------------------------------------------
+--154 lines: WidgetProviders --------------------------------------------------
?>

But with about a minute, training yourself how to navigate vim folding will pay itself off handsomely for those of us who don’t use IDEs or do fancy stuff like exuberant ctags.

[quick fold tutorial after the jump]
Continue reading

Complete my album

Complete My Album

It’s (almost) finally safe to make a single song purchase in iTunes Music Store. A new feature called Complete My Album will count your single song purchases to the purchase of the entire album.

Nice.

It’s currently a limited time offer. My guess is they’re going to see the conversion rate before deciding to make it permanent. That’s clever but annoying.Continue reading

Pair your remotes

One f’d up thing I ran into today is that every time I try to do anything on my Apple TV, my MacBook starts reacting to the remote (going in and out of Front Row for instance).

The solution is to take your remotes and pair them. What pairing does it it forces the computer or Apple TV to only recognize one remote. To pair your Apple TV, just go to “Settings > Pair Remote” with the remote you have on hand. To pair your Macbook, read this hint.

Here is another tip. If you want to turn off your Apple TV (actually, put it on stand by), think of it like an Apple iPod. Hold down the Play/Pause button on your remote for five seconds.

Another Search Startup

A friend sent me the homepage of yet another stealth search startup. This company plans on using NLP.

My comment:

“Hmm, I should send [the URL] to Dave. He loves it when a bunch of braniacs get together to make an ASS [Another Search Startup] of themselves.”

New term I just invented. I hope it catches on. 🙂

Database Abstraction vs. Data Access

Alejandro Gervasio has an excellent article on using polymorphism to create a database abstraction layer.

Basically if you are wondering why or how PEAR DB, MDB, ADOdb, or PDO use the Factory pattern to provide database abstraction this walks you through it.

Maybe five years ago, this was a mind-blowing idea. But perhaps we should call into question whether this is an unnecessary abstraction.

[Database abstraction vs. Data Access after the jump]Continue reading

serialization without pity

You may have guessed my PHP development philosophy from something I wrote recently, but an interesting question at work yesterday showed that I need to put it in words.

If there is something difficult to do in PHP, there is probably an extension somewhere that allows PHP to push it to another layer. If that is something that can’t be pushed to another layer, than PHP probably has a built-in function or best practice to handle that case. Find that extension, function, or best practice and never choose one where another is better.

At work, the problem was, “Well if we weren’t so big, I’d have done all this on the database, which probably means that PHP shouldn’t be solving this problem.” In other words, if the scale was small, the database, not PHP, would have been the obvious place to solve the problem we were having. But the scale we operate is too large for a database so it becomes a problem. A solution to the problem on this scale written in PHP would not be a good architecture decision. (I’d pay for it down the road.)

That explains the first part of my philosophy, but what about the second?

[autoload, quirks, and session serialization after the jump]Continue reading

YASNS privacy

Andrei pointed me to this article trying to find the next MySpace.

Look at the sidebar: the numbers are pretty impressive when you consider what ad revenue that represents.

Multiply was an analyst pick because it has “strict privacy controls and lets people set up networks that can only be viewed by people invited to their group.” Having worked at a company with the strictest privacy policy in the universe, I’ll disagree with the pick.

In light of my recent Haiku fun:

Network Privacy?
Live quiet desperation
in obscurity.