Improving your own memory

It is so funny that we spend such amount of time optimizing data structures, but we never think about training our own (natural) memory. At least, I haven’t thought about this until I just stumbled on this article. Here is a list of techniques: Introduction to Memory Techniques Remembering a Simple List Remembering Ordered Lists…


How to do atomic writes in a file

Let’s assume that you want is to write some simple code that writes to a text file. A few assumptions:1) You need avoid corruptions of any kind. 2) Either all of your writes have to make it to the disk, or none of them. 3) The file is updated serially – no concurrent updates from separate processes are allowed. So…


Puzzle: probability problem

Here is an interesting probability problem who recently generated long discussions in our team: Say that you have an array of N boolean values, with all values initially set to FALSE. At each iteration step, you arbitrary pick an element in the array and set it to TRUE. What is the average number of elements…


Cool way to get customer feedback

Lenovo tries to understand whether we prefer titanium or black for the next ThinkPad. And set up a really nice flash-based questionnaire:  So far, it looks like Titanium got most votes by large margin…


Funny experiment

OK – here is an surprising experiment. Do you know what this does? 1) Open some UI that contains an edit box (like notepad, or even the Start\Run… dialog)2) Type something3) Press Ctrl + Right Shift4) Type something5) Press Ctrl + Left Shift etc…  


Are the SATA disks reliable enough?

An empirical report was recently published by Jim Gray and Catharine van Ingen. Here is the summary: The SATA advertised bit error rate of one error in 10 terabytes is frightening.  We moved 2 PB through low-cost hardware and saw five disk read error events, several controller failures, and many system reboots caused by security…


Bloom filters and everything else

If, by some strange and unexplained phenomenon, all blogs on will dissapear, except one, then my preference would be for  Very interesting stuff. I am already waiting for the next post… 🙂


Batch processing is back!

It’s interesting that the Cell Broadband Engine is reviving batch-based computing as one of their preffered development paradigms.   Maybe it makes sense in certain applications – when you have lots of cores, the main problem tends to be inter-cache synchronization techniques. So why not detaching the core internal memory from the DMA operations? It is…


Windows Local Live is out in the wild!

Here it is: Check out some cool bird’s eye images:– Space Needle– Microsoft campus. [Update – Dec 8, 11 PM] It turns out that the service is not exposed to the public yet.  Funny enough, it works fine from my dev box, but not from my home computer. Maybe they block all the non-Microsoft…