Woops! Weird things happen sometimes when you try to draw with code. Which is more than half the fun!

I was sad to learn that this print was no longer for sale after hunting for it in several art supply stores. Then I thought it would be fun to muck around in Processing a bit.


I can’t find the name of the designer of the print :(, but the background image in the video (the print I was referring to) was found at PaperMojo.com and it’s a print from Nepal on Lokta paper.

Speaking of drawing patterns in code, I ran across Phil Jones’ Patterning library a few days ago and got pretty excited. It’s for drawing visual patterns using functional programming and there’s also a Processing library option. More examples here and a tutorial here. I will report back when I get a chance to explore!

I haven’t yet managed to put into words what I’m so fascinated by in this space, but I LOVE the idea that you can use words to describe visual patterns (and more generally physical objects). Even cooler, you can invent and adapt the language that you’re writing in so that the words you write get closer to your mental model of the object. This is one of the reasons I’m trying to learn a functional language. I have the sense that it’s going to let me go farther in adapt-the-language-as-I’m-writing-sentences-in-it kinds of programming.

My sister Emma has a Monster High themed Youtube channel where she does unboxing and tutorial videos. It’s a pretty awesome continuation of the sorts of storytelling games we used to play together as kids. She has always brought life to characters in this incredible way. Nowadays she is both working on her own characters and story worlds as a Visual Development student, and bringing great appreciation and joy to the detailed worlds of existing toys.

This week we collaborated to make a video that combines Monster High and digital fab! When I told her about the Othermill (a CNC milling machine that my partner works on the software for), she asked if it would be possible to make nail stamping plates. I didn’t know what those were, so she showed me: little metal plates with embossed decorative designs which can be filled with nail polish and transferred to your nails with a silicone stamp. We are pretty sure that the commercial sets are chemically etched based on the smoothness of the grooves, but after some experimentation we figured out that engraving works just fine!

Here’s the video:

I’m awkward on camera 😛 I’ll get better at that eventually. In the meantime, isn’t this SERIOUSLY COOL?! I have a spirograph set planned: gears for the thumbs and a different hypotrochoid for each finger.

Here’s a wee reference book for Processing, with half blank pages to write in your own things-to-remember. The cover is a procedurally generated composition book (written in Processing, of course!) Link to download here. To make one, print double sided on one letter sized sheet of paper, cut out doubled pages along lines, stack and fold all in half, staple or sew at fold.

mini processing book in hand

            mini composition book blue

Code for the procedural cover is here. I’ll post some downloadable ones as soon as I fix the print size!

For fun: I will send a little book to the first 3 people who request one in the comments. 🙂

Tiniest Processing Notebooks in process of assembly

I suppose this isn’t a hack since this IKEA piece is already made of unfinished wood ready to be decorated, but it does use only IKEA parts! I had to give away my dresser after our recent move since it wouldn’t fit in our new space. I replaced it with a tall, narrow chest of drawers from IKEA called the TARVA which fits in my little closet next to hanging clothes. While I was at IKEA, I fell for these really gorgeous paper napkins (SOMMAR) and decided to grab them for no particular reason (I was very good otherwise and only bought things we actually needed!) When I got home, I decided they would be perfect to decorate the chest of drawers.

IKEA Tarva IKEA Sommar

Lots of iteration followed! I tried Mod Podge first, but it was really difficult to make the napkins lie flat and I didn’t like the plasticky feeling of the finish. I tried ironing the napkin to Heat-N-Bond double-sided fusible adhesive and ironing that onto the wood, then spraying with acrylic sealer, but it made the layers of the napkin peel apart and form bubbles.

What finally worked: peeling the napkin apart and removing only the top decorated layer, ironing that to the fusible interfacing, ironing some interfacing to the other side of that, and using a mix of PVA and Nori to glue it (bookbinding-style) to each panel. Sort of like the reverse of this technique for making bookcloth. Some process pics!

DSC02649Ironing Heat-N-Bond to the single-ply napkin (after stopping to decorate my ironing board cover <3)DSC02627Heat-N-Bond backing removed:DSC02628 Ironing on interfacing:DSC02629Gluing:DSC02637 Glue brush is key:DSC02638 Bookbinding corners:DSC02639 DSC02641All 5 drawer fronts:DSC02643If I were doing this again, I would paint the panels white before applying the napkins – I’m not super thrilled with how the wood shows through in some places (depending on how much I melted the Heat-N-Bond through the layers, I think).

Currently testing different finishes and planning to paint dresser. Stay tuned…

Or: Choose joy over convenience.

I’m in the midst of unpacking and quarter grading so this week’s post shall be brief.

A huge life lesson that it took me too long to learn: if where you live is making you miserable, move. Do it as soon as you can.

I know it’s a huge privilege to be able to, and often it’s really truly not possible. But in many other situations, it’s only massively inconvenient, complicated, and difficult. The dauntingness of the task makes persistent low-level discomfort seem bearable. But you’ve traded the possibility of joy for convenience. That’s a pretty cruel way to shortchange yourself.

Years ago I stayed far too long – twice! – with roommates with incompatible styles of discussion and preferences about how we lived in the space, and we learned that lesson at some cost to our friendships that could have been avoided if we’d all acted sooner. This time around, I stayed four years with carpet that grossed me out and a space that really didn’t have enough light or air. I thought the problem was me for not being appreciative enough of having a space to live in the Bay Area. I should have gotten creative and prioritized finding a way out sooner.

I am so, so joyful and and grateful for my new space.

An assortment of things from my first trip to the Computer History Museum in Mountain View (with apologies for the photo quality).

Mechanical Card Punch machine: I love that they had one you could play with! The mechanism is surprisingly smooth and it required little pressure to make perfect-looking holes.

Mechanical Card Punch

A reference to one of the first ever spam messages – sent by telegraph in 1864! The sentiment about them has not changed much.

Telegram Spam

The Kitchen Computer, (pedestal version with built-in cutting board!) an unsuccessful product from 1969. “For 10,600 you got the computer, a cookbook, an apron, and a two week programming course.” <3

The Kitchen Computer Kitchen Computer Advertisement

This “Silicon Valley Napkin” for an instant napkin business plan is so much in the spirit of today’s Silicon Valley it surprised me that it was from 1986. Instructions: Fill in product specs on side 1; Fill in business plan on side 2; Start the company in your garage; Throw huge rock parties, temper tantrums, anything you want—you have now joined the rich and famous of Silicon Valley!


Silicon Valley Napkin

This absolutely gorgeous little stock ticker machine. I want to make one!

Stock Ticker

Stock Ticker Exhibit Label

All in all a fun trip! I do wish they had more things you could touch and interact with, though. It would be a really fun project to build replicas and emulators of various machines so you could really understand how they worked. Maybe a good future class project!

Last night I went to Code for San Francisco‘s weekly Civic Hack Night. I wanted to learn more about some of the projects and share what I learned with my class. My students are currently researching Open Source projects to contribute to as part of a “Collaborative Computing” unit. I had looked at some of C4SF’s projects online and joined their Slack list. However, I didn’t feel like I had enough information to guide students. What projects were currently being actively worked on? What kind of contributions were they looking for, if they hadn’t listed them under the project issues? Would they welcome remote contributions from new programmers?

code for san francisco sticker

The hack night is held at what I later learned is Code for America’s headquarters, a short walk from Civic Center BART station. It’s a good location if you’re thinking about San Francisco’s civic challenges: there are a lot of homeless people in the area, and despite the many well-to-do tech companies nearby, it is a fairly run-down looking neighborhood.

When I arrived, I was greeted at the door and asked to fill out a red nametag designating me a “new member.” I was then pointed towards the beer and told that food would be ready soon (oh hey, food!) I had arrived early, but everything was already laid out and ready to go: tables in the main room with signs for specific projects and a presentation room with plenty of seating. As a very shy person (though not actually introverted! these are distinct things), I always dread the “mingling” and introducing yourself parts of events like these, so it was lovely that the layout made it easy to find a quiet spot to park myself and get situated before the presentations.

Presentations were roughly as follows: general sorts of updates including announcement of the CodeAcross hackathon, a couple of focused presentations on specific topics (a “civic project lifecycle framework” based on Agile principles, a prototype for a “city agencies leaderboard,” a project called ShelterTech aimed at alleviating homelessness-related problems), then brief pitches for projects looking for contributors. Finally, there was a new member orientation! The facilitators had us all introduce ourselves (about 20 of us). They gave us a definition of Civic Tech: data + a need + tinkering. Then they went over a list of existing projects and offered to personally introduce anyone interested to the relevant project group.

new member orientation

A few of my take-aways from the presentations:

  1. I should have students search through all the Code for America projects and even Civic Tech projects in general rather than only the Code for SF projects. I learned about this useful Civic Tech Project Search, which in itself is a Code for America project. They should join the Slack discussion group, and I will also suggest they actually attend one of the meetups or the hackathon.
  2. This Week in Civic Tech: nice list of articles.
  3. Data is big! I had overlooked the idea of data in thinking about open source projects, but it’s central to civic projects and there are a lot of interesting problems to be explored in data collection, access, and wrangling. Code for America has a whole Data Science team.
  4. Some project ideas are discussed here in the discovery/research phase.
  5. They were warmly welcoming of all kinds of skills and explicitly didn’t assume attendees were all developers or tech-savvy. I especially liked the example of the variety of valued contributors to the Local Free Web project: designers, MUNI riders, front and backend developers, librarians (!), testers, translators, flyer-posters, actors.
  6. I was impressed at the level of organization, and also how welcome I felt at the event. It was very shy-person friendly! It also was a fairly diverse group.

My one critique (and this applies to a lot of tech meetups!) is that when your working day starts at 7:45AM and you’re sometimes up at 5 for class prep, events that go until 10PM and require a lot of brainpower are not ideal! I suspect a lot of service jobs start and end earlier in the day than the typical tech job. I had class the next day so I didn’t stay and hack, but I might be back! In the meantime, I hope these projects catch some of my students’ interest. Planning to report back on how that goes.


I got pretty desperate for chocolate during last year’s no-sugar-November, and even the super-dark dark chocolate bars contained sugar. I was lucky enough to run across this intriguing “brewing chocolate” from Crio Bru at one of those shmancy SF corner grocery stores. You were supposed to brew it like coffee, but lacking much coffee brewing experience or equipment, I made it more like chai tea with milk boiled in with the water. The result is, in my opinion, rich and chocolatey and better than regular hot chocolate. I was surprised that it works with so much water (I find those just-add-water instant cocoa packets watery and gross), but the amount of cocoa butter left in the ground beans must help!


Bring 8oz (1 cup) of water to a boil.

pot of almost boiling water

Lower heat and add 2 tablespoons of ground cocoa beans. Simmer for about 4 minutes.

pot of water on stove with brewing cacao

Add 4oz (1/2 cup) of milk. Bring back to almost boiling, then remove from heat.

pot of water simmering on stove with brewing cacao and milk

Strain and enjoy!

brewed cacao being strained into mug

Some folks have also been cold-brewing this stuff. The ones I’ve seen are grinding their own beans, so I’ll add that it also works with the Crio Bru and is very, very good.

Slightly unrelated but on the chocolate theme: I took my sister to Dandelion Chocolate‘s** wine and chocolate tasting event last year for her birthday. It was so good I literally cried. If you splurge on a single thing in SF (and like chocolate, but I suppose you wouldn’t be reading this if not) I would make it this event.

Also on the theme: why is Peets’ hot chocolate so awful??? This post is turning out to be full of opinions…

I discovered Desmos while subbing a math class. It’s a nifty, nicely-designed online graphing calculator. The students were working on a project where they had to create designs and animations by combining mathematical equations (such as a bicycle and a stick figure dribbling a basketball). I immediately thought “you could fab these shapes!” By which I mean you could use a CNC tool (milling machine, lasercutter, vinyl cutter, embroidery machine, 3D printer, etc) to make them physical.

First, make something! I googled “beautiful parametric equations” and rather liked Lissajous curves (also hypotrochoids, but I wanted to try something new 🙂 ) Plug the formula in, play with parameters:

Lissajous Curve drawn in Desmos

Next, turn off the graph and bold the lines. Click the wrench (settings). Choose Projector Mode, and click on X-axis, Y-axis, and Grid to turn these off.

projector mode and settings

Click Share and then Image to save as a PNG.

share and image  Click on the image to download it:

click to printNow use the Trace function in the software you usually use to make designs for your CNC tool (eg. Inkscape, Illustrator, CorelDraw) to turn the bitmap image you downloaded into cutting lines.

Lissajous shapes with cutting lines

I did some lasercut tests in acrylic and bamboo. These could make good jewelry or coasters!

lasercut lissajous

If you wanted to 3D print, you could try this 2D to 3D app from Shapeways to “extrude” the shape.

Lissajous curve with Shapeways app

(To get it to recognize the shape in the PNG, I had to color it in black and white first. The edges were quite jagged at first because of the pixelation, so I saved out the traced version at a higher resolution before uploading and the final result was smoother).

I think it would actually be really fun to make a cookie cutter but I haven’t figured out how to make the trace feature work in Cookie Caster yet. You could also use a vinyl cutter / craft cutter to make stickers or stencils.