Web Development

MySQL Full-Text Search Is Broken!

…and has been for 8 years.

I came across MySQL bug #2095 today:

full-text search for words containing hyphens won't work
Submitted: 11 Dec 2003 6:15
Hyphen '-' characters break literals at the moment.
A search for something like "GATA-D22S690" finds
all entries containing GATA and not the full 
hyphenated text.

~ Link

MySQL disputes the fact that this is a bug.

But in reality – as the submitters points out – there are many cases where hyphens are part of words. The example I ran into tonight was product model numbers (eg. “00-17” or “j-35”).

The MySQL docs recommend recompiling or modifying one of two system files.  None of these options are feasible in a shared hosting environment.

I can’t believe this bug exists. As far as I’m concerned this is a complete and utter deal breaker for any application that needs to search non-word strings containing hyphens. I’ve been exclusively using MySQL for my entire career and I now know that a bunch of sites I’ve worked on in the past 10 years were launched with this bug.




As an adendum to my last post, I would like to extend a giant FU To the CRTC.

Re: Skype and Google Voice

Both services are prevented from offering Canadians incoming calls by the Canadian Radio-television and Telecommunications Commission. CRTC rules require all phone providers to include enhanced 911, which enables emergency operators to automatically locate callers.

~ Nowak, Peter. “Google launches free voice calls from Gmail”, Aug 25, 2010


Embedded Tweets Not Ready for Prime-Time

Twitter just launched a little tool designed to make it easier to embed tweets into your website. Currently blogs tend to paste in tweets whenever a twitter source requires reference, as Twitter explain in their blog post “…a pasted-in image of a tweet is a bit of a hack. We have a simple alternative to propose…”

All you have to do, in theory, is load up Twitter’s “Blackbird Pie” tool, enter a “full tweet URL” and voila, neat little embedded tag.

Unfortunately, the HTML code it currently outputs is a massive pile of garbage. By massive, I mean really massive; embed code is running well over 1kilobyte. I’ve never seen anything like this before. Seriously, try it out! The HTML is pretty garbage-tacular too. It spits out an inline <style> tag in an attempt to replicate the native profile style of the cited user. I guess they’re trying really hard to replicate the look of a screenshot.

There are numerous problems with this implementation: 1) <style> is inside <body> won’t validate in current Doctypes (AFAIK); 2) I can almost guarantee that the majority of WYSIWYG editors and/or output filters will barf up the inline style – wordpress certianly does; 3) even if you are able to post the embed, it’s quite likely that RSS readers and some browsers will ignore the <style> tag, rendering your embedded tweet illegible; 4) some of the key class names they’ve chosen – eg. timestamp, author, metadata – are not very unique and could potentially have existing styles assigned to them.

There is no real indication that this tool is experiment or “alpha,” just a short “use at your own risk.”

Blackbird Pie does not taste good. They should not have released this on a public server, it’s embarrassing.


Apple Store Service Sucks

I visited the Apple Store in Polo Park earlier today with the intention of finding out whether they had any Magic Mouses (mice?) in stock and spending some Christmas money purchasing one if they did. I don’t think it’s unreasonable to expect this sort of thing to be a fairly straightforward, 3 – 5 minute process. Instead, it took 10 or more minutes – I wasn’t counting – and my wife ended up in a verbal altercation with another customer. However, this is not an isolated incident, I’ve been to the store once or twice a month since opening and every time I’ve attempted to purchase something it has not been a pleasant transaction. The customer service stinks.

I believe the problem is entirely due to the lack of a designated “checkout” area. If you haven’t ever stepped foot in an Apple Store, the main staff (I think Apple refers to them as “Concierge”) walk around the store seemingly aimlessly waiting for customers to flag them down, there are no checkout counters or cash registers. I can see the logic behind this type of set up: without a designated check-out area you don’t have long, ugly lines forming around the store and you don’t waste retail space. Without designated “cashiers,” all staff are able to help customers with any task. In theory, it’s more efficient than a traditional retailer.

In practice, the whole system breaks down if there are equal numbers of customers wanting help and staff.

It’s not always entirely clear whether a staff member is helping a customer or not; they may need to run to another part of the store to do one thing or another – in this situation, you find yourself trying to flag down someone who’s either ignoring you or has to sluff you off. In and of itself, this is not a problem unique to the Apple Store, this happens at any retailer when you’re trying to get help on a busier day. At the Apple Store because there are no designated checkouts, you’re forced in to this customer-unfriendly situation even if you do not need any help with your purchase. At best it’s a minor annoyance, at worst it doesn’t leave me feeling like a very valuable customer. I almost feel like this behavior serves to reinforce the old Apple-elitist attitudes, i.e. Apple only has a limited amount of time to dole out to the peons. Not only that, this type of system favors the visible and vocal customer, a dis-service to the typical-introverted-geek that makes up the core of Apple’s customer-base.

Most retails stores have a queuing area is because it works, it’s an accepted shopping convention that all customers know how to interact with. The key component in good customer service is setting expectations, a queue is a good way to accomplish this. If I see 10 people waiting at a checkout I can roughly estimate how long it will take me buy something or get service, I can adjust my patience accordingly. With staff randomly scattered around the store I’m not able to easily determine how many staff are engaged with a customer, how many are free and how many customers are waiting on a giving staff member – i.e. I don’t have enough information to calculate how much time to expect to be spending in the store. Queues also make it very easy to distinguish between customers waiting on service and customer who are just browsing or staring into space. When informal queues form around a given staff member it’s impossible to tell who’s “in line” and who’s not. As I alluded to earlier, this can cause the customer who’s “next” to yell at your wife for not waiting her turn.

The Apple Store is chaos. Whenever I try to get help I feel like a little lost puppy. Maybe that’s how Steve Jobs wants it. If I could have made this purchase online, I would have.


Two iPhone “Features” Continue to Annoy me

  1. All alerts – incoming text messages, app push notifications, low-battery – are modal dialogs. If I receive an alert while I’m on a call, I have to dismiss it before I can access the phone controls, including ending the call. I’m sure this has led to a couple situations where the caller has heard snippets of my private conversation before I was able to end the call.
  2. Apple doesn’t seem to care about SMS. a) The iChat-style message grouping stinks. Sometimes I’d like to know exactly when I sent a text message, to see if I’m running late or whatever. This is impossible when the messages app doesn’t give me a timestamp. b) API access is limited. I just downloaded the amazing Dragon Diction voice recognition app [US App Store only]. It allows you to send text directly to the mail app, but to send an SMS you have to copy & paste. L A M E.