Archive | general RSS feed for this section

Announcing Docset Viewer v1.1 for iPad and iPhone

9 Mar

Over the years my blog has transformed from the usual “Wordy geek ranting about first-world problems” content toward more educational and informative posts on what I do for a living: developing awesome iOS applications. I don’t usually talk about the actual applications I’m writing though, since most of my work is on other people’s apps (and I’m not allowed to spill the beans on anything fun). I still consider myself an “Indie” developer though, and just like many other developers out there, I like to solve the problems that I myself face on a daily basis.

In this case what started with me complaining on Twitter turned into a new app due to the resounding and immediate “Me too!” responses I got from some of my followers. And with that I decided to create Docset Viewer.

(more…)

Allergies, and why Kimpton Hotels Rock

14 Nov

Allergies, and why Kimpton Hotels Rock

As some of you may be aware, I have enough allergies to various common foods to have earned the name “bubble-boy” from my friends. In fact, my wife’s friends used to semi-joke about me while we were first engaged that she should take a good life-insurance policy out on my, “just i n case”. She used to laugh at that, until she had to race me to the hospital a couple times, or stay up all night to make sure I didn’t stop breathing. Now it’s not a laughing matter. Now she’s paranoid for me wherever I go, always carries a spare epipen with her, and arranges our travel schedules around flights and hotels that can accommodate allergies. (more…)

Even geeks forget their passwords

13 Nov

Passwords are definitely fickle beasts.  I’m used to juggling a multitude of different semi-incomprehensible passwords containing a mixture of numbers, symbols, upper and lower-case letters, and in some cases unicode characters (letters such as ü, • and §). And for some mysterious reason I’m able to remember these gibberish-filled passwords with ease. But despite all this, when asked to input a 4-digit passcode into my iPhone to be able to lock my phone (a requirement for hooking it up to my company Exchange server), I couldn’t keep that simple password in my head for longer than 8 minutes.

Can you believe that? Numeric passwords are perhaps the easiest passwords to crack. There isn’t enough variance in the values each character can hold to guarantee uniqueness or complexity to be considered secure, yet for some reason bank ATMs and cellphones use them with impunity. Perhaps my problem is I’m so used to being security-minded, that something as simple as 1234 didn’t occur to me.

So now I’m waiting for my iPhone to restore so I can recover my device (luckily I’d backed up just prior to adding my Exchange email account).  But once I finish with this, I’ll have to do the same thing for my iPad with its 12 gigs of WWDC videos; I’m not looking forward to that.

Update: After wiping and restoring my phone from backups I was able to get at the phone without a lock code. Success! Once I checked my Exchange email again, it required me to specify a new pin code. I made sure to type something in that was really easy to remember. Something with a couple 1′s and a 5 or something. I’m not quite sure because after going upstairs for dinner, I came back downstairs and discovered I could no longer remember my new password. I’m restoring from backups yet again, and hopefully this time I can come up with a password I can remember longer than a goldfish can remember a password.

Blogging every day ≤ Coding every day

11 Nov

My life is pretty darned busy right now. Transitioning to a new job, travel for work, helping @dccp with her travel arrangements for her academic conferences, my own iOS projects, and my blog. Since the time I have available to work on my own coding experiments is limited to evenings and weekends. I’ve been recently attempting to focus on just one or two projects at a time, since for a while there I was coming up with at least 3 new prototypes per week.  Focusing on myDrumPad has really made it easy for me to give it the extra polish and attention it needs to take it to the next level. However, since I started participating in NaBloPoMo, the National Blog Posting Month, this has been consuming a great deal of my free time.

I enjoy writing about what it is I’m experimenting with, things I’ve learned in my iOS development, as well as other random tidbits that most people likely won’t care about. But writing about those activities have begun to overshadow the activities themselves. I don’t understand how prolific bloggers can balance their online writing, their businesses, as well as maintaining a happy family balance – perhaps they don’t?

I’m going to try to see NaBloPoMo through to the end, but what this is showing me is that either I put way too much effort into my blogging, or perhaps I don’t have as much free time as I formerly thought? Maybe it’s the fact that I got more done on the SkyTrain than I previously thought, and commuting in the car these past two weeks have taken more time of my day, but the progress on myDrumPad isn’t what I’d like to see.

How do other bloggers out there balance their blogging activities with their actual lives? Especially technical bloggers that write about iOS app development, web development, databases or scalability?

Revenue Canada wants me to buy an iMac 27″

10 Nov

For as long as I’ve been a developer, there was only ever once when I had a machine that I felt was an adequate development workstation. That was around 2001 when I had a dual-proc 667MHz P3 768MB RAM and three 17″ CRT monitors. This baby put out enough heat that my home-office didn’t need a heater on during the rainy Seattle winters; in fact, it was so warm in there that I’d wear shorts, a tee-shirt, and left the window wide open.

Since that time though, my computer has typically been limited to a laptop, my biggest since that dual-proc furnace being a 17″ Powerbook G4. Being a developer, there are three priorities that stand out above all others: screen real-estate, memory and CPU speed. Due to my history of being a web developer, only the first item on that list was a big priority. Since becoming an iOS developer, where your productivity is directly related to how fast you can compile your app, and how fast your performance profiling tools can run, I’ve encountered the other barriers developers face.

In the past though, I’ve largely been a cheap developer, opting to get by with what I have, or doing whatever I can to improve my productivity in other areas. However, for the first time since that space-heater with a RAID array, I have an opportunity to get the workstation I’ve been dreaming of.

Since I run my own personal business on the side, I can take advantage of tax deductions that normally wouldn’t be available to me. Computer purchases, like other capital expenditures, can be tax deductible, so the money I would have to pay the Government in the form of taxes, can be deducted from what I owe them. Normally only a certain percentage of that purchase price can be written off per year, in a process called amortization, so it’s effects are only moderately felt.

In Canada, as part of their economic stimulus package they put together to boost small business spending, they instituted a limited-time Capital Cost Allowance for 100% tax deductions on computer hardware and software purchases made between January 27th 2009 and February 1st 2011.

Think of it this way: assume I had a decent year of app sales on the iTunes App Store, and because of my extra income, let’s say I owe the Government $10,000 in taxes. Normally my only recourse is to dig up $10k (which, since I’m a good little business owner, has been sitting in a savings account all year long) and hand it over to Revenue Canada.

But because of this stimulus package, I have an option. I can instead buy $4,000 worth of computer hardware necessary to effectively run my business, and then only give $6,000 to the Government. No need to spread that deduction out over several years, no need to have the accounting hassle of carrying that equipment value over year after year. I see, I buy, I save.

There are limitations of course. Just as with other business deductions, you can’t cheat and take advantage of the system for your own profit. At home I use the equipment in support of my iOS development, web development, and any testing I need to do.

So what do I get for my last year?

This is the last year you can take advantage of this deduction, which really is a shame. But now that my side work is taking me to more and more demanding areas, such as Core Audio, OpenGL, and a little bit of video work, I feel that now is the time to invest in that dream machine I’ve always wanted and needed.

The question is, what’ll it be? Do I add on a cinema display to my laptop? Do I get a fully pimped-out quad-core iMac 27″? Or do I splurge and get both?  Based on my preliminary estimates for how much I’ll be owing in taxes, here’s my shopping list:

I’m probably going to wait until mid-December, or perhaps in January when I get back from my various weeks of travel.  What are your thoughts?  And if you’re a Canadian iOS business owner, what are you going to do to take advantage of the capital cost allowance?

Most blog templates suck

7 Nov

I’m a fairly decent web designer.  I’m not great by any stretch of the imagination, but I’m not really visually creative.  I tend to express my creativity in the apps I build, as well as in my writing.  So given the fact that I’m really proficient in CSS and HTML, I can make simple web applications look good if I don’t have the help of a designer.  That being said nothing replaces a great UI designer, who are worth their weight in gold!

But when it comes to my blog, I want it to look attractive without having to spend a ton of time on it.  I’ve given up on trying to write content management systems.  To me they’re a solved problem – maybe not solved particularly well, but it is to the point where I don’t feel I’d like to contribute anymore to the field – so tweaking my own website content by hand holds no interest to me.

But seriously, why do the available blog templates out there have to look so damned horrible?  Even the commercial blog templates for WordPress all seem to be lacking in some serious areas.  Is it really too much to ask that I can have an easy-to-read blog template that will adjust to the width of the browser that doesn’t have serious CSS problems on one browser or another?

Over the next few days I may be tweaking my blog’s template a bit, because I’m tired of the standard one-size-fits-none layout that most templates have.  I might even pay for a commercial template, if it means my blog doesn’t look like the sidebar of a print newspaper anymore.

This is not the toast you are looking for…

6 Nov

Last night while watching TV I had a conversation with my wife Deanna that made me realize that she is, as far as I’m concerned, a Jedi Knight.

I never really have that much of an appetite, and it’s not uncommon for me to skip meals altogether.  Since yesterday we had a late lunch, I ended up skipping dinner.  Normally it wouldn’t be a big deal, except that I thought I’d forage for a little snack in the evening.  After a cursory scan through the kitchen I didn’t find anything that sat comfortably below my laziness threshold, so I decided to forego eating anything at all.

What followed was a conversation that goes something like this:

Deanna: “Make yourself some food.”
Me: “No, I’m not hungry.”
Deanna: “Make some toast.”
Me: “No, I’m not hungry.”
Deanna: “Make some toast with almond butter.”
Me: “No, almond butter’s too much work…I’ll just have some toast.”

It was perhaps a full 30 seconds before I realized “Wait…what just happened?!”

I’m now a Canadian Citizen

4 Nov

Today, I’m proud to announce that I’m officially a Canadian Citizen!  I’ve lived in Canada for 7 years now and almost all of my family lives here, but since I was born in California, I’ve technically been an American for all that time…until today.

No longer will I have to sheepishly explain myself when US teams play against the Canucks.  No longer will I have to carry a stupid Permanent Resident card with me when flying home to Canada.  And probably most importantly, I no longer will I have to worry about losing my immigrant status if I need to stay out of the country for more than 6 months in a year.

There is one interesting drawback to all of this: I neglected to realize that once I became a citizen, I’d lose my Permanent Resident card, required for a landed immigrant to return to Canada when travelling abroad.  Normally this wouldn’t be too big of an issue, but I have to fly to San Francisco in a week for business with Salesforce.com.  ACK!

I’m doing the mad-dash rush to apply for my Canadian passport, booking my flight, getting passport photos taken, and all the other machinations needed to get from here to there without being detained by airport security.  This is the only black mark on an otherwise awesome occasion.

Go Canada!

I’m trying to blog every day this month

1 Nov

Because of my friend Chris Simmons, I’m going to try my hand at NaBloPoMo, the National Blog Posting Month. As if people didn’t write enough drivel on the Internet when they have something substantial to say, people are encouraged to blog even more with nothing at all to motivate them.

Okay…I’ll bite. I’ve been meaning to be more consistent in my blogging lately anyway. So starting today, I’m going to attempt to blog every day for the duration of this month. After all, I was somewhat upset over the fact that I didn’t have time to participate In NaNoWriMo yet again this year. So if I can limit myself to a blog post per day, perhaps next year I can finally get myself to the point that I can finish a draft of that SciFi novel vie been meaning to write for years.

After all, there’s more to life than iPhone and iPad programming…there’s also boobs, space ships and fictional technology!

New job, and new career path

28 Oct

Some of you who follow me on Twitter may have noticed recently that I’ve been talking about working for a new company.  This week is my first week working for Salesforce.com.  I’m really excited about the move for a number of reasons, some of which I’ll go into here.

As of this past Monday, I’m now a full-time iOS developer, instead of being limited to evenings and weekends.  I’m a new addition to an amazing team of developers at Salesforce.com developing apps to be released to the App Store, utilizing their amazing cloud-computing infrastructure.  From a technology standpoint this is right up my alley, and the company seems to have a great commitment to quality, agility and a good work environment.

This is a big change for me not only because it’s a new company, but because it’s an entirely different identity.  I’ve always referred to myself as a “Web Developer” when asked by friends, family, etc.  For 15 years I’ve worked in the web space, developing server- and client-side applications using Perl, JavaScript, and any number of other technologies in between.  But now when people ask, that answer no longer fits.  So starting this week, I have a new identity in my career.

I’ve always preferred to be on the leading edge of whatever technology it is I’m working in.  When I started, I wasn’t content simply building static sites; I pushed myself toward dynamically-generated sites.  When that became the norm, I instead focused on multi-lingual and multi-view sites.  That later turned into rich client-side applications, which later became known as “Ajax” webapps.  In recent years this too has become a bit passé.  This is what drew me to mobile development in the first place.

While I’ve been developing mobile apps for the past 2 years, I now can officially refer to myself as a professional iOS developer.  It feels good.

P.S.: I’m still continuing my work on my own personal iOS app business Decaf Ninja Software.  I’m continuing to maintain my existing apps, as well as develop new and interesting apps.  I learned to develop mobile apps through my side business, which is what launched this new career direction.  It only makes sense to continue that practice to improve my skills in areas such as Core Audio, OpenGL-ES and other more meaty areas that my work at Salesforce.com may not include.