Monday, March 12, 2012

Still programming

I'm still learning. I didn't stop.

At some point it started to feel like work (some of it is actually related to my job) and I don't feel like writing anything about what is essentially boring stuff.

My nights and weekends have been spent on the case management and analysis project I'm doing in Python for my day job. I can't justify working on it during normal work hours since I'm too busy, and technically it's not something I'm supposed to be doing (although nobody has complained about the results so far). I could have knocked it out weeks ago but I'm taking my time to make sure I do it as pro as possible. For example, I'm trying to gear it towards a proper distutils installable module, even though it wouldn't ever be used that way.

What's really irritating is that I've learned so much over the past few weeks that I want to scrap the whole thing and start over again. I realize thought this is a dangerous road, so I've written out exactly what the first version needs to accomplish to be functional, and once that's in place and running I'll branch the code and do a massive refactor. That's another thing - I'm trying my best to use Git properly. I put a lot of time over the weekend into reading Pro Git, which has so far been either really helpful or really confusing.

Right now I'm almost done with the first phase of the first version of the program. Phase one is implement a robust class for loading and filtering the case data, and a class for pulling out numbers from the data. For example I'd load a case list, pare it down to a specific date range and a specific territory, and then count how many cases there are in that filtered list, or count how long the cases took to close, count how many unique accounts there were - stuff like that. Phase two is to use that functionality for generating reports in the form of graphs and HTML (to be then converted to PDF or straight to email).

My hope for version 2 is to implement a proper MVC design pattern with some sort of preview for the output prior to exporting.

Let's call version 3 a proper application for not only viewing cases but for on the fly filtering and adding. By that point I'll probably have to start using a SQL database, but hopefully I'll be ready for that by then.

I know - I've said it before that this isn't ChrisLearnsPython, but I'm having a good time with it and it's super hot right now. I complained a lot at first that my hinderance with learning more C was finding projects to tackle. I can't STOP thinking of projects to do in Python.

Once I do get back to C it probably won't be vanilla C, I'll likely keep on with my Objective-C learning so that I can tinker more with Cocoa and iOS.

No comments:

Post a Comment