Blog‎ > ‎

Race conditions, Telegram, Weapons, Telegram, Slow light, Sea Lion, Wendelstein 7-X, Smart Lock

posted Dec 26, 2015, 11:22 PM by Sami Lehtinen   [ updated Dec 26, 2015, 11:23 PM ]
  • Spotted a really massive race condition problem from one project. Phew! I only spotted it because I thought it wasn't working correctly and wrote separate testing code for it. In normal use cases this race condition very rarely occurs and therefore can be hard to find. But now I know exactly what the problem is and how to deal with it. Now there's just ~20k lines of source to be fixed. O'boy what a joy. - Naa, actually it isn't that hard.
  • I'm so happy. Some companies make APIs which are reall simple, awesome, quick and easy to use. Like Telegram's API. It was just so trivial to get everything working, pure joy.
  • Something different: Reminded myself about Long Range Strike Bomber (LRS-B), PAK DA, 2037 Bomber, Lockheed Martin FB-22 and Next-Generation Bomber. Different than those? Ok, let's just make it bare bones 3M-54 Klub.
  • Studied in detail the Telegram Tech FAQ. I also tried to talk about it with a few friends worried about their communications security, but it turned out that most people doesn't seem to understand the FAQ. Even if it isn't too deep stuff.
  • Today's routing fun. Route from Kornetintie to Hiomotie goes via Amsterdam. That's nice. - Not. It's also nice that light travels about 600 meters for ~35ms. They've got a bit slow light? I've heard that light travels slower in optical fiber than microwaves via radio link. But that's significant difference, smile.
  • Based on Marine Traffic it seems that the Sea Lion (C-Lion) cable laying project between Helsinki Finland and Rostock, Germany has been over 50% completed now. That's awesome. Ile De Brehat, cable laying ship on Marine Traffic map. It's going fast almost 1 knots. Status also says: Restricted Manoeuvrability. - It's further now this is a post from backlog.
  • If you feel sometimes incompetent, it's most amusing when people whom you wouldn't expect to be incompetent does really fail. One service provider has been now fixing firewall issues for two days. They just can't get the service available even if we're connecting from static IP(s). That's just so funny. It shouldn't be that hard, right? It should take just minutes to get that kind of stuff done. They've called me several times, nope, won't work. At first it's just funny, but then it turns out to be really boring and annoying. Hey come on, stop trolling and get that bleep fixed. In some cases in past, something like configuring firewall has been taking up to a month.
  • I just hate unreliable systems. I just wrote powershell script which re-spools some tasks for reprocessing which fail randomly. That's just so annoying. Nobody knows why the app processing the data fails randomly. But we all know that if we just resubmit the task later, it works. So inherently there's nothing wrong with the task. Now I just automated this retry. Duh! Totally wrong solution to the problem, but it works and it's easier than fixing the legacy app being used.
  • The first plasma: the Wendelstein 7-X fusion device is now in operation. Way neat news, hopefully Nuclear Fusion Energy is soon here. Yeah, it might still take another 30 years, but at least there's some progress.
  • Fixed a bunch of additional race conditions. Actually some of those were quite funny. Read data in transaction and then try to commit it repeatedly if the commit fails. But no, that won't fix the problem, because data should be reread, trying just committing it repeatedly wont help at all. It just wastes resources and still finally fails until the absolute max retry count has been reached. Also related issue was that one code block assumed 'database error' to mean that the database is locked. But what if there's some other error? It's always a good idea to properly check for certain specific error messages and just not expecting those to be something you expected.
  • It seems that I'm not the only one wondering about the Android Trust Agent Smart Lock stuff. Why I can't add WiFi (WLAN) or EddyStone beacons to the trust list? Because that trust agent and smart lock is already a low security feature it should be totally possible to use wifi or eddystone beacon too. I know those aren't authenticated, but it's up to the user to decide what kind of security they're looking for. Of course things which aren't bidirectionally connected and cryptographically authenticated are highly insecure.