Video hosted by Apple at devstreaming-cdn.apple.com

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: wwdc2011-133
$eventId
ID of event: wwdc2011
$eventContentId
ID of session without event part: 133
$eventShortId
Shortened ID of event: wwdc11
$year
Year of session: 2011
$extension
Extension of original filename: mp4
$filenameAlmostEvery
Filename from "(Almost) Every..." gist: [2011] [Session 133] Lion-Sized ...

WWDC11 • Session 133

Lion-Sized Automation

App Frameworks • OS X • 48:22

Every one of Mac OS X's automation technologies has been super-charged for Lion, resulting in significant improvements in their design and integration with Mac OS X. Automator sports new controls for creating and installing workflows, along with a powerful set of "content-focused" actions for encoding media, viewing and processing web content, and for creating digital publications. AppleScript in Lion brings the power of AppleScript/Objective-C to the desktop with new Cocoa-AppleScript applets that access the Cocoa frameworks directly within scripts. And even the Terminal gets rejuvenated, sporting numerous new features and UI enhancements, including the new "geek-mode" full-screen display option. This session is for all attendees looking for a quick but thorough indoctrination in the automation prowess of Lion.

Speakers: Chris Page, Sal Soghoian

Unlisted on Apple Developer site

Downloads from Apple

SD Video (261.4 MB)

Transcript

This transcript was generated using Whisper, it has known transcription errors. We are working on an improved version.

I better watch what I say because this is going to be caught on video, so none of my normal acerbic wit will be used today. “Alright, don't get me upset. You know what happens. If you can make me stop this car now” Welcome, welcome to the one of the last sessions today.

“It’s about a continuing story and a saga of one of Apple’s best and longest-living technologies, the world of automation. And so today, we're going to get an overview of what's new and improved in Lion.\ \ begin here, and we're going to talk about what's new and improved because we only have a short period of time so I can't get in depth on all three of the different automation technologies that we're going to be talking about. So this is pretty much an overview, but I'm going to give you plenty of resources that you can go to to find out more in-depth stuff if there's something in particular you want to know.

So the technologies we're going to talk about today are AppleScript, of course, the English-like language that people love to use to automate processes at companies and at individuals and even in finance departments. And we're going to be looking at automator and services architecture and what's new and improved in Lion for that as well. And for the first time ever, we're going to include something new to our team in the world of automation. We're going to actually look at the terminal. all.

Applause for the new guy. Yeah, yeah. Make him feel the love. Make him feel the love. So normally, we don't include Terminal in the Unix command line in the world of automation, but you know, it's become part of our team, and we welcome it, and we've done a lot of work on it over this last cycle.

And Chris Page, the engineer that's done most of that work, is going to be demoing some of the new really cool things about it. So now, the Terminal is really an exciting thing. There's about 35 changes. You're going to love all of them, including some really wacky stuff that we put in just for you.

But for those that are new to automation and need some information and background about any of these technologies, I want you to go to macos10automation.com. That's macosxautomation.com. It's a great source for information. It contains three sub-sites, one on AppleScript, one on service services, and one on Automator as well. There's lots of tutorials, videos, and information and downloads that you can use. So if you need to catch up on the world of automation, this is a great website to go to.

And if you click the little orange button on the main page, it will take you to the training site. There's a special site dedicated to each one of the technologies, and there's about hundreds of videos on there. So if you want to get up to speed on automation, start there. Subtitles by the Amara.org community For this material that you're seeing today, you can go to macos10automation.com/lion.

And all the stuff I'm talking about today is up there, and all the examples I'm going to be showing you are downloadable. You can use them and try them out today. Yay! You know me, and there's three sites up there. There's one on AppleScript and Lion, one on Automator and Services, and one on some of the new features in the terminal as well.

So that's our reference material. I wanted to get it out up front, and now let's begin. Let's take a look at what's been happening in the world of automation. We'll start with Automator and Services, and we'll take a look at some of the amazing things that we shoved into the OS. Did I say shoved? Okay. We, you know, thought about it very clearly, made decisions and followed procedures and processes always.

Always got management approval. So let's begin. We're going to take a look at some of the new features. First of all, we made sure that you had the ability to convert from one type of workflow into another. For example, say you had made yourself a little automator applet that responded to having things dragged on top of and it would change an image or do something like that.

But you wanted to change that to a service that was triggered contextually by right clicking on an image. Prior to Lion, you had to actually open up a new workflow file as a service and then drag the actions one by one over to the new workflow and hope that everything went across and then re-save.

Now, we have a new menu under the file menu called duplicate to. When you select that menu, it will make a duplicate of your current workflow and bring down the template sheet. So you can then choose what kind of workflow you want to use. In this case, I'd like to convert it to a service. So I would select service, click okay and then the existing workflow is now converted and duplicated to a same workflow but as a service, now taking its input from files in the finder. So easy to convert between one type of automator workflow into another.

Next, a lot of people were having problems dealing with installing actions. You had to write an installer. You had to know where to put the action file in the core library, system library, user library/automator. We made it really easy experience. Just like a dashboard widget or a Safari extension, if you double-click it in the finder, you'll get this dialogue asking if you want to install. Once you choose that, it moves the action into where it's supposed to go for you automatically. You don't have to deal with it.

The same is true for services. If you double-click a service file on the desktop, it too will present a permissions dialogue for you to choose to install or open up the service in Automator so you could review it before you choose to install it as well. Click install. The service file is automatically placed in your user library/services folder.

Next, we added, along with a lot of people in the OS, version support. If you've been working on a particular workflow idea and you've tried different techniques with it and you wanted to go back and see an earlier technique or take something out of it, then you can just go to the application menu that's now triggered from the title and choose explore versions and you get the famous time machine go back in time window. And you can open up existing versions, previous versions, or drag things between them as well.

Next. So that was some pretty much housekeeping kind of things. Useful, but housekeeping. This is exciting. So, A lot of people, a lot of our customers have been requesting, "We got it? It's working? Okay." Those guys were trying to fix my car. “This crowd, there's some crazy kids over here.

So this is something that has been around, it's been a problem for years. How do you encode audio files on Mac OS X? Well, everybody's got their own little set of tricks. Well, you open up the QuickTime player. No, you take it to iTunes, then you change the compressors. No, you take it over to iMovie, then you do this. You stand on one leg and hop like a chicken.

“It’s a nightmare. So now that’s all gone. In Lion, you simply select the audio file you want, you bring up the finder contextual menu, you choose encode selected audio files, and a dialog from an Automator action comes up. You can pick which type of audio setting you want, and it will automatically create a compressed MPEG version for you right on the desktop.\ \ “You like the glamour stuff. Oh, I got it.” And this also applies for video.

So, You're tired of trying to figure out how to compress video files. Are these the right settings? Are they not the right settings? Forget it. Select the video file in the desktop. Choose encode selected video files from the contextual menu. You'll get this new window coming up. You can pick the type of setting that you want, like 487, 20, 1080 audio only, Apple ProRes.

And then once you make a decision, you'll notice that the information about that particular setting, its compatibility with Apple devices, its frame rate, its size, all of that information is presented in that window for you, and we've made it easy to choose which range of things you want to be applicable with. Once you've done that, you click the continue button, and it will encode your video and make a nice MPEG copy for you right on the desktop. Yay! “The settings that are used are really good.

These are very, very good settings. If you've had some problems encoding out of Keynote or one of the other apps that uses kind of a different set of settings, these are really good because we lock the QuickTime engineers in a room for 10 hours. We would not feed them, let them out, until they gave us the appropriate settings. It took a lot of shock therapy, but those are the right settings.\ \ Next, this is an interesting one. So a lot of the focus of Automator actions for Lion were about assisting you to develop content for mobile devices.

Specifically the last two actions I just showed you, the encoding actions, were really designed to make it easy for you to prepare your content, to move it to an iPad or an iPhone or anything else that you want to. This one is a variation on that and it's quite interesting.

It's called a website pop-up action. As input it takes a URL. Whether you generate the URL on the fly or you get the URL from an existing view. In this particular case, I have the word flounder selected in an email reply. I want to look up in Wikipedia the word flounder and I want to present the content without having to use a browser. When I do this, I get a contextual lookup because I've created a service called lookup in Wikipedia that generates the Wikipedia URL lookup with the word flounder and instantly a floating HUD will appear displaying the contents of that web page. Thank you.

Ooh, I love that. Now, you'll notice this little floating HUD is interesting, isn't it? Well, it can have a different user agent. It can be an iPhone user agent, you can choose to be an iPad user agent, or you can choose to use Safari as the user agent. So if you want to trigger the viewing of a mobile website like this one is, you just choose the user agent of an iPhone, send it to the website, the website sees an iPhone talking to it, and will supply the appropriate data.

In addition, you can also change the display so that it will automatically display as an iPhone, like it is here, or as an iPad, or as a custom size that you indicate yourself. And you can also have the palette appear center screen or at the cursor. So literally right next to where the user clicks, the pad can appear with just the information that they need.

The result, okay. The result of this action is either the input URL that you originally passed to it, or the current URL that the user has clicked through, or the content that they have selected on the screen. So in this particular case, I have it set for give me the content, the text selection that they have.

So in this case, the user would scan this, find the bit of information that they want to know about the flounder, and then just click the OK button, and instantly that data is replaced into this, and the palette fades away. So we're really interested in how our customers are going to use this website pop-up as a way to deliver the content of the internet right where they need it at the point of need. Next, this is a big one.

The world's turning to digital books. Everything is about digital books. Classrooms are digital books. Well, how you generate the content for a digital book. Are there times when you're not interested in creating a work of art, you just merely want to take some technical documents and make them viewable on an iPad? Or perhaps you want something that's a step up from that with media like a movie or audio or images and you want that to appear nicely and formatted on your iPad. How do you create a digital book? Well, now with the new digital book builder, EPUB Action, you can create a digital book from text selected in a document or from files on the desktop.

And in addition, it will support the inclusion of audio, video, and images. And one more thing, if you pass this action in an RTF file, it will honor the formatting of that for your book. So if you have a nicely formatted RTF file and you pass it to this action, your book will look like that.

Here's how it works. In this case, I'm selecting four chapters for a book and then I run the action and it brings up this window. On the left-hand side is the information about the file, its name, the author. On the right-hand side is the media that I'm adding to the publication, cover image, where do I want the data placed in the chapters and do I want it to automatically scale images for me.

I'll fill in the information and then I'll click add, select the media that I want to add to my publication. Click continue. And then an ePub file is generated for me automatically where I want to. You take that ePub file, transfer it by email or any way that you want over to your iPad and you have a gorgeous digital book with no fuss, no muss.

“I have a very powerful, instant digital book anywhere in the OS. Let's take a look at how that's done.” “Ha! Here we go.” “So, I have my text files for Alice in Wonderland here. I have some nice images that I want to include. I have some audio files that are from Lubervox.

So these are narrations, open domain, public use narrations of Alice in Wonderland, and I even have a movie that I want to include as well. All this is going to go into my EPUB document. I select my documents here. I choose Create EPUB Book with Selected Files. Over here, I give it a title, Alice in Wonderland.

And “The author is not Apple”, Lewis Carroll “and I'll save it as desktop, I'm going to have a cover image. Here I want to use Alice and the Queen of Hearts. It's my cover image. I want to place, by default, one piece of media at the beginning of each chapter.

So the first thing I'm going to add is the first chapter's media, which is going to be the movie. Then I'm going to add the three audio files next. I want those at the beginning of each one of those chapters. And then finally, I'm going to add all of the other images to use as illustrations that will be automatically placed at the end of the book for me. Click continue.

[Transcript missing]

So, for some reason the cover image didn't come over on this particular one, but I'll

[Transcript missing]

“I am going to go to Chapter 1 of Alice's Adventures in Wonderland. This is a LibriVox recording. All LibriVox recordings are in the public domain”. So this book was generated on the desktop using the EPUB Automator action.

So that's a quick overview of some of the things in Automator. I'm going pretty fast on this because I want you to have plenty of time with Chris Page at the end. to be wowed with terminal. Let's go to the next step. So that's automating services. Focus on delivering and making content for mobile devices, innovative website pop-up, encoding actions, and as well digital book creation tools.

Next we're going to look at AppleScript, one of the oldest technologies in the OS, but one of the most friendly and one of the most widely used and popular. And what could we possibly do to AppleScript to make it interesting for Lion? Well, the first thing we did is we took something that is becoming more popular. We updated the voice technology support.

So now you not only have commands for having the computer say something, but you can also use any of the new 35 international voices, high quality, and we added commands for being able to control the speaking rate, the modulation, that kind of thing, to be able to control the voice.

So that's the first step. The second step is to make sure that you're able to use the voice technology to make your content more interesting for Lion. And the next step is to make sure that you're able to use the voice technology to make your content more interesting for Lion. And the next step is to make sure that you're able to use the voice be able to control inflection in sound. We also enhanced the ability to have that audio transferred to a file.

And we included in the OS by default an action called add to iTunes' spoken track. Whether you are in mail, whether you are on Safari, whatever application you are in, select the text, run the service and it will automatically convert that text to spoken audio and place it in your iTunes ready to be updated to your portable device.

And finally, this one is good. We added support for the ability to do phrase matching. So your script can now ask you a question and based upon your response act accordingly using a listen for command. In this particular case, the listen for command is passed a string of words. So, you can see that the script is now matching the words that you want to use. So, you can “I have a question for you.

You have a script that carries on pretty detailed conversations. So I have one that goes, “Play some music.” Which artist? Frank Sinatra. His early years or later years? I kind of like the Capitol recordings, you know? “Birth of the Blues.” Let's do that one. All right, sure Sal, but you've already heard that one 4,000 times.

“I

[Transcript missing]

But there are two that we provide. One is if you get a request for a conversation, what to do. And the other is how to keep that conversation going. So you can imagine it gets quite interesting. And the last one is a mail rule. How do you write a mail rule script that responds when a certain conditions are met in the incoming message? This shows you how that's done. And this is quite useful. Nice new series of templates ready to go. But there's one more.

And it is the one that is the hottest thing going. It is new AppleScript Objective-C Cocoa AppleScript applets. Woo. These -- thank you. We have brought the power of AppleScript Objective-C to the desktop. In Snow Leopard, we introduced ASOC, AppleScript Objective-C, which allows -- It allows AppleScripts to call directly to class and instance methods in the OS. And so you could build your AppleScript applications using ASOC and have access to the entire library of Cocoa calls that you needed to make.

But it was only in Xcode and only for apps -- AppleScript apps that you created in Xcode. Now it's moved to the desktop. AppleScript applets in the AppleScript editor can now call Cocoa directly in their script and here's an example. You can call the Cocoa class methods and the Cocoa class instance methods. So in the first one here, I have taken a new property called NSString. I've made a variable and I'm assigning it to the Cocoa class NSString. Then I have a standard AppleScript string that I'm placing in a variable called source text.

And then I'm applying a class method, NSString's string. And then I'm applying a class method, NSString's string. And then I'm passing that AppleScript string to the method and that converts it into a Cocoa string that I can then apply an instance method to called uppercase. Those of you that have written AppleScript know there is no built-in way to change the case of text in AppleScript. But now using these couple lines of AppleScript Objective-C, I can convert from lowercase to uppercase automatically. Amen.

“Oh, lots of possibilities” So this means that AppleScript applets now not only support Apple events, but they also support the Unix command line through the do-shell script. And now you can call into the Cocoa frameworks, the AppKit and Foundation frameworks and all of the classes that they contain, using this AppleScript\Objective-C, which allows custom user interfaces. So your scripts  “\ “Your scripts can now have, like, progress bars. Whoa! Only took me 14 years.

Your tax dollars at work.” \ So let's take a look at that.\ “Isn't that EPUB thing interesting? I just really dig that. Here's my new launcher. You like that?” \ “I’m going to open up one of these. I’m going to take a look at the menu here. “So if you want to create an AppleScript Cocoa applet, you just go to the template and it creates a new one for you. This one that we're looking at here is one of those.

I have it pre-done with a short little script that basically goes to the address book app and says, give me the name of every person that's in your address book and then I present it as a list and then once the user chooses somebody from the list, I set the selection to that person in the address book.

Now, I'm going to click the "Run" button and you'll notice that the Apple Script Editor is saying, "Since this is a Cocoa Apple Script Applet, you need to run it as an application and it provides you with the ability to do that or you can go to the script menu and choose the run application from there as well.

It's Shift--I mean, Option Command R instead of just the Command R but I'll run it anyway. Yeah, sure, save the changes. So it scanned my address book, I picked somebody and there they are. Simple idea, right? Now, what if I want to sort that list? There is no verb in Apple Script for doing a sort but since I have the ability to sort, I can do that. So I'm going to go to the "Sort" button and I'm going to click the "Sort" button and I'm going to click the "Sort" button.

Now, I'm going to click the "Sort" button and I'm going to click the "Sort" button and I'm going to click the "Sort" button and I'm going to click the "Sort" button and I'm going to click the "Sort" button. Now, ability to call into Cocoa, I can use any of like the standard NSString or NSArray kind of ideas. So if we go to the Apple developer documentation site for NSArray, you can see over here there's a class method here that has a class method called array with array.

So the same way I did string with string, I can use that to convert an AppleScript list into a Cocoa array and then I can call an instance method on that down here. I'm not used to this upside down sorting thing. Sort with using selector or something like that, one of the various sort options I have, then I can call that instance method on the new Cocoa object that I've created. So let's look at that and how that's done.

So I'll bring back here. I'm going to first of all do the same kind of technique that I did before. You don't necessarily have to do it this way, but I like to do it this way. So I'm going to do like assigning the class to a variable and that way it can just talk to the variable instead of saying current applications NSArray.

And then next, once I've gotten the names, I need to do the sorting. So I'll insert that text over here. And you can see that here I'm saying NSArrays array with array and I'm passing in the Apple Script list. It will coerce that into a Cocoa array. And then with that array, Cocoa array, I'm calling an instance method on it using the localized standard compare, which will sort it like the way the finder does, basic thing. So now I can run this. I'll save this and use my new option, Command-R, run this. And you can see that the list here is now sorted alphabetically for me. And then I choose somebody and it's done.

So now if it's not in Apple Script, I don't have to look for third-party OSACs. I can look into the Cocoa library and do things I need to do there. I can do NS image in there. I can do NSString in there. You can do NS object. You can do whatever Cocoa has available to you and use those.

So, let's take a look at an instance of where I've done that to create some UI. So here I have an application, an AppleScript Cocoa Applet, that is going to process some images. And when I choose Choose, you'll notice that it has its own floating progress window, and it will respond to the stop button as well. Maybe the cursor needs to be up. OK, there you go. And I'll run that again just to show you.

“So you can create your own UI” in this case, this was easy to create dynamically on the fly. I just created my own Cocoa class for progress window. And then I call that from within my main script. So the two are on different threads and functioning totally independently of each other. Let's take a look at that code. So I'm going to open this up into the And it has, yeah, all the normal warnings about, yes, you can use this code, but we'll pay attention to you or whatever.

Okay, here it is just basically getting a list of different things, choosing and then processing, getting to do a repeat, and then finally down here we're going to do a repeat. And it calls into the progress window. Well, where does this progress window class live? If you go over to the bundle contents, you'll see that in the bundle contents, I've added another script.

And this script-- I open that up-- contains a script object that is my Cocoa class. And I have properties in there and I have handlers and methods in there. And you can see that I've created these various ones, what to do if the cancels press, ready the progress window, increment the progress window, and then down here at the bottom I have create the progress window where I'm doing the alox init and creating the object assigning the various properties for the window, positioning the items, all those kinds of things.

So this gets called from my main script over here when I'm getting ready to process that. I create the progress window using that new Cocoa class that I created in AppleScript. And when this whole thing gets run, you get the wonderful effect of being able to have your own script. Okay. Okay. Okay.

Okay. Okay. own “I am a developer, and I am a developer. I am an entrepreneur, and I am a developer”. So, with Cocoa\AppleScript applets now available in the AppleScript editor, you have all of the power of AppleScript\Objective-C right on the desktop. Portable, lightweight, powerful applications that can tie into a lot of what the OS has to offer.

“So, in AppleScript, we've done a lot. We've had a new template architecture added with some example templates. You can create your own, put them in there. We also created the new Cocoa-AppleScript applet that, again, brings the power of AppleScript/Objective-C to the desktop, allowing you to tie into all the power of Cocoa with AppleScript. So now you are very dangerous people.\ \ “You have AppleScript, Apple Events, you have the command line, and you have Cocoa.

Dude, tear it up.”

[Transcript missing]

None of it, yeah, it's all okay, yeah. I was going to say none of it approved, but no, it's all approved. So, let's begin. First of all, we added a lot of new appearance controls, because when you're working with a terminal, you really do, everybody likes to have their windows their way and have that granularity of design.

If you walk down the hall at Apple and you peer in and you watch all the engineers, you'll see every one of them is using the terminal in a different way, and it really does need that level of granularity in its appearance controls. Specifically, the first thing we added was full screen display.

“Yes, of course, duh. Right, you have to have the Terminal full-screen on your Mac, and then you use your three-finger swipe and you’re back to normal. And then, hey, I’m in “geek world”. Now I’m back to normal. Hey, I’m back to normal. Now I’m straddling. Whoa, okay. Well, that was good. So, full-screen display. There was one thing that didn’t get in. I asked the team to produce a font that looked like an old, burned-in K-Pro.

And I wanted it to start jittering after 5 minutes. But it was too much code, and they're busy with other things. But we got full screen display. It's wonderful. And it's also keyboard activated, unlike the other ones that's Option, Command, F. You're in, you're out. Next, we expanded the text color support. Beyond the normal scope of the text support that you have, you now have lots of controls for color and variations. For Windows, we added background images and automatic blur effect controls.

And you can even have a folder of images rotate through your window as you're using it during the day. So those that are really creative can have a photo montage from the local weather station appear automatically so that you can keep up on the weather as you're coding.

New status indicators for unread text, the activity, is something still active, and how many unread bell counters are in this particular window. This works in tabs as well as individual windows, and it also works with the live doc icon. So when you send your window to the doc, you can see the content live and you'll get these bell indicators there as well.

In addition, we've also added something that's really nifty. It's proxy icon drag-and-drop support, or drag-and-drop support enhanced throughout the terminal anyway. So you can take a file in the Finder and drag it, take a folder in the Finder, drag it to the terminal, and it starts a new CD to that folder.

You can take a path from the terminal window up into the tab and add it there. You can take the proxy icon from the terminal, which is showing the current directory, drag that down into one window or another window over here, or drag it to a new tab and start another one there.

So there's lots of enhanced drag-and-drop support for the terminal as well. And we've also added in built-in system services for terminal to do those kind of things that you always wanted to do, CD to a Finder folder, grab a nicely formatted man page from some text in a document somewhere.

So if you're on a Safari web page and you're reading about this new command, you select it and bring up the man page for it, and you can view it right there. “The Terminator Page” “Now, to show us this is the crazy person that wrote all this code, my friend Chris Page, the Terminator Page.

And take it away Chris, thank you.\ \ He's a tough act to follow but I'll do my best. I work on AppleScript and Script Editor and more recently, Terminal. There are a lot of enhancements in Terminal. I'm really excited to show you. There's more than I have time to show you but I'm going to try to show you three things very quickly.

One is the working directory support. This enables the terminal to display your current working directory and let you manipulate it and create new terminals from a folder in another application or even a path name that's selected in text in any “The second thing I'm going to show you is some of the display enhancements that Sal mentioned. And the third is going to be full-screen. And if I have enough time, I'll show you a few tips and tricks as I go.” \ So the first thing is, if I'm in Finder, let's go to my user folder.

“I have a question for you. I have a question for you.” “What is the best way to get the best out of the “Let’s see, just one second. Please stand by. Okay. I can drag it on the terminal. There. Now I have a new terminal window. Can you read that? If I look at the current working directory, you can see it's my documents folder.

I can also drag a folder into “The tab bar to create a new terminal at that directory. And there are services so that from in any application that has a folder or a path selected, I can go to the service, which you can enable in system preferences, and say create a new tab or a new window at that location, whether or not terminal is already running.\' The other half of this is that if you'll notice at the top of the window there's a proxy icon showing the current working directory. There's support for an escape sequence so that the shell and other programs can tell Terminal what the current working directory is.

Terminal will show you that in the proxy icon which you can use to navigate to that location in Finder. You can drag it just like any other folder to create a new Terminal, or maybe into another window. And if you drag it to an existing tab, it'll issue a CD command.

Another nice thing is since Terminal knows your current working directory, by default, when you create a new tab, “It’s in the same working directory that you were in in the previous tab. And there are preferences so that you can do that for new windows as well.\ I'm briefly going to show you some of the new display enhancements that Sal mentioned. Here we have a window with blur in the background.

“Lest you think that this is completely superfluous, you can actually have it become clear when you're not using that terminal window.” And then the blur makes the text readable.\ \ “This is another built-in default setting called Solid Colors, and the background image is set to a folder containing images of solid colors. And so every time I create a new terminal with that, it randomly selects a different color. So that can be used to differentiate terminals.

“I'm going to show you some of the status information. This is really useful if you've got multiple terminals open and you want to know what's going on in a background tab or in a minimized window. If I start “I am running a long command”. You can see it is showing you a busy indicator and it is showing you the current process that is running. If I switch to another tab, you can see that it is still running back there.

If I minimize that, you can see what process is running. The ellipses indicate that there is  “ Thank you.” \ The ellipses indicate that there is unread text. There are also - and you can - I don't know if you can tell, but there is live text happening in here. It's really useful if you're trying to monitor what's going on in multiple locations without having to open up the window, take a look, close it again.

“I am going to show you what happens when a bell is played in a background tab. “Well, there was no audio, but there's a little bell indicator. It fades away. If the window is minimized or if the terminal is in the background, the terminal shows you the number of bells that have gone off while you were away.\' So I'm going to cut this short. I'm going to briefly mention that there's support for 256 colors.

“The first thing I want to talk about is the new “Color Eraser” feature. That's important for people who use editors in Terminal and want to use syntax highlighting and so on. It gives you a much larger palette to choose from. It supports background color erase, which is used to clear the background color of the screen.

Again, if you're using custom color schemes in an editor like VI, it fills the screen with that background color. “I want to show you full screen.” Now, if you really feel like you want to be “You've probably never seen this much information from top at one time.” \ And of course, as Sal mentioned, I can go back to the desktop, work with whatever applications I want to, and at any moment, I've got a full-screen terminal waiting for me.

[Transcript missing]

If you need to contact anybody here, you can contact Eric or myself, and you can visit the forums, the developer forums as well. Thank you very much. Thanks for attending. See you guys next year. Make some money.