Programming

Software development and managing same.
Herding Cats

For those of you who are tired of City of Heroes posts and who haven't been tracking my technical blog, a bunch of posts there lately have been more thoughtful than technical. You might want to check them out. Is Microsoft Evil? Undercutting Your Own Argument On Being a Microsoft Shill Don't those titles alone make you want to check them out? Technorati tags: Technical, Microsoft

posted @ Tuesday, June 19, 2007 6:37 PM | Feedback (0)

Herding Cats

One of the cardinal rules of creating a blog you want people to read is to keep it well-focused. That generally means keeping to a single topic, at least mostly. Personally, I'm too ADD to only post on a single topic, so I've been struggling. I've wanted to post mainly on technical and professional topics and want that to be my main audience. On the other hand, having 10 siblings and being married to a woman with 8 means that blog posting is a really easy way to keep them all informed about what's going on with our family and...

posted @ Tuesday, May 08, 2007 1:32 PM | Feedback (1)

Changing Requirements

Developers hate it when someone changes the requirements in the middle of a development project. What few have realized yet is that they've gone and changed the requirements to be a developer right in the middle of our careers. An Unnecessary, But Illustrative, Story The summer of 1994 found me in Mesa, Arizona, new-minted diploma in hand, getting ready for my first real job. A couple days before I was to report for the new position, I received news that the job that I had pulled my wife and baby daughter into the gods-forsaken desert for had, well, been eliminated. Not a happy...

posted @ Thursday, May 03, 2007 6:53 PM | Feedback (3)

An Interesting Quiz Twist

The folks at The Golden Compass (advertising the upcoming movie) have an ingenious twist on the personality quiz meme. Obviously, I couldn't resist. The twist is simple: after you answer, let's give your friends 12 days to modify it. Well, here's your chance. My answers have me matched up with Hypatia, a badger. I've no idea what I'll end up with... Technorati tags: Personal, Quiz, Golden Compass, Daemon

posted @ Monday, April 30, 2007 12:53 PM | Feedback (1)

Pearls of Wisdom

Steve Harman had a post back at the beginning of the month about stuff you'd tell a young developer. It's a reaction to a similar piece by Jeremy Allison. It's an interesting topic, so I thought I'd waste a few pixels on it myself. If it's not what you love, don't do it I wouldn't generalize this to other fields, but for software development, I think this is a good thing to keep in mind. A lot has been made in the past by career counselors and other gurus about "finding your bliss" or similar nonsense. I think that's mostly a crock. You...

posted @ Wednesday, April 25, 2007 7:26 PM | Feedback (4)

Winning Arguments

Have you ever found yourself in a situation where you know what's the best thing to do, but are unable to convince anyone else that you are right? Developers know that even simple problems have more than one solution. Developers who have worked on a team of more than one have probably been in a situation where they just knew that the team was heading in the wrong direction and that they had a solution that was more elegant, easier to program, and better to maintain. Higher profile developers often find themselves trying to explain their solutions to non-technical...

posted @ Tuesday, April 24, 2007 6:02 PM | Feedback (1)

Head Games

Good friend and Indie game developer Jay Barnson has just taken game development in a new direction: Developing in Public. He sounds a little nervous about it, which makes sense. Unlike those who have previously attempted this feat, though, I think Jay stands a good chance of pulling it off, and with good style. There are two things that are likely to make this interesting. First, Jay's about ready to release his second indie game, Apocalypse Cow—So we're likely to see this through all the way to a completed game. Second, he's an honest and engaging writer. It's that second that...

posted @ Friday, April 20, 2007 1:31 PM | Feedback (0)

More Cloudy Days

If you have the eye of a good copy editor, you might have noticed some volatility in the ole Tag Cloud on the right. I made some changes at the request of people on the SubText developers list and reworked some stuff—most of which is completely invisible. The biggest visible change is that I decided that assuming an even dispersion around the mean might work in natural statistics, blog post tags tend to be more of a declining curve however. What that means is that most algorithms for displaying tag clouds use a formula that allocates about half their categories...

posted @ Monday, April 16, 2007 2:48 PM | Feedback (5)

Cloudy Day

I just completed some SubText hacking and the results should be visible now. In addition to upgrading to version 1.9.5 (which should officially release here shortly), I implemented a new feature: Tag Clouds. I'd had enough of my feature envy from all the cool kids who had them, so I went and rolled my own. If you're at my actual site (as opposed to a feed reader), the Tag Cloud is off on the right. This was a non-trivial feature to add. In an email conversation on the SubText developers' list a couple months ago, Phil Haack (semi-benevolent project dictator) indicated...

posted @ Friday, April 13, 2007 4:15 PM | Feedback (0)

Too Much Information

Like many businesses, my current employer uses Microsoft Dynamics GP for our main  accounting/inventory software. From a recent trip to Connections (the big convention for Dynamics), I learned that there were some cool data mining utilities available from Microsoft that we might be able to use. I love free stuff, and the opportunity to give our executives something to chew on for a bit (keeping them out of my hair) was one I couldn't pass up. The Analysis Services install I managed to dig up (after much searching on Microsoft's Customer Source) went pretty easily. There are a couple of SSIS...

posted @ Wednesday, April 04, 2007 4:25 PM | Feedback (0)

DataSets in SOA

Last November, I engaged Udi Dahan (the Software Simplist) on using DataSets in OLTP situations. It turns out that Udi uses a question I posed that kind of preceded this dialogue for his latest podcast at Dr. Dobbs Journal titled DataSets and Web Services. Yes, I am the Jacob he mentions. You can tell that he's not a great fan of DataSets in general, though he takes pains to treat them fairly. Which puts him ahead of most of the developers I track, really. Row State One of the things that Udi doesn't like about DataSets is that they track row state. Unfortunately, he...

posted @ Wednesday, March 28, 2007 6:36 PM | Feedback (0)

Programmer Personality Types

Well, it turns out that, like Simone, I am a DHSB programmer. I can't say that I'm surprised. The only part I'm a little leery of is that S. It just sounds so unfriendly to be a Solo programmer. I've worked in some excellent teams in the past, but coordinating with others is something I had to consciously learn to be good at.     Here's the breakdown: Doer High Level Solo liBeral Technorati tags: programming, personality, test

posted @ Saturday, March 24, 2007 12:50 AM | Feedback (0)

Arguing Data

People have a lot of different reasons for posting blog entries. These reasons vary from financial, to personal, to professional, to I'm afraid to know more. For me, one reason I take the time when I could be doing something else is that I like to put my ideas out there to be tested. I don't really care if a majority of people agree with me so much as I want to see what other people have to say for or against certain things. The downside to this is that I'll sometimes find that an idea isn't as good as...

posted @ Monday, February 26, 2007 3:33 PM | Feedback (0)

Out-Cleverring Yourself

Have you ever hacked a product to do something it wasn't intended to do in order to "simplify" things for your users and have that blow up in your face? This is an account of my experiences doing just that with MS Reporting Services. If you've used Reporting Services at all, you'll know that there are two virtual directories that are created on IIS when you first install it to a server: ReportServer actually serves up the reports by passing the requested data to external applications via whatever protocol you have configured and Reports (aka ReportManager) which serves as a user...

posted @ Wednesday, February 21, 2007 1:47 PM | Feedback (0)

Minor Updates

Okay, things seem to have settled down with the blog app. I love when that happens. It should stay stable until I decide to hack around with it again. One of the more interesting changes I made is that I'm now using Bloglines' public API to display my blogroll. This means that the blogs listed on the right, there, are the same as the ones I monitor on a regular basis. When I add a feed, it'll show up (and conversely when I remove one...) In other news, two of my customizations to the SubText engine have been approved for the...

posted @ Friday, January 26, 2007 9:19 AM | Feedback (0)

Ways to Skin a Blog

The folks who visit the actual blog (as opposed to using an RSS feed) have probably noticed that I re-skinned the site. Now that I'm more comfortable with SubText's skin structure, I figured this would be the next step. Personally, I think that it looks tons better now, but you can let me know in the comments if I'm just being delusional. I still need to tackle that calandar, though. I can't take much credit for it if you like it. I'm perfectly aware of my (lack of) design sense. I can generally do okay evaluating existing designs, but I suck...

posted @ Friday, January 12, 2007 6:15 PM | Feedback (0)

Building Custom SubText Controls

In my response to Jeff Atwood, I mentioned the Technorati widget control that he is now using in lieu of Trackbacks. The Technorati widget is fairly simple to implement, but you have to be able to feed it the permalink for your post for it to be able to work. Since I already had a go at creating custom controls for use in SubText, I decided that now was a good time to see if I couldn't come up with a way to create one that has access to blog entry attributes like the permalink. For your edification, here's what...

posted @ Friday, December 22, 2006 12:30 PM | Feedback (2)

Trackbacks Are Dead

  Jeff Atwood has a recent post on why he finally gave up and disabled Trackbacks on his blog. My blog is the tiniest fraction of his and I had to disable trackbacks just for sheer spam volume back in October (inspiring an anti-spam rant of my own). Jeff lays the blame for Trackbacks' demise on Six Apart--the outfit that created the standard in 2002. Ah, those heady glory days when you still had to explain to people what a blog was. Trackbacks were a great idea. They still are a great idea. But Jeff is right, the simplicity of the standard...

posted @ Thursday, December 21, 2006 6:59 PM | Feedback (2)

Hacking SubText

Okay, I've had SubText up and running for a week and some now, so naturally it is time to tinker. In poking around, I'm not as happy with SubText's integration model as I was with DasBlog's. DasBlog exposed a number of "macros" that you could use to insert certain internal values into your own stuff. I kind of liked their model because once you registered your own code, you could reference your macros from DasBlog stuff as well (bear in mind that I didn't actually implement DasBlog, so my impression could be off). That said, as long as you don't need to...

posted @ Wednesday, December 13, 2006 1:34 PM | Feedback (1)

Creating a Domain Publisher Cert for a Small Internal Software Shop

The trend towards increasing security introduces a number of intricacies for medium-sized business software shops using Active Directory Domains. An internal domain with more than a dozen workstations can introduce issues that are old hat for larger shops, but way beyond anything a small business will have to deal with. I ran into one such issue recently when I decided it'd be a cool thing for one of my apps to actually run from the network. The Problem The first sign I had a problem was when a module that worked fine locally threw a "System.Security.SecurityException" when run from a network share....

posted @ Monday, December 04, 2006 1:33 PM | Feedback (0)

DataSets Suck

First off, a correction. In my recent post on OLTP using DataSets, I gave four methods that would allow you to handle non-conflicting updates of a row using the same initial data state. In reviewing a tangent later I realized that method 2 wouldn't work. Here's why: The auto-generated Update for a datatable does a "SET" operation on all the fields of the row and depends on the WHERE clause to make sure that it isn't going to change something that wasn't meant to be changed. Which means that option 2 would not only not be a good OLTP solution, it'd overwrite prior updates...

posted @ Thursday, November 23, 2006 1:47 PM | Feedback (1)

DataSets and Business Logic

Whoa, that was fast. Udi Dahan responded to my post on DataSets and DbConcurrencyException. Cool. Also cool: he has a good point. Two good points, really. Doing OLTP Better Out of the Box I'll take his last point first because it's pure conjecture. Why don't DataSets handle OLTP-type functions better? My first two suggestions would, indeed, be better if they were included in the original code generated by the ADO.NET dataset designer. I wish that they were. Frankly, the statements already generated by the "optimistic" updates option are quite complex as-is and adding an additional "OR" condition per field wouldn't really be adding that much...

posted @ Tuesday, November 21, 2006 4:23 PM | Feedback (0)

4 Solutions to DbConcurrencyException in DataSets

Following links the other day, I ran across this analysis of DataSets vs. OLTP from Udi Dahan. His clincher in favor of coding OLTP over using datasets is this: The example that clinched OLTP was this. Two users perform a change to the same entity at the same time – one updates the customer’s marital status, the other changes their address. At the business level, there is no concurrency problem here. Both changes should go through.When using datasets, and those changes are bundled up with a bunch of other changes, and the whole snapshot is sent together...

posted @ Monday, November 20, 2006 9:35 PM | Feedback (0)

Two Things I Regret

Have you ever been in an interview and gotten some variation on the question "What do you regret most about your last position?" Everyone hates questions like that. They're a huge risk with little upside for you. You're caught between the Scylla of honesty and the Charybdis of revealing unflattering things about yourself. Still, such questions can be very valuable if used personally for analysis and improvement. In that light, I'll share with you two things I regret about my stay at XanGo. Since I've ripped on the environment there in the past, it's only fair if I elaborate on things that...

posted @ Friday, November 17, 2006 5:10 PM | Feedback (0)

Blogging Software Update

Well, I still haven't chosen what blog software I want to use in a new home. So many to chose from and none are a perfect fit. The comments left by Scott Hanselman, Phil Haack, and Dave Burke were good ones and point out the connectedness of the blogosphere (is that word accepted enough to forgo the quotes now?) Since I gave DasBlog such short shrift in my original post, I spent some quality time with it. DasBlog has some really strong points in its favor. For one, it has a very active developer community, though that isn't as apparent as it...

posted @ Friday, September 22, 2006 2:38 PM | Feedback (0)

Full Programming Archive