Tuesday, October 7, 2008

Download And Install The WebKit Nightly Build

If you want to use the new WebKit JavaScript engine called SquirrelFish that interprets JavaScript three times faster than Safari 3.1 and 38 % faster than Google's Chrome JavaScript engine, you can download the nightly builds and install it under Mac Os X and Windows.



Follow the next link.

Via: Applesfera.

WebKit Based Browser: MECCA

This browser developed by Todd Ditchendorf an ex apple engineer. The main interesting spec is the use of the cover flow view to view the links of a web page or to view photos. Is interesting that cover flow is showed like a finder window not as new window like CoolIris.

Here a video demostration of the browser:


Fluid Thumbnail Plug-in | http://fluidapp.com from Todd Ditchendorf on Vimeo.

Vía: Applesfera

Browser WebPage

Download is not yet available.

Wednesday, April 2, 2008

ZiPhone 3.0 Released


The easiest way to unlock,activate and jailbreak the iPhone. One click and wai 4 minutes. In this version is solved some problems with youtube service and wifi service.

You can download following this link.

Now We Can Make & Receive Call In The Air


Air France has introduced a new service to make and receive calls in the airplane. This service will be operative from 3000 to up and, we can make six calls simultaneously and unlimited sms messaging. I think is an important feature for clients. I hope it will be operative in every air company in the world.

Microsotf Will Introduce A New Mobile Browser

Microsoft will improve the IE Mobile, following the same philosophy that the iPhone Browser, showing the web pages like a desktop browser. I think this is an important way to the mobile browsers, I have talk anytime about the fragmentation of the mobile browsers and the problems for developers to make cross browser pages. What do you think about this topic?

Also Microsoft will improve the navegation system throught menus in the Windows Mobile 6.1 version. The revolutionary iPhone interface will make that every manufacturer improve the OS version of mobile device, and unique winner of this figth is the final user with better products an a lot of alternatives.

Monday, March 24, 2008

Acid3 Safari test

The Safari browser passed the Acide3 test with 95/100. The WebKit team has fixed an exceptions, and now they match the DOM 3 specification.



I think the browsers must to match this specification at the top level, because it will be interesting to develope more web apps. Nowadays if you're developing a Web page you need view correctly in the most browsers and it's very hard try and solve the problems.

And congratulations to the WebKit Team.



Vía WebKit Blog.

Friday, March 14, 2008

How to: Get contacts with the iPhone SDK



This source code was developed by Pablo Abad and shows the contacts stored in the iPhone Address Book. The contacts will show in the Xcode console.

Thanks Pablo, and good luck in Munich.

//
// UntitledAppDelegate.m
// Untitled
//
// Created by Pablo Abad Sanz on 12/03/08.
// Copyright __MyCompanyName__ 2008. All rights reserved.
//

#import "UntitledAppDelegate.h"
#import "MyView.h"
#import "AddressBook/AddressBook.h"

@implementation UntitledAppDelegate

@synthesize window;
@synthesize contentView;

- (void)applicationDidFinishLaunching:(UIApplication *)application {
// Create window
self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];

// Set up content view
self.contentView = [[[MyView alloc] initWithFrame:[[UIScreen mainScreen] applicationFrame]] autorelease];
[window addSubview:contentView];

// AddressBook
ABAddressBookRef ab;
ab = ABAddressBookCreate();
int len = (int) ABAddressBookGetPersonCount(ab);
int i;
for(i = 1; i < (len + 1); i++)
{
// Cojo el contacto 1, no sé porqué no coje el 0...
ABRecordRef person = ABAddressBookGetPersonWithRecordID(ab,(ABRecordID) i);
// Ahora que lo tengo, saco su nombre y apellido
CFStringRef firstName, lastName;
char *lastNameString, *firstNameString;
firstName = ABRecordCopyValue(person, kABPersonFirstNameProperty);
lastName = ABRecordCopyValue(person, kABPersonLastNameProperty);

// Paso a char* los datos para que se puedan escribir
static char* fallback = "";
int fbLength = strlen(fallback);

int firstNameLength = fbLength;
bool firstNameFallback = true;
int lastNameLength = fbLength;
bool lastNameFallback = true;

if (firstName != NULL)
{
firstNameLength = (int) CFStringGetLength(firstName);
firstNameFallback = false;
}
if (lastName != NULL)
{
lastNameLength = (int) CFStringGetLength(lastName);
lastNameFallback = false;
}

if (firstNameLength == 0)
{
firstNameLength = fbLength;
firstNameFallback = true;
}
if (lastNameLength == 0)
{
lastNameLength = fbLength;
lastNameFallback = true;
}

firstNameString = malloc(sizeof(char)*(firstNameLength+1));
lastNameString = malloc(sizeof(char)*(lastNameLength+1));

if (firstNameFallback == true)
{
strcpy(firstNameString, fallback);
}
else
{
CFStringGetCString(firstName, firstNameString, 10*CFStringGetLength(firstName), kCFStringEncodingASCII);
}

if (lastNameFallback == true)
{
strcpy(lastNameString, fallback);
}
else
{
CFStringGetCString(lastName, lastNameString, 10*CFStringGetLength(lastName), kCFStringEncodingASCII);
}

// Muestro por la consola los datos
printf("%d.\t%s %s\n", i, firstNameString, lastNameString);


if (firstName != NULL)
{
CFRelease(firstName);
}
if (lastName != NULL)
{
CFRelease(lastName);
}
free(firstNameString);
free(lastNameString);
}

// Show window
[window makeKeyAndVisible];
}

- (void)dealloc {
[contentView release];
[window release];
[super dealloc];
}

@end