<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -14,6 +14,9 @@
 @interface ConversationController : UIViewController {
     UINavigationController *navigation;
     IBOutlet UIWebView *display;
+    IBOutlet UITextField *input;
+    
+    NSTimer *pollTimer;
     
     NSMutableArray *messages;
     Conversation *conversation;
@@ -21,6 +24,7 @@
 
 @property(nonatomic, retain) UINavigationController *navigation;
 @property(nonatomic, retain) UIWebView *display;
+@property(nonatomic, retain) UITextField *input;
 
 - (ConversationController*)initWithConversation:(Conversation*)theConversation;
 </diff>
      <filename>Classes/Controllers/ConversationController.h</filename>
    </modified>
    <modified>
      <diff>@@ -9,10 +9,17 @@
 #import &quot;ConversationController.h&quot;
 #import &quot;EchoCommon.h&quot;
 
+// the amount of vertical shift upwards keep the text field in view as the keyboard appears
+#define kOFFSET_FOR_KEYBOARD					50.0
+
+// the duration of the animation for the view shift
+#define kVerticalOffsetAnimationDuration		0.30
+
 @implementation ConversationController
 
 @synthesize navigation;
 @synthesize display;
+@synthesize input;
 
 
 - (ConversationController*)initWithConversation:(Conversation*)theConversation
@@ -43,6 +50,9 @@
         [display stringByEvaluatingJavaScriptFromString:evalStr];
         //break;
     }
+    
+    if (!pollTimer)
+        pollTimer = [NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(pollMessages:) userInfo:nil repeats:YES];
 }
 
 /*
@@ -74,6 +84,28 @@
     [self reloadMessages:nil];
 }
 
+- (void)viewWillAppear:(BOOL)animated
+{
+    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardShown:) 
+												 name:UIKeyboardWillShowNotification 
+                                               object:self.view.window];
+    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardHidden:) 
+												 name:UIKeyboardWillHideNotification 
+                                               object:self.view.window];
+    [self.navigation setToolbarHidden:YES animated:animated];
+}
+
+- (void)viewWillDisappear:(BOOL)animated
+{
+    [[NSNotificationCenter defaultCenter] removeObserver:self name:UIKeyboardWillShowNotification object:nil]; 
+    [[NSNotificationCenter defaultCenter] removeObserver:self name:UIKeyboardWillHideNotification object:nil]; 
+}
+
+- (void)pollMessages:(id)sender
+{
+    [self reloadMessages:nil];//[messages lastObject]];
+}
+
 - (void)reloadMessages:(Message*)lastMessage
 {
     [[ConnectionManager sharedInstance] runJob:@selector(doGrabMessages:) onTarget:self withArgument:lastMessage];
@@ -125,6 +157,62 @@
 {
 }
 
+- (void)textFieldDidBeginEditing:(UITextField *)theTextField
+{
+    return;
+}
+
+- (BOOL)textFieldShouldReturn:(UITextField *)textField
+{
+    [conversation sendMessage:textField.text from:nil];
+    [textField resignFirstResponder];
+    textField.text = @&quot;&quot;;
+    return NO;
+}
+
+- (void)keyboardShown:(NSNotification *)notification
+{
+    CGRect keyboardBounds = CGRectZero;
+    [[notification.userInfo objectForKey:UIKeyboardBoundsUserInfoKey] getValue:&amp;keyboardBounds];
+    
+    [UIView beginAnimations:nil context:NULL];
+	[UIView setAnimationDuration:0.3];
+    
+    CGFloat delta = keyboardBounds.size.height;
+    
+    CGRect frame = input.frame;
+    frame.origin.y -= delta;
+    input.frame = frame;
+    
+    frame = display.frame;
+    frame.origin.y -= delta;
+    display.frame = frame;
+    
+    [UIView commitAnimations];
+}
+
+- (void)keyboardHidden:(NSNotification *)notification
+{
+    CGRect keyboardBounds = CGRectZero;
+    [[notification.userInfo objectForKey:UIKeyboardBoundsUserInfoKey] getValue:&amp;keyboardBounds];
+    
+    [UIView beginAnimations:nil context:NULL];
+	[UIView setAnimationDuration:0.3];
+    
+    CGFloat delta = keyboardBounds.size.height;
+    
+    CGRect frame = input.frame;
+    frame.origin.y += delta;
+    input.frame = frame;
+    
+    frame = display.frame;
+    frame.origin.y += delta;
+    display.frame = frame;
+    
+    [UIView commitAnimations];
+}
+
+
 /*
 // Override to allow orientations other than the default portrait orientation.
 - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
@@ -145,10 +233,14 @@
 	// e.g. self.myOutlet = nil;
     
     self.display = nil;
+    self.input = nil;
 }
 
 
 - (void)dealloc {
+    if (pollTimer)
+        [pollTimer invalidate];
+    
     [conversation release];
     [navigation release];
     </diff>
      <filename>Classes/Controllers/ConversationController.m</filename>
    </modified>
    <modified>
      <diff>@@ -8,7 +8,7 @@
 		&lt;string key=&quot;IBDocument.HIToolboxVersion&quot;&gt;353.00&lt;/string&gt;
 		&lt;object class=&quot;NSMutableArray&quot; key=&quot;IBDocument.EditedObjectIDs&quot;&gt;
 			&lt;bool key=&quot;EncodedWithXMLCoder&quot;&gt;YES&lt;/bool&gt;
-			&lt;integer value=&quot;1&quot;/&gt;
+			&lt;integer value=&quot;22&quot;/&gt;
 		&lt;/object&gt;
 		&lt;object class=&quot;NSArray&quot; key=&quot;IBDocument.PluginDependencies&quot;&gt;
 			&lt;bool key=&quot;EncodedWithXMLCoder&quot;&gt;YES&lt;/bool&gt;
@@ -39,7 +39,7 @@
 					&lt;object class=&quot;IBUIWebView&quot; id=&quot;998323467&quot;&gt;
 						&lt;reference key=&quot;NSNextResponder&quot; ref=&quot;191373211&quot;/&gt;
 						&lt;int key=&quot;NSvFlags&quot;&gt;274&lt;/int&gt;
-						&lt;string key=&quot;NSFrameSize&quot;&gt;{320, 372}&lt;/string&gt;
+						&lt;string key=&quot;NSFrameSize&quot;&gt;{320, 377}&lt;/string&gt;
 						&lt;reference key=&quot;NSSuperview&quot; ref=&quot;191373211&quot;/&gt;
 						&lt;object class=&quot;NSColor&quot; key=&quot;IBUIBackgroundColor&quot;&gt;
 							&lt;int key=&quot;NSColorSpace&quot;&gt;1&lt;/int&gt;
@@ -50,21 +50,45 @@
 						&lt;int key=&quot;IBUIDataDetectorTypes&quot;&gt;1&lt;/int&gt;
 						&lt;bool key=&quot;IBUIDetectsPhoneNumbers&quot;&gt;YES&lt;/bool&gt;
 					&lt;/object&gt;
+					&lt;object class=&quot;IBUITextField&quot; id=&quot;26192067&quot;&gt;
+						&lt;reference key=&quot;NSNextResponder&quot; ref=&quot;191373211&quot;/&gt;
+						&lt;int key=&quot;NSvFlags&quot;&gt;266&lt;/int&gt;
+						&lt;string key=&quot;NSFrame&quot;&gt;{{0, 380}, {320, 31}}&lt;/string&gt;
+						&lt;reference key=&quot;NSSuperview&quot; ref=&quot;191373211&quot;/&gt;
+						&lt;bool key=&quot;IBUIOpaque&quot;&gt;NO&lt;/bool&gt;
+						&lt;bool key=&quot;IBUIClearsContextBeforeDrawing&quot;&gt;NO&lt;/bool&gt;
+						&lt;int key=&quot;IBUIContentVerticalAlignment&quot;&gt;0&lt;/int&gt;
+						&lt;string key=&quot;IBUIText&quot;/&gt;
+						&lt;int key=&quot;IBUIBorderStyle&quot;&gt;3&lt;/int&gt;
+						&lt;string key=&quot;IBUIPlaceholder&quot;/&gt;
+						&lt;object class=&quot;NSColor&quot; key=&quot;IBUITextColor&quot;&gt;
+							&lt;int key=&quot;NSColorSpace&quot;&gt;3&lt;/int&gt;
+							&lt;bytes key=&quot;NSWhite&quot;&gt;MAA&lt;/bytes&gt;
+							&lt;object class=&quot;NSColorSpace&quot; key=&quot;NSCustomColorSpace&quot; id=&quot;936486930&quot;&gt;
+								&lt;int key=&quot;NSID&quot;&gt;2&lt;/int&gt;
+							&lt;/object&gt;
+						&lt;/object&gt;
+						&lt;bool key=&quot;IBUIClearsOnBeginEditing&quot;&gt;YES&lt;/bool&gt;
+						&lt;bool key=&quot;IBUIAdjustsFontSizeToFit&quot;&gt;YES&lt;/bool&gt;
+						&lt;float key=&quot;IBUIMinimumFontSize&quot;&gt;1.700000e+01&lt;/float&gt;
+						&lt;object class=&quot;IBUITextInputTraits&quot; key=&quot;IBUITextInputTraits&quot;&gt;
+							&lt;int key=&quot;IBUIReturnKeyType&quot;&gt;7&lt;/int&gt;
+							&lt;bool key=&quot;IBUIEnablesReturnKeyAutomatically&quot;&gt;YES&lt;/bool&gt;
+						&lt;/object&gt;
+						&lt;int key=&quot;IBUIClearButtonMode&quot;&gt;1&lt;/int&gt;
+					&lt;/object&gt;
 				&lt;/object&gt;
-				&lt;string key=&quot;NSFrameSize&quot;&gt;{320, 372}&lt;/string&gt;
+				&lt;string key=&quot;NSFrameSize&quot;&gt;{320, 416}&lt;/string&gt;
 				&lt;reference key=&quot;NSSuperview&quot;/&gt;
 				&lt;object class=&quot;NSColor&quot; key=&quot;IBUIBackgroundColor&quot;&gt;
 					&lt;int key=&quot;NSColorSpace&quot;&gt;3&lt;/int&gt;
 					&lt;bytes key=&quot;NSWhite&quot;&gt;MQA&lt;/bytes&gt;
-					&lt;object class=&quot;NSColorSpace&quot; key=&quot;NSCustomColorSpace&quot;&gt;
-						&lt;int key=&quot;NSID&quot;&gt;2&lt;/int&gt;
-					&lt;/object&gt;
+					&lt;reference key=&quot;NSCustomColorSpace&quot; ref=&quot;936486930&quot;/&gt;
 				&lt;/object&gt;
 				&lt;object class=&quot;IBUISimulatedStatusBarMetrics&quot; key=&quot;IBUISimulatedStatusBarMetrics&quot;/&gt;
 				&lt;object class=&quot;IBUISimulatedNavigationBarMetrics&quot; key=&quot;IBUISimulatedTopBarMetrics&quot;&gt;
 					&lt;bool key=&quot;IBUIPrompted&quot;&gt;NO&lt;/bool&gt;
 				&lt;/object&gt;
-				&lt;object class=&quot;IBUISimulatedToolbarMetrics&quot; key=&quot;IBUISimulatedBottomBarMetrics&quot;/&gt;
 			&lt;/object&gt;
 		&lt;/object&gt;
 		&lt;object class=&quot;IBObjectContainer&quot; key=&quot;IBDocument.Objects&quot;&gt;
@@ -94,6 +118,22 @@
 					&lt;/object&gt;
 					&lt;int key=&quot;connectionID&quot;&gt;11&lt;/int&gt;
 				&lt;/object&gt;
+				&lt;object class=&quot;IBConnectionRecord&quot;&gt;
+					&lt;object class=&quot;IBCocoaTouchOutletConnection&quot; key=&quot;connection&quot;&gt;
+						&lt;string key=&quot;label&quot;&gt;delegate&lt;/string&gt;
+						&lt;reference key=&quot;source&quot; ref=&quot;26192067&quot;/&gt;
+						&lt;reference key=&quot;destination&quot; ref=&quot;372490531&quot;/&gt;
+					&lt;/object&gt;
+					&lt;int key=&quot;connectionID&quot;&gt;23&lt;/int&gt;
+				&lt;/object&gt;
+				&lt;object class=&quot;IBConnectionRecord&quot;&gt;
+					&lt;object class=&quot;IBCocoaTouchOutletConnection&quot; key=&quot;connection&quot;&gt;
+						&lt;string key=&quot;label&quot;&gt;input&lt;/string&gt;
+						&lt;reference key=&quot;source&quot; ref=&quot;372490531&quot;/&gt;
+						&lt;reference key=&quot;destination&quot; ref=&quot;26192067&quot;/&gt;
+					&lt;/object&gt;
+					&lt;int key=&quot;connectionID&quot;&gt;24&lt;/int&gt;
+				&lt;/object&gt;
 			&lt;/object&gt;
 			&lt;object class=&quot;IBMutableOrderedSet&quot; key=&quot;objectRecords&quot;&gt;
 				&lt;object class=&quot;NSArray&quot; key=&quot;orderedObjects&quot;&gt;
@@ -112,6 +152,7 @@
 						&lt;object class=&quot;NSMutableArray&quot; key=&quot;children&quot;&gt;
 							&lt;bool key=&quot;EncodedWithXMLCoder&quot;&gt;YES&lt;/bool&gt;
 							&lt;reference ref=&quot;998323467&quot;/&gt;
+							&lt;reference ref=&quot;26192067&quot;/&gt;
 						&lt;/object&gt;
 						&lt;reference key=&quot;parent&quot; ref=&quot;568575992&quot;/&gt;
 					&lt;/object&gt;
@@ -131,6 +172,11 @@
 						&lt;reference key=&quot;object&quot; ref=&quot;998323467&quot;/&gt;
 						&lt;reference key=&quot;parent&quot; ref=&quot;191373211&quot;/&gt;
 					&lt;/object&gt;
+					&lt;object class=&quot;IBObjectRecord&quot;&gt;
+						&lt;int key=&quot;objectID&quot;&gt;22&lt;/int&gt;
+						&lt;reference key=&quot;object&quot; ref=&quot;26192067&quot;/&gt;
+						&lt;reference key=&quot;parent&quot; ref=&quot;191373211&quot;/&gt;
+					&lt;/object&gt;
 				&lt;/object&gt;
 			&lt;/object&gt;
 			&lt;object class=&quot;NSMutableDictionary&quot; key=&quot;flattenedProperties&quot;&gt;
@@ -141,6 +187,7 @@
 					&lt;string&gt;-2.CustomClassName&lt;/string&gt;
 					&lt;string&gt;1.IBEditorWindowLastContentRect&lt;/string&gt;
 					&lt;string&gt;1.IBPluginDependency&lt;/string&gt;
+					&lt;string&gt;22.IBPluginDependency&lt;/string&gt;
 					&lt;string&gt;8.IBPluginDependency&lt;/string&gt;
 				&lt;/object&gt;
 				&lt;object class=&quot;NSMutableArray&quot; key=&quot;dict.values&quot;&gt;
@@ -150,6 +197,7 @@
 					&lt;string&gt;{{354, 376}, {320, 480}}&lt;/string&gt;
 					&lt;string&gt;com.apple.InterfaceBuilder.IBCocoaTouchPlugin&lt;/string&gt;
 					&lt;string&gt;com.apple.InterfaceBuilder.IBCocoaTouchPlugin&lt;/string&gt;
+					&lt;string&gt;com.apple.InterfaceBuilder.IBCocoaTouchPlugin&lt;/string&gt;
 				&lt;/object&gt;
 			&lt;/object&gt;
 			&lt;object class=&quot;NSMutableDictionary&quot; key=&quot;unlocalizedProperties&quot;&gt;
@@ -172,7 +220,7 @@
 				&lt;/object&gt;
 			&lt;/object&gt;
 			&lt;nil key=&quot;sourceID&quot;/&gt;
-			&lt;int key=&quot;maxID&quot;&gt;11&lt;/int&gt;
+			&lt;int key=&quot;maxID&quot;&gt;24&lt;/int&gt;
 		&lt;/object&gt;
 		&lt;object class=&quot;IBClassDescriber&quot; key=&quot;IBDocument.Classes&quot;&gt;
 			&lt;object class=&quot;NSMutableArray&quot; key=&quot;referencedPartialClassDescriptions&quot;&gt;
@@ -181,8 +229,17 @@
 					&lt;string key=&quot;className&quot;&gt;ConversationController&lt;/string&gt;
 					&lt;string key=&quot;superclassName&quot;&gt;UIViewController&lt;/string&gt;
 					&lt;object class=&quot;NSMutableDictionary&quot; key=&quot;outlets&quot;&gt;
-						&lt;string key=&quot;NS.key.0&quot;&gt;display&lt;/string&gt;
-						&lt;string key=&quot;NS.object.0&quot;&gt;UIWebView&lt;/string&gt;
+						&lt;bool key=&quot;EncodedWithXMLCoder&quot;&gt;YES&lt;/bool&gt;
+						&lt;object class=&quot;NSMutableArray&quot; key=&quot;dict.sortedKeys&quot;&gt;
+							&lt;bool key=&quot;EncodedWithXMLCoder&quot;&gt;YES&lt;/bool&gt;
+							&lt;string&gt;display&lt;/string&gt;
+							&lt;string&gt;input&lt;/string&gt;
+						&lt;/object&gt;
+						&lt;object class=&quot;NSMutableArray&quot; key=&quot;dict.values&quot;&gt;
+							&lt;bool key=&quot;EncodedWithXMLCoder&quot;&gt;YES&lt;/bool&gt;
+							&lt;string&gt;UIWebView&lt;/string&gt;
+							&lt;string&gt;UITextField&lt;/string&gt;
+						&lt;/object&gt;
 					&lt;/object&gt;
 					&lt;object class=&quot;IBClassDescriptionSource&quot; key=&quot;sourceIdentifier&quot;&gt;
 						&lt;string key=&quot;majorKey&quot;&gt;IBProjectSource&lt;/string&gt;</diff>
      <filename>Classes/Conversation.xib</filename>
    </modified>
    <modified>
      <diff>@@ -54,7 +54,7 @@
     Message *message = [[Message alloc] init];
     message.user = theUser;
     message.message = theContent;
-    [message createRemoteAtPath:[NSString stringWithFormat:@&quot;http://localhost:3000/%@/messages&quot;, [self getRemoteElementPath:conversationId]] withResponse:nil];
+    [message createRemoteAtPath:[NSString stringWithFormat:@&quot;http://localhost:3000/conversations/%@/messages.xml&quot;, conversationId] withResponse:nil];
     [message autorelease];
     
     return message;</diff>
      <filename>Classes/Models/Conversation.m</filename>
    </modified>
    <modified>
      <diff>@@ -31,7 +31,9 @@
 
 - (void)setUser:(User*)theUser
 {
-    userId = [User setCached:theUser];
+    if (userId)
+        [userId release];
+    userId = theUser ? [[User setCached:theUser] retain] : nil;
 }
 
 - (User*)user</diff>
      <filename>Classes/Models/Message.m</filename>
    </modified>
    <modified>
      <diff>@@ -8,7 +8,7 @@
 		&lt;string key=&quot;IBDocument.HIToolboxVersion&quot;&gt;353.00&lt;/string&gt;
 		&lt;object class=&quot;NSMutableArray&quot; key=&quot;IBDocument.EditedObjectIDs&quot;&gt;
 			&lt;bool key=&quot;EncodedWithXMLCoder&quot;&gt;YES&lt;/bool&gt;
-			&lt;integer value=&quot;127&quot;/&gt;
+			&lt;integer value=&quot;131&quot;/&gt;
 		&lt;/object&gt;
 		&lt;object class=&quot;NSArray&quot; key=&quot;IBDocument.PluginDependencies&quot;&gt;
 			&lt;bool key=&quot;EncodedWithXMLCoder&quot;&gt;YES&lt;/bool&gt;
@@ -87,6 +87,10 @@
 						&lt;/object&gt;
 						&lt;object class=&quot;NSMutableArray&quot; key=&quot;IBUIToolbarItems&quot;&gt;
 							&lt;bool key=&quot;EncodedWithXMLCoder&quot;&gt;YES&lt;/bool&gt;
+							&lt;object class=&quot;IBUIBarButtonItem&quot; id=&quot;261616983&quot;&gt;
+								&lt;reference key=&quot;IBUIToolbar&quot;/&gt;
+								&lt;int key=&quot;IBUISystemItemIdentifier&quot;&gt;5&lt;/int&gt;
+							&lt;/object&gt;
 							&lt;object class=&quot;IBUIBarButtonItem&quot; id=&quot;81744163&quot;&gt;
 								&lt;int key=&quot;IBUIStyle&quot;&gt;1&lt;/int&gt;
 								&lt;reference key=&quot;IBUIToolbar&quot;/&gt;
@@ -155,6 +159,14 @@
 					&lt;/object&gt;
 					&lt;int key=&quot;connectionID&quot;&gt;135&lt;/int&gt;
 				&lt;/object&gt;
+				&lt;object class=&quot;IBConnectionRecord&quot;&gt;
+					&lt;object class=&quot;IBCocoaTouchEventConnection&quot; key=&quot;connection&quot;&gt;
+						&lt;string key=&quot;label&quot;&gt;presentSettings:&lt;/string&gt;
+						&lt;reference key=&quot;source&quot; ref=&quot;81744163&quot;/&gt;
+						&lt;reference key=&quot;destination&quot; ref=&quot;664661524&quot;/&gt;
+					&lt;/object&gt;
+					&lt;int key=&quot;connectionID&quot;&gt;138&lt;/int&gt;
+				&lt;/object&gt;
 			&lt;/object&gt;
 			&lt;object class=&quot;IBMutableOrderedSet&quot; key=&quot;objectRecords&quot;&gt;
 				&lt;object class=&quot;NSArray&quot; key=&quot;orderedObjects&quot;&gt;
@@ -210,6 +222,7 @@
 							&lt;reference ref=&quot;287032986&quot;/&gt;
 							&lt;reference ref=&quot;1067068812&quot;/&gt;
 							&lt;reference ref=&quot;81744163&quot;/&gt;
+							&lt;reference ref=&quot;261616983&quot;/&gt;
 						&lt;/object&gt;
 						&lt;reference key=&quot;parent&quot; ref=&quot;780634670&quot;/&gt;
 					&lt;/object&gt;
@@ -238,6 +251,11 @@
 						&lt;reference key=&quot;object&quot; ref=&quot;81744163&quot;/&gt;
 						&lt;reference key=&quot;parent&quot; ref=&quot;215864631&quot;/&gt;
 					&lt;/object&gt;
+					&lt;object class=&quot;IBObjectRecord&quot;&gt;
+						&lt;int key=&quot;objectID&quot;&gt;137&lt;/int&gt;
+						&lt;reference key=&quot;object&quot; ref=&quot;261616983&quot;/&gt;
+						&lt;reference key=&quot;parent&quot; ref=&quot;215864631&quot;/&gt;
+					&lt;/object&gt;
 				&lt;/object&gt;
 			&lt;/object&gt;
 			&lt;object class=&quot;NSMutableDictionary&quot; key=&quot;flattenedProperties&quot;&gt;
@@ -254,6 +272,7 @@
 					&lt;string&gt;129.IBPluginDependency&lt;/string&gt;
 					&lt;string&gt;131.IBPluginDependency&lt;/string&gt;
 					&lt;string&gt;136.IBPluginDependency&lt;/string&gt;
+					&lt;string&gt;137.IBPluginDependency&lt;/string&gt;
 					&lt;string&gt;2.IBAttributePlaceholdersKey&lt;/string&gt;
 					&lt;string&gt;2.IBEditorWindowLastContentRect&lt;/string&gt;
 					&lt;string&gt;2.IBPluginDependency&lt;/string&gt;
@@ -264,7 +283,7 @@
 					&lt;bool key=&quot;EncodedWithXMLCoder&quot;&gt;YES&lt;/bool&gt;
 					&lt;string&gt;UIApplication&lt;/string&gt;
 					&lt;string&gt;UIResponder&lt;/string&gt;
-					&lt;string&gt;{{445, 311}, {320, 480}}&lt;/string&gt;
+					&lt;string&gt;{{416, 311}, {320, 480}}&lt;/string&gt;
 					&lt;string&gt;com.apple.InterfaceBuilder.IBCocoaTouchPlugin&lt;/string&gt;
 					&lt;string&gt;HomeController&lt;/string&gt;
 					&lt;string&gt;com.apple.InterfaceBuilder.IBCocoaTouchPlugin&lt;/string&gt;
@@ -272,6 +291,7 @@
 					&lt;string&gt;com.apple.InterfaceBuilder.IBCocoaTouchPlugin&lt;/string&gt;
 					&lt;string&gt;com.apple.InterfaceBuilder.IBCocoaTouchPlugin&lt;/string&gt;
 					&lt;string&gt;com.apple.InterfaceBuilder.IBCocoaTouchPlugin&lt;/string&gt;
+					&lt;string&gt;com.apple.InterfaceBuilder.IBCocoaTouchPlugin&lt;/string&gt;
 					&lt;object class=&quot;NSMutableDictionary&quot;&gt;
 						&lt;bool key=&quot;EncodedWithXMLCoder&quot;&gt;YES&lt;/bool&gt;
 						&lt;object class=&quot;NSArray&quot; key=&quot;dict.sortedKeys&quot;&gt;
@@ -307,7 +327,7 @@
 				&lt;/object&gt;
 			&lt;/object&gt;
 			&lt;nil key=&quot;sourceID&quot;/&gt;
-			&lt;int key=&quot;maxID&quot;&gt;136&lt;/int&gt;
+			&lt;int key=&quot;maxID&quot;&gt;138&lt;/int&gt;
 		&lt;/object&gt;
 		&lt;object class=&quot;IBClassDescriber&quot; key=&quot;IBDocument.Classes&quot;&gt;
 			&lt;object class=&quot;NSMutableArray&quot; key=&quot;referencedPartialClassDescriptions&quot;&gt;
@@ -369,6 +389,10 @@
 				&lt;object class=&quot;IBPartialClassDescription&quot;&gt;
 					&lt;string key=&quot;className&quot;&gt;echochatAppDelegate&lt;/string&gt;
 					&lt;string key=&quot;superclassName&quot;&gt;NSObject&lt;/string&gt;
+					&lt;object class=&quot;NSMutableDictionary&quot; key=&quot;actions&quot;&gt;
+						&lt;string key=&quot;NS.key.0&quot;&gt;presentSettings:&lt;/string&gt;
+						&lt;string key=&quot;NS.object.0&quot;&gt;id&lt;/string&gt;
+					&lt;/object&gt;
 					&lt;object class=&quot;NSMutableDictionary&quot; key=&quot;outlets&quot;&gt;
 						&lt;bool key=&quot;EncodedWithXMLCoder&quot;&gt;YES&lt;/bool&gt;
 						&lt;object class=&quot;NSMutableArray&quot; key=&quot;dict.sortedKeys&quot;&gt;</diff>
      <filename>Classes/Views/MainWindow.xib</filename>
    </modified>
    <modified>
      <diff>@@ -32,7 +32,7 @@
 @property (nonatomic, retain) OAConsumer *auth;
 
 - (bool)isSetup;
-- (void)presentSettings;
+- (IBAction)presentSettings:(id)sender;
 - (void)startAuth;
 
 - (void)pushConversation:(Conversation*)theConversation;</diff>
      <filename>Classes/echochatAppDelegate.h</filename>
    </modified>
    <modified>
      <diff>@@ -69,7 +69,7 @@
     }
     
     if (![self isSetup])
-        [self presentSettings];
+        [self presentSettings:nil];
     else
         [self attemptConnection];
 }
@@ -100,11 +100,11 @@
 }
 
 - (bool)isSetup
-{//return YES;
+{
     return !(token == nil);
 }
 
-- (void)presentSettings
+- (void)presentSettings:(id)sender
 {
     SettingsController *settings = [[SettingsController alloc] initWithNibName:@&quot;SettingsController&quot; bundle:nil];
     [navigationController presentModalViewController:settings animated:YES];
@@ -146,12 +146,12 @@
 - (void)failedAuthenticationWithError:(NSError*)theError
 {
     //[authController presentInController:tabBarController animated:NO];
-    [self presentSettings];
+    [self presentSettings:nil];
 }
 
 
 - (void)requestTicketFailed:(OAServiceTicket *)ticket withError:(NSError *)error {
-    [self presentSettings];
+    [self presentSettings:nil];
 }
 
 - (void)setToken:(OAToken*)aValue {</diff>
      <filename>Classes/echochatAppDelegate.m</filename>
    </modified>
    <modified>
      <diff>@@ -3,6 +3,14 @@
 &lt;title&gt;EchoChat&lt;/title&gt;
 
 &lt;style&gt;
+  .message:after {
+    content: &quot;.&quot;;
+    display: block;
+    height: 0;
+    clear: both;
+    visibility: hidden;
+  }
+  
   .user {
     font-weight: bold;
     float: left;
@@ -22,6 +30,7 @@ var Chat = {
     var list = document.getElementById('messageList');
     
     var el = document.createElement('div');
+    el.className = &quot;message&quot;;
     el.innerHTML = &quot;&lt;div class=\&quot;user\&quot;&gt;&quot; + decodeURI(username) + &quot;&lt;/div&gt;&lt;div class=\&quot;content\&quot;&gt;&quot; + decodeURI(content) + &quot;&lt;/div&gt;&quot;;
     list.appendChild(el);
   }
@@ -39,8 +48,7 @@ var Chat = {
 
 &lt;script type=&quot;text/javascript&quot;&gt;
 Chat.clear();
-Chat.message('test', 'Test');
-Chat.message('test', 'Woo');
+Chat.message('Loading...', '');
 &lt;/script&gt;
 
 </diff>
      <filename>chat.html</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>e2a8e96f5e8be5da4c8d3bde788c33b0c2e0ef32</id>
    </parent>
  </parents>
  <author>
    <name>jamesu</name>
    <email>jamesu@gmail.com</email>
  </author>
  <url>http://github.com/jamesu/echochat/commit/79e0102caa4a4d8e62a9a95a4403b4718066fbf7</url>
  <id>79e0102caa4a4d8e62a9a95a4403b4718066fbf7</id>
  <committed-date>2009-07-05T13:44:18-07:00</committed-date>
  <authored-date>2009-07-05T13:44:18-07:00</authored-date>
  <message>Added preliminary support for posting messages and a crude update poller

- Man, it's ugly!</message>
  <tree>6029d5f7ef235fddd344732f398c2a1226d3c343</tree>
  <committer>
    <name>jamesu</name>
    <email>jamesu@gmail.com</email>
  </committer>
</commit>
