OS X Lion can install on multiple Mac with a single purchase

In case you are wondering if you need to pay $29.99 for every Mac that you own, you don’t.

Purchase a single copy using the same iTunes account, and all your authorized Macs would be able to install. This was actually mentioned in WWDC 2011 keynote.

So, go Mac App Store and download Lion now!

Fix: Error from Mail client: "Web login required …”

I encountered an error from my Mail client, a couple of times. The error message is

Error from Mail client: "Web login required: http://mail.google.com/support/bin/answer.py?answer=78754 (Failure)"

I am not exactly sure what is causing the error to my Mac Mail client. But I do know how to fix it by unlocking captcha.

To fix, you have to go to https://www.google.com/accounts/b/0/DisplayUnlockCaptcha, enter your email address and password (works for enterprise app too), and it will miraculously solve the error.

Note: If you will to go to http://mail.google.com/support/bin/answer.py?answer=78754, it will ask you to go to https://www.google.com/a/yourdomain.com/UnlockCaptcha. That link somehow doesn’t work.

How to ALWAYS earn $10 for each Groupon deal

Groupon has a rewards program that rewards you $10 when you

  • introduce a new customer AND
  • the new customer purchase a deal

This is a trick, or a hack, to ALWAYS earn you $10.

For example, if there is a $6 Bak Kwa deal, then you will pay $6 for the deal, and at the same time receive $10. Not only do you receive the voucher, you also get $10 credits for future groupon purchases!

Follow these steps to perform the trick. The key is signing up multiple Groupon accounts easily, using the SAME email.

 

Step 1: Login to Groupon with your account
 
Step 2: Get your link that earns you $10

To get your link, go to the deal, and recommend to friends via Email. Type in any email and press "Pass on the word". In the following screen, you would find your link at the bottom.

groupon recommend link

In the example above, it is http://www.groupon.sg/deals/singapore/-6-for–10-worth-of-bak-kwa-and-meat-floss-products-at-fragrance-foodstuff/715843764/.zF3BVo

 
Step 3: Sign out from Groupon

 

Step 4: Open the link from step 2

 

Step 5: Click on "Buy Now!"

 

Step 6: Sign up as a new user

Fill in some bogus details. The only important detail here is the email. Here, we use a trick where you can enter your same email multiple times. Basically, if your emails is ladygaga@gmail.com, you can enter ladygaga+1@gmail.com, and Groupon would treat it as a different email, therefore a new user!

groupon sign up

 
Step 7: Continue the purchase

Continue the purchase using Paypal or Credit Card. The groupon will be sent to your email!

You will also see your $10 reward! (Pending until the voucher is sent)

groupon credits

 

Step 8: Do it again!

You can do this multiple times, and earn multiple $10! Keep hacking, starting from step 4.

That’s it for the Groupon trick! Enjoy the deals!

Adding live chat to your blog/website

Adding live chat to your blog/website gives you another means to communicate with your website visitor.

It is especially useful for e-commerce website whereby product support is much needed. A live chat would be a good experience for the visitor who needs immediate dedicated assistance.

There are a number of live chat services that you can find. I have shortlisted 2, and tried both on my websites. Olark on Just2us (left), and Zopim on Just2me (right).

olark on just2us       zopim on just2me

Both Olark and Zopim are easy to set up (less than 10 min including signing up). Yet comparing the 2, I am liking Olark more, for a couple of reasons:

  • clear instructions for setting up wordpress blog and website
  • use of separate Jabber account for each agent
  • can add agent’s account to Adium easily
  • has powerful command such as “!push www.google.com”, which will push your visitor to another webpage
  • nicer default chat interface (cleaner and bigger font)

For now, Olark is my choice!

A method to easily create multiple email accounts (gmail)

There is a method to easily create multiple, or thousands, of email accounts! All it requires is 1 real gmail account.

Let’s say you have 1 gmail account – ladygaga@gmail.com

Then you already have multiple gmail accounts!  ladygaga+1@gmail.com, ladygaga+2@gmail.com, etc..

This is because gmail has this cool trick where it can let you pre-label your emails. It works by giving out a version of your email that comes with the label. Eg. if you want to label all emails from your colleagues with “work”, then you would give them ladygaga+work@gmail.com.

You might be wondering: why would I need multiple email accounts?

It depends. For me, having multiple email accounts allow me to register certain services multiple times. For example, if a trial account expires in 1 month, I could infinitely register for trial accounts using different email accounts (:

I have also used the trick when registering for a US iTunes Account (in addition to my SG iTunes Account).

Play! Framework + App Engine Tutorial

This is a tutorial: creating a barebone Play! app and deploying on the free Google App Engine.


Steps to setting up Play! with App Engine

1. Download Play framework (latest is 1.2.1)

2. Unzip and add path

export PATH=$PATH:/YOURPATH/play-1.2.1

3. Install GAE module (latest is 1.4)

play install gae

4. Install siena module (latest is 1.5)

play install siena

5. Edit /YOURAPP/conf/dependencies.yml

require:
    – play
    – play -> gae 1.4
    – play -> siena 1.5

6. Add to conf/application.conf

# —- Google app engine module —-
module.gae=${play.path}/modules/gae-1.4
# —- Siena module —-
module.siena=${play.path}/modules/siena-1.5

7. Restart your app. GAE will start and a /war will be created

8. Edit /war/WEB-INF/appengine-web.xml and enter your appengine appid

9. Deploy

play war MyFirstApp -o MyFirstApp-War
/Applications/eclipse/plugins/appengine-java-sdk-1.5.0/bin/appcfg.sh update MyFirstApp-War/

Go to http://yourapp.appspot.com, and it should run!

Note: This tutorial is only a basic to getting a barebone Play! app to run on Google’s App Engine. Developing a Play! app on App Engine still require your effort. Here is an Easy Bookmark example.

How to get invited to Google+ (workaround method)

Google+ is a new social network application that Google has recently introduced.

It is like both Facebook and twitter, yet even more awesome.

With killer features such as hangout, where several friends can join a VIDEO chatroom, and even watch youtube together! You never need to have physical hangout with Google+ hangout.. Very nerdy yet awesome feature!

 

Problem

No doubt Google+ is one of the most awesome thing on the Internet now.

But the problem is that it is released in its very early stage, so only those who are invited can try it out. And although Google+ users can invite ~300 friends, the invite mechanism was shut down due to insane demand..

 

Solution

The good news is, there is a workaround to getting the invites (:

You still can be invited to Google+ by an existing user. The existing user has to do these:

  1. Post something in his steam.
  2. Add the email of the friend to invite.
  3. Share
  4. The invited friend will receive an email asking them to sign up to Google+

A screenshot of how I invite someone@gmail.com to Google+ in my stream.

google plus

Where to find an existing user to help?

If you need an existing user to perform the above invitation workaround, I can help.

Just leave a comment below with your email.

 

Update: If you did not receive an email from Google+, do not panic. Wait for another day, or two. They should arrive..

Tips: To increase your chances of being successfully invited by Google, you should  create a google profile with your gmail, and +1 something.

For example, +1 this post!

How to update to iOS 5 beta?

You have probably heard about iOS 5 from the recent Apple’s WWDC keynote. It includes 200 new features – iMessage, Notification Center, twitter integration, Reminders, taking pictures with volume key, etc..

But you have to wait until Fall of 2011 to officially install iOS 5..

If you can’t wait, this is how you can update to iOS 5 beta.

 

Pre-requisite

There is only one, hard pre-requisite:

A iOS developer account can activate up to 100 devices for testing purposes. You can either spent $99 to register as an iOS developer, or find a developer willing to activate for you.

Then you have to:

  • Install a UDID app on your iPhone/iPad, and use it to send your device info to the iOS developer. The developer will then add your device to his list.

 

Steps

The rest is easy.

  1. Fulfill the pre-requisite first!
  2. Register a free iOS developer so that you can download the beta (it’s free)
  3. Download the iOS 5 BETA for your device (link)
  4. Extract to get a IPSW
  5. Download and install iTunes 10.5 BETA (link)
  6. Connect your iPhone/iPad to your computer
  7. Open iTunes
  8. Press and hold the Option/alt key (Mac) or Shift key (Windows), and click Restore
  9. Select the extracted IPSW
  10. Restore!

 

Pitfalls

Some possible pitfalls:

  • If you encountered this error during restore "this device isn’t eligible for the requested build”, try editing your host file.
  • Still doesn’t work, try restarting in DFU mode.

Marketing APIs to Developers

The last post I summed up an Introduction to API Business. This post, I am summing up another whitepaper by Apigee on attracting developers to your API.

1. Marketing is not a term for developers

First and foremost, marketing does not appeal to developers.

Developers are cynical about marketing. Statistically, they are the least likely people to be attracted to billboards or online ads. To them, “marketing” is an oxymoron term.

So instead of saying it is marketing, say that you are building a developer community. Instead of doing traditional marketing, it is about you fostering a good developer community.

Always be respectful to developer and bear in mind your work is to help the developers, in all ways (not just only your APIs).

 

2. Address developers’ motivations

Help them, and address their motivations, usually in one of these ways:

  • Build their skills
    They are looking to build on the latest or widely adopted platforms. They want the skills to be useful in the future, either in their current work or on resume.
  • Raise visibility
    They want real impact in the work they do. They want as many people to use and know about what they have created. Providing them some form of distribution, or free marketing, would make them very happy.
  • Tools to solve their problems
    They are looking for tools to solve problems. Provide SDKs on top of your APIs, debugging tools and anything that makes life simple for them. Developers are very practical people.
  • To get paid $$
    Ultimately, they want to create a business and get paid. Help them achieve this goal.

 

3. Segment your approach

Be clear about your segments.

They could be segmented by particular programming languages – Java, Python, C++, Ruby, .NET, etc.. They could be further segmented by the platform – web, mobile, flash, desktop software, etc..

Instead of saying “I’m going to reach every developer”, it is more better to say “I’m going to reach twitter devs building mobile apps” or “I’m going to reach web devs with communication needs”.

 

4. Foster a good developer community

This is where you need to create a place for all developers to communicate with you, or among themselves. Provide them with support, ask for suggestions and share ideas in a forum.

Not anyone can be a community manager, in fact it is actually a rare breed. You will need to recruit the right person, usually with the personality of an extroverted geek (ahem, coincidentally that is my twitter bio).

 

5. Reach out to developers

Reach out to them via

  • relevant blogs
  • forums and groups
  • StackOverflow, ProgrammableWeb, MSDN
  • twitter, linkedin
  • SEO (google search for eg. “SMS API”)
  • be the pretzel next to the beer – this means put your API beside someone else’s great API

 

6. Free and Easy

Developers, especially individual/independent/hobbyist developers, will avoid your API like plague if it’s not free and easy to use.

 

7. Top 10 Developer Adoption Drivers

A list of 10 adoption driving factors:

  1. Cool API – most important
  2. Gather three metrics and stick with them
  3. Get your content out
  4. Good content engine (sample code,  SDK, marketplace)
  5. Internal hack day
  6. Look alive
  7. Focus on segments
  8. Scale and leverage
  9. Track your devs
  10.   Offline activities (contest, conference, or beer session)

Setting PATH variable in Mac permanently

This post I will highlight 3 ways to change to your PATH variable.

 

1. The quick way

Firstly, check your current PATH

echo $PATH

If the directory (eg. /my/new/path/) you want to add is not already in your current PATH, then you can easily add with the command

export PATH=$PATH:/my/new/path/

Done. Right?

It’s not really done, if you would like the PATH to change permanently (which is usually the case). This quick method only change the PATH for that bash session. If you close the terminal or open a new terminal, the PATH reverts back.

 

2. Set permanently for a user

This brings us to the second way of setting PATH permanently for a user.

Edit the user’s bash profile (replace USERNAME)

pico ~USERNAME/.bash_profile

Insert (or edit) this line

PATH=$PATH:/my/new/path/

Press ctrl-x, then ctrl-y, to save the file.

Done.

 

3. Set for all users

As a bonus, if you want the PATH to change for all users

sudo pico /etc/paths

Enter your superuser password to edit, and insert or edit this link

PATH=$PATH:/my/new/path/

That’s it! Enjoy your path!

 

beautiful biking path