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 may have transcription errors.

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. All right. Don't get me upset. You know what happens. If you can make me stop this car now. Welcome, welcome to one of the last sessions today.

And 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.

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 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. For this material that you're seeing today, you can go to macos10automation.com slash 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 it 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 OK, 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 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, you know, 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? OK. 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 dialogue 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. Okay. You like the glamorous stuff. Oh, I got it. Okay. And this also applies for video.

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!

And 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 locked 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 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 menu 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.

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 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, 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's about digital books. Classrooms are digital books. Well, how do 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, 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.

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 LubriVox.

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 e-pop document i select my documents here i choose to repeat public with selected files over here i give it a title alice in wonderland 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.

And you can see right up here in the top hand corner is an EPUB. You transfer that over to your iPad. And then we'll take a look at this, guys, and see. I'm on four. Oh, three. Here we are on the iPad. There's the book. I'm going to open it up. And I'm going to go to the chapter first of all.

So for some reason the cover image didn't come over on this particular one, but I'll go over here, run the video. screen. It's projecting elsewhere, but you see what it's doing. Over here, I'll run the of Alice's Adventures in Wonderland. This is a LibriVox recording. So then I go over here. All LibriVox recordings are in the public domain. And finally here I can go to the illustrations at the end. 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 automator and 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 inflection and sound. We also enhance the ability to have that audio transferred to a file. And we included in the OS by default an action called "Add to iTunes as Spoken Track." Whether you're in Mail, whether you're on Safari, whatever application you're 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's 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 The listen for command is passed a string of terms that you want to match to. And you give it a prompt. The user says one of those terms. It's matched and returned to the script. And the script can then act accordingly as well.

Whoa, really cool. So you can have scripts that carry on pretty detailed conversations. So I have one that goes, play some music. Which artist? Oh, Frank Sinatra. His early years or later years, you know? Oh, 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 don't know what else to say.

Next, we added something that's been asked for quite a bit. It's script templates. A lot of us have some ways that we write scripts or things that we use over and over. And instead of opening up an existing script and trying to copy out things, you can now add these scripts into the library application support script editor templates folder. And they appear on this new menu called New From Template. And then you can just use those as a starting point for developing your scripts. And we filled that template folder with some very usable examples. First, an Aperture import action. So this script will run whenever Aperture imports a set of images. So now with Aperture's new scriptability for applying effects and exporting, you can actually have a script that will connect the camera, extract the images, apply a certain set of effects based upon information of each image and then export those appropriately. Here's another scenario. You might want to have that export filter out all the movie files and then encode them automatically for MPEG content and put them up on your server. So this is a really useful script. There's how it's done. We've included file processing recursive droplets. Lots of requests for those. How do I process image files in folder after folder after folder of content. Well, this shows you how to do it. You can just open up these templates, insert your processing code, drag on a folder of items and it will process them recursively for you. You don't have to deal with knowing how to write a recursive routine. We have iChat responders. These are very useful. They became the bane of our office for a while where it actually got down to all the computers were talking to each other and there was no humans involved.

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 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. 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 Apple Scripts to call directly to class and instance methods in the OS. And so you could build your Apple Script 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 Apple Script 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 scripts. 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 with string and passing that AppleScript string to the method. And that converts it into a CocoaString 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.

Ooh, 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 app kit and foundation frameworks, 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? script menu here and I'm going to open up one of these. So if you want to create an Apple script, 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 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 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 Apple script 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 assigning the class to a variable and that way I 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 AppleScript 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 AppleScript, 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 NSImage in there. I can do NSString in there. You can do NSObject. You can do whatever Cocoa has available to you and use those..

So let's take a look at an instance of where I have 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. Okay, there you go. And I'll run that again just to show you.

and this time I'll let it go all the way. A little bit of screen glare. 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 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 Aloxa knit 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 Apple script. And when this whole thing gets run, you get the wonderful effect of being able to have your own custom UI work the way that you want. So, with AppleScript, 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.

Okay, next. All right, this is the new member of our family. We're very happy to have the terminal as part of the automation story on Mac OS X. And you're probably thinking to yourself right now, what kind of crazy stuff did they do to my terminal? Lots. Amen. 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 the 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 fingers swipe and you're back to normal. And then, hey, I'm in geek world. Now I'm back to normal. Hey, back it over. Now I'm straddling. Whoa, OK. 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 five 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. It'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 dock icon. So when you send your window to the dock, 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, 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. 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.

So here'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 and in the application.

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. There we go. So if in my home folder, just for example, let's say I want to look at my documents directory, I can drag it onto terminal.

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's 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 And if you drag it to an existing tab, it will 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.

Now 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. running along command. You can see it's showing you a busy indicator and it's showing you the current process that's running. If I switch to another tab, you can see that it's still running back there. If I minimize that, you can see what process is running. The ellipses indicate that there's-- Thank you. The ellipses indicate that there's unread text. And I don't know if you can tell, but there's 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'm 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. 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. 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.

you full screen. Now if you really feel like you want to be old school, And here, 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.

some of the things with Terminal. There's a lot of depth to cover with that. And again, if you are interested in finding out more about all of these changes, first of all, you're going to go to macos10automation.com. You're going to go to the Lion to get all of the latest updates. You can download the tutorials that I just did. You can download the Alice in Wonderland stuff. You can download all of the various options there.

You can read about the various features in Terminal. And there's training for learning more about the automation technologies. If you're interested in learning about AppleScript Objective-C, there's a directory there under AppleScript, ASOC, and you'll find a link there to Shane Stanley's excellent book as well, an electronic book on developing ASOC applications. And APPLE SCRIPT/APPS, AND IT HAS SOME INFORMATION ON HOW TO BUILD APPLE SCRIPT APPLICATIONS AND APPLE SCRIPT-BASED AUTOMATOR ACTIONS AS WELL. 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.