One Job to Do

March 4, 2008

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

March 4, 2008

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.”

and

“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 3.0.0.0.  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…


Review your settings

February 28, 2008

If you’re like me, the first thing you do once a new piece of software is installed is go through settings.  You may also be someone who changes desktop backgrounds and screensaver settings immediately after a fresh install, and how keeps their Start menu programs immaculately organised.  You almost always select “Advanced…” when working through the installation wizard, only to find that the only additional control you get is over the install location?

But how often do you review your settings?  Every now and again, I like to take a minute to go back through settings of common applications I use.  I may change my mind on one or two things, or maybe an upgrade has added things that weren’t previously there.  This especially true of online applications like Gmail that are regularly upgraded, because new settings and functionality are often added without you realising.

Maybe even see if there’s a blog that might announce the new settings that you can subscribe to in your feed reader of choice?  I subscribe to all the blogs for Google software that I use.

So go on, take a look at Tools->Options and see if there’s something in there that might freshen your experience a bit.  No harm in taking a look, is there?


TortoiseSVN Tip

January 11, 2008

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

January 9, 2008

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).
    Launchy
  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):
    • Name = “FogBugz”
    • URL = “http://[yourcompany.com]/FogBUGZ/
    • QUERY = “default.asp?%s”

    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

January 4, 2008

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


What Twitter is not

January 4, 2008

I love Twitter.  I think it’s a great tool for keeping in touch, though I’m still in the middle of trying to convince friends and colleages to use it (it’s considered a bit geeky I think).

However, I just removed my first “follows”, because that well-known person was simply regurgitating links to articles on Truemors.com.  If I wanted to know what was on Truemors, I’d add a feed to Google Reader, but I don’t, so I haven’t.  What I want to hear on Twitter is what people are thinking, ideas they’ve had, not mindless link propagation linking to something I could add a feed for.

There is an excellent article by Chris Pirillo on 10 ways to Eliminate the Echo Chamber.  Which is well worth a read.  Blogging (and Twitter is a form of blogging) should be you posting about your own experiences and ideas, with links as appropriate to add value and context.

I also don’t want to listen to one-half of a conversation they’re having with someone else.  I want that stuff out of the main feed, and either displayed as a thread, or hidden altogether.  I don’t want Twitter to become a chatroom.  We have chatrooms and newsgroups for that, which are real-time, allow everyone to participate and can be indexed by Google for searching.  If you want to get me on the SMS/mobile aspect, then I’ll let you have that.  Even then, with 3G and widespread commercial Wi-fi coupled with devices like the iPhone and iPod Touch, that could soon start to change.

I’ll stop now, I’m getting way too big for my boots, but I really like Twitter, and what it could do if it doesn’t become polluted, as Facebook as been.  I’m worried about it, is all.

What do you want Twitter to be?


Facebook Application Madness

January 2, 2008

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?


How useful are newsgroups?

January 2, 2008

I think tech blogging might have overtaken newsgroups. Not in terms of quantity, but definitely quality.
Consider this comment I just saw moments ago (thus prompting this post):

> is there a good, easy and safe way to:
> - put all threads into a ‘wait until I tell you to continue’

Yes, don’t use assynchronous processes that have to be synchronized.

I don’t need to explain here why it’s wrong, but it is. This is the inherent danger of using newsgroups to get help on software development topics.

There was a time a long time ago when I spent a lot of time on VB newsgroups answering people’s questions on how to things or solve problems they were having, but I gradually found less and less time to do this, especially when carefully thought-out replies were lost in the midst of things like this. Now I find that CodeProject or even MSDN itself are often better places to find accurate information. Moderated newsgroups that only experts (so not me) could post answers on might be better, but that introduces a raft of problems, not least of which, defining “expert”.  All these things are voluntary, and real experts have only the same hours in the day as the rest of us.

Could something like Twitter help here?  It would be lovely to build a community of respected “answerers”, where you could choose those users whose answers you generally find useful, and filter out the detritus.  If you could post a question somewhere, it pops up on an RSS feed, and if someone knows the answer and has a few minutes, they post it.

Am I missing something?


FogBUGZ 6.0 Case Web

December 31, 2007

In addition to my previous thoughts on the truly excellent FogBUGZ, what I’ve just realised I’d love to see is some kind of graphical display, showing me cases that are linked together.

The phrase “Case Web” springs to mind, but essentially it’s a spider diagram that would allow zooming, dragging, etc. Look at www.geni.com and you’ll see what I mean.

I’m thinking literally small boxes with the case number in (hover over and you get the mini-preview like in the single case view) with lines joining them together. I might try and knock up a desktop app as a prototype to see how it looks.

Also, I’d really like to see the concept of packages of work in FogBUGZ. A release may contain a number of cases, but a group of those cases might be the “new editing screens” cases, and the only way I can find to link them together is to add “case xxx, case yyy” etc to every case in the group, which is unmanageable when you want to add a new case to that package of work. Am I missing something?