Tonight I called God an asshole

That's right. My brother Scott and I were talking about the shit our family's been through, and he said "When I get to heaven there's gonna be some words between God and me." Then he did a pretend dialogue, and said "You know what, God..." and I interjected, and said "You're an asshole". HA. It was funny.

A crooked habit of credit card companies

I have been paying my credit cards religiously. Like 200-300 a month, just to get the balance down. I went from around $2,000 a year ago to finally getting it nearly paid off this year. I have a recurring $100 charge going to the one credit card for my dedicated server on which this website is hosted (among others). However, I missed a payment last month. For which I was charged $40! WTF. That's all I got to say.

However, my student loan, which is still asking for $10,000, doesn't mind this practice. If I pay $200, I don't have to pay next month, since it is about $100 a month (less than that, but no less than $90). In fact, it warns me that I'm paying more than the required minimum amount. Credit cards got to shape up. WTF.

What kind of world do we live in when...

You can get Short Circuit for $4.99?!? That's AWESOME! Of course, knowing my luck in movies, it'll be on all next month on HBO or something.

Also, Amazon might finally not lose lots of money on my Amazon Prime account. I just ordered tons of stuff... glasses for the kitchen since they all seemed to have disappeared recently... movies... silverware since most of them have also disappeared... napkin holder. It said it's all shipping in one package. ?? Yeah, we'll see. One shipment from one warehouse, definitely, but one package would be hard to believe.

I watched the debate in Philadelphia tonight between Barack Obama and Hillary Clinton. I thought I liked Obama better even though almost everyone who they interviewed after the debate said Clinton did better. They had a focus group of college students, and talked to them after the debate, and they said Hillary did better. I would have to disagree that she did better. But I can't say any of them did bad. I just felt like Barack was more comfortable up there, actually making eye contact with the person he was talking with. Debates are funny though. The first person who talks loses. If it's a debate between two people of the same party, you'll hear "Well, I agree with most of the points blah makes, but here's where we can approve on that." Basically, whoever gets in the last word. They'll never 100% agree. You'll never hear Obama say "Wow, I think Hillary has a great way to fix the blah problem in this country and I have nothing to add." You'll never hear short answers. You'll never hear an answer directly related to the question asked. I just laugh. I'm voting for Nader anyway...

Trying some new stuff

Ramones (1st LP) [Remaster] - CD
The Ramones

Never Mind The Bollocks, Here's The Sex Pistols - CD
The Sex Pistols

American Beauty [Digipak] - CD
Grateful Dead

Dire Straits (1st LP) [Remaster] - CD
Dire Straits

Giant Steps - CD
John Coltrane

Beautiful Ballads & Love Songs - CD
Miles Davis

16 Biggest Hits - CD
Roy Orbison had a $7 cd sale. I looked through everything, but there was some other good stuff that I decided not to get.

Is it hypocritical of me?

I am a software developer, but I will not buy most of the software that I use. Don't worry, I don't steal it. But I find that there's tons of software out there that's "free" but also good. I'm not talking about "Lite" versions of software, or "Shareware" trial versions that you can hack to never have to register / buy... I'm talking about FREE SOFTWARE that the authors wrote out of the kindness of their heart (and a huge curiosity and desperate search for knowledge) that they put on websites somewhere, put the code out there, and said "Here. Enjoy."

I know I couldn't have a job right now if all software was free. But custom development is another story. If someone needs an online scheduling system, then I (we) will write them one. I'm sure they could find one online and tweak it, but that's usually a shot in the dark. There's also somewhat of a difference between working out of curiosity and working to put food on the table. I've done an online scheduling system, it wouldn't be fun or illuminating since I've already done it.

The thing with software is that if you're making it for fun or out of curiosity, the cost of reproducing it today is so cheap. The same thing everyone's figuring out about music and movies. You produce it once, and everyone in the world can have a copy if you can get it to them. It's kind of crappy that we all still have to pay $0.99 per song at most places we can get digital music. Some software, however, can cost millions of dollars to produce, and these should charge hefty sums. But if you're just doing it out of curiosity and to learn something new, putting it on the web, even just code in html or something, gives that knowledge to everyone who happens to come across it. Then they can be inspired to try something new with it, and if they learn something out of it, they would share it with you since you sparked their interest and gave them that initial knowledge to light that fire under their bums.

Software today is generally in good shape this way. There are sites dedicated to sharing code ( to name one). There are sites set up to provide legal assistance to those looking to open source their code in a way that if someone uses it, they can't sue them if it goes bad. These licenses generally also state that if the next person makes changes, (s)he's free to either send the changes back to the original author to improve that software, or put his or her changes up on their own website and pass it on to people under the same license (free and open source). You don't see this type of stuff in business, only in SCIENCE. Science is the pursuit of knowledge. That's what it's all about baby.

New Patio and Kodie

My brothers and I have been working on the new patio for my house. Yesterday we laid the brick. I have video of the process. Contrary to the video, I wasn't standing around the whole time :P I actually moved about 350 bricks from the sidewalk to the patio, at about 25 bricks per barrel load, probably 50 pounds a pop. Here's the Kodie head tilt video:

My living room's a mess, and I'm not cleaning it until later today since we're not done for the weekend yet.

And here's the patio video so far. Next we'll be working on the lawn, putting in trees and a rock garden, and getting rid of all the grass and replacing it with mulch or rock or something.

I have to say, thank you to my brothers, Pat, Bean, and Scott, for their help / doing it all :)

I also have to say, I am glad that Google is around to upload my videos to for free and embed them in my website. And to Apple for iMovie '08, and Sony for the 30 GB HDD on my camera, and USB hookup, so I can record crap without worrying about tape and digitizing. Thanks.

Today I got Vista

I was at the "Heroes Happen Here" launch event for Visual Studio 2008 and a bunch of other software that still lags behind open source offerings. I knew we were getting free software (Visual Studio 2008, SQL Server 2008, Windows 2008) but I didn't know we were getting Vista. It was a pleasant surprise because now when games start coming out that only work on Vista, I'm ready and don't have to spend $400. And that's all I have to say about that. Thanks Microsoft!

It was generally a good time. Four of us from work. We got there and registered with 40 minutes left to go until the first event, so we headed out to the Reading Terminal Market for lunch. It's across the street from where the event was hosted, at 12th and Market (Marriot). Mark lost his sunglasses so went back to get them while we went to the market. We ended up going to Famous Frank's near the Beer Garden, and then ate at the Beer Garden. You have to buy beer in order to eat there, which we did. Mark doesn't drink, so I said if he gets accosted about having to buy beer, I suggested he just buy one, put it in front of him, and I'll drink it. He didn't, but a couple got thrown out before he got there because they weren't boozin.

We left and went to the first show, which we were late for. It was my friend and former coworker, Danilo Diaz, giving the first developer track talk. After that, we got our free software, checked in with the second talk, and left after 10 minutes because it was general crap.

During the first talk, it was stuff that all of us have done already. The only interesting feature about 2008 and .NET 3.5 is Lambda expressions (which I'm not even really impressed with), and they weren't even covered. Way to go Dan :P We were talking through a lot of it. When he showed the Javascript debugger in Visual Studio 2008, everyone cheered, and I said, kinda loud, "Firebug!!". Some dudes behind me laughed. I was texting a coworker stuck back at the office, checking if I could get internet on my iPod, and just generally being a jackass. I was there for the free shit. We learned nothing new. Everything that was covered, one of the four of us have already done, and it's just like "Oh, yeah, look at this code in source safe, and here's some other hints about it." I don't know one person who (besides my Java friends :P) hasn't done ASP.NET AJAX and used UpdatePanels. It certainly didn't need all that time to go over it.

Oh well, Danilo works at Microsoft now, and I've never been impressed with their code examples or presentations, so I guess that just comes with the territory. Do they say "Keep it short and don't cover interesting stuff" ? I don't know, there might have been people there that haven't seen that stuff. Who knows. Maybe I'm just at a very technologically advanced company. That could very well be it, but I can't understand, then, why I've been doing PHP for the past two months :)

Other than that it was a good time. It helps when you're like best friends with the people you work with.

Thanks for Vista, suckers.

The Internet: So good, yet so so bad

Oh internets, how I hate thee.

Some days I would just be better off without it. With all the blatant lies and corruption going on, I would love to just stay away. I should. Case in point, OOXML standardization in ISO. Just google "OOXML ISO". Also, I can't stand whiny HD-DVD fans complaining about Blu-ray winning the HD format war. More on that later. Some sites I hate include ZDNet... that's about it.

However, there's some oh so goodness to it. Like xkcd. I'm not gonna link or mention my favorite sites, but some are Amazon, Slashdot, Wikipedia, and iTunes science podcast directory.

Ok, onto my ZDNet-hate-HD-DVD-Blu-ray-hate rant. So, this dude on ZDNet works at Microsoft and posts to that site. Is complaining about Blu-ray today, or whenever, that "the more expensive format won". But then he goes on to call blu-ray "more future proof". I've caught this dude on so many contradictions like this, it just makes me angry. Of course, he never responds to my posts, and he keeps making asinine statements and I keep responding and he keeps ignoring, it's just a frustrating mess. Of course, "more future proof" means less expensive in the long run. It just points to the quality of worker they have there working at Microsoft.

Of course, the non-Microsoft world has its shining stars too. Like the writers of PHP. It's ridiculous. For instance, today I wanted to find the first paragraph in an HTML string, and I'm fairly familiar with regular expressions, so I checked the syntax on how to match a string to a regex and get the matches (groups in any other regular expression library terminology) out of it. This is easy: /<p>(.*?)</p>/g. But not in PHP.

$matches = array();
preg_match_all("/<p>(.*?)</p>/", $htmlString, $matches);

OK, looks easy. $matches will then have an array of matches. But that's where it gets tricky. The fourth parameter is optional, and it's called "flags". Read the "flags" part here.

PREG_PATTERN_ORDER - Orders results so that $matches[0] is an array of full pattern matches, $matches[1] is an array of strings matched by the first parenthesized subpattern, and so on.

PREG_SET_ORDER - Orders results so that $matches[0] is an array of first set of matches, $matches[1] is an array of second set of matches, and so on.

PREG_OFFSET_CAPTURE - If this flag is passed, for every occurring match the appendant string offset will also be returned. Note that this changes the value of matches in an array where every element is an array consisting of the matched string at offset 0 and its string offset into subject at offset 1.

Yes, the "matches" array will be different for every flag. In Java, this looks (half-hearted with no syntax check) like this:

Pattern p = Pattern.compile("/<p>(.*?)</p>/");
Matches matches = p.match(htmlString);
for (Match m : matches){; // always contains the first set of parentheses in the regular expression.

I'm tired so I have to finish writing another time. Tune in for part two soon!