Every man gives his life for what he believes. Every woman gives her life for what she believes. Sometimes people believe in little or nothing, and so they give their lives to little or nothing. One life is all we have, and we live it as we believe in living it…and then it’s gone.

But to surrender who you are and to live without belief is more terrible than dying – even more terrible than dying young.

– Attributed to Joan of Arc

In today’s culture, there is a great focus on overindulgence, convenience, pleasure and entertainment.

The irony is that we may have started to reach a point of “critical mass” when it comes to our forms of media. Digital libraries of past and present television shows, films and music promise access to “everything you could ever want,” but the cost is time. The cost are the years, hours and seconds of your life. Even then, there is surely more multimedia in existence today than you could ever witness in your entire life.

Based on figures from 2014, the average person watches about 141 hours of TV per month, or 1,692 hours per year. Assuming you reach the average U.S. life expectancy of 78, that’s about 15 years of your life you’re going to spend watching TV.

How does our time speak about what we believe?

I am afraid of what my life, as measured by the time I invest, would truly show about my values.

Time is a precious currency, this side of eternity. Perhaps we should spend it wisely and unselfishly.


to try very hard to do, achieve, or deal with something that is difficult or that causes problems

Most people probably associate struggle with something unwelcome. Look at the definition – the words “very hard”, “difficult” and “problems” are in there. We do not like problems, especially very hard ones, or do we?

In a peculiar way, we enjoy struggle. Most successful past-times involve struggle in some form or another. In many video games there is an increasing level of challenges to overcome–just as you begin to reach one milestone, another is set out ahead of you. When you reach the final milestone is often the last you play. When you play a musical instrument, you try to reach the next level of expertise, learn the next song, increase your proficiency. Faster, stronger, better – we are always in pursuit of perfection, achievement, accomplishment. There is always another level to reach and we are never quite “there” yet.

The very thing we want all along is a wholeness and completeness, when we reach (or almost reach it) our enjoyment starts to wane. No one that I know accomplishes something and says it is enough for them. There is always an urge to keep going further.

Maybe struggle is both an ally and adversary. We wish that it was possible, sometimes, to achieve and reach goals without paying a price, yet it is the pain and the effort we pour into pursuing those goals that make them matter to us, that do not make them ring hollow… empty.

If we embrace our struggle, perhaps we can realize that this is part of the enjoyment we have in the pursuit of bigger and better goals. Realizing this may be a life-long pursuit, we should give ourselves some slack. If we burn ourselves out chasing each milestone, that is how our whole life may look. If we try to pin our self-image on whether we reach our goals, we may never be satisfied in ourselves. A form of chasing the wind. There is a deeper well that we need to draw our self-worth from than our achievements. In baseball, winning games are often done with base hits and team plays, not home runs. Pace yourself, enjoy the process, remember to find enjoyment in more than victory. Do life for the love of the game.

Reducing Weight

Recently I have been thinking about the idea of “throwing off every weight that hinders” considering what life would be like if I removed things that weighed me down.

There are more connotations to this concept than one might think. For example, one type of “weight” might be physical weight, in the form of poor health. If I am not as healthy as I should be, it becomes a burden on my family, and keeps me from doing all that I have in my heart to do. Being sick, being tired, or worse — living a life that is cut short — these are not blessings. They are a hindrance to me. I should remember this next time I want to eat something I know is bad for me. Food is meant to nourish, not hold me down.

Rather than keeping all my possessions, like a monument to “me” and “my worth”, the things that I own should help me, not own me.

If they exist to serve me, then I need to take a good hard look at whether they benefit. When I started questioning the things I owned, magical things started to happen. Did you know it is so much easier to keep a house clean with less items in it?

For example, it is very common to find a kitchen that has strange, unused plates and bowls stacked on the ones that one might use daily. When you go to find the utensil you really need, you dig through a lot of others you do not need. Why? If I feel that I am always working too hard to keep my home clean, maybe it is too crowded. Maybe the things I need are enough.

I can also be weighed down with debt. Stress and pressure, why not live within my means? The more I get out of debt, the more I feel a weight lifted. I think it can be a little like cleaning a dirty closet. Have you done that before? Somehow, you are aware that no filth and clutter lie behind those doors. The room feels better. You feel lighter. Having no debts hiding is similarly lightening.

Obligations are also a weight to the busy. I once heard a saying, that “good is the enemy of best,” if you fill your life too full, you will not have room for what matters to you. Sometimes saying “no” may be just what you need to say “yes” to the big things that matter most.

So look at what is in your hand, does it benefit you? Pick up and carry the tools that enable you to climb the next mountain. Drop all the useless weight that holds you back and burns up all your strength.


Over the past few months, I have traveled all over North America – Toronto, San Jose, Boston, Nashville, Vancouver, Los Angeles, New York – connecting with all kinds of developers, recommending frameworks or tools to help them feel productive and accomplish their vision, delivering sessions and providing unofficial demonstrations of my BlackBerry Z10.

Nowadays cross-platform is not optional—it is required. Most successful games and applications are available on more than one platform, and it makes sense – why reach 30% of users when you can reach more? “Casting your seed” gives you greater opportunity to see a return. Continue reading Hello!

Pragmatism over Perfection

I used to be a perfectionist.

When I did anything that fell short of my unwavering, unattainable “standards,” I would push and stress until I reached the very end of what I could accomplish, often because of exhaustion or external factors, not satisfaction.

That is a very difficult way to live.

One thing I learned in art class is that I always have a point where I go too far, and begin to ruin a project. It is an important, almost invisible line that you cross when your efforts begin hurting the result instead of improving. I feel the same concept applies to my other pursuits as well. “Perfection” is a burn of time and emotion, for usually little to no gain. Continue reading Pragmatism over Perfection

Submitting Applications to Google Play, App World and the App Catalog

Pirate Pig (the NME sample version) is available in Google Play, BlackBerry App World and the webOS App Catalog.

Making a game is the hardest part, especially one that has a lot of polish. Details count. There are a dozen ways Pirate Pig could be a better game, and have more replay value.

The original Pirate Pig sample, written in Javascript, was created to show that Enyo JS could be used, not only for applications, but also for games. While I was still part of the webOS Developer Relations team, I decided to create a new version of Pirate Pig to illustrate the same game might be created using NME. Personally, I like my version better, but that is okay. Enyo excels at applications which would be more difficult to create using NME right now. Being a native framework, NME has obvious advantages in performance when applied to games.

It took me a day to create the sample. I wanted to create another example you could use to help create your own projects.

If there is anything I have learned by submitting Pirate Pig to Google Play, the App Catalog and App World, it is that, in the scheme of things, the process is trivial. NME makes it very simple to target iOS, Android, BlackBerry and webOS. The “heavy lifting” of cross-platform compatibility and preparedness for submission for these catalogs is done for you. Making your game or application is the real challenge. Continue reading Submitting Applications to Google Play, App World and the App Catalog

What to Make of “Premium Features” in Flash Player

I am responding to Adobe’s announcement yesterday that Flash Player 11.2 will introduce “premium features” licensing and royalties. If you have not read the announcement yet, you can find it here.

I want to explain that I have been developing with Flash for thirteen years. While Adobe scared many of their developers recently, I have tried to remain calm and not overreact (even though a 10% reduction in work-force across the company, offloading Flex to the Apache Foundation, and cancelling Flash Player Mobile and Flash Player for Linux development are definitely bad news).

That said, I don’t keep my eggs in Adobe’s basket anymore. Anyone who knows me probably knows that I am a lead developer on NME (which I use to target Windows, Mac, Linux, iOS, Android, webOS, BlackBerry, Flash and HTML5).

No Longer an Open Runtime

The first thing I took away from the announcement is that the Flash Player runtime is no longer open. I do understand that Flash Player is not open source, but until now it has been open to hacking, and has been based around an open SWF specification. Continue reading What to Make of “Premium Features” in Flash Player

Designing Graphics for Screen Size and Density

My friend and I have been discussing the best approach for “pixel density agnostic” game development. It is tricky.

Quite simply, it is becoming common for mobile phones to include additional pixels in the same screen size. In the past, you would assume that additional pixels would mean a larger layout, but now this isn’t the case.

Desktop screens average between 72 and 96 pixels-per-inch (ppi), but mobile phones range from 165 ppi to 190, 252 or 326 ppi. Almost every device has a different density. Continue reading Designing Graphics for Screen Size and Density

Building My First Enyo Application, Thoughts on the Framework

Over the past few days, I have taken Enyo for a test-drive, seeing if I can create a tablet version of Bible Reader, and if Enyo is a good fit for it.

So far, I have been very impressed with Enyo. Having code completion has made it much easier to get into the framework. There is still a certain measure of “magic” that goes on under the hood — I wish that it were possible to use Enyo with more of a prototype/class-inheritance model than the factory model, but it does a great job of letting you create re-usable components. Enyo is very easy to copy-and-paste.

The first thing that I had to get used to was the concept of “object definitions” and “object instances”. In a traditional model, you have a class and an instance. They are both pretty much one-in-the-same. However, because of the way the “enyo.kind” factory operates, the result has some changes from what you originally put in.

For example, a property called “caption” might not be editable when it comes out of the factory. Instead, a method called “setCaption” will be available which allows you to update this property. I am not sure if I should add these functions to my completion files for Enyo, or if I should assume that this is just one of the things you need to know about the framework? Another example are exposed events. For an event called “onSelect”, you can subscribe to the event by setting “onSelect” to the string name of the function handler. To trigger this event, you call “doSelect” … not entirely unintuitive, but again, something which flies below the radar of normal code completion.

Once I kept my mind around these concepts, I was able to remember that in my class constructor I am defining my object, and when the “create()” method or one of the event handlers are called, I am dealing with instances of my object and its children. Continue reading Building My First Enyo Application, Thoughts on the Framework

WordPress for Concrete5 (1.3.0)

You may not realize that my website is managed using Concrete5. You may not have even heard of Concrete5. Yes, my website is simple for right now — I hope to improve it soon, but all of my blog content on this site is being served using an add-on I created, called the “WordPress for Concrete5” add-on.

I managed my own company for three years. During that time, I had the opportunity to work with big name clients like Adobe, Cartoon Network and Sony to create a variety of games and applications using Flash. I also had a wide variety of clients, many who were smaller, who needed a good solution for managing their own website. Large or small, I found Concrete5 to be an excellent (and free) content management system (CMS) for these customers.

Finding a Platform

Each platform is designed for a purpose. Some meet their goals better than others, but many times you may struggle as a developer, designer or content editor because you are using a tool that simply hasn’t been intentionally designed for your purpose, or it is so generic that it takes an incredible amount of effort to customize it for each task. Continue reading WordPress for Concrete5 (1.3.0)