Don’t be fooled, this post is about programming, system architecture but mostly about using a heating system.
If you don’t know how can you talk about programming without programming you should check out the “The Passionate Programmer” book by Chad Fowler, a great read. The Jazz stories from this book inspired me to write this blog.
The story begins with a new apartment in an old building. Or at least it’s new to me.
The building has its own heating system, very old and extremely inefficient. After a long consideration I’ve decided that it was time to install my own heating system and disconnect from the main building one.
So far, nothing interesting, there are many people that do this, partly because of the added comfort and partly to optimize expenses.
With this being said, I had a project and needed a developer. Or in other words, I had a heating system to build and I was in need of somebody to do it.
I’ve asked around for that “good” developer.
Like in anything else, there are a lot of people that come up with bad solutions. There are devs that make great offers but are unable to finish the project, or they write very bad code that is not scalable and even worst, unmaintainable.
Since what I know about heating systems can be covered by anyone with the patience to google the subject for a couple of hours or so, I wanted somebody I could trust, so I was looking for the passionate kind of developer!
I had a couple of recommendations. The first one told me that he had to put all the pipes close to the ceiling. After convincing him that I don’t want my house to look like a factory full of pipes he said that he will definitely need to replace one of the radiators (at least) because he could not fit a pipe behind it. I could fit my palm behind that radiator, with this in mind I knew I wanted somebody that could fit a pipe behind my radiator.
It was clear that he wasn’t a good developer. A good developer must work with the requirements, the very least a project should be able to respect most of the client requirements, if it doesn’t, there can be several explanations: he can’t because he doesn’t know how or he doesn’t want because he knows it’s hard and doesn’t want to go that extra mile. In some cases that’s not a tragedy, maybe it will be cheaper and faster, and in his case it was. Unfortunately for him, I aimed for quality.
Then there was the passionate developer. He never mentioned anything about not being able to do something, it was always a cost and maybe a consequence. The deal with better developers is that they are more expensive and everything about them is expensive, they will want better servers for hosting, better tools and sometimes more time for things like testing and maintenance. In other words, sometimes the cost is bigger not just then, but also in the log run. A quality project takes time and money.
This is my resulting project:
If you never seen an apartment heating system before you should know that except for the pipes, nothing else is actually required.
It’s all just passion!
For instance: the pump on the lower right, it’s there just to force the water to move faster in the system. Think of it as Redis, it will have a good effect on your system but most systems will happily work without it. Of course, at some point there may be maintenance for that pump and can even result in issues, like this Magento 2 issue: https://github.com/magento/magento2/issues/10002. Every system has its own cost.
The expansion tank in the lower left was unnecessary (in the sense that the system already has one built-in), but it’s not a bad idea to have an extra. Think of it as that extra storage space, ram or CPU that you don’t actually use. Your server should never go above certain server loads, that’s the expansion tank you should take into consideration.
The water intake filter is like your firewall, you need it, it’s your protection, maybe most of the time will be useless but when there will be issues, then you will be glad you have it, because he will have filtered them out.
The good thing with passionate developers is that other developers understand and appreciate their work. That is very important, no matter the industry of the “developer”.
The only one that had anything to comment on the system was the ISCIR certified technician that initialized the heating system (ISCIR in Romania is a special authorization needed for this exact thing). You can tell that he wasn’t passionate, he just wanted to say something bad about it because he wanted to make a good impression on me.
Unfortunately for him, he made some very stupid comments and then he made me a maintenance offer. This guy was the consultant, he didn’t do the project and he doesn’t want to work on it but he definitely wants to make some money on it without actually doing anything.
I guess the conclusion is that no matter the developer, the quality and passion transcends the industry.
More then an year ago I wrote a blog, where I was telling that Google doesn’t know where I live.
The issue was that Goole Maps had a very poor coverage for Romania, and Yahoo! Maps is a way better alternative for this part of Europe. I still believe that Yahoo! Maps is a better alternative but I was surprised by one thing. Occasionally I’ve visited Google Maps to see how things are going with the coverage of Bucharest, basically it was represented a single way to cross the city from highway A1 to A2, and nothing else.
About a month ago, I went back to check what was new because I needed to build an Romanian tourism app and… surprise, surprise, even though the satellite photos are of lower quality now, I could find my street using the search and even the block where I live. Even more I was able to calculate alternative routes to various locations in Bucharest.
It looks like Google has began to have a little more interest in this part of central Europe, now allowing for a real competition with Yahoo!. This is a great advantage for Android phone users who use Google Maps for there GPS app. Few years ago, to user Google Maps in Romania it was completely useless, you could see the satellite images, but that was about all, you could not find useful addresses, and if there ware marked on the map you could not automatically find a route to them.
Eventually I used Google Maps for my app, even though I still believe that Yahoo! Maps is a good alternative, as far as quality and API. Speaking of API, both of them seem ok and I don’t king that’s a criteria to difference them between the two giants.
A thing a little shocking about Google knowing where I live it was on an evening when curios to see if my GPS works on my mobile phone I went on my balcony. Everything was ok, it found me within 50 and 100m on the Google map, using my wireless connection for the data transfer. Another evening a friend came over to tried the same thing, using the same connection to the Internet, same Google Maps app, and he was found within 100m.
Nothing unusual in theory, but everything changed the next day when he told me that his phone didn’t have GPS, and what we ware seeing was the date from the last time I connected my device… so Google now knows where I live… literary…