Websockets Over SSL: Stunnel, HAProxy, Node.js

Background I lead a team of talented developers and we’ve been working on a few Node.js projects. We already had one project in production (code named coltrane) and had arrived at the point of deploying a second project (code named maps). This second project makes use of websockets using the socket.io library. It was at this point that I unexpectedly found the need to put on my network architecture hat. Our current setup uses Nginx for SSL termination and load balancing. +-------------+ +----------------------------+ https://dev-coltrane...
read more

High Fives Should Hurt A Little

My mind was wandering while my daughter and I ran the second day of the fourth week of the Couch to 5K program. I was thinking about game mechanics, pain and running. Exercise, like much of my life, has to be played like a game or I won’t do it. I set small attainable goals and celebrate every win. I was thinking about various other games I play all throughout my day. I work best in 25 minute sprints using the pomodoro technique. I challenge myself to see what I can get done in 25 minutes and I am rewarded with a break at the end. The game is amplified when other people are playing, as is the...
read more

Code Small FTW: Friday

Yesterday’s installment, Putting it all together, can be found here. Epilogue We’ve been using the app on our iPhone every day for about a month now. Overall, I would give the app a grade of an A-. The network still gets in the way at times if there is no phone data service or the login times out. Perhaps a future version will have a local storage area that will sync transactions in the background as it is able to. But, it has not ever been enough of an inconvenience to deter us from using the app (and believe me, my wife won’t tolerate much inconvenience before she bails on an app). The...
read more

Code Small FTW: Thursday

Yesterday’s installment including the Pomodoro Break and The Server Side sections can be found here. Putting it all together I now had a front end iPhone app and back end services, both of which were tested in isolation. It was time to hook everything up. My next pomodoro was spent hooking up the settings tab of the app to the authenticate endpoint on the server side. In this case, I started with authentication since I knew that I would have to authenticate prior to being able to hit any of the other endpoints. I soon realized I would need some additional fields on the settings tab. I needed a...
read more

Code Small FTW: Wednesday

Yesterday’s installment including The Design and Testing the App can be found here. Pomodoro Break Getting the App side of the project into reasonable shape took 14 pomodoros (6 hours of work time). This seems like a good point to reflect a little. I started with the App side, because I know it is a weak point for me. Working in Pomodoros, I was highly productive the first day with the exception of the end of the day. That hour-and-a-half of unstructured time, working in frustration at being stuck with a view component not behaving the way I wanted it to, was the least productive time of the...
read more

Code Small FTW: Tuesday

Yesterday’s installment including the TL;DR, Background, The Project, Ground Rules and The Work sections, can be found here. The Design One thing you should know about me: I am a horrible UI designer. I wouldn’t even begin to talk about UX. My goal here was to make something that my wife would find easy to use. I knew that if it was easy for her to use, she would use it. And I knew I would too. It’s also the reason I decided to focus on the App side first. I knew it would take me longer than the server side. I can write server side APIs in my sleep! My first pomodoro was spent just...
read more

« Previous Entries Next Entries »