Shifting Ground

The VFX world is rumbling. After years of enduring impossible deadlines, hours, and too often blatant nonpayment, Life of Pi’s VFX Oscar win was the final irony: the studio responsible for the award-winning effects is in bankruptcy.

And if it wasn’t bad enough, the barest mention of the situation got the winner played off in the cheapest style.

And if that wasn’t enough, the director didn’t make a single mention of the VFX responsible for so much of his movie:

Of course you know this means war!

ang_lee_vfx

And others decided to bring the point home in a more generalized way.

But twitter-snark aside, there is starting to be talk of a strike. Will it go anywhere? Desperate workers are often not desperate enough to risk being blackballed, but I think we might have reached the point where they feel they have nothing left to lose.

HOWTO: Change the terminal title when commands are running

In the work I do I often have a lot of terminals open, and some of those terminals have a lot of tabs. Sometimes I start a process that’s going to take a long time and I’d like to quickly see if that process is still running or if it has finished. While this is tricky, it’s possible! This HOWTO is bash-specific and is designed for Ubuntu, but it should work on other distributions with minimal changes. Thanks to this url for getting me started: http://superuser.com/questions/42362/gnome-terminal-process-name-in-tab-title.

Step one is to make sure that your current settings do not change the title of the terminal. On Ubuntu there’s a block of code in the ~/.bashrc file that says “If this is an xterm set the title to user@host:dir“. Just comment out that whole block by putting # characters at the beginning of each line to disable the functionality.

# If this is an xterm set the title to user@host:dir
#case "$TERM" in
#xterm*|rxvt*)
#    PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1"
#    ;;
#*)
#    ;;
#esac

On other systems you will have to look around for where the value of PS1 is set. Look for “\e” — this is the code that tells bash what title you want to use. We want to override this, so delete everything from \e to \a.

Step two is to insert new code into ~/.bashrc (or wherever your system prefers). I put this code right after the existing PS1 code that Ubuntu shipped.

# Custom title-setting code that adds a triangle play-arrow
# if the terminal is not waiting on the prompt
case "$TERM" in
xterm*|rxvt*)
    # This tells bash: before showing the prompt, run this
    PROMPT_COMMAND='echo -ne "\033]0;${THIS_TERMINAL_TITLE}\007"'

    # Edit the title if a command is running:
    # http://www.davidpashley.com/articles/xterm-titles-with-bash.html
    show_command_in_title_bar()
    {
        case "$BASH_COMMAND" in
            *\033]0*)
                # The command is trying to set the title bar as well;
                # this is most likely the execution of $PROMPT_COMMAND.
                # In any case nested escapes confuse the terminal, so don't
                # output them.
                ;;
            *)
                echo -ne "\033]0;▶ ${THIS_TERMINAL_TITLE}\007"
                ;;
        esac
    }
    # The DEBUG signal simply announces the last-run command
    trap show_command_in_title_bar DEBUG
    ;;
*)
    ;;
esac

# Now we can set the title of the terminal with terminal_title my title
function terminal_title ()
{
    export THIS_TERMINAL_TITLE="$@"
}
# Here's a good default
export THIS_TERMINAL_TITLE="$USER@$HOSTNAME"

This code works because of a few obscure features in the bash shell. The first is the existence of $BASH_COMMAND — a variable that holds the value of the currently-running command. Second, the trap command which allows us to take action when commands are executed, and third, the $PROMPT_COMMAND variable which tells bash to execute a command before showing the command prompt. With these features, we can change the title when commands are executed and change the title back when the commands are done executing.

In my case all I do is take the current terminal title and add a play-like triangle character to the beginning while commands are running. When the commands are complete the old title is restored and the triangle disappears. One could extend this feature by taking the value of $BASH_COMMAND and adding it to the title. By default the terminal title is just $USER@$HOSTNAME but I’ve added a function which allows me to change the title to anything I want.

Step three requires you to either log out and log back in for the changes to take effect, or to run source ~/.bashrc in order to execute the commands. Note that some terminals have to be set up properly to allow their titles to be changed. In gnome-terminal, go to Edit / Profile Preferences / Title and Command and make sure “When terminal commands set their own titles” is set to anything except “Keep initial title.” Also, if you have set a custom title in gnome-terminal itself by right clicking a tab and selecting “Set Title…”, you’ll need to erase that custom title by selecting “Set Title…” and erasing the text inside there. This can be a little tricky, and logging out may be the simplest solution. If you’re still not seeing the terminal title change, check echo $PS1 and make sure there is no \e visible.

Now when I run a long compile or test command, I see a ▶ in the titlebar and tab of my terminal. When the triangle disappears I know my command has completed. Please share your favorite extensions to this feature in the comments!

Tracklist from Make It New, December 27th

On December 27th I opened for Perc at Make It New — it was an awesome experience, and having people come up to me afterwards and compliment me on my taste in music is something my 16-year-old self would never have imagined :). I was worried going in because Mixxx had been crashing earlier in the week as a result of me being dumb and using the bleeding-edge development version. But I worked with RJ to fix the problem, and Mixxx worked without a hitch.

There’s a fan recording of the set on youtube:

Actually there was a lot of trainwrecking, for some reason the Cue/Master control on the mixer was broken so it was a little hard to line things up. I’ll see if I can get a full recording from the Mmmmaven guys.

Tracklisting:

  1. Alan Fitzpatrick – Always Something For Nothing (Original Mix)
  2. Cassegrain & Tin Man – Athletic
  3. Paul Mac, Mark Broom – Remember When (Original Mix)
  4. Function, Jerome Sydenham – Computer Madness Re-Vision (Function vs Jerome Sydenham remix)
  5. Macromism, DJ Kool Dek – Shifted
  6. DETTMANN, Marcel – Push
  7. Blawan – And Both His Sons
  8. Slam – Crowded Room (Original Mix)
  9. BAS MOOY – Desolaat (Xhin remix)
  10. ANGELIS, Dimi/JEROEN SEARCH – Rhetorica (Jonas Kopp remix)
  11. Monoloc, Daniel Wilde – When I Get Older
  12. Jeff Derringer – Passenger (Original Mix)
  13. Dadub – Unlawful Assembly (Al Bielek Takeover)
  14. Mike Parker – Moisture (Treatment 3)
  15. Lodbrok – Oil (AnD Remix)
  16. Hizatron, Bashley – Discharge (Original Mix)

(edit: replaced broken ustream link with youtube link)

Linux Tip: Stuttering Audio with Flash and Firefox

Problem: When playing back flash video in firefox on Ubuntu version 12.04, you may experience stuttering audio and dropped frames
Possible cause: pulseaudio may be configured for “simultaneous output”, which adds overhead that may be slowing down your system.

Solution (in my case): Click the volume icon, then click Audio Settings. Make sure the default output device is the correct sound card, not “Simultaneous output.” Also make sure the settings for the sound card are correct, including inputs and codecs. Don’t turn on anything you don’t need.

A note of publicity

Thanks to this here blog, I am now a published photographer. In 2004 Char and I took a trip to Mass Moca and I took some photos of the installations we saw. One of these photos seems to have gotten some extra google-juice because twice now I’ve been contacted by authors wishing to use my photograph of Ann Hamilton’s “Corpus” in their publications. Each time I’ve only asked for proper credit and a copy of the publication.

The first publication to use my photo was a small newsletter, but the second was a little more substantial as I found out when I opened the fairly heavy package I got in the mail:

[800×600][1600×1200]
A weighty tome

“Noplaceness” is a product of Atlanta Art Now and is:

An incisive look at artists whose work reveals the changing perceptions of place and space in the era of globalization. Noplaceness features writing examining the work of over 30 artists in historical and critical contexts, including Scott Belville, Sarah Emerson, Ruth Laxson, Beth Lilly, Ann-Marie Manker, The Paper Twins, Fahamu Pecou, Sheila Pree Bright, Rocío Rodríguez, Angela West, and K. Tauches.

I haven’t read the articles yet, but the production quality is top-notch. The paper is really thick and the (many, many) photographs look excellent. You can even get it on amazon!

And (thanks to the index), there on page 130 (the left):

[800×600][1600×1200]
Not exactly a large print

OK so it’s not a two-page spread or anything. I guess that’s why they didn’t need a higher resolution version of the original. For those too lazy to click on this handy link right here, here’s the original:

It’s too bad that a work of such huge scale had to get reduced to a 2″ image in a critical art book-thing, but at least anyone on the internet curious about Corpus will keep finding their way to my humble blog.

Owen at the Together Center, 3/27/12

I played a 1.5 hour set of deep house at the Together Center this Tuesday. I was only supposed to play for an hour but the next DJ was late. I was running out of tracks to play at that point so I started playing some techno instead. In the following video I start playing around the 1 hour mark.



Video streaming by Ustream

Here’s the tracklist:

  1. Matthias Meyer, Patlac – Salt City (Nick Curly Remix)
  2. HouseRiders – Yesterday’s Future (Evren Ulusoy Remix)
  3. Lips – Mbali – Original Mix
  4. Soukie & Windish – Great Gatsby (Original Mix)
  5. John Talabot – So Will Be Now… feat. Pional (Original Mix)
  6. Daniel Dexter – No House For Old Men (Original Mix)
  7. Dark & Stormy – Feel It
  8. &ME – Glaced (Original Mix)
  9. SIS – Aires
  10. NTFO & Optick – From The Tower (Nikola Gala Remix)
  11. Atnarko, Sam Mollison – Thinking Of You – Pezzner’s Remix
  12. Pete Gooding, James Doman – Oosa – Original Mix
  13. Freak Seven Feat. Aniff – Nano Kids (Vocal)
  14. Tony Rohr – Night Drive (Alexi Delano Remix)
  15. Shifted – Spire
  16. Sandwell District – Feed Forward Test Session (Recorded Live In Berlin 23/10/2010)
  17. Kevin Gorman – Cast
  18. Mathew Jonson – Marionette

Keybinding GTK to shifted numbers

GTK (and I think QT also) has a fairly intuitive system for binding keys to commands: Control 3 is just "<Ctrl>3". However when you want to bind a key with Shift, things get tricky. I had tried "<Ctrl><Shift>3", and "<Ctrl>#", and "<Ctrl><Shift>#", all without success.

To make this particular keybinding work, you have to use the special X11 keysym name for that key. I found permanent url that describes these keys here, and a better list with printable characters here.

So for my example, the proper binding would be "<Ctrl><Shift>numbersign".

However keybindings like this are very tricky and shouldn’t be used in production applications (this example is a personal plugin for GEdit). This is because keyboards in other countries have different symbols over different numbers. So it’s not a given that Shift-3 is the same as numbersign in every country.

On The Boogiedownload — behind the scenes

A while back, Nick over at Beantown Boogietown asked me for a mix to post on his website, and recently I put something together that I thought was worthy of publication. Nick went all-out, doing a little mini-interview and giving the mix a very flattering review.

Check it out.

I do want to get one more thing on the record: although I didn’t have a preset tracklist, this isn’t a one-take mix. I did go back and rerecord a few of the transitions that drifted a little. If I was in the middle of a mix and things started trainwrecking a bit, I stopped everything, rewound the outgoing track to the breakdown, and redid the transition. I did that twice. And then when I listened to the recording I discovered nine or ten minutes of the recording was doubled up, making it unlistenable, so I had to go back and rerecord that section too.

I took these four or five pieces into Ardour and spliced them carefully together. I know, the magic is ruined, etc etc. Sorry. I was just really glad that the messed-up section wasn’t the whole last 40 minutes of the mix instead of just the two tracks.

Rapid Development, aka Chaos

Now is a shitty time to be a GNOME user. However, I’ve realized that’s because now is a really interesting time to be a GNOME developer. The linux desktop is undergoing a period of transition, one that hasn’t been seen since about 2002 when GNOME2 began to replace GNOME1. ((KDE users went through the same thing in 2007 when KDE4 replaced KDE3, to much uproar.))

After ten years of development, the core GNOME libraries have grown old and crusty and not suited to the post-desktop world that phones and tablets and connected TVs are ushering in. Sure, linux was doing fine for a specific arrangement of screen, keyboard, and mouse, but if linux wants any presence on devices that don’t have these peripherals, it needed to change.

For developers, this is a lovely time to throw spaghetti at the wall and see what sticks. There’s a ton of innovation happening right now and lots of experimentation is going on that is exciting to watch. Every day brings an exciting new demo of an idea for workspace management, or search functionality, or UI innovation.

But these new desktops simply aren’t ready yet. The current situation from a user perspective is one of multiple, competing, buggy, slow, unfinished desktops that don’t live up to the functionality that users are accustomed to. There’s Unity, Gnome-Shell, GNOME Classic, Trinity, and KDE4. Many of these desktops use completely new user interaction systems, introducing a lot of unfamiliar concepts while tossing out a lot of a desktop user’s knowledge.

Change is hard, and change from something that worked to something that doesn’t is a recipe for angry users. The transition from GNOME2 technologies to GNOME3 has clearly been bungled. Distributions were too quick to push users out of very capable desktop environments and the “fallback” options (especially GNOME Classic) are too well-hidden and half-baked. Distributions needed to give users more time — I mean literally years — to try out the new desktops and reject them if necessary. Lots of people are sitting on Ubuntu 11.04 or even 10.10 for fear of being pushed into using a new desktop. ((Long-Term Support versions are probably supposed to fill this gap, but many people have already moved to Ubuntu 10.10, which is past 10.04LTS))

I look forward to switching to Unity or GNOME3, but only when I’ve decided that they are ready for me. I’m old enough now that I just can’t put up with a lot of bullshit, and I will stick with what works for as long as I need to. So I’m using GNOME Classic with a bunch of hacks that make it work like my old desktop. It’s probably too late to resurrect the trusty GNOME-panel interface, but there should be a clear, simple migration path from GNOME-panel to the new GNOME Classic Mode. Sure, load Unity or GNOME3 by default, but if the user selects GNOME Classic the old settings should be invisibly ported as best as possible.

Ubuntu sometimes launches the wrong web browser

I just upgraded to Ubuntu Oneiric 11.10, and aside from being forced to abandon Gnome 2 for Unity or Gnome 3, I found an annoying bug that took me a while to fix. Although I have set up Firefox as my default web browser, I was finding that sometimes Epiphany would get launched instead. Specifically this problem turned up in my app PenguinTV.

The reason for this is that although there is a per-user “preferred application” setting, there is also a system-wide setting that can only be changed on the command line. Run this command in a terminal:

sudo update-alternatives --config gnome-www-browser

This will give you a list of browsers to choose from, one of which will be the one you actually want.