Greg
animals language
brewing multimedia
cooking music
fiction opinion
gardening photography
general technology
history
Greg's diary
June 2012
Translate this page
Select day:
Mo Tu We Th Fr Sa Su
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30
Select month in 2012:
Jan Feb Mar Apr
May Jun Jul Aug
Sep Oct Nov Dec
Today's diary entry
Diary index
About this diary
Previous month
Next month
Greg's home page
Greg's photos
Network link stats
Greg's other links
Copyright information
    
Groogle
This view of the diary is limited to these topics: technology. There may be lack of continuity in the text, and some days may be completely missing. In case of doubt, please enable the complete display.

Friday, 1 June 2012 Dereel Images for 1 June 2012
Top of page
next day
last day

Panoramas: can of worms
Topic: photography, technology, opinion Link here

Today was the first day of winter, but the weather was very nice, sunny and windstill, ideal weather for panoramas. And tomorrow the monthly extra photos were due, so I decided to take them today instead.

After getting SaladoPlayer working, it's clear that I need to refine my panorama schedule. I wanted a higher resolution version of the verandah panorama, and Callum Gibson wanted to see some other circular panoramas apart from that one. I chose the garden centre and dam panoramas. None of them were easy.

I had multiple problems with the garden centre. Since I had enough space, I decided to locate the bottom row so low that parts of the tripod mount were visible. Bad idea, especially since I managed to get a couple of fingers in the images. Hugin found them easy to identify, and I ended up with control points like this:


  This should be control-points.gif.  Is it missing?
Image title: control points          Dimensions:          869 x 627, 98 kB
Make a single page with this image Hide this image
Make this image a thumbnail Make thumbnails of all images on this page
Make this image small again Display small version of all images on this page
All images taken on Saturday, 2 June 2012, thumbnails          All images taken on Saturday, 2 June 2012, small
Diary entry for Saturday, 2 June 2012

 

Clearly that can't work; nothing on the rotating part should be used for control points. And as this example shows, those two were the ones that Hugin decided had a “good” fit (0.10 and 0.12 pixels), while the sole real control point had an error estimated at 300 pixels.

In addition, the light conditions just Don't Work for pseudo-HDR. Some of the images came up like these two, which should stitch above each other:


  This should be garden-centre-4.jpeg.  Is it missing?
Image title: garden centre 4          Dimensions:          3024 x 4032, 2912 kB
Make a single page with this image Hide this image
Make this image a thumbnail Make thumbnails of all images on this page
Make this image small again Display small version of all images on this page
All images taken on Friday, 1 June 2012, thumbnails          All images taken on Friday, 1 June 2012, small
Diary entry for Friday, 1 June 2012 Complete exposure details

 
  This should be garden-centre-13.jpeg.  Is it missing?
Image title: garden centre 13          Dimensions:          3024 x 4032, 1920 kB
Make a single page with this image Hide this image
Make this image a thumbnail Make thumbnails of all images on this page
Make this image small again Display small version of all images on this page
All images taken on Friday, 1 June 2012, thumbnails          All images taken on Friday, 1 June 2012, small
Diary entry for Friday, 1 June 2012 Complete exposure details

 

Note particularly the brown shadows in the second image. Not only does that not look good, it makes control point recognition very difficult, and I spent over an hour putting in manual control points. In the process I discovered that my choice of f/22 for the images (because of close branches above) was not a good one, and there was considerable diffraction fuzziness. Try as I might, I couldn't get the image to close over the verandah, and I ended up with this kind of discontinuity, after nearly 4 hours of work:


  This should be garden-centre-try1.jpeg.  Is it missing?
Image title: garden centre try1          Dimensions:          11623 x 7538, 16176 kB
Make a single page with this image Hide this image
Make this image a thumbnail Make thumbnails of all images on this page
Make this image small again Display small version of all images on this page
All images taken on Friday, 1 June 2012, thumbnails          All images taken on Friday, 1 June 2012, small
Diary entry for Friday, 1 June 2012 Complete exposure details

 
  This should be garden-centre-try1-detail.jpeg.  Is it missing?
Image title: garden centre try1 detail          Dimensions:          830 x 748, 150 kB
Make a single page with this image Hide this image
Make this image a thumbnail Make thumbnails of all images on this page
Make this image small again Display small version of all images on this page
All images taken on Friday, 1 June 2012, thumbnails          All images taken on Friday, 1 June 2012, small
Diary entry for Friday, 1 June 2012 Complete exposure details

 

The dam panorama was a problem for a different reason: how do you find control points in a clear sky? Ended up patching some in roughly where it belongs, but the result is a little patchy:


  This should be dam-panorama.jpeg.  Is it missing?
Image title: dam panorama          Dimensions:          13068 x 8865, 17712 kB
Make a single page with this image Hide this image
Make this image a thumbnail Make thumbnails of all images on this page
Make this image small again Display small version of all images on this page
All images taken on Friday, 1 June 2012, thumbnails          All images taken on Friday, 1 June 2012, small
Diary entry for Friday, 1 June 2012 Complete exposure details

 

And that one, too, took about 3 hours. For some reason stitching times were extreme today, up to 1½ hours per image, and for these ones I need to do two: an equirectangular projection for SaladoPlayer and a Miller cylindrical projection for the web page.

I wanted better resolution on the verandah. Previously I have taken the images at 9 mm focal length, which required two rows of 8 images each and a zenith image (currently I have a hole for the nadir). I had guessed that a better focal length would be 25 mm, but for the first attempt I chose 18 mm, taking three rows of 15 images, a row of 8 at the top, and a single zenith image, for a total of 54.

Here I really did need the f/22 because of the increased focal length. As usual I used fill-in flash here, but I only managed 26 images before the flash overheated. Clearly the aperture didn't help, and nor does the sheer number of images. So I tried again without flash. Including a couple of doubles, that's a total of 82 images! I didn't have time (nor the courage) to stitch this one today. Mañana.

Interestingly, the flash didn't necessarily help much in the dark corner. Here first with and then without flash, with mouseover alternation:


  This should be verandah-centre-26.jpeg.  Is it missing?
Image title: verandah centre 26          Dimensions:          3024 x 4032, 2016 kB
Make a single page with this image Hide this image
Make this image a thumbnail Make thumbnails of all images on this page
Make this image small again Display small version of all images on this page
All images taken on Friday, 1 June 2012, thumbnails          All images taken on Friday, 1 June 2012, small
Diary entry for Friday, 1 June 2012 Complete exposure details

 
  This should be verandah-centre-27.jpeg.  Is it missing?
Image title: verandah centre 27          Dimensions:          3024 x 4032, 1584 kB
Make a single page with this image Hide this image
Make this image a thumbnail Make thumbnails of all images on this page
Make this image small again Display small version of all images on this page
All images taken on Friday, 1 June 2012, thumbnails          All images taken on Friday, 1 June 2012, small
Diary entry for Friday, 1 June 2012 Complete exposure details

 

Still more things to think about.


Saturday, 2 June 2012 Dereel Images for 2 June 2012
Top of page
previous day
next day
last day

A day wasted with panoramas
Topic: photography, technology Link here

The sheer processing time for my high-res panoramas yesterday meant that I didn't get them finished. Started today with the verandah panorama, which despite my fears closed pretty well, and started to stitch it round 9:00. nona ran for about 20 minutes for the 56 images, so enblend started at 9:20. It used over an hour of CPU time and ran for 4 hours and 40 minutes!

Sat Jun  2 13:58:06 EST 2012
USER   PID %CPU %MEM   VSZ   RSS  TT  STAT STARTED      TIME COMMAND
grog 75510 61.4 33.0 1577968 1026852  ??  DN    9:20AM  61:45.92 [enblend]

It produced a 1 GB TIFF output file—with the wrong dimensions! All that work for nothing.

Decided to put off the repeat attempt until this evening, when I could leave the computer to do its thing, and attended to another panorama: in the meantime I had decided that yesterday's “garden centre” panorama wasn't worth keeping except as a bad example, and had taken another one. The weather today was similar, but this time I tried real HDR techniques and also included both automatically and manually exposed images (not to mention 6 with my hand in the way Yet Again), for a total of 31 images. Once again it wasn't easy. The control point detector couldn't find any similarities in some of the views into the sky, and of course I had a lot of masking to do. But finally I was able to start stitching. And then I ran into this horrible X bug where the mouse pointer oscillates between two screens, X loops, and I have to shoot it down! And I had no backup of the project file, so all that work was lost too. Started again, but soon lost heart, and just started the verandah panorama again and left it to do its thing. But from now on I'll make frequent backups of the project files.


Sunday, 3 June 2012 Dereel Images for 3 June 2012
Top of page
previous day
next day
last day

Still more panorama processing
Topic: photography, technology Link here

Into the office this morning, and my big panorama had been stitched, all 1 GB of it:

-rw-r--r--  1 grog  lemis  1078003761 Jun  3 00:56 X00-82.tif

Only later did I discover the errors:


  This should be verandah-centre-equirectangular.jpeg.  Is it missing?
Image title: verandah centre equirectangular          Dimensions:          6512 x 3256, 5776 kB
Make a single page with this image Hide this image
Make this image a thumbnail Make thumbnails of all images on this page
Make this image small again Display small version of all images on this page
All images taken on Friday, 1 June 2012, thumbnails          All images taken on Friday, 1 June 2012, small
Diary entry for Friday, 1 June 2012 Complete exposure details

 
  This should be verandah-centre-detail.jpeg.  Is it missing?
Image title: verandah centre detail          Dimensions:          2813 x 1580, 784 kB
Make a single page with this image Hide this image
Make this image a thumbnail Make thumbnails of all images on this page
Make this image small again Display small version of all images on this page
All images taken on Friday, 1 June 2012, thumbnails          All images taken on Friday, 1 June 2012, small
Diary entry for Friday, 1 June 2012 Complete exposure details

 

Where did those stripes come from? They roughly coincide with the layers I took, but I haven't had problems like that before. But I didn't have time to look at it now; I'll revisit it later when the rest is done.

Two months later I reprocessed this image with a 64 bit version of enblend. Not only did it run about 5 times as fast, there were also no stripes. It's still not clear what caused them.

The next step was to run SaladoConverter. It started, flashed an error message and then closed the window. Repeatedly. What's the issue there? It took me a while to realize that the window isn't really intended to be looked at. To see what happens, you have to click on the File button and then select Show Log. And there was plenty to see, conveniently hidden by a tiny, not wide enough and certainly not high enough, and of course not resizeable window:

 
This should be java-error.gif.  Is it missing?
Image title: java error
Dimensions: 658 x 339, 14 kB
Dimensions of original: 658 x 339, 14 kB
Display this image:
thumbnail    hidden   alone on page
Display all images on this page as:
thumbnails    this size
Show for Sunday, 3 June 2012:
thumbnails    small images    diary entry

Fortunately you can cut and paste it (it wouldn't do to tell you the location of the log file, would it?), and there are several instances of this mess:

Processing image: /Photos/forsalad/verandah-centre.jpeg
Error: One factory fails for the operation "jpeg"
Occurs in: javax.media.jai.ThreadSafeOperationRegistry
java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at javax.media.jai.FactoryCache.invoke(FactoryCache.java:122)
at javax.media.jai.OperationRegistry.invokeFactory(OperationRegistry.java:1674)
at javax.media.jai.ThreadSafeOperationRegistry.invokeFactory(ThreadSafeOperationRegistry.java:473)
at javax.media.jai.registry.RIFRegistry.create(RIFRegistry.java:332)
at com.sun.media.jai.opimage.StreamRIF.create(StreamRIF.java:102)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at javax.media.jai.FactoryCache.invoke(FactoryCache.java:122)
at javax.media.jai.OperationRegistry.invokeFactory(OperationRegistry.java:1674)
at javax.media.jai.ThreadSafeOperationRegistry.invokeFactory(ThreadSafeOperationRegistry.java:473)
at javax.media.jai.registry.RIFRegistry.create(RIFRegistry.java:332)
at javax.media.jai.RenderedOp.createInstance(RenderedOp.java:819)
at javax.media.jai.RenderedOp.createRendering(RenderedOp.java:867)
at javax.media.jai.RenderedOp.getMinX(RenderedOp.java:2161)
at javax.media.jai.iterator.RectIterFactory.create(RectIterFactory.java:64)
at equirectangulartocubic.ImageBuffer.<init>(ImageBuffer.java:39)
at equirectangulartocubic.EquirectangularToCubic.processImageFile(EquirectangularToCubic.java:268)
at equirectangulartocubic.EquirectangularToCubic.main(EquirectangularToCubic.java:155)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.panozona.converter.utils.ComponentInvoker.invokeClass(ComponentInvoker.java:71)
at com.panozona.converter.utils.ComponentInvoker.run(ComponentInvoker.java:33)
at com.panozona.converter.utils.TasksExecutor.doInBackground(TasksExecutor.java:68)
at com.panozona.converter.utils.TasksExecutor.doInBackground(TasksExecutor.java:18)
at org.jdesktop.swingworker.SwingWorker$1.call(Unknown Source)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at org.jdesktop.swingworker.SwingWorker.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
at java.lang.Thread.run(Thread.java:619)
Caused by: java.lang.OutOfMemoryError: Java heap space
at java.awt.image.DataBufferInt.<init>(DataBufferInt.java:41)
at java.awt.image.Raster.createPackedRaster(Raster.java:458)
at sun.awt.image.codec.JPEGImageDecoderImpl.allocateDataBuffer(JPEGImageDecoderImpl.java:334)
at sun.awt.image.codec.JPEGImageDecoderImpl.readJPEGStream(Native Method)
at sun.awt.image.codec.JPEGImageDecoderImpl.decodeAsBufferedImage(JPEGImageDecoderImpl.java:210)
at com.sun.media.jai.codecimpl.JPEGImage.<init>(JPEGImageDecoder.java:110)
at com.sun.media.jai.codecimpl.JPEGImageDecoder.decodeAsRenderedImage(JPEGImageDecoder.java:46)
at com.sun.media.jai.opimage.CodecRIFUtil.create(CodecRIFUtil.java:112)
at com.sun.media.jai.opimage.JPEGRIF.create(JPEGRIF.java:43)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at javax.media.jai.FactoryCache.invoke(FactoryCache.java:122)
at javax.media.jai.OperationRegistry.invokeFactory(OperationRegistry.java:1674)
at javax.media.jai.ThreadSafeOperationRegistry.invokeFactory(ThreadSafeOperationRegistry.java:473)
at javax.media.jai.registry.RIFRegistry.create(RIFRegistry.java:332)
at com.sun.media.jai.opimage.StreamRIF.create(StreamRIF.java:102)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at javax.media.jai.FactoryCache.invoke(FactoryCache.java:122)
at javax.media.jai.OperationRegistry.invokeFactory(OperationRegistry.java:1674)
at javax.media.jai.ThreadSafeOperationRegistry.invokeFactory(ThreadSafeOperationRegistry.java:473)
at javax.media.jai.registry.RIFRegistry.create(RIFRegistry.java:332)
at javax.media.jai.RenderedOp.createInstance(RenderedOp.java:819)
at javax.media.jai.RenderedOp.createRendering(RenderedOp.java:867)
at javax.media.jai.RenderedOp.getMinX(RenderedOp.java:2161)
at javax.media.jai.iterator.RectIterFactory.create(RectIterFactory.java:64)
at equirectangulartocubic.ImageBuffer.<init>(ImageBuffer.java:39)
at equirectangulartocubic.EquirectangularToCubic.processImageFile(EquirectangularToCubic.java:268)

What a mess! And what's a factory? Anyway, these 76 lines of internals (stack trace?) are SaladoConverter's (or maybe Java's) way of saying “Not enough memory”. Did a bit of experimentation and discovered that the settings specified a limit of 1 GB of memory. Tried again with 2 GB, still with no success. I was doing this on braindeath, a Microsoft XP machine, which only has 2 GB of memory, and that was because SaladoConverter causes Java to crash on dereel, my main machine. But defake has newer software, so tried it there, and it worked! Well, it crashed in the same way it did on braindeath, but that was a separate issue.

Tried increasing memory further—defake has 3 GB of memory—and then it occurred to me that what I'm using here is virtual memory, not real. On dereel, a 32 bit machine, the address space is limited to 3 GB, so increasing virtual memory beyond that just doesn't work, but defake is 64 bits, so I set the limit to 8 GB, and it ran. Here are the panoramas. And looking down from the dam panorama is surprisingly realistic:


  This should be dam-downwards.jpeg.  Is it missing?
Image title: dam downwards          Dimensions:          1191 x 1085, 544 kB
Make a single page with this image Hide this image
Make this image a thumbnail Make thumbnails of all images on this page
Make this image small again Display small version of all images on this page
All images taken on Sunday, 3 June 2012, thumbnails          All images taken on Sunday, 3 June 2012, small
Diary entry for Sunday, 3 June 2012 Complete exposure details

 

Next came the second conversion of the verandah panorama. The first one had run for nearly 7 hours, and just by chance I saw a discussion on the Hugin mailing list about the topic, in which Cartola suggested using multiblend, something I hadn't heard of, and which is supposed to be much faster. So I went looking for it, and surprise! It was relatively easy to build (once I added a Makefile, something the author hadn't thought necessary). Tried running it:

multiblend v0.4 (c) 2012 David Horman          http://horman.net/multiblend/
----------------------------------------------------------------------------

loading 00-820000.tif...
...
loading 00-820024.tif...
couldn't malloc iamge channel (2)

And yes, the spelling is original. This was after less than 2 minutes. enblend would have required a couple of hours to get to the same point, but it didn't run into memory problems. It looks as if multiblend gets some of its speed from using much more memory. Still, now I have more “memory” on defake, so I tried it there. It reached 8 GB virtual memory size before I stopped looking, but it was finished in 27 minutes. Unfortunately, the results weren't as good. Ran enblend on defake, which also grew surprisingly big, but finished in 5.8 hours. The results were worth it, though. Here first from multiblend and then from enblend, with mouseover alternation. The results are more obvious when enlarged:


  This should be verandah-centre-multiblend.jpeg.  Is it missing?
Image title: verandah centre multiblend          Dimensions:          9116 x 5884, 11968 kB
Make a single page with this image Hide this image
Make this image a thumbnail Make thumbnails of all images on this page
Make this image small again Display small version of all images on this page
All images taken on Friday, 1 June 2012, thumbnails          All images taken on Friday, 1 June 2012, small
Diary entry for Friday, 1 June 2012 Complete exposure details

 
  This should be verandah-centre.jpeg.  Is it missing?
Image title: verandah centre          Dimensions:          9116 x 5884, 11888 kB
Make a single page with this image Hide this image
Make this image a thumbnail Make thumbnails of all images on this page
Make this image small again Display small version of all images on this page
All images taken on Friday, 1 June 2012, thumbnails          All images taken on Friday, 1 June 2012, small
Diary entry for Friday, 1 June 2012 Complete exposure details

 

  This should be verandah-centre-multiblend-detail.jpeg.  Is it missing?
Image title: verandah centre multiblend detail          Dimensions:          7500 x 2200, 1600 kB
Make a single page with this image Hide this image
Make this image a thumbnail Make thumbnails of all images on this page
Make this image small again Display small version of all images on this page
All images taken on Friday, 1 June 2012, thumbnails          All images taken on Friday, 1 June 2012, small
Diary entry for Friday, 1 June 2012 Complete exposure details

 
  This should be verandah-centre-detail-2.jpeg.  Is it missing?
Image title: verandah centre detail 2          Dimensions:          7500 x 2200, 1440 kB
Make a single page with this image Hide this image
Make this image a thumbnail Make thumbnails of all images on this page
Make this image small again Display small version of all images on this page
All images taken on Friday, 1 June 2012, thumbnails          All images taken on Friday, 1 June 2012, small
Diary entry for Friday, 1 June 2012 Complete exposure details

 

These two images were really stitched from exactly the same components. The blending at bottom right is very poor with multiblend, and interestingly some of the leaves appear to have moved left of centre. Clearly they have been chosen from other component images.

So: three days messing with this stuff, and I'm still not finished. I'll tidy up tomorrow, hopefully.


Monday, 4 June 2012 Dereel
Top of page
previous day
next day
last day

Panoramas: done!
Topic: photography, technology, opinion Link here

I had more or less tidied up my panorama stuff yesterday, so there wasn't really much left to do today, and I finally got it completed. It only took most of the day.

The real issue is the sheer time it takes to process images of this size. My verandah centre panorama is normally about 9000×6000 pixels (54 MP), and this seems to be about the largest that current web-based tools can easily handle. The full-sized images were 26046×16811, or 438 MP, and I wasn't able to display even one of them on a web browser. firefox blew up to 1.8 GB of memory, with X increasing by another 2 GB of virtual memory, and the system ground to a halt until firefox finally crashed. So I scaled the images down to the normal size, and left the big versions here and here. I wonder if it would work better (or at all) on a 64 bit machine with 16 GB or so of memory.

The conversion itself, using ImageMagick's convert, took something like 10 minutes per image. And when I was done, I discovered I had blown away the versions for SaladoPlayer, which took another half hour to fix. But finally I got things fixed (including my Makefile target to spare the SaladoPlayer versions), and I was done.

Well, almost. There are still these stripes in the one animated panorama. I suppose I should have another go at them, but I've spent enough time on this for the moment, so I'll revisit that issue later. But it's clear that I've got to a point where I should probably stop. This whole house photo thing started out as a pretty innocent documentation exercise back in September 2007, so innocent that I didn't even mention it in my diary. And yes, it's fun to have panoramas, but I think my efforts of the past weekend have reached the limits of what is feasible, from both technical and effort points of view.


Tuesday, 5 June 2012 Dereel
Top of page
previous day
next day
last day

More Friends computer stuff
Topic: gardening, technology Link here

Into town today to visit the Friends of the Ballarat Botanical Gardens. Chris Yeardley has done a design experiment for a plant database, and we wanted to show it to Yvonne Curbach, the new leader of the Growing Friends. She was interested, but more so in our examples than in the layout of the pages: the Buddleja globosa photos, she said, weren't Buddleja globosa at all, but Buddleja × weyeriana, possibly ‘Sungold’—and she dragged out a book to prove it. And yes, it's clear. Here a Buddleja globosa, a Buddleja × weyeriana and my Buddleja:

Buddleja globosa Buddleja × weyeriana
  This should be Buddleja-weyeriana.jpeg.  Is it missing?
Image title: Buddleja weyeriana          Dimensions:          4032 x 3024, 944 kB
Make a single page with this image Hide this image
Make this image a thumbnail Make thumbnails of all images on this page
Make this image small again Display small version of all images on this page
All images taken on Saturday, 1 January 2011, thumbnails          All images taken on Saturday, 1 January 2011, small
Diary entry for Saturday, 1 January 2011 Complete exposure details

 

That's particularly frustrating, because my photos are all over the web with the incorrect naming, particularly in the large Google Images. Now I have to rename everything.

The other plant that interested her was the Pieris formosa “Forrestii”, which, she says, doesn't grow well here. All well and good, but she has it on sale, so it should be described. As Mike Sorrell said, describe it as a “challenge”, and people will buy it and not be disappointed if they fail.

In any case, the general consensus is that the idea is good, and I spoke to Daniel, who does the labels. He has promised to send me a list of the plants on sale, and we'll see what we can do. I suppose we'll put up Chris' pages, though they're done with some package that I fear will be difficult for me to maintain. Still, maybe Chris will do it.

Also a bit of discussion of the new private pages. Hopefully people will be happy with the changes.


Viewing large images: an alternative
Topic: photography, technology Link here

Callum Gibson was interested by the problems viewing my 440 MP JPEG images. They crashed web browsers, and even the old xv program had memory pressure with them. Callum discovered nip2, part of VIPS, which does much better. The interface appears strange, but I haven't explored it much yet. It certainly handles the big images well. Here's a comparison of memory usage for the three programs I've tried on the 56 MB image:

Program       Memory       CPU time to display
firefox       1800 + 2000 MB (latter for X)       failed after minutes
xv       1275 MB       37 s
nip2       85 MB       38 s

I haven't really looked at what nip2 can do, but it does offer editing facilities, and in contrast to xv it allows displaying images larger than the screen, which makes it infinitely more useful for this kind of usage. I'll do some more investigation.


Wednesday, 6 June 2012 Dereel Images for 6 June 2012
Top of page
previous day
next day
last day

Android tablet: first impressions
Topic: technology, opinion Link here

Yvonne went shopping today and brought back an Android tablet which was on special at ALDI this week. It had only been on sale for a couple of hours, but she had to try all 3 shops to find the very last one available.

Why do I want an Android tablet? Why, do I want an Android tablet? I don't know, but ALDI will give me two months to find out. The price is less than that of any laptop, and it might be just what we need in the kitchen to look up the contents of the deep freeze or display a recipe, and it has a 1024×768 display that would potentially be more suited to reading e-books than the dedicated E-book readers.

But it's not as versatile as a laptop. The most obvious thing missing on a tablet is the thing that I find most important: a fast, versatile way to communicate with it—in other words, a keyboard. How do you communicate effectively with a computer without one? Yes, it has a touch screen with a simulated keyboard, like my GPS navigator does, but apart from my aversion to making smears on any shiny surface, the lack of tactile feedback means that you have to look at the thing, and it slows me down to about a tenth of the normal typing speed. Clearly a poor substitute, and on the GPS I have taken to putting in jottings with the toy keyboard and fixing them online with a real keyboard later.

But how do these things work? The instruction manual was typical ALDI: 44 pages, the first 7 generic safety and warranty information, and little to tell me about the tablet paradigm. The accuracy left something to be desired, too. In the section System Updating, apparently firmware update, I read:

  1. Decompress the lasted firmware into any folder, they should include a updating manual, uImageuImage_recovery,update,zip,AML_logo,logo,u-boot-512M-UartB.bin and so on.

But with a bit of playing around I managed to get it to do some things. If I keep it, I can see a steep learning curve ahead. Still, setting the thing up was relatively straightforward, once I discovered that I had powered down the wireless AP and not run dhcpd for some years now. But I suppose it's typical of this kind of appliance that after establishing an 802.11 connection, the Settings page told me my IP address was 192.168.1.100, when in fact it was something completely different in my class C address space. And it tells me that it is running “Ice Cream Sandwish [sic] Tablet - 20120517”.

A lot of things worked out of the box. I had originally hoped to have some kind of shell access, but looking at the thing now, I can understand why nobody wants it: as a computer, it's castrated. At any rate, most web browser functions work, and it has Adobe flash, though the SaladoPlayer panoramas, such as these ones, confuse the hell out of it. But clearly it's not intended for Android: how can you zoom out with the Ctrl key and zoom in with the Shift key if you don't have a keyboard?

Connected it to my computer by USB. Bad idea. There was clearly a misunderstanding somewhere:

Jun  6 15:27:18 dereel kernel: da2 at umass-sim1 bus 1 scbus6 target 0 lun 1
Jun  6 15:27:18 dereel kernel: da2: <Bauhn AMID-971R 0000> Removable Direct Access SCSI-2 device
Jun  6 15:27:18 dereel kernel: da2: 40.000MB/s transfers
Jun  6 15:27:18 dereel kernel: da2: Attempt to query device size failed: NOT READY, Medium not present

And the only device I got was /dev/da2. Tried a camcontrol rescan, another bad idea: it hung up the entire disk subsystem, and I had to reboot. I should try on some commercial operating system and see if it works any better there.


Thursday, 7 June 2012 Dereel Images for 7 June 2012
Top of page
previous day
next day
last day

Android tablet: more experience
Topic: technology, opinion Link here

Spent a fair amount of time playing with the Android tablet today. I'm no closer to making friends with it. The small size is about the only good thing about it, and without a keyboard I find it extremely frustrating to use. It's certainly not helped by the fact that I can only get the touch screen to respond when I touch it with my finger. A stylus has no effect. It seems that the screen is capacitative and requires a larger object. I had thought that I was selecting by touching (only) with my fingernail, but it seems it was sensing my finger and giving unexpected results. Even then, it seems that the touch area is about 6 mm in diameter, rather too large for many selections.

This particular tablet also appears to have issues with 802.11 connectivity. I had the AP in a cupboard in Yvonne's office, and I couldn't get further away than about 10 metres before I lost connectivity. So I moved the AP to the lounge room, in the middle of the house. In the same room the device shows “excellent” connectivity, but even in the next room it drops to “fair”, and back in my office (15 metres away) I'm lucky if I get any connectivity at all. OK, this AP is an ancient 802.11g device, but I don't think there's anything wrong with the signal strength, so it must be the tablet.

OK, it's a tablet, not a computer. I can play music on it, right? But first I have to load it, because, although it's based on Linux, it can't do NFS. So I went looking for music online and selected Bayern 4 Klassik. “Sorry, the player does not support this format” (MP3 stream), or “Webpage [sic] not available” for Microsoft Media Player formats. That's clearly a limit of the player, not the format, but why can't it even do MP3?


Friday, 8 June 2012 Dereel
Top of page
previous day
next day
last day

More Android “experience”
Topic: technology, opinion Link here

The more I look at this Android tablet, the more I realize it's not for me. There are two separate aspects: most importantly, the whole idea of interacting with a device by rubbing my fingers over its surface disagrees with me for a number of reasons. In addition, this particular tablet seems to be a poor representative of its kind.

The real issue remains the manner of interfacing with it. The most obvious problem is the lack of keyboard, though it goes beyond that. A couple of days ago I wrote that using a touch screen keyboard is 10 times slower than a real keyboard. That's a number I plucked out of the air, of course, so today I asked Yvonne to write 4 full lines of text with a keyboard, on paper with a pen, and with the tablet “keyboard”. With the real keyboard it took 36 seconds. On paper it took her 80 seconds, and with the Android toy keyboard it took her 237 seconds. Reading back from paper took 16 seconds.

This is roughly what I expected. OK, the Android is only about 6 times slower than a real keyboard, and I suspect that with a bit of practice she would get it down to about 4 times slower. But I don't see Yvonne gaining much experience with that keyboard; it was all I could do to get her to complete the experiment. Clearly, the fact that we both type fast makes a difference to our attitudes. It's also interesting that a real keyboard is significantly faster than handwriting, too.

Asked for advice on IRC. “Don't think of it as a computer”. And yes, there are other devices with embedded processors, like cameras and telephones. It has not one, but two cameras in it: a very low resolution 2 MP one at the rear and an even much lower resolution 300 kP one in the front. Clearly I can't think of it as a camera. And it's not a telephone either (though I don't know why not). So what good is it? Web browsing (assuming you can enter the URL), reading books, watching streaming TV, listening to music...

I had already discovered yesterday that I couldn't play Bayern 4 Klassik. Investigating that, it proved it was offering a stream of MIME type audio/x-mpegurl. The player didn't understand that, and of course it was far too leet to give any details. So I tried ABC News 24 streaming TV and ABC Classic FM. Both worked. The TV image was upside-down; I had to turn the tablet around, which rotated the web page but not the image. And the sound quality from the internal speakers was pretty rough. OK, there are headphones that come with the tablet, but they're being delivered later. So I suppose there is some value in it as a multimedia player.

What about e-books? I still had the ones I used on the ALDI e-book reader a couple of months ago, and clearly it made sense to compare them. But how could I get it into the machine? It doesn't do NFS, and I've had difficulties accessing it by USB (something that Callum Gibson suggests could be related to a missing MicroSD card). So in the end I put in a link to the directories inside the document root of my web server, a kind of poor man's NFS. Accessed the manual for my camera there and got a query popup asking me whether I wanted to open it with the browser or “Kingsoft Office”, whatever that might be.

Tried the browser first; a bit of a delay, and I was returned to the main menu page. Nothing seemed to have happened. Tried with Kingsoft Office and got a message saying that the file couldn't be opened. Then I discovered the download page, which claimed that the download had failed. How? Why should it tell me that?

Back to my real computer (I couldn't use the tablet there, because it was 15 metres from the access point), and of course I could access the document there with a web browser. Discovered that for some reason my web server had stopped logging yesterday at 17:00 after the log file rolled over. No obvious reason why, and an apachectl graceful didn't get it to start again. I had to completely stop and restart the process for that. What went wrong there?

Tried then from defake, which has the latest version of firefox. It had no difficulty loading the file and started displaying it natively. But then:

terminate called after throwing an instance of 'RSException'

This appears to be a firefox bug. Everything's happening today.

Back to the tablet in the lounge room, tried again. Back to the office, and found this message in the log file:

flachmann.lemis.com - - [08/Jun/2012:15:19:34 +1000] "GET /grog/private/Documentation/Font-HOWTO.pdf HTTP/1.1" 401 401 "-" "AndroidDownloadManager"

Huh? Yes, this directory had password protection, but I had already logged in. It seems that a different process tried to access the document, and it didn't supply the authentication information that the browser had provided here:

flachmann.lemis.com - grog [08/Jun/2012:15:17:43 +1000] "GET /grog/private/ HTTP/1.1" 200 10108 "http://wwww.lemis.com/grog/index-local.php" "Mozilla/5.0 (iPad; U; CPU OS 3_2 like Mac OS X; en-us) AppleWebKit/531.21.10 (KHTML, like Gecko) Version/4.0.4 Mobile/7B367 Safari/531.21.10"

So I linked the documentation directory to another directory in the web site tree, one that wasn't protected, and finally I was able to display the manual. And yes, it looks much better than with the e-Book reader. Here the same page rendered on the e-Book and on the tablet:


  This should be eBook-reader-2.jpeg.  Is it missing?
Image title: eBook reader 2          Dimensions:          2215 x 3853, 2592 kB
Make a single page with this image Hide this image
Make this image a thumbnail Make thumbnails of all images on this page
Make this image small again Display small version of all images on this page
All images taken on Thursday, 19 April 2012, thumbnails          All images taken on Thursday, 19 April 2012, small
Diary entry for Thursday, 19 April 2012 Complete exposure details

 
  This should be Olympus-E30-manual.jpeg.  Is it missing?
Image title: Olympus E30 manual          Dimensions:          2956 x 3946, 3792 kB
Make a single page with this image Hide this image
Make this image a thumbnail Make thumbnails of all images on this page
Make this image small again Display small version of all images on this page
All images taken on Saturday, 9 June 2012, thumbnails          All images taken on Saturday, 9 June 2012, small
Diary entry for Saturday, 9 June 2012 Complete exposure details

 

Clearly the rendering of the tablet is far superior. But somehow it still doesn't work correctly. There seems to be no real concept of pages (this image is what I got when I selected “Fit to page”, and the bottom is missing), and I can't find any way to navigate except by scraping my fingers over the surface. On a 150 page book, that can quickly get boring. Somehow both devices fail requirements in different ways: the e-Book reader has too low resolution, and the tablet is too difficult to operate.

OK, that's the web browser. There must be some software out there designed specially to display PDFs. Maybe Kingsoft Office does it, but otherwise there's bound to be something from Adobe. More investigation required. Why do I bother?


Saturday, 9 June 2012 Dereel Images for 9 June 2012
Top of page
previous day
next day
last day

Keyboard navigation through the years
Topic: technology, history, opinion Link here

My experiments with the Android tablet got me thinking. When I first came into contact with computers, a keyboard was effectively a (tele)typewriter keyboard. In the 1970s CRT monitors came into use, and keyboards gradually acquired keys to navigate the screen. In 1981, the IBM 5150 had the keys we still see on modern keyboards: 4 arrow keys, PageUp, PageDown, Home and End. The cursor keys still work. PageUp and PageDown do sometimes too, though programs like firefox don't always do what I would expect. And it seems that people have forgotten about Home and End altogether. Look at all those web pages with a link “top of page”. Why doesn't Home perform that function?

So I suppose it should come as no surprise that my Android tablet doesn't appear to have anything relating to PageUp and PageDown either, just a way to emulate the cursor keys. I still don't understand why.


Getting apps for Android
Topic: technology, opinion Link here

After establishing that the built-in PDF reader on the Android tablet was sub-optimal, went looking for something else on the web. The first attempt brought me to this viewer, which, as they say, is in beta status and very slow. I can confirm that. Not what I'm looking for. Where's the Adobe offering?

Another search then pointed me at Google Play. If I needed any confirmation that this tablet is a toy, this seems to supply some of it. So I tried that. First, I had to log in with my Google account. Since this tablet is going to be returned, I chose to add a new account. That required painful typing, as did the password entry. It confirmed that my password was strong, and after only about 5 minutes of bouncing keys (hint: keep the balls of your hands at an unnaturally high angle), I had entered the same password twice. But I couldn't continue. After much searching, discovered that the little red symbol at the end of the first password meant “Invalid character in password”. So I couldn't use “My Toyz!”, but it accepted “idiots123”.

Loading the reader was another problem. The first time I tried, from the web browser, I got a message saying “You don't have any devices”. Google tells me that this means either I didn't allow Google Play to update my information correctly, or I accessed it incorrectly, or something else. How to fix? How should it know? But I certainly didn't. And judging by the 2,540,000 results for a search on Google alone, none of which appear to have supplied a solution, many people don't.

So I tried to go via Google Play, which was really not interested in helping me find the application. Normally you'd expect a search function where you can type in what you're looking for, but in this postliterate age that's no longer desirable. So I had to wander through all sorts of junk, most of it wanting money, and somehow (probably by coincidence) found it. Selected Install:

Adobe reader could not be downloaded due to an error. (-101)

Well, I suppose after just “Due to an error”, the “(-101)” is a step in the right direction. It reminds me of the numeric error messages we got with our Tandem machines decades ago. I didn't like them then, and I don't like them now. Still, this is a well-hidden Linux box, and Linux returns negative errnos, so maybe it was that. Quick diversion to my Linux box:

=== grog@cvr2 (/dev/pts/6) /recordings 25 -> grep 101 /usr/include/sys/errno.h
=== grog@cvr2 (/dev/pts/6) /recordings 26 -> less /usr/include/sys/errno.h
=== grog@cvr2 (/dev/pts/6) /recordings 27 -> less /usr/include/errno.h
=== grog@cvr2 (/dev/pts/6) /recordings 28 -> less /usr/include/bits/errno.h
All of these found no error numbers, just further include directives
=== grog@cvr2 (/dev/pts/6) /recordings 29 -> find /usr/include/ -name errno.h
/usr/include/asm/errno.h
/usr/include/asm-generic/errno.h
/usr/include/linux/errno.h
/usr/include/bits/errno.h
/usr/include/errno.h
/usr/include/sys/errno.h
=== grog@cvr2 (/dev/pts/6) /recordings 30 -> find /usr/include/ -name errno.h | xargs grep 101
/usr/include/asm-generic/errno.h:#define        ENETUNREACH     101     /* Network is unreachable */

Why does Linux have so many convoluted header files? Anyway, the message appears plausible, but tcpdump showed that connectivity was normal, and there was no ICMP traffic. Where do you go from here? Googled for the message and got lots of vague “why not try this?”. About the only thing I got of interest was that at the time of one of the discussions (about 2 months ago), the current version of Google Play was 3.5.16, and my tablet (3 weeks old) has 3.4.7. Does that make a difference? If so, how are you supposed to update? No idea, but it probably wouldn't work.

All of this appears to have less to do with the tablet than it does with Google Toys. But why are they making it so difficult?


Sunday, 10 June 2012 Dereel
Top of page
previous day
next day
last day

More Android fun
Topic: technology Link here

Tried a little bit more with the Android tablet. When I came into the office, I had a tcpdump running which showed me continual:

08:49:58.560381 ARP, Request who-has dereel.lemis.com tell flachmann.lemis.com, length 46
08:50:07.211430 ARP, Request who-has cojones.lemis.com tell flachmann.lemis.com, length 46
08:50:07.211457 ARP, Reply cojones.lemis.com is-at 00:10:dc:59:7f:6a (oui Unknown), length 28
08:50:07.211688 IP flachmann.lemis.com.dls-monitor > 10.0.0.1.http: UDP, length 7
08:50:07.280238 IP lns1.syd6.internode.on.net > flachmann.lemis.com: ICMP host 10.0.0.1 unreachable - admin prohibited filter, length 36

flachmann is the tablet, and cojones the Internet gateway. This was while it was suspended. What's it doing trying to talk to an unknown RFC 1918 address, especially while it's supposed to be sleeping? /etc/services tells me that the port is for the Directory Location Service Monitor, whatever that is. I was not able to find any further information on the web.

Despite all further attempts, I was still not able to download Acrobat Reader. The Adobe site pointed me back to Google Play, and I couldn't convince it to download any “app”. Books worked fine, and I suppose Movies would have done so too had I been interested enough to pay money.


Checking facts
Topic: technology, opinion Link here

Talking to Yvonne about the orphaned Home and End keys this afternoon, and demonstrated my claim that firefox doesn't Do The Right Thing with those keys. I failed: it now does! Home takes you to the top of the page, and End to the bottom, just as I would expect. Further experimentation showed that it works on all browsers that I tried, with the exception of course of the Android. I wonder how long that has been going on, or whether it had something to do with the Northgate keyboards I used to use. Just another indication that you should check facts before shooting off your mouth in public.


Monday, 11 June 2012 Dereel → Snake Valley → Dereel Images for 11 June 2012
Top of page
previous day
next day
last day

Android tablet: some insights
Topic: technology, opinion Link here

I've more or less given up on this Android tablet, but I did some final checking and found this thread about it on Whirlpool. It's surprising how many people really dislike it for reasons that didn't worry me, but they did confirm that these “Error -101” messages were due to Google Play and not to the tablet in itself. Maybe they'll fix it, but it seems that a large number of purchasers will have given the tablets back by then. I'm in no hurry, so I'll contact ALDI when I have time.


Tuesday, 12 June 2012 Dereel → Melbourne → Dereel Images for 12 June 2012
Top of page
previous day
next day
last day

Trust your GPS navigator!
Topic: general, technology, opinion Link here

We had a number of other destinations in Melbourne, so I let the navigator work out the best route. It chose Carba-Tec in Springvale, and suggested a route. 28 km, 38 minutes, closely resembling this Google Map:

 
This should be Googles-route-2.gif.  Is it missing?
Image title: Googles route 2
Dimensions: 460 x 407, 108 kB
Dimensions of original: 460 x 407, 108 kB
Display this image:
thumbnail    hidden   alone on page
Display all images on this page as:
thumbnails    this size
Show for Tuesday, 12 June 2012:
thumbnails    small images    diary entry

But David had been there before, and he had a different route:

 
This should be Davids-route-2.gif.  Is it missing?
Image title: Davids route 2
Dimensions: 444 x 383, 96 kB
Dimensions of original: 444 x 383, 96 kB
Display this image:
thumbnail    hidden   alone on page
Display all images on this page as:
thumbnails    this size
Show for Tuesday, 12 June 2012:
thumbnails    small images    diary entry

Google calculates that one as 40 km and 50 minutes. My GPS navigator thinks we could make it in 44, but it's notoriously inaccurate with times. I got from home to Snake Valley and back yesterday in about 80 minutes, but the navigator claims it will take 95 minutes in each direction.

There are two problems with this: firstly, there are no good maps of Melbourne which show an overview, so you can end up with visibly suboptimal routes, and secondly it completely broke the sequence of the visits. We had already been past Casa Iberica, and were coming close to Fleischer's in Boronia, so that required resequencing. When I finally persuaded David that it was better to use the navigator than the Melway map, discovered that it had already changed the sequence.


Wednesday, 13 June 2012 Dereel Images for 13 June 2012
Top of page
previous day
next day
last day

SD card problems
Topic: photography, technology Link here

While in Melbourne yesterday I took a photo of the new façade of Fleischer's with my old Nikon “Coolpix” L1. Reading it in today with my Apple, I got a message I hadn't expected:

=== grog@boskoop (/dev/ttyp9) ~ 3 -> mkdir Photos/20120612
=== grog@boskoop (/dev/ttyp9) ~ 4 -> cp -p NIKON/DSCN0427.JPG Photos/20120612
cp: NIKON/DSCN0427.JPG: Argument list too long

NIKON is a symlink to /Volumes/128MB/DCIM/100NIKON, the directory on the SD card where the images are stored. Further investigation showed that I could copy all the other images in the directory, just not that one. So I tried to look at the image in the camera:

WARNING!!THIS CARD
CANNOT BE READ

That sounds like an error to me. Tried it on lagoon, Yvonne's FreeBSD machine with mcopy:

=== grog@lagoon (/dev/pts/2) /dereel/home/grog 6 -> mcopy a:DSCN0427.JPG .
Fat problem while decoding 22106 0
Streamcache allocation problem:A 5

On Jürgen Lock's suggestion, then tried fsck_msdosfs, which I didn't know existed:

** Phase 3 - Checking Directories
/DCIM/100NIKON/DSCN0427.JPG starts with free cluster
Truncate? [yn] n
size of /DCIM/100NIKON/DSCN0427.JPG is 2181274, should at most be 0

Clearly there were serious issues with the SD card, and I gave up the image as lost. But what a difference in the amount and reliability of information! Apple gives a completely incorrect and unrelated error message, mtools gives a relatively incomprehensible message which doesn't even identify the file, and fsck_msdosfs gives exact information about the nature of the problem. Isn't that the way it should be? Maybe the end user won't understand the message, but he could at least find somebody to interpret it for him.

And what was the problem? Dead card? I copied the entire contents to /dev/null with dd, and there were no errors. Rebuilt the file system, and I was able to use it again. But at one point, the camera froze up with symptoms of low battery. Replaced the batteries, and all was well. So why didn't it report “low battery” in time? I was using Nickel-Zinc batteries, and their voltage when removed was 1.577 and 1.598 V. That's ”discharged“ for NiZn, but it's understandable that the camera would not consider them discharged. This appears to be the first problem I've had with these batteries.


Google Maps: the pain
Topic: technology, opinion Link here

Yesterday's diary included a number of Google Maps to illustrate my point. Getting them in there wasn't easy. Yes, you can click on the Maps Link Button and get HTML to embed, but it doesn't work. There are instructions online that tell you exactly the same thing. But what you get isn't quite what you expect: the origin appears to have moved, so that the route I wanted to emphasize is partially outside the bounds of the map, and there is additional space that I didn't want in there. Moving the origin or resizing the original map and then re-linking made no difference. Here the screenshot that, in desperation, I finally used, and then the generated HTML:

 
This should be Davids-route-2.gif.  Is it missing?
Image title: Davids route 2
Dimensions: 444 x 383, 96 kB
Dimensions of original: 444 x 383, 96 kB
Display this image:
thumbnail    hidden   alone on page
Display all images on this page as:
thumbnails    this size
Show for Tuesday, 12 June 2012:
thumbnails    small images    diary entry


View Larger Map

Following the View Larger Map link gives a map that does include the entire route. Clearly there's some bug in the code generation.

But it's just a URL with GET data (lots of it), and clearly some of the parameters are clearly geographical coordinates, like &ll=-37.988046,145.128708. Spent some time playing around with all likely looking parameters, without success (though I was able to reduce the size of the map to what I wanted, something not done in the map above). More detailed instructions? The instructions page links to http://maps.google.com/help/maps/getmaps “For more detailed information on how to add a Google Map to your site”. But it appears to be just a list of case studies. You need to click on “Get Maps” to get more information, none of which seems to explain the parameters. Wouldn't it be nice to find that?


Thursday, 14 June 2012 Dereel Images for 14 June 2012
Top of page
previous day
next day
last day

FreeBSD web browser pain
Topic: technology Link here

FreeBSD doesn't have it easy with web browsers. Yes, there are versions of all major free browsers for FreeBSD, but plugins are a completely different matter. Things tend to go something like this: “To display the content, a plugin is needed. Shall I download it for you?”. “Yes”. (Time passes) “Sorry, I could not find a plugin for you”.

Most plugins can be installed with some effort: they're all individual ports, usually of the Linux plugins, in the Ports Collection, but the annoying thing is that this kind of interaction frequently doesn't tell you which plugin you need. In this case, though, it did: I didn't have Adobe flash support on teevee, my TV computer. But I've been there before. Today I got round to doing something about it. To my surprise, I discovered that the reference was to installing flash on teevee, and further investigation showed that I had no less than 3 versions of the flash plugin on the system. So I removed all of them and installed the most recent. While investigating, discovered that I didn't need to specify the name of the plugin when installing. It's sufficient to do this:

=== root@teevee (/dev/pts/4) /home/grog 6 -> nspluginwrapper -v -a -i
Auto-install plugins from /usr/local/lib/browser_plugins
Looking for plugins in /usr/local/lib/browser_plugins
Auto-install plugins from /usr/local/lib/npapi/linux-f10-flashplugin
Looking for plugins in /usr/local/lib/npapi/linux-f10-flashplugin
Install plugin /usr/local/lib/npapi/linux-f10-flashplugin/libflashplayer.so
  into /usr/local/lib/browser_plugins/npwrapper.libflashplayer.so
Auto-install plugins from /root/.mozilla/plugins
Looking for plugins in /root/.mozilla/plugins
Install plugin /root/.mozilla/plugins/nppdf.so
  into /root/.mozilla/plugins/npwrapper.nppdf.so

But after restarting, firefox still didn't want to know. Should this be done on a per-user basis? Tried that too:

=== grog@teevee (/dev/pts/5) ~ 2 -> nspluginwrapper -v -a -i
...
Looking for plugins in /usr/local/lib/npapi/linux-f10-flashplugin
Install plugin /usr/local/lib/npapi/linux-f10-flashplugin/libflashplayer.so
... already installed system-wide, skipping

Finally removed the system-wide versions (nspluginwrapper -a -r) and tried again:

=== grog@teevee (/dev/pts/5) ~ 3 -> nspluginwrapper -v -a -i
...
Looking for plugins in /usr/local/lib/npapi/linux-f10-flashplugin
Install plugin /usr/local/lib/npapi/linux-f10-flashplugin/libflashplayer.so
  into /home/grog/.mozilla/plugins/npwrapper.libflashplayer.so

After that, it worked. Why didn't it before? It looks as if it did last August, and then something changed. It wasn't firefox: that's still the version I installed then. But clearly it's a bug. Maybe it no longer looks in /usr/local/lib/browser_plugins.

Installation and reliability are two different things, of course. I was rather amused by this view of the Adobe web site:


  This should be flash-crash.gif.  Is it missing?
Image title: flash crash          Dimensions:          989 x 926, 140 kB
Make a single page with this image Hide this image
Make this image a thumbnail Make thumbnails of all images on this page
Make this image small again Display small version of all images on this page
All images taken on Friday, 15 June 2012, thumbnails          All images taken on Friday, 15 June 2012, small
Diary entry for Friday, 15 June 2012

   
This should be flash-crash-detail.gif.  Is it missing?
Image title: flash crash detail
Dimensions: 332 x 119, 8 kB
Dimensions of original: 332 x 119, 8 kB
Display this image:
thumbnail    hidden   alone on page
Display all images on this page as:
thumbnails    this size
Show for Friday, 15 June 2012:
thumbnails    small images    diary entry

Typically it requires stopping and restarting firefox to work around this bug.


Sunday, 17 June 2012 Dereel Images for 17 June 2012
Top of page
previous day
next day
last day

Lost photo scare
Topic: photography, technology, opinion Link here

Watching TV in the evening, I wanted to check on a photo I took of the mosque in Herat 45 years ago. And there were no photos!

Further checks showed that they were there, but the list of directories had become corrupted. I keep the list with RCS, and a quick comparison showed me that the entries had got lost somewhere between revision 1.2800 and the current revision 1.2878. A binary search with diff finally found:

=== grog@dereel (/dev/pts/8) ~/public_html/photos 107 -> rcsdiff -wur1.2824 -r1.2825 dirlist | grep ^- > foo
=== grog@dereel (/dev/pts/8) ~/public_html/photos 108 -> wc -l foo
     334 foo

That tallied with the log, of course:

=== grog@dereel (/dev/pts/8) ~/public_html/photos 108 -> rlog dirlist | less
...
revision 1.2825
date: 2012/05/12 05:33:22;  author: grog;  state: Exp;  lines: +1 -333
Automatic checkin

But how did I manage to remove 333 entries? They were scattered through the file, so it couldn't have been an accidental deletion of just some of the entries. I was doing some investigation of old images on that day, so it was presumably related, but I can't understand how a whole lot of entries disappeared.

Fortunately it was easy enough to fix. I wonder how you'd go about doing that kind of recovery with one of these “We know better, do it our way, don't look inside” kind of photo processing packages.


Wednesday, 20 June 2012 Dereel → Ballarat → Dereel
Top of page
previous day
next day
last day

More friends computer stuff
Topic: technology, opinion, gardening Link here

Mail from Raoul Dixon today with some surprising information. Over the past couple of weeks I have done a significant amount of work to put the Friends of the Ballarat Botanical Gardens membership database online (and password protected, of course) and create mailing lists for various categories of members. And now I discover that he had given Genevieve a memory stick with an “Excel” spreadsheet of the membership list on it so that she could extract the email addresses. Somehow old habits die hard.

He enclosed a copy of the spreadsheet in his message, which showed what could be expected: he had been maintaining his spreadsheet, but not the canonical database, and they were significantly out of sync. It took me several hours to get them back into sync again.

But why does he do this? Baby duck syndrome, I suppose. He knows how to use “Excel”, and he's comfortable with it. On the other hand, storing important data in a spreadsheet is a recipe for disaster. During my own investigation I managed to delete a couple of rows—how, I don't know. On the other hand, format conversion should be trivial.

I had looked at this before when I wanted to export in the other direction, but today I found a much better method that directly exports an “Excel” spreadsheet (MIME type application/vnd.ms-excel) or or a Microsoft “Word” document (MIME type application/msword). Some assembly required, of course, but in fact very little. The original contained code specific to the tables for which the author used it, and I spent some time making it conform with my coding conventions, but despite that I had it up and working within an hour. Here's a sanitized version. It's surprisingly simple. About the only thing I haven't worked out yet is how to get the column widths right.


Thursday, 21 June 2012 Dereel Images for 21 June 2012
Top of page
previous day
next day
last day

“Excel” spreadsheets: enough!
Topic: technology, opinion, gardening Link here

So downloading the Friends' membership database as an “Excel” spreadsheet works, but the column widths are wrong. How do I fix that? Spent some time investigating Microsoft's web site and discovered enormous amounts of documentation, something I hadn't expected. Downloaded the Excel Binary File Format (.xls) Structure Specification and only then discovered that it was 40 MB in size and 1183 pages in length, probably the longest technical document I have ever seen. Is that complexity necessary?

To play around a bit, downloaded the spreadsheet to dereel, where it didn't try to view it with “Excel”, and discovered that it was a tab-delimited document. No wonder it was so easy to generate. And of course, my document didn't describe that.

So, what do I do? Generate a real binary “Excel” spreadsheet? There are XML-based formats too, but probably my version of “Excel” wouldn't handle them. Callum Gibson suggested using perl, specifically the Spreadsheet::WriteExcel module. But I don't do perl, and I'm not sure I want to start now. Raoul had indicated that he could use the spreadsheet in the format I gave him, so I think that's as much pain as I want to get involved in. Let's move on to something else, like finally migrating my machines to 64 bit.


Friday, 22 June 2012 Dereel Images for 22 June 2012
Top of page
previous day
next day
last day

OED access made easy
Topic: general, opinion, technology Link here

Years ago I bought a copy of the Oxford English Dictionary, which I still use frequently. As I observed at the time of purchase,

  1. It is very expensive. Even at the discounted price I found, it cost me over US $200. That makes it one of the most expensive CD-ROMs around.
  2. It is supplied with a browser for Microsoft only.
  3. It seems to be impossible to access it except via the browser.

I never regretted the purchase. The once-off price is no longer a concern, but using Microsoft and a particularly emetic interface is. I had asked at the Central Highlands library and the Geelong Regional Libraries, neither of whom could help. But today Peter Jeremy pointed me at the State Library of Victoria, who do indeed have the OED online. Signed up, and hopefully I'll have a better interface in the not-too-distant future.


Android keyboard access
Topic: technology, opinion Link here

I've pretty much given up on this Android tablet. A couple of days ago I downloaded an eBook to it, only to discover that the PDF browser can't display images. In general, it doesn't do very much that I find useful, and the inability to load software on it makes it pretty much useless. But today, while looking for a lost microSD card, I found some accessories for it, in particular a USB adapter suitable for connecting a USB keyboard to the device. Tried it out, and surprise! it worked. And the browser even understands things like the Home and End keys. But it's not really clear that that buys you much, at least not without a mouse, which I didn't try. In general, it seems that tablets are solutions for problems that I don't have.


Saturday, 23 June 2012 Dereel Images for 23 June 2012
Top of page
previous day
next day
last day

Elect a brainless spammer!
Topic: general, opinion, technology Link here

Received unusual spam today:

Friend --

I’m Andy Miller, campaign manager for Joe “The Plumberâ€\\235 Wurzelbacher, who is running for Congress in Ohio’s 9th district. They say competition is good for everyone, so how about a friendly competition to see who wants a 15-term, far-left liberal out of office the most?Â

Because that’s exactly what we’re doing!

Render badly? Yes, that seems to be deliberate. Look at the markup, in particular the nested <strong> tags with no displayable content:

<meta content="text/html; charset=windows-1252"
http-equiv="Content-Type" />

Friend -- <strong><strong><br /><br
/></strong></strong>I’m Andy Miller, campaign manager for Joe “The
Plumberâ€\235 Wurzelbacher, who is running for Congress in Ohio’s 9th
district. They say competition is good for everyone, so how about a
friendly competition to see who wants <strong>a 15-term, far-left
liberal</strong> out of office the most? <br /><br />Because that’s
exactly what we’re doing!

In other words, if you don't have “Windows”, it renders incorrectly. It should render incorrectly on Microsoft machines too, since Windows 1252 is an 8 bit character set. But it doesn't for some reason, probably because Microsoft “Outlook” ignores the meta information and relies on the mail attachment type instead. Save the message to a web page and all browsers show the errors.

But who cares? Clearly there are two messages in this spam: first, Joe Wurzelbacher considers spamming people acceptable. And secondly, his campaign manager has so little idea about who the voters are that he spams people at the other end of the world. Isn't that enough reason to vote for a (gasp!) liberal? With opponents like Wurzelbacher, it's no wonder that she has been in the House since 1983. Somehow that's 14 terms (I thought a term was exactly 4 years in the USA), but they're talking about 15 terms. Freudian slip? Are they already expecting to lose?

About the only potential defence of Wurzelbacher is the possibility that this message is a deliberate attempt by others to discredit him. But there's nothing to indicate that. The link is a deep link into his web site, and he's asking for donations. God protect us from idiots like him and his campaign team.


Sunday, 24 June 2012 Dereel
Top of page
previous day
next day
last day

ImageMagick strangenesses
Topic: photography, technology Link here

Part of the photographic processing was documenting things, of course. The comparison images I did of the Hugin fast panorama preview required cropping. For them to work right, they had to be exactly the same crop. Fine, that's what ImageMagick is for. And, not for the first time, I had the devil's own job to get it to crop the way I wanted. Somehow ImageMagick thinks differently from me. In principle, I wanted a 400×330 crop, so I entered:

=== grog@dereel (/dev/pts/10) ~/Photos/20120623 23 -> convert pano-preview-1.gif  -crop 400x330+1190+400 pano-preview-1-detail.gif

But, as the documentation tells you if you bother to read it, that doesn't change the size of the canvas, and you end up with a big, empty image with a small crop visible. To do it right, you need

=== grog@dereel (/dev/pts/10) ~/Photos/20120623 24 -> convert pano-preview-1.gif  -crop 400x330+1190+400  +repage pano-preview-1-detail.gif


Monday, 25 June 2012 Dereel Images for 25 June 2012
Top of page
previous day
next day
last day

USB stick recovery: the wrong way
Topic: technology Link here

Last night David Yeardley gave me a USB stick which Microsoft recognized, but which it didn't mount. At the very least probably some kind of data corruption. So I took it with me to see if I could recover it. Started off by putting it in dereel, my main machine. I should know better; I've had difficulties in this area before with that machine, which seems to have strangenesses in the USB subsystem. I had them again today. Somehow errors on one USB device affect the entire disk subsystem, and the machine gradually ground to a halt. Left it rebooting and moved on to lagoon, Yvonne's machine. Things didn't look good:

Jun 25 09:33:18 lagoon root: Unknown USB device: vendor 0x090c product 0x3000 bus uhub1
Jun 25 09:33:18 lagoon kernel: ugen1.3: <Silicon Motion,Inc.> at usbus1
Jun 25 09:33:18 lagoon kernel: umass1: <Silicon Motion,Inc. SM321BB MEMORY BAR, class 0/0, rev 2.00/1.00, addr 3> on usbus1
Jun 25 09:33:18 lagoon kernel: umass1:  SCSI over Bulk-Only; quirks = 0x0000
Jun 25 09:33:19 lagoon kernel: umass1:1:1:-1: Attached to scbus1
Jun 25 09:33:19 lagoon kernel: (probe0:umass-sim1:1:0:0): TEST UNIT READY. CDB: 0 0 0 0 0 0
Jun 25 09:33:19 lagoon kernel: (probe0:umass-sim1:1:0:0): CAM status: SCSI Status Error
Jun 25 09:33:19 lagoon kernel: (probe0:umass-sim1:1:0:0): SCSI status: Check Condition
Jun 25 09:33:19 lagoon kernel: (probe0:umass-sim1:1:0:0): SCSI sense: UNIT ATTENTION asc:28,0 (Not ready to ready change, medium may have changed)
Jun 25 09:33:19 lagoon kernel: da1 at umass-sim1 bus 1 scbus1 target 0 lun 0
Jun 25 09:33:19 lagoon kernel: da1: < USB MEMORY BAR 1000> Removable Direct Access SCSI-0 device
Jun 25 09:33:19 lagoon kernel: da1: 40.000MB/s transfers
Jun 25 09:33:19 lagoon kernel: da1: 0MB (11 512 byte sectors: 64H 32S/T 0C)
Jun 25 09:33:19 lagoon kernel: (da1:umass-sim1:1:0:0): READ(10). CDB: 28 0 0 0 0 a 0 0 1 0
Jun 25 09:33:19 lagoon kernel: (da1:umass-sim1:1:0:0): CAM status: SCSI Status Error
Jun 25 09:33:19 lagoon kernel: (da1:umass-sim1:1:0:0): SCSI status: Check Condition
Jun 25 09:33:19 lagoon kernel: (da1:umass-sim1:1:0:0): SCSI sense: ILLEGAL REQUEST asc:21,0 (Logical block address out of range)

11 sectors? This was a 2 GB stick, once. Clearly that's the end of it; at least we know why now.

That should have been the end of it. But dereel was still running fsck in the background, and I reverted to looking at my panoramas yet again. But nona hung:

  UID   PID  PPID CPU PRI NI   VSZ   RSS MWCHAN STAT  TT       TIME COMMAND
1004 13847 13739   0  76  5 108852 76148 snaplk DN    ??    0:24.67 nona -z LZW -r ldr -m TIFF_m -o 00-28 -i 1 /var/tmp/huginpto_3ghh4

What's snaplk? Looks like something to do with file system snapshots. Further investigation showed that the process was hanging, and that fsck was currently running on that file system—and also getting nowhere: it had been running for over an hour. It seems that somehow it got into some kind of livelock situation. And, once again, things gradually ground to a halt. Processes were still working, but things like top, which I have running at 1 second intervals, slowed down until it was updating only aevery 3 minutes. Finally nothing at all worked any more. I was able to switch from X to vty0. It would have been nice to stop the fsck process, but I wasn't getting any keyboard response there either. Finally dropped into kdb, which didn't show much of interest, but I tried a kill there too. Yes, there is a kill command, though it wants a positive signal number (kill 9, not kill -9). You have to exit kdb for it to have any effect, of course, and when I did, it took about 30 seconds to see any response—but then it worked. Reboot avoided.

Started X again, umounted the /Photos file system, and ran a foreground fsck with my Log function:

# Run a command and log it to a file Log.log.
Log ()
{
  xtset `uname -n | sed 's:\..*$::'`:`pwd`: $* `date`
  (echo '=====' `date` on `hostname`: $*; $TIMECMD  2>&1 $*; echo $1 finished at `date`) | tee -a Log.log
  cd .
  }

Not necessarily the best of ideas, since that buffers output, and you don't see anything until it has filled a buffer. So I watched the ps output instead—and it didn't show anything. In days gone by it would show its progress through the individual phases, but it seems that this behaviour has changed. All I could do was watch iostat, which showed the different size I/O requests it performs in each phase. If I remember correctly, phase 1 (check blocks and sizes) reads 16 kB blocks (at least on my system), and phase 2 (check pathnames) reads 2 kB blocks. And yes, it was running. It finally finished after half an hour, logging the session and showing no errors. So: why no ps indication, and why did the background fsck have trouble? Has the file system exceeded a certain size limit? I suppose we'll find out if this happens again. Next time I'll modify the Log function to use the new stdbuf command, which changes the way streams are buffered.


Tuesday, 26 June 2012 Dereel Images for 26 June 2012
Top of page
previous day
next day
last day

Microwave oven race condition
Topic: general, technology Link here

We have a Panasonic NN-ST666W microwave oven, now about 5 years old. When it's finished, it signals the fact with 5 loud beeps in 1 second intervals. Long ago I discovered that I could silence it if I pressed the Reset button during that time. Over the years, I've made a game of trying to hit Reset exactly when the first beep starts. It's not easy: hit even a small fraction of a second too early, and it stops counting down. Hit too late and you get a longer beep.

Today, finally, I got it exactly on the end. And it reset the time of day clock! I had to set the time again. I wonder where that bug comes from.


Thursday, 28 June 2012 Dereel Images for 28 June 2012
Top of page
previous day
next day
last day

Lazy loading photos
Topic: technology, photography Link here

My diary and other web pages contain a large number of photos, and they're generally larger than those on the average web page. This makes itself noticeable when loading diary pages for previous months: even the “thumbnail” images add up to several MB of data. That's particularly silly when I include a link like this one, which doesn't include many images. Nevertheless, the whole 5 MB or so of thumbnails gets loaded.

This page is for the whole month of March 2011, and it's 5800 lines long. Clearly what's needed is to only load the images if they are to be displayed. I had some impression in the back of my head that JavaScript has an event to signify that a component is being displayed, and for a couple of days I've been trying to find more about it. I'm still no closer, but I did find a script that does what I'm looking for. It uses jQuery, which I looked at last year. I rejected it then because I was trying to learn JavaScript—something that hasn't progressed much—but this time it looked like a good idea, as the demonstration showed. It was surprisingly easy to install, though I suspect that some of my older pages may run into trouble with it. It'll be interesting to see how much faster things run now.

In passing, it's interesting to note how small jQuery is. The minimized version is only 94840 bytes in size. But then I looked at Unix kernels. Here's the kernel of the 6th edition:

  -r--r--r--   1 grog  wheel  28684 Jul 18  1975 unix


Friday, 29 June 2012 Dereel Images for 29 June 2012
Top of page
previous day
next day
last day

More lazy load stuff
Topic: technology, opinion Link here

The “lazy loading” of images was quite successful, but invariably there were issues. Peter Jeremy uses links, a lynx-like web browser with some graphics functionality. It doesn't do JavaScript, of course, so it was a good test for the code I wrote. It failed:

 
This should be seeing-double.gif.  Is it missing?
Image title: seeing double
Dimensions: 654 x 220, 54 kB
Dimensions of original: 654 x 220, 54 kB
Display this image:
thumbnail    hidden   alone on page
Display all images on this page as:
thumbnails    this size
Show for Friday, 29 June 2012:
thumbnails    small images    diary entry

The intention is that the image on the left (clearly a placeholder while I find something more amusing) should be replaced by the one on the right when it is loaded. But links showed both. Further investigation showed that the code uses CSS to display the correct image if JavaScript isn't available. Not only does links not do JavaScript, it doesn't do CSS either, so it ends up displaying both.

The code is clearly the wrong way round. It assumes that the browser does JavaScript, and uses CSS as a fallback if JavaScript isn't available. Here's the current code for the image above, which will change:

<a id="Photo-0" name="Photo-0"
  href="/grog/photos/Photos.php?dirdate=20120629&amp;imagesizes=2#Photo-0">
  <img alt="This should be seeing&#45;double.gif.  Is it missing?" border="0" id="Photo_0"
    title="Photo seeing&#45;double.gif.  Click to display a larger version of this image (654 x 220, 54 kB)."
    class="lazy" src="/grog/Photos/20120628/tiny/loading-image.gif"
    data-original="      <?php showphoto ("Photos/20120629/seeing&#45;double.gif""); ?>
    width="448" height="151"
    onmouseover="stm (exif_info [0], Tipstyle)"
    onmouseout="htm()" />
  <noscript>
    <img src="      <?php showphoto ("Photos/20120629/seeing&#45;double.gif""); ?>
    width="448" height="151" />
  </noscript>
</a>

What I should do is set the src attribute value to the correct image and replace it with JavaScript if it's available. That's doable, but I need to learn more about jQuery first.

In the meantime, considered how much data got downloaded before and how much gets done now. How do you do that? I had thought that some browsers, notably Apple's “Safari”, would tell you, but I didn't find any indication. In the end, fell back to my good friends grep and awk and attacked the server logs. The results for http://www.lemis.com/grog/diary-mar2011.php, currently my biggest diary page:

=== grog@bilbo (/dev/pts/1) ~ 4 -> grep ppp59-167-8-17.lns1.syd6.internode.on.net  /var/log/apache2/lemis.com.log > foo
(frob with Emacs to remove all but the one request)
=== grog@bilbo (/dev/pts/1) ~ 5 -> awk < foo '{sum += $10} END {print sum}'
7268507

A couple of those and a bit of calculation and I came up with:

PHP source       HTML source       Normal load       Lazy load       Improvement       Normal load       Lazy load       Improvement
(bytes)       (bytes)       (bytes)       (bytes)       (%)       (bytes)       (bytes)       (%)
                              (images only)       (images only)
274021       682097       7268507       920365       87.4%       6586410       238268       96.4%

So lazy load reduced the amount of downloaded data by a factor of 8. More interesting, though, is how much of that was photo data. I was surprised by how much bigger the generated HTML was than the original PHP source. That gets loaded in any case. Take it away and you have the values in the last two columns: a saving of over 96%! Now to fix that code.


Tablets: the down side for non-users
Topic: technology, opinion Link here

Earlier this week I returned the Android tablet to ALDI without even trying some of the features: it's so not for me that I couldn't be bothered. And the basic disadvantage (no keyboard) is so basic that I don't see myself trying another. But that doesn't mean that tablet pain is over.

A few months back I took to adding this line to my .sig:

Sent from my desktop computer.

That was a direct reference to other messages I receive with the text:

Sent from my iPad

Note lack of full stop at the end of the sentence. Originally I had written “Sent from my real computer”, but some Apple friends of mine were upset by that. It has only recently come to my attention that other people not only have trouble with the lack of a keyboard, but cause trouble for me as a result. I think I should consider “Sent from my iPad” to be warning, or at least an apology for the lack of coherence and clarity of the message. Today I received no less than 6 messages from somebody using an iPad. None was more than two lines long, though I had requested details, and none addressed my message, which presumably, in modern style, was nowhere near where the person was typing, and was also not visible on the screen.


Top of page Previous month Greg's home page Today's diary entry Next month Greg's photos Copyright information

Valid XHTML 1.0!

$Id: diary-jun2012.php,v 1.59 2013/01/07 04:42:38 grog Exp $