MSDN Magazine on your Kindle

Here in the UK we recently had a long weekend due to a public holiday. So what better time to sit back in a comfy chair with the laptop and read the latest MSDN Magazine online? Unless you have children, of course, keeping them trapped in the house for three whole days would be a nightmare. So that means heading out and about on buses, trains and heading off to the Isleworth Spring Fayre.

Now you can read the MSDN Magazine web site on a smartphone but on a 9cm screen it’s not ideal, and I don’t really want to drag a notebook (even a netbook) with me on my travels. So wouldn’t it be great if I there was a Kindle edition of the MSDN magazine?

Here in the UK we never received the print version of MSDN Magazine even as an MSDN Enterprise/Universal subscriber, so we relied on the compiled help file (CHM) version for offline reading. Recently this changed to PDF, which works on a Kindle, but isn’t the ideal format for the small screen and the PDF does take quite a while to appear on the MSDN site (currently April and May are not available).

Coming the rescue is the the free and open source, eBook tool, Calibre (http://calibre-ebook.com/). I first discovered this application when I wished to download the Economist newspaper to my Kindle. Calibre includes a ‘Fetch News’ ability, which allows scheduled downloading of web site content, with ‘recipes’ that convert those screen scrapes into various formats including MOBI, EPUB or PDF. It even will update your Kindle over USB, loading any new titles into your documents folder.

One of the recipes available is for the MSDN magazine. So the moment a new version appears on the MSDN web site, (http://msdn.microsoft.com/en-us/magazine/default.aspx), you can just fire up Calibre and download the latest version to your Kindle. If you run Calibre on startup you can even schedule the MSDN magazine to be collected every month and automatically downloaded to your Kindle.

 

Web  version


Kindle .mobi version



Why I cancelled my Spotify Premium subscription - the tale of an atypical music consumer

Disclaimer

Firstly, I must come clean, I work for a digital music company which is involved in digital music streaming and downloads.  In no way are the views expressed are the views of the company for which I work.  They are merely the subjective views of an atypical music consumer. 

I say atypical because despite being over 40, I seek out new bands on the radio, using listen again on 6Music and BBC Introducing programmes, such as Christian Carlisle’s excellent BBC Sheffield programme.  I make an effort to go to at least one gig every month, including such gigs as the NME New Radar tour.  Also, if I like a band, I will always try to buy their CDs, especially singles, my favourite format.

My mobile use

In addition, my mobile phone use is also unusual, in that I have a very old fashioned candy bar Windows Mobile 6.1 smartphone, a Benq E72.  This provides my voice and text service, and also contains a 32Gb microSD card holding the 8000+ tracks that is my music collection.  I listen to this using a Sony MW600 Bluetooth headset, the combination of which is incredibly reliable. The E72 is a 2G + WiFi phone with no data plan, just calls and unlimited text messages for £10 per month.

I also own what is now termed a ‘smartphone’, an Orange San Francisco badged ZTE Blade flashed with a custom Android 2.2 ROM.  This contains a mobile broadband SIM from Three, providing a monthly allowance of 5Gb of 3G data for £7.50, which can be used directly or via tethering.

Spotify

Getting hooked

I first began using a the Spotify client at work; the free service including advertising, and enjoyed the ability to tap into a music catalogue that included many tracks which I did not own myself.   I liked the shared playlists, which were sometimes used to create office playlists to which everyone could contribute. 

The only downside, apart from the appalling quality of the advertising segments, was the lack of some of my favourite music.  I’m a big fan of Spacemen 3, nothing there.  Spiritualized, later releases, but not all.  Sugar, no there.  B-sides of older singles, not there.

It did grate that I had these tracks on my phone’s tiny 32Gb microSD card, and on my laptop, but this was a free service, so I don't think it is really fair to complain.

Becoming a premium subscriber

Eventually I decided to take the plunge and become a premium subscriber.  Partly because of where I work and wanting to see a rival music delivery system, but also due to a desire to remove the annoying advertisements and allow me to access the mobile client on my Android phone and download offline content that I didn’t own.

For the first 3 or 4 months, it all seemed fine, I learnt the quirks of the mobile client and accepted that there were a few faults, but it was new, so that was to be expected.  The lack of content could be partly solved by loading some of my own music collection onto a microSD card in the ZTE Blade smartphone.

Immediacy

There was a high point of being a premium Spotify subscriber.   On the top of a 27 bus heading to Koko to an NME New Radar gig last October I spotted a tweet from the Joy Formidable that their new single, The Big More, had been released. I fired up Spotify and started downloading the tracks to listen to for the remainder of the journey.  This even included a live version of Whirring, which was recorded at Koko in March, where I had been part of the audience swept along by the beauty of the introduction played on a harp.

This immediacy was quite intoxicating.  I heard that one of my favourite new bands had released a new single, and downloaded it within minutes.  However, having an offline copy didn’t prevent me buying the original, which as a CD only sold at gigs I couldn't attend, meant paying a premium for a copy sold on eBay.

This is one of my key reasons for using Spotify; listening to a new release, especially albums, and deciding whether it was worth buying the CD. I will always prefer to own the CD, as it provides a high quality archive copy, with decent artwork.  If I consider there are only a few tracks worth having, I relent and buy digital downloads, but always burn them to a CD for archive.

Disillusion

So this all sounds like it worked quite well.  I had music downloaded offline, which I would have otherwise had to pay for, and I could access much more music than was available from my own music collection, on my 32Gb microSD.

However, it never did become my sole music player, and I learnt that the offline files couldn’t replace the permanent access I had enjoyed without the subscription.  The reasons are a complex mix of poor application design, restrictive access and lack of breadth of content outside mainstream music.

Poor user experience

I think the Android application is one of the more nasty pieces of user interface design I have seen for some time.  I realise this is subjective but some really poor design choices and I can only believe lack of any serious rival has prevented these being addressed.  With no real competition Spotify has no incentive to fix these issues.  There are some very obtuse menu options and idiocy such as the redundant ‘Are you sure you want to exit’ dialogs after you click on the Exit menu. An important tenet of  interface design should be Don't make the user feel stupid, which the Android client fails spectacularly;

  1. If you update the Spotify application via the Marketplace, despite claiming that all user data will be preserved, you’ll be shocked when you realise that all your offline content will have been removed. Used up valuable 3G data allowance downloading offline content?  Let’s hope not as you’ll need to re-download it all again.  It can be over emphasised that there is absolutely no warning that this is about to happen.
  2. On the Android client you cannot alter the order of items within the playlist.  I believe this is possble on the iOS application, and I had hoped this would be fixed within a few months, but apparently not.  Clearly I must be meant to edit my playlists using my Windows client, obviously when I’m out and about I couldn’t possibly want to do this. The only visible update I’ve seen in the Android app was the inclusion of a Facebook login option.  Clearly Facebook login is a higher priority than a functioning playlist.  Spotify have processes to update the functionality of their Android client, but only for items they consider worthy of the effort.
  3. If you do add items to a playlist, they are added as the next item to be played.   That makes creating a decent playlist virtually impossible as you have to build it from the end to the beginning, so no linking similar songs together in the order you think of them, and building it while the first tracks are playing.  This is really basic stuff.  I know it is, because it was in my media player on Windows CE (and Windows Phone) TEN years ago.  It’s also something I do a lot, while listening to one song, it jars my emotional memory, and triggers a string of new tracks to add to the playlist.
  4. And don’t get me started on Bluetooth support.  This may be the ZTE Blade to blame, but it is massively not reliable, it stutters through songs, especially tracks not already offline, and don’t alternate between using the Bluetooth and the screen UI controls to change tracks.  It all gets massively out of sync, with incorrect song titles and album art, so you really have no idea what you are playing. And that poor Bluetooth support also means that if you pause the music, and the device enters standby, you have to unlock the phone to restart the music.  On my Benq E72 the keypad may be locked but the pause, prev and next buttons on the Bluetooth headset are still fully functional.

Even the Windows application has real issues.  The auto update functionality means every now and then I start Spotify, see the playlist appear, only for it to vanish without warning, or any message, to reappear a minute or so later, updated, and with no explanation of what might have changed or if content requires to be downloaded again.

Music – here today and gone tomorrow, or never there at all

To some extent I can cope with the lack of some obscure music being on Spotify, and I don’t resent artists such as Adele (and her label, XL Recordings) for refusing to allow her latest album onto the system. If Adele doesn't want to cannibalise CD and digital downloads and doesn't need the exposure Spotify provides to smaller bands, then good on her.

More of an issue is seeing albums you have downloaded offline vanish without warning, as happened with The Burns Unit, ‘Side Show’.  Having got used to listening to this as part of my subscription, with no advance warning, a message appeared one day saying it was being removed as it was no longer available.

As far as I am aware, no CD I have every bought has informed me that the music was no longer available so that I opened the case to find the silver disc strangely absent. 

Value for money

The final nail in the coffin is the value for money.  For me it became obvious that it represented poor value for money.  In the six months I have had a subscription I have never really had more than 10 offline files that I do not own on a physical CD or digital download.

I could have happily downloaded every track for the price of one month’s subscription, and even worse, I could happily buy every album containing those tracks for the price of the six months of subscribing to the premium service.

It is sobering to consider that I pay just under £40 per month for a satellite television subscription with BskyB and £10 of that is for unlimited broadband. So in terms of content, Sky provide 100’s of television channels, repeatedly update the EPG and Sky+ system and put a huge amount of effort into usability of both of these applications.

In comparison, Spotify, for a third of this amount provides a poor user experience, especially on mobile, with much less valuable additional content to my own music collection

Should Spotify be worried?

Here is the reality – I don’t think Spotify should be worried.  I know a much larger number of people who are very satisfied with their subscription.  For them, the issues I have raised don’t really affect them, and Spotify provides a very useful means to instantly access a massive amount of music with the added benefit of social interaction with friends.

Even so I think Spotify shouldn't be complacent.  They need to realise that selling subscriptions does mean that they will have to care more about treating their customers better.  That means all customers, even if they have the temerity to use an Android handset. 

They will also have to deal with artists better, and pay them properly, or more will decide to remove access to their content.

And finally, I think they may need to reconsider removing the reliance on Facebook logins for all new users.  I was an early user so I still have my original Spotify login. I know that if I needed to use Facebook just to access Spotify I would never have used it in the first place.

But then, as I've mentioned, I’m an atypical music consumer.

DDD North, Sunderland - Commercial Software Development slides and link to video

Many thanks to the audience in Sunderland for the great reaction to my talk on Commercial Software Development and getting into the spirit of the presentation. 

It was great to ask an audience if they'd been to meetings in the past week, then ask them to put their hands down if those meetings had agendas, and still see most of the hands stay up. Clearly we all still have work to do on eliminating such an atrocious waste of developer resource.

I've uploaded the Powerpoint as a PDF with speaker notes (2Mb), a low bandwidth version of the slideck (9.5Mb) and a higher bandwidth version with all the animations (17Mb).

  http://www.tigernews.co.uk/blog-twickers/dddnorth/CSD-DDDNorth.pdf

  http://www.tigernews.co.uk/blog-twickers/dddnorth/CSD-DDDNorth-Low.zip

  http://www.tigernews.co.uk/blog-twickers/dddnorth/CSD-DDDNorth-Hi.zip

You can also view a recording of the first time I gave the presentation at DDD8 in Reading on Vimeo,

  http://vimeo.com/9216563

And I have to say many thanks to Andy Westgarth, the guys from NEBytes and all the crew who made the first DDDNorth such a fantastic event, and for all the sponsors, including DevExpress who feed and watered over 100 geeks at The Stadium of Light. Roll on DDDNorth 2012.

Go Asynchronous with C# 5 - presentation, source code and links from NxtGenUG Birmingham - 13th September 2011

A big thanks to my lively audience at the NxtGenUG Birmingham group tonight who provided excellent feedback. I enjoyed the live coding to try to explore the limits of the framework, even though it was interrupted by my PC turning itself off and leading me to thinking I'd trashed my SSD drive.

You can find my presentation online at Prezi.com over here, and the source code for the demos is available here.

During the presentation I mentioned there were some additional blogs and articles that are well worth having a look at;

Lucian Wischik addresses the bugs being fixed within the Async library and what bugs were fixed in the Async CTP refresh in two articles, Async CTP Refresh - Compiler Bug fixes and Async CTP Refresh - what bugs remain in it?. If you're thinking of using the go live licence in the Async CTP Refresh you need to read these two articles to understand which bugs remain and how you might mitigate against them.

Also, Sacah Barber (a UK based C# MVP) provides a really good set of use cases for the Async CTP over at CodeProject, in a post Task Parallel Library: 6 of n, including an example of using a mocking framework for testing your Async code.

Go Asynchronous with C# 5 - presentation, source code and links from London .Net Users Group - 1st September 2011

A big thanks to my lively audience at the London .Net Users group last night who provided excellent feedback. They even led me to some live coding to discover how the TaskEx.WhenAny deals with the tasks which didn't complete first - apparently they are immeadiately disposed of and their results are lost. Let's hope the release documentation for the Async libraries makes this very clear.

I also must thank EMC Consulting for providing the facilities and beer, and Adgistics for providing the pizza, and further beers at the post user group beers.

You can find my presentation online at Prezi.com over here, and the source code for the demos is available here.

Durign the presentation I mentioned some blogs articles that are well worth having a look at;

Lucian Wischik addresses the bugs being fixed within the Async library and what bugs were fixed in the Async CTP refresh in two articles, Async CTP Refresh - Compiler Bug fixes and Async CTP Refresh - what bugs remain in it?. If you're thinking of using the go live licence in the Async CTP Refresh you need to read these two articles to understand which bugs remain and how you might mitigate against them.

Also, Sacah Barber (a UK based C# MVP) provides a really good set of use cases for the Async CTP over at CodeProject, in a post Task Parallel Library: 6 of n, including an example of using a mocking framework for testing your Async code.

If you missed the talk I'll also be giving it at NxtGenUG in Birmingham on 13th September.

Mounting VHD comes to Windows Explorer in Windows 8

I'm glad to see that mounting a VHD file has escaped the Computer Management (Disk Management) administrator console in Windows 7, and made it to Windows Explorer in Windows 8.  That should make the feature much more discoverable, as well as making it much easier to use. 

I think the ability to mount a VHD as a drive, read and write to it and then easily port that VHD to another machine is a great feature that's been hidden in Windows 7.

More on the Windows 8 blog here, http://blogs.msdn.com/b/b8/

Jon Skeet is starting a new series on C# 5.0 Async

Jon Skeet has started a new series of blogs on Async focussing on the underlying technology beneath the Async CTP and Async methods coming in C#5.0.

  http://msmvps.com/blogs/jon_skeet/archive/2011/05/08/eduasync-part-1-introduction.aspx

Jon's blogs have a clear and deceptively easy to read style that belies the complex topics being discussed and is perfect for demystifying the technology behind Async so they are well worth the investment, and I'm looking forward to them hugely.

New Visual Studio Async CTP refresh now works with VS2010 SP1

While I was away on a two week holiday in Morocco I notice that the Visual Studio team have dropped a very welcome SP1 refresh that means you can now play with the Async CTP with Visual Studio 2010 SP1.  It also means you can program against ASP.NET MVC 3.0 and use the Aysnc CTP at the same time.

Visual Studio Blog - SP1 refresh announcement - http://msdn.microsoft.com/en-US/vstudio/async

Lucian Wischik's Blog - design changes - http://blogs.msdn.com/b/lucian/archive/2011/04/15/async-ctp-refresh-design-changes.aspx

Official download - http://www.microsoft.com/downloads/en/details.aspx?FamilyID=4738205d-5682-47bf-b62e-641f6441735b

Have fun and remember to provide feedback to the Visual Studio team to make sure you get the Async features you want in C# 5.0.

Misreporting of variable values when debugging x64 code with the Visual Studio 2010 debugger

How we came across the bug

Today we were debugging some unit tests which passed on a local machine, but were failing on our build server.  We decided to step through the code using the Visual Studio 2010 debugger.  We had real trouble understanding how the test ever passed at all as the debugger was showing a variable having a value of 0 when, we knew it should have a value of 103.4, and the test should definitely fail if the value was 0.

This resulted in a great deal of head scratching, and eventually resorting to writing to the Debug window, which proved the variable did hold the value of 103.4 even though the debugger repeatedly showed the variable holding the value of 0.  The initial tests used the ReSharper test runner, so we ran a check that debugging a standalone version of NUnit produced the same value of 0, and it did.  So it wasn’t a tooling issue, and unlikely to be specific to NUnit.

As our code was part of a suite of unit tests, which in turn was part of a medium sized solution with many dependencies, we had to produce a repeatable test with the minimum number of lines of code.  We created a new console application and created the three lines of codes with two methods that were the bare minimum to mirror the code in our unit test project.

However, we couldn’t make it reproduce the fault we’d seen.  We nearly gave up, but as I had Visual Studio 2010 Ultimate installed on my machine I thought it was a good chance to use IntelliTrace to see if that changed how variables were handled in the debugger.  However, we were surprised to see in the help files that IntelliTrace only worked when a project Platform Target is set to target a x86 CPU. This is when the penny dropped – our projects target Any CPU which on our systems means x64.  The moment I set the Platform Target to x64 the error was reproduced.

Show me the code!

Here is how to reproduce the issue. In Visual Studio 2010, create a Visual C#, Windows application, using the Console Application template. In the code file Program.cs replace the code with the following code, 

using System; 

namespace MisreportingValuesInNullableTypes

{

          class Program

    {

        static void Main(string[] args)

        {

            Decimal result = GetNullableValue() ?? GetNonNullableValue();

            Console.Write(result);

        }

        static decimal? GetNullableValue()

        {

            return (decimal)200.22;

        }

        static decimal GetNonNullableValue()

        {

            return (decimal)100.11;

              }       


         }

 

What does the code do?

The code has two methods. GetNullableValue, may return null or a decimal  value. A second method, GetNonNullableValue, is guaranteed to return a decimal value every time. 

The result variable in the Main method is assigned using the null-coalescing operator, ??, which will assign the return value of the first method call unless it has a null value, in which case it will assign the return value of the second method.  This guarantees that there will always be a decimal value assigned to the variable result.

Reproducing the problem

To view the variable result with the debugger set a breakpoint on the line containing Console.Write. If you left the project with the default settings, the Platform Target should be set to x86.  When you run the program, it will reach the breakpoint, and if you hover over the result variable it will show the value 200.22.

Now right click on the console project in the Solution Explorer and configure the Platform Target to x64.  Now when you run the program, it will reach the breakpoint, and if you hover over the result variable it will show the value 0.

In either case the actual value held in the variable is 200.22.  You can see this when the Platform Target is set to x64 by reaching the breakpoint and pressing F10 to step one line further in the code. If you switch to the console application window, there is the correct value of 200.22 even though the debugger showed the variable holding the value 0 when you hover over it in the code window.

Incorrect variable value displayed in x64 debugger

Even weirder behaviour ...

During trying to reproduce the problem, we edited our original code to see if I could ‘fix’ the problem by using a different method of assigning the variable.  This is when we discovered that if you add an additional variable assignment after the line making the assignment to result,

            bool AnyOldVariableWeDontActuallUse = true;

this resolved the issue and the debugger displayed the correct value.  This is true even if the variable is not actually used by any other code. This additional variable can be of any type but it must be initialised if it is to work. If you leave this additional variable with a default value it won’t resolve the issue with the debugger.

Conclusion

Our tests were performed in Windows 7 64-bit, with Visual Studio 2010 Professional RTM, Visual Studio 2010 Ultimate RTM and Visual Studio 2010 Ultimate SP1, and all exhibited the same fault in the debugger when the Platform Target was set to x64.

I haven’t delved into the IL code generated, as clearly the actual code and .Net Framework is functioning as expected.  The fault appears only to lie in the x64 implementation of the Visual Studio 2010 debugger.  As Visual Studio 2010 Professional doesn’t include IntelliTrace the x86 debugger is the standard debugger for Visual Studio, one would expect this to be identical to that in the x64 version.

So if you are debugging an Any CPU or x64 don’t necessarily believe the value that the debugger might tell you is stored in a variable. Not a comforting thought.

Note

I have placed this issue on Microsoft Connect if you wish to provide additional feedback to Microsoft on this issue,

https://connect.microsoft.com/VisualStudio/feedback/details/655793/edit-this-entry-misreporting-of-variable-values-when-debugging-x64-code-with-the-visual-studio-2010-debugger

A visit to #MEATEASY – the temporary home of The Meat Wagon

I normally stick to IT stuff on this blog .... but nice to have a change now and then.

I first heard about The Meat Wagon on BBC Radio 4’s Food Programme, http://www.bbc.co.uk/programmes/b00shfqt, and have been following their web site at http://www.themeatwagon.co.uk/ ever since.  They had a principle of just turning up in a London pub car park with very little notice so my chances of being nearby to enjoy the feast described here (http://www.handtomouthblog.com/when-hand-to-mouth-met-the-meatwagon) were slim.

Just before Christmas they suffered the theft of The Meatwagon itself, and located a temporary permanent location in New Cross called the #MEATEASY, http://www.themeatwagon.co.uk/?p=491, directly opposite The Venue where I remember stomping along to Carter The Unstoppable Sex Machine, rather a long time ago in my college days.

With only a few weeks left to run in the venue, I just had to head over for my chance to taste allegedly some of the most authentic burgers and Philly Cheesesteak sandwich in the UK. I roped in a fellow foodie, Toby, to join the fun.

The New Cross venue is upstairs at the Goldsmiths Tavern, which is currently being renovated to reopen in April.  You walk through a side door, up a bare staircase with walls coated in fresh plaster and then enter a room with awesome levels of noise and energy.  It was absolutely rammed, and mostly with people about ten years younger than Toby and myself.  Fortunately no old fart filtering on the door.

A couple of raffle tickets gave us our place in the queue for ordering, you can only order when your number gets called out and they won’t give you more tickets than the number of people present.  So if your friends are late, tough, and that helped us as another group swapped tickets, elevating us from 142/143 to 98/99, which meant food about 30 minutes earlier than expected.

Waiting for ordering was no chore, they serve very nice Meantime beers; the London Pale Ale and Union Amber Lager are very fine beers.  I was very impressed by the Union Amber Lager, a lager that really tastes of something.  It also gave us time to work out what we would order, a list which kept getting longer and longer as we gazed at the chalkboard menu.

In the end we had a two Dead Hippy Burgers, a Philly Cheesesteak Sandwich, Mac and Cheese, Onion Rings, Chilli Cheese Fries and Buffalo wings with blue cheese sauce.

The Dead Hippy Burger was described as a ‘Big Mac on steroids’ and it fulfilled the billing wonderfully. A burger sliced in half, mustard inserted in the middle and then put back on the griddle, dressed with cheese and smothered in their own burger relish in a fantastic bun.  Soft and oozing, the only thing that could have made it better was a rasher of bacon.

The Philly Cheesesteak Sandwich was the star of the show for me, and I’m glad that as a first timer, I was given such a superb example of this delicacy. Chopped steak, soft peppers, and melted cheese overflowing the soft hot dog roll. The chilli cheese fries were an excellent companion with a good pickled chilli vinegar kick which I hadn’t expected, but which created a perfect balance.

The onion rings were crispy and light and Toby rated the Mac and Cheese (not my favourite item, school dinners to blame here). The only disappointing item was the buffalo wings, which had a very thin sauce which didn’t really give the spicy kick that I would have expected.  The blue cheese sauce helped but had too much work to do to lift them out of being, well, ordinary.

This was definitely one of the best foodie experiences I’ve had for a long time, and a fantastic contrast to the standard restaurant or pub grub. A buzzing atmosphere, fine beers and the best Philly Cheesesteak Sandwich are only available for another two weeks (until April 16th) so my advice is to get there now before it ends.

Microsoft Async CTP for DDD9 UK Developer Conference - slides and source code now available

UPDATE 25th April 2011 - Visual Studio Async CTP (SP1 refresh) now available.

http://geekswithblogs.net/twickers/archive/2011/04/24/new-visual-studio-async-ctp-refresh-now-works-with-vs2010.aspx


Thanks to all the nice comments from people who attended my presentation at DDD9, and extra thanks to Jon Skeet, Mark Rendle and Mike Hadlow for coming on stage for the last ten minutes to help debate whether the Async CTP is the correct way to go to enhance C# 5.0.

The presentation is available at Prezi.com http://prezi.com/gysz5nohltye, which I can recommend as a refreshing change to the more standard PowerPoint slidedecks.

I've also uploaded all the code samples into a single ZIP file. You will need to install the Async CTP to be able to run them, and I would remind everyone that the current Async CTP is not compatible with either ASP.NET MVC 3 RTM or Visual Studio 2010 Service Pack 1 so you may need to use a test system of virtual machine to play with it!

Source code - http://www.tigernews.co.uk/blog-twickers/ddd9/AsyncSrc.zip

Again, thanks for all the positive feedback and the whole of the DDD team for putting on a fantastic conference for all the presenters and delegates.

 

Killer content for my Kindle - The Economist with no need for an iPad - yipeee!

I admit it, I was jealous of someone's iPad. They were reading The Economist, for free, as they were a print subscriber.

I'm a print subscriber too. However, I don't have an iPad or an iPhone, just an Android phone and a Kindle. As soon as I got the Kindle, I looked up how to get The Economist on it. £9.99 per month. Hmmm, twice as much again as my print subscription and I wanted to maintain the print subscription. No way Amazon.

Fortunately some nice person wrote similar comments on The Economist subscription for Kindle, but added a very important additional nugget of information. There is no need for a Kindle subscription, as a print subscriber you can just use the free Calibre e-book creation tool.

So I downloaded it, searched for The Economist online 'recipe', entered my login name and password (part of my print subscription) and off went Calibre to screen scrape every single article from the Christmas 2010 issue into a .mobi file, complete with front cover image and full indexing.

It's wonderful. Truely wonderful. Every section individually indexed, with each article separated and all inline images preserved. It even feels wonderfully retro, back to the days when The Economist only used black and white images.

So many thanks to the guys behind Calibre and The Economist recipe creators. Finally, I have the essential Kindle content that it's been crying out for.

UPDATE 6 January 2011

At first I thought I could only ever view the latest edition of The Economist that I had copied over.  Even though they were hand copied into differently named folders under documents only the latest edition appeared in the main list. Silly me, if you go to the end of the list of documents there is a Periodicals folder, and in there are all the previous editions of The Economist. It just gets better.

Final ever Virtualisation for Developer slidedeck from NxtGenUG Cambridge

Thanks to Chris Hay, Allister Frost and the guys from NxtGenUG Cambridge for hosting an evening of virtualisation, and for their secretary Rachel Hawley for sorting out all the dates and details ;-).

It was a good turnout so close to Christmas, obviously the bribe of home made mince pies got some people out on a cold wintery December evening.  Big thanks to Allister for driving me to the railway station to ensure I made the 22:29 train, made all the easier by quaffing a couple of very well kept pints of Adnams Broadside in The Punter after the presentation.

For those who want the last ever slide decks, they're available here in PDF and PowerPoint format,

  http://www.tigernews.co.uk/blog-twickers/nxtgenugcambs/Virt4DevsPdf.zip

  http://www.tigernews.co.uk/blog-twickers/nxtgenugcambs/Virt4DevsPowerPoint.zip

And a final thanks to all the user groups who have hosted a Virtualisation or Hyper-V talk in the past two years, and gave me a chance to enthuse developers about virtualisation,

* twice, for both Virtualisation for Developers and Hyper-V for Developers


Virtualisation for Developers  2008 - 2010

R.I.P.


Hyper-V for Developers 2009 - 2010

R.I.P.


DDD9 - voting now open for the UK's premier community event

If you are interested in software development including a heap of great open source frameworks, then get over to the DDD9 web site and vote for some sessions for the next DDD conference.  It will take place at Microsoft's UK headquarters in Reading on 29th January 2011.

    http://developerdeveloperdeveloper.com/ddd9/ProposedSessions.aspx

I've proposed a session on the new Async CTP announced at PDC, but there's loads more interesting stuff such as Ruby, CQRS and jQuery Mobile, so get your votes in now so it's the content you want to see.

 

 

 

Last chance to see ... Virtualisation for Developers at NxtGenUG Cambridge, Tuesday 14th December

As a farewell to 2010 I'm also saying farewell to presenting my Virtualisation for Developers and Hyper-V for Developers presentations with a final outing at NxtGenUG in Cambridge (my first visit to a user group in The Fens). I may have some homemade nibbles and party stuff to liven up the evening, and a certain Rachel Hawley has suggested a santa hat might be appropriate too. It's going to be a fun night. Sign up details are available here,

  http://www.nxtgenug.net/ViewEvent.aspx?EventID=353

And for those of you who can't make this last outing, I am planning on converting both presentations into a series of blog posts so the content will be available to a wider audience.  If the posts don't seem to be appearing fast enough drop me an e-mail to remind me to get on with it !