Danny's Tech: Where West and East Intersect

Sunday, March 25, 2007

Why Paper is Better

I'm watching NHK Professional program and what struck me very interesting is to see the CEO of DeNA who brought out her paper organizer. She pointed out that it's very quick to open and no need to wait (for boot time). Here are my thoughts on paper:
  1. No wait: it's always there, ready to be used. No boot and no power up time. And nothing to install (software wise). You just use the paper (or book). However, once it's printed or written, then you can easily start with clean slate and start a fresh (which is easy to do with hardware or HW).
  2. Portable: it is rather small and light. Computer hardware is usually too large, even those micro PC (like OQO). Or on the other hand, with PDA, the screen is too small.
  3. Customizable: it can be folded or even cut to be even smaller. A hardware (PDA or computer) is fixed size. You can add peripherals but not remove the core HW. By tearing out a piece of paper, you can share the information easily, too. With computers, you must use the same hardware (like Palm IR "beaming") or both connected to internet to do email based exchange.
  4. Direct location: a book (like dictionary or Bible) or diary or organizer, you can get a feel for the page you're looking for and find it quickly by knowing the physical position ("muscle memory" at work). With computer, there is no such interface (touch or digitized screen has that potential but I've yet to see such an interface). The closest thing is like the iPod interface where faster turn jumps you further along, but the problem is that it's easy to overshoot with such an interface (much like fast forwarding a video).
  5. Freedom: with paper, you can have outlines and forms and even printed text but you can write (add) as much as you want (depends on the font size) in any location. Computers on the other hand, you can delete and move and edit (with pencil you can edit too but not so easy).
(I may have to go find my old notes on these thoughts and will update when I have time.)

On a related note, there's a youtube of "Introducing the book" which I believe is funny spin on what a book is from our modern perspective (with "tech support" giving a hand).

Copyright 2007, DannyHSDad, All Rights Reserved

Labels: , , ,

Wednesday, January 17, 2007

Micro-Programs and cooperative scheduling

It used to be that OS used to time share several programs running on a CPU by forcing a context switch over microseconds (or other small time intervals). But the problem with a timed context switch is that there is an overhead of setting and handling an interrupt and then resuming after that interrupt.

What if programs could be compiled into "micro" units (a spin-off of the micro-kernel idea) so that there is no need to interrupt any program: Each micro-program will run at most xyz time units/cycles so that it will let go of the CPU in a fair way. The beauty of this is multi-fold:
  1. OS only does context switch: no need to force a stop and try to recover by restarting the interrupted process
  2. Easier to distribute the program across multiple cores.
  3. Easier to synchronize with other micro-programs -- because a micro-program ends ready to switch (give up its CPU slice), it can be stopped and synchronized with other micro-programs waiting on the same event, etc.
  4. Easier to distribute the micro-program on non-uniform multi-processor systems since each micro-program are self contained.
Obviously the standard code to force timesharing still has to be around to deal with non-conformant programs but the scheduler can be biased to give higher priority to well behaved micro-programs so that there is disincentive(s) for status quo.

Copyright 2007, DannyHSDad, All Rights Reserved.

Labels: , ,