LED Strip Dimming

LED Strip Dimming

I’m using LED strip lights for a model I’m working on. The trouble is, they are too bright. You can buy dimmers for LED strips fairly cheaply, but they are overkill for my purposes – I’m only using a portion of the strip therefore the current is low and I want a small, non-bulky circuit that I can pack … Continue reading »

The Truth about Remote Working

There’s a lot of buzz about remote working, especially today. It’s the new big thing, allegedly. Thought influencers like Tim Ferriss and 37signals are making great efforts to “disrupt” the geographical bias of working with their books. However, I’ve found the reality of thought out there is very different. Don’t get me wrong – I’m … Continue reading »

Scaling Subdomains with Redis and ZeroMQ

You know those nice web apps that allow customised subdomains per customer, i.e. mycompany.webapp.com? Nice to have, sure, but there are challenges in keeping this feature performant in a scalable server farm and it’s non-trivial, as I discovered. To determine which customer organization a web request is for based on the subdomain you could make … Continue reading »

Localized String Templating in .NET

I’ve been building a mustache-style string template system for my Saas app. It will mainly be used for e-mail notifications sent to users via Amazon’s SES. The idea is simple; you have a text template where you want to substitute the tokens {{…}} with send-time specific data: {{Title}} Here’s a sample template for {{Person.Firstname}}! Generated … Continue reading »

.NET Scalable Server Push Notifications with SignalR and Redis

.NET Scalable Server Push Notifications with SignalR and Redis

Modern web applications sometimes need to notify a logged-in user of an event that occurs on the server. Doing so involves sending data to the browser when the event happens. This is not easily achieved with the standard request-response model used by the HTTP protocol. A notification to the browser needs what’s known as “server … Continue reading »