Today I played in the Jacob's Well band for the first time! Trial by fire, but I'm pretty sure I didn't completely suck...
I've served as a sound engineer at JW since February, at least once or twice a month, and in that time been blessed to meet most of our wonderful musicians (the worship team has over 30 people who rotate each week). Over the months I've asked if I could eventually slip into the band rotation, and this week I was invited to trade in my headphones and join them up front.
I mentioned today was "trial by fire". I had several factors working against me today:
- No mid-week rehearsal. Normally the band rehearses on Tuesday night, giving plenty of time to work through any kinks or trouble spots in the songs. But Nate, the leader, is a brand new Daddy, so there was no rehearsal this week (quite understandably!)
- Ears. I've never used in-ear monitors before. They're sweet, but the Aviom console to mix what I was hearing in my ears had no labels, so it was hard to figure out which channels I needed to turn up to hear what I needed to hear. (Nate graciously ran through the list slowly so I could write it down before we got going too far).
- Click. I've also never played to a click. Though now I don't know how I'll ever play without one. So this isn't a bad thing, it's just "one more new thing" thrown into the bag.
- You've Got a Friend In Me. Jazz? How the heck do I play jazz? And the song's in Eb (half a step lower than standard guitar tuning, which makes it much more difficult to play). Fortunately, I have a "backup" performance guitar, so I re-tuned that and then switched between the two guitars between songs. Made life much easier. Relatively. Not only are the chords crazy, but the changes go crazy fast.
- Most importantly: I haven't played in a band for a long time. It's been well over a year since I played publicly with a band. I don't get stage-fright, the audience doesn't bother me, but anticipating keeping tempo with 3 other instrumentalists had me worried. (unnecessarily so: that click is awesome)
So I survived. I have room for improvement (always will), but I didn't suck, so all in all off to a good start. And it means I can continue breaking a stereotype by crossing the boundary between tech and musician. Frankly I think it makes me better at both jobs, because as a Tech I know what the musicians need/want/expect, and as a musician I have a solid grasp on what the tech may need me to do.
Sunday, August 15, 2010
Thursday, July 29, 2010
Not User-Serviceable
My Dad gave me one of his old computers tonight - the hard drive was toast and needed to be replaced, though other than that, a perfectly operational 17" Intel iMac. Sweet.
Some quick price-comparing on internal 2TB hard drives yielded comparable results between Micro Center and Newegg, so I ordered on Micro Center's site and selected in-store pickup. Literally 5 minutes later I received an email saying my hard drive was ready to be picked up.
When I got home I started disassembling the iMac using these instructions from iFixit. Half-way in I discovered I lacked two of the important screw-drivers: T6 and T8 Torx. Shoot.
Never fear, Dad (as always), is here! Well, not literally, he wasn't at *my* house, but I called and asked if he had those tools; of course he did - Dad has everything. And a Spudger. I'd never heard of that either, but he had one.
So, a couple hours later (I'm sure the pros are MUCH faster, but this was my first significant take-apart, so I'm cutting myself some slack) the iMac had a new hard drive, and I had 0 parts leftover after reassembly! Even better, the machine still starts up!
Here are some photos from my adventure.

Some quick price-comparing on internal 2TB hard drives yielded comparable results between Micro Center and Newegg, so I ordered on Micro Center's site and selected in-store pickup. Literally 5 minutes later I received an email saying my hard drive was ready to be picked up.
When I got home I started disassembling the iMac using these instructions from iFixit. Half-way in I discovered I lacked two of the important screw-drivers: T6 and T8 Torx. Shoot.
Never fear, Dad (as always), is here! Well, not literally, he wasn't at *my* house, but I called and asked if he had those tools; of course he did - Dad has everything. And a Spudger. I'd never heard of that either, but he had one.
So, a couple hours later (I'm sure the pros are MUCH faster, but this was my first significant take-apart, so I'm cutting myself some slack) the iMac had a new hard drive, and I had 0 parts leftover after reassembly! Even better, the machine still starts up!
Here are some photos from my adventure.
Tuesday, July 27, 2010
Goals for the 2010-2011 School Year
Yes, I've already graduated college, but I still work in a school, so my calendar still revolves around the school year. That's really just a convenient excuse to do a mid-year New Year's resolution. Of sorts.
(Actually it's all my friend Joanna's fault: she wrote a blog post back in May listing some of her goals for the year, so that made me want to do something similar. And my friend Matthew has always encouraged me to write down my goals, so here we are.)
Goals for 2010-2011:
*Confession: I'm a slow reader, and college really turned me off from reading. So reading a book for pleasure would be an accomplishment.
(Actually it's all my friend Joanna's fault: she wrote a blog post back in May listing some of her goals for the year, so that made me want to do something similar. And my friend Matthew has always encouraged me to write down my goals, so here we are.)
Goals for 2010-2011:
- Become a better guitar player
- Produce at least one short film project
- Record at least one song
- Spend more time listening and less time talking
- Pay off my student loans and obliterate my debt
- Proactively listen for God’s Call in my life
- Read at least 1 book*
- Learn to relax
*Confession: I'm a slow reader, and college really turned me off from reading. So reading a book for pleasure would be an accomplishment.
Tuesday, July 20, 2010
Network Logins Failing on Snow Leopard Clients
Two issues resolved today. Issue #2 is more interesting than Issue #1.
Issue #1:
Open Directory accounts are unable to log in to OS X 10.6 client machines, but are able to log in to OS X 10.5 clients. The login window accepts the username and password and expands, briefly showing the username and icon, but then fails to complete the login and shakes.
Apparent Cause:
In my case, Snow Leopard choked because my users' "Home"s in Workgroup manager were set to
A Solution:
Set the user's Home in WGM (or
Issue #2:
When logging in to a network account, OS X 10.6 clients are prompted for credentials when connecting to a share point on the Open Directory Master. This defeats the point of single sign-on, since the credentials are the same. (OS X 10.5 clients connect to the server successfully without prompting for a username and password.)
Apparent Cause:
OS X 10.6 clients do not create a Kerberos ticket for network accounts until the user's second login on the client machine. (OS X 10.5 clients create a Kerberos TGT immediately on first login)
A Solution:
Modify the
http://support.apple.com/kb/HT4100
Note:
This solution says it is for Active Directory users, but it successfully solved the identical issue for Open Directory accounts.
Issue #1:
Open Directory accounts are unable to log in to OS X 10.6 client machines, but are able to log in to OS X 10.5 clients. The login window accepts the username and password and expands, briefly showing the username and icon, but then fails to complete the login and shakes.
Apparent Cause:
In my case, Snow Leopard choked because my users' "Home"s in Workgroup manager were set to
/dev/null
.A Solution:
Set the user's Home in WGM (or
NFSHomeDirectory
in the inspector view) to /Users/shortname
, where shortname
is the user's shortname (given in the Basic panel in WGM).Issue #2:
When logging in to a network account, OS X 10.6 clients are prompted for credentials when connecting to a share point on the Open Directory Master. This defeats the point of single sign-on, since the credentials are the same. (OS X 10.5 clients connect to the server successfully without prompting for a username and password.)
Apparent Cause:
OS X 10.6 clients do not create a Kerberos ticket for network accounts until the user's second login on the client machine. (OS X 10.5 clients create a Kerberos TGT immediately on first login)
A Solution:
Modify the
/etc/authorization
file as described in this article from Apple's KBase:http://support.apple.com/kb/HT4100
Locate this key:<key>system.login.console</key>
Add this string at the end of that block:<string>builtin:krb5store,privileged</string>
Note:
This solution says it is for Active Directory users, but it successfully solved the identical issue for Open Directory accounts.
Sunday, July 18, 2010
This is who I am - Ladonna Witmer
Jacob’s Well watched this today. Powerful. True. More eloquently than I ever could, Ladonna expresses how so many from my generation, myself included, feel toward “the church”. And I think this acknowledgement is one that more people, from both sides of the generational gap, need to hear. Need to truly hear.
youtube.com/watch?v=KWKedCKJOsI
youtube.com/watch?v=KWKedCKJOsI
Friday, July 16, 2010
Reconnecting Snow Leopard User Blogs after changing Open Directory Masters; Also: fixing the Internal Server Error (500) when viewing User Blogs
This is one of those technical posts that may only be useful to approximately 3 people in the entire world. My future self probably being one of them if I run into these problems again.
Last week at work our new Xserve arrived to replace our Open Directory Master. I first attempted to use the server setup migration assistant to transfer services, but, as I suspected would happen, the Open Directory didn’t quite look the way it was supposed to, so I blew away the new server and started from scratch. For several reasons, I decided not to migrate the OD at all, but rather re-create all users from scratch on the new server once it was up and running.
Now, because I automated the user creation process, several users' usernames changed.1 This was a mistake.
My web server, an Open Directory Replica of the former master, had several user blogs in the
Fail. No, that won't work - while the
Here's how I fixed it.
Step 1: Delete and re-create any users whose shortname may have changed. Re-create them with their original shortname. You can add additional shortnames in Workgroup Manager later, but their first shortname is the one that must match with what's in the
Step 2: Open Terminal, type
This stops the teams service so you can do some file cleanup.
Step 2.5: Make a backup copy of your
Step 3: Delete these files: (if you use a custom path for the
Step 4: Open
Step 5: Switch back to Terminal and type
This starts the teams daemon, which should automatically rebuild the blog and wiki indexes. Now watch the log closely. If it stops and hangs on a user or group name before you see the word "
If you're not able to navigate inside the
Now, I didn't have any issues with my groups, but I'm guessing that procedure will be similar to this:
In
For safety, I also deleted the
After your folders are in sync, start teams and lather, rinse, repeat until the log file indicates the teams daemon is "
After all this, one of my user’s names still isn’t showing up in my master list of blogs, but typing his username into the URL manually loads his entire page of posts (if you get a “no posts” message, even after successfully reindexing, make sure that user's discussion and weblog folders are in sync - sometimes the teams service started up even though a blog wasn't actually indexed).
Lastly, on a related but different note, if you find that you can no longer authenticate to your blog even after typing your correct password, make sure your OD master has the WebDAV-Digest option turned on in Server Admin under Open Directory > Settings > Policies > Authentication. (then reset your password so the server saves the new hash)
That one took me several hours to figure out, I finally got a clue after seeing this line in the PasswordService log:
Previous to that I was only seeing this error in the wicked error.log:
If you found me from Google and solved your problem because of anything I wrote here, let me know!
1 I wrote a nifty PHP script that queries our online directory for student and employee names, compares it against the Open Directory, then automatically creates new users and emails me a report. I highly recommend reading Apple’s User Management guide and the
Last week at work our new Xserve arrived to replace our Open Directory Master. I first attempted to use the server setup migration assistant to transfer services, but, as I suspected would happen, the Open Directory didn’t quite look the way it was supposed to, so I blew away the new server and started from scratch. For several reasons, I decided not to migrate the OD at all, but rather re-create all users from scratch on the new server once it was up and running.
Now, because I automated the user creation process, several users' usernames changed.1 This was a mistake.
My web server, an Open Directory Replica of the former master, had several user blogs in the
Collaboration
folder. Not a big deal, I should just be able to change a plist here or there and transfer those blogs to the new usernames.Fail. No, that won't work - while the
Collaboration
folder hierarchy is relatively simple, unfortunately every file (seemingly) contains a reference to the author's shortname. This makes life very difficult if, all of a sudden, your users' shortnames have changed after you bind to a different OD Master. Specifically, it resulted in the yourdomain.net/users list of blogs returning an internal server error (500), and any specific user's blog (if you type in the full URL) returned a 404.Here's how I fixed it.
Step 1: Delete and re-create any users whose shortname may have changed. Re-create them with their original shortname. You can add additional shortnames in Workgroup Manager later, but their first shortname is the one that must match with what's in the
Collaboration
folder.Step 2: Open Terminal, type
sudo serveradmin stop teams
This stops the teams service so you can do some file cleanup.
Step 2.5: Make a backup copy of your
Collaboration
folder (default path /Library/Collaboration
). I ended up restoring and starting over several times in the course of my experimentation, and having that backup made life much easier.Step 3: Delete these files: (if you use a custom path for the
Collaboration
folder like I do, adjust accordingly)/Library/Collaboration/dataVersion.plist
/Library/Collaboration/globalIndex.db
/Library/Application Support/Apple/WikiServer/directoryIndex.db
/Library/Application Support/Apple/WikiServer/sessions.db
Step 4: Open
/Applications/Utilities/Console.app
and select the /Library/Logs/wikid
error.logStep 5: Switch back to Terminal and type
sudo serveradmin start teams
This starts the teams daemon, which should automatically rebuild the blog and wiki indexes. Now watch the log closely. If it stops and hangs on a user or group name before you see the word "
Running
", then you'll have to fix things. Look at the last user or group listed in the log, then switch to Finder and poke around that folder (inside the Collaboration
folder). (also stop teams using the command above)If you're not able to navigate inside the
Collaboration
folder (little red permission denied circle), open Server Admin, click the server name, click File Sharing across the top, navigate to Collaboration
by double clicking the hard drive in the list, then below, where it has permissions, set Others to Read & Write, click the drop down button below that, choose "Propagate Permissions", check "Others Permissions", then OK. And remember to change that back to Others None and propagate after you're done.)Now, I didn't have any issues with my groups, but I'm guessing that procedure will be similar to this:
In
Collaboration
, look in Users
, then the username that the index rebuild hung on. In there, compare the list of files in the "discussion
" and "weblog
" folders - for each .plist
in discussion, there should be an identically named folder in weblog. If there isn't, then delete that .plist
file. I don't know how or why these extra files come into existance, but when it happens, the server looks for the blog entry with the same number, and when it can't find one, it sticks out its tongue and stops indexing.For safety, I also deleted the
discussion.db
file in the discussion folder. May not be necessary, but it gets rebuilt automatically, so no harm.After your folders are in sync, start teams and lather, rinse, repeat until the log file indicates the teams daemon is "
Running
".After all this, one of my user’s names still isn’t showing up in my master list of blogs, but typing his username into the URL manually loads his entire page of posts (if you get a “no posts” message, even after successfully reindexing, make sure that user's discussion and weblog folders are in sync - sometimes the teams service started up even though a blog wasn't actually indexed).
Lastly, on a related but different note, if you find that you can no longer authenticate to your blog even after typing your correct password, make sure your OD master has the WebDAV-Digest option turned on in Server Admin under Open Directory > Settings > Policies > Authentication. (then reset your password so the server saves the new hash)
That one took me several hours to figure out, I finally got a clue after seeing this line in the PasswordService log:
AUTH2: {0x4c3f90ef3b3b2bc20000003c0000003a, gustafson} WEBDAV-DIGEST authentication failed, SASL error -13 (password incorrect).
Previous to that I was only seeing this error in the wicked error.log:
Failure: twisted.cred.error.UnauthorizedLogin: Bad username or password: gustafson
If you found me from Google and solved your problem because of anything I wrote here, let me know!
1 I wrote a nifty PHP script that queries our online directory for student and employee names, compares it against the Open Directory, then automatically creates new users and emails me a report. I highly recommend reading Apple’s User Management guide and the
dscl
[Directory Services Command Line utility] man
page.
Wednesday, June 23, 2010
The 48 Hour Film Project 2010
After returning from Apple’s WWDC in San Francisco last week, I had a 9 hour layover at home before my parents picked me up for our road trip out east. We visited relatives in Indiana, Ohio, and Pennsylvania, then I flew home ahead of them on Friday to help with the 48 Hour Film Project kick-off event. While I was not planning to join a team (I was tired after two weeks away, preceded by an intense week prepping and shooting for the 50-Fifty Reel Challenge), I also knew that, if asked, I probably wouldn’t need much arm-twisting before signing on.
Minutes into the kick-off event, Crow and JD, the producers I’d worked with on the 50-Fifty, asked if I’d be interested in joining their 48 crew (technically not “theirs”, since they weren’t producing this time, but rather, “the team on which they were working”). Andy, one of the directors, echoed their request shortly thereafter, and I officially agreed. Who needs sleep, anyway, right?
Following the kick-off, with genre (Suspense/Thriller), character, prop, and line of dialogue in hand (figuratively), we journeyed to Andy’s house, eagerly awaiting news from the writing team upstairs. Knowing there would be an early call in the morning, I went home around 11:00 to get some sleep. When I woke up the script was patiently waiting in my inbox, and I took off for the set.
The shoot overall went well. Aside from Crow and JD I’d never worked with any of these folks before. And I didn’t have a specific job title, so I kind of did everything: AD, camera op, sound mixer, assistant to the DP, PA, etc. What was so awesome about this shoot, though, is that, despite the time pressure, stress, and many of the crew being sleep-deprived, no one stepped on anyone’s toes. I was throwing ideas at the DP, we were both throwing ideas at the directors and the AD, and the collaboration just worked.
I had an hilariously embarrassing moment in the middle of shooting: as we were prepping for a shot, I couldn’t remember one of our crew member’s names. Thinking he was in the other room, I whispered over to Crow, “hey, what’s that one script supervisor’s name? Is it Aiden?” Someone pointed and I realized Aiden was actually sitting right in front of me. Oops. But at least I got his name right. And provided the fodder for a running joke that continued the rest of the shoot.
There were some awesome crew members on this shoot. Smi, our second camera operator, exceeded all expectations. And Jason, our “Boom Goon”, was phenomenal - we literally never had boom shadow or the mic in frame. I don’t know how he did it. And Erin, the 1AD, who was so good with details all around. Definitely people with whom I want to work again.
We wrapped shooting about on schedule and sent the second set of tapes back to the editor to start importing while we cleaned up the apartment where we’d been shooting. It’s quite amazing how quickly that place returned to normal, given the extent of set-dressing/trashing that had been done to it.
Back at the director’s house we ate dinner and gathered the last few pickup shots with our primary actor (who, by the way, was absolutely phenomenal! He’s a theatre guy, never done film before, but he was by far one of the strongest actors I’ve ever worked with).
Crow, JD, and I all went home to shower and change clothes before coming back for the long-haul. When we returned, we set up our LAN party in the dining room: their PC for importing and clipping the sound recordings (did I mention we rolled sound separate from the cameras? It’s like we’re legitimate movie-makers or something), and then my MacBook Pro, second monitor, and some hard drives as a secondary editing machine.
After battling the wireless router (it had run out of IP addresses with all the new computers in the house), we waited. At some point in the middle of the night, we knew the editor would need to leave to go get sleep (what’s that?), so I’d be taking over at that point. Until then, there wasn’t much for us to do.
Then tragedy struck: my voice recorder stopped working, displaying a “memory error”. This has absolutely nothing to do with the 48 competition, but it’s part of the weekend’s story. I’ve had this voice recorder for 5 years, it’s become perhaps even more essential to my daily living than my phone, so I panicked. Crow and I took a middle-of-the-night run to Walmart, the only store still open at that hour, to buy a new one (which, unfortunately, turned out to be a cheap plastic wanna-be, so I returned it a few days later and ordered a quality one from Amazon).
Around 4:00 or 5:00 am, Katie, our editor, was dead tired and needed to go home. She gave me a copy of the Final Cut document (she’d already copied all the footage to one of my external drives earlier in the evening), and, thank you Apple, when I opened it on my computer everything “just worked”.
The directors and I continued doing tweaks for many hours. It got light outside. The composer showed up, we gave him a new rough cut to start working with. Finally around noon we had picture lock. I think. My memory is vague.
Leading up to that, I kept asking “who’s going to do sound syncing and mixing?” Uh-oh. There was no one lined up to sync sound from the recorder to the final picture. And the on-board camera mic recordings truly were not useable. Not a good situation. Worse: no one, including me, knew a good way of syncing all the video and audio clips. I had a couple ideas, but none were ideal due to their labor-intensive natures.
My first thought (which we ended up going with) was to find the marker/clap point in the video, find the same clap in the audio, then do some math to identify the correct audio in-point to set. For each and every clip. Granted, it’s only a 6 minute movie, but that’s still a lot of work.
My second thought was to strip the audio portion from the QuickTime source files and replace it with an identical length track of the audio recordings from the field recorder, spliced together to sync with the video. In an ideal world, that would have worked swell, but I realized (far too late) that in the time-limited world in which we were dealing, this was an inefficient idea. Oops.
On two friends’ suggestion I also tried a program called “Pluraleyes”, but I couldn’t get it to work in the time we had.
In any case, I knew I also had to do color correction, so my laptop would be unavailable to start working on sound for quite some time. We needed Katie’s laptop back if we had any hope of finishing on time. She graciously agreed to drop off her MBP and let us use it, even though she couldn’t be there to help. We owe her so much. With her computer, Crow was able to start audio syncing while I finished color. Now, Crow has never used Final Cut before, because he’s a PC guy. But the interface was similar enough to, and in many cases simpler than, Vegas, which he has used in the past. So with very few questions to me, he was off and running.
At this point I hadn’t slept for 30 hours, so I was getting a little loopy. Apparently I’m funnier, and also more laid-back when I’m tired.
Under time pressure, the color correction took about 30 minutes for every 1 minute of movie. Roughly. Some shots were much easier than others. At several points in the process I declared that really it’s no longer about making the scene look “good” as it it about making it look “less crappy than it was”. That got a good laugh.
Oh, have I mentioned the A camera footage yet? Somehow the XL-1 that was our A camera got switched to “frame mode”. As best I can tell, this is Canon’s way of screwing with indie filmmakers to make the footage look like crap. Truly. I am still completely baffled why they would add a button that changes your frame rate to 7.5fps and crapifies your footage. And somehow, mid-way through the shoot, this button got pushed, so some of our best camera angles for the latter part of the film were unusable. We snuck one or two shots in that weren’t too awful. I applied a motion blur and tween that, on a short clip, makes it almost decent looking. Hopefully the audience will think we added a pseudo-slow-motion filter to those clips on purpose, because that’s what it looks like.
Late Sunday afternoon (movie is due at 7:30), color was done, and then I started helping with sound. We were missing a lot of sound clips initially, so I kept JD busy pulling those up on her computer and flash-driving them over to me. Once I finished the first half of the movie with syncing, I grabbed Crow’s FCP document, copy/pasted those audio clips into my master (another thing that “just works”, thank goodness), and then walked away so he could start mixing things together.
Somewhere in there the soundtrack came down from upstairs, so I dumped that into the timeline. Didn’t have time to listen to it, of course, but at least it was there.
At 6:30, with an hour left before the deadline, we had to go. The car was waiting, along with an AC inverter, so we moved my computer and a hard drive out to our “mobile office”.
Arriving at the drop-off, we had a little more than half an hour. Crow finished audio balancing, the directors and he took one last watch, then I exported and burned the DVDs. We turned the finished product in with about a minute to spare.
Last year I helped with the 48 check-ins, and I was amused by the folks sitting in the lobby doing their final renders at the very last minute. Now I know how they must have felt. And we were lucky: we got ours in on time. A lot of those other teams didn’t. We felt even more lucky because hours earlier the directors were pretty much expecting we wouldn’t finish on time, given all the audio issues we ran into. At one point one of them literally said “we don’t have a movie, do we?”
But it turned out. Katie did a great rough cut, which got me to a place I could finish it. The sound sync issues got resolved, and now I know how to do that next time (I’m even writing a little helper program to do the math for me). And the story itself. It won’t be *the* winner, but it should at least be one that people talk about afterward. I think we have a product we can be proud of. I keep coming back to this mantra: I could have done better, but not in the time we had; I did my absolute best given the situation, I could not have given it any more.
By the time I got home I’d been awake for 40 hours straight. To my recollection, I don’t believe I’ve ever stayed awake that long in my life. It was exhausting, and I’m still recovering, but it was also totally worth it, and I’d do the whole thing again. Not next weekend, but eventually.
Minutes into the kick-off event, Crow and JD, the producers I’d worked with on the 50-Fifty, asked if I’d be interested in joining their 48 crew (technically not “theirs”, since they weren’t producing this time, but rather, “the team on which they were working”). Andy, one of the directors, echoed their request shortly thereafter, and I officially agreed. Who needs sleep, anyway, right?
Following the kick-off, with genre (Suspense/Thriller), character, prop, and line of dialogue in hand (figuratively), we journeyed to Andy’s house, eagerly awaiting news from the writing team upstairs. Knowing there would be an early call in the morning, I went home around 11:00 to get some sleep. When I woke up the script was patiently waiting in my inbox, and I took off for the set.
The shoot overall went well. Aside from Crow and JD I’d never worked with any of these folks before. And I didn’t have a specific job title, so I kind of did everything: AD, camera op, sound mixer, assistant to the DP, PA, etc. What was so awesome about this shoot, though, is that, despite the time pressure, stress, and many of the crew being sleep-deprived, no one stepped on anyone’s toes. I was throwing ideas at the DP, we were both throwing ideas at the directors and the AD, and the collaboration just worked.
I had an hilariously embarrassing moment in the middle of shooting: as we were prepping for a shot, I couldn’t remember one of our crew member’s names. Thinking he was in the other room, I whispered over to Crow, “hey, what’s that one script supervisor’s name? Is it Aiden?” Someone pointed and I realized Aiden was actually sitting right in front of me. Oops. But at least I got his name right. And provided the fodder for a running joke that continued the rest of the shoot.
There were some awesome crew members on this shoot. Smi, our second camera operator, exceeded all expectations. And Jason, our “Boom Goon”, was phenomenal - we literally never had boom shadow or the mic in frame. I don’t know how he did it. And Erin, the 1AD, who was so good with details all around. Definitely people with whom I want to work again.
We wrapped shooting about on schedule and sent the second set of tapes back to the editor to start importing while we cleaned up the apartment where we’d been shooting. It’s quite amazing how quickly that place returned to normal, given the extent of set-dressing/trashing that had been done to it.
Back at the director’s house we ate dinner and gathered the last few pickup shots with our primary actor (who, by the way, was absolutely phenomenal! He’s a theatre guy, never done film before, but he was by far one of the strongest actors I’ve ever worked with).
Crow, JD, and I all went home to shower and change clothes before coming back for the long-haul. When we returned, we set up our LAN party in the dining room: their PC for importing and clipping the sound recordings (did I mention we rolled sound separate from the cameras? It’s like we’re legitimate movie-makers or something), and then my MacBook Pro, second monitor, and some hard drives as a secondary editing machine.
After battling the wireless router (it had run out of IP addresses with all the new computers in the house), we waited. At some point in the middle of the night, we knew the editor would need to leave to go get sleep (what’s that?), so I’d be taking over at that point. Until then, there wasn’t much for us to do.
Then tragedy struck: my voice recorder stopped working, displaying a “memory error”. This has absolutely nothing to do with the 48 competition, but it’s part of the weekend’s story. I’ve had this voice recorder for 5 years, it’s become perhaps even more essential to my daily living than my phone, so I panicked. Crow and I took a middle-of-the-night run to Walmart, the only store still open at that hour, to buy a new one (which, unfortunately, turned out to be a cheap plastic wanna-be, so I returned it a few days later and ordered a quality one from Amazon).
Around 4:00 or 5:00 am, Katie, our editor, was dead tired and needed to go home. She gave me a copy of the Final Cut document (she’d already copied all the footage to one of my external drives earlier in the evening), and, thank you Apple, when I opened it on my computer everything “just worked”.
The directors and I continued doing tweaks for many hours. It got light outside. The composer showed up, we gave him a new rough cut to start working with. Finally around noon we had picture lock. I think. My memory is vague.
Leading up to that, I kept asking “who’s going to do sound syncing and mixing?” Uh-oh. There was no one lined up to sync sound from the recorder to the final picture. And the on-board camera mic recordings truly were not useable. Not a good situation. Worse: no one, including me, knew a good way of syncing all the video and audio clips. I had a couple ideas, but none were ideal due to their labor-intensive natures.
My first thought (which we ended up going with) was to find the marker/clap point in the video, find the same clap in the audio, then do some math to identify the correct audio in-point to set. For each and every clip. Granted, it’s only a 6 minute movie, but that’s still a lot of work.
My second thought was to strip the audio portion from the QuickTime source files and replace it with an identical length track of the audio recordings from the field recorder, spliced together to sync with the video. In an ideal world, that would have worked swell, but I realized (far too late) that in the time-limited world in which we were dealing, this was an inefficient idea. Oops.
On two friends’ suggestion I also tried a program called “Pluraleyes”, but I couldn’t get it to work in the time we had.
In any case, I knew I also had to do color correction, so my laptop would be unavailable to start working on sound for quite some time. We needed Katie’s laptop back if we had any hope of finishing on time. She graciously agreed to drop off her MBP and let us use it, even though she couldn’t be there to help. We owe her so much. With her computer, Crow was able to start audio syncing while I finished color. Now, Crow has never used Final Cut before, because he’s a PC guy. But the interface was similar enough to, and in many cases simpler than, Vegas, which he has used in the past. So with very few questions to me, he was off and running.
At this point I hadn’t slept for 30 hours, so I was getting a little loopy. Apparently I’m funnier, and also more laid-back when I’m tired.
Under time pressure, the color correction took about 30 minutes for every 1 minute of movie. Roughly. Some shots were much easier than others. At several points in the process I declared that really it’s no longer about making the scene look “good” as it it about making it look “less crappy than it was”. That got a good laugh.
Oh, have I mentioned the A camera footage yet? Somehow the XL-1 that was our A camera got switched to “frame mode”. As best I can tell, this is Canon’s way of screwing with indie filmmakers to make the footage look like crap. Truly. I am still completely baffled why they would add a button that changes your frame rate to 7.5fps and crapifies your footage. And somehow, mid-way through the shoot, this button got pushed, so some of our best camera angles for the latter part of the film were unusable. We snuck one or two shots in that weren’t too awful. I applied a motion blur and tween that, on a short clip, makes it almost decent looking. Hopefully the audience will think we added a pseudo-slow-motion filter to those clips on purpose, because that’s what it looks like.
Late Sunday afternoon (movie is due at 7:30), color was done, and then I started helping with sound. We were missing a lot of sound clips initially, so I kept JD busy pulling those up on her computer and flash-driving them over to me. Once I finished the first half of the movie with syncing, I grabbed Crow’s FCP document, copy/pasted those audio clips into my master (another thing that “just works”, thank goodness), and then walked away so he could start mixing things together.
Somewhere in there the soundtrack came down from upstairs, so I dumped that into the timeline. Didn’t have time to listen to it, of course, but at least it was there.
At 6:30, with an hour left before the deadline, we had to go. The car was waiting, along with an AC inverter, so we moved my computer and a hard drive out to our “mobile office”.
Arriving at the drop-off, we had a little more than half an hour. Crow finished audio balancing, the directors and he took one last watch, then I exported and burned the DVDs. We turned the finished product in with about a minute to spare.
Last year I helped with the 48 check-ins, and I was amused by the folks sitting in the lobby doing their final renders at the very last minute. Now I know how they must have felt. And we were lucky: we got ours in on time. A lot of those other teams didn’t. We felt even more lucky because hours earlier the directors were pretty much expecting we wouldn’t finish on time, given all the audio issues we ran into. At one point one of them literally said “we don’t have a movie, do we?”
But it turned out. Katie did a great rough cut, which got me to a place I could finish it. The sound sync issues got resolved, and now I know how to do that next time (I’m even writing a little helper program to do the math for me). And the story itself. It won’t be *the* winner, but it should at least be one that people talk about afterward. I think we have a product we can be proud of. I keep coming back to this mantra: I could have done better, but not in the time we had; I did my absolute best given the situation, I could not have given it any more.
By the time I got home I’d been awake for 40 hours straight. To my recollection, I don’t believe I’ve ever stayed awake that long in my life. It was exhausting, and I’m still recovering, but it was also totally worth it, and I’d do the whole thing again. Not next weekend, but eventually.
“Life should NOT be a journey to the grave with the intention of arriving safely in an attractive and well preserved body, but rather to skid in sideways at the last minute, champagne in one hand, strawberries in the other, body thoroughly used up, totally worn out and screaming "WOO HOO - That was Fun!”
Video Phones - The Future is Here
It's more than just marketing, I do believe this will change everything. I teared up when I saw the two people signing; a phone for deaf/hard-of-hearing folk, wow. Finally, after over 10 years since the Earth: Final Conflict props made me wish for video phones, the first generation has arrived. It won't be perfect, it will take time to go mainstream, but it's here. We're here. The future has arrived, and we get to live in it. How cool is that?
(Full video available on Apple's site: http://www.apple.com/iphone/features/facetime.html#facetime-video)
(Full video available on Apple's site: http://www.apple.com/iphone/features/facetime.html#facetime-video)
Monday, May 17, 2010
Paul Isaacs
Last night, my friend and coworker Paul Isaacs died from cancer, passing peacefully, surrounded by his wife and daughters.
Though I never had Paul as a classroom teacher, he became a mentor in my life in ways words can’t describe. The way he lived his life was a model I respected and admired. His wry sense of punny humor cracked me up almost every time. And his down-to-earth, welcoming voice calmed and gave a sense of peace.
As I’m discovering, befriending members of an older generation comes with a price. Though God alone may count our days, there exists an inherent likelihood that my older friends will die before me, perhaps long before me. I continue to struggle to wrap my mind around that reality. Simply put, I don’t want to.
Life rarely waits for anyone to “be ready”, though. And so, on the same day that I attended a wedding, heard God’s love spoken into my life, worshipped, prayed, cried, and even ran mundane errands, Paul had his last hours.
I found out this morning, the first email came from a mutual friend and coworker a little before 9:00. Official word from Paul’s principal came almost an hour later, after much of Facebook already knew. Finally, later in the day, we were given the go-ahead to post something on the school’s home page.
Days like today ignite in me a passion to work in the news industry. We live in a flat world, the word has to get out, people have to be told. To wait an hour, or worse, half a day, is unconscionable. News ought be instantaneous to the greatest degree possible.
Today God and I aren’t on good terms. If I’m honest, I’m pretty much pissed. Paul was younger than my parents, he has kids about my age, and he was a good man. If ever one needed proof that “only the good die young”, Paul epitomizes that. How God could allow this, why God offers healing to some but not others, these are the questions I’m battling. And I’m angry, and I’m sad, and I’m frustrated, and I’m torn.
And it’s okay, because God is big enough to handle my anger, my frustration, my questions. And it’s okay, because some day I will find peace. Maybe not answers, but peace. Paul did. His family did. I can too. Eventually.
Just not today.
Though I never had Paul as a classroom teacher, he became a mentor in my life in ways words can’t describe. The way he lived his life was a model I respected and admired. His wry sense of punny humor cracked me up almost every time. And his down-to-earth, welcoming voice calmed and gave a sense of peace.
As I’m discovering, befriending members of an older generation comes with a price. Though God alone may count our days, there exists an inherent likelihood that my older friends will die before me, perhaps long before me. I continue to struggle to wrap my mind around that reality. Simply put, I don’t want to.
Life rarely waits for anyone to “be ready”, though. And so, on the same day that I attended a wedding, heard God’s love spoken into my life, worshipped, prayed, cried, and even ran mundane errands, Paul had his last hours.
I found out this morning, the first email came from a mutual friend and coworker a little before 9:00. Official word from Paul’s principal came almost an hour later, after much of Facebook already knew. Finally, later in the day, we were given the go-ahead to post something on the school’s home page.
Days like today ignite in me a passion to work in the news industry. We live in a flat world, the word has to get out, people have to be told. To wait an hour, or worse, half a day, is unconscionable. News ought be instantaneous to the greatest degree possible.
Today God and I aren’t on good terms. If I’m honest, I’m pretty much pissed. Paul was younger than my parents, he has kids about my age, and he was a good man. If ever one needed proof that “only the good die young”, Paul epitomizes that. How God could allow this, why God offers healing to some but not others, these are the questions I’m battling. And I’m angry, and I’m sad, and I’m frustrated, and I’m torn.
And it’s okay, because God is big enough to handle my anger, my frustration, my questions. And it’s okay, because some day I will find peace. Maybe not answers, but peace. Paul did. His family did. I can too. Eventually.
Just not today.
Tuesday, May 04, 2010
Multithreading with PHP
It’s "not possible" according to Google. And maybe true multithreading isn't, but by modifying another user's code I found on PHP.net, this solution worked pretty well for me:
http://www.php.net/manual/en/function.proc-open.php#97713
Now a script that would have taken well over 10 minutes to run takes my server only 1 minute. Sweet.
http://www.php.net/manual/en/function.proc-open.php#97713
Now a script that would have taken well over 10 minutes to run takes my server only 1 minute. Sweet.
Subscribe to:
Posts (Atom)