The pbrain Programming Language

Note: I’m no longer updating this page. Please see the official pbrain page for more information. The pbrain programming language is an extension I made to the Brainf**k programming language that adds the ability to define and call procedures. If you’re wondering about the asterisks in the name of the programming language, it’s because the …

Continue reading ‘The pbrain Programming Language’ »


My Life With Programming Languages

A language that doesn’t affect the way you think about programming, is not worth knowing. — Alan Perlis My first programming language was Basic on a TI-99/4A. Contra Dijkstra, I don’t think it did me too much harm. Of course, I did eventually “outgrow” that language. Just now I was pondering my progression through various …

Continue reading ‘My Life With Programming Languages’ »


A Keyword I’d Like To See in C#

Although I use C# more and more these days, I still consider myself primarily a C++ developer. C# has a few really neat language features that are just now being added to C++ (like lambdas), but I still find C++ to be more expressive, with terser syntax, than C#. One example of this is deterministic …

Continue reading ‘A Keyword I’d Like To See in C#’ »


Update on Ripsaw

A while back I started an article series on a utility named Ripsaw. I have since gotten pretty busy with other projects, and the only extracurricular thing I’ve worked on in the meantime is the lesson series on how to play “Spanish Fly”. I was also waiting for Visual Studio 2010 to hit release, but …

Continue reading ‘Update on Ripsaw’ »


Ripsaw Library Implementation

In this installment of the Ripsaw article series we’ll start putting some actual code into an implementation of the COM interfaces that we specified in the last article. For those of you who just joined the series, Ripsaw is a log viewer for Windows, similar to the Unix tail utility. This series of articles details my rewrite of the application from the ground up.


Ripsaw COM Interface, First Pass

In this installment of the Ripsaw article series we’ll finally get to write some code. We’ve already gotten a pretty good idea about how we want to implement the core Ripsaw library, so now we’re going to define enough of the COM interface that we can create a simple test script that will eventually be …

Continue reading ‘Ripsaw COM Interface, First Pass’ »


Refining Ripsaw’s Design

In my last entry in the Ripsaw article series, I discussed some of the design goals for Ripsaw. In this article I’ll flesh out the design a little more and discuss specific implementation possibilities. To bring you up to speed, Ripsaw is a log-viewing utility for Windows that I initially wrote about six years ago, …

Continue reading ‘Refining Ripsaw’s Design’ »


Design Goals for Ripsaw

In this installment of the Ripsaw project series I’ll sketch out some of my design goals for the new version of Ripsaw, and the rationale for those goals. Share


A New Article Series: Ripsaw

Several years ago I wrote a Windows application called “Ripsaw” that implemented the basic functionality of the Unix tail utility in a graphical application, with a few twists of my own. I had intended to release the application as an open-source project, and although I still use the tool quite a bit I never got …

Continue reading ‘A New Article Series: Ripsaw’ »


An API is Forever

An API is an interface. Those of you that have worked with COM already know that once an interface is published, it can never, ever change. Ever. Not until the end of time. The reason is that some bit of code somewhere is going to be using that interface, and if you change it you’ve …

Continue reading ‘An API is Forever’ »