Disclaimer

The content of this blog is my personal opinion only. Although I am an employee - currently of Nvidia, in the past of other companies such as Iagination Technologies, MIPS, Intellectual Ventures, Intel, AMD, Motorola, and Gould - I reveal this only so that the reader may account for any possible bias I may have towards my employer's products. The statements I make here in no way represent my employer's position, nor am I authorized to speak on behalf of my employer. In fact, this posting may not even represent my personal opinion, since occasionally I play devil's advocate.

See http://docs.google.com/View?id=dcxddbtr_23cg5thdfj for photo credits.

Thursday, October 23, 2008

Perl RAII test banner

Wrote a somewhat neat Perl trick today:




    file RAII_Test_Banner.pm:

    {
    package RAII_Test_Banner;

    sub new {
    my $self = {};
    $self->{'message'} = shift;
    bless $self;

    print "START: $self->{message}\n";

    return $self;
    }

    sub DESTROY {
    my $self = shift;
    print "END: $self->{message}\n";
    }

    }


    if( $::TEST ) {
    {
    my $t = RAII_Test_Banner("Example of RAII_Test_Banner usage");
    print "something like START: Example ... should be printed above\n";
    print "This is inside\n";
    print "something like END: Example ... should be printed above\n";
    }
    }

    1;









This is just a Perl version of a C++ library I wrote years ago, when I first learned about RAII (Resource Allocation is Initialization) - aka using automatic scoping to reduce the need to write code that matches start and end.

I had not realized until today that Perl had deterministic finalization - at least for variables that are not referred to by live references.

IMHO one of the biggest weaknesses of Java is lack of deterministic finalization.

PC display driver problems: Quit instead of Reboot

Just came back from a meeting, attempted to dock my PC, and got "Error: OEMSPIF.DLL cannot be loaded", when my PC attempts to change its display size.

Some sort of software problem.

The usual way to "fix" such problems is to reboot.

Instead of rebooting, I will go home. I wonder how much time is lost when people quit, rather than spending the time to work around this sort of stupid PC problem.

I'm going home because of time fragmentation. If my PC were up, I could work; but if I have to spend the 15 minutes to half an hour, or more, that it usually takes to become functional after a reboot, I don;t have time to squeeze in any useful work before I go home.

I.e. PC reliability problems make it harder to deal with fragmented work time. And lots of working hours get lost to fragmentation.

Sometimes a quick blog entry is all that you can squeeze in.

---

Had a similar problem this morning: I required two reboots before I could get anything done. Software patches...

---

Lest it seem as if all I do is complain: I *am* trying to make this situation better. But I can't talk about that.

Tuesday, October 07, 2008

Virtual Chalk Talk using Tablet

---+ VirtualChalkTalk

---++ October 7, 2008, Virtual Chalk Talk Oregon/Israel

Meeting2008October7WithIsraeliArchitects
was the first meeting that I tried to run seriously as a "virtual chalk talk"
(apart from earlier attempts scattered over the years).

When I realized that I was about to start serious microarchitecture discussions with Israeli architects,
over the phone,
rather than trying to prepare PowerPoint or Visio diagrams for every possible question - experience has shown that architects always ask to visualize the microarchitecture via a diagram that is missing, and/or want to "mark up" any existing diagrams - I decided to try enabling a whiteboard discussion over long distance.

Chalk talk / whiteboard discussions worked very well for the pre-strawman review meetings - with all particpants in a conference room with a whitebaord.
The main shortcoming is that, at my present worksite in Oregon, we do not have a way of recording what is on the whiteboard.

(See [[#Equipment]]:) To enable a virtual chalk talk, I (Main.AndyGlew) went and bought a drawing tablet: specifically, an AIPTEK "My Note Premium" Digital Notepad / Tablet. 150$ - unclear if my employer will reimburse Andy.
This device is reasonably functional as a tablet when tethered via USB. (It may also be used untethered, to record handwritten notes when disconnected - but that is not relevant to the "virtual chalk talk" usage model.)

The day before I did a dry run, conversing on the phone with a coworker, using Netmeeting and Microsoft Paint to explore issues.

In the actual meeting with the Israelis I used Netmeeting's whiteboard facility. At the end of every page I hit "Save As", and typed in a filename (1.NMW, 2.NMW, ...).

---++ Equipment

To enable a virtual chalk talk, I (Main.AndyGlew) went and bought a drawing tablet: specifically, an AIPTEK "My Note Premium" Digital Notepad / Tablet. 150$ - unclear if my employer will reimburse Andy.
This device is reasonably functional as a tablet when tethered via USB. (It may also be used untethered, to record handwritten notes when disconnected - but that is not relevant to the "virtual chalk talk" usage model.)

Motivation: I wanted to be able to draw and write easily on the shared electronic whiteboard. I find drawing freehand and, especially, writing with a mouse painful.

I have tried conducting such VirtualChalkTalk meetings while drawing in programs such as PowerPoint, Word, and Visio. However, I find such accurate drawing tools unconducive to the flow of a meeting - one is apt to spend too much time getting the drawing right. Freehand drawing in a paint or whiteboard program seems to work best.

I have occasionally conducted VirtualChalkTalks using NetMeeting's whiteboard, drawing freehand using a mouse, but using the text entry tool to type words. Experience is mixed: the words are more legible since typeset in proper fonts, but switching tools interrupts the flow of the meeting.

Overall, I find drawing and writing using a pen on the electronic whiteboard better than using a mouse and keyboard.

Over the years, I have used several devices that allowed a pen or chalk to be used:
* I have used several different drawing tablets, WACOM and non-WACOM
* one learning: it is possible to get a tablet too small for accurate drawing
* I am most fond of using a Tablet PC
* I am on my 4th tablet PC. Convertible tablet PCs with keyboards attached are best.
* Unfortunately, IT, in their infinite wisdom, (a) refuses to give me a "non-standard" TabletPC. They support TabletPCs, but only for executives.
I'm just an engineer, who likes to draw. (b) IT has made it difficult to connect a personally owned TabletPC, or indeed any PC, to the company net.
* I have also tried used Mimio (http://www.mimio.com) and eBeam (http://www.e-beam.com)
* while I like the idea, I have not had very successful experience

My main learning: although a drawing tablet is better than nothing, I infinitely prefer a TabletPC that allows you to draw directly on the image - where the tablet navigation surface is the display. I find decoupling my hand with the pen from my eye, looking at the drawing on the screen, quite disconcerting. It gives me a headache.

    I am beginning to think favorably of WACOM's Cintiq device (http://www.wacom.com/cintiq/) - basically a display that you can draw on, which couples to a PC.
    When I first encountered Cintiq I wondered "Why in the world spend 1-2K$ for a display you can write on, when you can get a TabletPC for around the same price?"
    Now I am beginning to understand - apart from the larger size enabled by the Cintiq not being portable,
    being a device that can plug into any PC,
    rather than a TabletPC that must be networked, has advantages.
    * If I had the $$$, I might well consider getting a Cintiq for work. But that's probably dreaming in vain.



---++ File Formats

After the meeting, converting from the *.NMW file format to something others could read was a bit of a hassle: I ended up opening all of the *.NMW files (which was a bit of a pain because Netmeeting did not remember default directories), printing each page to PDF, and then I used Adobe to concatenate all of these single page PDFs into a single PDF - as is attached here.

After the meeting was over I realized that I should have hit "insert page", and thus created a whiteboard with multiple pages. I should also have just hit "Print" to the PDF printer (I have Adobe Acrobat installed). If I had done this I could have avoided a lot of hassle related to converting multiple files. This should probably be my current BKM.

BKM for running a virtual whiteboard
* Netmeeting whiteboard
* Insert multiple pages
* Print to PDF (assuming you have Acrobat installed)

I am not 100% sure that this is the best way to run a virtual whiteboard. But it works, and is good enough.
* TBD: try using Live Meeting
* TBD: try using other applications - such as paint
* TBD: try to find a way to save a whiteboard as a bitmap,

Conclusion: this provided a usable virtual chalktalk, with the ability to preserve what was written.

---++ Audience / Participant Reactions

Audience reaction to this "virtual chalktalk": positive.
* I wrote: 'When I asked, at the end, what the audience felt, SR's reaction was "it was okay".'
* SR later replied: "I think it was more then OK, it was actually convenient and natural. I prefer this way then the ordinary slides, when the slides are for backup as you used them."

I may collect further information and feedback and BKMs for this sort of long distance meeting at VirtualChalkTalk, augmenting the original attempt at Meeting2008October7WithIsraeliArchitects