Chris Miller

Software Engineer / Builder. I am a Javascript Enthusiast who loves to code and currently resides in Sunny San Diego.

Read this first

Endless / Infinite Pagination In Dropdown

Recently I have been re-implementing the Notification Menu at OneHealth in Backbone + Marionette and wanted to incorporate endless pagination, real-time dynamic updates, and just an overall clean / simple user experience.

When building the endless pagination I had noticed when you scroll to the end of the list the body starts to scroll. Well, That’s annoying. Okay, so lets throw in a e.preventDefault() on the list scroll binding. Hmm, that doesn’t prevent the current list from scrolling. Now What?

Lets start with some simple View Setup

//Module Variables Used

this.eol (Was The End Of List Hit)

this.lastFire (Height of Last Pagination Fire)

this.collection (Backbone Collection)


  ...

 ui : {
  container : '.js-notification-list-container',
  list : '.js-notification-list',
  loadingBar : '.js-loading-bar',
  endOfList : '.js-endOfList'
 },

 /**
  * Method For Paginating
...

Continue reading →


tail -f | grep -v “foo” | grep -v “bar” | grep -v “baz”

That looks pretty standard, right? Most of the time CLI one liners are good. Sometimes they are slow or we are just down right doing something wrong.

Our syslog at work moves so fast on our Development Vagrant Instances and you need more granularity when tailing them.

Traditionally, I would start by tailing syslog tail -f /var/log/syslog

Now start omitting specific logs lines (–invert-match | -v) that match the term.

tail -f /var/log/syslog | grep -v "access" | grep -v "apache"

Once you are piping through multiple grep invert matches tail chokes up a bit and isn’t as “real time” as you need it to be or at least as I want it to be.

Using a single grep and simple (or | ) statements when invert matching the logs seems to speed it up quite a bit.

tail -f /var/log/syslog | grep -v "access\|apache\|access\|..." works like a charm. It doesn’t have to keep piping the results...

Continue reading →


Websockets BigIP F5 Loadbalancer Config

Lately I’ve been playing a lot with the WebSocket protocol and ran into an interesting issue when Deploying the Socket Server to production behind a BigIP F5 Load Balancer. I had noticed that after the WebSocket Auth handshake the Upgrade requests started to bounce back and forth between the production nodes. How come the WebSocket connection does “stick” to a specific node. After researching a bit I found that there is a persistence profile that needed to be configured.

BigIP F5 Types of persistence

Destination address affinity persistence
Also known as sticky persistence, destination address affinity persistence supports TCP and UDP protocols, and directs session requests to the same server based solely on the destination IP address of a packet.

Source address affinity persistence
Also known as simple persistence, source address affinity persistence supports TCP and UDP protocols...

Continue reading →


Finally, It’s Happening…

I’ve been talking about the concept of a blog for quite some time but Life happens and plus writing Code trumps writing Paragraphs. ;)

I started building a Blog out with Jekyll a while ago, “Transform your plain text into static websites and blogs.” I liked the concept, a static Github hosted blog where you write markdown. Could it get any easier? Well, not having to worry about a Theme, Comments, and all the other frills would be nice. Then I came across Svbtle, its FREE and open and they host it for you, WINNING. So this is my first blog with SVBTLE. The interface is pretty nice and it’s pretty simple.

Now a little bit about me… Hi, I’m Chris. I am a Software engineer for OneHealth on the platform team.

OneHealth is the first comprehensive online community specifically designed to help people change their behavior and lead healthier lives. Through Social Solutioning, a term...

Continue reading →