A Laser-Like Focus?

Market Traders, Marrakech
Camera: Panasonic DMC-GX7 | Date: 10-11-2013 17:20 | Resolution: 3067 x 3067 | ISO: 200 | Exp. bias: -66/100 EV | Exp. Time: 1/400s | Aperture: 8.0 | Focal Length: 77.0mm | Location: Djemaa el Fna | State/Province: Marrakech-Tensift-Al Haouz | See map | Lens: LUMIX G VARIO PZ 45-175/F4.0-5.6

I suspect we all have something which can attract our attention, like a missile locking onto a homing beacon, even against significant background noise. With Frances, it’s shoes. With me, it’s bread!

There was a scene in the excellent, but very complicated, Belgian conspiracy thriller, Salamander which demonstrated this. Set in a Belgian monastery, in the foreground the central character is discussing the case with his brother, formerly a policeman but now a monk. They are trying to work out who has covered up doing what to whom, and how. In Flemish, so we’re getting this through subtitles. Even by the standards of the rest of the series it’s very, very complicated.

A monk wheels a trolley through the background, destined for the refectory. I go, "Ooh, that’s nice bread"! That breaks our chain of thought and we have to go back about a minute…

I can’t remember, but I think the same happened here. This was taken across the big square in the Marrakesh Medina, through a lot of cooking smoke and dust. The original has almost no contrast, and is quite indistinct. However Capture One has worked its magic and I think it now works. What attracted my eyes in the first place? Guess…

View featured image in Album
Posted in Morocco Travel Blog, Thoughts on the World, Travel | Leave a comment

More Multishot Techniques, and Going 3D

The single shot version of median blending - central gallery of the Natural History Museum on a busy afternoon!
Camera: Panasonic DMC-GH4 | Date: 05-09-2014 16:37 | Resolution: 4608 x 3456 | ISO: 100 | Exp. bias: 0 EV | Exp. Time: 15.0s | Aperture: 11.0 | Focal Length: 12.0mm | Location: V&A Museum | State/Province: England | See map | Lens: LUMIX G VARIO 12-35/F2.8

I have been using multiple shot techniques almost as long as I have been interested in photography. My earliest stitched panoramas were in the days when you got a spare set of prints and took out the razor blade and sellotape. I also have a rather nice picture of Frances using the "soft focus" double exposure setting of the Canon AE1.

However things really got going when I moved to digital. For several years I have done stitched panoramas and HDR. I have also experimented with focus blending to generate images with infinite depth of field, although I haven’t yet got my technique quite right to get the best results. All of these are well-established, well-supported techniques with good support in terms of both documentation and software.

The digital community moves on, and new techniques and capabilities are appearing. The new Olympus OMD cameras support an in-camera multi-shot technique to build ultra-high definition files. Another new technique which has caught my eye is the idea of "median blending": take a large number of pictures of a scene with annoying moving objects, such as other tourists 🙂 and then blend them together to find the median colour at each point. As long as you have enough pictures in the stack that there are several "clear" at each point, all the annoying moving objectsTM magically disappear. The only problems with this are that it really can’t be done hand-held unless you are very steady, and the only really effective software support is in the full version of PhotoShop, which I’m loathe to invest in. Other software options are on the way, and I can then see this becoming a regular part of the toolkit.

In the meantime, I’ll continue occasional use of the original single-shot version of this process. Take a long enough exposure of a scene with annoying moving objectsTM and most of the annoying moving objectsTM disappear of their own accord, or become faint ghosts at worst.

In the last week, I’ve identified another multishot technique which may get a significant workout. We’re both fans of 3D films. In Paris, we saw an exhibition of Jacques Lartigues’ photography, which included some of his stereographic images. What the gallery had done is to scan these, and convert the slideshow to a short 3D film which could be viewed with standard cinema 3D glasses, and it got me thinking…

I now own a 50", 4K, 3D display. It’s called my television. We had already concluded that slideshows on the TV are the best way to show my photographs to Frances and visitors. The "lights on" moment was to question whether I could generate my own 3D images and display those in the same way. It turns out that this is perfectly possible, but surprisingly poorly documented on the interweb.

Option 1 – The Panasonic 3D Lens

This is easy. Micro four-thirds cameras can use a special lens from Panasonic. It’s not very expensive, and not much bigger than a lens cap. Put it on, and the camera goes into 3D mode, and creates special image files in the .MPO format. Put these on a memory stick and view them on the TV, the TV goes into 3D mode, you put on the glasses, and voila!, 3D images.

That’s the good news. The bad news is that the implementation’s a bit limited. First the lens is fixed focal length, fixed focus, fixed aperture. The focal length is 68mm-e, on the telephoto side of normal and not a length I’d often use for static subjects. The other significant limitation is that like most in-camera implementations of HDR, panoramas and so on, you just get a "pre-baked" .MPO and .JPG file, with no RAW. You have to get all the image characteristics right first time in camera, and there are some restrictions on what you can do in any case. Worse, the output is an odd 1024×1824 resolution, which isn’t even enough to fill a full HD display, let alone 4K.

It’s a useful trick to have, especially for moving subjects, and as the lens is tiny I’ll carry it around, but the conclusion is "not good enough".

Option 2 – Blending Two Images

There’s an obvious alternative, at least in principle. Take a shot, move the camera right about 6cm, and take another of the same scene. Then somehow "merge" them into an MPO file, similar to a stitched panorama.

The challenge is that it takes a lot of googling to find some software capable of doing the merge. Eventually I tracked down the brilliant little program StereoPhotoMaker ("little" is right – it’s a single 2MB executable file). It does what it says on the tin – takes a pair of images, aligns them, and saves the result to various 3D formats, including my target .MPO file. Amazingly for such a small program it’s not just limited to that, and includes a number of clever adjustment and file management features, although realistically in a RAW-based workflow you are going to do most of the image adjustment and management externally.

The great thing is that this process isn’t limited in the same way as Option 1. It works with any lens, any settings, and takes the full resolution JPGs produced after anything Capture One can do, so the resulting images are more than capable of driving the 4K TV to its full capability. Like stitched panoramas, if you’re working on a tripod there’s no theoretical reason why you can’t combine it with other multishot techniques, so you could in theory produce a 3D focus blended HDR with annoying moving objectsTM automatically removed, although that would take a bit of discipline and patience to get the right shot list :).

The only real drawback is the one common to most multishot techniques – it really requires a static scene, unless you are going to manage the moving objects via either median blending or very long exposures.

There are a few annoyances to resolve, like why my TV can see the files on a memory stick but not over the network, but I’ll get there…

This is simple, easy and requires no special equipment or technique change. All I need to do is remember to take a second shot of any suitable scene, and this approach could produce some great results.

Option 3 – Two Cameras?

Stereographic imaging has been around for about 150 years. For most of that time photographers used a simple technique which works with any subject, static or not, and doesn’t rely on clever digital manipulation. Stick two cameras side by side, and take two shots simultaneously.

Although traditionally this is done with two identical cheap cameras, I’m not convinced that’s essential. The cameras do need to use the same sensor, and the same lens, but as I have two copies of the excellent, featherweight Panasonic 12-42mm power zoom and a growing collection of Panasonic bodies that shouldn’t be a challenge. Knocking up a suitable bracket should also be fairly straightforward. In my loft I have a device which might provide a very useful basis for this – a "pistol grip" camera mount which includes a trigger for the remote release – and it might be appropriate to use standard tripod quick-release plates to speed assembly and disassembly. With the Panasonic remote release system based on standard 2.5mm jack plugs the wiring should also be fairly straightforward.

The challenge is to make sure that both cameras and both lenses are set identically. There’s obviously a simple manual process for this, but it’s potentially a bit of a faff. However I’m wondering if the Panasonics’ ability to be controlled over Wifi from a phone is the answer – develop a bit of software which reads the settings from the "master" camera and applies them to the "slave". That’s maybe a bit more work, but worth investigating.

I’m torn as to whether this is worth the effort, and the extra weight to carry, or not. I have a bit of a history of spending time and effort to do something complicated, and then not using it very much. Watch this space…

View featured image in Album
Posted in Photography | Leave a comment

It’s Not Just What You Do With It, Size IS Important

Sextant statue in front of the Liver Building, Liverpool
Camera: Panasonic DMC-GM5 | Date: 22-07-2015 19:41 | Resolution: 3423 x 4564 | ISO: 200 | Exp. bias: 0 EV | Exp. Time: 1/800s | Aperture: 5.6 | Focal Length: 14.0mm | Lens: LUMIX G VARIO PZ 14-42/F3.5-5.6

On paper, the Panasonic GM5 should be an ideal "carry around" camera for me. The same sensor and processor as the excellent GX7 and GH4 in a neat pocket-sized packaged. A proper electronic viewfinder. Access to all the Micro Four Thirds lenses. Panasonic’s engineers have even been cunning beyond the normal behaviour of camera manufacturers and although it has a different battery to its larger brethren, it uses exactly the same charger. I’d managed to get a couple of minutes "hands on" in a shop and was reasonably impressed.

Last week, driven to Amazon by their remarkably "rubbish but effective" Prime Day pseudo-sale, I bit the bullet and ordered one, in a cheerful red. The general capability and image quality, as evidenced above, is all I expected. However, after a few days in my hands it’s going to go back. The reason – size. Like all disappointing love stories, it’s complicated…

It’s Too Large…

Although the GM5 body is tiny, not much larger than a Canon Powershot S series, put a lens, any lens, on the front, and it becomes too large to put in your trouser pocket, and too large to comfortably travel in my computer bag the whole time. In addition, I really need two lenses to cover a decent zoom range. The Panasonic 14-42mm and 45-175mm power zooms are both tiny, but together they make it into a package which demands a camera bag, in reality no different to using a next size up body.

… But It’s Too Small

In use, the camera is remarkably fiddly. I could live with the small buttons, but their legends and markings have also been scaled down, to a point which is almost invisible to me when I’m wearing my glasses. Also the smaller body puts my hands much closer to the lens and viewfinder in use, and I find that with the camera to my eye my hands are fouling my glasses.

Even wearing the smallest lens I own (the 14-42 PZ), there’s a bad case of "lens too big for the camera", and it won’t even sit flat on the desk. More of an issue, there’s no easy way to carry it in the hand, except gripping right round the body or lens, which makes it difficult to raise to the eye for a quick shot without having to use both hands.

For me, however, the killer is the tiny EVF. Impressive in the shop, in real use out and about, wearing my glasses, it’s almost unusable. The effective view size is tiny, and despite several attempts at adjustment I couldn’t get the view sharp with my glasses. You get, at best, a sense of what’s in shot, rather than being able to scan the picture for meaningful details. (Ideally I would have avoided the sextant statue "fouling" the statue of Edward VII on his horse in the above shot, but I just couldn’t see that detail.) If I can’t use the EVF I’d rather have a camera with a size larger rear screen, to give me some chance of being able to use it with glasses on, and in varying ambient light conditions.

So much though I wanted to like this camera, It isn’t for me. Sometimes engineers can shoot for a compromise between two opposing targets and pull off a remarkable double. My delightfully schizophrenic Mercedes Cabrio is a case in point. Sometimes, however, you end up with the worst of both worlds, and that’s what’s happened here.

Just Right?

Ironically, the day I ordered the GM5, Panasonic announced the follow-up model to my much-loved GX7, unsurprisingly named the GX8. The improvements in pixel count, functionality and weather protection are all almost uniformly welcomed, but there’s been some criticism of the fact that the GX8 is a bit bigger than its predecessor, by about 5mm in height and depth, 10mm in width, and 75g in weight.

Now I love my GX7. It’s my favourite camera of the many I’ve owned. But it’s never been out of the house except wearing the bottom half of the "ever ready case" Panasonic supplied with it. This improves its fit to my hand no end. By my estimate, the ERC adds about 5mm to the height and depth, and about 10mm to the width, and weighs somewhere between 25 and 50g. It sounds like the GX8 is spot on!

I wait with baited breath…

View featured image in Album
Posted in Photography, Thoughts on the World | Leave a comment

Crash, Bang, Wallop, What a Picture

Fireworks Through the Liverpool Eye
Camera: Canon PowerShot S120 | Date: 13-07-2015 23:31 | Resolution: 3920 x 2940 | ISO: 80 | Exp. bias: 0 EV | Exp. Time: 10.0s | Aperture: 6.3 | Focal Length: 5.2mm | Caption: Fireworks Through the Liverpool Eye

I was literally just about to get into bed in my hotel in Liverpool last night, when the air was rent with loud explosions. Fortunately nothing sinister – just fireworks giving a cruise ship a good send-off on her voyage. My hotel room was very well positioned to watch the show, with the fireworks and the ship visible through Liverpool’s "Big Wheel".

I did have my little Canon S120 in my bag, and couldn’t resist trying to capture the scene. I had a minor panic as I ran round the hotel room and rummaged through my bag trying to find something on which to rest the camera – good fireworks photos need exposures of 10s or longer. In the end I think this one was taken with the camera propped up on the TV remote control. Not ideal, but a reasonable success given the circumstances…

View featured image in Album
Posted in Photography, Thoughts on the World | Leave a comment

Abstract from the Erg Chebbi

Abstract, Erg Chebbi, Sahara
Camera: Canon EOS 7D | Lens: EF-S15-85mm f/3.5-5.6 IS USM | Date: 17-11-2013 15:59 | Resolution: 4557 x 3418 | ISO: 200 | Exp. bias: 0 EV | Exp. Time: 1/125s | Aperture: 11.0 | Focal Length: 70.0mm (~113.4mm) | State/Province: Meknès-Tafilalet | See map | Lens: Canon EF-S 15-85mm f3.5-5.6 IS USM
View featured image in Album
Posted in Morocco Travel Blog, Travel | Leave a comment

Dark Shadows

Rock formation in the Dades Gorge, Morocco
Camera: Panasonic DMC-GX7 | Date: 15-11-2013 16:30 | Resolution: 4594 x 2871 | ISO: 1600 | Exp. bias: 0 EV | Exp. Time: 1/320s | Aperture: 8.0 | Focal Length: 175.0mm | See map | Lens: LUMIX G VARIO PZ 45-175/F4.0-5.6

I’m finally getting around to processing the remaining shots from my Morocco trip in 2013!

I had parked a number of shots from the Dades Gorge, because we were shooting almost into the setting sun, and they were either hazy, or very low in contrast and the in-camera JPEGs look almost "blown out". However it was right to hold these back until I could exert the full capability of Capture One on the RAW files. Here is one where to get the best effect I’ve really had to deepen the shadows, but I think it works, bringing out not only the shapes of the rocks, but also their shadows on one another.

Let me know what you think.

View featured image in Album
Posted in Morocco Travel Blog, Photography, Travel | Leave a comment

It’s Not the Camera, It’s the Photographer… Well, Sort Of…

Example of the rather uneven focal plane of the Canon 15-85mm lens
Camera: Canon EOS 7D | Lens: EF-S15-85mm f/3.5-5.6 IS USM | Date: 13-11-2011 15:41 | Resolution: 5184 x 2916 | ISO: 200 | Exp. bias: -2/3 EV | Exp. Time: 1/6s | Aperture: 10.0 | Focal Length: 65.0mm (~105.3mm) | See map | Lens: Canon EF-S 15-85mm f3.5-5.6 IS USM

There’s a frequently made assertion in photography books and blogs that the choice of kit doesn’t really matter, and a good photographer will make great images regardless. I don’t altogether agree. While I think it’s laudable to encourage photographers to focus on their images rather than gear acquisition, I also think this is quite misleading.

For all that’s written, you won’t find many professionals using low-end cameras to do their serious, paying work. There’s a reason why a hairdresser’s scissors cost £200, and I’m perfectly happy with a pair which costs £10. At the same time the hairdresser is probably perfectly happy with a laptop costing £200, while I expect to pay more like £2,000 for my main professional tool as a roving computer consultant, plus I’ll always have a spare of similar spec.

If you’re earning a living from photography (or doing expensive trips/shoots even on an enthusiast basis) there are some of the same considerations. One dimension is simply the durability of the more substantially-built models – you need a device which will just go on shooting after, to take my example, being bashed on a rock, in a bog, in the middle of nowhere, in Iceland. In some cases it’s about capability. OK, if you’re Jaques Lartigue you can get decent sports photographs with a view camera, but if you’re a mere mortal then you’ll get a substantially higher hit rate with the lightning autofocus and high frame rate of a Canon 7D. I love my little Panasonic GX7, but it doesn’t do action, and it doesn’t do getting wet!

Of course, there’s no guarantee that by spending more money you are getting a better tool for your work. My counter-example is, ironically, the same Canon kit. I’m becoming more and more aware of just how ghastly a lens the Canon 15-85mm is/was. Take a look at the shot above. Even at web resolutions you can see that the reflection of the house’s roof in the pond is sharp, but the roof itself, optically at the same distance and without water in the way, is blurred. The results from my newer Panasonic cameras, even with the inexpensive, diminutive 14-42mm power zoom lens, are just consistently sharper than than those from Canon even with a good, sharp, lens on it. And of course the 15-85mm died dramatically on the Iceland trip even before the incident where I knocked the 7D on a rock.

In a very real way the Canon 7D & 15-85mm combination actively held back my photography. I got into the bad habit of relying on the long zoom range, I got tired of carrying the weight, so didn’t use it as much as I should, and I’m now seeing from straightforward back to back comparisons from my Morocco trip that the image quality was definitely poorer, visible even in web-resolution versions, let alone pixel peeping at 100%. I’m coming to the conclusion that it’s either not possible to build a good zoom lens for APS-C with a good zoom range, or Canon can’t be bothered to do so.

I think, therefore, that the right way to view the camera/photographer equation is as a combination of two components. Both must exceed a certain minimum: a brilliant photographer may struggle with a very poor camera, and a poor photographer will not achieve much with an expensive camera. Beyond that, it’s a sum but where the photographer’s skill probably has a greater weight.

In terms of "what camera should I buy", the first thing to understand is that equipment purchases won’t compensate for your skill deficiencies. A camera purchase is also an engineering compromise. You need to understand your requirements (in particular what subjects and working style you want to follow), and choose kit which best fits that scope. If you really want to work without changing lenses, for example, buy a fixed lens superzoom! A little while ago I found the following wonderful decision tree. It’s designed to some extent for laughs, but there’s also a lot a truth in it. And without any cheating, it says I should go Micro Four Thirds, so it works!

https://www.andrewj.com/blog/2014/what-camera-should-i-buy/

View featured image in Album
Posted in Photography | Leave a comment

Into the (Infra)Red

From The Crane, Barbados. Taken with the infrared-converted Panasonic GX3
Camera: Panasonic DMC-GF3 | Date: 15-04-2015 14:33 | Resolution: 4202 x 2626 | ISO: 160 | Exp. bias: 0 EV | Exp. Time: 1/4000s | Aperture: 3.5 | Focal Length: 14.0mm | State/Province: Christ Church | See map | Lens: LUMIX G VARIO PZ 14-42/F3.5-5.6

Last Summer I purchased a Panasonic GF3 which had been converted to infrared photography. Like with many gadgets, there’s a period where you play with the funky effects, and I quite like the way you can get a really deep blue sky if you do a "channel swap" on the processed image. However I have now established its milieu, and that’s dramatic black and white shots of either partially cloudy skies, or graphic vegetation.

To help with this, I now have it set up to record RAW+JPG, with the picture style set to monochrome. The in-camera results may be slightly different from where the processed image ends up, but they are a decent guide.

Processing is very simple: you just use the "Color Sensitivity" mode of Capture One’s Black & White tool. This is a classic channel mixer, but one in which the channels have a dramatically different effect to on a full-spectrum original. Red affects sky shadows and midtones. Yellow controls the sky and reflected highlights. Blue controls the tone of foliage with some effect from Cyan. Counter-intuitively the green and magenta mixers have almost no effect whatsoever! I now have a sensible starting point for images like the above set up as a preset, but the sliders will usually need a tweak to get the tonal balance right, and some global levels and curves tweaks may also sometimes be needed.

I’m very pleased with the image quality. The image is lower resolution than some of my others for two practical reasons: the GF3 only has a 12MP sensor, and that an older design, and infrared light simply can’t resolve the same detail as blue with its much shorter wavelengths. In practice, however, neither of these are an issue. I bought the camera after reading an article by Ctein, who complained about "hot spotting" through some Micro Four Thirds lenses. I’ll accept that I’m not as critical as he is, but I’m extremely pleased with the results from the inexpensive Panasonic 14-42mm power zoom lens. There’s slightly more visible vignetting at the widest setting than in a colour picture, but otherwise I can’t see much wrong with this.

Now I just need some more "graphic vegetation"!

View featured image in Album
Posted in Barbados, Photography, Travel | Leave a comment

Can No-One Write A Good Book About Oracle SOA?

I’m frustrated. I’ve just read a couple of good, if somewhat repetitive, design pattern books: one on SOA design with a resolutely platform-neutral stance, and another on architecting for the cloud, with a Microsoft Azure bent but which struck an admirable balance between generic advice and Microsoft specific examples.

So far so good. However although the Microsoft Azure information may come in handy for my next role, what I really need is some good quality, easy to read guidance on how current generic guidance relates to the Oracle SOA/Fusion Suite. I identified four candidates, but none of them seem worth completing:

  • Thomas Erl’s SOA Design Patterns. This is very expensive (more than £40 even in Kindle format), gets a lot of relatively poor reviews, and I didn’t much like the last book I read by the same author.
  • Sergey Popov’s Applied SOA Patterns on the Oracle Platform. This is another expensive book, but at least you can read a decent-length Kindle sample. However doing so has somewhat put me off. There are pages upon pages upon pages of front-matter. Do I really want to read about reviewers thanking their mothers for having them before I get to the first real content? Fortunately even with that issue the sample gets as far as an introductory chapter, but this makes two things apparent. Firstly, the author has quite a wordy and academic style, but more importantly he has re-defined the well-established term "pattern" to mean either "design rule" or "Oracle example", neither of which works for me. However I really parted company when I got to a section which states "… security … is nothing more than pure money, as almost no one these days seeks fun in simple informational vandalism", and then went off into a discussion of development costs. If this "expert" has such a poor understanding of cyber-security it doesn’t bode well…
  • Harish Gaur’s Oracle Fusion Middleware Patterns. Again, this appears to have redefined "pattern" as "Opportunity to show a good Oracle example", but that might be valid in my current position. Unfortunately I can’t tell you much more as the Kindle sample finished in the middle of "about the co-authors", before we get to any substantive content at all. As it’s another relatively expensive book with quite a few poor reviews I’m not sure whether it’s worth proceeding.
  • Kathiravan Udayakumar’s Oracle SOA Patterns. Although only published in 2012, this appears to already be out of print. It has two reviews on Amazon, one at one-star (from someone who did try and read it) and one at three stars (from someone who didn’t!).

In the meantime I’ve started what looks like a much more promising book, David Chappell’s Enterprise Service Bus. This appears to be well-written, well-reviewed and reasonably priced. What really attracts me is that he’s attempted to extend the "Gregorgram" visual design language invented for Enterprise Integration Patterns to service bus architectures, which was in many ways the missing piece from the Service Design Patterns book. Unfortunately the book may be a bit out of date and Java-focused to give me an up-to-date technical briefing, but as it’s fairly short that’s not an issue.

After that it’s back to trying to find a decent book which links all this to the Oracle platform. If anyone would like to recommend one please let me know.

Posted in Agile & Architecture, Reviews, Thoughts on the World | Leave a comment

Review: Cloud Design Patterns

Prescriptive Architecture Guidance for Cloud Applications , By Alex Homer, John Sharp, Larry Brader, Masashi Narumoto, Trent Swanson

Good book let down by poor high-level structure

This is a very useful introduction to key cloud concepts and how common challenges can be met. It’s also a good overview of how Microsoft technologies may fit into these solutions, but avoids becoming so Microsoft-centric that it becomes useless in other contexts. Unfortunately, however, the overall structure means that this is not a book designed for easy end to end reading. It may work better as a reference work, but that reduces what should have been its primary value.

The book starts with a good introduction and list of the patterns and supporting "guidance" sections, and is then followed first by the patterns, and then the guidance sections (useful technology primers). This is where things break down a bit, as the patterns are presented in alphabetical order, which means a somewhat random mix of topics, followed by the same again for the guidance sections. I attempted to read the book cover to cover over about a week and I found the constant jumping about between topics extremely confusing, and the constant repetition of common content very wearing. In addition by presenting the guidance material at the end it is arguably of less value as most of the concepts have already been covered in related patterns. Ultimately the differentiation between the two is very arbitrary and not helpful. For example is "throttling" really a pattern or a core concept? If "throttling" is a pattern why is "autoscaling" not described as a pattern?

The book would be about 10 times better if it were re-organised into half a dozen "topics" (for example data management, compute resource management, integration, security…), with the relevant guidance and overviews first in each topic, followed by the related patterns which could then be stripped of a lot of repetitive content, and topped off with common cross-reference and further reading material.

This is not just a book about cloud specifics. A lot of the material reflects general good practice building and integrating large systems, even for on-premise deployment, and reinforces my view that "Cloud" is just a special case of this established body of practice. As a result there’s quite a lot of overlap with older pattern books especially Enterprise Integration Patterns, which is also directly referenced. The surprisingly substantial content related to message-based integration, confirms my view that this is still the best model for loosely coupled extended portfolios, but I would have appreciated more on the overlap with service technologies.

The overlap with other standard pattern books might have been managed just by referencing them, but this would play against Microsoft’s objective of making this material readily available to all readers at low cost.

The book is spectacularly good value for money, especially as you can download it free from Microsoft if you are prepared to do a bit of juggling with document formats. That it forms part of a series also available under similar options is even better. This perpetuates Microsoft’s tradition of providing cheap, high-quality guidance to developers and sits in sharp contrast with the high costs of comparable works from not only independent publishers (which may be understandable) but other technology vendors.

The book does assume some familiarity with Windows Server concepts, for example worker roles vs machine or application instances, and doesn’t always explain these terms. A glossary or an clear reference to a suitable external source would have been useful.

At a practical level I’m pleased to see that the Kindle version works well, with internal links hyperlinked and clear diagrams, plus access to each pattern directly from the menu in the Android Kindle app. Offset against this are a few cases of poor proofreading related to problems with document format conversions, in particular with characters like apostrophes turned into garbage character strings.

Overall I found this a useful book, and I’m sure it will become a valuable reference work, but I just wish the authors and editors had paid more attention to the high-level structure for those trying to read it like a traditional book.

Categories: Agile & Architecture and Reviews. Content Types: Book, Computing, and Software Architecture.
Posted in Agile & Architecture, Reviews | Leave a comment

Things Which Really Bug Me About the Kindle

I  read a lot using the Kindle applications for Android and PC. While there’s a lot which is good about that process there are a number of things which really bug me. Some of these look incredibly simple to resolve, from my standpoint as a competent software developer, and I have to question whether Amazon actually care about getting the user experience right…

Changing Font Size

The current behaviour of the font selection option is completely brain-dead, especially when switching between documents. Suppose I open one book which has been composed using a large base font. The text comes up very large and I set my font size to 2. I then open a second book, which has been composed using a smaller base font, and I have to change the font setting to 4 to get back to a size I’m comfortable with. Open the first document and the text is now enormous!

The application should actually work as follows. I would set a preferred font face and size and that would just be used automatically for all the bulk text in all documents. Anything styled with style tags like normal,  body text,  list,  should just use my selected font and size. Automatically. Paragraphs with heading styles would use progressively larger fonts, and the style might change to an author preference, although I should be able to over-ride that.

If that’s not possible, although I really don’t understand why not, then any change I make to my settings should apply only for a single document, and my settings for each document should be remembered if I switch between them. If I have to set size 2 in one document and size 4 in another to get a consistent reading experience the app should remember that.

Have the developers ever actually used the devices and apps with real eBooks?

Collections and Tagging

When,  early on, you have half a dozen books in your Kindle account, the lack of effective library management tools is not too much of an issue. When, like us, that library has grown to several hundred titles this starts to be a major problem.

Amazon allege that the solution is to use collections. That might help, if it weren’t for another brain-dead implementation. Collections on the physical Kindle are a local data structure, effectively invisible to other devices. In the Android app they are quite a usable feature, and sync with other Android devices, but not other platforms. On the PC you can create local collections, and allegedly import collections from physical Kindles (although I haven’t got that to work) but the collections are then completely independent of all other devices.

Is this really the best that can be achieved by one of the leading cloud services companies? Surely it’s not rocket science to come up with an architecture for collections / lists and tags, which is synchronised with the cloud account from and to all devices on the account? (And I note that there can’t possibly be any real technical issue, because notes and highlights synchronise perfectly across all my devices…)

Again, this looks like the developers are either stupid, or lazy, or completely indifferent to the implications of their substandard work.

Book Descriptions

If you are reading a book on the Kindle, you can quickly pop up some key descriptive details. Relatively recently Amazon have supported the same feature in the Android app, although it doesn’t work for books which aren’t open. On the PC it’s not supported at all.

There are three sets of books for which I would like to be able to quickly access descriptive details, ideally on- and off-line:

  • Books I have downloaded to my device, but which I’m not currently reading
  • Books in my archive, to remember which is which
  • Books which are being recommended by Amazon within my mobile reading experience, e.g. the recommendations panel on the home page of the Kindle app.

No, I do NOT want to "view in store", especially if it’s a book I’ve already downloaded and I’m just not 100% which is which from the cover image, and I’m offline. And I don’t really want to have to open up a book to see it’s description. Surely it wouldn’t be rocket science (again) to download the key descriptive details for all the books in the above categories at every sync, and have those details available via a long press from the overview pages just like they would be from within an open book?

Position References

Some books insist on referring internally by using a page number from the printed edition. If you’re referring to a specific position in a book in the outside world, this is also still a common practice (and probably the only viable one unless the book has quite a fine-grained and well-numbered heading structure). Kindle insists on referring to and navigating locations using an internal "position" reference, which not only has zero relationship to the outside world, but can change from time to time depending on font choice and other settings. Therefore unless you have access to the physical edition as well as the eBook, you’re stuffed. It’s not even easy if you have a relative reference (e.g. page 200 of 300), because you have to get the calculator out to work out that this is equivalent to "position 3400 of 5393".

It would undoubtedly be better if authors creating Kindle versions of technical and reference books made sure all internal references were simply hyperlinks to the right point in the document. However I’m sure Amazon could help as well. How about, for example, holding the page count of the physical edition(s) against the Kindle version, and modifying the "Go To" dialog so that I can specify the target position as a percentage, or as a page number relative to the page count for the physical edition?

The Back Button

The physical Kindle and all Android devices have a "back" button, which should take you back steadily through your work contexts, like the back button on a browser. On the Kindle, or the PC app, this behaves as you’d expect. If you follow a link within a book, then it takes you to a new page, but the back button takes you back to the page you were previously reading. Only when you get back to your first context does it take you right out to the menu. Not on Android. Click on a link to an external source, and the back button takes you back into Kindle at the right point. So far so good. Click on an internal link, and the back button takes you right out of the book. To make matters worse it has now remembered the location you navigated to as your "current" location, so to get back to where you were previously you have to navigate manually. Completely useless, and presumably about 1 line of code to fix properly.

Conclusions

I don’t think I’m being unreasonable here. Amazon make a vast amount of money out of the Kindle platform, and could make more if it is a sound platform for reference books as well as novels and the like. None of these issues would take a vast amount of effort to fix, just the will to be bothered and do a professional job. Amazon’s persistent indifference on these points reveals an attitude which bugs me even more than the issues themselves.

Posted in Agile & Architecture, Thoughts on the World | Leave a comment

Review: Service Design Patterns

Fundamental Design Solutions for SOAP/ WSDL and RESTful Web Services, By Robert Daigneau

Good book, but some practical annoyances

One of the most influential architecture books of the early 00s was Enterprise Integration Patterns by Gregor Hohpe and Bobby Woolf. That book not only provided far and away the best set of patterns and supporting explanations for designers of message-based integration, but it also introduced the concept of a visual pattern language allowing an architecture (or other patterns) to be described as assemblies of existing patterns. While this concept had been in existence for some time, I’m not aware of any other patterns book which realises it so well or consistently. The EIP book became very much my Bible for integration design, but technology has moved on an service-based integration is now the dominant paradigm, and in need of a similar reference work.

The Service Design Patterns is in the same series as the EIP book (and the closely related Patterns of Enterprise Application Architecture), and overtly takes the earlier books as a baseline to build an additional set of patterns more directly related to Service-oriented integration. Where the earlier books’ content is relevant, it is just referred to. This helps to build a strong library of patterns, but also actively reinforces the important message that designers of newer integration architectures will do well to heed the lessons of previous generations.

The pattern structure is very similar to the one used in the EIP book, which is helpful. The "Headline" context description is occasionally a bit cryptic, but is usually followed by a very comprehensive section which describes the problem in sufficient detail, with an explanation of why and when alternative approaches may or may not work, and the role of other patterns in the solution. The text can be a little repetitive, especially as the authors try to deliver the specifics of each pattern explicitly for each of three key web service styles, but it’s well written and easily readable.

This is not a very graphical book. Each pattern usually has one or two explanatory diagrams, but they vary in style and usefulness. I was rather sad that the book didn’t try to extend the original EIP concept and try to show the more complex patterns as assemblies of icons representing the simpler ones. I think there may be value in exploring this in later work.

One complaint is the difficulty of navigating within the Kindle edition, or in future using it as a reference work. Internal references to patterns are identified by their page number in the physical book, which is of precisely zero use in the Kindle context. In addition the contents structure which is directly accessible via the Kindle menu only goes to chapter level, not to individual patterns. If you can remember which chapter a pattern is in you can get there via the contents section of index, but this is much more difficult than it should be. In other pattern books any internal references in the Kindle edition are hyperlinked, and I don’t understand why this has not been done here.

To add a further annoyance, the only summary listings of the patterns are presented as multiple small bitmapped graphics, so not easily searchable or extractable for external reference. An early hyperlinked text listing with a summary would be much more useful. Please could the publishers have a look at the Kindle versions of recent pattern books from Microsoft Press to see how this should be done?

A final moan is that the book is quite expensive! I want to get all three books in the series in Kindle format (as well as having the hardcover versions of the two earlier books, purchased before ebooks were a practical reality), and it will cost over £70. This may put less pecunious readers off, especially as there’s so much front matter that the Kindle sample ends before you get to the first real pattern. That would be a  shame, as the industry needs less experienced designers to read and absorb these messages.

These practical niggles aside, this is a very good book, and I can recommend it.

Categories: Agile & Architecture and Reviews. Content Types: Book, Computing, and Software Architecture.
Posted in Agile & Architecture, Reviews | Leave a comment