sqlcop Update

In which I talk about sqlcop's development.

sqlcop now has 248 unit tests that supply documentation and executable confirmation that it can recognize the following:

"Too Deep" Unit Tests

In which I posit that a specific form of a unit test reveals a bad implementation.

Yesterday, I ran across a unit test at my work that had fourteen lines of “arrangement”, one line of “action”, and ten lines of “assertions.” The unit test literally had more lines than the method it tested!


My Perfect Software Lifecycle Management Tool

In which I dream a little dream.

I recently met a friend of a friend that has founded a company to provide Building Information Modeling (BIM) software-as-a-service. He described the flow of information through the construction process, from architects to building owner. He lamented the loss of information that occurred during the process in its current incarnation. He evangelized his dream for unifying BIM in a suite of tools across the construction data ecosystem.

And, it made me remember my own dream about a very nice tool that does the same thing for software.

Post-Holiday Blues

In which I explain my absence and get everything back on track.

An entire week has passed since my last post. That doesn’t feel very “make a post every day”-ish to me. I do feel a twinge of guilt over the matter, letting myself down more than anything because, if I’m not mistaken, no one really reads this thing. A couple of those guys listed in the right column might swing by every now and then, but I don’t have a commitment to any specific person or group. Just myself.

Announcing sqlcop

In which I announce a little project called sqlcop.

“Where’s my fiction,” you demand.

Sorry. I went and wrote about how I want to write fiction and then spend my weekend working on software. That’s awfully inconsistent. Shame on me. Unlike many of my open-source projects, though, I think this one may have merit.

Let's Make a Language: C♭ - Part 1 Revisited

In which I clarify some of my decisions about C♭ and document a new feature.

I talked with my friend philipmat, today, about some of the bad practices that I identified for C♭. After our conversation, he recommended that I take some time to clarify my perspective.

After that, my friend eb^2 and I talked about the post and he raised some reservations.

So, here, I will do that without irony, but with sincerity, instead.

About This Site

In which I hope I don't waste your time with my ideas about curtis.schlak.com.

I planned to write a really good post, today, that clarifies my thoughts about the decisions behind C♭. Unfortunately, I didn’t start this post until 8:45pm without the same fiery passion that I normally bring to these. Instead, I think I’ll just do some stream-of-consciouness poo.

Interlude - A Message To Garcia

A story in which I learned about intestinal fortitude.

Reading Assignment: A Message to Garcia

In 1993, I joined the U.S. Army Infantry. I saw the movie “Stripes.” How bad could it be?

Let's Make a Language: C♭ - Part 3

In which I write some tests for the last post.

Shame on me.

I know you caught it in that last post.

I didn’t write any tests. Not a one.

Let's Make a Language: C♭ - Part 2

In which I continue to muck about making a language that encourages bad practices.

The content of this article is sorely out of date. An update may come along at any time, but it won’t be today, most likely.

I don’t know how far we’ll get in this part. But, let’s you and I find out. Since we’re working with language design and “compilers,” I’d probably consider this a more advanced topic with which to deal. That doesn’t mean you can’t do it. You just may have to learn a little something along the way.

Let's Design a Language: C♭ - Part 1

In which I muck about making a new language because languages are fun.

I’ve got this huge project that I work on every once in a while. I want to port Objective-C to the Common Language Runtime. I’ve been working on it for two years, restarted it three times, and have really not come any closer to finishing it because of the normal excuses: family, work, other projects, weariness, lack of falafel, the moon in the wrong phase. You know what I mean.

Some Thoughts on Constructors and Unit Testing

I wouldnt go so far as to call them patterns; rather, reoccuring forms.

This article mainly applies to those languages that have some xUnit-like testing library. I will write the examples in C#, but they should port easily to other languages.

Maintainability and Code Organization

Probably a rant, most definitely a diatribe.

I really like programming computers. As I grow older in my profession, I really like reading source code that I can maintain. Maintenance must be our primary concern when we write our code. Because, someone else will need to change it, one day, and they’ll have to understand it.

OO Interview - Refactoring Static Data

During which, a recently-gradudated interview candidate and I talk about refactoring static data.

“So, Interview Candidate, let’s look at the classes that we have.”

OO Interview - Classes Protect Invariants

During which, a recently-gradudated interview candidate and I figure out one of the basic aspects of object-oriented design.

I interviewed a recent college graduate, today. He attended the Texas A&M. That’s a good school, from what I understand. The inventor of C++ teaches there. The inventor of C++, the language that popularized object-oriented programming. That sounds like a pretty good place to earn one’s Bachelor’s degree in Computer Science. As a student there, maybe you’ll learn more than data structures and algorithms. Maybe, you’ll learn a little object-oriented design.

Seems not so much.