Blog‎ > ‎

Outlook, Social-Credit, Galileo, Maya, USB Flash, Negative Work, Boring Code & Tech

posted Jun 10, 2017, 11:29 PM by Sami Lehtinen   [ updated Jun 10, 2017, 11:29 PM ]
  • Thank you Microsoft again. Now your server: was mis-configured and returned all outbound emails with error Relay access denied. Come on! I thought Microsoft would have even somewhat competent developers, operators and system administrators. But I'm getting different Outlook related issues all the time. What's even more ridiculous is that your spam filter keeps on failing continuously. - Flagging as spam and completely deleting mails so those never get delivered, and the sender doesn't even get bounce. - That's awesome from you guys.
  • Learned latest hype word Reinforcement Learning, earlier it was Deep Learning.
  • About international and inter-cultural communication, yes, all kind of idioms are usually a very bad idea. It's better to write things verbosely open and simply things down a bit.
  • Read the State of Internet Q3 2016 report by Akamai . IPv4 address re-mappings between RIRs grows routing tables. Ouch! Finland isn't even in top 10 on IPv6 adoption. No surprise, there are three huge national carriers and only one of those provides native IPv6 right now. Only good thing is that Finland is eighth (8.) on the global list of countries with fastest Internet connections. On European list Finland is fourth (4.) fastest. Report also shows that it's tradition to shutdown the Internet if there's political disturbance in country.
  • The Economist got great article about China's social-credit system. Will it be powering the digital totalitarian state? - Economist on Snapchat Discover. Ugh!
  • European Galileo satellite navigation system is finally on-line and available. Public signal location accuracy is 4 meters and paying customers get nice centimeter accuracy.
  • Had some reading about management theory and trends. Everything is relative and there's no right solution. But I kind of like globalization, because I've always been against subsidies and toll tariffs. Afaik, products and services should be made where it's best to get it done.
  • Maya Library - Yet another way to deal with date / time on Python. This is the eternal problem with modules and functions. Complex full featured library might seem complex and hard to learn. Yet simplified version might be too simple. But it's also easier to create large number of simpler versions. Because making something full featured is of course quite complex job. I sometimes write my own wrappers for more complex libraries, so I can use those in simple and sane way. Which actually crates yet another very light way of dealing with the things. As example, URL handling and date time are something which I very often wrap.
  • USB Speed issues again. Many instructions instruct to align partitions. But I'm using NTFS and I don't know how well aligning works with it. With ext4 I know that the file system prefers 8 megabyte extents. Which is actually great if the alignment is right. Yet again, without extent allocation would be more efficient when writing several small files each of those files wouldn't occupy it's own extent. This also leads to free space fragmentation and after certain point when every extent is being used, new writes are going to be scattered.
  • Beware of Developers Who Do Negative Work - Amazing article. Yes, that's why I prefer something simple. Making things extremely complex, cool and advanced code can be really bad at times. It's hard to understand, complex, probably bug prone due to all that additional complexity. It of course sounds cool if you wrote 200+ pages of documentation for a single module. But that's not the way I prefer doing things. - This is also one of the reasons why premature optimization can be really bad. Because you can do some code much faster by using more complex logic. But it might be very hard to understand it. Quote: "They want to feel like their time was spent on something worthwhile. For developers that means delivering software that brings value." - I just couldn't agree more!
  • Perfect example is the CLOCK-Pro algorithm I implemented. Traditional LRU is extremely simple and easy to implement from scratch when required, with circular buffer. But CLOCK-Pro is from other planet. It's more efficient, but requires much more complex code. Yet when used from library, luckily that complexity is masked. - Yes, I'm very well aware that the CLOCK-Pro could use ordered dictionary as well as it contains "magic numbers". But truth is that replacing magic numbers with variables makes the code run slower. Because this is cache library, I think it's reasonable trade-off. Magic numbers can make processing single if statement 10% faster. I would consider that significant resource saving. As well it doesn't mean that the magic numbers wouldn't be documented in the source code.
  • Yet, I'm very happy to learn new things. I guess that should be obvious from my blog. But when doing production stuff under tight deadline, boring is the way to go.