Tuesday, December 20, 2011

Visual Complexity, by Manuel Lima

Coming to you from the "this is not a book review" department.




 Visual Complexity is probably one of the more surprisingly enjoyable books I've received recently.  And yet, it's rather quite unlike what I was expecting: and I say this as someone who had the book arrive in the mail with a large dose of "what the hell was this one?"  Perhaps a symptom of getting carried away with book ordering and having to wait for them to arrive from overseas, but nevertheless.



The book is something of an overview of different ways of trying to extract meaning from vast amounts of data through visual presentation.  The book shows how over time the forms employed have changed to suit the scale of the data being worked with.




One criticism I have seen is that given the amount of data on some of the graphs and the accompanying text, it is difficult to make out details of how the data is mapped.  I'm not overly bothered by it myself, as it's not the specifics of any particular graph that I'm interested in, more the style used for presentation. 

 

It's not going to teach you how to go about organising or analysing your data, but if you do have to deal with such things this book will show you the results of the myriad ways others have tackled similar problems.
All in all, recommended if you're looking for inspiration or pretty graphics.

Friday, December 2, 2011

Visual C++ 11 and Boost, Pt 2.

The modifications of the build.bat file described in the previous post give us better VC 11 compatibility, but there are still a few shortcomings that we need to deal with, particularly if we want to get auto-linking working.  With the changes described so far, Visual Studio will attempt to link to libraries from the previous version of visual studio (2010), resulting in complaints about missing libraries.

The remaining VC 11 issues are spread over two files.
The changes, as before, are mostly trivial and it's mostly a case of keeping track of those few places that need VC 11 cases.  No doubt a later boost version will have more significant changes to these files to more accurately track the changed capabilities of the compiler and standard library.

Compiler Capabilities (visualc.hpp)

First config/compiler/visualc.hpp

There are a number of issues with the file, but none serious and none dealing with auto-linking issues.
The purpose of the file is to specify for boost which C++ features are available or not available, given the current version of VC.  Of course, the version checking tops out at 2010.

We probably want to remove the warning that we're using an unknown compiler, a check performed at the very end.  We just need to bump the version up to 1700, as below:

// last known and checked version is now 1700 (VC 11):
#if (_MSC_VER > 1700)
#  if defined(BOOST_ASSERT_CONFIG)
#     error "Unknown compiler version - please run the configure tests and report the results"
#  else
#     pragma message("Unknown compiler version - please run the configure tests and report the results")
#  endif
#endif


Shortly above that the compiler version is defined, again topping out at VC2010.  We just need to modify that section to include a VC 11 case:

#   elif _MSC_VER == 1600
#     define BOOST_COMPILER_VERSION 10.0
#   elif _MSC_VER == 1700
#     define BOOST_COMPILER_VERSION 11.0


Finally, above this we have a set of defines for all versions of the compiler, specifying those features that are not supported in any VC release.  Doesn't look like this really changes for VC 11, but they're under the following banner in case you're curious:

// C++0x features not supported by any versions

Autolinking (auto_link.hpp)

We need boost to define the library toolset for us, and config/auto_link.hpp tops out at VC2010.  Once again a simple extra case for VC 11 (and modification of the previous case to stop it matching) is all we need.  Check that BOOST_MSVC is 1700 or greater for VC 11 before moving on to CBuilder 6 and auto link will once again try searching for the correct libs when required.  Trivial, as below:

#elif defined(BOOST_MSVC) && (BOOST_MSVC == 1600)
   // vc10:
#  define BOOST_LIB_TOOLSET "vc100"
#elif defined(BOOST_MSVC) && (BOOST_MSVC >= 1700)
   // vc11:
#  define BOOST_LIB_TOOLSET "vc110"
#elif defined(__BORLANDC__)

Conclusion

That pretty much concludes all the changes you should need to make to the boost build system to get it playing nice with VC 11.

Latest version of Boost (1.48)
http://www.boost.org/

Sunday, November 27, 2011

Visual C++ 11 and Boost

Visual Studio / C++ 11 is currently at the Developer Preview level and as such doesn't have official support within libraries such as boost, even in the 1.48 release that came out in mid November 2011.
Despite this, the two will work together out of the box pretty much as is, with only a few warnings if you need to bootstrap in order to build the various libraries (for the non-header-only libraries, such as boost filesystem, etc).

Default Behaviour:

With a vanilla boost 1.48, after executing your VS vcvarsall.bat and running the boost bootstrap, you should get a successful build, with the following warnings:

bootstrapping issues:
cl : Command line warning D9035 : option 'GZ' has been deprecated and will be removed in a future release
cl : Command line warning D9036 : use 'RTC1' instead of 'GZ'
cl : Command line warning D9002 : ignoring unknown option '/MLd'

RTC1 is run time error checks.
GZ = Enable Stack Frame Run-Time Error Checking.

Why do these occur?  Turns out the boost batch files attempt to determine what your current compiler is, and with VC 11 it partially fails.

Cause of Warnings:

To begin with, the bootstrap calls into the build.bat file in
tools\build\v2\engine\

One of the first things this batch file tries to do is guess the toolset based on the environment variables set by visual studio.  You can find this in section :Guess_Toolset.
It starts with VC 10 and works its way down.  These all fail until eventually it finds that at least there's a VCINSTALLDIR, which sets it to VC7 mode (Visual C++ .NET 2002).

In and of itself, that's not as bad as it seems, because it's still calling cl.exe, which is the VC 11 compiler.  The issue is that later, down in the :Config_Toolset section it finds that we're using a VC 7 compiler and so passes the compiler a set of arguments suitable for VC 7, generating the warnings listed above.

Elimination of Warnings:

There are two steps we need to take to eliminate the warnings.

First we need to support VC11 in the :Guess_Toolset section.  It's just a minor copy and tweak from the VC 2010 detection code that we add before it, with VS100 changed to VS110 and vc10 updated to vc11:

call :Clear_Error
if NOT "_%VS110COMNTOOLS%_" == "__" (
    set "BOOST_JAM_TOOLSET=vc11"
    set "BOOST_JAM_TOOLSET_ROOT=%VS110COMNTOOLS%..\..\VC\"
    goto :eof)

Second, we need support down in the :Config_Toolset in order to pass the correct parameters to the compiler.
The :Skip_VC10 section leads into the test for the borland compiler, but of course that needs to be changed to :Skip_VC11, as we add in a new section there for :Skip_VC10 which verifies we have VS 11 installed and sets the appropriate environment settings, else jumps to the :Skip_VC11 section (the borland test) to continue as before.

The new section is once more just a minor copy and tweak from the existing VC 2010 code, and is included below for completeness:

:Skip_VC10
if NOT "_%BOOST_JAM_TOOLSET%_" == "_vc11_" goto Skip_VC11
if NOT "_%VS110COMNTOOLS%_" == "__" (
    set "BOOST_JAM_TOOLSET_ROOT=%VS110COMNTOOLS%..\..\VC\"
    )
if "_%VCINSTALLDIR%_" == "__" call :Call_If_Exists "%BOOST_JAM_TOOLSET_ROOT%VCVARSALL.BAT" %BOOST_JAM_ARGS%
if NOT "_%BOOST_JAM_TOOLSET_ROOT%_" == "__" (
    if "_%VCINSTALLDIR%_" == "__" (
        set "PATH=%BOOST_JAM_TOOLSET_ROOT%bin;%PATH%"
        ) )
set "BOOST_JAM_CC=cl /nologo /RTC1 /Zi /MTd /Fobootstrap/ /Fdbootstrap/ -DNT -DYYDEBUG -wd4996 kernel32.lib advapi32.lib user32.lib"
set "BOOST_JAM_OPT_JAM=/Febootstrap\jam0"
set "BOOST_JAM_OPT_MKJAMBASE=/Febootstrap\mkjambase0"
set "BOOST_JAM_OPT_YYACC=/Febootstrap\yyacc0"
rem change it back because VC11 is not officially known.
set "BOOST_JAM_TOOLSET=msvc"
set "_known_=1"

After that you should be able to bootstrap warning-free.   
   
ps. It's amusing how often I see reference to the file "boostrap.bat"

Monday, November 14, 2011

Updating the shortshort list


I'm finding that my short (short) list of books to read has grown larger and more unwieldy than I'd like (about 90 books), and should probably be revised. So I thought I'd post it here for the following:
  • Comments on any couple of books that you think are most worthwhile to be on the shortlist.
  • Comments on any couple of books that you think are least worthwhile to be on the shortlist.

Obviously I'm looking for your opinion, and not whichever book has had the most impact on 19th century social trends, or whatever lists happen to measure...
And there's probably no point in suggesting other books to be promoted to the list since you won't know what I've read, but still...
Feel free to add qualifiers.

The Island of Doctor Moreau, H.G. Wells
The Book of Lost Things, John Connolly
Earth Abides, George R. Stewart
A Connecticut Yankee in King Arthur's Court, Mark Twain
The Dying Earth (Dying Earth Series #1), Jack Vance
Podkayne of Mars, Robert A. Heinlein
Anthem, Ayn Rand
Lord of the Flies, William Golding
The Sunset Warrior (The Sunset Warrior Cycle, #1), Eric Van Lustbader
The Snow Queen, Joan D. Vinge
Doctor Who and the Hand of Fear, Terrance Dicks
More Than Human, Theodore Sturgeon
Timescape, Gregory Benford
The Man in the High Castle, Philip K. Dick
Diaspora, Greg Egan
Double Vision, Tricia Sullivan
Spares, Michael Marshall Smith
Life of Pi, Yann Martel
Smashed: Growing Up a Drunk Girl, Koren Zailckas
Satan Burger, Carlton Mellick III
The Eyre Affair (Thursday Next, #1), Jasper Fforde
Summertide, Charles Sheffield
Tehanu: The Last Book of Earthsea, Ursula K. Le Guin
Divergence Tony Ballantyne
Light, M. John Harrison
Xenocide (Ender's Saga, #3), Orson Scott Card
Sex And Death in Television Town, Carlton Mellick III
Sausagey Santa, Carlton Mellick III
The Light of Other Days, Arthur C. Clarke
The Gospel of the Flying Spaghetti Monster, Bobby Henderson
Transmetropolitan Vol. 3 Revised: Year of the Bastard, Warren Ellis
Watchmen, Alan Moore
Elements of Programming, Alexander Stepanov
Mortal Engines (The Hungry City Chronicles, #1), Philip Reeve
The Collected Stories of Philip K. Dick 1: Beyond Lies the Wub, Philip K. Dick
Singularity Sky (Eschaton, #1), Charles Stross
The Shockwave Rider, John Brunner
The Burrowers Beneath, Brian Lumley
The Black Sun, Jack Williamson
Spin (Spin, #1), Robert Charles Wilson
Fools, Pat Cadigan
Fairyland, Paul J. McAuley
FlashForward, Robert J. Sawyer
Coraline, Neil Gaiman
A Fire Upon The Deep, Vernor Vinge
Hyperion (Hyperion, #1), Dan Simmons
Vernon God Little, DBC Pierre
Engines of Creation: The Coming Era of Nanotechnology, K. Eric Drexler
Star Maker, Olaf Stapledon
Revelation Space (Revelation Space, #1), Alastair Reynolds
The Speed of Dark, Elizabeth Moon
Schild's Ladder, Greg Egan
Stations of the Tide, Michael Swanwick
Where Late the Sweet Birds Sang, Kate Wilhelm
Ill Met in Lankhmar/The Fair in Emain Macha, Fritz Leiber
The Moon Is a Harsh Mistress, Robert A. Heinlein
The Golden Age (Golden Age, #1), John C. Wright
Tea From An Empty Cup (Artificial Reality Division #1), Pat Cadigan
Blood Music, Greg Bear
Mindstar Rising (Greg Mandel, #1), Peter F. Hamilton
The Ringworld Engineers, Larry Niven
Metal Fatigue, Sean Williams
Blood and Iron (Penrose 2), Tony Ballantyne
The Warrior's Apprentice (Vorkosigan Saga, #3), Lois McMaster Bujold
Falling Free, Lois McMaster Bujold
Iron Council (New Crobuzon, #3), China Miéville
Do Androids Dream of Electric Sheep?, Philip K. Dick
The Yiddish Policemen's Union, Michael Chabon
Tau Zero (Sf Masterworks), Poul Anderson
A Canticle for Leibowitz, Walter M. Miller Jr.
The Stars My Destination, Alfred Bester
The Road, Cormac McCarthy
The Lies of Locke Lamora (Gentleman Bastards, #1), Scott Lynch
China Mountain Zhang, Maureen F. McHugh
Last and First Men, Olaf Stapledon
Behold the Man, Michael Moorcock
Man Plus, Frederik Pohl
Forever Peace, Joe Haldeman
Oryx and Crake, Margaret Atwood
Bloodmind, Liz Williams
The City and The City, China Miéville
Stealing Light, Gary Gibson
Teeth and Tongue Landscape, Carlton Mellick III
Worldshaker, Richard Harland
Broken Angels (Takeshi Kovacs, #2), Richard K. Morgan
This is Not a Game, Walter Jon Williams
Halting State, Charles Stross
American Gods, Neil Gaiman
The White Tiger, Aravind Adiga
Sundiver (The Uplift Saga, #1), David Brin
Beggars in Spain, Nancy Kress

Thursday, October 27, 2011

Les mots justes: or, The struggle for expression



Replicable.  Simple enough word meaning "able to be replicated".  Now, the other day I needed an antonym for it - I honestly can't remember why - and rather than using "not replicable" I felt compelled to find something that more succinctly summed up the concept.

This, of course, was not the first time I'd been derailed by a language non-issue.

I don't know whether the internet is responsible for my malady or whether it just exacerbated it, but I've  noticed a tendency to get distracted by such irrelevant word issues.  Sure it might only be a few minutes, and the internet might be just there, but I think I get irritated by the fact that I'm irritated about the issue as much
as the issue itself.  And I don't even want to think about how I feel about that.

For example, whilst writing up some code comments describing some interactions between two parties communicating, I referred to the information that went to and fro between client and server.  Except that due to the phrasing, I needed to use "toing and froing".  Problem was, as I sat there at the keyboard I couldn't convince myself it was even a valid phrase, let alone settle on a spelling for it.  So off to the internet I dived and came back with some reasonable level of confidence that it was a valid phrase (generally speaking) but torn between the inclusion of hyphens or the hyphen free version.
So you can guess what I did.
I consulted a friend.
I began by describing to him the general situation that the code covered, namely how we had some initial data going to and fro.
"So it's handshaking?" he interrupted.
Pause.  Well, yes.  And whilst at that point I realised that handshaking was indeed the term I should be using, it nevertheless felt like if I used it then I was merely going to be avoiding the issue.  Nothing like missing out on a definite resolution to suck the joy out of writing code comments.

The toing and froing situation is reminiscent of the Periodic dilemma.  In this case, what I had was behaviour that was decidedly *not* periodic.  I searched around through various definitions - of random, of irregular, of non-repeating, of variable and vacillation - sure that somewhere there was a word in the English language that perfectly captured the kind of timing behaviour I was witnessing.
Lo and behold, the word "aperiodic" was hiding in plain sight.  The twist in the tale is that as I wrote up a description of the situation I realised it wasn't all that aperiodic after all.

Whilst performing a hell of a lot of mathematical manipulation on some data once, I realised that there were some interdependencies involved that meant I couldn't just update values on the data set as I went along, or I'd skew the rest of the set.  Working on a temporary copy was easy enough, but once again I was sidetracked by the description of the problem.  How to best explain that I couldn't work on the data in-situ?  I know what you're thinking - why not say you have to work on a temporary copy because of the data interdependencies?  Rather as I did above?
Well, once the Latin expression of "in-situ" for "in place" had popped into my head, I became convinced that the solution was to find another Latin phrase meaning something roughly the opposite.
Do I know Latin?  Of course not!
Cue crazy search through pages of 'common' Latin phrases.  Only to find, once again, the obvious answer: "ex-situ".  On a side note, I came across a number of very interesting Latin expressions that I thought might add a richness to my expression.  Naturally, none have survived even in memory.

I won't even delve into the sad story of how splitting a hard drive's partition into three separate partitions resulted in my joyous discovery of the word "trifurcation".  It gets brought up enough whenever people have to read the resulting document.

But to return to the opening point.  I was after an antonym - yes, another, I swear they're the bane of my existence - for replicable and once again looked to the internet for a solution.
Turns out there's not really any such definitive word in English.

First, a breakdown in stats for several google searches:


  • replicable: 1270 K
  • nonreplicable: 75 K
  • unreplicable: 11 K
  • irreplicable: 3 K


Of the three antonyms list above, none are present in merriam webster's dictionary.
However, there's some interesting discussion over at wordreference.

For a start, someone else did a google search and recorded the hits, so we have growth data.  Here's the (alleged) results from 5 years ago (2006):


  • unreplicable: 10.2 K
  • irreplicable: 0.6 K


So there's been some minor increase in unreplicable (< 10%) but a vast increase in the use of irreplicable (~400%).  However, both are still a long way behind nonreplicable.

In favour of irreplicable, one user suggests it follows the pattern of similar words, such as irreparable,  irreplaceable, irrepressible.
Of course the counterargument would point to words such as unreproduceable, unrepealable and unrepeated.  The last is rather interesting, as merriam webster recognises "unrepeated" but not "unrepeatable".  How positively bizarre.

As to the general question of when to negate with "un-" and when to negate with "ir-", alas there seem to be no formal rules: that the current words have come into existence purely from usage, and the usage arises from the phonetics of the forms.

Finally, a note on the origin of several English prefixes:
un- : Old English
ne- : Old English
in-, im-, ir-, il- : Latin
di-, dis- : Latin
a-, an- : Greek


Addendum: I'm not bothered by the fact that when trying to find a title for a piece that's about looking for the perfect word for something in English, it was a French phrase that best captured the essence.


Wednesday, September 7, 2011

Focusing and Foregrounding and Their Impediments

Some days I think a mouse would be a much better tool if only it had a button on it dedicated to obtaining focus.
On other days I realise what a colossal waste that would be.
Until that mouse button comes along I'll just have to continue clicking on a window like a monkey in order to obtain focus for scrolling.

What's that, you say?  Why don't I just use an app that lets me scroll whatever window is currently under the cursor?  Because sometimes I want to bring the window to the foreground so I can see the entire area.
And yet I don't want any window that happens to be under the cursor to always be brought to the fore as I wave the mouse around the desktop with abandon.

The problem with clicking to obtain focus, in case you were wondering, is that clicking initiates an action: namely, the click.  Upon, say, plain text in a webpage it's quite benign, which is what encourages the action to be initiated again in the future.  Unfortunately sometimes you end up clicking upon something that is actionable, such as a link on a webpage or a directory in a file explorer and it's these situations that irk me enough to bring to mind the fact that I want to click only to obtain focus and/or bring the window to the foreground and not to perform some action.

Sometimes I wonder if I'm doing it all wrong.

Thursday, September 1, 2011

Slashing in the English language, and the parsing issue.


Sometimes the english language just makes me want to tear it apart and put it back together again.  And it's not even the irregular verbs and exceptions that irritate me the most.  More often than not it's the little things.  But little things lead to big things.

Take the slash.  Often defined as a forward slash used to separate alternatives or grouped items (!) it's generally considered good practice to not use spaces unless the items you're separating themselves contain spaces.  So "good/bad", but "good / rather bad".  How the hell is a reader supposed to identify the groups being slashed?  It's a parsing nightmare.

This is the part where I say I've avoided writing "(good) / (rather bad)" so far, but admit that I don't know how much longer I can hold out.
Of course, this just leads to further questions, such as

  • Does 'good' really need to be parenthesised given that it's a single word?  I'd argue on the grounds of including the parentheses on the grounds of symmetry.
  • Should there be spaces surrounding the slash, given that we've reduced the multi-word item 'rather bad' down to the single parenthesised item '(rather bad)'?  I have no strong feelings one way or the other here.
  • What happens if I need to slash-separate a pair of parentheses and a group of words?  Or perhaps worse, a single opening/closing parenthesis and a group of words?  How does one read (() / (other mismatched punctuation)?
And before you know it we're onto grouping, sentence structure, syntax and whitespacing.

Yet I have no problem dropping caps on proper nouns...


Saturday, August 27, 2011

Reputation


Identity and Reputation are two recent, loosely related issues that have been generating a fair bit of airtime recently on Google+.  Though it's Google's new social network that seems to be generating much of the noise at the moment, these concepts apply equally to other social networks and, indeed, to people in all manner of online and offline activities.

Anonymity, pseudonymity and a person's legal name: these aspects of Identity are being heatedly debated as the NymWars rage across the internet.  Here, however, we'll focus on the related issue of Reputation.

Reputation can be considered to have two main aspects: history, and notoriety.

- History: Is this some form of persistent identity (here or elsewhere).  Good for removing spammers / flyby posters.  Bad for young Johnny who finds the internet a wasteland for the first 12 months after logging on.
- Notoriety: Is this worth paying attention to.  Rather like pagerank on search.  Good for finding out who's worth listening to when looking for new contacts or sources of information.  Bad for finding new talent as top accumulators continue to accumulate yet more contacts and draw the eyeballs.

It's worth noting that whilst the first aspect ofeputation discussed above - History - looks to be about Identity, it is merely closely related.  A person who is anonymous has no history by definition, but those who use legal names and pseudonyms merely have the potential for history but may not in practice, young Johnny being the case in point.  With History you don't care who the person is (even in the disembodied sense): you are merely observing some enduring existence.

There is the side issue for point two that's sometimes raised, that perhaps a single Notoriety score is insufficient to capture the multiple aspects of one person.  For example, should Francis Crick receive a single rating, or separate ones for discussion of cellular development, abiogenesis and photography?  Having a single score would be relatively easy and automatable (lots of people follow and comment on Gandhi, Gandhi follows and frequently comments on Fred Blogs, so Fred Blogs rates very high) whereas separate scores would, I imagine, be difficult.  And perhaps not useful - Oprah may not have specific qualifications, but if she mentions books or movies there would be a lot of interested people because of her overall Notoriety.
Notoriety on topics could be tweaked once posts start incorporating tags.

Whilst the two aspects of Reputation above have no formal embodiment on G+, they do already have some primitive exposure on G+ and other networks.
For example, there are many high-profile G+ users that enable you to see their followers (or have them tracked elsewhere), thus enabling lists of Top G+ users to be created and browsed.  Many of these high profile users are high profile because they share lots of quality content, though there are also many that do not share any at all.  I've certainly used such lists in the past to find interesting people to follow.
As for history, that of the user on the specific network is viewable by clicking through to a user profile.  Of course, this is limited to the public post history, thus revealing at least a minimum existence.  However, when engaged in discussion on a forum / group it can be worth a moment to take a look at whether this user - with a potentially real looking name - has actually been active for more than the last 24 hours.  Pyro temporal identities are usually a sign that the argument is not worth pursuing.  A user that's been around for months is at least likely to still be there when you log in tomorrow.

As rudimentary as these facilities are, they at least give users today some ability to make decisions based on the Reputation of their network peers.  As for how G+ and other social networks can build on what's available and provide richer decision-making data?  Well, this post is already too long, so I'll leave that for another day.  Or an exercise for the reader ...

Thursday, August 18, 2011

Google plus, filtering and moderation.


What G+ needs is the ability to filter comments by rating.

Not so much for the viewer, though admittedly it will get used in that way if available.  But for the poster.
I'm thinking particularly for the Scobles and Days who will often generate hundreds of comments for a single post, especially one that's asking for feedback.
What are they to do: wade through the entire set?  Read the first few, read the last few?  Ideally, they'd like to cut through the chaff and just peruse the most worthwhile comments.  And we have a system already in place for that - it's the plus one button.  Arguably underutilised on comments, but nevertheless it's a good first step to giving the poster a filter to place over a moderation system.
The problem with allowing it to be used by viewers is that they'd also want to filter out all the nonplussed posts.  But if they do that, then very few posts get plussed, certainly no new ones after the first few have been posted, and the ones that are plussed already will just quickly gain more (they're the most likely to be seen).
So in order for the system to work viewers of other people's posts probably shouldn't be allowed to filter.

What does this mean for people who follow high-profile posters such as Scoble and Day?
Reading a post 12 hours after submission means there are already several hundred comments.  Without a filter they're in the same position where they are now: reading the lot, the first/last few, or none at all.  Cue the comment: "I haven't bothered reading the other 300 responses, but here's what I think...".  In which case, why do they bother, and why would they expect anyone is reading what they've just written?
Harsh as it sounds, I think the only solution is for viewers to be given the unfiltered view so they can read through (some of) the comments if they please and moderate appropriately, or just post as if they're the only commenter there.

But note that in this situation the viewer is of secondary concern (they've read the post, they've possibly offered feedback).  It's the poster who's of primary concern, since they've posted and would like, in the case of excessive feedback, a summary of responses.

Tuesday, August 9, 2011

Searching For Manny Macx


Having recently read the Singularity-based novel Accelerando by Charles Stross, it got me thinking about a present-day Manny Macx.  Is there someone, or some people, who fit the bill?

I've since heard it said that he was loosely based on two people:
* Steve Mann, the life-recorder and wearable computer fanatic, and
* Max More, philosopher and futurist.

Makes sense, given the names.

I hadn't heard of More, and Mann didn't come to mind during the reading.  In Mann's place I saw Kevin Warwick, who's also into the whole cybernetics thing.  However, I was also thinking of Macx as someone who's highly connected and running on the front edge of research rather than someone specifically envisioning a posthuman future.  Scobleizer was the closest I came up with in that regard.

But these four are not really what I'm after.  One quality that's not captured in the above is youth.  Scoble is probably the youngest of the four and he's on the approach to 50.

So the perfect match would be someone in their twenties, highly connected, cyborged and riding the wave that is the impending Singularity.
And who preferably blogs, so I can follow them :)

Saturday, July 23, 2011

Interfaces

Maybe it's just because I work in software, but I often get distracted during movies by things like GUIs and user interfaces, particularly in near future sci-fi.  Sometimes it's something obvious and radical, commented upon by many like the user interface from Minority Report.  Other times it's barely an aside, as in the GUIs used by the cops in Tokyo Gore Police.  In some ways this is annoying, since something like the Minority Report interface is intended to be flashy rather than utilitarian, and in the case of Tokyo Gore Police is merely a facade to show you that they're accessing "a computer".

However, at the same time, having multiple instances of computer interfaces - in a variety of environments - helps to focus the mind on the various aspects of interface outside of what is normally encountered in real life.
At the time of Minority Report, the gesture based interface wasn't something I had seen before, and hence introduced me to a new means of interacting with the computer.  With Tokyo Gore Police, the interface itself was quite basic (and I'm not even referring to the three lines of pseudocode/logging that repeated on a projector in the background) but it's the presentation of information in a japanese environment that was exceptional to me here in Australia.

Film, as a visual medium, is well suited to showing us how things can be portrayed.  With sci-fi, it really brings to the fore the interaction between humans and technology.  Although plot and pacing can mean that flashy wins over functional, it nevertheless allows us an opportunity to consider why an interface could be detrimental and what benefits it adds, if any, over our current interfaces by exposing us to a wider range of environments without the requirement that it be functional.

Thursday, May 5, 2011

On the Wetness of Burgers and the No Free Lunch theorem

Every burger has an inherent wetness.  This varies not only from burger to burger, but also for a particular burger over axes of time and user interaction.  The wetness value is not represented by a single value, however, for the purposes of discussion we will assume such a simplification.

The problem is that, devoid of user interaction, the wetness value will increase along the time axis.  Some burgers are quite dry and will increase only moderately.  Others, however, will leak out the sides, leaving the bottom bun soaking, and actively discarding liquified filling at worst.

The user interacts with the burger in such a manner as to reduce its wetness rating.  This often involves at least rotation of the burger on one axis, and often is elevated to non-symmetric consumption and rotation about multiple axes.  Eating time (volume minimisation efforts) may be traded off against the benefits of filling-redistribution for extreme cases.

The exercise essentially boils down to finding a continuous minimum along the time axis, for a particular burger, whilst manipulating the user interaction variable.  Note that while the limited ability to look ahead means that what produces a minimum wetness in the short term is not guaranteed to enable minimum wetness in the moderate or long term, gains made in the short term often convey significant advantages later on.

One thing to keep in mind is that all burgers are different, and excellent strategies for one burger are not necessarily excellent strategies for the next - or even good strategies at all.  This was summed up by the No Free Lunch theorem of Wolpert and Macready in search and optimisation.  Indeed, the theorem states that the strategy you employ that actually minimizes the wetness of one burger will in fact be the very strategy that maximizes the wetness for some other burger.

Think about that the next time your absentmindedness leaves you with a burger that's composed of six breadcrumbs floating on a sea of mayonnaise that drowns two lettuce leaves.  There's no free lunch when dry-cleaning is involved.

Wednesday, April 27, 2011

Blurb Impact

Usually half a sentence is enough to either motivate me to see something or suppress all interest.
For example:
Line: A nearby planet threatens to collide into the Earth...
Reaction: Yeah!
Line: Two sisters find their relationship challenged ...
Reaction: Next!

And then there are the movies that like to throw a curve ball:
Two sisters find their relationship challenged as a nearby planet threatens to collide into the Earth.
Um....?

The end result is likely to be two hours of tedium with cutaways to news and the occasional glance at a bright star.  So unless one of the two sisters has warped spacetime to induce the collision, or their relationship is more intimate than the blurb lets on (or both: I don't know why I don't write movie scripts) then it's going to get passed over.

Of course, a relationship drama can actually be a good movie.  It just can't have a good blurb, unfortunately, and needs other means to attract an audience.

Sunday, April 24, 2011

Why A Game of Thrones Will Fail

I know, I know.  A lavish production based on a set of best selling books with big name stars, airing on HBO.  And one episode in and here I am predicting its untimely demise.  Why?

The problem is primarily one of scope.  The books, and hence series, are based on a large world with a vast cast.  Other series and movies have also had to deal with geographically diverse locations - I'm thinking of the Lord of the Rings, here - but they've only had to do so piecemeal.  Whilst the Lord of the Rings had to deal with the Shire (and its hobbits), Moria (and its dwarves), Lothlorien (and its elves) and Minis Tirith (with its men) it was able to do so in small, bite-sized chunks.  We get some time in the Shire, and only in the Shire.  Then, things move on, we forget about the Shire, and the film can go on to explore Moria.  We see, we enjoy, then we move on once more.
In other words, movies like Lord of the Rings can handle the large map by progressing through it in a linear fashion.  The Game of Thrones cannot do so, as the cast either communicates with one another across the distance, or actively jump locales in order to discuss events more intimately.
Which leads to the second and greater problem of having a vast cast all interacting pretty much simultaneously.  With so many characters being thrown at the screen, in varied locations, with multiple plots (current and historical) it is a non-trivial task for those not familiar with the source material to keep track of what's going on.
Which will lead to a rapid rate of attrition.
And, worse, those who haven't seen the initial episodes will be unable to jump in mid-season.  This problem will be familiar to the creators of many recent shows that evolved complex storylines and character relationships, though I doubt many had to endure such a viewer-antagonistic opening.

Finally, for those who are unaware of the *layout* of the series (no spoilers, not that I can, as I haven't read it), the later books famously drop an entire half cast off to go and focus on the other half before picking up again.  As the series is pretty much following the books (in a season-per-book manner) then it will be interesting to see how later seasons (should they get that far) translate such material.  You can't really tell half your cast to take 2012 off and come back in 2013.  And I don't think they can use the standard mechanism of just deviating far enough from the material that it's not a concern (a la True Blood / Sookie Stackhouse) as the Game of Thrones books are much more intricately tied together than other, more stand-alone books.

And of course it's made just that bit more difficult by the fact that the book series is still being written.

Upon the strength of the above arguments, I'm going to say that it will stave off a push for cancellation during the first season (based on money sunk, and against high costs per episode), but it will succumb to cancellation before the end of the second season.
Box sets and equivalent will do well, however.
Goodbye, Winterfell, it was good knowing you.
Call me in 15 months and tell me how close I was.

Wednesday, March 9, 2011

Visual Studio 2010 Service Pack 1 released

SP1 for VS is finally out.  Or tomorrow for non-MSDNers.
Doesn't mention if they've reduced the number of times that it crashes, but since the frequency can't go up, I figure it's worth installing.

See the following link for the announcement and bytes.
http://blogs.msdn.com/b/jasonz/archive/2011/03/08/announcing-visual-studio-2010-service-pack-1.aspx

Saturday, March 5, 2011

Nudity on Book Covers

Having spent a bit of time recently sorting through various books, mostly of the sci-fi and fantasy ilk, I got to wondering: what is the impact of nudity on a book's cover?

Information regarding nudity on book covers is not that easy to come by on the web. The best I managed was discussion on some Jungle Book covers featuring a naked Mowgli.
And, in the end, all we get is speculation on how the publisher might have felt about the view of Mowgli's buttocks.

So does nudity on a cover raise sales? Or does it lower them?
Does it restrict the places that the book can be sold (such as a Target or Walmart store)?
Do publishers tend to have guidelines for artists (no full frontal)?
Do covers with nudity tend to prevail in certain countries? Most books do have different covers for different markets, and the styles do vary from country to country. Some prefer vivid, coloured covers whilst others have row upon row of books with just two tone shapes, a san serif title and the author's name.
Does the genre strongly affect its likelihood? Do publishers of hard sci-fi worry that having breasts on the cover would fail to attract the target market by misidentifying it? Do publishers of heroic fantasy worry that having a penis dangling on the cover would turn off the teenage male buyers?
Does it come and go over time? Am I likely to find a predominance of naked women adorning the covers of books from the 60s and 70s, but a dearth from the 90s?

I should probably datamine my own collection and see if any interesting stats turn up.
If anyone has any information on covers with nudity, by all means, chime in.

Friday, February 11, 2011

The Function of Commercial Media

We have a guest post today that I pilfered from the ether by a chap called Weaver.  The discussion was on why commercial networks do not provide intelligent shows to viewers.  

The function of commercial media is to sell audiences/readers to advertisers. The audience/readers are not the customers, they are the product. The advertisers are the customers, and they want a particular kind of product, i.e. they want the kind of audience/readers it's worthwhile advertising to:
1. people with money,
2. who are likely to spend that money, 
3. and who are, if possible, a bit thick.

These requirements may vary - slightly - depending on the things being advertised, but the business model does not change. You may think you are the customer, but you are not; you are the product (or you are chaff the advertisers don't care about, like a homeless person leafing through a copy of Forbes they found in the street).
The usual grift is that content is designed to keep audience/readers happy; the corollary is the oft repeated lie "but this is what our audience/readers want!" This is like a baker complaining "But of course I use rancid horsemeat - that's what the pies want!" The audience is formed by the content; not vice versa. What the audience/readers want is irrelevant; what matters is what the customers want and the customers of commercial media want the eyes or ears of people who are easy to shill to.

The phrasing, I think, really hammers home the message.  Hell, I'm starting to wonder how we ended up with anything that's intelligent - or questioning how, or perhaps even if that's really the case.  It's not paranoia if they're really out to get you.

Tuesday, January 18, 2011

New authors to enjoy in 2011.

New year, new lists.
Once again I've composed a list of authors that I haven't read anything by, that I'd like to rectify this year.
Asterisks if I've got something by them already.
No inclusions if an author only has one specific item that I'd want to read.
Be nice if I could do about half.
Obviously it's somewhat difficult for people to complain about who's not on the list, if they're not familiar with what I've already read, but there's plenty of scope for complaining about the ones I haven't read, or recommending specific titles.
I'll stroke them off when applicable: (watch for the mesmerizing absense of striking!) and perhaps update it with forgotten / new entries.


  • joe abercrombie
  • catherine asaro *
  • robert asprin *
  • JG ballard *
  • damien broderick * (I've read some non-fiction)
  • louis mcmaster bujold *
  • octavia butler * 
  • gardner dozois * (I've read stuff he's edited)
  • greg egan * (I have read some short stories from luminous)
  • mary gentle *
  • robin hobb * 
  • ian irvine *
  • dean koontz *
  • nancy kress * (I have read a short story)
  • mercedes lackey *
  • stanislaw lem
  • ken macleod * 
  • cormac mccarthy *
  • george RR Martin *
  • richard matheson *
  • elizabeth moon *
  • ayn rand *
  • alastair reynolds * 
  • anne rice *
  • kim stanley robinson * 
  • RA salvatore *
  • john scalzi
  • karl schroeder
  • clifford D simak *
  • olaf stapledon *
  • charles stross *
  • eric van lustbader *
  • joan d vinge *
  • vernor vinge * 
  • tad williams * 
  • sean williams *
  • robert charles wilson *
  • gene wolfe *

Of course, 'ordinary' reading by authors I love (or random titles that perchance take my fancy) will continue to intrude...

Thursday, January 13, 2011

Vampires in World War 2 and the fiction disclaimer

 I recently came across a book called Fiends of the Rising Sun, which features vampires fighting together with the Japanese against the Americans during World War 2.
The copyright page of the book features the following section:

Historical Note:
This novel is a work of fiction set during the Second World War.  As far as possible, the historical details are accurate but the story takes liberties with reality for narrative effect.

It doesn't spell it out, but I'm guessing some of those liberties have to do with the vampires.

This of course brings up the question of the purpose of the fiction disclaimer in general, and its legal requirements and ramifications.

Not all fiction novels contain such a disclaimer.  I don't know the statistics, but I've got a 1983 printing of Brave New World sitting here on the desk and a quick check reveals no such disclaimer.  A David and Leigh Eddings book, The Redemption of Althalus, that I randomly took down from a shelf also contains no such disclaimer.

Apparently the disclaimer originated because of the movie Rasputin and the Empress.  The Russian Princess Youssoupoff sued MGM for libel over the portrayal of a character that she claimed (and the court agreed) was based on her.  The movie was released in 1932, the court case occurred in 1934, but I can't find what movie was the first to use the disclaimer.  It may have been Rasputin and the Empress (they pulled the movie for several years) though I can find no reference to it.

So some form of fictional disclaimer tends to be tacked onto movies and books in order to prevent the author(s) from being sued.  Does this really work?  Well, the answer is somewhat.

At this point we are venturing into matters of law, which naturally varying from country to country.  What follows is mostly US law, since other western libel laws are similar enough; that or you are more likely to get sued by someone from the US.

The problem is that if people who know the plaintiff would identify a character with them, then argument can be made that, fictional disclaimer or no, the defendent has defamed them.  It doesn't have to be a match, but the differences do have to be fairly minimal.
Once you've got the match, you then have to demonstrate that it's not a satire or parody, and, generally speaking, you have to demonstrate that it's not actually true (I'm not even going to touch the sue-for-bad-restaurant-review fiasco).

Still, if you defame a vampire, they're not going to take you to court.
They'll just rip your throat out.

Tuesday, January 11, 2011

The Sci-Fi Blurb

With so many different sub-genres and styles within science fiction, sometimes it can be difficult to properly pigeonhole a new book.  Is it space opera?  Is it hard sci-fi?  Comedic?  Adventure?  Sometimes the title is a giveaway, sometimes the title is ambiguous, and of course sometimes the title is downright misleading.

Case in point:
The Hundredfold Problem.

The title here is in the ambiguous category.  I might lean a little towards hard sci-fi with the title suggesting a mathematical puzzle to be explored through the text, but I'm going to need more clues.
So we turn to the blurb:
"Four million years ago a Dyson sphere was built on the fringes of our solar system."

Okay, we're a single sentence in, but it's pretty safe to say that once we start exploring long term time scales and Dyson spheres, we are fully ensconced in hard sci-fi.
But let's read on a little bit more:
"...secretly sending its most dangerous criminals through a matter transmitter to the sphere nicknamed Big Dunkin Donut.  But now arch-villain Dennis the Complete Bloody Sadist is threatening to destroy the sphere.."

Ah.  That would be the part where the blurb takes an utter right hand turn and the book finds itself hauled post-haste out of hard sci-fi and plonked in the zany bucket.


When it comes to blurbs, however, The Hundredfold Problem is a mere lightweight.  Whilst the more lettered may be able to rattle off a hundredfold blurbs before breakfast, the rest of us may want to consult Ghastly Beyond Belief.  Which, I must say, deserves the award for least appropriate title.  It should also win an award for least appropriate tag line: "Sterilize yourself with fear...".  Finally, it does have a starred sentence on the cover exclaiming "The Science Fiction and Fantasy Book of Quotations", which is in fact highly accurate and descriptive.

The early chapters contain a wealth of blurbs, scraped, stripped and exposed, with a little commentary for those who haven't read the contents of the book that the blurbs are attempting to sell.
Some are highly inaccurate; some appear to be deliberately misleading (A Handful of Silver?).  But blurbs are meant to stand out.  Here are a few that stood out for me:

"The truly amazing story of a world much like our own, only startlingly different."

"He had to be stopped, for all women were his playthings and all men his pawns!"

"Free drugs!  Easy sex!  No job hassles!  Some people just don't know when they're being oppressed!"

"It was love - between a mad scientist and a degenerate speck of hypermatter"

"She was all woman - ask the men who made her!"

"He was a destroyer from another planet, bent on the destruction of the world"

"Fluids running out of my brakes." - (this is the entire blurb)

"Only an intergalactic guerrilla force of pigs could destroy the monsters of the Ghost Plateau!"

And of course the one I most want to read:
"Harder than human!  A bionic man with a computer crotch satisfies the lust cravings of a super feminine world!  More than Mortal Meat!"


With so many great blurbs, where's the time to read the damn contents?