Programming, Visualization and Game Development Theory

04Jan Now=new Year(2010)

As the new decade begins, millions of people reflect on their situation and ponder how to proceed into the future. In many ways, 2009 was a game changer for the multimedia industry. We have seen Unity and the Unreal engine open to their doors to free indie developer licensing. This illustrates that corporations are realizing that even a great multimedia software infrastructure can be shoved aside for lesser alternatives that however have the strong community around its platform.
We have seen also a greater focus on one language compiling to multiple platforms. Adobe is pushing for Flash to compile natively to the iPhone and pushing the Flash player to all other mobile devices. Unity also aims for compiling to PC, Mac, and iPhone with little changes needed to the source. Microsoft continues to push XNA that has the boon of both PC and XBOX360 support. Of course, haXe continues to gain in popularity as it is a single language that translates into other platforms (Flash,  PHP, Neko, and C++ SDL).

Over at Bill Sander’s blog AS3 Design Patterns, he talks about his journey into design patterns and that his New Year resolution is “Improve nailing down relationships between classes in design patterns.” This year I have expanded my knowledge of design patterns in areas that I do not normally require in my everyday work, but just learning their existence has given me the enlightenment of not just how the design pattern works but ‘why’ it exists and what would happen to a system built without it.

My personal development New Year’s resolution is: “Learning to prototype quickly while keeping modular using loose coupling.” Being able to produce a skeleton of a system quickly helps to a keep the momentum of a project going and to isolate design flaws. However, rapid development can cause a system to be become stagnate and locked into a certain implementation. However, wise programming decisions like using the acquaintance relationship between classes and employing design patterns like strategy or template will make my prototypes open enough to evolve into the final product without infrastructure rewrites.

Update: While technically the new decade starts in 2011, I find the debate mute as people will refer to this era as the “2010′s“.

(more…)

08Sep Us versus “Them”

colbertLabels are dangerous when used improperly regardless if they were created in good intentions. The present day world is filled with named factions that rage verbal or physical war on each other for nothing more than self affirming the dominance of their party. This is somehow deeply ingrained in our human nature… to provide loyalty to our clan and subvert others to establish dominance. If you’re not quite sure where I’m going with this, I am hinting at the fruitless debate between the American political parties.

Democrats and republicans have evolved to hated enemies of each other… no longer remembering that they were formed to work in harmony over national issues. In my opinion, there is one major entity to blame for this downfall and social dysfunction of the parties. That would be the American media. Regardless of the national media network you watch, you are being spoon-fed DAILY about the ‘evils’ of the other party that that media network is associated with. I can’t watch any of the big three news networks for more than an hour without being told why one party is better than the other. This is a shame that they choose to demonize and point fingers rather than focusing on the core of the issues at hand.

Should matters like health care regulation be shunned because it ‘sounds’ like a certain party’s agenda? On another separate issue, I heard from one news network that a certain bill wasn’t worth looking into because the originator happened to be from the other party so the bill could be linked to promoting that party’s cause “somehow”. This is the kind of blind hatred that has caused our political degradation. So what do I propose? I would merge all political divisions… democrats, republicans, and the other 3rd parties. Why can’t a person have a mixture of beliefs instead of being forced to conform to only the stances their party supports? The fact that someone who tends to be liberal is only going to feel at home in a democrat party versus someone who is more conservative in their views will have few options but go republican is a sad commentary on how the parties have outlived their usefulness.

The only person who benefits from this segregation is not the voter but the news networks. Controversy sells and the media has turned our political system into a kind of dark entertainment art form. Let’s spend less time worrying about if new policies fit the agenda of our party… and instead focus on what is “right” and benefits people the most. I normally don’t blog about political matters, but I find this dilemma in need of more attention than what it currently gets. Anyone else feel the same way?

27Mar Further Reading on Design Patterns

As a followup on my Wednesday lecture on design patterns, I wanted to post some informative resources for learning more about design patterns outside the next lecture on the topic. Also, I wanted to say thanks for everyone who showed up to hear me rant about code structure (not the most exciting topic in the world mind you)!

Design Pattern Definition
In software engineering, a design pattern is a general reusable solution to a commonly occurring problem in software design. A design pattern is not a finished design that can be transformed directly into code. It is a description or template for how to solve a problem that can be used in many different situations. Object-oriented design patterns typically show relationships and interactions between classes or objects, without specifying the final application classes or objects that are involved.
- read more at WikiPedia

MVC Definition (the most common principle of Design Patterns)
mvc
Model–View–Controller (MVC) is an architectural pattern used in software engineering. Successful use of the pattern isolates business logic from user interface considerations, resulting in an application where it is easier to modify either the visual appearance of the application or the underlying business rules without affecting the other. In MVC, the model represents the information (the data) of the application; the view corresponds to elements of the user interface such as text, checkbox items, and so forth; and the controller manages the communication of data and the business rules used to manipulate the data to and from the model.
- read more at WikiPedia

Books:

AS3 Design Pattern Informational Websites:

Flash Design Pattern Frameworks:
(for now, it’s best to avoid these until you understand the fundamentals of MVC)

Good Design Priniciples:

  • ALWAYS type your variables (not really design principle but I too often see people doing this still)
  • An object/MovieClip should contain the actions that it performs (as oppose to objects outside the class forcing it to perform actions)
  • A class should never be able to “break” if the user sets a property or calls a function on it when they are not suppose to. Keep preventive logic in the class that’s doing the work.
  • A good chosen design pattern for a problem will not take any longer to implement than not using it with spaghetti code.

Feel free to leave comments or email me about any further questions you have about Design Patterns or where to find additional materials on it. Have a great weekend everyone!

02Dec at&t: Why Bureaucracy and Technology Don’t Mix

Old-school pyramid management can severely cripple an organization’s ability to adequately adopt and help their customers. Today the story I have to illustrate this problem is about at&t’s service and support departments. First off, let me state that the actual DSL service I had with at&t has been nearly flawless with 6mb downloads with 768k uploads. I am definitely a power user (online gaming, downloading, video and audio streaming, and working at home) and never hit any kind of service-capping or times that the network connection from slow. However, this story isn’t about the ‘product’ but the customer service and internal processes that occur…
(more…)

11Nov T-mobile G1 impression and Flash

Well, I finally took the plunge and got my first smart phone! I’ve looked at several choices over the past year like the Blackberry Bold, Storm, Apple’s acclaimed iPhone, Diamond Touch, Envy, and the LG Dare. However, after measuring the pros and cons, I decided on Tmobile’s G1. Why, you might ask? For one, I do like the full slide-out keyboard, touch screen, and trackball features. However, the G1′s biggest asset is of course Google’s open source Android operating system that it runs on. Android will allow even intermediate Java developers to make applications easily and publish to the market for other users to use. Examples of current applications are: barcode scanner and local prise comparison, parking spot locater on a radar display, social networking integration including direct camera posting, use mp3s as a ring tone (iPhone requires a painful hack for this to even work), remember-the-milk task reminder, weather display, and much much more. Heck, if I can find enough time, I will start writing applications for it.

Also, the cost of the phone is cheaper (its $170) and the monthly contract is about $25 cheaper than the iPhone (which the savings alone is as much as my internet home service). Overall, I have had the phone for over a week and can say nothing but good things about it. I did have some issues with the T-mobile service line… but to be honest, most of the tech support reps have not even seen the device since the G1 is sold out across the US right now.

My two wishes for the phone are longer battery life (with RC30 bios and 3G disabled, I have 80% battery by noon with lite use) and for Adobe to bring Flash Player (preferably 10) to the Android Market! I assume if Flash Player 10 where to ever to hit a cellphone device- that it would be the G1 since Adobe has been a well known Java centric company internally, but FP is written in C, if I remember right, so it will need to be transported to Java OR run as a Linux app directly on the G1 outside Android.

Note: RC30 update now has a viewer for most of the Microsoft Office formats.

Update #1:
At the Adobe MAX 2008 conference, Turner indicates that an “Android port” [of Flash Player 10] is coming!

Update #2:
Flash Player 10 confirmed for Android (with video)!

Tags:

24Oct Living in the [virtual] Cloud

I have always strive to keep things organized and in arm’s reach. People expect, with the rise of the Web 2.0 boom, that services should be fast, easy on the eyes, accessible on desktop/web/mobile systems, free/cheap, and have a reliable up time. With the tools that are available now, I have completely replaced the need to use (snail) mail and feel that now, more then ever, I can exist in a true service cloud. Below I have compiled a collection of sophisticated online services that can increase the level of simplicity and zen in most everyone’s life:


  • Daily organization (notes, weather, other): www.google.com/ig (must have homepage)

    • Google also has an amazing calendar, notebook, and doc/presentation/spreadsheet services
  • Bookmarking: Delicious.com
    • For those who are new to social bookmarking, it allows bookmarks to be saved directly to an online account. I would recommend getting the Firefox toolbar for faster access. Also note that you can add igoogle gadgets that sync with your delicious to display different categories of links that you have bookmarked.
  • Misc Data backup: https://www.getdropbox.com/ (2gb free)
  • Photo backup: Google’s Picasa Web (250mb cap I think…need to find a better service here!)
  • Documents: convert to Google Docs or store in a data backup (see above)
  • Music backup and streaming: lala.com (syncs music to an online locker that can streamed or downloaded)
  • Videos: obviously youtube.com
  • General needs
  • Fast news lookup: originalsignal.com, addictomatic.com, or of course digg.com
  • What others have I missed? Please comment if you have another service that has made your life that must easier!

Other great links to read on this subject: top 80 sites and best of web

31Jul zoom Zoom zoom

Mazda3Well, my old Mercury finally kicked the bucket. The water pump went out on the highway, and my engine seemed it was about to bust under the heat. Anyway, it was time for a new car… I actually have been planning on getting a new vehicle for almost two years now. After much research, I finally decided to go with a Mazda3 as it seemed to have the best performing engine, interior quality, and lifespan than any other car in its class. My second option was a Honda Civic 2008 but the markup on those cars because of the rise in gas is crazy.




Bad Behavior has blocked 104 access attempts in the last 7 days.