Sunday, January 1, 2012

My 2012 New Years Resolutions

This past year brought many challenges to my life that I've not previously encountered. Family health issues brought about the greatest challenges to my life, but turning 50 wasn't far behind. I am committed to handling challenges I am faced with in 2012 by doing a better job of keeping my priorities in their proper order at all times.

My Life Priorities

  1. My relationship with God
  2. My family's needs
  3. My health
  4. My career growth

My 2012 Resolutions

  1. Grow in my relationship with God
    1. Create a prayer plan for each day
    2. Set aside at least 15 minutes every day to pray in silence
    3. Give my life to God in all that I do (stop trying to do it all myself)
  2. Provide support for and actively take part in caring for my family's needs:
    1. Spiritual needs
    2. Personal security
    3. Financial security
    4. Health and well-being
    5. Friendship
    6. Intimacy
    7. Personal Growth (strength, competence, mastery, self-confidence, independence and freedom)
  3. Create, refine as needed, and follow a comprehensive health plan for my life that incorporates the following elements:
    1. Lose 80 pounds this year by:
      1. Weekly weight monitoring
      2. Daily food tracking
      3. Daily exercise tracking
      4. Publishing my weekly progress
    2. Schedule and take part in regular health care appointments:
      1. Dentist (minimum 2 visits)
      2. Family Practitioner (minimum 4 visits)
      3. Hearing (take hearing test and act on results)
    3. Devote time and energy to myself this year
      1. Learn how to play the snare drum
      2. Play golf at least once per month
      3. Read at least 4 history books this year
      4. Set aside time to play Xbox games
      5. Set aside time to play ping pong with family
      6. Set aside time to camp and hike (minimum five times)
  4. Create, refine as needed and follow a plan for my career growth that includes the following elements:
    1. Continue to grow in my development proficiency in the following areas:
      1. iOS - build at least two iOS universal apps and publish them on the iOS App Store
      2. Mac - build at least two mac apps and publish them on the Mac App Store
      3. Android - continue to follow maturation of OS and devices
      4. Development Tools
    2. Find new ways to stay focused on prioritized work tasks while at work
  5. Publish regularly (minimum twice per month) my progress in the following areas:
    1. God in my life
    2. Weight loss and exercise plan
    3. Pertinent and interesting personal time activities
    4. Pertinent and interesting career growth activities

 

Friday, September 25, 2009

iPhone User Interface Design

After attempting to design iPhone user interfaces using several different methods I have finally found a home with Balsamiq.

There are several good solutions available to developers to design iPhone user interfaces. There are sketch book solutions, which allow you to start with an iPhone blank image. None that I found added any significant value to the design process for two main reasons: 1) there is no standard template that can be used that scales to the iPhone blank image templates and 2) lots of drawing and erasing as you attempt to design the perfect interface.

Then I tried several variations of templates that can be leveraged in Photoshop. Though they are freely downloadable, I found that my productivity suffered when designing an application because the templates were somewhat clumsy to use. That may very well have been caused my inexperience with Photoshop, none the less one still has to own Photoshop or a close proximation (Pixelmator) to leverage the templates. If you decide to go this route and don't own either product, Pixelmator is an excellent product for a fraction of the price of it's competitor.

The next alternative I tried was using a template designed by the Design Commission. This is a metal template that allows you to draw the outline of the template to get an enlarged scale iPhone and includes all of the design elements required to design an iPhone application. If I had not stumbled upon the iPhone controls from Balsamiq I would certainly be using this design template. Though the constant problem with drawing and erasing still exists this tool provides a good and inexpensive solution for designing iPhone applications.

After attempting several options for designing iPhone applications and getting frustrated with the process, I remembered the process I used to design web applications in the past. I have used Balsamiq extensively now for over a year and a half to design interfaces for Ruby on Rails and Grails but I only knew of templates for designing web applications. After a quick search I found iPhone controls for Balsamiq. After installing the controls into Balsamiq, I quickly found out that iPhone UI design could be fun and productive. Though the Balsamiq iPhone controls don't include all of the iPhone controls, through the other default Balsamiq controls it's easy to design an iPhone application that can be exported as an image with embedded design notes to leverage when constructing the application.

Below is a screenshot from the Balsamiq site showing all of the iPhone controls available. Each control has multiple configuration elements to suit your design needs.

iphonedemo.jpg

Thursday, September 17, 2009

Weightbot iPhone App

Since starting a diet a month and a half ago I have found that by weighing daily it helps keep me focused on my goal and prevents me from straying from my diet for long periods of time. So far I've lost 25 pounds by watching what I eat (counting calories) and weighing daily. I recently started using Weightbot to weigh daily.

Weightbot has a slick design that's easy to use and just the features needed to track one's progress with their weight goals. When the iPhone device is vertical you can enter your weight for the current day, as well it displays your body mass index. When the device is horizontal is displays a graph of your progress on one side and when flipped it displays a detail of your progress.

Friday, August 28, 2009

Beautify Objective-C in Xcode

Xcode is where I spend the majority of the day now that I'm developing iPhone applications full-time. Though Xcode is an excellent tool for building applications developed in Objective-C it lacks the ability to provide full control over how source is formatted.

Since I used to spend most of my day developing in TextMate I became very familiar with how to customize the environment to suit my needs, which enhanced source code formatting was one of them. Xcode allows similar abilities to customize your environment as TextMate via "Edit User Scripts". Below I will outline how to configure Xcode to enable greater control over formatting source code.

There are two packages that must first be installed prior to making any changes in Xcode: MacPorts and bcpp.

bcpp is a source beautifier for C, C++ and Objective-C developed by Steven De Toni and is maintained by Thomas E. Dickey. From the MacPorts site, MacPorts is an open-source community initiative to design an easy-to-use system for compiling, installing, and upgrading either command-line, X11 or Aqua based open-source software on the Mac OS X operating system".

You will first need to install MacPorts if you don't already have it on your system.

Once MacPorts has been installed, you can just type “sudo port install bcpp” from Terminal to install bcpp on your system. By default, MacPorts will place bcpp into /opt/local/bin on your mac.

Now to setup bcpp inside Xcode...

1. Select the User Scripts Editor:


edit scripts menu.png



2. From the menu in the lower left corner of the editor select "New Shell Script"


new script menu.png

Note: You can optionally create a new folder to place your custom scripts. I place my custom scripts in a folder called "Personal".

3. Name the script "Objective-C Beautify"

4. On the right side of the editor make the following changes:

Input: Entire Document
Directory: Selection
Source window: /opt/local/bin/bcpp -fnc ~/.bcpp
Output: Replace Document Contents
Errors: Display in Alert

5. Change the shortcut to something that you will remember and that's not already mapped to something else in Xcode.

Here's the final result:

completed script.png

Monday, July 27, 2009

Copyright source code in xcode

Though there are several mechanisms to copyright your code in xcode, the easiest is to update your user account company field in the Address application. Once updated all new source code files will be updated with your company in the copyright field. Any source files previously created will not be updated and you’ll need to update them manually.

Changing view sizes in xcode

If you create a view.xib in xcode you will not be able to manually alter the size of the view (Command-#3) until you remove any bars from your view (Command-#1). The default setting for a new view is to always show a status bar.