A Tribute to Subversion

Note: This is based on my personal experiences, and is not specifically “fact”. If your experiences differ, fine, but these are mine.

Subversion has started receiving some more flak in certain circles, it’s no longer in-vogue, no longer cool. Distributed version control is the big thing now, Git, Mecurial, Bazaar etc. Well I’m a huge Git fan, and I’m finding myself slowly transitioning away from Subversion project by project. However, I think I need to address something.

Subversion radically changed how people perceive source control, certainly in the environments that I’ve introduced it into (primarily SourceSafe based). That’s no small feat, and I don’t think it should be forgotten amid all the hype around newer source control systems.

Read more »

YaYAML: Yet another YAML parser

I don’t want to make much ceremony around this, but I thought I’d mention it incase anybody else is interested.

As a part of a project I’m working on I needed a simple file to store some data in, and I didn’t want it to be XML (for no reason other than the verbosity). I could have used my own format, but instead I’ve gone for YAML. If you’ve worked with Ruby on Rails at all, then you’ll be familiar with YAML. It’s a human readable (and writable) text format.

Of course, I still needed to be able to parse my YAML document. There was a project announced 2 years ago to create a .Net parser, but like many things, it seems very much abandoned. So, after my recent adventure with OMeta#, I thought I’d hack on this too.

Read more »

Getting started with OMeta#

Notice: I’m a novice at OMeta, and as such, you shouldn’t take my advice as best-practice. This is based on my exploratory findings.

String parsing is hard. I don’t think anyone will deny that. You can parse it by hand, you can use regular expressions, you can walk it character by character. With SharpDiff, I needed to parse some serious text, it was in an expected format, but there are numerous rules surrounding it. I did not fancy parsing it by hand, or with regular expressions.

I considered writing a parser for it, but dismissed that after my dealings with ANTLR in BooLangStudio. It’s not so much that ANTLR is bad, it’s just long winded; it’s completely visitortastic.

Anyway, after 10 minutes down the path of parsing it myself, I cracked and decided to look into alternatives to ANTLR. I came across OMeta# and (with a reassuring nudge by Jeffery Olson) I went with it.

Read more »

Smart Indentation for Visual Studio Extensibility projects

I said previously in my Brace Matching post that I want to try to document some of my findings while working on BooLangStudio. Well this is my second post on the subject.

When you’re implementing a custom language in Visual Studio, there’s a very good chance that you’re going to want to handle indentation slightly differently to the defaults. Every language has it’s own rules, after all.

Read more »

SharpDiff - Diff Parsing in .NET

SharpDiff is a library for parsing the output of various diffing tools. It’s primary purpose is to reduce the time spent by SCM UI developers in handing diff output.

Read more »