Dread Pirate PJ’s House of Hacks and Tricks

software.development

My first book is finally a go! Woo hoo!

by dreadpiratepj on Jun.04, 2009, under game.development, iphone, life, software.development, writing

From February to April, I was working evenings and weekends fulfilling a dream I’ve had for many decades: writing a book about a subject I really care about: game development. On June 22 2009, Apress is publishing a book I collaborated on as lead author and tech reviewer : iPhone Games Projects.

Book cover

There are chapters by :

  1. Olivier Hennessy & Clayton Kane, of Posimotion, developers of Bikini Hunt and Apache Lander
  2. Joachim Bondo, of Cocoa Stuff; developer of Deep Green, a beautiful chess game for iPhone
  3. Richard Zito & Matthew Aitken, of Swipe Interactive, developers of QuickDraw and Pole2Pole
  4. Aaron Fothergill, of Strange Flavour, developer of Flick Sport Fishing, one of the top 20 best selling apps on the App Store
  5. Brian Greenstone, of Pangea Software, developer of Enigmo and Cro-Mag Rally, two of the top 5 best selling apps on the App Store
  6. Mike Kasprzak, of Sykhronics Entertainment; his game Smiles was one of the finalists for Best Mobile Game on the IGF Mobile 2009 competition
  7. Mike Lee, co-founder of Tapulous, now at Apple, lead developer of Tap Tap Revenge, the most downloaded game on the history of the App Store
  8. And a bonus free chapter by Jamie Gotch, of Subatomic Studios, developers of Fieldrunners, winner of Best Mobile Game on the IGF Mobile 2009 competition

As tech reviewer for the book, I checked everyone’s writing for technical accuracy. That was really a great experience. I learned a lot and had fun running everyone’s sample code and checking their tips and tricks for myself.

I also wrote one chapter for the book, on how to implement RESTful web services for high score leaderboards and achievements on iPhone. There’s code in the chapter for a simple Rails web service, and native code for the iPhone as well. It’s a rather deep look at the subject.

I also collaborated with Jamie Gotch on a bonus free chapter. In the chapter we discussed getting started with programming for iPhone, a few tips and tricks, and the A* path finding algorithm. I also developed a Puyo clone and explained the most important parts of the code.

Full source code for the Puyo game will be provided. There is also source code for 3 other sample apps. All the sample code will be made available the same day as the book release at the book’s support page and at apress.com

This was a very neat experience for me. I’ve wanted to have my name on a computer book, and I’ve enjoyed programming games in my spare time, since before I was a teenager (more than 30 years ago, yo! Where has time gone?)

The iPhone gives me, and everyone with the interest, a chance to develop games for others, in a very cool platform with lots of traction. This book, coupled with Beginning iPhone Development, can give you the tools to reach for the stars with your own creations! Enjoy!

5 Comments more...

Obligatory Wordpress upgrade post #10101010 and other rumblings at Chez PJ

by dreadpiratepj on Nov.28, 2008, under android, gadgets, iphone, linux, open.source, pjtrix.site, software.development, upgrades, wordpress

So today I updated WordPress to 2.6.5. And like every other time, it was a cinch, all over and done in less than five minutes. Thanks, WordPress guys!

In other news, I have been geeking out with both the iPhone SDK and the Android SDK, and I believe I have a little something special going here. I hope to have it ready for release, on both platforms, sometime in January. Development continues.

I will need beta testers soon. Any T-Mobile G1 users interested in helping out, you can email me at dreadpiratepj [at] gmail [dot] com

Speaking of Android, I started playing with it now that the source code to the whole thing has been released. I managed to get Android booting on a Palm TX, but it still needs a lot of work. It boots, but it doesn’t do crap once it boots. :-)

I get all the way to the “Press the MENU key to unlock” screen, but none of the keys do anything. Neither does touching the screen. It’s an issue with the Linux kernel drivers and device configuration. It just wasn’t made to run on a Palm TX without proper tweaking of the source. I just don’t know what the proper tweaking is.

I need to look in my bag of loot for a Palm serial cable (I’m sure I have one somewhere) and hopefully I can get a serial console from which to poke around inside Android.

I do have Android running successfully on my Sprint Touch (my parents, my sister and I have a family plan on Sprint.) Credit for that goes to Dr. Martin Johnson in New Zeland. I just use his release on my phone (before you ask, no, his release doesn’t work on the Palm TX. It’s the first thing I tried. :-)

Comments Off :, , , , , , , more...

Can You Hear The Wind Blow

by dreadpiratepj on Oct.24, 2008, under gadgets, hacks, life, open.source, software.development, technology



Photo by liferfe.

The mobile software market is becoming very exciting, and I’ve been watching with interest. I’ve been learning iPhone development for the last ten months, first with the jailbreak toolchain, and in the last six months with the official SDK. Likewise, I’ve been dabbling with the Android SDK.

Many people have compared the growth of mobile software in the last year to the amazing growth of the early PC era.

One difference from those years, is that mobile software is already mainstream. The “personal computer” took about 20 years to “catch on,” from the introduction of the Apple I in 1977, to the Windows boom of the mid-90s. In contrast, Apple has sold over 10 million iPhones in the last 11 months alone. There are few consumers that aren’t at least aware of the iPhone’s existence. T-Mobile sold about a million Android-powered G1 phones in only one month of pre-sale orders from existing T-Mobile customers. The device can now be ordered online for new and existing accounts, although demand is expected to be very high, causing possible shortages. They claim they can sell another million G1 phones between now and the end of the year.

Another difference is the barrier to entry. Computers cost thousands of dollars in the 1980s, and were not as easy to use and develop for at the beginning. To be a developer back then, you had to be a computer engineer or someone with previous software development experience on mainframes or minicomputers, which at the time was not as widespread knowledge as in these dime-a-dozen-MCSD days. The barrier to entry was very high, economically and educationally. The barrier to entry for iPhone and Android development is very low, with devices available for less than $200 USD. If you already develop software, be it for the web, intranets, or desktops, you already have most of the skills, and a computer with which to develop. So the cost of development tools and training for these platforms is very low, especially for Android. How come it is lower for Android development, you ask?

To develop for the iPhone App Store, you need to already own a Mac with Leopard 10.5.4. So if you don’t have a Mac, that’s an extra expense. With Android, you can use the computer you already have. To put your application on the iPhone App Store, you need to pay $99 USD + tax to Apple and submit your application and say please and cross your eyes and dot your tease (double pun intended, if perhaps lame.) You can sell Android apps from the trunk of your car at a flea market if you want, but to sell them on the Android Market you need to pay $25 USD, although there is no validation or approval process. For either iPhone or Android, you need to buy a device to test on real hardware and make sure things run well.

Of course, you can always develop iPhone software for the iPhone jailbreak community, using the computer you already own, without having to pay anyone a cent, nor having to seek permission. You will still need a device on which to test on, which brings you up to par with Android in terms of barrier to entry. But then you’d be limiting your market to the 20 to 30 % of iPhone users who jailbreak their device. 200,000 – 300,000 and growing is not a bad number of potential users, though. Many of today’s software giants were founded when PC user numbers were much lower.

Anyhow, I digress. My point is that just like I heard the call of the wild and left full-time employment in a Java consulting shop for freelance web work in Rails nearly three years ago, I hear the winds of change and opportunity roaring by. And I want to get my kite out and test the wind.

As you can see, I’ve researched the market. I’m going to cut back on freelance web projects, to start dedicating time to developing a growing stable of ad-supported and for pay mobile apps, for both iPhone and Android. I can bootstrap this effort and support myself for two years on only a small portion of my savings. I believe there is enough growth in the mobile apps market to make back my investment and grow it a little bit. The monetary barrier to entry is so low, the only risk is time and effort lost if things don’t work out. If that happens, I can always go back to what I did before. But I’m not going to forgive myself if I don’t try this.

There will be other related news soon. :-) Meanwhile, enjoy the breeeeezeeeee. Ha ha!

Song “Can You Hear The Wind Blow”, by Whitesnake

1 Comment :, , , , , more...

Another article fresh out of the oven

by dreadpiratepj on Mar.15, 2008, under facebook, software.development, web.development, web.technologies

I just got word from my editor at Developer.com that my latest article was published yesterday.

The article is called “Writing Facebook Applications with Java EE” and you can find it here.

The amount of information out there on writing Facebook apps with Java is scarce, and what is out there for Java Facebook applications, is often incomplete. I hope the article helps Java Facebook developers start on the right foot.

It was interesting returning to work with Java, even if only for the few weekends during which I wrote this article. I hadn’t developed in Java at all in almost two years. I was surprised I hadn’t forgotten any important details.

I have another article for Amazon Web Services submitted and in the editing pipeline. It should be coming out in the next few weeks

2 Comments :, , more...

Starting the new year right, three weeks late

by dreadpiratepj on Jan.20, 2008, under life, software.development, weblogs, wordpress

I wanted to write this post before 2008 started, but better late than never, huh?

I’ve been working with Ruby on Rails for over 18 months now, and it continues to be a lot of fun. There are still challenges, as projects are never a total walk in the park. There is also new stuff to learn almost every week. The Rails team keeps improving the framework, and the community keeps authoring more plugins. Keeping up is a demanding part of the job, but it adds to the fun factor.

One activity I’ve been doing lately on my own time is learning different programming languages, development environments, and frameworks. The move to Rails from Java seems to have been a good choice career-wise, and I did it by trying to keep current on technology. I want to be ready for the next shift, whatever that may happen to be and whenever it comes into prominence.

After many attempts, I finally had published not just one IT-related article, but three, at IBM DeveloperWorks and Amazon Web Services Developer Portal. The articles were published between late October and late December 2007. They are:

Display Google Calendar events on your PHP Web site with XPath

Don’t Get Caught with Your Instance Down

Using Parameterized Launches to Customize Your AMIs

These articles are just the start of a shift from developing software as one of the faceless multitude of IT geeks, to being somewhat more known among my peers. I hope to turn these and other articles into presentations at software development conferences in 2008. Hopefully this enhanced exposure and networking will lead to great new things in 2008 and beyond.

Just before beginning this post, I updated Wordpress to the latest stable version. I am always amazed by how easy Wordpress upgrades are. Considering how easy it is to write unmaintainable crap in PHP, the Wordpress team deserves a big standing ovation for doing software right in PHP.

The theme I had up for the last year was not compatible with the change to Wordpress 2.3.x, so I picked out a totally different theme this once. It’s really simple and unobtrusive. If I get creative, I may tweak it or pick another theme altogether.

That’s it for now. I’ll try to post more often. Feel free to give me a nudge in the comments if I let posting to the weblog slide again.

Technorati Tags:
, , ,

Comments Off :, , , more...

Much Railing Lately

by dreadpiratepj on May.15, 2007, under hacks, open.source, rails, ruby, web.architecture, web.technologies

I’ve been at my new job only four weeks, and my first project is nearly finished. My task these past four weeks has been the re-implementation of the company’s website in Rails. I was to do this from scratch, while keeping the site’s design and existing link structure. Among my requirements is adding support for multiple languages, as the company wants to show it knows how to make websites for a diverse, multi-ethnic audience. Another requirement was, that I was to do this re-implementation by myself. The company only has one other experienced Rails developer, and he is busy doing maintenance work on older non-Rails projects for company customers.

It’s been a pleasure working on this project, and I am very pleased in the progress I’ve made in such a short time. I look forward to going live in another two to three weeks, once the site has been through QA and any changes required.

This coming Wednesday, May 16, I am off to RailsConf 2007, in the lovely city of Portland, Oregon. Portland is great, I have been there twice and I’ve had a great time each trip. I look forward to the visit very much.

Two of my coworkers from the Williams F1 project, Kyle Drake and Nick Wright, are going to be attending RailsConf as well. It’s gonna be great to meet them face-to-face. Daniel Browning, one of my fellow coworkers at my new job, lives just north of Portland. My college buddy Ken Williams lives in the Portland area too. I plan to meet with them at some time during this, my third visit to Portland.

There are so many sessions I want to attend at RailsConf. But interestingly enough, I feel I won’t get any value out of the tutorial sessions, so I didn’t sign up for any of them. That means I’m out of the tutorial-attending n00b league, yeah! :-) We’ll see whether I can hang on to that thought in the other, more advanced sessions. :-D

A few of the sessions sound downright dull. I guess some of the n00bs will find them interesting, since they’re looking for ‘insight’ and whatnot. Whatever. ;-)

What am I looking for from RailsConf? I’m looking for some nitty-gritty I can sink my teeth into, some new tech I can experiment with and learn more from. I’m looking forward to have my brain blown by something cool but complicated that I can learn over the next few months. I want to learn about some new-to-me techniques and plugins or gems that I can master and take my Ruby and Rails to a higher level.

I also look forward to meeting some people face to face. Tim Bray is going to be delivering the keynote on Saturday morning. If you’ve been reading my blog for the last year, you already know what I think of him: he’s the d00d!

The JRuby guys will be presenting one session, and I think their work is of importance for the growth of Rails outside the leading edge. I think JRuby will be the thing to help Rails cross the chasm and be adopted by mainstream.

At OSCON 2005, DHH signed my Agile Web Development With Rails 1st Edition, so I will try to get Robert Martin, Dave Thomas, and Andy Hunt to sign some of my other books that they wrote.

Anyway, I’ll talk to you all later!

Technorati Tags:
, , , , , ,

Comments Off more...

It’s alive!

by dreadpiratepj on Apr.13, 2007, under rails, ruby, software.development

After three weeks of development from scratch and four weeks of tuning and debugging, the team of Rubyists I have been working with for the last two months finally launched our last project. At 8:30 a.m. EST on Thursday, April 11, 2007, the Williams UK Formula 1 team’s new website went live!

Full credit where credit is due:

Endemol UK was contracted by Williams F1 to develop the site. After some months of dicking around, Endemol subcontracted Futurecorp to finish the job. Futurecorp is the UK virtual IT shop that hired me and other developers on an hourly basis for this project. We rewrote the full app in seven weeks and went live with it.

Not to be picky, but I wanted to make sure that the above was not left unsaid. :-)

During the last seven weeks, we developed a complete content management system for Williams F1 news reports, event calendar, podcast and video content delivery, and Flash content management. The news, audio, video and event calendar is displayed in a user-friendly manner in a xhtml-strict compliant web front end for sports journalist access. The CMS also produces and manages content for a Flash front end for use by us common folk.

It has been a crazy time, especially the first three 65-plus-hour weeks of horror. I am particularly proud of those three weeks, because we had a fully functional application finished by that time. Rails really is that productive, folks. This was not a small application by any means.

The last four weeks have been more tame, with interminable boring hours of online chit chat BS sessions in Campfire, as developers waited and waited for QA to finish testing and maybe find a few lowly bugs for us developers to squash. The bug count was really low and we developers went home hungry some days. ;-)

Congratulations to all of the people below. I will miss working with all of you, it’s been a great time.

Ruby on Rails Team

Team Lead: Nick Wright, Colorado, USA

Kyle Drake, Minnesota, USA
Mark Selby, UK
Dougal Shearer, Scotland
Steven Holloway, Australia
Yury Kotlyarov, Russia
Brad Bollenbach, Montreal, Canada
and myself, Puerto Rico, USA territory

HTML Team

Team Lead: Dan Whitmarsh, Sweden

Gary Robinson, UK & Ben Miller, UK

Flash Team

Team Lead: Matt Folkard, UK

Tim Cooper, UK & Julian Wilson, L.A., California, USA

Support & Infrastructure Team

Team Lead: Jason Griffiths, UK

Project Leads:

Michael Christenson, Ohio, USA
Williams Project Lead, Futurecorp UK Ltd

Shaun Laughey, UK
Director of Operations, Futurecorp UK Ltd

Management:

Max Haggenmiller, UK
General Manager, Futurecorp UK Ltd

Radha Stirling, UK
Head of Development, Futurecorp UK Ltd

Justin Fanning, UK
Senior Manager, Futurecorp UK Ltd

Eddie Bosticco, UK
Senior Manager, Futurecorp UK Ltd

Technorati Tags:
, ,

4 Comments more...

More upgrades, more spam, a visit with friends, and a new gig!

by dreadpiratepj on Apr.09, 2007, under life, rails, ruby, software.development, upgrades, wordpress

I just upgraded to Wordpress 2.1.3. It was another flawless upgrade.

Akismet tells me that it has blocked over 1900 comment spam since March 22, and 3,130 since I installed it. I have only had three or four false negatives. That is, spam that wasn’t caught and ended up in my moderation queue. I made an effort to go through all my caught spam looking for false positives, and found none.

So when they flew me to NYC for lunch, I was very sure this company was interested in hiring me (duh!) I had a great time talking with the company CEO and the president, enjoying their wit and seeing their lifelong friendship at work during our discussions. That was quite interesting. I also had a good conversation with a fellow grunt, Sonny, with whom I will probably be working. I start at the new job on April 16.

They paid for my flight, overnight stay, and lunch. The lunch was really enjoyable, both conversation-wise and food-wise. I don’t remember the name of the family-oriented seafood restaurant where we went. It was within two or three blocks of Broadway and 19th Street. I want to go there again and try more items from their menu.

At the end of the day, I received a job offer, which I accepted. I’ll still be working from home as a Ruby on Rails developer, but I will be a salaried full-timer with benefits, instead of an hourly gun-for-hire. I have had enough of the gun-for-hire lifestyle for now, and this opportunity with this company was too good to pass up.

NYC was a hoot. I saw this guy with a giant inflatable cockroach in front of a building. Turns out he was a paid protester! When some group wants to protest something, they hire this guy, and he prints out some flyers, drives to wherever they ask him to go, gets out the giant inflatable rat and/or the giant inflatable cockroach, gets out his bullhorn, and he has a protest! He is also available for political campaigns, but he prefers hanging out with the cockroach and the rat. I thought that was pretty funny.

Another funny aspect of NYC, is that every block has at least one guy in a small plexiglass shop on wheels hitched to a truck, selling a bagel or donut with coffee for about $3. Each of these vendors has enough coffee, bagels and donuts for a few hours of sales. When they run out, they drive to the bakery where they get their goods, stock up, and drive back to the area they were last at, to continue selling their wares.

I really had a good time in Manhattan, and would like to visit again and do more touristy things.

After my interview in NYC last March, I took a train to Lancaster County, PA, and stayed with my friend the sci-fi writer, her husband and twin 3 year old girls. I rented a car to visit my other college friends and an aunt and her husband in Southeastern PA over the weekend. It was great to see everybody and to see them well. I’m glad they all live within one and a half hours of each other.

I am going to be planning a move to the Philadelphia suburbs over the next six months. I don’t own any furniture, don’t have a wife and kids, so it’s just me, my computers, and game consoles. I’ll probably disassemble the two PC clone towers and ship the parts separately, then reassemble them back in PA.

Wednesday is my last day at the hourly Rails gig. It has been a crazy seven weeks. We’ve been ready to go live for the last two weeks or so, but the client wanted some changes to how a few things worked. And of course that meant new bugs to stomp.

I’ve thrown in a few hints as to what the site is about, specifically mentioning yesterday’s Malaysian Gran Prix in a previous post. I can’t wait to show off what we’ve worked on. It really is a cool site. Latest news is that we go live Wednesday, but I’m taking that with a grain of salt. So don’t hold me to it.

Technorati Tags:
, , , ,

5 Comments more...

Racing To The Big Apple

by dreadpiratepj on Mar.28, 2007, under life, rails, ruby, software.development

I’m flying to NYC this afternoon, for a lunch / interview Thursday. The company interviewing me has been in business for nearly 15 years, with Linux and BSD, Perl and Interchange as their platform (Interchange is a Perl-based e-commerce platform.) They want to build a Ruby on Rails e-commerce platform to support their customers for the next 15 years.

They’ve been in touch with me for the last six weeks. I have had 4 phone interviews with them. This is the final face-to-face interview in their hiring process. If all goes well during and after lunch and we still like each other, they’ll be a job contract to sign when all is said and done.

After the interview, I will have the rest of the week and weekend to spend as I like. I’ll be staying in Southeastern Pennsylvania with my friend the sci-fi author, her husband and twin 3 year old girls. I will visit other friends and family in SE PA over the weekend. It will be great to see them again. Last I saw them was in August of 2005.

It’s been six weeks with the racing-oriented Ruby on Rails custom CMS. The past two weeks have been kind of slow work wise. There’s been very little overtime compared to the first four weeks of the project. Since I last wrote about the project here, I’ve done some on-the-job learning about RJS and the Prototype JavaScript library, and about Capistrano and deploying on Apache clusters.

In these past two weeks, there were short bursts of frantic bug squashing in between quiet hours of chit chat in the project’s Campfire group chat and on Skype. It was difficult to stay awake some evenings, when there was nothing to do but chat, and wait for the customer to QA the latest release.

Speaking of release, the client finally wants to go live, on Monday, April 2nd. This Monday evening, the code was deployed to the live Apache and MySQL cluster where the application will live out its public life.

Just in time for the Malaysian Gran Prix next weekend, don’t you think? ;-)

Technorati Tags:
, ,

2 Comments more...

I’m still alive here …

by dreadpiratepj on Mar.15, 2007, under life, rails, ruby, software.development

I survived the crazy work schedule and lack of sleep from my recent gig. I know there are still a few outstanding bugs, less than 5, but they are not critical. They are so non-critical, our employer is giving us Friday off, and there’s no more overtime until perhaps well into phase 2, which starts later this month.

The Rails app I have been working on should be up already, but it’s out of our hands now. The customer is tasked with deploying it, not us. The first race of the F1 championship starts Sunday March 18. If the site goes up after that, it’s gonna lose impact. But that’s not my responsibility.

I want to show it off already. It’s been a crazy four weeks, and the site looks and runs great. I had nothing to do with the visual aspects. I’m a Rails code monkey, not a graphic designer by any means. Our web designer did a great job on the CMS and press/journalist access site, along with the Flash guys’ tremendous job on the Flash client on the consumer site.

Before this project, I had only worked on Rails with another Rails newcomer, for just six months last summer. But in this project I am working with a few Rails experts. One of them is even a Rails open source contributor. And I learned just how much I didn’t know. I am humbled and acknowledge I am just a junior Rails developer.

So I’m back to the books for more knowledge. I meant to do that earlier, but the overtime kept me away. Since I have the weekend off, I’m gonna study some more Rails stuff, like RJS and RESTful web services.

(Aside: You know you’re a real geek when you have the weekend off from working in front of a computer, and your time off consists of sitting in front of a computer, studying about work-related stuff.)

Also, I’ve already started writing a post about using embedded Ruby templates and ActiveRecord within command-line Ruby scripts. This can be useful to generate templated emails, XML feeds, and all kinds of other formatted output from cron jobs and the like using Ruby. I’m sure that will be of interest to quite a few Ruby fans.

Now if you’ll excuse me, I’m gonna use my free Thursday evening to begin to catch up on some teevee and anime I’ve had to let accumulate in my BitTorrent folder in the last four weeks. I also look forward to IMing with friends tonight for more than a few sentences, without having to divide my attention between work chat discussions and my friends’ conversations.

Talk to you again soon!

Technorati Tags:
, ,

Comments Off more...

Looking for something?

Use the form below to search the site:

Still not finding what you're looking for? Drop a comment on a post or contact us so we can take care of it!