Self Improvement

Better tomorrow by playing games

At Ramp51 we encourage everyone to do something today that makes them better tomorrow. We look for inspiration in various places to help us remember to be better tomorrow. Which brings us to the question:

Can video games make you better or help someone you know?

Jane McGonigal is the creator of a game called SuperBetter, which has helped individuals cope and recover with issues like depression, anxiety, chronic pain, and traumatic brain injury. Not to mention her best-selling books, research, and PhD in game design. Check out this interview she gave with Shane Parrish at The Knowledge Project

I often want to exercise my brain. I’ll do this occasionally by competing in TopCoder, practicing some math on Kahn Academy I haven’t used in a while, or through various other online activities . I hadn’t thought about the skills, growth, self confidence that can be acquired when playing games. When I do, I wonder; Why do kids believe they can conquer a boss in a video game? What makes them ideate, practice and believe in their ability to do so? While the same kid might give up on trying to to Factor in Algebra, or lack the confidence they with some practice they could win the spelling bee. Is it a lack of inner drive? satisfaction? interest? curiosity? fulfillment? support? encouragement? desire? hope? It’s certainly not for a lack of ability.

What about kids? Is it good, bad, or it depends?

Jane says, there are three important questions, and you should ask your kids about the games they are playing.

  1. What does it take to be good at this game? Skills? Personality? Temperament?
  2. What have you gotten better at by playing this game?
  3. What is the hardest thing you have accomplished in this game? How did you do it?

The ability to talk about what you have gotten better at helps you to bring those skills to school, work, and your relationships.

Although Jane does think that you should limit your game time to 21 hours a week. When should we use those 21 hours?

Are there better times of day for kids to play? If you want kids to retain what they study better, you should have them play games first and then study before they go to sleep. Which is related to an interesting ability for your brain to focus on the most important problem while you are sleeping. However, another caveat is that people who have been recently traumatized should find some relief by playing a game before bed.

How often do you reflect on the previous day, and ask how the things you did have made you better, and what you learned? It’s a fair question, and a lot of us probably would admit we spend more time than we’d like on entertainment. If you like playing games, maybe you can put it in the “self improvement” category now.

Related Articles not linked above:

Software Development

Integer, Long or String: 10488084?

Today most enterprise software development requires integrating with systems built by other teams and other companies. Often times those integrations need to coordinate data and processes which means there is a set of shared identifiers used by those systems to facilitate the integration.

When you are building an integration with another system, that returns and identifier like 10488084, do you store it as an integer, long, or a string?

With a few exceptions that most of us developers don’t really need to deal with, I would universally say it should be a string. Why should it be a string when it’s clearly a number?

  • We aren’t performing any mathematical operations on it.
  • We don’t have any control of the identifier, or the range of values.
  • We likely don’t need to sort by ID, so whether the sort is numeric or alphabetic isn’t a concern.
  • Storage space is cheap. We don’t need to worry about the efficiency of storing the value as string vs a numeric type.
  • Performance on ID comparison is easily solved with data structures / indexes. Your database system is likely very capable at matching these strings quickly, even if it’s slightly slower then using numeric types.

Based on those reasons, any ID that is retrieved from a third party system should be stored as a string. Which protects your system from changes in the third party system. For example, if you store 10488084 as an integer in .NET, and then the third party decides all new id’s will start at 3000000000, you have a problem. The new ID’s will overflow and throw exceptions, unless you convert them to longs or strings throughout your application. So you might as well start with strings.

What are your thoughts? Any other reasons why we shouldn’t universally store third party ID’s as strings?