Sunday, March 12, 2017

The Most Overused Term in Software Development

The POC ... Proof of Concept.

You're boss/architect/design authority comes to you on Tuesday after that three day weekend and says "I was reading up on Spring Boot this weekend.  Looks neat.  Should solve some problems for us.  Lets do a POC."

You roll your eyes ... internally for fear of losing your job.

The reality is that Spring Boot and most other Open Source Software you can name is proven to work!  The concept is that you want to use Spring Boot and you need to provide proof that it works is just silly.  Really, what your boss is saying is that they want you to learn about that software and get to work implementing it.

Now, does the POC exist?  Yes, of course it does.  Let's say that same boss comes up to you and proposes combining two or three pieces of software that no one has EVER done before or has some new pattern of software to create, then yes, that's a proof of concept.

So next time, gently correct this misuse of POC to training.

Saturday, December 10, 2016

Intellij and React Native Projects

If you want to add your existing React Native project to your Intellij project as a module do the following:

  1. File > New > Module
  2. Click Static Web > Static Web
  3. In the 'Content Root' box, enter the location of the existing React Native directory.
  4. Click Finish
The reason you have to do it this way is that the Intellij Import Module from Existing Sources wants to find a source / setup for the module.  The problem is that you've got three different code streams in your React Native project:  1) Java for Android, 2) iOS XCode files and 3) React JavaScript files.  My experience has been that the Intellij scanner picks Java over JavaScript and ignores the rest of the directories.

Back to Comcast, No more AT&T

Well, I'm back to Comcast.  Can't beat 75 Mbps for $49 a month for a year.  AT&T just can't keep up with speed and prices.  Since we've cut the cord and stream just about everything, the extra Mbps are really great around here.

I did run into a bandwidth issue with my older Netgear N600 router.  The router was not giving us a good chance to get a hold of the 75 Mbps over wireless.  The router was working fine over an Ethernet connection.  On wireless though, you would get anywhere from 15 - 20 Mbps on any wireless device.  I concluded that only an upgrade in the router would fix the issue.  I bought a Netgear Nighthawk AC1900.  Wow, what a difference!  I suspect the underlying issue was that with 2 iPhones, 2 iPads, 3 laptops, 2 Kindles, 2 Rokus and a PS3 we hit the limits of the N600.

Finally,  I just realized that for the first time in 16 years I won't be paying anything to a traditional landline company (Southwestern Bell, AT&T).  At one point we had, Uverse and AT&T wireless.  I calculated that we were paying them about $340 a month in services and equipment.  You would think someone at AT&T would notice that and come-a-knockin', but I won't be waiting by the phone for a call from them.

Anyway, happy for a year.  Let's see what kind of deal I can get next year!  I had my eye on a three year deal for $50 with 150 Mbps!

Saturday, October 1, 2016

I've gone Mac

I've had some form of a PC since 1986.  I used to think Mac was terrible.  It was a special animal that didn't play well with others.

Then I got one.

In early August, I was wanting to build an iOS app.  My wife had come up with an idea for one and I knew that a native app was needed for full integration of the requirements.  I first built a web app to get it going.  I had picked out a MacBook Pro with 256 GB HD and 8 GB of RAM.  I have to say that a Mac is the way to got these days.


  1. It is fast.  With the SSD drive, Intel Core i5 processor and 8 GB of RAM, you won't be without speed.  Compared to my platter drive, Intel Core i7 and 8 GB of RAM on my HP, I never feel a slow down while it is trying to figure out whats going on.  
  2. The screen is killer.  It's so sharp it's hard to believe that I could have been doing with out it.  My HP Envy 17 is terrible.  To some degree I think that's because I wound up turning the brightness down pretty far to save battery.  In general though the Retina display is just that sharp.
  3. The battery keeps going and going.  With the HP Envy I would fret about being on the battery as I watched it go down during my commute.  I would definitely have to charge it overnight to use it the next day.  Now, I can use it for two days (approximately 8 hours of usage) before I need to plug it in to charge.
  4. Integration.  I have an iPhone 6s Plus and the great thing is that my Mac works with my iPhone like never before.  If I get a phone call my Mac can pick it up, assuming were both on the same WIFI connection.  I can FaceTime and send iMessages through my Mac as well.
  5. Weight.  I was commuting with the HP Envy 17 plus my work laptop.  I think the total weight was about 12 pounds in my back pack. The Mac is so light that I barely know its there.
  1. It is a bit smaller.  I do miss the screen real estate of the Envy 17.  This MacBook is the 13" model.  I didn't want the 15" model due to cost and reduced battery performance.  I also loved the additional numeric keypad on the HP Envy.
  2. It's one of those things of when you need it, you need it.  There is no optical drive on the Mac.  I had to burn a CD (gasp!) for my wife's car and I had to use her computer to do it.  A few times as well, I've thought about plugging into my Ethernet port on my router.  I would need an additional adapter to do that.
All in all, great machine.  I use my computer even more often now!

Saturday, February 6, 2016

Shaving the cord

All in, we were paying $175 for AT&T Uverse TV, Internet and Phone.

In terms of the cost, we didn't have a trouble with the bill.  We had trouble with the value.  As you scroll through the list of channels you realize that you watch about 25% of them and wonder if anyone watches some of the more extraneous ones.  Phone service was $45 a month for unlimited calls across the country.  While I believe in the 'home phone' I don't think it should cost that much.  Internet is in the 18 Mbps range for about $30 a month under the bundle.

We could afford it.  Keep going on until the bundle deal runs out.  Why though?

Courtney and I decided to trial run a 'cord shaving'.  Here is what we did:
  1. We disconnected the Uverse DVR from the TVs.
  2. We bought a Mohu Sky 60 and I installed it in the attic.
  3. We bought a Roku Stick for one TV.
  4. We planned on using Amazon Prime, Hulu, Sling and CBS All Access for streaming services.
  5. We already had a Chromecast.
At least in the trial run, we wanted to keep recording our shows on the Uverse DVR if we didn't like how it was working out. The antenna supplies digital over the air (OTA) signal to all TVs in the house.  The quality is fantastic and it's FREE TV.  The theory on the antenna was that if it didn't work out, we could still use the antenna in some capacity.  The Roku Stick is usable anywhere in the house and we figured what it provided, again, if we didn't like how it all works, we could still use it.  The Chromecast helped with the TV in our master bedroom.  We used the Chromecast to send to the TV the services we wanted to watch using our phones.

If the trial worked out, we planned on adding another Roku and switching phone to Ooma.  The additional Roku was to give a unified experience across TVs in the house.  Chromecast depends on applications being coded to be able to cast to the nearby dongle.  The problem I found is that the casting can be spotty with connection issues or quality.  

The trial lasted about a week.  We were sold.  There really wasn't anything that we were missing from Uverse TV that we couldn't get over the internet. We could watch football for free on a high quality signal. The shows that we really watched were there on the streaming services.


Category Item Up front cost Monthly cost
Air Antenna Mohu Sky 60 $160 None
TV device Roku Stick $49 None
TV device Roku 2 $59 None
Service Amazon Prime None $8.25 ($99 a year)
Service Hulu None $7.99
Service SlingTV None $19.99
Service CBS All Access None $5.99
Device Ooma Telo $150 None
Service Ooma None $5.62
Total $418 $47.84

With the Uverse Internet cost of $59 a month.  I'm at $106.84 for Internet, Home Phone and TV.  A savings of about $70 a month.

  • Buy the television programming that you watch
  • Own the equipment that you use
  • Freedom to choose the equipment that you use
  • Better quality with OTA
  • If the internet is spotty, your TV watching may be interrupted
  • Up front costs are high
  • You cannot pause live TV
In short, this shave project was a success.  Now, where's that remote?

Sunday, November 1, 2015

Back to iOS: my year long review of Android.

In July 2014, I had enough of iOS.  See my post from then: I've gone Android

Now, in November of 2015, I'm back with iOS and an iPhone 6 s Plus.  Here are my observations of having an Android phone.

  1. Security.  I've noticed that there are lot more discussions on viruses and malware in the Android ecosystem than you've ever heard about from Apple.  I found it awful that my text message client had to guard against 'Stagefright'.
  2. Fragmentation.  It's awful.  It's very hard to get a good experience with Android when manufacturers like Samsung roll their own applications. Take the Clock application; something so basic and simple, yet Samsung required themselves to rewrite it for TouchWiz.  What does this really mean?  Slower time to market with major updates.
  3. Application Updates. Believe it or not constant application updates are annoying.  Every night my phone would be updating to the latest version of some application.  I don't know why this is completely necessary.  However, I have to believe that the changes are necessary to keep the applications working with the changing environment including point #1.
  4. Major Updates.  Google released Android Lollipop to the manufacturers on 11/3/2014.  It wasn't until April 2015 when I got the image pushed from AT&T.  As a software developer, I know that this is good turnaround time assuming that the first time Samsung saw the code was on 11/3/2014.  Reality might be that Samsung saw developer previews as early as June 2014.  As a consumer, however, this is dog slow.  Why did it take so long?  First see point #3.  Second, don't forget that in the Android ecosystem, the carrier pushes your update to you.  I know that AT&T also included some of their applications in that image.  Finally, just before I got Android 5.0, AT&T upgraded me to Android 4.4.4.  Why was that necessary?
  5. Bloatware. I don't need another account to login to, Samsung account.  I don't need another place to store information.  That's what Googles services are for.  I don't need any of the AT&T applications that were automatically included in the version of Android I had.
  6. Customization.  How could that be such a bad thing?  Android is way better at it than iOS, but I feel as if ability to customize comes at the cost of battery life.  Example, it always seemed to me that an application that you replaced was still running in the background anyway. I used Nova Launcher instead of TouchWiz for most of my 16 month experience.  At one point, the widgets were not updating while on Nova and I finally figured out that when applications were updated, the launcher would some how restart and defer to TouchWiz to update the content in the widgets.  I fixed this by clearing out the data in application manager for TouchWiz.  It was a hard to find fix.  Finally, Android gives you the option to choose default applications for a lot of what you do.  Like Windows, this allows you to use Google Chrome over the built in Internet browser from Samsung.  The problem is that it's not a very good defaulting system.  Repetitively, I was asked what my default for this action should be.  Should Android open the link in Adobe Reader, Google Drive Reader, or Google Chrome?  You could touch Always and that should use that application permanently, but it never seemed to work seamlessly.
  7. Other Phones. A few months ago, I was looking at what would be my next Android phone.  I was dead set on a Moto X Pure Edition due to a lot of the issues mentioned above.  Supposedly, the camera was decent even though Motorola has had a poor history with their cameras.  A lot of the reviews mentioned that this is the phone to have if you want a 'pure' Android experience and a bit more than a Nexus phone.  This point proves that there is just too many choices out there.  This is where Google needs to take back Android and make it "this is the OS, you can't make it your own manufacturers!"  That way, the choice comes down to hardware.  Screen size and quality, faster processors, better cameras, faster fingerprint readers, etc. now become the choices in your Android phones.
  8. Battery. In the waning days of my experience with Android,  I had gone back to TouchWiz and turned off some of the other customizations I had because the battery would drain to 20% before 5 PM after a full charge the previous night.  One day it was drained to 20% by 12 PM.  I can't say why this was.  When I looked at the built in battery monitor, it basically said the major culprit was Android System and Android UI.  In previous reviews, it had been ESPN and Bluetooth.  How could Bluetooth consume 15-20% of your battery when it was only connected to another Bluetooth devices for less than 30 minutes earlier in the day?  I suspect some update caused Bluetooth to behave this way.  I also suspect another update fixed this.  I can't say which one though.  ESPN I uninstalled completely due to battery drain.  I didn't see a fix that I could do.  With Bluetooth, I turned it off for awhile, deleted any connections I had, etc.  This was a temporary fix.  The best battery life I got was when I reset my phone completely.  As you might expect once you start adding in all of the applications you like/need then you start to experience an abnormal battery drain.
In short, it wasn't a rosy experience.  Do I have anything good to say about Android?  Yes, it was different than what I had before. Integration with Google services is good, but I don' t really think it is 100 times better than what you get from iOS applications for Googles services.  Difference is good for awhile until that difference has issues.  Then it's just annoying and you go back to what works. 

Saturday, April 11, 2015

Linux, Windows 8.1 and Virtualization

I'm a Linux fan.  I like it's simplicity.  I like getting back to the command line.  However, I've just dumped Ubuntu and Linux Mint for Windows 8.1.

In early 2014, I bought a new HP Envy 17.  It's a beast of a computer, Core i7, 8 GB RAM, 1 TB hard drive, and so on.  Good developers machine, I'd say.  I knew I could order it with Windows 7 for an extra cost, but I also knew that I had a full copy of Windows 7 Ultimate (Steve Ballmer Special Edition no less!) that I could use.  So I decided I would chuck Windows 8 and dual-boot Windows 7 and Ubuntu 13.10.

For the most part, I don't like Windows 8.  Clearly, Microsoft build this interface to serve tablets and laptops.  I'm not a fan of a touch screen laptop so I'd never have any real use of the Windows 8 "Metro" interface.  Further, I believe Windows 7 is still in good shape from what it does and how it performs.

Initially, with the dual-boot setup, I was content with the configuration.  At this point I knew nothing of running a virtual machine with VirutalBox.  I had a bit of a bug with how I had configured the system.  Apparently, I turned off UEFI and SecureBoot when all I should have done was turn off SecureBoot.  I think I thought they worked hand in hand and needed to be off together or that Linux and Windows 7 were compatible with UEFI.  Either way, the gremlin in the system was that the clock tended to be reset to GMT.  I couldn't figure out whether it was Ubuntu or Windows 7 causing that issue, but it was annoying none the less.

In the fall, I was tempted to try Linux Mint instead of Ubuntu.  I know that Linux Mint is based on Ubuntu, but the interface is what is drastically different.  Another mistake made...I wound up deleting my Windows 7 partition while installing Linux Mint.  That was awful.  Fortunately, I discovered that Linux Mint came with Oracle's VirtualBox pre-installed.  I decided to check it out and see if I should make it work with Windows 7.  It was grand.  I could get everything I wanted out of the VM without having to reboot to get into Windows 7.  When I switched to Mint I had an issue with slow wireless connectivity.  It was almost unusable sadly.  After some Googling I found that Mint was a bit behind on the Linux Kernel and an upgrade would fix the slowness.  It was a good fix.

Around December last year, I started having this issue with the wireless losing the ability to deliver Internet content, but the connection was still strong and connected.  I Googled a lot and found that a lot of folks were having issues with Linux and the Realtek wireless card.  I found an updated driver that I installed.  It helped a bit, but not a conclusive fix.  I upgraded Kernels again, no help.  It was very frustrating.  I would say for a given session with the computer the browser would drop pages 5 -10 times.  Eventually they would come back, but it was enough to slow and prevent a good flow of doing something.

About three weeks ago,  I had enough.  I decided that I would give Ubuntu 14.10 a shot and see if that fixed the issue.  My first task was to split my home directory to a separate partition.  This is a really good idea if you want to switch distributions often or even clean install the next iteration of your favorite distribution.  Once that was done, installation of Ubuntu was a breeze including the customization of the partitions to use.  Once I had everything setup,  I noticed that the same problem started happening again.  This time around, it was less often, but annoying still.

Then, I was done.  I realized through this that I had given up a bit too to use Linux.  First, this laptop came with Beats Audio.  In this case, it's three distinct speakers that can be used to improve sound.  While HP has software to help manage the sound and power consumption of the speakers, Ubuntu nor Mint have anything for Linux.  In fairness, I found some instructions on setting the speaker pins to the correct values to utilize the speakers, but since there was no power management, the speakers were on 100% of the time and using more power on battery.

Just three days ago,  I backed up the home drive from Ubuntu and factory reset the computer.  With Windows 8.1 booting to the traditional Windows interface, consistency with the wireless card,  Beats Audio in place and the positive boot up speed,  I'm happy again.  I can still run my VMs now that I know more about it.  In fact, I booted up my Windows 7 VM to get some files off of there.

Now, it's off to Windows 10.  I've just loaded it onto VirtualBox....