tech stuff and then some
categories: apple, code, events
tags:

This weekend I had the opportunity to participate in iPadDevCampNYC. The event took place both in San Jose and NYC simultaneously and brought together  iPhone developers, designers, testers, and development enthusiast. I’m pretty sure I spotted a few incognito parents with their teens as well. Here’s a quick recap of the events:

Day 1
The first day was pretty much a mixer. We met at Gigapixel Creative and there was music, booze, and few finger foods. I mingled a bit with a few people, however, it was a little too loud to carry any sort of real conversation, so I left early. Before I left, I was approached by a Barnes and Noble recruiter who traded my email address for a $20 Barnes and Noble Gift Card. Nice!

Day 2
The second day included a pretty insightful industry panel which include:

  • Moderator:Michael Prenez-Isbell, Director of Mobile Development at Blueswitch
  • Peter Costanzo, Dir. of Online Marketing for Perseus Books Group
  • Nina DeFrance, VP of Consumer Marketing for Forbes Digital
  • Tarik Sedkey, Chief Digital Officer, Young & Rubicam
  • Douglas Gottlieb, VP of Digital, Barnes & Noble

The general take-away from this panel is that print and advertising wants in on the iPad. These companies need iPad/iPhone developers BAD. They have no idea what they are doing since this is uncharted territory. All panel members are highly optimistic about the iPad platform and the impact it will have on their products. They are ready to embrace the platform and just need some help from developers like us.

The hackathon also started on day 2. Essentially we were tasked with coming up with some sort of iPad project. I was sitting next to @luciuskwok who I’ve known for quite some time (through twitter) and I gave him an idea for an extension to an existing project (HelTweetica) he was already working on. @thomasalvarez also joined our team and we quickly got to work.

Day 3
On the third day we listened to two presentations. One by Flurry and one by Barnes and Noble.
The Flurry talk was particularly interesting because Greg had some really insightful information into how users were behaving with the iPad. I wish I had the slides for the presentation (maybe they’ll post them) but hopefully you get the gist from the audio.

Listen to Greg Yardley, VP of Product, Flurry presentation below.

Audio clip: Adobe Flash Player (version 9 or above) is required to play this audio clip. Download the latest version here. You also need to have JavaScript enabled in your browser.

Listen to the Barnes and Noble iPad app dev team speak about the B&N app.

Audio clip: Adobe Flash Player (version 9 or above) is required to play this audio clip. Download the latest version here. You also need to have JavaScript enabled in your browser.

Day three concluded with project presentations by all teams and we even won “Best Social App”. Once the app is live somewhere, I’ll be sure to share a link. There were some really great projects by other teams including a sound activated cookbook for turning pages, a really slick boom box, a quija board, a developer text-editor for the iPad, as well as a few others.

Below are a few pics from the presentations:

Overall, the price of admission ($50) was a steal. They provided free food on both days (bagels, coffee, and OJ in the morning and Two-Boots pizza at lunch). Plus all the friends and contacts you make is well worth surrendering your weekend. Most importantly I’d like to thank the folks who put this event together. It was definitely a blast!

We’ve all heard the success stories. Indie developers quitting their day job and striking it rich with an iPhone app they developed. Learning how table views work, working with tab controllers and pinging web service APIs into the wee hours of the night. Then making a killing in the app store. With the introduction of the iPad, these stories may come even less often …

What indie iPhone Developers need to learn now:
As soon as I began looking at the iPad SDK, I realized … I’m gonna need a UI/UX Designer now.With the introduction of the iPad, existing indie iPhone developers will be forced to either:

A) learn photoshop and illustrator
B) join forces with a good graphic designer.

Creating a compelling and engaging user experience on the iPad is significantly more difficult than on the iPhone. The iPad screen real estate is greater and you (the developer) need to fill that space up with visually striking goodness.

iPad Launch Day
Today the iPad launched and many developers will head to Apple Stores (or hopefully receive their shipments on time) and instantly load up their iPad app they’ve been previously working on using the simulator. The screen real estate is larger which makes for your potentially mediocre app to look even more medicore. Especially next to some of the apps that have already been showcased. Not to mention a few of the ridiclously awesome apps include: Netflix and Marvel.

What about you Jeff ?
At first sight, I could not place the iPad in my day to day. I already have a kindle and really enjoy reading books on it because of the e-ink. However, Indian Code clients have already gained interest and will undoubtedly be requesting services for this platform. So I will eventually need to own one pretty soon and will need to work closely with graphic designers to produce awesome releases. You can get away with using lots of the built in visual elements, but at some point , if you’ll really want to push the envelope and you’re gonna have to use visual elements outside of the SDK.

All in all, it is a great time to be an iPhone, iPad , and Mac developer. There is a lot of work out there if you seek it. Find yourself a good graphic designer who can be your partner and focus on making beautiful things! So go now and get started!

categories: code, web hosting
tags: , ,

A few days ago I began setting up a rails app that was in need of some user authentication. A friend of mine recommended looking at @technoweenie‘s restful_authentication plugin and I already had messed around with heroku’s hosting service. Now it was time to combine the two.

I initially installed the restful_auth plugin using the ‘git clone’ method and my app worked perfectly fine on my local machine. However, when I uploaded the app to heroku, I was hitting a few errors. The first error was that my app was failing to launch because it could not find a const named ‘User::Authenticated’ … how’s that possible? I installed the plugin , shouldn’t it just know where to look for it? Well it appears that if you use the ‘git clone’ method to install the plugin, it will not work on heroku. You must install the plugin by running ‘script/plugin install git://github.com/technoweenie/restful-authentication.git’. This will put all the pieces in the correct place. ALSO, be sure to change the name of the folder downloaded to ‘restful_authentication’ .. that is … change the hypen to an underscore. Once I changed that, I re-launched my app on heroku using the command ‘heroku restart’, and I hit a (NameError). Seems the ‘script/plugin install’ command didn’t create an file called user_observer.rb that should be placed in the models directory. I’m not sure if this is a bug at this point but this is the workaround I used:

drop a file named user_observer.rb in your /app/models/ directory and put this code in it:

class UserObserver < ActiveRecord::Observer

def after_create(user)

UserMailer.deliver_signup_notification(user) if user.not_using_openid?

end

def after_save(user)

UserMailer.deliver_activation(user) if user.recently_activated? && user.not_using_openid?

end

end

Once I had this file in place, my app launched successfully and now included full user authentication.

YAY!

category: code
tags: , ,

In my efforts to teach myself Ruby on Rails I ran into a bit of a snag installing the ruby mysql gem. After doing a bit a research I finally found this helpful bit:

http://www.icoretech.org/2009/08/install-mysql-and-mysql-ruby-gem-on-snow-leopard-64-bit/

Following these steps fixed the issue. Weeeee!!!



						
					
category: code
tags: , , ,

Yesterday I was working on some code that made use of NSTask and  ran into a tiny, yet annoying, issue. Essentially the code block I was working on would search a directory on the machine and return an array of paths to items which matched the results of the call to the ‘find’ tool. The only problem I found is that when I called

[task setStandardOutput: pipe];

The results from the ‘find’ command were dumped in the console.app and not in the debugger. After a little investigation, I realized I simply was just missing this call:

[task setStandardInput:[NSPipe pipe]];

After making this adjustment, NSLog was now appearing back in Xcode’s debugger/console. Yay!
Here it is in action:


#import "FileFindAppDelegate.h"

@implementation FileFindAppDelegate

@synthesize window;

- (void)applicationDidFinishLaunching:(NSNotification *)aNotification {

[self findFiles];

}

-(void)findFiles
{
NSTask *task = [[NSTask alloc] init];
[task setLaunchPath: @"/bin/sh"];

NSArray *arguments = [NSArray arrayWithObjects:@"-c", @"/usr/bin/find /Users/jeffsoto/Desktop/Files -name *title*", nil];
[task setArguments: arguments];

NSPipe *pipe = [NSPipe pipe];
[task setStandardOutput: pipe];
[task setStandardInput:[NSPipe pipe]];

NSFileHandle *file;
file = [pipe fileHandleForReading];

[task launch];

NSData *data;
data = [file readDataToEndOfFile];

NSString *string = [[NSString alloc] initWithData:data encoding: NSUTF8StringEncoding];

NSArray *array = [[NSArray alloc] initWithArray:[string componentsSeparatedByString:@"\n"]];

NSLog(@"Found %i matching files", [array count]-1);

int i;

for(i=0; i < [array count]-1; i++)
{

NSLog(@"Found this path %@", [array objectAtIndex:i]);
}

}

[task release];
[string release];
[array release];

@end