show and tell for hackers in DC.

Round 70: Allegorical Hypotenuse

15 Aug 2019

Big thanks to Social Tables for hosting!

Food and drinks are sponsored by the pseudo-anonymous Jay Kay! Thanks Jay Kay!

Want to be an official sponsor? Check out https://dc.hackandtell.org/sponsor.html

Event link: https://www.meetup.com/DC-Hack-and-Tell/events/263572922/

Notes copied directly from the hackpad!

John Hazard

Tableau visualizations of Ethnic and Gender Diversity in 18 Metropolitan Museums

https://public.tableau.com/profile/john.d.hazard#!/vizhome/EthnicandGenderDiversityinUSMetropolitanArtMuseums/Story1?publish=yes

Study published in March re: Ethnic and Gender Diversity in 18 art galleries

Tableau is a data visualization platform; import data sets in any form

But the visuals provided by the researchers were pretty technical, so why not make the visualizations a bit more accessible?

NA: [demographic category] is unknown The data for the study was collected via web scrape of the catalog; so NA “could not determine” the gender or ethnicity Mechanical Turk was also used to crowdsource the data

Gender: 7865 men, 1151 women represented; 1092 NA

Amount of artists, represented by ethnicity or gender, in the collections of each gallery

Joey Shepard

I made a program that improves calculator firmware written in 6502 assembly language by analyzing program flow then reallocating memory usage for local variables in functions.

Improves the calculator firmware code. C source code makes the assembly source code which makes the firmware that runs the device.

Writing assembly, you don’t get to take advantage of conveniences like memory management and local variables. Variables get stored on the stack, but stack has slow memory access on the 6502.

First 256 bytes of memory is the fastest memory access.

Analyze the flow of the program to see which functions get called and can we share memory to save space (generating a call graph to see which functions call which).

What to do about recursive calls?

Writing assembly yourself, you get to choose. Since stacks are very slow on the 6502, you could avoid recursion since you know from the assembly what the penalty is. If you really want to do recursion, you can copy the fast memory the function uses to a slow stack somewhere else and restore it when the functions returns.

Aaron Schumacher

I’m playing with the event sourcing pattern for a little web app I’m writing. I’ll talk about what event sourcing is and how I’m implementing it in Python.

https://martinfowler.com/eaaDev/EventSourcing.html

Inspired by “Designing Data-Intensive Application”

LMAX Architecture – 6 million orders per second on a single thread (that’s fast!)

Event sourcing a web-app. State: databases (Redis can be a great single-threaded serializer)

Any action that changes state has to be recorded in event log. Any action has to be re-playable from the event log. Exactly-one re-play semantics (only replay something once).

How to log in to this web app? Give email to system, system generates a login token good for one hour

Steve Trickey

Ensmartifying My Doorbell

Take a Skypoint doorbell made by SadoTech, add a raspberry pi zero W, a pinch of resistor and dash of capacitor, season with Amazon SNS (simple notification service) and viola! Smart Doorbell!

Deets at google presentation thing. Bought a fixer-upper in Arlington.

Have no doorbell, and no money!

But it’s not a smart doorbell, let’s fix that!

Drilled a hole in the back, added a resistor and capacitor, then throw a Raspberry Pi Zero W running headless and connected to Amazon Web Services’ Simple Notification Service

Write some python: gpiozero to handle General Purpose Input/Output on the raspberry pi

Using the LightSensor class: when volts > threshold, the doorbell has rung, so let’s connect to AWS and send a text message

Be careful with your micro SD cards! If you crack them, they are dead!

Post Mortem: Live demo didn’t work because the doorbell daemon failed to start. It was a timeout issue. I added a longer timeout in the systemd init script and now (fingers crossed) it works!

Matilda Young

30 Days / 30 Poems: Mostly No Problems

Poetry is a party trick…

Sometimes poetry is a party trick; sometimes it’s a series of challenges for yourself.

30 poems in 30 days → It’s not always going to be great.

It’s about the process, not the outcome! Maybe your poem that you made in 24 minutes on your way to work would be helpful later down the line

By paying attention and looking at stupid shit on the internet, things would come to me.

Takes about a week for the fear to subside!

Byron Gaskin

pic2pick - a bot to autopost images on Instagram

https://github.com/ByronJayJee/pic2pick

Last Hack and Tell - a bot that analyzed the photography

Previously had 9000 unpublished pictures, create a bot to post it in four different categories

But how to take a Jupyter Notebook with Machine Learning to turn it into an App?

Grab random images, read image metadata (Python/Flask data server)

Right now, the server only runs locally and very slowly with a limited subset of images

Right now, images are on Google Drive and that requires OAuth2

Needs image manipulation (filters, rotate, crop)

Currently no text box to make fake deep or deep fake instagram captions

Make Instagram mockup using chosen picture and last 8 instagram posts

Need to figure out how to post to Instagram

Writing the Python server was easy; needed to write a flask app to handle the web app routing and function call. Analysis and server side both written in Python, so that part was easy

Images have all been pre-analyzed and there’s a CSV that

Insta: @byronjayjee.photo

Nathan Epstein

Many of my projects are inspired by cellular automata

Fournier transformation → takes patterns that exist in space and transforms them to

Would there be some smooth transition?

Impulses → if you take the transformation of an impulse (one single point), it’s very difficult to represent this as a frequency

Exploring that idea, why not try variations on these impulses?

What happens?

Let’s animate all of the transforms!

Lost a lot of interesting data when rounding them down to raster images

As long as you mask out the same pixels, you can smoothly transform and animate

Colors are done with three color channels, stacked on top of each other

Travis Hoppe

Buddhabrot-style polynomials

https://thoppe.github.io/zerozerozero/

Back to the math roots! Complex numbers are an under-explored topic for making artwork.

Idea: take a real coefficient polynomial and add many iterations of complex perturbations. Plot the roots and make pretty pictures!