Using IIS as a reverse proxy is not ideal.  I mean, it’s not bad, it does work, it’s just that in my opinion it’s overly complex to configure, maintain and debug when compared to apache/nginx/varnish. We don’t live in an ideal universe, IIS reverse proxies exist and plus, it’s your right to disagree, not the first time you’d be wrong about something. Anyway, when working on legacy products, from time to time you’ll need to introduce new components to existing stacks. There’s no possible way you…Continue Reading “Debugging IIS reverse proxies”

This mini-series focuses on ad-hoc quick-and-dirty product development, building a mini-product from scratch. In my previous posts I’ve summarily talked about the product idea generation process and product naming strategies and it was fun. It’s now time to get into it and we’ll start with probably the most important product decision we’ll have to make – “who’s gonna use it and who’s gonna pay for it?”. I know you have an idea and it’s the best idea ever – something catchy, that actually does something…Continue Reading “dailytraks – a mini-product from scratch – #3, who’s gonna use it and who’s gonna pay for it”

Taking an app to production successfully brings a whole new set of challenges. Everything from user experience, resource usage and server load can be influenced by the way your app interacts with web assets such as JavaScript, CSS, fonts, images and even multimedia files. Good user experience and low resource usage demands having as few server round-trips as possible and retrieving assets that are optimized for bandwidth and browser processing (or even resolution-optimized images and multimedia assets). These requirements may complicate or even compromise your…Continue Reading “the static asset pipeline – optimized production experience, uncompromised development flow”

I like to keep my client-side code completely decoupled from the server-side but I still want to keep one message source for localization. The ruby stack I use includes Sinatra, Sinatra::I18n and the I18n gem for localization and this is the simplest and most effective way (that I’ve found) of accomplishing this: The Sinatra route: This way the yml locale file is loaded and served and wrapped for quick use. In the client just request the messages script and then when you need a message…Continue Reading “accessing ruby I18n locale messages from the web client”

new endeavours – things to avoid

When you want to start something new,  be it a business or a new product you always start up with an idea or, if you don’t have one you come up with one (by who care what process… brainstorming, calling a friend, stealing). There’s no better idea than yours. I mean, it’s a pot of gold. What am I saying… it’s the mother-load, the ultimate cash cow. Well, before the money starts rolling in, you may want to analyse it a little further, especially regarding…Continue Reading “new endeavours – things to avoid”

cause and effect – more testing doesn’t necessarily improve software quality

A short story about cause and effect I had in my backlog.

Jim works for a software company or, why not, he may even own it.

Jim realizes that the quality of the software that gets built in his company decreases year-by-year, all over the board. He’s been seeing it for some time now but it seemed like the guys have it under control. You know, the guys know what they’re doing.

After awhile things seem to slip even further….

Continue Reading "cause and effect – more testing doesn’t necessarily improve software quality"

If there’s any single thing that you’ll never get back, it’s time. Time is the most valuable resource that you posses. It’s your currency. Things and people are in a never-ending race, competing for your time, but ultimately, if you respect your time, you should decide who receives it. Lao Tzu said “Time is a created thing. To say ‘I don’t have time,’ is like saying, ‘I don’t want to.” and that’s… well, deep and true. Only give your time to the people who respect it…Continue Reading “competing for your time”

Back when I was green and naive I thought that real physical things are valuable. I thought that people work together based on common interest, as opposed to working together based on the intersection of personal interests. I know, it seems like a semantic difference… it’s not. Once you realize that this is a fact, not just some philosophical gibberish your whole collaboration mindset will change. Nobody actually wants to work toward a distant goal that will benefit us all, without searching for a personal benefit. You’ll…Continue Reading “semantics”

Even if you’re just a developer, a little product management will open your eyes. I know, you think it’s all about marketing, and it is, sort of, but from time to time an article series like Practical Rules for Product Management makes it fun, even for non marketers. So, enjoy: Some rules just aren’t meant to be broken (Part I) Some rules just aren’t meant to be broken (Part 2) Some rules just aren’t meant to be broken (Part 3) Some rules just aren’t meant to be broken…Continue Reading “a little product management”