When I read this, I decided to start working on the asset that is my weblog. I will strive to post something daily, even if it is only a link….
Software Development
There are 92 posts filed in Software Development (this is page 9 of 10).
The debt metaphor in software development
In a new post, Ward Cunningham shares his thoughts on the “debt metaphor” in software development. One of the points he brings out is that programming can be thought of as making decisions now on the functionality of the program and deferring others to a later time (debt), with the understanding that as the program matures, refactoring can occur to make the program more efficient/better (paying back the debt).
In my experience in avionics software development, the creation of software is driven by approved requirements. As requirements change or are refined, the software is updated to be consistent with those requirements. One type of “debt” I see is when functionality is not completed on time, and gets deferred to a later software release (cost increase). Another type is when a problem is found (requirements, source code, tests, documents), but addressing the problem is deferred to a future time (the problem does not impact the functionality of the requirements, source code, or tests, or is deemed not a safety issue). This type of debt (typically called “open problem reports” (OPRs) is getting more scrutiny by aircraft certification agencies and OEMs (Bombardier, Boeing, etc.), since they see increasing numbers of OPRs as an indicator that the overall “health” of the software may not be as good as it should be, and that there should be as few OPRs as possible (in other words, fix your problems as you find them).
For myself, I prefer to fix problems when they come up. However, when you work as a member of a team, sometimes business decisions dictate otherwise….
Itty-Bitty: This app (link to Github) encodes a web page in the URL. I have not figured out how this works yet, but would like to….
Test-Driven Development with Python: Book on using TDD for Django development (there is a link to read online for free!), Selenium is used for browser testing.
Trevord Miller: Staying up-to-date as a software developer with a daily learning routine – Learn new things (uses a feed reader), solidify through practice, remember through spaced repetition.
Using app from Jon Udell to annotate web audio
I linked to a Jon Udell post on Sunday where he describes his recent experiments on annotating audio files available on the Web. It looked so good that I had to try it to annotate a podcast!
His app is at http://jonudell.net/av/audio.html. I then needed to find a URL to a MP3 file, which took a little bit of searching, since a lot of podcast play pages are not a direct link. Finally, I settled on an extended cut episode of Side Hustle School. I hovered over the “Listen Here” link for episode 12 and saw that it was a link to a MP3 file. I copied the link address and pasted it into the url text box in the Jon Udell app. Next, I entered a start time and stop time for the clip (from 1:00 to 2:00) in the selection boxes on the app page, then clicked the button “Play clip”. The app then started at 1 minute in and played for 1 minute – excellent! Finally, I clicked on the link at the bottom where it says “link to av editor with these settings” to get a URL for my clip. Now you can listen to it as well!
Thanks Jon!
How to get started (in programming)
I linked to an article on Linux Journal Saturday discussing how to get started in programming. I think this is a good article for several reasons, one of which is picking a skill to learn and getting started. For me, picking a small thing to create or learn, getting some success and getting that working, helps me to get enthusiastic. I am then ready to pick up a new thing. This is the process I am using to learn the Tone.js Javascript music library. I worked through some of the code examples, then came up with a small project, broke it down into a set of steps, and I am working through them one at a time. Success!
How to help on a open source project
Kyle Mathews posted a list of ways to help on an open source project, and then followed up with another two items. One of the items (write as full a description of the problem as you can) is especially important to me. I usually try to follow the steps of this Dave Winer post on writing good bug reports. The more information there is on a problem, the easier it is to solve.
Philip Greenspun: Teaching Young Americans How to Be Code Monkeys