The Lions Mane Jellyfish is the largest jellyfish in the world. They have been swimming in arctic waters since before the dinosaurs (over 650 million years ago) and are among some of the oldest surviving species in the world.

The largest can come in at about 6 meters and has tentacles over 50 meters long. Pretty amazing when you think these things have been swimming around for so long.

They have hundreds of poisonous tentacles that it used to catch passing by fish. it then slowly drags in it’s prey and eats it. 

That is terrifying. 

()

nickdouglas:

peterfeld:

I hope they let him into the debates.

Problem, Cole?

()

Things I wish Siri could do

Apple’s new Siri intelligent agent for the iPhone 4S understands a bunch of useful stuff, but I wish it could do more. Here’s a list of tasks that I wish Siri could help me with:

  • “Remind me to give Mark his present when I see him next” — use Find My Friends to discover that Mark is close, then remind me to give him a present.
  • “What flights are leaving tomorrow for Seattle?” — this use to work in Siri the app, but no longer does in Siri for iPhone 4S.
  • “Tweet ‘hi there #vegastech’” — full integration with Twitter and Facebook, and a full understanding of hashtags and Twitter handles.
  • “Launch TweetBot” — app launcher would be great!
  • “Reserve a table at a good Italian restaurant.” — Siri use to have this ability by using OpenTable in the app version. Not so in iPhone 4S.
  • “When’s a good time to book a two-hour meeting this Thursday?” — returns some choices for when the meeting might occur. Although this doesn’t work, you can ask Siri “what’s going on at 3 this Thursday?”
  • “What songs do I have by Dave Matthews?” — returns a list of songs. Interestingly, she does understand this query, but says “Sorry Mike, I can’t search that content.”
  • “Show me a preview for ‘Green Latern’” — Siri the app use to return actual movie previews that you could watch. Not so on the iPhone 4S.
  • “What movies are playing tonight?” — Siri the app use to return movies that were currently playing in theaters. Again, not on the iPhone 4S.
  • “How much time do I have before my next meeting?” — she answers with the time and date of your next meeting. However, she doesn’t go as far as actually giving you a time span. She has this data, she should be able to answer the question. 
  • “Tell Mel he owes my $20” — There is no “Mel” in my address book because he’s under his full name “Melvin”. Siri should learn nicknames.
  • “Show me reviews for Joseph’s Restaurant” — she would return Yelp results.

To be fair, Siri does a few smart things that I didn’t expect. For example, ”remind me to call Kaywood in a minute” not only notifies you of your call, but she also pops up a dialog box offering to call Kaywood (which, I think, is more a function of the Reminders app).

()

Exactly right.

I don’t really have much to say other than have a great time wherever you went. You’ll continue to have a space the size of a deck of cards reserved in my pants pocket. Rest in peace dude.

Ally Bank is an Internet bank without a brick-and-mortar presence. I find it ironic that to date they still don’t have a mobile-optimized experience. And when I say mobile-optimized experience, I mean iPhone app.

Recently, I had a need for a bank with a mobile app that could deposit checks using the iPhone’s camera. I had considered Chase bank, but I just don’t like them. I think banks with a “you’re just a number” attitude like Chase will be given a run for their money by more forward thinking banking experiences like BankSimple, due to open this year.

I opened an account with PNC because they had an iPhone app with remote deposit. Unfortunately, the app is utter crap. It times out on login eight out of ten times. You can’t even access remote deposit until you’ve banked with them for 30 days, but they don’t mention that anywhere in the app’s description. Instead you’re left to hunt all over the app for a button that doesn’t exist. I wasted a good thirty minutes looking for it and Googling for some kind of manual. I’m likely going to close the account.

I like Ally Bank, the absence of hidden and ATM fees, and their decent web experience, but I’m left wishing that they had a top-notch mobile experience to match. I’m not alone. Point your browser at their blog and do a search for “iPhone” to see what I’m talking about. To see if I could take this discussion from their blog into a more public arena, I created the Ally Bank needs an iPhone app Facebook page. I also created an app mockup to use as an avatar and to exercise my Photoshop skills a bit. If only all banking applications looked as good and worked as well as Tweetbot.

Anyway, I guess I’ll wait until someone gets online banking right. I’m banking (pun intended) on BankSimple, but I also have high hopes for Ally. If you happen to be an Ally customer, I hope you’ll like my Facebook page.

()

A phone number formatting category on NSString

Actually, all the credit goes to Ahmed Abdelkader for this code. All I did was stick it in an easy-to-use category.

This work is licensed under a Creative Commons Attribution 3.0 License which basically means you can use it free for any purpose as long as you give proper attribution.

NSString+PhoneNumberFormatting.m

//
//  NSString+PhoneNumberFormatting.m
//
//  Created by Mike Manzano on 7/28/11.
//
//	This work is licensed under a Creative Commons Attribution 3.0 License.
//
//	Adapted from work by Ahmed Abdelkader on 1/22/10, whose work is
//  licensed under a Creative Commons Attribution 3.0 License.
//	http://the-lost-beauty.blogspot.com/2010/01/locale-sensitive-phone-number.html

#import 

// Supported locales
extern NSString *xPhoneNumberLocale_US ;
extern NSString *xPhoneNumberLocale_UK ;
extern NSString *xPhoneNumberLocale_JP;

@interface NSString (PhoneNumberFormatting)
- (NSString *)formattedPhoneNumberForLocale:(NSString *)xPhoneNumberLocale ;
@end

NSString+PhoneNumberFormatting.m

//
//  NSString+PhoneNumberFormatting.m
//
//  Created by Mike Manzano on 7/28/11.
//
//	This work is licensed under a Creative Commons Attribution 3.0 License.
//
//	Adapted from work by Ahmed Abdelkader on 1/22/10, whose work is
//  licensed under a Creative Commons Attribution 3.0 License.
//	http://the-lost-beauty.blogspot.com/2010/01/locale-sensitive-phone-number.html


#import "NSString+PhoneNumberFormatting.h"

NSString *xPhoneNumberLocale_US = @"us" ;
NSString *xPhoneNumberLocale_UK = @"uk" ;
NSString *xPhoneNumberLocale_JP = @"jp" ;


@implementation NSString (PhoneNumberFormatting)

+ (NSDictionary *) sharedPhoneFormats
	{
	static NSDictionary *formats = nil ;
	
	static dispatch_once_t onceToken;
	dispatch_once(&onceToken, ^{
		NSArray *usPhoneFormats = [NSArray arrayWithObjects:
								   @"+1 (###) ###-####",
								   @"1 (###) ###-####",
								   @"011 $",
								   @"###-####",
								   @"(###) ###-####", nil];
		
		NSArray *ukPhoneFormats = [NSArray arrayWithObjects:
								   @"+44 ##########",
								   @"00 $",
								   @"0### - ### ####",
								   @"0## - #### ####",
								   @"0#### - ######", nil];
		
		NSArray *jpPhoneFormats = [NSArray arrayWithObjects:
								   @"+81 ############",
								   @"001 $",
								   @"(0#) #######",
								   @"(0#) #### ####", nil];
		
		formats = [[NSDictionary alloc] initWithObjectsAndKeys:
							 usPhoneFormats, xPhoneNumberLocale_US,
							 ukPhoneFormats, xPhoneNumberLocale_UK,
							 jpPhoneFormats, xPhoneNumberLocale_JP,
							 nil];
		});
	
	return formats ;
	}


- (BOOL)canBeInputByPhonePad:(char)c 
	{
	if(c == '+' || c == '*' || c == '#') return YES;
	if(c >= '0' && c <= '9') return YES;
	return NO;
	}

// Strips out invalid characters
- (NSString *)strip:(NSString *)phoneNumber 
	{
	NSMutableString *res = [[[NSMutableString alloc] init] autorelease];
	for(int i = 0; i < [phoneNumber length]; i++) 
		{
		char next = [phoneNumber characterAtIndex:i];
		if([self canBeInputByPhonePad:next])
			[res appendFormat:@"%c", next];
		}
	return res;
	}


- (NSString *)formattedPhoneNumberForLocale:(NSString *)xPhoneNumberLocale 
	{
	NSString *phoneNumber = self ;
	NSArray *localeFormats = [[NSString sharedPhoneFormats] objectForKey:xPhoneNumberLocale];
	if(localeFormats == nil) return phoneNumber;
	NSString *input = [self strip:phoneNumber];
	for(NSString *phoneFormat in localeFormats) 
		{
		int i = 0;
		NSMutableString *temp = [[[NSMutableString alloc] init] autorelease];
		for(int p = 0; temp != nil && i < [input length] && p < [phoneFormat length]; p++) 
			{
			char c = [phoneFormat characterAtIndex:p];
			BOOL required = [self canBeInputByPhonePad:c];
			char next = [input characterAtIndex:i];
			switch(c) 
				{
				case '$':
					p--;
					[temp appendFormat:@"%c", next]; i++;
					break;
				case '#':
					if(next < '0' || next > '9') 
						{
						temp = nil;
						break;
						}
					[temp appendFormat:@"%c", next]; i++;
					break;
				default:
					if(required) 
						{
						if(next != c) 
							{
							temp = nil;
							break;
							}
						[temp appendFormat:@"%c", next]; i++;
						} 
					else 
						{
						[temp appendFormat:@"%c", c];
						if(next == c) i++;
						}
				break;
				}
			} // build temp loop
		if(i == [input length]) 
			{
			return temp;
			}
		} // for each format
	return input;
	}
@end