Angular 2 Password Strength Bar

I spent a little time updating AngularJS Directive to test the strength of a password to be a pure Angular 2 component and thought I’d share.

A working demo and all of the code can be found here: Angular 2 Password Strength Bar.


  • Upgraded to Typescript and used the OnChanges interface.
  • Incorporation of the bar is now component-based:

<password-strength-bar [passwordToCheck]="account.password"></password-strength-bar>

  • Removed direct DOM modification and replaced with Angular 2 dynamic in-line styles.
  • Removed JQuery dependence.


Old Nerds

Nobody is immune from aging.

In the tech industry, this can be a problem as described in Is Ageism In Tech An Under-The-Radar Diversity Issue?.  Programmer age distribution from the Stack Overflow Developer Survey 2016 Results clearly shows this:

2016-Stack Overflow Developer Survey 2016 Results

Worth noting:

  • 77.2% are younger than 35.
  • Twice as many are < 20 then are over 50.

Getting old may suck, but if problem-solving and building solutions are your passion being an old nerd (yes, I’m way over 35) really can look like this:
There’s a lot of reasonable advice in Being A Developer After 40, but I think this sums it up best:

As long as your heart tells you to keep on coding and building new things, you will be young, forever.

I sure hope so! 🙂

UPDATE 13-Oct-16: Too Old for IT

Melon Headband Android SDK

It appears that the Melon Headband Alpha Android SDK is no longer available from Melon. See Melon Headband — Android Beta.

Below is a copy of the SDK that I received in April 2015. I successfully built and ran the AndroidMelonBasicSample application on my Motorola phone. It actually communicated with the Melon headband!

Melon was purchased by DAQRI in February 2015. They still maintain a Melon product page, but the Google+ Melon Headband – Android Users community (see update below) has been all but silent for over 6 months.  That plus the website message “We’re back in the lab crafting new things” is a good indication that Melon development is no longer active.


Update (4/6/16): The community has shut down:


Deep Learning

deepLearningAI500I recently attended a Deep Learning (DL) meetup hosted by Nervana Systems. Deep learning is essentially a technique that allows machines to interpret sensory data. DL attempts to classify unstructured data (e.g. images or speech) by mimicking the way the brain does so with the use of artificial neural networks (ANN).

A more formal definition of deep learning is:

DL is a branch of machine learning based on a set of algorithms that attempt to model high-level abstractions in data by using multiple processing layers with complex structures,

I like the description from Watson Adds Deep Learning to Its Repertoire:

Deep learning involves training a computer to recognize often complex and abstract patterns by feeding large amounts of data through successive networks of artificial neurons, and refining the way those networks respond to the input.

This article also presents some of the DL challenges and the importance of its integration with other AI technologies.

From a programming perspective constructing, training, and testing DL systems starts with assembling ANN layers.

For example, categorization of images is typically done with Convolution Neural Networks (CNNs, see Introduction to Convolution Neural Networks). The general approach is shown here:

Construction of a similar network using the neon framework looks something like this:

Properly training an ANN involves processing very large quantities of data. Because of this, most frameworks (see below) utilize GPU hardware acceleration. Most use the NVIDIA CUDA Toolkit.

Each application of DL (e.g. image classification, speech recognition, video parsing, big data, etc.) have their own idiosyncrasies that are the subject of extensive research at many universities. And of course large companies are leveraging machine intelligence for commercial purposes (Siri, Cortana, self-driving cars).

Popular DL/ANN frameworks include:

Many good DL resources are available at: Deep Learning.

Here’s a good introduction: Deep Learning: An MIT Press book in preparation

Creating a Minimally Sized Docker Image

dockerThis is a follow up to the Publishing a Static AngularJS Application with Docker post.

Relative to the size of a standard Ubuntu Docker image I thought the 250MB CoreOS image was “lean”. Earlier this month I went to a Docker talk by Brian DeHamer and learned that there are much smaller Linux base images available on DockerHub. In particular, he mentioned Alpine which is only 5MB and includes a package manager.

Here are the instructions for building the same Apache server image from the previous post with Alpine.

The Dockerfile has significant changes:

Explanation of differences:

line 2: The base image is alpine:latest.

lines 4-5: Unlike the CoreOS image, the base Apline image does not include Apache. These lines use the apk package manager to install Apache2 and clean up after.

lines 6-7: Runs the exec form of the Dockerfile ENTRYPOINT command. This will run httpd in the background when the image is started.

line 8: The static web content is copied to a different directory.

Building and pushing the image to DockerHub is the same as before:

Because of the exec additions to the Dockerfile, the command line for starting the Docker image is simpler:

The resulting Docker image is only 10MB as compared to 290MB for the same content and functionality. Nice!

Empires of Medical Devices

Even the IoT (Internet of Things) world is concerned about interoperability: Do We Really Want Empires of Connected Things?

Here are a couple of key quotes:

…little hope for open standards or a universal language for how they do that. It’s time for regulatory guidance to make that happen.

…one analyst observed that the industry seems to be forming “walled gardens” rather than a coherent network that encourages openness and interoperability.

Sound familiar? This is the same medical device interoperability struggle that has been going on for over 25 years.  The IoT is still in its infancy and I sure hope they have better luck developing a “common carrier” than we did.

Melon Headband — Android Beta

About 2 years ago (May 2013) I backed this Kickstarter project:  Melon: A Headband and Mobile App to Measure Your Focus. I received the hardware (headband and accessories) about a month ago.

The Android application became available yesterday.

melon-training   melon-voltage
I’m having trouble focusing (according to the Melon anyway), but at least the device and software seem to be functioning. As expected, the software needs a lot of work. No use in bashing beta software though.

I just downloaded the alpha SDK. Now the real fun begins…

Company link: Melon

EEG Dating

eeg-datingI’ve been tracking EEG-related stories for many years. This perfect Valentine’s Day technology story: ‘EEG Dating’ matches people based on their brainwave data is certainly worth adding to the catalog. The end goal:

Many dating services ask countless questions. With EEG matching, there should be no need for the questions that most people shade the truth with.

I have no idea what this ‘Color Spectrum Analysis of EEG Data’ (from Biometric Dating) is, but it’s sure pretty:biometricdating

Granted, they are in the process of testing their theory by using data from long-term married couples. I sure hope they’re using happily married couples, otherwise the consequences could be disastrous!

Oh, and don’t forget to try: Computers can read your mind! (still amazing!).

Software Doesn’t Have An MD

Core O.S., core, Photo: Alex Washburn / WIREDI got a kick out of this Andreessen Horowitz piece: Digital Health/SOFTWARE DOESN’T HAVE AN MD.

I’m sure ‘the kid in the garage without a degree’ is no dummy, but this premise:

And so that large percentage of medicine that is effectively being practiced by non-MDs is going to expand.

is simply ludicrous.

There’s a big difference between creating health and wellness appliances and mobile applications and diagnosing and treating patients. The distinction is outlined in FDA clarifies the line between wellness and regulated medical devices.  If you claim your product acts like a doctor (treat or diagnose) or doesn’t fall into the “low risk” category, then your company will have to follow FDA regulatory controls.

Fast Healthcare Interoperability Resources (FHIR)

fhir-logoThe HL7 FHIR (pronounced “fire”) standard has been under development for a while. It became a Draft Standard for Trial Use (see DSTU Considerations) in Jan 2014. The recent announcement of the vendor collaboration Argonaut Project has fueled some “interoperability excitement”™.

The best technical overview I’ve read is this whitepaper: The HL7 Games Catching FHIR. In particular, it does a good job of comparing FHIR with HL7 v3. Summay:

HL7’s FHIR™ standard has learned from the mistakes of HL7 v3, and is surprisingly delightful.




Twitter Updates