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
Notes copied directly from the hackpad!
Tableau visualizations of Ethnic and Gender Diversity in 18 Metropolitan Museums
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
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.
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.
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
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!
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!
pic2pick - a bot to autopost images on Instagram
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
- Single people
- Multiple people
- Colors & Textures
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
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?
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
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!