All posts by stlplace

Replacing iAd with admob etc.

Recently I picked up my old iOS app as the framework it replied on Parse was going sunset (the date was Jan 28, 2017). I picked up Google firebase after reading a few posts including the one at Raywenderlich.com. In the process I also upgraded CocoaPods, and replacing the ads from iAd to admob. About 3 months passed by since the initial launch of admob, it seems the performance of admob is much better than the iAd. Note I only used the banner ads for now: this is similar to the iAd banner ads it replaces with. Per Matthijs Hollemans (the famous iOS dev, also raywenderlich.com tutorial writer), interstitial ads is more powerful when possible, but I have not successfully made it work yet.

Going forward, I am thinking learn about the Swift language, as David Smith and Marco Arment mentioned in recent Under the Radar podcast (State of Swift), this is increasingly urgent now, for iOS native app dev.

Back to ads, for me I have seen the steady declining of my blog website viewership, and the income from google ads. This admob thing gave me some hope. This also confirms the trend of people increasingly switching from desktop to mobile, esp. smart phone.

Many roads to Rome

I mentioned sometime ago that LaunchCode is a great way to get into programming / software development world for a grown-up whose background is not computer science or information science.

But that’s not the only way. More recently I noticed some friends made the transition from research position at Washington University to industry. Again there is more than one way. One friend took a lot of statistical courses from coursera, combined with the background in statistics, R and computer at Wash. U., that particular friend is a senior data scientist on healthcare. A couple more friends made transition earlier, from research technician to statistical analysts after getting a MS degree (all at Wash U.), then transition to industry.

So there is really no single approach to Rome. :-)

There is one thing in common though: one has to learn, either via nontraditional degree programs, such as online sources coursera, or launch code, or a degree program. So in other words there is no free lunch, or no pain no gain :-)

2016 year end review

This is the beginning of the 2017, and it’s also the customary review season for me. This weekend is a bit interesting as we got freezing rain on Friday (and I had to work from home on that day), also due to the fact about a month ago we had freezing rain on a Friday afternoon , the rush hour traffic just blew up. This time no one was taking the chance, from weatherman, to MODOT, to the city/county officials, to the business. Friday was pretty much closed, or work from home for many. It’s Monday (MLK day) today, looking back Friday is also the only bad weather day we had in this weekend: due to the low temperature the road is frozen in some cases, which made driving or walking a bit dangerous. But the situation was not as bad as in 16-Dec-2016. On that afternoon/evening, I heard two friends got into car accidents, and my neighbor who works for the same employer (normally 30 mins drive) as me, spent 5 hours on road.

Weather forecasting/treating road/on-call pager support
Sometime I felt this weather forecasting/MODOT treating the road is a bit like the on call pager duty I do. Both do not have a scientific or definite answer beforehand, but if one misses it, bad things can happen, system went down or people stuck in traffic. On the other hand, if one cried wolf and in the end the wolf did not come, people would second guess you.

I feel I became much more confident on my day job as this is also my 1st complete year (after 7 months I put in year 2015), mainly because I feel familiar with the things there, both technical and non-technical. At the same time, I feel the faster growth of both girls (now 6.5 and 2.5 years old respectively), and the time I spent with them is both precious and sometimes could be tense. I think ideally an indie like work/life may work out better (maybe a few years down the road).

I do understand this is not easy, and I saw some indies are working hard on this aspect, but just like most small business in the US are not making tons of money, most indie software devs are doing similar. So better have a bank account loaded before going solo :-)

Is there too much emphasis on coding?
Launch code, hour of code, girls who code, girls in tech, etc. Interestingly enough my wife who is not a techie, decided to take the LC101 course from LaunchCode at local community college. Note St. Louis is where the LaunchCode started. She is pretty into git these days. I think from the diversity point of view, getting girls/women into coding/tech world is very exciting and in the long run will benefit the industry and society.

We signed up too many classes for Serenity
Serenity has 5 extra curriculum activities (note we did not count the after-school Chess or computer club class here): they are Children’s choir, ballet, piano, skating, and drawing. This is a bit too much.

Last but not least, I took the review idea initially from theSunsFinancialDiary and Kirby Turner (whitepeak software)

Apple Watch 2 first impression

I decided to get Apple Watch last week and I have used it for a few days. The main reason for using Apple Watch was for consolidation. I have two iPhones (one work, one personal) and I have used two wearable devices recently: the Fitbit (from Charge to Charge HR), and the Martian Notifier. Both are good, but either has some weakness. The Fitbit Charge broke shortly after using for a year, they were nice to send me a refurb Charge HR as replacement. The issue with HR is there is a electro-magnet related pain induced by wearing that non-stop, also the battery lasts about 2 days from 5 days 6 months ago. So with Fitbit, I have used their app since Jan 2014, and their device June 2015, liked both their app and websites. But not their devices in terms of build quality and ergonomics.

Martian Notifier was good. Not much complaints. The reason I got it for work was due to the need I don’t want to miss work-related text messages (on-call pagers). It did its job. But I like to have a combined text message notifier and fitbit tracker. Apple Watch seemed fit this bill (no pun intended). I was fairly impressed by its build quality. And the apps for the most part. A few things I can recall:

1) During initial setup, I was a bit confused by the standard “unlock” message, finally I figure out I need to lock the iPhone, unlock it so that the apple watch will also be unlocked.

2) The Sleep tracking. It seems we are going back to the good old jawbone way “push a button before sleep”, “push another button after wakeup”. I did not realize this is not given thinking this is a $369+ device. I am already spoiled by Fitbit seamless sleep tracking. Since my Fitbit Charge is not totally broke, I think may use it combined with the “Sleep++” app.

3) The need of at least iPhone 6 for Apple Pay still applies here. Thought about pairing the watch with my own 5s and found the Apple Pay is not supported. I think this is one downside from Apple: they tend to support newer devices for more iPhone sales.

Source code control

Or version control. My wife is taking a class at launchcode and she just started learn git, one of the most popular source code control systems. Git has a steep learn curve, in my opinion, but it’s getting popular, widely used and I think that’s the reason they picked it. But I think that could also be a frustration point as I saw some BAs (business analyst) really hated git when it was introduced at my former employer (mercy). It was a switch from SVN to git. For people never worked in software world, version control is also sometimes under appreciated. Although most people can understand the basic concept. Because if we use .001, or .old, .new etc, things can easily get out of control even for one person. I had my first hand experience when I was a grad student doing some coding for FEA software. Sometimes the operating cost of source control is quite high, I recall when I was with ugs, in the earlier days of perforce deployment, it took hours to refresh local repository. And once I did the dumb thing, I kicked off this hours long process twice, had to call my teammate in cypress (right next to Anaheim, the happiest place on the earth, at least for kids), for help. In some places, mostly small shops, I saw people not using source code control. Note I used the word people, not developers, because I believe developers use source control. Two main benefits of source control: 1) back up so that the cat does not eat the code; 2) time machine: we can go back to the good version or release version, so that we have a benchmark in which certain feature used to work :-)

Macbook Pro Rentina late 2012 model battery cannot charge

I had this issue on my 3.5 year old macbook a few months ago. Googled and did the SMC reset as suggested in this article. Worked for a while but before Christmas the problem returned, and the SMC reset trick is no longer working. The symptom is it no longer charge after exhausting the battery. So I brought it to the local Apple store.

Last time (shortly before I bought this macbook), I had an issue with the work macbook air, and I brought it in Apple store. The fix was cheaper, about $230.xx something like that. At the time the symptom was I saw some spark at the MagSafe plug, and after that I could no longer charge. Maybe just a replacement of the MagSafe board at the time. This time they had to also replace the logic board. The cost is about $511. It took about a week (5 working days) to fix, I recall last time it was slightly faster. It could be due to the holiday (Christmas) season. I am still happy it got fixed though, as I did not back up all the data on the Macbook. Now I will be more careful.

A new (old gen) Macbook air probably costs starting $700 to $800 at this time, for comparison purpose.

Vagrant, Consul

The following is mostly notes for myself, when I followed the Consul get started guide (by Hashi corp).

How I created a Vagrant instance on mac (or be more precise, Vagrant Cluster (github))

I am interested in the Vault also. Since I am not familiar with Docker, I think this time around I would just do the Vault GSG on Vagrant or on Mac (last time around I was attempting to run before I can walk). I am interested in the security aspects of Vault.

An unrelated topic, also interesting to me, is the real time notification.

How to root T-mobile Samsung Galaxy S3 SGH-T999

Did my first root of Android phone. I had two Android phones before, but I never rooted it. This time I had a need for root to add the Chinese language to a Samsung Galaxy S3. The specific model is T-mobile SGH-T999 (shown in the Download or Recovery mode, but the model number on the settings says AT&T model number, which caused some issue for me later down the road).

The main reason for doing this is to add Chinese language support. It looks like by reading the article we can only get it work by rooting. I also looked at another article on the language support that suggested both MoreLocale2 and Language Enabler. Tried MoreLocale2 first but it seems needing root. So I started looked at the root tutorial. Because of the “wrong” model number, initially I thought this is an at&t device (model number at&t samsung galaxy s3 i9300, and here is an tutorial for that). Note the two tutorials are similar (t-mobile root tutorial here), the main difference is the at&t one is more verbose, and it has a link to the mod5 file for the at&t model. The odin program did not work for me initially because I was using the latter mod5 file (mismatch between hardware and mod5).

After that mistake the device was stuck in the Download mode (link to get into the Download mode), and could not reboot. I googled I have to download a Samsung software to get it restored. There were other hiccup too, one being the device cannot connect to my Windows 7 laptop (a bit old HP elite book), even after I install the driver. Had to reboot to make sure they connect. Back to topic, I was able to root after I switched to the mod5 file for t-mobile device. And it worked like a charm. After that I installed the rootCheck and SuperSu app from the Play store.

After the root, reboot I installed the Language Enabler app by Wanam from Google Play store (again refer to the language article above).

Final impression: the Samsung s3 is a relatively old device by today’s standard, but it works as a basic smartphone and adding the Chinese language to it, in my specific case, could potentially save an iPhone purchase (SE starts at about $400 in the states). It just takes some work to get it work, from enabling the developer mode/USB debugging on the device, to the odin software root.

Happy rooting :-)

Production, production, production

I first learned the “production environment” in 2010, when I worked as contractor for a major railway company. Before that I was mostly in CAD software development and consulting environment the word “production” did not come often. To be precise at Siemens PLM/UGS as developers, we did have access to various production releases and did validation for bug and bug fixes from time to time. Our code goes to release per year or per quarter. But production is not as significant as the maintenance releases, so this is the world of shrink wrap (engineering) software world.

Came to the world of business applications, or web. The first thing I learned is it’s not a good idea for newbies to touch production data. Or for that matter, not good idea for devs to touch that either. Very few people has production access, besides admins (database, web), the few people have access are usually product owner, business analysts, or product support people. And fast forward 5, 6 years, I became one of the latter. This is a privilege. Something I learned over past year:

1) Start from baby steps: e. g., if we want to update 1000 records: start from one or two records, do the update, validate and if everything looks good, do the mass update. This goes th way of divide/conquer too: so for example, if I need to delete 3 or 4 million records in one script (one run), I know it will be a long operation, and I don’t want the operation hang or fail in the middle. So what do I do? I divide the deleting operation into a few, each operation deletes half a million, much more manageable, and I will get the it complete much faster or get feedback much faster.

Continue reading

Contractor or employee ?

A common question for software developer is to be an employee (full time, perm) or be an contractor (W-2, or 1099). Strictly speaking the 1099 is more like a small business, and I have not done it personally. I heard some experienced people did the 1099; I will share if I have that exp. down the road.

I spent most of my career so far being an employee (8 years for Siemens PLM/UGS was the longest); I also spent some time being an contractor (total 3 places, about 28 months). Each option has pros and cons. A few things I learned from my own exp.

1) People have all kinds of expectations for contractors, usually the higher pay, the higher the expectation. For employee, they are a bit more patient.

2) Contract to hire. I found this is usually promised or at least suggested at the beginning, as personally I still prefer to be employee long time. But in two cases, I found they were not the case. All types things happen at client, but in one case looking back I felt the client may never had intention to convert. So this is something to keep in mind as for some people the longevity/conversion is important factor.

Continue reading