Blog‎ > ‎

PyClockPro (CLOCK-Pro), Android browsers, GAE alternatives, Shamir's Secret Sharing, File Roller & LZMA2

posted Nov 4, 2012, 7:56 AM by Sami Lehtinen   [ updated Nov 4, 2012, 7:59 AM ]
  • PyClockPro project @ BitBucket: I started to write CLOCK-Pro caching algoritm in pure Python 3. Most parts of it are already working, I still need to clean up and refactor some parts. I have been first aiming to correctly working implementation and ignoring all performance issues. Performance is currently very poort, but I hope I can make bettern than LRU performance. At least cache hit rate should be much better. When I'm happy with code, I'll release it. I'm sure it can be refactored a lot after my initial release. Btw. CLOCK-Pro is more complex than CAR/ARC, I can clearly see why it's not been widely used. Implementing it takes quite some effort from current documentation. I hope that this library will work as nice and well commented source for other projects too. PyClockPro related documentation and slides. Due complex logic, I really understand why nobody wants to implement it really low level tools and therefore opt for simple clock which is super easy to implement. Even GCLOCK is really simple compared to CLOCK-Pro.
  • Played with different Android browsers. Only problems with Dolphin Browser are crashing and non-zoomability of some pages. Both are very annoying features, but in general it provides better usability than any other alternative which I know about. Firefox is simply very slow. Chrome is bit slower than Dolphin as far as I can see. But Chrome scales stuff strangely on screen, font sizes seem to be quite random, images aren't scaled accordingly. Chrome app / cache can't be moved to SD card. After zooming text isn't getting re-flowed, so you might need to read every row by scrolling from left to right back and forth. These are severe usability issues, even if browser technically works well. Only thing I really hate about Dolphin is that some versions of it are really prone to constant crashing. I really haven't seen any other serious problems with it. Chrome hasn't crashed ever for me. I also really much like Opera Mini for sites which work well with it, like news sites. It's very fast, text flows well, font sizes are constant etc. It's formatting pages very well for mobile browsing. There are minor font size issues even with Dolphin, but it's really nothing compared to issues with Chrome.
  • Studied: Tempest, EMP, side channel attacks, electromagnetic information leak
  • Checked out GAE platform alternatives: TyphoonAE and AppScale. Google App Engine development has been quite speedy lately. While two alterinative environments seem to be developed really slowly. It unfortunately means that either of these options is viable alternative to run your Google App Engine applications outside Google infrastructure in case they decide to throw you out for any random reason. It just worries me a bit, what if considerable development efforts are done and then it turns out that you don't have a platform where to run the app? To me it really sounds too bad situation. At least there should be abstraction layer which would allow running same code with alternate products providing features which are usually provided by Google App Engine. It might work well for small smaller projects, but if it's real Internet cloud scale project providing good alternatives might be hard and require considerable testing time.
  • Updated test computer to use Ubuntu 12.10 Quantal Quetzal, naturally disabling shopping lens. (Sigh)
  • Studied Shamir's Secret Sharing algorithm, and possible use cases, like protecting valuable data (like some logs) with group of experts which all agree that data needs to be accessed.
  • Purged even more data left in home directory by Evolution. I really hate applications which leave data around.
  • Wondered why File Roller compresses files so slowly when using 7-zip archives. It's now very clear, FileRoller defaults to LZMA which only can efficiently use two cores. It would be really nice if it would opt for LZMA2 which supports parallelism better and is designed for multi-core systems.
  • During the week I've been busy with home renovation so this list is quite short. I still got huge backlog about topics I would like to write about.