Information Technologies • 38:54
Leopard Server introduces productivity tools that help groups gather, track and coordinate resources, people and assets. With resources dynamically updated from a central repository groups and teams can seamlessly coordinate efforts and keep each other updated on their progress. We will explore these new productivity tools in-depth, and offer examples of how they can be used together.
Speakers: Mike Lopp, John Anderson
Unlisted on Apple Developer site
Transcript
This transcript was generated using Whisper, it has known transcription errors. We are working on an improved version.
Good morning. I cannot tell you how excited I am to be here, giving you guys some information and some demos about Teams. Teams is something brand new for Apple, and it's going to be an amazing presentation. For those of you who were at the server overview where we first introduced Teams, you're going to hear a little bit more of the information that I already gave you, but we're going to spend a lot of time on the demo, so you can really see all the functionality that we've built into this product.
Like I said, Teams is something new, so I want to give you a little bit of context about the problem that we're trying to solve with this product. The context comes from asking a question. The question is, how are you guys working? You get into work, it's Monday, you're having your coffee, you sit down at your computer, and you've got all these dizzying array of applications that are begging for your attention. You need these applications to get your job done, and you're creating information with all of these applications. You've got Spotlight, where you're finding stuff on your hard drive all the time, easily.
You've got iCal, which is suddenly much more interesting, now that we have iCal Server. iCal, obviously, is your meetings, your day, the people that you interact with. You've got Mail, which, like Steve said, is your day. Like Steve said in the keynote, he lives in it, and I live in Mail.
There's a huge amount of organizational information inside of Mail, and people use it in a lot of different ways. I was working with my kids' school on this huge network infrastructure to get homework from school to home and back. I'm like, "Why don't they just mail it to each other?" They're like, "Oh, yeah, I guess we don't need those servers and all those things." Anyway, the point is that Mail is being used for a lot of different things. There's a huge amount of information in there. You search Mail all the time. You're like, "Didn't I have a conversation with Bob about this and da-da-da?" You're using Mail a lot for that.
You've got Safari, which is your means of gathering information, surfing the web. Then you've got iChat, which is your means of talking with all these people that you work with, making decisions. My phone doesn't ring at Apple anymore because I have Mail and I have iChat, and that's really how we work, is a lot of those applications. Teams isn't replacing any of these.
The question is, well, the game is, at business at least, isn't actually how you work. It's how all of you work. It's great that you've got this great set of applications available to you that are easy to use and all this stuff, but the fact of the matter is somebody else in your group, in your work group, in your business has information, wants some information that's on your computer, and they can't get to it because it's your computer. So what Teams is, what we're trying to do here is create a space to share all the information that you want for the rest of the company. We want to make it really, really easy to use. So that's Teams.
So let's talk a little bit about the functionality and then let's just get to the demo because that's really what is compelling about this Teams. Teams is an application in a set of services. The application is a Cocoa application called Teams Directory. It has two roles and it serves two people. The first role is a directory viewer.
You've got information sitting inside your directory. You want to go find that person, that group, that map, whatever. And then it's also a means of generating teams, groups of people, as well as the services behind it. Again, I said there was two different people that Teams Directory is serving. There's a person who just wants to get in, get out, find a piece of information.
And then there's a person who's actually managing organizational infrastructure. And this came out of our design around iCal Server. This is the person who needs to create maps. This is the person who needs to create a projector. And we're not going to inflict Workgroup Manager on them, right? They need something a little bit easier to use. It's a great tool, Workgroup Manager, but it's obviously a power user tool, right? So like I said, it also allows you to create these groups and services. The services are all web-based.
It's going to be the best Wiki that you've ever seen. It's Weblog, which is very similar to a Wiki, and we'll talk about that in a little bit more. It's web-based calendaring, which you're asking about in the feedback session, and shared contacts. So like I said, it's much more interesting to see a demo, so I'd like to bring John Anderson up. works at a company called Bazookle
[Transcript missing]
Okay, so John, can you tell us a little bit about what Bazooka does? Yeah, actually. So at Bazooka we facilitate collaboration through peer-to-peer AJAX social networks.
[Transcript missing]
So, can you maybe tell us a little bit about how Bazooka was working before you started using Teams? Sure. So, I mean, as you know, as a dot-com, we're going through employees quite a bit, a lot of turnaround. And what we were doing before was we were making Word docs and we were passing them around via email, renaming them to try and get some semblance of versioning.
So every time somebody made a spelling change, they were emailing out a new version of the document to everybody in the company. And so, as you can imagine, we had this proliferation of all these different Word files and Excel files and stuff like that that are all over the place. No organization whatsoever. Right.
So, maybe we can go ahead and bring up the homepage and you give us, this is the Teams homepage, give us a little bit of, you know, It's very white. Okay. So you can see our Teams. Go ahead. You can see our Teams home page here. And you can see actually some of the ways in which we've organized things now that we have Teams. And basically what's happening here is instead of having these Word files being distributed around the company, everything's coming in via Wiki and everything's in one place and you have versioning for everything.
So wait a minute. I guess you are doing a lot of hiring because I just saw that the live -- the About Us page just updated there. So maybe we can go look at that and actually see what happened there. All right. So I'm going to click on About Us over here.
And you can see some of the people that are founders in this company. And I'm kind of curious, somebody marked it as hot, and I'm curious what other kind of changes they've made. And so what I'm going to do over here is look at the page history. So if I click on history, then I can see basically all the comments, all of the essence of what's been changed in all these different versions. But I can also click on any of these and see the old version as it existed before.
I'm going to go back out of history. And now what I'm going to do is I'm actually going to edit the page. It turns out we actually recently discovered that Bob Stevenson is actually Nathan Hanner's evil twin. So we've eliminated him. And so I'm going to edit this page. And this is really cool. So I'm looking at the page now. If I want to edit it, all I have to do is click on this pencil icon.
And you can see the page is now in edit mode. Wait, wait, wait, wait, wait. Do that again. I want to see that again. That's totally cool. All right. I'll click Done. I'm out of edit mode. And now I'm in edit mode. So all I have to do here is just get rid of Bob Stevenson. And get rid of his picture as well.
So at this point he's gone. Now of course, since we're missing a founder now, I've been retroactively promoted to become a founder. So what I'm going to do is I'm going to insert my picture and I'm going to insert my name in the list here. And you can see how easy it is.
Now if anybody's used Wikipedia or MediaWiki, UseMod, anything like that, you know that inserting an image or attaching something to a page is a pain. I mean, it's something where you have to upload something to an FTP server, perhaps, or an AFP server, and know somehow what the URL of it is, and then use some sort of a weird UseMod mockup to put that URL in the page. And in this case, it's a lot simpler.
So all I have to do is click on the Image button, and then I pick a file on my local machine. So in this case, I'll pick the picture of me. I hit Insert. And the picture is right there on the page. So piece of cake. The other thing I'm going to do here is add my name.
I'll make that bold, do some formatting here. Okay, so that's actually going and existing and editing an existing page, but let's obviously want to create content as well. So let's go in and maybe explore some of the content creation tools, additional ones. Okay, so the thing I actually want to do here is create some new content with a bio from myself in here, which surprisingly enough I don't have in the system yet. So all I have to do is click on the link button.
And you notice my name's already highlighted, so I'll just hit link. Now it's going to do a search to see if there's any pages that match that string. It's also looking to see if there's any pages that are related to this one, ones with the same tags. And it gives me a list of all the pages I've looked at recently.
The idea being that if I'm going to link to something, I've probably seen it in the last, say, 10 or 20 pages. In this case, we're actually linking to a new page, so I'm just going to click on New Page. And my highlighted text shows up automatically, so I just hit Create.
And you'll notice up here it says Page Created, so it's made a page for me in the system. And I'm still in edit mode, so I can keep adding more links, adding more text, whatever I want to do. In this case, I'm done. So I'll just say, comment here, promoting myself. Removing evil twin.
So I'm done with this page. And one thing I'll get into as an aside is I've never left this page. So as you're going through a wiki page or editing things, you're usually doing previews, and all of a sudden your browser history is meaningless. And in this case, I've stayed on this page the whole time, which is really nice.
So I'll just click on my name here. And you can see that there's a new page created with my name on it. So I'm just going to edit this. I have some text already in here, I think. I can highlight this text and copy it and paste it into the WYSIWYG field here.
[Transcript missing]
So, I'm going to go to my file and hit attach. And there's my attachment. When we save, that turns into a link to my vCard file. So it's right in line with the rest of the text. So let's show them a little bit more of the cutting and pasting, because I think it's really one of the powerful features of Teams. So you can cut and paste from any web page, right? Yes. Yeah. So let's go ahead and try another page with maybe some richer content on there. OK.
So I have here a Wikipedia page. About sheep. Bob Zuggal. Got it. And it's important here because our company motto is, you know, some people are sharks, some people are sheep. We want to be sheep. What I'm going to do here is create a new entry called Sheep, a new page called Sheep.
And so I can just take a bunch of text out of this page. And I'll just copy that. And then select all this text and just paste in The Wikipedia entry. And it's possible Safari just froze. Uh-oh.
[Transcript missing]
The idea is that all of the information that you posted in from Wikipedia would actually be showing in there as well and look, really have all, retain a lot of the rich text, as well as the image as well. So let's move on from that snafu and go talk a little bit about tags.
I see you guys are using tags in there. Can you maybe give us a little ideas about how you're using tags with the content inside of Bazooka? Sure. Now the great thing about tags is that in a lot of CMS systems or a lot of other systems, you're dealing with a folder structure. And that's a hierarchy that's defined by some surly IT person somewhere or maybe one of the founders. And so, you know, they decide what the structure of your content is. And the kind of sucky thing about folders is that you can only put something in one folder.
Whereas, you know, when you're dealing with tags, you can put things in as many buckets as you want and anybody can tag stuff and rearrange it and put in different things. And so what I'm going to do here is I'm going to go ahead and click on my new bio entry. bio entry. And since this is a bio, I know that there's already a bios tag. You probably want to log in. There you go.
And since this is a bio, I know that there's already a bios tag. You probably want to log in. There you go. So that will add me to the hot list on the group home page. And so to get into a little bit about how this works then, if I actually click on this BIOS tag here, this will do a search and show me everything that's in the system that has that BIOS tag on it. And you can see all the tags appear here on the right hand side. And I can actually click more tags to narrow down my search.
So I can look for just hot BIOS, which is basically just me and about us. And for example, I could look for spicy BIOS. Apparently Amanda's kind of spicy. Maybe a little curious as to what else is spicy. Apparently there's a food and spicy combination here. And so I want to check this out, review of Casa Sanchez.
That's a big burger. So this is actually a blog entry. And the question that sometimes gets asked is why do we have a blog and a Wiki? Because they operate in a pretty specific way. They're both WYSIWYG. They both have these sort of entities that you can edit in real time and stuff like that.
So what's the difference? Well, the difference is that a blog is better suited to content that grows stale over time. So when you're talking about settings or when you're talking about status or meeting notes, news items, things like that that matter less after a week or two has gone by. And so that's kind of the purpose and that's what we use blog for is food reviews, news items, stuff like that. And what I'm going to do here, just because it looks cool and it's really WYSI is I'm going to remove the spicy tag from this.
From this page, so all I have to do is take this and just drag it off the tag bar. It's gone. Tagging and untagging stuff is incredibly easy. That encourages people to tag more content. When they do that, it's easier to find stuff. Let's go back to search and show them how we're integrating our tagging and text searching with RSS. It's a great way to get to the information from outside of teams.
As you know, there's RSS support now in Leopard. There's more RSS support. There's support in Safari, but there's also support in Mail. It allows you to have a way to get notified when something gets tagged or anything like that. Basically, the way that this works is that anything that is -- I don't know what's going on here. Anything that's taggable is an RSS feed.
This isn't good. So I'll go ahead and just keep talking to this and hopefully it'll show up at some point. Anything that you can tag, anything that you can bring up in the search results, any combination of tags you can bring up is an RSS feed. And that's actually available in apps like Safari and mail and stuff like that. So I can see if anything gets tagged as a bio, if anything gets tagged in that manner. So, one thing is, you know, I already have this subscribed in mail. Now, of course, the downside to this is that the server doesn't seem running.
It went to sleep. That's what you get for putting a server on a PowerBook or a MacBook. At least it's not my problem. Oh, there we go. Excellent. So we can see here, if I update this, Hmm, okay, that's not really working. Blame the Mail App team. The theory being that if you add the bio tag to something new or you create something new, you can actually see it in Mail.App or in any other RSS client.
Hmm, okay, that's not really working. Blame the Mail App team. The theory being that if you add the bio tag to something new or you create something new, you can actually see it in Mail.App or in any other RSS client. So we'll go ahead and click on calendar. Of course I have to-- that's not good. You try and do something that makes me log in here. I think you need to log in again. I think I'll restart Safari. Good idea. This is why we aren't shipping yet. OK. And a login. There we go.
Okay, one second. Michael, can you talk about Calendar a little bit? Michael Hanna: Yeah, so the difference here is, remember, this is a group calendar, right? When it's working. This isn't the individual calendar, this is the calendar that you're actually sharing with the entire team. So you'll see the events when they hopefully show up here in a second.
You'll see that it has a lot of the same functionality that you expect out of iCal. The ability to create events, the ability to invite folks, and the ability to also just see things as they're happening in real time, if we can actually get it going there. Which we're going to try right now.
And we're not going to, maybe we'll skip the calendar piece. Is the server still asleep over there? Did you restart the calendar server? So while we're getting the calendar together, why don't we, so we talked a little bit about Teams Directory as well. So one of the other things, the applications that we're shipping along with this, which I was hoping will be working better, is Teams Directory. This is a Cocoa application. And John, if you could actually go ahead and fire up Teams Directory and show how we actually start creating new groups inside of a Zoogle.
[John Anderson]
Okay. So I actually want to create a new group. As the new founder, I feel like we need a viral marketing group. And so I'm going to go ahead and set one of those up. And so you'd think it would be fairly difficult, even through work with group manager, as great of an app as it is, this is something that we can hand off to anybody. And oh, we've already got one. So I'll just create a new bazoogle viral marketing.
So I can just search for some people and drag them in. I'll add myself, of course. And Michael, a few other people. Bertrand. And if I go into settings here, there's this simple checkbox, enable teams for this group. So I can turn that on, hit save. I'll try that again here.
So I'll turn on Teams for this group. So now I can see the home page just by clicking on the link here. So there's our new home page. Excellent. Very simple. So do we want to try calendaring one more time or are we done? Let's try it again. Let's try it one more time. OK, so back into calendaring. It's really important to show this because obviously we've built it on top of iCal Server and we want it to have a web-based front end. So we'll go ahead and log in here.
[Transcript missing]
So you can see here, this is our calendar for the week. And I'm going to talk a little bit into what constitutes a Teams calendar versus, say, a personal calendar. And this is stuff that pertains to the team as a whole. You can think of this as something that anybody in the team can edit it, and anybody in the team can look at it. And you'll see here it updates in real time. So you see some meetings move as other people on the team are actually moving the event around. And so that's all Ajax enabled. And there you can see the GM move back a day. of course.
And so this is kind of like a combination almost of a calendar and a wiki. It's something that anybody can go in and edit, and they can add these events, and anybody can take them out. And as long as you have access to the group, you can do that sort of thing. You're a GM party. The GM is moving back day for day here.
So as long as we're slipping, as long as our schedule is slipping, I'm actually going to make a longer World of Warcraft tournament. I think an hour is a little bit short. And so I'm going to make it cut into my work day of another hour or so here. And lengthen it by an hour.
So I've just changed that on the server. Very, very simple. No page refreshes, no settings, anything like that. I can just take those items and move them around. And for example, if I mouse over any of these things, I can see these tool tips with information on the event, where it is. In this case, the GM party, it doesn't have a location.
So you can see some of those things going on. And so the one thing I'm going to do here is I'm actually going to-- I guess I'll move that another day. So I guess, fine, as long as the GM is slipping, I probably should just get rid of this tournament. And so I showed-- just because this is very demo-y and showy, I'll go ahead and delete an event.
[Transcript missing]
You pushed it too far. That would be why. Okay. Well, we'll skip that part. You will be able to delete events in the final product, though. Excellent. So if we can go back to slides, thank you very much, John, for the demo.
So John actually doesn't work for Bazookal, he works for me. And he's one of our chief engineers on the team site. We kind of want to make a little fun of Web 2.0. But really the interesting thing about this is we're actually borrowing what I consider to be one of the biggest memes out of Web 2.0, which is that dynamic interaction inside of web pages. People are starting to expect a little bit more of elegant interaction in web pages, and that's what we're building into Teams.
So a little bit of the ideas behind the product, a little bit more of what we're doing here. Obviously it's the Wiki. The first class citizen is the Wiki that organizes everything. Next to that is the web blog. And then we've got the calendar. And underneath it is a whole set of services that work with everything. So you've got tags, you've got RSS, you've got search, and then you've got the directory, which is obviously open directory to give you secure access to users and groups.
As I go and talk a little bit more about these features, as opposed to how I pitched this earlier this week, I want to talk a little bit about why we built these features. Because the reason we built these is we see, the reason we built Teams is we saw a lot of how Apple was developing software and how we were communicating. We saw problems there and Teams really came as a direct response to that.
Opportunities, not problems. So, let's talk about a couple of the key features. Directory. You saw Teams directory, it's a Cocoa application. What I've found in the server land, when people have directories, is they usually have homegrown their own version of it. They usually have a web-based version or they've done their own.
And as we started to develop iCal Server and Teams, we realized we needed to have an application which served a purpose of serving that user I was talking about, that admin user who was sitting there and managing the infrastructure. And also we wanted it to be just an elegant application because you're going to be in here and you use this application a lot because you're dealing with people. So, that's what we did with, that's what we did with Teams directory.
Just some screenshots here. Obviously, it gives you access to the people in your organization. And I think this is the primary use case for Teams Directory, is going in and finding someone. But it's not just the information, it's also where they are. We made it really easy to attach maps to this app inside of here, so you can go and find that person as well as where they sit.
In addition to people, we also are searching groups, teams. We're also searching locations, we're also searching resources as well. And it's spunky, it's really fast. You go in there, you're in, you're out, because we know that's the primary use case. As you saw, also, it's a means for creating different teams, team sites. It's group management.
The nice thing about this, the thing I think is really important, is that you don't need an admin to create all this stuff. This is the -- we're empowering the individual user to actually go and create these groups. And the website, the team site, is actually provisioned on the fly. There's no one changing permissions anywhere.
It's all done behind the scenes. And obviously, you can also add other people into it, as John was demonstrating. And again, and this is kind of funny, this is where we actually started with Teams Directory, is we have these other resources that we need to deal with, projectors.
You want to invite a projector to a meeting. You need that for a calendar server. So this is actually where we started with it. So other resources are in here, whether it's a projector or a room. And like I said, you can also easily add a easily add maps to it as well.
So that was Teams directory. Here's the big one, Wiki. So why did we decide to build this Wiki? And the thing was, was at Apple, Wikis were just appearing everywhere. There was no corporate mandate to actually start using Wikis. They were just kept on showing up. So why is that? You can say maybe it's engineers wanting to be efficient, but I would argue that it's people just wanting to be able to collaborate. They want to be able to share their information. So we saw that as, we saw Wiki as sort of the organizing principle around a lot of Teams, the technology there.
Wikis are accessible. They are via the browser, and everyone's got a browser. Maybe you're looking at one right now. We want to encourage people to collaborate. And the reason we made it WYSIWYG is we want to make the bar extremely low for actually adding new content. We want everybody to contribute, because we know that the more people that contribute to content, the more valuable it becomes. So we want everyone in there adding their own opinion and editing stuff.
Really the goal is to create a whole which is greater than the sum of the parts. And again, WYSIWYG really gets us that. We love Wikipedia. Wikipedia is great. I use it 10 times a day and I'm always finding out information. I'm shocked how much time people are spending of their own time to maintain this and make it look great. There's a problem with Wikipedia though.
[Transcript missing]
This is my favorite feature about wikis. And I'm an engineer, so I'm a nerd. So it's really that wikis are under version control. Standard feature in all wikis, they never forget anything that you actually submit. Every single change is there. Who did it because they logged in, what they did, when they did it, and really the most important thing in my mind, and this is sort of a change for a lot of people, is why they did it. You saw as John was adding content, he was dutifully putting in comments.
Those comments are kind of an afterthought, but when you're in an organization with a lot of people, those comments are the context for the change. In Wikipedia, I always go and read when there's news pages that are updating with a hot story, I go look at the changes because that's really interesting too.
So that's why we like the context, and that's why we really feature that comment. Right up there when you click on the done button, we want you to put a comment in there so you can share what you changed with the people that you're sharing your information with.
So weblog, weblog's technically not that different under the hood to us. When you think about the difference between a weblog page and a wiki page really isn't that interesting. What's different is the social conventions around weblogs. Weblogs are obviously organized by time with the most recent post on top. They tend to be shorter entries or sometimes not. They tend to be information that you push and forget and it gets stale.
That's okay. And there's a lot of, at Apple there's a lot of people who use it for status reports. I want to go there, I want to look at what's going on most recently, right? So that's why we have weblog as a first class citizen inside of Teams is we think people are going to use it in different ways than they're going to use the wiki pages.
My other favorite feature. Tags. There's not really a good-- really this came out of looking at a lot of the web applications out there that a lot of engineers and everybody are using, like Delicious, like Flickr, and realizing that it's a great way for people to organize information. We made tags, as you saw in the demo, a first class citizen.
It's one of these things again about pushing the responsibility for the content back to the people that are putting it in there. We want the people who own the content to be tagging their information, to be figuring out different ways to slice and dice it, and we don't know what you're going to do with this, but we're dying to see what happens. For us, some of the ideas we think about are like Primal Workflow.
You see the to review tag up there? That's my tag that I use on content that I want to look at later, right? So you can start to see that you start to put interactions associated with tags. Remember also that wikis are flat. There's no file hierarchy in wikis. It's a completely flat name space. The other thing that wikis do, I mean tags do, is allow you to kind of give a hierarchy to it and also organize organically the structure of your content.
And then, as you saw, we also have the hot tag. The hot tag, which was inside, I think we did in the demo, it actually, what it does is it actually pushes the information up to the front page. So that's kind of a magic tag. And my guess is, as we go out, as you guys start to use it, as we continue to develop it, there's going to be other magic tags that we're going to do to give you more flexibility within Teams.
Calendar, again as I mentioned, it's a group calendar, right? This is where you put the milestones. This is where you put all the other information about, you want to share with the group. Obviously, we're just getting started with this, but we really want this to be a world-class web-based calendaring client.
And then we have RSS. You can't have a Web 2.0 application without RSS, obviously. What it allows us to do, as you saw in the demo, was allow you to share this information that you have in Teams that's constantly building up, and you've got all this different stuff in there, and share it with other applications, whether it's Mail, whether it's Safari, Newswire, whatever. But what it allows you to do is make your RSS reader. Because you're not sitting in Teams all the time, surfing it and seeing what's changed.
What you're doing is you're going and you're defining a search, or any type of search, to kind of map the stuff out that you really, really care about. So we think that any sort of news reader, but also Mail RSS is a great place to actually go and do that. Any search that you can build inside of Teams, you can export as RSS. Also, obviously, with web logs, you can do RSS RSS as well.
Search, I really hope you got tons of information eventually. There's a huge amount of content inside of Teams. Like I said, we want everyone to be able to contribute. So search is really designed to be simple, so that people can go and slice and dice it in different ways.
Obviously with tags, you can mix and match tags to get an information. You can filter. You can sort and do everything that you need to do there. And text-based searching is exactly what you expect. It searches all the text in Teams and gives you the results that you saw a demo.