Useful Links: September 2010

This content is 14 years old. I don't routinely update old blog posts as they are only intended to represent a view at a particular point in time. Please be warned that the information here may be out of date.

A list of items I’ve come across recently that I found potentially useful, interesting, or just plain funny:

Keeping Windows alive with curated computing

This content is 14 years old. I don't routinely update old blog posts as they are only intended to represent a view at a particular point in time. Please be warned that the information here may be out of date.

Like it or loath it, there’s no denying that the walled garden approach Apple has adopted for application development on iOS (the operating system used for the iPhone, iPad and now new iPods) has been successful. Forrester Research talk about this approach using the term “Curated Computing” – a general term for an environment where there is a gatekeeper controlling the availability of applications for a given platform. So, does this reflect a fundamental shift in the way that we buy applications? I believe it does.

Whilst iOS, Android (Google’s competing mobile operating system) and Windows Phone 7 (the new arrival from Microsoft) have adopted the curated computing approach (albeit with tighter controls over entry to Apple’s AppStore) the majority of the world’s computers are slightly less mobile. And they run Windows. Unfortunately, Windows’ biggest strength (its massive ecosystem of compatible hardware and software) is also its nemesis – a whole load of the applications that run on Windows are, to put it bluntly, a bit crap!

This is a problem for Microsoft. One the one hand, it gives their operating system a bad name (somewhat unfairly, in my opinion, Windows is associated with it’s infamous “Blue Screen of Death” yet we rarely hear about Linux/Mac OS X kernel panics or iOS lockups); but, on the other hand, it’s the same broad device and application support that has made Windows such a success over the last 20 years.

What we’re starting to see is a shift in the way that people approach personal computing. Over the next few years there will be an explosion in the number of mobile devices (smart phones and tablets) used to access corporate infrastructure, along with a general acceptance of bring your own computer (BYOC) schemes – maybe not for all organisations but for a significant number. And that shift gives us the opportunity to tidy things up a bit.

Remove the apps at the left side of the diagram and only the good ones will be left...A few weeks ago, Jon Honeyball was explaining a concept to me and, like many of the concepts that Jon puts forward, it makes perfect sense (and infuriates me that I’d never looked at things this way before). If we think of the quality of software applications, we can consider that, statistically, they follow a normal distribution. That is to say that, the applications on the left of the curve tend towards the software that we don’t want on our systems – from malware through to poorly-coded applications. Meanwhile, on the right of the curve are the better applications, right through to the Microsoft and Adobe applications that are in broad use and generally set a high standard in terms of quality.  The peak on the curve represents the point with the most apps – basically, most application can be described as “okay”. What Microsoft has to do is lose the leftmost 50% of applications from this curve, instantly raising the quality bar for Windows applications. One way to do this is curated computing.

Whilst Apple have been criticised for the lack of transparency in their application approval process (and there are some bad applications available for iOS too), this is basically what they have managed to achieve through their AppStore.

If Microsoft can do the same with Windows Phone 7, and then take that operating system and apply it to other device types (say, a tablet – or even the next version of their PC client operating system) they might well manage to save their share of the personal computing marketplace as we enter the brave new world of user-specific, rather than device-specific computing.

At the moment, the corporate line is that Windows 7 is Microsoft’s client operating system but, even though some Windows 7 tablets can be expected, they miss the mark by some way.

Time after time, we’ve seen Microsoft stick to their message (i.e. that their way is the best and that everyone else is wrong), right up to the point when they announce a new product or feature that seems like a complete U-turn.  That’s why I wouldn’t be too surprised to see them come up with a new approach to tablets in the medium term… one that uses an application store model and a new user interface. One can only live in hope.

How to take stunning pictures: Portraiture

This content is 14 years old. I don't routinely update old blog posts as they are only intended to represent a view at a particular point in time. Please be warned that the information here may be out of date.

Here in the UK, Channel 5 Broadcasting is currently running a series entitled “How to take stunning pictures”.  I’ve been really impressed with the two episodes I’ve watched so far as it manages to strike a balance between simplicity for those who are new to photography and providing useful advice for more experienced ‘togs.

Channel 5’s website has some tips to go with each programme, but they don’t exactly match up to the advice in the programme itself so, here are the tips from the first episode on taking portraits, featuring professional photographer Harry Borden:

  • Choose the right location: make sure that the subject feels comfortable in the environment so that they may express themselves and relax.
  • Use available light: avoid using on camera flash if possible and position the subject in a place where they are nicely lit.
  • Expose for the brightest part of the image for a natural looking and atmospheric shot.
  • Try to compose when taking the shot, not with post-porcessing crops – look for something different/unexpected
  • Be yourself: relax, create an authentic connection with the subject and build rapport.
  • Take multiple shots: not only does this break the tension but it tells people you like what you see (they don’t know if you haven’t got it) – it’s called hosing people down! Take loads of pictures, learn more, grab a moment!  Don’t be afraid to keep snapping until get the shot you’re happy with.
  • Keep it simple and be aware of every element: calm down; look through the viewfinder and go through the frame asking yourself whether each individual element adds to or subtracts from the result.  If you keep it simple and are aware of everything that’s in the frame, you’re more likely to achieve stunning pictures

More tips can be found on the Channel 5 website.

Extending certificate validity to avoid mouse/video refresh issues with the Hyper-V Virtual Machine Connection

This content is 14 years old. I don't routinely update old blog posts as they are only intended to represent a view at a particular point in time. Please be warned that the information here may be out of date.

In order to avoid man in the middle attacks, Hyper-V’s Virtual Machine Connection (vmconnect.exe) requires certificates for a successful connection.  At some point, the certificates expire, resulting in an error message when connecting to virtual machines, as described in Microsoft knowledge base article 967902, which also includes details of an update to resolve the issue, introducing an annual certificate renewal process.

Unfortunately, there is a bug in the annual certificate review process that can affect the refresh of mouse/video connections. The bug only applies to certain use cases with VMConnect (i.e. Remote Desktop connections are unaffected) and there are two possible workarounds:

  1. Save and restore the virtual machine (temporary workaround, until the certificate expires again in a year).
  2. Install new self-signed certficates on each host. It may not be the most elegant fix, but it is simple, and has a long-term effect.

Microsoft has not created an update to resolve this new issue, which only applies in certain use cases; instead they have produced a sample script that uses makecert.exe to create new Hyper-V Virtual Machine Management Service (VMMS) self-signing certificates that don’t expire until 2050.  This script should be run on every affected host and running it several times will result in multiple certificates, which is untidy, but will not cause issues.

After installing the new certificates (in the Local Computer store, at Trusted Root Certificate Authorities\Certificates and at \Personal\Certificates), the VMMS should be configured to use it and then restarted. Obviously, this will affect all virtual machines running on the host, so the activity should only be carried out during a scheduled maintenance window. For organisations that do not want to use self-signed certificates, it’s also possible to use a certificate issued by a certificate authority (CA).

More details will shortly become available in Microsoft knowledge base article 2413735.

What’s the real worth of a photographic image?

This content is 14 years old. I don't routinely update old blog posts as they are only intended to represent a view at a particular point in time. Please be warned that the information here may be out of date.

A few months back, I was listening to a podcast on my way home from work. There’s nothing unusual about that – but this one was episode 125 of This Week in Photography, featuring an interview with Michael Corsentino, who is a California-based lifestyle photographer.

Listening to the interview, it was clear to me that Michael has made some hard business decisions about the way he packages his art (which is the way he refers to his photographic works) and the options he gives (or doesn’t give) his clients in order to ensure that he is able to cover the time and effort he puts into them. That’s fair enough when someone does do the best they can to turn images into art but now I’d like to put forward an alternative view.

Photography is one of my great passions and I like to think that I’m someone who appreciates great photographic images but is not prepared to be taken for a ride. When my wife and I got married, our photographers did not charge us an extortionate fee for a “wedding package”. Instead we paid for the (fantastic) images, both formal and journalistic, on a time and materials basis. Our lead photographer, the late Brett Williams, brought in one of his associates to assist on the day and I have all of the prints and most of the negatives for safe keeping.

On the other end of the scale are two examples that I experienced through my eldest son’s school.

The first was a school portrait, captured by H Tempest. As proud parents, of course we paid for some prints but I also looked into the quality of the images that I could have bought digitally. I don’t know what cameras were used to capture the image, but when I called Tempest to see what quality the image they were selling for unlimited printing was, the answer I got suggested it was a a fairly low resolution (2304x1536px) JPEG image. As that image is unlikely to be suitable for quality reproduction at any larger than 8″x10″, it’s not what I call unlimited, so I decided not to spend the (I seem to recall quite large) sum of money that they were looking for, opting for a few small prints instead (I have my own “first day at school” images anyway).

Then there was the case of Richard Kerber Photography. Richard came into the school to create family portraits and we attended, as did many other families, one weekend last November. The images he created in our short session were great – and we did buy several prints; however I was still disappointed by the lack of flexibility and attention to detail. In common with many photographers, the packages offered were intended to encourage us to buy sets of photos but, in these days of digital SLR capture, I see no technical reasons (only some commercial ones) to restrict the ability to mix colour and monochrome images. There was also a hefty fee if we wanted to pay for the images on CD (with printing rights, but copyright retained by the photographer); and, apparently, no post-production effort at all.

No post-production? Well, I know nothing of Mr Kerber’s workflow – I’m sure there was some post-production – but, in one of the images, part of my foot is missing from the smaller prints, despite being visible in a larger version (albeit a little too close to the edge of the frame – given the amount of white space, some basic editing may have been in order to balance up the shot).

It seems to me that what we have here is a photographer who clearly has the talent to create lovely images of my family (no mean feat with two “active” boys and two tired parents!) but who, for the lack of a little care and attention in his workflow, is not delivering the standard of work that warrants the pricing. Furthermore, whilst I can see that photographers need to set digital image pricing so as not to cannibalise their print sales, the prices charged for a CD with a license are extreme. £295 is a lot of money for a few minutes in a school hall (remember, there are still print costs to consider)… oh yes, and he used a portrait of at least one family on his website without permission (as far as I can tell, no model release was signed, and whilst the copyright is his so there is no. Legal reason not to use the images, one might consider that he was morally and ethically bound to ask permission first).

So, what’s the point of my rant? Well, I guess what I’m saying is that there’s money to be made by those who charge a fair price, without devaluing the overall effort involved (after all, it still has to be profitable – not everyone with an SLR is automatically capable of producing quality work). If you are a fine art photographer, then by all means charge a fee that reflects the value of the artwork but, if your approach is one of a production line, then your pricing should reflect that too – looking to make a fast buck from parents or newly-weds is just not on. If you want to charge me for something really special, then you need to put in the associated effort.

[Incidentally, I originally wrote this post back in February but wasn’t sure whether to publish or not… after sitting on it for several months, I still think it makes some important points, so I’ve edited the original post and committed it to the web!]

Rebuilding WordPress…

This content is 14 years old. I don't routinely update old blog posts as they are only intended to represent a view at a particular point in time. Please be warned that the information here may be out of date.

This post comes with an apology – to Alex Coles, who often helps me out with the development of this site, and who, after encouraging me to update it to the latest version of WordPress (late last night, at a pub, over a 3G mobile connection) was the recipient of my frustration when it failed with an HTTP 408 error and a message that said something about a slow connection. Sorry Alex.

Despite having been given a torrent of abuse, Alex was gracious enough to give me the advice that allowed me to rebuild the site. I was lucky that it had stayed up, albeit in some kind of weird state that said it was WordPress v3.0.1 but was probably still v2.9.2; however, attempts to reinstall WordPress were futile – and a failed plugin update left the site stuck in maintenance mode (the answer to which seemed to be wait a few minutes, although I also found advice which suggested deleting the .maintenance file).

So, this afternoon, I set about rebuilding the site, by installing a parallel copy of WordPress, although the database has not been changed (I do have a backup of that, if it becomes necessary to restore it).

  1. The first thing to do was to download the latest copy of WordPress. I’m on a Linux host so I downloaded the .tar.gz version but Windows users may prefer a .zip.
  2. After extracting the archive to a suitable location on my webspace (the web root was fine, as the extraction automatically created a /wordpress subdirectory).
  3. I then copied over the customised elements of the old site from /wp-content including themes, plugins, uploads and other data that my blog uses (for example, images that are not in my uploads folder, and JavaScript that I use to run some of the advertisements on the site).
  4. Next, I copied some of the critical files that control the WordPress configuration: wp-settings.php, wp-config.php and .htaccess.
  5. Finally, I renamed the old /blog folder, and renamed /wordpress to /blog before testing site access.

With everything working well, I can delete the old /blog subdirectory but I’ll leave it for a while, “just in case” – although it’s probably worth editing /robots.txt to stop search engines from indexing the old site alongside the new one.

I should probably breathe a big sigh of relief now, but I’m in the mood for site development so, if you see the site theme change a few times over the coming weeks, bear with me!

Clearing the readonly attribute on write protected media in Windows

This content is 14 years old. I don't routinely update old blog posts as they are only intended to represent a view at a particular point in time. Please be warned that the information here may be out of date.

Years ago, when floppy discs were the norm, I was used to having to flip the write protect switch (or cover over the notch on older discs) but I was a little surprised today when I couldn’t write to my USB removable hard drive because Windows 7 told me that the media was write protected. I tried adjusting the properties on folders but the actual disk was showing as write protected – very strange.

I still don’t know why this occurred but this was the disk that I use to keep personal items separate from work on my company-supplied notebook, which runs BeCrypt DiskProtect – and I suspect DiskProtect may be part of the issue. Nevertheless, I did find an apparant solution, courtesy of a post at Windows Seven Forums that refers to a post on the T3chworks site.

Using diskpart.exe to clear read-only attributes from a volumeBy running diskpart.exe from an elevated command prompt (cmd.exe), I was able to issue a few commands to remove the readonly attribute on the media and write files to it again:

list volume
select volume volumenumber
attributes disk clear readonly

Only time will tell if this is a permanent fix (the post also talks of modifying a registry entry at HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\StorageDevicePolicies\WriteProtect but that’s not present on my system) but I’ve never seen this before, and it seems to have done the trick for the time being.

Preparing images for projection in photography club competitions

This content is 14 years old. I don't routinely update old blog posts as they are only intended to represent a view at a particular point in time. Please be warned that the information here may be out of date.

Earlier this year, I took a day out to attend the Focus on Imaging exhibition at the National Exhibition Centre, near Birmingham.  I spent a fair amount of the day on the Epson stand – some of which was looking over some great printers (a Stylus Pro 4880 is now on my wishlist) but whilst I was there I also had the opportunity to listen to two professional photographers sharing their experience with the audience.

The first of these was Mike McNamee, who spoke about preparing images for print and digital competition exhibition.  In this first post, I’ll look at digital competition entries and a follow-up post will concentrate on preparing images for printing.

(The steps described are based on Adobe Photoshop CS4 on a Mac but the settings should be the same for other packages, even if the methods are different – Photoshop users with Windows PCs should use Ctrl where I have written Cmd).

There are two common image resolutions used by photography clubs in the UK  – 1024x768px and 1400x1050px.  Therefore, when preparing an image for projection in a club competition, create a new document 1024 or 1400 pixels wide, and 768 or 1050 pixels high, 72 DPI (although this doesn’t really matter for projection) and 8 bit sRGB. Choosing the colour space is important as images submitted using another colour space (e.g. AdobeRGB), will appear desaturated when projected.  Optionally, save these settings as a preset:

Screenshot showing Photoshop CS4 (Mac) settings for entering projected images into UK photographic club competitions

Next up, take an image (pre-sharpened during raw conversion and left at full size), select the area you want to show in the presentation and, making sure the Move Tool is selected (V), drag/drop it onto the blank canvas (holding down the shift key whilst dragging/dropping will place the image in the centre of the canvas).

Because the source image will typically be much larger than the target, we need to resize it on the canvas. From the Edit menu, select Free transform (Cmd+T) and zoom out until the controls on the edge of the image are visible (a quick way to do this is to select Fit on screen from the View Menu – or Cmd+0).

Hold down the shift key and drag in the corners until the image fits on the canvas, then press Enter to leave a scaled image on the canvas.  Move this to the centre by selecting the whole image (Cmd+A), then making sure that the Move tool is selected (V) and clicking the Align vertical centers and Align horizontal centers buttons in the toolbar. Deselect the image (Cmd+D).

The image will probably look tiny on the screen by now, so adjust the view if necessary, and then change the background colour.  To do this, select the background layer (if there is one – if the background is transparent, create a new layer) then, from the Edit menu, select Fill (Shift+F5) and choose appropriate contents (generally Black), then click OK.

Screenshot showing Photoshop CS4 (Mac) settings for a black background fill

Some people like to add a keyline to their images.  To do this, select the image layer then, from the Layer menu, select Layer Style and Stroke… Pick a size (around 3px is probably fine), select Inside as the position (Outside will leave jagged edges at corners) and select the colour.

Screenshot showing Photoshop CS4 (Mac) settings for a 3px white keyline/stroke

We’re almost done now, but some clubs will require metadata (e.g. Author) to be stored inside the file.  From the File menu, select File Info… (Alt+Shift+Cmd+I) and add appropriate details (e.g. to the IPTC fields) before clicking OK.

Screenshot showing Photoshop CS4 (Mac) settings for adding/accessing file metadata

Finally, save the edited image by selecting Save As… from the File menu (Shift+Cmd+S) and pick an appropriate format (JPEG or TIFF).  Depending on the competition and the software being used, there may be a specific naming format required.

The final image, ready for projection (reduced size)

(The photographic image in this post is ©2010 Mark Wilson, all rights reserved and is therefore excluded from the Creative Commons license used for the rest of this site.)

Adding a Facebook Share (or Like) button to a self-hosted WordPress blog

This content is 14 years old. I don't routinely update old blog posts as they are only intended to represent a view at a particular point in time. Please be warned that the information here may be out of date.

A few weeks ago, I wrote about adding a Tweet button to a self-hosted WordPress blog, and followed up by writing about using a little CSS trickery to align the Tweet button (thanks to Alex Coles).  Whilst I was implementing the Tweet Button, I also went about putting a Facebook Share button on each post.

There are plug-ins to do this for me but why use a plugin when the answer is just a single lines of code in two files within the template?

In the same paragraph as the Tweet button (i.e. styled with the same class), I used this code, generated using the Facebook Share Button generator:

This time, the code is identical for both index.php and single.php as, unfortunately, Facebook doesn’t seem to give me any control over the title of the link (it just takes the </code> tag from the page). <a href="">There is another method, using query string parameters in the URL</a> but I chose to stick with Facebook’s recommended method.</p> <p>Incidentally, I chose to Share, rather than <a href="">Like (which can be implemented by following these guidelines)</a> because they have subtly different purposes and <a href="">each is represented in a slightly different manner (as Danny Sullivan describes in his post on the subject)</a>. After reading Danny’s post, I agree that Share is best for linking to a single post, whilst Like is more suited to the site as a whole (someone might <em>Like</em> and <em>Share</em> one or more posts from the site).</p> </div><!-- .entry-content --> <footer class="entry-footer"> <span class="cat-links">Posted in Uncategorised</span><span class="tags-links">Tagged <a href="" rel="tag">Social Networking</a>, <a href="" rel="tag">WordPress</a></span><span class="comments-link"><a href="">Leave a comment</a></span> </footer><!-- .entry-footer --> </article><!-- #post-## --> <article id="post-2019" class="post-2019 post type-post status-publish format-standard hentry category-motoring tag-motoring tag-golf"> <header class="entry-header"> <h2 class="entry-title"><a href="" rel="bookmark">The effects of sunscreen on Volkswagen/Audi paintwork</a></h2> <div class="entry-meta"> <span class="posted-on">Posted on <a href="" rel="bookmark"><time class="entry-date published" datetime="2010-09-06T17:21:22+01:00">Monday 6 September 2010</time><time class="updated" datetime="2014-11-13T19:21:45+00:00">Thursday 13 November 2014</time></a></span><span class="byline"> By <span class="author vcard"><a class="url fn n" href="">Mark Wilson</a></span></span> </div><!-- .entry-meta --> </header><!-- .entry-header --> <a class="post-thumbnail" href=""> </a> <div class="entry-content"> <div class="juiz-outdated-message jodpm-top">This content is 14 years old. I don't routinely update old blog posts as they are only intended to represent a view at a particular point in time. Please be warned that the information here may be out of date.</div><p>A couple of years ago, my wife and I bought a brand new Volkswagen Golf.  We’d been happy with our previous VWs (a Mk2 and two Mk4 Golfs, a 2004 Polo and a 2005 Passat) so were more than happy to purchase a Mk5 Golf 1.9TDI Match (in Blue Graphite Metallic) as a family runaround.  Fast forward around a year and we were slightly less pleased with our purchase…</p> <p>…The car had started to develop white marks on the paintwork.  Each time they were polished out, they came back.  Strangely, some of them looked like little handprints and, when I asked the dealer about them, they instantly recognised the problem.  “That’s sunscreen”, they said, “and it’s not covered by the warranty”.</p> <p>Sunscreen?! Yep. It seems that the modern (water-based) paints are not as hard as the nitro-cellulose or isocyanate paints used on older cars and that they are susceptible to <a href="">damage from titanium dioxide – an ingredient found in many sun protection products</a>, including the sunscreen we had applied regularly to our young children.</p> <p>With just a few thousand miles on the clock, I wasn’t taking no for an answer, but we decided to use a little of the motor industry’s sexism to our advantage too as, from this point on, the negotiations weren’t with me but with Mrs W. instead!  After escalating the issue to an appropriate level within the dealership, it was agreed that the car would go into the bodyshop and the offending panels would be machine polished, as a gesture of goodwill.  Even though the job took much longer than it should (most of the panels on the rear and sides of the car were affected – have you ever tried keeping toddlers from plastering their hands on a car?) they dealer was true to their word and the car was returned to us in as new condition.</p> <p><img decoding="async" class="alignleft" src="" alt="Damage caused by sunscreen coming into contact with car paintwork" />When I asked if this was a regular issue, Volkswagen told me that it wasn’t (although, later, an Audi dealer was a little more truthful, admitting that it happens a lot with modern VW-Audi paints and that the resolution is usually a machine polish – we also have friends with similar marks on their silver Bora).  Had it been necessary, I would have kept on pushing until the car was completely resprayed (I might have settled with a compromise agreement to pay for the materials but not the labour) <del datetime="2012-09-05T13:18:08+00:00">but, as it happens, the problem seems to have been resolved, with just one small area of damage still visible</del>.</p> <p>We were lucky.  With just a few thousand miles on the clock, it was difficult for Volkswagen to suggest this was “normal”.  If the car had been used a little more, we might have been seeking legal advice <a href="">to see if we were entitled to a return under the Sale of Goods Act</a> (it is a family car after all, and blemishes as a result of contact with sunscreen might question its fitness for purpose) but I frankly wouldn’t fancy our chances at suing Nivea et al. for damages because their products don’t carry a warning that they may damage car paintwork!</p> <p>Needless to say, these days we’re ultra-careful to wipe our childrens’ hands with wet wipes after applying sunscreen…</p> <p><em>[I waited a while before publishing this because a) I wanted to be sure we had resolved the issue and b) it’s not the normal sort of content for this blog. As a result, the events in this post are written as I remember them; however it’s entirely possible that there may be some minor errors as part of the effect of time on my memory]</em></p> <p>[Update – 5 September 2012: Two years after writing this post and I’m sorry to say that fingermarks are back again. It seems that the long term damage of the sunscreen goes deeper than a polish can deal with and our choice is either to accept the damage (on our now four-year-old car), or respray.]</p> </div><!-- .entry-content --> <footer class="entry-footer"> <span class="cat-links">Posted in <a href="" rel="category tag">Motoring</a></span><span class="tags-links">Tagged <a href="" rel="tag">Motoring</a>, <a href="" rel="tag">Volkswagen Golf</a></span><span class="comments-link"><a href="">93 Comments</a></span> </footer><!-- .entry-footer --> </article><!-- #post-## --> <nav class="navigation paging-navigation" role="navigation"> <h2 class="screen-reader-text">Posts navigation</h2> <div class="nav-links"> <div class="nav-previous"> <a href="" ><span class="meta-nav">←</span> Older posts</a> </div> </div><!-- .nav-links --> </nav><!-- .navigation --> </main><!-- #main --> </div><!-- #primary --> <div id="secondary" class="widget-area" role="complementary"> <aside id="search-4" class="widget widget_search"><form role="search" method="get" class="search-form" action=""> <label> <span class="screen-reader-text">Search for:</span> <input type="search" class="search-field" placeholder="Search …" value="" name="s" /> </label> <input type="submit" class="search-submit" value="Search" /> </form></aside><aside id="categories-2" class="widget widget_categories"><h2 class="widget-title">Categories</h2> <ul> <li class="cat-item cat-item-768"><a href="">Business</a> </li> <li class="cat-item cat-item-364"><a href="">Exercise</a> </li> <li class="cat-item cat-item-697"><a href="">Lifestyle</a> </li> <li class="cat-item cat-item-117"><a href="">Motoring</a> </li> <li class="cat-item cat-item-764"><a href="">Music</a> </li> <li class="cat-item cat-item-152"><a href="">Photography</a> </li> <li class="cat-item cat-item-811"><a href="">Retrospectives</a> </li> <li class="cat-item cat-item-6"><a href="">Site notices</a> </li> <li class="cat-item cat-item-218"><a href="">Technology</a> </li> <li class="cat-item cat-item-758"><a href="">Travel</a> </li> <li class="cat-item cat-item-38"><a href="">Waffle and randomness</a> </li> <li class="cat-item cat-item-666"><a href="">Weeknotes</a> </li> </ul> </aside><aside id="archives-2" class="widget widget_archive"><h2 class="widget-title">Archives</h2> <label class="screen-reader-text" for="archives-dropdown-2">Archives</label> <select id="archives-dropdown-2" name="archive-dropdown"> <option value="">Select Month</option> <option value=''> April 2024  (2)</option> <option value=''> March 2024  (1)</option> <option value=''> February 2024  (6)</option> <option value=''> January 2024  (7)</option> <option value=''> December 2023  (2)</option> <option value=''> November 2023  (2)</option> <option value=''> October 2023  (2)</option> <option value=''> July 2023  (2)</option> <option value=''> June 2023  (1)</option> <option value=''> April 2023  (1)</option> <option value=''> March 2023  (1)</option> <option value=''> January 2023  (1)</option> <option value=''> December 2022  (1)</option> <option value=''> September 2022  (2)</option> <option value=''> August 2022  (1)</option> <option value=''> June 2022  (2)</option> <option value=''> May 2022  (1)</option> <option value=''> January 2022  (1)</option> <option value=''> December 2021  (1)</option> <option value=''> November 2021  (1)</option> <option value=''> October 2021  (1)</option> <option value=''> September 2021  (7)</option> <option value=''> August 2021  (1)</option> <option value=''> July 2021  (2)</option> <option value=''> June 2021  (2)</option> <option value=''> May 2021  (2)</option> <option value=''> April 2021  (5)</option> <option value=''> March 2021  (6)</option> <option value=''> February 2021  (2)</option> <option value=''> January 2021  (1)</option> <option value=''> December 2020  (4)</option> <option value=''> November 2020  (1)</option> <option value=''> September 2020  (1)</option> <option value=''> August 2020  (2)</option> <option value=''> July 2020  (1)</option> <option value=''> June 2020  (2)</option> <option value=''> May 2020  (6)</option> <option value=''> April 2020  (7)</option> <option value=''> March 2020  (2)</option> <option value=''> February 2020  (1)</option> <option value=''> January 2020  (1)</option> <option value=''> December 2019  (1)</option> <option value=''> November 2019  (2)</option> <option value=''> October 2019  (1)</option> <option value=''> September 2019  (1)</option> <option value=''> August 2019  (1)</option> <option value=''> July 2019  (1)</option> <option value=''> June 2019  (1)</option> <option value=''> May 2019  (1)</option> <option value=''> April 2019  (2)</option> <option value=''> March 2019  (1)</option> <option value=''> February 2019  (1)</option> <option value=''> January 2019  (1)</option> <option value=''> December 2018  (1)</option> <option value=''> November 2018  (1)</option> <option value=''> October 2018  (1)</option> <option value=''> September 2018  (1)</option> <option value=''> August 2018  (1)</option> <option value=''> July 2018  (2)</option> <option value=''> June 2018  (4)</option> <option value=''> May 2018  (3)</option> <option value=''> April 2018  (3)</option> <option value=''> March 2018  (2)</option> <option value=''> February 2018  (4)</option> <option value=''> January 2018  (1)</option> <option value=''> December 2017  (4)</option> <option value=''> November 2017  (4)</option> <option value=''> October 2017  (5)</option> <option value=''> September 2017  (5)</option> <option value=''> August 2017  (6)</option> <option value=''> July 2017  (12)</option> <option value=''> June 2017  (2)</option> <option value=''> May 2017  (4)</option> <option value=''> April 2017  (3)</option> <option value=''> March 2017  (7)</option> <option value=''> February 2017  (7)</option> <option value=''> January 2017  (14)</option> <option value=''> December 2016  (13)</option> <option value=''> November 2016  (11)</option> <option value=''> October 2016  (6)</option> <option value=''> September 2016  (11)</option> <option value=''> August 2016  (6)</option> <option value=''> July 2016  (3)</option> <option value=''> June 2016  (2)</option> <option value=''> May 2016  (11)</option> <option value=''> April 2016  (4)</option> <option value=''> March 2016  (7)</option> <option value=''> February 2016  (3)</option> <option value=''> January 2016  (5)</option> <option value=''> December 2015  (3)</option> <option value=''> November 2015  (10)</option> <option value=''> October 2015  (16)</option> <option value=''> September 2015  (30)</option> <option value=''> August 2015  (17)</option> <option value=''> July 2015  (15)</option> <option value=''> June 2015  (5)</option> <option value=''> May 2015  (11)</option> <option value=''> April 2015  (8)</option> <option value=''> March 2015  (5)</option> <option value=''> February 2015  (6)</option> <option value=''> January 2015  (2)</option> <option value=''> December 2014  (4)</option> <option value=''> November 2014  (4)</option> <option value=''> October 2014  (9)</option> <option value=''> September 2014  (3)</option> <option value=''> August 2014  (3)</option> <option value=''> July 2014  (5)</option> <option value=''> June 2014  (7)</option> <option value=''> May 2014  (2)</option> <option value=''> April 2014  (4)</option> <option value=''> March 2014  (6)</option> <option value=''> February 2014  (7)</option> <option value=''> January 2014  (6)</option> <option value=''> December 2013  (4)</option> <option value=''> November 2013  (5)</option> <option value=''> October 2013  (4)</option> <option value=''> September 2013  (5)</option> <option value=''> August 2013  (1)</option> <option value=''> July 2013  (9)</option> <option value=''> June 2013  (3)</option> <option value=''> May 2013  (8)</option> <option value=''> April 2013  (2)</option> <option value=''> March 2013  (9)</option> <option value=''> February 2013  (8)</option> <option value=''> January 2013  (12)</option> <option value=''> December 2012  (8)</option> <option value=''> November 2012  (16)</option> <option value=''> October 2012  (18)</option> <option value=''> September 2012  (7)</option> <option value=''> August 2012  (14)</option> <option value=''> July 2012  (9)</option> <option value=''> June 2012  (13)</option> <option value=''> May 2012  (17)</option> <option value=''> April 2012  (12)</option> <option value=''> March 2012  (17)</option> <option value=''> February 2012  (13)</option> <option value=''> January 2012  (9)</option> <option value=''> December 2011  (15)</option> <option value=''> November 2011  (23)</option> <option value=''> October 2011  (10)</option> <option value=''> September 2011  (11)</option> <option value=''> August 2011  (11)</option> <option value=''> July 2011  (17)</option> <option value=''> June 2011  (13)</option> <option value=''> May 2011  (15)</option> <option value=''> April 2011  (14)</option> <option value=''> March 2011  (17)</option> <option value=''> February 2011  (11)</option> <option value=''> January 2011  (7)</option> <option value=''> December 2010  (9)</option> <option value=''> November 2010  (13)</option> <option value=''> October 2010  (11)</option> <option value='' selected='selected'> September 2010  (14)</option> <option value=''> August 2010  (10)</option> <option value=''> July 2010  (2)</option> <option value=''> June 2010  (11)</option> <option value=''> May 2010  (10)</option> <option value=''> April 2010  (10)</option> <option value=''> March 2010  (14)</option> <option value=''> February 2010  (13)</option> <option value=''> January 2010  (8)</option> <option value=''> December 2009  (7)</option> <option value=''> November 2009  (10)</option> <option value=''> October 2009  (19)</option> <option value=''> September 2009  (19)</option> <option value=''> August 2009  (21)</option> <option value=''> July 2009  (25)</option> <option value=''> June 2009  (19)</option> <option value=''> May 2009  (19)</option> <option value=''> April 2009  (26)</option> <option value=''> March 2009  (24)</option> <option value=''> February 2009  (24)</option> <option value=''> January 2009  (26)</option> <option value=''> December 2008  (25)</option> <option value=''> November 2008  (34)</option> <option value=''> October 2008  (36)</option> <option value=''> September 2008  (50)</option> <option value=''> August 2008  (36)</option> <option value=''> July 2008  (38)</option> <option value=''> June 2008  (17)</option> <option value=''> May 2008  (25)</option> <option value=''> April 2008  (22)</option> <option value=''> March 2008  (25)</option> <option value=''> February 2008  (24)</option> <option value=''> January 2008  (14)</option> <option value=''> December 2007  (16)</option> <option value=''> November 2007  (23)</option> <option value=''> October 2007  (22)</option> <option value=''> September 2007  (14)</option> <option value=''> August 2007  (27)</option> <option value=''> July 2007  (44)</option> <option value=''> June 2007  (16)</option> <option value=''> May 2007  (23)</option> <option value=''> April 2007  (17)</option> <option value=''> March 2007  (26)</option> <option value=''> February 2007  (26)</option> <option value=''> January 2007  (11)</option> <option value=''> December 2006  (16)</option> <option value=''> November 2006  (26)</option> <option value=''> October 2006  (12)</option> <option value=''> September 2006  (22)</option> <option value=''> August 2006  (17)</option> <option value=''> July 2006  (26)</option> <option value=''> June 2006  (15)</option> <option value=''> May 2006  (39)</option> <option value=''> April 2006  (13)</option> <option value=''> March 2006  (8)</option> <option value=''> February 2006  (33)</option> <option value=''> January 2006  (42)</option> <option value=''> December 2005  (19)</option> <option value=''> November 2005  (21)</option> <option value=''> October 2005  (38)</option> <option value=''> September 2005  (15)</option> <option value=''> August 2005  (32)</option> <option value=''> July 2005  (31)</option> <option value=''> June 2005  (17)</option> <option value=''> May 2005  (28)</option> <option value=''> April 2005  (8)</option> <option value=''> March 2005  (22)</option> <option value=''> February 2005  (29)</option> <option value=''> January 2005  (8)</option> <option value=''> December 2004  (17)</option> <option value=''> November 2004  (8)</option> <option value=''> October 2004  (25)</option> <option value=''> September 2004  (36)</option> <option value=''> August 2004  (22)</option> <option value=''> July 2004  (8)</option> <option value=''> June 2004  (8)</option> <option value=''> May 2004  (6)</option> <option value=''> April 2004  (3)</option> <option value=''> March 2004  (2)</option> <option value=''> February 2004  (6)</option> <option value=''> January 2004  (2)</option> </select> <script type="text/javascript"> /* <![CDATA[ */ (function() { var dropdown = document.getElementById( "archives-dropdown-2" ); function onSelectChange() { if ( dropdown.options[ dropdown.selectedIndex ].value !== '' ) { document.location.href = this.options[ this.selectedIndex ].value; } } dropdown.onchange = onSelectChange; })(); /* ]]> */ </script> </aside><aside id="text-12" class="widget widget_text"><h2 class="widget-title">Awards</h2> <div class="textwidget"><ul> <li><img class="alignright" src="" alt="Microsoft MVP 2008-2010" width="125"/>Microsoft Most Valuable Professional (2008-2010, Virtual Machine)</li> <li>Computer Weekly Blog Awards Winner (2010, Individual IT Professional (Male))</li> <li><img class="alignright" src="" alt="Microsoft MVP Reconnect" width="117" height="38"/>Microsoft MVP Reconnect (2016)</li> <li><img class="alignright" src="" alt="UK Blog Awards 2017 Finalist" width="125" height="125" />UK Blog Awards Finalist (2017, Digital and Technology (Individual))</li> </ul> </div> </aside> </div><!-- #secondary --> </div><!-- .content-wrapper --> </div><!-- #content --> <div id="tertiary" class="footer-widget-area" role="complementary"> <div class="footer-widget-wrapper clear"> <div class="footer-widget"> <aside id="custom_html-2" class="widget_text widget widget_custom_html"><h2 class="widget-title">Referrals</h2><div class="textwidget custom-html-widget"><p>I've removed the ads from the site but I do use these services and recommend them to others:</p> <!--<p><a href="" target="_blank" rel="noopener"><img src="" width="468" height="60" alt="Get a free giffgaff Sim" /></a></p>--> <!--<p><a href=''><img src='' alt='Unlimited business broadband from £15.99 a month' border='0' rel='nofollow'></a></p>--> <p>I use Hover for domain name registration. <a href="">Get $2 off your next purchase</a>.</p> <!--<p><p><a href="">Switch to Bulb Energy</a> and we both get some credit!</p>--> <!--<p><a href="">Switch your gas and electricity supply to First Utility and get a £30 reward</a> (for each of us!)</p> --></div></aside><aside id="nav_menu-4" class="widget widget_nav_menu"><div class="menu-essentials-container"><ul id="menu-essentials" class="menu"><li id="menu-item-5873" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-5873"><a href="">About Mark Wilson</a> <ul class="sub-menu"> <li id="menu-item-5874" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-5874"><a href="">Press and other commissioned work</a></li> </ul> </li> <li id="menu-item-5875" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-5875"><a href="">About this site</a></li> <li id="menu-item-5876" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-5876"><a href="">Legal notice</a></li> <li id="menu-item-5877" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-5877"><a href="">Linking to this site</a></li> <li id="menu-item-5878" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-privacy-policy menu-item-5878"><a rel="privacy-policy" href="">Privacy policy and data protection notice</a></li> <li id="menu-item-5879" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-5879"><a href="">Rules for comments</a></li> <li id="menu-item-5880" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-5880"><a href="">Disclosure Policy</a></li> <li id="menu-item-5881" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-5881"><a href="">Contact</a></li> <li id="menu-item-5882" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-5882"><a href="">Guest contributors</a></li> </ul></div></aside><aside id="execphp-4" class="widget widget_execphp"><h2 class="widget-title">Copyright Notice</h2> <div class="execphpwidget">The content at this website is © Mark Wilson 2004-2024, All Rights Reserved.</div> </aside> </div><!-- .footer-widget --> <div class="footer-widget"> <aside id="recent-posts-4" class="widget widget_recent_entries"> <h2 class="widget-title">Recent Posts</h2> <ul> <li> <a href="">The Enterprise Architecture Stack</a> </li> <li> <a href="">Monthly Retrospective: March 2024</a> </li> <li> <a href="">Weeknote 2024/09: radio; podcasts; AI and more</a> </li> <li> <a href="">Weeknote 2024/08: re-organisation and recovery</a> </li> <li> <a href="">Cloud is dead. Long live the cloud!</a> </li> </ul> </aside><aside id="buymeacoffee_widget-2" class="widget buymeacoffee_widget"> <div> <style> .bmc-btn { min-width: 210px; color: #ffffff !important; background-color: #ff813f !important; height: 60px; border-radius: 12px; font-size: 28px !important; font-weight: Normal; border: none; padding: 0px 24px; line-height: 27px; text-decoration: none !important; display: inline-flex !important; align-items: center; font-family: Cookie !important; -webkit-box-sizing: border-box !important; box-sizing: border-box !important; text-align: left !important; } .bmc-btn-text { margin-left: 8px; display: inline; line-height: 0; } .bmc-btn svg { height: 32px !important; margin-bottom: 0px !important; box-shadow: none !important; border: none !important; vertical-align: middle !important; transform: scale(0.9); } @media (max-width: 1200px) { .bmc-btn { font-size: 24px !important; } .bmc-btn svg { height: 28px !important; } } .bmc-button img { box-shadow: none !important; vertical-align: middle !important; } .bmc-button { display: inline-block !important; padding:0px 10px !important; color: #ffffff !important; background-color: #ff813f !important; border-radius: 3px !important; border: 1px solid transparent !important; font-size: 28px !important; box-shadow: 0px 1px 2px rgba(190, 190, 190, 0.5) !important; -webkit-box-shadow: 0px 1px 2px 2px rgba(190, 190, 190, 0.5) !important; -webkit-transition: 0.3s all linear !important; transition: 0.3s all linear !important; margin: 0 auto !important; font-family: "Cookie" !important; } .bmc-button: hover, .bmc-button: active, .bmc-button: focus { -webkit-box-shadow: 0 4px 16px 0 rgba(190, 190, 190, .45) !important; box-shadow: 0 4px 16px 0 rgba(190, 190, 190, .45) !important; opacity: 0.85 !important; color: #ffffff !important; } </style> <link href="" rel="stylesheet"> <p style="text-align:left !important; padding-bottom: 10px;"> <a class="bmc-btn" target="_blank" href=""><svg id="coffee-logo-border" viewBox="0 0 884 1279" fill="none" xmlns=""> <path d="M791.109 297.518L790.231 297.002L788.201 296.383C789.018 297.072 790.04 297.472 791.109 297.518Z" fill="#0D0C22"></path> <path d="M803.896 388.891L802.916 389.166L803.896 388.891Z" fill="#0D0C22"></path> <path d="M791.484 297.377C791.359 297.361 791.237 297.332 791.118 297.29C791.111 297.371 791.111 297.453 791.118 297.534C791.252 297.516 791.379 297.462 791.484 297.377Z" fill="#0D0C22"></path> <path d="M791.113 297.529H791.244V297.447L791.113 297.529Z" fill="#0D0C22"></path> <path d="M803.111 388.726L804.591 387.883L805.142 387.573L805.641 387.04C804.702 387.444 803.846 388.016 803.111 388.726Z" fill="#0D0C22"></path> <path d="M793.669 299.515L792.223 298.138L791.243 297.605C791.77 298.535 792.641 299.221 793.669 299.515Z" fill="#0D0C22"></path> <path d="M430.019 1186.18C428.864 1186.68 427.852 1187.46 427.076 1188.45L427.988 1187.87C428.608 1187.3 429.485 1186.63 430.019 1186.18Z" fill="#0D0C22"></path> <path d="M641.187 1144.63C641.187 1143.33 640.551 1143.57 640.705 1148.21C640.705 1147.84 640.86 1147.46 640.929 1147.1C641.015 1146.27 641.084 1145.46 641.187 1144.63Z" fill="#0D0C22"></path> <path d="M619.284 1186.18C618.129 1186.68 617.118 1187.46 616.342 1188.45L617.254 1187.87C617.873 1187.3 618.751 1186.63 619.284 1186.18Z" fill="#0D0C22"></path> <path d="M281.304 1196.06C280.427 1195.3 279.354 1194.8 278.207 1194.61C279.136 1195.06 280.065 1195.51 280.684 1195.85L281.304 1196.06Z" fill="#0D0C22"></path> <path d="M247.841 1164.01C247.704 1162.66 247.288 1161.35 246.619 1160.16C247.093 1161.39 247.489 1162.66 247.806 1163.94L247.841 1164.01Z" fill="#0D0C22"></path> <path class="logo-coffee" d="M472.623 590.836C426.682 610.503 374.546 632.802 306.976 632.802C278.71 632.746 250.58 628.868 223.353 621.274L270.086 1101.08C271.74 1121.13 280.876 1139.83 295.679 1153.46C310.482 1167.09 329.87 1174.65 349.992 1174.65C349.992 1174.65 416.254 1178.09 438.365 1178.09C462.161 1178.09 533.516 1174.65 533.516 1174.65C553.636 1174.65 573.019 1167.08 587.819 1153.45C602.619 1139.82 611.752 1121.13 613.406 1101.08L663.459 570.876C641.091 563.237 618.516 558.161 593.068 558.161C549.054 558.144 513.591 573.303 472.623 590.836Z" fill="#FFDD00"></path> <path d="M78.6885 386.132L79.4799 386.872L79.9962 387.182C79.5987 386.787 79.1603 386.435 78.6885 386.132Z" fill="#0D0C22"></path> <path class="logo-outline" d="M879.567 341.849L872.53 306.352C866.215 274.503 851.882 244.409 819.19 232.898C808.711 229.215 796.821 227.633 788.786 220.01C780.751 212.388 778.376 200.55 776.518 189.572C773.076 169.423 769.842 149.257 766.314 129.143C763.269 111.85 760.86 92.4243 752.928 76.56C742.604 55.2584 721.182 42.8009 699.88 34.559C688.965 30.4844 677.826 27.0375 666.517 24.2352C613.297 10.1947 557.342 5.03277 502.591 2.09047C436.875 -1.53577 370.983 -0.443234 305.422 5.35968C256.625 9.79894 205.229 15.1674 158.858 32.0469C141.91 38.224 124.445 45.6399 111.558 58.7341C95.7448 74.8221 90.5829 99.7026 102.128 119.765C110.336 134.012 124.239 144.078 138.985 150.737C158.192 159.317 178.251 165.846 198.829 170.215C256.126 182.879 315.471 187.851 374.007 189.968C438.887 192.586 503.87 190.464 568.44 183.618C584.408 181.863 600.347 179.758 616.257 177.304C634.995 174.43 647.022 149.928 641.499 132.859C634.891 112.453 617.134 104.538 597.055 107.618C594.095 108.082 591.153 108.512 588.193 108.942L586.06 109.252C579.257 110.113 572.455 110.915 565.653 111.661C551.601 113.175 537.515 114.414 523.394 115.378C491.768 117.58 460.057 118.595 428.363 118.647C397.219 118.647 366.058 117.769 334.983 115.722C320.805 114.793 306.661 113.611 292.552 112.177C286.134 111.506 279.733 110.801 273.333 110.009L267.241 109.235L265.917 109.046L259.602 108.134C246.697 106.189 233.792 103.953 221.025 101.251C219.737 100.965 218.584 100.249 217.758 99.2193C216.932 98.1901 216.482 96.9099 216.482 95.5903C216.482 94.2706 216.932 92.9904 217.758 91.9612C218.584 90.9319 219.737 90.2152 221.025 89.9293H221.266C232.33 87.5721 243.479 85.5589 254.663 83.8038C258.392 83.2188 262.131 82.6453 265.882 82.0832H265.985C272.988 81.6186 280.026 80.3625 286.994 79.5366C347.624 73.2301 408.614 71.0801 469.538 73.1014C499.115 73.9618 528.676 75.6996 558.116 78.6935C564.448 79.3474 570.746 80.0357 577.043 80.8099C579.452 81.1025 581.878 81.4465 584.305 81.7391L589.191 82.4445C603.438 84.5667 617.61 87.1419 631.708 90.1703C652.597 94.7128 679.422 96.1925 688.713 119.077C691.673 126.338 693.015 134.408 694.649 142.03L696.732 151.752C696.786 151.926 696.826 152.105 696.852 152.285C701.773 175.227 706.7 198.169 711.632 221.111C711.994 222.806 712.002 224.557 711.657 226.255C711.312 227.954 710.621 229.562 709.626 230.982C708.632 232.401 707.355 233.6 705.877 234.504C704.398 235.408 702.75 235.997 701.033 236.236H700.895L697.884 236.649L694.908 237.044C685.478 238.272 676.038 239.419 666.586 240.486C647.968 242.608 629.322 244.443 610.648 245.992C573.539 249.077 536.356 251.102 499.098 252.066C480.114 252.57 461.135 252.806 442.162 252.771C366.643 252.712 291.189 248.322 216.173 239.625C208.051 238.662 199.93 237.629 191.808 236.58C198.106 237.389 187.231 235.96 185.029 235.651C179.867 234.928 174.705 234.177 169.543 233.397C152.216 230.798 134.993 227.598 117.7 224.793C96.7944 221.352 76.8005 223.073 57.8906 233.397C42.3685 241.891 29.8055 254.916 21.8776 270.735C13.7217 287.597 11.2956 305.956 7.64786 324.075C4.00009 342.193 -1.67805 361.688 0.472751 380.288C5.10128 420.431 33.165 453.054 73.5313 460.35C111.506 467.232 149.687 472.807 187.971 477.556C338.361 495.975 490.294 498.178 641.155 484.129C653.44 482.982 665.708 481.732 677.959 480.378C681.786 479.958 685.658 480.398 689.292 481.668C692.926 482.938 696.23 485.005 698.962 487.717C701.694 490.429 703.784 493.718 705.08 497.342C706.377 500.967 706.846 504.836 706.453 508.665L702.633 545.797C694.936 620.828 687.239 695.854 679.542 770.874C671.513 849.657 663.431 928.434 655.298 1007.2C653.004 1029.39 650.71 1051.57 648.416 1073.74C646.213 1095.58 645.904 1118.1 641.757 1139.68C635.218 1173.61 612.248 1194.45 578.73 1202.07C548.022 1209.06 516.652 1212.73 485.161 1213.01C450.249 1213.2 415.355 1211.65 380.443 1211.84C343.173 1212.05 297.525 1208.61 268.756 1180.87C243.479 1156.51 239.986 1118.36 236.545 1085.37C231.957 1041.7 227.409 998.039 222.9 954.381L197.607 711.615L181.244 554.538C180.968 551.94 180.693 549.376 180.435 546.76C178.473 528.023 165.207 509.681 144.301 510.627C126.407 511.418 106.069 526.629 108.168 546.76L120.298 663.214L145.385 904.104C152.532 972.528 159.661 1040.96 166.773 1109.41C168.15 1122.52 169.44 1135.67 170.885 1148.78C178.749 1220.43 233.465 1259.04 301.224 1269.91C340.799 1276.28 381.337 1277.59 421.497 1278.24C472.979 1279.07 524.977 1281.05 575.615 1271.72C650.653 1257.95 706.952 1207.85 714.987 1130.13C717.282 1107.69 719.576 1085.25 721.87 1062.8C729.498 988.559 737.115 914.313 744.72 840.061L769.601 597.451L781.009 486.263C781.577 480.749 783.905 475.565 787.649 471.478C791.392 467.391 796.352 464.617 801.794 463.567C823.25 459.386 843.761 452.245 859.023 435.916C883.318 409.918 888.153 376.021 879.567 341.849ZM72.4301 365.835C72.757 365.68 72.1548 368.484 71.8967 369.792C71.8451 367.813 71.9483 366.058 72.4301 365.835ZM74.5121 381.94C74.6842 381.819 75.2003 382.508 75.7337 383.334C74.925 382.576 74.4089 382.009 74.4949 381.94H74.5121ZM76.5597 384.641C77.2996 385.897 77.6953 386.689 76.5597 384.641V384.641ZM80.672 387.979H80.7752C80.7752 388.1 80.9645 388.22 81.0333 388.341C80.9192 388.208 80.7925 388.087 80.6548 387.979H80.672ZM800.796 382.989C793.088 390.319 781.473 393.726 769.996 395.43C641.292 414.529 510.713 424.199 380.597 419.932C287.476 416.749 195.336 406.407 103.144 393.382C94.1102 392.109 84.3197 390.457 78.1082 383.798C66.4078 371.237 72.1548 345.944 75.2003 330.768C77.9878 316.865 83.3218 298.334 99.8572 296.355C125.667 293.327 155.64 304.218 181.175 308.09C211.917 312.781 242.774 316.538 273.745 319.36C405.925 331.405 540.325 329.529 671.92 311.91C695.906 308.686 719.805 304.941 743.619 300.674C764.835 296.871 788.356 289.731 801.175 311.703C809.967 326.673 811.137 346.701 809.778 363.615C809.359 370.984 806.139 377.915 800.779 382.989H800.796Z" fill="#FFFFFF"></path> </svg><span class="bmc-btn-text">Buy me a coffee</span></a> </p> </div> </aside> </div><!-- .footer-widget --> <div class="footer-widget"> <aside id="recent-comments-5" class="widget widget_recent_comments"><h2 class="widget-title">Recent Comments</h2><ul id="recentcomments"><li class="recentcomments"><span class="comment-author-link"><a href="" class="url" rel="ugc">The Enterprise Architecture Stack -</a></span> on <a href="">The symbiotic relationship between engineering and architecture</a></li><li class="recentcomments"><span class="comment-author-link"><a href="" class="url" rel="ugc">The Enterprise Architecture Stack -</a></span> on <a href="">Developing IT architecture skills</a></li><li class="recentcomments"><span class="comment-author-link"><a href="" class="url" rel="ugc">The Enterprise Architecture Stack -</a></span> on <a href="">What is IT architecture?</a></li><li class="recentcomments"><span class="comment-author-link">PB</span> on <a href="">Somfy roller-shutter garage door stopping part way down</a></li><li class="recentcomments"><span class="comment-author-link"><a href="" class="url" rel="ugc">Mark Wilson</a></span> on <a href="">Somfy roller-shutter garage door stopping part way down</a></li></ul></aside> </div><!-- .footer-widget --> </div><!-- .footer-widget-wrapper --> </div><!-- #tertiary --> <footer id="colophon" class="site-footer" role="contentinfo"> <nav class="footer-navigation" role="navigation"> <div class="menu-social-networks-container"><ul id="menu-social-networks" class="clear"><li id="menu-item-5589" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-5589"><a href="">Twitter</a></li> <li id="menu-item-5590" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-5590"><a href="">LinkedIn</a></li> <li id="menu-item-5593" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-5593"><a href="">Flickr</a></li> <li id="menu-item-5592" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-5592"><a href="">Slideshare</a></li> </ul></div> </nav><!-- .footer-navigation --> <div class="site-info"> <a href="">Proudly powered by WordPress</a> <span class="sep"> | </span> Theme: Goran by <a href="" rel="designer"></a>. </div><!-- .site-info --> </footer><!-- #colophon --> </div><!-- #page --> <script type="text/javascript">var jalwCurrentPost={month:"",year:""};</script><script type="text/javascript" src="" id="edin-skip-link-focus-fix-js"></script> <script type="text/javascript" src="" id="goran-navigation-js"></script> <script type="text/javascript" src="" id="goran-script-js"></script> </body> </html>