A quick “from the trenches” post. Recently I’ve been digging in to the Android camera a bit. The Android SDK samples have an example of how to wire up a live preview from the camera on the device directly to a Surface view. Unfortunately, this fails miserably on my Samsung Captivate with a repeating error similar to the following.
This had me stymied for a bit until I took a look at the awesome
zxing (Zebra Crossing) project
where I stumbled on to a solution for this problem. (All credit goes to their developers). The code in their
CameraManager class
and
CameraConfigurationManager class
goes through a number of gyrations to pick an appropriate preview size. Using that code allows the Captivate to properly render a live preview.
Thanks to the zxing crew for this little tidbit, as I’m not sure I would have figured this one out on my own.
It is a good thing that I’m not trying to make my living with this little project, given the slow forward progress. However, there is continued progress on the collision detection compared to my last update
Pingus On Android – Early Collision Detection
.
In
Part 2 of this series
I had finally managed to get the primary scene ground objects into place. Since then, I’ve made some reasonable progress on the game. The following demo shows some of the initial collision detection working.
Read more…
In my first entry (
Pingus on Android
), I talked about my initial efforts to port the free game called
Pingus
to run on top of Android using
AndEngine
. At that point, I was struggling to properly place sprite images when the sprite is rotated 90 degrees (and presumably 270). All of the work being done was at a zoom level that allowed the complete scene to be displayed on the device. Because of the extreme zoom, it was impossible to see the details and therefore to notice when things weren’t properly aligned. It seemed like I was getting close with this alignment, but the numbers were not something that could be calculated based on available information:
As I’ve continued hiring at
mFoundry
(if you live in the Bay Area,
check us out
), I’ve been very busy non-coding. As usual, that implies the need for a non-work programming project. As I mentioned
in my last post
, I’ve started digging into Android programming. I decided it would be interesting to try to do a game of some sort. Given that I have zero skill with graphics, I had to cheat a bit. I’m attempting to build an Android version of the
Pingus
game using the graphics and levels from their source code and the very cool Android game engine
AndEngine
.
Read more…
In my
previous
entries
, I’ve discussed a few things that caught me off guard while learning iPhone development. In the last couple of weeks, I’ve picked up an Android device to dig into that platform a bit and probably will spend less time playing with iPhone development. Before I move too far away from iPhone, I wanted to wrap up the remaining differences I found interesting between the iPhone and Java platforms.
I’m continuing to make slow forward progress with my DAAP-based music player for the iPhone. My most recent changes have taken this in the direction of being much more like the standard music player functionality on the iPhone. In particular, I’ve switched over to using a tab view controller for the major perspectives of viewing the music database.
Looking back to my last post
way back in October
it is pretty clear when things started getting crazy at work. The team survived and managed to finish another awesome version of
mFoundry’s
mBanking
product. These days I’m doing more management and less coding, but I’m definitely still a geek. Given that iPhone applications are all the rage in the industry, I’ve been trying to learn my way around iPhone development. During the process of learning, I’ve noticed a few things that have caught me off guard compared to Java. I hope to post a few of those things in the days and weeks to come that may help other Java programmers. In the meantime, I thought I would share some about the project I’ve been playing with to learn.
Looking back, it is hard to believe how long I’ve been a computer programming geek. Way back in February of 1984, I had my first game, Circus,
published in Compute! magazine
. Thanks to Kevin Savetz, you can now see
my original article
as well as
many other classic computer magazine articles
. These articles are back in the days before the internet, laptops and cell phones. The iPhone in my pockets has so much more power and storage, that it is hard to imagine programming as I did in those days.
Circus VIC-20
Looking back at this article publication, there are a couple of things that make it particularly interesting to me 20+ years later.
My original program was written on the Commodore VIC-20 (5K of user memory!) and was
rewritten
for all of the other computers for the publication
. This happened behind the scenes and I was unaware until publication. Not surprising, they also rewrote all of my descriptive text.
This game was a clone of a game that was available in arcades and pizza places around that same time. Had I done this in present day, this game would very likely not have been published due to copyright or other legal issues.
20+ years later, I’m still a computer programmer (software engineer?). While I program less than I used to, it is cool that my hobby so many years ago has been able to be both a hobby and a source of income for so many years.
Along with the
3.5.1 release of the Eclipse platform
earlier this week, the
Eclipse Mobile Tools for Java
project has released version 1.0.1. As you can see from the
New and Noteworthy page
, not only did the team fix more than 100 bugs since the 1.0 release but they also provided some cool new features. According to Gustavo Paula, this release features contributions from a variety of different contributors including:
Motorola
Nokia
SonyEricsson
Research in Motion
Several individual contributors
This new MTJ release has been included in the first service release of the
Eclipse Pulsar project
. In addition, the Pulsar QuickInstall now includes an SDK from SonyEricsson.