I have 'arm syndrome'

It's sorta like "carpal tunnel syndrome" only it doesn't happen in the carpal area. It's in my freaking forearm. But it's from the same sort of hazard... (no not that you pervert)... creating awesome software. At least in my case. I never got carpal tunnel from programming stuff that sucks. Like, I never got it programming a "Hello, World" program. And I never got it from writing a paper in college, the only time, besides this website, that I ever used the English language in my life. Nope, I don't talk in English either. It's English-ish. Not like I have a second language, but I really don't even have a first.

Deprived of the Simple Pleasures

Entering the software development work force, you have some expectations. Money, a cubicle all to yourself, your own computer in your cube, some stationery, a phone, a shelf or some desk drawers... all of which I pretty much got with all my jobs so far... well, the one I had to sit at a fold out table outside a cube farm, but that was it (Don't believe me? I have proof). At every job I had, except that same one where I sat at a table, people had nameplates on the outside of their cubes. I was never offered one. But today, I bring you good news.

Hidden deep inside my work's package of a bazillion papers that I have to fill out in order to work here is a "Nameplate Requisition Form". w00t!

Nameplate Requisition Form
Your name how you would like it to appear:
_____Wootzor von Leetenhax0r_____
Do you work in a cubicle or an office?
____Hell____


I've been deprived for all these years of something that everyone gets, of course I'm gonna be all immature about it... Michael Jackson went through the same thing.

Staying up late tonight!

The Prey demo comes out tonight at midnight.

Damn I'm bored.

If only I didn't live near Philly which I wouldn't trade for anything. It comes out at 9pm in California...

This just in!! As I was typing up this blurb, the HR from my company came by and said they are hiring me full time. So now I have a job...

Back to Prey. Actually, that 9pm in California is lucky for me, because when Half-Life 2 came out, it came out at midnight Pacific Time... which of course means 3 AM here. I took off for that game though. Not like I'm really interested right now in Prey, but it should have some cool things:

a) Great graphics. It's built on the Doom 3 engine I think
b) ... umm... Did I mention the graphics should rock?!
c) It's built on the Doom 3 engine... supposedly.

I really can't say much, I'm not a fan of science fiction shooters anymore. I hate when they give you weapons, basically, that don't exist. That's just my opinion. Doom 3 was fun though. I absolutely LOVED F.E.A.R. due to the weapons and everything else in that game. Everything rocked. Best game ever.

Anyway, I look forward to running some high def graphics on my computer tonight. Before that I'll be playing some more Dawn of War. I'll comment on the work situation tomorrow... three posts in one day was my limit set forth by the FCC.

Game synonyms

Funny what comes up under "game" as synonyms on thesaurus.com.

Definition: entertainment
Synonyms: adventure, amusement, athletics, bingo, business, distraction, diversion, enterprise, festivity, follow-the-leader, frolic, fun, jest, joke, lark, line, merriment, merrymaking, nothing game, occupation, pastime, piddly, plan, play, proceeding, pursuit, recreation, romp, scheme, sport, sports, undertaking

So, that's all work is? A game? Jesus, if only I'd've found this out sooner...

12 Hour response guarantee yet to be broken

Close call on this one though



Gmail says 11 hours ago though, but obviously, it was within milliseconds of turning to 12.

Picture Filter Added

Also, you've probably noticed the news categories on the left of the main page are gone

(<---- psst... over there)

This is due to the filter destroying this page and taking up all the landscape, and no need to list categories anymore since you can just filter by them, and Todd wanted to know when I replied to his comment in "The end of the world".

So, now my website seems VERY busy. I want to add more crap...

I started to reply to Todd, then had to go to work, saved the text in a file on my MacMini, went to work, came home a few hours later, then the Phillies were playing the Yankees and our fearless genius leader, Charlie Manuel, had set the lineup so Abreu and Howard were sitting and Chase Utley was playing first... it was something I had to see... they won!! Amazing. I was being sarcastic about Charlie being a genius. Oh, and I watched game seven of the Stanley Cup Finals, and was cheering for Edmonton so that probably doomed them, since Carolina won the Stanley Cup, those b@#tards. So, I had to work on that stuff after those games. Now it's like 2am and I have to go to bed. So, probably tomorrow Todd :)

Out of curiosity, due to the fact that when my web game comes out, it will require probably tons of disk space, I checked the amount of space left on my hard drive on this server. It's an 80 GB drive. There are a few websites on it, and one with lots of images, and this one has lots of images, and there is a lot of data in my databases, and of course Linux and software like Java, Tomcat, GNU tools, etc, etc, etc. Lots of stuff. There are three partitions, and one's not a file system (maybe it's a backup?). Here's what the "df" command in Linux returns. I was like "SWEET!"

Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/hda2 75790304 4175216 67765112 6% /
/dev/hda1 101089 9324 86546 10% /boot
none 252864 0 252864 0% /dev/shm

Basically, I'm using 4 Gigabytes for all this junk. Well, you can add it up. The boot partition has a 101 MB partition, which is nothing compared to the 67 GBs I have left on hda2 (Linux doesn't use C: or D: like Windows. HDA is the first hard drive, and 1 or 2 [3,4,5, etc] refer to the partition). In other words, I have plenty of f@#%ing room.

Improved Filter

You can thank Zatko for this one. Since I only test this on my laptop so far, my mouse pad is directly accessible from my keyboard without much effort. So, on my laptop I am much quicker. You can refer to the post entitled "Hell" (use the filter, silly!) to see how much I hate how people go between their keyboard and mouse, when they can just use the keyboard all the time. So, generally, on a laptop, I don't have a problem with using the mouse moreso than on a desktop, since it's so close. And naturally, I totally forgot about keyboard accessibility when designing the filter.

So Zatko says "I would recommend using a form post instead of that link. i kept typing stuff and pushing enter and nothing was happening."

Touche. As this implies, great programmers think alike and hate using the mouse when they've already got two hands on the keyboard.

So, I've scripted up some script-y JavaScript. It now checks if you press enter on the form. Due to incredible programming ( ... in onkeypress, return false in a child control ... ), it will process the subfilter, where you search for News Categories on this site, and not process the filter, when pressing enter on a subfilter's text box. But, when you check an item in the result and press enter, it'll process the filter. It's quick and responsive like that.

However, I'm not sure it's 100% valid. I've noticed in the html reference for the FORM element, that s@#% doesn't have an "onkeypress" attribute. So, instead I used the good old fashioned "document.forms['formId'].onkeypress = funcKeypress;" method of doing it, instead of "<form onkeypress='(some javascript code)'>". Function pointers are always an excellent way of doing things. I searched for the second one, and the only sites I could find are *SHOCK* Microsoft web development sites like ASP and ASP.NET forums. I'm just not sure if Mozilla is allowing it in Quirks Mode or if it's an actual event on the form object. Who knows. It works, but that just doesn't seem good enough for me. Oh, and I have no idea if it works in any Microsoft related technology, since I've only tested it on my Linux and Mac computers... The gaming computer is the only Windows one up, and I'm not sure it's fit to be browsing in IE, and I don't install any software on it besides games :)

So, it's a lot simpler to use, thanks to me being down to 3/4ths of the number of computers I'm used to having, and the one being the one I spend most of my time browsing the internet on, and of course, to Zatko.

Yesterday's Phillies Game

We went to the Phillies game yesterday. They got romped by the Devil Rays. Our seats were in Section 104, Row 10. If you watch a replay of the game, a dude on the other team hit a home run to the exact same seat I was sitting in. Only, it was a little higher. It hit my f@#$@#ing finger!! Which I said to everyone about 10 times really loud. But, the dude behind me got it and immediately threw it back. I almost had it. Damnit! It's incredible when a baseball is coming right at you at like 3129 miles per hour and you're WASTED. I watched it and was like "That's outta here..." Then I'm like "Wait a second, I'm in right field... and it's coming right at me!!" So I stood up, put my hand out, and the sheer speed of the ball probably made me pull it down a little, due to the fear of having a broken hand or some other crap like that. Before Aaron Rowand made his courageous, nose destroying catch, he got hit by a pitch on the back of his hand. They showed it on TV and it was nasty. A huge black and blue mark. I didn't want that. I don't think that popped in my head then though. All that popped in my head was "That's moving pretty fast."

Other than that it was a great time! We had beer, and we had these neighbors at our tailgate party who had Jack Daniels and some rum. They gave me some rum, like a fifth of a red plastic cup of it. DMart had his sister there and his sister's friend... of course, they were at our neighbor's the whole time, drinking heavily, since they were almost, but not quite yet, 21. It was a mess, but it didn't detract from my good time. JY, SG and I were tossing the football around, doing spectacular one handed catches. Not to show off, but I didn't want to put my beer down :)

Then we went to McFadden's after the game. I sorta know a bartender there, she was my mortgage agent when I was looking at houses. I got a free beer from her. [General bar events and chats with girls... etc].

Good times. We're all going to Dorney Park soon too, so that should be fun.

New Filter!!

I'm heading out to watch the Phillies today, so real quick I decided to put up a filter on the news. It's like being a proud father, you just want everyone to see your kid hit home runs. I just want to be able to have everyone search for news. You can always find quality stuff when you enter "drinking" (or "beer") into the "Text" search. I know it doesn't make sense to have a filter AND have the categories listed on the left, but I literally have to go get ready for this game and buy some beer to bring along, which of course means I have to hit up WaWa, get money, and buy smokes and something to keep me occupied while the Phillies are getting slaughtered by whoever they play today. They're the only sport right now in Philly, so when they suck, your whole summer sucks.

I'll be putting one up for pictures and downloads soon. Pictures especially needs some help. Plus, there's a major bug on the page that I notice every time I go there, like 3 times a week, and I haven't devoted any time to fixing it yet. Plus, I'll be adding more cool filter types so you can say "List news that has comments". Or like, "List news with comments between 5/1/2006 and 6/17/2006... 0 results returned!!" Oh well.

Filter almost done!!

Man, this thing's cool. Dynamically rendering, populating, and filtering.. filter.

(Forgive the colors... the Linux Gnome screenshot utility kinda cut out some colors, but it looks good on it)

In this screenshot, I search for all "Works" where the title contains "My" (or "my" or "MY" or "mY"...) within the last 9 days, and that costs at least 0 "gold". This is kinda giving away some secrets of my game, but there's more fun parts to it.



In this one, the filter doesn't change, but I am actually searching for "Labels" that I would want to filter by. Labels are like "Tags", where a user can enter any number of comma separated labels, and they get parsed and put into a table if they don't already exist. Basically, that table contains a LabelId and a LabelText field. When I search for Works with a Label, I am actually searching neither the Work table nor the Label table (rhyme!!). I'm searching a link table called "WorkLabel" which has WorkId and LabelId. It's neat, but necessary.



Here, I actually search for Works labeled "jtccom". None came up, because I created that work 10 days ago, so I had to change the Date filter to be within the last 10 days.




And that's all created with a simple JSP tag, as shown here:



Filter name comes from the following config file, which is where all most of the magic happens is defined.



So, there you have it. Automatic filters, based on "Dumb". My life doesn't get much easier.

It's not done yet of course. But I made it so I could easily add more "modes" for controls. For example, the Date filter right now only has one mode, "within". That searches for a date after the value computed from the filter. I could add a "withinof" mode, which will basically have a second input area for a Date, and you could specify "within 3 days of March 23, 2007". So, filters can be extended. Also, I have two other objects that work behind the scenes pretty heftily. There's a FilterProcessor object, which takes a FilterInput object and, using SQLDOM (another home made thingy), crafts a where clause. That where clause is appended to any other where clauses already in the select statement. A "Work" will only be listed if it is Active, however, that's not in the "autoFilters" section of the filter-config.xml file (although it could be). It's specified in my application.

Just take my word on it, it's sweet. :)

Latest Game Status Update

I do this every time. I get so close to finishing something, then I decide that I must add something that I find to be a common thing, so that I never have to do it again, for any project in the future. And of course, it must be flexible, customizable, etc, and above all, it must work.

The latest thing is a filter, or an automated filter system. For instance, I have news on this site. News has a date, the title, the text, and some categories. So basically, I want to create a filter system that will have some control for each of these fields, a user can type "I am hot" in the description field, and it'll find all the news with that in the description. It's a search, basically, but a search only has a text field, therefore it's more of a filter. One thing is they'll be able to say "Find all the news in this category with this in the description"... or "Find the news within 5 days of this day and in this category".

So, I have to finish that now before I'll be able to work further on the game.

The end of the world

By the way, it's the 62nd anniversary of D-Day (June 6th, 1944). But I was listening to WIP today and Anthony Gargano and Steve Martorano, and they were talking about today being the end of the world. It took me a few minutes to understand why. Before I had realized it, I was trying to think of who might have said that today would be the end of the world, like if Nostradamus or someone like that said so. Then they said the "Number of the Beast". June 6th, 2006.

However, I'm not superstitious like that. I figure the world would have ended a long time ago if that were the case. How about on June 6th, in the year 666 AD? Or January 1st 666 for that matter. If that's your logic, there's at least 2 times every 100 years that the world could end. June 6 '66 or June 6 '06, be it 1906 or 1966, 18,17, etc.

Plus with science, there's no way someone in the world, perhaps high up in government where secrets can be kept, would not know about the end of the world coming.

I think the whole "End of the World" bit in the Bible was just a giant metaphor. Everything in the Bible is a metaphor. Everyone reads between the line on everything in the Bible except the part about the end of the world. I think it's more about death. Even the parts where the Anti-Christ and Jesus will meet before the end of the world and have a good old fashioned bar fight. That's simply your life being decided. Were you good?

That said, the world might end eventually. But what's written in the Bible was always meant for everyone, not for those people who live right up to the point when either humans or the world no longer exist. If I wrote a book and it was directed at people who have naturally green hair, my audience would be comparably small to if I had decided to write it directed at people who have hair at all. But those writers of the Bible were just Philosophers, giving their views of what they think will happen. If they had written about a spaceship following an asteroid passing the earth marking the beginning of the end of the world, I'm sure that whole incident would have gotten out of hand. We shouldn't take the Bible literally, but it's a good book :)

I love Regular Expressions

I have a shirt from ThinkGeek that has a regular expression on it. I wear it to work sometimes.

I'm making my web game, and one of the requirements that I came up with is to allow formatting HTML but not all HTML. This is a pretty reasonable request.

It's easy to get rid of all HTML tags using a simple regular expression in Java. It's

<[/]?.*?>

Just do this:

String regex = "<[/]?.*?>";
myHtmlFilledString.replaceAll(regex,"");


This is elaborate. I actually wrote an app so I could upload screenshots. The Java source code is here.

What I needed to do, for now, is replace all HTML except those basic HTML tags that do formatting... essentially to bold, italicize and underline. You can think of it methodically, easily. "Go through, if it's an HTML tag but it's not bold, italic, or underline, erase it." But I'm lazy. Here's the shot of my test application replacing all HTML in an input string. The input string is on top, the result is in the middle, and the regular expression used is on the bottom. The button simply performs that replacement.



Here is the regex I found to replace "not allowed" HTML tags... those that aren't bold, underline and italics (for now).

<[/]?[^/uUbBiI].*?>

I basically went through hell to get that though. It's fun but man it's a mind bender to think in terms of regular expressions. Here's the screenshot of that regex.



That is all.

Web Game Progress

So far I am 0% done my web game. This is as of Friday night at 10:20 (or as my Linux box shows the time, 22:20). So far, I have two documents written on it though. One is a functional specification. The other is a technical specification. Working in the software world, you learn to depend on these two documents. Here is what they are:

Functional Spec: (Sometimes refered to as the f@#%ing spec... by me only apparently. Commonly refered to as the Design Document) This document gives an overview of the various use cases of the software. During the functional spec, you lay out that this is indeed a software solution to an otherwise real world problem. Say you are designing an email program. You will say that the user will be able to send and receive emails, using at least one server. They will be able to view the entire contents of emails, and have a hierarchy of folders to hold archived emails. They will be able to flag emails by importance. The solution should filter spam automatically, determined by a number of factors, some of them user specified.

Now, a technical spec, on the other hand, takes the functional spec and builds out, in detail (as much detail as you can before you start writing actual code in an [in this case] OpenDocument text document), each high level feature of the functional spec, and defines exactly how each feature will interact with other features. This makes it simple to write software. If you hand me a functional spec and a tech spec, and say "Get to work, you lazy bearded b@#%^@", I will reply with "Yes, Sir, may I have another?!?" As you can see, these are highly desireable in the field of software design and development.

Note also, that when "speccing" (actual word in IT) out a set of "Design Documents" (you can also refer to the whole set as "Design Documents", as well as just the functional spec... Software is flexible like that, and everyone knows what you mean by the singular form, and that you mean the group in the plural form)... where the f*@#! was I? Too many parentheses. Oh right. When speccing out design documents for your own, home brewed project, it is a much more enjoyable scenario. Like, I can be going through and say "You know what... f@%! that feature, no one will use it and they'll all probably send hate mail to me if I include it", whereas in work, you have to do it because it was predetermined that we don't care about customers enough to make them happy, therefore the feature must stay. Also what makes home project docs more enjoyable is that it's your s@#%. You get full credit, people worship you, girls send you pictures of themselves in bikinis, guys question their sexuality, etc. It's just cool.

Anyway, I have to get back to work. It's speccing out to be much more complex and detailed than what I first imagined, however, I'm speccin' I won't go past my two week estimate. (O Brother, Where Art Thou shout-out : "I'm speccin' you'll be wantin' them chains knocked off". Great movie).

Episodic Video Games

I ended up taking off yesterday because I haven't felt good all week. Not like last week anyway. After walking the course last week during golf, I felt great the whole week. This week, it's wearing off. I'm back to being tired after lunch. I guess I should try to maybe exercise without having to go golfing. Maybe.

Anyway, a new game happened to come out yesterday also. Half-Life 2 Episode 1. It was pretty good, though nothing like HL2 in terms of quality of gameplay. Although Gamespot says the gameplay is better than HL2. I like them long, and this one lasted less than 4 hours! I stopped playing a few times for a few minutes to go get coffee and stuff. Started after 1pm and finished by 5pm. I would say it definitely had its moments, but the time was just way too short. But, it is the better of the two "Episodic" games I've played this month. "Sin Episodes : Emergence" came out too, and that actually lasted longer because it was a little more difficult, but it only had one moment that I can recall. More on that later. Basically with HL2E1, you start the game by trying to get on a train to leave City 17, and at the end you're on a train leaving City 17. There are a few twists between then though :) And it's definitely not the same train. I have no complaints about it only that it was less than 4 hours... oh, and that you use the stupid powerful gravity gun for most of the beginning. To its credit, you use that gravity gun for more problem solving tha you do for fighting. You feel like a god with that thing. Nobody stands a chance against you.

Sin Episodes : Emergence had that one moment I can remember. Basically, you have no health left, and hardly any ammo, and you have to kill a bunch of guys with miniguns using your 7 bullets. That was fun.

HL2E1 had many more moments. The part before the end was my favorite. You're cranking this valve to open the door, and the one thing you learn early on (like, 3 hours before) is that you have to crank it so the door opens all the way, or else it'll come back down. So you're cranking this thing, and looking down this trainyard. Alyx, your partner in crime, sneaks under before it's opened all the way, and you're like "WTF Wait!" So you keep cranking. Then right where I was looking, this giant thing drops down with 2 guys next to it. It was one of those tall long legged things... stalker? I forget. Anyway, you're like "@#$@!!" and try to duck and still crank the valve. Right away it shoots at you and breaks the valve. "@#^@$@#!!" So now you're stuck fighting this thing. All you have are three rockets in your rocket launcher, and this thing takes around 7 to kill. But, there are always boxes with rockets around a spot where something will show up that takes rockets to kill. This is a hint too. Like, if you pass a box of rockets, you're like "Guess I'll be killing something that requires rockets in this spot in a few minutes." Which was the case when you had to escort people to another train that everyone else but you were taking out of the city.

I liked the game I was just pissed when I'm on the train leaving, and some crap happens and the screen is white, and the credits roll. I pre-ordered it so I only paid $18 for the 4 hours. It comes with no extra content, but it does look beautiful. High Dynamic Range Rendering (HDR) rocks.