Kip

Prince of Persia

Written by Kip on Monday, March 9, 2009 at 4:32 pm (EDT)
Tagged as:

Shortly after Christmas I applied some Best Buy gift cards toward Prince of Persia (the new one that for some reason has no subtitle).  The series has been riding on the goodwill created by 2003’s masterpiece The Sands Of Time.  And I have to take a moment to state again just how much I loved that game.  Since then, they released two sequels that didn’t even come close to living up to SoT.

Prince of Persia

Apparently someone at Ubisoft Montreal has decreed that their games must end with obnoxious cliffhangers.  There was at least kind of an ending to Prince of Persia.  Part of the ending was interactive, and I simply did not want the Prince to do what I had to make him do to complete the game.  So I will give them credit, as this means they did a good job of making me identify with the Prince to some extent.  Of course, after you do this, you get an ending that might as well say “please insert a credit card to buy the next sequel.”

Last week Ubisoft released “Epilogue”, a downloadable episode that takes place immediately after the ending.  Since it was only ten bucks, I bought it (the first time I’ve purchased any DLC, actually).  Well it didn’t really clear up anything, and actually ended more abruptly than Assassin’s Creed’s abortion of an ending.  I didn’t think that was possible.

I don’t understand this decision.  I’m sure someone at Ubisoft thinks “if we make a cliffhanger ending, then more people will come back for a sequel.”  I’m not sure this is a valid line of reasoning.  What they’ve put at the end of their games are essentially a mechanism to make the player very angry, not to generate sales of the sequel.  I don’t think that decent endings prevent anyone from playing the sequel.  Sands Of Time had one of the best endings of any video game that I’ve ever played, and I have come back for three sequels now (four even, if you consider Assassin’s Creed to be a “spiritual sequel”).  If a game is good enough, people will come back for more because they like the game that much.

All that said, I really enjoyed this game.  But can’t I expect the reward of a decent ending after having put twenty hours into playing your game?

No Comments
Kip

On the job hunt

Written by Kip on Friday, March 13, 2009 at 12:05 am (EDT)
Tagged as:

When you put your resume on Monster and Career Builder, you get some strange and sometimes sketchy e-mails about jobs that have absolutely nothing to do with the skills shown on your resume.  Case in point, the following e-mail that I received today (with my own commentary added in italics):

Hello Kip,

Hi!  Do we know each other?

Are you looking for an opportunity to apply your expertise and help expand manufacturing capabilities with a company that desires to change the way the world produces glass?

Am I ever!!  I am so sick of the way glass is produced these days!

Do you desire to work with a world leader that is planning for future success and is committed to industry leadership through innovation and technology?

That was a mouthful!  But I think my answer is “yes.”  I would assume it beats working for an unknown company planning for failure and committed to industry bottom-feeding through stagnation and tradition.

[Redacted], a Fortune 500 company and the world’s leading producer of glass packaging products, is currently looking for a Combustion Engineer to join our team at our glass manufacturing facility in Winston Salem, NC.

Combustion Engineer, what is that??  Is it anything like a Software Engineer?  Because I’m really good at software engineering.

As a Combustion Engineer, your objective will be to deliver efficient & improved combustion glass conditioning systems as well as increased furnace life through proper control of fuel consumption, heating, & melting temperatures.  In addition, you will assist in the development of effective preventative maintenance programs and be an active participant in the facility safety program.

Oh OK, so it’s nothing like software engineering or anything else that is listed on my resume.  Go on.

It has been brought to our attention that you may be just the right person we are looking for!

OK, let me just stop you right here because I can see you’re wasting our time.  Two things.  One: What fool told you that?!?  Two: I don’t think you understand just how unqualified I am to hold the title of “Combustion Engineer.”  When I have to stick a match into the little hole to light a propane grill, I turn my head away and say a prayer that I will survive it.  When it lights without an explosion, I experience the thrill of life in a way that most people have to bungee jump or skydive to experience.  I am nervous anytime I am standing near the water heater in my garage.  I will move to a different pump at a gas station, or leave altogether, if I see someone talking on a cell phone while pumping.  So unless you need me to engineer combustions by writing some software which I can use from across town, I’m not the right guy.

The rest of this e-mail was not included because it got boring.

No Comments
Kip

New site feature: searching

Written by Kip on Tuesday, March 17, 2009 at 4:02 am (EDT)
Tagged as:

I finally got around to implementing a search feature on this site.  If you search for something in the bar over on the right side of the page, you’ll get a search over all the blog posts, photo, and photo albums on this site.

I did all this with the Zend Framework’s PHP implementation of Lucene.  It seems to give good results very quickly, although there are some issues I’m having that are either misunderstandings or outright bugs.  Or maybe it’s because I’ve been up till 4am fiddling with this thing.  Tomorrow I’ll try to simplify my scenario and see if I still get the same results... if not, then I guess I need to figure out where I’ve missed something.  I’ve found that the way you design a search index is quite a bit different from the way you work with a relational database, mainly because you intentionally denormalize data for the sake of faster searching, when you wouldn’t do that for a relational database (at least not until you found that some particular JOIN or something was a huge bottleneck).

Anyway, I need to get some sleep.  If you try out my search box and notice something particularly odd, let me know.  (Well, something other than the styling, which isn’t fully presentable yet.)  Most of the problems I’m having are with more advanced queries that aren’t working the way the documentation claims they should, but it shouldn’t be anything most users would ever see.

Update:  I figured out what was wrong, it was due to using the default query parser, when I needed to construct the query from APIs.  After writing my own query processor, all is well.  More info about the specific problem I was having can be found on this Stack Overflow question, which pointed me in the right direction.

No Comments
Kip

Free code giveaway

Written by Kip on Saturday, March 21, 2009 at 11:26 pm (EDT)
Tagged as:

I added some code to the site to improve the way source code is displayed, both in snippets in my blog and when viewing an entire file directly.  I’m adding line numbers on the server-side, but they are in a separate div so you won’t end up copying the line numbers if you copy and paste the code.  The syntax highlighting is all done in Javascript by prettify, an open-source library provided by Google.  After getting around two annoying jQuery bugs (one which is only present on IE6, and another which was fixed by upgrading to the latest jQuery level) I got it up and running, and it looks like this:

1
2
3
4
5
6
7
8
9
10
11
12
  /**
   * Returns 1/this.
   * 
   * @throws ArithemeticException if this == 0.
   */
  public BigFraction reciprocal()
  {
    if(numerator.equals(BigInteger.ZERO))
      throw new ArithmeticException("Divide by zero: reciprocal of zero.");
    
    return new BigFraction(denominator, numerator, true);
  }

Anyway, I figured I’d show off the full-file view with some source code you’re free to use if you want to.  You can find the BigFraction class I wrote in Java when working on some Project Euler problems.  The class represents a fraction as a ratio of two BigIntegers, so it will never overflow, and there will never be roundoff error.  It was fun to write, because it involved lots of math and manipulation of base-2 numbers (especially for the constructors which took one or two double variables), and I’m one of those weirdos who really likes those things.  This works in all the Project Euler problems I’ve used it in, and I’ve done some pretty exhaustive ad-hoc testing, but there’s still a good chance I’ve missed a bug or two.  Especially since I didn’t bother writing any unit tests or anything (hey, this is spare-time coding!).  If you use this and happen to find any bugs, let me know.  And of course, I need to close with:

Disclaimer: the BigFraction class is provided as-is with no warranty expressed or implied.  If you use it to calculate missile trajectories and end up nuking the wrong city, you shouldn’t come whining to me.

No Comments
Kip

What to do with old business cards?

Written by Kip on Monday, March 23, 2009 at 11:37 am (EDT)
Tagged as:

Let’s say you’re a guy that is going to be laid off from his job in, let’s say, five days.  You probably have a lot of business cards sitting around.  What are you going to do with these after the job is over?  They have your work number on it, which won’t connect to you soon, so it’s not like you can give them to anyone.  Technically they might be considered company property, but it’s not like the company will want them back (what are they going to do, hire another person with the same name and assign him your exact job title, phone number, and e-mail address?).  I suppose the Al-Gore-approved answer would be to recycle them, but that’s not fun enough for me.

The idea that I came up with?  Playing cards!  After a few hours of tedious craft work, I managed to create a complete deck of cards, complete with stick-figure face cards (including the suicidal King of Hearts).  Much to my surprise, they can be shuffled and used pretty well, although they are not water-resistant so they may not be that useful long-term.

Anyway, check out some hot photos of the result:

Business cards used as playing cards

RSS feeds: Kip's - Stephanie's - Both
Admin