31

Dec

Corporate Slumming part 11

Our hero is sitting in a high-chair at his own narrow high-table in the back of a Pepper's in Terminal C. He is scraping the mayonnaise off the top slice of Texas toast with a butter knife. He uses the bottom slice to sop up the extra mayo still clinging to the turkey and swiss and discards both slices on top of his french fries. He carefully pushes it all to the side with his knife and fork--what appears to be a proud gesture of his anti-carb commitment.

He spots the passing waiter and furtively lifts his ice water to

02

Dec

My favorite quotations from "Love Begins in Winter"

A few winters ago while traveling to Dublin I was walking around trying to acquaint myself with the cold city. After the foggy low ceiling did a number on my mood I entered a book store and purchased a short novel by Simon Van Booy.

I'm not sure what prompted me to purchase it--it might have been the Frank O'Connor award the book store was touting or the compelling title "Love Begins in Winter" which seemed apropos to my situation. No matter, it was one of the best decisions I made. The writing feels like a combination of prose and

04

Sep

iOS Twitter integration stopgap

I think it's fair to state that most-if not all-iOS developers are excited about iOS 5.0's OS level integration with Twitter. While we wait for iOS 5.0 to arrive and for users to upgrade, integrating Twitter into an iOS app can be done in one of two ways.

One: the purist way

The purist way is to use Twitter's strict OAuth 1.0 support to enable the user to login to twitter using a webkit webview from within your app. Doing this usually requires using a half-baked open-source library (if you can call it that) to manage the webView and strip

16

Jul

Easiest way to download remote files for iOS

I updated and open-sourced a utility for downloading web-hosted files for iOS today. Using it is extremely easy and doesn't require any notifications or delegates. Only sexy block syntax.

First, you'll need to import it in your implementation file:

 #import "RemoteDataManager.h" 

Then you can:

 NSString *location = @"http://tailsmagazines.files.wordpress.com/2009/04/kitten.jpg?w=320&h=480"; [[RemoteDataManager sharedManager] getDataAtLocation:location withCallback:^(BOOL waiting, NSData *data){ if(waiting){ // if the data is not cached [loadingIndicator startAnimating]; } // when the data is available else{ [loadingIndicator stopAnimating]; imageView.image = [UIImage imageWithData:data]; } }]; 

The key thing to acknowledge here is that the Callback block may get

13

Jul

10 Flavors of Pushups

I'm growing tired of the plethora of pushup apps, programs and social campaigns. It seems that the pushup has become the next de facto "get healthy" exercise after running.

While any sort of physical activity is certainly a good thing, the problem I have with these campaigns is that they don't create a long term sustainable interest or passion for exercise. Performing the same exercise repeatedly is not a good way to increase your overall fitness level. It's always going to favor some areas over others and the body adapts to such routines hindering your progress. Moreover it's just boring.

17

Jun

Konstructor: Easy TableViews for iOS

Creating TableViews is one of the many very verbose tasks in iOS development. Every attribute of the table and the cells has to be customized by implementing a different protocol method.

Not anymore

Thanks to the magic of blocks, the overly terse task can become something declarative, readable and even fun!

Here's an example of what it can be with Konstructor:

 self.tableCellHeight = 100.0; /* Create an array of data. You'll likely do this completely differently */ NSDictionary *gloves = [NSDictionary dictionaryWithObjectsAndKeys:@"Gloves", @"name", @"for your hands", @"caption", nil]; NSDictionary *muffs = [NSDictionary dictionaryWithObjectsAndKeys:@"Muffs", @"name", @"for your ears", @"caption",

18

Nov

Most disruptive technology advances in social media

I'll start with the features:

The News Feed.

SMS

The Avatar

The Blog

Ratings/Bookmarks

The rest of this list is all nerdy stuff:

Data Analysis

Join Tables

Write heavy databases.

Commoditization of High Speed Connections and Content Delivery.

Cloud computing

Acceptable data unavailability

12

Sep

Five Things Ping Needs Right Now.

I don't know about you but I am underwhelmed by Ping. It reeks of big software. The following is just a short list of ways Ping completely missed the mark.

1. Friend Importing.

I can't even find friends I know are on Ping using the email address I know they registered with. WTF?! Every other new social network has figured out that my network of friends is on Facebook and Twitter and I have no intention of recreating it from scratch. Let me import it!

2. Real Music.

Not everyone listens to Lada Gaga and 50

01

Aug

4 items that have reinvented my workouts

In the past 18 months I've completely changed the way I exercise. Until the first part of 2009 my workout routine was quite standard: treadmills and weights broken down into 3 days with a rest at the end, repeating ad nauseum.

#1 GymBoss Interval Timer. This goes hand in hand with a whole different way of exercising. Using the GymBoss Interval Timer I've migrated away from the traditional warmup, workout, cooldown methodology towards exercise-routines more in line with High Intensity Interval Training. Even when I do perform a traditional exercise routine not designed around

15

Jun

How Apple Intentionally Bricked My Phone

The pricks at Apple decided that I'd used my beta 3 version of the iPhone SDK about long enough and expired their iPhone OS v4.0 beta 3 today. Did they give any notice of this? NO! Not that I know of.

I get all their emails telling me to buy their new-fangled need-engineering shit, so you think the least they could do is ask me to upgrade my firmware in advance.