Apr 11 2010

What I’ve Been Up To

I’ve been crazy busy ever since we returned from Colombia. We fell back into life in the US at full sprint and have only had a few periods since where we could rest. As a result, I don’t think I’ve been clear on what exactly I’ve been up to with my family and friends. So here’s the short version of most of the major things I’ve been up to since getting back:

iPhone Development

We started a company last year to allow independent iPhone app developers to make the transition from “wanna-be” to published developer. The model works similar to a record label, where LTZ provides the leverage, so that developers can concentrate on coding rather than the logistics of getting apps out. We wanted to start small, get a few early successes and then use that momentum to gather a pool of developers. We’re also planning a Code Kitchen, which is a class to teach iPhone and Mac programming to anyone interested for free.

Most of our early time was spent on logistics, even though we had our first app idea right from the start. It was a lot of waiting; we waited for resources (copy, data, images, feedback), we waited for Apple, we waited for the lawyers and we waited for contracts. So in a year’s time, we finally had an application ready to release. But thankfully, most of that work won’t have to be completed again since the contracts, setup and other logistics are taken care of. I’ll post a longer article on the whole process (what it took, what we learned, etc), but as I type this, our app, BarNinja is “In Review,” waiting to go up on the Apple App Store. It still might get rejected (one never knows with these processes), but we’re hopeful that it will appease the Apple review gods. We’re also more hopeful that the app will actually sell well and we can get some money into the business so we can buy “test” devices, like the brand new iPad for all our people.

Scuba Diving in Blacksburg

As many already know, scuba diving is a relatively new thing for me. However, I instantly fell in love with the sport and have tried to progress as quickly as I can. It’s been a lot cheaper than flying.

I got my Open Water (OW) certification in November of ’08 (with dives in Cozumel, Mexico in December), my Advanced Open Water (AOW) in July of ’09 (with dives in the Florida Keys and on the US Coast Guard Cutter my grandfather served on in World War II), my Rescue Diver certification (that required another certification of Emergency First Responder) and now I’m working on my Divemaster certification, which is a professional level diving certification. As you can image, this has been a long journey, with a ton of training, reading, and diving. The diving part was especially difficult due to the location. Blacksburg is not known for it’s amazing scuba diving, but diving in the local river, which has a maximum depth of 41 feet, has made it a bit easier.

We should be able to finish up the divemaster certification in May of this year. That’ll allow me to help teach some classes with Scott, who runs Avalon Adventures here in Blacksburg and the New River Valley (NRV). He’s my current instructor and I’ve helped him out with his website. The plan is to serve Blacksburg, Christiansburg, Radford, and the surrounding NRV to provide classes, dive trips, dive refreshers and other adventures. Hopefully, we’ll also make some money in the process.

Music

I’ve picked up my guitars again. Sadly, I don’t think I’ve picked them up in at least six months, but I’m at it again. Luckily it only took me a few minutes to remember what those six months made me forget. I am also helping my old Computer Science instructor with his business at Rocket Music. It helps me get back into music, even though its on a strictly computer programming level. Just talking about guitars, buying guitars, customizing guitars and everything guitars reminds me to go pick up one of my guitars and practice, if for only 15 minutes.

Our Foster Dog

Our foster dog Petunia has really adjusted well with us. When we first got her, she had some problems with other dogs, being generally nervous, crying when we left her home alone, etc. We weren’t surprised, since her previous owners abandoned her and she spent a long time in the shelter. Now all she does it try to cuttle up with us and never leaves us, even if that means following us from room to room.

Ana is getting attached to Petunia and I don’t think we’re going to get her adopted. Being a Pitbull mix, people are afraid of her. However, everyone that’s met her has loved her, which is another reason we don’t think we’ll let her be adopted. She never barks, is great with our cat, loves to play, never complains, and is so adorable. She’s gathered such nicknames as Petu, Petufilese and just Perrita. Dogs are a lot of work, but I think in this case, for her, she’s worth it.

Apartment

My girlfriend of about a year, moved in officially a few months ago. She still has her old apartment, but the rent there is taken care of by a sort of sub-lease. Previously, we were always together anyway, cooking food, studying together, grocery shopping together. The only difference was, she wasn’t paying rent or the massive electricity bill we seemed to rack up with her presence. I have an extra bedroom in my condo, which I gave to her for all her stuff. We moved in her tredmill into that room (producing some of the first small scratches in my new hard wood floors), her desk and a bunch of other things so that she has her own space. It’s worked out extremely well and while we’ve had our fights about stupid apartment and living stuff, you don’t truly know a person until you lived with them. That goes for friends and girlfriends.

Spanish

As a result of living with a native Spanish speaker, I’ve picked up a lot. I never learned Spanish. It was always the language of poor people where I lived. Instead I studied German, the language that’s most understood in Europe. While living in Hungary, I learned Hungarian so picking up Spanish was probably the easiest thing for me. With Spanish, for example, just add an ‘O’ or an ‘A’ after any English word of more than 2 syllables and translate word for word and you have a pretty good, understandable sentence.

Before I met Ana (pronounced Ah-na, not Anne-uh by the way), I probably knew less than 20 words, and that’s after having spent two weeks in Mexico scuba diving. Before that, I probably knew around 5. Now I wish I would have learned it sooner, but I’m glad I learned German since Ana and I are planning a trip back to Europe. Ana has never been, so I’ll take us around Hungary, we’ll visit Italy (which is a language both of us have studied, but she understands a lot better) and she can take us around Spain since they almost speak the same language as she does.

We have a savings account set up that we’ve been putting money in since last summer. It’s not a lot, but it’ll at least pay for the plane tickets out there. Then we plan on staying with friends where we can, and since we both have friends all over Europe, it shouldn’t be an issue.


Apr 10 2010

iPhone Pricing

As with any product or service, the question of pricing is always one of the many challenges of selling a product or service. Many price their products or services low in an attempt to under cut their competition or initially sell a lot and get their name out there. Others charge way more than a person is willing to pay for such a product.

With iPhone development, more often than not, you’re selling a product as opposed to a service, which may be a compliment to your physical or web based service. If your iPhone app is a complimentary product to a service that you already offer and charge for, your iPhone app should probably be free (depending on complexity). Look at it as a value-added feature to put you above your competition and make using your service more convenient and enjoyable. By creating more ways to access your service, you provide more opportunity for your customers to use it more often and really benefit from what you’re trying to offer them.

So what’s the sweet spot for a price for your iPhone app? It obviously depends, but there are some guidelines we came up with.

Be Unique with Your iPhone App

The more unique your application is, the more you can sell it for. By being unique, you have less competition and thus a higher demand.

Complexity of Your iPhone App

If your application can be easily reproduced by a 16 year old kid on a weekend, you either shouldn’t charge for your application, or if you do, don’t charge more than a dollar because that 16 year old kid won’t.

Proprietary

If your application uses proprietary information, software, APIs or other technologies that aren’t easily implemented or obtained, you can charge more for your application. This relates to complexity, but be aware that people will often create equivalent systems if it’s popular enough so proprietary systems and information require a lot of maintenance to keep them relevant.

Usefulness of Your Application

How often will someone use your app? Is it just a novelty or something someone will only use for a certain chore that they rarely do? If so, the demand for the app diminishes and so should your price.

No application should be more than $10 with few exceptions. Remember that you’re developing for a mobile platform and the software is limited and your price should be limited too.

If it’s a game, how is the quality and length of game play? The quality, the game play and the fun factor all play a part in your price. Obviously, people much prefer spending money on entertainment than on a new fancy laundry list application. Games are usually unique (to the App Store at least), are complex and provide a greater satisfaction to buyers, which allows them to enjoy a higher price tag.

Perspective

Having a higher price on the App Store shows more confidence in your application. Giving your app away usually means you don’t think people would be even willing to spend the price of a soda on your application. These applications are fine, but for some of us, we need to make a living.

Making your app a dollar usually means, I want to make some money, but I don’t think people will pay any more for it. But charging a dollar can also be good if your app has a wide appeal. What you lack in big numbers, you make up with bulk sales. So, if it’s a game, you could potentially have a larger market as opposed to a utility application that the user spends 30 seconds on. So you really need to look hard at your application and keep several factors in mind before you price your app. You can always change it later, so one approach is to start low and see how sales go.


Jan 16 2010

How to Program for the iPhone – A Plan

This is not so much how to make applications for the iPhone, since there are so many on of those on the web already. This is more a syllabus on how to get started with the vast amount of information already out there and where to start from to quickly become proficient at iPhone development without getting frustrated or discouraged.

Development Requirements

An Intel-based Apple Mac
$99 (optional – if you want to actually publish your app)
That’s all!

Apple Developer Account

Development for the iPhone is initially free. So feel free to head over to http://developer.apple.com and sign up for a developer account if you don’t already have one. This will give you access to the Integrated Development Environment (IDE) called XCode, which is required to develop applications for the iPhone and iPod Touch. It also serves as a treasure chest of free information, sample code, tutorials, how-to videos and news, all of which I’ll talk about how to use later.

Once you’ve signed up for a developer account, you’ll need to download XCode and install it on your Mac. PC users are, as they always are, out of luck since a Mac is required for development. Once that’s done, put it aside as you won’t need it for a bit.

Learn to Program

An Important Design Pattern: Model View Controller

If you already know how to program a little bit, but haven’t gone through the rigors of a four year university Computer Science degree or something similar, start with learning an important design patterns, namely one called Model View Controller (MVC). Of course, a 4-year degree is not necessary, but you need to understand basic software engineering principles, design patterns and basic usability practices, which practically none of the programming tutorials, books and online articles teach. Also, a lot of practice helps as you’ll learn how to fix non-obvious compiler and runtime errors, how to structure your code, and pitfalls of each language you use.

Objective-C: The Language of Choice

After you understand the basic principle of MVC, you can then move on to learning the language of choice, Objective-C. Why Objective-C? Why didn’t Apple just choose a common language like C++ or Java? The reasons will become obvious as you learn about the language, it’s power, and how it fits into the MVC methodology better than any other language you’ve likely seen before. So here’s a nice tutorial on how to program in Objective-C.

If you already have a great understanding of programming and know a C-based langauge, skip the lengthy tutorial and take a look at this primer to get a sense of the additions to C that Objective-C brings to the table. For most people who are familiar with a C-based language, this will be all you need to get started.

Continue reading


Oct 19 2009

Dynamic Textfields in Flash AS3 and Their Bugs

I do a ton of localizations for web-based media (over 30 countries) and have run across several bugs in Flash where the characters don’t show up for certain fonts, especially for translations with non-latin characters (such as Russian, Chinese, Japanese and even Hungarian and German). I always complain about them, and instead of just complaining, I figured I’d share some of the solutions since they’re bugs in Flash and may not have obvious solutions.

Obvious Solutions

The obvious solution when you have a dynamic text field, that is either driven from XML, RSS, or other external document or data source, is to embed the font’s character sets. Obviously if you are going to be using Korean in your Flash application, you want to embed the Korean character sets so the Korean characters show up in the font you have chosen. However, with so much emphasis on branding these days, not all specialized fonts have characters in Korean.

For example, the Star Wars Jedi font that I once worked with has absolutely no other characters beyond A-Z, a-z and numerals. Forget Spanish and it’s tildes, forget German and its umlauts, but Russian?! Ha! Everyone knows there were no Russian Jedis! So, what to do?
Continue reading


Feb 4 2009

Working With People Better Than You

Depending on who you are and what you do, you may find yourself working with people whose skills are superior to your own. For some of us, this happens more often than not. For others, this rarely happens, or at least they think it doesn’t.

If you don’t work with people who are better than you at something, then there’s a problem. The problem is you’re the best at what you do. If you don’t see the dilemma (and silly you), let me explain.

How We Improve

We all go to school to learn skills to do our jobs better. We attend conferences to learn what’s new in our industry of choice. And we sometimes take online college courses to stay fresh and relavent. But all these things are being taught to us by someone who is better at what we do, be it a college professor, a peer who has done more research in the area or a committee of people who have dedicated a large portion of time compiling the information you are now trying to absorb.

We are best at what we do the most. For some people, they’re good at watching TV (some of us can’t sit still that long). Others are good at playing video games, cooking, or sports. Hopefully we are all good at our jobs, since above all, we spend the majority of our waking hours doing just that.

So, if the majority of your time is spent at work, working with people who are uninspiring and not as talented as yourself, it might make you feel great that you’re the smartest person in the room, but honestly, how smart are you really compared to other companies? Some of us can claim to be the world leaders in our respective industries. Unfortunately however, most of us can’t and if we aren’t exposed to people who have different ways of working and who are better, we never learn anything new.

Be Humble and Learn Something

I have several developers that I work with. The first thing I do is admit that I don’t know everything and that their input is very important to me because of that. Complex databases are not my thing. I know a lot about them, but I work with people who know more about them. Sometimes you just need to shut up and listen, even if you think you’re right about something. You’ll learn that not only are you not always right, but that other people can be right too, and sometimes you can both be right; just with different solutions to the same problem. So surround yourself with smart friends and co-workers and just by hanging out with them you’ll pick up things you wouldn’t have otherwise. Don’t worry about being the small fish, revel in the wealth of information and inspiration that surrounds you.