« July 2006 | Main | September 2006 »

August 29, 2006

Guess What I'm doing?

You can see by the output of the xml parser that I ... ahem .. uh.. "pause" ... a lot when I'm "running"

What I think I know so far:
time (duration) measurements *.001 = seconds
Raw distance measurements are all in km
The user's distance unit preferences are used for string attributes "7:58 min/mi")
There is a Snapshot list (pauses, when you asked it for a report, powerSong playing) that (unfortunately) doesn't tell the time of the pause. (a pause pauses workout time)
There are Mile and Kilometer splits (!)
The extended data list includes kilometer distance at 10 second intervals.



//
// NikeXmlParser.m
// ipodTest1
//
// Created by Jonathan on 8/29/06.
// Copyright 2006. All rights reserved.
//

#define LogMethod() NSLog(@"-[%@ %s]", self, _cmd)

#import "NikeXmlParser.h"
@implementation NikeXmlParser
- (id)init
{
NSString *filePath = [@"~/Desktop/testIpodWorkout.xml" stringByExpandingTildeInPath];
NSURL *url = [[[NSURL alloc] initWithString:filePath] autorelease];
self = [self initWithContentsOfURL:url];
return self;
}

- (id)initWithContentsOfURL:(NSURL *)url
{
self = [super init];
if (self != nil) {
parser = [[NSXMLParser alloc] initWithContentsOfURL:url];
[parser setDelegate:self];
}
return self;
}

- (void)parse
{
[parser parse];
}

- (void) dealloc {
[parser dealloc];
[super dealloc];
}

#pragma mark -
#pragma mark xmlParser delegate actions
- (void)parserDidStartDocument:(NSXMLParser *)parser
{
NSLog(@"Parser Start");
}

- (void)parserDidEndDocument:(NSXMLParser *)parser
{
NSLog(@"Parser End");
}

- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict
{
NSLog(@"______________________________________________________ START %@ tag", elementName);
if ([attributeDict count] > 0){
NSLog(@"__________Attributes__________");
NSEnumerator *enumerator = [attributeDict objectEnumerator];
id value;
while ((value = [enumerator nextObject])) {
NSLog(@" %@", value);
}
}
}

- (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName
{
NSLog(@"^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ END %@ tag", elementName);
}
// sent when an end tag is encountered. The various parameters are supplied as above.

- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string
{
if (([string length] > 0) && (![string isEqualToString:@"\n"])){
//only log the string if it's not empty and it it's not just spaces
NSLog(@"Found Characters = %@", string);
}
}
// This returns the string of the characters encountered thus far. You may not necessarily get the longest character run. The parser reserves the right to hand these to the delegate as potentially many calls in a row to -parser:foundCharacters:

- (void)parser:(NSXMLParser *)parser parseErrorOccurred:(NSError *)parseError
{
LogMethod();
NSLog(@"PARSER ERROR");
}
// ...and this reports a fatal error to the delegate. The parser will stop parsing.

@end


[Session started at 2006-08-29 21:37:09 -0400.]
2006-08-29 21:37:09.430 ipodTest1[3513] Parser Start
2006-08-29 21:37:09.431 ipodTest1[3513] ______________________________________________________ START sportsData tag
2006-08-29 21:37:09.432 ipodTest1[3513] ______________________________________________________ START vers tag
2006-08-29 21:37:09.432 ipodTest1[3513] Found Characters = 1
2006-08-29 21:37:09.433 ipodTest1[3513] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ END vers tag
2006-08-29 21:37:09.433 ipodTest1[3513] ______________________________________________________ START runSummary tag
2006-08-29 21:37:09.434 ipodTest1[3513] ______________________________________________________ START workoutName tag
2006-08-29 21:37:09.434 ipodTest1[3513] Found Characters = 3.25 miles
2006-08-29 21:37:09.434 ipodTest1[3513] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ END workoutName tag
2006-08-29 21:37:09.434 ipodTest1[3513] ______________________________________________________ START time tag
2006-08-29 21:37:09.434 ipodTest1[3513] Found Characters = 2006-08-08T02:07:21-04:00
2006-08-29 21:37:09.434 ipodTest1[3513] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ END time tag
2006-08-29 21:37:09.434 ipodTest1[3513] ______________________________________________________ START duration tag
2006-08-29 21:37:09.434 ipodTest1[3513] Found Characters = 1599878
2006-08-29 21:37:09.434 ipodTest1[3513] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ END duration tag
2006-08-29 21:37:09.434 ipodTest1[3513] ______________________________________________________ START durationString tag
2006-08-29 21:37:09.435 ipodTest1[3513] Found Characters = 26:39
2006-08-29 21:37:09.435 ipodTest1[3513] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ END durationString tag
2006-08-29 21:37:09.435 ipodTest1[3513] ______________________________________________________ START distance tag
2006-08-29 21:37:09.435 ipodTest1[3513] __________Attributes__________
2006-08-29 21:37:09.435 ipodTest1[3513] km
2006-08-29 21:37:09.436 ipodTest1[3513] Found Characters = 5.3755
2006-08-29 21:37:09.436 ipodTest1[3513] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ END distance tag
2006-08-29 21:37:09.436 ipodTest1[3513] ______________________________________________________ START distanceString tag
2006-08-29 21:37:09.436 ipodTest1[3513] Found Characters = 3.34 mi
2006-08-29 21:37:09.436 ipodTest1[3513] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ END distanceString tag
2006-08-29 21:37:09.436 ipodTest1[3513] ______________________________________________________ START pace tag
2006-08-29 21:37:09.437 ipodTest1[3513] Found Characters = 7:58 min/mi
2006-08-29 21:37:09.437 ipodTest1[3513] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ END pace tag
2006-08-29 21:37:09.437 ipodTest1[3513] ______________________________________________________ START calories tag
2006-08-29 21:37:09.437 ipodTest1[3513] Found Characters = 457
2006-08-29 21:37:09.437 ipodTest1[3513] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ END calories tag
2006-08-29 21:37:09.437 ipodTest1[3513] ______________________________________________________ START battery tag
2006-08-29 21:37:09.437 ipodTest1[3513] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ END battery tag
2006-08-29 21:37:09.437 ipodTest1[3513] ______________________________________________________ START stepCounts tag
2006-08-29 21:37:09.438 ipodTest1[3513] ______________________________________________________ START walkBegin tag
2006-08-29 21:37:09.438 ipodTest1[3513] Found Characters = 0
2006-08-29 21:37:09.438 ipodTest1[3513] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ END walkBegin tag
2006-08-29 21:37:09.438 ipodTest1[3513] ______________________________________________________ START walkEnd tag
2006-08-29 21:37:09.438 ipodTest1[3513] Found Characters = 758
2006-08-29 21:37:09.439 ipodTest1[3513] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ END walkEnd tag
2006-08-29 21:37:09.439 ipodTest1[3513] ______________________________________________________ START runBegin tag
2006-08-29 21:37:09.439 ipodTest1[3513] Found Characters = 0
2006-08-29 21:37:09.439 ipodTest1[3513] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ END runBegin tag
2006-08-29 21:37:09.439 ipodTest1[3513] ______________________________________________________ START runEnd tag
2006-08-29 21:37:09.439 ipodTest1[3513] Found Characters = 4144
2006-08-29 21:37:09.439 ipodTest1[3513] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ END runEnd tag
2006-08-29 21:37:09.439 ipodTest1[3513] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ END stepCounts tag
2006-08-29 21:37:09.439 ipodTest1[3513] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ END runSummary tag
2006-08-29 21:37:09.439 ipodTest1[3513] ______________________________________________________ START template tag
2006-08-29 21:37:09.440 ipodTest1[3513] ______________________________________________________ START templateID tag
2006-08-29 21:37:09.440 ipodTest1[3513] Found Characters = 70090BFF
2006-08-29 21:37:09.440 ipodTest1[3513] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ END templateID tag
2006-08-29 21:37:09.440 ipodTest1[3513] ______________________________________________________ START templateName tag
2006-08-29 21:37:09.440 ipodTest1[3513] Found Characters = 3.25 miles
2006-08-29 21:37:09.440 ipodTest1[3513] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ END templateName tag
2006-08-29 21:37:09.440 ipodTest1[3513] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ END template tag
2006-08-29 21:37:09.440 ipodTest1[3513] ______________________________________________________ START goal tag
2006-08-29 21:37:09.440 ipodTest1[3513] __________Attributes__________
2006-08-29 21:37:09.440 ipodTest1[3513] Distance
2006-08-29 21:37:09.440 ipodTest1[3513] mi
2006-08-29 21:37:09.440 ipodTest1[3513] 3.25
2006-08-29 21:37:09.441 ipodTest1[3513] ______________________________________________________ START distance tag
2006-08-29 21:37:09.441 ipodTest1[3513] Found Characters = 5.2335
2006-08-29 21:37:09.441 ipodTest1[3513] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ END distance tag
2006-08-29 21:37:09.441 ipodTest1[3513] ______________________________________________________ START duration tag
2006-08-29 21:37:09.441 ipodTest1[3513] Found Characters = 1558831
2006-08-29 21:37:09.441 ipodTest1[3513] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ END duration tag
2006-08-29 21:37:09.441 ipodTest1[3513] ______________________________________________________ START calories tag
2006-08-29 21:37:09.441 ipodTest1[3513] Found Characters = 445
2006-08-29 21:37:09.442 ipodTest1[3513] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ END calories tag
2006-08-29 21:37:09.442 ipodTest1[3513] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ END goal tag
2006-08-29 21:37:09.442 ipodTest1[3513] ______________________________________________________ START userInfo tag
2006-08-29 21:37:09.442 ipodTest1[3513] ______________________________________________________ START empedID tag
2006-08-29 21:37:09.442 ipodTest1[3513] Found Characters = 4H6303LGVSX
2006-08-29 21:37:09.442 ipodTest1[3513] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ END empedID tag
2006-08-29 21:37:09.442 ipodTest1[3513] ______________________________________________________ START weight tag
2006-08-29 21:37:09.442 ipodTest1[3513] Found Characters = 82.6
2006-08-29 21:37:09.442 ipodTest1[3513] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ END weight tag
2006-08-29 21:37:09.442 ipodTest1[3513] ______________________________________________________ START device tag
2006-08-29 21:37:09.442 ipodTest1[3513] Found Characters = iPod
2006-08-29 21:37:09.443 ipodTest1[3513] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ END device tag
2006-08-29 21:37:09.443 ipodTest1[3513] ______________________________________________________ START calibration tag
2006-08-29 21:37:09.443 ipodTest1[3513] Found Characters = 000000004170000001fe00230000000041f0000004a1000000008d0000000000
2006-08-29 21:37:09.443 ipodTest1[3513] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ END calibration tag
2006-08-29 21:37:09.443 ipodTest1[3513] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ END userInfo tag
2006-08-29 21:37:09.443 ipodTest1[3513] ______________________________________________________ START startTime tag
2006-08-29 21:37:09.444 ipodTest1[3513] Found Characters = 2006-08-08T02:07:21-04:00
2006-08-29 21:37:09.444 ipodTest1[3513] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ END startTime tag
2006-08-29 21:37:09.444 ipodTest1[3513] ______________________________________________________ START snapShotList tag
2006-08-29 21:37:09.444 ipodTest1[3513] __________Attributes__________
2006-08-29 21:37:09.444 ipodTest1[3513] userClick
2006-08-29 21:37:09.444 ipodTest1[3513] ______________________________________________________ START snapShot tag
2006-08-29 21:37:09.444 ipodTest1[3513] __________Attributes__________
2006-08-29 21:37:09.444 ipodTest1[3513] onDemandVP
2006-08-29 21:37:09.444 ipodTest1[3513] ______________________________________________________ START duration tag
2006-08-29 21:37:09.444 ipodTest1[3513] Found Characters = 49308
2006-08-29 21:37:09.444 ipodTest1[3513] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ END duration tag
2006-08-29 21:37:09.444 ipodTest1[3513] ______________________________________________________ START distance tag
2006-08-29 21:37:09.444 ipodTest1[3513] Found Characters = 0.158
2006-08-29 21:37:09.444 ipodTest1[3513] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ END distance tag
2006-08-29 21:37:09.445 ipodTest1[3513] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ END snapShot tag
2006-08-29 21:37:09.445 ipodTest1[3513] ______________________________________________________ START snapShot tag
2006-08-29 21:37:09.445 ipodTest1[3513] __________Attributes__________
2006-08-29 21:37:09.445 ipodTest1[3513] pause
2006-08-29 21:37:09.445 ipodTest1[3513] ______________________________________________________ START duration tag
2006-08-29 21:37:09.445 ipodTest1[3513] Found Characters = 271730
2006-08-29 21:37:09.445 ipodTest1[3513] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ END duration tag
2006-08-29 21:37:09.445 ipodTest1[3513] ______________________________________________________ START distance tag
2006-08-29 21:37:09.445 ipodTest1[3513] Found Characters = 0.936
2006-08-29 21:37:09.445 ipodTest1[3513] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ END distance tag
2006-08-29 21:37:09.445 ipodTest1[3513] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ END snapShot tag
2006-08-29 21:37:09.445 ipodTest1[3513] ______________________________________________________ START snapShot tag
2006-08-29 21:37:09.445 ipodTest1[3513] __________Attributes__________
2006-08-29 21:37:09.445 ipodTest1[3513] resume
2006-08-29 21:37:09.446 ipodTest1[3513] ______________________________________________________ START duration tag
2006-08-29 21:37:09.446 ipodTest1[3513] Found Characters = 271730
2006-08-29 21:37:09.446 ipodTest1[3513] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ END duration tag
2006-08-29 21:37:09.446 ipodTest1[3513] ______________________________________________________ START distance tag
2006-08-29 21:37:09.446 ipodTest1[3513] Found Characters = 0.936
2006-08-29 21:37:09.446 ipodTest1[3513] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ END distance tag
2006-08-29 21:37:09.446 ipodTest1[3513] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ END snapShot tag
2006-08-29 21:37:09.446 ipodTest1[3513] ______________________________________________________ START snapShot tag
2006-08-29 21:37:09.446 ipodTest1[3513] __________Attributes__________
2006-08-29 21:37:09.446 ipodTest1[3513] pause
2006-08-29 21:37:09.446 ipodTest1[3513] ______________________________________________________ START duration tag
2006-08-29 21:37:09.447 ipodTest1[3513] Found Characters = 374768
2006-08-29 21:37:09.447 ipodTest1[3513] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ END duration tag
2006-08-29 21:37:09.447 ipodTest1[3513] ______________________________________________________ START distance tag
2006-08-29 21:37:09.447 ipodTest1[3513] Found Characters = 1.3
2006-08-29 21:37:09.447 ipodTest1[3513] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ END distance tag
2006-08-29 21:37:09.447 ipodTest1[3513] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ END snapShot tag
2006-08-29 21:37:09.447 ipodTest1[3513] ______________________________________________________ START snapShot tag
2006-08-29 21:37:09.447 ipodTest1[3513] __________Attributes__________
2006-08-29 21:37:09.447 ipodTest1[3513] resume
2006-08-29 21:37:09.447 ipodTest1[3513] ______________________________________________________ START duration tag
2006-08-29 21:37:09.447 ipodTest1[3513] Found Characters = 374768
2006-08-29 21:37:09.447 ipodTest1[3513] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ END duration tag
2006-08-29 21:37:09.447 ipodTest1[3513] ______________________________________________________ START distance tag
2006-08-29 21:37:09.447 ipodTest1[3513] Found Characters = 1.3
2006-08-29 21:37:09.448 ipodTest1[3513] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ END distance tag
2006-08-29 21:37:09.448 ipodTest1[3513] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ END snapShot tag
2006-08-29 21:37:09.448 ipodTest1[3513] ______________________________________________________ START snapShot tag
2006-08-29 21:37:09.448 ipodTest1[3513] __________Attributes__________
2006-08-29 21:37:09.448 ipodTest1[3513] onDemandVP
2006-08-29 21:37:09.448 ipodTest1[3513] ______________________________________________________ START duration tag
2006-08-29 21:37:09.448 ipodTest1[3513] Found Characters = 543072
2006-08-29 21:37:09.448 ipodTest1[3513] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ END duration tag
2006-08-29 21:37:09.448 ipodTest1[3513] ______________________________________________________ START distance tag
2006-08-29 21:37:09.448 ipodTest1[3513] Found Characters = 1.825
2006-08-29 21:37:09.448 ipodTest1[3513] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ END distance tag
2006-08-29 21:37:09.448 ipodTest1[3513] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ END snapShot tag
2006-08-29 21:37:09.448 ipodTest1[3513] ______________________________________________________ START snapShot tag
2006-08-29 21:37:09.449 ipodTest1[3513] __________Attributes__________
2006-08-29 21:37:09.449 ipodTest1[3513] pause
2006-08-29 21:37:09.449 ipodTest1[3513] ______________________________________________________ START duration tag
2006-08-29 21:37:09.449 ipodTest1[3513] Found Characters = 667937
2006-08-29 21:37:09.449 ipodTest1[3513] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ END duration tag
2006-08-29 21:37:09.449 ipodTest1[3513] ______________________________________________________ START distance tag
2006-08-29 21:37:09.449 ipodTest1[3513] Found Characters = 2.234
2006-08-29 21:37:09.449 ipodTest1[3513] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ END distance tag
2006-08-29 21:37:09.450 ipodTest1[3513] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ END snapShot tag
2006-08-29 21:37:09.450 ipodTest1[3513] ______________________________________________________ START snapShot tag
2006-08-29 21:37:09.450 ipodTest1[3513] __________Attributes__________
2006-08-29 21:37:09.450 ipodTest1[3513] resume
2006-08-29 21:37:09.450 ipodTest1[3513] ______________________________________________________ START duration tag
2006-08-29 21:37:09.450 ipodTest1[3513] Found Characters = 667937
2006-08-29 21:37:09.451 ipodTest1[3513] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ END duration tag
2006-08-29 21:37:09.451 ipodTest1[3513] ______________________________________________________ START distance tag
2006-08-29 21:37:09.451 ipodTest1[3513] Found Characters = 2.234
2006-08-29 21:37:09.451 ipodTest1[3513] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ END distance tag
2006-08-29 21:37:09.451 ipodTest1[3513] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ END snapShot tag
2006-08-29 21:37:09.451 ipodTest1[3513] ______________________________________________________ START snapShot tag
2006-08-29 21:37:09.451 ipodTest1[3513] __________Attributes__________
2006-08-29 21:37:09.451 ipodTest1[3513] onDemandVP
2006-08-29 21:37:09.451 ipodTest1[3513] ______________________________________________________ START duration tag
2006-08-29 21:37:09.452 ipodTest1[3513] Found Characters = 896313
2006-08-29 21:37:09.452 ipodTest1[3513] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ END duration tag
2006-08-29 21:37:09.452 ipodTest1[3513] ______________________________________________________ START distance tag
2006-08-29 21:37:09.452 ipodTest1[3513] Found Characters = 3.001
2006-08-29 21:37:09.452 ipodTest1[3513] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ END distance tag
2006-08-29 21:37:09.452 ipodTest1[3513] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ END snapShot tag
2006-08-29 21:37:09.452 ipodTest1[3513] ______________________________________________________ START snapShot tag
2006-08-29 21:37:09.452 ipodTest1[3513] __________Attributes__________
2006-08-29 21:37:09.452 ipodTest1[3513] pause
2006-08-29 21:37:09.452 ipodTest1[3513] ______________________________________________________ START duration tag
2006-08-29 21:37:09.452 ipodTest1[3513] Found Characters = 904275
2006-08-29 21:37:09.452 ipodTest1[3513] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ END duration tag
2006-08-29 21:37:09.452 ipodTest1[3513] ______________________________________________________ START distance tag
2006-08-29 21:37:09.452 ipodTest1[3513] Found Characters = 3.007
2006-08-29 21:37:09.453 ipodTest1[3513] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ END distance tag
2006-08-29 21:37:09.453 ipodTest1[3513] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ END snapShot tag
2006-08-29 21:37:09.453 ipodTest1[3513] ______________________________________________________ START snapShot tag
2006-08-29 21:37:09.453 ipodTest1[3513] __________Attributes__________
2006-08-29 21:37:09.453 ipodTest1[3513] resume
2006-08-29 21:37:09.453 ipodTest1[3513] ______________________________________________________ START duration tag
2006-08-29 21:37:09.453 ipodTest1[3513] Found Characters = 904275
2006-08-29 21:37:09.453 ipodTest1[3513] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ END duration tag
2006-08-29 21:37:09.453 ipodTest1[3513] ______________________________________________________ START distance tag
2006-08-29 21:37:09.453 ipodTest1[3513] Found Characters = 3.007
2006-08-29 21:37:09.453 ipodTest1[3513] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ END distance tag
2006-08-29 21:37:09.453 ipodTest1[3513] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ END snapShot tag
2006-08-29 21:37:09.453 ipodTest1[3513] ______________________________________________________ START snapShot tag
2006-08-29 21:37:09.453 ipodTest1[3513] __________Attributes__________
2006-08-29 21:37:09.453 ipodTest1[3513] powerSong
2006-08-29 21:37:09.454 ipodTest1[3513] ______________________________________________________ START duration tag
2006-08-29 21:37:09.454 ipodTest1[3513] Found Characters = 1039515
2006-08-29 21:37:09.454 ipodTest1[3513] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ END duration tag
2006-08-29 21:37:09.454 ipodTest1[3513] ______________________________________________________ START distance tag
2006-08-29 21:37:09.454 ipodTest1[3513] Found Characters = 3.454
2006-08-29 21:37:09.454 ipodTest1[3513] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ END distance tag
2006-08-29 21:37:09.454 ipodTest1[3513] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ END snapShot tag
2006-08-29 21:37:09.454 ipodTest1[3513] ______________________________________________________ START snapShot tag
2006-08-29 21:37:09.454 ipodTest1[3513] __________Attributes__________
2006-08-29 21:37:09.454 ipodTest1[3513] pause
2006-08-29 21:37:09.454 ipodTest1[3513] ______________________________________________________ START duration tag
2006-08-29 21:37:09.454 ipodTest1[3513] Found Characters = 1120185
2006-08-29 21:37:09.454 ipodTest1[3513] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ END duration tag
2006-08-29 21:37:09.454 ipodTest1[3513] ______________________________________________________ START distance tag
2006-08-29 21:37:09.455 ipodTest1[3513] Found Characters = 3.733
2006-08-29 21:37:09.455 ipodTest1[3513] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ END distance tag
2006-08-29 21:37:09.455 ipodTest1[3513] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ END snapShot tag
2006-08-29 21:37:09.455 ipodTest1[3513] ______________________________________________________ START snapShot tag
2006-08-29 21:37:09.455 ipodTest1[3513] __________Attributes__________
2006-08-29 21:37:09.455 ipodTest1[3513] onDemandVP
2006-08-29 21:37:09.455 ipodTest1[3513] ______________________________________________________ START duration tag
2006-08-29 21:37:09.455 ipodTest1[3513] Found Characters = 1120185
2006-08-29 21:37:09.455 ipodTest1[3513] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ END duration tag
2006-08-29 21:37:09.455 ipodTest1[3513] ______________________________________________________ START distance tag
2006-08-29 21:37:09.455 ipodTest1[3513] Found Characters = 3.733
2006-08-29 21:37:09.455 ipodTest1[3513] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ END distance tag
2006-08-29 21:37:09.455 ipodTest1[3513] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ END snapShot tag
2006-08-29 21:37:09.455 ipodTest1[3513] ______________________________________________________ START snapShot tag
2006-08-29 21:37:09.455 ipodTest1[3513] __________Attributes__________
2006-08-29 21:37:09.456 ipodTest1[3513] resume
2006-08-29 21:37:09.456 ipodTest1[3513] ______________________________________________________ START duration tag
2006-08-29 21:37:09.456 ipodTest1[3513] Found Characters = 1120185
2006-08-29 21:37:09.456 ipodTest1[3513] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ END duration tag
2006-08-29 21:37:09.456 ipodTest1[3513] ______________________________________________________ START distance tag
2006-08-29 21:37:09.456 ipodTest1[3513] Found Characters = 3.733
2006-08-29 21:37:09.456 ipodTest1[3513] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ END distance tag
2006-08-29 21:37:09.456 ipodTest1[3513] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ END snapShot tag
2006-08-29 21:37:09.456 ipodTest1[3513] ______________________________________________________ START snapShot tag
2006-08-29 21:37:09.456 ipodTest1[3513] __________Attributes__________
2006-08-29 21:37:09.456 ipodTest1[3513] onDemandVP
2006-08-29 21:37:09.456 ipodTest1[3513] ______________________________________________________ START duration tag
2006-08-29 21:37:09.456 ipodTest1[3513] Found Characters = 1318038
2006-08-29 21:37:09.457 ipodTest1[3513] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ END duration tag
2006-08-29 21:37:09.457 ipodTest1[3513] ______________________________________________________ START distance tag
2006-08-29 21:37:09.457 ipodTest1[3513] Found Characters = 4.413
2006-08-29 21:37:09.457 ipodTest1[3513] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ END distance tag
2006-08-29 21:37:09.457 ipodTest1[3513] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ END snapShot tag
2006-08-29 21:37:09.457 ipodTest1[3513] ______________________________________________________ START snapShot tag
2006-08-29 21:37:09.459 ipodTest1[3513] __________Attributes__________
2006-08-29 21:37:09.459 ipodTest1[3513] onDemandVP
2006-08-29 21:37:09.459 ipodTest1[3513] ______________________________________________________ START duration tag
2006-08-29 21:37:09.459 ipodTest1[3513] Found Characters = 1512403
2006-08-29 21:37:09.459 ipodTest1[3513] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ END duration tag
2006-08-29 21:37:09.460 ipodTest1[3513] ______________________________________________________ START distance tag
2006-08-29 21:37:09.460 ipodTest1[3513] Found Characters = 5.06
2006-08-29 21:37:09.460 ipodTest1[3513] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ END distance tag
2006-08-29 21:37:09.460 ipodTest1[3513] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ END snapShot tag
2006-08-29 21:37:09.460 ipodTest1[3513] ______________________________________________________ START snapShot tag
2006-08-29 21:37:09.460 ipodTest1[3513] __________Attributes__________
2006-08-29 21:37:09.460 ipodTest1[3513] onDemandVP
2006-08-29 21:37:09.460 ipodTest1[3513] ______________________________________________________ START duration tag
2006-08-29 21:37:09.460 ipodTest1[3513] Found Characters = 1588359
2006-08-29 21:37:09.461 ipodTest1[3513] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ END duration tag
2006-08-29 21:37:09.461 ipodTest1[3513] ______________________________________________________ START distance tag
2006-08-29 21:37:09.461 ipodTest1[3513] Found Characters = 5.34
2006-08-29 21:37:09.461 ipodTest1[3513] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ END distance tag
2006-08-29 21:37:09.461 ipodTest1[3513] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ END snapShot tag
2006-08-29 21:37:09.461 ipodTest1[3513] ______________________________________________________ START snapShot tag
2006-08-29 21:37:09.461 ipodTest1[3513] __________Attributes__________
2006-08-29 21:37:09.461 ipodTest1[3513] pause
2006-08-29 21:37:09.461 ipodTest1[3513] ______________________________________________________ START duration tag
2006-08-29 21:37:09.461 ipodTest1[3513] Found Characters = 1599878
2006-08-29 21:37:09.461 ipodTest1[3513] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ END duration tag
2006-08-29 21:37:09.462 ipodTest1[3513] ______________________________________________________ START distance tag
2006-08-29 21:37:09.462 ipodTest1[3513] Found Characters = 5.375
2006-08-29 21:37:09.462 ipodTest1[3513] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ END distance tag
2006-08-29 21:37:09.462 ipodTest1[3513] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ END snapShot tag
2006-08-29 21:37:09.462 ipodTest1[3513] ______________________________________________________ START snapShot tag
2006-08-29 21:37:09.462 ipodTest1[3513] __________Attributes__________
2006-08-29 21:37:09.462 ipodTest1[3513] stop
2006-08-29 21:37:09.462 ipodTest1[3513] ______________________________________________________ START duration tag
2006-08-29 21:37:09.462 ipodTest1[3513] Found Characters = 1599878
2006-08-29 21:37:09.462 ipodTest1[3513] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ END duration tag
2006-08-29 21:37:09.462 ipodTest1[3513] ______________________________________________________ START distance tag
2006-08-29 21:37:09.462 ipodTest1[3513] Found Characters = 5.375
2006-08-29 21:37:09.462 ipodTest1[3513] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ END distance tag
2006-08-29 21:37:09.462 ipodTest1[3513] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ END snapShot tag
2006-08-29 21:37:09.462 ipodTest1[3513] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ END snapShotList tag
2006-08-29 21:37:09.463 ipodTest1[3513] ______________________________________________________ START snapShotList tag
2006-08-29 21:37:09.463 ipodTest1[3513] __________Attributes__________
2006-08-29 21:37:09.463 ipodTest1[3513] kmSplit
2006-08-29 21:37:09.463 ipodTest1[3513] ______________________________________________________ START snapShot tag
2006-08-29 21:37:09.463 ipodTest1[3513] ______________________________________________________ START duration tag
2006-08-29 21:37:09.463 ipodTest1[3513] Found Characters = 291757
2006-08-29 21:37:09.463 ipodTest1[3513] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ END duration tag
2006-08-29 21:37:09.463 ipodTest1[3513] ______________________________________________________ START distance tag
2006-08-29 21:37:09.463 ipodTest1[3513] Found Characters = 1.005
2006-08-29 21:37:09.463 ipodTest1[3513] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ END distance tag
2006-08-29 21:37:09.463 ipodTest1[3513] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ END snapShot tag
2006-08-29 21:37:09.464 ipodTest1[3513] ______________________________________________________ START snapShot tag
2006-08-29 21:37:09.464 ipodTest1[3513] ______________________________________________________ START duration tag
2006-08-29 21:37:09.464 ipodTest1[3513] Found Characters = 593908
2006-08-29 21:37:09.464 ipodTest1[3513] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ END duration tag
2006-08-29 21:37:09.464 ipodTest1[3513] ______________________________________________________ START distance tag
2006-08-29 21:37:09.464 ipodTest1[3513] Found Characters = 2.0
2006-08-29 21:37:09.465 ipodTest1[3513] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ END distance tag
2006-08-29 21:37:09.465 ipodTest1[3513] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ END snapShot tag
2006-08-29 21:37:09.465 ipodTest1[3513] ______________________________________________________ START snapShot tag
2006-08-29 21:37:09.465 ipodTest1[3513] ______________________________________________________ START duration tag
2006-08-29 21:37:09.465 ipodTest1[3513] Found Characters = 896187
2006-08-29 21:37:09.465 ipodTest1[3513] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ END duration tag
2006-08-29 21:37:09.466 ipodTest1[3513] ______________________________________________________ START distance tag
2006-08-29 21:37:09.466 ipodTest1[3513] Found Characters = 3.001
2006-08-29 21:37:09.466 ipodTest1[3513] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ END distance tag
2006-08-29 21:37:09.466 ipodTest1[3513] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ END snapShot tag
2006-08-29 21:37:09.466 ipodTest1[3513] ______________________________________________________ START snapShot tag
2006-08-29 21:37:09.466 ipodTest1[3513] ______________________________________________________ START duration tag
2006-08-29 21:37:09.466 ipodTest1[3513] Found Characters = 1198250
2006-08-29 21:37:09.466 ipodTest1[3513] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ END duration tag
2006-08-29 21:37:09.466 ipodTest1[3513] ______________________________________________________ START distance tag
2006-08-29 21:37:09.466 ipodTest1[3513] Found Characters = 4.002
2006-08-29 21:37:09.466 ipodTest1[3513] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ END distance tag
2006-08-29 21:37:09.466 ipodTest1[3513] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ END snapShot tag
2006-08-29 21:37:09.466 ipodTest1[3513] ______________________________________________________ START snapShot tag
2006-08-29 21:37:09.466 ipodTest1[3513] ______________________________________________________ START duration tag
2006-08-29 21:37:09.467 ipodTest1[3513] Found Characters = 1494609
2006-08-29 21:37:09.467 ipodTest1[3513] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ END duration tag
2006-08-29 21:37:09.467 ipodTest1[3513] ______________________________________________________ START distance tag
2006-08-29 21:37:09.468 ipodTest1[3513] Found Characters = 5.0
2006-08-29 21:37:09.468 ipodTest1[3513] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ END distance tag
2006-08-29 21:37:09.468 ipodTest1[3513] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ END snapShot tag
2006-08-29 21:37:09.468 ipodTest1[3513] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ END snapShotList tag
2006-08-29 21:37:09.468 ipodTest1[3513] ______________________________________________________ START snapShotList tag
2006-08-29 21:37:09.468 ipodTest1[3513] __________Attributes__________
2006-08-29 21:37:09.468 ipodTest1[3513] mileSplit
2006-08-29 21:37:09.468 ipodTest1[3513] ______________________________________________________ START snapShot tag
2006-08-29 21:37:09.468 ipodTest1[3513] ______________________________________________________ START duration tag
2006-08-29 21:37:09.468 ipodTest1[3513] Found Characters = 479812
2006-08-29 21:37:09.468 ipodTest1[3513] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ END duration tag
2006-08-29 21:37:09.469 ipodTest1[3513] ______________________________________________________ START distance tag
2006-08-29 21:37:09.469 ipodTest1[3513] Found Characters = 1.61
2006-08-29 21:37:09.469 ipodTest1[3513] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ END distance tag
2006-08-29 21:37:09.469 ipodTest1[3513] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ END snapShot tag
2006-08-29 21:37:09.469 ipodTest1[3513] ______________________________________________________ START snapShot tag
2006-08-29 21:37:09.469 ipodTest1[3513] ______________________________________________________ START duration tag
2006-08-29 21:37:09.469 ipodTest1[3513] Found Characters = 967203
2006-08-29 21:37:09.469 ipodTest1[3513] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ END duration tag
2006-08-29 21:37:09.469 ipodTest1[3513] ______________________________________________________ START distance tag
2006-08-29 21:37:09.469 ipodTest1[3513] Found Characters = 3.221
2006-08-29 21:37:09.469 ipodTest1[3513] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ END distance tag
2006-08-29 21:37:09.469 ipodTest1[3513] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ END snapShot tag
2006-08-29 21:37:09.686 ipodTest1[3513] ______________________________________________________ START snapShot tag
2006-08-29 21:37:09.686 ipodTest1[3513] ______________________________________________________ START duration tag
2006-08-29 21:37:09.686 ipodTest1[3513] Found Characters = 1445739
2006-08-29 21:37:09.686 ipodTest1[3513] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ END duration tag
2006-08-29 21:37:09.686 ipodTest1[3513] ______________________________________________________ START distance tag
2006-08-29 21:37:09.686 ipodTest1[3513] Found Characters = 4.828
2006-08-29 21:37:09.686 ipodTest1[3513] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ END distance tag
2006-08-29 21:37:09.686 ipodTest1[3513] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ END snapShot tag
2006-08-29 21:37:09.686 ipodTest1[3513] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ END snapShotList tag
2006-08-29 21:37:09.687 ipodTest1[3513] ______________________________________________________ START extendedDataList tag
2006-08-29 21:37:09.687 ipodTest1[3513] ______________________________________________________ START extendedData tag
2006-08-29 21:37:09.687 ipodTest1[3513] __________Attributes__________
2006-08-29 21:37:09.687 ipodTest1[3513] 10
2006-08-29 21:37:09.687 ipodTest1[3513] s
2006-08-29 21:37:09.687 ipodTest1[3513] time
2006-08-29 21:37:09.687 ipodTest1[3513] distance
2006-08-29 21:37:09.687 ipodTest1[3513] Found Characters = 0.0, 0.0225, 0.0593, 0.0951, 0.13, 0.1653, 0.2008, 0.2327, 0.2644, 0.3039, 0.3411, 0.374, 0.4144, 0.4487, 0.4799, 0.5145, 0.5497, 0.5812, 0.6157, 0.6442, 0.6908, 0.7224, 0.7504, 0.7853, 0.832, 0.8632, 0.8985, 0.9332, 0.9628, 0.997, 1.035, 1.07, 1.1117, 1.1483, 1.1814, 1.2128, 1.253, 1.2889, 1.2992, 1.3098, 1.3162, 1.3537, 1.395, 1.4306, 1.4681, 1.5045, 1.5369, 1.5707, 1.6098, 1.6431, 1.6736, 1.7084, 1.7445, 1.7831, 1.815, 1.8488, 1.8768, 1.9155, 1.9514, 1.9898, 2.0197, 2.0506, 2.0827, 2.112, 2.1429, 2.177, 2.2102, 2.2353, 2.2653, 2.2985, 2.3361, 2.3719, 2.4072, 2.43, 2.4684, 2.4942, 2.5125, 2.5525, 2.5889, 2.621, 2.6498, 2.694, 2.7288, 2.7648, 2.7999, 2.8362, 2.8664, 2.9075, 2.9444, 2.98, 3.0072, 3.0204, 3.058, 3.0883, 3.1278, 3.1626, 3.1902, 3.2318, 3.266, 3.2962, 3.3313, 3.3659, 3.4001, 3.4302, 3.4649, 3.4974, 3.5311, 3.5655, 3.5973, 3.6347, 3.6684, 3.6991, 3.7332, 3.7499, 3.7932, 3.8287, 3.8647, 3.9017, 3.9381, 3.9704, 4.0097, 4.0447, 4.0801, 4.1125, 4.1437, 4.1824, 4.2185, 4.2494, 4.287, 4.3225, 4.3509, 4.3888, 4.4204, 4.4372, 4.4679, 4.4966, 4.5352, 4.5672, 4.6015, 4.6366, 4.6711, 4.7065, 4.7416, 4.7719, 4.8069, 4.8422, 4.8779, 4.907, 4.9503, 4.9868, 5.0213, 5.0567, 5.0897, 5.1244, 5.162, 5.1996, 5.2413, 5.2751, 5.3116, 5.348
2006-08-29 21:37:09.697 ipodTest1[3513] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ END extendedData tag
2006-08-29 21:37:09.697 ipodTest1[3513] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ END extendedDataList tag
2006-08-29 21:37:09.697 ipodTest1[3513] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ END sportsData tag
2006-08-29 21:37:09.697 ipodTest1[3513] Parser End

ipodTest1 has exited with status 0.

August 27, 2006

Big Nerd Review

I’m home and (mostly) rested from the Big Nerd Trip and the Big Nerd Plane Ride so it’s time for the Big Nerd Review: cocoa edition. As Ferris Bueller once said of a certain red Ferrari, “If you have the means, I highly recommend picking one up.”

The format of the class is fairly simple: the alpha-nerd who wrote probably the most recommended Cocoa book around will walk you and perhaps fewer than 20 other students through (pretty much) the entire volume. That in itself is worth the price of admission, but as Ron Popeil often says, “but wait! There’s more!” Do you want to learn the newest cocoa toy? Aaron knows you do and has slides for it (and a large supplemental handout) already prepared. We went through 3 (!) lectures on CoreData, which is not (as of the current printing) covered in his book. Aaron and several class members were also just back from a trip to WWDC, so the Mac nerd excitement over the new toys was palpable. As with his book, there was a fair amount of “type this page of code into Xcode” involved, however the tedium that might be associated with this style of learning was just not a concern for the students I asked. The quality and brevity of the examples along with the mechanics of typing that much objective-C code really did help me to get a good handle on the Cocoa way of doing things. My fingers know memory management better than I do.

Big Nerd Ranch also shines beyond the classroom. The accommodations, food, and service were all amazing. “Y’all want dessert. Right?” The whole BNR experience is clearly geared toward making the student as comfortable as possible so that you can spend your time learning. As was mentioned in an earlier posting on this blog: it’s not just the information, BNR provides the all-inclusive nerd vacation experience. With the cost and the content involved, the nerds-in-training who consider a class like this tend toward a certain very narrow kind of self-selection. Those who spend this kind of money on a week away from home/work to learn a programming technology are seriously Cocoa-inclined to begin with and, as with all things mac-geek, you’ll end up meeting a number of people who are scary-cool and wicked-smart. …and there was a fair amount of movie watching, poker playing, network gaming (and some creative hacking, too) going on after hours. Nerd fuel?! There was Mountain Dew, Diet Coke, real southern sweet-tea, lemonade, and mineral water in the fridge, plenty of candy, cookies, and fruit too.

As soon as you can, I recommend that you take some time off and head on over to Atlanta (or Europe!) to hang out with the Big Nerds. If you're reading this blog, there's a technology being taught that you'll want to learn. Who knows? Maybe you can convince your boss to pay for it. I myself am tempted to sign up for another class that’s happening in a couple of weeks: the first (?) OpenGL boot camp!

The last of my notes are in the extended entry. Take a look at my earlier entries for more info.

Menu Updating:
NSMenuItem:: ValidateMenuItem turns on and off
Menus can have delegates (you can add and rmv items on the fly)


- (BOOL)menuHasKeyEquivalent:forEvent:target:action
// say NO and performance goes up because hitting
// command keys causes the sys to ask your menu

super core data:
- Has Fault objects that stand in for information you don't really need
just yet. When you need it, the info is dropped into memory.
(Perf. optimization)
- Uniquing:
Everybody should point to the same (say) department (think primary keys)

shhhhh, don't tell anybody

pyobjc is nice for introspection of cocoa objects. :)

NSString has some private regexp methods. Not so surprising, given that coredata lets us validate strings against regular expressions... As always with hidden functionality in apple classes: this might not always work the way you expect and might not even exist in past / future versions of the os...etc.

(UPDATE: this doesn't really behave as I would have expected. See code in the comments that does).

#import <Foundation/Foundation.h>

int main (int argc, const char * argv[]) {
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];

NSString *test = [[NSString alloc] initWithString:@"hello world"];
NSString *regexp = [[NSString alloc] initWithString:@"hello*"];
if ([test matchesPattern:regexp]) {
NSLog(@"%@ Matches %@", test, regexp);
} else {
NSLog(@"%@ Does not match %@", test, regexp);
}

[test release];
[regexp release];
[pool release];
return 0;
}

[Session started at 2006-08-27 15:01:02 -0400.]
2006-08-27 15:01:02.975 nsstringtest[2239] hello world Matches hello*

nsstringtest has exited with status 0.

August 24, 2006

Big Nerd Ranch Day 4

For now... just the notes. It's the last *full* day of BNR and Aaron says that we "look full." You don't know the half of it, man.

Nil Targeted menu items:
WIndow can be key window, but not main window if you want
(For example we wouldn't want to print a pallete, but we might want to
type in it.)
First Responder in IB is actually the nil target

Make a new menu item
Make an action in 1st responder corresponding to the menu item
Connect the menu item to first responder (make your own action in 1st responder)

NSPasteboard:
System-wide copy/paste

Categories:
Add methods to an existing class
Declare a category for NSString called FirstLetter


#import
@interface NSString (FirstLetter)
- (NSString *)firstLetter;
@end

#import "FirstLetter.h"
@implementation NSString (FirstLetter)

- (NSString *)firstLetter
{
... etc.
}

//Informal protocols (Declaring unimplemented methods...):
@interface NSWindow : NSResponder
---
@end

@interface NSObject (NSWindowDelegate)

- (BOOL)windowShouldClose:(id)sender;
- (id)windowWillReturnFieldEditor:(NSWindow *)sender
toObject:(id)client;
...
@end


In objc 2.0, there will be @optional

Drag 'n Drop:
Define view as a drag source
Define view as a drag dest.
Quite a few methods to implement to be a dest.

Drawers:
BUtton on window
Drag an NSDrawer to instances
Drawer needs to know:
parent window (IBOutlet)
Ctrl-drag from button to drawer
Choose toggle
Drop Custom View into instances
Ctrl-drag from drawer to view
choose content view

Printing:
Basically rectangles overlaid on a view. Print each rectangle...
More specifically, something kinda tedious, but not complicated.

Deeper understanding of bindings:
Here's how they work...
(We built an obj that is "bindable" and connected it to something)

August 23, 2006

Big Nerd Ranch Day 3

Wow. Now *that* was the most geeky stuff I've ingested in *any* 24 hour period. period.
Today's topics:
- Custom Views
- Quartz graphics / Image Manipulation
- Notification Centers
- Localization
- Capturing user events (mouse/keyboard)
- CoreData

And (!) we got to meet Rocco Bowling who was (is?) an OpenGL (no kidding) programmer for the NSA. He'll be teaching the openGL bootcamp. His stuff (games and other apps) is incredible. The man actually uses openGL to make cocoa widgets. Yes. The force is strong in this one and he's around my age. Damn, I have to stop switching careers.

I went for a run in the heat and humidity this afternoon instead of going on the Big Nerd afternoon walk. I could barely breathe, that is until it started to sprinkle pleasantly. Then, as is apparently typical of Georgia weather, it poured... pleasantly. Sort of. I spent the last portion of the run much cooler (and breathing well), but I also spent it with my shirt wrapped around my upper arm to protect my iPod from the drench. I doubt that it survives the float test, but we nearly got there today, my Ipod and I. Note to self: remember how rejuvinating a short workout can be. I finished the day with great mental clarity.

I promised observations on Southern Hospitality. Here's one: it's real. Everyone is as friendly as the wonderful folks where I was brought up (Minnesota / Iowa) without that sometimes insidious "you're not from around here so I'm not sure I like you" vibe. And they're feeding me like my Grandma tries to feed me. Tomorrow, I'll tell y'all about the food.

Notes from yesterday and today are posted below.

Sorting a NSTableView:
See pg 132-134 on how to select (or implement) a comparison method

UNDO!:
iThermostat.app is an example
*NOTE: Undo / REdo stack is, by default, grouped per action. If hitting a
button puts 15 things on the undo stack, those 15 undo actions are called
when hitting undo.
TEXTVIEWS!:
Undo is automatic iff you set undo allowed in the attributes inspector
Hillegass p. 150
NSArrayController:
TURN OFF the Preserves selection!!!!!!!!!!!!!!! box
NSCoder (read/write obj to disk)
**The advanced book has DO (Distributed Objects) !!**
See Chapter 8 for simple serialized-to-disk doc files.
Multiple Nibs:
**See the extra chapters in the handout book on view swapping**
Make things that won't necessarily appear on the screen not load until
they're needed.
Good for things like preferences
User Defaults (NSUserDefaults):
There is a controller for this = sharedDefaultsController
CoreData:
weeeee!
See the app with coredata on it

--------------------------------------------------------------------------------------------

Custom Views (OvalView.app, Hillegass chp. 14):
in IB
Subclass NSView
Make Files
Drag Custom View (say, OvalView)
Make Custom Class of Custom View in inspector point to OvalView
NSView Methods covered
drawRect (within custom view boundaries)
mouseDown (event within the window's boundaries)
mouseDragged (event within the window's boundaries)
Add printing (Quartz 2D)
Just connect the print menu to the custom view's print action
IB Tricks:
Option-Drag most anything in IB and you make a matrix of (say) buttons
Layout:
Make subview of... lets you make something an inner view
of something else
(Aside)
Quartz Debug (performance tool)
Tools:
Show user interface resolution (change to say 1.5)
Allows you to check your application for resolution independence
(end Aside)
NSRect:
Origin: NSPoint
NSRect: width, height
NSBezierPath:
Draws lines, rectangles, curves (<--the usual Bezier)
Toys:
TO change Scale of an image (There are other toys in a file on the Dav server):


- (IBAction)changeScale:(id)sender
{
float scale = (float)[[sended selectedItem] tag] / 100.0;
NSLog(@"new scale = %f", scale);
NSClipView *cv = [[stretchView enclosinScrollView] contentView];
NSSize unscaledSize = [cv frame].size;
NSSize scaledSize;
scaledSize.height = unscaledSize.height / scale;
scaledSize.width = unscaledSize.width / scale;
[cv setboundsSize:scaledSize]
}

NSImage
holds imageReps of various kinds (image representations)

Notification Centers:
NSNotification center as per usual
Post to the center
Observe an object
Observer is notified when my object posts
Observers are not retained by the notification center
- SO! we have to remove an object from any Notifying objs for which
it is registered on in it's own dealloc method.
- in Objc 2.0, garbage collector automatically removes me from objc
on collection
Delegates are automatically registered

Localization:
Ick - It's hard

Keyboard Events
(AM will like this)
Chp 16 - Catch the keyboard input

BigBang Chess from freeverse - Check it out. The guy who wrote it is
doing an OpenGL bootcamp in (november?)

MORE COREDATA!
//to see the SQL getting executed, do this


class privateClass;
privateClass = NSClassFromString(@"NSSQLConnection");
[privateClass setDebugDefault:YES];

August 22, 2006

Big Nerd Ranch Day 2

So apparently I'm not a good blogger if I don't talk about my BNR experience
every day. I'm having way too much fun to tell y'all about it. <--- That's my
excuse!

The facility is great. It's very pleasant to (literally) wake up to a rooster
crowing. They've llamas, diminutive goats with little bells on their collars,
miniature donkeys... The cabin I'm in apparently has very eco-friendly
heating and cooling. The floor appears to be a gigantic heat sink (is it clay
+ cement?). The usual luxury accommodation stuff applies, huge bead, satellite
tv (which I haven't turned on) wifi, etc.

Speaking to Aaron Hillegass (the biggest nerd on the ranch) today brought up
something that ought to have been obvious from the outset. The content of the
Big Nerd Ranch curriculum (which basically follows his book) is only part of
it. One could, if more disciplined than me, buy Aaron's books and go to town.
The total package experience is the goal and I must say that the total package
has been delivered. ... and this is day two.

What am I learning? Too much to write at this point. Some of the examples are
in my svn repository now (they're available from the book's website as well).

Tomorrow, perhaps I'll tell y'all about the hospitality (and the food!) here
in Georgia at the place called Serenbe. For now, I'll leave you without links
to any of the above (I'll fix that, but class is about to resume) and let you
know a bit about all the fun technical stuff later. Actually, I'll post
yesterday's (unedited) class notes below in the extended entry.

Y'all have a *great* day, alright?

(Links added 08/23/2006)

Prefs:
General:
All-in-One (Puts everything in one window)
Open counterparts in same editor
Automatically clear log
Save window state
BuildOptions:
For Unsaved Files:
Always Save
Open during builds:
Always
Indentation
Syntax-aware editing on

Tricks:
Option -> Double-Click opens docs
Command -> Double-Click opens header
Ctrl / -> jump between auto-completion "fields" sts

GDB:
po = printout
p = print (for c objects)
(Button) step over = step one line @ a time

Objc (see slides)
GC:
Runs at the end of the event loop
You have to use a compiler flag to get GC
"That's what the system assumes that you assume"


Should I close the window?:
In the delegate of the NSWindow


- (BOOL)windowShouldClose:(id)sender
{
int response = NSRunAlertPanel(@"Are you sure?",
@"Do you really want to close the window?",
@"Close",
@"Cancel",
Nil)
if (response == NSAlertDefaultReturn) {
return YES;
}
return NO;
}

August 20, 2006

Big Nerd Ranch

Hey y'all!

I've just landed in Atlanta having flown from the public toilette... er New York City. I'm going to spend the week studying Cocoa Programming with Aaron Hillegass at the Big Nerd Ranch! Weeee! Links, etc. coming soon.

Friends: I've landed. No snakes... so far. At least not on the plane...

August 17, 2006

Gumstix 2

Gumstix says HI! Connection via bluetooth in OS X is up while I wait for Debian to download some packages. All I had to do to connect:
1. Go to bluetooth prefs in OS X
2. Click Set up BLuetooth Device
3. Select "Any Device"
4. Click "Passkey Options..."
5. Select the "Use a specific passkey" radio button
6. Use "1234" (minus quotes) as the passkey
7. Open terminal
8. type: ls /dev/tty.*
9. One of those will correspond to the gumstix (/dev/tty.Gumstix-1 for me)
10. type screen /dev/tty.Gumstix-1 9600
(9600 is the baud rate. I am not sure if the gumstix BT module will go faster than that)
11. Login as root
12. Default password is "gumstix"
13. Welcome to gumstix linux!

Gumstix 1

My Gumstix has arrived. I'm firing up Debian linux in parallels so I can talk to it... Notes to come.