UvMoney Goes AJAX

It’s time for an exciting update on my UvMoney home accounting project.

When I last wrote about it, I was disgruntled about scraping transactional data from bank sites. I’m happy to report that I’ve eliminated AutoHotKey scripts from four out of the five of my bank scraper modules. The last one is a hideously convoluted bank site that uses layer upon layer of frames, and I fear for my sanity when it comes time to investigate directly scraping transactions from that HTML. I freely admit I’ve been postponing that task as long as possible, even though the AutoHotKey script routinely fails when the bank site changes.

Since the scraping is largely resolved, the next step was building a user interface for entering and editing transactional data. The original method was less than optimal, since it involved hand-editing a large XML file of bank transactions. I set out working on a desktop application, as I usually do, seeing as how I learned software development before the arrival of Google. I explored some WinForms data grids, but I didn’t like any of them, so I started porting my old grid code to .NET 2.0. Initial versions were promising, but I quickly grew frustrated because I wanted to rewrite everything from scratch, and it’s really a time-consuming pain in the butt to make a nice, clean, fast grid control from scratch, so I gave up because my free time is limited and I went back to the XML file because, you know, it’s not that hard to edit an XML file, right?

The project languished like that for a few months, until I found myself researching the Microsoft AJAX extensions for ASP.NET 2.0 at work last week, and then it suddenly dawned on me that an AJAX-enabled web application might be just the ticket for UvMoney. It would simultaneously give me a working interface and provide a useful test project for the AJAX extensions.

I cobbled together a basic interface over a weekend, and it works pretty well. This confirms what everyone already knew — it’s much quicker and easier (and cheaper, since you don’t have to buy a bunch of pre-made components) to build an interface for web browsers than it is to build interfaces for desktop applications. This could explain why everyone has been moving away from the desktop: Simple laziness. The task of building a good desktop application interface is too hard and takes too long for most development shops to consider it anymore. Kids today! They just don’t want to work anymore. 🙂 (I have a perfectly good excuse for caving in to the web application frenzy, by the way: Since I’m older, I actually have a life, so I can’t spend all my spare time hand-coding efficient grid rendering code. So there.)

Anyway, back to the topic of the Microsoft AJAX extensions. Overall I have a favorable impression of the extensions. It was pretty easy to install and produce good results. However, if you don’t like the way ASP.NET abstracts away all of the underlying mechanisms of HTML, you will continue to dislike the Microsoft AJAX extensions. I have mixed feelings about that. On one hand I like the control of working with the “bare metal” of HTML and Javascript, but on the other hand, Intellisense and sensible C# code is pretty dern convenient. Thankfully, you can mix both methods in ASP.NET projects, so you can pick and choose your preferred style of coding.

It’s pretty nice to have a centralized page where I can navigate around all of my banking data. I even added a diagonal crosshatch background to the page so it looks all Web 2.0-ified. I’ll be expecting a venture captialist to fund my Web 2.0 AJAX project now. For the right price, I might even add some useless social networking features and a rating system!

The Torturous CNN YouTube Debate

We only watched about 45 minutes of the YouTube “debate” Monday night in the Krehbiel household before giving up. I tried to watch a little bit more of it tonight on the DVR, thinking I should at least make an effort to watch the entire thing before commenting on it, but I just couldn’t take it seriously. It was incredibly inane. Like all the other debates, it wasn’t really a debate, it was just an opportunity for CNN to (try to) look trendy and piggy back on YouTube’s success, and an opportunity for the (popular) candidates to spew the same talking points and sound bites they’ve been telling us since the beginning. I think Kucinich and Gravel are kind of scary, but I at least like the way they answered questions with “yes” or “no” before launching into the canned responses. Everybody else was all like, “Well you know, that’s a great question, but I think the question you meant to ask was this, so let me respond to your imaginary question that I have an answer for.” I know I’m generalizing but it’s really hard not to throw ones hands up in despair for America after watching these side show spectacles.

Cosmetic Changes

I’ve created this feed to note changes in the aggregator. You’ve probably noticed the cosmetic changes (the reflective Web 2.0-ey logo, the angry red-faced dude I got from Microsoft clipart, the new fonts, etc.). Behind the scenes, I’ve made more attempts to handle ancient, broken HTML in feeds. Note to feed authors and blog platform programmers: Um, can you like stop writing out c. 1990-style HTML please? We have this nifty thing called an end paragraph tag now, you might want to look into it. Thanks.

Haditha Testimony

I saw a post go through the Virginia blogosphere yesterday declaring that the “Haditha hoax is falling apart.” It turns out this was actually the declaration of noted journalist Rush Limbaugh, after having read some opinion column at a newspaper nobody has ever heard of. I have also seen several reports this year from a place called “NewsMax” repeatedly stating that the Haditha Marines will be exonerated any minute now, but I haven’t given them much credence since the NewsMax organization has a very clear bias in this case. At any rate, the accumulation of conservative-themed rumors finally inspired me to investigate what we really know about the Haditha case.

Recall that Haditha is the name of the Iraqi town where U.S. Marines are accused of killing 24 innocent civilians to avenge the death of their comrade in an IED explosion back in 2005. When I last wrote about Haditha at the end of 2006, four Marines had been charged with murder: Staff Sgt. Frank Wuterich, Sgt. Sanick Dela Cruz, Lance Cpl. Justin Sharratt, and Lance Cpl. Stephen Tatum. Four other Marines were charged with dereliction of duty in the ensuing investigation. Since December, Sgt. Dela Cruz has been granted immunity in exchange for his testimony, and he has testified that Staff Sgt. Wuterich shot five surrendering Iraqis. The defense argued that Dela Cruz has given several different accounts of the incident.

Just recently, a UK Guardian article described testimony that Lance Cpl. Tatum gave orders to shoot women and children before allegedly doing so himself, though the actual killing was apparently not witnessed. The Guardian article also states that a hearing officer has recommended dropping the murder charges against Lance Cpl. Sharratt, so it seems the murder investigation is focusing on Wuterich and Tatum at this point.

I’m all for giving our Marines the benefit of the doubt, and we still don’t know all the details of the incident, but if these two really did what they are said to have done, there needs to be some punishment for it. I can understand how any civilian in Iraq might be a threat, but I can’t understand shooting a group of guys with their arms up or especially shooting women and children hunkered down in the corner of a room. Obviously you’d want to keep a close eye on them, but if they weren’t brandishing weapons or reaching for the triggers of their suicide vests or somehow trying to impede the Marines, I can’t see how they could be considered legitimate threats under any civilized rules of engagement. But again, we don’t know all the details. If the Marines were under fire at the time, for example, I can easily see how they could make mistakes in the heat of the moment. I’m not sure that would be a moral justification, but it should at least mitigate the murder charges.

de.icio.us links added

I’ve just added my del.icio.us links to the left sidebar. Yes, believe it or not, I’m such an Internet dinosaur that I’ve only just signed up for del.icio.us this past week, even though it’s been around since the ancient days of 2003. (But hey, I know people that still don’t turn to Google first thing… go figure.) Anyway, if you’ve ever wondered about the fascinating diversity of subjects I read about on the Internet, now you’ll be able to see it firsthand.

Retractable Emails

This is not strictly political but I suspect partisans and politicians would be very interested in this. 🙂 I heard about a free email service on WRVA (that is perhaps the longest, ugliest url I have ever seen) this morning called “BigString.” Basically it allows you to change or retract emails after you’ve sent them. (The name comes from yanking back your embarrassing drunken emails with a “big string.”) I haven’t investigated exactly how they do this (ie. javascript or images or what), but the mechanism works (I assume) by grabbing the email content from the BigString servers each time you view the email in your regular reader, which allows them to do all kinds of nifty tricks like changing the content or capturing reader statistics. Technologically it’s kind of cool idea, but I rather hope it doesn’t catch on. There needs to be more accountability in Internet communications for society to evolve, not less. Also I would imagine there are a number of privacy issues, seeing as how BigString will know exactly what you’re reading and when.

New on BlogNark

I added a new post to BlogNark tonight about GoodbyeKen’s fictitious Centreville bomber (where I lived as a kid, coincidentally). I’ve also added several new candidates and endorsements, most puzzling of which is Not Larry Sabato endorsing Hillary Clinton for president. (Btw, an NLS commenter was asking Ben for a list of Virginia endorsements — I gots all yer dataz at BlogNark, dude.) You can now subscribe to an RSS feed of new endorsements as I find them, and I’ve started a del.icio.us feed of “Nark-worthy” posts I encounter in the Virginia blogosphere (that is, posts that scream out for a closer examination of spin and misinformation). I probably won’t get to all of them, because, ah, there’s a lot.

I Could Have Been Famous!

Curses! When I was studying HB 3202 back in June (by, you know, reading it) I noticed where the Governor had struck the part that had out-of-state drivers paying the same fees, but I didn’t think anything of it because I was more interested in debunking how the bill would affect illegal immigrants. If I’d known it was going to be a “MAJOR KAINE SCANDAL!!!” (with three whole exclamation points!!!) I would have mentioned it back then. 🙂

Now Where Will They Go?

I’m sure everyone knows by now that BlogNetNews has a new look. If you look up in the corner you’ll find something rather ironic. Maybe it was there before but I just noticed it today.

Recall that a certain segment of Virginia conservative bloggers proudly proclaim to have “shut down” Waldo’s political aggregator because of its supposedly hidden liberal bias (apparently objecting to terrorist propaganda is a liberal position — who knew?). Said bloggers all removed themselves from Waldo’s aggregator in protest and flocked to BlogNetNews, the “neutral” aggregator. Well, now when you look up in the corner of BlogNetNews what do you see? “State Editor: Vivian J. Paige.” That means Liberal Democrat Vivian J. Paige is the editor of the conservative Republican bloggers’ favorite neutral aggregator. Too funny.

P.S. Don’t misunderstand me: I think Vivian is an excellent choice for an editor of any site. I just find the irony in this case hilarious.