I C# People…

April 25, 2008

Searchable Discussions

Filed under: General, Off-topic — Tags: — Neil Barnwell @ 4:01 pm

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!

March 18, 2008

Grant Access to Custom Event Log

Filed under: ASP.NET, General, Off-topic — Tags: — Neil Barnwell @ 3:36 pm

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;;0×7;;;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:

AceType: “A” = 0×00 (ACCESS_ALLOWED_ACE_TYPE)
AceFlags: “” = 0×00
Access Mask: “0×7″ = 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:

March 4, 2008

One Job to Do

Filed under: Building Applications, General, Off-topic — Tags: — Neil Barnwell @ 8:02 pm

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

Filed under: Off-topic — Tags: — Neil Barnwell @ 5:05 pm

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…

January 11, 2008

TortoiseSVN Tip

Filed under: General, Off-topic — Neil Barnwell @ 2:01 pm

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

January 9, 2008

FogBugz + Launchy

Filed under: General, Off-topic — Tags: — Neil Barnwell @ 10:01 pm

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?

January 4, 2008

You know when you’ve been Scobled

Filed under: Blogging, Off-topic — Tags: — Neil Barnwell @ 12:12 pm

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

January 2, 2008

Facebook Application Madness

Filed under: Off-topic — Tags: — Neil Barnwell @ 12:45 pm

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?

Filed under: Blogging, General, Off-topic — Tags: , , — Neil Barnwell @ 8:43 am

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?

December 17, 2007

Domesticated or just tamed?

Filed under: General, Off-topic — Tags: — Neil Barnwell @ 4:31 pm

I tried to get Linux working on a Virtual PC VM the other day, and I found it hard.  In fact, I haven’t got it working yet.

Drat!

I’m coming to the conclusion that I’m not up to the job.  There are two camps in the tech world - those who understand, and those who use.  Obviously you can be in both, if you understand some things and only use others, but taking any one subject you’ll find yourself in one group or the other.

So in terms of Linux (specifically Ubuntu and gOS) I’m definitely a user.  I don’t understand how to install it.  Because it’s open source there’s almost too much information.  This is all because (certainly to me) Linux is a tamed animal.  It’s essentially Unix taken out of the wild, and caged and beaten until it’s safe enough to sit in your home office.  However only those who are skilled in the arts of taming can make it do what they want.  If you know how to wield the metaphorical dining chair and whip you can make it do what you want.  If you’re merely an audience member who dares to enter the ring, you could be torn to pieces.

Well, that’s taking it a bit far, but best case is that you can’t get it to do what you want, and wish it was more like what you’re used to.

Which, love it or hate it, is probably Windows.  The difference with Windows is that Microsoft took the concept of an operating system, and domesticated it.

Admittedly they cheated and shortened the process to only a few generations, but essentially the result is safe to let your children play with.  It’s why almost anyone can use it, and those with the understanding that a CD goes in the CD drive can even install it.  I guess Apple did the same with the Mac (in fact, didn’t BASIC run one of the early Macs?) hence the philosophy “It just works”.

So I want to be an Understander, one who can use Linux and be a true geek, rather than a pretender to the court, but the truth is I am not worthy, and fail the grade as even a user.  I think I finally realised that there’s an “Install” icon on the desktop when you boot Ubuntu from a live CD, but I couldn’t see the wood for the trees on my first go.  I saw the “Start or install Ubuntu” option, and when I chose it, it started it, and I couldn’t see how to install it.  What I really wanted was two separate options - “Start Ubuntu” and “Install Ubuntu”.

Now I understand I may have been very dim here.  I’m sure one day someone will go through my archives and leave a smartass comment to the effect that I should’ve done X, Y and Z, but you gotta see this story from a born-and-bred Windows user and developer.  I had a quick go on Unix once, but that was parrot-fashion from an instruction sheet on a big ol’ Sun machine, so it doesn’t count.

I’ll have another go, and maybe I’ll try it on a real machine to remove any VM-related complications (like the mouse not working), but we’ll just have to see.  Maybe Linux needs a few more generations and exposure to the mere mortals to force it forward into domestication.  Maybe that’s not what ‘nixer’s want?  You tell me…

Older Posts »

Blog at WordPress.com.