The Programs of my Last Week at Rent the Runway
This Week’s Program: Apr 18 - Apr 22
After 2+ years as Engineering Director at Rent the Runway, it’s time for me to take my leave and start a new adventure. Today is my last day. I’ve got some feelings about it but I’ll not share them here. I’ll just say that I worked with some really great folks.
I’m taking some time off between now and my next gig (which I’ll announce later). I might take some time away from coding but we’ll see how I feel when Monday rolls around.
This week, I finished
yak shaving and now have
a working Vagrant environment for sonic-sketches
.
7e8a50040e4835c166655104488d030381a1feb6
After last week’s agony, I finally manage to get sonic-sketches to run
inside Vagrant’s virtualized Ubuntu environment. This commit
represents a bunch of work to get the machine set up correctly. I pull
in the openjdk-8-jdk package from a
ppa. I also pull in the
supercollider
package. I use
debconf-set-selections
and set
DEBIAN_FRONTEND=noninteractive
so that I can download
jackd2
without a
tty. I use cat
with
a here document
piping into tee
to configure priviledges for dbus. Finally I make
downloading lein and the project dependencies part of the provisioning
process.
After some extra commands on the box I finally am able to run lein
trampoline run
and produce a
song for Monday.
I give myself some additional
TODOs
to
ensure that the system is totally provisioned and set up correctly.
3d4eb196fe1facc25dd5822a1107a8665df6cc69
Here I add a separate provisioning step, set to always run. This
starts jackd
. I use
nohup
so that the program continues to run even when I log out. I close
stdin
(that’s 0<&-
) and
redirect both
stdout
and stderr
to a log file. Cheap
daemons done
quick.
d7062d8b116f18e3ccab252b8acea441fcbae92e
I use Bash’s
here string operator
to set debconf
. This is a neat Unix gag.
942122298a90e139559460bb27be6418c043981d
I mark another TODO
done when I set up a new provisioning step that
copies the Forecast API Key from the Host environment to the Guest’s
(those are virtualization terms) configuration.
e4474ce3a6f5e25a86e0e3203320c25fb97dfa71
My last TODO
is completed when I use Vagrant’s
file
provisioner to copy the Host AWS credentials to the Guest.
I can now run vagrant up
, vagrant reload
, and run sonic-sketches
entirely from within this box. Victory is mine!
I try to use Otto again but ran into this issue that doesn’t seem to be resolved yet: https://github.com/hashicorp/otto/issues/363
206976878ce766c511b3de2d758fff5a66d863bf
I bring in a professional logging library:
com.taoensso/timbre
to
replace my println
statements.
Now that I have a Linux environment that can reliably run my program, the next step is to get that environment into the cloud. I’ll likely be turning to another HashiCorp product: Packer. I expect to encounter the unexpected.
Until next time,
🐧 Mark