August 20th, 2013


Woof! ... INSERT (human characteristics) ... WHERE NOT EXISTS

As usual, I'm learning from my outsourcing effort, and I came to the realization that we need to replace the INSERT ... ON DUPLICATE KEY UPDATE code with the more appropriate INSERT ... WHERE NOT EXISTS code instead.

Also, I realized today that, in an effort to streamline the process of joining and then using, Members don't necessarily have to set their primary and additional languages in advance. I wrote some triggers which make the reasonable assumption that the first language the Member uses to express an Opinion is their primary language, and if they use additional Opinion languages after that, those are added to the Member's Fluency set. The Member will be able to configure these later, as well, but the point is that they won't have to.

Of course, even reporting a language at all won't ever be a requirement, (and thus stored internally as und as per ISO 639-3), but it'll sure be rather helpful. :-)

In a related tangent, is the ISO 639-3 generic code zxx (for non-language sounds such as those made by animals) an example of speciesism, i.e., prejudice against non-humans? :-)

All I really need to know I learned from PBS (*)

I'd been lying in bed for over an hour, trying to fall asleep, and I had a minor epiphany. Obviously I've been taking great care over recent months in laying the basic foundation for, because I'm well aware that decisions made now will have long-term consequences, good or bad, for years to come. (Plus I am so bloody tired of utter cr*p being slung out the door, especially from the Internet marketing community.) There will be an obvious expectation among the Members that data will persist: Opinion audio will be stored, Member data will not change or disappear, generated URL's will remain stable. But here's the thing: I don't have to let this persistence requirement force me into making everything absolutely perfect before anything ever sees the light of day!

Ms. Frizzle, (from the Magic School Bus), said: "Take chances, make mistakes, get messy!"

Or more simply: "Fail Fast!" (quote claimed by numerous entrepreneurs)

So... here's what I'm going to do: Version 0 will be the bare-bones, absolute minimum needed to make the concept work. It'll be a sandbox in which to play. But there will be an underlying truism, known to all participants: The database will be wiped clean, all Member-generated files will be deleted, and all URL's will be broken for Version 1. Version 1 will be what I'm comfortable releasing into the wild, and that's when the persistence expectation will start. This will have the Basic (free) functionality that anyone will be able to use. Any prior participants will need to re-register, since the prior database will be gone. I may start with an invitation-only approach during the beta testing period, so as to prevent unrestricted growth too early, but that'll obviously have to go away. Version 2 will include the Pro (paid) service. Version 3 will have the affiliate program and paid advertising will be managed through the database.

I'm sure I'm forgetting a lot, but I just wanted to put this out there... quickly! ;-)

Update: Published the Alpha Plan.

(*) ... with apologies to Robert Fulghum. I think I actually started kindergarten shortly before Sesame Street started airing on New York's public channel 13, far earlier than the Magic School Bus.