Thursday, July 31, 2008

Final Cut Pro Software Deployment: My Final Deployment Success

Next week we are running a Final Cut Pro 5-day class to prepare students for the Final Cut Pro exam and get more familiar with the software.  It's great, except the software is huge and doesn't load into a monolithic system image very well.  As such, I had to find a way to deploy the software in a timely manner without a lot of work or overhead.  

I started first with a modular NetInstall image.  The idea was that I would include the software packages in the install image, it would create the image, and I could install it without worrying about configuration.  Boy was I being hopeful!  At first it would not recognize the software, and then it finally accepted the mounted disk images as I dragged them into the Automator Action.  I thought all was well, until I tested the image.  

It installed the OS just fine, but didn't include the Final Cut Pro packages.  Well, I thought, I would just need to create a base install, and then deploy the software through a package.  Seemed easy enough, at least..

Mac OS X 10.5 has a great feature with PackageMaker (available with the XCode Tools Development package) that is called a Snapshot Package.  Basically, you can install software on your Macintosh Computer while this is running, and PackageMaker can tell the difference between the original state of the machine and the new improved state.  You can then create a package that would install all the changes across the board, and you would be all set.  

I started by using PackageMaker on the MacBook Pro that I would be using for the class.  I then started the process on the MacBook Pro, installed Final Cut Pro and the Motion Content, and waited.  Once done, I stopped the snapshot, reviewed the changes, and tried to make the package.  PackageMaker crashed on me every time.  I tried three different MacBook Pros, each with the same result.  

At that point, I started to get frustrated.  I tried the same process on my office Mac Pro, and it worked!  I was able to make the snapshot image, and create the package.  I then transferred it to a MacBook Pro computer and started the package.  It ran, told me it was successful, and I was sitting on cloud nine!  Until I tried to run Final Cut Pro, that is.  It would crash every time I tried to run it.  It could have been a permissions issue, but by this time I was running out of time.  I have a busy week with a surprise class and some instructor interviews to conduct, and I needed to come up with a solution quickly.  

So, I tried installing the software on a MacBook Pro from disk images using the installer command from the Command Line.  It worked, installed a bit more than we usually do, but otherwise was successful.  Well, if this would work, surely I could create a script that would mount the images, install the packages, unmount the images, and delete the images to free up space.  It was worth a try. 

The script was easy to write, and is below: 


#!/usr/bin/env bash

# This script should install Final Cut Pro and Motion from disk images.
# The script will need to be run as root, which the package should do
# automatically.
# First it will mount the images, and then it will run the Installer
# scripts for Final Cut Pro, and then Motion.

# The Images are assumed to be in /Users/Shared

hdiutil mount /Users/Shared/Final Cut Studio.cdr
hdiutil mount /Users/Shared/Motion Content.cdr

# Now the Installation will be run.

installer -pkg /Volumes/Final Cut Studio/Installer/FinalCutStudio.mpkg -target /
installer -pkg /Volumes/Motion Content/Installer/MotionContent.mpkg -target /

# Once finished, the script needs to unmount the images.

umount Volumes/Final Cut Studio
umount Volumes/Motion Content

# Now no longer needed, the disk images can be deleted.



The Script worked on my inital testing, as long as it was run in sudo (installer needs to be run as root).  So I took it a step further and set it up as a package.  I opened PackageMaker again, added both the disk images to it and set the install location to the /Users/Shared directory.  I then added the script to the last package (in this case Motion) as a postinstall script, so that it would run after the Motion image was copied.  I created the images without any errors, and tried the deployment:  Success!  It installed just fine, and everything worked in Final Cut Pro that was expected to work.  

So, I then figured that if this worked, surely it would work if I added it to a NetInstall image, right?  So I created a new NetInstall image workflow that would add this image to the NetInstall.  I then tested it out, and it still didn't install the package.  So, I copied the package to the server, shared it out, sent the package to each machine, and installed it manually from there.  In the end, I got the deployment working, and the total deployment (not counting the time taken to try and create images and such) took about half the amount of time it would have if I installed everything with the CD's.  It could have taken even less time if I had Apple Remote Desktop installed and used it to deploy the image.  

So, that was my experience.  I'm going to look at the NetInstall workflow to see if I missed something in how I placed the Automator Action for the package install.  Until then, I still have a very viable deployment solution that takes less time than I would have expected.  ^_^

Wednesday, July 30, 2008

Blogging 101: My Class

Last night I started teaching a new class for me:  Blogging 101.  I'm an avid blogger, and hoped that I could add some value to the blogging experience for those who are new to the idea.  

Now, many of you may be asking why someone would *need* to learn how to blog.  It's a valid question for those who are familiar with the concept and ideas behind blogging in particular and Web 2.0 in general.  But for those who are not familiar with these concepts, it can be a bit harrowing and intimidating.  After all, what do you talk about?  

The class started well, with 7 registered students.  Everyone looked to blogging as a way to broadcast information to a large group, share experiences, share stories, practice writing, and one student was looking for a corporate application.  It was a great mix of people with different interests.  

We covered the following topics: 

Why Blog?  
I wanted people to think about why they were blogging, and what blogging meant to them.  So we talked about the definition of Blogging, who blogs, and the various uses blogging has seen since it's inception.  I focused on the Experts (those who are sharing their knowledge for the benefit of others), the Corporate Blogger (those using their blog to hype products or to build a community around their products), and the Web Journal (those sharing their experiences in a public, very visible way).  

Setting Up Your Blog
Next we set up a blog.  I pointed out the different blogging servers out there that offer free blogs, and got everyone started on a Blogger blog.  Why Blogger?  Because it's free and it's simple to set up and maintain.  Everyone was aware of my bias to WordPress, as I frequently mentioned it, but I thought it was a good idea to have them start simple and work their way up. 

Personalize Your Blog
We then covered the dashboard, their user profile, and then the settings.  I wanted to be sure they knew where to set up moderated comments, and why.   I also showed them how to add additional plugins to the blog for features that they could implement in the near future.  Tonight we will cover a lot of those features in more detail.  

We then got started with blogging.  I had everyone post at least once, so that they could get the feel of blogging.  It was a great success, at least I think it was.  We will see how comfortable everyone gets tonight for the last class.  ^_^  I'm sure it will be fine.  

Tonight we will cover RSS feeds, search sites, tracking visits, micro-blogging, and if we have time, some additional plugins that are available for Twitter, Pownce, Last.FM, and GoodReads.

Tuesday, July 29, 2008

Cuil vs. Google: A Review

Lately there has been a lot of talk about the new search engine on the block:  Cuil.  It's rumored to be fast, quick, and index sites better than Google.  I'm all for anything that works well, and I love to test media hype.  So, I thought I would give Cuil a try.  

Cuil is the old Irish word for Wisdom, and that is how they bill their search.  The site is designed well on it's home page, just like Google.  They provide just a simple search, with no visible advertisements that I can see.  So that brings up the first question:  how do they make money?  Not quite sure on that.  

The results are not as simple, but you do get more information per result than with Google.  I wouldn't call it "mobile" friendly though, as it posts a large text snippet and images that are relevant to the search.  Google, on the other hand, has a small text snippet and no images.  Personally, I like the larger text snippet because you get a better idea on the relevancy of the search result.  

One thing that takes some getting used to is viewing multiple results.  If searching for names (I did a search for myself to see what comes up), close matches that are ranked higher show up on the first page to the Left under various categories.  But it took me a little while to realize that additional search results could be navigated at the bottom left corner of the page.  Though I could figure it out eventually, it takes the "first page results are the only results" a bit too far.  Perhaps if the navigation was at the bottom right.  After all, the human eye, while reading a web page, will naturally move from the Top Left to the Bottom Right, and stay there.  

Also, my new Blog was not indexed at all, apparently.  I couldn't find any mention of it, nor of my other recent domains.  This brings up questions regarding the search engine bot being used.  Cuil uses a search engine bot named Twiceler, and you can get your site indexed by sending them an email.  As I tell my students who are interested in Search Engine Optimization, even if they are only 5% of your search, do what you can.  Don't alienate anyone from your marketing strategy.  

So, do I think Cuil is better than Google at indexing?  Not right away.  I think their web crawler needs a bit more work in following links and such, but with them being so new on the block, perhaps it is just that the crawler just hasn't had enough time to process everything.  

But the other question is, do I think Cuil is bette at displaying the results?  Yes, I do.  Perhaps it's because I'm of a Celtic heritage and therefore biased, but I really like the display overall.  I think that Cuil has a lot of potential, once the crawler has time to index eno

Monday, July 28, 2008

iPhone Apps: Impressive collection in a Short Time

I've been tracking the iPhone app store pretty closely, as I have been really interested to see what people are developing.  The first day it was available (the Thursday before the iPhone 3G was released), there were quite a few interesting apps, but most were trivial proof of concept apps that were released just to show what could be done.  

But now, we see more useful apps coming to the Store, and many of them are free (the economics of the iPhone apps are an interesting discussion on their own).  While I don't have an iPhone yet (I'm waiting until September when AT&T indicates I can get the subsidized price), I've already started to collect some apps: 

eBay Mobile:  Yes, I use eBay.  I've used eBay ever since I worked there, and I still like to check it out as a way to price objects.  

PayPal:  I use PayPal rather extensively when billing clients.  It's convenient for me, and convenient for them to make the payment through PayPal.  I also pay for my items in iTunes and Second Life through PayPal.  

eReader:  I've always loved eReaders, though I would like to see a free app that will include text files.  But, in the mean time, I'll stick with the eBooks that I have gathered over the years.  

Evernote:  I've never used Evernote, but I do like the idea of having notes to myself available everywhere I am.  Perhaps I'll start to remember things.  An internet radio on a mobile platform.  Do I really need to explain it?  ^_^

Mocha VNC Lite:  Not that I would use it on an iPhone on a regular basis, but having a VNC client available should I ever need to use it, that's just good preparation. 

Palringo IM:  Instant Messenger, much like GAIM and Adium.  It covers all the main messenger protocols out there, which makes it really useful.  

Remote:  Turns your iPhone/iPod Touch into a WiFi Remote for your iTunes and Apple TV.  So should you lose your tiny remote...

Twinkle:  A twitter app that doesn't have ads.

WordPress:  App for blogging from your iPhone.  Not sure how it works quite yet, but I'm pretty excited to find out! 

WritingPad:  A text editor.  It would be handy for those quick spells of inspiration that comes at the oddest moments.  

So, from my wishlist, only a few things have not been realized...yet.

Presentation Software:  I haven't seen any presentation software show up on the iPhone App Store.  If I just haven't seen it, please post the app in the comments.  I would even be willing to pay for that app.

Bluetooth Keyboard Support:  Still no bluetooth tethering available.  For this I'm still holding out for the iPod Slate.  ^_^

Terminal:  A lot of people have said that a terminal would just not be available for the iPhone because it would open up a whole can of worms for Apple.  I don't agree, but until the app comes I'm not going to hold my breath.  But until then, I think I could get by.  ^_^

iCal:  As I haven't purchased the iPhone yet, I don't know if iCal on the iPhone is any better.  For those of you who do have an iPhone, can you view multiple calendars at once, and add an event to a specific calendar (without it creating a whole new calendar just for that one entry)?

Second Life Client:  I know this probably sounds silly, but wouldn't it be nice to be able to access Second Life from any location, particularly if you were teaching/attending a college class in Second Life?  Well, for now you can't with the iPhone, but it's coming!  Vollee is developing their handset Second Life client for the iPhone, and hope to have it available soon.  Needless to say, I hope to see it in the App store before the end of September.  ^_^

DOS Emulator:  I haven't seen one yet, but it may be possible to port DOSBox over to the iPhone.  Perhaps a project to get to know Objective-C...

VoIP:  Yes, there is a VoIP app (TruPhone), but it requires using their system with their rates.  I would prefer to have a VoIP client that could be configured to use my own system.  Of  course, it seems to be a Skype competitor, and in that arena they look very promising.  

So that's my list, and what the market has done to fulfill it.  I'm still waiting for a couple of features, but all in all there are enough apps out there to make getting an iPhone worthwhile.

Saturday, July 26, 2008

MAX to TRAXX and Back Again: Becoming Car Independent

While I lived in Germany, I learned to love a well planned out bus and Bahn schedule.  In Europe the trains are well timed and well placed, while the busses take the same ticket as the train, and you don't have to purchase them from the driver (eating up precious time).  I often wished that Salt Lake would adopt the same principle as Europe to make mass transit more timely.

While I was gone in Chicago, UTA launched the new MAX bus line along 3500 South.  This line is faster than the usual bus line, and the bus itself is brand new.  The line only stops at all the major intersections along 35th, which means the bus isn't stopping as often.  It also goes directly from the stop on 35th to the TRAXX line, with no usual transfer at the Valley Fair Mall.  The bus therefore can travel from 72nd West to the TRAXX station in 45 minutes, instead of close to 1 hr. 30 minutes.  Add to that another 30 minutes of travel time from the TRAXX station to the University, the commute now becomes a 1 hour 15 minute commute, which is only a half an hour longer than driving (with traffic).  

The bus is new too:  it's more like a European bus, with three doors on the side.  People purchase their tickets at the MAX stop (most of them have a ticket dispenser), and the tickets are checked periodically as they do on the TRAXX train.  The train is also larger and low to the ground, so it's easier to get in and out of.  Bikes are placed on the front of the bus, making local commuting beyond a TRAXX or MAX station faster and provide more exercise.  

Now, you may be asking why I am going on and on about the new MAX line.  Well, with the MAX line in place, the commute to work without a car is now very possible, time effective, and well within my budget.  Not only could I purchase a monthly bus pass for the same price that I would a tank of gas, but because I'm a University employee I get a free yearly bus pass (which includes the TRAXX, MAX, and most bus lines).

What this means is that we as a family can now go down to one car (or at least will be able to, depending on some factors).  If that's the case, we may be able to sell both our cars and purchase a more fuel efficient vehicle:  a Toyota Prius, and the total savings will mean more budget for projects and building a very useful infrastructure here at home for a home business.  All of a sudden, funding becomes available. 

So if UTA happens to read this post, please note that I am quite happy with the new MAX bus line.  I look forward to it being implemented across the valley, perhaps replacing many of the multiple stop busses.  It would reduce the fleet of UTA busses overall, increase ridership.  Tickets can be purchased before boarding, people don't have to check in with the bus driver while boarding, and the bus gets you to your location faster.  

If you haven't tried the new MAX line, and there is one in your area, I would recommend it.

Saturday, July 19, 2008

Directory Services and Advanced System Administration: The T3

I'm back from the Chicagoland area, and It's good to be back home.  The trip home was mostly without incident, with both planes actually arriving on time (or earlier).  The trip was pleasant, and I made some really great friends with other instructors and developers out there within the ranks of the Apple Certified Instructor network.  

So, what about the training?  

Directory Services:  The Directory Services class was phenomenal.  It focused on connecting to various directory systems out there (both Active Directory and OpenLDAP), using the built in GUI tools, third party tools, and using the command line utility.  

We spent a lot of time demoting and promoting our servers to Open Directory Masters, while connecting to another directory system and making an Open Directory Replica.  

I learned a lot of new things at the training, mostly on how to replicate and create backup Directory systems for failover.  I'll start covering each chapter in more detail as time permits, but needless to say it was a very useful class.  

Overall the flow was well designed.  The material was a little lacking in that some work in the workbook was not available or mentioned in the reference guide.  But other than that, it was well done.  The cognitive load was well managed with the timing of the class, and the constructivist method was well represented in this material.  Arek Dreyer, who wrote the reference guide, did a great job with the work.  I hope he works on the material again with the new 10.6 materials for which Apple Training is already planning.  

Advanced System Administration:  I want to preface this review by mentioning how this class was originally conceived.  When 10.5 came out, Apple Training looked at the existing certification and noticed that an Apple Certified Systems Administrator could go the whole certification process without once taking anything more than Server Essentials.  

Apple wanted to make the certification more meaningful, and so decided that knowing how to set up the environment was more important than knowing how to manage an Xsan or Podcast Producer.  And, quite honestly, they were right.  A Systems Administrator needed to focus on the core system that allows for Xsan and Podcast Producer to work well with the rest of the system, and not just the peripheral systems.  

So, basically, anything that didn't fit into Deployment (system imaging and image maintenance) and Directory Services needed to be dumped into this class.  As such, the class is 5 days long and still too short for the material.  It's also a fairly new class, as it is the only class that was not recreated from Tiger classes.

So, what do I think of it?  It definitely shows the signs of a kitchen sink class.  If you don't have experience in the Command Line and didn't take any of the other classes, you would be totally lost on this one.  It is completely designed to be a capstone course, and allow the student to design their own solution while completing the class.  

But there are problems:  If you don't focus on the on-going narration (which the instructor had better be creating along the way for the sanity of the learners), then you can easily get lost in the details.  There is a lot of focus on current UNIX solutions, potential issues, tools that are still in development, and proprietary command line tools that Apple has created to manage their utilities.  All this is thrown at the student in four pillars:  Planning and Implementation, Networking, Administration (monitoring, security, and automation), and Troubleshooting.  

The narration is thus:  You have just been hired as the new PretendCo Systems Administrator, and the company is on the cusp of huge growth.  You find out that the company, up to now, has been running on one server, set up as a Standard configuration system for convenience.  You now have to do some real management to scale up the system you put in place in order to cope with the new growth expectations.  

For me, it's going to be a challenge to teach this in a For-Credit schedule, if just because the course narration will be really difficult to keep in the student's mind.  When I offer this class, I'll be spending a lot of time focusing on the instructor notes, so that I can keep that narration flowing.  I may need to build the narration into some online exercises as well.  

So, overall, Directory Services was a hit, and a blast to teach.  Advanced System Administration was great, but I was honestly only able to keep up because of what I had already known having both taken all the previous Apple classes, and my experience with Linux.  I'm thinking that I may make the Linux Fundamentals a prerequisite for taking this class.  That way I can know that my students have had time to whet their experience on a UNIX environment in the command line.

Monday, July 14, 2008

The Final Stretch in Villa Park: Advanced Server Administration

This week I finish up with my T3's for Apple with Advanced Server Administration.  This class is focused primarily on running the ADDIE process (Analyze, Design, Develop, Implement, and Evaluate) throughout the IT  infrastructure of a company, and build it up using both the GUI and Command Line tools.  Because it is assumed that you have been learning the GUI tools up to this point (this is the capstone course), it primarily focuses on the command line tools available to the Mac.  

I'm not sure when we will offer the class at the U, as much depends on other training offerings and any additional infrastructure we would need, but I already have a lot of people interested in this class.  Most of them are Linux administrators who are going to be supporting the Apple platform, and want to do so with SSH (just as they would with Linux).  I already have a list of people who would love to take that class.  

Anyway, it all hinges on whether or not I'm judged "good enough" to train.  Partly judged by my peers, partly judged by the Master Trainer, my fate rests in their hands.  At this point, however, I'm less concerned.  I'm rather more concerned with how my family is doing back home.  I'm literally counting the days until I fly out.  But I will miss the Chicago area.  

Anyway, more details on the classes I attended during this trip sometime next week.  I'll give a teaser for the classes, and give you my opinion of the materials and flow of the class.  

Thursday, July 10, 2008

Still Alive, And Back In Villa Park

I haven't been posting a lot lately, because I'm back in Villa Park for another set of T3's.  This time it's Directory Services and Advanced Server Admin.  Both are great, but high on the cognitive load.  I'm actually looking forward to the Advanced Server class, because it's focused more on the command line administration of servers, and scripting and interacting with launchd.  I'll post about the Directory Services class this weekend, and Advanced Server sometime the week after it completes (when I have time).  

Tuesday, July 01, 2008

Mac OS X Deployment 10.5 T3: Review

As promised, here is my review for the Mac OS X Deployment 10.5 T3 that I attended this last week.  

First, the location.  Of course I'm biased, but I have always loved Chicago, and as such enjoyed the trip Villa Park and Oakbrook Terrace.  The hotel was nice, and the location of the training facility was fairly easy to get to.  The only problem:  no sidewalks.  It makes it difficult to walk when you don't have sidewalks, and there isn't enough room to walk on the street (without getting hit).  Other than that, the location was nothing to complain about. 

The materials:  There are quite a lot of material for this class, and I was a little concerned that it would be impossible to fit it all into a 2 day training.  Luckily, that was the thought of the course developers as well, and as such the training was extended to 3 days.  That fits in perfectly with my training schedule I have planned for the University, so I didn't complain. 

The Subject Matter:  There was still a lot that I wanted to cover but couldn't in the class, mostly those focusing around the command line.  But then, there is a separate class for that, which I will be attending in two weeks.  ^_^  But those important topics, such as deploying through the command line, and imaging through the command line, were covered in depth.  Also planning, scaling, and third party utilities for managing a deployment option was well covered.  

One really nice thing I liked about the class was a mandate for the student to immediately apply what they have learned to a real world situation.  They do this through a Deployment planning sheet, which the trainer should have printed out for each student.  We didn't have it, but it was made available to us in PDF form, and there is a link that comes with the learning materials to PeachPit's website for the same PDF.  Once the form is filled out, the last chapter talks about real world solutions in many large companies, school districts, and training centers, and gives the student time to go through their document to see what they find useful, and what they don't need, in their deployment of OS X.  

The Requirements:  It is essential the student have a command of both the Mac OS X GUI and have command line experience before starting this course.  Basically, students would need to have completed at least the Server Essentials course, and be able to manage a UNIX command line experience.  Why?  Because at the beginning of the course you are just expected to set up your computers with little assistance from the book.  At this point, it is expected that the student knows already how to set up a brand new install of Mac OS X. 

The command line experience would be more along the lines of familiar with syntax of commands.  Most, if not all, of the commands used are Mac OS X Utilities and not your typical UNIX commands, yet the syntax is the same and therefore the student needs to be familiar with that syntax.  There may be some situations when troubleshooting is necessary, and as such the student will need to know how to get to the man pages.  

Something else that would be important before taking this class is having troubleshooting knowledge, and an understanding of what you are being prepared to learn.  This way if something doesn't quite work they way it's written in the book, you can step outside of the given examples and find alternatives.  That's part of learning, something that many students I have had in the past didn't quite understand.  It requires reading/studying ahead of time, asking questions, and being attentive.  

The Pace:  Unlike both Support and Server Essentials where we pend a lot of time trying to catch the class up after some really long first setup exercises, this class is paced just right for the materials.  We as a training class (of 10 trainers) finished with plenty of time on the last day to cover some topics more in depth, and that was with us doing the majority of the optional exercises.  So with a typical class at this level, the pacing will be such that students will have some time to play with some configuration, or perhaps have a long lunch as a thank you for coming to the class.  

Overall, it is the best designed Apple training course I have attended so far.  The materials are well designed, the pace is just right (low to medium cognitive load), and the course talks well to adult students (through Constructivist methods).  This is a class that may not run often here in Utah, but will most likely be a well attended class when it does.  It is by far my most favorite class to date.  ^_^  

Also, I'd like to say thanks to everyone that attended, because they gave me some very welcomed constructive criticism, and the Master Trainer was a great host.  If only the Cubs could have won all three games I was there, rather than just one of the two.  Oh well, there is always next time.