November

Starting a Debug Session for Android with ADT


I want to build an application targeting the Android platform. I'm a little rusty with Java but I really like developing with Eclipse (I've been using it for some other stuff like PHP development). The ADT plugin got me started with the sample applications pretty quickly but now that it's time to deviate and build something of my own I have to set a nice low goal that I can knock out with a high chance of success. Then I can iterate and go a little deeper on the next pass. To start with I think I'll play with drawing primitive graphics. There's an API example called DrawPoints with some code that just spouts out random points on the screen. I took a fair chunk of that and stuffed it in to the "Hello, Android" application I built earlier.

All in all the activity's pretty straightforward and Eclipse makes it even easier. I'd post the code for drawing but it's almost identical to DrawPoints at this stage. The next step is to get some new code in there. I decided to go for my old standby, the Hilbert curve. I modified the code to suit the drawing environment but didn't get results right away. I learned a few things about debugging with the Android emulator and ADT in the process.

When Android doesn’t Launch your application

As I've been getting started with Android I decided to take some notes. What follows is something I wrote down as I was working on getting a first sample to build and download from Eclipse using ADT. I followed the instructions from Google and tried the troubleshooting directions. My platform is OpenSuse 10.3 Linux. This note might be helpful if you're trying to develop for Android.

Some Android Emulator Screenshots

I know I'm not the only one casting about for good application ideas to build on Android. Now that I have the samples building and running and I've got a little time on my hands, my plan for today is to move on to building some of my own original code. Since it's based on Java SE and not micro edition it should also be possible to port some interesting applications over. To start with I'm thinking of something simple and non-interactive like a screensaver or other eye-candy. After that I've got a couple other things up my sleeve but I need to try out the platform to see what's really doable.

Catching Errors when your Lua Script doesn’t start

Getting an error code back when a Lua script dies is actually pretty straightforward. Use lua_pcall() or one of its relatives to call the script and the return value will tell if there's been a run time error.

Flickr Search, UPS Tracking and more with OpenSearch

I know I've written about a couple of the OpenSearch plugins that I've done but there are a few more I published and never really mentioned. I had a UPS tracking number for a package and I saw that Google could look them up easily (just put in the tracking number as your search) but going straight to the UPS site was actually slower. So I wrote a search plugin using the same URL structure that Google does. Then there was the time a friend asked for a search plugin that would just look for Creative Commons licensed photos on Flickr. I whipped up something quick.

The Hilbert Curve in Java, Lua and C++

I wrote a program a little while ago that draws a Hilbert Curve. Really all I did was adapt the Java source code that’s on the Wikipedia page talking about the curve. That Java source used a class called SimpleGraphics that I’m not familiar with. I wanted to use SDL in C++ for my program. It was easy enough to convert the Java code to C++ but to do the drawing I decided to just implement a SimpleGraphics class in C++ that uses SDL to perform the actions that the program needs.

Since then I revived my interest in integrating scripting with C++ and pulled a Lua interpreter in to that project. Now my program loads a Lua script and executes it. The Lua script has access to the SimpleGraphics class that I wrote. Now that the script interpreter works and can call the drawing methods I decided to take the algorithm for drawing the Hilbert curve and implement that as a Lua script. It was actually pretty easy. The resulting source code works as a sort of Rosetta stone for the three languages.

A Quick Run at Google’s Android

I took a little break today from the C++ and Lua stuff I've been doing to have a look at Google's new phone platform. I followed the installation instructions and had some demos up and running pretty quickly. I also grabbed the source and poked around to see whose shoulders they stand on.

Ooops - A SWIG Interface Correction

I glossed over the fact that my program crashed at the end of the script in my post on hooking up Lua to a C++ application. I new at the time I posted that there was a memory problem in calling the SimpleGraphics destructor but what I didn't realize was that the problem was actually caused by the difference in the declaration of the SimpleGraphics class between the header file that the C++ program sees and the declaration that the SWIG-generated file sees. Here's the one that gets compiled in to the C++ application:

WoW: A few Lua Macros to save time and clicks

At level 69 you can use a Riding Crop to get a mounted speed bonus. Since my main is finally level 69 I've been eying the Auction House. I just lucked out and found one for only 41 gold. On my server they're usually over 80 so I snapped it up right away. Of course then I have the issue of switching trinkets so can have the Riding Crop while mounted and go back to my other trinkets when I dismount. This got me looking at macros again and since macros are written with Lua in WoW, I thought this ties in nicely with the Lua interpreter stuff I've been writing about lately. Today I'll share the macros I've been using for a while now to smooth the rough edges off the World of Warcraft interface. I didn't write most of them but I've tweaked them to meet my needs.

Using SWIG to connect C++ to Lua

I closed off my last post about adding Lua to an SDL application saying I’d look at a tool to do the bindings for me. I actually already had something in mind for the job. I looked at a couple but SWIG seems to be the most versatile. It’s not tied just to Lua so the work I put in to learning how to use SWIG will also apply partly to any other scripting languages I want to support. Any within the realm that SWIG supports, of course. Notably missing from the list so far is Javascript. Scheme is represented in the form of Guile (which is a specific Scheme interpreter as far as I understand). The documentation for SWIG is pretty sizable but of course with all the combinations of host & script language out there they aren’t all explained clearly enough for a beginner like me. So I started to experiment. SWIG focuses on wrappers for C, C++ support seems more complex. So to understand things I had to scale back even from my simple SDL C++ test program then scaled back up once I got some communication between code written in both languages.