Monday, September 23, 2013

Lighting the Batsignal

A while ago, I tweeted that Dan Solovay had asked me a question about Sitecore, and that I had the answer. Because Dan can't be the only one with this question, I figured I should post the question and answer here.

The question had to do with item sorting. By default, when you insert a new item, Sitecore will sort it alphabetically among the existing siblings. You can then move the item up or down in the content editor (via the sorting options or the super cool keyboard shortcut, ctrl + shift + alt + up/down).

There is another option built into Sitecore for sorting items. You can configure Sitecore to show the items in date order (which is what Dan wanted). However, when you enable this option, you lose the ability to manually override the sorting (which is not what Dan wanted).

And thus, the Sitecore MVP came to me, using the call normally reserved for either trouble in Gotham City or help needed from a Sitecore MVP.

My suggestion was to add a processor to the item:added pipeline and, in that processor, adjust the sort order field on the items. It's more work than a configuration change, but it definitely would work.

I threw together some sample code that would just make sure the new item is added at the top of the item list:

public class EditSort_ItemAdded
{
  public void OnItemAdded(object sender, EventArgs args)
  {
    if (args == null)
      return;
    var item = Event.ExtractParameter(args, 0) as Item;
    if (item == null)
      return;

    SetSortOrder(item);
  }

  protected void SetSortOrder(Item newItem)
  {
    var parent = newItem.Parent;

    var children = parent.Children.ToList();

    int minSort = Convert.ToInt32(children.Min(c => c.Appearance.Sortorder));

    using (new Sitecore.SecurityModel.SecurityDisabler())
    {
      newItem.Editing.BeginEdit();
      newItem.Appearance.Sortorder = minSort - 10;
      newItem.Editing.AcceptChanges(false, true);
    }
  }
}

So that's it. Certainly not an epic save, and I'm not sure it's the best answer, but it made my day nonetheless.

Sunday, September 22, 2013

After All, Number One, We're Only Mortal

I posted this on Facebook a few days ago, but I figured I should post it here as well.

So, I guess it's time to go loud with this. My dad has been suffering from brain cancer for almost two years, but it seems like the cancer is going to win. It's glioblastoma, a particularly vicious cancer, but we thought dad had a better chance because we caught it very early. However, despite surgery, chemo, radiation, clinical trials, and even homeopathic remedies, the cancer still won.

I wanted to share this publicly because I know that I've been acting different lately, and people have begun to notice. Dad wanted to keep this quiet because that's the kind of guy he is. But I think at this point, it's worth letting everyone know.

Before anyone asks, I can say there's not much that anyone can do to help out. If you're near my folks, I'm sure they'd appreciate a visit. Other than that, please keep dad in your thoughts and (if you're religious) prayers.

Thank you to everyone who has been helping us out already; the level of support we've received has been wonderful.

Dad's been an incredible father to us all; we love you and will miss you, old man.

Post title is one of dad's favorite quotes from Star Trek. 

Tuesday, September 3, 2013

Star Trek's Best Non-Captains

Trekkies have long argued about who is the best captain, Kirk or Picard, and what is the best ship. I'm not going to wade into that mess (Picard, 1701-A), but I was thinking: no one ever talks about the rest of the crew. It takes more than a captain and a ship to save the galaxy.

I've got every crew position listed here, as well as some other non-positions that exist in most of the shows. I'll be looking at the five main shows that got significant airtime (so I'm not including the Animated Series or Final Frontier), as well as the movies: Star Trek: The Original Series (TOS), Star Trek: The Next Generation (TNG), Star Trek: Deep Space Nine (DS9), Star Trek: Voyager (VOY), Star Trek: Enterprise (ENT). It's worth noting that TOS and TNG have an unfair advantage, having by far the most screen time.

N.B. Sometimes I had to make assumptions as to who was in charge of a particular position. In these cases, I italicized the character's name to make it clear they are not a clear choice.

XO: Spock, Riker, Kira, Chakotay, T'Pol

Is there any contest?

Spock
There is an old Vulcan proverb: Only Nixon could go to China.
I grew up with Riker as the XO I knew and loved, as TNG was the Star Trek on TV when I started watching. But then I saw Star Trek VI in the theater. Spock would win this competition based on his performance in that movie alone. If you need me to explain any more of why Spock wins here, you should just stop reading and watch Star Treks II, III, IV, and VI. Or, hell, the Reunification two-parter on TNG.

I'd give Kira the nod for second place. She makes an excellent counterpoint to Sisko's emotional wrangling and firm commitment to the principles of the Federation.

Science Officer: Spock, Data, Jadzia Dax, Kim, T'Pol

Believing oneself to be perfect is often the sign of a delusional mind.
Apparently, humans are not all that good at science. This one is a tough one. I don't really want to give Spock wins in the first two categories, but he's such a great science officer. In the end, though, I have to give Data the nod, as he not only is the science officer, but is a science experiment himself.

Chief Engineer: Scott, La Forge, O'Brien, Torres, Tucker

I love Geordi. Love him to death. I love LeVar Burton too. I mean, look at this tweet:


Amazing, right? The problem is, La Forge is a fairly one-dimensional character. I blame the writers for this. There are only a few times when he gets an actual story for himself. He has the Brahms storyline, the bit with his mother, and a few other notable story moments (his eyes on the Ba'Ku planet). Interestingly enough, one of his best episodes is where he teams up with our winner, Scotty.

I'd like to get my hands on her "ample nacelles," if you pardon the engineering parlance.
This is the first award I'm giving that was significantly influenced by the alternate timeline of Star Trek XI. Simon Pegg nails it; he must have studied James Doohan's performances religiously. Between the canonical and inaccurate "Beam me up, Scotty," the classic Scottish accent, and all of the pop culture references, Scotty has to be the winner for Best Chief Engineer.

RIP, James Doohan.
Chief Medical Officer: McCoy, Crusher/Pulaski, Bashir, EMH, Phlox

This was a tough one, but not because they are all great. Really, they all are pretty meh. They all have their perks. McCoy is a great ornery bastard and has the classic line: "Dammit Jim, I'm a doctor, not a ____!" Crusher has the interesting backstory with Jack and Picard. Bashir has the whole genetically engineered storyline, along with the Section 31 links and brofriend O'Brien. The EMH's struggle with transformation from an emergency short-term backup to a full-time chief medical officer. And Phlox well, Phlox is just this cuddly Denobulan with a cheery bedside manner and three wives. 

In the end, the doctor that I'd most want treating me is the EMH.

Please state the nature of the medical emergency.

Tactical/Weapons: Checkov, Worf/Yar, Kira/O'Brien/Worf, Tuvok, Reid

If you were any other man, I would kill you where you stand!
Worf wins this category because he's clearly the most badass of the options. As much as I love Checkov, he was kind of a wuss as a weapons officer. Tuvok was more interesting in his role as Janeway's 2nd officer, and Reid, well, kinda sucked. Worf runs tactical on the Enterprise-D, and he captains the Defiant. He's a badass Klingon warrior. And this all in spite of getting shot down left and right.

Helm: Sulu, LaForge/Ro/Crusher/Redshirt, N/A, Paris, Mayweather

OH MY
From this point onward, the competition thins, as not every crew has a reasonable competitor for the position. And on top of that, two of the three full-time helmsmen are boring characters (Paris and Mayweather) That said, Sulu doesn't need the reduced competition to win this category. To be fair, he wasn't that memorable in his TV series... well, except for one notable episode:

The only Starfleet officer to go topless (beside, you know, the dozens of times Kirk loses his shirt)
But it's the movies (1-6 and prequels) that nail it for Sulu. Between freeing his captainsaving his former captain, as well as wielding the best future sword since the lightsaber, Sulu wins best helmsman.

Security Officer: ??, Worf/Yar, Odo, Tuvok, Reid

Only one of these people has the sole responsibility of security, and he's our winner.

Doctor, if a Klingon were to kill me, I'd expect an entire opera on the subject.
Constable Odo is an amazing security chief. Hell, if we only had season one of DS9 to rely on, I'd still pick Odo for the way he deals with Quark.

Counselor: McCoy, Troi, Ezri Dax, Neelix, ??

I grew up with Counselor Troi, but she seemed more useful to the ship with her empathic abilities than with her actual counseling. One of these made a very important contribution to their crew in the counseling field...

As they say on Talax: "Omara s'alas - Good news has no clothes." 
Technically, Neelix was the (self-appointed) morale officer, not a counselor. Still, I'd argue he did more for his crew's mental health than any of the official counselors (especially Ezri).

Communications Officer: Uhura, Sato

I guess Starfleet's universal translator tech improved such that communications officers were no longer necessary by the time of TNG. Makes sense; the universal translator was improved to the point where a dedicated communications officer was no longer required. I'm throwing a curveball here:

Math is just another language.
Uhura is the easy choice, but if you took the time to actually watch Enterprise, you'd see that not only is Sato a deeper character, but she's also much more badass at the whole language thing. Remember Star Trek VI? Uhura couldn't even speak Klingon (of course, the alternate-timeline Uhura can). In the end, only one communications officer became empress:

You're speaking with Empress Sato. Prepare to receive instructions.
Token youth: Ensign Ricky Redshirt, Wesley, Jake, Kes, Mayweather

OK, real dregs here, but this category must be addressed. As much as I love Wil Wheaton...

But I'll always remember it as something more - as the place I learned that the line between courage and cowardice is a lot thinner than most people believe. 
Jake grows up. He's a little kid at first, pissed that his dad moved him across the galaxy... again. But he gets used to the station, makes friends, and makes the bold decision to stay on DS9 as a reporter when the Dominion took it back over.

Comic Relief: Checkov, Barclay, Quark/Rom, Neelix, Trip/Phlox

This is a real tough one. Really tough. I was all set on my choice before I spoke to my friend/best-trekkie-bro Joe, and he almost convinced me to change. Almost.

Doctor! My capillaries are shrinking! 
Quark and Rom are designed for humor, and they are hilarious. If you think I'm wrong in choosing Reg Broccoli, I won't begrudge you. But Barclay is hilarious without trying to be, and he's far more human. AND he was on two series', TNG and Voyager (yes, Quark had a cameo in the premiere of Voyager, but that doesn't really count).

Non-Spock What-Does-It-Mean-To-Be-Human Character: Data, Odo, Seven of Nine/EMH, T'Pol

It seems that every series after the original had a character who struggled with humanity. The struggle was more prominent in a few of these characters, but in the end, it was always Data.

0.68 seconds, sir. For an android, that is nearly an eternity.*
If I need to explain this, you're not a trekkie.

* Of all the images I got for this post, this one was by far the hardest to source. Normally, between Google Images and Memory Alpha, I had no problem getting the picture I wanted. However, I was only able to find two versions of this shot; one that was badly distorted, and one that had anti-hotlink text pasted all over it. In the end, I had to get out my DVD (it was still in the shrink wrap; I hope it wasn't valuable) and take my own screencap. Though, as I type this, I just realized I get the movie for free through Amazon Prime. Oh well. 

Non-Kirk/Picard Captain: Sisko, Janeway, Archer

Hey, the other captains need some love, too! These three all have great traits. Sisko embodies the moral philosophy of DS9 (more Kantian than the others) by being willing to do the dirty work to get the right outcome. Janeway is the exact opposite; she never betrays her moral compass on the way back to the Alpha Quadrant (though she does lose it when dealing with the Equinox). And, though he gets a lot of flak, I have to give Archer credit for being a truly dynamic character. He starts off as this starry-eyed captain, thinking about how great the world is. Then the Xindi come and bust down humanity's door, and he transforms into a badass dude willing to do anything to save earth.

There's coffee in that nebula.
I choose Janeway because of her moral compass and because she brought her ship and crew back home from 70,000 light years away. I wouldn't argue if you prefer Sisko, however.

Sex symbol: Uhura, Troi, Mirror Dimension Kira, Seven of Nine, T'Pol

You know I had to go here, right? Well, here it is. Who's the best sex symbol on all of Star Trek? Well...

One or both?
I bet you didn't see that coming, did you? I mean, he made an asexual being attracted to him. How much more sexual can you get?

Tuesday, August 27, 2013

Testing, Testing, Can You Hear Me Now?

My mother gave me her old Kindle Fire (first generation) a few months back, and I've been trying to find new ways to use it. I removed the default OS and installed Cyanogenmod (as it was the only mod I had any experience with). First, I just used it as a sort of phone extension; I'd read my RSS and reddit on it on the train. Then I started reading comics on it (Komik is a great app for that). But I got to thinking: shouldn't I be able to do more with a tablet?

So I looked into getting a keyboard case for it. Turns out, this became a far more complicated affair than I originally thought (I may detail this process in a future post). However, after much pain and suffering and swearing, I finally got a keyboard case working!

And, as you may have suspected, this post was authored entirely on the tablet. I hope that this will help me blog more, as I should be able to write stuff while on the train.

Monday, May 20, 2013

The XY Problem and the Five Whys

Have you ever heard of the XY problem?
What is it?
The XY problem is asking about your attempted solution rather than your actual problem.
That is, you are trying to solve problem X, and you think solution Y would work, but instead of asking about X when you run into trouble, you ask about Y. 
The Problem
This can lead to frustration by people who are trying to help you solve the problem because by the time you ask about it, the solution that you need help with might not have any obvious connections to the problem that you are trying to solve.
It comes up a lot, and it's something you should try to recognize both in yourself and in others. I recently encountered it with a coworker of mine:
Coworker: Have you used the HtmlAgilityPack?
Ed: a little

Coworker
: I can't get it to work.
Ed: what part of it

Coworker: Sitecore apparently has it included?
Ed: it does

Coworker: But I can't reference it.
I was perplexed at this point. HTMLAgilityPack is an assembly included by default in Sitecore installations. In fact, Sitecore itself relies upon it and will not work without it. So I probed a little deeper:
Edthe project should already include a reference to it
Edok
Edso, when you reference it with the using statement, its just not available?
Coworker: Oh.
Coworker: It looks like the sample code I got needs a later version?
Now we're getting somewhere. The problem wasn't that my coworker couldn't get the HTMLAgilityPack to work. Instead it was that he had the wrong version of the assembly. We then thought about upgrading the version of the assembly, but before we did, something struck my mind:

Ed: do you need the latest HTML agility pack? 
Coworker: Probably.
Coworker: At least, the one included doesn't have methods I need.
Ed: what are you trying to do
Coworker: So, I'm trying to take a substring of content, to display in a "Featured Pages" section.
Coworker: But if there are any tags that open in the substring, but close after, the formatting breaks.
Now we're really getting somewhere! We now were both on the same page about what he was trying to do (already a far cry from "I can't get the HTMLAgilityPack to work"). From here it was just a hop skip and jump away from monkey-patching in the method he needed from the newer assembly (for those with a desperate need of closure, the method was "Descendants()"). 

This whole exchange reminded me of the Five Whys:
To reach this sweet spot, we borrowed an idea from Sakichi Toyoda, the founder of Toyota. He calls it Five Whys. When something goes wrong, you ask why, again and again, until you ferret out the root cause. Then you fix the root cause, not the symptoms.
This is basically what the XY problem boils down to, a lack of finding the root cause/problem. However, simply asking "Why" won't really get you to the proper solution in the XY problem case. Employing pure "Five Whys" in this situation would not have gone so well:
  • I can't get the HTMLAgilityPack to work. 
  • Why? It won't compile.
  • Why? The compiler says the methods I need from sample code I found aren't there.
  • Why? The sample code was using a different version of the HTMLAgilityPack. 
  • Why? I don't know, man, ask the author of the sample code!
  • Why? I can't read the man's mind! I don't even know him!
I find it helps to modify the question from "Why?" to "Why is that important?" or "How so?" or "What do you really mean?" when just asking why wouldn't work. . 

To summarize my interaction with my coworker in my modified "Five Whys" method (call it the XY5Y method) would look like this:
  • I can't get the HTMLAgilityPack to work. 
  • Why? It won't compile.
  • Why? The compiler says the methods I need from sample code I found aren't there.
  • Why? The sample code was using a different version of the HTMLAgilityPack. 
  • How do we fix this? Let's upgrade the version of the HTMLAgilityPack.
  • How would that solve the problem? It would give me the methods I need to solve my problem.
  • Are the methods all you need? Well, yes...
  • Is there another way to get the methods? We could disassemble the newer version of the HTMLAgilityPack and monkey-patch in the methods we need
  • Profit!
If you find yourself working with a new programming language or framework (or really a new anything), make sure to question yourself (or your comrade) to find what the real problem is. 

Wednesday, January 16, 2013

Potpourri

I've been playing a lot more PC games lately. I think the reason is a combination of a more powerful computer, really good PC games coming out, and awesome Steam sales and Humble Bundles. Seriously, I think I've bought more quality games in the past six months than I have in the previous six years. The big winners are DayZ (Arma2 mod), Mark of the Ninja, and FTL, but there are plenty more I've played and loved. I intend to give my impressions on some of those games here (Ryan has a great DayZ story here; I was the friend in the story) in the future, as well as maybe some other original content. It's also the first time I've been buying games on spec with the intention to play later.



I have a half-dozen unfinished blog posts about politics that I will never finish. I get really fired up about some things in Washington, and inevitably when I start researching them for a blog post, I find the "answer" I thought is not so clear. For example, I wrote 750 words about job creation, thinking I was some kind of straight-talkin' answer man. Then I started reading to see if I made any sense. Turns out, economics is hard. I did learn that while there is not enough economics in politics, there is entirely too much politics in economics. Not to mention the old joke of "put 10 economists in a room and you'll get 13 different answers." I started regularly reading Paul Krugman's blog on NYTimes; that should give you a good idea of where my politics lie. 



Parenthood is a trip, man. Mia is learning how to manipulate us. For example, she learned that we reacted strongly when she said she was hungry. So now, if she wants to delay us from doing something she doesn't want, she says "I'm so hungry!" What a punk. Pretty darn smart for a 2.5 year old. (She just did it again while I was writing this post.)



I spent about two hours shoveling snow the other day. My neighbors all have snow blowers, but I kind of prefer to do it myself. Part of it is definitely machismo crap; I'm the youngest father on the block, so I can be all "Look at me, the young strong man." But I think the greater part is the serenity I get while shoveling. The task is sufficiently mundane that my brain can wander freely. It's like when I used to drive places with my family when I was a kid, I would love to just stare out the window and just look. Sometimes my mind would wander to the point where I was totally dazed out; I'd snap back to reality and wonder what I was thinking about. I don't really have those moments anymore, but shoveling snow gets me close to them.



The big three games (for me) that came out at the end of last year (Call of Duty: Black Ops 2, Halo 4, and Assassins Creed 3) so far have been a mixed bag. BO2 is good, H4 was mediocre, and I've barely played AC3. I've probably played more FTL than all of them combined. 

Tuesday, November 6, 2012

Monday, July 9, 2012

Getting in Shape: C25K

I haven't done much exercise at all since my ill-fated attempt to run at lunchtime back in January. I recently heard about this training program called "C25K", or "Couch to 5K". It's a training program designed to get you from doing no physical activity whatsoever to running a 5K in nine weeks. It sounded interesting, and a few of my friends (Annie and Travis) had already heard of it or started it. There's also a subreddit for it, so I figured I had some support.

I had put off starting the program because I knew that if I put too much stuff on my plate, I could get burned out. I finally cast that burden off and did the run Sunday morning (using a nifty Android app called RunDouble). It felt good; I never felt overly extended, but I was definitely tired and sore at the end.

The best reward was using the garden hose on my head. Feeling that cold well water hit my hot head was such a rush! Highly recommended.

Tuesday, June 12, 2012

Belated Gaemzcast Annoucements

So I forgot to announce a few podcasts here. So here they are:

Gaemzcast Episode 4: http://gaemz.net/podcast/gaemzcast-may-28th-2012/
Gaemzcast Episode 5: http://gaemz.net/podcast/gaemzcast-june-1st-2012/

We're recording episode 6 tonight, and we have a lot to discuss (e.g. ALL OF E3).

Tuesday, May 22, 2012

Gaemzcast: Episode 3 is live!

You can listen to it here: http://gaemz.net/podcast/?p=episode&name=2012-05-22_03.mp3

Sorry it's a few days late. Blame me, my schedule was messed up.

Monday, May 21, 2012

Mass Effect 3 Ending, and Why I Liked It

If you are a gamer, or a friends of a gamer (unless you've been living under a rock), you've heard about the uproar about the Mass Effect 3 ending. If not, read the brief summary below (spoiler warning: if you've not played any of the Mass Effect games, do not read any further). I'm a little late to the game here, but it took me a while to gather my thoughts about this.

Thursday, May 17, 2012

Gaemzcast: New Podcast

We did it again! Gaemzcast #2 is live: http://gaemz.net/podcast/?p=episode&name=2012-05-14_2012-05-14.mp3

We intend for this to be a weekly podcast published on Sundays or Mondays (I'd love for you to be able to listen to it on your way to work Monday morning). We're still working out the audio-editing kinks, but we'll get the process slammed soon.

Quick Hit: This is Why I Love Twitter

I mean, seriously. Where else can you find an interaction like this online?






































Tweet links:
https://twitter.com/#!/jongalloway/status/202888840258658304
https://twitter.com/#!/codinghorror/status/202911436958203904
https://twitter.com/#!/haacked/status/202917830130270208
https://twitter.com/#!/bradwilson/status/202937912239730690
https://twitter.com/#!/codinghorror/status/203040647123443713
https://twitter.com/#!/shanselman/status/203040834533330944

Monday, May 7, 2012

New Podcast Up

I hosted a podcast with my e-migos Joe, Ryan, and Milton this weekend. You can check it out here.

Not much more to say. We've been trying to arrange a steady podcast for a while. With my classes finally being over, I offered to host the podcast and edit the audio. Of course, my final assignment got in the way of me editing the audio, but Joe stepped up and did the editing. 

So download it, listen to it on the train or at the gym. It's not half bad.

Monday, April 9, 2012

Digital Rights And You

I got a Kindle for Christmas in 2010 from my parents. I was a little torn at first, even though I had asked for one. I am a big-time book reader, but I wasn't sure I was ready for the transition to e-books. However, I was converted very quickly the first time I used the text search to find a passage I wanted to reference. Having my entire digital library in my Kindle (and on my phone and my laptop) is pretty amazing. I was really excited when my grad school told me I could get most of my textbooks in e-book form. I still buy paper books when I like a book enough; I'll buy the nice hardcover edition so it lasts a long time.

However, the honeymoon ended when I finished reading my first novel on the Kindle and decided to lend it to a friend, like I often do with good books when I'm done with them. Except the Kindle doesn't allow lending*. Unlike the first-sale doctrine for physical media, consumer have few rights with digital media:
Digital music downloads (just like movies and TV shows and books) come with a completely different, much more limited set of rights. If you buy a digital album from an online service such as the iTunes store, Amazon MP3, or eMusic, you have no legal right to lend that album to a friend, as you could if you had purchased a CD. If you decide after a few listens that you hate the album, well, tough. You can’t resell it. You can’t even legally give it away. 

--Ed Bott, ZD Net
* Technically, you can lend books you bought licensed from the Kindle store. But you can only lend them out once, for 14 days, and the publisher has to explicitly allow lending. Of the 42 books I have bought or received as gifts, only 3 of them are lend-enabled. 

For lack of a better term, that sucks. When I imagined the transition to a digital world, I always assumed the technology would be available to track who owns what but also to allow us to transfer ownership of content.  And it seems that Amazon has that technology already with their Kindle Library and the limited lending it supports. So if it's not the technology, what is the problem?

It's the publishers.

You've heard of the phrase "Innovate or die"? Well, the publishers are living by "Litigate or die". When a business model enters the decline phase, a company has a few possible options. It can innovate, move into a different business, or wind down and eventually cease to exist. Or it can litigate the crap out of the new business that is replacing it.
From "Darwin and the Demon", HBS, July 2004, Geoffrey Moore


















Let me be clear; books are not dying. E-book readers have yet to be able to capture the look and feel that paper books are able to present. But mass-market paperback books, those $7.99 books whose pages yellow after a few weeks, might be dying, and that scares the publishers. Of all the books I've read recently, I've only decided to get the print edition for two of them (slide:ology and Anathem, though I bought the e-book of Anathem first, then decided to get the hardcover for posterity). That means that I am not acquiring roughly 80% of my books in e-book form.

This is a major shift, and it scares the publishers. After all, what's to stop someone like Janet Evanovich from making her own ebooks and cutting out the publisher completely? The only thing right now stopping her and other authors from doing that is the publishing agreement that publishers require authors to sign to actually publish the book. What happens when the next Suzanne Collins comes along and sells their book entirely through Lulu.com?

I don't know what the answer is, but I know that the present state of e-books has some major flaws, and I hesitate to recommend to anyone to move full force to e-books.



Of course, as I've been chewing on this post for a few week, Jeff Atwood comes along and writes one of his brilliant posts on e-books, covering a lot of what I covered. His post is a great read, highly recommended. 


And then this big DOJ lawsuit hit the waves too after I wrote this post. Damn my insistence on posting on Monday mornings. Still, the lawsuit backs me up. 

Monday, March 26, 2012

How to Fix Call of Duty, Part 2: What Can We Do?

In Part One, I talked about how Activision/Infinity Ward/Treyarch (from now on, collectively referred to as "the publisher") should utilize bungee balancing for short-term balance fixes while also spending the time and money to make a long-term commitment to the CoD community. In this, part 2, I'm going to tell you what you can do as a player to help fix Call of Duty.

Maybe you've heard the term "dollar votes" before?
The dollar vote is a concept economists use to describe how, in a market economy, consumers effectively vote for products—as well as how those products are produced, transported, marketed and sold—by spending their dollars. Through our “consumer sovereignty” we have the power to make our preferences known, one dollar vote at a time.
Every time you buy a CoD game, you are explicitly endorsing the publisher's business model. It doesn't matter if you boycott buying the game on release day, or you wait one month after release to buy the DLC*. They get the money. The publisher is always thinking about the money, especially for publicly traded companies (EA, Activision Blizzard, Capcom, Square Enix, Take-Two, Microsoft, and Ubisoft are all public companies).

* It does marginally matter if you wait to buy the game, but not enough to actually make a difference. 

The only way you are reasonably going to get to companies is to hit them where it hurts: the balance sheet. And there's only one way to do that.

Don't buy the game (new*).

* Buying the game used usually doesn't give the publisher any money, so you can buy it used without helping the publisher. Of course, for you to buy it used, someone has to buy it new, so you're still supporting the system... sort of. If you can't live without the game, then buy it used.

Unless, of course, you need an online pass or other code to make the game work for you. Then the rule still applies: don't buy it.

You may be asking, "But Ed, MW3 sold eighty bajillion copies in the first minute of sales. How can one person not buying a game make a difference?" And you're right; if only one fewer person buys a game, the publisher won't notice. But you can't use that excuse to justify buying the game in spite of your own protests. It's a concept similar to Kant's categorical imperative:
A moral maxim must have universality, which is to say that it must be disconnected from the particular physical details surrounding the proposition, and could be applied to any rational being. This leads to the first formulation of the categorical imperative: "Act only according to that maxim whereby you can at the same time will that it should become a universal law without contradiction."
In short, this means that you can only justify your actions if, were everyone were to do the same thing, you'd be cool with the outcome. The classic example is stealing: you may steal something because you think only stealing one thing isn't going to hurt anyone. But if everyone was OK with stealing, then everyone would steal, and property as we know it wouldn't exist.

Applied to games like Call of Duty, if you think there is a problem with the game, you have to not buy the game, period.

Now, I don't really think we (meaning myself and the people who I think might read this blog) are going to convince the millions of 12-year-olds to not buy the next Call of Duty. But it's entirely possible that, if the demographic of CoD gamers became increasingly underage gamers, Activision would be forced to change. Additionally, if you don't buy CoD, you might buy something else, like Medal of Honor, Nexuiz, Battlefield, Bioshock, Metro 2033/Last Light, or Quake. And you'd support that game, rising it up. And maybe, just maybe, things might change for the CoD titan.

Addendum: Since I started writing this post, Mass Effect 3 was released. And gamers played it and beat it. And complained about the ending. Loudly. And Bioware/EA looks to be actually changing their tune about the ending, possibly changing it. Nothing is certain yet, and The Consumerist summed it up well:
What is for certain is if BioWare and EA truly want the entire gaming world to hate them, they will create satisfying endings — and then charge a pile of cash to download it.

Monday, March 5, 2012

Please Send Me Your Updated Contact Information

I started seeing a chiropractor recently. When I created the contact for them in my Google account, I opened the chiropractor's website and entered in all the data I could find: phone, fax, address, website, email, company name, anything I could find. Then, three weeks later, I had to update the address in my contacts because they relocated. And that was annoying!

I have 785 contacts in my Google account. On a cursory glance at the first 20, at least 5 of them were either entirely out-of-date, contained inaccurate or old information, or were for people I don't even recall adding. The data in those contacts wasn't always stale and incorrect, but people change phone numbers, employers, addresses, and emails.

As I was fixing the chiropractor's contact details, a thought came to mind. I am making a duplicate copy of the chiropractor's contact details. The original is with the chiropractor themselves. My programmer brain said to me, "Why don't you just link to the existing data rather than create your own copy? It's just reference data." Just at that moment, I attempted to log into Stackoverflow and was redirected to the Google 3rd-party authentication page. And I realized, "This is it." Use something like OAuth, but for contacts. Let me subscribe to a person's contact details. They can manage that with whatever site they want. Facebook and Google+ offer this sort of management with lists and circles, respectively. But don't make me use these sites. Make it an open protocol that any site can implement. Then I can just put in an email address and BOOM I am subscribed (the domain of the email can be the key for what site to check).

I suppose that Google+ and Facebook are sort of trying to do this. If you friend someone on Facebook, and if that person keeps their contact details up-to-date on Facebook, and you use some service to connect Facebook to your contact list (Android offers this natively, I assume iOS and WP7 have similar tools), you can approximate the behavior I'm looking for. But it's kind of a hack; specific APIs and whatnot.

webfinger is much closer to what I'm thinking about, but it lacks the privacy controls natively (as far as I can tell). Also, it's probably too neckbeard for widespread adoption.

Really, this is a pet peeve of mine more than a serious issue. But the technology exists to make contact management really simple. Let's do it.

I have no fun images or quotes for this post. I apologize. Here is a funny image I made to describe to my boss what the future looks like:


Monday, February 27, 2012

Upcoming on IPROD

No post this week; I was working all weekend on a production deployment. But here's a heads up on what I plan to publish in the near future:

  • My thoughts on Google Contacts and managing digital contacts in general
  • How to Fix Call of Duty: Part 2
  • Musings on digital rights and the future
  • Ebooks and me
  • A look at loss from the perspective of books and media
I'll just add this as the only original content for today: make checklists for everything. If I had made an accurate checklist for this production deployment, then you might have been reading a real blog post right now.

Tuesday, February 21, 2012

Not a Book Review: Hunger Games

I just finished reading The Hunger Games by Suzanne Collins (at the recommendation of i3ears). This book filled me with that rare combination of delight and rage. Let's start with the delight.

N.B. This post is has some spoilers, so I'm putting the rest of this post below the fold. You have been warned.

Monday, February 13, 2012

How to Fix Call of Duty, Part 1: What Can They Do

I have been a Call of Duty (CoD) fan since Call of Duty 4: Modern Warfare (CoD4), the game that somewhat revolutionized the way first-person shooters were played (things like killstreaks, perks, weapon attachments). I've dutifully bought every CoD game on release day since then. I even preordered MW3's "Hardened" edition (and I hate preordering games). So I can rightfully say that I'm a CoD fan.

The gaming community is pretty torn about CoD. Hardcore gamers swear that CoD caters to noobs too much. CoD gamers say that competing titles are too slow or complicated... or they don't say anything at all, as CoD is pretty much the FPS king at the moment. But there are always people arguing about CoD; it's a very polarizing franchise. CoD can even be polarizing to a single person; I am torn about MW3 and the future of the franchise.

CoD's publisher, Activision, and primary developers, Infinity Ward (IW) and Treyarch, have continued to innovate on with each new CoD game. World at War added Zombies mode and co-op play; Modern Warfare 2 added customizable killstreaks, pro perks, and spec ops; Black Ops added CoD points, wager matches, theater mode, and improved scoreboards. Each game also came with new or updated weapons and game modes. None of these updates substantially changed the game in the same way CoD4 did, but this incremental innovation* was welcomed by most gamers. The latest edition of CoD, Modern Warfare 3 (MW3), also brought some innovation in the form of new game modes, "pointstreaks" improvements ,and Survival mode.

* A primer on incremental innovation vs. radical innovation, from the excellent book Making Innovation Work by Davila, Epstein, and Shelton:
Incremental innovation leads to small improvements to existing products and business processes. It can be thought of as an exercise in problem-solving where the goal is clear but how to get there needs to be solved. At the opposite end, radical innovation results in new products or services delivered in entirely new ways. It can be thought of as an exercise in exploration where there might be something relevant in a particular direction but what will be found is unknown. 
However, what really has bothered many of us CoD gamers is that each new CoD title brought with it a substantial set of negatives along with the innovations. World at War had severe balancing issues, MW2 had hackers and its own balance problems, Black Ops had terrible lag/network and balance issues, and now MW3 suffers from challenging spawns, lag/network issues, and, again, balance issues. Why can't each version of the game be better and stronger than the last? Why does each title have to take two steps forward and two steps back at the same time? It's gotten to the point where people still play older versions of CoD because they can't stand the newer versions*. In fact, Black Ops, MW2, and CoD4 all appear regularly on the top 20 weekly Xbox Live titles list.

* Check out i3ears' "BEAR to COMMANDER" series for proof (and some laughs too). 

But that last point underscores why Activision, IW, and Treyarch don't care to fix these problems: Call of Duty sells like wildfire. MW3 sold 9 million copies in it's first MONTH of availability, and that doesn't even count the additional revenue they will get with DLC*. Why should they spend any time fixing problems when they can just work on the next CoD title or DLC pack.

* DLC is a blog post for another day, my friends.

My problem with this way of thinking is that Activision/IW/Treyarch can have their cake and eat it too if they are willing to make a longer-term investment in the game and community. I'm thinking of the model known as "bungee balancing" (think bungee cords; not at all related with the developer Bungie). Let's say, oh, I don't know, akimbo FMG9's are overpowered in MW3*. To find the "optimum" configuration, IW should make a drastic change that dramatically weakens the akimbo FMG9's and then monitor the overall weapon performance. Are they too weak now? Strengthen them. In this way, IW can zero in on the optimum configuration. (If you're familiar with algorithms, you should notice that bungee balancing is like a binary search.) IW could bungee balance spawn logic as well (using heatmaps as the data).

* They should be able to easily see what guns are overpowered by comparing relative weapon performance. Say players in general are at 0.9K/D player in general but a 2.0K/D player with akimbo FMG9's. That would be a clear example that akimbo FMG9's are overpowered. 

Now, I get that the lag/network issues can't just be easily worked out in this fashion, as they are much harder to test and verify. I have no easy answer for these issues, other than to say that Activision/IW/Treyarch should spend the time and money necessary to fix these issues in the next CoD title, as lag issues tend to drive gamers nuts.

We still have the question of why Activition/IW/Treyarch should care*. This sort of work isn't cheap. IW would have to have a powerful set of statistics collections and tools to manage this data. It requires a lot of effort from Robert Bowling (IW's creative strategist) and his team to identify problems and propose and implement solutions. Every update would require a full testing cycle (and title updates would require certification as well). We're talking about a lot of changes and a lot of money. Why would Activision want to seemingly waste money on this sort of work while they sell hojillions of copies?

* I don't give any credence to the conspiracy theories that Activision ensures that every CoD title has unfixed issues in order to convince gamers to buy the next CoD title. 

The answer is the long term. Sure, MW3 (essentially, CoD8) broke all previous sales records for a game, so it looks like the series is going nowhere but up. However, if you look past the sales figures, you see a lot of "CoD Fatigue" out there. Long-time CoD fans, such as myself, are starting to tire of the series. Now, for the next 10 months, Activision doesn't care about me. I bought MW3 and CoD:Elite, so they already have all the money they can get from me for MW3. But is Activision really only looking forward one year? That's not a model for long-term sustainability if you ask me.
All rights reserved. Take that!