« July 2008 | Main | September 2008 »

August 31, 2008

Moving In [Busy] | Posted at 6:55 PM

Wow, I've been pretty busy and haven't had time to add new stuff to the blog.

I will have pictures soon, after my roommate gets his desk in here. It's pretty packed. Everything else is set up, though.

August 26, 2008

Watch Hulu On Your TV [Awesome] | Posted at 10:12 AM

I use a little program called TVersity to stream my music, videos, and pictures to my Xbox 360. Once I discovered Hulu, I wished TVersity supported it. Alas it was not to be.

Enter PlayOn. PlayOn is still in beta but it works! It will stream YouTube, CBS, Hulu, and ESPN to your console (PS3 and Xbox). Unfortunately, just glancing around I didn’t find any full episodes from CBS.

I tested it out and I watched The Daily Show and a handful of YouTube videos (TVersity supports YT as well).

Once they add a few more networks so I can watch Lost in HD, we’ll be golden. NetFlix support will be redundant for 360 considering the Fall update but for PS3 users that might be some good news.

There is a 30-day trial and after it expires you can pay $30 to activate it. If you ask me that’s well worth the price if you’re like me and don’t have cable and don’t want to watch TV on your monitor.

Thanks Penny Arcade!

B.C. Before Crysis: Thief III Deadly Shadows [Look Back] | Posted at 12:42 AM

Back when I was a sophomore in high school, I was fervently following the Half-Life 2 mania like everyone else. I used to frequent the forums a lot, it’s kind of sad. Well, IGN had a sweepstakes going on that they’d draw a random member and they got to pick their top 5 games and IGN would send them for free.

On one cold night I was that winner. Out of the 5 games I got, 3 were some of the best games I’ve ever played to-date. One was Beyond Good & Evil, one was Half-Life 2, and…

One was Thief III.

Thief III cover

I can hear the collective cries of reviewers and critics the world ‘round. What the hell? Yes, I think that Thief III was one of the best gaming experiences I’ve had, ever. I’ll tell you why.

Story

I own Thief: The Dark Project and I was always caught by its narrative. I still mean to play it through. In Thief III the narrative was one of the focuses of the game and as such it played an important role.

I think, for me, the reason I enjoyed the story so much was the drama and the whole creepy aspect to it. I felt like I was Garret, that I felt Garret’s feelings, and it just really pulled me into the game. I think that without the story I would never have finished it.

I think my feelings about this are similar to my feelings about Dreamfall. You either like it or don’t and that decides whether you’ll finish the game or not. From my first experience with the demo, I knew that I wanted this game and I was not let down.

The plot twist at the end had me surprised, I have to admit. I enjoyed it quite a bit.

The Atmosphere

I exclusively played Thief III on my headphones. I think that this was around the time I bought my X-Fi sound card so I wanted to take full advantage of it. The sound in this game is phenomenal. It adds so much it’s not even funny. I couldn’t imagine playing with the sound turned way down or muted, it just wouldn’t be the same.

There is one level, the Shalebridge Cradle, that stands out the most. In fact, if there was one reason you should play this game, it’s because of that level. I don’t think there has ever been one level, one experience, that can fully match the experience of the Cradle.

The Cradle is the scariest, creepiest, spine-tingling, piss your pants worthy level ever developed. It’s creepier than any movie I’ve ever seen. I had never experienced anything like it and I never have since. You know why? Not only is it an abandoned orphanage but children disappeared out of nowhere and they kept mental patients in there.

Maybe it was the slow melodic dripping of leaky pipes, maybe it was the soft creaking of floorboards when no one was around, maybe it was the whispering wind curling through cracks in the walls, maybe it was the distant screams of abandoned orphans or the wailing of mental ward patients, but if a developer could win an E3 award for "Best Level That Scared You Shitless"? than Eidos would win it for the Cradle.

Here’s what makes the Cradle such a masterful level. It makes you keep going. There is something about the level that just keeps you going through it, unable to quit and sob in your mother’s open arms. Oh, you want to. Oh, how you want to. But you can’t. I couldn’t. It scared the hell out of me but unlike most horror games where I can’t go further, it beckoned me like a silent, unconscious command.

The Stealth

I am a big fan of stealth gameplay. Eidos are the masters of the stealth game. The only other stealth games I played to the end were Splinter Cell’s Pandora Tomorrow and Chaos Theory.

There is just something about sneaking around, trying not to get caught, and narrowly avoiding guards that I love. That’s not for everyone. One of my friends hates stealth games. I love them.

Thief was always about the stealth. You had your trusty blackjack and your bow to take out enemies silently.

It may be that you could probably run really fast to get past people but I always like to go slow, to scan my environment, and go at my own pace. Maybe that’s why I love stealth gameplay, because I don’t have to rush… I can beat the game at my own pace. There are moments where you have to run for dear life and I really enjoy those. The moments where you’re almost dead or almost caught but then you get some stroke of luck.

The Gameplay

And now we come to the meat and potatoes of all games: the gameplay. I think this is where most reviewers and gamers called Thief out. Since I haven’t played much of the original Thief games I cannot attest to its similarity or differences compared to previous installments.

There were a number of problems that kept Thief III from being a perfect game but I felt that the pros outweighed the cons.

Dumb AI

So, I plan to eventually replay the game on a higher difficulty because I played on Easy and it was way easy. Classic moments always include making lots of noise and then having a guard come over and claim, "It must have been a rat,"? and walk away/you stab him.

Dumb Physics

This game had flawed physics. Well, maybe not flawed, but easily forgettable and it didn’t provide any sort of gameplay mechanic. It’s like it was just there.

Animations

I think the game lacked good mocap considering character animations looked pretty silly.

It didn’t seem like any of this was a real dealbreaker for me. I still heavily enjoyed the game.

The Detail

I mean "detail"? in a game design sort of way, not necessarily the game world. One could argue that Thief III is not a dense game world, in fact, it’s fairly sparse considering you can’t enter most of the buildings. However, there are a lot of places to go for the story and while some people disliked the whole centralized city idea I really liked it.

The one part of the game that really surprised me in a good way was the "death"? mechanic. When I would be killed I was used to the regular routine of loading up a saved checkpoint. But one time I was killed and I just left it… and I woke up in jail.

Yes, that’s right, when you died in Thief III they locked you in jail. And it wasn’t just a "grab a key and walk out,"? no, it was an entire level! I was really surprised and that’s when I realized how great a game Thief III really is. Instead of just having a player die… they give him something to do.

I wouldn’t call Thief III a short game which I am glad for. I put a lot of time into that game and I bet half of it was me just taking my time sneaking around. The added jail level made the game even longer.

Conclusion

So that’s why I consider Thief III an amazing game. Maybe it had a lot of flaws but it delivered, to me, a very rich interactive narrative. It enticed me to keep playing, it was creepy as hell, and its stealth gameplay was a lot of fun.

Stay tuned for a look back on Beyond Good & Evil, one of the most underrated and overlooked games ever.

August 24, 2008

Impressions: Red Alert 3 Beta [Better than C&C3] | Posted at 8:08 PM

Updated: I updated this to be less unfair to the game. The original was written when I was in a bad mood.

I usually form an impression of a game within the first 30 minutes.

  • C&C Red Alert: Awesome
  • C&C Tiberian Sun: Extra awesome
  • C&C Red Alert 2: Super awesome
  • C&C Red Alert 2 YR: Epic awesome
  • C&C Generals: Fail
  • C&C Generals ZH: Less fail
  • C&C 3: Ok
  • C&C Red Alert 3: Alright?

So I got the RA3 beta invite yesterday and I sat down to play a game today. I played one game, it’s multiplayer only, and let me just say going into this that I heavily dislike multiplayer RTS games mostly because I am not good against humans. You won’t ever find me playing online with an RTS, only LAN.

That said, I am not trying to outright say Red Alert 3 is a disappointment just yet but I will walk you through my impressions. I am going to give it the benefit of the doubt and say that single-player may prove to be a fun experience but I wasn’t really that impressed with the multiplayer for my first go. I will play with it some more but I did have my brother play it and he didn't like it so we'll see where it goes.

Before I continue let me say a few things to those who will inevitably criticize my point of view:

  • You and me like different things in a game, thus I don’t care if you like it, I don’t. EA can never appeal to all of us.
  • This is from the perspective of a first-time player. Chock it all up to the fact I suck if you want (I do), but what will the opinion be of other newbies to the game?
  • I am lazy and don’t want to perfect my multiplayer gaming skills because I have things to do, so I realize that there are many strategies to doing things and I hope I can learn them when I buy the game.
  • This relates to above but this is just a rant at its core and I know I'll pick the game up if not for just being curious.

Here is a list of things I didn’t like during my first game. Much of this is nit-picky fanboyism but I am a picky person:

  • Didn’t feel like classic C&C. It didn’t even feel like Red Alert. No garrison-able buildings in my vicinity that offered useful protection, no funny civilians flailing about, no destroyable cars to pilot or play with, the atmosphere was just missing that classic RA2 feel which I loved. This might have just been the map and other maps might be better, but I didn't see any so there.
  • Takes forever to make money. I guess you’re supposed to have two ore refineries to make money and like 4 prospectors (ore miners), but seriously, all I needed in RA2 was one refinery and 2 miners and I was good to go.
  • Perhaps too-similar buildings. In all the good C&C games you could ALWAYS tell what a building was for. In RA3 and C&C3 sometimes you can get confused. I know I found myself trying to remember what building I was looking at. If you look at this screenshot, you can tell the top two buildings are a power plant and war factory, but what about the other two in the water (disregarding the power plant)? I only played once but I can’t tell you, but maybe it’s because they are the water-equivalents of certain land buildings.
  • No deployable GIs or units. One of my favorite things about RA2 was deployable GIs… if only for that silly sound effect they make when they deploy. They were also awesome and owned.
  • Air units might be too powerful. Four bombers, $1200 each, can take out my MCV. In RA2 I needed 7 Black Eagles to destroy one MCV and they had hardly any health. It took 8 regular aircraft to do the same. They send 4 bombers and they destroy half my base, and they just don’t die. Not. Cool. Also, let me expand further, I had a bunch of RPG guys AND missile launchers AND IFVs with missile guys and they still got through. This might be a new balance issue so that aircraft can be more effective but damn!
  • Sidebar: I miss the static C&C sidebar. I realize people want to see more of the map but what made a C&C game a C&C game and not some other RTS clone? That sidebar. I want it back, damn it. I realize that, yes, other RTSs like Dawn of War, Warcraft III, and AoE have static interfaces… but of the RTS I have played, C&C always had the unique side UI.
  • No countries: The countries were a great dynamic in RA2 that was really nice. Even though the only difference was really special units, it was still a nice touch. In RA3, they have these "top secret protocol"? things that are basically general powers… but most of them suck.
  • Third side: Japan? Seriously? Yuri was the sweetest added-in side of all time. That expansion seriously added a crap-load of features into the game that made it fricking amazing. I haven’t played  Japan side yet (so take this with a grain of salt)  but it seems to me that they can’t be as cool as Yuri was. I want mind control, damn it! Well, I hope they prove me wrong.

So, I may be too harsh (I am) considering this is a multiplayer-only beta… but I already know I won’t be playing it online with other people (but that isn't saying much anyway). LAN? Sure... I wish I could play with it by myself and not have someone kick my ass right away. Such is being a n00b.

I admit that all that above is negative and probably unfair, so I'll list some things I did like:

  • Menu: The menu is great, if not for the super-awesome music ala Red Alert 2.
  • SFX: I like the unit voices and sound effects, I am glad they kept some from previous games.
  • Music: Yes! Sounds very Red Alert, I love it.
  • Color: Finally, a game with color! I liked the rich colors they decided on, it made everything pop out a lot more.
  • Navy: Now the Navy is a viable attack/defense option. Naval units pretty much were useless in previous RA installments except for maybe the carrier and boomer subs. Boomer subs were pretty rigged, though.
  • No service depots: The service depot was a silly idea. I am glad they kept one of the good features of Generals: the repair drones. Also you can build an MCV with minimum prerequisites.
  • Terror drones in the water: Two words: Friggin' awesome.
  • Voice: This was in C&C 3 but I am glad they have VoIP support.
  • Hotkeys: This was also in C&C 3 but having hotkeys makes for good programmable macro combos. I have 3 set up in C&C 3 to make each side's base in the minimum amount of time possible.
  • Live cutscenes: I am so glad they brought this back with C&C 3 because that was a hallmark of classic Red Alert. Sure, they are cheesy as hell but they're so awesome.
  • Superweapons: I only saw the Chronosphere and Iron Curtain in action but I am glad they kept them. There are tons of great strategies to use them with.

If you liked C&C 3, which I did up to a certain point, you will probably like this game. If, however, you are a die-hard classic pre-EA-only C&C fan like me, you probably will be disheartened but perhaps a little less considering it’s still recognizably Red Alert.

I honestly can’t really pin down why EA hasn’t been able to make me feel like I’m in the classic C&C experience. I think it’s because even since the original C&C, Westwood had a sense of humor that you could see throughout their games. Their level design was masterful and their maps were rich with things other than your or your enemy’s units. I don’t see any of that. I don’t see the little monkey scratching his butt near a palm tree, or an alligator that tries to eat my GIs, or a civilian getting pissed and shooting me with his crappy pistol, and the awesome Hollywood stars that had frickin’ awesome weapons. I mean there was always some scenic thing going on that just isn’t as apparent in EA’s games. Tiberian Sun was the same way with its mutated civilians, etc.

I’m not saying there wasn’t any humor in C&C 3 and maybe there is in RA3 (hopefully) but I can't recall anything specific. That's probably because I didn't play C&C 3 as much as other games. Of course, considering C&C 3's storyline there wasn't much room for humor ala RA.

Also, RA2’s missions weren’t just about destroying the enemy base. A lot of the missions had different goals, like sneaking past defenses, escorting a convoy, etc. Although I enjoy destroying bases I liked when it shook it up because it didn’t feel like I was just playing a skirmish.

Anyway, back to RA3. I am hoping single-player will be more refined. I am willing to hope and I may end up getting RA3 when it comes out or just trying it out to see what the campaign is like. I don’t think Red Alert 2 was a perfect game… I mean MP was like, "Ok I am ready to die in 5 minutes."? That’s what turned me off from it. That’s what turned me off of multiplayer RTS gaming period. The only RTS game I might play is Warcraft III but that’s because the games are all mods like DoTA or Tower Defense. When it comes to RTS, single-player is where its at for me. In that regard, I am willing to suspend my hatred until I get to play RA3’s campaign.

Overall I think RA3 is a better game at its core than C&C 3. I haven't played enough to fully write out my opinions but for a first impression it didn't bode well. There are a few factors that might have contributed to that and it would be:

  • I don't know the sides very well. I haven't played all of them nor do I know the best way to build a base yet.
  • The people I was playing against were really good and they kicked me and my teammate's ass.
  • I suck at multiplayer RTS. It's true.
  • Maybe it’s just the nostalgia talking and my denial of change to the series I love.

If you've played the beta and you like it, it's probably because you've played it more than I have, in fact I pretty much guarantee it. Once I've played at least 10 games or so I will post an updated (and hopefully more accurate) impression.

August 23, 2008

How To: Fix Beyond Good & Evil (BG&E) Graphics Glitches in Vista/XP | Posted at 1:15 AM

Today I let my friend borrow Beyond Good & Evil to play it, since it’s such an awesome game. He has Vista and when we ran the game there was some graphical corruption. He has an 8800GTS and it ran the game fast, but there were some artifacts in the menus.

After some Google searching I found this post. Here are the settings that you should set in the Settings program:

Beyond Good & Evil Settings

We actually set the Shadows to High. But it seemed like Antialiasing may be the culprit, we didn’t have a chance to test it with it turned on.

Thanks jackdewey.

[Beyond Good & Evil - Graphical artifacts in Vista via VistaReadyGames Forum]

August 22, 2008

Money Well Spent [Mmm, TV!] | Posted at 8:24 PM

So I got the TV delivered today and I broke it in, playing some Soul Calibur IV and watching some HD Olympics. As with the Toshiba 42RV530U TV I already reviewed, it is awesome.

Here it is in action!

My Toshiba 8-22-2008 5-54-00 PM

My Toshiba 8-22-2008 5-54-24 PM 

Oh. Yah.

I will report any problems but so far it’s been great! I guess buying refurbished TVs isn’t so bad.

In my room it looks huge, it will look humongous in the dorm, heh.

Movable Type 4.2 Released – UThink Still Behind | Posted at 11:20 AM

On the 13th, SixApart released the newest version of MovableType (this blogging platform), version 4.2.

UThink, this blog provider, is still using the (very) old 3.33 version. It’s unfortunate because UThink is such a great blogging provider considering its awesome Google ranking and SEO. That’s why I didn’t just create a "DivideByZero-Blog.com,"? and instead used UThink.

I’ve talked to Shane, the head honcho of UThink, about upgrading before. He basically said it will be done at some point and back when I first asked, he said not to expect it until Fall. It’s fall! I hope we’ll see some new version soon… I really want to use the sweet plug-ins MT 4+offers like Activity Stream and Related Entries.

Well, here’s hoping for the best!

Amazon Daily Deal and Friday 5 for 5 [Aphex Twin] | Posted at 10:48 AM

Today’s MP3 deal is Aphex Twin’s Classics. I don’t own any Aphex and $2 for a compilation definitely isn’t bad.

image

Aphex Twin – Classics

Today’s Five for Five deal is also worth checking out. The nicest deal is the Beach Boys’ Songs of Summer, an compilation with over 30 songs for only $5. It was an immediate buy, for a fan of classic rock.

image image image image image

Also up for grabs is Beastie Boys, Weezer, Fleet Foxes, and Pink Martini.

[via Amazon MP3]

August 20, 2008

Fix: Suckerfish IE7 Disappear/Sticky Bug [Yay!] | Posted at 11:50 PM

After searching Google and reading comments, I could not find a solution to a problem I had while using the Sons of Suckerfish drop-down menu.

My problem was not only that the drop down stuck when you clicked somewhere first, but also the drop down would disappear when I got past a certain point (probably the height of the containing <li>).

Here’s how I fixed it:

ul#nav li:hover div, ul#nav li.over div

{

    left:0;

    zoom:1; /* fix ie7 disappear */

}

ul#nav li:hover, ul#nav li.over

{

    height:auto; /* fix ie7 sticky */

}


Note that I have a containing <div> within the <li> element. That is because my drop-downs are a bit more customized with headings, background, etc. Just change "div"? to "ul"? if you just have a <ul> inside the <li>. Note I also use "left:0"? because the containing list element aligns text to the center, so an auto left margin centers the drop down which isn’t what I want.

Thanks to css-class.com for their list of fixes. This works in all browsers I own.

Tested in: Firefox 2+, IE6+, Safari 3, and Opera 9

How To: Read RSS/Atom Feed Using .NET and the XmlDataSource With Or Without Namespaces [Coding] | Posted at 12:43 PM

Today I was working on my site and I wanted to show some recent blog entries on the side. Used to PHP I was looking for an RSS reader I could use. I found one but it didn’t quite work with what I needed.

Stupidly, I realized that all the things I needed were right there!

Hit the jump for all the details!

Continue reading "How To: Read RSS/Atom Feed Using .NET and the XmlDataSource With Or Without Namespaces [Coding]" »

Hell Hath Frozen Over: All Fake Musical Instruments Are Compatible [Amazingness] | Posted at 10:29 AM

Peace Ninjas; Credit: JoyStiq.com

I was hoping to hear this news… a bit ago, Sony announced that the PS3 versions of Rock Band, GH:WT, and Rock Revolution instruments will be fully compatible with each other.

Not to be outdone, Microsoft announced today that they are also cool and the Xbox 360 versions will be fully compatible as well!

You know what this means, right? Now there’s no excuse whatsoever not to get Rock Band 2 and Guitar Hero: World Tour.

[via JoyStiq]

August 19, 2008

Replacing Your Comcast Box With a Newer One [Surprised] | Posted at 9:10 PM

I'm not going to lie. When I sat down and waited about 25 minutes to get on Live Chat with Comcast Support to ask them whether we can replace our old cable box with a newer one with HDMI output, I was expecting a laundry list of things to complete. Imagine my surprise, when the support person just said I can bring it to my local office and get it swapped for a new one. I asked the inevitable, "How much does it cost?" and he said nothing, it's free.

Wow. Comcast, you have surprised me.

We had an old DCT6208 and we couldn't watch another program if we were recording one.

DCT3412At first, they gave us a DCT3412. Why the later versions go down in number I'm not sure. Anyway, that one had a dual tuner, 120GB hard drive, HDMI output, and a SATA connector for an external drive.

The unfortunate thing is that it had trouble displaying HD channels. There are artifacts and corruption galore making them unwatchable. We thought it just might be one channel but it happened to all the HD channels.

DCH3416 We exchanged it the next day and we got the DCH3416! Awesome. This has a 160GB hard drive instead and looks a lot nicer.

HD even looks a bit better, smoother, I think.

5 New Posters… Plus 7 More [Lots of Pix] | Posted at 1:40 PM

Allposters had a 25% off sale… like they do every month or so, so I decided to get some new posters. Mind you, I already own like 5 or something. Somewhat sadly, Allposters is having a deal right now where a crap ton of posters are $5 and you get free shipping on orders above $9.99. That's 3 posters at $4.98. Clever bastards. I paid the shipping the first sale AND the posters that I got were all on sale today, so I basically lost $15.

I got these three the first time ($28) and the last two today ($10), since I wanted at least one vintage poster and some other kind of non-funny ones. You may be thinking 3+2 = 5 not the required 6 I had to get. The last one is a secret because it's for my girlfriend.

poster-starrynight

Starry Night by Van Gogh

I love this painting, so I decided to get it in poster form.

poster-lunchatopaskyscraper 

Lunch Atop a Skyscraper by Charles Ebbets

I have the LEGO rendition of this scene spread across both of my monitors… I love it. There’s something about this photo that just hits the spot and I’m glad I can see it everyday in my room now.

image

Big Brother

I loved 1984 so obviously it made sense to buy this. It’s not a full poster which makes me sad, but it it’s 11 x 14in which isn’t so bad.

image

The Great Wave at Kanagawa by Katsushika Hokusai

Man, what’s not awesome about this painting?

image

Star Wars: 30th Anniversary

This poster is almost a requirement since I should be true to my inner nerd. Besides being about Star Wars, it’s just a sweet poster.

As far as our walls go, they will definitely be filled. My roomie bought SEVEN new posters. These 5 in addition to my already largish collection will definitely give our room some personality.

August 18, 2008

The Diamond Age by Neal Stephenson [Extended Review] | Posted at 3:28 PM

image

Like a lot of good authors, Stephenson has books that aren't as well known but may end up being better or as good as his best-known works. This is one of those.

It is a different breed than Snow Crash, but I want to talk about this book in its own right. Diamond Age is almost a children's story, with the main character being a child who grows into an adult by the end of the book.

Here's something you have to keep in mind: Neal's books take about an hour to 2 hours to understand the world they are taking place in. He usually talks a lot and goes into a lot of detail early on, using phrases and names of things that you have no idea what they refer to. However, by about 2 hours in, you understand where everything is taking place and the world makes sense.

Since this is naturally important for any book, I didn't take off a star because of it. I really enjoy his introductions to the world that he creates, because I find myself wondering and asking questions about it.

Here's another thing to keep in mind, this book isn't for everyone... people who like technology and computing might find it more enjoyable than someone who doesn't, but I think that it can appeal to many people since it is grounded in a story about a girl growing up.

With all that said, Diamond Age is a really, really good book. You get really drawn into the characters and a lot of that has to do with the narrator and how she reads the fairy tales from the Primer, as well as the different voices she uses for other characters. Unlike some other books in Neal's stash, Diamond Age doesn't go off on long tangents about ancient Gods or religions. Some of it is there, but it has a lot more to do with destiny and abuse of technology, or "Unforeseen Consequences."

If you really liked Snow Crash, just be prepared for something a little more light-hearted and less "kick-ass action" oriented, but still highly enjoyable.

Grade: A-

One Sentence Review: The Diamond Age [Audiobook] | Posted at 3:01 PM

Diamond Age

Title:The Diamond Age, or, a Young Lady’s Illustrated Primer
Author: Neal Stephenson
Narrator: Jennifer Wiltsie
Blurb: A young girl is raised by a book that can adapt to its surroundings and generate fairy tales. Plus other sweet stuff.
Review: An excellent read/listen, possibly not as "cool" as Snow Crash, but I thought it was really enjoyable and the narrator was awesome.
Grade: A-

Buy it from Audible

New Design: Homecoming 2008 [UMN] | Posted at 2:47 PM

Today we made the new Homecoming 2008 website live on SUA.

homecoming08

This year the folks in charge of homecoming wanted a very reusable template that would stay the same for homecomings to come. Since we had been used to doing custom templates for all previous homecomings, designing it was a bit of a challenge. I wanted to have a template that would be true to UMN style and homage but also be able to reflect the yearly theme.

My first design was this one:

homecoming08_old

It looked pretty cool. But, of course, it was very highly driven by the theme and it didn’t leave much up to interpretation.

The new design still looks really good and I’m happy with it. Everyone else seems to be happy with it as well.

One of my favorite things about the site is the sweet countdown clock. I used a JavaScript snippet from JavaScript Source to do it.

Customize Google Calendar RSS Feeds: Sort Events, Limit Results, etc. [Tips & Tricks] | Posted at 2:21 PM

If you use an RSS reader to subscribe to people’s Google Calendar events, or you use an RSS parser to read your calendar’s feed onto a webpage, you may have realized that there’s not really any good documentation about customizing that feed. Well, actually, there IS but it’s not apparent from doing a simple Google search that you can use the Google Calendar API reference to see how to customize a feed display.

Today I wanted to do a couple things, I wanted to sort the RSS by start date and from the event happening soonest to the event happening later. I also wanted to limit the results to 5 to reduce time for parsing.

Here’s how to do it, it’s quite simple:

https://www.google.com/calendar/feeds/[account]/public/basic?orderby=starttime&sortorder=ascending&max-results=5

If you notice, all I did was add some query string values.

orderby: starttime – Order results by when they start
sortorder: ascending – Order from least to greatest (soonest to latest)
max-results: 5 – Limit results to 5 events

You can use the following query string keys to customize your RSS data: Google Calendar API Reference

Tip: If you’re using PHP and SimplePie to parse the RSS, you need to add the following line of code to prevent SimplePie from automatically sorting the items by date:

$feed->enable_order_by_date(false);

Alright, I Bit the Bullet [Ouch] | Posted at 2:07 PM

I bought my new TV for my dorm. I was going to wait until next week, when I get my paycheck to add some extra breathing room but today’s deal just couldn’t be passed up. I definitely have enough left over money to keep me until next week.

Basically, the TV we bought for our home which was $1300+ with the warranty I just got off NewEgg, again, for $950 as “Recertified.?

I realize there isn’t a warranty with it and I can’t even return it… but I can at least not accept it if I see there’s any damage during shipping.

I just feel relieved I don’t have to search anymore. There were a few other options, but for a TV I know to be perfect for what I need and that I’ve seen in action, I don’t think it was a bad purchase. Plus, $100 less for this TV compared to other ones and only $30 more than the 37? I originally planned to get.

I will definitely write about my experience once I get the TV, hopefully, this week or next.

August 14, 2008

Import an Audiobook From CDs Painlessly Using iTunes [Tips & Tricks] | Posted at 5:35 PM

I just discovered this feature. If you want to import a CD that is an Audiobook, like I bought Stephen Colbert’s “I Am America and So Can You,? you can easily do so using iTunes.

If you ever have tried importing an audiobook, you know there’s many tracks. iTunes has a neat feature that can join them all together and import them as one track per CD. Useful!

  1. Insert CD.
  2. Open iTunes.
  3. Right-click CD and select “Get Info?
  4. Fill in the proper information. I suggest naming the CD “Disc 1? and so on so that you won’t overwrite any existing discs. Later you can make them all one album.
  5. Select all the tracks on the CD, by hitting Ctrl-A (Apple-A).
  6. Go to Advanced and select Join CD Tracks.
  7. All done! Hit Import CD on the bottom right to import the joined track. Change ID3 tags as you see fit. I suggest importing at 96kbps or lower because it’s spoken and doesn’t need higher quality, unless you don’t care about size.

Note: It’s a good idea once you’re done to edit all the tracks and check the option to remember position. That way when you stop one it will resume where you left off!

Today’s Woot: 32” Westinghouse LCD TV - $400 | Posted at 12:43 PM

image

Grab it while you can. My girlfriend just bought a 22? LCD for $375, we should have waited to see what Woot had to offer, now I feel stupid.

Also on Sellout.Woot there’s a Sharp 37? 720p LCD TV for a mere $700. If it was 1080p I’d get it, but right now I have my sights set on a Toshiba 37?.

August 13, 2008

One Sentence Review: A Night at the Opera [Music] | Posted at 11:00 AM

image

Title: A Night at the Opera
Artist: Queen
Review: Wow, just WOW this album is crazy good and blew away my expectations.
Grade: A+

Buy it from Amazon MP3

August 12, 2008

10 Tips for Speeding Up Your Web Designing [Tips & Tricks] | Posted at 9:55 PM

homeless-coder Recently on Digg an article was posted on some tips for saving time with your web design. Although it’s just a personal list, I thought that some tips could have been better and so I offer my own little list. I won’t bother rehashing the good tips the author posted, just adding to it.

This list isn’t comprehensive nor is it a detailed breakdown of each idea. It’s meant to be an overview and a jumping off point, not a How To article. These are the methods I employ and they serve me well!

1. Drop Down Menus: I use a simple tutorial from A List Apart on creating a CSS-only dropdown menu, called Suckerfish. Using a simple <ul> with no style tags and one or two classes, you can build a functional drop down in minutes, and not have to worry about styling someone else’s possibly inept code. This is also standards-compliant whilst also being the best choice for navigation in general due to degradability.

2. Make Reusable Stylesheets: Anything relating to style, positioning, and layout can be done using CSS and should only be done using CSS with a few minor exceptions. A great thing I’ve learned is to create small, cross-site CSS that can just be copy/pasted to a new website you’re working on. For example, I have a “base.css? that I use in every site I create that can be copied to another and then be done by changing a few values like fonts.

3. Image Capturing: If you’re on a Mac, use the all-powerful Apple + Shift + 4. This lets you drag an area rectangle and capture anything on-screen. It is saved natively as a PNG and just drag it onto Photoshop to manipulate it. Easy as pie!

If you need to edit a lot of pictures, I use Picasa to adjust filenames or color in photos. See my previous experience batch editing and scanning lots of photos.

4. Use FTP Software to Edit Files: This mostly applies to Mac, but there must be a good power combo on PC that I’ve yet to use. This tip could be substituted for “Use the software that fits the purpose.? On my Mac at work my power combo is the following programs:

  • TextMate
  • Transmit
  • Photoshop

With only those 3 programs open, I can pretty much create and work on a website quickly and efficiently. Recently I had to create a <select> box with all the majors offered at my University. The list was long. However, I did it in literally 30 seconds using some simple keyboard shortcuts. On this page, hold Apple (Mac)/Ctrl (PC) down within Firefox 3 and drag your cursor over each table cell containing the major.

Copy/paste into TextMate and it will paste in plaintext. Then highlight all the lines, hit Apple + Ctrl + Shift + W and type “option? to wrap each line in a specific tag. All done!

Additionally, TextMate allows you to instantly save a file directly onto the webserver without any annoying extra clicking. Transmit has many useful functions including duplicating files, tabs, and very quick batch uploading. Double-click a file and it will open in TextMate, if you specified an external editor.

5. Better Multi-Browser Testing: Setup some Virtual Machines to test different browsers, or just install Multiple IE and be done with it considering most problems occur in IE if you code for Mozilla-based browsers (which you should be!). Personally, I installed Safari, Opera, Firefox, and Multiple IE. Really, though, only IE6 and IE7 should be enough.

6. Code Minimally: This goes hand in hand with using CSS effectively. Your webpage without CSS should be a typical flow document. There shouldn’t be any large images across the screen, background images, mis-aligned text, non-standard font sizes, etc. Basically, a good webpage should be fully functional/navigable without CSS or JavaScript. The added bonus is less coding!

7. Design for Accessibility: There are many reasons why designing for accessibility yields good results. Besides the fact that it should be an obligation for a disabled user to be able to access your site, designing with accessibility in mind also lets search engines index you faster and more accurately, getting all of your content. This applies to image search and content searching. This also allows your design to degrade in old browsers, text-based browsers, and mobile browsers.

8. Install Useful Extensions: By far the most useful extensions I own for Firefox are Firebug and the Web Developer Toolbar. Without them, I couldn’t design as fast as I can. I can’t count how many times I’ve used Firebug’s “Inspect Element? feature to debug CSS or to copy values between sites.

9. Mockup Designs First: By far one of the most timesaving elements of designing a website for me is doing an initial mockup. It only takes a few hours and you can present a complete picture of the site for the client before you actually do any coding. I personally use Photoshop because later I can slice it up to get background images for use with CSS. The client can critique it and it also lets you visualize the site yourself.

10. Use Photoshop Wisely: Some people don’t know how useful the Slice tool is. Instead of making everything but the portion of the screen you want invisible, trimming it, selecting all, copying it, then pasting into a new document, then Saving for Web, all you need to do is use the Slice tool to create “slice up? your design. You can name the slices, adjust their dimensions to your liking, and when you’re done, you can just save them all at the same time! In addition, each slice can have its own specific format like GIF or JPG or PNG. It saves me a lot of time.

Don’t use slices to make an HTML layout. You should only be using slices to get the images you need to use in your layout.

And there you have it! 10 tips to improve not only the speed and efficiency at which you work, but also your overall design skills!

Happy coding!

One Sentence Review: Old Boy [Movie] | Posted at 8:37 PM

old-boy-poster

Title: Old Boy
Type: Movie
Blurb: Crazy Korean dude wants revenge on a man who locked him up for 15 years.
Review: Good movie, questionable plot, highly enjoyable, and thus recommended.
Grade: B+

Braid, Flogging Molly, Football, and so on… [Fun Weekends] | Posted at 12:03 AM

Braid

I was introduced to Braid through a friend of mine, who said it was “an amazing concept for a game.? I had heard mention of this beast in Penny Arcade’s news post, but only fleetingly.

So Saturday I sat down and played the Trial Demo. I instantly liked it. I bought it and I’m still working on it. I’m on World 5 now, and damn it’s getting tough.

Basically the whole mechanic Braid relies on is time manipulation. At first, it’s pretty simple… you can rewind time and you use it to get to the puzzle pieces. However, each world gets increasingly more complicated. By World 4, I was scratching my head and wondering what the hell. First, there are objects that are sparkly green which are not affected by time. Second, at some points you have to rewind time very fast before a door closes or a platform returns to its position. Then, you have to use enemies as allies, to get keys in hard to reach spaces. Now I am at the point where there is a shadow dimension, and when you rewind time, your shadow does what you did in the future. It makes it way more complicated.

The price for the game is $15. To some people, this is the end of the world. While they are fine paying for their fast food and their carbonated soda, they shun the notion of paying $15 for a quality game. Here’s the thing: Braid is a good game. Some have mentioned that it’s just a Flash-game lookalike. So… because a game is 2D, it must mean that it’s a Flash rip-off? Last time I checked there were a few consoles way back in the day that did something akin to 2D games. But wait, silly me, I forgot that Flash invented the 2D platformer! Besides the fact that most flash games are stupid and poorly designed, what does it matter? It wasn’t created by a teenager in his mom’s basement. It was created by an independent developer who paid money and spent time to make the game.

My point is that $15 isn’t a whole lot to pay. It’s one dinner at a restaurant. It’s one and a half albums. It’s two outings to Arby’s. It’s a new movie. However you want to view it, it’s not that much. Don’t you have a job or something? That’s 1.5-2 hours of work or less! If you spent 2 hours making the money to buy it and you get 6+ hours of entertainment out of it, doesn’t that pay for itself?

Irish Fest

The other thing I did this weekend was go to Irish Fest and see Flogging Molly. I’ve seen them before when they came to the U but this was a different beast.

It was a lot of fun. I got a keychain with my Irish family name on it, Gallagher.

Keychain

I also went with my girlfriend, her mom, and my other two friends so I was surrounded by pretty women.

Irish Fest 075

That tall guy in the upper right with the white shirt was pretty high the whole time.

Needless to say, Flogging Molly was awesome. Here follow some photos of the event:

Irish Fest 8-11-2008 11-27-18 PM

Irish Fest 8-11-2008 11-27-38 PM

Irish Fest 8-11-2008 11-27-44 PM

My camera can’t take the best pictures… my friend had the nice camera:

Irish Fest 8-11-2008 11-27-32 PM

It was a lot of fun and I was just glad I got to go this year. Parking over on Harriet Island was tough but we found a good place that had a lot of spaces open and wasn’t too far away.

The crowd during the show was crazy. We weren’t super close but we were in that zone of people who want to get closer, so we were continuously pushing people around. My girlfriend went back earlier to get water and had a tough time finding us, but she did and after a short while moved back to a more relaxed portion of the crowd to properly enjoy the show. Since you can’t get out of there without shoving people aside, some guy took offense to me trying to burrow my way through, but he let me through anyway even though he tried to shove me back a bit. I’m sorry I had to push you, sir, but suck it, I had my girlfriend in tow.

Football

I went to the Vikings pre-season game last, when was it, Friday? Yes, that’s it. My friend’s family had extra tickets so I went with her. I had never been to a football game before so I decided I’d try something new. It was interesting, to say the least. I know the mechanics of the game so I understood what was happening but I still enjoy watching basketball more. The football crowd, however, is more entertaining. Lots of drunk people saying nonsense.

There were some guys to the upper left of us who were hilarious, though. They were smashed but they were funny, not unfunny obnoxious-like. The guys behind us were obnoxious and only slightly funny. One of them asked me who I thought would make it to play-offs: Vikings or Dallas. Not really caring or knowing much about such matters, I just said Vikings, to which one guy nodded his head in enigmatic agreement and the other saying that I was “smoking? and “high on shit,? but in a joking sort of way. I wasn’t about to argue.

Of course, if you followed the game, you know what we lost… which wasn’t a massive surprise. We left close to the end, though about half the stadium beat us to it.

Aquatennial

Earlier in the month we went to the Aquatennial fireworks display, reportedly the fifth best in the nation, according to my buddy. They were fantastic, that’s for sure! I didn’t get to see any fireworks on the 4th, so this substituted very well instead.

Aquatennial 8-11-2008 11-25-47 PM 8-11-2008 11-25-47 PM Aquatennial 8-11-2008 11-25-47 PM 8-11-2008 11-25-50 PM

Aquatennial 8-11-2008 11-25-47 PM 8-11-2008 11-25-54 PM Aquatennial 8-11-2008 11-25-47 PM 8-11-2008 11-25-57 PM

Aquatennial 8-11-2008 11-25-47 PM 8-11-2008 11-26-01 PM Aquatennial 8-11-2008 11-25-47 PM 8-11-2008 11-26-07 PM

Aquatennial 8-11-2008 11-25-47 PM 8-11-2008 11-26-12 PM

Besides the big tree in the way, it was superb.

August 8, 2008

How To: Integrate Google Picasa Onto Your Own Website Using PHP | Posted at 12:19 AM

I mentioned when I posted about finishing a website that I had made some custom scripts, and this was one of them.

This assumes you have all the Google PHP scripts ready on your site, comments have been made at appropriate areas. The HTML included is meant to be styled and is just the structure I used to make it. You can see the implementation right over yonder.

Features:

It’s tested and working, make sure you configure it properly. As always, feel free to add on as you please.

This was a quick script so I’d add some more error checking if I were you. It doesn’t use classes or anything, it’s just down and dirty.

Download Source Code (.zip)

gallery.php

<?php

/************************************************************

****    Picasa and PHP Integration Script

****    Created by: Kamran Ayub (c)2008 Intrepid Studios, Inc.

****    http://www.intrepidstudios.com/

****    This is just a very barebones implementation! No fancy

****    classes and whatnot. Feel free to improve it.

****

**************************************************************/    

//set_include_path("/local/home/"); // set if Zend folder isn't in the same directory as gallery.php, e.g. it's below it

 

// Vars

$user = "YOUR_GOOGLE_USERNAME";

$pass = "YOUR_PASSWORD";

$albumId = $_REQUEST['albumId'];

$albumName = $_REQUEST['albumName']; // This is just lazy, because when you are using the newAlbumQuery method, the name of the album can be gotten anyway.

$page = $_REQUEST['page'];

$maxResults = 15; // Max Results per page

$maxImageSize = 800; // don't go over 800 otherwise you won't be able to embed the larger photos

$zend_dir = "Zend/Loader.php"; // should point to your Zend directory

 

// Functions

function Paginate($numPages,$currentPage,$albumName,$albumId) {

    // Create page links

    

    $s = "<ul class='page-nav'>\n";

    for($i=1;$i<=$numPages;$i++) {

        $class = "";

        

        // Current page?

        if($i == $currentPage) {

            $class = " class='selected'";

        }

        $s .= "<li".$class.">";

        $s .= "<a href='?albumId=".$albumId."&amp;albumName=".$albumName."&amp;page=".$i."'>".$i."</a></li>\n";

    }

    $s .= "</ul>\n";

    

    return $s;

}

 

// Picasa Web Albums

require_once($zend_dir);

Zend_Loader::loadClass('Zend_Gdata_Photos');

Zend_Loader::loadClass('Zend_Gdata_ClientLogin');

Zend_Loader::loadClass('Zend_Gdata_AuthSub');

 

// Authenticate

$serviceName = Zend_Gdata_Photos::AUTH_SERVICE_NAME;

 

$client = Zend_Gdata_ClientLogin::getHttpClient($user, $pass, $serviceName);

 

// update the second argument to be CompanyName-ProductName-Version

$gp = new Zend_Gdata_Photos($client, "Google-DevelopersGuide-1.0");

 

 

// Default page

if(!isset($page)) {

    $page=1;

}

 

if(isset($albumName)) {

    $albumName = urldecode($albumName);

}

?>

<html>

<head>

    <title>Integrate Picasa and PHP Demo</title>

    <link rel="stylesheet" type="text/css" href="base.css" media="all" />

    <link rel="stylesheet" type="text/css" href="gallery.css" media="all" />

    <link rel="stylesheet" type="text/css" href="awesomebox.css" media="all" />

    

    <!-- YUI, older -->

    <script type="text/javascript" src="http://yui.yahooapis.com/2.2.0/build/yahoo-dom-event/yahoo-dom-event.js"></script>

    <script type="text/javascript" src="http://yui.yahooapis.com/2.2.0/build/animation/animation-min.js"></script>

    

    <script src="awesomebox.js" type="text/javascript"></script>

</head>

<body>

    <h1>Photo Gallery</h1>

    

    <div class="albums">

    <h3>Albums</h3>

                

        <?php

        try {

            $userFeed = $gp->getUserFeed("default");

            echo "<ul>\n";

            foreach ($userFeed as $userEntry) {

                echo "<li><a href='gallery.php?albumId=". $userEntry->gphotoId->text . "&amp;albumName=". urlencode($userEntry->title->text) ."'>". $userEntry->title->text . "</a></li>\n";

            }

            echo "</ul>\n";

            //print_r($userFeed); // Debug

        } catch (Zend_Gdata_App_HttpException $e) {

            echo "Error: " . $e->getMessage() . "<br />\n";

            if ($e->getResponse() != null) {

                echo "Body: <br />\n" . $e->getResponse()->getBody() . 

                     "<br />\n"; 

            }

            // In new versions of Zend Framework, you also have the option

            // to print out the request that was made.  As the request

            // includes Auth credentials, it's not advised to print out

            // this data unless doing debugging

            // echo "Request: <br />\n" . $e->getRequest() . "<br />\n";

        } catch (Zend_Gdata_App_Exception $e) {

            echo "Error: " . $e->getMessage() . "<br />\n"; 

        }

        ?>

     </div>       

    <?php

    // List photos from album

    

    if(!isset($albumId)) {

    ?>

        <div class="grid">

        <p>Choose a photo album to view.</p>        

        </div>            

    <?php

    } else {

        $query = $gp->newAlbumQuery();

    

        $query->setUser("default");

        $query->setAlbumId($albumId);

        $query->setImgMax($maxImageSize); 

        $query->setMaxResults($maxResults);

        

        if(isset($page)) {

            $query->setStartIndex((($page-1) * $maxResults)+1);

        }

    ?>

        <h3>Photos from <?= $albumName ?></h3>

        <div class="grid">

        <?php    

        try {    

            $albumFeed = $gp->getAlbumFeed($query);

            

            // Number of results

            $numResults = $albumFeed->gphotoNumPhotos->text;

            

            // You should probably check if $numResults is a number...

            

            // If there are more than $maxResults, we need to paginate this...

            $numPages = ceil($numResults / $maxResults);

            

            if($numPages > 1) {                            

                echo Paginate($numPages,$page,$albumName,$albumId);

            }

            foreach ($albumFeed as $photoEntry) {

                $contentUrl = "";

                $thumbnailUrl = "";

                

                if ($photoEntry->getMediaGroup()->getContent() != null) {

                  $mediaContentArray = $photoEntry->getMediaGroup()->getContent();

                  $contentUrl = $mediaContentArray[0]->getUrl();

                }

        

                if ($photoEntry->getMediaGroup()->getThumbnail() != null) {

                  $mediaThumbnailArray = $photoEntry->getMediaGroup()->getThumbnail();

                  $thumbnailUrl = $mediaThumbnailArray[1]->getUrl();

                }

        

                echo "<div class='photo'><a rel='gallery' href='".$contentUrl."'><img src='" . $thumbnailUrl . "' alt='" . $photoEntry->title->text ."' title='" . $albumName ."' /></a></div>\n"; 

            }

            //print_r($albumFeed);

            echo "<div style='clear:both;margin-bottom:6px;'>&nbsp;</div>";

            if($numPages > 1) {                            

                echo Paginate($numPages,$page,$albumName,$albumId);

            }

        } catch (Zend_Gdata_App_HttpException $e) {

            echo "Error: " . $e->getMessage() . "<br />\n";

            if ($e->getResponse() != null) {

                echo "Body: <br />\n" . $e->getResponse()->getBody() . 

                     "<br />\n"; 

            }

            // In new versions of Zend Framework, you also have the option

            // to print out the request that was made.  As the request

            // includes Auth credentials, it's not advised to print out

            // this data unless doing debugging

            // echo "Request: <br />\n" . $e->getRequest() . "<br />\n";

        } catch (Zend_Gdata_App_Exception $e) {

            echo "Error: " . $e->getMessage() . "<br />\n"; 

        }

        ?>

        </div>

    <?php

    }

    ?>

</body>

</html>


August 7, 2008

I Guess I Am Now a BAM Board Member [More Work] | Posted at 11:10 PM

I met with the president, VP of operations, and the now retired webmaster of BAM, the student group who’s website I recently subjected to Extreme Makeover. They asked if I wanted to be the new webmaster since it really only made sense… not only is BAM a group I can be a part of, I already know a lot of members in it and I created the tools to administer the site.

So I accepted, another duty added to my growing list of academic responsibilities. It should be a lot of fun, though! And this means I can skin the blog and forum now…

Amazon Daily Deal: Dragonforce [Awesome] | Posted at 10:52 PM

Oh yah, who’s awesome? Me.

“Today's Amazon MP3 Daily Deal goes out to Kamran Ayub of Minnesota who requested a little more metal. Dragonforce's The Valley of the Damned, down from an everyday low price of $8.91 to $2.99.? – Amazon Daily Deal FB Notes

image

Damn. Right.

This album was before they went mainstream and is chock full of cheesy awesomeness. Needless to say, I bought it.

August 6, 2008

A Tale of Backup Woes and Redemption [Crappy Software] | Posted at 10:05 AM

Yesterday, it crossed my mind that I should try and restore a very old website, one of my first, to showcase on my new redesign of Intrepid Studios. The plan was to make it work at the least and then offer it up for people to look at and download. There are a few reasons of doing this.

I made the site News by Teens International back in 2001, it was my first experience in programming for the web. I was a budding ASP developer (oh how things might have been different if I’d chosen PHP) and NBTi was my first real project. At first it was a team but then all the developers left because they didn’t think it’d work. I took it on myself, with another guy as my “boss.? I made it work and the site saw average success for its lifetime. At some point, it became apparent that the site philosophy, letting teens write, submit and discuss news articles was not very popular among our demographic, so I shut it down.

However, at one point, an upgrade had been planned. This upgrade was actually very near completion. It was dubbed "NBTi .NET" my not so subtle way of saying I was using .NET to program it. This was when .NET was coming out... but I learned VB and got very far on the site. This is what I wanted to resurrect yesterday. I thought about it beforehand for awhile. I spent many hours working on it, for it to amount to naught. However, I feel like I should at least just let people download and look at it because I developed many custom components for it.

At the ripe old age of 15 or so, this is what I had developed for the site:

  • Member Profiles with profile information, avatars, and custom fields.
  • Messaging system ala private messaging.
  • Custom forum to integrate with member system.
  • News submission system.
  • Commenting system.
  • Polling system.
  • Who's Online functionality.
  • Planned to do a Journal component.

Do those features sound familiar? They should, they include the basic components of a social networking site. Unbeknownst to me, I had really developed a decent social networking site before the bigwigs like Friendster, Facebook, and MySpace had come along. There may have been social networking sites back then, but they were not so prominent and these features came to me because they made sense for the site's purpose. While primarily the news portion of the site was the focus, all the social interactions were just as important in my eyes... one of the reasons I decided to release this is because it showcases my ability to create social networking features, even if it was 5 years ago.

In the original NBTi, it had member profiles, a phpBB forum, control panel, polling, and commenting. That was written in ASP by myself. I had even attempted to integrate PHP with the ASP member system but that didn't work quite so well. It did kind of work, it added members when they registered on NBTi.

I rewrote the site from the ground up, giving it a new look and everything. I feel that for a 15 year old it was quite an achievement... so I wanted to release it for free. I thought about how I could do such a thing and I decided that I'd convert the site to .NET 2.0 and offer it up.

However, way back when my server was having problems so I had to back up my development on the computer. The back up software I used must have been poorly written because what it did was convert the first file in a folder to a folder. Yes, that's right, it effectively erased everything in the file and made it unusable. Suffice it to say, when I found out the software did this, I stopped using it. (If you are interested, SyncBack SE is an excellent backup software).

When I went back yesterday to try and convert the project, I had some errors in Visual Studio. It didn't get farther than one file and it said that it couldn't open it. I went and checked and to my horror found out that this project was one of the ones that got hosed.

Awesome, so now I can't release the site unless I go back and recreate the lost files, a time-consuming ordeal. I was frustrated and decided to just forget about it and delete everything as it wasn't usable anymore. So I did, from my server and from my own computer.

Then today, as I was riding the bus to work, I reflected on it a bit longer. It was an impressive project... and it wouldn't be insanely difficult to redo one file per folder, would it? I figured I could probably do it.

So, just a few minutes ago, I went onto my computer and tried to see if I could restore the files I deleted. One probem, I emptied the Recycle Bin. Awesome! I tried to use TuneUp Undelete which did find most of the files, but many of them were in "Bad" condition. Now almost all hope had vanished. I was ready to give up, when I remembered that I scheduled backups of my development folders on my server. I went onto the server and into the backups. Lo and behold, there was a backup of my development folder, old, but the NBTi .NET folder hadn't been changed in aeons. I restored it to my computer successfully and jumped for joy!

So now, the real work begins. I have to use all the errors to try and figure out what the original file looked like and I'll have to write "new" functions that will do whatever it is they are supposed to do. Luckily, if I remember correctly I comment my code a lot, and I name my functions appropriately so I hope I can restore them.

It's kind of exciting... once I release the new Intrepid Studios site soon, I can add this to my projects portfolio for people new to .NET or interested parties to dissect and borrow code. It's probably not the greatest since it was written way back when, but who knows, maybe I'll redo some of the components properly...

August 5, 2008

Thoughts: On The Band Called “Queen” [Awesome Music] | Posted at 9:39 AM

I am ashamed to admit that I did not own any album by Queen until last night. On Amazon MP3 the Daily Deal was “A Night at the Opera? for $4. Obviously it was too sweet to pass up.

image

Here’s the thing. I thought the album was going to be mediocre because even though I love Fat Bottomed Girls I didn’t like We Will Rock You very much. But in fact, this album is fricking amazing.

I love all the songs on it… I had never really heard Bohemian Rhapsody though I knew of it and I can see why it’s such a classic. Some of my other favorites are Prophet’s Song and Good Company.

Even though it was the Daily Deal yesterday, it’s still $4 so grab it while its hot!

August 4, 2008

How To: Use PHP to Grab Event Date from Google Calendar RSS [Tips & Tricks] | Posted at 7:52 PM

Recently I finished a site that required me to use Google Calendar to manage events. I thought that it would be nice to show what events are up and coming, so I used SimplePie to grab and show their calendar feed.

However, the RSS date was the date the event was added, not the date that the event happens. This makes sense but makes it a bit harder to be useful in the website.

I used some simple RegEx to get the event date… it’s rough but it works and I’ve tested it with events spanning multiple dates, all day, and specific times.

<dl>

    <?php

    // Feed: http://www.google.com/calendar/feeds/[google account]/public/basic?max-results=5

    foreach ($feed->get_items() as $item):

        

        // Grab When: date.

        $content = $item->get_content();

        $content = strip_tags($content);

        

        if(preg_match("/When: (.*!?)/", $content, $matches)) {

            $content = $matches[1];

        } else {

            $content = "No Date Found";

        }

    ?>

        <dt>Event:</dt>

        <dd><a href="<?php echo $item->get_permalink(); ?>"><?php echo $item->get_title(); ?></a></dd>

        <dt>Event Date:</dt>

        <dd><?php echo $content; ?></dd>

    <?php endforeach; ?>

</dl>


This assumes you have a SimplePie feed… you can just use the RegEx in any other implementation instead…

New Website Release – Business Association for Multicultural Students [Web Design] | Posted at 7:24 PM

bam-screencap

As I just posted on my company blog, I’ve just finished another website. The site is for the Business Association of Multicultural Students, of which I will be a member of soon.

I met with some officers of the group last Tuesday. That was when I started developing the site and in less than a week and 30 hours later I was finished and met the budget. How’s that for turnover?

Here are some of the features I implemented:

  • Google Calendar for managing events.
  • Google Picasa for managing photos, along with a barebones custom PHP photo gallery script for the website itself.
  • Google Analytics for site stats and tracking.
  • Poll script and administration using SimPoll.
  • Integrated WordPress blog.
  • Integrated phpBB3 forum.
  • JohnDesign’s SmoothGallery for homepage “animations.?
  • SimplePie RSS reader for showing upcoming events and blog posts. I use RegEx to parse the date an event occurs from their Google Calendar RSS feed.
  • Custom admin control panel for uploading member resumes, along with a password-protected section for recruiters to view them.
  • Fully degradable design for accessibility, functions without JavaScript or CSS, like always!

Wow, that’s a lot of features, and all of the scripts were free! Unfortunately due to time constraints I was not able to skin their blog and forum, but perhaps at a later date they will want me to.

I know some people will be interested in my PHP + Picasa Photo Gallery integration and my parsing of Google’s Calendar RSS feed, so I will post those soon and update this post!

Updated (8/4/08 7:52PM): PHP code for the RegEx is posted.

Updated (8/6/08 11:03PM): You can view the old site as well, if you wanted to see a before/after.

Updated (8/12/08 8:31PM): I posted a how to on integrating Picasa using PHP.

August 3, 2008

Bands To Watch For [Reminder] | Posted at 1:04 AM

Note to self: Watch these bands for potential album/song buying.

image

Firewind

Heard these guys off the Century Media Summer Sampler. I liked “Head Up High? from The Premonition.

image

Bullet for My Valentine

Usually I’d kind of pass this off as metalcore, and maybe it is, but it’s really metalcore. It has lots of elements of good metal… with maybe the exception of the singer’s voice, but it’s passable and I find myself humming these tunes a lot. Many of the songs are catchy and neat sounding.

image

Nachtmystium

This is a weird album but sort of draws me in… I enjoyed the track “Assassins? because it has a catchy chorus. The other things are mixes of different genre and sounds but still incorporate a blend of black metal elements. Weird but kind of cool.

August 2, 2008

Impressions: Soul Calibur IV | Posted at 1:14 AM

image

Yes, they are mostly good.

I spent about 6-7 hours today with the game, with a friend. It’s not naturally a co-op game but it worked out beautifully taking turns, creating our own characters, and unlocking content.

The Good

  • The character customization saves this from being “just another Soul Calibur.? It seriously is awesome.
  • Graphics are fantastic and colorful. Great in the world of drab lookalike games.
  • Tons of combos and moves… even if some characters are clones of each other.
  • Use of leveling, equipment, weapons, styles, and skills is a great addition to gameplay, making it a lot more deep and faux-RPG.
  • Challenging. We played Arcade mode a few times and there were many moments where we almost wanted to chuck the controller and game out the window. We made it though.

The Bad

  • No “Adventure Mode.? Maybe it was just me but that’s all I played Soul Calibur II for. It was the closest a fighting game came to being an RPG. Thinking of how it would have worked in SCIV makes me cry for its lack of being.
  • No co-op leveling in story mode, arcade, versus, or tower of chaos mode. That would have been a lot of fun, fighting each other to level up or if that’s too unfair, tag-teaming in arcade/story mode to level up would have been a nice feature.
  • Story Mode is just cheesy and lame… but it is kinda fun.

We didn’t get a change to test Online Mode because we lacked an Ethernet upstairs at my friend’s house neither did we tackle the Tower of Chaos. It speaks volumes that we were able to stay entertained and addicted to Story Mode and Character Customization.

All in all I was very satisfied with my purchase even if it fell short of an amazing game and turned out to be a great game.

There is definitely playability to this game, as you gain better equipment by unlocking more achievements. It encourages you to be good at it and it rewards you properly for your efforts. Character Customization is so much fun… we pimped out a few characters and I created my own character, “Hulk,? that I plan to develop diligently.