Posts

Showing posts from September, 2012

Before I Forget... About That Logging (and a Few Other Things)

I meant to mention this yesterday in one of my posts but forgot. I had originally downloaded jars for both slf4j and JCL , plus the jar that connects the two . I know I didn't do this for funsies; it was purely to get my code to compile so I could use the export-to-XML feature of DBUnit . However, I stumbled across a page that listed the dependencies of DBUnit and it didn't include JCL, just slf4j. I had updated all my jars so I figured maybe things had changed and removed the connector jar and the JCL jar... And poof, everything still compiled! Maybe I was somehow confused before (of followed bad advice on a blog/Stackoverflow post) and downloaded things unnecessarily, or maybe they've changed things in a more recent release, but either way I don't have to use both slf4j and JCL. Which is great, because when I tried to use them both the names of classes and the line numbers that were doing the logging got lost. Anyhow I now have things working very well with just s

Recursion in the REAL WORLD

This was so unusual and exciting in a programmer-geek sort of way that I felt driven to blog about it. Today, for the first time in decade as a software engineer, I have actually used recursion in my work. It was in a Ruby on Rails model, to find all the descendants and parents of an object (there are no cycles in these relationships, so this works). And it was awesome. That's all. Just had to share that. ;)

Sprint 2 Planning

The goal for sprint 2 will be improving stability and security (mostly a continuation of sprint 1, obviously). The sprint backlog items are: Priority Description Points 300 Add error checking, unit testing, and integration testing using JUnit, DBUnit, FindBugs, etc. 16 290 Add logging statements throughout the code 3 270 Add additional sanitization of input and other security measures 8 255 Fix fake data insertion code 2 The total ideal man hours is 29, which is hopefully a more reasonable amount for slightly less than 2 weeks (since I'm leaving a dayish for planning, setting up the demo and doing the retrospective). All of these carried over from the last sprint with the exception of the last item. I discovered during the last sprint that my fake data insertion code no longer worked due to changes I had made towards the end of the semester when I first developed the application. I really need those routines in order to have adequate data for testing, so they need fix

Sprint 1 Retrospective

Image
So last night I started thinking about sprint 1 and how it went, what I'd do differently etc. for the sprint retrospective. The biggest thing I learned is that there's no way I can put in as much time each week as I'd like to on the project. I would love to put in 20 hours per week but that's just not going to be possible while maintaining my sanity. The biggest problem is that weeknights quickly get crowded, so I can really only get in a half-hour here or an hour there M-F. As such I need to concentrate on getting a lot done on the weekends. I'm going to start designating one day per weekend as a project day and do no other activities on that day. This should help a lot, I hope. The main thing I will be sure to do differently is to set up the demo much earlier. I waited until Sunday night and then ran out of time. Next time I'll set it up in the morning/early afternoon of my designated project day in case something goes wrong. I'll officially end my sprin

Sprint 1 Review

Yesterday I had my meeting with my prof. Alas, I had some configuration problems on the department machines (Tomcat wouldn't pick up my JRE_HOME setting for unknown reasons) so I wasn't able to demo during the meeting, but I was able to get a demo up and running during my lunch break. The demo included SSL for login, hashed passwords in the database, restricting access to the HSQLDB to the same server it's running on (as far as I can tell; I haven't figured out how to test that one yet), and logging. My prof seemed satisfied with how much I've done so far and we discussed my plans for the next sprint (mostly finishing what I didn't finish this sprint), so the Sprint Review, such as it was, went well. During the meeting I also discovered I won't have to do a written exam on the classes I've taken, contrary to the impression I had gotten from the department webpage, so a big hooray for that. A "project report" describing the project, how I did

What is this I don't even

So apparently slf4j is a logging abstraction framework meant to let you use the actual logging implementation of your choice. So slf4j lets you use Jakarta Commons Logging (and this is what DBUnit does), which is ALSO a logging abstraction framework meant to let you use the actual logging implementation of your choice. So I STILL need yet another library in order to get logging to files instead of to System.err. I just... For crying out loud. Fine then. I just downloaded log4j . Are you finally satisfied, logging libraries??? Argh. :(

Sprint 1 Extended

I met with my adviser for the first time last Wednesday, and we decided our next meeting would be September 24 and then we'll meet every two weeks thereafter. Since the 24th would fall in the middle of a sprint I decided to extend the first one to end this Saturday, the 29th (I was also under the weather several days last week, so it was a good move all around). On the 30th I'll upload all my code to the version control system my prof has set up (svn) and configure everything so that it will run on the department servers. I'll be demoing my latest work at every meeting, so every other Sunday will be configuration day. I realize continuous builds on the department machines would be better but it's not exactly practical, so I'm settling for continuous builds on my home machine. Since my last post I have successfully configured Tomcat to use SSL and jbcrypt . The latter involved writing a custom realm but turned out to be quite trivial; I simply extended JDBCRealm

Back at Work at Last

From the lack of updates you can probably guess that I didn't accomplish much this summer. Life got in the way as I had too much else to do. But now the fall semester has started, I'm officially registered for just 3 credits for my Masters project class, meaning I'll be doing another 3 in the spring and graduating in May instead of December, and I'm back at work on the project. I finally started sprint 1 on September 1. So far I've primarily been researching for the "restrict access to the HSQLDB" and "change the way passwords are stored and transmitted" backlog items. After vast amounts of googling I've discovered how to do these things and for the second decided on which methods are needed. I'll be using SSL for just when the user logs in and the bCrypt algorithm as implemented in jBCrypt to hash passwords before storing them. Other than passwords there really isn't any sensitive info in the app; if people didn't reuse pass