WWDC2004 Session 000
Transcript
Kind: captions
Language: en
good afternoon it's a pleasure to be
here again my agenda today is very very
simple I'm going to start with the past
move into the present and then of course
talk about the future so let's start
with the past the history and of course
I'm going to talk about the history of
the Macintosh and the history started in
1984 weaves the ad campaign and that's
the software that went along with it
the Macintosh OS so the first version of
the OS now I'm not really here to talk
about this this time 1984 but I really
want to talk to you about is the
transition of the Macintosh through the
years and the first major transition
took place in 1994 when we switch from
the original processor of the Macintosh
the 68000 series to the PowerPC and that
was a hard way transition of course but
the software was heavily involved in
that transition because there was the
emulator that was emulating the 68000
instructions and it was doing that job
very well of interpreting the
instruction of the 68000 that in fact
most of the Macintosh OS still in 96
were still running emulated which is
kind of amazing and it took like two
more years to convert most of the u.s.
to be finally native PowerPC so what's
the moral of this kind of transition
that was a successful transition but it
was very hard the transitions are very
hard they take a lot of time you a
number of years even for a transition
with a perfect emulator and you really
need to have very strong goals to
succeed for your transitions so there's
been another transition of course has
been heavily involved with and that's
the transition from Mac OS 9 and its
predecessors to Mac OS 10 and we had an
overriding goal of for that transition
which was to ally
simplicity of the Macintosh II is a few
the elegance of the Macintosh written
all those great characters that we have
but allows that with the power of UNIX
and I don't know if you remember and
UNIX was kind of a bet in those years
when we did that
of course UNIX runs you know the
Internet and nowadays it's maybe less of
a bet it's more obvious things but back
then that was quite a significant bet
that we did we had some sub goals if you
want to double-click to use the kind of
Macintosh parlance we had a number of
sub goals we wanted to base our stack on
open standards open standards means that
we didn't want to reinvent the wheel we
wanted to add value where we are strong
where we have some strong technologies
to contribute not reinvent you know some
of the basics are likely you know the
POSIX layer kind of thing we wanted to
have a really strong design we wanted to
have you know a layered system with all
those layers having really strong API s
and this is really important because it
means that we are burned that our
liability is the API it's not the
implementation and that means that over
the years we can substitute a better
implementation to the previous
implementation so by us having the
strong api's you have a guarantee to
always get the best technology over the
years we also of course had a goal to
have the highest performance and that
again was based on having the right
structure I mean you know modern us as
we used to say many years ago and and
having just something that's designed
for performance designed for low latency
things like you know code you know they
exploit we wanted to have great tools
because we believe that in order to
really leverage all your frameworks you
need to have great tools and great
runtime that goes along and overall our
maybe overriding goal there was to have
a platform for innovation so I'm looking
at the timeline I've started the
timeline in 1998 I could have started it
a few decades before we've you know
telogen maxwell copeland it has been a
number of names like that but 1998 was
when we had all the elements of Mac os10
including carbon and I know a lot of
your applications a carbon application
that was a key central element a part of
the Mac os10 concept and we were very
much at work to make sure that this was
actually going to work and to prototype
things and in fact the WWDC in May of
that year we were able to demo Photoshop
with our friends at Adobe we put
together a proof-of-concept then we were
back to work and finally we shaped 10.2
in 2001 it wasn't a perfect release and
we knew that we positioned it very
carefully for early adopters but it
wasn't necessarily release to start the
pump of application to start your
applications because we knew that you
couldn't ship until we had this 100
label and quickly we followed with 10.1
that was filling all the gaps that were
in need and then we had Jaguar that was
a great success I'm sure everyone is
familiar with the Jaguar logos that I
think is in everyone's mind and we had
behind the logo a hundred and fifty
features in that release now we followed
last year last fall with panther again
we added a lot and a lot of features in
that release this has been as Steve said
the most successful OS release in
Apple's history and a milestone was
reached at the beginning of this year
when we had over 10 million users and of
course now we have like 12 million users
and 10,000 of your applications so the
transition is complete we've
transitioned us over the last few years
thanks to you that that's been quite a
transition quite a lot of hard work it
was a little frightening I mean it felt
like several years ago that there was
this big chasm that we had to cross and
with Jaguar and then tan fur we crossed
it we went on the side where the the sky
is bluer
so thank you thank you a lot we could
not have made this transition without
you know there's a whole ecology moving
along now of course moving along this
Tiger coming up and I'd like to do a
promise to you which is we are not going
to disrupt the API set for the
foreseeable future that means that we
are going to add to the existing api's
[Applause]
now in contrast I noticed this
/ animal that's thinking should I jump
maybe halfway across the chasm so this
was talking about Z has a past now let's
move on to the present and as I said one
of our goals is to have a great platform
for innovation
now platform is really our mission all
the team at Apple in the software team
wants to provide you with the best
platform that's what we have in our gut
here now innovation is a joint
responsibility it's a responsibility for
Earth to provide great technologies as
part of that platform and a
responsibility for you to innovate on
top of the platform and you have been
doing that with pant fur and there's a
lot of very innovative apps that have
come out of tent fur on top of pant fur
and what I'd like to do now is to invite
Cristina Sullivan who is the senior
director for integration who's going to
show some of the most innovative app
you've come up with thanks for trying
Panther shipped a hundred and fifty
breakthrough new features last fall it
has been absolutely fantastic to see the
innovation that you the developers have
built into your application leveraging
core Panther technologies so today I'd
like to show you three applications that
I think truly shows this type of
innovation so let's get going
this is an application called neural
lens it was developed by dr. Rick Hogue
from Harvard Medical School and
Massachusetts General Hospital this is a
brain mapping application what we have
here is a set of MRI scans and as you
can see as I move the cursor slowly I
can go through slices of the brain and
this is very very exciting for
researchers as in a single application
researchers can display both functional
and structural MRI data in a very fast
and interactive way if I close this
window what you have here is a beautiful
3d view of the structure of the brain
and this really truly shows the power of
quartz and OpenGL what you can see here
is a different coloring on the structure
of the brain and actually the author who
developed this application his colleague
participated in taking an MRI scan and
when she was in the MRI machine she
moved her fingers and what you're seeing
here are the parts of the brain that
were activated when she did that so let
me rotate the brain again using the
power of quartz I can decrease the
opacity
isn't that gorgeous and what you can see
here are the brain fibers mapped into
the parts of the brain that is really
really important for neurosurgeons as
they prepare for brain surgery so this
is a very simple cocoa
building on a key core technology
shipped core technologies shipped with
panther it's it's a great app of course
for those of you that want to try it out
I think you should and for those of you
who are not neuro scientists and
neurosurgeons I recommend you out you
don't try this at home so let's get
going to the next application Panther
shipped professional audio technologies
this is a great application by a
developer called Salamone it's an
application called Melodyne this is a
multitrack recording and editing
application for music and vocals what's
really really fantastic about this
application is that enables you to very
easily edit pitch format and timing
information and edit audio as easy as if
it was MIDI data so let me show you I
have a reggae track here that we
prepared now I think even for those of
you that do like reggae that did sound a
little off and as I said the power of
melih Dyne enables you to very easily
edit audio so let's go ahead and show
you how simple it is bring up a new
window let's resize that I can go to the
toolbar and choose a tool that enables
me to edit pitch scale to snap and what
you're seeing here in the blue
rectangles is actually the target
regions that the notes should actually
be at so the ease of use of this
application simply allows me to select
all of the notes and drag them to that
target region so let's try that again
that one does one actually really don't
like reggae music but that's still off
and I think I have the pitch right but I
think what's really wrong here is
there's an offending note and I think I
know which one it is and again it's as
simple as grabbing this note and
positioning it let's say somewhere
around here so let's see if I got this
right
[Music]
we're trans getting into it so that's
that's Mel adrene is heavily leverages
core audio and audio units and it's a
great application that was just released
so let's go to my third and certainly
not last this is an absolutely beautiful
demonstration of integrating many many
many core Panther technologies into one
application this is Big Bang chess by
free-verse software and this is a game
that enables you to either play online
opponents or in solo state a chess game
now what you have here is the
integration as I said of many
technologies for example I chat for
online play with my buddy list let's go
into preferences here address book for
recording and publishing game and
contact information email for
automatically relaying play by email
moves and of course iTunes for some nice
background music as you play I happen to
be a really good chess player well now
I've lied in front of 5,000 people I'm
actually a really bad chess player so I
chose to play a solo game today so that
I wouldn't get annihilated on stage so
I'm gonna bring up a solo game and I
think I feel like being the Sun today
and as you can see that is just
absolutely beautiful using the graphics
that shipped in Panther so let's do a
few moves here
yeah I'm getting bored what you see here
is the Sun and the moon rotating what
this actually is is a QuickTime movie
that's embedded and it's rotating in an
OpenGL context so that's just three
great applications that I think
definitely showcase innovations and
leveraging core technologies that's used
with Panther of course there are other
well-known developers such as Microsoft
so Microsoft released office 2004 a few
months ago and as is often seen with
office innovation things come to the Mac
first before going to Windows and of
course Adobe and Creative Suite well I
was trying to figure well what would I
say about Creative Suite other than it's
creative and it's for creative
professionals and I actually want to
thank Adobe for being very creative
using Panther you gettin tired of me
talking ok so I think what we have done
and what the Mac OS 10 team has been
tasked to do has been to deliver a
platform as Bertrand said for you the
developers to innovate I think you're
doing a fantastic job and keep up the
great work thank you
Thank You Christine so we've moved along
quite fast in the agenda we were talking
about the present but I know a lot of
you are here to hear about the future so
let's start now into the future section
and the future is of course tiger
so there's a lot in tiger in fact I
think there's more in Tiger relative to
Panthers and there was in pound for
relative to Jaguar and I think you'll
find that out and on your DVD so I
couldn't talk about everything so I
chose six areas to focus on so let's
start with the first one denoted with
this eye now this section is all about
data and what do you think about when
you think data maybe you are thinking
about the character from Star Trek no of
course not you think about computer data
you know the all the bays generated by
your computers but there's something
that has happened over the last few
years which is quite interesting is that
a lot of the bits are not just generated
by computers they're generated by our
devices in our digital life we've you
know digital herb and all those things
that generate a lot of bass and in our
private life we use a lot of those base
rather than just computer base which is
kind of a lot more interesting we've
gone over the last few years from an
analog world to a digital world
I mean I'm sure that everyone here a few
years ago was using an analogue camera
and now it's digital maybe we are at the
forefront but I'm sure pretty much
everyone here uses a digital camera and
if you look at music the icon of the 80s
of course was a workman and the
modern-day icons icon is the iPod of
course and if you look at the documents
that you have in your file cabinet at
home there's a lot of papers that you
used to have for your tax returns and
all those things and nowadays are just
PDF documents so we have really really
started to use this power of this
digital world and we
now a lot of digital assets that are the
result of us with digital activity but
we are not fully exploiting all the
capabilities of those digital assets
because for the most part those
documents are
what-you-see-is-what-you-get
you do the picture is the picture is
what you can see but there's a lot more
that you can do with that picture
because you can attach information about
the picture the camera for example can
attach of course the date at which the
picture was taken and in a few years
maybe the place at which the picture was
taken and the camera I hope one day is
going to attach all the parameters of
the picture so that you can enhance that
that big thread down the pipe if you
look at your songs of course they
contain a lot of information about the
songs it's not just what you can hear
and something goes with documents that
can be copyright notice offer shape
titles all those things all this is
metadata metadata is information about
data and when you have files and you
want to inspect the metadata one thing
that you can do is do get info and
that's why it shows the eyes symbol for
this section because this is a
fundamental concept how to access the
metadata and we actually have a number
of applications that enable you to view
and edit metadata iTunes is of obviously
one okay you have all your list of songs
and when you select a song you can ask
for all the information about the song
and you get your exit row if you
download the trailer same thing so
metadata contains you know the copyright
notice which typically has the company
who made the trailer even if you have
office documents as with pain that you
may not have seen which is a property
sheet where you can actually not just
view the metadata but also edited you
can add a copyright notice on and so on
the problem is that very few of you
probably has ever have ever noticed this
this property sheet because it's not
that useful to capture all this metadata
the real power of metadata comes in once
you
can search it if you can search metadata
then you can have rich queries you can
ask you know for things like what are
the images I opened in the last month
because a computer knows what are all
your recent opens and you can ask you
know more complex queries like all my
WWC documents where WWSD is a string
that can be birth either in the metadata
or in the contents of the document
itself so the question is how can we
devise such a system that deals with
metadata as a first-class citizen so
that's one approach that approach
consists in saying well let's put
everything into a database a relational
database and then of course we would
define the schemas that you have to use
okay because database need very strict
kind of schemas you probably need to
rewrite every application to conform to
the schemas because we've defined the
schemas for you and you must comply
because if you don't comply we are not
going to be able to find your documents
that's what I call the Borg approach now
we are not going to do that I want to
reassure you we have a much software
approach our approach is to devise a
system service a system-wide metadata
store this is a heart of the spotlight
technologies that were shown this
morning the way it works is that
metadata flows into it and of course is
used from the store so let's look at the
two sides of that picture first getting
metadata into the store and that's done
with a very straightforward technology
that we call the importers what an
importer is is just a piece of code that
runs when a file changes and that given
a file is able to extract a dictionary
you know a list of key value pairs with
also metadata information and we've
enhanced
kernel and filesystem to have a whole
notification infrastructure so that as
files get modified the importer get
automatically called and import the
metadata we will ship with a lot of the
standard formats for files and so if you
use in your application one of the
common formats you have nothing to do
it's going to be understood
automatically by the system but it's
extensible so there's a very simple API
it's actually a one function API that
again given a file you must produce the
dictionary of the metadata so that's how
you extend if you have a unique format
okay so you got all your data all your
metadata into the metadata store so now
let's say you are an application set of
finder as was shown this morning that
does a query so there's a query that
goes to the metadata store then there's
the results that are going to come as
synchronously from the metadata store to
the requester application and you will
then display the results now there is a
display of the results might be a mix of
content information pure data as well as
metadata some of the columns returned if
you want by your query so you can have
really rich queries there's a little
query interpreter in the metadata store
that understands a tree-shaped kind of
query so you can really build complex
queries here but it's super fast you've
seen the speed this morning this is
really really super fast technology and
it provides for live updates which is
the underlying technology for getting to
smart folders that means that your query
keeps they're okay unless you you want
to close it so it's still alive and as
new files get added to the system the
system will automatically notify that
there are some new files that matched
and then you'll get that added to your
results standing queries
so that the metadata store technology
the spotlight technology and there's two
key new API is for your application to
leverage when is the importer API to
define a new and importer and when is a
query API of course to submit a query
and get the results now we have so so
just to summarize our approach and the
documents continue to be stored in files
this is not like you don't have to
restore everything into a relational
database or anything like that we keep
the storage the same the format's are
unchanged there's no new format added
here it's all those you know comment
formats that you find all over the place
we just add a new service a system
service that handles the metadata
essentially we boost the file system for
metadata and all new applications
continue to run and modified when Tiger
ships if you have a new file if you have
a file format that's specific to your
application we're for which we didn't
provide an importer
you can ship the importer outside your
application on top of Tiger you don't
have to even reshape your application
your application continues to work and
modified this is very evolutionary as a
general philosophy
now there's other technologies as part
of spotlight I had one of those rich
queries which was find all the WWDC
documents and WDC could match in the
metadata it could match in the content
of the document to do that you need
full-text indexing so we've been working
hard to really improve our full-text
indexing technology last year we
introduced search kit with a whole bunch
of api's and we've enhanced that we've
met that a lot faster up to 20 times
when when you search and then three
times to index and I think we still have
some room to to to go there to really
optimize things but the key thing is
that the full text index is now always
up to date so you don't have to you know
to have the user of forcin index
everything it's always ready for you to
ask that question and as you saw again
this morning in the demo it's really
fast and we've mixed the metadata query
engine with the full-text search so that
you can have mixed queries of course
that's how to find me all the WWC
documents works so I think we have a lot
for you
we've just those two very simple API
additions to really leverage the power
of metadata now the key though is that
you need to really now pay more
attention to metadata so when you have
an application that creates new document
you need to make sure you capture all
the metadata and you put that in the
document along with the document that's
really critical to make the all this
kind of really work well for the
end-user if you have an application that
transforms from one document to another
document you should make sure that you
preserve the metadata as you transform
and you know the good news is that most
of the applications out there already do
that that that's why the system works so
well already if you have a new type of
document one that's not too common you
can add an importer and I'm sure that
you are going to find very unique ways
to leverage all the query API it really
changes the way you program when
suddenly you can have a query and very
very quickly get all the results of that
query you do programming in a different
way once you have such a functionality
in the system so that was metadata let's
move on to another topic and that's
about storing data for the last few
years we've had this request so when are
you guys going to ship a database now I
just talked about metadata and and how
we enrich the file system do we still
need a database now that you can have
you know fancy attributes along with
your files well the answer is yes
because sometimes you have lots of
little objects that you want to put in
in your database and as we all know the
file system as a fairly coarse
granularity each object is a few
kilobytes and sometimes the things that
you want to put in a database are just a
few bytes database are very good at
doing that kind of stuff now also
database are very good at storing
relationships the entities and
relationship er diagrams you know all
this thing I mean there's a reason why
this is associated with all gbz R stands
for relational so database are very good
to maintain the atomicity across
relationships for example and some of
you may want to do SQL now to be fair
that's probably half of you who want to
do SQL and that's probably another half
of you who wants to have nothing to do
with SQL so we wanted to really satisfy
your need for database so we search for
a database we could add to the system we
wanted to have an embedded database
something that you can embed to your
application link it in and and use that
as a library we wanted the database to
do SQL of course and we wanted to be 12
to use an open source database we didn't
want to reinvent the wheel for database
I mean there's a number of database that
are very popular out there but above all
we wanted something extremely
lightweight because this is for your
application to link with it so we don't
want to have like you know a fool the
heavy-duty kind of database we wanted
something that you can embed that's
really really really lightweight so we
we search for all this and as we search
we find out that there are several
groups within Apple that were already
using the same little database so we
said hey why don't we bundle that one
because it seems that independently many
small groups within Apple have met that
already have evaluated and find out that
as one that's better than the others so
we will shape with Tiger SQL Lite
that is a very lightweight database that
has all the characteristics that we
wanted so that should really satisfy so
have a few who wanted to do SQL queries
in your application but does the other
half of you who wanted to have nothing
to do with SQL you want to hide the SQL
generation and we have something for you
it's called called data core data is an
object-oriented framework that's built
on top of SQLite and for debug it's
actually you can also go to a flat XML
file obviously you cannot shape that way
because an XML file doesn't scale very
well but for debugging your applications
that's fantastic it leverages cocoa
bindings this framework so I maybe need
to explain cocoa bindings it's it's
technologies that we introduced last
last year that enables you to keep the
model and the view in sync so if you
have your model for your data you have a
database or you know in memory can have
store of some kind and you have your UI
let's say both have fields you know
there's a person field here and there's
a person field in the UI what you have
to do is maintain those two things in
sync so that if the database restore
changes that value is reflected in the
in the UI vice versa if the user edits
the name of the person or something like
that
you want that value to be propagated to
the database the cocoa bindings enable
you to specify that this field in the
database is really bound to this field
in the UI and so automatically it does
this binding and it gets rid of all the
code to to make sure those two stay in
sync so cordetta leverages that
functionality we also have some modeling
tools to enable you to have some some
basic database or SQL Lite database and
altogether it enables you to do rapid
application development
because you can do significant
applications with significant
functionality with no code and I know
that's hard to believe so I'd like to
invite at this point under s venture to
demonstrate using short code data
Thank You better so core data makes it
really easy for you to manage your
applications data objects both in memory
and on disk and we are going to support
three different types of file formats
SQL databases on top of SQLite human
readable XML files and finally archive
files what you see here on the screen is
actually a typical XML file as it could
be managed by core data and I'm now
going to build an application for it so
I'm going to switch into Xcode and I'm
going to start creating a new project
I'm going to choose one of the new
project templates the core data document
based application just I have to enter a
name in just a moment my project should
come up it really
that is
so as it is common with cocoa
applications my project comes
pre-configured with a document class
that I can use for my own customizations
and what's new here is that it has a new
superclass the NS persistent document
which already knows how to use core data
to automatically read and write my data
objects of the file system the protocols
comes with a new component the model the
model is a description of my
applications data objects and it's
needed by core data and stuff entering
it here by hand I'm simply going to
import it from the XML file a shorty a
moment ago so what you see here
what you see here is an entity
relationship diagram of the object
stored in the XML file and be derived
from the structure of the XML as you can
see we are dealing with persons
locations
events equipments via fill event
management system in front of us now
just need to generate the user interface
so I'm going to open the document
documents nib file in interface builder
and then I'm simply going to drag over
one of the entities from a model into my
window
so this new provider uses cocoa binding
so that I don't have to very about
writing code to populate my user
interface now let me start building my
project and what it's building I have to
show you one more thing the project
comes pre-configured with three
different document types one for each of
the five formats we support binary SQL
and XML so it's finished buildings let
me run my project it is the first thing
I'm going to do is I'm going to open the
XML file use the data in the XML file
even has some pictures in there I can
also enter some new data in the other
window
maybe one more I'm not going to save
this file and here to ask me for what
kind of file format I want to use these
are the three different document types
that are pre-configured in the project
so I'm going to use SQL at this time now
I have an SQL database on my desktop so
let me close this let me open it again
there's my data again so as you can see
without writing a single line of code I
was able to write a fully functional
desktop application and with that back
to bed
thank you address so I think we have a
rich array of technologies for you to
store data with the enrich file system
with metadata and now we've asked you
alight and rad development we've core
data let's move on to another topic this
topic is thinking thinking data so maybe
I need to motivate that a little we live
nowadays in a very mobile world people
use computers all over the place even in
airplanes to do a chat as we as we saw
and we released great new products that
really support all this mobility now you
can be in your hotel room
plug in the best station and you can you
have full freedom of movement you can be
with your portable wherever in that room
without being wired so so this is this
is really the hardware side of mobility
but there's also a whole software side
to mobility we've worked really really
hard to make Mac OS 10 a very mobile
platform from a software perspective we
work really really hard each release to
make sure you can open that portable and
right away be able to use it we really
work how to make sure you can sleep and
then wake it up and connect and
disconnect from from after having
mounted file file servers and all those
things we added VPN in the last release
so there's really a lot of work that
goes into making all that really really
smooth but there's still something
missing
because if you have a lot of your world
on your portable and if you have another
computer as many of us do whether it's
at home or at work you really want to
have the same data on both of your
computers and the problem gets even
worse once you start putting some of
your addresses on your telephone and
here you are you meet a friend and type
in this new address and on that little
keyboard and now you have this address
on your on your cell phone you also have
the iPod where you may have things
like your calendar information and half
a million of our users have dotmac
account with this server in the skies
that holds a lot of information so the
key to all this is syncing technology
and we've had a product for the last few
years
that's called icing that really does
well that job but what we are doing now
is we are taking the engine from icing
and adding that to the best OS we call
that sync services and it can do all the
same tricks that I think used to be able
to do in terms of the data types it
understands your contact information
your calendar or your your bookmarks and
it can do a few more tricks like it will
be able to sync your key chains so that
wherever you go any website on any
machine you'll be able to find all your
passwords again it can do mail
preferences and mail rules I'm sure you
and Colorado program daily when you
switch machines and there's a number of
applications that we intend to sync for
which we intend to sing so preferences
the engine is also revamped in this
version too rather than having to think
all the devices with all the data types
at once you'll have really fine control
over exactly which data type you think
on which device or for which client it's
going to support incremental syncing
optimizing the connection when so that
you minimize the traffic and it has some
great facilities to solve conflicts that
conflicts is really important in
thinking because when you have no
conflicts we're all thinking is just
copying that that's really easy the
problems the difficulty of thinking
comes with recognizing the conflicts and
not having too many conflicts and then
having the proper UI to solve conflicts
so all this functionality is going to be
available in sync services but the one
thing that I know you've been asking for
a while is to have an SDK for sync
services
so this SDK will enable you to use all
the standard data types that think
services already understand things like
bookmarks and by the way this is a very
good way to manipulate the bookmarks as
you know there's no API to Safari to
access the bookmarks of Safari but
you'll be able to do that by asking
services you can extend the existing
data types that are programmed already
into sync services for example if you
want to add the stair click count to
your bookmarks you'll be able to add
that field and that will be understood
by using sync services and of course
you'll be able to define new data types
in terms of the clients and the devices
you will be able using some services to
really simplify adding a new device
adding a new client because what we
brought is the connection the knowledge
of one client of the other clients so so
each client is programed in installation
of the other client so if you have a new
device you know some some gadget of some
kind for which you think a certain data
type you don't need to know about all
the other clients for that data type
we've broken that connection and you'll
be able to do machine-to-machine syncing
Viaduct mac for all our users who have a
lot of that mac accounts so this brings
me to that Mac it's really really
powerful to have a server engine in the
sky just like what dot mac is it means
wherever you are on the internet
suddenly you can access your data now
I'm pleased to announce that we are
making so dot Mac API public so that you
will be able to enjoy the same level of
integrations that we've been enjoying at
a poor with our applications the
integration between the apps and dot Mac
we believe this is going to enable
totally new category of features I mean
we we don't know exactly what kind of
features you are going to come out with
this but we know that something big
there because once you have storage you
know on that Mac now you can store your
own information on
half of the users you can add to that
storage and you can republish that
information by whatever means you want
so think for example if you have like a
program that generates labels okay and
you have this database of labels now you
can use that information back to to
publish it lots and lots of
possibilities the API to do to Mac is
very very straightforward there's no
networking involved it's just a simple
connection and that Mac uses standard
protocols and standard ways to to access
information for example the filing
protocol is all based on web dev and so
it's going to be extremely simple to use
that storage in the scale and because we
believe in using our own API that's the
way we we can convince ourselves that's
a good enough for you
dot max thinking is of course going to
use it at Mac API
so there's a lot with of new
possibilities with having a sync engine
done into the US and I'm sure you are
going to find really really new
innovative ways to use that in the
future so let's move on another topic
that has nothing to do with data for a
change that topic is power because Apple
is a little bit on a power trip going
from the original Macintosh to this this
is Virginia Tech the number three
supercomputer in the world it's built
with eleven hundred power mac g5 and
it's really really cheap as far as
supercomputers goes because all things
considered the super Mac is very cheap
given the amount of power it gives you
so the key of course to make that happen
is to poor Mac and the g5 there's a lot
of power in the g5 and that
fundamentally is because the g5 is a
64-bit processor in Panvel we just
started to use those possibilities in
point where you can access more than 32
a physical RAM because we modified the
kernel to be able to do so there was
some hard work involves there to enable
that to happen and you can also in pant
fur leverage the 64-bit registers of the
chip again because the kernel can deal
with 64-bit registers now you have to
write a little bit of assembly to really
use the power of the 64-bit registers so
what we are doing in Tiger is extend
that functionality to provide you with a
pure 64-bit address space where your
pointers can be 64 bit we of course have
all the tools that go along with that
which is actually very simple from the
your perspective is just a check box in
Xcode that says well recompile for 64
bit and you can recompile any
application that has a POSIX layer we
will provide a 64 bit enable system
library for those applications so
there's a lot of power in the g5 how to
get more power well power of to put 2g
files together and luckily all the power
max reshape now at dual g5 and the
excerpts that you introduced a few
months ago is also dural g5 and what
really is powerful to have to g5 is
because we have this technology that's
called symmetric multiprocessing we've
had that from day one
on Mac OS 10 this enables your
application if your application is
programmed using the standard threads
and and there's lots of things that
generate threads and then that you
spread some on your behalf and and some
that you can just program yourself so if
you use several threads you can
essentially have the ability to process
things in parallel you will you both
your Yorgi files are busy at the same
time on your application but for the
kernel we've had to put some locking
because there's some system resources
that you need to lock you don't want to
have like two kernel threads in the same
time in the networking stack or two
kernel threads in the same time
in the file system so what we did in
previous releases we had this big luck
at the entrance of the networking stack
and at the entrance of the file system
stack what we have done for Tiger is
break down that look into smaller logs
that have a much finer granularity this
sounds really easy to do with such a
picture but you know this picture
simplifies reality quite a bit now
what this enables you of course is to
have much more improved parallelism much
greater throughput buff with the file
system in networking in the right
condition in the dual when you have a
dual processor and when you euler just
those things we also use that
opportunity to do something that we
wanted to do for a very long time we've
had an i/o kit that has a stable API so
all the drivers EIO key drivers continue
to work from when released to the next
because we have an API we did not have
that for a file system and networking
kernel extensions and we did not have
that because data structures whose
tracks records of the kernel were wide
open and so if you were programming the
kernel extension you were of course
using that struct and therefore as we
were changing the struct this would
break from release to release so because
we were changing those tracks because we
had to put the locks somewhere so we
took that opportunity to also provide an
API so that means that from now on we
can have stable kernel interfaces beyond
i/o kit for file system and networking
so 2g5 that's pretty good power isn't it
how about more power let's talk about
power of 10
let's just take a rack full of G fives
and of course what this rack runs is Mac
OS 10 server so let me go over the
strategy for the server very quickly
that's kind of free fundamentals for the
server the server is unique based just
like the client but that's a place way
it's definitely even more important we
build on open source in fact the server
is really taking all those open source
services and making them easy to use and
that brings me to the short point the
ease of use and the integration so let's
go a little deeper on that UNIX uniques
has been a bet for Mac OS 10 and this
was write bad UNIX is a power UNIX is
you know the best on which we build both
client and server and it's really robust
that's why my question is so resilient
it's a UNIX infrastructure unique powers
the internet over three-quarters of all
the servers on the Internet a powered by
one Unix another that's amazing when you
consider the geopolitics of the
computing world and UNIX is an industry
standard of course and because it is an
industry standards it has created this
whole open source movement and there's
lots and lots of open source services
that are out there so what we do is we
pick what we think has the best ones and
we bundled them we integrate them in
fact in Tiger on the server version of
tiger we will shape more than 100 open
source projects and that's the
serpentine what we do with those
services is we make them really easy to
use we create a consistent and
approachable UI to really make like memo
tells people like teachers manage my
question server boxes and we also
integrate those services together we
tweak them as necessary so that's a
really interplay something that is
by the open source world and we also
test them working together that's
another thing that nobody does in the
open source world so lots of features on
the tiger server I'm not going to go
through all of them there's a lot more
than this list here just a few I wanted
to mention access control lists and
heavily requested syncing so that if you
have like an education setting with some
students who have an iBook and you can
connect and sync your network home a
number of servers a weblog servers that
will complement very well the personal
clipping service Safari RSS that was
introduced this morning an iChat server
so that you can within a company I track
as you can see there's a lot of
complementarity between the client and
the server that's another thing that we
do and we make it easy to switch to Mac
OS 10 server with an assistant so that
you can easily connect if you have a
small business to the internet because
it's it's fairly complex to do those
things there's a number of things that
you need to do and the assistant makes
all that really smooth and some
migration tools if you come from an
overall s so one rack is a lot of power
how to get more power well why not you
roll in another rack and maybe another
rack Mona is no issue right
but if Mona is an issue
why don't you use instead the power of
the grid why don't you turn a whole
network of idle iMacs into a giant
supercomputer something that's virtually
hundreds of gigahertz and now you can do
like factorize prime numbers or whatever
scientific computation you have on top
of this network the x credible network
so X grade is this product we introduced
a few months ago we had a pre-release or
a technical preview I believe
in January and what this does is that it
can exploit idle machines and it's very
easy to submit a new task or get to the
grid and to contribute your own machine
to the grid as well so there's a lot of
power coming up with Tiger if you have a
large data set use 64-bit recompile your
UNIX application for 64-bit if you have
something that has large parallelism use
a grid if you are developing a kernel
extension that's a file system or
networking kernel extension now you have
an API to do that a stable KPI cannot
programming interface but the best thing
of all is that if you develop an
application that's you know outside this
domain as a standard application
document centric application I know
there's a large set of you who do that
you have nothing to do all this power is
for free so let me move on on to another
topic and that topic is web we started a
few years ago we embarked on this thing
which is let's write another browser and
this was a little crazy in those days I
mean the browser wars were over I mean
why would appall invest into a new
browser and the reason why we did that
was very very very simple we wanted to
offer the best browsing experience to
our users we want to do to develop a
browser that was really fast that was
native that really leverage the platform
as much as possible that was based on
standards and I'm not talking here of
standards defined by committees although
we do those too but I'm talking of real
world standards so pages that you
encounter on the web we thought we could
do something about the UI and kind of
simplifies the UI of browsers that had
become over the years a little you know
too heavy and have a fresh and pleasant
UI but maybe the biggest goal that we
had in nine we wanted something that you
could embed in your
application because we know that a
number of your applications really want
to have HTML rendering as part of the
application so we wanted to make the
engine of Safari available to you and
this is of course an artist rendition of
the engine the reality is more like this
you know the layers and this I removed
everything that has to do with two boxes
you know my carbon cocoa all those
things just to focus on kind of the web
portion at the lowest level of course
you have BSD circuits on which web
browsers were invented on top of that CF
network which is a layer to hide some of
the complexity of bsd circuits make it
easier to write to certain protocols
kind of abstract so that you fall back
into the application services kind of
mindset rather than so low level
networking mindset and then comes in
greens there's a big place no resistance
that's WebKit okay that's the HTML
renderer that's where a lot of the heavy
lifting happens that a piece that is
partially I mean I don't know exactly
the proportion but about half of it is
open source that that is whether heavy
duty is done the rendering engine and
then there's the application and this
morning we introduced Safari RSS Safari
SS of course is on top of the same stack
it's the same application the RSS
functionality has been added whoever
needed in the stack now you may say okay
so Safari is an application maybe
there's a lot of magic that happens in
Safari and that we don't get when you
are so party developer and that's not
true in fact we look at you as a code
size and well over 80% of the code size
is actually in WebKit that's that really
is a big piece in this stack and less
than 20% well as and 20% is in the
application itself all the UI to manage
bookmarks and all that stuff so this is
a stack that you have that you can use
for your application
and what's new in tiger at each level of
the stack so what's new in bsd Circuit's
answer nothing is new actually bsd
circuits are just great since I've been
there as I said work Reds are very
mature we're not changing anything in CF
network we are constantly adding support
for new protocols we add support for new
proxy servers new authentication
protocols and we always try to be down
to the metal in terms of performance
always try to strive for the topmost
performance with CF network but the bulk
of our work is in WebKit we are doing a
number of things in the WebKit area
we're making it easy to access the Dom
the document object model we are making
it easy to write plugins plugins API so
all these things have been seriously
revamped but there's one feature that I
want to outline it used to be that
WebKit was rendering HTML what it does
now is edit HTML so
what I'd like to do is to rain right
back
Christine to do a very quick demo of
HTML editing thanks for trying
so for Tiger we want to make HTML
editing very simple but we also want to
provide some power to enable you to edit
complex web pages very easily as well so
let's go ahead and launch an application
that we we rode using the new WebKit
HTML api's so let's type in some text so
let's see Christine you need a race for
truck ok so there's just some random
text
let me BOS that in our case I forget and
let me save that so I'll save it to my
desktop and I'll save it as urgent and
now what I have is let me drag this into
Xcode so as you can see this is an HTML
document you can also see that there's a
word here called race and it is bolded
because it's surrounded by the B tag so
our application created HTML from the
text that I typed from that document so
now I mentioned that we also want to
make it easy to edit go back here to
edit complex webpages so this is a web
page that you're all familiar with
yahoo.com and I would like to an
insertion point here and just start
changing
and as you can see I have live resizing
updating as I'm typing in my
modifications this has all been made
possible with the new WebKit HTML API is
that were shipping with Tiger thanks
so we really really want you to embed
Safari functionality into your
application you have access to the core
functionality of Safari you can go to
any of the layers and you can use
whatever api's you want there especially
WebKit and if you do so you will
leverage all the investments that we are
making in those technologies we continue
to push forward as much as we can there
and it's not just us it's also the open
source world because we are exchanging
all those improvements we've the open
source world and it's a portion of
WebKit that's open source and last but
not least the HTML editing that I'm sure
many of you think already of leveraging
in your application there's one more
thing about web development this morning
you so dashboard is the introduction of
dashboard and dashboard is instant
access to all your widgets
now what's a widget well a widget is
actually a piece of HTML and JavaScript
packaged all together in fact the
development environment for widgets is
Safari itself that's how you can test
that your widget runs not quite though
because there are some limitations in
HTML if you just limit yourself to you
know the regular HTML and regular
JavaScript you will actually not have
you know the fancy graphics of the hands
of a clock and because that's really
hard I mean I guess you could do it by
by you kind of moving images having a
fixed set of images but what would you
really want is the full power of quartz
there so to address those limitations
we've added two things and just to
weather the tag a property on the image
tag that enables you to do compositing
and we added a new class a new
JavaScript class that we call a canvas
that enables you to render using quartz
and with just two things the clock can
get its hands
so we really want you to develop that
rod widgets we want you to prototype
them in Safari to use HTML CSS cascading
style sheet JavaScript and our two small
extensions you can do native plugins so
you can really tap into the api's of the
system like the address api things like
that and it's really easy to develop a
widget in fact it's so easy that we
thought we could have a little bit of
fun here I know that many of you will
have come from all over the world like
Pierre who and you know a few of our
countries like that 44 countries and
you'll go to your hotel room tonight and
you'll turn on the TV and watch TV well
what if instead of watching TV you were
to develop a widget so I'm introducing
so WWDC 2004 dashboard widget contest to
encourage the creation of the best
innovative witness this is how it's
going to work
it starts now and the deadline is
Thursday so we believe it's really easy
to develop a widget and that's why we
believe we can do that and some training
starting tomorrow there's also an SDK
that you have until your DVDs that
contains information on how to write
widgets and there's more details on the
web now to motivate that a little bit
sirs even some prizes fifteen-inch
horrible and for the run over an iPod so
this should be fun so let me now go to
the last topic and it's connected to
dashboard because it's as fancy graphics
in dashboard and that's quartz that's
graphics and whose best to talk about
graphics than photography any new who
has been heading and providing the
vision for graphics over the last few
years thanks for trying
hi everybody I wanted to spend a few
minutes today to talk about some you
know kind of high-level industry trends
that we see going on in the graphic sack
there gonna be a lot of sessions on the
details and the low level API as we're
providing but I get the slides back
please
thanks but let's go through a few things
a few things we have here I think I
might need the other remote nope no
there we go
graphics processing power as you may
have heard in the keynote has really
been exceeding at a rate greater than
Moore's Law it's really been quite
incredible all the parallelism and the
capabilities of the chips the other
thing that's kind of interesting that's
also going along at the same time is
that these graphics processors are
moving from being sort of
special-purpose game engines to more
general-purpose
programmable engines so at the same time
they're making all those performance
gains they're also becoming more
general-purpose and in fact there's a
whole kind of culture of folks who are
doing general-purpose computing on
graphics processors now here's a website
called gpgpu where you can learn about
doing surfaces and modeling
computational geometry all kinds of
things on the graphics processor now one
of the things you might wonder is well
how can the graphics how can the
graphics processors be able to continue
at this rate what do they know that the
CPU designers don't well the issue is
really that their problem is much more
parallel and the quote one of the
scientists at Nvidia David Kirk graphics
computation is sort of embarrassingly
parallel there's just so much data to
work through that you can do lots of
things at the same time for example
within a pixel you might have rgba
components so you've got already four
components of parallelism so that's a
just a floating-point for vector just
like a velocity engine now what you can
do since you're processing multiple
pixels at once you're usually not just
drawing one pixel you usually drawing a
whole
the graphics processors actually
processed more than one pixel at once so
for example if you have eight pixels
getting processed at once each one with
four vectors you basically got 32
floating-point operations happening per
clock and it gets even even wilder than
that is in the current generations of
chips like the ones announced this
morning and in recent months the
processor is actually able to do 128
floating-point operations per clock
there's basically a dual issue 16 wide
for vector floating-point operation
happening in parallel and because
there's all this parallelism one of the
things that's really important is to
look at new approaches to computing
because the evaluation substrate is
radically changing we've got these
highly parallel graphics processors
we've got altivec SP cpus and a lot of
data parallel architectures coming along
so one of the things we wanted to do
with Tiger is is try to tame this
complexity for you and that's where we
get to core imaging core image and
here's a picture of the documentation
which we got ready for you today it's a
preliminary version but it's a great
reference if you want to get started
core image is a GPU aware image
processing library but it can also
process on on the CPU it's a floating
point data precision as you heard this
morning the plugins we have plug-in
architecture called image units and the
parallelism in these algorithms is what
we call implicit in other words there's
not loops & threads it's a stream
computation model and let me give you
some details on that so you understand a
stream comfy stream computing model has
kind of been around for a while it's
where you have data records going into a
processing kernel and then going on to
to the next say processing engine in the
system and in a stream computing model
all of the computation is for the kernel
is expressed imperative Lee where you
say do this do that do that to each data
record but you don't program the data
flow through the kernel that's all
handled by the evaluation system so each
kernel does its piece of operation and
pass
is it on and then the evaluation system
will hand it to the next person or the
next Colonel involved so all the other
details the threads the parallelism the
data flow are handled are implicit in
the expression of the algorithm it's
just how things are wired together and
how the kernels are constructed the core
image computing model is a little bit
different in that we just don't do one
stream one app one stream in one stream
out we actually do n streams in and in
fact we take a little further we can do
random lookups in those and input
streams to create a single output image
and the kernels job in life is to sit
there and look at it sources and compute
one resulting pixel and that's evaluated
over in a parallel way so another
important thing about core image is
deferred evaluation so what happens in
this part of the stream computing model
in core imaging is an input image gets
passed through processing kernels and no
work actually happens until at the end
of the pipeline when the final output
image is rendered what this allows us to
do is do what we call computational
conspiracy so you can imagine two
subsystems in the OS like a video
decompression subsystem needs to do a
color matrix correction to get the the
the NTSC decoding or whatever correct so
it gets the source video frame and puts
on a color matrix computation and then
passes that image along to down the
chain to say to a display subsystem now
no computation has occurred yet we've
just sort of annotated that image and
promised fit oh yeah we're gonna add a
color matrix to it and then later on the
video decode system can get that image
and say well I don't know what's in here
now but I know it needs to be gamma
corrected and slap a gamma correct
kernel on there and then when finally
the frame gets rendered what happens is
the evaluation system looks at all of
these things and in simple cases like
this we'll just render one quad with the
result of the image so this allows us to
have a really modular architecture and
not everyone's looping over the pixels
and doing their own thing we can
evaluate it all at once so that's a
little bit about core image I thought I
would just spend some time kind of
motivating the architecture in general I
think we're starting to run a little
late so I'm going to point you at our
our session later on this afternoon
where you can hear more details in a
second but let me do a quick demo so we
have a tool called quartz composer which
we're shipping in the developer DVD
which I heard someone installing as I
was waiting to come up here so I know
you guys have a disc let me show you
real quick where the examples are if you
go on the desktop to developer examples
you will find towards the bottom quartz
composer and I'll show you a few things
with quartz composer quartz composer is
a tool you'll hear a lot more about it
in other sessions and later on today in
Tim shops talk that lets you bring
together the power of core image core
video and OpenGL and all of the various
technologies we have so let me show a
few things first this is a composition
it's a data flow model you've got all
the core image units as well as a bunch
of controllers like low frequency
oscillators and you can kind of it's
almost a rad tool for doing visual stuff
it's really fun to play with and this is
one of the examples we have that tells
you about quartz composer every tool has
to be able to tell you about itself
otherwise it's not a good tool and the
background is getting blurred with core
image and then there's a cube I can show
you the composition a little bit here
you can see the four the four bitmaps
coming in into the faces of a cube and
those were just transparently being
rotated let me show one other demo real
quick this is a prototype of kind of a
wedding scene like you might see in an
IDE EVD title we've got some video
coming through on a texture using this
this component here which is basically
creating texture using core video
passing it into a background patch which
I can go inside of and you can see it's
doing various things get tooltips and I
can see what's happening at the various
stages this is actually making a mask
out of the image and this is on this
example is not on the deep
but there's a bunch there you can look
at let me show you one other one other
fun one is an apple RSS news feed
actually we have an RSS parser component
which can read from a URL it's going to
read from Apple hot news and create some
text and the text is going to go
downstream and get put onto bitmaps and
textured and you'll see what we have
with with that this is actually the RSS
feed from Apple comm which is kind of
cool
and there's also a screensaver you can
go look at inside the DVD which does it
like this so pretty cool stuff
back to slides for a couple and I'll try
to get you guys to your next session
quartz composer so we have a lot of ways
to attack GPU computing and Tiger we're
going to be a lot of sessions at the
conference come hear them all come to
our our lab and most importantly come to
Tim's talk at five o'clock to hear about
how we're layering all of the both core
audio core video core image core
graphics Open GL QuickTime everything
all together and some really cool stuff
so anyway that's all I had let me just
remind you to join the GPU computing
revolution and you know take the all the
great tools we have in tiger and build
build the next killer app thanks a lot
so we've covered six of the major areas
of Tiger but of course there's a lot
more I for example did not mention
development tools and we have a lot of
really interesting stuff in the tools
but I want to leave that to the next
sessions addressed in a few minutes and
I did not go offers the usual okay let's
talk about carbon and let's talk about
cocoa and all the other frameworks now
we are continuing to invest heavily in
those frameworks but there's about like
two hundred sessions that talk about all
those things so I wanted to leave
something for those sessions all
together we have a great platform for
innovation and we really hope that you
are going to develop great innovation on
top of the platforms that we provide I
want to remind you that we've been
through an operating system transition
over the last few years a successful
transition that the animals on that side
and also that I hope that you are
enjoying the DVD I saw a number of you
already installed the DVD et is
pre-release software but you know I've
been running it and I think it runs
pretty great there's still a lot of time
before it's shipping because this time
the development cycle is a little longer
we will ship next year so we are a
little not as advanced the development
cycle however I still believe it's a
great DVD and so great release we worked
really hard for you to get it in your
hands today
and I think overall Tiger promises to be
a great release thank you
you