Kludge, UDF, SQL, mmproxy. ODNS, Python, Storage, Integration
- Confirmed that the Bionic Beaver Lubuntu i386 daily build got that annoying Intel display driver bug fixed, which left system with blank screen.
- Wrote bunch of absolutely horrible kludge glue code. Team responsible for implementing the feature didn't bother to do so, because it would be "too complicated". Ok, then I implemented the same functionality incorrectly and in totally wrong layers of the project. Writing absolutely horrible kludge code. It took me quite an while to verify that the logic would actually hold in production use. After about one day of thinking it, I'm finally satisfied with the plan of the logical functionality implementation. Only minor details are missing. - It's way too often that something is first made, and only later concluded that it's implemented in a way that it wouldn't ever work reliably. In this case, I made sure, it would work at least in theory, even before starting to write the code. It's important to make sure that all the affecting factors and scenarios have been counted in. Like data coming in for unknown reason in totally unordered fashion. Or some information being available in seriously late way. Etc. Just the things, which most often break many integrations, which haven't been fully thought to maintain data integrity in all rare situations.
- Once again UDF file system ended with files, where trying to delete the files leads whole system becoming slow, stuck and unstable. This is actually totally horrible user experience. It seems that UDF is just way too broken with current Linux. Someone said I should unmount the drives. Nope, that just won't work, unmount hangs as well. Also one computer which I used UDF drive with, won't shutdown anymore at all. Shutdown process hangs, probably due the UDF driver hanging.
- Cloud SQL using PostgreSQL is now generally available on Google Cloud Platform (GCP). That's something what I could use, if I would have use case with well fitting requirements.
- mmproxy @ Cloudflare - More of that very nice networking trickery. I like the way they hack things together. Just as I've said so many times, "you can't do that". Why not... You just need to know what you're doing and then apply that knowledge in more or less interesting ways to achieve the required end result.
- Oblivious DNS (ODNS) - All this discussion about DNS is interesting. In some cases it's just enough to use Recursive DNS Server / Resolver with large enough user group. Like the clients of major ISP. After that the information isn't too useful for other parties.
- Had some issues with SimpleHTTPRquestHandler handling requests in single thread. Especially in case, where connection is accepted, but no request is ever received. This allows absolutely ridiculously simple DoS. I fixed it by adding timeout value before calling the super.setup(). Now the issue has been solved. Btw. I'm not the only one making that mistake. I've seen similar issue(s) with plenty of different simple TCP servers. Even when implemented in C etc. Stuff is only transferred / forked to worker thread after some initial handling has taken place. But what if the initial handling hangs / blocks? At least one database server platform was affected by exactly similar issue. If anyone connected to the server, and just left the opened tcp connection hanging, without sending any data, rest of connections ended up in connection handler backlog.
- Backup systems storage back-end failed. Such an irony, but no worries. I've got backups of the backups. As soon as the new back-end was up, I just restored the backups of the backups and the backup system was up'n'running again, without need to run massive full backups from all systems, which would have taken quite a while.
- Yet another integration, where the integration data transport protocol is, what else, classic SMTP. Why would you need WebService(s) when SMTP does works just as well. Like I've said, any format anything over any transport. It really doesn't really matter at all. It can be done.
- Standard integration fun, customer wants extremely complex integration and then they start whining it's not working. Yes it is. You just don't remember anymore what you've specified and asked during the requirements definition phase. Let me see the documentation and ... Thank you for that.