System Administration

not all dynamic DNS services are equal

In the tech world, once you have something working, you tend stick with it for a long time. I’ve been using Zoneedit to host my various DNS domains for almost 10 years. But today, I’m switching to DnsMadeEasy.

This is being driven by Zoneedit’s Dynamic DNS limitations. Specifically, when you update the IP associate with one of your hosts, it can take a while before Zoneedit start publishing the new address. In my tests, it was taking over one hour. On top of that, you can not set the Time-To-Live (TTL) on the (A)ddress records. For DDNS, both of these are non-starters. The whole idea with DDNS is that you know your IP address will change periodically. And when it does, you want the world to have the new IP address as soon as possible.

Several months ago, for a service I was creating, I had the chance to use DnsMadeEasy. At a high level, there is not a lot of difference between DNS hosting companies. But sometimes the small differences are important. DnsMadeEasy has a much better web interface that allows you to have fine grained control of your DNS records. And equally important, changes to your zone are live almost immediately. Finally, rather than hosting your domain on just 2 DNS servers, DnsMadeEasy gives you six.

I think I would be more accommodating if I had been using ZoneEdit’s free version but I have been paying for the service. So while I have not been unhappy with ZoneEdit’s service over the years, it’s time to move to something better.

Social Networking, Software Development

LinkedIn API vs Facebook API

Today I was investigating the LinkedIn API. Most developers who want to create a social app have tended to use the Facebook API but I was looking at an idea that was business focused so LinkedIn would be a better fit. While the API is fairly full featured, there are some big differences compared to what Facebook offers. Most of those differences focus on how you discovery the app and how you use it.

On Facebook, apps are tightly integrated into the Facebook UI. Apps appear right in Facebook pages, you can discover new apps in the global directory and apps can add make updates to the news stream. All these means that if you have a good app, you can get away with a fraction of the marketing that you normally have to do. This opportunity has driven a lot of developers to create a Facebook app. Today there are over 500K apps that have being created (500K by Facebook’s own stats).

With LinkedIn, your app does not live inside the LinkedIn site. In fact, the LinkedIn API is more like Facebook Connect, which is geared for companies that already have their own website. It allows your site to not require users to have to create a new account on your site and allows you to access the user’s Facebook data. But as mentioned, all this happens on your own site. It is up to you to find ways to drive new traffic to your app. While there is an app directory on LinkedIn, it only has 13 apps on it. In terms of the actual API, it’s fairly robust. You are able to get at all of a user’s profile information. Also, you can get their connections and do updates to a user’s status.

So as long as you already have an installed base or feel comfortable building your vistor/customer base in the traditional way, the LinkedIn API does allow you to add social type features.

System Administration

Fully automated ubuntu server setups using preseed

When you are building a server on a cloud like Amazon’s EC2, its quite typical to create a shell script to automate the process. This saves you time when you need to create a test server or god-forbid, your production server dies. But one of the challenges in creating these scripts is that some packages display a UI asking for user input. Two common examples of this are mysql (root password) and postfix (server type, root email, etc).

The solution to this is to use preseeding. This is where you tell the debian installer, in advance, the response to each of the questions it would normally ask when it installs the package. The command-line tools used to preseed are part of the debconf-utils package. So the 1st step is to make sure these are installed.

sudo apt-get -y install debconf-utils

Now you can go ahead and figure out which settings need to be set for each package. Let’s use mysql as an example. The easiest way to do this is to install the package manually and then use the debconfig-get-selections command to query the list of settings.

# sudo apt-get -y install mysql-server
# sudo debconf-get-selections | grep mysql
mysql-server-5.1 mysql-server/root_password_again password
mysql-server-5.1 mysql-server/root_password password
mysql-server-5.1 mysql-server/start_on_boot boolean true

So what we need to do now is create a preseed file with the above settings and then pass it to the debian installer using the debconf-set-selections command.

# echo "mysql-server-5.1 mysql-server/root_password password $MYSQL_ROOT_PWD" > mysql.preseed
# echo "mysql-server-5.1 mysql-server/root_password_again password $MYSQL_ROOT_PWD" >> mysql.preseed
# echo "mysql-server-5.1 mysql-server/start_on_boot boolean true" >> mysql.preseed
# cat mysql.preseed | sudo debconf-set-selections
# apt-get -y install mysql-server

Once the values have been set, you can run apt-get to install the package without prompting for any inputs.

One final note, if you have a lot of servers or rebuild them on a regular basis, you should probably be looking at Puppet or Chef.

India, Management

Apple shows leadership on supplier responsibilities

I don’t normally write about non technical issues but today Apple released their 2010 Supplier Responsibility Process Report.  As someone who had an office in India for about 5 years, this is an issue that is dear to my heart.   Most of us have accepted that businesses need to have some of the work done overseas for cost/competitive reasons.  But we also assume that when we buy from a reputable company, that the workers who created the product are treated fairly and the materials in the product are safe.  Well, most often the factory making the product is not owned or run by the brand and rarely do brands put a lot of effort into monitoring working conditions at the factory.

What brands are vigilant about is the cost and the quality. These are things that consumer can directly see (and affect the company’s bottom line). If you want to see how important this issue is to a brand that you buy from, go to their corporate website and see if you can find something regarding this. Most times, you will not find any mention of what standards their hold their suppliers to. In some cases, there will be a brief mention of some standards but nothing about what they are doing to ensure that these standards are being followed. During my time in Asia, I’ve seen all sorts of things and I can tell you compliance is a big problem. I’m not saying that most factories take advantage of workers or have unsafe work conditions but there is a huge variation in what is happening.  And a lot of times, Western brands are (partially) turning a blind eye. The only way to really make sure things are done properly is to have a full time presence at the factory. The good news is that there are some companies that are doing this. With a local presence, it’s a lot harder for a factory owner to hide any dirty practices. 

So I’m very happy to see that Apple is openly talking about what they demand of their suppliers and also equally important, what they are doing to ensure compliance.  There is no doubt Apple is not perfect.  But at least we have visibility at to what they are doing. We should really expect this of all the major companies doing business in the developing world. If you have a moment, go to the website of your favorite brand(s) and see if they have something on the site regarding this.

And now back to our regularly scheduled (tech) broadcast….

Software Development

New version of jQuery released – even faster

On the weekend, a new version of jQuery was relesed (1.4.2).  What was already a good library has been optimized and runs even faster.  Those that make heavy use of the library might want to try and upgrade.  And obviously, any new projects should start with the latest version.

If you are currently using the 1.3.x version and want to know what’s changed in 1.4.x

Management, Startups

Defining the culture of your startup – lessons from Netflix

While reading a blog post about Netflix this morning, there was a link to a presentation describing the company’s values.  Now lots of companies have something like this and normally its pretty cookie cutter.  But if you have a minute, check it out Netflix’s as its quite different.  And refreshing.

A few key take aways…

  • Its not the espresso machine or free food that attracts smart people.  It’s that chance to work with other smart people.  Sometimes startups spend a lot of time talking about the little perks that they have. Sure they are nice but they really aren’t what attracts or keep good staff.
  • Pay people what they are worth.  While this makes sense a lot of places I worked had competitive salaries when they hired but then just used a simple single digit increment for the yearly increase, no matter how much the staff member had grown their skills.  This forces staff to leave the company to make big moves up the salary curve.
  • They have a very simple test to decide if a staff member should be kept on or not: “which people, if they told me they were leaving in two months, for a similar job at a peer company, would I fight hard to keep”.  Everyone else should get a generous severance package.
  • As a company grows, there is a tendency to add more procedures and rules.  Unfortunately, this destroys the environment that your star employees joined for.

There are more nuggets in the presentation.  I suggest you give it a read yourself.

Social Networking

While Facebook now accepts Paypal, most apps can't benefit from it (updated)

What Amazon’s one-click checkout and Apple’s iTunes store have proven is that by removing the friction from the payment process, sales will dramatically increase. In fact, in the case of iTunes, it was the magical key to getting people to pay for music and for mobile apps.  So it was significant yesterday when Facebook announced that they would start to accepting Paypal, especially since they’ve indicated that 70% of their users are outside of the US. But what is a bigger story is that very few Facebook apps are yet able to use their credit system.  The system is still officially in beta and only a short-list of apps are included.

So while its great to see Facebook continuing to improve their payment system, what the larger Facebook development community needs is to have Facebook hurry up and finish the long drawn out beta that they have had for Facebook credits.  All is not gloomy though.  In 2010, social gaming is estimated to be a $1.3B business and in Asia it’s already a $7B business ( But transacting payments with users is easier for the big companies like Zynga.  The bigest beneficiary of Facebook opening up their payment system, will be all the smaller developers, of which there are many.

Still, hats off to Facebook for now working with Paypal. I’m holding my breath that they are hard at work at finishing up the beta for their credits system so that all their application partners can benefit.

UPDATED: Looks like Facebook is suggesting Credits might come out of beta fairly soon.


24 mobile operators aim to create an app store to rule them all

There has been some buzz yesterday about 24 of the worlds mobile phone carriers announcing that they will create their own app store (Wholesale Applications Community). We’ve known for a while that they are upset about being cut out of the revenue from app stores. My daughter as an example spends $20/month on iTunes. I know others who do the same. The phone companies definitely want to find a way to get in on the game.

Here is the announcement….

Now, the 1st question that I had was how would this fit in with my iphone which already has an app store (and a very good one I might add)? Will I have two app stores? The same can be said for anyone with a high end phone from Nokia, Microsoft, RIM or Palm.

If you look at the API used to create apps for this new app store, they are based on the BONDI APIs ( Apps are more like HTML widgets that can access the phone features (like GPS and address book, etc). Now to be really cross-platform means that we are talking about lowest common denominator so this is not HTML 5. In fact, the current engine (on the BONDI site) runs on Windows Mobile.

And this leads me to where I believe this app store will initially exist… on low-end feature phones. Sure it might be possible to run one of these apps on an iphone but why would I when there is probably a native app that is much better. This begs the question as to why the carriers want to have an app store for feature phones. The first part of that is that its the only game in town left. Here in North American that doesn’t look very exciting but in Asia its common for feature phones to have apps. And the carriers charge for them. In India, I saw feature phones where you could get your horoscope for 2Rs ($0.08) or check the cricket scores. And in India feature phones still rules as most people can’t afford a $600 for a (unsubsidized) phone when they make $300 a year. And remember India is a country with 350M mobile phones (and growing quickly).

And the second reason that the mobile carriers might want to do this is that eventually, HTML 5 will allow apps to be created that are as rich as native apps. At that time, a carrier app store might be able to take on a handset app store. As a developer, I would love to create one app that works on more than one type of handset.

So unless you have the ability to sell your apps in Asia (or Africa, etc), today’s announcement is not something that an app developer need to rush out and play with. But we should keep an eye on it. If the carriers don’t mess this app store up and HTML 5 does turn out to be what we hope it will be, maybe we’ll be very happy to develop for it in the future.

APIs, Mobile

Nokia new OS, Maemo gets detailed at conference

We’re right in the middle of the mobile API wars. Each major handset vendor has their own set of APIs and are trying to woo developers to create apps for their devices. Ever since the iPhone’s AppStore run away success, users are more and more looking to apps for all the cool extra functionality they want. So handsets without a vibrant app ecosystem are at a disadvantage.

Today Nokia’s Maemo conference started and the news coming out is encouraging. The first device, the N900 looks good and the software on it is promising. Maemo is based on Linux and today Nokia announced that Qt will be avialable for it. For all the Linux developers out there, this is probably the OS that is easiest for them to develop for. In fact, if done right, a bunch of the linux code created should be able to port very easily. Maemo is far and away a more compelling solution than Symbian, Nokia’s other OS. While Nokia’s strategy is looking more compelling, they still need to build an installed base. As a developer, there is no point in creating apps for a cool new device/OS if no one has handsets. Nokia needs to ship the N900 and get Maemo onto other devices ASAP. Without the installed base, only a few hobbist will be interested in Maemo.

Health, Mobile

fitbit – example of new class of net-enabled devices

Fitbit ( started shipping their new fitness and sleep monitoring device today. This device is cool for a number of reasons. First, on a functional level, you simply clip it anywhere on your clothing and it keeps track of how many calories your burned, how far you’ve traveled (walk or run) and even if you are getting a good nights sleep or not. All this information gets uploaded to their website where you can easily review the data. The device is very simple to use as in there is really nothing you have to do. It quietly collects data and then automatically uploads it when you are near the base station. So if you are having a hard time losing weight (who isn’t), you can easily see if you are doing enough exercise in relation to how many calories you are taking in.

The other reason I love this device is that it’s another example of the new class of devices that are net-enabled. Other examples is be
ecobee ( which is a home thermostat that uploads data to a website so you can see your energy usage over time.   There are other companies working net-enabled heart-rate monitors and even digital scales. The list of what’s possible is endless.  The biggest thing driving his is that most households now have broadband internet and adding wifi (or even a 3G cellular modem) isn’t that expensive anymore.

I’m looking forward to a whole bunch of new devices hitting the market in the next several years.