A couple quick notes from this past weekend.
First, Rock Band 2. ZOMG. I absolutely understand that the PS2 version of Rock Band vastly outsells the Xbox version, but going from our PS2 setup at home (which, admittedly, is pretty good), to a full Rock Band 2 setup on an XBox 360 with about 100 downloaded tracks added to the mix? No comparison, whatsoever. Thanks Doug, I think. 🙂
This may break my self-imposed ban on buying an Xbox. I understand the money situation, but I still don’t like having to buy a Microsoft product just to use one of the best console titles I’ve ever seen. Grump.
Second, thank you blk for a great weekend of hiking, socializing, and hanging out. And for anyone else who ever has the opportunity to visit Pittsburgh, don’t miss the pancakes.
On geeky personal news, I made a bunch of progress on CONGO, as well as thinking about project planning and deliverables. I managed to get Browse working properly while on the plane (why do I do my best coding while jammed into a plane seat? It’s weird), just before my battery died 🙁 I’m on track for my self-imposed schedule of having an FC release by December 1st. I just have to give up sleep. *nod*
Continuing the mental rambling, I was disappointed to note that an idea I had while watching the hustle and bustle of a large airport has already been patented. At least it’s a fairly recent patent, so it’s not like I came up with something and discovered it was considered and discarded a few decades ago.
Last but not least, I continue to love my iPhone. This was my first real trip with it, and having full time access to my email, as well as some intarweb and a few games was awesome. I’m disappointed in the battery life (it requires a complete, full topping up charge -every- night, no cheating), and a couple hours of serious use can deplete it, but it’s a solvable problem. I just have to train myself to charge it regularly.
I have, however, managed to lose my headphones. (The iPhone has a modified set if iPod headphones, adding a microphone dongle). Since I haven’t been a big fan of the iPod style ear buds, I’ll be hunting around for a set of mic-enabled travel headphones now. Any recommendations would be appreciated. They have to fold up nicely. I think I’d like to try a set of on-the-ear headphones again (I’ve been using a variety of in-ear phones for a while), but I’m not interested in the “hang the headphone on the earlobe” style. I don’t mind the bracket-style, as long as it folds up.
Enough rambling for this morning, off to code…
Author: Dave Shevett
Alternating Row colors in tables in Struts
Have to share this one. I’ve been wracking my brain trying to figure out how to get table rows in a struts and JSTL supported page. I haven’t found an easy example anywhere, but I finally sussed it out. So if you do JSTL and struts based stuff, and want to do those nice ‘greenbar’ like lines on a table, here’s an example of how to do it:
<c:forEach var="rows" items="${registrantList}"> <c:set var="cellColor"> <c:choose> <c:when test="${cellColor == '#f0f0f0'}">#ffffcc</c:when> <c:otherwise>#f0f0f0</c:otherwise> </c:choose> </c:set> <s:url id="url" action="coconut/gotoUser" > <s:param name="rid">${rows.rid}</s:param> </s:url> <tr bgcolor="${cellColor}"> <td> <s:a href="%{url}">${rows.rid}</s:a> </td> <td>${rows.lastName}</td> <td>${rows.firstName}</td> <td>${rows.company}</td> <td>${rows.badgeName}</td> </tr> </c:forEach>
See? Simple!
Identify that Restaurant!
This weekend I’m out in Pittsburgh, and it’s a requirement, when I’m here, to go to a somewhat infamous restaurant in Pittsburgh.
Can you identify it from this picture of these unbelievably yummy pancakes?
Dreaming…
Apparently Zach can walk through walls. Yep, it’s easy for him, he even almost got me to do it, he said it was easy. I kept having him do it over and over again, then went over to the common house, and showed Diana, and she didn’t believe it either, until I finally convinced him to stick his hand through a door. “See?!?!” I said. She was flabbergasted.
Now all I had to do was figure out how to film it so it didn’t look fake, and to convince Zach to keep doing it for people (he was getting bored). Once I had it filmed and the like, that million dollars would be ours, and it would solve a lot of our short term problems.
Then I woke up…
A bit of dark humor on the situation
Because you have to have something to lighten the mood.
(Thanks to ThreePanelSoul)
House Defeats Bailout Bill – And now it begins
As I’m sure folks know by now, the US House of Representatives has defeated the bailout bill.
What follows is my own personal opinion. Disclaimers are put forth – I am not an economist, a financial investor, or particularly savvy in us world markets. I have, however, spent a lot of time reading, listening to level-headed reporting and commentary.
I think we’re in deep doodoo.
My opinion is that the US lawmakers just took the side of localized petty politics, instead of doing what is right for the nation. And we’re not talking about this whole “main street vs wall street” BS that’s been bandied about. To me that’s a distraction away from the real issues.
Most people don’t understand how the larger financial markets work. They think ‘credit’ is a bank loan to buy a car. It isn’t. The global credit market is about the hundreds of billions of dollars that are exchanged every night in short term credit between banks and businesses. This is about a production plant in Wisconsin that normally needs $1,000,000 a day to operate. The night before, the bookmakers say “We’re short $100k. We need a loan”. They call up their broker, say “Gimme $1,000,000, I’ll pay you back on Thursday”. They get the loan, the plant functions another day, they bring in $1.1million on Thursday, and pay off the loan. Done.
That is how industrial and business credit works. It is the lifeblood of our economy.
If that loan can’t happen, that plant either operates at a loss, or they shut down for the day. That daily shutdown means instead of making $900,000 that day, they make zero.
Which is worse?
This credit cycle is what this bill is… er… was… designed to protect. It was to keep the markets alive and ease the credit tensions so the banks wouldn’t continue jacking up the interest rates on those short-term loans, thereby making it very difficult for a business to make money on a day to day basis. There’s already stress on this market, already ‘credit freezes’ going on. Businesses unable to get the short term loans necessary to function. Now it’ll just get worse.
Unfortunately, the politicians and the general US population doesn’t understand this. They just see fat cat Wall street folks getting zillion dollar paychecks, and other people getting foreclosed on houses. They vote down what might have been the only thing that could have kept the banks in business, and the credit flowing.
IMHO, we are now in serious danger of a depression. And frankly, I’m scared.
Thank you Washington. You may have killed us all.
Nobody Cares about your Build
My pal Owen (who, incidentally, is doing some wonderful work on CONGO) has just written an excellent high level of of build system philosophy entitled Nobody Cares about your Build. If you’re a developer or release engineer, or are just plain curious about build systems, check it out – here’s a sample:
A reliable, comfortable build system has measurable benefits for software development. Being able to build a testable, deployable system at any point during development lets the team test more frequently. Frequent testing isolates bugs and integration problems earlier, reducing their impact. Simple, working builds allow new team members to ramp up more quickly on a project: once they understand how one piece of the system is constructed, they can apply that knowledge to the entire system and move on to doing useful work. If releases, the points where code is made available outside the development team, are done using the same build system that developers use in daily life, there will be fewer surprises during releases as the âreleaseâ? build process will be well-understood from development.
Not what I wanted to see tonight
I knew something looked fishy when I looked at this drive and only saw half the volume size I thought was there….
/dev/sdd 240365240 206665208 21490104 91% /media/usb3 dbs@yawl:~$ sudo umount /media/usb3 dbs@yawl:~$ sudo fsck /dev/sdd fsck 1.40.8 (13-Mar-2008) e2fsck 1.40.8 (13-Mar-2008) The filesystem size (according to the superblock) is 61049646 blocks The physical size of the device is 33554431 blocks Either the superblock or the partition table is likely to be corrupt! Abort?
This is the 500gig external USB drive I’ve been carting around. In reality, there’s nothing particularly critical on it, some, er, backed up music files which I’m loathe to part with, but at least it’s not irreplaceable data.
Pandora-related Amusement.
I’m really getting into Pandora lately. One of the channels I’ve set up is stuff I consider ‘Progressive’. I initially seeded it with Spocks Beard and Yes, and Pandora happily ran with it, adding in Alan Parsons, Styx, Steely Dan, Pink Floyd, and Genesis.
It’s also added in groups I hadn’t ever heard of, such as Dream Theater, Marillion, and Flower Kings. Today I was bopping along listening, and a track came on that I really liked – turns out it was “Suite Charlotte Pike” by the band “Transatlantic”.
Huh, sez I. I like these guys. They remind me of Spocks beard and Dream Theater. Off I go to Wikipedia, and, right there at the top of the page about Transatlantic, I see:
Transatlantic was a progressive rock supergroup formed in 1999 by vocalist/keyboardist Neal Morse of Spock’s Beard and drummer Mike Portnoy of Dream Theater.
Guess I was on the right track.
iPhone mobility
I type this sitting in the bay of my local super-quicky-lube place while happy drones in red swaarm around my vehicle. I’m torn between the image of a formula car driver making a pit stop (the minivan sort of clashes here) and some sort of starcraftian crossover – where one of the drones would suddenly stop in their tracks and go ‘Work complete!’
Regardless, I’m able to do all this insightful commentary due to the ‘internet? We got yer internet right here, buddy’ utility of my iPhone.
I love technology.
Pandora – Try It. Really.
If you haven’t tried Pandora, you should. So far, it’s the only thing that has attracted me away from listening to Radio Paradise.
Here’s how it works.
You create a ‘radio station’ (basically a ‘channel’). In that, you hand it a few songs, or bands that you like – best if you choose a specific genre. For instance, I created a ‘progressive rock’ channel, and seeded it with Spocks Beard. Pandora will start playing songs it thinks are similar. From what it plays, you can say “Yep, that’s great!” or “No, I don’t like that at all.” If you find the station is drifting, or is not including other similar styles, you can seed in new band names or tracks.
So far I’ve set up a couple channels:
- Progressive
Spocks Beard, ELO, Alan Parsons Project, Yes - Modern Folk?
The Duhks, Nickle Creek - 80’s Mix
Tears for Fears - Live Blues / Jazz
Les McCann, BB King
If you’d like to listen to any of these tracks, they should be available on my profile page, just click on the feeds (they’re named after the first band or song you add to them).
These channels have netted new bands I’d never heard of, and songs that were new, but, 8 times out of 10, they were songs and artists I liked. So I tell Pandora “Yes, please, more like that!” When I find a band I’d like to really find out more about, I ‘bookmark’ them. I have a list of new bands I hadn’t heard of before, but now I’ll look for more of their music:
- The Flower Kings
- Tim O’Brien
- The Green Cards
- The David Grisman Quartet
- Pete Murray
It would be unlikely that I’d run across these folks listening to broadcast radio, though RP might play them. Both sources (RP and Pandora) are opening me up to wonderful new music. I love technology.
Data Recovery: DENIED
So what happens when you’re retiring a computer that has had your personal financial information on it for the last 7 years, and you really don’t want that information falling into someone elses hands?
Why, you uninstall the drive, get a hammer, hand both to your 9yr old son, and say “HAVE AT YE!”
I’d like to see Drivesavers recover THAT information. (Note – I’ve had to use that company before, usually after an executive does Something Dumb with their laptop, such as check it. At an airport. In a soft carrying case. When an advanced, powerful machine consisted of 20lbs of NEC v80 powah.)
Grrr. Rarr. Beware. I have tools.
The time is fast approaching where the dreaded “MOVING” word will begin showing up in my “what are you up to?” column. To prepare for that, I really needed to turn the trailer we got from Harbor Freight a few years ago and turn it into a box trailer. Last weekend I built sides for it, and a folding rear gate, and started loading all the garbage we had lying around into it for a run to the dump.
Now, because we’re in the burbs, getting rid of garbage that’s not normal kitchen waste and not recycling can be a pain in the butt. Fortunately, my brother in law pointed out a commercial garbage facility in Westborough called EL Harvey (warning, it has music on the home page) that, wonder of wonders, takes garbage. Any garbage.
So with Zach’s help I finished loading up the trailer, bungied down the tarp (EL Harvey requires all loads to be tarp covered), and headed over. The trailer held a mix of debris including old boxes that had gotten wet, old yard equipment, broken computers, etcetc. Judging by how the van was behaving, I guessed it was about a ton all told.
Once we got to the station, we lined up with all the big heavy duty trucks, weighed the van and the trailer together, and got directed to one of the buildings. We backed up the trailer, handed over our receipt, and started unloading. It was simply a matter of tossing everything over a low wall into the building, where a pair of big front loaders were shifting the junk around into various piles about 10′ below us. Unloading only took 10 minutes, after which we re-weighed the van and trailer, and paid for the dropoff. Because we were below a ton (about 1600lbs total), we still paid the ‘minimum’ amount ($55 for a ton), and headed off.
Zach and I stopped off on the way up to Burlington to visit Cat’s mom, and checked over the trailer to see how it held up to the garbage run. My sides and gate worked as advertised, and the trailer was happily rattling around empty for the drive up.
I still need to have a ratchet strap around the back to keep the sides together, unfortunately. The 1/4″ plywood siding isn’t rigid enough to keep straight up and still keep the rear gate closed. I may add some bracing on the sides, but really, for the first time out, everything worked just as I wanted.
We’ll be doing another garbage haul next weekend, and I’m sure the trailer will get tons of use once we start hauling things over to Mosaic in… amazingly enough… about 7 weeks.
Mmm, Qualified job leads.
I am… aquiver with excitement over this position. It’s just what I’ve always wanted to do, particularly at this point in my career!
Date: Fri, 5 Sep 2008 10:17:50 -0400 (EDT) From: Peter@REDACTED.com Subject: $15.00/hr - 1 Day (Sept 10th Wed) Worcester PC TECH Hi Dave, My name is Peter REDACTED and I'm a recruiter at REDACTED Computer Corporation. Our records show that you have expertisereflecting work that I have available at my direct client. The details are: WED SEPT 10TH IN WORCESTER PC IMAGE DEPLOYMENT (SYMANTEC GHOST) $15.00/PER HOUR W2 MUST BE ABLE TO PASS A BACKGROUND CHECK. If you are still available, interested, and/or planning to make a change, or know of a friend who might have the required qualifications and interest, please PLEASE EMAIL ME YOUR MS WORD RESUME TO peter@REDACTED.com even if we have spoken recently about a different position. When you respond, please include a daytime phone number so that I can reach you. In considering candidates, time is of the essence, so please respond ASAP. Thank you. Sincerely yours, Peter REDACTED REDACTED Computer Corp, Inc. Note: Please allow me to reiterate that I chose to contact you either because your resume had been posted to one of the internet job sites to which we subscribe, or you had previously submitted your resume to RMS. I assumed that you are either looking for a new employment opportunity, or you are interested in investigating the current job market. If you are not currently seeking employment, or if you would prefer I contact you at some later date, please indicate your date of availability so that I may honor your request. In any event, I respectfully recommend you continue to avail yourself to the employment options and job market information we provide with our e-mail notices. Thanks again. Peter REDACTED New York, NY 10036
Perl GRRRR.
Warning. I’m ranting. I’m annoyed. I’m frustrated. You might want to put on your rant-proof galoshes before proceeding.
Ready?
Perl should be considered a Write-Only Language.
Code that is written in it is generally incomprehensible by anyone but the person who wrote it. It’s great for one-offs, quick simple jobs, and low-scope tools. But anyone who says it’s appropriate for an enterprise level application (and I mean anything over about a thousand lines) should be strung up, draw, quartered, glued back together, and shot into space.
The main problem is Perl is so weakly typed, it should be considered not to have any. That means that parameters passed to methods are not type-checked, and therefore there’s no way to tell if you’re calling a method correctly, except to see if the app blows up when you run it. Editors and IDE’s cannot magically determine that “such and such a method requires an integer, a string, and a hashmap containing such and such values. You’re doing it wrong.”
Because of this weak typing and lack of structure, Perl libraries become worthless. Let’s leave aside the fact that Perl OOP implementations are complete and total trash (OOP is designed to organize your data into object form, and stabilize how components are used, defining a rigid structure so that when you use the component, you must use it correctly). In the case of libraries, it’s impossible to use a library unless you understand how it works. Libraries are not self documenting, they don’t even have a standard method of organization. They’re just loose collections of Perl code, again, with very little defined structure.
Therefore, people who come along to maintain code after the first person has suffered the above fate has no clue how a method is supposed to work, unless the original coder documented it, or built in type checking in their code. I have seen NO Perl code that actively makes sure the parameters being passed in are of the correct type. At best, they make sure the parameter are not null. And if they’re super-advanced, they even use prototypes.
And yes. I am in the unenviable position of maintaining thousands upon thousands of lines of undocumented, badly maintained, incomprehensible Perl code. Yes, the developers could have documented, formatted, and put the code into a form that’s easier to maintain. But they didn’t, and to me that’s the languages fault, not the developers. A language should have some element of maintainability, and not require the programmer to make up for it’s inherent ambiguity. If it does, it’s doubling the burden on the programmer. They not only have to write the code, they have to document it, and make it maintainable.
In my opinion… Perl by its very nature encourages sloppy organization and unmaintainable code.
And now, back to the trenches.