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