I hereby claim:
- I am kirsle on github.
- I am kirsle (https://keybase.io/kirsle) on keybase.
- I have a public key whose fingerprint is 03AC B9F9 5CE5 A920 871E 94C5 9255 42ED E2E7 1CDA
To claim this, I am signing this object:
## | |
# Problem: sending a binary download in ExpressJS. | |
# | |
# I was trying to proxy download a binary file from S3 and serve it to the user with a different name. | |
# Using the `request` module didn't work; text files came back fine but binary files would be corrupted | |
# in strange ways (see attached diff). | |
# | |
# I ended up using the built-in `https` module and doing it the hard way. | |
# | |
# My theory: the request module expects to only work with text and was performing some UTF-8 coercion |
# minimal example of linking RiveScript to Twilio (untested) | |
from flask import Flask, request, redirect | |
from rivescript import RiveScript | |
import twilio.twiml | |
app = Flask(__name__) | |
bot = RiveScript() | |
bot.load_directory("brain") | |
bot.sort_replies() |
I hereby claim:
To claim this, I am signing this object:
# Function that prints the branch name. | |
git_branch() { | |
branch=`git branch 2> /dev/null | sed -e '/^[^*]/d' | perl -pe 's/^\*\s+//g'` | |
if [ "$branch" != '' ]; then | |
echo -n " ($branch)" | |
fi | |
} | |
# Integrate it into your $PS1 prompt. | |
# Would look like: [user@localhost myapp (master)]$ |
/home/*/logs/*.log { | |
daily | |
missingok | |
rotate 14 | |
size 50M | |
compress | |
delaycompress | |
notifempty | |
create 0640 www-data adm | |
sharedscripts |
This is the code I used to make an alarm clock out of a Raspberry Pi (model 1 B+, 512MB RAM) that plays motivational speeches at 6:30 in the morning to get my ass out of bed.
At first I was using a CLI YouTube client, but it would hang after a while due to not running on an interactive console
(being launched by crond
), and the audio support on Pi's have always been somewhat flaky.
I ended up using youtube-dl
to pre-download a playlist and using omxplayer
for its hardware-accelerated decoding
support. Works pretty well, except omxplayer
has no support for things like "playlists" or "shuffling" so I needed
This describes my setup for using DigitalOcean Volumes (disk images attached to my VPS) for off-site backups and keeping them encrypted-at-rest when I'm not actively writing or reading to the disk image.
Basically it consists of: