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.

LinkedIn Haikus

I decided to dress up my latest LinkedIn invitations with some poetry:

Found new connections.
Send mail into the ether.
LinkedIn Spam Is Fun.

You liked this haiku?
Then add me to your network.
(We’re both on LinkedIn.)

His conversion is almost complete

I used to work with a guy named Haiping, a former developer at Microsoft who was hired just two people before me at Plaxo. He has some crazy C++ skills as well as is pretty damn good at that headshot thing in PC first person shooters. Last time I was in South Bay, I stopped by Plaxo and talked to him. Later that evening, I went to the Facebook Tech Tasting and met him again. Only this time, his tag said “Facebook.” Between those two times he had changed jobs!

The great thing about our former company, is that you get card updates. I like to accept/reject mine over the web interface and read this today. Read his Work Card Message:

My friend Haiping flips his job

A C++ engineer switches to PHP. A windows user switches to Mac. Now all I have to do is convince him to get a Nikon camera. Now all they have to do is port Day of Defeat to the Mac.