Configure player

Close

WWDC Index does not host video files

If you have access to video files, you can configure a URL pattern to be used in a video player.

URL pattern

preview

Use any of these variables in your URL pattern, the pattern is stored in your browsers' local storage.

$id
ID of session: wwdc2007-505
$eventId
ID of event: wwdc2007
$eventContentId
ID of session without event part: 505
$eventShortId
Shortened ID of event: wwdc07
$year
Year of session: 2007
$extension
Extension of original filename: mov
$filenameAlmostEvery
Filename from "(Almost) Every..." gist: [2007] [Session 505] Discovering...

WWDC07 • Session 505

Discovering Wiki and Group Services in Leopard Server

Information Technologies • 44:26

Leopard Server delivers powerful collaboration and group communication tools to help you define, create, and administer groups in your organization-whether you are a new business just launching, or a workgroup in a large enterprise. The new Wiki in Leopard Server lets you gather, tag, and coordinate resources, people, and assets. Explore these new productivity tools in depth, and learn about examples of how they can be used together for various environments.

Speakers: Mike Lopp, Chris LeCroy, John Anderson, Doug Whitmore

Unlisted on Apple Developer site

Downloads from Apple

SD Video (135.8 MB)

Transcript

This transcript has potential transcription errors. We are working on an improved version.

Michael: Good morning. How are you guys doing today? Good? Good. We were a little worried about competing with the iPhone session. But we're fine. We've filled the room. The line's out to the escalator. That's really good news. My name is Michael Lopp. I am the manager of the Management and Collaboration group here at Apple. And we're going to talk about Wiki and Group Services today.

That's my name. I'm going to give you guys a little bit of history of the Wiki, kind of give you a little context about why you need a Wiki. You're all here so you probably know, but I'll give you a little bit more data. Give you some of the challenges surrounding what Wikis that are out there right now and then what our design goals were for the Wiki that we put into Leopard Server. And really the balance of this session is going to be demos, demos, demos. We're going to be showing off all of the hard work that we've been putting in the Leopard Server for the past year.

And also we're going to give you little bit more technical details about under the hood. And we're going to do some Q and A. So, a good friend of mine, constantly says this to me about Wikis - that Wikis are for nerds, and being a nerd I'm okay with that.

But this is not true, and what you'll see is as we go through the session today is, why we developed a Wiki that's really for everyone. I want to give you guys a little bit of a history of the Wiki. This is a nerd. He's a very important nerd as well, his name is Vannevar Bush and in World War II, he was responsible for about two thirds of all the physicists working for the United States and this guy did some pretty amazing things with the people worked with him they developed radar, sonar, the atomic bomb. So they did all these amazing things and what happened was that at the end of the World War II all the physicists they all left. They went back to their universities, they went back to wherever they were working and Vannever was kind of bummed out.

Because remember this is pre-internet and what was going on when he had all the people together was they were incredibly productive. They were developing all these brand new technologies. All these amazing and not so amazing things. But what was really neat about it was they were really productive. So he wrote this paper called 'As We May Think'.

And what it was as he explained what the advantage was of having all these bright people together, working together, sharing ideas when Bob wants to know something for electrical engineering, he could send Bob over to the guy who was a preeminent electrical engineer over here in another building. So it was really interesting to see what he talked about in this 'As You May Think' paper, which I have right here. It's a great paper.

There's a quote in here, it says - A record if it is useful to science must be continuously extended, it must be stored, and above all it must be consulted. This paper defines a lot of what the Internet is and what the Wiki is. And what he talked about was this thing called the memex. And what the memex was this desk. And it was full of microfilm.

Because he didn't have the Internet. And this microfilm through some weird, bizarre mechanical way to organize it was, gave a lot of different access to a lot of different information. There's a huge amount of information inside of this desk. But also what it allowed him to do, it allowed him to associate different pieces of information to you - document A and document B. So whatever he was doing was just he was really bummed about the lack of collaboration. This paper influenced a lot of different people.

Anybody remember Hypercard? This is a Bill Atkinson's work and this without the internet was based off what the memex was. The ability to associate information. Associate information. I've got information piece A, information piece B, if I put them together they're actually bigger than A and B. Hypercard also influenced a little thing called the Wiki, by the Ward Cunningham. This is the bus in Oahu, called the wiki, wiki, wiki. Which someone told me means quick. Again this was based on the idea of being able to easily edit, and associate information.

So, let's get to know you guys a little bit. How many of you have been to Wikipedia? Shocking. Alright, see if we can get harder here. How many have used a Wiki? Actually edited information inside a Wiki? Little bit less. Okay. How many of you have actually installed a Wiki? Okay, it's an IT crowd. Okay. How many of you think Twitter is totally useless? Oh. How many of you love Twitter? Ah, can't really... Okay, so pro-wiki, ambivalent on Twitter. Got it. Okay.

So welcome to the knowledge party. What we are going to be doing here is talking about all the different applications that we had as part of Mac OS X server, and I want to talk a little about some of the applications we have right now, and what we think is, these are great applications, but we think is something that is actually missing from these. So Spotlight, iChat, Mail, iCal and Safari. These are great applications but there's something missing from this picture.

And if you were in my session yesterday, you'll know what it is, but I'll still explain it. What's missing from here is all of these applications which are great, are actually communications between you and me. Right? I send a mail to James, James sends a mail to me. It's a great thing. We have mail. But the problem is that this information that we're sharing is just between James and I.

Or iChat between me and Wendy is actually just now chatting between the two of us. And that information in business actually could be useful to someone else. So what's missing from this picture is one to many communication. Information which is shared with everyone and Vannevar Bush tells us that maybe a wiki is a good idea for that.

The reason that we're seeing a lot of wikis around here, is the more idea, the more eyeballs that serve an idea, the better it gets. This is collaboration. This is brainstorming. Collaboration increases the value of information and the reason we know that wikis are valuable is every group at Apple has a wiki.

Every group has them. They are created because people want to share information they want it to be more valuable. There are some challenges to wiki. The first challenge is we have the same problem as the Internets of 5 or 10 years ago, which are - wikis are this place where good information goes to die.

So how does information die? Well, it's posted and it's only useful if people actually know that it's there. Then only, if they can find it. If they don't what happens is, it becomes out of date. And loses credibility and then there's no incentive to return and it's just another stale page on the Internet. This is a vicious lack of collaboration cycle is what I'd like to think about it. The other problem we have with wikis is rampant, rampant nerdering.

I'm a fan, but we've got to make wikis for everybody. So, the problem is, or the best example I can think of this is - which of the two pieces of content would you want to edit? There's number one here. I looked at this as an engineer, I go, Uhh... this is parsable, I can totally parse this. It's really easy. But what I really want, somewhat back.

Right? This is the problem with wikis. A lot of the syntax is really confusing and editing it is a sort of text based experience and what you want is a rich experience for you content. So, rampant nerdering and wikis is that syntax could be troubling. This is... collaboration is just a space of screaming for great interaction design. Whether it's the organization of information or the association of different pieces of information or the editing. And you've seen our demos here. How we've innovated there.

Wikis also have another feature which is version control. I don't want to lose my information ever. This is why we're doing time machine. And with a lot of people checking in different pieces of information, we have this great technology called version control that keeps all the information around, but normal human beings don't actually know what a version control is. We have a lot of different challenges to take this great technology and make it applicable to everybody. Wikis were designed for the Internet, which is a good thing.

But they weren't designed necessarily for IT or for business or for schools. We want to make a Wiki that is really friendly to IT friendly to the end user and we want it to integrate with your existing infrastructure and your existing investment for your access controls or what, everything else. So, all of these challenges give us an opportunity to innovate and fortunately I know just the company that can actually do this and that's us. So what we've done is we've created a product called Wiki Appple Wiki and a group services.

This is a set of integrated services. Now first off we have an application called directory.app which allows you to call for applicationships as part of the OS and as part of the server. This allows you to create groups, edit, create groups, create Wikis. Its also an amazing directory viewer. Wiki is also a set of different services that we've included and integrated that's Wiki as well as blog and podcast.

Calendaring. Web based calendar for the groups, mailing lists and across all of these integrated services we've got tags we've got RSS search and directory and you'll see this all into the demos we're going to be doing for you guys. Our design goals were it's that we want to make it easy to manage, we want to make it easy to contribute, edit, and organize for everyone.

Everybody should be able to contribute to the conversation. It should, we want to keep the bar as low as possible in terms of adding new information, which means it's gotta just sing. We want to make it easy to customize, extend, and integrate against the wiki as well. So easy to manage is wikis that are developed for the work group.

We love Wikipedia and you love Wikipedia, but again we are designing it for a smaller group of people. We scale and perform phenomenally but we also are designing for a smaller population. Again, we want to create, we can only make it easy for anyone to create these and to relieve IT burden. It shouldn't be a phone call to IT to get involved in creating a Wiki and again integrating with existing infrastructure. Easy for everyone to contribute, edit, and organize.

WISYWYG? One would have that as we saw. We want to give people reasons to come back. We want them, remind them that there's great information inside of this wiki. We want to make it easy on the eyes. We've got some great themes that you'll be seeing here that are applied to the all the different sort of businesses that we are expecting to use the wiki. Tags as a means of organization which we'll see in the demo, search, and again RSS everywhere.

And again customization, integration, and extension we'll be talking about some standards here in a little bit about how we can actually, and you guys can actually develop themes, third party authentication, as well as XML-RPC. Again we are going to go into all of these as part of the demos.

So let's start with, Where's Chris? Let's start with easy to manage. So what we've done here, we've done here is we've created three scenarios, Where is Chris? He's coming, okay. Three scenarios, we've tried to pick three different companies that we think are going to be actually using the Wiki.

The first one is an ad agency and we are going to talk about ease of setup, our integrated services, basic WYSIWYG and the themes and I would like to bring for the demo, first demo of three Chris LeCroy who is an Engineering Manager for the collaboration team to give us a demo. Chris?

[Chris LeCroy]

Alright, so Michael mentioned that we've added the grid, okay now I want to show you how easy wiki art of setup and then we've got a bunch of other demos coming up after that so we'll dig into more detail. So, as Michael mentioned, we've got a scenario where we are an ad agency and we do... I'm sorry?

Michael: No, no on video there Chris. That's old school. There you go. That's good.

[Chris LeCroy]

See Mr. AV man. Okay, if you look guys want to come and gather around the machine. Okay?

Michael: Say again.

[Chris LeCroy]

Hey no problems.

Michael: There we go. Oh.

[Chris LeCroy]

Should this computer be on?

Michael: Yes it should be on. Not yet.

[Chris LeCroy]

Let me try. Display is preference.

Michael: It's coming up there.

[Chris LeCroy]

Oh, there we go.

Michael: We're good, perfect. Okay so this is system preference, okay.

[Chris LeCroy]

Okay so what were we talking about? Anyway, let me show you how easy it is to set up a Wiki. So creating Wiki starts off at a new application that lives on your client installed called directory and it's a directory browser so I am browsing through the LDAP directory of an organization, but I'm not the system administrator I am just a normal person at the company the IT department has made it possible for me to create Wikis so go down to the plus menu into a new group and if I said the ad agency here works primarily with pharmaceutical companies so what they do is they create Wikis for each of their ad campaigns and so I am going to create it, I've got a new campaign for a drug called Randsien. It's a drug that apparently helps with NADD, Inside joke for those of you who have no idea what I am talking about, go buy "Managing Humans" at Amazon.

So I am going to put the title of the group in, give it just a quick description. If I wanted to, I could add a picture to the group got some access control on whether other people are not allowed to see the group where they are allowed to add themselves.

I would like to make this one that people can add themselves to so that I don't have to as the owner, we're gonna add some people, to the group just drag them over, so I've now got a group, I've got some members and I am going to pop over to the services tab, or a panel of the group and you'll see they've got some services here first of all mailing list, wiki and web blog, web calendar, and the mailing list archive, and I'm going to enable all of those and as Michael mentioned we provide lots of access control so I can define who is allowed to see this things who is allowed to write to them, I'm going to say that I'd like anyone to be able to see this Wiki and I'm going to say only group members are able to write to this Wiki and to this blog.

So once I'm done with that I click save and I now as a non-IT person have created a full wiki for the Randsien ad campaign so let me click on the wiki link and you'll see I've got a brand new Wiki there with a very basic theme and let me show you a little bit about the WISYWYG editing here, but actually before we do that, so you'll see I've got a Wiki, I've got a blog configured, I've got mailing list, web archive configured, and the calendar, let me go over to the calendar and show you a little bit of that.

I have written a very nice AJAX calendar so I'm going to create a, I have to log in because as I mentioned, this writing is only allowed by group members so I am going to create a staff meeting, whoops, at 7 a.m. because that's when I prefer to have my staff meetings as you can see I can move them around very easily and the other thing about this is it's very dynamic and very AJAX driven so if John decided, if he wanted to move a meeting around or add a meeting to watch, and you just move, he wants it later, I just still want it earlier, anyway so you can, it's a new video game we've invented called Dueling Colleagues so better, let's just forget about this, I'll delete the event and it goes up in a poof of smoke, it's very cool.

Let me show you a little bit of the Wiki though, I am going to show you some of the, the WISYWYG editing, so I will click on the new page button here and I'm going to entitle my page Randsien description and I've got a new page, it's got some placeholder text. I'm going to copy some text out of another document that has completely the wrong drug band, but that's okay, you'll notice that all the text formatting remained intact, I can change text formatting, maybe highlight, make this one red, I can make this paragraph italic, sort of thing.

If you look at the toolbar, we've got the ability to do, change from the paragraph styles, the, we can do bullets and indenting, lots of text formatting, links, which John will show you later, and we've got a table editor and some other attachments. I am going to, we also allow you to add attachments onto pages and so I am going to show you what it is like to add an image by clicking insert media and I'm going to choose a file from my desktop and I've got a picture of some pills that I will insert click upload it uploads to the page, I can drag this image around if I want to or change the alignment on it, click save or actually no I want to show you there is a little bit of nerdering we have left in here, so if you do want to view things in markup link which we do have in HTML normally, I mean you can go in and edit the HTML directly. That allows you to do things that we just don't allow you to do in the WISYWYG portion so... so you can still kind of get your nerd on that. And so I've done that and I've got a beautiful Wiki page.

And the next thing I wanted to show, for this is a very basic theme kind of a default theme, I want to show you some pages from other wikis that have been created with some of our shipping themes for some other drugs so got a drug named Oestan and nice red theme and in this case we've not, the creator of this wiki changed the picture to have some red pills on it, got a drug called Emessen, a very basic theme, less real estate, a drug called Ipodiclone nice green kind of library scientific-looking theme.

And one last one called Zunesta, which is a sleeping pill and it's very orange French fries or maybe they are popsicle sticks I am not sure. There were a few that the themes we are shipping. I think that we ship with like 18 themes and some plus you can actually edit and create your own themes, so that's all I've got and then I'm going to get off stage and then we've got some other demos going into more depth after I'm done. Thanks.

Michael: Thank you Chris.

So I call it WISYWYG within reasons, so you saw that we've got WISYWYG but the idea here is, is not every piece of thing that you can change in HTML it's a very reduced set so you don't end up with like content chaos on your wiki. One page kind of looks like the other but again you can theme it and you can really. And you saw you can actually edit the raw theme on HTML so you can go as crazy as you want.

Okay, so contribute, edit, organize for everyone this is an all new demo that we didn't show you yesterday. This is a company, we are going to show, we are going to bring John Anderson up here, he is going to talk a little about how to organize content with a Wiki, we are going to get a little bit more advanced with our WISYWYG and we're going to do some content kung fu. We are going to show you instant image galleries and also the collaboration features.

The thing to remember about the Wiki is that any given time there is a bunch of other people editing content, which is an interesting interaction problem and John is going to talk about that. John is a member of the engineering team as well. Come on up John.

( Applause )

[John Anderson]

Thank you Rance. He offered us free drinks if we worked that into a sentence somewhere. So as Michael mentioned, wikis are a place where good information goes to die. And there are several things that we can do to prevent that from happening. And there are essentially two ways that people are organizing the pages on sites. One of them is a hierarchical system which as you know, where you have the sort of JavaScript menus that pop out, and stuff like that.

The big problem with that is that it doesn't really lend itself well to collaboration. You have a kind of one person that is essentially assigning things to a folder and things could be within one folder. So that's kind of a mess. But on the other hand if you look at tags and you look at how that works. There's a lot of proven cases where it works extremely well. del.icio.us, Flickr, and Gmail.

Gmail of course calls them labels but same difference. But they are a great way to organize huge amounts of information that are free flowing and edited by many people. So we've gone with tags as a way of organizing things. And you'll see that in several cases when we go through this demo.

So the first thing we're going to do is go to a knowledgebase wiki. So this is a company called PharmKnowledge. They manage a wiki server that's basically a knowledgebase of drugs. And first thing I am going to do is go into the Oestan page. So we've mentioned this earlier as a page that's already been edited.

Okay so. Pay no attention to the man behind the curtain here as I delete some stuff here. Okay, here we go. So, I have some changes to make here, on this page. One of them hass already made here, withdrawal symptoms include sweating, psychosis and stuttering. You can see that here. And so the first thing I'm going to do is attach a file to this.

Now one of my personal pet peeves with the web and with wikis is this sort of unexpected download. So you think about this and you think about the fact that, you know, you click on some link here, you're expecting a page and all of a sudden you have some little present on your desktop that you have to go and find. And so we work around this pretty cleverly. And you'll see that here, so I'm going to go ahead and attach a file here.

And I'm going to pick a PDF, about Oestan. And what it's going to do here, it's actually going to composite together an image that links to it. So you see it is actually taking a finer icon of the image and composited the graphic together with analog download icon. Looks really nice.

I am going to go ahead and get rid of that, because I'm not really concerned with that right now, but the big thing that we want to do here is a movie. So, if any of you use QuickTime Publisher, you know that you can kind of use that to put images online, or movies online, make them on the web. That's great. That's something you can actually do straight from the wiki so you can insert this media. We'll go ahead a pick a movie.

And what this is going to do is grab the poster image from the movie and include that as a thumbnail for the movie and then link it to an embed tag for the movie as well. So I'm going to go ahead and save this. Unfortunately the poster image for this is the first frame so it's black. But we'll go ahead and click on this and you can see the movie playing.

( Laughter )

We had to work it into another presentation somewhere, you know.

( Laughter )

So of course another thing that makes pages distinct on the wiki versus you know, just a word processing page is linking. I mean, essentially that's at the heart of linking. And like you said, this page has already been edited so I'm just going to go ahead and unlink some stuff here just to get us back to the starting point here. Oops. And so the first thing we want to link is we are going to link to an existing page.

Now if any of you have used a wiki you know that there's two different ways you can link. A markup or there's something called CamelCase or StudlyCaps, where you are linking to something which is like a bunch of words jammed together. And you have to know what the name of the page is, you have to know where it is beforehand, which is not usually the case. So in this case what I'm going to do is link to an existing page.

I know there's a page on here about Allegra, so I'm going to go ahead and click on that. So you see that any pages that I have visited recently will show up automatically in that, so I could just click on Allegra here but I'm going to go ahead and do a search. And we'll see that it automatically populates with this and here's Allegra right here and so I can click on that and it's linked. Piece of cake.

( Applause )

Next thing I'm going to do that's important in wikis as well, is you want to continue working on your page, but you know you're going to write other pages that are related to this one. So you're going to write this. You're going to keep writing this page, you know like I'm going to make a page on such and such later. And that's easy to do in here as well. Again no CamelCase, no anything like that. All I have to do is, let's see... So I'm going to make one which says, take your doses. Weird name for a page but whatever.

And I'm going to click here and say new page. You've seen this yesterday in the demo. It just comes up with automatically populated, hit create. And you notice up here in the right hand corner it says page created. So its gone off in the background and made the page and linked to it and that's all you have to do.

So I'm going to go ahead and save here. So this page is saved. It's got everything on it. So let's go ahead and go to our new page that was just created. And I'm going to show you a really cool feature something that... show you a really cool feature something that we've just added in the most recent beta and this is really neat.

So what happens in the earlier is of course, within Apple we're starting to live on that, starting to use this in exchange for the media wiki use mod stuff that we've got. And somebody actually approached me and said, I've got 15 images to upload and on the web that's a pain.

And if any of you have used Flickr, anything like that to upload these images from the web it is a pain. Upload images. You have to pick a file, upload it. Pick a file upload it. So we've added a really neat feature here. Which is something that basically allows you to take a bunch of images and make a zip file of them and upload them all at once. And it will make a gallery of those images instantly.

Some of that... I put some fake content in here. And you'll notice here, if I open this up, I've got this folder of PIL images. So I could of course do just do insert image add the image, insert image add the image. But what I'm going to do is I'm going to make an archive of that folder. So here I have PILimages.zip.

So if I just do insert media, and upload that zip file... So it's going to search through that zip file and find all the images, turn them into thumbnails and make a page based on it. So let's save it. There's my images, thumbnails, everything. All in one step.

So I've saved that and I have this gallery of images and I'm going to go ahead and add a tag to this page and I'm going to tag it as needing review and we'll see where that shows up in a second. So I'll just say, needs review. You see it fills in for me.

So the next thing I am going to do here is go back to the group home page, and we'll see that is shows up in the side bar underneath review. So the side bar is actually a custom sidebar, which has been set up specifically for this group linking to a tag and anything that gets tagged with a need review tag, shows up in the sidebar here. And I'm going to have my man behind the curtain here. If you look at the sidebar, I mean I have my man behind the curtain at Allegra, and you see it shows up right there on the page. No reloading.

So, most of you saw that yesterday and it's pretty cool. So I'm going to look at this Allegra page and why does this need review? What has changed about this page? What's different? And I'm not entirely sure. So these are the questions that somebody will ask when they come to you.

And they are basically saying, I want version control. Where's my version control? But they're saying what's changed about this, you know. And so, what I can do here is, next is modify data. Click this icon and in this case somebody has actually provided a good comment for the save.

I'm guilty as anybody at not providing a good save comment for that. And so what you can do is you can click on any of these versions, see what they look like at any given time. At any given point and time, and at this point I'm not sure what different so I can click compare and I can see exactly what's changed for this particular version.

( Applause )

Now not knowing of course why it was changed and anything like that, I will scroll down. Now of course we're looking at something that's already been changed so I can see a comment from myself which I guess, I'd forgotten about already. This says doctor, shouldn't we say health care provider? I'm just going to go ahead and add another comment to this. So you can see what this is like. Me too. Save it. So that comment's saved, pages reload anything. It's really cool. And so with that I'll go back to Michael.

Michael: Okay.

( Applause )

Alright, so that was a bit more of the advanced features of the WISYWYG features that we have as part of the wiki as well as some of the content management features we have in there. It's really important to remember it's a great way to organize other kinds of content besides HTML. PDFs, images, videos, whatever you have. You can organize it because we have this great tag metaphor that we wrap around all of our content.

So what are you going to do with this? I don't know. But there's more things that you can do with it. And to talk a little bit about how to customize, integrate and to extend, I'm going to bring Doug Whitmore up here. But first, I'm going to talk a little bit about standards.

There's a funny thing about standards. Is when you develop against standards, everybody comes to the wiki party. Its awesome. When you develop against HTML and CSS, standards compliant HTML, CSS you get all these browsers you can support. We support Safari on the Mac and on Windows, wow! Anyway also, Firefox 1.5, 2.0, any of the Gecko based browsers, including Camino, IE6, and IE7, which you don't really need because you got Safari now. Also we support the Atom publishing and Meta-Weblog APIs so if you have other tools that you actually want to get content in like MarsEdit or Acto, we support that as well. RSS again, we have RSS all over the place.

Version history. Search results. Every page has RSS on it. These are great ways to find out how content is changing inside of this great content repository of information that we call wiki. So, now we bring up Doug Whitmore and he's going to give us a little bit more detail about the technology and some of the ways that we bleed we can actually go and extend a wiki. Doug. There you are.

[Doug Whitmore]

Thank you Michael.

( Applause )

As Michael said, I'm going to talk to you about the extensibility about the wiki. The first thing I'm going to talk about are themes. Themes are the ways that we define the look and feel for the wiki. You saw the themes that Chris showed just a minute ago.

And we're going to talk about how you can make your own themes. One of the things that we wanted to do with HTML that we're generating is we wanted to make it as close to CSS Zen Garden as we possibly could. That means everything has a class, that means that its really made for styling. Anything that you want to do, we want you to be able to do using just CSS styling. We do ship a wire frame theme.

The idea behind that is that it's a good base for you to start with. It's a way for you to go in, look at the selectors that we've already got and figure out how can I tweak it to make it my own? One of our big goals is we want you to be able to do everything you want to do by just tweaking the CSS.

However that's not always possible so we'd also allow you to include custom JavaScript in your themes. Any JavaScript you put in the theme will be included in each page. We also give you the ability to add custom sidebar content as we on the various themes. They've all got the same sidebar. We have a way to change that.

Next thing I want to talk about, third party authentication and authorization. For our server, for wiki server we implement authentication and authorization as a plug-in. What does that mean? That means it's possible for you guys to go out and create your own authentication and authorization mechanism based on something like Shibboleth, OpenID, whatever it is that you happen to be working with.

I am going to take a quick aside and talk about authentication versus authorization. Authentication is you are who you say who you are. Authorization is you can do what it is that you're trying to do. I bring it up because for something like Shibboleth, it's pretty simple, it does authentication and authorization.

For something like OpenID it only does authentication. So you're gonna have to figure out a way to do your own authorization mapping underneath all of that. It's implemented as a twisted plug-in. To learn more about twisted, please visit the twisted matrix website. And that'll give you a good head start on how to do this.

Next thing I want to talk about is XML-RPC. It's what our web client uses to talk to the server. What is XML-RPC, basically the simplistic view is, it's a way to speak to the web service, make it even simpler, it's the "X" in AJAX. Basically it's very simple, it's client service, request, response.

And the request or response is XML which makes it very parsable. When you have something that this easy, everybody wants to create a library for it. Everyone wants to do the easy work, right? So we have lots of libraries for doing XML-RPC. In Cocoa, there's web sevices core. AppleWcript has lots of libraries for doing XML-RPC JavaScript. There's Dojo prototype. Lots of different ways of doing it. Python, Perl, .Net. You name it, it's probably got an XML-RPC library.

And again it is what our web client uses to talk to the wiki server. So all of the fancy... when Chris and John were changing meetings around, and when things were showing up in the list automatically, that's all done using XML-RPC calls in the back end. And now I'd like to show you a little bit of what it looks like.

We can go to the demo machine. Go and close that out. So last week our engineers worked on a demo theme. I'd like to show it to you. Oh, there it is. It's pretty simple. Basically it's a folder with wiki theme extension. The printout CSS is basically going to show you style of the page for printing. The screen.CSS has all the styling and layout. We've also added some JavaScript to show that every page that gets loaded using this theme will have the JavaScript included.

And last we have this themed up plist. This is all of the metadata that is on a theme. So it's things like the name of the theme that shows up on the list, also version and also extra content. In this case we have for this theme we have extra sidebars. Which I will show you in a moment.

Let me go ahead and load a page that hasn't had the theme placed on it yet. It's a very simple, simple page. We are using the default theme through the Actevex campaign. You can see we got some pictures, we have some comments. I want to go ahead and change that. So I'm going to go ahead and click edit. I'm going to log in as an admin.

I could log in as the owner of the group, but I'm going to log in as an admin on the machine and I get this group settings pane and I'm going to choose the theme, WWDC Demo. Click OK. I'm going to hit save which will refresh the page and boom, we have our new theme. You can see it looks very different. This is all done just last week by our engineers. I think it looks really good. Let's go ahead and go back to the page we're looking at. We can see, some of the differences that we've seen here.

So now we have the comments on the side, they look different. Tags are to the side. You can also style the edit bar. Basically we allow you to style just about everything. Next thing, last week we also created a widget. We were busy last week. Top of our XML-RPC APIs, and here it is.

Dashboard's loading. There we go. Okay. What this widget does is that it takes the username that I put in on the back. I'll show you in a moment. It takes the username, figures out what groups I am in that have wikis on this server. For each of those groups it grabs all of the entries that have the hot tag on them. Basically it's like the what's hot sidebar. Only it's a... I have all of my groups that I'm in.

If we look in the back, basically I'd say this is the server I want to go to. The username the password, I clicked on it to log in again. Refresh. Hopefully you'll see that things come in asynchronously. And, this is all done fairly quickly using dash code and all that.

Alright, let me go back to the slides really quickly here. So I can show you a little bit about what the code I had looks like. It's fairly simple. Basically I created a proxy to the server object which I cleverly named server. The first thing I want to do is do log in on the server object. And I want to take a quick moment to note that this is a clear text log in. We also have a digest login. I wanted to use this one for clarity. Because digest is you know, couple of extra steps and I wanted to keep it fairly simple.

To the login method we pass the username and password. If we get returned to dictionary, it that's a success, then we grab the session ID out of that. We're going to use that later on. First thing I... the next thing I do is called server.groupsForSession. That's going to grab all of the groups that I'm in. Now it knows my username because it's part of the session.

For each group in that list I'm going to do server.search.getEntries. Search is one of our XML-RPC services. We have a few other services that do some different things. In this case we're doing search. Pardon me. You pass at the session ID. Again that says I can do what it is that I'm trying to do. I pass at the group that I got from the group list and the last thing that I have is the search query. This is done as a dictionary.

Basically I'm passing it... I'm saying, I want everything that has the tag of Hot. And then for each entry that we get back we do whatever it is to the code. And that's all we had to do to make that widget. It was pretty simple. And that's my talk on extensibility in the wiki. Back to you Michael.

( Applause )

Michael: Okay, so are wikis for nerds? Well, Doug's demo with some code and some of the technology, but I think what you saw in the first two demos was that we're really developing wikis for everybody. We want wikis to be accessible to everyone because we know that every eyeball that looks at a piece of information makes it more valuable.

So, that's why we spend a lot of time on interaction design. ON the look and the feel of making it really just sweet. But what we want... you can go crazy with AJAX. There are a log of crazy AJAX sites out there. We've tried to be elegant about it. We've tried to be intelligent about how we've landed the interaction model and make it really work for you. Because they want wikis to be for everybody.

The other thing that I want to just leave you with, before we get to Q and A is that we want to get out of your way. The wiki server, all of these services, we want to get out of your way and we want to give you tools with potential.

We want to give you tools that you are actually going to build something with. We don't know what you're going to build. We're just going to give you tools to actually do it. So that's what I hope we've done and I hope we've shown you as part of this presentation.

So with that, what I'd like to do is talk a little bit about the labs that we have. If you're wondering how we did some of the cool WISYWYG stuff that we did, there's a great web kit, theAJAX application session, this Wednesday at 2. We're going to be all over the labs, all week. The team will be there.

You can chat with us about that. I think the first one is today at 2, is that right? Yes. There's one on Wednesday as well. Podcast Producer. We didn't go into this as part of our session. The Podcast Producer uses the wiki as a landing spot. So that's another great session this Wednesday to go to...