iPhone 5 and 4S are globally the best-selling smartphones in Q4

iphone5

Research by Strategy Analytics shows that Apple iPhone 5 is the best selling smartphone globally in Q4 and iPhone 4S follows the 2nd. Galaxy S3 dropped to the third place.

sales

It’s kind of weird to see iPhone outperforms Android in the Android dominated world.

However, iPhone 5 was already the best-selling smartphone in the US.

 

iPhone Brand Outshines Samsung’s Galaxy As iPhone 5 Becomes Best-Selling Smartphone Globally In Q4, iPhone 4S 2nd — Analyst

Strategy Analytics: Apple’s iPhone 5 tops world smartphone sales for Q4 2012

How to add geofencing Reminders to iOS programically

Reference : Calendar and Reminders Programming Guide from iOS Developer Library

Apple provides a way to add a Reminder through EventKit from iOS 6.

1. Before start coding, you should add the EventKit Framework to the target first.

eventkit

2. Check whether iOS is over 6. (Reminder API is available above iOS6)

 

1
2
3
4
// Check API (above iOS6)
if ([[EKEventStore class] instancesRespondToSelector:@selector(requestAccessToEntityType:completion:)] == NO) {
    return nil;
}

3. Init EKEventStore and request access.

5
6
7
8
9
10
11
12
13
EKEventStore *store = [[EKEventStore alloc] init];
 
[store requestAccessToEntityType:EKEntityTypeReminder completion:^(BOOL granted, NSError *error) {
    // handle access here
    if (granted) {
        // Create Reminder... [1]
    }
    [store release];
}];

4. If access is granted, Create reminder and add location alarm. (Code should be inside [1])

15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
EKReminder *reminder = [EKReminder reminderWithEventStore:store];
reminder.title = @"Geofence Reminder";
reminder.calendar = [store defaultCalendarForNewReminders]; // Use default calendar for new reminders
 
EKAlarm *alarm = [[EKAlarm alloc] init];
 
EKStructuredLocation *location = [EKStructuredLocation locationWithTitle:@"Location title"];
CLLocation *clLocation = [[CLLocation alloc] initWithLatitude:latitude longitude:longitude];
location.geoLocation = clLocation;
[clLocation release];
 
[alarm setStructuredLocation:location];
alarm.proximity = EKAlarmProximityEnter; // Remind when enter or leave
[reminder addAlarm:alarm];
[alarm release];
 
// Save reminder
NSError *error;
[store saveReminder:reminder commit:YES error:&error];
if (error != nil) {
    NSLog(@"reminder error:%@",[error description]);
}

Done!

The Pros And Cons Of A WebKit Monoculture

The Pros And Cons Of A WebKit Monoculture

More on WebKit Monoculture debate.

I’m glad to hear Mozilla won’t abandon Gecko anytime soon.

The most vocal opposition to this kind of monoculture has come from Mozilla, which is obviously heavily invested in its own Gecko engine and Servo, its forthcoming successor. Mozilla CTO Brendan Eich argues that monoculture is a problem Mozilla must fight because of its mission. Adding to this, Mozilla engineer Steve Fink argued that an all-WebKit web – both on mobile and desktop – would prevent innovation and lead to a small number of companies controlling the web as a platform and just lead to added complexity and confusion in the long run.

Also, Opera had no choice.

Even Opera, in its own announcement, argued that “monoculture is bad,” but then also added a somewhat defeatist note to this, saying that it “was never really in a position to prevent it in the first place,” because despite its considerable market share on mobile, “web developers still designed just for WebKit.”

The Inside Story Of Siri’s Origins

hero

SIRI RISING: The Inside Story Of Siri’s Origins — And Why She Could Overshadow The iPhone

Very detailed history of Siri from Huffington Post.

At its original debut, in 2010, Siri had been able to connect with 42 different web services — from Yelp and StubHub to Rotten Tomatoes and Wolfram Alpha — then return a single answer that integrated the best details culled from those diverse sources. It had been able to buy tickets, reserve a table and summon a taxi, all without a user having to open another app, register for a separate service or place a call. It was already on the verge of “intuiting” a user’s pet peeves and preferences to the point that it would have been able to seamlessly match its suggestions to his or her personality.

Didn’t knew Siri was more powerful then.

As conceived by its creators, Siri was supposed to be a “do engine,” something that would allow people to hold conversations with the Internet. While a search engine used stilted keywords to create lists of links, a do engine could carry a conversation, then decide and act. Had one too many drinks? The ability to coordinate a Google search for a ride home might elude you, but a do engine could translate a muttered, “I’m drunk take me home,” into a command to send a car service to your location. The startup’s goal was not to build a better search engine, but to pioneer an entirely new paradigm for accessing the Internet, one that would let artificially intelligent agents summon the answers people needed, rather than pull relevant resources for humans to consult on their own. If the search engine defined the second generation of the web, Siri’s co-founders were confident the do engine would define the third.

The current status of Siri is quite stumbling, but I hope it will change the paradigm of accessing the Internect.

Also it is interesting to know that Siri had a deal with Verizon before Apple.