Category Archives: Agile & Architecture

Agile Development & Software Architecture

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

Service Design Patterns

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 Continue reading

Friday, June 5, 2015 in Agile & Architecture, Reviews

Next Generation SOA

This book sets out to provide a concise overview of the current state of, and best practices for, Service Oriented Architecture. While it may achieve that for some managerial readers, it is simultaneously too general for those with more background, Continue reading

Thursday, May 28, 2015 in Agile & Architecture, Reviews

Efficient Fuzzy Matching at Word Level

I’ve just solved a tricky problem with what I think is quite an elegant solution, and thought it would be interesting to share it. I’m building a system in which I have to process fault data. Sometimes this comes with Continue reading

Friday, January 16, 2015 in Agile & Architecture, Code & Development

Caught by The Law!

Don’t get too excited. Those of you hoping to see me carted off in manacles and an orange jumpsuit will be sadly disappointed… No, the law to which I refer is Moore’s Law, which states effectively, if you need reminding, Continue reading

Friday, July 18, 2014 in Agile & Architecture, Code & Development, PCs/Laptops, Thoughts on the World

Webkit, KitKat and Deadlocks!

I don’t know what provision Dante Alighieri made, but I’m hoping there’s a special corner of Hell reserved for paedophiles, mass murderers and so-called engineers from big software companies who think there might ever be a justification for breaking backwards Continue reading

Tuesday, June 17, 2014 in Agile & Architecture, Android, Code & Development, Thoughts on the World

My First Android App: Stash-It!

After a couple of months of busy early morning and late night programming, my first Android app has finally been released. Please meet Stash-It! Stash-It! responds to an odd side-effect of the difference between the iOS and Android security models. Continue reading

Thursday, April 10, 2014 in Agile & Architecture, Android, Apps, Code & Development, My Publications, Thoughts on the World

What Do I Mean by "Agile Architecture"?

A little while back I was approached by EITA Global, a global provider of on-line training, and we have now agreed that I should present for them a webinar entitled "Agile Architects, and Agile Architecture". The current plan is for Continue reading

Tuesday, March 4, 2014 in Agile & Architecture, Thoughts on the World

Break Compatibility, Lose Loyalty

For almost 20 years I have been a fan of, and borderline apologist for, Microsoft. One of the main reasons was their focus on software usability, backed up by a visible intention to preserve backwards compatibility wherever possible. While each Continue reading

Monday, May 7, 2012 in Agile & Architecture, Thoughts on the World, VMWare

Tyranny of the Colour Blind

Musings on why Microsoft are abandoning colour as a dimension for information visualisation Continue reading

Tuesday, February 28, 2012 in Agile & Architecture, Thoughts on the World

Ten Ways to Make Your iPad Work Effectively With Windows

If you’re one of those people who uses loads of Apple products, and is thinking of proposing Steve Jobs for canonisation, then you may be happy with how your iPad works, but if you’re trying to make it work effectively Continue reading

Saturday, December 3, 2011 in Agile & Architecture, iPad, Thoughts on the World

Enterprise Architecture Conference 2011 Day 3

Well the third day of EAC 2011 came and went. My talk went well. Despite the last minute scheduling change I got a decent audience, and once in front of real listeners managed to find my style and pace again. Continue reading

Friday, June 10, 2011 in Agile & Architecture, iPad, Thoughts on the World