punkwalrus (punkwalrus) wrote,

Lost data, coding zen, and bad tech-fu

This whole "lost my data" thing has put me in a bad funk. I keep going between whether I think anything is salvageable or not. I still touchy about it, and when people joke, "You have backups, right... ha ha ha?" Ha ha. I want to punch them so hard in the face, I feel their skull crack and break like a Cadbury Egg. I need help fixing it, and I get a lot of people who just give up too easily. It seems when RAID5 fails, people don't try and fix it, they go, "Oh well, backup from tape!"

Losers. What the hell is RAID5 for if you have to reformat if 1 of 3 drives fail?

I was paranoid, but not paranoid enough. As I go back in time, I come across old zip files, and most of them are corrupted, or didn't contain what I thought they should have. I had some on my web server, and I managed to get my second Punk Walrus book this way, and some of my perl scripts from 2004, but not much else.

It's consuming my mind, and while that would normally be good for problem solving, it's because I have connected it with panic that I have to avoid thinking about it. I am so miserable. And I am upset I am THIS miserable. I have lost a LOT of sleep over it, and while I tried to keep writing for NaNoWriMo, I am still at about 15k words, which is a little behind. I hate to admit, I resorted to spiritual guidance, and even though the overwhelming answer is, "This will turn out good," I am still a wretched mortal who is stuck in a material malaise. I feel ungrateful and spoiled, filled with pointless self-loathing and twisted disgust.

I wonder how much of it is influenced by seasonal depression?

Work has been going well.

I have often thought that code writing is a lot like fiction, in the sense that you can almost tell a programmer/author by his or her style of writing. Good code is easy to read, well-commented (for non-programmers, commenting is like note in the margin of a book, explaining what's going on), and follows an industry standard. The worst, and yet most common, sin out there is "lack of documentation" in code. And then you get some programmers who write like they think: unorganized and selfish. Some live in their own world, and I came across this type of code a few weeks ago. A good variable in code would be something like, "$customer_email_address." A bad variable would be, "$custeaddy," or even worse "$c." This programmer also did something I really don't care for, and that's use "cute" names, like "$victim" for customer, or "$goin_postal" for mail server. Ha ha. You so funny.

I once had to go through code where all the variables were named after muppets.

This code was part of this system that reported on the status of customer backups that was a giant half-working kludge, thrown together by a self-taught C# programmer who was eventually let go or quit back in 2004. The code reads like it was thrown together in a hurry, but at least it was partially commented, although some words were incorrect. An "API" is not running an external program, and then parsing through the text for results, for instance. So calling a variable "$vpn_API_stack," when it isn't a VPN, nor an API, nor a stack... is irritating. This biggest crime in this case was that this code used a combination of 3-4 methods to get data, and two of them were obsolete or outright wrong. Basing a customer ID on an IP address sounds like a good idea... until they change their IP address. Suddenly, they don't get backup reports, but a few years later, a new guy starts getting them.

With half the fields blank or mislabeled.

I finally shut the whole thing down, and since nobody else uses C# around here, I decided to redo it in perl. I have been programming like a mad man since last week, and pretty much pulling some of my best code work every together since my wardialing days at AOL. Hell, this code is even better, because I started using "Perl Best Practices" standards since I started working at my new job. But the code I wrote for AOL's wardialing team was a colossus of code, a testament to what one could do, given a private office, and a lot of late-night programming. When I started, it was 30-40 dialers, all which had to have a small DOS batch file double clicked on each desktop, then all the files merged by hand, then cut and pasted into a spreadsheet, and then you had to spend hours fixing bad data. I not only automated this with timers and VB code, but the whole backend was perl, which exported web pages, spreadsheets, or pumped it into a database. I had systems that remotely rebooted hundreds of machines, coaxing them back to life, or diagnosing them when they were ill. I had systems that would IM or page you if something bad happened. It was a grand circus of programming, all done by me. I was proud of what I had done. I was a circus master of programming for my team.

Then some group stole my code, changed the face of it, added a few features, and got us all laid off. Oh well. That's progress for you.

But I got that thrill again for the last week. Not only NaNoWriMo, but a sort of NaCoWriMo for me. Again, from the wreckage of a bad system, I made a truly automated masterpiece of colorful and useful code. It's not just a replacement or a fix, it's a whole new system, and it's even better than anything done previously. If it wasn't for the fact I have all my home data in a possible ruin, I would feel on cloud nine right now.

And as a final note, the third trifecta of technology gone wrong for my family is that my Metro Smart Trip card seems to be broken. I have no idea why. I have tried "recharging" it several times, at three different Metro Farecard stations, with two different credit cards, and all have been "Authorization rejected," which I now know is not my credit card, because Citibank said they never even got the charge request at all. So since I have seen people get recharged, know it's not the machines, and I know it's not my Visa or Mastercard... so the Smart Trip card must be busted. Finally, its charge ran out today, and I have a paltry balance of $2.20 left, which I may never get back.

  • Post a new comment


    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 1 comment