This reminds me of a great post about the typical software evolution going from hard coded values, through configuration and rules engines to a DSL, only to be back where you started.
I have seen it happen on multiple projects, it’s hard to spot it at the time as all the changes seem sensible but hindsight is a wonderful thing
This line really struck me: “They will have to change at some point, and you don’t want to recompile and redeploy your application just to change the VAT tax rate.”
Continuous deployment has changed this for me. I'm still not going to leave tunable constants in the middle of random if statements. But nowadays instead of trying to avoid recompiling and redeploying, I'd rather invest that time into making that very easy.
Yeah, CD is a big game changer here. Managing config separately from code is a big pain (as that piece points out in colorful detail), and as the countervailing painfulness of a deploy drops toward zero, it becomes better and better to just hardcode some consts. "Business rules" just become "code you write". Easier to change, test, and reason about. At my last job we moved to CD and it was fun to see everyone (haltingly, sometimes unwillingly) change their approach to this.
There's still a place for configs and even DSLs (multiple deployments, on-prem software, biz logic written by non-programmers, etc) but CD eliminates the huge class of "this is too expensive to deploy changes to" cases.
Pulling things out into a configuration file (or environment variable) is valuable when either (a) the value needs to be set per-environment and you have a variable number of environments or (b) the value needs to be changeable by somebody other than the dev team.
Also it's worth considering for constants whether what you actually want is a 'resource file' (which could easily just be a file containing all your constants written in your programming language, no need to use a different syntax if that doesn't gain you anything) - learning and internalising (and also learning how to explain to other developers) that a resource file is -not- the same as a configuration file has been a significant quality of life improvement for me.
IMHO an embedded DSL (eDSL) helps to close the loop somewhat. At least you're writing your "configuration code" in a real programming language, while still keeping the configuration separate from the main application. It addresses most of the issues the article points out regarding custom DSLs: no/limited debug capability, lack of tooling and IDE support, unable to write the same style of code used in the application. Of course, it helps if your main language has good support for eDSLs, since not all do.
You have to click on the images to actually see the real clothes you'd like to buy. I understand green/eco but I wonder who would ever use a website like this to buy any kind of (physical) goods? It kills entirely the UX and obviously it saves the company money in terms of cpu/memory/bandwidth used.
What about the costs of me having to go back and forth to see all the items one by one, therefore triggering more pages views? What about the mobile experience?
(disclaimer MS employee but nothing to do with this product)
You could check out the Azure Forms Recognizer. It's designed to do exactly this and make even training a custom model pretty easy. It's also pretty cheap (free up to 500 pages) so you can always do a quick experiment and see if it does what you need it to
That sounds like an awesome game - do you have any interesting links for how to structure TBS games? It's something I've always played around with but never feel I managed to get a decent design
It's really interesting to see the kinds of numbers you need to get to the top of the paid lists.
I really wasn't sure what to expect from the Apple TV and despite being initially disappointed with the lack of app discovery - it seems that people are actually finding and installing app which is a start
I made a general knowledge trivia app - 60 second quiz - and seem to be getting a couple of downloads a day. It's nice to know that hard work and a few downloads a day can mean you end up as #3 in the top charts!!
I have seen it happen on multiple projects, it’s hard to spot it at the time as all the changes seem sensible but hindsight is a wonderful thing
http://mikehadlow.blogspot.com/2012/05/configuration-complex...