<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Drew5.NET</title>
	
	<link>http://drew5.net</link>
	<description>My 5 Cents</description>
	<lastBuildDate>Mon, 13 Feb 2012 22:16:17 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/Drew5" /><feedburner:info uri="drew5" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><feedburner:emailServiceId>Drew5</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><item>
		<title>Google Places for iOS 5 SDK</title>
		<link>http://feedproxy.google.com/~r/Drew5/~3/2L7prPETegk/</link>
		<comments>http://drew5.net/2011/11/28/google-places-for-ios-5-sdk/#comments</comments>
		<pubDate>Mon, 28 Nov 2011 20:14:38 +0000</pubDate>
		<dc:creator>Josh</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[github]]></category>
		<category><![CDATA[Google Places]]></category>
		<category><![CDATA[iOS]]></category>
		<category><![CDATA[iphone]]></category>

		<guid isPermaLink="false">http://drew5.net/?p=469</guid>
		<description><![CDATA[I am integrating the Google Places API into an iPhone app that I am building.  I found an existing library that uses Google Local Search but that is deprecated.  So I forked that solution and came up with Google Places Library. As the story goes&#8230;when the application is configured to allow current location, the fun [...]]]></description>
			<content:encoded><![CDATA[<p>I am integrating the <a href="http://code.google.com/apis/maps/documentation/places/" target="_blank">Google Places API</a> into an iPhone app that I am building.  I found an existing library that uses Google Local Search but that is deprecated.  So I forked that solution and came up with <a href="https://github.com/jdruid/Google-Places-for-iOS-5" target="_blank">Google Places Library</a>.</p>
<p>As the story goes&#8230;when the application is configured to allow current location, the fun begins.</p>
<p>First configure your project to include the CoreLocation and the MapKit framework.  I am using a single view project for this example but it can be any project really.</p>
<p>In the RootViewController I need to define some delegates.  Since I will be embedding a UITableView and UISearchBar I need the following to be added: &lt;<em>UITextFieldDelegate</em>, <em>UITableViewDelegate, UITableViewDataSource, UISearchBarDelegate, CLLocationManagerDelegate, GooglePlacesConnectionDelegate</em>&gt;</p>
<p>UITableViewDelegate &#8211; will help populate the data on my table.</p>
<p>UISearchBarDelegate &#8211; will perform some interactions with the searching of places</p>
<p>CLLocationManagerDelegate &#8211; will get the location</p>
<p>GooglePlacesConnectionDelegate &#8211; will perform the main search</p>
<p>Once that is complete I can then add some outlets for my UI and set up some properties.</p>
<pre class="brush:applescript">#import
#import
#import "GooglePlacesConnection.h"

@class GooglePlacesObject;

@interface RootViewController : UIViewController
{
    IBOutlet UITableView    *tableView;
    IBOutlet UIButton       *btnCancel;
    IBOutlet UISearchBar    *searchBar;

    CLLocationManager       *locationManager;
    CLLocation              *currentLocation;

    NSMutableData           *responseData;
    NSMutableArray          *locations;
    NSString                *searchString;

    GooglePlacesConnection  *googlePlacesConnection;
}

@property (nonatomic, getter = isResultsLoaded) BOOL resultsLoaded;

@property (nonatomic, retain) CLLocationManager *locationManager;
@property (nonatomic, retain) CLLocation        *currentLocation;

@property (nonatomic, retain) NSURLConnection   *urlConnection;
@property (nonatomic, retain) NSMutableData     *responseData;
@property (nonatomic, retain) NSMutableArray    *locations;

@end</pre>
<p>Lets move on to the meat and potatoes of this app.  Within the .m file I need to initialize some of my variables and get the GoogleConnection going.</p>
<pre class="brush:applescript">- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view from its nib.

    responseData = [[NSMutableData data] init];

    [[self locationManager] startUpdatingLocation];

    [tableView reloadData];
    [tableView setContentOffset:CGPointZero animated:NO];

   // [searchBar setDelegate:self];

    googlePlacesConnection = [[GooglePlacesConnection alloc] initWithDelegate:self];

}</pre>
<p>Do not forget to set the url connection to nil in the viewDidUnload.</p>
<p>Lets move to the Location Manager methods.</p>
<p>The first one returns a location manager or creates one if necessary</p>
<pre class="brush:applescript">- (CLLocationManager *)locationManager
{

    if (locationManager != nil)
    {
		return locationManager;
	}

	locationManager = [[CLLocationManager alloc] init];
	[locationManager setDesiredAccuracy:kCLLocationAccuracyNearestTenMeters];
	[locationManager setDelegate:self];

	return locationManager;
}</pre>
<p>The next method really starts the fun. In my case I am constructing a URL for the Google Places API. If you are not familiar with it you can find more about it <a href="http://code.google.com/apis/maps/documentation/places/" target="_blank">here</a>. The url takes the following parameters:</p>
<ul>
<li>key: required &#8211; your API key</li>
<li>location: required &#8211; latitude/longitude around which to retrieve Place information. Location manager will help here</li>
<li>radius: required &#8211; distance in meters. For the initial search I have 500, for the UISearchBar I moved it out to 1000.</li>
<li>sensor: required &#8211; needs to be set to TRUE if came from a device with a location sensor</li>
<li>keyword: optional &#8211; a term to be matched if searching</li>
<li>language: optional &#8211; <a href="https://spreadsheets.google.com/pub?key=p9pdwsai2hDMsLkXsoM05KQ&amp;gid=1" target="_blank">language codes</a></li>
<li>name: optional &#8211; term to be matched against the names of the Places</li>
<li>types: narrows the search to a specific type of place. Here is a <a href="http://code.google.com/apis/maps/documentation/places/supported_types.html" target="_blank">list</a></li>
</ul>
<p>At the end of all of this the url will look like this:</p>
<p>https://maps.googleapis.com/maps/api/place/search/json?location=-33.8670522,151.1957362&#038;radius=500&#038;types=food&#038;name=harbour&#038;sensor=false&#038;key=AIzaSyAiFpFd85eMtfbvmVNEYuNds5TEF9FjIPI</p>
<pre class="brush:applescript">- (void)locationManager:(CLLocationManager *)manager
    didUpdateToLocation:(CLLocation *)newLocation
           fromLocation:(CLLocation *)oldLocation
{

    if ([self isResultsLoaded])
    {
		return;
	}

	[self setResultsLoaded:YES];

    currentLocation = newLocation;

    //What places to search for
    NSString *searchLocations = [NSString stringWithFormat:@"%@|%@|%@|%@|%@|%@|%@|%@|%@",
                                 kBar,
                                 kRestaurant,
                                 kCafe,
                                 kBakery,
                                 kFood,
                                 kLodging,
                                 kMealDelivery,
                                 kMealTakeaway,
                                 kNightClub
                                 ];

    [googlePlacesConnection getGoogleObjects:CLLocationCoordinate2DMake(newLocation.coordinate.latitude, newLocation.coordinate.longitude) andTypes:searchLocations];

}</pre>
<p>The last methods are the setting of the objects and some clean up.</p>
<pre class="brush:applescript">- (void)locationManager:(CLLocationManager *)manager
       didFailWithError:(NSError *)error
{
    NSLog(@"locationManager FAIL");
    NSLog(@"%@", [error description]);
}

#pragma mark -
#pragma mark NSURLConnections

- (void)googlePlacesConnection:(GooglePlacesConnection *)conn didFinishLoadingWithGooglePlacesObjects:(NSMutableArray *)objects
{

    if ([objects count] == 0) {
        UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"No matches found near this location"
                                                        message:@"Try another place name or address"
                                                       delegate:nil
                                              cancelButtonTitle:@"OK"
                                              otherButtonTitles: nil];
        [alert show];
    } else {
        locations = objects;
        [tableView reloadData];
    }
}

- (void) googlePlacesConnection:(GooglePlacesConnection *)conn didFailWithError:(NSError *)error
{
    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Error finding place - Try again"
                                                    message:[error localizedDescription]
                                                   delegate:nil
                                          cancelButtonTitle:@"OK"
                                          otherButtonTitles: nil];
    [alert show];
}</pre>
<p>I am not going to dive deep into the GooglePlacesConnection class or the GooglePlacesObject. However I will say this, the GooglePlacesObject is just that. An object of the Google Place. It has an init that will take the dictionary object from the JSON results. The GooglePlacesConnection does the work of constructing of the URL and issuing the request. One thing to note, the only error checking on the Google Place request is if there are 0 results or an error with the URL or request. There are other <a href="http://code.google.com/apis/maps/documentation/places/#PlaceSearchStatusCodes" target="_blank">status codes</a> if you want to add them in if needed.</p>
<p>Back into the RootViewController.m, we now should have a locations NSMutableArray so we can now populate our UITableView.</p>
<pre class="brush:applescript">- (NSInteger)numberOfSectionsInTableView:(UITableView *)theTableView
{
    return 1;
}

- (NSInteger)tableView:(UITableView *)theTableView numberOfRowsInSection:(NSInteger)section
{
    return [locations count];
}

- (UITableViewCell *)tableView:(UITableView *)theTableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

	static NSString *CellIdentifier = @"LocationCell";

	// Dequeue or create a cell of the appropriate type.
	UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {
        cell                = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier];
        cell.accessoryType  = UITableViewCellAccessoryDisclosureIndicator;
    }

    // Get the object to display and set the value in the cell.
    GooglePlacesObject *place     = [[GooglePlacesObject alloc] init];
    place                       = [locations objectAtIndex:[indexPath row]];

    cell.textLabel.text                         = place.name;
    cell.textLabel.adjustsFontSizeToFitWidth    = YES;
	cell.textLabel.font                         = [UIFont systemFontOfSize:12.0];
	cell.textLabel.minimumFontSize              = 10;
	cell.textLabel.numberOfLines                = 4;
	cell.textLabel.lineBreakMode                = UILineBreakModeWordWrap;
    cell.textLabel.textColor                    = [UIColor colorWithRed:0.0 green:128.0/255.0 blue:0.0 alpha:1.0];
    cell.textLabel.textAlignment                = UITextAlignmentLeft;

    cell.detailTextLabel.text                   = place.vicinity;
    cell.detailTextLabel.textColor              = [UIColor darkGrayColor];
    cell.detailTextLabel.font                   = [UIFont systemFontOfSize:10.0];

    return cell;
}</pre>
<p>We set the count of the array to the number of rows in section. We then get the locations object at the indexPath and set that to a GooglePlacesObject and populate the cell.</p>
<p>To handle the UISeachBar here is the code:</p>
<pre class="brush:applescript">- (void)updateSearchString:(NSString*)aSearchString
{
    searchString = [[NSString alloc]initWithString:aSearchString];

    //What places to search for
    NSString *searchLocations = [NSString stringWithFormat:@"%@|%@|%@|%@|%@|%@|%@|%@|%@",
                                 kBar,
                                 kRestaurant,
                                 kCafe,
                                 kBakery,
                                 kFood,
                                 kLodging,
                                 kMealDelivery,
                                 kMealTakeaway,
                                 kNightClub
                                 ];

    [googlePlacesConnection getGoogleObjectsWithQuery:searchString andCoordinates:CLLocationCoordinate2DMake(currentLocation.coordinate.latitude, currentLocation.coordinate.longitude) andTypes:searchLocations];

    [tableView reloadData];
}

- (void)searchBarTextDidBeginEditing:(UISearchBar *)theSearchBar
{
    [theSearchBar setShowsCancelButton:YES animated:YES];
    tableView.allowsSelection   = NO;
    tableView.scrollEnabled     = NO;

}

- (void)searchBarCancelButtonClicked:(UISearchBar *)theSearchBar
{
    [theSearchBar setShowsCancelButton:NO animated:YES];
    [theSearchBar resignFirstResponder];
    tableView.allowsSelection   = YES;
    tableView.scrollEnabled     = YES;
    theSearchBar.text           = @"";

    [self updateSearchString:searchBar.text];
}

- (void)searchBarSearchButtonClicked:(UISearchBar *)theSearchBar
{
    tableView.allowsSelection   = YES;
    tableView.scrollEnabled     = YES;

    [self updateSearchString:theSearchBar.text];
}</pre>
<p>The second, third and fourth method handle the interaction with the UISearchBar itself. Each calls the updateSearchString method and passes in the text from the search bar. updateSearchString performs a similar search to the location manager search, except it is passing in the search string as well. If you look in the GooglePlacesConnection method I am also expanding the search radius to 1000 from 500.</p>
<p>That is it. You can find the <a href="https://github.com/jdruid/Google-Places-for-iOS-5" target="_blank">source</a> on github.</p>
<p>My next update will be adding a &#8216;pull to refresh&#8217;.</p>
]]></content:encoded>
			<wfw:commentRss>http://drew5.net/2011/11/28/google-places-for-ios-5-sdk/feed/</wfw:commentRss>
		<slash:comments>33</slash:comments>
		<feedburner:origLink>http://drew5.net/2011/11/28/google-places-for-ios-5-sdk/</feedburner:origLink></item>
		<item>
		<title>2006 BMW 330xi For Sale</title>
		<link>http://feedproxy.google.com/~r/Drew5/~3/iGIITfSViR8/</link>
		<comments>http://drew5.net/2011/08/23/2006-bmw-330xi-for-sale/#comments</comments>
		<pubDate>Tue, 23 Aug 2011 14:59:23 +0000</pubDate>
		<dc:creator>Josh</dc:creator>
				<category><![CDATA[Cars]]></category>
		<category><![CDATA[330 used car]]></category>
		<category><![CDATA[330xi]]></category>
		<category><![CDATA[BMW]]></category>
		<category><![CDATA[car]]></category>
		<category><![CDATA[for sale]]></category>

		<guid isPermaLink="false">http://drew5.net/?p=446</guid>
		<description><![CDATA[My Electric Red 2006 BMW 330xi 4-door sedan is for sale. Here are the specs on the vehicle.  Asking $19,000 &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; Performance 2,996 cc 3 liters in-line 6 front engine with 85 mm bore, 88 mm stroke, 10.7 compression ratio, double overhead cam, variable valve timing/camshaft and four [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://drew5.net/2011/08/23/2006-bmw-330xi-for-sale/front-1/" rel="attachment wp-att-447"><img class="alignleft size-medium wp-image-447" title="BMW 330xi" src="http://drew5.net/wp-content/uploads/2011/08/front-1-300x225.png" alt="" width="300" height="225" /></a>My Electric Red 2006 BMW 330xi 4-door sedan is for sale. Here are the specs on the vehicle.  Asking $19,000</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>Performance</p>
<ul>
<li>2,996 cc 3 liters in-line 6 front engine with 85 mm bore, 88 mm stroke, 10.7 compression ratio, double overhead cam, variable valve timing/camshaft and four valves per cylinder</li>
<li>Premium unleaded fuel 91</li>
<li>Fuel consumption: EPA urban (mpg): 19, country/highway (mpg): 28 and combined (mpg): 22</li>
<li>Fuel economy EPA highway (mpg): 28 and EPA city (mpg): 19</li>
<li>Multi-point injection fuel system</li>
<li>15.9 gallon main premium unleaded fuel tank</li>
<li>Power: 190 kW , 255 HP SAE @ 6,600 rpm; 220 ft lb , 298 Nm @ 2,750 rpm</li>
</ul>
<div>Handling</div>
<div>
<ul>
<li>Four-wheel ABS</li>
<li>Brake assist system</li>
<li>Cornering brake control</li>
<li>Four disc brakes including four ventilated discs</li>
<li>Electronic brake distribution</li>
<li>Electronic traction control via ABS &amp; engine management</li>
<li>Immobilizer</li>
<li>Center limited slip differential</li>
<li>Stability control</li>
<li>Strut front suspension independent with stabilizer bar and coil springs , multi-link rear suspension independent with stabilizer bar and coil springs</li>
</ul>
</div>
<div>Exterior</div>
<div>
<ul>
<li>Body side molding</li>
<li>Part-painted front and rear bumpers</li>
<li>Chrome/bright trim around side windows</li>
<li>Day time running lights</li>
<li>Driver power heated body color door mirrors , passenger power heated body color door mirrors with automatic</li>
<li>External dimensions: overall length (inches): 178.2, overall width (inches): 71.5, overall height (inches): 55.9, wheelbase (inches): 108.7, front track (inches): 59.1 and rear track (inches): 59.6</li>
<li>Front fog lights</li>
<li>High pressure headlight cleaners</li>
<li>Projector beam lens Bi-Xenon headlights</li>
<li>Heat reflective glass</li>
<li>Luxury trim leather on gearknob, wood/woodgrain on doors and wood/woodgrain on dashboard</li>
<li>Electric Red paint</li>
<li>Fixed rear window with defogger</li>
<li>Glass electric front sunroof</li>
<li>Tinted glass on cabin</li>
<li>Weights: curb weight (lbs) 3,627</li>
<li>Windshield wipers with automatic intermittent wipe and rain sensor</li>
</ul>
</div>
<div>Interior</div>
<div>
<ul>
<li>12v power outlet: front and 1</li>
<li>Air conditioning with climate control</li>
<li>Diversity antenna</li>
<li>Front and rear ashtray</li>
<li>Audio anti-theft protection: code and integrated in dash</li>
<li>Harman/kardon RDS audio system with AM/FM and CD player CD player reads MP3</li>
<li>Cargo area light</li>
<li>Cargo capacity:</li>
<li>Front seats cigar lighter</li>
<li>Clock</li>
<li>Computer with average speed, average fuel consumption and range for remaining fuel</li>
<li>Full dashboard console , full floor console with covered storage box</li>
<li>Delayed/fade courtesy lights</li>
<li>Cruise control</li>
<li>Front seats and rear seats cup holders pop out</li>
<li>Door ajar warning</li>
<li>Door entry light</li>
<li>Door pockets/bins for driver seat and passenger seat</li>
<li>External temperature</li>
<li>Floor covering: carpet in load area</li>
<li>Driver front airbag intelligent , passenger front airbag with occupant sensors intelligent</li>
<li>Bucket electrically adjustable driver and passenger seat with height adjustment, four adjustments and tilt adjustment</li>
<li>Height adjustable 3-point reel front seat belts on driver seat and passenger seat with pre-tensioners</li>
<li>Front seat center armrest</li>
<li>Lockable glove compartment</li>
<li>Headlight control with time delay switch-off and dusk sensor active</li>
<li>Two height adjustable head restraints on front seats , three height adjustable head restraints on rear seats</li>
<li>Heated washer</li>
<li>Illuminated entry system</li>
<li>Internal dimensions: front headroom (inches): 37.4, rear headroom (inches): 37.1, front leg room (inches): 41.5, rear leg room (inches): 34.6, front shoulder room (inches): 55.4, rear shoulder room (inches): 55.1 and interior volume (cu ft): 93</li>
<li>Low fuel level warning</li>
<li>Low tire pressure indicator</li>
<li>Memorized adjustment with three settings on door mirror position with four driver&#8217;s seat positions</li>
<li>Remote power locks includes trunk/hatch and includes power windows</li>
<li>Power steering</li>
<li>Front and rear power windows with two one-touch</li>
<li>Front and rear reading lights</li>
<li>3-point reel rear seat belts on driver side with pre-tensioners , 3-point reel rear seat belts on passenger side with pre-tensioners , 3-point reel rear seat belts on center side</li>
<li>Rear seat center armrest</li>
<li>Three fixed bench front facing rear seats with zero adjustments</li>
<li>Rear view mirror</li>
<li>Steering wheel mounted remote audio controls</li>
<li>Remote control remote trunk/hatch release</li>
<li>Front and rear roof airbag</li>
<li>Front seat back storage</li>
<li>Seating: five seats</li>
<li>Service interval indicator</li>
<li>Front side airbag</li>
<li>Smart card / smart key manual, includes central locking, includes memory seat adjustments and includes radio settings</li>
<li>Thirteen speaker(s)</li>
<li>Leather covered multi-function steering wheel with tilt adjustment and telescopic adjustment</li>
<li>Tachometer</li>
<li>Illuminated driver and passenger vanity mirror</li>
<li>Ventilation system with recirculation setting and micro filter</li>
</ul>
</div>
<div>Options</div>
<div>
<div>
<ul>
<li>Cold Weather Package</li>
<li>Rear seat center armrest with ski bag</li>
<li>Heated Front Seats</li>
<li>Folding rear seat center armrest</li>
<li>Asymmetrical front facing rear seats</li>
<li>Premium Package</li>
<li>Garage door opener</li>
<li>Coming home device</li>
<li>Driver and passenger seat with lumbar adjustment</li>
<li>Driver and passenger door mirrors with automatic operation</li>
<li>Compass</li>
<li>Adjustable seatback width and lumbar</li>
<li>Electric foldable mirrors;</li>
<li>Includes: Leather Upholstery</li>
<li>BMW Assist</li>
<li>6-Speed Steptronic Transmission</li>
<li>Automatic six-speed transmission with mode select, lock-up, electronic control, manual mode, shift lever on floor, 4.170:1 first gear ratio, 2.340:1 second gear ratio, 1.520:1 third gear ratio, 1.140:1 fourth gear ratio, 0.870:1 fifth gear ratio, 0.690:1 sixth gear ratio and 3.400:1 reverse gear ratio ZF 6 HP and automatic with manual mode;</li>
</ul>
<div>Extras</div>
</div>
<div>
<ul>
<li>Beyern 17&#8243; Mesh Wheels</li>
<li>Toyo Proxies 4 &#8211; brand new</li>
<li>Toyo Garit Winter Tires</li>
</ul>
</div>
</div>
<div><img class="alignleft size-medium wp-image-454" title="front-2" src="http://drew5.net/wp-content/uploads/2011/08/front-2-300x225.png" alt="" width="300" height="225" /><img class="alignleft size-medium wp-image-455" title="side-2" src="http://drew5.net/wp-content/uploads/2011/08/side-2-300x225.jpg" alt="" width="300" height="225" /><img class="alignleft size-medium wp-image-465" title="photo 2" src="http://drew5.net/wp-content/uploads/2011/08/photo-2-300x225.jpg" alt="" width="300" height="225" /></div>
<div><img class="alignleft size-medium wp-image-466" title="photo 3" src="http://drew5.net/wp-content/uploads/2011/08/photo-3-300x225.jpg" alt="" width="300" height="225" /></div>
<div><img class="alignleft size-medium wp-image-464" title="photo 1" src="http://drew5.net/wp-content/uploads/2011/08/photo-1-300x225.jpg" alt="" width="300" height="225" /></div>
]]></content:encoded>
			<wfw:commentRss>http://drew5.net/2011/08/23/2006-bmw-330xi-for-sale/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://drew5.net/2011/08/23/2006-bmw-330xi-for-sale/</feedburner:origLink></item>
		<item>
		<title>Background Image Shrinking on iPad</title>
		<link>http://feedproxy.google.com/~r/Drew5/~3/bFm4f485WR8/</link>
		<comments>http://drew5.net/2011/07/13/background-image-shrinking-on-ipad/#comments</comments>
		<pubDate>Thu, 14 Jul 2011 00:17:52 +0000</pubDate>
		<dc:creator>Josh</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[background]]></category>
		<category><![CDATA[images]]></category>
		<category><![CDATA[iOS]]></category>
		<category><![CDATA[iPad]]></category>
		<category><![CDATA[problem]]></category>
		<category><![CDATA[web design]]></category>

		<guid isPermaLink="false">http://drew5.net/?p=436</guid>
		<description><![CDATA[Recently I was building a site that had full page backgrounds.  One of the pages had a long vertical background to accommodate the content. Here is an example of what I am talking about: body { background: #fff url(img/my-really-large.jpg) top center no-repeat; } Example (view on Desktop) There really is not an issue (aside from image load) when [...]]]></description>
			<content:encoded><![CDATA[<p>Recently I was building a site that had full page backgrounds.  One of the pages had a long vertical background to accommodate the content.</p>
<p>Here is an example of what I am talking about:</p>
<pre class="brush:css">body {
  background: #fff url(img/my-really-large.jpg) top center no-repeat;
}</pre>
<p><a href="http://drew5.net/examples/backgrounds/background-1.html" target="_blank">Example</a> (view on Desktop)</p>
<p>There really is not an issue (aside from image load) when viewing on Desktop browsers.  However, I would like this site to be compatible with the iPad as well.  Unfortunately this simple technique will not work on the iPad.</p>
<p>The iPad uses Mobile Safari which, by default, scales websites to fit it&#8217;s viewport.  It does this to text, images and background images.  It has to do with a resource limit put on the device from displaying large images.  The maximum number is 1024 x 1024 x 3 which is 3,145,728 (result varies a bit depending on iPhone or iPad).  However, Mobile Safari will scale your image accordingly to fit that size and your screen.</p>
<p><a href="http://drew5.net/examples/backgrounds/background-1.html" target="_blank">You will end up with something like this</a> (view on iPad)</p>
<p><a href="http://drew5.net/wp-content/uploads/2011/07/photo-1.png"><img class="size-medium wp-image-440 alignnone" title="iOS with no fix" src="http://drew5.net/wp-content/uploads/2011/07/photo-1-225x300.png" alt="" width="225" height="300" /></a></p>
<p>&nbsp;</p>
<p>There is a simple fix and it has to do with some newer -webkit tags. Add the following to your body declaration in your CSS:</p>
<pre>  -webkit-background-size: 1200px 1900px;</pre>
<p>(where 1200 1900 is the size of your image)</p>
<p>This will only render on WebKit browsers and fix the issue of scaling.</p>
<p><a href="http://drew5.net/examples/backgrounds/background-2.html" target="_blank">See here</a> (on iPad please)</p>
<p><a href="http://drew5.net/wp-content/uploads/2011/07/photo-2.png"><img class="alignnone size-medium wp-image-441" title="photo 2" src="http://drew5.net/wp-content/uploads/2011/07/photo-2-225x300.png" alt="" width="225" height="300" /></a></p>
<p>This will force the iOS device to load the full background.</p>
<p>This tip will definitely be coming in handy again.</p>
]]></content:encoded>
			<wfw:commentRss>http://drew5.net/2011/07/13/background-image-shrinking-on-ipad/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		<feedburner:origLink>http://drew5.net/2011/07/13/background-image-shrinking-on-ipad/</feedburner:origLink></item>
		<item>
		<title>Amazon Associates No Longer Valid for Connecticut Residents</title>
		<link>http://feedproxy.google.com/~r/Drew5/~3/JCRzmZS06KU/</link>
		<comments>http://drew5.net/2011/06/10/amazon-associates-no-longer-valid-for-connecticut-residents/#comments</comments>
		<pubDate>Fri, 10 Jun 2011 12:16:15 +0000</pubDate>
		<dc:creator>Josh</dc:creator>
				<category><![CDATA[Featured]]></category>
		<category><![CDATA[Nonsense]]></category>
		<category><![CDATA[Affiliate Marketing]]></category>
		<category><![CDATA[Amazon]]></category>
		<category><![CDATA[Amazon Associates]]></category>
		<category><![CDATA[Connecticut]]></category>
		<category><![CDATA[Malloy]]></category>

		<guid isPermaLink="false">http://drew5.net/?p=429</guid>
		<description><![CDATA[I have a problem with Governor Malloy of Connecticut.  His policies are not doing anything to grow the state.  Yes, we are in a financial recession.  Yes, the state has a pretty big deficit but the policies he has proposed or implemented in the first 6 months of office have not made Connecticut enticing to move to [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft" title="Amazon.com Associates" src="http://g-ecx.images-amazon.com/images/G/01/associates/network/top-logo._V192206992_.gif" alt="Amazon.com Associates" width="222" height="36" /></p>
<p>I have a problem with Governor Malloy of Connecticut.  His policies are not doing anything to grow the state.  Yes, we are in a financial recession.  Yes, the state has a pretty big deficit but the policies he has proposed or implemented in the first 6 months of office have not made Connecticut enticing to move to or stay in.  From raising income tax, sales tax, sales tax on clothing to taxing pedicures, tax on home buyers and now this.</p>
<p>Amazon.com had a nice little program for associates.  Launched in 1996, the program is one of the most successful affiliate programs on the internet.  It helps store owners, Amazon sellers and developers make money by advertising products from Amazon.com and it&#8217;s subsidiaries.  I could build a store front or link to a particular product.  If that product was purchased I would get a little percentage of the transaction.</p>
<p>Well, Governor Malloy decided he wants a piece of the action.  He is imposing a tax on any of the transactions that take place.  This is counterproductive to the whole idea of what Amazon put in place.</p>
<p>As of today, June 10 2011, this program is officially canned for Connecticut residents.  Nice job Malloy, take away yet another thing.</p>
<p>Here is the letter from Amazon:</p>
<pre><em>Hello,</em>
<em> For well over a decade, the Amazon Associates Program has worked with thousands of Connecticut residents. Unfortunately, the budget signed by Governor Malloy contains a sales tax provision that compels us to terminate this program for Connecticut-based participants effective immediately. It specifically imposes the collection of taxes from consumers on sales by online retailers - including but not limited to those referred by Connecticut-based affiliates like you - even if those retailers have no physical presence in the state.</em></pre>
<pre><em>We opposed this new tax law because it is unconstitutional and counterproductive. It was supported by big-box retailers, most of which are based outside Connecticut, that seek to harm the affiliate advertising programs of their competitors. Similar legislation in other states has led to job and income losses, and little, if any, new tax revenue. We deeply regret that we must take this action.</em></pre>
<pre><em>As a result of the new law, contracts with all Connecticut residents participating in the Amazon Associates Program will be terminated today, June 10, 2011. Those Connecticut residents will no longer receive advertising fees for sales referred to Amazon.com, Endless.com, MYHABIT.COM or SmallParts.com. Please be assured that all qualifying advertising fees earned on or before today, June 10, 2011, will be processed and paid in full in accordance with the regular payment schedule.</em></pre>
<pre><em>You are receiving this email because our records indicate that you are a resident of Connecticut. If you are not currently a resident of Connecticut, or if you are relocating to another state in the near future, you can manage the details of your Associates account here. And if you relocate to another state after June 10, 2011, please contact us for reinstatement into the Amazon Associates Program.</em></pre>
<pre><em>To avoid confusion, we would like to clarify that this development will only impact our ability to offer the Associates Program to Connecticut residents and will not affect their ability to purchase from www.amazon.com.</em></pre>
<pre><em>We have enjoyed working with you and other Connecticut-based participants in the Amazon Associates Program and, if this situation is rectified, would very much welcome the opportunity to re-open our Associates Program to Connecticut residents.</em></pre>
<pre><em>Regards,</em></pre>
<pre><em>The Amazon Associates Team</em></pre>
]]></content:encoded>
			<wfw:commentRss>http://drew5.net/2011/06/10/amazon-associates-no-longer-valid-for-connecticut-residents/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://drew5.net/2011/06/10/amazon-associates-no-longer-valid-for-connecticut-residents/</feedburner:origLink></item>
		<item>
		<title>Incase Product Support</title>
		<link>http://feedproxy.google.com/~r/Drew5/~3/hN8qvsgytyM/</link>
		<comments>http://drew5.net/2011/05/07/incase-product-support/#comments</comments>
		<pubDate>Sat, 07 May 2011 20:59:01 +0000</pubDate>
		<dc:creator>Josh</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Nonsense]]></category>
		<category><![CDATA[Case]]></category>
		<category><![CDATA[Incase]]></category>
		<category><![CDATA[iPad]]></category>
		<category><![CDATA[iPad 2]]></category>
		<category><![CDATA[Products]]></category>
		<category><![CDATA[Warranty]]></category>

		<guid isPermaLink="false">http://drew5.net/?p=405</guid>
		<description><![CDATA[I recently purchased an iPad 2 and started my search for a case.  Apple makes the new case which has &#8216;magnets&#8217; and puts the iPad to sleep when it is covered and wakes it up when you open the case.  Sounds pretty cool but it does not protect the back of the iPad.  Placing the [...]]]></description>
			<content:encoded><![CDATA[<p>I recently purchased an iPad 2 and started my search for a case.  Apple makes the new case which has &#8216;magnets&#8217; and puts the iPad to sleep when it is covered and wakes it up when you open the case.  Sounds pretty cool but it does not protect the back of the iPad.  Placing the iPad down on a desk or a park bench will allow it to get scratched easily so I ruled that one out pretty quickly.  I then narrowed in on a &#8216;notebook&#8217; looking case.  Something that felt nice, protected it in the front and back and functional.  I wanted to the the &#8216;original&#8217; iPad case from Apple, but the iPad 2 is much thinner and it will not work.</p>
<p>I found the <a href="http://www.goincase.com/products/index.php/detail/book-jacket-cl57923" target="_blank">Incase Book Jacket </a>at <a href="http://www.bestbuy.com/site/Incase+-+Book+Jacket+Case+for+Apple%26%23174%3B+iPad%26%23174%3B+2/2318055.p?id=1218320818054&amp;skuId=2318055&amp;st=incase&amp;cp=1&amp;lp=1" target="_blank">BestBuy</a>.  It looked great, felt great and had all of these &#8216;slots&#8217; for different positions of the iPad.  So I picked one up and used it right away.</p>
<p><img class="aligncenter size-medium wp-image-412" title="open-1" src="http://drew5.net/wp-content/uploads/2011/05/open-11-300x227.jpg" alt="" width="300" height="227" /></p>
<div class="clear"></div>
<p><img class="aligncenter size-medium wp-image-413" title="open-2" src="http://drew5.net/wp-content/uploads/2011/05/open-21-300x227.jpg" alt="" width="300" height="227" /></p>
<div class="clear"></div>
<p><img class="aligncenter size-medium wp-image-414" title="open-3" src="http://drew5.net/wp-content/uploads/2011/05/open-31-300x227.jpg" alt="" width="300" height="227" /></p>
<div class="clear"></div>
<p>My overall reaction is it is nice.  Looks and feel is top notch.  Functionality is not.  There are 3 slots within the case to allow different angles of use.  1 slot works all the time.</p>
<p><img class="aligncenter size-medium wp-image-415" title="slot3" src="http://drew5.net/wp-content/uploads/2011/05/slot3-300x228.jpg" alt="" width="300" height="228" /></p>
<div class="clear"></div>
<p>This postion works well.  It is great for watching Netflix or any videos on it.  You can type on it but this position is ideal for viewing and swiping.</p>
<p>This is the second slot.  This one works pretty well.  Not as much as the first one but it works.  You can type on here but be careful, at random times it slips out of the slot.  A little annoying.</p>
<p><img class="aligncenter size-medium wp-image-416" title="slot-2" src="http://drew5.net/wp-content/uploads/2011/05/slot-2-300x228.jpg" alt="" width="300" height="228" /></p>
<div class="clear"></div>
<p>The third slot seems to be ideal for typing.  Just a slight angle and type away.  The problem is I can never get the iPad to stay in the slot.  It keeps slipping out.  And if I do get it to stay as soon as I breath on it let alone type, it slips out.</p>
<p><img class="aligncenter size-medium wp-image-417" title="slot-1" src="http://drew5.net/wp-content/uploads/2011/05/slot-1-300x228.jpg" alt="" width="300" height="228" /></p>
<div class="clear"></div>
<p>There&#8217;s not a whole lot I can do about it now.  I contacted Incase and they responded with the following:</p>
<blockquote><p>
Hello Josh,</p>
<p>Thank you for contacting Incase Designs Corp.</p>
<p>If you have a problem with your warranted Incase product you may file a claim to have it replaced by going to the following URL:</p>
<p><a href="http://www.goincase.com/warranty-claim-form/" target="_blank">http://www.goincase.com/warranty-claim-form/</a></p>
<p>Sincerely,</p>
<p>Incase Designs Corp.</p>
</blockquote>
<p>I can&#8217;t really warranty it since I do not have the receipt and really do not want to deal with the hassle.  So I am informing others about the case.  Reviews posted on GoIncase.com, Amazon and BestBuy will hopefully educate buyers along with informing Incase that they need to fix the issue at some point.</p>
]]></content:encoded>
			<wfw:commentRss>http://drew5.net/2011/05/07/incase-product-support/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://drew5.net/2011/05/07/incase-product-support/</feedburner:origLink></item>
		<item>
		<title>jQuery Accordion with 8 Lines of Code</title>
		<link>http://feedproxy.google.com/~r/Drew5/~3/81L3Whqzph8/</link>
		<comments>http://drew5.net/2011/03/10/jquery-accordion-with-8-lines-of-code/#comments</comments>
		<pubDate>Thu, 10 Mar 2011 17:55:02 +0000</pubDate>
		<dc:creator>Josh</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Featured]]></category>
		<category><![CDATA[Accordion]]></category>
		<category><![CDATA[Android]]></category>
		<category><![CDATA[BlackBerry]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[iOS]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[JavaScript Accordion]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[Mobile]]></category>
		<category><![CDATA[WebKit]]></category>

		<guid isPermaLink="false">http://drew5.net/?p=343</guid>
		<description><![CDATA[Ok.  Maybe more than 8 lines of code but very little.  I have been working with another agency (that will rename nameless) on a mobile web site for a client of ours.  The agency provided the HTML/CSS/Images and Script for our technology team to implement.  We hook up all the back end and call it [...]]]></description>
			<content:encoded><![CDATA[<p>Ok.  Maybe more than 8 lines of code but very little.  I have been working with another agency (that will rename nameless) on a mobile web site for a client of ours.  The agency provided the HTML/CSS/Images and Script for our technology team to implement.  We hook up all the back end and call it a day.</p>
<p>The section that came into question was an &#8216;accordion&#8217; style UI for a set of FAQ&#8217;s and other content.  When I first loaded up their pages, everything worked fine.  Upon further inspection of their code I noticed a lot of JavaScript libraries that were not needed.  They included jQuery AND Prototype along with some effects and accordion scripts.  (Prototype alone is almost 100kb in file size and the other scripts were 42kb.  That still does not include the 70kb for jQuery)  I thought to myself, this is a mobile site&#8230;why have extra scripts if not needed.  To make matters even more funny, we are supporting Mobile Safari (iOS), Mobile Chrome (Android) and the BlackBerry Browser (RIM), it does not work in BlackBerry at all.  Forget enabling or disabling JavaScript it just does not work.  Even the elements are hidden.</p>
<p>So it got me thinking about the old saying, &#8220;if you want something done right you have to do it yourself&#8221;.  So I did.</p>
<p>I removed all the libraries except for jQuery and made all of the elements visible by default.  Basically if a user does not have JavaScript enabled then they can see everything.</p>
<p>Here is my HTML</p>
<pre class="brush:xml">&lt;div&gt;
     &lt;a href="#"&gt;Really Great Information&lt;/a&gt;
     &lt;div class="accordion_content"&gt;
          Content that will expand
     &lt;/div&gt;
     &lt;a href="#"&gt;Really Great Information&lt;/a&gt;
     &lt;div class="accordion_content"&gt;
         Content that will expand again
     &lt;/div&gt; 
&lt;/div&gt;</pre>
<p>Styles and other HTML can be wrapped around it.  You can change the paragraph tags to div&#8217;s if needed but that is the structure you need more or less.</p>
<p>Now for the JavaScript.</p>
<p>Make sure you embed jQuery (I did from Google)</p>
<pre class="brush:js">$('.accordion_content').hide();
//If JavaScript is not enabled, all content containers stay open, which is nice.

//Next, bind the click event to all of the targets, in this case all 'a' elements in the 'accordion_toggle' class
$('.accordion_toggle a').click(function(e){
     //code to come
});
//Within the click function we need to first check if the element being clicked is set as the 'current' which means open.  If it is, we need to remove the class 'current' and close the content container.
if($(this).parent().hasClass('current')) {
     $(this).parent()
          .removeClass('current')
          .next('.accordion_content').slideUp();
} else {
...
}</pre>
<p>Then hide all open content containers:</p>
<p>If the element does not have the &#8216;current&#8217; class then we need to first remove the &#8216;old&#8217; &#8216;current&#8217;, close the &#8216;old&#8217; &#8216;current&#8217; and open and set the new &#8216;current&#8217;.</p>
<pre class="brush:js">$(document).find('.current')
     .removeClass('current')
     .next('.accordion_content').slideUp();

$(this).parent()
     .addClass('current')
     .next('.accordion_content').slideDown();</pre>
<p>Done.</p>
<p>Here is the final:</p>
<pre class="brush:js">$(function() {
     $('.accordion_content').hide();
     $('.accordion_toggle a').click(function(e){
          if($(this).parent().hasClass('current')) {
               $(this).parent()
                   .removeClass('current')
                   .next('.accordion_content').slideUp();
          } else {
               $(document).find('.current')
                    .removeClass('current')
                    .next('.accordion_content').slideUp();
              $(this).parent()
                    .addClass('current')
                    .next('.accordion_content').slideDown();
          }
          e.preventDefault();
      });
});</pre>
<p>Depending on how you format the code and what you count as a &#8216;line&#8217; it can be about 8 lines <img src='http://drew5.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><a title="Demo" href="http://drew5.net/examples/accordion-example/example1.html" target="_blank">Demo here</a> &#8211; View in Mobile Browser.  Desktop browser will work as well.  Works on iOS, Android, BlackBerry.</p>
]]></content:encoded>
			<wfw:commentRss>http://drew5.net/2011/03/10/jquery-accordion-with-8-lines-of-code/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		<feedburner:origLink>http://drew5.net/2011/03/10/jquery-accordion-with-8-lines-of-code/</feedburner:origLink></item>
		<item>
		<title>My Top 5 iOS Annoyances</title>
		<link>http://feedproxy.google.com/~r/Drew5/~3/hk5XJH1UAKI/</link>
		<comments>http://drew5.net/2010/12/23/my-top-5-ios-annoyances/#comments</comments>
		<pubDate>Thu, 23 Dec 2010 15:58:53 +0000</pubDate>
		<dc:creator>Josh</dc:creator>
				<category><![CDATA[Digital]]></category>
		<category><![CDATA[Nonsense]]></category>
		<category><![CDATA[bah humbug]]></category>
		<category><![CDATA[iOS]]></category>
		<category><![CDATA[iphone]]></category>

		<guid isPermaLink="false">http://drew5.net/?p=335</guid>
		<description><![CDATA[Add To Home Screen &#8211; When I browse to a web site using mobile safari I might choose to add it to my home screen since it can be a nice way to launch the web browser.  When I do that task, Apple (for some reason) decides to leave the Safari window and show me [...]]]></description>
			<content:encoded><![CDATA[<ol>
<li>Add To Home Screen &#8211; When I browse to a web site using mobile safari I might choose to add it to my home screen since it can be a nice way to launch the web browser.  When I do that task, Apple (for some reason) decides to leave the Safari window and show me where the icon is being placed.  How nice&#8230;and annoying.  Now I have to go back to my Safari Icon and open it back up, which will now RELOAD the web page (in some cases)&#8230;argh!</li>
<li>Push Notifications &#8211; Not sure if this is an iOS thing or just certain apps.  Let&#8217;s take ESPN Scorecenter for example, a score happens, I get a push notification alert sound.  I go to my phone and see the notification.  I then do anything and &#8220;poof&#8221; it goes away.  Why not open the app?  Why not give me an option to close or open the app?</li>
<li>Auto Correct &#8211; Wow.  I really hate this one.  Why not an Auto Suggest?  I might want the incorrect word?  Why should I perform another action to NOT correct the word.  I should type away, it should &#8216;suggest&#8217; a new word, if I want to use the word then I can initiate it otherwise ignore it.  Right now, if it suggests a word it uses it unless I tell it not to&#8230;which is slower&#8230;argh.</li>
<li>Installation of Apps &#8211; similar to Add to Home Screen.  When I install an app, it leaves the app store to show me the icon and the installation process.  Wow&#8230;how exciting.  Why?  Makes no sense.</li>
<li>Multitasking &#8211; It really is a joke.  Your telling me there is no way to quit an app unless I go to the multitasking screen?  Obviously you do not have kids.  They open up 20-30 apps and quit them all the time but they are still running?  Why not prompt for a &#8216;quit&#8217; when you &#8216;quit&#8217; an app?  C&#8217;mon.</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://drew5.net/2010/12/23/my-top-5-ios-annoyances/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://drew5.net/2010/12/23/my-top-5-ios-annoyances/</feedburner:origLink></item>
		<item>
		<title>STATUS: 404 NOT FOUND @ STORY WORLDWIDE</title>
		<link>http://feedproxy.google.com/~r/Drew5/~3/fwoc1sxaslw/</link>
		<comments>http://drew5.net/2010/09/23/status-404-not-found-story-worldwide/#comments</comments>
		<pubDate>Thu, 23 Sep 2010 19:59:46 +0000</pubDate>
		<dc:creator>Josh</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Digital]]></category>

		<guid isPermaLink="false">http://drew5.net/?p=328</guid>
		<description><![CDATA[When I thought about writing a goodbye letter I figured I would do the usual and say thanks and good luck.  But to be honest it is more than that (thanks for the inspiration Martin).  It is more than thanks and good luck.  It is laughs, tears, wins, losses, thrives and struggles. Eight years is [...]]]></description>
			<content:encoded><![CDATA[<p>When I thought about writing a goodbye letter I figured I would do the usual and say thanks and good luck.  But to be honest it is more than that (thanks for the inspiration Martin).  It is more than thanks and good luck.  It is laughs, tears, wins, losses, thrives and struggles.</p>
<p>Eight years is a long time.  That is like going to high school twice (and times this place is like a high school).  From happy hours where Greg is having a strawberry eating contest, Todd eating full spoonfuls of Wasabi, Travis throwing up in creative (sorry Travis), Rica being carted down the mountain by the ski patrol, Cat, Stacy and Ben hi-jacking a school bus, Dave making all the PM’s cry, Mike and his hillbilly teeth, Chet break dancing in a suit of armor, American Idol style contest (does anyone still have that video of the Carrie rapping?), Softball and the Mojito Crew, summer parties at the beach, car arguments about BMW’s VS. Audi’s VS Fords, a little incident with a scooter and the chains at the Maritime Center, trips to Stratton and more.</p>
<p>Let’s also not forget the ones who have passed through these doors like Liz, Kai, Tai, Llama Lynn, Carol, Parchment, Tracy, Yury, Max and Flannigan, they were truly a pleasure :p</p>
<p>From Rimmel London to all the fun with the lovely ladies of COTY (JLo, SJP, Shania), the bottled water sites (Nestle) and all of their crazy contest that Stacy could dream up (Shrek / choose your own adventure! ARG), to some very serious clients like TradeTrak and Connolly Consulting, even K2.  We were ahead of the time with some of the video contest (glo girls &amp; CK In2U) and fan competitions (ultimate fans) and even our own Stumble Upon (Perrier IER) and never forget the webisodes (obviously Spraychel).  We even did a mobile marketing app that took photos and uploaded them to a site that sent out emails back in 2005.  Here’s to the 4 AM launches of Acquisitions or e-Service, the 3 AM fun with the MLB contests, Sunday or even Saturday Midnight launches of contests, New Years Eve site launches and a few all nighters thrown in (shout out to Mark).   So many to list…</p>
<p>I am very proud to have been part of this company, we have done great work each and every year and I truly wish the best for everyone.</p>
<p>Special thanks to my team – Dave, Anthony, Tom, Travis, Steve and Jacek.  It has been has been a pleasure to work with all of you!  You all made “work” so much fun.</p>
<p>Thanks again.  PS – I won’t remove you any of you as my Facebook friends</p>
<p><a href="mailto:joshdrew@gmail.com">joshdrew@gmail.com</a> | <a href="http://www.facebook.com/jdrew" target="_blank">facebook.com/jdrew</a> |  <a href="http://twitter.com/@jdruid" target="_blank">twitter.com/@jdruid</a> | <a href="http://drew5.net">drew5.net</a></p>
]]></content:encoded>
			<wfw:commentRss>http://drew5.net/2010/09/23/status-404-not-found-story-worldwide/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://drew5.net/2010/09/23/status-404-not-found-story-worldwide/</feedburner:origLink></item>
		<item>
		<title>iPad App Reviews – Fun</title>
		<link>http://feedproxy.google.com/~r/Drew5/~3/vwrG_-P3OHY/</link>
		<comments>http://drew5.net/2010/06/09/ipad-app-reviews-fun/#comments</comments>
		<pubDate>Wed, 09 Jun 2010 17:21:03 +0000</pubDate>
		<dc:creator>Josh</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Digital]]></category>
		<category><![CDATA[ABC]]></category>
		<category><![CDATA[Apple]]></category>
		<category><![CDATA[GAP]]></category>
		<category><![CDATA[iPad]]></category>

		<guid isPermaLink="false">http://drew5.net/?p=317</guid>
		<description><![CDATA[These 3 are in the category of fun since they are sort of random. ABC Player Kudos for ABC on this one.  Real nice app.  The iPad just makes images pop and when you have some great images, it makes the app look even better.  That is what this has.  Awesome large images and previews [...]]]></description>
			<content:encoded><![CDATA[<p>These 3 are in the category of fun since they are sort of random. <img src='http://drew5.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>ABC Player</p>
<object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/ba-w0ELWF1k"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="never"></param><param name="allownetworking" value="internal"></param><param name="flashvars" value="" /><embed src="http://www.youtube.com/v/ba-w0ELWF1k" type="application/x-shockwave-flash" allowscriptaccess="never" allownetworking="internal" allowfullscreen="true" width="425" height="344" flashvars=""></embed></object>
<p>Kudos for ABC on this one.  Real nice app.  The iPad just makes images pop and when you have some great images, it makes the app look even better.  That is what this has.  Awesome large images and previews of ABC shows.  Ability to watch quite a bit of past episodes, check scheduling and keep a history of videos watched gives this app a lot of positives.</p>
<p>Epicurious</p>
<object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/0CoB27WeT-I"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="never"></param><param name="allownetworking" value="internal"></param><param name="flashvars" value="" /><embed src="http://www.youtube.com/v/0CoB27WeT-I" type="application/x-shockwave-flash" allowscriptaccess="never" allownetworking="internal" allowfullscreen="true" width="425" height="344" flashvars=""></embed></object>
<p>For the aspiring cook, this app is for you.  It feels like the Betty Crocker cookbook.  Tabs on the side, big images, ingredient list, reviews and more.  Solid functioning app.  The one thing lacking is video.</p>
<p>GAP 1969 Stream</p>
<object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/cZZF5OXz1nM"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="never"></param><param name="allownetworking" value="internal"></param><param name="flashvars" value="" /><embed src="http://www.youtube.com/v/cZZF5OXz1nM" type="application/x-shockwave-flash" allowscriptaccess="never" allownetworking="internal" allowfullscreen="true" width="425" height="344" flashvars=""></embed></object>
<p>I like this app not because of the GAP or products, but because of an entirely new way to navigate.  The app gives off the impression that it is endless.  Keep scrolling left, right or up or down you will never come to the end.  It repeats, but it works as well.</p>
]]></content:encoded>
			<wfw:commentRss>http://drew5.net/2010/06/09/ipad-app-reviews-fun/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://drew5.net/2010/06/09/ipad-app-reviews-fun/</feedburner:origLink></item>
		<item>
		<title>iPad App Review – News</title>
		<link>http://feedproxy.google.com/~r/Drew5/~3/mO2tz17-2Q0/</link>
		<comments>http://drew5.net/2010/06/08/ipad-app-review-news/#comments</comments>
		<pubDate>Tue, 08 Jun 2010 17:09:21 +0000</pubDate>
		<dc:creator>Josh</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Digital]]></category>
		<category><![CDATA[Apple]]></category>
		<category><![CDATA[Apps]]></category>
		<category><![CDATA[iPad]]></category>
		<category><![CDATA[Reuters]]></category>

		<guid isPermaLink="false">http://drew5.net/?p=315</guid>
		<description><![CDATA[Today is the news category. USA Today, Reuters, and Bloomberg USA Today USA Today takes a safe approach to their app.  It looks EXACTLY like their newspaper and functions like a web site.  At times you can get lost when navigating through articles.  The ads don&#8217;t function that well.  Orientation of the device does not [...]]]></description>
			<content:encoded><![CDATA[<p>Today is the news category.</p>
<p>USA Today, Reuters, and Bloomberg</p>
<p>USA Today</p>
<object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/FBrzACZzcLw"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="never"></param><param name="allownetworking" value="internal"></param><param name="flashvars" value="" /><embed src="http://www.youtube.com/v/FBrzACZzcLw" type="application/x-shockwave-flash" allowscriptaccess="never" allownetworking="internal" allowfullscreen="true" width="425" height="344" flashvars=""></embed></object>
<p>USA Today takes a safe approach to their app.  It looks EXACTLY like their newspaper and functions like a web site.  At times you can get lost when navigating through articles.  The ads don&#8217;t function that well.  Orientation of the device does not provide that much enjoyment.  The app is ok.</p>
<p>Reuters</p>
<object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/NRwdBXCWBAU"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="never"></param><param name="allownetworking" value="internal"></param><param name="flashvars" value="" /><embed src="http://www.youtube.com/v/NRwdBXCWBAU" type="application/x-shockwave-flash" allowscriptaccess="never" allownetworking="internal" allowfullscreen="true" width="425" height="344" flashvars=""></embed></object>
<p>The Reuters app is a great news app.  Very clean.  It uses icons that we are familiar with (the dot notation for swipes).  Image gallery, pop up video and ease of getting back to all of the main articles.  They make use of orientation by moving the article to the right and giving you options to jump to other sections or directly into an article.  Interactive stock tickers give this app a little more life.  Overall, solid.</p>
<p>Bloomberg</p>
<object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/60u1s2hDFEg"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="never"></param><param name="allownetworking" value="internal"></param><param name="flashvars" value="" /><embed src="http://www.youtube.com/v/60u1s2hDFEg" type="application/x-shockwave-flash" allowscriptaccess="never" allownetworking="internal" allowfullscreen="true" width="425" height="344" flashvars=""></embed></object>
<p>Bloomberg took a different approach to colors, instead of white or light background they went black.  Not a fan.  Very little images if any, navigation is clunky, drop-downs seems like a band-aid to get to where you want to go.  Hopefully next release will be improved.</p>
]]></content:encoded>
			<wfw:commentRss>http://drew5.net/2010/06/08/ipad-app-review-news/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://drew5.net/2010/06/08/ipad-app-review-news/</feedburner:origLink></item>
	</channel>
</rss>

