Categories
iPhone app

Who is going to attempt the last shot?

Reading Time: < 1 minute

I used to watch NBA game quite a bit. I noticed in many teams, there are usually a go-to-guy who attempts the last shot, in close game. This is especially true in important games, such as playoff or elimination games. We all know Kobe Bryan and Lebron James are among those. Is there such a role in software development? Is this role becoming less obvious with the pair programming? When I reflect about all the places I worked, I think the answer is yes for the first question. Actually I played that role from time to time.

And again use that basket ball analogy, I think in a truly agile team everyone can be the go-to-guy. Because in that case, basically the opposing team cannot easily defend, which is ideal for the team. On the other hand, the opposing team just needs to figure out how to defend Lebron James, and they will be more likely be successful. At the same time, Mr. James will get frustrated too as teammate cannot step up, and the loss of games.

This is a bit fitting as we are at march madness, the traditional NCAA basketball playoff game season.

Categories
iPhone app Software development

Why unit test?

Reading Time: 2 minutes

For the pretty reports?
About a year ago, I worked for a client for an iOS project. The developer I worked with is very enthusiastic about unit testing, test driven development. I recall he used some tool (lcov, stands for line coverage), and set up the build script such that the unit test and lcov runs frequently. I was also shown the pretty chart created by lcov. All is good. except one day, I found a utility function I wrote was broken in the iPad simulator. Turns out the developer modified the code and added test for that function (a good thing), but at the same time forgot to run the real thing to check it.

Real motivation for unit testing
I think the unit test as another perspective to verify the code works as desired, this is from my own experience. I recall we have regression test suites in the software company I first worked professionally, that was more than 10 years ago! I started with waterfall, slowly transitioned into agile, test driven development. When we found new test cases (from problem report, etc.), we added those to our regression test suites as we see fit. We ran those unit testing suites before checking in code. This does not means the product we are developing is prefect, but it does give me more confidence as we add features or do bug fixes. This is also true in the many JUnit tests I saw/added in many places I worked since then.

More recently, as I saw the “mock” concept in JUnit, while I am not expert on “mocking”. Conceptually I liked this idea, as we don’t want to repeat the same thing in the production code, we add one more perspective. I also recall the famous investor Charlie Munger (Vice chair of Berkshire Hathaway) once said, he used at least two models to value a company/investment. Check and balance.

(Update) Came across this article on the disadvantages of pair programming. Also, saw this launchCodeSTL a while ago.

Categories
iPhone app

iPhone 5s and iPad mini without data plan

Reading Time: 2 minutes

Recently I cancelled iPad mini $30 per month 3gb data plan from AT&T, note I also have not have phone data plan since the beginning of April of last year, at which time I returned the employer iPhone 4s when I changed job. Now I am without the data plan on 3G, I am formally without the always on data. Some of the work around I have used to get around:

1) Wifi, at work place I usually get free wifi, and I asked the Wifi password at the places I will be for a while, my daughter’s pre-school, her gym class, JCC, the Chinese restaurant I go often, my friend’s house, etc. Most places have free wifi now. The only thing is just ask: the office manager, my friend. Usually they don’t laugh at me 🙂

2) Not all wifi are equal, besides speed, and coverage and reliability is the most visible. Personally, I like the JCC wifi the best, because they are reliable. At one time, I had Nexus 4 phone, it takes a bit work to get connected (Setting, turn Wifi off and back on).

3) GPS. I found out this lately, even without data plan, I can use GPS on my iPad mini, the only thing is before I start, I need the Wifi to set up the destination and the route. After that the navigation is just the same as the dedicated GPS. A small inconvenience. And one reason I still kept my TomTom GPS.

4) Apps’ working without Wifi. I found the iOS support for apps without Wifi varies greatly. I liked the Facebook “Internet connection required” status bar. And I tried to implement something similar in my app when the connection is required.

(Update 03-07-14) Found a solution to a puzzled problem for iPhone 5s on T-mobile pre-paid plan (no data plan). There is no visual voice mail, which is fine. The annoying part is once there is a voice mail, the red dot on the phone icon won’t go away easily. I found how to fix it, basically I turned off cellular data, I turned it on, then off, the red dot will be gone. A small tip.

Categories
Software development Web

Spring MVC, Maven

Reading Time: 2 minutes

I’m back to Java world again, after about 2 years stint on Objective-C and iOS development. I’m not new to Java land, as I have done Java work between 2010 and 2011, for 2 years.

My personal learning experience:
JSF => Spring MVC (jspx is still very similar): I have done JSF, which is a component based Java web framework, we know Spring MVC is different: it’s based on REST, GET, POST, and mapping etc. Luckily I have done RESTful web services in my past work, and used those services from iOS side. Another new thing at client side is javascript, and jQuery, I recall I used Richfaces (extension of JSF) for the AJAX, they are not javascript though.

IBM web sphere/Rational application developer RAD, CVS => Spring STS, SVN, note both RAD/STS are based on Eclipse: for the application server, and development IDE, the transition is easier such they are very similar.

Ant (build.xml) => Maven (pom.xml): this is a big change, actually. Maven has some learning curve, also with the Nexus repository. My only past experience using Maven: use Netbeans to open the project (pom.xml file). I found the following two tutorials helpful.

Tutorial on Maven:
http://maven.apache.org/guides/getting-started/maven-in-five-minutes.html

http://maven.apache.org/guides/getting-started/

Spring MVC: using the Get Started Guide from the dashboard, or the link here.

Obviously, learn as much as possible from the work itself, from coworkers etc. The good thing is my current work place is one of the most collaborative places I’ve ever worked. This makes my life a bit easier 🙂

Repository, Nexus (Sonatype), JFrog Artifactory

JFrog intro: quick youtube video

Comparison between Nexus and JFrog

Sonatype Nexus

Josh Long A Bootiful Podcast : Hi, Spring fans! In this installment Josh Long (@starbuxman) talks about ten years on the Spring team, reactive support, and RSocket support in Spring Integration, his upcoming appearances at SpringOne and his upcoming YOW! workshop on Cloud Native Java, and then talks to JFrog’s Baruch Sadogursky (@jbaruch) about continuous delivery, DevOps, Java artifact management Artifactory, and more.

General questions about JFrog artifactory

Categories
iPhone app

Status of iOS app development II : app store

Reading Time: < 1 minuteThe golden era is over. Some readers/developers will argue it was over a while ago. I know I know. But this problem was confirmed as I read this article on BusinessInsider: it takes 107 swipes to get to the hottest app in app store.

Don’t get me wrong, Apple is still evolving and innovating on this space, with the new iPhone 5s, motion sensor (FitBit app), iBeacon (for retailers), the only thing is the momentum is definitely slowing. All these changes even Siri is not that impressive in my opinion. I do like Facetime, though, esp. I noticed an article talking about Facetime audio which essentially allow one to call other phone over Wifi fore free. Btw, I noticed the article over Zite.

For me personally, I have created 3 apps, and one (myNestEgg) of the 3 still have decent downloads. The problem there is two folds: 1) I did not spend enough time to work on some features to make the user happy; 2) Not many paying customers. I think I will still put some effort on it in the future, but I won’t put a lot hope there. Need to find something more interesting or scalable. It’s too hard to stand out from a million apps. Or even out of 50 and 100 apps in the category.

Competition
Another sign the iOS app developers has to expand their horizon, noticed the No. 1 iOS tutorial website (ebook producer) is doing the Android tutorial? Actually it’s not the first Android tutorial at RayWenderlich.com, I noticed this very first one here. So technically the new one is second series, but it actually helps confirming the popularity of Android platform.

Categories
iPhone app

Status of iOS app I : custom development

Reading Time: < 1 minuteIt has been almost 6 years since iOS SDK first came out (early 2008, source: wikipedia), and the industry is entering a consolidation stage. From my own experience, last year, iOS developers are widely sought after for enterprise app development, and among digital/marketing agencies. But it has a few caveats:

1) Many new developers, some with web development background, have gained experience on app store, and started working for consulting agencies. This trend drives down the hourly rate for iOS developers;

2) From development point of view, some customers realized it’s too costly to develop and maintain native app, and in some cases native apps are not needed. On the other hand, javascript/html5 apps gained some more momentum with the introduction of new frameworks such as AngularJS.

3) The consolidation of iOS/android/mobile custom development firms. Latest example: MartianCraft: its co-founder Jeff Larmache is one of the first iPhone author/developer (his blog here).

In the next series, I will talk about the app store. Got this idea from my own experience and this BI article.

Categories
Software development

Bug fixing vs. new development

Reading Time: 2 minutesIn my 13+ years of software development career, I have done both. So which one do I prefer? This is a bit like asking my daughter: who do you like more, mommy or daddy? (I will reveal my daughter’s answer at the end.)

I think both are interesting work, and both could be challenging. If you ask me pick one, I will probably pick the new development, as most developers like to work on new things: from new technologies to new features, new project/product. But from time to time, I have worked on some bug fixing work that is not only interesting, but also challenging and rewarding (mentally not financially, as I worked for companies all these years). I recall 6, 7 years ago, when I was working for CAD software company, we had two bugs to fix, the first one is actually not too bad, essentially it’s a tolerance problem. In other words, I just need to make sure when it checks whether the X, Y, Z axis is orthogonal to each other, I gave some tolerance. I did cross products of vectors, borrowing from similar experience I learned at work.

The second one, is a bit daunting, to say the least. Essentially we have about 2 weeks to fix a nasty problem in a CAD translator, and we don’t have any clue why the results is wrong. By working with 3rd party, and looking carefully at the problem, some teamwork, I was able to solve the mystery when I was working remotely at Shanghai. I recall I could not fall asleep that night, as I knew that’s a tough problem and will help the sales team greatly to sell into a top Europe car maker.

I had similar experience most recently, although it’s a totally different problem, and we as developers also work in much different world: with stackoverflow.com, and google search (blogs).

So back to my daughter’s answer to my silly question: most of times she will say mommy and daddy; sometimes she will say “don’t ask silly questions”.

PS: in some places bug fixing is also called as maintenance. Just like the car maintenance, software also needs regular check-up and fix 🙂

Categories
iPhone app IPO

Facebook Paper app, Twitter

Reading Time: 2 minutesTwo social media companies are in news today, Facebook released the new Paper app on iPhone, and Twitter announced the user growth is not as fast as the Wall Street liked. Maybe the 3rd, LinkedIn announced not so spectacular quarter after market today.

I tried Facebook Paper app. To be honest I have been Facebook user for about 5 years, not heavy user in terms of posting news feed or pictures. But I did use Facebook to communicate with a few friends, and did post some of my daughters’ pictures: fewer and fewer as time goes. The main reason for “fewer” is two folds: 1) Fear of privacy, I saw this “tag” feature there and never liked it; 2) Baby grew up. Btw, as I talked about the picture, by now most of us knew about the Facebook “yearbook” feature which automatically puts together some of the uploaded picture, and I saw Google+ was doing the same thing recently.

Back to Facebook Paper app, “slick” is the first word I would describe it. It tries explain things when I first installed it. I am a Zite user, and I only used Flipboard briefly. In terms of the news feature in Paper app, I think they are similar. And I heard one commentator on Bloomberg saying the “twitter of news” feature. But the commentator likes it too. It may have some impact on the competing news media curating services/apps.

About Twitter, personally I always liked Twitter better. I have 3 Twitter accounts (out of 250 million Twitter users). I used it because when I started using Twitter, I found it’s popular among geeks and iOS developers, the hash tag thing. I feel this quarter or near term is just a bump of the road, Twitter basically does a lot news service now. I recall refreshing twitter feed when important events fold. In terms of their business, I liked their integration with Amex (AmericanExpress card).

I will talk about LinkedIn sometime later.

(Update 02-07-2014) Used Facebook Paper couple days now, one annoying feature appears to be the fast flicking of the news feed for each news section. For now I am using google news and Zite for news and geek stuff.

Categories
Fun iPhone app Life Tips

Back up iPhone iPad photos

Reading Time: < 1 minuteI learned the lesson the hard way. Almost a year ago, I left my former employer, and I had to turn in my iPhone 4s. Being a computer professional, I knew the backup thing, so I backed up the photos to iTunes, both via iCloud and via iTunes to PC. But I forgot one more backup, to the iPhoto on my Mac. The backups on iCloud and iTunes are good, but I can not view the individual photos from there, and eventually I got a new iPhone 5s and got the backup iPhotos to my new iPhone this way. The first thing I did after I receiving my new iPhone is to restore the photos, and backup to iPhoto on my Mac.

I did one more thing, as I learned from my Nexus 4 experience, is turn on auto back up on google+. I paid $20 extra for the additional 10gb space on iCloud (for one year), when the time of renewal comes, I plan to cancel it, as now I will do backup via iPhoto, iTunes and google+.

Personally I felt the management of all these photos on iPhone/iPad is an interesting project. With Apple TV, I did see I play videos on iDevices more, and sometimes even slide show the photo. I did this quite a few times to my young daughter, when I found that’s more fun than the Netflix TV shows 🙂

Categories
Life Life Tips

Year 2013 in review

Reading Time: 2 minutesJob
I changed too much. Three W-2 in one year. I hope to stick with my current employer for a while.

Family
Our daughter grew up quickly. She brings us joy that words can not be easily described. And frustration sometimes, too. I think patience is very important being parent. Near the year end, we have some exciting news, as my writing (couple days ago Jan 14, 2014 we knew we will welcome a new baby girl in this July 🙂

iOS apps
I did update the myNestEgg app, after 2 years, from iOS 3.1.2 to iOS 7. And I released a new app “To Market ~ farmers market around St. Louis”, this is a free iOS app. I am experimenting some new features there.

Stocks
I was looking at my stock trades in last few years. I realized year 2012 is not good, while 2013 is ok (has not beat market in my Scottrade IRA brokerage account because again I tried to do too much). Looking back a bit more, in year 2010 I made some mistakes on Palm and other stocks, in 2012 it was the Coal stocks (ACI and ANR). It seems I tend to lose money on high volatile cheap stocks (the former high flyer etc, hope it goes back).

The more I think about it, as I was also reading “year 2012 in review“. Once again I am thinking if I can not beat the market, I should pick the index fund, or go with the fund manager I believe in (Steve Romick). His FPA Crescent has done very well for me in last 4 years.

(01-23-2014) I gave it more thought after seeing Logitech (LOGI) jumped more than 20% this morning on beat estimates on earning, and on the news its transition from PC mouse to iPad keyboard worked out. I bought the stock a year ago at about 7.50, hold it only a day. Similar can be said for Logmein (LOGM), which also more than doubled in a year (I owned more LOGM at one time). Anyway, have faith on bad news, though near term when looking back, at the time it’s not easy.

(02-06-14) This annual review is partially inspired by Kirby Turner (whitepeaksoftware.com), congrats to Kirby on his 10 years anniversary of his company. I met him once at an iOS conference in 2010 and was impressed by his iOS/Mac knowledge.

I also recall Kyle Richter talk about doing iOS consulting at RayWenderlich.com to be interesting.