SACK, Projects, Aadhaar, GAE FW, Blue-Green Deployments
- Watched TCP SACK option i action, sending SACK 1 and SACK 2 and SACK 3 packets. Indicting received data and which packet is missing. Actually the TCP window works very well on bidirectional transfers. Due to sack option, actually sack works as great congestion indicator. Because when packets start getting lost, it's time to reduce the transmission window a bit.
- Balancing project costs, quality and requirements. This is the extremely classic topic. One organization claimed that it projects are huge waste of time, with meetings, documentation, agreements and testing. Why we just can't do the things. Yep, there's the "golden center". In this case, they're asking for complex ERP integration, which should be just 'done'. We all know what that will lead to. But on the other hands, some projects get exactly ridiculous on those same criterion. Getting it just right is hard. I personally think that that overhead can be largely discarded IF it's exactly known what needs to be done. But usually these kind of requests come from organizations which are total messes and they don't have a clue what needs to be done. If they can exactly say, we need to update these fields from this table to the another system. Great, that's easy to do. - My current estimate is that 90% of integration work isn't software development. It's working with messy organizations and digging for information and trying to clarify some processes. Funniest part is when someone asks the system to provide some information which we don't have. Sure, I can pass that information, but you'll need to make it available first. No problem whatsoever. I can do whatever you want, but you'll first need to decide what you want. That seems to be the hard part for many organizations.
- No wonder IT projects take long and cost a lot. In one case, creating one directory and agreeing about it's name, took around two weeks. But I'm sure there were meetings, negotiations, documentation, and access control involved. But it's still extremely ridiculous. Once again, it's nightmarish idea to add "data integrator, or conversion, mapping or transfer service" from 3rd party. It just makes everything, expensive, slow and suck. When you're not in control of the essential things. Things which should take minutes, end up taking bit longer. Btw. This directory creation task is still being carried out.
- Read many news about Aadhaar and Right To Privacy. How strong identity can be a very good and a bad thing at a same time.
- Project approach. I've been involved in so many projects. One of the things I'm clearly often doing differently than others. I want to solve the hardest problems first. What's the point of building huge ship or building for fusion reactor. If we don't have any idea if the fusion reactor is going to work. I've noticed that many major organizations and project teams want to build all that easy stuff first. And then suddenly when everything is 90% ready, it all comes to halt. I want to see that 10% to work first and then I'll build the rest of trivial things to do. Often the feeling is that larger the project, the harder the team seems to be getting whats truly essential. Yes, we can talk about the color of the building / ship, we can talk if it should have a nice logo. But to my considering that's all utter BS as long as you guys show me at least well working prototype of that fusion reactor. I guess that's kind of bike shedding. Most annoying part is for the complex questions everyone is putting their head in sand. It's sometimes very hard to get clear answer, we don't have any idea, just leave the field empty. Or something similar. Or is it just a scam approach to so called project progress? If we leave that impossible to solve 1% last, we can at least proudly say that we've completed 99% of project that shouldn't have been ever even started?
- Google App Engine Firewall. One of the features I wish App Engine (GAE) would have had a long time a go. This is a really nice addition.
- Software blue-green deployments. Some of the example pictures also show different database. Yeah, depending from business. That might be a huge problem, or not. Some updates just change software, some database, and of course database integrity needs to be guaranteed in many businesses and so on. It's not that simple. But this is one of the methods I prefer, if it's available. Sometimes it just isn't an option. Also another classic problem with two environments is that secondary environment is never maintained, when it's not necessary. So it can be radically out of sync and cause major havoc if activated due to whatever reason. But this is nothing new either. But this is exactly what I often do when migrating to new server or environment.