Quoting myself from [1]:

 Dear UNIX diary,

 today, I exploited memory overcommit and copy-on-write.

 I  have  a program that reads data and stores it in a circular buffer.
 That is, when the buffer is "full", new data is simply stored  at  the
 beginning  of  the buffer, thus overwriting old data. The program just
 keeps the data in ordinary memory, i.e. it does not save it on a  hard
 drive or something else.

 This  program  can  be  fed with arbitrary data, for example raw audio
 data.  This means you keep  recording  and  recording,  but  you  will
 always  only  have  ~50MB  (or  the  last  ten  minutes) of audio data
 available.

 So far, so good.

 What I want to do next is send my program a signal and it  shall  save
 the  buffer  as  an  OGG/Vorbis  file. Meanwhile, I still want to keep
 recording to the very same buffer  --  without  any  interruption.  Of
 course,  as  new data arrives, old data will be overwritten, so I must
 make a copy of my buffer prior to  encoding  it.  Creating  that  copy
 could  be  a  problem  if the original buffer is, say, 80% of my total
 RAM.

 Enter: Kernel magic.

 Okay, I have a process with some allocated  memory.  I  can  solve  my
 problem by simply doing a fork(). The child process will be a clone of
 the parent -- including its memory. The  child  can  then  encode  the
 audio  data  as  OGG/Vorbis  while  the parent continues to record new
 data.

 What's awesome about this is that the kernel does not really create  a
 copy  of the memory[1]. Both processes refer to the same memory pages.
 Only when one process writes to a "shared" page (the parent does  this
 when  recording  new  audio  data), a real copy will be created. Thus,
 only that particular data in my circular buffer  which  arrives  while
 I'm  encoding  needs  to be copied. This only amounts to a fraction of
 the total buffer size, which allows me to do the whole operation  even
 with very large buffers.

 And,  I, myself, don't have to implement any of this. The kernel takes
 care of everything.

 [1]: At least, Linux behaves this way by default. Last time I checked,
 FreeBSD and OpenBSD did the same thing.


                          ____________________


 Oh,  and yes, I finally did some UNIX programming in C again. Has been
 a while. The life of a sysadmin can be tedious at times.


                          ____________________


 Another internet outage today. I was online using my cell phone  (over
 bluetooth) for a couple of minutes.

 This  is  amazing.  Everybody  should  browse the modern web like this
 every once in a while. Most importantly, web designers should do this.

 I got 25 kB/s and I could barely do anything. Almost impossible.  When
 you  open  a  modern  web  site,  huge  amounts  of  data  needs to be
 transferred. I remember browsing the web using ISDN which was able  to
 provide  7  kB/s  and  that  was just fine. But times have changed. In
 Germany, many people have internet connections which are  literally  a
 thousand  times  faster  than  ISDN.  Of  course,  nobody  cares about
 bandwidth anymore.

 I wonder what it's like to browse the web from some other countries.

 ____________________

 1. https://nixers.net/showthread.php?tid=1539&page=13