• Does experience count in mobile development?

    The other day, I was instant messaging with someone and jokingly questioned why anyone would listen to what I had to say about mobile development. Then I realized that I've been doing mobile application development for almost 17 years! Just writing that sounds unreal. I wrote my first mobile application my senior year in college for the Newton. On a tangent, how did a college student get a Newton and the quite expensive developer tools? The Apple Personal Interactive Electronics (PIE) group licensed my NotifyMail application and exchange, I received a Newton MessagePad 110 and the developer tools when developer tools cost way more than the $99 Apple charges to join the iOS developer program.

    The application was quite basic; it counted down the number of seconds until I graduated from college. Yes, I was tired of school and ready to graduate! I guess I kind of got hooked on mobile development and that's where I've spent a majority of my career; first Newton, then Palm OS, and now iOS. I've played with Windows CE/Mobile and WebOS, but never wrote anything for those devices.

    I don't think I could write Newton or Palm OS code these days, but some of the concepts are still the same, such as limited screen size and limited memory. However, iOS is so much more advanced, it's unbelievable.

    On the flip side, some may say that my experience is also a hinderance as I may be stuck in my ways. This may be true, but I'd like to think that it isn't the case. Hopefully my long history of mobile development continues to serve me well.

  • Life, a year later

    It's been almost a year since I left my job running IT for a small company. As I've written before, leaving the job was probably not the smartest move as I didn't have another job lined up. However, it turns out that the move was one of the best moves in my career. Through a series of events, I ended up with my current job where I'm quite happy. Sometimes it surprises me how much work influences life, but considering how many of my waking hours I spend working, it really shouldn't be a surprise.

    I'm not sure what was the actual trigger for leaving my last job, but I'm quite lucky that everything has worked out.

    Life is good.

  • The utility of a URL shortener

    I've setup Twitter Tools to post links to my blog posts to Twitter and that's been working well. I did this as one of my friends doesn't subscribe to my RSS feed, but likes to read my posts. He is a frequent Twitter user, so this solution works well. Since I haven't been using a URL shortener, some of my posts don't make it to Twitter as the URL and title make the post over the Twitter limit of 140 characters. The other day, I decided to see about solving this.

    There are a number of URL shortening services out there, but I kind of have a problem relying on a third party for the service. Also, one of the most popular one, bitly, is under a Libyan top level domain. I found YOURLS the other day and set it up. It was pretty easy to setup and I picked a subdomain for easy management. The Wordpress Plugin for it kept creating extra links and that kind of annoyed me. I found that someone created a Twitter Tools plugin to work with YOURLS. I tested it and it worked perfectly.

    So, now all my posts to Twitter are using my own URL shortener. The URL shortener is pretty maintenance free and easy to setup, so as long as I have my blog around, I think I can keep this running.

  • Struggling with Distributed Version Control Systems, e.g. git

    I've been using subversion for version control on just about all my projects for years, whether they were my own projects or for clients. It worked well and I got very used to it. Recently I've been put on projects that use distributed version control systems and have also been working on some open source projects that use it as well. Several of my projects use Mercurial, but most are using git.

    As my work on the Mercurial projects has been quite limited, I've fumbled my way through using it without really learning about it. MacHg has been good enough for me to work on the projects. However, one of my projects relies heavily on git, so I've been trying to learn it. I've read a number of tutorials, watched videos, read through Pro Git twice, and still don't feel comfortable with it. After talking with some other developers, I'm not alone in being lost with git.

    I consider myself a fairly intelligent person that can learn new technologies. I'm not sure why it has been so hard for me to learn git, but I'm starting to see some of the benefits of it. Another developer I work with has cursed git because he just wanted to look through a snapshot of a source tree, but with a distributed version control system, he had to download the entire repository in order to browse the code (he didn't have access to export the source without the rest of the repository). When he first told me about this, I completely agreed with him on how ridiculous this aspect was, but the more I read (read the same material, that is), the more I'm starting to get how powerful git is.

    While git is quite powerful, it is going to require me to change my workflow as git seems to encourage creating branches for every little thing. Branching code, to me, has always been avoided as it was a royal pain and merging was unpleasant. Merging can still be unpleasant with git, but everything I've read seems to indicate it is painless. We shall see.

    I wasn't until I found the Git Reference website that the pieces started to make sense. I'm not sure why every other tutorial doesn't make things this clear. Maybe this should be everyone's starting point in learning git.

    I'm comfortable with command line tools, but prefer a GUI if at all possible. With subversion, I used to use Versions, but switched to Cornerstone after I tried it and found that it showed diffs right in the app without requiring an external application. Now that I'm using git, there are a number of GUI tools for it, but I've found that Tower is the only git app out there for the Mac that currently has diffs right in the app, so that's my app of choice. There are some things I don't like about it, for instance I like a list of repositories on the left side. However, it's helping me become more comfortable with git.

    Maybe I need to write an idiot's guide to git. If a reasonably good developer like me is struggling with git, how can it become widely adopted? Is it that other developers aren't as entrenched in subversion as I? I kind of feel like I'm missing something in how much time I've spent in trying to learn git.