Saturday, May 28, 2011

ScribblerToo

Here's something awesome for you all to play with: ScribblerToo. With it, I have made the following:


The obligatory Pentapede (in a hat!)


Happy face!


Cheerful landscape on a sunny day

Sunday, May 15, 2011

The Doctor's Wife, Doctor Who, S.6, Ep.4 (Review)

Neil Gaiman combines Doctor Who, The Hitchhiker's Guide to the Galaxy and Harlan Ellison's "I Have No Mouth and I Must Scream" into a story filled with unrealized potential.

The Doctor, receiving a distress call, apparently from another Time Lord, rushes the TARDIS beyond the universe to a place almost, but not quite, entirely unlike a soap bubble on the edge of the universe. The TARDIS' matrix is captured by a "family" trio and stored in Helena Bonham Carter (played by Suranne Jones), which allows her (the TARDIS) to finally express to the Doctor how good it is to meet him. Unfortunately, the planetoid-junkyard they've landed on is actually a malevolent TARDIS-devouring space urchin called "The House." The House, upon learning that the Doctor and the TARDIS are the respective last of their kinds, hijacks the TARDIS for a joyride, with Amy and Rory inside.

After two of the trio, "Auntie" and "Uncle", die for no particular reason, the Doctor and Helena attempt to construct a minimally-functional TARDIS from the half-digested remains strewn about, and the House entertains itself (at Rory's suggestion) by torturing the two humans and apparently killing Rory twice (but it's okay, he picked up some extra 1-Up mushrooms after that nasty bit with the Romans so he's safe).

Now en route, the TARDIS and the Doctor telepathically guide Amy and Rory to an archived control room, where they land, and callously obliterate the ood that the House was controlling. Finally, the Doctor tricks the House into bringing them all to the main control room ("Don't throw me in the briar patch!"), Helena dies and the TARDIS' matrix regains control of the TARDIS. Everyone lives happily ever after, especially Amy and Rory, since they no longer have to sleep in bunk beds.

Throughout the entire episode, I just can't shake the feeling that Gaiman doesn't *get* it. His attempts at humor are lame ("humans are bigger on the inside!"), the Amy/Rory chase sequence in the TARDIS is boring, and, while some of the ideas are cool, they just aren't well executed.

Sadly, everyone else seemed to really enjoy this episode, so I'm sure we'll see more like it.

Saturday, May 14, 2011

R'thoria's Used Plot Elements: Dr. Who edition (Vol. 2, Ep. 004)

A fresh sea breeze blowing on your face; the sun shining pleasantly down; the gentle rock of a ship as it makes its way across the boundless ocean! What more could a young lass ask for? Pirates, that's what! Scurvy sea dogs, out for adventure and treasure, buckling all the swashes that are fit to buckle. A rousing tale of adventure, set on the high seas.

But, what if your budget doesn't allow for exotic locations? What if you're stuck filming inside all day due to the rain? (It gets so nasty sometimes that the actors just REFUSE to go outside!) Then it's time to turn to the old nautical standby, the Becalming! That's right, no sailing anywhere for your characters this week, the winds have died and the ocean is calm and still. Supplies are running low, tensions are high... and crew members start disappearing! Is it murder? Is mutiny cautiously lifting its fuzzy head above decks for a quick peekaroo?

No! The scourge of all seafaring folk awaits, turning to dust all who hear its song. It's a... siren! But not just any siren, a ghost siren! Doomed to spend eternity attacking passing ships with its plaintive lament, until it turns out it's actually an alien hologram! Bet you didn't see that twist!

The oldest and greatest threat to mankind has always been itself, or so it is believed. But what if there were a vast network of creatures that could control your very thoughts and actions, and erase every memory you ever had of them? Well, you need look no farther than--!

You'll want to look hard and deep at the universe when you next see it. Deeper, deeper, and just beyond that you'll find the best plot bubble ever, resting iridescently just tangent to the edge. There, in a little planetoid we like to call "the scrapyard at the end of the universe" (apologies directly to the late, great Douglas Adams from his good pal, Neil Gaiman), lurks a monster, ready to devour the oldest and wisest of your troupe!

Just kidding, I really meant "devour the empty corpse of the silliest contrivance dressed up as an opportunity for character development yet"! What a lark!

Well, before you go, don't forget to take a look at our impulse buy items! Slightly tarnished TARDIS control rooms, .50 nuyen apiece. Space-time eversions that seem complex but are actually quite mundane, .25 nuyen for two! And you'll want a six-pack of Rory Williams, just in case you have to knock a couple off to pull the plot out of the doldrums!

As always, when it's time for Action, Adventure, and the loudest sonic screwdrivers available, come on down to R'thoria's Used Plot Elements!

Friday, October 01, 2010

Upcoming Concerts

October is going to be a busy, busy month for me. In addition to (hopefully) releasing a project at work, I have two BrightonMusic concerts (where two of my compositions are to be premiered!), one Denver Pops concert, one Denver Pops dance, and a wedding with the quartet.

Holy crap! I think I'll take November off... (I wish!)

If you're able to make it, here are the details for the concerts...

Denver Pops Orchestra - with Bell'A'Capella
October 2, 2010. 4pm
A pops-style concert, with a ballroom, tables and refreshments!
Denver Highlands Masonic Center
3550 Federal Blvd
Denver, CO 80211-2802



BrightonMusic "Homespun" Concert, featuring local arts, crafts, and music
October 10, 2010. Exhibition at 3pm, concert at 4pm.
First Presbyterian Church of Brighton
510 S 27th Ave
Brighton, CO 80601-3446


and

October 17, 2010. Exhibition at 3pm, concert at 4pm.
The Armory at Brighton Cultural Center
300 Strong Street
Brighton, CO 80601


Friends of Traditional Dance's Wild Goose Ball (Denver Pops / Mostly Strauss)
October 23, 2010. 8-11pm
Lory Student Center (CSU Campus)

Friday, September 17, 2010

How to rewind ("back up") a git-svn repo

My company uses Subversion for most of its version control needs. But, I find I like the flexibility git affords me better. So, I've been using git, via git-svn, for some time now, with generally only a few problems.

However, not long ago I transfered a repository to another computer, and messed up my git settings (I set AutoCrLf to true... oops).

Anyway, this messed up my repo pretty good, to the point that I couldn't even do a git svn rebase without it failing with the error "Incomplete data: Delta source ended unexpectedly"

Turns out, in order to fix this, you have to re-get the entire repository, or at least without re-getting the commits that were checked out with AutoCrLf (remember, I had the git repo from another computer, so most of the history was good).

So, how do you rewind git-svn to a particular revision?

Thanks to the handy git-svn documentation:

git svn reset -r [svn revision number] -p

And then, just git svn rebase as normal.

Sunday, August 29, 2010

Sigurd Jorsalfar: Triumphal March Op. 56 (Edvard Grieg) for String Quartet

I've just made available an arrangement of the Triumphal March (Huldigungsmarsch) from Edvard Grieg's Sigurd Jorsalfar, opus 56, for string quartet. It is available at emeraldimp.com and IMSLP.org.

Tuesday, August 17, 2010

Saturday, July 31, 2010

Recovering Photos from a Memory Card in Linux

Well, this is one of those "mostly for me" posts but, in case you find it useful (and I make no guarantees that you will! :-), here is how I recovered some photos from a memory card.

First: Don't use the card! If you do, there's a chance the data you're interested in may be overwritten.

(Optional: Instead of putting the card on the shelf, I created a backup of the data on it, like so (/dev/sdc being the sdcard; you'll have to check to find out which device is correct by mounting the card and looking at dmesg):

> dd if=/dev/sdc  of=~/image/tempfile

This may take quite a while, depending on the size of your card.)

Second: Get the TestDisk suite. We're going to be using PhotoRec.  If you have Ubuntu, you can do:

> sudo apt-get install testdisk

PhotoRec will actually recover a number of different types of files (see their website for more details). It works by reading the raw data and determining the file type, and then saving the file to a recovery location.

Third: Run PhotoRec.  If you copied your card to a file, you can run it like:

> photorec /path/to/sdcard/file

Otherwise, you can just do:

> sudo photorec

In either case, you'll have to select the "device" (be it file or actual hardware) you want to recover from, and then the partition type (if it's an SD card, you're probably fine with "Intel"), and then the actual partition (again, for an SD card, look for FAT32), and then the filesystem type (probably other), and then whether you want to search the whole partition, or just the free space (ie deleted files). I went for whole partition because I wasn't sure whether the files were deleted or not.  Finally, you have to choose where to put the recovered files (press Y when you've navigated to the correct spot).

Fourth: take a break and let PhotoRec work. Depending on the size of the card and the number of files that are on it (deleted or no!), this may take a little while. (I had about 1500 files recovered in about 20 minutes.)

Great! All your files are back! Woohoo! Now, it's just a matter of sorting through all 1500...

Unfortunately, the files don't have useful names (or mine didn't... names were like "f1071616.jpg"). However, JPG files (can) contain metadata, stored in EXIF. Most digital cameras automatically include information about the camera and the picture, like model, exposure, and... creation time! (Assuming you set the date/time on your camera...)

So we can, at least, give the files somewhat useful names now.

Fifth: Make a backup of your recovered files, just in case something goes wrong. You don't want to have to recover them again.

Sixth: It's time for the magic of Python!  Here's a handy little script I whipped up to pull out the creation time and rename the file. Note that you'll need to have the Python Image Library (PIL) installed.

renameJpgByDateTime.py:

#!/usr/bin/env python

from PIL import Image
from PIL.ExifTags import TAGS

import os, shutil

def renameJpg(fn):
    i = Image.open(fn)
    info = i._getexif()
    for tag, value in info.items():
        decoded = TAGS.get(tag, tag)
        if decoded == 'DateTimeOriginal':
            filePrefix = value + "-"
            shutil.move(fn, filePrefix + fn.replace(filePrefix, ""))

dirlist = os.listdir('.')

for fname in dirlist:
    if '.jpg' in fname:
        renameJpg(fname)

Then, go to the directory that contains the files, and run the script (don't forget to set it to executable):

> ./renameJpgByDateTime.py

And there you go!

Saturday, June 26, 2010

Viola Love Triangle!

In response to ASCAP's greedy small-mindedness, here's another CC-licensed piece by me: Viola Love Triangle (for viola trio), available on my website as usual. Enjoy!

The City Born Great - How Long 'Til Black Future Month?

The second story in N. K. Jemisin's anthology How Long 'Til Black Future Month? , "The City Born Great," is an exciting ta...