Lately I’ve come across several software projects at work that have build artifacts checked into their repositories–nuget packages for .NET, minified bundles on javascript projects, and .pyc files in Python modules.
Consultants in the field of GIS often work across multiple languages, and it can be difficult to keep track of which files should be ignored by source control; luckily there is a collection of standard .gitignore templates. If you find that your project has files checked in that are included in one of the templates, that’s a good sign that something is amiss!
Continue reading
So I’m at SCNA, participating in the Code Retreat. If you’ve never done one, the idea is that you pair up with another developer, and work on Conway’s Game of Life for 45 minutes, using TDD. At the end of each 45 minute block there’s a short retrospective, then you pair with a different person and start all over again. Subsequent blocks might also have restrictions, such as “no passing primitives across function boundaries.
Continue reading
Developer Retention I’ve been having a lot of discussions lately with other devs about job satisfaction; seems like many of us want the same things, but I thought I’d capture a few thoughts here.
I want to use best practices If I was interviewing someone who had no experience with automated testing or continuous integration, I’d be a little worried. Likewise if they weren’t familiar with modern project management practices that focus on quick iteration and delivering value, or if they had no concept of the value proposition of open source.
Continue reading
The other day I was called upon to help a 5th grader with her homework. She had gotten the first two problems right, but was having some difficulty with the third one:
I can’t help but wonder who chose that problem, and what their intention was; if it’s supposed to be a way to get kids thinking about algorithms and the idea of proof, that’s great. Probably most kids would start off okay–you find all the paths and pick the shortest one.
Continue reading
This is the sort of thing that seems really easy in hindsight, but it took me a little while to get right.
There are lots of things that I don’t like about PL/SQL, but I often prefer to do spatial operations at the table level inside the database, rather than using ArcPy or ArcObjects; I think that it’s easier to reuse queries like this, the code tends to be more readable and concise, and performance is almost always significantly better.
Continue reading
I’ve been thinking a lot lately about the idea of convention in software development. The more I’ve worked with the ASP.NET MVC framework and nHibernate, and dabbled with Django, the more I’ve been able to see the benefits of designing and coding this way. It’s also made me consider my own biases and background, and realize why I’ve struggled with the idea in the past.
I started out as an embedded developer, and for a long time, everything I wrote was in C or some flavor of assembler.
Continue reading
My car broke down the other night; I had dinner with a friend, and left the restaurant to find that my car wouldn’t start. I ran back around the building, just in time to see my buddy driving off. Chased him five or six blocks, across the street, up a hill. When I got to the top, he was gone. Walked back to the parking lot, flagged down a helpful passer-by, and tried a jump-start; nothing.
Continue reading
"There are too many languages today, and it would be a good idea to choose just one." Richard Feynman, Nishina Memorial Lecture "The Computing Machines in the Future," Tokyo, Japan, 1985 (from Selected Papers of Richard Feynman) A couple weeks ago, I started thinking about writing a simple blogging framework, and, I guess, a blog? Of course, there is approximately zero need for more blogs, or more software for making blogs–there are plenty of great platforms out there, if all you want to do is write down some thoughts that no one will ever read.
Continue reading