Categories
iPhone app

Ads or no ads

Reading Time: 2 minutes

Should I put iAd to my iOS apps on iTunes App store? Should I put the google adsense back to my blog? The reason I am asking this question is: while personally I really don’t like the ads on Facebook, LinkedIn, or the iAds on some apps like Echofon, I understand this is a meaningful way for app developers to make some money. This applies to me as well. While I did not spend whole a lot time working on my apps (in aggregate), I cannot go on this app dev road without any meaningful downloads/income revenue forever. I can do it for a while. But not for too long. I believe Ray Wenderlich talked about the importance of Ad revenue at recent raywenderlich.com podcast. One of the episode of Paul Kemp’s the App Guy Podcast (onemob.com) , talked about something similar.

I guess, the trick is to balance the ads and app. We don’t want ads to totally destroy the good experience of an app, but at the same time, if the app revenue could help the developer keep going, go for it. We live in a commercial world, no money, no bread. No bread, how can app developers survive?

photo

Btw, I found the Apple developer documentation for iAd is insufficient or not up-to-date. For example, it uses requiredContentSizeIdentifiers in the tutorial, which is already deprecated in iOS 6. I found it won’t compile with iOS 7 SDK. I have seen in the past Apple does not always updates its developer documentation. Maybe they have not given high priority to this. I am sure if they pay attention, they can fix it.

    Categories
    advice and tips

    Self identity

    Reading Time: 2 minutes

    Serenity became 4 years old a few months ago, and we are actually expecting our second child this July. Being the 1st generation Chinese immigrants in mid-west, we have some unique challenges such as being the minority in the community. This is not the case in the pre-school/toddler community we sent Serenity to (Hope Montessori at Creve Coeur). But it’s not always the case. I recall, once when Yoyo was still very little, probably one year old, we went to a mall play ground, and a Caucasian girl (about 10 years old) came over to play with Yoyo, but her dad called her back. It seems to me a race kind thing was going on (from the expression). This is fine with me, my personality is I don’t care too much about discrimination other people say/express towards me. But nonetheless, I don’t want my daughter felt that way when she grows up.

    Economy condition
    Beside race, another common thing is different economy conditions among families. For us personally, we really work hard to send her to the private pre-school. It’s not a small change for us. I wishes my app store or google adsense revenue could make up some of those some day 🙂

    Fun aside, once I talked about private school option with a fellow parent (his daughter is my daughter’s good friend in the class). And one worry from her dad, is if we send our kids to private school, will they feel so removed to ordinary people’s lives. Note both of us have fairly humble up-brings. We don’t want our kids growing up having no empathy for people are less fortunate than us. This is a very good point I did not think much before the conversation. Interestingly enough, I heard discussions on similar topic lately with my coworker, one reason they decided moving to new school district is that new school district demographics matches their background better. Not too affluent like some other districts 🙂

    I will update more as I have more thoughts on this topic.

    Categories
    Software development

    Singleton pattern backfired on me

    Reading Time: 2 minutes

    This is a continuation of my earlier post of Tree, recursive function and my dumb mistake. As I said in my last post, my solution was to create hash maps (singleton) to store those for the session. The main motivation was to help out the performance. But I found out it backfired on me, a few days ago and today. In both cases, it has to do with the hash map I created, it was something like (object , a list of objects). In both cases the list of objects was actually dynamic, and I made an assumption it was static. In other words, I thought I only need to put the mapping to the map once, then I can use it happily ever after. I think there might be ways to get around it, i.e., I should update the map when that list does change. I will investigate and work on it more. (Update 05-30-14) So I found a solution to one scenario, I was able to update the map as needed. And I use put method (java hashmap) to do that update.

      Categories
      Fun

      St. Louis farmers market project

      Reading Time: < 1 minute

      The summer is coming. Since we will be free on Saturday mornings, I plan to take my daughter to all the farmers’ market in the area. We have been to Tower Grove before; Creve Coeur just opened the farmers market at the same time (Saturday morning) at the Parkway north middle school parking lot: 181 Coeur De Ville Drive (intersection of I-270 and Ladue Road). I heard Ellisville has a farmers market too, it’s Thursday 4 to 7:30 pm. Ferguson always has already a good one. Then there is Kirkwood.

      Btw, I will update the “To Market” app once I got all the facts correct for the markets in the area.

      (Update 05-24-2014) I submitted the 2014 update (v 1.2.4) to the app store a few days ago.

      (Update 05-26-2014) I found stltoday has a google map for all the farmers market in the area. Here is the link.

      (Update 06-03-2014) The update is available at the iTunes App store.

      photo

      Categories
      kids

      Kindermusik and Team Central Gymnastics

      Reading Time: < 1 minute

      This is the end of school year, it is also the busiest time for parents and kids. I just realized it this year. As this past week we had two activities for Serenity: besides the Spring musical, we had Spring Performance at Team Central Gymnastics. Yoyo has done this for a year now, I knew she might not be talented in this, and we sometimes skipped classes (especially in the cold winter), but we got to finish it with a strong note.

      spring_performance_team_centralIt’s also a bit emotional to say goodbye to our Kindermusik teacher and friends. We have done this for last 2 years, since Yoyo was 2.5 years old. I recall at one time when she was transitioning from toddler class to pre-school at Hope, the only class she likes to go is Kindermusik.

        Categories
        Fun

        Spring Musical

        Reading Time: < 1 minute

        Serenity’s school usually have this Spring Musical, in which each class will take turns and sing two songs. Each year they have a theme. Last year it was about Season. In the May of St. Louis, the weather is almost like summer. Some classes picked Summer, Spring, or Fall, Serenity’s class picked two Winter songs, which I think is quite unique. Here are the two song: Winter Wonderland and A Marshmallow World.

        Winter Wonderland

        A Marshmallow World

        This year’s theme is transportation. Next Wednesday evening, they will have the magic Spring Musical again. I know the songs their class will sing. “Life is a highway”. She has being sing that for a while.

        And “on the road again” by Wille Nelson

        Interestingly, both season (change) and road trip are metaphors of life path, or growing. They are all good picks. And last but not least, the song we all sung together last year is the Circle Game by Joni Michtell. Don’t know about this year’s pick.

        Also, this time I asked Serenity how the teachers picked the song. She said the teachers googled it 🙂

        Categories
        iPhone app Software development

        What types of developer are you?

        Reading Time: 3 minutes

        Or am I? 🙂 I think I’m a pragmatic programmer. Note this is also a book title I read, by pragmatic (note not agile), I think it’s about balance between software quality, effort and delivery date. It’s also about releasing software with known risks (including bugs) 🙁

        Pragmatic_Programmer

        I thought about this as I started practicing some new (new to me) programming techniques, e.g., pair programming, test driven development (TDD), and also seen developers of different personalities/experience adjusting to this, at the same time trying to deliver the project on schedule. I felt and considered myself to be lucky in this aspect, as I thought my career at UGS/Siemens PLM Software laid the foundation for me as developer, in other words, I was very lucky to work with some excellent developers (definitely top 20% according to Jeff Atwood, co-founder of stack overflow), and received their guidance and mentoring in my programming formative years. Note I was not doing Agile, TDD, pair programming at that time, at least not formally. But at the latter part of my stay there, I did quite a bit automated unit/regression tests there. Also, although there is no pair programming, whenever I feel stuck, I could go to a senior member of the team, and talk. Not to mention the long debug session. I wrote about them in my blog long time ago (in Chinese, such as this one and this one).

        Categories
        advice and tips kids

        Mall playground, park playground

        Reading Time: 3 minutes

        (Update 08-30-2014) We went to St. Louis Outlet Mall (the mills) again today. The playground is busier today as this is labor day long weekend. But still fun. We also explored the mall a bit more this time.

        photo

        (Update 07-20-2014) We went to St. Louis Mills today, as I felt it’s might be a better fit for my older daughter as she is 4 years and 4 months old. I vaguely recall they have a playground, last time we visited there (a year or two ago), Serenity was not quite there yet. Today it’s no question she is ready for that. The plus side of this playground is it’s both big, have a fence around it, and it’s indoor (good for summer and winter). The two new outlet malls in Chesterfield don’t have big playground like the one in Mills.

        (Update 05-10-2014) We went to Chesterfield mall today, specifically the playground, as our little guest has allergy, we try to play inside. Personally I prefer Chesterfield mall over West County mall for the playground, it has more room.

        (Original 05-04-2014) I have not been to the mall much recently, but the past Friday evening we went to mall to pick up something, and let our daughter playing in the playground for a while. Two things made me uncomfortable: one little boy, who is still in diapers, was a bit aggressive, he pushes my daughter and other kids, while his parent does not care much until I complains. Also, there is a “Asian child fund” charity, presumably they see me as asian, asked me for donation, which is fine by itself. I am not comfortable though, is when they showed me the list of money other people gave (don’t know if this is true or not). It’s just not the right way to ask for money, in my opinion.

        Yesterday evening (Saturday), after dinner we went to Beirne Park, and we enjoyed it as usual. Personally I think the atmosphere at park and at mall playgrounds are different. Obviously it’s not a fair comparison too, as the park playground is much bigger. But at least the parent can watch out the kids and teacher them if needed.

        Water outage
        This past Wednesday we had an water outage; this is the first time I experienced this in the condo/maybe in the US. Personally I am not too upset by this, because back in China we had those kinds of things more often when I grew up (power/water outage). I joked we need to go to hotel if we don’t have water. But everyone in the neighborhood was asking each other about what happened. Water was restored after we came back from dinning outside. Yesterday (Saturday) we received a letter from the condo management co. explaining about what happened: it was essentially a clerical/communication mistake, the water company thought we did not pay the water bill, and we have already paid actually. This made me to think: this water company monopoly thing does not help, say if we are not happy with the water company, we can not switch, because they are the only provider.

        Farmers market
        Creve Coeur opened its own farmers market. I saw an interesting comment written a while ago.

        My apps free for a week
        myNestEgg

        ToMarket

        collegeFund
        The last app (collegeFund) has a problem I know of, and I already submit the fix/update. It will take some time for App store to review and make it to the store.

        Categories
        iPhone app

        Three good iOS Mac focused podcast

        Reading Time: 2 minutes

        I have listened to Paul Kemp’s the App Guy Podcast (TAGP) recently, got to know this from @raywenderlich via twitter. Paul’s podcast is not purely technical, it’s more about entrepreneurship, and start own business. It’s an interview format. Paul usually asks indie developers (iOS, web, etc.) questions on how they get started, any pain points or difficulties to strike out on own, vs. getting steady paycheck from corp. Paul himself is an indie developer/podcast too. I think Paul is a good interviewer because he asks good questions, which reminds me of other good/great interviewer such as Charlie Rose (PBS/CBS), and Wealthtrack’s Consuelo Mack (formerly PBS). Again this is not only about blocks, MVC, Xcode, but more about going indie (independent developer).

        Another good podcast, which started recently, is raywenderlich’s. There we have Ray plus 4 developers (Tammy, Jake, Felipe, and Mic). It’s more technical, but it also covers going indie. For that matter, the 4 podcasters have been going indie for some time, and Ray himself was an independent developer before the tutorial site/book took off. So they have a lot to share. And we (as techies) got to listen all the nitty gritty of NSNotifications, design patterns as well, which is cool.

        Categories
        Software development

        Dumb code mistake continues

        Reading Time: < 1 minute

        So I was able to fix that performance problem I mentioned in my previous post. But I inadvertently introduced a new problem in my previous fix. And here is the gist of how I did:


        while (some condition) {
        if(some other condition) {
        ...
        return;
        }
        }

        Guess what, I was able to put it into infinite loop…I can explain more if needed 🙂