Saturday, March 31, 2012

Top 3 books read in 2011

Yes, it's rather late for this sort of thing: it's the last day of March and therefore the final day of the first quarter of 2012.  Somehow drawing attention to the fact that it's still the first quarter of the new year makes it seem like this isn't really as late as it is.

I didn't pay that much attention last year to the books I read, so it's all going to be a bit vague, but here, briefly, are the three best books I read last year:

In order of reading.

The Quantum Thief, by Hannu Rajaniemi (2010)
This one stands out a little for me, selection wise, in that it was a very recent publication.  Though I have a bit of a bent these days for modern SF, that normally means reading something from the last couple of decades.
There was a fair bit of hype on this debut and it doesn't fail to deliver.  Hannu writes a very dense, very hard post singularity sci-fi novel that throws some brilliant concepts around some pretty cool characters.  Post-humans abound, working with even more powerful entities, in and around the solar system perhaps a few centuries hence.  Contains detectives, thieves, gaming culture and a whole lot of musings on the implications of future tech.
Looking forward to the sequel coming out later this year, but will need a reread of the Quantum Thief beforehand, methinks.
Trivia: contains a recommendation on the cover by Charles Stross, who wrote the very next book I read and is next up on this list.

Accelerando, by Charles Stross (2005)
Selected by me for a bookclub, since I'd been meaning to get around to Stross at some point and this one received some notoriety.  The book is a collection of 9 continuing tales, though it didn't suffer for that.  Taken together, they form a novel focusing on a man at the cutting edge of technology, and his descendents, as they head into and then through the technological Singularity, beginning in roughly the present day.  Slashdot makes good background reading for this (and even gets a mention), especially for the first third that deals with the ramp up to the Singularity.
Probably has the highest density of ideas to pages of any book I can recall reading.  Stross throws down concepts and references without even bothering to stop and see if the reader is still with him because he's already bringing something else up.

Pushing Ice, by Alastair Reynolds (2005)
I'd picked up a slew of books by Reynolds at a garage sale recently and had rather expected that the first Reynolds books that I'd read would be the Revelation Space series.  The first book in that series was in fact sitting in my short-short list of books awaiting to be read, whereas this book had languished in a more general pool of books: the second tier, as it were.  Still, for whatever reason this book was picked up in the dying weeks of the year and wham! it delivers emphatically with a strong plot and characters, along with a high degree of page-turning readability.  It has an adventure feel to it, and is quite reminiscent of Clarke's Rama series.  A crew of comet-miners are in the vicinity of an unknown alien object that's discovered and they are dispatched to investigate.  Cue humans interacting with cool alien tech.


General Notes

All three books are the only novels I've read by those authors, which also helps me tick off on another list a couple of the authors that I wanted to read something - anything - by.
All of the books are sci-fi, and in fact all are hard sci-fi.
All of the books are quite recent, being published within the previous 6 years.
Only one book (The Quantum Thief) is set in a specific time - the other two span non-trivial ranges.
All of the authors are European, and two of the three are from the UK.


Comments on the above novels are welcome, as well as your own favourite reads from last year, whatever the genres.

Thursday, March 8, 2012

Visual C++ 11 Beta 1 Initial Thoughts

I've started giving Visual C++ 11 a bit of a workout, and there's much to like about it.

Stability might be improved over 10 - I'll withhold judgement on that one for the time being, however.

We've got range based for loops.  That's a nice improvement since the DP last year.  Now you can do things such as :

#include

auto main()
-> int
{
    //  TODO - discover why this doesn't show up on Task List.
    std::vector joe;

    for (auto bob : joe)
    {

    }
}
In the above code we can simply declare bob as a deduced type of the container joe.  Handy when you're iterating over your containers and don't want to repeatedly deal with dereferencing (sorry, indirecting through, according to N3362) an iterator.

Pity there's such a mess with the Task List comments not working.  I can't get a single one to show.
And I won't even elaborate on the fact that it says it will only report on the ones in open files.  Sheesh: I've got a solution.  Feel free to inspect it.

The support for a light and dark theme is nice.  A little interesting that it's just a two horse event, but still.  Alas, I've kinda shot myself in the foot here by overriding some of the backgrounds in order to force a dark background - I'll have to undo some of that in order to get this fully working (should I want a light theme, and I might some day if I coded when the sun was up).

I really like the fully fleshed out syntax highlighting.  Though I think I loved it more in the Developer Preview.  I'm sure I used to be able to set things as italics - the example of parameters being in italics is mentioned across the web, however the Beta most definitely doesn't have an italics setting, just bold.  I have a function definition in front of me that's never known the loving hand of italicisation.

Oh, the monochrome look.  That's right.  For those who haven't heard, the Visual Studio now uses about three shades of grey as its entire colour palette.  Outside of your code, that really isn't an exaggeration.  There's a dark grey, a light grey and a - wait for it - intermediate grey.  Icons have been drained of colour and general boxing and lines have been removed from dialogs to give them a slabs-of-grey-paint look.
It was a little WTF at first.  You start thinking that this is a feature they'll introduce for VS 11 in order to have colour introduced as a feature in VS 12.  But I have to say that after the initial surprise, you get used to it pretty quick.  It's distinctive.  Better, worse?  Not much in it for me at this point.

Microsoft have folded a lot of the VS 2010 Productivity Power Tools into the VS 11 release.  The theory goes they get some out-of-band feedback on enhancements and iterate them, then add them into the next release - and here we are.  Alas, one of my favourites was the document view scrollbar.  And since I don't have the Power Tool available for VS 11, that means I'm without the enhanced scrollbar altogether.
I don't have a picture handy of the VS 2010 Power Tool one, so here's an image taken of the scrollbar from the Sublime Text editor home page.  Very much the same sort of thing: I love being able to see the general structure, as well as search matches, bookmarks, breakpoints, etc.  Sublime's not a bad text editor btw, though I tend to prefer notepad++.



 Overall, Visual Studio seems pretty punchy and responsive, though the find all references is as slow as ever.

Note that the Beta that you download is Ultimate.  Which in some ways is a pity because that means it comes with a boatload of stuff that I am never going to see in day to day usage (since I'd be using something like Professional).  Still, it does give you an opportunity to see what you're missing, including the perf tools and architecture stuff.

There are quite a few changes, both in the IDE and in the language support, so it will take quite some time to really go through and explore what's there.  This has just been a quick write up to gather some thoughts, prompted by the discovery of some unexpected C++11 support in the form of range based for loops.