Install git-extras for windows cygwin

I recently discovered git-extras when searching to see if the brew package manager (for Mac) had a package for git

> brew search git

Continue reading

Posted in software development | Tagged | Leave a comment

Loop Invariant Proofs

Sometime last year I ran across a blog talking about loop invariant proofs. At the time it seemed like a new concept to me. My undergraduate degree was not in computer science, and my graduate degree in computer science was done part time over the course of many many years. Tonight I got out my graduate text on algorithms, and sure enough there on page 17 is loop invariants. I had learned it and then sometime later forgot I had ever seen it. (Even though looking at the text I can see I would have had to write loop invariant proofs for the course.)

Today, I want to use the technique of loop invariant to prove the correctness of the FindMatch algorithm used in Brainmess.

Continue reading

Posted in computer science | Tagged , , | Leave a comment

Brainmess: Extract Tape Class (Cleanup)

This is just a quick update. My last refactoring on Brainmess was to extract out the tape class. While reviewing that code today, I noticed some artifacts left over from the refactoring process. These were cleaned up in commit 836a96

Continue reading

Posted in Uncategorized | Leave a comment

Brainmess Description


It occurred to me that since the links I’ve provided so far include a NSFW word, I should take the time to describe the Brainmess language on my blog so readers need not click on those links. This description is obviously not going to be completely original as I’ve stolen most of it from Mark Chu-Carroll’s blog and Wikipedia.

Continue reading

Posted in software development | Tagged | Leave a comment

Haack on ASP.NET MVC Open Source News

http://haacked.com/archive/2012/03/29/asp-net-mvc-now-accepting-pull-requests.aspx

My favorite bit (as I can relate to this at my current employer and their regard for open source):

One of my favorite bits of wisdom Scott Guthrie taught me is that the lawyers’ job is to protect the company and reduce risk. If lawyers had their way, we wouldn’t do anything because that’s the safest choice.

Posted in Uncategorized | Leave a comment

A Basic Compiler – A Great Refactoring Opportunity

Years ago (2006) I wrote a compiler for TI BASIC, the dialect of BASIC that I learned on my TI 99/4A (many many years earlier). This is an “ancient” computer language and one of the first that I learned. (I had a few years of experience with Apple Basic on Apple IIe before getting a TI.)

Continue reading

Posted in software development | Tagged , , , | Leave a comment

My First Greasemonkey Script

Link Github Commit to Pivotal Tracker Story

I’m using Github and Pivotal Tracker. You can easily configure Github to notify Pivotal Tracker of commits. Once you have done that, then whenever you want to commit something that is related to a story you simply embed the tracker story id in your commit message. Something like:

> git commit -m "[#87654321] Finish the new story"

Continue reading

Posted in software development | Tagged , , , , , , | Leave a comment

Brainmess: Extract Tape Class

Last time I worked on extracting out the methods related to fetching instructions and jump instructions into a Program class. I’m going to use a similar pattern today to extract out methods related to the tape. Currently the tape is implemented as an array of integers and a tape counter. I want to replace all of that with a Tape class.

Continue reading

Posted in software development | Tagged , | 1 Comment

Brainmess: Extract Class Program

Today, I’d like to address the issue of “data clumping” in the original implementation of Brainmess. (See all previous posts: testing, explanation and extract methods.)

Continue reading

Posted in software development | Tagged , | Leave a comment

Brainmess: Extract Jump Methods

Today, I’ll start to refactor the Brainmess program. In the first post I gave an “all-in-one” solution. Next I added some automated tests to give me some confidence that I don’t break anything during the process. The last time that I spoke about Brainmess, I just explained my implementation.

Continue reading

Posted in software development | Tagged , , | 7 Comments