I want on the netbook bandwagon!

I really want a netbook.  I think I first heard about them on Dave Winer’s site, scripting.com, but dismissed them at first.  However, having seen them “in the flesh” in the shops, I’ve totally fallen in love.  They perfectly fill the gap between what I can accomplish on my phone (I don’t have a fancy smartphone) and what I need to be in front of a PC for. 

  1. Great battery life.  I’ve heard of getting over 5 hours on one charge.  That’s great!  I don’t know if those figures are for HDD/SSD and whether they include wi-fi usage, but they’re still impressive.
  2. Size and weight.  These things are seriously small.  I’m a fully-paid up member of the man-bag club.  I tend to have my rucksack with me most of the time because I carry a camera, moleskine and diary most places.  A netbook would fit perfectly in a man-bag (or handbag, of course), just waiting for those visits to the local Starbucks for a coffee and a bit of blogging.
  3. Usable keyboard.  Phone keyboards are crap.  Palm top keyboards are crap.  I’ve not used it but the lack of tactile feedback means the laser projection keyboard is probably crap, too.  There just aren’t any solutions for mobile keyboards, but while the netbooks are small, they seem to have usable keyboards.  You’re not going to get the same words-per-minute rate as on a full-size keyboard, but it won’t be too bad once you’ve had a practice.
  4. Wi-fi.  How cool to go shopping, see stuff you like, and go online to check the prices on Amazon?  Check your email while you drink your coffee, Sir?
  5. Fast boot time.  I don’t know how this is achieved.  Even if they’re cheating and using some sort of hibernate functionality I don’t care.  These things need to go on and off really, really quickly.  You want to sit down, take it out, open it, use it, shut the lid and put it away again.  You want 95% of that time to be using it, not waiting for it to boot.  It needs to be as close to opening/closing a browser on your PC as possible.
  6. Price.  Cheap, cheap, cheap.  Well, reasonable.  For “cheap” you can get a netbook, but don’t expect XP, SSD or a big screen (for small values of big).  For around £300 you can get a decent spec device.  To be fair, the Linux-based ones look okay.  They seem to come with OpenOffice and FireFox.  I only want more because I’m a Windows guy and software developer.  I will want to see what I can get it to do for me.

So, I’m saving up for one.  It’s my birthday in March so I’ll be saving any pennies I get towards a netbook.  I just hope it’s not a case of “never meet your heroes”…

GTD – Outliners for thoughts

I think in trees.  I relate almost everything in one way or another in terms of some sort of hierarchy.  Trees and hierarchies feel elegant to me, and it shows in the way I make notes.  It’s really a more orderly way of displaying a mind-map.

I’ve always made my notes in a standard A4 notebook.  Meeting notes for me look something like this:

Outline Notes
Outline Notes

The trouble is written notes is that they aren’t typically very editable.

It occurred to me that computers are pretty good at this sort of thing, so I looked for a software outliner.  I tried a few desktop software options including Dave Winer’s opml Editor, and the supremely awful free version of NoteCase. but quickly decided that the web was the way to go.

I’ve used Evernote, but it was actually too complex for my needs.  It focusses on each note being like a rich text document.  I want the tree structure to *be* the notes, just like in my A4 book.  It does have tagging though which would be nice in the future when I have many notes.

I’ve tried various mind-mapping options, but the outliner tree style is much easier for me than a sprawling spiders web with the ideas on.  They’re really the same thing, just laid out differently.

Todoist was good, and one of my final two choices.  They have the indenting support, but in the end it was keyboard navigation that let it down.  You *can* move things around with the keyboard, but it wasn’t quite as slick as my final choice: Checkvist.

Despite a few teethinc troubles (a friend of mine lost a document because of a bug) it is very, *very* fast to add, edit and manouvre items around the tree.  The keyboard support is excellent, and there are very few actual features to bog it down.  It’s a simple, clean interface that feels and works like an editable notepad.  I might actually break my habit of “no laptops in meetings” to take electronic meeting notes…

Searchable Discussions

I work from home, and in addition to a company mobile phone and email, my colleagues and I use Skype to keep in touch.  Not so much the voice, but the IM capability.

Now, I’m not a bad typist, but I do find four main problems with IM when discussing fairly complex subjects:

  • I can’t type as fast as I can think (and even that’s not very fast sometimes).
  • You can get the words across, but not the tone.  This sometimes leads to confusion, requiring even more typing (or resorting to a phonecall) to sort out.  You get a similar problem with SMS/text messages on mobile phones.
  • You can easily end up with multiple IM windows open at the same time, diluting your attention.
  • People don’t think for a second before popping up Skype and sending an IM, whereas before making a phonecall usually people will typically make sure it’s a good reason.

Sometimes I find I’m reaching for the phone when an IM chat goes overboard, but more often than not I stick to IM because it has some tangible benefits in the workplace:

  • You can put IM on “Do not disturb” mode, and give “callers” an insight into whether you’re likely to be able to receive them.
  • You can copy and paste information into IM.  For example in my job I deal a lot with barcodes, and I can tell you from experience that it’s soo much easier to copy and paste than try to read out a 24-digit numeric barcode or serial number.  Also, for developers sharing titbits of SQL code or hyperlinks, it’s invaluable.
  • Most importantly: conversations are searchable.  I know there are services out there that can transcript a telephone conversation, but that’s several orders of magnitude more complex than IM.

There are some excellent improvements that could be made to IM.  For instance, replacing the concept of Available/Unavailable status with the ability to “walk in and out” of a “room” would be an interesting new way of looking at things.

However as you can tell, I’m most interested in the ability to search.  My memory is awful, and to get the exact same detail from a conversation I had months ago is invaluable.

Trouble is, the only IM client that I’ve seen support searching properly is Google Talk.  GTalk chats are stored in your Google account alongside your email, and are searchable with the ubiquitous Google search engine. This is especially handy because you can search from anywhere in the world.  You don’t even have to be at your PC.

Skype has an incremental search facility, but the data is stored locally on your PC and is only available in a chat window, and the text in that window.  If you want to search for something said in a conversation a month ago, you’re going to have to get it to load all the conversation history.  To be fair Skype do offer a workaround for this but while it goes some way to blocking the gap, it’s not perfect.

So, the point of this post is that the main benefit of IM in the workplace is recorded and searchable conversations.  It’s no small wonder why IM client developers aren’t tapping into the power of this information by providing a more suitable mechanism.

So imagine my surprise, that while researching for this article I found a Skype plugin for Google Desktop Search.  Since I’ve only just found it I’ve not had chance for more than a quick go, but it’s a good start.

‘Till then, happy chatting!

Grant Access to Custom Event Log

I’ve had this problem today so thought I’d post it here as it was quite hard to sort out and the thing that finally fixed it was a reply in a forum somewhere.

You may find that you get a message similar to the following when your application attempts to write to an event log:

Cannot open log for source XYZ. You may not have write access.

The solution is straightforward, but sadly there is no GUI to implement it, instead you must edit a registry string value using SDDL.

Here’s the steps to take to try and resolve this issue:

1. Open regedit.exe.
2. Navigate to HKLM\System\CurrentControlSet\Services\EventLog\[EventLogName].
3. Edit/Create a new string value called CustomSD.
4. Append the following to the CustomSD string value (without the quotes): “(A;;0x7;;;S-1-1-0)“.
5. Save.

Hopefully your application should now be working, but this isn’t the perfect solution, as it’s akin to granting “Everyone” all access to read/write/clear your event log. Let me explain.

The appended text is Security Descriptor Definition Language (SDDL), and is more specifically an Access Control Entry (ACE) string.  The specific example I’ve provided above is made up as follows:

AceFlags: “” = 0x00
Access Mask: “0x7” = Read, Write, Clear
Ace Sid: “S-1-0-0” = Security Identifier (SID) (found using whoami.exe) of the Everyone user

Obviously you should probably change the access mask and ACE SID to be more locked-down, but admittedly this is what I did to get things working.

Hope this has helped. These are the websites I used to get me this far:

One Job to Do

My PC will confound me several times a day, every day. It’s not just me, either.

Today I had trouble installing .NET 3.0. Recently I’ve also had problems with Explorer freezing, the Outlook notify icon stays visible even when I have no unread email, and occasionally double-clicking a file only opens the application and not the file. Grrr.

These are all things that should just work (though I hear not even Apple are doing so well in this area recently…). These are tools, appliances, they have one job to do and I expect them to do it. SVN was recently a problem for me. The settings for Tortoise SVN to integrate with Araxis Merge didn’t seem to be giving the correct results, and only after many hours of poring over various files and reading various TSVN webpages did I find that it was just confusing filenames causing my problems, and that everything was working perfectly.

I’ve installed and almost as quickly uninstalled Resharper, too. I’m really disappointed about this, but the 20-minute performance hit opening one of my solutions (before I got bored and killed the process) was too much to bear for the additional refactoring tools. I was looking forward to catching up to where I was 4 years ago on Eclipse, too. Turns out I’m not the only one.

These often aren’t actually problems with the tools as much as the environment they’re in. Other people say it works on their machine.

So this has turned into a rant, and I’m not the only one who’s been through it I’m sure. I’m at a point where I’d like to re-install Windows, but seriously – that’s a lot of work. I get upset too easily.  The really worrying thing is that there are probably lots of people out there thinking the same thing about software I’ve written…

.NET 3.0 Framework Installation Failure

I’m partly blogging this because it’ll serve as an aide-memoire when I next have this problem and can’t remember how I fixed it.

I don’t know the root cause, but there’s a bug in the 3.0 and 3.5 installers for the .NET framework.  For me, I was getting the Windows XP error reporting showing up. This happened when installing from the standalone installer as well as running the Visual Studio 2008 installation.

When poring through the log files that XP’s error reporting was planning to send to Micro$oft, I spotted the following:

“Microsoft .NET Framework 3.0 has encountered a problem during setup.  Setup did not complete correctly.”


“Windows Communication Foundation: [2] Error: Installation failed for component Windows Communication Foundation. MSI returned error code 1603”

and finally:

“Error 1402.Could not open key: HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesEventlogSecurityServiceModel  System error 5.  Verify that you have sufficient access to that key, or contact your support personnel.”

I’m running as administrator (I know, I know, I shouldn’t be), so this was strange.  Still, it took adding Everyone with Full access to that registry key for the setup to work.  Now 3.0 and 3.5 and Visual Studio install okay.

Here’s a couple of links that helped me out:

Phew!  You didn’t get this trouble with notebook and pen…

TortoiseSVN Tip

Another tip, this time for those of you that use TortoiseSVN. You may already be doing this, and I’m catching up with the crowd, but I think it’s pretty neat.

  1. Checkout a respository to a local path on your machine. It might be a few folder levels deep: C:\Sourcecode\Projects\WorkMain.
  2. Create a shortcut to the root checked-out folder on your desktop.

Now you can right-click the shortcut on your desktop to access the TSVN commands like Update, Commit and View Log etc without having to actually open the folder. If, like me, you always update and commit the root then this can be quite handy:

TSVN via shortcut

Also, as an added bonus, now that you have a shortcut on your desktop, if you install and use Launchy, it’ll index it for you and make it possible to open the folder without minimising everything

FogBugz + Launchy

Here’s a cool tip for you Launchy users out where who also use FogBugz.

Setup FogBUGZ as a weby URL, and enjoy quick-fire access to your FogBugz cases. Here’s how:

  1. Download and install Launchy.
  2. Open Launchy (ALT+SPACE by default, but I changed mine to WIN+A).
  3. Click the settings button (cog icon at top-right).
  4. Select Weby in the “Available Plugins” section.
  5. Click the plus (+) button at the bottom right to add a new link.
  6. Enter the following (without all the quotes):

    Launchy Plugins Setup

Now you can view a FogBugz case by doing the following:

  1. ALT+SPACE (or your shortcut to open Launchy).
  2. Enter “FogBugz”(or type “fog” and select fogbugz from the list, from then on, FogBugz will come up first when you enter “fog”).
  3. Press TAB.
  4. Enter a FogBugz case number and hit ENTER.

Your default browser opens up right at the FogBugz case page. How neat is that?

You know when you’ve been Scobled

So to join in with the chain-reaction that is Robert Scoble being wiped off the Facebook of the Earth.

Disclaimer: First off, I’m on Scoble’s side, though I am prepared to see that there are two sides, and consider that there is a justification that I haven’t thought of. I’m on the fence, but my legs are both on the Scoble side. 🙂

As you may know, he was banned for running a script that would pull his social graph from Facebook, which apparently is a violation of their terms of service. While it may be a violation of TOS, those TOS are fundamentally broken. Despite this, it’s become a topic of much debate, and I can see why it’s a difficult one to judge.

While I’d personally like to be able to pull my data from Facebook whenever I like, I can see a few reasons they might use to justify their TOS (these aren’t my justifications, just possible reasons/excuses for the TOS):

  1. They don’t want millions of people killing their servers with scripts
    Okay fair enough. But the easy way round this would be if the provide/brought back an export facility that does the export on their terms.
  2. They reckon they’re protecting your friends’ data by not allowing scraping
    Your friends are entrusting you with their data, to do with as you wish. So what if Facebook is the medium they choose to provide it to you with? It’s your social graph, and you can still get it via the website, so what difference does scraping it make?
  3. Some kind of state law (same as 2?)
    I can’t comment here, I’m not a lawman, but I suppose there’s a legal thing somewhere, maybe to do with corporate liability insurance or something?
  4. They want to lock you into their platform and make it hard to go to the competition
    Well this is the most likely reason for it, but surely disabling your account is cutting their nose off to spite their face? Disallow the behaviour, tell the user it’s a problem, disable the account and let them know what’s happened, and get back to them when they explain what was going on. If it was a malicious script the user didn’t know about, that’s great, otherwise, let them get on with it.

I commented on Scoble’s blog with the following:

Hope they get you back on. It’s a hard one this, deciding who owns the data. Technically your friends own their data, but on the other hand they’ve trusted you to have it. The only reason Facebook don’t have an export function is probably a competition/lock-in thing. Maybe they’re also worried about denial-of-service as a result of people running scripts?

Heck, even Gmail has an open API for getting contacts from it.

Only to get this reply:

@NeilBarnwell – It’s not hard at all, *you* own your own social graph. It’s not so much the people or even data about them that makes it special its the relationship between them thats special, and again, yours.

I think I understand the point, but I don’t think I stated mine well enough in the first place. My point is that Facebook might have thought they were protecting data or the responsiveness of their service, and just didn’t explain it or deal with it very well.

Facebook aren’t going to go under just yet, but things like this, which are getting so much press, will be damaging to their already tarnishing reputation.

Oh, and the term “Scobled” isn’t mine, I saw in the comments on Scoble’s blog:

I’m coining a new term: Scobled

As in “you’ve been scobled dude”: terminated, waxed, disabled, vaporized, eliminated, banned abruptly and without warning.

Comment by Jeff Crites – January 3, 2008 @ 6:38 am

Facebook Application Madness

Facebook has too many “applications”. That sounds stupid, I know, and to some degree it is. After all, Facebook is a platform, and what good is a platform if there’s nothing to put on it?

To be fair, the real problem is that it’s too damn easy to send application “invites”. I ignore so many requests from friends on Facebook purely based on the fact that I need to add yet another specific application to my Facebook profile to even see what it’s about.

I’ve blogged on Facebook before, and the fact that the plethora of bad applications hides what makes it so good. Many C programmers scoff at Visual Basic because it allows very average programmers to knock out rubbish, thus saturating the market with sub-standard, barely fit-for-purpose applications. Visual Basic didn’t make a good programmer bad; there are lots of really good VB applications out there, but it does allow bad programmers to demonstrate how bad they are. Programmers that would never get C++, Java, C# or anything else.

Now Facebook is doing the same, but it’s even worse because a self-contained, all-in-one development platform and marketing machine, with a captive audience, and the added bonus of using the guilt factor to make people accept the “invitations” from their friends.

The real truth is that they’re not really invitations, they’re just another form of spam. The application developers add in these screens that makes it hard to avoid sending the spam to all the friends on your friends list. There’s a big ol’ “Send Invites” button, and a small, quiet “Skip” hyperlink that no-one notices.

I mention all this because I’ve just been invited to a group called “This has got to stop“, the idea of which is as follows:

It’s a group aimed at making it harder for people to issue application invites. As a budding application developer, it’s something I am happy to exclude from my app.

This is one group I will join, because I do like the sentiment. The group synopsis also gives details on blocking applications. I will be blocking Vampire right away. These days if I do decide to add an application, I turn off all the non-required options except the “publish in my news feed” option. That’s the power of Facebook, the news feed. That’s right, feeds.

Need I say more?