• Subscribe

    Subscribe to This Week In Panospace by eMail.
    Subscribe in a reader
  • License

    Creative Commons License
    This work is © 2008-2012
    by Yuval Levy
    and licensed under a
    Creative Commons License.
  • Entries

    June 2009
    M T W T F S S
    « May   Jul »
  • Archives

One Month With Ubuntu

ascona_hugin_previewI’ve been traveling the last four weeks, away from my workstation. My notebook is slowly dying from a dry joint under the ICH7 that seems to affect many similarly designed models. It is no longer usable in Windows where a CPR-like ritual around the touchpad is required to unfreeze the machine every few key strokes. Ubuntu deals better with the issue, disabling the faulty component and going on with life:

[  191.052015] uhci_hcd 0000:00:1d.0: host controller process error, something bad happened!
[  191.052076] uhci_hcd 0000:00:1d.0: host controller halted, very bad!
[  191.054019] uhci_hcd 0000:00:1d.0: HC died; cleaning up

So how was life with Ubuntu? Mostly good! I rebooted into Windows only once in an attempt to diagnose a wireless connection (the problem turned out to be incompatiblity between my North American gear and my friend’s European gear. Changing the access point’s channel solved it and I could continue to use Ubuntu as usual).

Keeping in touch with the office was easy. OpenOffice, Firefox, Thunderbird, Skype are mostly the same across platforms. There is no reason for a small business to spend on office sofware licenses nowadays.

My experience with scripting / web dev tools was mixed. There is an alternative to every tool I use in Windows, but it is not the same, requiring the user to adapt. Some of the adaptation is painelss and actually pleasant: Gedit (Ubuntu) and Kate (Kubuntu) are much better than the default text editor that comes with Windows. But I still miss PuTTY‘s convenient copy&paste interface (I know about the third mouse button, but that button does not exist on the notebook). I am also missing the sleek integration of Subversion (TortoiseSVN) and Secured Copy Protocol (WinSCP) in the system’s file browsers. I ended up using more of the command line (CLI), particularly rsync over ssh.

Over four weeks I produced about 47 GB of media – mostly video. I did not compromise on quality (1920×1080 AVCHD 24Mb/S). Because of the broken USB I could not get the videos onto the notebook. The 32GB flash memory of the camcorder lasted until the last week, and then I used an additional SD card. It would not have made a difference anyway – the notebook is too weak to edit FullHD video.

I did copy the pictures from the digital camera to the notebook, using a Compact Flash to PCCard interface.

I processed the RAW files with RAWstudio. I built the latest stable release (1.2) from source (Ubuntu currently distributes version 1.1) and I was pleasantly surprise by the speed of the interaction, the clean interface and the pleasant results. I also noticed some other positive details such as sensible default storage locations. I did not convert / process fisheye images because correction of chromatic aberration is not activate yet; and I bumped into a minor glitch: Hugin reported a few of the pictures from the same batch as being rotated 90°, although at the time of shooting they had the exact same orientation. I will investigate and eventually provide the RAWstudio developers with a complete analysis  / bug report.

Hugin performed heavy duty, including the stitching of 294 pictures. Disk space was the only limit. I have ordered a new hard disk and will re-process the images on the workstation once it arrived.

I will also have to do most of the image editing on the workstation. I tried hard to use the GIMP for masking, but I ended up being frustrated at how slow I am with it, so I did other things in the meantime, leaving the image processing task for home.

I’ve tried to get tha antipasto-arduino IDE to build on Ubuntu because I wanted to implement a few new ideas on the Arduino + TouchShield. The guys at Liquidware were very supportive and together we came close, but it still does not build. I will have to use the Windows workstation for this one as well. The experience helped me discover the joys of git, and I also enjoyed this talk by Linus Torvalds.

Last but not least, I’ve participated on and off to the discussion on Hugin’s mailing list and I codified a collaborative policy for the bug tracker. I hope it will draw more community members into the task of sorting out bugs and help the developers keep the overview.

That was it for my first month ever with Ubuntu only. Did it work? Yes. Did it make a difference? a little. Operating systems are interchangeable nowadays, there are equivalent applications on any of them and the choice boils down to user preference (i.e. Usability with a capital U) and the limited availability of a few killer apps (which again are defined by the users and what they want to accomplish). And what count most for a user on the road is battery life, and after years of average 2-3 hours (with the occasional outlayer) there finally is some good news for the mainstream on that front. Other than battery life, my killer app at the moment is still Photoshop.

Home Sweet Home – Almost

The main leg of our trip back home was meant to be a simple non-stop transatlantic flight, from Basel-Mulhouse to Montréal. Roughly eight hours. 24 hours and two hotel rooms later we’re still on the road because of a massive delay at the airline – the second one I experience with this same airline (on a different route).

To be fair, the people around us have been forthcoming and have tried to help within the limits of the competences given to them. They have also given priority to travelers with babies and children when it made sense.

There were seven babies on this airplane, and given what I have seen from the other six I feel blessed with ours who went patiently through the horrible day and even slept through the flight.

Even traveling “Club” (the airline’s attempt equivalent to business class) did not shield us from the discomfort of waiting without knowing. I’ve been on delayed flights many time, but what really struck me throughout this experience is how much of the uncomfortable waiting could be avoided if the impromptu problem solving would be replaced with proper contingency planning.

Most telling was the moment I witnessed just after landing from my first row one seat. When the flight director opened the plane’s door, he briefed the ground personnel. They were visibly surprised and overwhelmed by the task at hand. The plane was due for 16h55. Instead it landed at 1h38. It does not take Einstein to understand that connecting passengers will need a place to stay overnight. It took over two hours to organize hotel rooms for about 30 stuck passengers. Couldn’t the relevant information be gathered and relayed on departure? Couldn’t the eight hours in the air be used to prepare things?

I used a hotspot at Basel airport to inform our family not to pick us up and not to worry. Can’t wake them up at 2AM. Had I known that it would take the airline ground stuff two additional hours to figure out things, I would have done this myself at the same hotspot and presented the airline with the bill. I wonder if the airline is aware that the extra time is not only inconvenient for passenger, but also expensive overtime to be paid? Or maybe it is intentional, to dissuade passengers from using the “service” and send them away, on their own?

The Ergonomics Of Panoramic Interactions Continued

TouchShield SlideBruno’s comment about touch-screens got me thinking. While most users still interface with the computer via mouse, keyboard and a one-way display, things are going to change fast in the coming years. The old KVM (Keyboard/Video/Mouse) user interface is being replaced by more powerful and natural tools. The point&click / drag&drop metaphors popularized by Apple’s Macintosh since 1984 after the invention of the ball mouse at the Xerox Parc are due for an update. Ever smaller and powerful mobile devices, accelerometers, touch screens, 3D screens. How will they interface between the user and the VR Panorama?

The solutions I have observed so far simply hard wire the behavior of these new devices to the mouse. This is no different than my 1998 Wacom Tablet (which still works!). The simulation of the mouse limits the interaction designer to define the device in relationship to mouse behavior and either mimic it or its inverse.  After half a century it is time to break those limits; to look at the interactions anew and to design device/context specific metaphores; to mold the intearction around the human. I see a combination of relevant factors, including the device’s physical characteristics and the context in which it is used. A touch-screen on a desktop requires a different metaphore than one on a smartphone. And what to do when two competing input devices with conflicting metaphores are attached, such as an accelerometer (3D mouse) and a touch-screen?

For the desktop touch-screen and for the laptop touch-screen I tend to agree with Bruno that the Google StreetView metaphore is the way to go, at least until the computer can discern if the index finger is at a nearly perpendicular angle and fully straightened as in a pointing; or it has a smaller angle and a slightly more curved posture as in a natural dragging movement.

Things become more touchy (pun intended) with mobile devices which typically have an accelerometer and a touch-screen. Which one should drive the VR panorama interaction and how? To me the most natural would be to use the accelerometer and point the iPhone in the direction I want to see, but in some situation such explicit movements are embarassing, unconvenient, inappropriate, or all of the above; and the more discreet dragging by finger on the touch-screen is the right way to go.

Whichever it is, I think modern panoramic viewer should make provisions to accommodate both behaviors – dragging and pointing. Ideally the system would tell the VR player in what context it is playing and the VR player would adapt, using an appropriate metaphores. Currently the browser only let the VR player assume the presence of a pointing device, and the devices all interface by mimicking the mouse. In the current situation making the mouse behavior a parameter, as implemented in the KRpano viewer, is the best thing to do. When a reliable detection mechanism can tell the player what device is attached, the choice may be automated.

I look forward to see the results of León’s Google Summer of Code project adding QTVR playback and Wiimote interaction capabilities to the VLC media player. In the meantime I got help from the Liquidware guys in my still unsuccessful attempts to make their Antipasto Arduino IDE work on my Ubuntu notebook. The TouchShield Slide touch-screen rocks and I am keen to toy on new interfaces with it.

Revisting Old Places

hugin-logoI’m currently at my parents in southern Switzerland. Usually this is a wonderful place with plenty of sunshine (there is an institute for solar research just around the corner). For the past three days it was under torrential rain (more than 150 liters per square meter in 12 hours). The rain has not stopped Fulvio Senore and Alessandro Ugazio from giving us a warm welcome on a train stop in Domodossola, Italy (restaurant panorama is in the making; the RAW files have been converted with RAWstudio; Hugin has stitched them; I’m struggling with the masks and layers in GIMP). My parents are enjoying their grandchild.

I had plans to meet old school friends and to take some pictures in old and familiar places. No pictures under the rain. Instead, I revisited a different kind of old and familiar places. It has been about a year since the last time I’ve looked back at the effort I initiated to document the Hugin build process. My hope for that page (and for the build and release process) was that it would take care of itself over time. While there is now a thriving community of builders and testers, some part of that effort had not materialized as I hoped. During the last LGM I discussed some of the learnings with Pablo and we’ll start implementing them after the 0.8.0 release. In the meantime, I started updating the page.

That page, with the pages linked from it, represent an important step to me: the stepping stone from user to contributor. When I joined Hugin, I was just a user. Actually, I was a pain in the neck user, asking for stuff all the time. I wish I could have contributed stuff, but I lacked the necessary knowledge and the learning curve looked daunting steep. So I contributed my chutzpah and organized our first participation to the Google Summer of Code in 2007. One feedback we got from the first crop of GSoC students was that the learning curve is daunting steep. So I’ve pushed and pulled around the community to ask those with the knowledge to document it into that bare structure I’ve started. With the help of many community members, and support from the core developers, we put together a documentation self-explaining enough to get more users over that stepping stone. It did not take long until it was picked up and we now have a thriving community of builders and testers. Moreover the instructions helped new developers (such as the 2008 and 2009 Google Summer of Code students) to get faster over the learning curve and become productive faster.

The build process is now self-sufficient. When dependencies change or features are added, the feedback loop between developers and builders is fast and efficient. The documentation still needs updating now and then. I look forward for the 0.8.0 release so that we can move on to improve the release cycle (and the closely related debugging cycle) along similar lines. But first, I look forward for the weather to clear, and to spend some quality time in the place of my youth.

The Ergonomics Of Panoramic Interactions

Apple under the ShowerGoogle StreetView has contributed immensly to the popularity of virtual reality (VR). Kudos to them. They keep adding smart and complex navigation improvements. When will they realize that the single most effective and easy to implement improvement to StreetView’s navigation would be to invert the movement of the mouse? To the vast majority of humans it is more intuitive to move the mouse to the point of interest. With StreetView today it is the other way around: to look up you have to drag the mouse down and to look right you have to drag it to the left. In the past decade Apple understood the ergonomics very well and established the best practice with QuickTimeVR, the ancestor technology underlying VR interaction. The vast majority of panorama viewers use this intuitive way of navigating the panorama. Why not StreetView?

MathMap for Windows

So you want to do perspective manipulations as shown on this video but you’re stuck with Windows? Now you can say thank you to Mark Probst.

Grab the latest GIMP for Windows installer. Install it (all into default locations).

I have prepared an installer of MathMap (v 1.3.4-alpha2). Grab it and install it. That’s it: start the GIMP and MathMap should be in the menu Filter -> Generic -> Mathmap. Have fun!

Note that Windows support is experimental and some functionalities may not work as they do in Linux. Also I am currently traveling and my notebook only has Ubuntu available. I produced this installer remotely and could not test it. For details, check the MathMap GoogleGroup.

PVsqueezed to be optically pleasant.