Wargames. Hackers. Swordfish. Superman 3. Jurassic Park. GoldenEye. The Matrix.
You've all seen the high stakes hacking scene, packed with techno-babble and dripping in drama. And the command and control center with dozens of over-sized monitors, overloaded with scrolling text...
I was stuck on a plane a few weeks back, traveling home from Las Vegas, and the in flight WiFi was down. I know, I know. Real world problems. Suddenly, I had 2 hours on my hands, without access to email, IRC, or any other distractions.
It's at this point I turned to my folder of unfinished ideas, and cherry-picked one that would take just a couple of fun hours to hack. And I'm pleased to introduce the fruits of that, um, labor -- the hollywood package for Ubuntu :-) Call it an early Christmas present! All code is on both Launchpad and Github.
If you're already running Vivid (Ubuntu 15.04) -- I salute you! -- and you can simply:
sudo apt-get install hollywood
If you're on any other version of Ubuntu, you'll need to:
sudo apt-add-repository ppa:hollywood/ppa sudo apt-get update sudo apt-get install hollywood
Fire up a terminal, maximize it, open byobu, and run the hollywood command. Then sit back and soak into the trance...
I recently jumped on the vertical monitor bandwagon, for my secondary display. It's fantastic for reading and writing code. It's also hollywood-worthy ;-)
How does all of this work?
For starters, it's all running in a Byobu (tmux) session, which enables us to split a single shell console into a bunch of "panes" or "splits".
The hollywood package depends on a handful of utilities that I found (mostly apt-cache searching the Ubuntu archives for monitors and utilities). You can find a handful of scripts in /usr/lib/hollywood/. Each of these is a "driver" for a widget that might run in one of these splits. And ccze is magical, accepting input on stdin and colorizing the text.
In fact, they're quite easy to write :-) I'm happy to accept contributions of new driver widgets, as long as you follow a couple of simple rules. Each widget:
- Must run as a regular, non-root user
- Must not eat all available CPU, Disk, or Memory
- Must not write data
- Must run indefinitely, until receiving a Ctrl-C
- Must look hollywood cool!
I also grabbed a copy of the Mission Impossible theme song, licensed under the Creative Commons. I played it in the Totem music player in Ubuntu, with the Monoscope visual effect, and recorded a screencast with gtk-recordmydesktop. I then mixed the output .ogv file, with the original .mp3 file, and transcoded it to mp4/h264/aac, reducing the audio bitrate to 64k and frame size to 128x96, using this command:
avconv -i missionimpossible.ogv -i MissionImpossibleTheme.mp3 -s 128x96 -b 64k -vcodec libx264 -acodec aac -f mpegts -strict experimental -y mi.mp4
Then, hollywood plays it in one of the splits with mplayer's ascii art video output on the console :-)
DISPLAY= mplayer -vo caca /usr/share/hollywood/mi.mp4
ubuntu@x230:~⟫ PS1="root@$(hostname):~# "; clear