, Please Fix Your Search. your search is not very good!

I just did a search for “all cars newer than 2000, between $2500 and $5000 excluding damaged vehicles, in descending order by Kms.” Sounds pretty complex when you write it out in English, but that should be a fairly straight-forward SQL query. Came across a couple of pretty serious problems there.

Your premium listings do not obey my sort selections, they simple appear in whatever position the advertiser has paid for. This would be somewhat forgiveable if the premium listings where displayed separately, a la Google ad words. Even though they are on a yellow background, as a first time visitor I had not yet scrolled down to notice that the regular listings are on a white background. So I assumed that your sort feature was broken, in fact I probably wasted a minute clicking the sort link until finally giving up and scrolling down. It was then that I realized exactly what was going on. I don’t know if there’s a good way to fix this from a user interface standpoint, you may just want to increase the size of the “Premium Listings” header text and/or do something else to make it stand out more clearly. In my opinion selling premium listings is pretty lame, your profit margins online have got to be much higher than in print. At the very least, drop the ordering of the premium listings, so that I’m able to apply a sort to those listings as well.

Secondly, I came across something much worse.

This 2003 Hyundai Tiburon came up in my search even though I specifically excluded vehicles with damage. I’m sure that your search engine code is fine. I’m sure the problem is a lack of data. The seller of that car probably did not provide you with data about it’s “damaged” status. But you see, thing is, if such an obviously damaged car shows up in my search, then how can I be sure than all of the other results that appear fine don’t have some less obvious damage? This oversight makes your search engine completely untrustworthy! I know how had it can be to get good data from users, but seriously, have you data entry monkeys flag adverts with photos like these.

P.S. ASP sucks, drop your Microsoft licenses and you’ll make more than enough money to drop those lame premium listings.

P.S.S. Trasparent divs with background images is a lame way to block hotlinking of images. Just block access to your image files from off-site referers in … oh wait, that’s not possible with IIS. See previous PS.

.htaccess Mobile Browser Redirect

Checkout the latest version of the ruleset first.
I just finished building out a simple little mobile site for When I asked Google the best way to detect mobile browsers with PHP, it led to me this PHP code by Andy Moore. After a few minutes of contemplating the best way to include the code in the existing CMS framework I realized that it would probably be best to move the functionality outside of PHP. I mean, why clutter up display code with HTTP traffic manipulation. The website’s main traffic cop Apache is already perfectly capable of handling the duties already.

Here’s how to redirect mobile traffic using a .htaccess file:

RewriteEngine On
RewriteCond %{REQUEST_URI} !^/m/.*$
RewriteCond %{HTTP_ACCEPT} "text/vnd.wap.wml|application/vnd.wap.xhtml+xml" [NC,OR]
RewriteCond %{HTTP_USER_AGENT} "acs|alav|alca|amoi|audi|aste|avan|benq|bird|blac|blaz|brew|cell|cldc|cmd-" [NC,OR]
RewriteCond %{HTTP_USER_AGENT} "dang|doco|eric|hipt|inno|ipaq|java|jigs|kddi|keji|leno|lg-c|lg-d|lg-g|lge-" [NC,OR]
RewriteCond %{HTTP_USER_AGENT}  "maui|maxo|midp|mits|mmef|mobi|mot-|moto|mwbp|nec-|newt|noki|opwv" [NC,OR]
RewriteCond %{HTTP_USER_AGENT} "palm|pana|pant|pdxg|phil|play|pluc|port|prox|qtek|qwap|sage|sams|sany" [NC,OR]
RewriteCond %{HTTP_USER_AGENT} "sch-|sec-|send|seri|sgh-|shar|sie-|siem|smal|smar|sony|sph-|symb|t-mo" [NC,OR]
RewriteCond %{HTTP_USER_AGENT} "teli|tim-|tosh|tsm-|upg1|upsi|vk-v|voda|w3cs|wap-|wapa|wapi" [NC,OR]
RewriteCond %{HTTP_USER_AGENT} "wapp|wapr|webc|winw|winw|xda|xda-" [NC,OR]
RewriteCond %{HTTP_USER_AGENT} "up.browser||windowssce|iemobile|mini|mmp" [NC,OR]
RewriteCond %{HTTP_USER_AGENT} "symbian|midp|wap|phone|pocket|mobile|pda|psp" [NC]
RewriteCond %{HTTP_USER_AGENT} !macintosh [NC] #*SEE NOTE BELOW
RewriteRule ^(.*)$ /m/ [L,R=302]

I did my best to translate the PHP code verbatim, if you want to understand what each line is doing you’ll want to check out the original code. Testing for all those user agents is probably a little overkill, but Mr Moore is a “dotMobi certified mobile web developer” I’m going to assume he knows what he’s talking about.

*The “tosh” user agent (I’m assuming this is for a Toshiba browser?) happens to catch browser on any browser on the Mac OS. I had to add !macintosh to skip macs. The iPhone/iPod Touch does not identify itself as “macintosh.”

Warner Bros. Using DMCA Against Free Speech

I work as the chief nerd for Cheri Media Group. A company who runs a number of websites including the 3rd largest Hip Hop news site We occasionally get DMCA takedown notices from various record labels, they are usually the result of a lack of communication between the label’s PR department and the legal department or RIAA (ie. someone in PR will clear a track for play on the site, but the legal/RIAA will not be informed).

Last week we received a DMCA takedown notice that appears to be asking us to remove “controversial” forum threads under the guise of copyright violation. The full text of the letter is under the jump, but here’s the relevant portion:


E-40 / Biggie Smalls

Some context: The are links to two seperate pages from a forum thread entitled “E-40 almost had Biggie killed.” The original poster, embedded a youtube video clip from a DVD entitled Beefs IV. I have not seen the clip – it had already been taken down by youtube by the time I saw the DMCA notice. As best as I can tell, it was a clip of a rapper called E-40 talking about how he tried to have Biggie Smalls killed. You can see why E-40s record company might want to kill these sorts of rumours (although, in my opinion any publicity is good publicity – especially in the rap world).

Here’s the thing…
The Digital Millennium Copyright Act only covers copyright material! The only thing that’s vaguely copyright in that forum thread is the youtube embed. The forum thread itself free speech! The forum thread itself is copyright of Cheri Media Group! By demanding that Cheri Media Group “IMMEDIATELY REMOVE THE FOLLOWING THREADS…” Warner Brothers Music is demanding that Cheri Media Group give up its right to free speech! This is a gross and disgusting misuse of the DMCA!
These forum threads absolutely do not contain any copyright material hosted on’s servers. If Warner Bros. was legitimately trying to remove the infringing content from the web then they wasted their time contacting the wrong company. Oh but wait, the video clip is owned by Image Entertainment, an independent studio – Warner Brothers does not even have the right to demand that to be taken down!

It gets worse…
The hosting company running’s dedicated servers has a policy of suspending network access to all services in violation of a DMCA takedown request. I assume this is because they have some liability as the owners of the hardware the content is ultimately stored on. It’s probably a fairly standard policy. What this means is that even if a website gets a completely meaningless takedown notice like this, the site will still be obliged to take down the content or have their site shut down by their service provider! Whereas a more relevant legal demand such as a libel suite would not have the same sort of immediate consequences. So publishers are free to send off DMCA notices whenever there’s a public relations mess to take care of – imagine what would happen if Governments started doing this.

Luckily for my paycheque, HipHopDX’s hosting company is very reasonable. They agreed to keep the site online after a brief conversation.

Disclaimer: I am not a lawyer, I have no formal training in law and I have not read the DMCA in full. I could be getting a lot of things wrong.

Continue reading “Warner Bros. Using DMCA Against Free Speech”

Add Facebook Events to Google Calendar, 2 Simple Steps

I just discovered the most amazing, useful mashup. You can automatically add your Facebook events to your Google calendar! This way whenever you accept an event invite it shows up on your google calendar, with all the details! It just takes 2 simple steps.

  1. Pull up your facebook events page, click the “Export Events” link at the top. That brings up a little dialogue box with a URL. Copy that URL.fbevent.png
  2. Open your Google calendar settings page. Click the “Calendars” tab, under “other calendars” click “add calendar, click the “Add By URL” tab. You’ll be presented with a form that’s able to accept the URL you just copied from Facebook!

You’ll now see your Facebook events in Google calendar. Thusly, minimizing the amount of websites you have to open to figure out when you have time to visit your mother.

OpenDNS For A Week

In case you haven’t heard, OpenDNS (wikipedia) is a free DNS service designed to improve your surfing experience, or as their PR blur puts it:

…is a safer, faster, smarter and more reliable way to navigate the Internet.

I decided to try it out for a week, replacing my ISP’s default DNS servers. All-in-all I got just about what I expected.

The set up process was probably the most painful part of the experience, but that is more my router’s fault than anything else. For whatever reason my router – the usualy reliable linksys WTR54G – decided to crap out after I changed the DNS setting. I had to do hard reboot before I was good to go.

I was a little skeptical about their claim to be faster. I mean, DNS is one of the most lightweight services one the internet, it’s not terribly slow to begin with. Plus my ISP’s DNS servers are only a few hops away, how could a centralized/internet wide service be faster. I don’t know how they do it, but I was pleasantly surprised! Noticed faster DNS resolution immediately!

The safer claim refers to the massive blacklists OpenDNS taps into. They give you the ability to block phishing sites and various levels of adult content (from ‘tasteless’ to full on porn sites). I decided to turn on the lowest level of adult blocking (only porn sites) and leave the phishing blocking on. I don’t often find myself on sites these filters would block, I was basically testing for false positives. If the service is able to precisely block the content I ask it to, then it’s a good blocking service. I only came across one false positive over the past week, a web comic featuring 2 tits. Since OpenDNS allows you to easily whitelist any domain this was only a minor inconvience. There’s no mechanism to report a false positive directly, so I’m assuming their system learns based on the whitelist data.

OpenDNS is supposedly smarter because it has the ability to fix misspelled domain names. At the end of the day this is a pretty useless feature. The problem is, OpenDNS only kicks in when a) the domain name is common enough that it can figure out the actual address youre trying to get to and b) the domain name you tried to access does not exist. Since almost all misspellings of common domains are taken by squatters you’ll barely ever stumble across a misspelling that isn’t attached to a server. I suppose this feature is designed for people who mangle the top level domain name, blah.cmo will never resolve and it does a good job of redirecting these to the proper TLD. But I always use firefox’s keyboard shortcuts to add the .com or .net. So again, I wasn’t really affected by this feature.

Geeking out.
The OpenDNS control panel has two features that are clearly designed to appeal to the nerds. One more useful than the other.
The control panel gives you the ability to create a “shortcut,” allowing you to assign a short name to any resolvable address. For example, you could link “wiki” to “” or link something like “wsearch” to wikipedia’s search page.
The second less useful nerd feature are the stats. OpenDNS provides a wide range of charts and graphs about your DNS resolution history. These might actually be somewhat interesting if they weren’t in GMT.
Again, I didn’t find myself using either of these features very much.

What’s the catch?
“How do they make money?” you might ask. Well it’s pretty simple, whenever you stumble across a non-resolving domain, OpenDNS will present you with a (revenue generating) search application and related text ads. This is fairly non-obtrusive. The only thing I find kind of weird is that this is identical to verisign’s site-finder. When that launched in 2003 it caused such a shitstorm that they were only allowed to keep it online for 19 days! (read the wikipedia article linked above) I guess the main difference with OpenDNS is that it’s completely opt-in.

At the end of the day, it’s a pretty neat service. I’ll probably keep it configured, since it doesn’t really negatively affect my internet experience, and I do get a bit of a speed boost.
I can see the service being quite a bit more useful to someone who manages are small network, especially if they need to filter the internet.
For Personal use, it’s usefulness is a little more dubious.

After one week of use, I give OpenDNS a rating of : *shrug*