Over time though I’ve created identities on pretty much every network. With the increased interconnectedness of such sites when I stop using them I don’t stop posting…
I just discovered (in a spam filter) that someone was having a one sided conversation with me on Plaxo Pulse. I’m also actively posting (but not paying attention) on Buzz and goodness know how many other networks. I’m sure this inflates their active user count admirably but I’m now worried that undead me is being rude.
The social graph needs to work better in the other direction. Everything I post and comment on syndicates out like crazy but keeping track of responses just isn’t working.
The Thousand Autumns of Jacob de Zoet by David Mitchell
Stonking. It tells the tale of a Dutch clerk (de Zoet) at a trading post with the xenophobic Japan of 1799. It has the swashbuckling panache and anal research of Neal Stephenson's Baroque Cycle with just a dash of 'Big Trouble in Little China'. I hoped it was going to end with a 'to be continued...' but alas, Mitchell managed to wrap it up. Loved it.
- Man used hosepipe to punish son from BBC News - Home (That's not what I was expecting the hosepipe to be used for. I think the son got off lightly and the father is lucky not to be facing a hosepipe ban related death sentence.).
Don’t tell me to think before printing your email.
Firstly, it’s not that special. You’re lucky if I’m reading it at all. Do you really think I want a copy for posterity? Am I going to have it framed? Let’s face it, your target audience is pre-Internet execs who have their secretaries print their emails out so they can dictate a reply back later.
Secondly, do you think your sanctimonious footer comes at no cost? Using the power of randomly Googling facts each bit takes 4.6µJ and 2.8 million emails are sent every second. Assuming a 60 character nag if everyone indulged that’s over 12kW of smugness. For approximately no pages of paper saved.
And don’t get me started on lawyers. We could probably stop global warming if they’d just skip the fifteen page footer explaining how it’s somehow your fault if they send their emails to the wrong address.
NurtureShock: New Thinking About Children by Po Bronson
I'm a big fan of Bronson and I became a father last Thursday, finishing this book the day after. NurtureShock is packed full of the latest research on child development from infants (I can't believe how happy I am that Baby Einstein doesn't work) to teenagers. If you're unwilling to vaccinate you can probably skip this, otherwise I'd say a must read for parents. But do check back - will update this review in eighteen years or so...
WAR by Sebastian Junger
WAR consists of Junger embedding with infantry trying to hold a valley in Afghanistan. He visits several times over the course of their deployment and gets caught up in a frightening amount of action. It's as much a book about dealing with this personally as it is about the soldiers he's there to cover. There's very little context about why the valley might be important, or about the war in general, just an account of the hard pointy end of warfare and the psychology of the troops before, during and after.
The New Rules of Marketing and PR: How to Use News Releases, Blogs, Podcasting, Viral Marketing and Online Media to Reach Buyers Directly by David Meerman Scott
It's a passionate manifesto for focusing on new media for marketing and PR, and a reasonable guide as to how to go about it. I found repeated chapters on the same topic to be a bit grating but if you're completely new to blogging I guess it could be helpful. Readers would be better served by including more on SEO basics and less on Second Life. Worth a read if you're not even blogging yet, probably a pass otherwise.
WPF: When it's good it’s very, very good and when it’s bad it’s like sautéing your own eyeballs.
When you’re about to launch a process that will trigger an elevation prompt it’s polite to decorate it with the little UAC shield so the user knows what to expect. Of course there’s no such capability in WPF, and WPF controls have no handles so you can’t use SendMessage / BCM_SETSHIELD as with Windows Forms.
System.Drawing.SystemIcons.Shield seems promising, but it returns the wrong icon on Windows 7 (at least in .NET 4).
SHGetStockIconInfo will allow you to get the correct icon, but isn’t supported on Windows XP. I’ve just added the necessary interop signatures for SHGetStockIconInfo to pinvoke.net so I won’t duplicate that code here. Once you have the interop you can get the correct icon as a BitmapSource using the following code:
I've written an extension for BlogEngine.NET that automatically adds several different geographical tags to blog posts. I knocked this up for my Hikes blog. It might be useful for any blog where some of the posts are related to a real world location.
To get started download GeotagFromKML.zip (2.24 kb) and copy GeotagFromKML.cs to the App_Code\Extensions folder in your BlogEngine.NET instance.
The extension does two things. Firstly it looks for a link to a KML file when post is added or updated (it does this because each of my hike posts includes a Google Earth KML file for the hike). If a KML link is found then a paragraph is added to the post containing the longitude and latitude of the first coordinate in the KML file. The paragraph uses the Geo microformat. You can customize the text in settings for the extension. You can also regenerate by deleting the paragraph and saving the post.
The second function is to add ICBM and Geo Tag META tags when serving a post that contains the geotagged coordinates. You can take advantage of this without linking to a KML file, just include a location like this in your post:
Once you have geotagging up and running you might also want to add GeoURL to the list of ping services for your site.
Not much of a hike, but Twin Peaks is about as high as you can get in San Francisco and offers wonderful views on a clear day or night. Park here and then escape the throngs by walking up one or both of the peaks.
We often take guests from out of town up Twin Peaks. The occasion today was a first visit for a new native San Franciscan – Katherine Harper Ellison – seven days old on her first trip up to the top of Noe Peak.
.NET doesn’t support rebooting, logging off or shutting down your computer though a managed API. Searching for the best way to do this brings up three options: WMI, shutdown.exe and ExitWindowsEx.
I regard WMI as the last resort of the desperate. Weakly typed magic string juju.
Calling Process.Start(“shutdown.exe /r /t 0”) might work, but how would you know? And you’ve got the overheard of starting a new process just to accomplish a reboot. Lazy.
The best way to reboot is P/Invoke to ExitWindowsEx. Unfortunately there’s some really awful sample code out there which will either fail to do anything or mask any errors. I’ve included a drop-in class below that fixes these problems.
If you read all the way through the documentation for ExitWindowsEx you’ll find this:
To shut down or restart the system, the calling process must use the AdjustTokenPrivileges function to enable the SE_SHUTDOWN_NAME privilege. For more information, see Running with Special Privileges.
So just calling ExitWindowsEx won’t do anything. The sample code below adjusts the process token and then reboots (change the flags passed to ExitWindowsEx to shutdown instead, or to pass in a different reason). You’ll also get a Win32Exception if a failure occurs. Catch this, and you can tell the user that they need to reboot manually.
Packing for Mars: The Curious Science of Life in the Void by Mary Roach
It's Mary Roach, so no surprise that her book on space focused on how hard it is to take a crap (in space), how much engineering goes into disposing of crap (in space), and practical uses for crap on a Mars mission (including making it into radiation shielding tiles and reprocessing it into crap burgers). You'd think this book would be NASA's worst nightmare, but it's actually humanizing as well as fascinating. If you're a Roach fan you'll love it. If you haven't had the pleasure then this is a great place to start.
The Lion by Nelson DeMille
This sequel to The Lion's Game is disappointingly flat - Corey and Assad are fated to meet for a final confrontation and they do but after an initial sky diving sequence nothing really happens. There's very little tension, no plot, no struggles or setbacks for the hero or villain. DeMille really phoned this one in.
The Girl Who Kicked the Hornet's Nest (Millennium, #3) by Stieg Larsson
The second and third books could be just one (very) long book. Nest kicks off where Fire ended and slows the tempo down a bit, although not to the glacial pace of Tattoo. It's a fitting ending to the tale of Salandar, if a bit drawn out in the final sequence. Of course, a must read if you've ploughed through the first two.
In 1790 Thomas Jefferson became the first patent examiner and issued a grand total of three patents. 220 years later the US Patent Office has a backlog of over 1.2 million applications. Internet and software industries are created and destroyed in the time it takes the average patent to issue.
Here's how a startup can easily turn to the dark side:
Investors pressure a startup to file patents in an attempt to make the business defensible.
Tens of thousands of dollars of billable hours result in ‘System and method for displaying a text based colloquial greeting to the populace of a planetary body’.
Startup fails but notices that other companies have implemented their ‘Hello, World’ IP and a patent troll is born.
Software patents are especially frustrating as it's the idea — usually the easiest part of the business — that gets patented. Because patent law doesn't require actual implementation, let alone success, it's as if you could patent “cancer drug” and then sue pharmaceutical companies each time a new treatment rolled out.
It's tempting to call for an outright ban on software patents, as Vivek Wadhwa did recently. This doesn't work because so much technology is software based and because somewhere in that 1.2 million backlog there probably are a few genuinely novel ideas.
The first part of the fix is to stop examining the patents at all.
This may sound crazy, but think about copyright. You don't need to pay a bunch of lawyers to represent you before the copyright office and prove that this really is the first time a particular novel has been written, or that you were in fact holding the camera when you snapped that photo. Copyright is automatic.
A patentable invention isn't a specific work of art and so some registration system is required. My suggestion is that you upload a PDF and pay a registration fee of around $1,000. It's small enough not to discourage startups and large enough to prevent abuse. USPTO would timestamp the PDF, store it for eighteen months and then publish it.
The obvious flaw would seem to be opening the floodgates to even more patent trolls. That's where the second part of the fix comes in — shift the burden of proof of validity to the company that owns the patent. You can still sue, but the first step is a rigorous and expensive exam process.
This system makes it easy to obtain a patent but changes the nature of the patent to an insurance policy in case your idea really is as clever as you think it is. It also makes it much harder to use a patent offensively. Resources are more efficiently used to evaluate the novelty of a patent when it is enforced, rather than to do the impossible task of evaluating millions of ideas that never will be.
Full disclosure: I'm co-inventor of several software patents that I hope will never be used against you. I also recently lost a product (Cucku Backup) as a result of settling a patent infringement lawsuit and I hope that never happens to you either!