Monthly Archives: July 2008

Exceptions

Server Error… Exception… Server Error… Exception… Server Error… Exception… Server Error… Exception… Server Error… Exception… Server Error… Exception… Server Error… Exception… Server Error… Exception… Server Error… Exception… *dies*

iPhone Apps

Along with the launch of iPhone 3G, the iPhone App Store launched last week. There were some interesting things but nothing killer.
The first thing I noticed is that after the iPhone update that’s required to use the App Store, the iPhone is a bit more buggy. It lags more, and programs exit on their own sometimes. I’m hoping this gets fixed soon.
One of the first things I looked for and tried was Super Monkey Ball. At first I thought the controls were horrible, but after some practice I grew to think of the controls as simply “not very good.” It seems my calibration is a little off because I always roll the the left, even when my iPhone is perfectly even. Also, rather than the default forward/back position is neither perfectly vertical or lying down. It’s at something close to a 45 degree angle. I understand they wanted it to be at the normal angle you’d hold it, but it’s hard to know exactly what angle that is. There are about eight worlds, and at the beginning only world one is available. There was an easy and hard. I finished easy and it didn’t unlock world two so I probably need to finish hard mode to continue. Although I wish the controls were a bit better, after some practice it wasn’t too bad. I’ve enjoyed this so far and will continue to play this. Despite the problems, I think it’s worth the $10 to have the cool little game on my iPhone.
The second thing I looked into was Bomberman Touch: The Legend of Mystic Bomb. After playing Bomberman Live, I grew to really like the games. The controls were odd but kind of cool. Of course the iPhone doesn’t have a directional pad, but instead of simulating a d-pad with onscreen buttons, you touch the screen anywhere and then slide in the direction you want to go. Rather than the center of the “d-pad” being placed wherever you first touch, there is no center. If I place my finger on the screen and slide up, Bomberman will run up. Then if I slide my finger to the left without raising it, Bomberman will move left. Basically, every time your finger stops, the game re-centers the d-pad at your fingers location. The only problem is that if you move too fast, your finger never stops and it never re-centers. The game was fun, and the last zone was really hard, but it still took between two and three hours to finish the entire game. Overall I’m pleased with my $10 purchase, but it’s more because it’s cool to have a fun game on the iPhone. Had this been on Live Arcade or Steam, I don’t think I would have paid so much for it.
Next I decided to try some applications! First, I downloaded Facebook. When I first downloaded, all features weren’t implemented yet, but quickly the applications caught up. It’s nice to have the app and not need to go through the web browser. Also, being free, the app is priced well! The application doesn’t have everything that Facebook itself has of course, but it’s still just as complete as the mobile site and much faster than both. I’d definitely recommend using this application. I also tried using the MySpace app but didn’t do much after logging in and taking a quick glance. What I liked it about it is something you’d expect – it doesn’t look all crazy and stupid like MySpace normally does. No stupid profile songs either! And like the Facebook app, this one’s free.
After that I tried some music applications. I tried Pandora and Last.fm. Pandora is very easy to use and cool. You specify a song or artist you like, and it will play music that it considers similar. You can then rate a song positive or negative depending on whether or not you liked it. It works very well over wifi, but without it songs have to continually stop to buffer. It also won’t play in the background, which is disappointing. Pandora was free, and while I wish it would work anywhere, I’m still happy to use it in wifi range.
Last.fm is also free and works very similarly to Pandora. You specify a song or artist, and it plays music that is similar. It has some extra features that probably are supposed to set it apart such as band bios, a “similar artists” list, and a list of events coming up per band. However, the UI seems more cluttered. Also, like Pandora, this can’t be played in the background. I don’t really care about its features and would prefer Pandora. Given the space on the iPhone though, I’ll keep both of these around.
AIM was a complete let down. It worked alright as an AIM client except that like the music players, it stops working in the background. What good is AIM if it only works when it’s actually up and open on the iPhone? Not much. It was also free.
The last program I tried was SplashID. SplashID is made by SplashData and is a program I liked a lot on the Palm. It was one of the biggest reasons against switching from Palms to the iPhone. It’s back, and I love it. SplashID is simply an encrypted database of whatever information you want to store in it, although its intended to store passwords, bank information, and similar information. The iPhone version does everything I remember from the Palm version yet still uses an interface that blends in well with the iPhone. SplashID is $10 and worth it completely! The desktop application it syncs with is $20, but I didn’t feel the need to get it. Doing a normal iPhone sync will backup your data; you just can’t access or manipulate the data via your PC without the desktop software.
While the App store has been hit and miss, it’s delivered the App I wanted most. The games were interesting but overpriced for what they delivered. However, the promise of a Warfare Incorporated, an RTS I enjoyed tremendously on the Palm, version for iPhone coming soon, I’m definitely excited about iPhone games as well.

Flagship Studios

According to Joystiq, all of Flagship Studios’ staff has been fired, and their IPs have been sold. Hopefully Hellgate: London servers will stay up.
I know the game had its problems, but I’m a bit sad by this. The Hellgate: London universe was cool even if the game was flawed.

E3 Regurgitation

Allow me to regurgitate some information from Joystiq!
I really wasn’t expecting much from Microsoft or EA. My 360 is great, but it’s hard to really froth for the games when the legacy games all belong to Nintendo. I mean, Nintendo already has me excited for Wario Land: Shake It! and Mega Man 9, but I was still wondering if we’d hear about some other old franchises like Star Fox, Pilot Wings, or Animal Crossing. However, Microsoft surprised me today.

 

  • Netflix is now partnering to offer streaming content over the 360 to subscribers.
  • NBC and Universal are offering movies on XBL.
  • Geometry Wars 2 comes out next week.
  • The original Banjo-Kazooie will be on XBLA for this holiday season
  • The 360 will have exclusive Fallout 3 DLC
  • Final Fantasy XIII is now multi-platform
  • Avatars
  • “Party” system for group chatting
  • New UI featuring XBL Primetime, a sort of interactive TV channel in which there will be network-wide game shows with real prizes

And the best news?
Portal: Still Alive, sequel to the greatest game to ever be created, will be a 2008 exclusive to XBLA. I’m assuming “2008 exclusive” means timed exclusive. That kind of sucks because I’ll have to play a console version before the most likely superior PC version, but it’s not like I’m willing to wait to play another Portal game!
As for EA?
They’re still releasing Spore.
I didn’t really hear anything else of interest from them.

C# Attributes, Using statement, and Properties

More adventures in C#!
There are a few new concepts I learned recently while working. As the title of this entry suggests, they are attributes, the using statement, and properties. While all three were new to me, they’re very logical (as one would expect with anything dealing with programming).
Attributes allow you to assign metadata to your code. An attribute goes directly before the data it describes. It’s encased in square brackets and is of the form Key(Value). For instance, if I want to describe who wrote a particular class and when, I could put // Peter Anargirou, 7/9/2008. However, that isn’t very structured. Instead I could put [Author(“Peter Anargirou”),Date(“7/9/2008”)] directly preceding the class declarations. Attributes can be programmatically referenced by the program in which they exist, making them very useful for code reflection.
The using statement is also very interesting. It’s of the format using ( object declarations here ) { …code…}. Anything declared in the using declaration is deallocated at the end of the using block. For example, you can open a file in the using declaration and not have to worry about closing it. When execution leaves the using block, the file is closed automatically. It’s similar to a try/catch/finally.
Lastly, properties are something new I recently discovered. They’re similar to accessor methods in other languages. Normally, if I have an int that I want to be able to access from outside the class it’s in, MyClass, I make it public. If I do that, then I might accidentally overwrite it when I that’s not what I intend to do. Also, there’s no way to check what I’m doing with it. For instance, I might not want it to store a value of 0, but with a public int, I have no way of enforcing that. Instead, I could make a private int and have accessor methods. I might have private int count, public int getCount(), and public void updateCount(int newCount). This is definitely the preferred way of doing things, but now when I want to retrieve the count from outside, I always have to say MyClass myClass = new MyClass(); int x = myClass.getCount();. To update the count, I have to use myClass.updateCount(42);. With properties, you can create accessor methods that invoke automatically while you treat the property like a public variable. For example, I now write

private int myCount;
public int count
{
get { return myCount; }
set { if ( value != 0) myCount = value; }
}

Now from outside I can simply write x = myClass.count to retrieve the value and myClass.count = 42 to update the value. Of course, it’s also checking that I’m not updating with 0. If I try to update with 0, it won’t actually update myCount. It’s clean and simple yet still provides the more complex checking that can be done with accessor methods. Very handy!

Completing Games

This year I’ve completed 1.15 games per week. Sadly, I’ve only completed 0.679 games in my catalog for each game I add to it.
Number of games completed this year through June not counting different versions, different modes, or remakes: 30
Number of weeks this year through June: 26
Games completed per week: 1.15


Number of games completed this year through June that are in my catalog, including each physical version: 19
Number of games added to my catalog: 32
Number of games added to my catalog not counting two free games or two games solely for my girlfriend: 28
Number of games completed in my catalog per game added to my catalog: 0.633
Number of games completed in my catalog per game willingly added to my catalog for my own playing: 0.679

Orochon Ramen

Orochon Ramen is a delicious ramen restaurant in Little Tokyo in Los Angeles. They have three types of soup (miso, soy sauce, and salt). After picking a soup, you pick how hot you want it, what other things you want in it, and any sides you may want. It was really great. I had a miso soup with egg and a side of spicy pork. It’s about $8 per plate, which is quite affordable, and I would definitely recommend it to anyone in the area. Their website is http://www.orochonramen.com/.

Anime Expo 2008

I just got back from Anime Expo in Los Angeles, and it was great! This year I went to the opening ceremony, the AMV contest, AX Idol, a signing by NIS character designers, a NIS America panel, Last Comic Standing, a David Hayter panel, a David Hayter signing, Whose Line Is It Anime?, and the closing ceremony. And I spent less than $50 on merchandise!
We stayed at the Omni hotel, which was only a few minutes away from the convention center via shuttle. Shuttles were free for us. The hotel was very nice, especially at 60 degrees the whole time, but I lost my extra battery for my camera. I’m pretty sure it was dead (broken dead) so it wasn’t a big loss. Antonio said he may have lost boxers and jeans. Duncan, who was in a different room, lost a pair of glasses. Justin, also in the other room, lost a pair of boxers as well. That doesn’t just seem like coincidence. Are the cleaning people stealing things? Together with the fact that there was a used tampon in between the mattress and box-spring of Justin’s bed (they got a free upgrade for that), I’m not sure I’d want to stay there again despite it seeming very nice.
This was the first year that I went to the opening ceremony. It was fun, but not too terribly exciting. I did mingle quite a bit with The World Ends With You, although it took me days to realize that the reason why I couldn’t see other players was because I was using the PAL version.
The AMV contest was quite long, but a lot of fun. There are definitely some AMVs I’d like to look up and watch some more, and they made me more interested in a few anime series. None of my choices won, but oh well.
AX Idol was really awesome. Last year I thought it was really boring, but this year, almost every contestant had a lot of talent. Half of the people were competing in voice acting, and the other half were singing. It was really amazing. One guy, who had his head shaved except for a short triangle-shaped mohawk, sang Rain, from Cowboy Bebop. I have a nice picture of him courtesy of “JUB” via Pictochat!
photo.jpg
Last Comic Standing is a stand-up competition. It was funny and very enjoyable, but some of the “comedians” were quite bad. A lot of them told jokes like “I’m a minority…it’s hard to like anime when you’re Black and/or Hispanic, food stamps, Home Depot etc.” I’m glad these people can joke around with their own culture’s negative stereotypes, but seriously, enough. The two finalists were also pretty bad >_>. I guess the audience was stupid because they’re the ones were judging. There were judges there to comment, but they didn’t choose the winners. Do you know who the coolest judge was? Man-Faye! It was awesome seeing him! Whose Line Is It Anime? is an improv show in which everything is anime themed. Terribly bad. It did make me miss Live Nude People that much more though.
We hung out at the NIS booth a bit, and I got my picture taken with a giant Prinny! Phoenix was funny as always too. I bought a Disgaea picture and got autographs from two different character designers that work at NIS. I also went to a NIS panel where they talked about Disgaea 3 and A Witch’s Tale, their new upcoming games.
I also went to a David Hayter panel. He was the voice of Lupin in Lupin the Third, the voice of Snake in the MGS series, and the screenplay writer of X-Men. It was really entertaining. I tried getting his autograph at multiple sessions but kept not making them. Finally on the last day, I managed to get his autograph.
I also went to the closing ceremony, and it was pretty boring. We did go to Little Tokyo to eat though, where the food was delicious!
I can’t wait for next year!

HTML Form Combo Box

I found an interesting article on how to create a Combo Box in DHTML. Form controls are definitely in need of the combo box, but I’m not so sure this does the job all that well.
http://www.tgreer.com/comboArticle.html.
A combo box is a drop down select list that can also allow the user to input his or her own strings. The author of the article builds one in DHTML by first placing a select list on the page and then placing a textbox on top of it using CSS. He then causes the dropdown list to make a Javascript function call, causing the textbox to update with the value of the list’s selection. It’s interesting in concept, but you can tell something strange is happening. Looking at the page, you can tell there’s a rendering error (in this case not an error) and that there are controls stacked on top of each other.