Posted: January 6th, 2012 | Author: Omar | Filed under: Blog, Code | Tags: android, java | 1 Comment »
Over the last few weeks I’ve spent time diving more into native Android development, and I thought it might be useful to share some of my impressions and thoughts on ways in which to approach learning this type of engineering. Read the rest of this entry »
Posted: October 26th, 2011 | Author: Omar Gonzalez | Filed under: AS3, Code & Samples, Flash, presentations | Tags: mongoas3, mongodb, nosql | No Comments »

I gave a presentation to the AZFPUG (Arizona Flash Platform User Group) on MongoDB and MongoAS3. Below are links to the presentation slides and the GitHub repository to download the example code. The examples code repository is just a start and will continue to get new code additions as new features and new code example requests are received. If you find any errors in the code or have any comments or suggestions on the code examples please post them in the issues section in GitHub as opposed to the comments in this blog post.
Meeting Recording: http://t.co/WJ6yPIR6
Slides: http://dl.dropbox.com/u/1414382/slideDecks/IntroToMongoDBAndMongoAS3.pdf
Code Examples on GitHub: https://github.com/s9tpepper/MongoAS3-CodeExamples
Posted: October 12th, 2011 | Author: Omar Gonzalez | Filed under: Code, Code & Samples, plugins, starling | Tags: robotlegs | 6 Comments »
Today I finished creating a set of classes for the Robotlegs framework that allow you to use the Starling Framework with Robotlegs.

Robotlegs is a great lightweight application development framework that works great with traditional Flash and Flex based projects. With the release of the Starling Framework we can now leverage the new Stage3D APIs in Flash to create 2D experiences that are GPU accelerated. This means we can now build even richer user experiences in Flash than we ever have before! Because Starling is based on Stage3D the Context class that comes with Robotlegs does not work out of the box with the Starling framework. Using the robotlegs-starling-plugin that I have uploaded on GitHub you can now bring these two great frameworks together and start building great Stage3D experiences with Starling!
Posted: September 27th, 2011 | Author: Omar Gonzalez | Filed under: General Posts | No Comments »
A couple of weeks ago members of our team at almer/blank participated at the hackathon in Los Angeles representing Adobe as Team Adobe. You can read and see some video of the game we built, WarShips. I thought I would write a little bit about how we accomplished building a P2P multiplayer multiplatform working game foundation with a single code base deployed to every major device operating system in the market (iOS, Android and BlackBerry QNX as well as web browsers, OS X and Windows) in under 18 hours of development.

The team consisted of four developers and a designer. In terms of pre-written code, we used PureMVC with SignalsCircuit and as3Signals. Everything else was written from scratch at the event. We thought we had an idea of how to break up the work, but once we started writing code we quickly realized we'd have to just coordinate as we went along.
To start off we had one person set up the P2P framework for establishing a connection with peers and building a mechanism for sending notifications to other connected peers. Second person started with building the game "login" screen to connect to the game. Third person started by building out the domain objects and proxies. The fourth dev started on the main view code which drove most of what you actually saw visually, the quadrants and zooming into them, cursor for aiming and editing of the ship placement.
As we each started to finish the parts we were working on we would usually end up in a sort of pair-programming-ish kind of mini-session to either help someone else out with what they were doing or coordinate where we could help with keeping progress being made. The code was all being managed using GitHub, pulling/pushing worked pretty flawlessly for us in this rapid development pace. Working with a framework like PureMVC or Robotlegs is really vital to the success of this kind of development. Being able to easily communicate with your team members how we want to build something and then execute pretty much on 'theory' and then having it all work was a real testament to the value of micro-architectures. I'm not turning this into a PMVC vs RL vs Swiz debate, what I am saying is that it is vital that your team all speaks the same language, and that you all speak it fluently. That's really where the value is in these frameworks, of course aside from all of the technical code reasons, it enables teams to speak the same language.
We did this throughout the first day, and we got the majority of what is working in the video by midnight on the first day. On the second day only one of the team members started the day, so it was on that one developer to figure out how to get the last bit tied together. Still missing was actually setting off the Fire button, hitting/missing the airplane and enabling the next person to take their shot. Basically, we didn't have a game without this piece, but all the pieces were in place to tie it all together.
The first dev on day 2 started with a few instant messages to the other two devs to find their way around starting to bring the final loose ends together. Eventually we had three team members together again to finish out the last couple of hours before presentations started. In those last couple of hours we were able to work through the last few issues that finally got the firing turns working. I was able to chill out and watch the other presentations while deploying to AIR desktop, and the web browser. We weren't going to do those since it was a mobile event but I had time and it was easy.
This was definitely an interesting experience. I had never done anything of the sort so I wasn't really sure what to expect us to actually finish. Going in I thought we might be a little overambitious with the p2p stuff as well as deploying to all the devices that AIR lets us except TV (and thats just cuz I didn't bring a TV and my hardware dev kit). We managed to pull off a working game and we deployed to all the devices we wanted to and it wouldn't be possible without Flash Builder, AIR and some good team coordination. I was pretty proud of what our team accomplished in such a short time and I think it speaks volumes about the capabilities of Flash, AIR, Flash Builder and the future of where we're headed. Flash is dead. Long live Flash!
Posted: August 27th, 2011 | Author: Omar | Filed under: Blog, Events | Tags: AdobeMAX, MAX | No Comments »
I just finished setting up my schedule for Adobe MAX 2011 and I have to say I am even more excited after finishing my schedule. There’s a lot to choose from all the sessions being offered this year but after finishing going through and selecting what I’ll be going to it turned out that I am heavily favoring the gaming sessions. There’s a lot of cool stuff so I thought I’d list the sessions that I’ve signed up to in case you’re wondering what kind of sessions are being offered but haven’t taken the time to look through the MAX schedule. I can’t wait! Read the rest of this entry »
Posted: August 18th, 2011 | Author: Omar | Filed under: actionscript 3, Actionscript 3.0, AS3, Frameworks, Uncategorized | Tags: as3, book reviews, frameworks, robotlegs | 4 Comments »
Recently I decided to use Robotlegs as the application framework for a small personal project I was working on to test the usability and needs of MongoAS3. Stray was awesome enough to provide me with a prerelease copy of the book to help me along with my introduction to Robotlegs. In this post I’ll go into what I thought about the book and my experience with the Robotlegs framework.
Read the rest of this entry »
Posted: August 11th, 2011 | Author: Omar | Filed under: Actionscript 3.0, Flex, Flex Mobile, Flex4, tutorial, tutorials | Tags: actionscript3, as3, flex, flex mobile, flex4, flexMobile, tutorials, video | 1 Comment »
I was going to write a long drawn out post, something like this one: http://omar.likesflex.com/?p=32 But, I had a different idea this time. Below is a video that shows the process of getting the ViewNavigator starting with an empty project. I left the sound recording on so you can listen to some awesome music while you watch me code, haha. I’ve also attached an FXP file with the project created in the video if you want to get right at the code. Read the rest of this entry »
Posted: July 16th, 2011 | Author: Omar Gonzalez | Filed under: actionscript 3, AS3, Code & Samples, Flash, Flex, General Posts | Tags: mongoas3, mongodb, nosql, open source, oss | 2 Comments »
I've recently finished some work on a project I've been doing on my downtime at nights called MongoAS3, an ActionScript 3 driver for MongoDB. The driver is now at version 0.1 and I've written a getting started blog post on my personal blog here: http://omar.likesflex.com/?p=37.
MongoAS3 lets you establish a connection directly with a MongoDB server and lets you use it directly from AS3! Check out the code on GitHub (https://github.com/s9tpepper/MongoAS3) and fork it, pull requests are encouraged!
If you have questions please post them on my blog or in the issues section of GitHub (https://github.com/s9tpepper/MongoAS3/issues).
Posted: July 16th, 2011 | Author: Omar | Filed under: Actionscript, Actionscript 3.0, AIR, AS3 | Tags: actionscript3, as3, flash, flex, mongoas3, mongodb, nosql, open source, oss | 9 Comments »
The first thing that you will want to do is download the latest MongoAS3 SWC file from GitHub here: https://github.com/s9tpepper/MongoAS3. Place the SWC file in your libs folder in Flash Builder, or your IDE of choice, and you’re ready to get started. Read the rest of this entry »
Posted: April 30th, 2011 | Author: Omar Gonzalez | Filed under: General Posts | No Comments »
Getting faster is something that almost every developer wants to do. At the least, every developer _should_ be striving to do things faster and faster. I'm not going to get into approaches such as Test Driven Development versus UML-ing first, etc. Instead I am going to talk about things that every developer of every level can do to improve the speed at which they do things.
So why should all developers strive to be faster? Beside being more profitable as a developer, independent or not, it allows you to move on to your next development thought. When developers are coding everything is our enemy. Anything that is outside of the thinking process is an obstacle to overcome to get your thoughts in code and working in an application. The dog barking outside, your hands, the keyboard, the font size, noisy office, finding parts of already written code… all these things are trying to distract you from your main goal. Some of these are out of your control, others are not. Below are some of the ones that you can practice and help you get your thoughts into code faster so you don't lose your train of thought… again.
Learn to type
Ok, this sounds kind of funny… but seriously, learn to type. If you're trying to code and you are typing with two fingers, or wresting with the keyboard and looking down instead of looking at your screen as you type, then you need to learn to type correctly. The keyboard and your hands are two of the biggest obstacles to getting your ideas down into a document, whether its documentation for an application, a tutorial, this rant on coding faster, or the code you write to make your applications. The less that you have to think about typing the faster you will put your ideas into your code. You should be able to put your hands down on the keyboard and start typing without looking at the keyboard before, during, or after typing. Essentially, it should become second nature.
There are several ways that you can improve your time other than just practicing the proper techniques. There are free typing games and lessons that you can find online. There's typing software too such as Mavis Beacon Teaches Typing. You can also start by memorizing the keyboard and practicing the motions in your head or on a keyboard printed on paper. Both of these techniques work very well. Think of words in your head and mentally find the keys and think of which finger should be touching each letter. This type of brain exercise helps you to build the kind of coordination that you need to identify where a key is quickly and have your finger react, which is what is happening when doing things such as typing on keyboards or fretting guitar chords on a fretboard.
Learn your IDE
Something else you can do to increase your speed is to really learn everything that you can about working with your IDE of choice. Here I am also not going to go into detail about which IDE is better or which one will make you faster. All developers have chosen their IDE for one reason or another and I'm not going to get into that. Instead, I want to emphasize that which ever one it is that you do choose, take the time to learn it completely. I use both Flash Builder and FDT and I still learn new things about both IDEs. You won't be able to learn your entire IDE in a day or a week, but take time out at least once a week to spend some time exploring some buttons or options you might not have looked at. Sometimes I just press keyboard combinations to see if they do anything (be careful with this do it in a test project) or I look into the key mapping options to get a listing. The listing isn't always very clear based on the command names but it will give you a good idea of some things you might want to try out. Flash Builder and FDT share many hidden little gems because they are both built on Eclipse. IntelliJ and others will have their own wealth of features that will help you to get code written faster, and ultimately, your thoughts in code with more efficiency.
Exotic Flash Builder 4 Tips and Tricks: http://blog.guya.net/2010/10/03/exotic-flash-builder-4-tips-and-tricks/
We <3 FDT: http://welovefdt.com/
IntelliJ Tips and Tricks: http://www.jetbrains.com/idea/documentation/tips/index.html
Organize better
I am always looking at the package structures and class structures I make to see if there is a better way to refactor my code and make things easier to find and read. Don't be afraid of refactoring, in fact, do it often. Not only will it make your code easier to read, it'll make your code easier to find, which can get confusing and time consuming in poorly organized classes and packages. It is said that we spend the vast majority of our time actually reading code instead of actually writing it. This time can be reduced if you stick to both well established standards and standards that you have built on your own or with your team. Having these in place and strictly following those conventions will always make your code organization better, and will help you to reduce the time it takes to find and read your code. This is a good thing so that you can have more time to actually write code and concentrate on making progress. This will make you faster.
These are just some things that will help you to get your thoughts in code faster and hopefully make you a more productive developer. Each of these can have their own post or tutorial, I am just touching on some very simple things that you can do to improve your productivity. If there are other awesome productivity tips and tricks that you have I'd love to hear them, please do post them in the comments and share with everyone! I'll update the post as great new tips come in from anyone else that wants to share.