Monday, March 20, 2017

Cry out to Jesus

Cry out to Jesus when you are tired. Why cry out to Jesus? Because he loves you.

Cry out to him when you wake up gasping for breath and heart pounding. Because he loves me. 

Cry out when you feel like everything you do is a mistake.  Because he cares.

Cry out when you are sad and disappointed with others.   Because he wants your burden

Cry out when you are disappointed in yourself.   Because he wants my burdens. 

Cry out when you are alone and scared. Cry out when you are in pain. Because he listens.

This is not crying out into emptiness; this is shouting to myself and others to know and remember that Jesus is the answer and he does respond to our cries.  All that is needed is to hold him dearer than all else.

I lay my head down again tonight with final pleas that he help me to love him the way I should and to show my family how to love him more.

Scott




Monday, March 6, 2017

Angular 2 and ecosystem: dislikes?

Ok, so Angular 2 generates a good amount of attention with lots of great things touted about it.  That is fine but what matters to me is whether it is like the medications advertised on TV - "Cures you <insert condition here>" but in tiny print has "side effects of nausea, vomiting and sometimes death".  Angular is still pretty new to me - typically I work mostly on back-end Java development. I'm not doing new Angular coding right this second but for a couple months I have been doing automated builds for Angular 2 projects and just started to work on converting some Angular 2 projects from Gulp based to mainly just NPM with Webpack2 which is resulting in some coding along the way.

Ok, so let me start off by saying that I don't think Angular 2 will have 'death' as a side effect.  Maybe headaches though.

My list of issues - some not directly Angular issues but related in various ways through tooling or general ecosystem.
  • Documentation is poor.  I find myself asking questions like 'what about this or that' and official docs for what seems like most stuff in the NPN repository don't have the answers.  I waste too much time looking for answers at Stackoverflow or elsewhere for usage/API questions rather than working on the actual functionality. This isn't an Angular (2) specific issue but they didn't improve things.
  • Searching for Angular 2 documentation, etc results in many links to Angular 1 stuff or to items which a beginner can't easily identify as Angular 1 or 2.  Just "Angular" everywhere. I wish that those blogging or writing examples, documentation, etc would consistently include a version in the content or at least a date when something was written so there is a better chance of figuring it out.  I'll admit that I don't always think about this aspect either until I'm on the receiving end of new technology but when breaking changes are very common this is more important.
  • Seed projects drive me a bit crazy when they use beta software.  As of the date I am writing this (3/5/17), what appears to be a common seed project here is using webpack 2.1.0-beta.27. I have never worked where we would rely on beta software - especially well after non-beta software was available. I spent some time already looking into the non-beta webpack 2 and I see how the particular seed we used pushed the developers into using the beta initially.  I just wish that they would put time into converting to non-beta software even if it will take some effort.  It seems odd and unwise to expect further beta updates after a stable release so good luck with bug fixes or security issues. And just so no one thinks I am talking about just Webpack2, in this instance rxjs 5.0.0-beta.12 is also in this seed.
  • NPM is so slow I feel like my hair will be totally grey before most 'npm install' processes finish. I did see there is at least one attempt at an alternative (Yarn) but I had problems with an app with just a moderate number of dependencies and it was still pretty slow for me. By version # terms, Yarn is still really young and I hope it makes major improvements. 
  • NPM version? I've yet to see any nice documentation stating when/where particular NPM versions should be used. I've read some information listing some of the differences but nothing really saying 'hey, version 4 is where you should be now because..' or making it clear what the impact is of using various versions in different contexts.  Is it s difference of works versus not or simply efficiency differences? Does it depend on other considerations?
  • Many 3rd party libraries are not using semantic versioning yet.  If people are creating apps/libs and passing them on to you for further work before deploying to production many times the build is dysfunctional by time I even try the build process. To many packages making breaking changes with no way of knowing by the version number. An example issue with ng2-bootstrap can be viewed here.  I think the main contributor to the issue is the extensive/default use of "^' and '~' to modify the process of selecting compatible dependency versions.  The default should be to NOT use them(^ or ~) in my opinion. It is a huge time waster trying to get a build working which was just handed to you that won't build because 'some' component got upgraded to an incompatible version which must be tracked down. [edit 2017/04/20] You have probably heard of Perl being referred to as a "write once" language - I sometimes think about Angular as a "build once" technology since each and every build of the same code has the potential to fail.
  • Private NPM registry?  I found the 'blessed way' of handling this to be underwhelming. If you search for other free/open source options you will likely end up at Sinopia which is a dead project last I checked this issue. Note that nothing at the Sinopia link indicates it isn't maintained.  I would recommend Verdaccio at this moment. I find it crazy that you must expend a good amount of time just to figure out a reasonable open source private registry solution.  There are several non-open source solutions available.
  • I've run into a number of odd and possibly random issues during 'npm install'. At this point, I'm trying to keep up with npm updates hoping to reduce the number of days where repeatable builds seem impossible.  Tools or infrastructure - who knows?
  • Module systems - CommonJS vs AMD vs ES6 vs .... And people complain about the complexity of languages such as C++..  
  • Typescript and integrating 3rd party JS based modules - I'm still working through a situation where a 3rd party module has only a single anonymous function exported and there is no definition file. This is another productivity killer. This may be more of an experience issue (lack of on my part related to Typescript) than a true technical issue but googling for "best solutions" is slow in this case.
  • Throw in some technology such as an API generator targeting Angular 2 and other technology such as an API proxy and you get some unwanted complexity.  What was initially a quick (and good) way to stand up simple applications turns into something much higher in complexity.  How how I can't say. 
  • Arg.  Renames of packages and/or packages of similar names make thinks difficult to sort out when looking for useful components and/or tying to use them.  Too much change and little maturity.
[Edit 2017/04/20 - feeling the need to add some positives to my analysis] 
+ It sounds like Angular 4 is a step toward better versioning (semantically speaking). I don't know that it is a total fix in itself since there are still many libraries/frameworks that need to fall in line regarding versioning.  
+ The dependency injection in Angular has been somewhat useful.  
+ The overall "feeling" of development isn't too bad - given enough time and maturity it may be "very good or great".

So should you dump your applications / user interfaces that are rooted in JEE type technology? I don't think so. At least not yet. It is probably worth keeping an eye on technology such as this.  I would certainly evaluate the risk for the type of use you expect along with the productivity differences between this and whatever you were doing.

Thanks for reading!
May Jesus bless your day!

Scott

Monday, February 20, 2017

Attitude adjustment - A truck and a Muscovy duck


Ever had a day where you wake up on the wrong side of the bed and just feel cranky.  That was me earlier this week (or maybe more often and earlier than that according to my family). I'm being kind to myself with that description, I was way more than cranky.  There are so many people around Tampa who drive like complete jerks and by time I got about 4 miles from work I recognized my attitude was so wrong I couldn't even stand myself.  I was driving our F250 truck this day because I thought it might rain and I try to avoid to motorcycle when I'm just feeling off.  I took a mental pause and spoke a simple prayer to Jesus - "please help me improve my attitude".  I had no idea how Jesus might answer that prayer but I really didn't expect what happened next.

I had just gotten through a 4-way stop near some apartments and a golf course where the road has some wonderful trees that hang over the road.  It can pretty at times - probably more so once some of the construction near the corner is complete.  At this moment though, I suddenly saw a large duck flying straight down between the trees like it was heading for a landing. I immediately realized that I was directly in its path and it realized the same. I had no time to react and I think it tried to go into a climb but it was too little too late.  There was a very large bang and the windshield turned into a mess.  I was in shock but alert enough to keep myself on the road without any panic reaction.

"Ok Jesus, you have my attention.  Yes, my attitude is still bad and I know it.  Thanks for showing me you are listening and thanks for your forgiveness."

I didn't stop the truck right away - I thought about it but I didn't figure there was much use and there wasn't really a good place to pull over.  I was pretty sure the duck didn't make it - even now, although I have yet to see it laying along the road. It wasn't super easy but I was able to make it the last 3 or so miles to work where I was able to take a breather.


Anyways here is the formula.

1 Muscovy duck 
HTML BBCode HTML/BBCode: Muscovy drake Graniteville SC USA

1 truck 
 = 



If you look carefully above you will see feathers stuck in the windshield near the top...




Plus all the fun and jokes that are coming out of it.
  1. The truck, originally nicknamed 'Herbie Jr' is now 'The Duckinator'.
  2. My wife really wants me to admit that I screamed like a girl when it happened.  I didn't since I saw it coming - but if I hadn't.. well.. I won't speculate.
  3. The day after this I ended up working from home since I couldn't drive the truck and there was a 60% chance of rain and the days after that I was driving the motorcycle.  On the way to work I kept looking for a duck with an odd waddle to no avail but there were plenty of them along the road and I could visualize one big one strutting along telling his friends "Yeah, I'm bad - I might be in pain but that big white thing didn't come back for more.. Oh yeah."
  4. Some duck duck goose jokes..
  5. Some comments on doing a better job 'ducking'
  6. Comments on how dinner got away from me..
  7. More comments on 'waddle home'.
  8. etc etc.. a family of real comedians we are..
  9. [edit 2017/3/3] How could I forget 'No harm, no fowl'

I have a lot to be thankful for.  I didn't get hit by this duck while riding my motorcycle.  That would have been more dangerous, probably very painful and even more embarrassing.  I would NEVER hear the end of it if I came home with feathers stuck in my riding gear or helmet.  It was a duck and not a large goose which might have gotten through the window to a higher degree.  It wasn't a person and no people were injured.  And of course, I am thankful for the opportunity to fix my attitude a bit. As much as I don't want to admit it, I almost always could use a little bit of an attitude adjustment but a future prayer may have to stress the 'little' aspect. 

Hope God blesses your day!
Scott