Posted on Oct 12, 2014

For how long will journalists be fooled by the 15-year-old next Mark Zuckerberg stunt?

The ultimate growth hack for your app or start-up: get a 15-year-old figurehead

We all have known for years there’s a real age discrimination problem in Silicon Valley and tech start-ups in general. In an effort to be more “transparent” and to appear to be taking action, top companies have recently been publicly publishing the data on the racial, ethnic and gender makeup of their workforce. But there’s a figure they never disclose: age.

Reports have been made, companies have been sued, but the ageist culture is alive and kicking. And it’s not only companies while hiring, it’s also the media when covering new start-ups; and a crowd of obsessive people is a nursery for con artists.

There’s no better example than the app business. How many of you never heard a story of a very young brilliant boy creating an app and becoming a millionaire? Well, marketers have noticed this too and have start taking profit from it. I think I might have uncovered the perfect example on this.

Last week, I read on Business Insider about an app called “Impossible Rush”. It’s a very simple brain teasing game that climbed all way to the top on the U.S. charts overtaking Vine,Tinder and other popular apps. I immediately recognized the app as an exact copy of other app by David Zobrist called “Four Points”. So, who plagiarized who?

Four Points

Four Points

Impossible Rush

Impossible Rush

 

 

 

 

 

 

 

 

 

 

 

 

As David Zobrist is a very popular Gamesalad developer (goes by the name of BigDave), my initial suspicion was that he was the app’s original creator. All I knew was that Four Points had been released on the 11th of August and Impossible Rush fifteen days later, on the 26th. But the real fishy part of the story, which really raised my eyebrow, was reading the kids went out and hired a marketer!!! I mean, really?!

Testing the waters, I made a cautious comment on the Business Insider page and immediately got in touch with David. Well, I just lifted a rock, and something come out. David has since made a post today explaining it all but to cut a long story short, seems like the marketer who pulled the stunt, Carlos Fajardo, noticed “Four Points” was climbing the charts real fast and decided to make a native coded version.

He contacted David and bought the rights to do so, making the journalists the only characters on this story who got conned. I think Carlos Fajardo was trying to recreate 2048’s path to success. 2048 is now a very popular game on mobile phones but it was first released on the web as open source Javascript. Many immediately had the idea to port it to the iPhone, but only one climbed to the top: the first native coded version. It was Ketchapp’s first success and opened the door for their posterior huge successes, constantly cross-promoting very simple games they develop overnight.

Having a native coded version on his hands, Fajardo needed the final pump and that’s when he *allegedly* created the “next Mark Zuckerberg” character. He realized the potential of the ageist exploit and used it. In the end, he did nothing wrong… that’s what’s being a growth hacker is all about, right?

Problem is the creator might already be losing control of it’s own creation since from Australia to India, many are already labeling the boy as the next Mark Zuckerberg!

It was nice to hear what Fajardo has to say on this story but I was not able to reach him for comment.

Posted on Jul 4, 2014

World Cup iOS+Android Meteor PhoneGap App, the making-of

WcupPromotion

Coming from a PHP background, for a long time I wanted to test coding in javascript for server side, namely node.js. I am also a Javascript fan, having done some apps in backbone and angular, wrapped in cordova for iOS and Android. Also wanted to test reactive programming. When I knew about Meteor, I realize it was the perfect match.

So I decided to test it on a simple app. The initial example you get from meteor is the leaderboard, so that gave me the idea of a World Cup leaderboard. I crafted some graphics, added Apple’s Gamecenter for some competition, integrated Anthony Terrien’s jQuery Knob, included the meteor packages offline-data (for when the phone is offline) and persistent-session (to keep user scores between sessions). Wrapped it all in cordova using meteor rider and send it to the Apple and Google stores.

Apple had a hard time accepting it. After six (!) rejections, and a personal phone call from the Apple reviewer himself (!), I finally got an approval. Too bad the World Cup is ending.

Had a lot of issues with css on Android, namely having a fixed background image. It’s a very old never fixed Google bug.
I got a way around it, but then, the performance was very, very bad. I found out that removing everything that is next to the url tag solved it. Changing from background: url(myimage.jpg) no-repeat center center fixed; to background-image: url(myimage.jpg); background-position: center center;

Back to meteor, the problem is, for a newbie in this like I was, the docs are not clear at some of the steps one needs to take.

Development and Production Environments

First it is not made clear that there’s a huge difference between the development and the production environment and how we go from one to the other. In PHP we only care to move the files from one to the other, redirect the db and that’s it. Meteor is a different beast.

After you successful installed and created your first app, and while you are developing, you call your app using “meteor” or “meteor &” (to keep it running in the background). Then on your http://myserver:3000 you can see your app running. When you edit the files and save them, meteor detects that and automatically refreshes to reflect the changes you made. (hot code push reload) You can use PhpED, EditPad Pro or other similar tool to remote edit your files, which makes good use of SFTP.

When in development mode, you will notice all your javascript files and not “compiled” and can be clearly seen by anyone. (view source)

Now, when you want to deploy, there are several steps you need to make. First you need to run “meteor bundle”. This will create a archive with all your needed files. Next, unpack those files anywhere you want (in my case to root/bundle) and create a bash startmeteor.sh similar to this one:

#/bin/sh
cd /root
export MONGO_URL=mongodb://localhost:27017/wc
export PORT=3000
export ROOT_URL=http://123.456.789.000:3000/
export DDP_DEFAULT_CONNECTION_URL=http://123.456.789.000:3000/
#export METEOR_SETTINGS=$(<settings.json)
forever start bundle/main.js

When you fell conformable moving from develop to production mode:
stop meteor develop mode: kill `ps ax | grep node | grep meteor | cut -d ' ' -f 1`
start deploy mode: sh startmeteor.sh
stop deploy mode: forever stopall

You will also need to have installed forever first.( npm install -g forever)
You will no longer be able to use hot code push reload. You code is now ‘compiled’ (minified). Check the source code now.

Also, my meteor, once in develop mode, often went down, so I’ve put this on cron:

#!/bin/bash
#
/usr/sbin/lsof -i :3000 | grep LISTEN >/dev/null 2>&1
if [ $? -ne 0 ]
then
kill -9 `ps ax | grep node | grep meteor | awk '{print $1}'` >/dev/null 2>&1
sleep 2
echo `date` : Starting meteor >> /root/startmeteor/log
cd /root/myapp/
/usr/local/bin/meteor &
sleep 2
if `/usr/sbin/lsof -i :3000 | grep LISTEN >/dev/null 2>&1`
then
echo `date` : meteor successfully started >> /root/startmeteor/log
else echo `date` : meteor start failed >> /root/startmeteor/log
fi
fi

Adding a package

What if I want to use another javascript lib? Including it like you do for web pages will not work. You need to add them as a package. Atmosphere is a good place to find already made packages, but you can make your own in case you want to use a lib not already on Atmospherejs. In order to install packages from Atmospherejs you need to install Meteorite.
One thing not on the docs is that in order to have Meteor load a local package you need to add the package and path to your smart.json file, like this:

"packages": {
"meteorpackage1": {},
"meteorpackage1": {},
"myaddedpackage": {
"path": "../meteor/packages/myaddedpackage"
}

If you are out of luck and really need to create a package, here’s a very simple example of a package.js from iscroll: (also check how the iscroll.js itself is tweaked from the original)

Package.describe({
summary: "Make the world iscroll"
});

Package.on_use(function (api) {
api.add_files([‘iscroll.js’], ‘client’);
api.export && api.export(‘IScroll’, ‘client’);
});

Best info I found on how to do this is this link. Shame on me doing a “this” anchor!

Turning it into an app

Now, the best way to do this is to use Cordova/Phonegap. There are several ways to join meteor with cordova, but my favorite is meteor rider. It’s in an early stage of development – I even discovered a bug, which has now been fixed – but it’s already pretty functional.

Using meteor rider, your DOM will be hijacked and fully replaced by the meteor app, so except for some native calls you might like to call before everything loads, in my case, splashscreen, insomnia, all you code will be the meteor app, including the native calls.

That’s why you will need to detect who is loading the page, if it’s the web, the iOS or Android. The best way to do this is using the device cordova plug-in, but you can also just simply test, for instance, if an iOS only plug in is loaded or not. In case of an iOS/Android only app, if not loaded it’s Android. I needed this because the Android version does not have iad, gamecenter, etc.

if (typeof window.plugins.iosonlyplugin !== 'undefined'){
// plugin is available we're on iOS
}

One of the last puzzling issue I encounter when loading the app from the phones was everything working fine except the native calls to the cordova plug-ins. Ends up it was a path issue. I was using, on meteor rider,

this: meteorUrl: "http://123.456.789.000:3000/"
instead of this meteorUrl: "http://123.456.789.000:3000"

Promotion

Will be running today (July the 4th), during the two World Cup matches, a low budget campaign on Facebook. It will be very narrow target, to French and German men who like football and have iphones.
In the end I am just testing if the app has the ability to stick. Wish me luck.

Thanks for reading this far, I hope it will be useful to someone facing the same issues I did. In the meanwhile please give it a try, it’s free.

iPhone Version | Android Version

Posted on Apr 11, 2011

idnforums.com sales stats

I have been data mining all the auctions on idnforums.com, mainly to increase the accuracy of idn.bz automatic estimation values. This weekend I decided to play around with it firing some cool queries on the data collected. The results are very interesting.

From right to left, top row: total sales by year, average value of a sale, number of sales; bottom row: number of buyers and number of sellers. (unique). Be free to do your own interpretation of the data. Here’s mine:

In 2010, there were 605 idn domains sold, summing a total of $53.466 in sales.The average value of a sale was $88. There were 83 buyers and 52 sellers.It’s the best year in sales since the idn secondary domain started, in 2006.2007 was the seconds best year in sales, with 40k and 628 sales, on a slightly bigger market of 104 buyers.2008 was a flop, but since then, the number of buyers on the market have been stedily increasing, from 67->79->83.

Here’s a chart of the total idn sales on the forum each month, since Feb 2006. (April values ate until today)

Posted on Mar 23, 2011

idn domain drops by registrar

Maybe a more interesting stat: who’s dropping more names, and who is playing the idn drop catching game.

Seems like Dynadot and Xin account for half of all idns that drop.

While being the main source of idns drops, Dynadot is also where they are finding a new home from the first second. Here are the stats for idn domains catched on the drop. (Please note that these are not for idns that are registered again, but only for idns that get catched on the drop)


A more useful stats, are the drop windows. Did you know that each registrar drops a domain at a known and very accurate time interval? Knowing these intervals is very useful when allocating your resources for the drop catching game. There’s no point on having a drop catching app or script running after a domain on a registrar that never drops the name before or after a certain hour. Dotster, Inc for instance, never drops an idn before 11:30 GMT.

 

Posted on Mar 16, 2011

idn domain drops by language

As requested, idn domain drops by language stats. Keep in mind these are only the successfully language auto detected (by Google) which had a reasonable amount of Google search results. Around 30% of the total.

Posted on Mar 15, 2011

idn domain drops by month

As most of you know I have been script catching idn drops from some time now.

Recently I had the idea of playing with GROUP selects on the database. The result are some nice stats that point to some idn domains trends.

I will been posting them on the next couple of days. Here’s the first one on the number of idn domain drops grouped by month:

Posted on Dec 21, 2010

Why I am no longer a domainer

  1. Domainers are seen as squatters. The recent .co sure didn’t help.
  2. Domainers are seen as scammers. Flipping names without adding any value (or age) sure doesn’t help.
  3. Owning a domain is not enough. The good-old-days of domain parking are over. Monetizing a domain name means developing.
  4. Domain names have lost glamour. The center of your business might no longer be the domain name (ie Farmville)
  5. “Domainer” is English only. The next internet revolution won’t be in English.

Yes, I still research, buy, develop and sell domains, but from now on, please call me an Internet Entrepreneur and not a Domainer