Computers?!

May 11th, 2009 / 1 Comment » / by Ryan

My wife is always telling me that she doesn’t understand how with computers something can be working fine one day and then the next day it’s broken.  Being a developer, I see this kind of thing all the time.  “It was working a minute ago!”, or the times when you ask someone to look at something that isn’t working and when you go to show it to them it suddenly starts working perfectly.

Something like this happened to me recently.  I was thinking about making some modifications to the iPhone app that I wrote, so I opened up the project and ran it but the audio wasn’t working and it locked up.  I thought that was strange since I hadn’t changed anything since I ran it last, and the last time I ran it was when I was getting it ready to submit it to the App Store. I knew that this exact same code was currently for sale, which was a little disconcerting.

After a bit of digging I finally discovered an error that was complaining about a DivX file that couldn’t be found.  I remembered installing a DivX codec to try and resolve a video playback issue I was having on my laptop but it doesn’t make any sense to me why that would have any effect on audio playback in the iPhone simulator.  The DivX codec had not resolved my video issue, however, so I proceeded to uninstall it and sure enough my code started working again!

So those times when something is working one day and not the next, I’m 100% positive that there is a reason for it, because that’s just how computers work.  Whether or not you can find the reason for it, the world may never know.

Tags: ,

Selective Hearing

March 26th, 2009 / No Comments » / by Ryan

There are some times when a pair of headphones is the only way to make it through the day.  To be able to block out all the surrounding noise/chatter is crucial when trying to concentrate on a project. I acknowledge that it is just trading one noise for another, but for me it is much easier to tune out music than whatever else is going on around me.

I’ve always been an audio fan.  I was big into car audio in my late teens, then home audio after that.  At my last job I worked with a few guys that were big audiophiles and they opened my eyes/ears to high end headphones. I had a $30 pair of headphones and I had never even thought about upgrading, but these guys were raving about how much better the sound is in a good pair, so I started looking into it. I knew from my own experience how much difference good equipment makes in the car/home arena, so I figured that it made sense that if I invested a little more that I’d get better sound.  These guys were probably spending between $300 and $600 on their headphones though, and I wasn’t willing to spend that much on something that I couldn’t even try before buying.  At least with home and car audio you can go to the showroom and try out the demo models, but I’ve never seen anywhere that lets you do that with headphones.

The “good” headphones were starting around $100, so that is quite a jump up from $30.  The wires on my pair were starting to crack so I needed to replace them anyway, but I really didn’t want to spend a lot of money for something that didn’t really sound any better. I lucked out and found a pair Shure E2G’s on sale for $55 (which normally sell for around $100).  I figured that even if they didn’t sound any better, I could live with risking the $25 more. The E2C/E2G line was really the low end of Shure’s offerings, but let me tell you that the sound they produce was incredible compared to my $30 pair!  The sound on the E2G’s was so clean and crisp, I could hear parts of the music that I had never heard with headphones before.  The cheapies did have stronger bass than the Shures, but everything else was so muddy that I could never go back.  The extra bass is just not worth missing everything else.

Fast forward a year and a half to about a month ago.  My Shure’s started developing cracks in the wires, both wires, about an inch from the earpieces.  The fact that both wires were cracking in the same place, which also happened to be a stress point when they were in the supplied case, made me think that it was a design flaw.  I was still within the 2 year warranty period, so I decided to send them in.  It took about 2 weeks for the replacements to arrive.  During that time I had to rely on the freebies that came with my iPhone, which are buds that don’t block out any sound (I prefer the in-ear style) and don’t sound nearly as good. It was a long 2 weeks.  In the end, Shure sent me a brand new pair and I am SO happy to have them back!

And it turns out that the case design has been changed since I bought my original pair, so that seems to back up my theory that there was previously a design flaw.  Either way, hooray for companies like Shure that honor their warranties!

iFakeUout

March 10th, 2009 / 1 Comment » / by Ryan

ifakeuout_store

iFakeUout is my first iPhone application, and it went on sale in the App Store today!

My idea for this app started out as something else, but because of some limitations I ran into it evolved into what I think is just a fun, simple app that can be used to get a laugh out of your friends.  The idea is to wait for just the right moment, then pick a sound to play that will get the best reaction.  Thinking back, this would have been great to have on some sleepovers, like playing the school bell or the bugle when the whole tent is quiet and everyone is just about to fall asleep.  Maybe that’s only funny to me though, but only because we actually did that kind of thing.

Ah, the dreaded shameless self promotion, nothing wrong with that though, right?  On a side note, it was very encouraging for me as a developer to have my app accepted on the first try.

UPDATE (06/3/2010): I had previously allowed my developer subscription to expire and in the process this app was removed from the App Store.  However I just recently renewed my subscription in preparation for submitting a new app and incidentally this app has been re-listed for sale in the store.  Right now I’m not sure if I plan on leaving it up for sale so if you are interested in it, now is your chance to get it.

Tags: ,

iPhone Icons

March 5th, 2009 / 1 Comment » / by Ryan

Since I’ve been dabbling in iPhone development for the last little while, I wanted to just write down a few items regarding the icon to hopefully help anyone else out there to avoid some of the incorrect information I ran across on the web.

The icons are 57×57 pixels, not 60×60.

The rounded corners and the reflective “button effect” are added automatically by the system, all you need to do is create a square flat image (57×57).

In development mode (and probably for ad-hoc distribution) you can get away with using a .jpg for your icon, but when you upload your app to Apple they will reject it if it isn’t a .png.

I had read about some of the complications of adding the icon to your app, but it is quite simple.  First, add your icon to your project just like any other resource, then open Info.plist right in Xcode and type in the filename for your icon.  I believe there are some other customized settings that you can configure in the .plist regarding the icon and maybe that is where the complications came in, but it wasn’t clear in what I’d read that adding the icon itself was simple.

Lastly, when submitting your app you are also required to submit a large icon (512×512).  I have heard rumors that your app will be rejected if your large icon and small icon don’t match. If that is the case you’ll want to be sure to create an icon that looks good in both sizes. I believe this rumor because it makes sense, but I don’t know how exact the images have to be to be considered a match.  I guess I’ll find out soon enough because in the app I submitted I created my small icon first and the large icon later.  The larger one resembles the smaller, but they aren’t “exactly” the same.  In the future I’ll just create the large one first and resize it to make the smaller one.  I’ll update this post if I get any more information on that.

**UPDATE**
Turns out that the icons don’t have to be “exact”.  My app was accepted even though the smaller icon was not created directly from the larger one.  Visually they looked the same, so I assume that the person who got rejected because of the icons probably had visually different large and small icons.

Tags:

Learning Curve

February 25th, 2009 / No Comments » / by Ryan

I really enjoy learning new things.  I often miss the good old days of attending classes at the university, and even now I would still love to go back and take more classes just for the sake of broadening my knowledge. If only I could avoid taking exams and the astronomical cost of tuition. So it appears that for now I am stuck learning things on my own and attending the occasional seminar/webinar when possible.

The challenge with learning things on your own is discovering where the good knowledge is.  In some cases there may be dozens of books pertaining to a certain subject and determining which one to invest your time in is a challenge.  In other cases there may be very little information available and when just finding the information is a challenge it is hard to be picky about the quality.  There is no mentor telling you what you really need to know, and the material may not be presented in the most organized manner (though I can’t honestly say that not all of my university courses met that criteria!).

In my latest endeavor, I had to start from the ground up.  Learning a new language, using new hardware, minimal public documentation/tutorials (but that is steadily getting better) etc.  I wasn’t doing this just for the sake of learning something new, I actually had a few projects in mind that I wanted to accomplish.  I’d say that the learning curve has been a little more than I expected, and it is always frustrating to know enough to know that if you knew what you were doing already you could accomplish your task in a fraction of the time.  I’m going to stick with it though, because the more I do the more sense it makes, and I’m almost done with my first project (don’t worry, I’m sure I’ll announce it here when it’s done).  It isn’t as flashy as I would like and doesn’t have all the features I had planned, but those will fit nicely in the next version.  For now I’m just looking forward to my next project!