life
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.

There are chapters by :
- Olivier Hennessy & Clayton Kane, of Posimotion, developers of Bikini Hunt and Apache Lander
- Joachim Bondo, of Cocoa Stuff; developer of Deep Green, a beautiful chess game for iPhone
- Richard Zito & Matthew Aitken, of Swipe Interactive, developers of QuickDraw and Pole2Pole
- Aaron Fothergill, of Strange Flavour, developer of Flick Sport Fishing, one of the top 20 best selling apps on the App Store
- Brian Greenstone, of Pangea Software, developer of Enigmo and Cro-Mag Rally, two of the top 5 best selling apps on the App Store
- Mike Kasprzak, of Sykhronics Entertainment; his game Smiles was one of the finalists for Best Mobile Game on the IGF Mobile 2009 competition
- 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
- 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!
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
My beach, where I grew up
by dreadpiratepj on Aug.14, 2008, under life
(This post was inspired by Evil Genius Chronicles, Lunches at the Beach.)
I grew up in this very town, 37 miles west of San Juan on the north shore of Puerto Rico. This very house where I live now was my grandfather’s house when I was eight years old. It later became my home, from ages 11 to 17. After graduating from high school, I went to Pennsylvania, PA to study Computer Science and got a job straight out of college. I moved here again almost seven years ago, when the dot com bust left me looking for a job.
I live 5 minutes from the beach, a beautiful bay, in my not so humble opinion.




I loved the beach growing up. I visited the beach every chance I got, even though I didn’t learn to swim properly till I was 16 years old. I just liked to walk the beach, sink my toes in the warm sand, or chill my feet in the water. And my beach has these great hulks of stone nearly three stories high (eolianite according to this page .) I loved climbing them and sitting at the very top and just stare out over the endless stretch of the north Atlantic on the horizon. At different times of the week, you can see the cruise ships heading for the Bahamas or Florida, just a half mile or so from the rocks.

As mentioned at the beginning, after I graduated high school I studied and worked in southeastern Pennsylvania and the North Carolina piedmont for 13 years, several hundred miles from the nearest beach. You can’t imagine the joy I felt every time I returned home on vacation to visit family during those years and stopped to visit this beach. I’m sorry, eastern USA residents, but your beaches are lame. And don’t even get me started about Lake Erie and Lake Michigan. Psh!

For the last two years, I’ve been working from home as a freelance software developer and tech writer. I pretty much can keep my own hours and so I make a point of taking an hour break at least twice in my work week, to head to my beach, just 5 short miles away. There are times I just take the whole weekend away from computers, work, everything (except my iPod and my fiction reading stash.) Sometimes I feel so burned out I just sleep all day on a hammock, less than twenty yards from the breaking waves. The sound of the waves and the steady cool breeze lulls me to sleep every time.
Every year since I moved back here, I ask myself if I want to move back to the USA mainland. And this beach is one of the few reasons I’ve stayed as long as I have.
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:
life, weblogs, software.development, wordpress
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:
rails, ruby, software.development, upgrades, wordpress
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:
rails, ruby, software.development
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:
software.development, rails, ruby
More like rakin’ in da dough …
by dreadpiratepj on Mar.07, 2007, under life, rails, ruby, software.development, system.architecture, web.architecture, web.services
It’s been two and a half weeks since I started my most recent freelancing software development project. Two and a half weeks of 20 hour days and seven day work weeks. Yep, if this project were to end today, I could weather out the rest of the year before another project came along. I wasn’t born a fool and took advantage of the overtime for precisely this reason. I have aged a year in only three weeks, busting my ass into a nubbin’, but with this in my résumé, this is promising to be the wonderful start of a great year.
This project is huge both in scope and publicity, for our customer and for Rails. And we go live after Monday, March 12! There is still work after that, but next week, you all will get to know what I was working on! That’s cool! I’ve been dying to tell you. In some countries, this is as big as NASCAR.
The project backend is in Rails, and like most systems, it has a data entry component and an end user component. In this project, one data entry system feeds two end user components with more or less the same data, but styled and delivered differently. As I mentioned two weeks ago, this is a project about car racing, and as in any sport, the press and the consumer both need different levels of access to information about the race cars, the racers, and the race information itself.
One of the coolest aspect of this project is working with delivery from the Rails side, of Atom feeds to a Flash client. The Flash client is slick enough, as you will soon see. But the support of XML generation in Rails is sick slick. I would love to write about that in the future, as there are plenty of gotchas to learn about and work around.
I was not responsible for the Flash side of this project, not in the least. It was perfected by one of the masters of the craft, along with two other cool Flash guys. Hats off to them. Next week they get their 5 minutes of fame on this blog, as I will mention all team members by name when all is out in the open and the stupid NDA is moot.
Alright, I have to get going, as I have to eat dinner before I throw myself into the pit of overtime one last time. It’s all smooth sailing after Thursday night.
Technorati Tags:
rails, ruby, system.architecture, web.architecture, web.services
Bringin’ in da dough, baby!
by dreadpiratepj on Feb.20, 2007, under hacks, life, open.source, rails, ruby, software.development, system.architecture, web.architecture, web.services, web.technologies
Last Wednesday, I sent emails and résumés for various job posts, and by that afternoon, I started getting nibbles. It was weird! Whereas I barely got any attention for over a dozen job applications I sent out between September and early February, I suddenly had five companies interested in me in a matter of hours! Maybe companies were waiting for post-holiday economy reports to start hiring? I wonder.
So to cut to the chase, I got a great hourly-pay remote development gig working on a Ruby on Rails project, on a really cool sounding website, for a very-high-profile vehicle racing company in the UK. It’s right down Ken’s alley, but if I’m not mistaken, this sport usually has a definitely more European racing audience. I think American racing fans like Ken, might resent these are not American cars, and just don’t watch. LOL
I cannot disclose any more information because of client confidentiality, but I think I may already have said too much. :-p
I’ll post a link here when the site goes up, at any rate. Only then can we drop all this silly NDA crap. It’s a bummer, because I can’t discuss application architecture specifics that would be of interest to my readers.
But fret not. There’s no rule about my discussing the project’s architecture in general. I just can’t say right out what architecture I’m dealing with on this gig.
I’ll be writing more about Rails in the weeks ahead, but just cuz I write about it, don’t mean it’s got a thing to do with work, you hear? :: rolls eyes ::
Technorati Tags:
rails, ruby, hacks, life, software.development, open.source, web.architecture, system.architecture, web.technologies, web.services
End of January Report
by dreadpiratepj on Feb.02, 2007, under life, pjtrix.site
You can see from the title, I started this post two days ago! And I just managed to post it now! Busy, busy!
Hi there, readers!
I have been busy for the last week, looking for new gigs, and sending out article proposals for a few sites and print magazines. I’ve also been toying with making screencasts, using my camcorder, and operating iMovie, for a not-so-secret pjtrix project from the summer. And then there’s another two projects, but they are secret for now. All this fun left me with little time for pjtrix posts.
Among other news, this here weblog finally got approved for PayPerPost.com and ReviewMe.com. Let’s see if I find something you and I might be interested in. First thoughts: … meh …
I continue to cover living expenses with the odd gig here and there. I have to find a way out of the hole into better gigs, though. The secret and not-so-secret projects should help, as well as the writing. We’ll see. I remain hopeful for the near future.
iCal to GCal Sync
I started this open source project in December, but I’ve actually made little progress in all of January. The learning curve is a little steeper than expected. Drawing a Mac OS GUI is super easy with Interface Builder, but making it work in a foolproof manner isn’t.
Then there’s the added complexity that all the Mac OS specific documentation is in Objective-C, a language I haven’t used or even looked at until now, and very different from the PHP, Python, Ruby, C++ and Java I know. And then I have to convert from the Objective-C examples to the Ruby-Cocoa construct I need to write my application. It’s not difficult, it’s just I haven’t yet internalized all the “bastard C-like object-oriented language from hell” newness.
From what I have gathered, Mac OS X Leopard is going to come with built-in Python and Ruby bindings to Objective-C. Maybe Apple will add some helpful documentation to their developer site that will help with this kind of conversion. I have half a mind to write a little GUI tool to convert short Objective-C snippets to their Ruby-Cocoa equivalents.
Spam, SPAM, Spam, SPAM, Spam, SPAM, Spam, SPAM
It’s not a pirate movie, and it’s not quite as good as the The Princess Bride, but Robin Hood: Men in Tights gets a good quote now and then in my emails and chats with my old college buds. And the Spam song always makes me laugh. So without much further ado, here is the monthly Akismet comment spam report.
In the month of January, Akismet reports I received 57 spam comments! This is compared to 74 for the entire year 2006. I remember not having any spam comments for quite a while, until some time in August 2006. I don’t remember the exact amount of spam comments I received in December, but I think it was less than 30, and November 2006 had about 20. So it seems that as I become more prolific in my posting, the spammers turn up their attempts. Or whatever.
