Project Audit considered Moribund
. . .
I've seen the term “moribund” used a few times to describe various packages and executables, but no one has come out and defined “moribund software”. So let me have a crack. Moribund Software is code that is neither maintained nor used, and is not likely to be either in the future. It may be buggy – or maybe there's not enough “there” in the codebase to have bugs in it. Instead, there's a paltry few features fleshed out to prototype stage, but not beyond. Software becomes moribund because turns out not to be necessary - either to the author(s) or anyone else. Or so I think, because these sentiments are what I pretty think of Project Audit.
PA started as a C# .NET program in late 2008 to discipline myself and my workload. I set myself several things to do, such as studying both .NET Winforms and Django programming. However, I wondered how much time I allocated on study was diverted to other things - wasteful web surfing (mostly), plus household chores and trips to the shops and the many cigarette breaks I took. (Then, I smoked.) So the idea was to create a tool that documented how many hours of work I actually did per day, rather than how much time I allocated to them.
Using the study I'd already done for the MSTS (C# - 2.0 – Winforms), it was easy to throw together a ugly little Project Audit utility in C#. Since I was also interested in learning Django programming, I thought I'd re-implement Project Audit in the framework. To make a better comparison I'd use the same five table database model, if not the same database system. PA .NET. used SQLite for simplicity, as all data was saved on the desktop. A SQL Server solution would have been overkill. PA Django would use PostGreSQL, as that's the better of the two databases supported by Webfaction. I would use PA .NET tool to document the work I was doing on PA Django. Not only that, by sticking to documenting what exactly I did, I would get a “feel” for how much time utilised or wasted per working day.
Alas, it didn't go that smoothly. What would happen is that I felt better jotting my "timesheets" on pieces of paper, and entering the data later. As in a day later. Or a week. I tried to discipline myself to use the tools in order to improve my self-discipline in general. But I found that some days (not all) I'd felt like not working if it meant that I had to document the work I'm doing in these tools I'd invented. (Did that make my self-indiscipline contagious? Or procrastination recursive? I don't know.) What I found is that data entry is not a pleasant experience for me, especially when trying to enter it in the multiple DataGridView controls used by PA .NET. (Think of malnourished Excel spreadsheets. You're close.) By the time I had finished creating 0.1 of Project Audit - Django, and documenting all the little work entries in both programs, I was sick of the whole enterprise. I took a little break afterwards, but then couldn't be bothered using them on anything else I was working on at the time.
However, it is instructive to revisit Project Audit - Django a year later – because it shows what I've learned of Django (and Python) in the meantime. PA Django was created to learn Django, it was my first ever project in the platform, and it shows in all the Django "best practices" that I didn't take advantage of. For example, I never took advantage of Template Inheritance - "a base "skeleton" template that contains all the common elements of your site and defines blocks that child templates can override". In other words, all your boilerplate code in one place, rather than repeating it in several files. This is something I learned later when implementing Post Pressed. If I had time, I could do worse than go through Top 10 tips to a new Django developer and 10 Insanely Useful Django Tips, see which techniques I could use, and implement them in Project Audit. But I don't have the time.
For now, I have created a version 0.2, but only to correct the most egregious flaws. For example, the CSS for all tables affixed them to the left side, while leaving a big gap to the right. I've corrected this asymmetry, and also a few other simple errors on the way - debugging code that shouldn't be debugging. I've added these corrections to the .tar.gz and .zip files on the page - but really, I can't be bothered adding or implementing anything else in Project Audit. I've got better things to do.
For example, I have a Kleingeist page to do for my band. There are blog posts to write, and then there are a few issues in the blogging software to address. And I had some music theory software I wanted to write, but that's going to wait. Let's not forget the time I spend in ESL teaching, which is what pays the bills these days. For self-discipline, I guess I have to stick to a tried and true trick: making long lists of "to-dos" on paper, and ticking them off. If I ever revisit the software, it won't be for another year - at least. If I ever.
Comments
Comments are closed.
‹ Essay Spam 2 - when people don't read The Daniel Moravec Experience ›