31. October 2012 16:29
Lately I've been playing a bit of Guild Wars 2. By "a bit", I mean a little more than is healthy given how much other work I have going on at home. It's much less severe than my previous Diablo 3 addiction, but that's like saying I kicked the crack habit and only do morphine now. At any rate, I got to a point the story that seemed unpassable due to app crashes. This was incredibly frustrating because each retry took at least 10 minutes. Each time I sent technical information about the error to the game's creator, and on my last crash I looked through it myself.
TL;DR - don't expose technical details like call stacks to your users.
The non-gamers will have to bear with me for a moment.
The crash happened at the very end of the story event, while my character was using a trebuchet. When you use a trebuchet, the game camera stops following your character and takes up a fixed position relative to the trebuchet. Upon nailing the last bad-guy, a scripted story dialog would start and the game would crash.
The technical information contained in the error report wasn't precisely a stack trace but it was pretty close. The sequence of calls seemed to be encountering an issue looking for a "bone" that didn't exist, so I assume the game is using skeletal animation. There was also some vague items about camera attach, camera follow, and so forth. Figuring I'd use this knowledge to my advantage, I tried the event one more time only this time exiting the trebuchet while the last shot was in-flight so the camera would be following me when the automatic dialog started. Sure enough, I got through the event without crashing.
Popular games get hacked often enough. Web sites get hacked. Bad things happen. This time a gamer got past a bug by inspecting a call stack, but next time someone could create something that ruins characters or steals financial information.
Think about the ways you may unintentionally expose technical details of your software.
20. August 2012 16:37
I have had a long time interest in Machine Learning. I can trace this mostly back to some influential people in the Metro Milwaukee area who are, as nearly as I can tell, no longer blogging. I had written a few simple things in the past, but wanted a more formal education, so I went old school and started buying books. The first one I picked up is this one:
While I don't know Python, I figured I could pick it up easily while I read the book and learned the more common algorithms. In a way, I was right. Except for some interestingly terse syntax in the Python math libraries it's easy enough for a C# developer with experience in other languages to follow. The way the author has chosen to structure data, though, makes for some brain-twisting translation issues. Lists-of-lists-of-trees-of-dictionaries-of-lists-of-matrices* might be easy to type into Matlab, but it makes for a poor mental model when attempting to describe and understand new concepts. The book has been very useful, however, and I've gotten through k Nearest Neighbor, Decision Trees, and Naive Bayes classifiers so far. I intended to keep reading the book, but also to supplement it with other material to in case I need a reality check on any algorithms in the future.
Also, in a post in the near future, I'll show the model I've developed to work with this kind of data.
* That would be List<List<Node<Dictionary<int,List<Matrix<double>>>>>> in case you were wondering. And, yes, I'm being a little unfair but hyperbole is fun.
20. August 2012 16:33
I have not taken the longest break I've ever taken from blogging since I started in 1998. This is partly due to some fun things going on in my personal life. This is partly due to fatigue. This is partly due to a sort of "Technology identity crisis" as I wondered what was next for me. I'm not apologizing for not blogging, but I'm happy to say I have a new direction I'm heading in and it's extremely exciting. I haven't had a lot to say lately, and I haven't been contributing noise because of that.
23. April 2012 20:52
This weekend I'll be presenting on WinJS and HTML5 development at the Fox Valley Day of .NET in Appleton, WI
I hope to see you there!
If you're interested, there is also a day long HTML 5 and Azure boot camp coming up too.
2. April 2012 11:32
While I don't blog or tweet about it much, I'm a gamer. I like games. A lot. I'm a one-game gamer: I tend to play one game exhaustively until it loses its appeal or I've accomplished most of what I wanted to. Being one of my favorite leisure activities, this hobby tends to get in the way of productive work. When I get home and sit down at my workstation it's way too easy to click the Battlefield 3 icon instead of the Visual Studio icon.
Diablo 3 Comes out May 15th
In terms of my historical game addiction a few titles come to mind: Final Fantasy 7 for the original Playstation nearly ruined a semester of college. Diablo 2 was an utterly obscene time sink when it came out so many years ago. I've been obsessively following the development and recent release date announcement for Diablo 3, and I have to admit I'm worried. You see, I have kids now. There's a lot going on this year and I can't just drop off the map for long enough to get my initial fix. I must, therefore, maximize my productivity between now and May 15th.
I hereby swear, before these internets, that I will play no video games until the midnight launch of Diablo 3.
1. March 2012 11:32
Like many people, I grabbed the Windows 8 Customer Preview yesterday. I decided, since I'm at a conference right now, to try to Live in Windows 8 and VS 2011 for the rest of the week until Monday.
Installation over the top of the Windows 8 Developer Preview from build was quick and painless. I chose not to log in using my Live account as I don't trust it yet (more on this choice later) and get some basic apps installed such as Metro Twit and Paint.NET. Generally speaking, I like the look and feel of Windows 8 so far and it seems to run as well as the Developer Preview. As a keyboard guy without a touch laptop I'm finding things like this article from Tim fairly helpful. I'll be writing seperate articles on other aspects of Dev 11 and the apps that ship with Windows 8 Consumer Preview as I get time.
27. February 2012 17:28
The first rule about the MVP Summit is that you do not talk about the MVP Summit...
I'm back in the Seattle/Redmond/Bellevue area for the 2012 global MVP summit. Obviously what goes on out here is under NDA so I can't blog about it. There's a lot of reasons to come out here every year: interact with the Microsoft teams who build the tools I use, connect with other MVPs I might only know through Twitter or their blogs, and recharge.
Here in the afternoon of the first day, I'm already feeling a little more myself. Conferences like this carry a huge benefit that it's hard to put a price tag on: a chance to step back and reflect, and get re-enganged in your career and your love of technology. I'm hoping for some serious reduction in Burnout this week, wish me luck!
23. January 2012 10:47
Well this is a little bit of a late notice but the details are now posted on my next talk. On Wednesday the 25th I'll be in Grand Rapids, Michigan, talking about WinRT and the Windows 8 development ecosystem.
If you're nearby I hope to see you there!
5. January 2012 14:16
This year I’m taking a new approach to resolutions. Rather than just make a list of opaque goals, why not try a specialized form of Gap Analysis? Specifically: what are the differences between my life today and my ideal life? These are the things to work on. If you don’t know what your ideal life is it’s hard to make meaningful goals.
I’ve already tackled a couple of my big ones in late 2011, namely regular exercise with the right amount of peer pressure so I can't easily get lazy and skip it.I often think about the various obsessions that occupy my time. You’ve probably heard the saying that no one wishes they’d slept more in college. I imagine, too, that no one looks back at their life and wishes they’d gotten more Xbox live achievements or beaten more of their friends’ high scores in Orcs Must Die. Do I really need to watch the Lord of the Rings trilogy on Blu-Ray yet again, even though it’s so damn good? I find that I can go periods of time focusing only on productive work. Being productive feels great. I love writing code for pleasure. I love fixing clutter around the house: I recently organized the dry goods in my kitchen and it felt like a Holiday Miracle. Still, after perhaps 6 days of productive work, I find I must deflate and find myself still playing Battlefield at 3am or watching zombie films with a glass of cognac.
I try to ask myself a simple question every day: what did I do today that got me any closer to any goal I have?
This could be as simple as not drinking 8 cups of coffee , writing just part of a feature for one of my pet projects, or getting some exercise. I’ve found that I literally have to schedule what I do in my off time every single day of the week or things that are important won’t move forward for months at a time.
I sometimes share my goals here, and sometimes not.
This year is a “not”.
I will say that this year is an intellectual Do or Die moment.
There’s only so long you can daydream and hold resources in reserve for pet projects before it makes sense to ease up and rid yourself of the psychological stress
of things left unfinished.
31. October 2011 13:34
This week Wednesday, November 2nd, I'll be in Madison, WI with my //Build conference recap and intro to WinRT programming talk. If you were at the Milwaukee talk, I have some more WinJS goodies and more realistic example applications. If you plan on attending please register at the Mad .NET web site:
I hope to see some of you there.