Some thoughts on United Airlines and the industry in general

Over the years I have rode quite a few United Air on my trips from US to China. Amid the most recent incident on the UA (warning: the video may not be suitable for little kids), I am thinking of a few UA trips I took, such as this one on March 2007, which worked out ok. Another trip (Summer 2002), which is also my first UA flight, was also eventful. The UA857 (from SFO to PVG) was spotted some fire (presumably under the wing, per some passenger) during the take-off. The plane had to drop most of the fuel above the sea, and turn back to SFO. And we had to reboard another plan to PVG. Here are some of the pictures of the plane releasing the fuel. I recall one flight attendant specially mentioned how much weight was the fuel, and the unit price of fuel, I calculated it was about $350,000 worth of the fuel.




Fast forward, the industry had another meltdown during the financial crisis, and has since come back. The regional carriers, such as the one had the incident on Sunday night, was never the money maker. In fact, I recall in year 2009 (Colgan 3407) there was an fatal accident on a flight from NYC to Buffalo NY. And I learned from that accident that those regional carrier’s pilots are not really well paid or trained. This combined with my observations of over the years, when the airlines tries to charge the baggage fees, and on those regional flights, people would just check in the baggages at the gate (to save the money). Then at the destination, esp. when during winter time, you will see a long line of people picking up the luggages. It just feels America is a 3rd world country at that time.

Last but not the least, my friend Wang Jianshuo wrote on similar topic almost 10 years ago.

Replacing iAd with admob etc.

(update 02-18-2019) Came across this blog post by Jonathan Li, which has more comprehensive steps.

(Original 03-11-2017) 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 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 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

(Update 31-Jan-2019) I used the Apple watch for 2+ years now. Did have a replacement in Sept 2017 as the old watch just did not work (not charging, not responding). It’s a Nike version but the warranty is still honored by Apple. I brought it to local Apple store and was able to receive a replacement (not sure whether it’s new or refurbished) in a few days. I haven’t had major issues since then. Keep finger crossed and knock on the woods 🙂

(Original 08-Jan-2017) 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

(01-31-2019 Update) So I got 2 more years out of the MacBook after the fix. Actually last year (March 2018) I made another mistake, I leaked water (water bottle leak) to the MacBook when I put it in a sports duffel. So had to go to Apple store to get it fixed again (I think it cost 200 or something).

(31-Dec-2016 Original)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

(Update 07-08-2018) Noticed this nice write up of hashicorp by redmonk.

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

Pre-requisite: vagrant
How I created a Vagrant instance on mac (or be more precise, Vagrant Cluster (github)). Note I installed the Virtual Box, and created the vagrantfile (the file is from the github as shown above) under a separate folder. In the folder where I have the vagrantfile, just type “vagrant up”, that brings up the vagrant (linux virtual) servers. This is a more convenient way compared to launch them from the Virual Box GUI (btw, the default user name and password are vagrant / vagrant, refer to the official Vagrant doc, go to “Default User Settings”).

Shutdown: I found neither “vagrant shutdown” nor “vagrant destroy” works for me. The only way worked is the GUI of the VirtualBox (show running instance, close the window, it will prompt).

Here is another slightly more advanced tutorial for Vagrant set up, in the end it mentioned how to set up Ph.P., Postgres etc.

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 “Production, production, production”