Maryland’s iFile

Well, I filed the taxes this morning, and for the second year I filed the fed taxes electronically with TaxCut, and for the Maryland state taxes I used TaxCut to prepare the return and then filed online with Maryland’s free iFile system. Net cost: $15.95 fed eFile fee – $15.95 H&R Block eFile rebate, + free Maryland iFile, = $0. The iFile system works very well, and the numbers I get from it match the numbers I get from TaxCut, which I find comforting. There are a couple little niggling problems with it; namely, you have to pick a password and then remember it from year to year, for an app that you only use once a year (so of course, I couldn’t remember the password I chose last year, and had to reset it); and the PDF form download they provide doesn’t work with my Mac or my Linux boxes. But aside from that, I’m happy with it, and they claim that using it saves taxpayer dollars. I’m all for that.

On another note, I’m fresh off attending the most exciting college basketball game of my life yesterday, the D.C. Regional final where George Mason upset UConn to reach the Final Four. This is what college basketball is all about, it’s why we buy the tickets, and I’m already lining up to get tickets for next year. And the game had quite a local angle to it, with 70% of the starting 10 players from Maryland. It’s too bad all this talent has to go to out-of-state teams. There are a lot of Division I teams in Maryland (UMBC is one of them), none of them much to write home about. Don’t get me wrong, I love the Terps, but it’d be nice to see some other strong local teams.

IE and XML miscellany

Well, I learned something new about IE today. If you use an empty-element tag in a <script> declaration, for example:

<script language="javascript" src="/foo/bar.js"/>

It breaks IE. Apparently, IE doesn’t treat the trailing slash as a close tag, and treats the rest of the page as an inline script. Firefox, as expected, has no problems with this. The workaround for IE is:

<script language="javascript" src="/foo/bar.js">
</script>

This affects IE 6; don’t know about other versions.

Like everything else around here, we learned this the hard way, after I made some mods to the Student Parking Registration app and it broke for IE users. Fun fun..

On another front.. we’ve got something new coming down the pike. If I can ever get away from all my various menial maintenance chores (FAR, Parking, PlacePro, etc. etc. etc.) we’re going to attempt to do a pseudo-quasi-web services app. It’s not “real” web services, but I’m going to mangle the legacy myUMBC portal code so that various functions can return XML for consumption by other apps. Background: We’ve been asked to display registration eligibility status inside MAP (UMBC’s homegrown kitchen-sink retention-aid-transcript-displaying-advising-scheduling-coffee-making web app). Now, the hitch here is that we currently pull eligibility info directly from the HP3000. It’s all there in the Oracle SIS, but no one has coded up the SQL to fetch it, and our development resources are spread too thin (doing crap like FAR, PlacePro, etc.) to do it right now. And even if we did it, the code would have to be duplicated between myUMBC and MAP, which is just a bad idea anyhow. So, I’m going to hack myUMBC so that MAP can call it, pass some magic params, and read back an XML stream of registration eligibility info (which can be parsed, transformed, etc. as desired). To make this happen, we need to do a few things..

  1. Move MAP off its current SGI hardware and onto a more modern platform, where we have the LWP::UserAgent and Crypt::SSLeay Perl modules installed
  2. Figure out a workable DTD for the XML data, and stick to it
  3. Modify the legacy myUMBC code so it can output XML (via a custom URL, custom CGI parameter, etc.
  4. Modify MAP to call this routine using LWP::UserAgent, parse the results, and display them

Like I said, not really “web services” in the official sense, but the same kinda thing. This seems like an easier, and possibly better, way to do code sharing without having to do major surgery on the legacy code. As with everything else, we’ll see how it works in practice.