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

Monday, September 29, 2008

Motorola Ming Hacking

Apparently I show my age when I say "hacking" - apparently the modern term is "modding". Ah, well.

Useful link:

http://www.modmymoto.com/forums/showthread.php?t=61759

It's probably dangeous to post my firmware version. ah, well, I probably did not copy it well enough - I probably should photograph it.

R532_G_11.00.53P
BP: R532_G_11.00.5
3PBPFLEX
GSZHNANT675
VA013DSP: 631F1FOOTechnology: Quad-Band GSM


How to install .PKG files (applications) to phone:

http://www.modmymoto.com/forums/showthread.php?t=39950

Sunday, September 28, 2008

Ming Phone

I'm trying out a Motorola "Ming" phone.

Apparently it is a Linux based phone, running Java applications, that Motorola sels in Hong Kong. The phone I am trying has "China Mobile" stuff installed on it.


The web page linked to above says 'The new Motorola "MING" PDA Smart Phone is a fully integrated gadget that serves as a mobile phone, a PDA, a music player, a camera, a video recorder, a name card reader and a data storage device(up to 1GB). From now, you need nothing but Motorola "MING" PDA Smart Phone.'.

I quite like the phone - physically, it has a nice form factor. I like the stylus. But there are a few issues, mainly with the software. I will record my impressions here.

---+ User Interface

My biggest complaint is that the user interface feels a bit clunky and pasted together.

It feels a bit like an Open Source UI like KDE or Gnome on Linux, as opposed to something like Microsoft Windows: possibly more powerful, but things just don't "flow" smoothly.

For example, I keep wanting to hit the red physical button (the Power/End key) on the face to stop a call - but instead I have to hit the "End" button on the touchscreen. The red physical button seems to be reserved for power down - which means it is a waste of a button most of the time.

Ooops, I lied - you can hit the red physical button to stop a call. It just doesn't always seem to work.

Pressing the green physical button on the face (the Send key) takes you to the calls record application, where you can see the Recent Call screen with calls you have received, missed, dialed, etc. This is a reasonable choice - although it might be nice to suggest a good number to dial, like the last call received or dialed, to reduce keypresses. But, annoyingly, once you select past Dialed Calls, and scroll, you cannot hit the green physical Send key to dial it - you have to use the center push of the 5 way switch, and THEN hit call.

So, the fastest way I have found to redial a number is

0) from the home screen

1) hit the green physical Send key to get to the Recent Call window.

2) 5 way switch up to scroll around to Dialed Calls"

3) 5 way switch center to get to the Dialed Calls screen

4) assuming the call you want to redial is topmost, select it via a center push

5) and now, to this very cluttered call screen, hit the green physical Send key and/or the Call button onscreen.

Five button clicks, of 4 different buttons, to redial! My manual dexterity is challenged.

OK, I just found a shorter way:

0) from the home screen

1) hit an icon in the upper right corner of the Global Navigation bar of the touchscreen to get to the Call dialing keypad screen

2) hit the Redial button at the bottom of the touchscreen

3) now hit the Call button at the bottom of the touchscreen, and/or the green physical Send key.

This is fewer buttons, but they are further apart, and quite a challenge to enter one handed.

Moral: I want the most frequent phone operations (dialing one of my usual numbers, redialing, etc.) to be only a few keypresses away, ideally one handed.

I think what is mainly bothering me is that I have not figured out if there is a pattern to what function is on what key in what screen. Lacking such consistency in the UI, I have to study each screen quite closely - and, in fact, I was not able to figure some things out untilo I had read the manual.

RTFM?: this is one of the first phones in years that I have had to read the manual for. That is not a good thing - it means that its UI is surprising.

In fact, I was inspired to write these notes as I learned that I had to use the manual.

---+ Camera / Business Card Reader

I think they mean what American's call a "business card reader" when they say "name card reader". The camera has a switch that allows it to focus in on something like a business card.

TBD: test it out.

I would really like to be able to use it to scan receipts into an accounting program. Apparently that is not standard, and it is unclear if a Java application can be installed to use it.

---+ Petty Annoyances

Home Screen Setup won't let me get rid of the China Mobile applications.

That's typical, but annoying. I think that I have dialed China twice already by mistake.

---+ Handwriting

One of the things that I most like about this phobe is that it has a pen-like stylus, and a graffiti style handwriting recognizer. I *love* being able to write notes onto my phone, rather than text using a painful keyboard.

However, the graffiti style recognizer is very slow - even when set to fast (Applications/Setup/Input Setup/Writing Speed/Fast).

It took me 52 seconds to enter in the entire alphabet via the recognizer.

Compared to, it took me 18 seconds on the touchscreen keyboard.

And 25 seconds on my old Kyocera Smartphone, with the original Palm graffiti. Not to mention that the graffiti was more accurate.

I can't report a real measure here, but I definitely have the feeling that the Ming is slower in recognizing letters than my now-defunct AT&T Tilt / HTC 8925, a Microsoft Windows Mobile based Smartphone, which has several forms of handwriting recognition.

The Ming handwriting recognition - letter box - is far too slow for real use.
This is sad, since my Kyocera is much older, with a much slower processor - and it was quite useful.

Apparently the only way to enter symbols and special characters such as $ { } ( ) is to use a dedicated virtual keyboard. It is annoying to have to switch from handwriting, slow as it is, to keyboard.




---+ TimeZone

My phone is displaying time for a different timezone. (Not China, interestingly; actually US Central.)

Unfortunately, after clicking around for more than an hour, I still haven't found how to change the time/timezone.


... ahhh, finally I found how to change the time and timezone - using the World Time application. Obvious and appropriate, but nevertheless well hidden. Plus, of course, the usual problem: it won't allow me to specify my preferred locations as Portland OR, or Haifa, Israel - but instead insists on using neighbouring cities such as Seattle or Jerusalem. But it does support Bangalore.

---+ Color Schemes

Color schemes available are red, icy white/blue, and grey.

I understand that red is popular in China.

I'm going with white for now, although I would prefer options such as pastel green, etc. I.e. any color scheme option based on studies of what are least stressful to the eye.


---+ Accidental Keypresses

>unlock phone keys

>When the flip is closed, your phone
>automatically locks the side phone keys after
>a period of inactivity, to prevent accidental
>keypresses (for example, when carrying the
>phone is a purse or pocket). To unlock the
>phone keys, press a key two times in a row
>within four seconds.

Like that won't happen in real life, with my keys jostling against it.

Sunday, September 07, 2008

Want a GUI for linking pages, e.g. in PowerPoint

I twittered: Hyperlinking pages within a PowerPoint presentation: wanted: a graphical link editor, so I can draw arrows...

It's rather hard to express this in twitter's length limit, so let me elaborate:

I'm creating a PowerPoint document, where every slide has a link to a corresponding slide somewhere else in the document. Basically, parallel structure, with crosslinks.

It is a real pain to use PowerPoint's hyperlink feature: "all you have to do is ... drag the shape that the link will live in, write the text, mouse to Insert / Hyperlink, scroll the dialog to the slide you want to link to, fill in the text, and fill in the flyover..." Worse, I was making bidirectional links, so I had to do this twice for evety pair of corresponding slides.

I mean, this is one of the reason's people like WikiWord with CamelCase or [[links]] - wiki makes it easy to create links, even if the formatting is not so great.

But, although this could become a paean to Wiki, it will not: I'd like to make it even easier.

E.g. I would like to be able to draw arrows between slides in something like PowerPoints's Slide Sorter view.

Now, it is easy to see how drawing such arrows would establish the link, but how would you want the link displayed? I suspect that I might like to have a default object, e.g. something like a box labelled "To Corresponding", where the arrow starts; for that matter, a similar box labelled "From Corresponding" where the arrow ends. You would probably have to figure out some placement, either explicit, or added to a stcak of such links in a footer area.

This is not a paean to wiki: indeed, I would like a similar link editring tool for wiki pages.

Wiki links are nice in that they flow natirally with the text.

The links established by such a GUI would probably not be "in text flow" links; they would probably be special buttons at head or foot of page.

Extension to multinode relations are easy to imagine.