iPhone App Development, Finally
So I just started building apps for the iPhone. This may come as a surprise to many, since I probably should have been building them from day one. But I was wary of the business side of things: complete control of the app store by Apple and the process of app approval. And I won’t deny that XCode and Objective-C were barriers as well. A quick look last year told me that they were a far cry from AS3, PHP and Lingo, the languages I’m best at.
But I got over it all and plowed into Objective-C a few weeks ago. It was slow at first as the book I was using put a heavy emphasis on controls and switches. After struggling with it, I realized that these were just like components in Flash, and I don’t use components. So I looked elsewhere.
I found a whole world of iPhone game developers using Cocos2d for iPhone to make games, and skipping all the NIB/XIB file stuff. After I gave in and decided it was OK to use a framework, things went a lot smoother. I was able to make things happen and got my first game all ready to go.
I worked out a lot of different things this first time around, like building menus, animating sprites, timers, etc. So the next game should go even faster.
Now I’m in that limbo of iPhone app approval. I submitted last Wednesday night, the 20th. So this is day number 8. I’m trying not to work on any more iPhone stuff until I see my first game in the store. I really want to get an idea of what it is like to have a game out there. Not only how much revenue comes in, but how much customer support is involved.
Google Releases Shockwave 3D Competitor
We may finally have a legitimate Shockwave 3D competitor. Google has released 03D. You can read about it at the Google Code Blog and visit the 03D homepage here.
Basically, it looks like the programming is done in JavaScript and the rendering is through a browser plug-in. In the past, this may have not seemed like a serious platform, but with JavaScript getting faster and faster as browsers compete, it certainly is viable. And the whole things is cross-cross platform in browsers and OSes, even Linux.
Plus, it looks to me like development won’t require any investment. Just code away using Web development tools or even a text editor. Models can come from Max, Maya, Google SketchUp, and possibly anywhere.
You can see some demos which show that it can compete in the game space.
3D gaming on the Web might be getting interesting again.
Massive Hard Drives Are Cheap, But Not Easy
Ever since consolidating my office and moving to a Mac Pro, I’ve been taking advantage of how inexpensive hard drives are. I’ve got two 500GB drives in the Pro, a Drobo with 4 1TB drives, an external 1TB drive, a 500GB drive hooked to my Airport Extreme, and several sub-500GB external drives.
This is great. I can store videos all over the place, load up lots of music and audio, have everything everywhere.
Then I start to think of backups. How do I back up all of this stuff and store it off-site? Almost impossible. Even if I have more drives to do it, it still takes a long time to backup 1TB of data, let alone multiple TBs. And a lot of the stuff on the drives is junk, render files and scratch files and duplicates. Backup programs don’t make it easy to do a selective backup.
OK, so new plan. I’m cleaning it all up. I want to end up with my two internal 500GB drives, one Time Machine drive, and one off-site backup. That’s it. Gotta sort through it all and organize. Gotta figure out which one is the Drobo — probably the Time Machine drive, though that is a waste. Redundant backup of my backup? Which also has an off-site backup? I’m not that crazy. But I’ve got the thing, so I should use it.
Director 11.5!
Once again, those that thought that Director was dead get proven wrong. Adobe just announced version 11.5 of the software, which seems to be a pretty major update. You can check out the official press release.
Highlights seem to be:
The price is $999 new, $299 for an upgrade. Due out at the end of March.
MySQL Duh-Optimization
I’ve been optimizing MySQL on Apache for years. Know all sorts of tricks. But obviously I got a little cocky. I missed two very obvious things and now feel like an idiot.
I found out about these two obvious things by running the tuning-primer.sh script that is popular now. Google it.
The first thing I noticed was that some of the settings it said I had weren’t the settings I thought I had. For instance, max_connections was set to 0. Huh? I had it set to 500!
So I looked at the my.cnf file and saw that I did have max_connections=500, but it was after a [mysqld_safe] line. I always assumed that the [] lines were comments of some sort, so you could organize your settings. But a light bulb went off and I suddenly realized that they are more important than that. I moved the max_connections and other lines to under the [mysqld] and restarted MySQL and then checked to make sure max_connections and my other settings were now set right.
Oh, to think of the wasted processor cycles over the last year!
The next thing I did was to check my slow queries log. I set that up a while back, but hadn’t checked it. Sure enough, one particular query was the bulk of all slow queries. It was a select with a single condition, but on a very large table. Some research suggested the obvious: that I should make the condition column an index if I could. Duh! I could certainly do that in this case. I could also refine its data type a bit.
Anyway, the result of that is the query no longer even makes an appearance in my slow queries log.
OK. So this goes to show that no matter how much you think you know, you can always learn more.
