Buzzwords: Managed and Unmanaged Code

Buzzwords will be a recurring segment where I explain some of the words and phrases I pick up on as I grow in my development knowledge. Some will be simple definitions; others will delve further into the concepts being presented to explore their meaning.

After I started at HP, my vocabulary was challenged every day with new abbreviations and HP jargon. There were also a few technical terms, two of which came up rather frequently: managed and unmanaged code. Using context clues, I quickly figured it out, but it was something I hadn’t been exposed to during school.

Unmanaged code is code that compiles into machine language to be executed using the computer’s hardware. That is to say, that there is no intermediary between your executable and the instructions given to your computer. Standard usage of C, C++, assembly, etc. can create binaries with these instructions.

Managed code is a term used to describe code that depends on .NET’s Common Language Runtime (CLR). C#, C++/CLI, VB.NET, etc. all will build assemblies with an Intermediate Language (IL). The CLR will interpret this language and compile each part into machine language when it is to be used (this is called Just-in-Time [JIT] compiling). This methodology allows some help for the programming, such as garbage collection and security checking (though at a cost to performance, since it is automatic).

The distinction between the two is important in Microsoft’s world, as managed code can be written in a variety of languages. .NET supports C++ (C++/CLI, above), so assuming that all of a C++ program is being compiled into machine code and executes without .NET might be incorrect.

The term “managed” is usually applied to applications that use .NET, specifically; however, I’ve also heard people use the term when referring to Java. While the term was coined by Microsoft to distinguish .NET code, I don’t see any harm in using it to describe Java, which uses similar concepts in its underbelly.

Post a comment on which you use most frequently. Be sure to list the advantages that made you make this decision.

Video Game Review: Assassin’s Creed II (360)

It’s been awhile since I’ve done a review, and, to commemorate the occasion, I’m going to change the format again!  I found the positives vs. negatives approach rather stifling, but didn’t want to stick myself to a particular template.  So, I’m just going to write about whatever I feel deserves mentioning.

Yes, that’s correct.  My new format is no format.  Free the birds, whisper to the trees, and run naked down the beach.  Down with the restrictions of video game review formats.

Once you’ve gotten your clothes back on, come on back and read my review for Assassin’s Creed II.

In this sequel to one of my favorite games of 2007, Desmond explores the life of another of his assassin ancestors – an Italian named Ezio who lived during the Renaissance.  My first impressions of the assassins of this game were that they seemed far less epic than they did in the previous game. Altaïr’s assassins appeared to be in training for the majority of their lives, whereas Ezio becomes an assassin as a young adult and immediately becomes accustomed to the skills an assassin requires. There are other assassins, from Ezio’s pudgy old uncle to the angsty, pissy historian, who detracted from the mystery and skill apparent in the Altaïr’s brethren.

Desmond’s story isn’t very prevalent in Assassin’s Creed 2, much to my dismay.   The back-and-forth of revelations was an interesting narrative approach in the first game, and there is far less of it here. I like where it is headed, though; they are exploring the effects of the Animus, as well as pushing Desmond toward becoming a member of the modern-day assassins.

Ezio’s story, luckily, is fully fleshed out and just as interesting.  Ezio is a much more developed character than Altaïr, making it easy to relate to him; though, admittedly, it leaves much less mystery around him.  The interaction between Ezio and the supporting cast is excellent, with Leonardo da Vinci as my favorite NPC to visit.

The missions are greatly varied and each has a unique purpose, unlike the repetitious tasks of the previous entry. An unfortunate side effect of this is that the concept of performing in-depth research on a target before striking is mostly lost, making Ezio’s skills seem far from Altaïr’s methodical approach.

As I started to relearn the controls, I remembered that the puppetry metaphor they use (assigning face buttons to specific parts of the body) can make things a little confusing.  The button for interacting with an object depends on the interaction itself, unlike the dedicated interaction button used in most games. Movement is also complicated; you must hold down three buttons simultaneously to run and climb, which is what you are doing about 80% of the time. All of the face buttons are context-sensitive, making it hard to pick up at first. How many other games have you seen that have the controls as part of the HUD?

After I was reacclimated to the controls, the game started to feel familiar. Remaining hidden and eluding enemies is much easier with the ability to hide in any group and hire people to distract the guards.  Assassinations are easier to execute without being discovered, but you are still always forced to run after the fact.  The combat is still very counter-based, forcing you to be more strategic and precise.  It is greatly improved by the ability to strip an enemy of his weapon and use it against him; however, if you didn’t enjoy the combat from the last game, there will be little here to change your opinion.

Exploration is a blast, as you can explore the culture and architecture of the Renaissance.  You can research painters and landmarks from the time, which satisfies the history nut in me.  There are also story-related unlockables strewn about the city, motivating you to explore the world more completely.

One of the story-related unlockables is a series of puzzles revealing a video that unravels more about the origin of the Pieces of Eden.  The challenge of solving the puzzles ranges from mentally stimulating to mind-numbingly difficult, as some make little sense.  They often have you translating symbols to numbers, but the symbols often don’t translate in a logical way.  As an example, one in particular (spoiler for the rest of the paragraph) had the symbols depicting a base 3 number system using dots and lines (∙,∙∙, |, |∙, |∙∙, etc.).  This much I got on my own; though I doubt someone who hadn’t studied number systems would pick up on it very easily.  What I didn’t get was why the number system started at an arbitrary point – that is, instead of starting with a single dot (∙), the series starts in the middle and wraps around.  That makes the series, from 0-9, (||, ||∙, ||∙∙, |||, |||∙, ∙, ∙∙, |, |∙, |∙∙).  There are clues in a series of several pictures – that is to say, in one picture, there’s a two, and in another, the symbol “||∙∙”.  But these pictures are small and hard to see, with the symbols cryptically hidden within.

Lastly, I have to mention that the game comes with some serious technical problems.  Ezio would occasionally lose his ability to grip some objects or would become permanently affixed to something he was climbing.  The direction at which he would jump would not always feel consistent with the direction I was pushing towards, causing Ezio to fall to his death.  Strange graphical glitches would occur as well, contorting Ezio’s body in strange directions.  It was playable most of the time, but there were areas that were consistently problematic that I had to avoid.

Assassin’s Creed II left me very satisfied, but ready for more.  The fact that we’ve explored two unique landscapes within the same story has been amazing, making me disappointed to hear that Assassin’s Creed III will continue exploring the Renaissance period with Ezio.  I remain excited about the series, however, and can’t wait to see it conclude.

Have you played Assassin’s Creed II?  What are your thoughts?

Year’s End: Changes, Changes…

At the end of 2008, I reflected on the many major events that took place within the shortness of summer. I graduated, got married, moved 1700 miles from home, and started my career at HP. After settling into California life, my wife and I began to explore the area, meet new friends, and let life slow down a little. This year looked to be piece of cake.

We then decided that, given that the economy was driving down housing cost, we would look into purchasing our first home.  We quickly learned all that we needed to know about real estate to complete a purchase, as well as just how much more expensive California is, when compared to Kansas.

After moving into our new home, we decided to make it our own by doing some renovations.  Suddenly, our nearest hardware store became a fun place for inspiration and supplies, and we were completely in over our heads in terms of the scope of our projects, some of which still have yet to be completed.

We also decided to throw in a new dog, a golden retriever named Ecco.  He’s turned out to be quite the handful, granting him the nickname “Marley Dog.”  We’re starting to get a handle on him, but I’m still missing a few pairs of socks, and our carpet is quite the worse for wear.

Finally, we decided that a new home, renovations, and a dog weren’t enough and are now expecting our first child – a girl.  We’re preparing our home for a rugrat, and I’m going to have to look into getting a shotgun so that I can practice my shooting before she brings any boys home.

No, things are not slowing down in the least.  Given that a child is on the way, things are likely just ramping up.

Professionally, this year has been just as hectic.  I’ve now been an HP employee for 1.5 years, and have a few shipped products under my belt (more on those in another post).  Being that they coincided with the release of Windows 7, many late nights were involved to ensure that everything made the Windows 7 RTM date.  Of course, this was all done far before Windows 7 hit the shelves in October, and I’ve since been occupied with patches (more late nights for that), as well as some pretty cool new things.  I’m very thankful for a job in this climate and even more thankful that I find mine interesting.

In 2008, I started a blog as a means to slowly build up content for a website primarily focused on presenting employers a place to learn about me.  You might be familiar with this blog, considering that you are reading it right now.  I’ve come to a few realizations in the year that I’ve been writing:

  1. Much to my surprise, I’ve been able to interest some people with some of the information I’ve put out here.
  2. I had forgotten how much I enjoy writing and expressing my thoughts.

Due to these realizations, I’ll be focusing my content to better help those that stumble upon this blog, as well as begin to expand on the topics I write about.  Don’t worry – I’ll stay focused on the two things I know best: software development and video games; however, I’d like to move into a few new aspects of both.  I’ll also try to better encourage my readers to participate in a discussion, rather than digest and move on.

In light of both of those statements, do any of you have topics you’d like me to delve into?  Come on, you quiet bunch, start talking!  I only make you log in to make sure my comments aren’t filled with Viagra commercials.

I hope all of you have had a good year, and wish you a good one to come.  I hope that my writing has been helpful or interesting to you in some way, and appreciate your support!

In addition to topic suggestions, feel free to add the musings of your past year.  I’d love to hear how everyone else is doing.

Video Game Review: Fable II (360)

In order to save time on my reviews, I’m going to forgo my old format and split up the things I enjoyed from the things I loathed.  Then I’ll wrap it up with the same bottom line I’ve been using.  I plan on getting on to some side projects now that I’ve finished the Fall blockbusters I most anticipated (expect a Fallout 3 review soon [SPOILER]).  Let’s hope I can get focused and get to programming.

Positives

Positives

Social Simulation
The interactions allowed with the NPCs are complex and realistic enough to be interesting, while avoiding the overbearing realism of maintaining relationships.  Things like cheating on your wives or summoning skeletons in town have an effect on the population’s opinion of you, but it never goes so far as to make you lose friends because you didn’t take them to a strip club when you were busy, GTAIV.

Making Money to Make More Money
The jobs are an easy way to take a break from exploring and do something mindless but engaging.  I could use PIP to make gold while watching some TV.  This really was just a way to get some extra cash to spend when I wanted to buy a property and jack the prices up.  I expected to have no interest in obtaining real estate, but ended up buying almost every property in the game.  The constant reward of gold piling up every 5 minutes, along with the hefty payout on game start up, persuaded me to spend the vast majority of my gold on property.

Being Hilariously Evil Actually Matters
The good/evil choice thing is a bit old hat, but Fable makes it unique by changing everything about the game based on your morality.  It affects your character’s appearance and behavior options, making your character change completely based on your actions.  The world also reflects this in the town’s crime rates, economy, and NPC behavior.  You can really get into the role of your character and see how it affects the setting.  Also, it is hilarious to kick chickens and fart on babies.

Man’s Best Friend
The dog was a great companion throughout the game, and its loyalty really made me feel for it (I killed many on its behalf – don’t ever kick my dog).  Its usefulness was also unparalleled, as it found me tons of gold.  Faced with the final choice, it was easy (considering I already owned most of the world).

Combat Subtleties
The simplistic combat gives rise to slight changes as your character levels, making the way you fight in the end completely different from how you fought in the beginning.  The rhythmic melee combat is visually rewarding, the quick shooting allows you to throw in attacks to further enemies while in the middle of combos.  The magic makes you feel empowered and offers a solid amount of variety.

Overall Personality
The entire game is presented with little seriousness, offering a fresh drink of lighthearted, mischievous fun.  Chesty is my favorite character in the whole game.  Be sure to look for him.

Negatives

Negatives

Wooden Ghost Puppets
Graphics and animations seemed to be a low priority here.  The characters moved stiffly, and clipping problems were prevalent.  The models weren’t very detailed and textures seemed boring and low-resolution.  After watching videos of Fable, I am reminded of just how much this game looks like its predecessor – and not just stylistically.  Considering the generational leap, I expected more.

Menu Interface Not So Great at the Interfacing Part
I spent so much time wandering that menu system.  Going through the whole system to find the next quest, use a potion, or change your inventory was such a bother that I sometimes would hold off on leveling up my abilities just to avoid it.

Same As I Ever Was
The lack of choice in terms of clothing and weapons stunts your character’s growth by causing you to keep everything you have.  In the entire length of the game, I went through 4 distance weapons and probably 7 melee weapons – I just rarely found anything better than what I already had.  The same went with clothing.  While the dyes were a nice touch for customization, I only found 2 outfits that I liked at all for my character.  I never found a tatoo or hairstyle that I liked (out of the 15 possible for each).

Stacking Spheres
The magic stacking was incredibly annoying.  You can have 5 spells active at a time, but you have to hold down the magic button longer and longer to traverse up the stack of spells you have equipped.  So, the spells that I wanted to use quickly I had to leave at the bottom and never use at a higher skill level.  Switching spells around was a pain (see the menu interface referenced above) so that was out of the question.  Also, when you only have low-level spells, you can only equip one at a time.  This drew me away from using magic for a long time.

The Fable Part Sucks
The story in Fable 2 is absolutely boring.  I often forgot why I was fighting the antagonist and never cared about any of the main characters.  Some lady your character doesn’t (and never does) really know, despite the player knowing, tells you where to go and what to do without giving you any motivation to do so.  [Spoiler possibility]  After finding some allies, you don’t get anything from them except a cinematic which claims to make you powerful enough to fight the end boss, which really changes nothing about you.  Then, the game ends abruptly and with no climax.

The Bottom Line

The Bottom Line

Worth the Purchase
Fable 2 had its fair share of problems.  I would definitely say that Fable was a better game for its time, which left me a little disappointed by Fable 2.  However, it was a fun experience that kept me entertained through the entire game.  I don’t see myself coming back to it soon, but the possibility is there.  I would’ve definitely gone back if the coop were worth it, but oh well.

Your thoughts?

Just a Bit: Copying Text to the Clipboard

A bit is the difference between true and false

So when working on this blog sometimes I spend a little too much time getting code together. I’m sure I’ll get better, faster, and care less about what it looks like over time.

Until then, I’ll use these ‘Just a Bit’ posts. The idea being that I post a tiny bit of code that I found useful recently. Sure, about 400,000,000 pages can be found elsewhere with this information, but they don’t have clever wordplay in their titles!

So, the first “Just a Bit” is using .NET to add text to the Windows clipboard.  First, put together a string using the StringBuilder class – the reason for this is that any formatting characters (‘\n’, ‘\t’, etc.) won’t necessarily translate correctly onto the clipboard correctly if you simply put them into a string.  Finally use the System.Windows.Clipboard static method SetDataObject to copy the text to the clipboard.

// build the string, with new lines between entries
StringBuilder clipStr = new StringBuilder();
foreach (string itm in TheItemCollection.Items)
{
	clipStr.Append(itm);
	clipStr.Append("\n");
}
// copy to clipboard, clear the box, and notify user
Clipboard.SetDataObject(clipStr.ToString(), true);

Enjoy that one.

Currently Playing…

From time to time I might update on what game(s) I’m currently playing and any thoughts I have on them.

Games right now:

Ninja Gaiden 2

I’m finding this a lot more fun than I expected.  Granted, I’m playing in the lowest difficulty – but I didn’t want to get too frustrated with it.  I’m finding it a bit too easy, but I prefer that over giving up the game because it eventually gets too frustrating to have fun with it.  The camera is pretty bad – you really have to manage it a lot.  The character designs are absolutely ridiculous, but I guess that’s how NG fans like it[, JIM].  The story is equally forgettable.  The combat, however, is a lot of fun.  It’s fast-paced and brutal, with a pinch of grace tossed in.  I haven’t really used any weapon other than the Shredder gloves (whatever they’re called) since I got them, though…which makes me wonder if there isn’t too much balancing on the weapons, or if my play style just makes them work better for me.

Resistance: Fall of Man

I just started on this on Friday night.  I bought it because I felt like getting a new game and thought expanding my PlayStation 3 library to 2 might make it more worth it (haven’t bought too many Blu-Ray movies yet).  I can tell that its design is a bit dated, but I’m enjoying it overall.  I haven’t played too much of it, so I can’t comment much on the details.  The only weapon I’ve gained is the standard issue gun to the Chimera.  It’s pretty interesting – utilizing the secondary fire as a tag to attract bullets to a la The Fifth Element.  I played a bit of the multiplayer, and the spawn points are atrocious.  I didn’t play long enough to find out anything else about it.

Dead Rising

I’m not sure if I should leave this on the list, as I’m not too sure I’ll ever go back to this game.  Lord knows I’m late to the party, but good God is the save system bad in this game.  I’m also missing the 2 years of third-person control standardizing that has happened since its release, as the controls are definately not optimal.  I loved the demo, because the zombies were hilarious and I could find lots of things in the mall that made killing the zombies even more fun.  However, with the objectives added in with the time limits, I’m finding all the charm draining.  It also drives me crazy that in the first area there aren’t any good stores around.  I took this out of my tray and started on NG2 a week and a half ago, and with Fallout 3, Fable 2, and Mirror’s Edge approaching, I’m not entirely sure I’ll ever give this game another shot.  Lord knows I definately won’t be getting the X-Buster.

Why, hello there. I didn’t hear you come in.

Probably because this is the internet.

Welcome to my blog!  Name’s Andrew Eichacker.  I’m 22 years old as of this writing (born in December 1985) and originally from Wichita, KS.  In the summer of 2008, I graduated from Wichita State University with a BS in Computer Science, got married, then moved to Silicon Valley to start as a Software Design Engineer at HP in Cupertino, CA. I’m currently working on the TouchSmart PC‘s touch applications.

I plan to use this blog as a means to share a few things:

  1. what I learn in the realm of Software Engineering
  2. my views and ideas regarding things I’m interested in
  3. any personal experiences or thoughts I feel compelled to share
  4. whatever strange things I find around the internet

I hope that you’re able to gain something from this blog. If not, no worries. There’s plenty of space on the internet for another worthless blog.

🙂