Categories
Software development

Oracle, Java etc.

Reading Time: 2 minutes

The following was written more than a year ago…

======
Got opportunity to work on those two technologies recently due to job change. Had some gotchas as I transform from C++, CAD programming to this new program paradigm.

Data problem vs. coding error
In CAD world, sometimes there is problem with the data (CAD file) itself. But most of the time I focus my effort debugging the coding error in my own code, not trying to debugging the data itself. In Oracle/Database world, I found it more often that the data itself could complicate problem. Because the relational database has relationship between table, sometimes we can not add/delete/update table at will due to dependencies (data integrity). This also bring about the second topic I want to discuss.

C++ vs. Java
Java is not as flexible as C++. For instance, how to pass data back from a function, so far I found one way: using the return data. In C++, I used the pointer and reference quite a bit. The wiring of inheritance and interface (implementation) could also got a bit complicated: basically one needs to draw the relationships on a paper to better understand all those.

Eclipse vs. Visual Studio
Eclipse (the free Java IDE) is quite powerful, actually. It’s also highly configurable, with so many plug-ins, e.g., this subclipse integrates Eclipse with Subversion. I remember I could not do such things inside Visual Studio (for Perforce).

Categories
iPhone app

Steve Jobs

Reading Time: < 1 minute

Stanford commencement speech (2005)

Macintosh 1984 commercial

Steve Jobs and Bill Gates in 1983 Apple event

My other post on Steve Jobs.

Walt Mossberg on Steve Jobs.

Categories
advice and tips Fun

Youyou’s 1st month at Hope Montessori Toddler program

Reading Time: < 1 minute

(Update 10-01-2011) We went to Youyou’s school this morning for “Parents work day”, basically they have some small playground improvement projects (painting, making a new climber), and in the lunch time, we have a BBQ and potluck. The ethnic diversity of the students/parents background surprised me a bit, reminded of Rolla (a lot of Indian and Chinese faculties and graduate students). It took some efforts to pull together such an event, thanks to David and his staffs 🙂

(Original) Youyou is a 18 month and 18 days old. She started the program on Aug 29, and 4 weeks has passed. She has transformed from “crying when mom left her in the school” to today “she no longer cries when mom drop her”.

She can say quite a few Chinese words and some sentences. She has good memory probably due to genetic reason (we are both good at memorizing things). She also can feed herself a bit, and be much more proactive when playing with us. For instance, she came to grab me for dinner when I was on phone last Sunday evening (mom did not ask her). Not to mention grabbing my glasses (she is very fast). When I go to work, she will usually say “Mao Zi” which means “wear a cap”, and say “bye bye” (which she learned a while ago).

I attended a class offered by David (the head of Hope Toddler program) this morning, Dave is quite enthusiastic and I think the No. 1 thing for me is to learn, because kid is learning from parents all the time.

Categories
Software development

Dirty flag java script, dynamic drop down

Reading Time: < 1 minute

Dirty flag on a HTML form is much trickier than I thought, that is, it is tricker when I started to programming for dirty flag.

Saw this javascript snippet. It works great except in my case, I was generating dynamic drop down (selection menu), and in a lot of cases it behaves as opposite to expected (i.e., it shows the form is dirty when it is not, and vice versa). Found out there are couple things came into play.

1) The default selection (type “0”), or select “nothing”, I forgot to set the value “0” (string type).

2) Second, I forgot to clear some of the derivative selections when I make selection the primary selection menu (basically it will dynamically generate other drop downs based on the primary selection).

3) Third, allow type “0” has other effect, I had to remove required=”true” validation from the selection menu, and validate it manually. Also, after I made this optional (removed required=”true”), the actionListener will get triggered when I make selection type “0”, previously it was not entering it, and caused other rendering issues.

4) Last but not least, I added a “validator” to the primary selection menu (basically it will give error if I select “0” type), and it will not trigger the actionListener again. Madness. So basically I have to do the validation somewhere else.

Categories
advice and tips finance

Airline and hotel credit card offers

Reading Time: 2 minutes

I felt it’s easier to make money from those offers from writing iPhone, iPad and iOS apps. At least this is true for me so far. Another plus side people may not pay attention is the “no tax” benefit of the bonus miles/points. Also keep in mind if one needs to apply for home loan (buying new home, or refinance), he/she should be careful not applying too many credit cards in the near term to hurt his/her credit score (and potentially pay higher rate for home loan). With that in mind, I would describe some of the cards I applied this year.

Airline cards
United Mileage Plus Visa Signature Chase: earlier this year I applied this via my Mileage acct, received the 50,000 bonus miles. UA is doing 30,000 miles with $50 coupon now. Check united.com web site.

Continental OnePass MasterCard Chase: applied this after UA card. 50,000 miles. They are offering 30,000 miles as of now. One needs to sign up OnePass from Continental site first. Continental has merged with United, and the milage program will be merged at the end of 2011.

British Airways Visa Signature Chase: applied this in May. Got 50,000 miles with remaining 50,000 miles pending (needs to spend $2,500 in first 3 months).

Hotel cards
Marriott Visa Signature via Chase: 50,000 points worth about 5 nights at Courtyard. And one free night at category 4 or above. The link is here.

Intercontinental Hotel Group Priority Club: 60,000 points, worth about 4 nights at Holiday Inns. New account only. Link is there.

Currently I am thinking about two cards, the Amex HHonors (62,500 points for Hilton family hotels, as described by Loyal Traveller) and Chase Sapphire reward card.

Note compared to writing apps, one can not expect make this as a business, rather than a nice way (almost effortless) to complement income. I have used my bonus AA miles, and Marriott hotel points for my recent travel to Shanghai. Not to mention the convenience brought by my Amex SPG (Starwood Preferred Guest) when travel in the US.

(Update 07-09-11) I saw this Southwest airline reward card deal from myMoneyBlog. I jumped.

Categories
iPhone app

Did Apple change iTunes App store ranking algorithm lately?

Reading Time: < 1 minute

It looks like it. Obviously my observation could be quite limited. But here is the background, in the good old days, Apple ranks app mostly by the download number in a given amount of time, and the ratings/reviews. So basically the popular the app, the higher the rank. This process could reinforce itself. Apple realized this approach probably has its limitation, one example being a fairly popular app Facebook (by usage) is not ranked the 1st. So Apple changed its algorithm a bit, it not only ranks by the download number, it also monitors the usage. By “usage” I assume Apple measures mostly by network activity, my reasoning being if an app just does its thing locally, Apple has no way to know it.

Also keep in mind the rating and reviews also play a role in the ranking, my understanding is if all things equal, higher rating or favorable reviews will push the rank higher.

More recently, it seems Apple started to give usage more weight. This is just from my own observation, I have 2 little apps, both are standalone (no network features), and one does fairly well last few month, until recent, it totally went down cliff. I did not know why until I did keyword search, in the past, it ranked 2 or 3, not it fell out of top 25. I tried to rescue such as free download for a limited time. After the free period, download number drops back, and this thing fell out top 25 again 🙁

I think from product lifecycle management (PLM) point of view, this app thing is not as good as traditional software revenue model 🙂

Categories
iPhone app

Create a timer on 2nd thread using Grand Central Dispatch GCD

Reading Time: 2 minutes

(Update 06-24-11) Last night I found “More iPhone 3 development” (by Dave mark and Jeff Lamarche) chapter 14 deveoted full chapter to multithread including timer.

(Original) As of iOS 4, Apple made blocks and Grand Central Dispatch (GCD) available. Previously it was available on Mac.

Some pre-requisite or recommend readings
WWDC 2010 video session 206: Introduction to Blocks and Grand Central Dispatch GCD (you need to be a registered Apple developer to download this).

Or if you read the nice intro “guide to blocks and grand central dispatch by Cocoa Samurai (Colin Wheeler).

The problem I attempt to solve
I have couple buttons waiting for the user to touch, and the buttons can not wait there forever, they wait for 2 seconds if a user does not touch any of them, and a new set of button will display at that time.

I thought about this problem for a while, thought about using NSNotifications which is essentially a callback mechanism (see “love to be notified” by Cocoanetics for more info). I need more, essentially I need a second thread which is a timer, to notify the main thread (which does display and handles touch) when 2 seconds is up.

I found fieryrobot’s Watchdog timer in GCD which meets my basic need for timer. But I need to return from timer to the main thread. Quote Fieryrobot:

…If you needed to return results to your main thread, you can just use dispatch_async to execute the code on the main queue (dispatch_get_main_queue() as we’ve seen in previous posts…

I am sure there is ways using blocks (callbacks) to do that, but I don’t know on top of my head. So I used Notification instead. Here is what I did in ViewDidLoad
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(twoSecondsNotification:)
name:@"TwoSecondsReached"
object:nil];

In the timer, I post notification when it’s time to go back to main queue (thread).
// Hey, let's actually do something when the timer fires!
dispatch_source_set_event_handler(_timer, ^{

NSLog(@"WATCHDOG: task took longer than %f seconds",
timeout);
// ensure we never fire again
dispatch_source_cancel(_timer);

// pass control back to main queue
dispatch_async(dispatch_get_main_queue(), ^{
[[NSNotificationCenter defaultCenter] postNotificationName:@"TwoSecondsReached" object:nil userInfo:nil];
});

last but not least, the “TwoSecondsReached” function
- (void)twoSecondsNotification:(NSNotification *) notification
{
// clean up the timer here
if(timer != nil)
{
[timer invalidate];
[timer release];
}

// do things you want to do here.
}

One more thing
In my code, I initialize timer and release timer in different methods, and I found it’s easy to lose tack of timers and have multiple timers. One phenomena I saw is multiple timers fire at the same time, and make the app go crazy. I am thinking use a singleton pattern for the timer at this time.

Categories
finance

Some questions about 529 plan

Reading Time: 2 minutes

I got those questions from a reader:
Why there is no national 529 plan? Looking at some states plan, it’s pretty much mutual funds like 401k, the investment return is like S&P? Why bother (consider S&P return is so low)?

I am not expert on this, I think why each state has a plan is pretty much why each employer (or most employers) has a 401k plan. The main purpose for such as plan is this: 1) Save some money for future liability (retirement or college tuition); 2) Hopefully the money can grow with the power of compound interest (snow ball effect); The tax deferral (in the case of 401k) or tax deduction (most 529 plans) are just ice on the cake.

As to why there is no national plan and federal tax deduction, I think this partially explained by college savings is still very small compared to retirement savings. Another indicator is the sales (or willingness for people to pay) my iPhone retirement savings/college savings app. Basically I gave away college savings calculator there because very few people are willing to pay 99 cents.

A side note: most people think spx (S&P index) is just boring, and some people think their retirement savings investments can grow 20% year over year. I think those people are too optimistic about their future. WSJ has an excellent article “The other midlife crisis” which explains why people expectations on income growth and retirement investment return are unrealistic.
Retirement income picture (via WSJ)

Categories
Business iPhone app

Going east: China iOS app dev companies and potential market

Reading Time: 3 minutes

(Update 05-10-2014) I saw the IPO of China based Cheetah Mobile in the news, not too impressed or confident of their apps though, although I know they make money. Cheetah was a subsidiary of Kingsoft (and King still has a big stake after IPO). I also noticed the WSJ article about China app market. I know a lot has changed since I last wrote about this, which is 3 years ago. From my personal observations, smartphone especially iPhone is saturated.

(Original 05-29-2011) I prepared the following summary for 360 iDev conference this fall at Denver. The talk did not make into the agenda, but I think it may be interesting to some western iOS (mobile) developers. After all, the market has great potentials.

Some background
iPhone officially came to China late 2009, but iPhone 1G came to China shortly after the US launch in Summer 2007. The first Apple store opened in Beijing July 2008. According to Steve Jobs Sept 2010 music event and Apple Q4 2010 earning report, greater China is the fastest growing market. Chinese costumers are snapping up iPod, iPhone, iPad and Macs quickly. How about apps? In this talk, we will discuss the China iOS app development companies (some have their apps featured by Apple), the current status of China iOS apps and the potential of iOS app markets (both consumer and enterprises).

Xujiahui

Some notable China based iOS development companies
139.me (Its Colorful Aquarium app was featured by Apple).
Rye Studio (featured article on San Jose Mercury News here).

Categories
iPhone app

Introducing myNestEgg v 1.5 and collegeFund 1.6

Reading Time: < 1 minute

Latest and the greatest 🙂

1) Fixed “data not being saved” bug in myNestEgg and collegeFund

2) Also, in myNestEgg v 1.5, we added “Auto Pilot” feature, similar to what has been introduced in collegeFund 1.5. The main difference is in myNestEgg I set income ratio to 70%.

Why 70% for income ratio in retirement
I briefly mentioned it on my personal blog, 70% is a magic number because I assume social security and other savings made up the rest (30%) of the retirement income.