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
root@x230:~#
That latter "hack", as well as the entire concept of hollywood is inspired in part by Kees Cook's awesome talk, in particular his "Useless Hollywood Drama Mode" in his exploit demo.Happy hacking!
No comments:
Post a Comment
Please do not use blog comments for support requests! Blog comments do not scale well to this effect.
Instead, please use Launchpad for Bugs and StackExchange for Questions.
* bugs.launchpad.net
* stackexchange.com
Thanks,
:-Dustin