Programming Rocks

Today, I was trying to make a simple content management system, and one part of a CMS is to be able to put that content onto a menu so you can have it easily show up and look like it's part of your website. Well, I have a menu system that seems to work. So, do I build capability into the content management system to be able to use my menuing system or do I build the menu system to be able to add content to itself???

Well, keeping to my philosophy as of late (besides just reading Plato), I like the second option. Sure, why not have a way for a menu to add a content page to itself? Of course you ask, isn't that stupid? Well, yeah, unless you make it completely reusable. In other words, the menu system can add anything to itself, as long as it's a menu-able something or other. And to define something as menu-able, you basically have to say, ok, what things are needed in order to add something to a menu. Well, in my system, all you need are a page, some text to display, and maybe you want to be able to supply parameters, which are built into the menu system. Ok great.

So, in a file called menu-objects.xml, I can define menu-able objects and supply parameters for them.

There are a few more things needed for the database. You want to have a list of things that are menu-able that you already have in the database. So, the screen can popup and say "what do you want to add a menu item for?" and you pick, say "content", and then a list of the content will show up and you can select it, type in a menu title, pick the menu, pick where on the menu you want to put it, and it's done. These are all simple mouse clicks.

Why can't content add itself to a menu, you might ask? Well, what if I want to add a ton more stuff that can be menu-able. What if I want to make news menu-able? I don't want to have to rebuild news... content isn't the only thing that's potentially menu-able. Also, I built the menu to be swappable later if I wanted to make another one, or add new features, I can just inherit the previous menu, add new features if I want, and without too much work, there's a new menu up there. Plus, I just don't like things depending on other things. Why have content depend on a menu system? Why have news depend on a calendar? Just have each thing be self contained, that's what I always say.

This philosophy I realized when I built the calendar. Do I want to add code to each object that is "calendar-able"? Code that, as it is, already works for the most part? No way. The only thing is, should the calendar be able to exist without this notion of calendar-able objects? Absolutely. And besides just not having any objects listed. This calls for the notion of a very advanced mechanism. One that brings joy to my once joyless heart. Interfaces and abstraction.

So, I want a calendar to be just a calendar at one time, but later transform into this amazing thing that can get events from your database, plot them onto itself, and have it clickable so you can see those events. Well, the fact is that it can't. At compile time, it should know that it might have to deal with calendar-able objects. That's pretty much the nature of programming. The best solution though, is to have an interface for something called a CalendarableObject and another interface to supply these items, called CalendarEventSupplier. The beautiful thing is, you can create a NullCalendarEventSupplier, set it as the supplier in an xml file somewhere, and your calendar is now just a plain old calendar with no mapped events. However, create a DatabaseCalendarEventSupplier, and it's now transformed into something that makes calls to your database, gets events, and plots them onto the calendar.

I love programming.

Last Fraud Update (hopefully)

So, I have a new debit card that no one else has except me and my bank. The money is back in the account as the company said it would do. Looking back on it, it wasn't that bad of an experience except for having to get cash out against my credit card, but I paid it off since I knew I had money in the bank and the credit card goes against just your routing number and bank account number, not a credit card. I got money out at a branch of our bank before we went to Lewes this weekend, and more importantly I had money for Friday night. That was a great time meeting up with a bunch of people I worked with two jobs ago. We always end up having a good time.

Friday the 13th

I'm not really superstitious about this, I'd just thought I'd mention it in case you are reading this and you forget until now, and then you become all nervous and won't travel or do anything but sit at home and play with your rabbit's foot. :) It'll all be over shortly, hang in there.

But it reminds me of one of my favorite Cracker songs, "Lonesome Johnny Blues".

"Lucky number 7 passed me by. Lucky number 7 called my name and passed on by. Well he came back don't you know, with his brother 6 in tow, and that's how number 13 wound up at my side."

Quality stuff.

Last Night's Phillies Game

I was at the game last night. It was a good time. Our department at work went. There were around 15 of us I think? I like gatherings like that at work. They make work more than work. Speaking of gatherings of employees, tonight I'm going to the Great American Pub in Conshohocken to visit with a bunch of people I used to work with. We'll be there from 9pm til it closes, meet me there!

Anyway, back to last night's Phillies game. It's fun to see all of the players, even though from where we were, you can't see where the pitches were landing. That's what I like to watch the most, the pitching. I like to see what pitchers do on certain counts, what batters do on certain counts, and of course I like to see home runs. Bobby Abreu had one. We couldn't see the right field wall that well so that's where he hit it obviously. He's had 5 games in a row now that he's homered. That's the story of the Phils, always one person does well, the others take turns being in a slump...

Woohoo 1000GB Monthly Transfer

This server now has 1000 GB monthly transfer. I have an 80 GB hard drive on here, if I could fill it up, I could transfer the entire contents of the hard drive twelve and a half times. Or, more practically, if I have 100 MB of stuff on this website, i could have 10,000 people a month view everything I have on here. Even more practically, I'll never use 1000 GB a month. That total, however, includes my FTP and SSH usage, although SSH is really no percentage of 1000 GB. Using SSH, I may transfer 1 GB every 10 years :) The cap used to be 100 GB and I never used it, but the websites I have on here before this one hardly got used, although this one isn't used much either, but I visit it everyday :) Anyway, feel free to hoard my music.

It's Happening

Read this... We'll all have electronic ID cards in May 2008. It's not cameras in our homes, so it's not that bad, but that's what the government wants to do, step up the invasion of privacy in increments so we can painlessly get to the point where we have cameras in our houses :P

Actually, I'm not an activist on this subject. I jest. So I will have to carry one more card with me, I have a wallet. If I have to renew it, if I can renew it when I have to renew my drivers' licence, then it's fine, it's one trip. Also, it shouldn't cost anything. Do we have to get it insured? :P It's 3 years away. Moral of the story is, this isn't that big a deal ... dot dot dot ... yet.

I was just reading the comments by some people on that article. They are interesting. Some are complete dillholes, but others make good points. What criminal do you know that will have an ID card that says their name on it? This leads to a point that says this is a method that will only be a hassle for us law abiding citizens, which is somewhat valid. It's an interesting argument.

Ahh the Phillies

I can't speak for the rest of Phillies fans out there, but I've started cheering against the Phillies sometimes. Actually, it's not completely cheering against them, but I'll be cheering for both teams. Every time the Phillies lose we are one loss closer to getting certain upper management fired, whose name sounds like something you do in water when you're not quite swimming to keep your head above it and not drown. That's all I have to say about that... It's midnight, I'm beat.

[The Next Morning] Ok, more on the Phillies. I'm glad that David Bell got so pissed and threw his bat, threw his helmet, got kicked out of the game, kicked his helmet, and later got dragged off the field kicking and screaming :) Well, everything happened but the last part. It's good to see emotion though. It gets people on the team fired up. It would be better harnessed in a way that doesn't get you kicked out of the game though. Our pitchers are awful for the most part. Adams walked the bases loaded then got pulled. Way to do your job, dude. It's the sentiment going around town. Registration required.

This is One of the Best Posts

Have you ever noticed when reading reviews or generally opinions by other people, even when people talk, they always say something is "One of the Best" 'whatevers' out there. Why can't they just say "It's the best one ever." I'm guessing people don't want to be held responsible for saying that, for instance, a restaurant is "one of the most exciting new restaurants of the year" (from Philly.com), they don't want people to come back and say "That restaurant sucked, that guy from Philly.com is full of s@#%@". I see it a lot on game sites, like GameSpot. I'm almost positive it's used to protect their reputations as a reviewer. If they say "it's the best game" then someone who plays it and finds Game X better will not trust what that reviewer says anymore. However, I'm not in the business of keeping readers, so I'll be very extreme in my opinions. If I think something rules, you'll know it. If I think it's the best, I'll say it. The opposite is true. On that note, this post rules, but it's not my best.

I have something wrong with me

I check my email about 3 times a day consciously. "Unconsciously" (from Tin Cup), I check it about 100 times a day. It's one of those things where you have no control over anything your hands, eyes, and brain are doing, they just check your email. They scheme against me. They get together every 10 minutes or so and say "Hey, he's not doing anything, let's check email." That's the hands talking, they're clearly the leader of the pack. After about 2 hours of this, I'll obviously have no recollection of these acts, and I'll wonder if I have any email, so I check.

I'm kind of forgetful about things like that. When I leave my car in the morning, I HAVE to lock it with the remote at least 5 times so I'll remember that I did it, so I don't have to worry about it that day. It really has to do with the fact that I don't pay attention to what I'm doing. When I leave in the morning, I check to see that I have the 4 or 5 things that I need in my pocket.. these I check 4 times. Keys, check.. Security Card.. check.. Wallet with SEPTA pass.. check. Smokes and Lighter... check.. Phone.. check. It's a time consuming routine with the number of times I go through it. After that, when I get out of my car, I check again, but this time I make sure I have some more items, namely my iPod and headphones to listen to on the El. There's another minute wasted.

Making coffee in my combination grinder/brewer is a similar embarassment. Beans, check, filter, check, water, check, coffee holder thing, check, GO!!! Recently, I've had to add some things to the list since I forgot to put the lid on the coffee holder thing, and water and grounds just poured all over the countertop. One time I forgot the filter... Luckily, before any water came out, I emptied the grinds into a filter. Close one.

I really should start paying attention more.

Fraud Update

This sucks. I went to deposit a check today, after hours at the branch, and I can't because I realized you need a MAC (ATM) card to do it. And I won't have one until later this week. So, I probably have to go to the one in Center City tomorrow at lunch. That should be fun. I need it in there because I have bills to pay, but every bank has these awful hours, like 9-4. I need to be in Center City by 9, and I can't leave before 5. No way I'm making it to a bank before or after a work day. Saturdays they are open from 9-12 but this past Saturday was rough, and it can't wait until this Saturday.

This fraud person really screwed me this week. The closest bank to my building is half a mile, perhaps I could take the bus because walking is just plain out of the question :) I hardly have the "walk on the sidewalk" part down in the city, crossing the streets is a whole other matter that I'm not ready to partake in.

Fraud

Today, I log into my bank account to see if I have any money, and there's this charge on there that I didn't make. So I call my bank and they say contact the company on the statement, which turns out to be this internet payment services company. So I call them, not knowing what to expect, and I get this nice girl. We eventually figure out that it was in fact a fraudulent charge, and she cancels the order and says I'll be refunded, and I should just call the bank again and get a new number. So I do that. I call the bank again, tell them it was a fraudulent charge, they shut down the card and are shipping a new card to me this week. All that took less than 25 minutes, and I won't lose any money.

My problem is though, that now I'm all flustered, I didn't think that would happen to me, so I'm typing this all shaky and stuff. Also, what about the person who made the charge... they have records, an address, phone number, and everything. Will that person go to jail? How did they get it? This still sucks. But, I won't get any more charges on that card. I pretty much only order from places with a trustworthy name, encryption, and all the other good secure stuff. My card is completely shut down, I'm going to have to borrow money from someone to get me through the week until this card comes. Those A-HOLES. Plus, they have to be dumber than a box of nails. Like, with the internet, and online banking, anyone can find out anything that goes on with their account in about .00001 seconds. Sucker. Judging from the site, it's a software sales place. I'm sure the company will pursue the fraud because they now have software that they didn't pay for. $81 worth of it.

But, I have to thank the companies involved for being quick to act, being open on a Saturday, and getting things done. Hopefully those A-HOLES will get a job and pay their own money for stuff in the future. Alright, I'm not as shaky as I was when I started typing this. Just, be careful with how you use your credit card. There are cheap, desperate people out there. I like to call them criminals.

Sixers are Done

However, they played a hell of a series against Detroit. Allen Iverson is the best player ever, I'm convinced. He limped badly off the court last night, and in 30 seconds, after having his ankle taped up pretty well, was back on the court playing the same as he would without a twisted ankle. If he doesn't get inducted into the hall of fame the millisecond he announces retirement (whenever that is), it's a crime. No one plays like him. You can't be 6'1" and excel in the NBA unless you do play like him. That's why he's fun to watch. I'm looking forward to next year.

Three Months

I've decided to show 3 months on the calendar for my own personal reasons. I know there will never be anything new posted to the site in the future lest I unveil what I've been working on in my basement for 10 years, that which has previously been called science fiction, but still, the clock on the server still says May 2005. It's so simple to change it. The only thing that I have to fix about this site is that I can't reload it in Tomcat. It'll re-compile JSPs if I upload them, but I need to restart the application, and something in the server.xml file in Tomcat is preventing me from easily doing that (right now I have to go to the Linux shell and restart Tomcat, shutting down every site on this server...)

Next thing I'm working on is a simple content management system so I can easily add pages with stuff on them, and after that the forum, and then finally a poll system. The casba will be rocked.

This is Cracker Soul

I love Cracker. They make software development possible. Right now it's 2:10 AM and "Shameless" is blaring out of my speakers. Check out their website I have posted in the links section.

I have been on a Cracker kick where I can't get enough of them. I listen to them right when I get up, on the train on the way to and back from work, whenever I go out, and the most time I listen to them is when I'm developing this website! I'll listen to all of the albums I have (all those listed on their "Discography" page except Countrysides) and when it gets to the end, I'll restart it. I'm pretty much addicted big time. You might even say that this whole site was developed while listening to Cracker. If so, I owe them big time. I can't list my favorite songs. Go to the discography page and find a song, chances are it's one of my favorites :)

Nice, as I'm typing this sentence "What You're Missing" came on. It's a rap song :)

Calendar Added

Woohoo! I have a calendar now. The site is nowhere near done. Keep checking back for updates. I'm going to add a forum and some kind of cheap content management system. Those two are going to be added just because I'm using this same site for different sites. I just change the images and stylesheets, remove systems or leave them the same, and voila, you won't recognize it as being the same exact software but it will be :)