Skip to content

Recent Articles


NPR’s Report on Patent Issues in the US

Listening to this makes me want to cry:



Everybody is getting sued, now what?

Tonight we have a great Meetup over at MoDevDC. The topic is about Patent Infringement lawsuits and how developers can deal with them. Here is an overview of the night’s presentation and discussion topics:

1) What is the overall situation?

We interviewed Florian Mueller, an Intellectual Property Law Expert and founder of the FossPatents Blog. He gave an overview of the current patent situation here in the US and how we can work with the current issues.

Here is Florian’s take on the overall situation.

2) I got sued. What do I do?

A developer’s view is also presented on what one may do upon receiving a letter.

3) Patent Infringement 101

Rick Toering from Womble Carlyle, Sandridge & Rice, LLC,  gave a high-level description of the steps that are involved in a typical patent infringement defense case. He breaks down a case along with the typically cost of each step.

4) What can we do?

David DiGiammarino from Article One Partners talks about his firm’s work and how crowd sourcing prior art can help the overall situation. The take away point is that if a group of us pro-actively go after patents that are being issued and collect prior arts, we may have a better chance against potential lawsuit ligtigation.

5) Why are software patents such a mess?

Our other organizer, Yermo Lamers, talks about a recent article that he wrote on “Why you shouldn’t be allowed to patent a better virtual mouse trap.” The article talks about someone patenting a virtual mouse trap for a potential game. A patent aggregation company bought that patent and start suing all virus scanning software companies. You can find the original article here.

We then go into a Q&A session with the following panelists:

Rick Toering – Patent Attorney, Womble Carlyle, Sandridget & Rice, LLC

Frances Weber – EVP, Article One Partners

David DiGiammarino – Director of Sales Article One Partners

Jonathan Freeman – CEO, WidgetPress

Yermo Lamers – CEO, App Update

Todd Moore – CEO, TMSoft

With over 80 attendees, it was a lively discussion to say at least.

Some of the questions:

-       Why don’t developers put more pressure on Apple and Google?

-       Can we file a class suit against these entities?

-       Can they sue me if I just offer my app for free?

-       How do I know if I infringe their patent or not?

-       If I am launching a new product, how do I make sure I don’t infringe in other people’s patent?

-       Is setting a LLC good enough?

-       Are LLCs in one state better than another?

The meeting went very well and it pave the way for more meetups like this, where we will explore real solutions.

One point that most attendees agree is that  the current situation is very dangerous. If we don’t find a solution quick, mobile development community as we know it may well cease to exist. The great innovation that has happened in the last 2 years will stop. We won’t have an app for everything, and we will go back to only big software companies creating products. That would be sad, indeed.

As I see it, we need new ways to defend these cases. The traditional defense cost 2+ million dollars and that is just way over budget for most mobile developers. Just like we productize software products, we need to “productize” the defense. We need to productize prior art search, productize patent search, productize patent litigation and productize settlement negotiation.

I hope this meeting starts a new round of conversation about finding real solutions to this problem.


FISMA / HIPAA Compliance on iOS

Last night I presented at the MoDevDC Meetup on the topic of security on the iOS platform. It was a fun discussion among 50+ local mobile developers.

In this presentation, I am going to discuss the technical challenges
of how we secure our app (iForm ES) in order to satisfy various
requirements from FISMA and HIPAA. This is a technical presentation
and code examples will be shared.

- The basics: OS level security, keychain, file attributes,
- Getting to jailbreak proof: local authentication, prevent keyboard
cache, local database encryption
- FISMA/HIPAA Compliance: FIPS 140-2, two factor authentication, intrusion prevention,
end-to-end PKI, X.509 digital signature

Disclaimer: This is not a check list of how to get FISMA/HIPAA certifications. We are simply sharing our experience.

Here is the presentation: MoDevMeetup-05042011

And Code Examples


Growing up

When my grandma passed away, I was very sad. We were closed and losing her was painful to me. I was just out of college and i asked, “how come nobody ask me how I feel?” That was almost 15 years ago. As God slowly takes people around me away, I finally started to understand what God is doing. God doesn’t want me to be sad. Its not about me, its about people around me. God is giving me another chance to love people around me more, while i still can. God wanted me to make people around me less sad. God want me to be there for them and say “its ok”. Life is always busy and things are always inconvenient. While I still can, I will be there. I am here.


The world with tablets

I was having lunch with a friend and we chat about the future where most people will use the tablet more than a PC. ( I know, that’s Steve Jobs’ vision, but it’s also Bill Gates’ and also mine. ;) ) Anyway, he start asking questions like, “but is the tablet powerful enough to handle everything”.

This reminds me of the early day of digital photography when people asked, “wow, if we are taking hundreds of pictures, wouldn’t it cost a lot to have them developed?” “how do I put them in albums?” “what do I do with my baby book if I don’t print all the pictures out?” “So I won’t be able to flip through the pictures?”

With new technology, your behavior will change. There will be give and take but to the better for the most part. I think it will be the same in the tablet world. A world where most ‘computing’ is done from a tablet like device rather than a PC. Some people will love it, some will hate it, most will adjust to it. That’s progress and I like it.


Quick Samsung Galaxy Tab review

Ok. Meant to write this for a while. I have had my Galaxy Tab since launch around November. First impression is that the hardware is impressive. Speed, touch, multi-touch, all on par with the iPad. The thing that I like the most of my Galaxy tab is it’s size. Yes, the in between size. To me, sometimes I want to carry a tablet ( something bigger than the phone ), but it still small enough to fit inside a jacket pocket. I tried carrying the iPad to meet ups and that doesn’t work well. Most meet up events that I go to are setup like a cocktail party. You walk around with a drink, sometimes a snack. In that setting, I found the Galaxy tab to b perfect.

Another good thing about the Galaxy tab, and Android in general, is Flash support. It’s great to have but what I found is that flash is very taxing to the CPU on the galaxy so when flash is on, web site are very slow, even scrolling sometimes crash the device. So I have to turn flash off and only download the movie when I know I want to run it.

Well, that’s all the goods. The bad, I will start with battery life. Actually it’s not too bad but I found myself needing at least 2 sets of chargers to feel comfortable. The real downside to the Galaxy tab, the reason why it can’t beat the ( or come close ) to the iPad is software. From the OS to the Apps. This is my first Android device so there is learning curve. I get that. So for over a month, I force myself to carry only the Galaxy tab and not the iPad. Simply put, Android is designed for engineers while the iOS is designed for consumers. Everything is possible in Android, some just not obvious. I mean, if I need to search google and watch a you tube video to know how to rename a folder, something is wrong with the UI design. The Android fragmentation and lack of control over the market place also makes the overall experience lower than what the Galaxy tab can truly offer.

Now, I’ve heard that the Galaxy tab had very good app support in localized market like Korea and Hong Kong. That may well be the case, but for me, I find Android still need work and the market needs to change it’s rating system so i see quality apps instead of all the useless apps that keeps crashing.

The Android market is growing rapidly so may be very soon the software experience will be at the level of the iOS but for now, 5 stars for the hardware and 2 starts for the software.


Top 3 Needs

Recently a friend of mine asked “what’s your top 3 needs right now”. Here is my respond,

Top three things? These 3 things are always true, but as we get into a different stage, they take on a different meaning.

1. Focus. Focus is no longer, heads down and get the release out. Focus now means don’t get side-tracked with the day-to-day but make sure we are marching toward the right goal 6-10 months from now.

2. Cash flow. It’s rather easy to make financial decision when you have absolutely no money. When we are getting money in and need to spend some money, any small financial decision is critical. It’s far easier to spend money than to make them.

3. Growth/Scalability. As we grow, we start taken on different jobs. Starting to be managers rather than workers. Starting to put in process rather than just getting it done.

OK.OK. More concert needs:

1. Legal support. I am going to engage the lawyer soon.

2. Resources. We have been hiring and will continue to do so. Key is the get affordable and effective resources.

3. Slow down. As we gets traction, it’s very easy to think that we are invincible and thus go too fast.



My First Garage Band recording

This is just the intro to the song I’m trying to learn, but the process is cool so I’m writing it down.

I play the song from my iPhone, and try to play it on the piano.

Once I got the notes correct, I hook up my Mac book to the piano.

As I start playing, notes starts to show up in Garage band:

It records in MIDI with paddle timing and even how hard I hit the keys (emotion). The following is being play back from GarageBand, but it’s almost like me playing. Very cool.



Keep your iPhone apps from crashing

Yes, once again I found myself having to track down some memory issues. Today I tracked down 3 major areas that cause apps to crash. Yes, even if you do all the great Objective-C alloc/release/dealloc you still will be faced with these.

I think most apps have at least 1 of these 3 potential issues so I’m writing down what I did to mitigate the issues and keep the apps from crashing.

So here are the 3, in the order of memory consumption:

1. SQLite – no, there is no memory leak in sqlite, but most people keep one opening connection throughout the app and as you keep creating and freeing prepare statements, it continues to use to memory until the database connection is closed.

2. The Photo Picker – yes, you thought Apple have fixed it in 3.0. They did, but it’s still leaking! If your app takes one or two pictures, then it’s fine. But if your app allows users to potentially take 100 pictures, then eventually you run out of memory, and crash.

3. Network connection. NSURLConnection to be specific. Now-a-days most apps are network enabled and connects to the backend. Some people on the web says the leak is minimal so there’s no need to worry about. Well, if your app (like games) ping the server every second, then a 100 byte leak will soon add up.

And here are my solutions:

1. To deal with SQLite, you have two options. One is to open and close connections frequently. Depends on where you grow up, you may or may not like this option. I happened to grow up in Oracle land, so creating connection every time is something that I tend not to do. What I did is to force temp tables to be created in files instead of memory, thus reducing consumption. Just add the following line after opening a database connection:

if (sqlite3_open([path UTF8String], &database) == SQLITE_OK){

sqlite3_exec(database, “PRAGMA temp_store=1″, NULL, NULL, NULL); //Force using disk for temp storage to reduce memeory footprint.

2. Now the Photo Picker that we all learn to love to hate. The easiest work around is to create a singleton class to limit the memory leak. Basically avoid creating multiple Photo Picker (As everytime you create one, it leaks like 3K).

@interface ZCImagePicker : UIImagePickerController {}

+ (ZCImagePicker*)sharedInstance;


static ZCImagePicker *myInstance = nil;

@implementation ZCImagePicker

+ (ZCImagePicker *)sharedInstance {

@synchronized(self) {

if (myInstance == nil) {

myInstance = [[self alloc] init];



return myInstance;


- (void)dealloc{

[super dealloc];



3. Finally on NSURLConnection, just avoid using sendSynchronousRequest. Use the standard async methods you will be fine.

Hope this can help to keep your next iphone apps from crashing.


iPhoneDevCamp DC Demo

For those of you who will attend my presentation in the iPhoneDevCamp tomorrow, please do the following in advance to follow along in the demo:

1. Download exZact Lite from the App Store.

2. Goto the Setting screen, key in the following:

Email Address: ipdcdc (Yes, it’s not really an email address, it will work, trust me.)


3. Hit Sync Data With Server

See you all tomorrow.