show and tell for hackers in DC.

Round 47: Savage Curricula

15 Aug 2017

Jessica Garson - @JessicaGarson

A tool to help women get the credit they deserve.

Two years ago, Jess received a DCFemTech award recognizing her as a powerful developer in the DC Tech community. It was a really validating and important experience for her, and Jess realized that a lot of talented women weren’t getting the recognition they deserved.

So she created a list of all of the awards that have open nominations (and pull requests are welcome if she’s missing some!) so that other women could nominate one another – and women could get the recognition that they deserve.

If you want to contribute, you can go here: and fork the repository, then add in your changes and submit a pull request.

Coming soon: a video on how to submit a pull request, to make it easier to contribute.

Why did Jess make this? She wants women to get recognition for the important work they have done!

There is no good public documentation of awards that normal people can nominate for. Jess’ work is filling an interesting gap.

Shout out to by Kate Rabinowitz, a collaborative list of women in tech in DC (and Austin and Denver!) that you should invite to your meetups!

Shannon Turner - @svthmc

Zero-Width Steganography. Hide a secret message in plain sight. Given two pieces of text input, the webpage lets you hide a secret message inside the other message by using zero-width characters.

It uses two zero-width characters and encodes the string in binary.

She hid the source code for the website inside the website

Travis Hoppe - @metasemantic

Hiding text within a webpage using nothing but misleading fonts. This will hopefully be coupled with a secondary presentation by a poet using her work in this medium.

Steganography through fonts

A computer would read the word “WRONG” but a human would read the word “RIGHT”

So Travis created a custom font that maps the curves of each letter.


Live Demo:

It’s automated! Python scripts will take the characters that you’re looking for and figures out all of the characters it needs to create additional fonts for. Sometimes this means making lots of different fonts, which can take a long time to process all of them.

A tricky part is that the spaces don’t always line up, so Travis needed to use non-breaking spaces and kind of fake it.

(Essentially all of the custom font tags are spans in HTML – not valid HTML but it still works!)

Matilda Young

Poems written using Travis’ PDF hack.

Poems all have forms and constraints. Constraints force you as an artist to think differently.

Travis’s Form Constraints: Character for character, relative length of line

Questions this form presents: What does it mean to trick text? What appears? What disappears? What does it mean to interact with the text in a particular way?

Live demos here:

A really powerful poem on the lives lost to police violence:

Jay Kay

Pandemic emulated as a text-based choose your own adventure (in Python).

Choosing random actions, the emulator usually simulates a world destroyed by pandemic in <40ms

Pandemic is a cooperative board game where you have to eradicate all of the diseases on the board before they destroy all humanity.

Jay created a bot that would randomly choose actions and take turns to see if the bot would actually win a game!

Usually it loses, since the actions taken are random.

Died in 40ms from Eight or More outbreaks!

10 games played in 21ms - all

But right now you can take data from all of the moves and use it as a data set to train with Reinforcement learning. Train it for something similar, not just to win, but to survive. Maslow pyramid of Pandemic.

One outcome might be to try to survive as long as you can.

Or, can you reward getting five cards of the same color in your hand? Then can you reward having five cards and to be on a research facility?

Neural networks are good approximators of complex states, and this would be the right way to approximate how to solve this.

Grant Harper

A cheap way to run a fully customizable blog with a unique domain name using the static CMS Jekyll and AWS S3 web hosting.

Why you should use AWS and S3 for your blog.

Storage: cheap for a low-traffic blog, $0.023 per GB

Turns out it’s about a penny per month!

Uses Jekyll locally to compile markdown into static HTML/CSS, then adds it into a S3 bucket that’s routed to the internet with Route 53

More secure than WordPress, which is a favorite for hackers when authors fall behind on their updates.

A full writeup on it all:

Katie Jolly

Sharing some insights from #WITbragday on Twitter! #WITBragDay emerged as a response to that awful, sexist Google memo that circulated internally – let’s take a day for women in tech to brag about their accomplishments and show the world just how much they’ve accomplished.

Ended up with about 7200 tweets – mostly on Friday night around 6:30 PM Eastern. Mostly trended in the US and the UK, but Germany had a lot too.

Katie did a term frequency to figure out how many terms to figure out the most commonly-used words.

Words like “I’m”, “team”, “amazing”, “awesome” were the most commonly-used, and it’s interesting to see how women in tech talk about themselves when encouraged to.

Katie then did topic modeling to figure out the different broad categories that women were talking about it

Uses Rtweet to get all of the tweets

Anna Petrone - @1littlevictory

My first Django app! I’m trying to learn Spanish and I wanted a way to quickly find words that I don’t know and save them. So the app shows you news articles (in English or Spanish) and creates a worksheet for you to try to figure out the translation. Whenever you don’t know how to translate a word or phrase, you can click on it to reveal the translation. Then you can save the word to your collection. A separate page of the app contains quizzes based on your saved words.

Learning languages is fun! But I really wish I had a digital “click to save” for everything I want to read. Even in English, how would you say this in Spanish?

So Anna created a website that parses out the text of articles, creates a around each word. Forcing yourself to write out the word, you’re going to learn it much better.

Yandex translate API – leaves a lot to be desired but it still works. And it caches every lookup in the database so you never have to look it up more than once.

Owen Diehl

Bluetooth beacons are relatively cheap ($20) Owen experimented with transmitting bluetooth notifications via the Eddystone format. Eddystone URL can transmit a URL: he’s transmitting a link to the Hack && Tell meetup page! These show up on Android devices as “Nearby” notifications

You can assign messages to the beacon and if you’re nearby, have bluetooth and location enabled, you can receive the messages.

Beacons are one-directional (pushing information only)

Aaron Freidus - @golduck

Hopefully you’ve seen It’s Always Sunny in Philadelphia

Created a serverless slack app running in node on a AWS Lambda instance, which creates the image, uploads it to imgur, and then runs it in

The API documentation for Slackbots isn’t great though

If you want it in your Slack, you’ll need to go to – it’s not an authorized app though

Code lives here:

Use with /sunny /adult - also does adult swim cards

Jim Webb

Speech to Pictogram

Using the Google transcription service, which isn’t super accurate

Live demo:

Creates a powerpoint-style slideshow presentation based on the words it hears you say. - Javascript natural language processor that’s super fast. Pulls out parts of speech