I Do Not Have an Age, I Have a Version Number

I have a new mental model for my age.

Instead of thinking of it as a traditional double digit number I’m converting it to a decimal version number.

Next year I will be v4.8

Discussion on HN

 

 

TimeWall – A Plan & UI to Innovate the Twitter Timeline

As discussed with my buddies here’s a plan that could help Twitter revitalize and make it more relevant to many more users.

Twitter’s core asset is the realtime ephemeral nature of the product. Twitter is the platform that topples governments, after all.

However, that same ephemeral nature of the product also stunts its growth. For example, there is no good way for new users to browse the historical record and see what makes Twitter so great and why they should care.

The complaint I get from people when I talk to them about Twitter is “there is no context” it’s “too hard to get into”.

Time

So what makes Twitter different from other social networks? In my opinion it’s the realtime, breaking news nature of the product. No other social network offers that feature quite so well as Twitter does.

But what I’ve been wondering is,  since time is such a core component of Twitter, then why is it paid so little attention in the UI.

And since we’re talking about time… In the general human experience, is time vertical or horizontal? I would argue that time is generally experienced as a horizontal phenomenon.

For time to exist, we need to travel through space, and in most instances that is a horizontal experience. In cars, planes, trains, etc.

Thinking about time as a horizontal, rather than vertical, is not new idea to software. Consider all the audio and video editing software that for the most part renders time as horizontal artifacts.

Scrubbing & Time Zoom

One of the great features of audio and video editing software is the ability to easily grab and timescrub the timeline backward and forwards. Coupled with the ability to zoom in and out to different time resolutions it makes it really easy to navigate around the timeline to the parts you are interested in.

TimeWall

Screenshot 2016-02-08 16.42.22

(Click to zoom in)

Putting this all together it’s not hard to visualize a new way of using Twitter. A TimeWall that is constantly moving sideways “at the speed of time”.

With the ability to timescrub the conversation by throwing it left and right. Also with the ability to zoom-in and out to minutes, hours, days, months, years.

When zoomed to a time resolution the ui and backend simply highlight the most important conversations of that time frame.

Think Minority Report.

Links to Time

This new TimeWall would give users the ability to deep link to “an event in time” and would unlock all of Twitter’s archived content.

Furthermore, Twitter would finally have the ability to have “long term content”. This would be much more friendly for new users who could fully explore Twitter using the new timescrubbing and zoom features.

Long term content could also increases Twitter’s Google SEO surface area. Which means the content is a much bigger fly trap and more people will see twitter content in search results more often.

Mobile

Although the full TimeWall is not appropriate for phones in portrait more, the time scrubbing tool and time resolution zoom in/out tool still work as a core navigation tool, even with a regular vertical tweet list.

Of course, for many mobile devices in landscape mode, there would be no issue.

Conclusion

Obviously, this is just a start, but with more thought and iterations from Twitter’s core ui & ux teams there’s a ton of utility that could be unlocked here.

Who know’s, this might even start a Twitter revolution 😉

For further discussion see Hacker News.

If the iPhone Used Text Labels Instead of Icons

text-icons

Thought experiment in response to: http://thomasbyttebier.be/blog/the-best-icon-is-a-text-label

Bitcoin – Fear, Uncertainty, Doubt

Recently, there have been many articles that are down on Bitcoin. So many so, that it feels like a conspiracy to spread FUD! With that in mind, here are my counterpoint arguments to some of the more common anti-bitcoin messages. Keep in mind this is just my opinion, please don’t spend any money based on my musings below!

FUD: Educated economists think Bitcoin is a load of rubbish and going no where

History is littered with examples of disruptive thinking that experts were unable to fathom and as a result made completely incorrect predictions. For example in 2007 Matthew Lynn, a financial journalist, declared “The iPhone is nothing more than a luxury bauble that will appeal to a few gadget freaks.”.

The truth is, many times “experts” simply don’t know what will happen one way or another. Furthermore, I would argue that it’s hard for educated economists to predict the outcome of Bitcoin, since Bitcoin came in to being through a totally different specialization (ie software and cryptography).

FUD: Bitcoin is a short term scam to make a fast buck

Most Bitcoin users don’t act that way. In fact, one of the biggest arguments against Bitcoin becoming a stable currency is that users mostly hoard Bitcoins for long term gains. These speculators are buying Bitcoin for the long haul because they believe that Bitcoin will go up in value over the long term.

For example, the Winklevoss twins purchased $11 million worth of Bitcoin, with the hope that in the long term they will substantially multiply their investment.

FUD: Bitcoin is a Ponzi scheme

That’s like comparing apples to oranges. A Ponzi scheme pays returns to its investors from the money paid in by subsequent investors, until finally there are no new investors and the whole thing crashes.

On the other hand to comprar Ethereum, Bitcoin is a crypto-currency with a fluctuating exchange rate that floats freely on a daily basis – much like gold, the dollar, the euro, etc. Bitcoin is also a frictionless transport layer that enables digital payments across a peer-to-peer network.

FUD: Bitcoin is inherently deflationary. Thus less cash for everybody to spend. This is bad.

Bitcoin deals with this issue by having 8 decimal places. The higher the Bitcoin value rises, the smaller the decimal transaction size will become. Each decimal place has a name, with the smallest unit being 1 Satoshi. If 1 Bitcoin was worth as much as one million dollars 1 Satoshi would still only be worth 1 USD cent. In other words, there is no need to print new currency, we can simply use smaller units of Bitcoin.

 FUD: Bitcoin can’t become a currency because people hoard Bitcoins and transaction volume is too low.

People make this argument because they are comparing Bitcoin in it’s current state to a modern currency. However, I would argue that Bitcoin has not evolved beyond the point when gold became a value store.

In that early period gold was not exactly a frictionless, high volume, high transaction, commodity. It wasn’t until after the gold-rush that gold ended up in the pockets of the average Joe. Even then, gold was never a truly frictionless modern currency until paper represented gold in the gold standard monetary system.

We already have the Bitcoin ATM, Coinbase, and many other Bitcoin ventures. Now cast your mind five years into the future and consider all the other software and hardware devices that could make Bitcoin much easier to use. Once these devices have been deployed into the consumer marketplace it stands to reason that Bitcoin liquidity would increase.

The other consideration is that true liquidity will not happen at the full BtC level, it is much more likely that consumers will be trading fractions of Bitcoins rather than entire Bitcoins.

FUD: Bitcoin will devalue or collapse due to criminals using Botnets to mine for coins with free electricity.

If Bitcoin moves towards mass consumer adoption this outcome becomes less of a probability. Coinbase already has 650k+ verified legitimate users and of course this is only the very tip of the iceberg.

Bitcoin technology enables frictionless value based electronic transactions. This idea is very useful and viral. The viral effect might be amplified as software and hardware providers start to integrate Bitcoin into every day work flows and products. With enough users this argument becomes weak since the usage of Bitcoins by criminal networks would represent only a fraction of the market.

FUD: Bitcoin is designed for tax evasion.

That’s like saying that USD cash is designed for tax evasion. Yes, it is very possible to use cash for tax evasion by passing it under the table and not declaring it to the government. However, if you’re using cash within the normal constructs of society (ie shops) it will be passed through various systems (such as cash registers) that will log transactions. I would argue that by the time Bitcoin becomes a high volume consumer traded currency  most transactions will pass through some form of cash register.

FUD: Bitcoin is evil

Given the modern pace of technology, one way or another, a purely digital currency is within our future. Even if Bitcoin fails, something very similar will take it’s place. Bitcoin is arguably one of the lesser evil representations of digital currency due to being de-centralized.

After recent NSA revelations it seems foolhardy to trust the government with something as powerful as a fully regulated digital currency where they would be able to seize 100% of anyones wealth with a click of a button.

FUD: Bitcoin’s lack of regulation facilitates illegal markets

It should be noted that our government and law enforcement agencies are not completely useless. For example the FBI were perfectly capable of closing down Silk Road, the webs biggest drug black market.

There is also a counter argument that by making it easier for criminals to connect and transact via centralized marketplace websites, it makes it easier for law enforcement agencies to track down criminal communities, who would otherwise be acting in a far more more dispersed and untraceable manner.

 FUD: The top one percent of Bitcoin users own 40+ percent of Bitcoins

I would counter that the top 1 percent of Americans own 40+ percent of the nation’s wealth. Apparently this type of wealth distribution is the norm. I’m not saying I like it, I just don’t understand how this argument has any weight regarding Bitcoin.

FUD: Bitcoin makes it easier for criminals to do business with each other

Yes, but it also makes it easier for non-criminals to do business with each other. Since there are far more non-criminals than criminals, one can easily argue that the frictionless nature of Bitcoin can offer benefits to society at large that outweighs this downside. For example, Bitcoin makes it easier for independent business owners in third-world countries to trade with the rest of the world.

FUD: Early adopters stand to make profit, later adopters are “suckers”

Just like with any business related venture the first involved are the ones that take all the social and financial risk. There have been plenty of attempts at virtual currencies that resulted with no adoption and early investors loosing 100%. Bitcoin might just as easily have gone this way. However, Bitcoin seems to be a version of a virtual currency that finally strikes a chord. This turn of events is just as much about timing and luck as it is anything else.

Why should we persecute this batch of early adopters for this particular technology. What is the difference between this and those that purchased Google shares at $85 which are now $1000+? If someone today buys Google at $1000+ are they a sucker, or just an investor that missed the early opportunity?

FUD: Bitcoin will fail when “real” money is fully digitized

It’s much easier to create a standalone, self contained, digital currency than it is to try to tie “real” money to a digital transport mechanism that is fully integrated with everything in the world.

For example, let’s say the fed decided to create a digital transport system similar to Bitcoin that could carry “real” money around… it would be a huge effort on their part to truly integrate that into all shops, banks and existing financial infrastructure. It would take many years, by which time Bitcoin may well be so embedded within our commercial culture that it proves difficult or impossible to remove.

FUD: Bitcoin mining software is being distributed as malware

If your computer is susceptible to malware that can mine Bitcoin, then your computer is also susceptible to malware that can steal your credit card information, hijack your video camera, etc. In other words you should secure your computer.

FUD: Bitcoin mining has a terrible carbon footprint

Doesn’t printing money, stamping bullion, and minting coins also have a carbon footprint? If you measured all the banks computers in all the world what kind of carbon footprint would you find?

Bitcoin is no different to any other industry that uses electricity to create a product or service. There is absolutely nothing stopping Bitcoin miners from using machines that are solar or wind powered. In fact I can imagine it would be a selling point for Bitcoin miners to sell coins at a premium that have been “mined responsibly”.

Even so, I would personally like to see this issue addressed by the Bitcoin foundation. It seems highly likely that there is a technical approach to deal with this downside.

Conclusion

The real point here is Bitcoin is a highly disruptive technology that has the potential to change our lives on a fundamental level and that’s probably the main reason it’s generating so much controversy. Hopefully this article can help some folks re-examine their assumptions about Bitcoin.

Anyway, as I stated at the top of this article these are  just my opinions, please don’t spend any money based on my musings. That said, if you’ve found this article useful and have a few satoshi’s to spare please consider making Bitcoin donation to: 19rN88GkWwLfKBn6Kue5wGrWWq2KnqDQRk 😉

How Startups Become 10x Less Efficient at Releasing New Features (or, nSpeed)

nSpeed

nSpeed = the velocity at which a startup is able to build and release new features.

To be clear, the nSpeed estimates below are my personal estimations and not scientific fact. However, I hope they illustrate my main point which is software and business complexity severely slow down the rate at which a technical team can release new features. A fact that many non-technical folks find hard to grasp.

Phase 1  Moving from idea to prototype [nSpeed = 1]

The maximum possible nSpeed is during prototype phase. One developer is able to build huge swaths of product at a break neck pace. There is nothing to impede the developer from thinking about and building new features. No users, no maintenance, no sysops, etc. 100% of efforts result in new features and no stress, although for feeling stress you can use Exhale Wellness HHC products to get help with this. There are high cbd strains canada that may help alleviate your stress and calm your mind whenever you feel overwhelmed with all the demands of your work or business.

Phase 2 – Releasing an alpha version to friends and family [nSpeed = 0.75]

The first group to use a software product is usually a small group of friends and family. At this point developers can no longer devote 100% of effort to building new features. They need to start fixing bugs, supporting users and being mindful of not breaking the working product.

Phase 3 – Releasing a beta version to early adopters [nSpeed = 0.5]

During this phase, a user-base will typically grow from tens to hundreds of users. Developers now need to start thinking about building a stabilized production environment. Code needs to become more tightly controlled, testing servers need to be used, more time is taken up by sysops, more bugs are reported and more support requests are initiated.

Phase 4 – Releasing version v1.0 to the general public [nSpeed = 0.25]

With successful user adoption comes many challenges. Developers need to start coding with “scale” in mind. They need start adding things like job queuing, asynchronous code, load balancing, database sharding and other scaling related sub systems. From this point forward all new code needs to work within the context of a highly distributed architecture. Also, business overhead increases during this phase i.e more product meetings etc.

Phase 5 – 1+ year after releasing V1.0 [nSpeed = 0.125]

After 1+ year, a codebase can grow to 100k+ lines of code. Testing and deployment procedures are now much more complex. There are hundreds of bugs in the backlog. Support systems have now taken on their own life. Systems operations is a full time occupation. Adding new code now requires an unprecedented amount of time consuming forethought, discussion and attention to detail.

 Phase 6 – Becoming a medium to large company – [nSpeed = ?]

A company with 50-100+ employees suffers from all of the above overhead with the additional resistance factor of working with lots of people. What used to be one person’s job now becomes an entire department. Inter-departmental roadblocks, red-tape and meetings slow everyone down massively. The molasses effect is so great, I haven’t even bothered to guess at an nSpeed.

 nSpeed, In Context

Let’s imagine that Mark Zuckerberg was the only developer who ever worked on Facebook. If you think about him as sole developer, moving from one phase to the next, it’s not hard to picture how the nSpeed of each new phase becomes slower. For example, if he had single-handedly worked on the product to get it to phase 5 (with millions of users, a distributed architecture, etc.) it seems highly likely that he would be pushing out new features far slower than during his zero responsibility prototyping phase. I’m going to venture a guess of at least 10x slower.

Conclusion

I think many people understand that it’s much slower to develop within a complex system than it is to develop within a simple one. However, I’m not sure it’s common knowledge just how much slower it can become over time.

If you are a developer, I would be very interested to hear your guess as to what the nSpeeds of phases 1-6 might be.

At the very least, I hope this article helps illustrate why your tech team is gradually getting slower ;)

Bootstrapporn – Inspiration for Unfunded Bootstrappers (Audio)

Ruben Gamez (Bidsketch)
Covers the whole spectrum of Ruben’s journey from side projects to a newly-minted self-sustaining bootstrapped company.

Audio clip: Adobe Flash Player (version 9 or above) is required to play this audio clip. Download the latest version here. You also need to have JavaScript enabled in your browser.

Corey Maass (The Birdy)
Corey’s story is impressive and shows the efforts required to bootstrap.

Audio clip: Adobe Flash Player (version 9 or above) is required to play this audio clip. Download the latest version here. You also need to have JavaScript enabled in your browser.

Ted Pitts & Harry Hollander (Moraware)
Some real truths. Great story about two seasoned micropreneurs building a biz slow and steady.

Audio clip: Adobe Flash Player (version 9 or above) is required to play this audio clip. Download the latest version here. You also need to have JavaScript enabled in your browser.

Michael Sliwinski (Nozbe)
About how he was able to bootstrap a “scratch your own itch” side project into a successful startup that employs a dozen people and services tens of thousands of paying customers.

Audio clip: Adobe Flash Player (version 9 or above) is required to play this audio clip. Download the latest version here. You also need to have JavaScript enabled in your browser.

Amy Hoy (Freckle)
About how she was able to free herself from the shackles of full-time employment and escape the stress of the freelancing hamster wheel by developing her own online product empire.

Audio clip: Adobe Flash Player (version 9 or above) is required to play this audio clip. Download the latest version here. You also need to have JavaScript enabled in your browser.

Rob Walling (HitTail Part 1)
Original episode about the acquisition of HitTail.

Audio clip: Adobe Flash Player (version 9 or above) is required to play this audio clip. Download the latest version here. You also need to have JavaScript enabled in your browser.

Rob Walling (HitTail  Part 2)
Post mortem of HitTail’s success.

Audio clip: Adobe Flash Player (version 9 or above) is required to play this audio clip. Download the latest version here. You also need to have JavaScript enabled in your browser.

Bootstraporn might be another way to spell it!

Anatomy of a Native Feeling HTML5 iOS App

There’s been a lot of bad press about how you can’t build a native feeling HTML5 app on iOS. The main (perceived) issue is that HTML5 apps don’t “feel” native as you click around. However, I’m of the opinion that you can build beautiful native-feeling apps with HTML5, but it requires attention to detail. The trick is to test and optimize every UI  interaction on the device as you build out the app. If something “feels” laggy, then stop building until you get it to feel native, by hook or by crook.

I’ve been touting this possibility to a number of clients over the past year, however they’ve all been too risk averse and chose to go native… until now. Thankfully, UberMedia let me have a stab at building a small app for them in pure HTML5. The app is called Splitsville (a check-splitting app), it’s available on the app store for you to check out. So far, most people who use it think it “feels” native.

Although the app is small, it’s easy to imagine that a larger app made of multiple components such as this could also be made to feel just as native.

It’s Time for an Open Twitter (a 501c3)

Anti-Competitive

I like Twitter. I’ve been trying to build a business on Twitter’s platform for the past 3 years. However, their most recent announcement of new rules and regulations has stunned me.

Twitter has the power to topple regimes, but by following advertising dollars they are building a walled garden and making anti-competative decisions. It does not bode well for our world that such a commercially driven company should wield so much power and be the epicenter of global conversation.

Non-Profit

In the same way Wikipedia is a non-profit democratization of knowledge, we need a non-profit democratization of global real-time-messaging.

Dalton Caldwell has an interesting idea, but I don’t think it will end the Twitter monopoly due to being pay-to-play. For example, I doubt app.net will bring free-for-all freedom-of-speech to the third world.

In my opinion, the best scenario would be for a new uncensored non-profit organization to offer a free, global, robust, API for real-time-messaging.

sky.net

For the sake of this article, let’s call this new service, sky.net and assume it has millions of dollars of donations to keep it running (think Wikipedia).

sky.net could quickly win a huge amount of users due to the overwhelming power of geeks and influencers talking about it, blogging about it, building awesome software clients, and letting everyone know that sky.net was the best option for a free global chat stream.

The market segmentation could look much like Android and iOS. Especially because sky.net would be free to use, with no developer restrictions, a new global chat-stream, free/paid apps available on all devices. No restrictions.

Monopoly

The sad fact is that right now Twitter has the right, and the power, to shape global conversation and change our world. Unfortunately their commercial interests are not truly aligned with the responsibility they are entrusted. We need an impartial non-profit company to take Twitter’s place and become the true real-time-messaging backbone of the internet.

The current situation, with Twitter owning real-time-messaging is like saying ATT owns email, or Facebook owns the internet.

Let’s be clear, Twitter created a free ubiquitous protocol for all to use, and then they withdrew access to it and claimed it for themselves. In other words, they created a single protocol and invited the open market to create multi-variant clients to use it (just like email, or http).

How can one commercial company be allowed to own a protocol such as http or email? Furthermore, Twitter’s new terms and conditions have made some astonishing demands and rules that seem to show the true color of the companies leadership. For example they forbid intermingling between Twitter and other social networks on the same screen.

Geeks Have The Power

If we, as geeks, could build awesome apps and use our influence to promote and get a critical mass into sky.net, it could be a defining moment for the internet when free-speech and anti-walled garden ideals won-out.

Interestingly, Twitter’s own greedy move of limiting 3rd party clients to a maximum of 100,000 users ensures that existing (and new) client developers would make every effort to move to a system like sky.net.

Funding

After reaching critical mass (of say 100m users) it would be easy for sky.net to maintain donations and funding. After all, if an API developer was making millions of profit (think Hootsuite, Datasift) they would have a very high motivation to regularly donate to sky.net to ensure its upkeep. However, they would not be unable to alter the non-profit manifesto of sky.net. Philanthropists may also consider donating to sky.net in the name of unbiased and open free speech. It’s also worth mentioning that with new open source scaling technology, sky.net might be comparatively inexpensive to run.

Ecosystem & Investment

If sky.net really existed it would be a more secure option for any company or investor that is doing business with Twitter today. The sky.net manifesto would be rock solid and would ensure that an unbiased free market prevailed. It would also ensure that API capabilities would not be pulled from under any responsible developers feet. The Depotvergleich investment surge that happened during early Twitter days could be free to be re-sparked due to renewed investors confidence in an unwavering unbiased platform.

sky.net would have no obligation other than to make a great API for other vendors to capitalize on, and it would not cost users or developers anything.

 

Yelp, You Cost Me $2000 by Suppressing Genuine Reviews, Here’s How You Fix It

Dear Yelp,

It’s highly likely that you’re costing your users millions of dollars by offering some astonishingly bad recommendations.

For example, I did business with a moving company based on 5 star recommendations that you presented.

As a result I was strong-armed into paying $2000 more than originally quoted. I spent 40 days without any furniture and quite a few of my belongings have been misplaced – forever.

I’ve always loved your site. I love your startup story. I love your crowd sourcing review model. For years now I’ve been using Yelp to help me make decisions about where to eat and what to purchase. Yelp has never steered me wrong. So what happened this time? How come your reviewers were so far off the mark?

They weren’t.

Your reviewers described exactly what I experienced and warned against this company again and again. But you hid all of those reviews.

Wait, what? Why would you do that?

After Googling the issue I found out that some time back you introduced a very difficult to notice and access filter link (screen shot here) to hide reviews that seem to be fake. You also introduced an automated algorithm that flags suspicious looking reviews and shuffles them into the filtered section.

Your algorithm typically hides entries by people who only post one review and who don’t otherwise engage in Yelp. Your assumption is that if a user only posts one review, posts no comments, has no friends etc. then most likely they are fake and trying to game the system.

Let’s call this “Assumption X”.

In the case of the company that I mention above (the one that ripped me off) Assumption X is exactly wrong at least 10 out of 14 times. Just to be clear, 10 honest one star reviews have been hidden from public view. That’s a 71% false positive hit rate.

So why did Yelp get it wrong 10 times?

In each case the one star review was left by someone who would never normally leave a review… they were simply so outraged that they were motivated to signup to Yelp and try to warn others how bad this company is. None of them ever used Yelp again. Furthermore, they didn’t have the knowledge or inclination to try to make their Yelp profile look acceptable to Yelp’s automated suppression systems.

The Cost of Assumption X

In this instance Assumption X has cost me personally $2000. If you extrapolate my loss to all other Yelp users it would be easy to imagine at least 50 other people per year would make the same purchasing decision I did based on Yelp’s 5 star presentation of this company.

It seems fair to estimate that Assumption X is hurting Yelp users to the tune of $100,000 per year – for this one company. There are approximately 5 million companies in the USA and over 20 million reviews on Yelp.

When I think how many genuine and helpful reviews must be hidden from view due to Assumption X, my mind boggles at how much money is being lost by people who trust Yelp to help them make purchasing decisions.

We’re not only talking about small stuff like restaurants and cafes, we’re talking about large stuff like moving companies, kitchen installation and car dealerships.

I don’t believe you are purposefully trying to cost Yelp users tens of millions of dollars per year by dishing out bad advice, I just think you haven’t tested Assumption X thoroughly enough.

Sockpuppeting

Perhaps even worse, reputation management companies are very familiar with Assumption X and know how to game Yelp. All they need to do is create and nurture sockpuppet accounts that look real. Once a few “real” looking accounts rally round a planted 5 star review by befriending the author, commenting on the review and flagging the review as helpful… hey, presto, it’s out of the filter and onto the main page.

So now we have a situation where Yelp’s automation systems regularly flags real reviews as fake and fake reviews as real.

The Fix

The quick fix is for you to alter Yelps automated algorithms to pick up on pattens of outrage. These kind of companies (the ones that rip you off) will most likely have many long and carefully written one star reviews that are hidden by the filter and will have a few five star reviews that reputation management companies have managed to get through.

However, I don’t recommend that fix, as it would be Assumption Y.

A better fix (a real fix) would be to introduce an optional (yes, I said optional) Yelp verification system that allows users to go through a painless question based identity verification process. This would not be hard to do. Question based identity verification processes are already used and supplied under the hood by agencies such as TransUnion, Equifax & Experian.

Then, when a user joins Yelp and has completed their first review, you can present them with the option of quick and painless question based identity verification. You can explain this will make it very likely that their review will go live.

Question based identity verification can be very painless. I have used systems that confirmed my real identity within less than a minute. The system simply asked my name and address, then it used credit history knowledge (supplied by on of the previously mentioned credit bureaus) to ask a few questions such as:  “When you were living at 123 Main Street, were you living with John Smith?, John Doe? etc”. All I had to do was answer three multiple choice questions and hey presto my identity was validated.

The results of the verification process would not need to be published in any other way than to say “Verified Yelp User”.. oh, and of course, to push the reviews out of the filter and onto the main page.

As long as you only allowed each valid identity to appear once on the Yelp this system would be “very hard” to game. After all, it’s easy to create sock puppet accounts when all you need is an email address… but not so easy if each account needs a unique verified credit history associated with it.

Now that you are a public company and have a market cap of $1.5 billion, I’m quite sure that you have the resources to implement such a system, which will be better for everyone.

Update 1: Some folks have asked me to mention that I originally discussed this issue in a bit more detail here (6 mins in).

Update 2: Some people have said that users might find the proposed solution creepy. There is no reason they would have to. It would be as simple as asking the user a question “Please validate your a real person by answering these few questions”. As far as the user is concerned it’s just a few questions and answers.

Update 3: If you want to see sockpuppeting in all its glory have a look at these two reviews posted by “Bob” (both posted on the same day) about the moving company that ripped me off.

Update 4: For in-depth discussion of this post with ALL the angles explored, please see this discussion thread here.

The Only Reason My App Worked Was Due to a Slow Database

Things Are Not What They Seem

Astonishingly, the only reason my Ajax driven web app has been able to run consistently and successfully for the past two years is due to MySQL latency.

I know this because yesterday (with the help of Jonathon Hill) I optimized the database by moving it off the server and onto it’s own 4GB Rackspace instance. (Everything was running on a single 2GB Rackspace instance prior to this).

As soon as I got the new database up and running it was blazingly fast (using the Percona flavor of MySQL made it a breeze).

But today I noticed that the load average on the front end head server (now MySQLless) was running super high (100+) with customers being unable to login and generally use the service.

After some digging around I noticed that Ajax requests were being served wayyy faster allowing for each client to establish 5-10 concurrent ajax requests thus flooding the Apache child pool – amping up the load – and bringing down the site.

Semi-blocking Ajax Queue

To fix this I quickly implemented a semi-blocking queuing system for all Ajax requests.

Basically the JavaScript now queues all ajax requests the client sends and only makes one ajax call at a time UNLESS a call is blocked for more than one second, then it is allowed through.

This allows the javaScript to be asynchronous but severely throttles asynchronousness (if that is a word!) concurrency.

I was expecting this to slow things down but it seems to have really speeded things up from both a user and backend perspective.

But perhaps even more importantly the server load average has gone from 100+ down to 0.2.

I can only assume the reason the system has been working for the past two years is because MySQL latency was forcing the Apache child processes to run slower, with a knock on effect of Ajax responses being slower, with a knock on effect of chained Ajax requests being delayed thus creating a less asynchronous environment.

In other words, the only reason my app worked for the past two years was due to a slow database!