Blog‎ > ‎

Signal, Noise Protocol, ChaCha, VPS, SMTP STS, Integration, Peewee, Random, Brscan, LEAN

posted Jun 10, 2016, 9:50 PM by Sami Lehtinen   [ updated Jun 10, 2016, 9:50 PM ]
  • WhatsApp adopted Signal protocol. That's cool. It's great that applications start providing easy to use end-to-end encryption. I've been wondering for a long time what makes it so hard. But now it's done.
  • Checked out the Noise Protocol - Hmm, ECC Courve448 nice. Support for BLAKE2 and ChaChaPoly, nice. AEAD is always good. GCM is nice.
  • CloudFlare's article about ChaCha .
  • Compared again several VPS / Dedicated server providers in Europe. There are differences, some vendors provide double the cores than others for the same price. Then it's up to the applications what the end result will be. The 33% faster cores or double the core number and 33% faster overall performance. Which one of those is 'faster'? That's a good questions. It totally depends on the code or application being run on those. It's also a good question if 1 Gbit/s port better including 1 TB of traffic or 100 Mbit/s port with including 32 TB traffic. It depends. Or 2 TB of HDD vs 128 GB of SSD space?
  • Checked out SMTP STS. Hmm, minor improvement but doesn't actually fix the underlying problem that there's no initial authentication and it's totally trivial to disable this feature on first connection.
  • Google Compute Engine Post-Mortem, chain fail. - Nice reading.
  • Once again updated the very long document about prerequisites and system integration best practices. It's just so common that clients want "integrated system", without being able to tell what it means in any meaningful detail. Next question is, who much it's going to cost. Well, no scope, no price.
  • Had some terrible problems with (read?) transactions with sqlite_ext.py from Peewee and SQLite3. For some reasons those prevent WAL file roll-overs and make it grow into gigabytes. I just realized that the sqlite_ext.py which I were using was really old, from 2014. Just upgraded it. The .delete_instance() issue got fixed, it doesn't delete the whole table anymore. But it doesn't delete the entry itself either. Of course now when the rowid trick is working, I can drop the id completely and use rowid to delete the records after using match. Also the .id returns None, I did understand from that old post that if no id is assigned, .id would actually return rowid by default. But that doesn't seem to be true? Haven't exactly concluded if the new sqlite_ext.py will fix the issue with WAL file, but I hope it does. The new file version is twice as large (bytes) as the version I were using.
  • Linux /dev/random new approach. I've heard so many people complaining over and over again about lack of boot time random data. Glad that this gets solved. Also VMs with no activity can go for a long time without adequate random data for encryption key generation etc. Also see the full paper about new LRNG design.
  • Once again, what's the right way to speed up database recovery? Delete recovery data, and start everything with inconsistent state. Awesome! I really like the way some people are thinking. Then they start to ask questions why this data is corrupted. Well, you've got exactly what you wanted, what's the problem?
  • To install Brother scanner, you'll need to install: brscan-skey, brscan4, xsane, sane. But what's missing from their documentation is the trick, how to make the scanner recognized by the computer.
  • This command made the trick: brsaneconfig4 -a name=Scanner model=DCP-9020CDW ip=ip.address kw: Brother, Linux, Ubuntu, Lubuntu, Xubuntu, Ubuntu, Kubuntu.
  • Attended event LEAN Business Design (1 day) in Helsinki. Which talks about Lean Startup approach.  How to create, test, validate, business processes, services and products. Fail fast approach, Validation Canvas, Value Proposition Canvas. Idea testing ABC. Minimum Viable Product (MVP). - To be honest, I knew all this before hand.