The Tiniest Book of Processing

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

IKEA TARVA hack in progress

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…

If You Can Move It, Move It

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.

Computer History Museum

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!

Visit to: Code for San Francisco Civic Hack Night

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.


Ridiculously Chocolatey No Sugar Hot Chocolate

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…

Squares, Spirals, Zigzags

Here are some handouts I made for a code + digital fab workshop at LWHS using Snap! The class description:

Computer Fabrication. Learn how to draw beautiful patterns with a few lines of computer code, then turn your designs into jewelry or decorative decals using a laser cutter and vinyl cutter.

A couple things made by the (wonderful and enthusiastic!) group of parents who attended:

Desmos to Digital Fab

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.

Pair Programming Circle

I’m not sure where I got this idea, possibly I made it up! In any case, the “pair programming circle” has turned out to be one of my favorite class activities. It helps students practice working with different partners and in different roles, helps spread individual knowledge around the class in a way that supports the shyer students, and (I think) is quite fun.

Here’s how it works:

Set up pairing stations: one computer for every 2 students. Number or label the stations in some way.

Students are randomly assigned to stations to work on a project in pairs. One student is designated the navigator, one the driver. After a set period of time, the navigator moves to the next station and becomes the driver for that station. The driver stays at the same station and becomes the navigator for a new driver from the previous station.

The computers stay where they are, and the code on that computer is built up by everyone who works at that station. One of my favorite things about this is watching students take a technique they figured out with their partner and teach it to their partner at the next station.

pair programming circle illustration round 1
Round 1
pair programming circle illustration round 2
Round 2








To help keep track of the stations, I wrote a Processing program to randomize pairs and tell everyone when to change stations. I display this on the projector. It looks like this:

Screen Shot 2016-02-07 at 5.07.46 PM

Here’s the source code. Install Processing to run. Edit the code to choose the length of time and teacher/student names (the teacher is included in the rotations if there is an odd number of students that day).

I put some thought into the switching order before setting this up. I like having the driver stay and become the navigator because it positions that person as an expert on the latest code who can catch the new driver up. I think it can boost confidence in students who feel less confident about their programming skills, and can help mix up any subtle power dynamics that the group has gotten stuck in. Especially if the teacher ends up in the rotations.

The biggest challenge with this activity is having enough time! I’m still figuring out the best timing for each rotation. I think around 15 minutes is a pretty good start. I set up the pairing stations ahead of time when I can because it’s amazing how much time that can take (takes students a little while to transition into class, understandably…and then there is always some unanticipated technical issue with student computers). The first time I ran this activity, I gave students some starter code and asked them to build on it however they wanted. I forgot to account for the time brainstorming & design take! Now I give them slightly more structured goals for this particular activity. If I had an extra prep day, I might have them do the brainstorming and design during the previous class in preparation for the activity.

I like to play this video to help explain the roles of driver and navigator. I’m still looking for the perfect pair programming video though. I like this one because it’s fun, short, and clear, but I really want to find a few minutes of video of programmers working on some specific code together to model what kinds of things they communicate about as they are working. They don’t show enough of the girls’ project here for that. If any programmers out there would be up for letting me film them during a pairing session to share with my students, please let me know! 🙂

(Side note about the comments on this video: it makes me sad to see peoples’ bizarre and straight-up harmful beliefs about what “coding” is and isn’t. Especially the programmers, who should know better! Scratch is Turing complete y’all!)

Apparel Construction at CCSF

I took Apparel Construction I (FASH 15A) at CCSF this past fall semester. I couldn’t find much online about the class before taking it, so I wanted to document what we did (bearing in mind that all this might change semester to semester)

Course description was:

FASH 15A Apparel Construction I (3) Beginning course covering basic principles and concepts in the construction of garments. Emphasis on machine operation, sewing skills and techniques, and construction processes. Students will create sewing samples and 3-4 garments.

We did several weeks of “sewing notebooks” (samples in muslin), both machine and handsewn. Then we made an apron with pockets, a skirt with side zipper and waistband, and a collared shirt with sleeves. Pants were on the syllabus originally but we ran out of time so those became extra credit. I took on a little too much by trying to make a shirt dress for the shirt project and did not do the pants!

Below: Understanding grain line by removing one thread from warp and weft – I thought I knew about fabric having grain but I didn’t actually grok it at all until I did this exercise. It is harder than it looks!

Drawing lines and spirals in pencil, then following with machine to practice sewing straight lines and turning nice corners.


Then many varieties of seams…


Handsewing notebook, lots of hems!


Buttons! I apparently did the hook and eye incorrectly, the thread was not supposed to show so much on that side? Basically don’t necessarily use these photos for getting your homework done, not all mine were correct. 🙂


Zippers: I can’t find the centered zipper but this one was a lapped zipper. I redid it in colored fabric because it is a bit of a complicated process and figuring out which side the flap would end up on took some trial and error.

DSC02404      DSC02405


Some notes from the apron project:


The apron. We learned how to make bias tape by hand (though I cheated a little and used a bias tape maker gizmo), how to sew it onto curves (so exciting, I was never able to figure that out before!!), making nice hems, and making two kinds of pockets. This is a terrible photo that doesn’t capture how pretty the fabric was (from the Japanese fabric store on 4th St. in Berkeley). It looks wrinkly and weird here but I thought it actually turned out rather lovely in person. I got quicker after the first one and made a few for family. I let my mom pick her pocket placement as I figured she would have opinions!



Then we made a simple a-line skirt with four panels. We learned how to lay out and cut a pattern, hand finish a hem, clean finish seams inside a garment, add a side lapped zipper, add a waistband with a hook and eye closure. So we basically applied a bunch of the sewing notebook techniques we’d done earlier. It’s surprisingly hard to visualize even such a simple garment coming together until it does.

Laying out the skirt (I gave it away to a friend, I’m hoping she’ll take a photo when it’s warm enough to wear it!)


Finally, we made a collared shirt. Surprisingly, this wasn’t as impossible as it sounded except that I was a bit silly and decided to try to make a shirt dress. The hardest part was probably putting in the sleeves, which requires making “gathering” stitches to help carefully fit the sleeve to the armhole. One thing I learned is how much fabric can stretch as you work with it, so you need to build in adjustments as you go even if you cut things to fit exactly.

Photo Dec 24, 12 07 12 AM Photo Dec 24, 12 08 53 AM

Community colleges are awesome. <3 Support your local community college.

P.S. I’m trying this thing called Iron Blogger. And woops, I missed this week due to not reading the rules carefully enough! Oh well, progress was made.