Thursday, March 29, 2007 

http://images.amazon.com/images/P/0441013813.01.MZZZZZZZ.jpg

Title: Moon Called
Author: Patricia Briggs
Rating: 4 stars out of 5
Publisher: Ace
Copyright: 2006
ISBN: 0441013813
Pages: 288
Keywords: mystery, fantasy
Reading period: 28-29 March, 2007

A certain subgenre has grown up over the last few years. Call it "vampire mystery" or urban fantasy or "horror fiction" or "paranormal romance". Stories set in a world that looks a lot like ours, but witches, vampires, werewolves, and other creatures exist among us, sometimes openly, sometimes not. The creatures have complex personal lives, generally sticking together with their own kind and treating gingerly with the other paranormals. The hero (often, heroine) is not necessarily human and has close friends, lovers, and enemies who are vampires or werewolves or witches. In the best hardboiled tradition, the stubborn hero has a smarter mouth than is good for them.

Buffy is the best-known example on TV, but there are many books. Laurell K. Hamilton's Anita Blake series; Jim Butcher's Dresden Files; Kim Harrison's Rachel Morgan books; C. E. Murphy's Walker Papers; and so on.

Add Patricia Briggs to that list. Mercedes Thompson is an auto mechanic living in the Tri-Cities of Eastern Washington. A shape-shifter who can transform herself into a coyote, she was raised by werewolves in Eastern Montana.

When the daughter of her neighbor, the Alpha of the local werewolf pack, is kidnapped, Mercy gets involved. A fast-paced, complicated, bloody plot laced with werewolf politics ensues, as Mercy tracks down the kidnappers.

posted on Friday, March 30, 2007 6:07:17 AM (Pacific Daylight Time, UTC-07:00) 
#    Comments [0]
Wednesday, March 28, 2007 

http://mozbackup.jasnapaka.com/images/eng/02.png

Scott Hanselman wrote today about family backup plans and alerted me to MozBackup. MozBackup can backup all of your crucial Firefox and Thunderbird files to a single, consolidated PCV file, saving you the hassle of figuring out where all the crucial files live on your hard disk.

You still have to back that PCV file up to a CD or an external drive, but now you have one file to back up instead of several dozen, scattered across several different, deeply hidden directory trees with non-obvious names.

Speaking of backup plans, I need a better one for myself. I regularly do a manual backup of my crucial data to a rotating set of thumbdrives and move them by hand between my different computers. I'm not doing a good job of backing up my photos, only sporadically backing them up by hand to external USB drives.

I really need:

  • a centralized server at home, so that all the other computers can do a network backup to it;

  • automated backup on a regular basis;

  • to take some of those backups offline — or better still, offsite;

  • a private Subversion server on the Internet, so I can keep most of my crucial files under version control, obviating the need to move them by hand from computer to computer.

posted on Wednesday, March 28, 2007 7:35:36 PM (Pacific Daylight Time, UTC-07:00) 
#    Comments [3]

http://images.medicinenet.com/images/illustrations/gout.jpg

Paging through the New York Times a couple of weeks ago, I spotted the obituary for Tsai-Fan Yu, the physician who developed effective treatments for gout, including allopurinol and colchicine.

I take allopurinol every day, topping up with colchicine when I feel gouty, so I owe her a great debt of gratitude.

I blogged before about my gout. (Indeed, this is why I put up the mega repost yesterday of my old EraBlog posts, to make my gout post available before writing this one.)

Nothing has changed, for better or for worse, regarding my gout. I take allopurinol every day and expect to do so for the rest of my life, unless a cure for gout is found. Fortunately for me, it's quite manageable. In the old days, gout could be both crippling and agonizing. I have had some severe attacks, early in this decade, before my case was definitively diagnosed. One of my knees would swell up and become intensely painful. Even bending it slightly so that I could get into a car and be driven to a doctor to get painkillers would cause me to break out into a cold sweat. I'm damn glad I don't have to live with that kind of pain on a daily basis.

I came across Gout News while researching this post, an ongoing compendium of gout-related news stories..

posted on Wednesday, March 28, 2007 7:31:40 AM (Pacific Daylight Time, UTC-07:00) 
#    Comments [0]

http://images.amazon.com/images/P/0756403847.01.MZZZZZZZ.jpg

Title: If I Were an Evil Overlord
Author: Martin H. Greenberg (editor), Russell Davis (editor)
Rating: 3 stars out of 5
Publisher: DAW
Copyright: 2007
ISBN: 0756403847
Pages: 320
Keywords: fantasy
Reading period: 25-27 March, 2007

It's so hard to find a good person of hench these days.

Nobody actually says that in this collection of 14 short stories, but it's not hard to imagine some of them doing so.

The cliches of evil overlordism and Bond villain have worked their way into the Zeitgeist. From Dr. Evil to Darth Vader, everyone knows how the heroes outwit the villain and save the day.

And so do the villains, as a rule. Some have read the Evil Overlord List. Most are aware of the dangers of monologing.

Many of the stories are humorous; some are tongue-in-cheek. A handful are serious.

The stories are generally enjoyable, but there are no standouts. I liked Tanya Huff's "A Woman's Work..." about a supremely efficient queen; Nina Kiriki Hoffman's "Art Therapy", regarding an intervention for a villain who's lost his edge; Donald J. Bingle's "Loser Takes All" about an obsessive computer gamer; and Fiona Patton's "The Sins of the Sons", where the villain is disappointed by his heirs.

Let me also throw in a link to Teresa Nielsen Hayden's Plot tricks, which I came across while writing this post.

posted on Wednesday, March 28, 2007 7:02:55 AM (Pacific Daylight Time, UTC-07:00) 
#    Comments [0]
Tuesday, March 27, 2007 

http://www.writingformoney.com/backlist/graphics/head_01.gif

In Blast from the Past I, I presented about half of the posts that I made on my original blog at EraBlog.

I'm reposting the remaining posts now.

2003/03/18: Red, White, and Green

2003/03/21: Rallying at the Seattle Federal Building

2003/03/21: The Unseen Gulf War

2003/03/24: When Democracy Failed: The Warnings of History

2003/03/30: Why Did The Chicken Cross The Road?

2003/04/22: Her Left Foot

2003/04/24: Sleep Apnea

2003/05/16: Naturalization

2003/06/11: Bloomsday

2003/06/12: Howard Dean for President

2003/07/07: Bloomsday Speech

2003/07/10: Ping-Pong Reloaded

2003/07/23: Iraqi Dead Parrot

2003/07/25: U.S. Citizen

2003/07/27: What Makes a Conservative?

2003/08/14: Spinning our Hearts and Minds

2003/10/07: Spolin Games

2003/10/11: Gout

2003/10/18: Bob Beckel

2003/12/02: Free Ruslan Sharipov

2004/02/11: Things you have to believe to be a Republican today

2004/02/11: Oppose the Federal Marriage Amendment

2004/06/25: Moved to weblogs.asp.net

2005/12/05: Moved to GeorgeVReilly.com/blog

There are a few old posts at weblogs.asp.net that I should repost here for completeness.

posted on Tuesday, March 27, 2007 9:49:45 AM (Pacific Daylight Time, UTC-07:00) 
#    Comments [0]
Monday, March 26, 2007 

https://files.bountysource.com/system/files/LibraryEntry/144/screenshot.jpg.medium.jpg

I use Clipboard.NET as a clipboard manager on Windows. It stores the last few entries sent to the clipboard.

There's one problem: the default hotkey is Ctrl+Comma, which also happens to be an important key for Outlook (previous message). I figured out a while ago how to change the hotkey, but my report doesn't show up when you search for it.

Net: using a key name from the ConsoleKey table, change the value of ShortcutKey in %ProgramFiles%\Tom Medhurst\Clipboard.NET\clipmon32.exe.config:

 <applicationSettings>
<clipmon32.Properties.Settings>
<setting name="ShortcutKey" serializeAs="String">
<value>OemComma</value>

The new hotkey will be Ctrl+keyname.

posted on Tuesday, March 27, 2007 3:16:18 AM (Pacific Daylight Time, UTC-07:00) 
#    Comments [0]
Sunday, March 25, 2007 

http://images.amazon.com/images/P/0441014038.01.MZZZZZZZ.jpg

Title: Glasshouse
Author: Charles Stross
Rating: 4 stars out of 5
Publisher: Ace
Copyright: 2006
ISBN: 0441014038
Pages: 335
Keywords: science fiction
Reading period: 21-25 March, 2007

Robin wakes up in a 27th-century clinic missing most of his memories, apparently arranged by his earlier self. After a few weeks of recuperation, he agrees to take part in an experiment, the YFH polity, to recreate a microcosm of the 20th century, an era largely lost to historians.

Robin awakes in a female body called Reeve. (The post-Singularity society has advanced technology which can reassemble human bodies and replicate just about anything you can think of.) Forced to get along in the very conformist society that the experimenters are building, Reeve experiences a reverse Future Shock at life in the dark ages: gender roles, menstruation, biological food, pregnancy!

It gradually becomes apparent that the new world is not as it seems — and neither is Reeve/Robin, when deeply suppressed memories start surfacing.

Stross has put together a fascinating universe as the backdrop to this story, where humans can reassemble themselves at will, back themselves up and have multiple copies running around, and where a long, vicious war was fought against a mind-controlling virus which infected most of the assembler gates. He has fun satirizing some of the norms of 20th century society in the YFH polity. Most of all, he combines an exciting story with some big ideas, the hallmark of good science fiction.

posted on Sunday, March 25, 2007 10:57:18 PM (Pacific Daylight Time, UTC-07:00) 
#    Comments [0]
Wednesday, March 21, 2007 

http://www.georgevreilly.com/blog/content/binary/NUnit-CppUnit.png

Over the last few days, I've been adapting an existing native C++ library so that it can be called from managed code. I had written a large number of unit tests with CppUnit and I wanted to be able to call the tests from NUnit.

I suppose that I could have written a new CppUnit TestRunner so that I could call it from NUnit. Instead, I took the cheap-n-dirty route, playing with #define and include paths. It took less time to get working than it did to write this blog post.

Here's the original native CppUnit test code

 //-------------------------------
 // native\FooTest.h
 //-------------------------------

 #include <cppunit/extensions/HelperMacros.h>

 class FooTest : public CppUnit::TestFixture
{
CPPUNIT_TEST_SUITE( FooTest );
CPPUNIT_TEST( testAlpha );
CPPUNIT_TEST_SUITE_END();
public:
void testAlpha();
};

//------------------------------- // native\FooTest.cpp //------------------------------- #include "FooTest.h" // Registers the fixture into the test 'registry' CPPUNIT_TEST_SUITE_REGISTRATION( FooTest ); void FooTest::testAlpha()
{
CPPUNIT_ASSERT( 4 == 2 + 2);
}

And here's my managed NUnit-based wrapper.

 //-------------------------------
 // managed\FooTest.h
 //-------------------------------

 using namespace NUnit::Framework;

// Gross hack. Define a completely different NUnit-compatible FooTest // test fixture and use #define's to make the CPPUnit-specific // stuff build. [TestFixture] public ref class FooTest
{
public:
[Test] void testAlpha();
};

#define CPPUNIT_TEST_SUITE_REGISTRATION(x) #define CPPUNIT_ASSERT(x) Assert::IsTrue(x)

I had to make one change to native\FooTest.cpp, to #include <FooTest.h> (angle brackets). This picks up the first FooTest.h in the include path, so that the managed version of FooTest.cpp now picks up managed\FooTest.h, instead of the original.

posted on Wednesday, March 21, 2007 7:12:46 PM (Pacific Daylight Time, UTC-07:00) 
#    Comments [0]

http://images.amazon.com/images/P/1597800449.01.MZZZZZZZ.jpg

Title: The Algebraist
Author: Iain M. Banks
Rating: 4 stars out of 5
Publisher: Night Shade Books
Copyright: 2004
ISBN: 1597800449
Pages: 434
Keywords: science fiction
Reading period: 13-20 March, 2007

The Algebraist is Iain M. Banks' most recent science-fiction novel. Most of his SF novels are set in the universe of the Culture. This one is assuredly not. Artificial Intelligences are hated and persecuted.

Fassin Taak is a human Slow Seer, a sort of anthropologist who studies the Dwellers, an extremely long-lived race who live on gas-giant planets scattered across the galaxy. He is recruited by his government to investigate rumors of a secret list of wormholes, which would yield new, high-speed routes across the galaxy. At the same time, news arrives of the invading fleet of the Starveling Cult, led by the Archimandrite Luseferous.

The Dwellers operate from fundamentally different principles than the `Quick' races like humans. Individuals live millions, occasionally billions, of years. They are supreme dilettantes, with boastful but unbelievable claims of superior technology. Taak comes to realize that there's more to the Dwellers than was previously known.

Exciting and entertaining. This book was nominated for a Hugo in 2005.

posted on Wednesday, March 21, 2007 7:00:13 AM (Pacific Daylight Time, UTC-07:00) 
#    Comments [0]
Saturday, March 17, 2007 

http://images.amazon.com/images/P/1416509380.01.MZZZZZZZ.jpg

Title: 1635: The Cannon Law
Author: Eric Flint, Andrew Dennis
Rating: 3 stars out of 5
Publisher: Baen
Copyright: 2006
ISBN: 1416509380
Pages: 420
Keywords: alternate history
Reading period: 9-17 March, 2007

Another book from the 1632 series and a direct sequel to 1634: The Galileo Affair. Fortunately, this one is much better than Grantville Gazette III.

The Americans from the future have established an embassy in Rome, as well as a tavern catering to the revolutionary-minded elements. Cardinal Borja, head of the Spanish Inquisition, is enraged by the accommodation reached by Pope Urban, and he foments unrest leading to an attempt to overthrow the pope.

Fairly entertaining with a coherent plot and engaging characters. The first half moves slowly as the background is laid down; the pace picks up as unrest escalates into war.

posted on Saturday, March 17, 2007 9:39:32 AM (Pacific Daylight Time, UTC-07:00) 
#    Comments [0]

http://images.amazon.com/images/P/0345413350.01.MZZZZZZZ.jpg

Title: The Golden Compass
Author: Philip Pullman
Rating: 4.5 stars out of 5
Publisher: Del Rey
Copyright: 1995
ISBN: 0345413350
Pages: 351
Keywords: fantasy
Reading period: 28 February-2 March, 2007

http://images.amazon.com/images/P/0345413369.01.MZZZZZZZ.jpg

Title: The Subtle Knife
Author: Philip Pullman
Rating: 4 stars out of 5
Publisher: Del Rey
Copyright: 1997
ISBN: 0345413369
Pages: 288
Keywords: fantasy
Reading period: 3 March, 2007

http://images.amazon.com/images/P/0345413377.01.MZZZZZZZ.jpg

Title: The Amber Spyglass
Author: Philip Pullman
Rating: 3.5 stars out of 5
Publisher: Del Rey
Copyright: 2000
ISBN: 0345413377
Pages: 465
Keywords: fantasy
Reading period: 4-8 March, 2007

In The Golden Compass, Lyra Belacqua is a young girl living at Jordan College, Oxford. A ward of her distant uncle, Lord Asriel, she is rather absently looked after by the staff and scholars, but prefers to spend her time roughhousing with the local urchins. This is not our Oxford, but one in a parallel world, which seems to be a cross between steampunk and Gormenghast. One where everyone has a personal daemon, a shape-shifting spirit who never strays more than a few feet from its human.

Boys and girls are disappearing all around Britain, taken by the Gobblers, a shadowy Church-affiliated organization run by the evil Mrs. Coulter. The Church is obsessed with the mysterious Dust, which they believe to be the cause of Original Sin. When her best friend is snatched, Lyra goes on a quest to the Arctic in the company of the gyptians, where she finds armored bears and witches. The book ends when Lord Asriel tears a rift into another world, and Lyra stumbles through with her daemon, Pantalaimon.

The second book, The Subtle Knife, introduces a second lead character, Will Parry, a twelve-year-old boy from our world. He stumbles through a portal into the world of Cittàgazze, where he meets Lyra and becomes the bearer of a knife, which can cut through the barriers between worlds. Lord Asriel has launched a crusade to bring down the Authority, the ruler of Heaven. Renegade angels and other forces are trying to get Will and Lyra to bring the knife to Asriel.

The Amber Spyglass brings in a third major character, Dr. Mary Malone, a scientist from our Oxford who has fallen into another world, where she studies Dust. Lyra and Will travel to the land of the Dead to release ghosts from their captivity, and they fall in love. Asriel and his allies launch their attack on the Authority.

I got the first book from the library and I loved it so much that I went out and bought the entire trilogy. The series is marketed towards young adults, but is also popular among adults.

The Golden Compass is a first-rate story that was hard to put down. I was thorougly caught up in it. Lyra is not particularly bright, but she is brave, stubborn, and lucky, and you wish her well. Pullman builds fascinating worlds: the daemons are a novel invention.

I thought the second book was a little weaker. Pullman started telling the story from a number of viewpoints, a practice he exacerbated in the third book, which weakened his control of the story. Even so, he brings the trilogy to a powerful, bittersweet ending.

It's not apparent in the first book, but Pullman is retelling Milton's Paradise Lost and he's not on the side of God. Asriel is as proud as Lucifer, and the ruler of Heaven is unworthy. This is a theme sure to enrage many Christians and I'm surprised that I've heard so little about it, as the books have sold very well.

The Golden Compass has been made into a movie, which is to be released at Christmas.

More background material: His Dark Materials (Wikipedia), Srafopedia (HDM encyclopedia), and Bridge to the Stars (fan site).

posted on Saturday, March 17, 2007 7:28:46 AM (Pacific Daylight Time, UTC-07:00) 
#    Comments [0]
Thursday, March 15, 2007 

http://reloadbags.com/site_images/CUSTOM_STOCK_keycivfull.jpg

The Ides of March rolls around again, and it's my birthday. I am now the Answer to Life, the Universe, and Everything.

Emma gave me the messenger bag shown here. I picked it up from R.E.Load Baggage. The 17" MacBook Pro is too large for my previous shoulder bag.

The video clip below shows the Bugatti Veyron, the world's fastest and most expensive street-legal car attempting to hit its top speed of 253 mph. I guess I'm not getting one of these for my birthday.

posted on Friday, March 16, 2007 1:03:27 AM (Pacific Daylight Time, UTC-07:00) 
#    Comments [0]
Wednesday, March 14, 2007 

http://www.commonsensemom.com/images/Buttons/smThink.gif

In Damn Right We're Angry, Paul Waldman lets loose with a long list of why progressives are justifiably angry with what's happened to the US over the last few years:

We’re angry because of what has happened to our country, because of how we’ve been treated, and because of the innumerable crimes the conservatives have committed. We’re angry at the president, we’re angry at the Congress, we’re angry at the news media. And we have every right to be.

Yes, we’re angry at George W. Bush. We’re not angry at him because of who he sleeps with, and we’re not angry at him because we think he represents some socio-cultural movement we didn’t like 40 years ago, or because he hung out with a different crowd than we did in high school. We’re angry at him because of what he’s done.

... 

Yes, we’re angry about Iraq, and we may be for the rest of our lives. ...

We’re angry that when we talk about ending this monstrous war, the soulless hypocrites who are glad to send more and more men and women to be scarred and maimed and killed in Iraq have the gall to accuse us of not “supporting the troops.” We’re angry that people whose actions exhibit nothing but contempt for freedom and liberty and justice, who wouldn’t know real patriotism if it came up and smacked them across the face, pin a little flag on their lapel and say that we’re the ones who hate America.

... 

We’re angry that America may now be the only country in the world in which torture is an officially sanctioned policy, proclaimed proudly in public. ...

And we’re angry that Bush has made our nation so hated around the world. We’re angry that the next time a Democrat gets elected, most of their time will be spent cleaning up the god-awful mess Bush has made of everything.

We’re angry that we and our children and our grandchildren will have to keep paying off the nation’s debt, which now stands at nearly $9 trillion. We’re angry because every other industrialized country in the world has a single-payer health care system that works, and we pay more for ours than any of them, yet we have 45 million people with no health insurance. We’re angry that the insurance companies have convinced their obedient servants in Congress that the Rube Goldberg perpetual paperwork machine we have now is somehow “the best health care in the world” and preferable to a system in which you go to your doctor, get treated and go home, without having to fill out 10 forms and get down on your knees before the gods of the HMO bureaucracy to get a partial repayment minus your deductible and your co-pay.

We’re angry that the federal government is brimming with people fundamentally opposed to the mission of the agencies over which they preside, the anti-environmentalists who run the Interior department, the mining company lobbyists in charge of mine safety and the union-busters in charge of worker safety.

Read it for yourself.

posted on Wednesday, March 14, 2007 6:04:48 PM (Pacific Daylight Time, UTC-07:00) 
#    Comments [0]

http://www.codegeneration.net/logos/nvelocity.gif

In last week's tip on using the NVelocity template formatting engine, I described what to set to load a template from an absolute path.

Here's the magic necessary to get NVelocity to load a template from an embedded resource:

 VelocityEngine engine = new VelocityEngine();
ExtendedProperties properties = new ExtendedProperties();
properties.AddProperty("resource.loader", "assembly");
properties.AddProperty("assembly.resource.loader.class",
"NVelocity.Runtime.Resource.Loader.AssemblyResourceLoader, NVelocity");
properties.AddProperty("assembly.resource.loader.assembly", "StencilFormatter");
engine.Init(properties);
posted on Wednesday, March 14, 2007 5:50:25 PM (Pacific Daylight Time, UTC-07:00) 
#    Comments [0]
Tuesday, March 06, 2007 

http://www.codegeneration.net/logos/nvelocity.gif

We've started using the NVelocity template formatting engine. We were absolutely stymied for an hour, trying to figure out how to get it working with an absolute path to the template file, instead of the relative path shown in the documentation.

The trick is to set file.resource.loader.path. Here's how to load C:\foo\bar\somefile.vm:

 ExtendedProperties props = new ExtendedProperties();
props.AddProperty("file.resource.loader.path", new ArrayList(new string[]{".", "C:\\"}));
velocity.Init(props);

template = velocity.GetTemplate("foo\\bar\\somefile.vm");
posted on Wednesday, March 07, 2007 1:09:52 AM (Pacific Standard Time, UTC-08:00) 
#    Comments [0]