February 2011
1 post
5 tags
Lessons Apple Should Learn from Ruby and Rails
I’ve been a practicing iPhone and Mac developer for a few years now and I love many aspects of Apple’s platforms. The interface design software is incredible, programs run fast even on mobile devices, and the the code debugging tools are great. However, with experience comes bitterness. Perhaps my undoing is that I have also been writing Ruby (on Rails) code for about the same amount...
Feb 7th
3 notes
January 2011
1 post
2 tags
And Suddenly I'm on GIT
I’ve made the move from SVN to GIT. The reason? Heroku. Using deployment with GIT left me with two version control systems. This didn’t matter until I started working with another developer wanting deployment access. The move was actually relatively easy (mainly due to a number of new Mac OS X applications). Here is a list of what I’m using now: GIT 1.7.3.3 GitBox 1.0 ...
Jan 4th
December 2010
1 post
WatchWatch
Dec 21st
November 2010
5 posts
2 tags
Are Grid Systems Wrong?
I am currently in the process of finishing up a project and have started to question the ‘correctness’ of grid systems. Although they are extremely powerful, I see a number of flaws (this discussion targets the 960 Grid System): New Markup Grid systems require the introduction of new markup into the HTML (adding ‘grid-2’ to class variables, etc.). This is especially bad...
Nov 14th
Nov 14th
Nov 9th
Nov 2nd
OptiPNG
I recently needed a small project to test out Platypus, a tool used to create simple native Mac applications. After only 30 minutes I managed to create a container for OptiPNG, a PNG compression library (download DMG or Zip). The icon was found on Icon Finder and was designed by Louise Harobe. The DMG was created using DMG Canvas.
Nov 2nd
October 2010
8 posts
2 tags
Oct 20th
1 tag
Best Idea Ever
This morning I had an epiphany. Someone should design a sticker that will fade at a given rate. For example, one could purchase a sticker that fades in two days to remember when to water the plants, two weeks to remember when the milk is bad, two months to remember when to replace a shaving razor head, etc. Once a product was replaced, a new sticker could be put on overtop. Better yet, the product...
Oct 20th
Oct 19th
Oct 17th
Oct 17th
2 tags
Visual Editors for Creating Web Content
I remember my youth. At the time, I managed to “sign contracts” for creating sites for the Yukon Information Technology Industry Society (http://www.yitis.ca/), the Yukon River Trail Marathon (http://yukonmarathon.com/), the Canada Winter Games and a small development company Sorrento Systems. I can’t recall which of these contracts paid. My process was simple: I used...
Oct 14th
2 tags
NSError Is NSAwful
Is it just me, or is NSError one of the worst features of the cocoa framework? Who thought these are these better than exceptions? Don’t developers see that these are just fancy return codes? Here are some major problems: Most developers don’t handle errors. Exceptions add due pressure to not let things slip. With ‘NSError’ it is so easy to pass NULL or never check the...
Oct 14th
1 note
Why Isn't Apple DRY?
After looking through some of the sample applications and templates generated from XCode (specifically for Core Data), I am a bit confused why the Apple engineers insist on repeating themselves. For example: Is better written as: Just a minor complaint.
Oct 9th
August 2010
1 post
1 tag
Rogers is Terrible
I am currently (but not for long) a customer of Rogers. They have provided my high speed cable for the past year, and in that time frame I have had 2 outages (for over a week), terrible performance and frequent disconnects. I often get speeds around 40 kbps when using their online speed test tool. Recently, I called in to a local store to have a modem replaced that was a few days out of...
Aug 24th
June 2010
4 posts
Performance Differences in Rails 3 and Rails 2
After upgrading an application to Rails 3 everything seemed slow. Requests were taking a few seconds - even when connected to the local development machine. To verify, I created identical demo Rails 2.3.8 and Rails 3.0.0 applications for benchmarking (found here). To run the tests, first install RVM by following the instructions found here. Then feel free to experiment switching between Ruby 1.8.7...
Jun 26th
2 tags
The Switch to Rails 3
Switching to Rails 3 for a recent project wasn’t an easy decision. On an initial investigation, too many GEMS lacked support for the latest offerings of the community. However, the excellent new router and ability to integrate more easily with a variety of JavaScript frameworks made switching worth the costs (thus far). If you are interested in switching, be sure to...
Jun 16th
2 tags
Why Can't I Switch into GIT?
GIT out-trumps SVN in almost every way. The decentralize repository is better, the branching is better, and the social aspects (through github) are incredible. However, I can’t make the transition because I am hooked on Versions and Kaleidoscope. Having a great GUI to show changed files, and side by side comparisons is more important than having an amazing command line tool. Until someone...
Jun 8th
2 tags
Recurring Billing
Most web app ideas fall under an advertisement model or a freemium model. In the later case, a great application to simplify recurring billing is Chargify. The software lets developers link to a payment form or integrate custom forms with the service through a RESTful API (or a gem). Once integration is done, administrators can track and update subscribers through a gorgeous web interface. ...
Jun 5th
May 2010
2 posts
2 tags
Must Have Services in Rails Web Design
Ruby on Rails is what it is because of all the great services that extend and augment it. Here is a quick overview of some services that make creating web apps downright cool. Hosting Heroku provides online “cloud” hosting for Ruby applications (Sinatra, Rails, etc.). It uses GIT to deploy and runs on Amazon EC2 servers. The service is free for small applications and reasonably...
May 12th
2 tags
Thinking about Migrating?
Unlike the featured caribou, I hate migrating. More specifically, I had migrations in web development; especially in Rails.    Here is why: Migrations are used throughout the development process when they are only required after having deployed to production. Who cares if you loose data while developing? Migrations duplicate functionality that every good software developer uses: version...
May 10th
April 2010
1 post
5 tags
Non-Blocking Long Running Tasks on iPhone
iPhone and iPad applications containing long running tasks - such as HTTP requests or data processing - that block the main thread are annoying and often appear sluggish. The following snippet fixes this issue:
Apr 22nd
March 2010
3 posts
5 tags
Cocoa Copy Paste Menu
I spent some time earlier today playing with the UIMenuController offered in the iPhone SDK and realized two thing: sometimes Apple’s examples suck and having an environment that often gives no feedback is terrible. In this case, I implemented a copy of an example that was supposed to present a semi-modal cut / copy / paste menu. It didn’t. After spending nearly an hour trying to...
Mar 25th
5 tags
Cocoa Extensions
Cocoa extensions provide a great way to modify existing classes with additional functionality. Here is a good example of extensions in action: Accessing extensions is simple: just import the header file. In the case above, easily readable dates are now at the finger tips!
Mar 24th
5 tags
A Few Reasons Cocoa Isn't That Hot
Over the past half-year I have been developing software for the iPhone (and recently iPad). Although I feel that Cocoa is excellent overall, a few rough edges prevent it from being a truly great experience: The Language Objective-C is the language of choice for most Cocoa developers (Cocoa can be accessed through bridges by Ruby, Python and a handful of other tools). It provides a thin layer...
Mar 11th
January 2010
1 post
5 tags
Snow Leopard Rails Development Environment
A good Ruby on Rails development environment needs a few things: SSL, image processing, text editor, version control, etc. These notes explain how I setup rails development environments for Mac OS X 10.6 (Snow Leopard). Step 1. Updating Gems Before doing anything, it is important to ensure that you are running on the latest gems. To do so: sudo gem update --system sudo gem update Step 2....
Jan 13th