šŸ™ šŸ¦„ šŸ¦„ šŸ¦„ šŸ™Ā 
Don't wanna be here? Send us removal request.
because-its-important Ā· 7 years ago
Text
transitions & transformations
i. the rest of my batch at RC
I spent the first six weeks of my batch at Recurse Center in an out-and-out sprint. I learned Python, built and released projects, and wrote blog posts every week. I wasn’t sure where my limits were, but I was determined to find out - preferably by overshooting them, then adjusting after the fact.
A curious thing happened. I kept finding that I was more than capable of starting and finishing projects, especially when I had a firm mental image of the end goal. There were at least as many unexpected good-turns as there were setbacks, and I certainly didn’t come up against any inscrutable barriers. Mostly the challenge was in overcoming the distance between a thing that doesn’t exist and a thing that does, which I was able to sort out pretty handily through a consistent application of effort across time.
Who’d have thought?
Tumblr media
A selfie taken on my birthday, which also happened in the last few months and was really great!
The second half of my batch was not so visibly productive - with the exception of The Question Game. The Question Game is a simple game designed to help groups of people get to know each other better IRL. I designed it with my friend Brittany a few years ago as an icebreaker when we found ourselves in a group of folks who knew us but didn’t really know each other. The game only really needs a method of generating random numbers for a small but arbitrary group size, but building it out as a toy webapp was a good excuse to get practice working with a JS-only stack. I learned React, got a lil more familiar with node, and even went as far as to attach an otherwise completely unnecessary PG database and Sequelize ORM. You can see the code for it here. Outside of this project, however, I didn’t publish any code. I didn’t publish any writing, either.
So I’d like to take a moment and shine a bit of light on the work that I did during the rest of my batch.
šŸŒ’ šŸŒ“ šŸŒ” šŸŒ• šŸŒ– šŸŒ— 🌘
First, I made the decision to leave community.lawyer, the social impact startup I co-founded in 2016 following the Blue Ridge Labs Fellowship.
I’m happy to report that I left on the come up, which seems a rare and privileged thing for a founder to be able to say. Gaining traction in a hyper-specialized industry like legal tech takes a gargantuan amount of sustained forward momentum, and I departed just as we began to reap the fruits of our labor. In the last few months community.lawyer has reached final approval on partnerships a year in the making, won federal grants we’d submitted to in 2016, and every day our software is being used to help connect people who have legal needs with credible lawyers. Our first two partners were exactly the types of legal organizations at the heart of our mission: the Justice Entrepreneurs Project and the DC Reduced Fee Lawyer & Mediator Referral Service.1 Based in Chicago and Washington DC respectively, these orgs are specifically chartered to deliver quality services at rates that more Americans can afford. I am so proud. āš–ļø
Second, I started my first ever job hunt as a software engineer. Wowee, this was scary! I knew that I had to prepare for interviewing, which meant a) getting my career change narrative straight, b) studying Data Structures & Algorithms 101, and c) learning how to perform my handle on both of these in a live, semi-adversarial environment.
Tumblr media
At one point during my batch my laptop broke. I read through this wonderful illustrated book during the two days it was being fixed.
In order to direct my search I also had to craft a set of selection criteria of my own. Foremost: ā€œWhat good will my work do for the world?ā€2 Additionally, ā€œWhat degree of access will I have to supportive mentors?ā€
Getting started with interview prep was a challenge, at least partly because I had so many options for where to start. But I did get started! I read Cracking the Coding Interview, I did the free trial and weekly free problems on Interview Cake. I attended a few group mock interviews at Recurse Center and signed up for a 1-1 mock interview with an RC alum. Her name is Leah, and she’s amazing - the superbly friendly and encouraging Comp Sci TA I wish I’d had years ago. šŸ’šBrittany also set up mock technical screens for me with her pals, Leaf and Ian. They were the vanguard against my outsized anxiety about programming for an audience and they each took the time to give me solid feedback.
Third, I extended my batch at Recurse Center by another 6 weeks. I had decided early on I wouldn’t extend (for no real reason) and stuck with this decision up until two days before my batch ending. A small group of folks - Lily, Connor, Alicja and I - went to NYX in Union Square to try out lipsticks. We played with different colors and finishes (satin! matte! shimmer!) for half an hour or so. There came a point when I looked up, glanced across the narrow makeup store at my beautiful friends’ beautiful faces and thought, ā€œYou know, you don’t have to leave yet, right? What’s the rush?ā€ I’d already accomplished my primary goal, to forcibly rework my identity as an engineer, but it sure seemed that I could stand to reach for a second one. That night I decided to extend my batch, with the intention of sampling a more open method of self-directed learning, i.e. with a little more chill and a lot less panic. Specifically, I wanted to practice connecting meaningfully with my limited supply of social energy.
In my bonus six weeks, I: gave three talks (2 planned, 1 impromptu) under encouragement from Ayla and Lily, learned to juggle thanks to instruction from a fellow RCer, Edward, who also loaned me a book about learning, made it into weekly Feelings Check-in (read as: opt-in support group) fairly regularly, picked my first ever lock, saw a live-coding show and then later attended two live-coding workshops (one on TidalCycles, another on Super Collider), sat in a dark room and played howling wolf clips while Microsoft Sam read grimoires aloud, got my hair braided for the first time in a decade, made dumplings and DJ’d for a dinner party, connected with folks about queer-poly relationships, gave fiery advice, and received compliments so earnest and rational and persistent that it was difficult to refute them.
Tumblr media
Zine fair plus Lightning Bolt concert inside a movie theater in Times Square??
I also put my interview prep to use and interviewed with a handful of Recurse Center partner companies. Job searching meant squaring off against impostor syndrome and a ton of related anxieties in rapid succession. I successfully choked most of that down when it mattered, though, and it was only a couple short weeks before I received my first offer.
To that end, I’m super happy to say that I’ll be joining Blink Health as a Fullstack Product Engineer! Blink Health is a healthcare startup in SoHo. They make it easier for people to afford prescription drugs, especially for those with limited insurance plans or none at all. These savings aren’t trivial either: an extra $50 can spare someone from choosing between groceries or medicine that week, and for some folks Blink saves many times that. I’ll be starting at the end of this month. āœŒļøšŸ¤“
The last two years have been a wild ride: participating in a social impact fellowship and accelerator, busting my product chops and learning web dev to get a public benefit company off the ground, then diving into four months of self-directed learning at Recurse Center. I’m really looking forward to having some externally imposed structure again. Real health insurance, too.
ii. some hard truths
I made a few radical life changes in 2016, like getting involved in activist spaces, dating more, biking everywhere, building strong friendships, going capital-B Boogying, programming full-time. As I carried those changes forward through 2017, I began to notice a lot of mental and emotional reconfiguration happening to me.
Tumblr media
Did you know that along its way to becoming a butterfly, a caterpillar nearly completely liquifies inside its cocoon?
Psychological growth is confusing, full of false starts, and generally painful. You’ve got the static pain of stretching beyond your limits, the pleasure-pain of feeling an old knot finally release, the frustrating pain of stubbing your toe because some helpful asshole has been rearranging your psychic furniture when you weren’t looking. There’s the more dramatic knife-in-the-gut pain of realizing that just because you’re growing doesn’t mean the people closest to you are, and that now in certain cases what you previoulsy regarded as friendship actually looks a whole lot like run-of-the-mill exploitation or even emotional abuse, if you're being honest, and it's a realization that only hurts more because it’s so irredeemably cliche and boring. And despite all that pain you gotta go ahead and grow anyway, claw your way out of the relative comfort of ignorance. Transcendence may not be the only show in town but afaik it’s the one most worth watching.
Prior to attending Recurse Center I’d spent lots of time exploring my surroundings and cataloguing people and places worth coming back to. My view of myself did change (and positively!) as a consequence. But sooner or later, ya get tired of the taste of low-hanging fruit.
So, armed with the bookshelf of a philosophy grad and a burgeoning psychoanalytic vocabulary begging to be let off leash, I decided to use my time at RC to try confronting a few of my Hard To See truths in addition to becoming a better programmer.
Here’s what I’ve found so far.
Truth #1: People like me a lot. This causes me problems.
I’ve been metabolizing this one for some time. I remember having a conversation with Brittany in January of 2016. I don’t remember what social anxiety I’d been vocalizing, but I must have been worrying that someone ā€œhated me.ā€ Brittany cut me off, exasperated in the way that only a friend can be in the face of utter delusion: ā€œNo one hates you Nicole! You’re always worried that people don’t like you and it’s never true!ā€
I carried that admonishment with me through two years of voracious friendship-building. On the whole, seeing that people do in fact enjoy and seek out my company has curbed the most egregious overreaches of my social anxiety. But reckoning with my anxiety honestly has also meant acknowledging that my compulsive instinct to withdraw from social situations is also a protective (if suboptimal) response to a few very real dangers.
Most acutely: being friendly, generous, and intensely empathetic makes me a ready target for users. I try to give people the benefit of the doubt for as long as I can, which makes me proportionally susceptible to being taken advantage of and then gaslighted about it. A lifetime of socialization as a petite woman don’t help, neither. This leads to a pattern where, semi-regularly, I look up and take stock of how someone has been treating me and realize that the answer is Very Badly, For Quite A While. This in turn leads to rough periods of cutting ties and moving on. Ideally I’d like to be be able to filter bad actors out sooner, but I also want to stay open, giving, and hopeful beyond reason. Those desires are fundamentally at odds with each other - raising vs. lowering one’s defenses - but it’s clear that I need to come up with a strategy that balances both.
More broadly, though, I operate under an ever-present dread of inevitably disappointing everyone who knows me. Whether people project onto me because they already like me or like me more because they project positively onto me, I am extremely sensitive to the fact that when people meet me the conception they form has waaay more to do with what they want to find than what’s actually there. My body is a surface readily projected upon: young, female-shaped, ethnically ambiguous, small, smiling. These well-intended projections cause me the most trouble when people see me interacting socially; they’ll witness fifteen minutes of seemingly effortless extroversion on my part and extrapolate out massively. As far as they’re concerned I’ve got plenty of social energy to spare, and if I don’t spend it hanging out with them, it must be because either my friendliness is fake or I don’t like them.
Pretty much none of this is conducted consciously, of course, but it still creates a lot of unnecessary pressure that I can’t pretend not to feel and resent. I know there are people who dream about attaining this kind of ā€œpopularityā€ - to be assumed Cooler than one truly is - but getting buffeted around by folks’ totally unexamined, unarticulated psychological desires mostly sucks.
Truth #2: I’m non-binary.
I’ve also spent a very long time resisting this one. Two decades on the rack, easy. As such, the story of getting here is long. Perhaps one day I’ll tell it. šŸ˜›
The short of it, though, is this: I’m probably at least as much of a boy3 as I am a girl. Outside of where my life has been mutated by the chronic background radiation of sexism, ā€œbenevolentā€ and otherwise, I don’t strongly identify as a woman. Furthermore, I find the two-gender system to be infinitely more alienating than comforting. Gender is a social construction designed to impose order on the natural messiness of sexual experience, and as far as I’m cool with that, I am decidedly Not Cool with the ā€œnormalā€ state of affairs, i.e. aggressively shoving whole human beings into an absurdly reductive false dichotomy.
Between its either-or-ism and its forced assignment, the traditional approach to gender reveals itself to be obviously bullshit to anyone who spends more than a few minutes thinking about it. Its boundaries are arbitrary, inconsistent, and generally ill-fitting at the level of individual experience, which why they require such an outrageous amount of coercion and bodily violence to enforce. As much as other folks want to participate in a system of ritualized violence I guess they are free to? Personally, I’d prefer to see it actively dismantled.
If gender is to be saved it’ll be by subverting it, taking it apart, remaking it into something life-affirming. Not the dehumanizing garbage we’ve got now.
Tumblr media
As of yet I don’t have any plans to change my presentation because I don’t fuckin’ gotta!
I do have a preference towards They / Them pronouns, but She / Her is still fine. For most of my friends this isn’t going to be at all surprising nor will it in any way negatively impact our relationship. Anyone who needs me to just-be-a-girl, however, can expect turbulence.
Truth #3: My righteous anger is justified and I am good at using it to help others.
I have felt conflicted about my anger for a long time. Since a very vocal childhood I have been regularly frustrated by prejudices and injustices, and I was frequently the first voice of dissent against them, whether that meant challenging adults or my peers. Unsurprisingly, I became well acquainted with the standard strokes of the backlash.
When you are confronting bigotry in a mixed environment, the voice of the status quo will generally manifest in one of two ways:
Gaslighting, e.g. ā€œyou are wrong to have said this at all, obviously I am a Good Person, you are just imagining that what I said sounded like XYZ, honestly how could you even think this, as a matter of fact it is I who is offended!ā€
Tone policing, e.g. ā€œyou’re too upset about this! after all, I, the person who did Fucked Up Thing, am perfectly calm about Fucked Up Thing, so any amount of anger makes you irrational by contrast, and I get a raincheck on whatever this is about!ā€
I know these responses are repulsive. I know they are merely the signs of a weak and imperiled ego acting out of fear. And yet I still spend an inordinate amount of time second-guessing my own anger. Gaslighting and tone policing are a favored weapon of the status quo because they work, and they work in direct proportion to how agreeable their target wants to be.
content warning: the following segment talks about sexual harassment and assault
About couple weeks ago I had the misfortune of being sexually harassed at a club in Bushwick. After numerous rejections and explicitly telling a creep bothering me, my friends, and other women in the club to get lost, I finally went to get a bouncer to eject him. The bouncer got the creep to leave. When I went to thank him, the bouncer told me a whole story about how the creep was ā€œa harmless guy.ā€ Then he reached down and grabbed my ass. Presumably he felt entitled to do this after helping me get rid of a person I asked him to remove... for unwanted touching.
It Really Sucked.
At every turn during the whole ordeal (and its aftermath) I had to hold onto my anger, convince myself that I wasn’t overreacting, remind myself that anyone who thought this was acceptable to do to me is almost certainly doing worse to more vulnerable people. I kept picturing myself the way this guy, this man in a position of power, must have seen me in order to feel okay doing what he did. That I was young, small, female, too friendly to say No, already indebted anyway; that he was one of the Good Guys, that his behavior was also ā€œharmlessā€ because he had decided it was. I conjured up as much anger as I could, pushed down the nausea of envisioning my own degradation from an attacker’s POV, and got to work. I reached out to the club and was quickly put in contact with the owner. The venue now has a publicly posted zero tolerance sexual harassment policy. The entire staff is going through training with a local org dedicated to creating safer nightlife spaces. And that motherfucker has been fired.
I demonstrably made the world better. I wasn’t alone, but all that happened because of my actions. Me and my anger, we did that.
I wish more people were this fucking angry. šŸ’¢
~ end of content warning ~
iii. an opinion
My Saturn return is upon me, y’all. As Frank Ocean serenades, we’ll never be those kids again. I have lived a few of these here nine lives and it seems only prudent to be moving forward with some sort of opinion on the matter.
My opinion is this: us folks with financial and physical security should be spending more time fixing shit around here. Figuring out what needs fixing and how you might help are the first steps.
If you’re operating on a similar scale of privilege as I am, maybe that means changing jobs to do more mission-oriented work. If you can’t swing a change of that magnitude, maybe it means showing up to community events and engaging with, caring for, supporting people you otherwise wouldn’t talk to. Churches, libraries, volunteering, supporting local artists, participating in local politics - this all counts. If you’re already doing this sorta thing, that is awesome! Maybe you also have a friend worth inviting who you sense is just itching for a chance to exercise compassion?
I’m using ā€œfixingā€ pretty loosely here, too. Fixing, to my mind, means making the world brighter, safer, and sweeter for your fellows, human and otherwise. We’ve all got different ideas about what that looks like, and there are definitely folks - myopic or malevolent or both - who will swear up and down that their fear- and hate-driven behaviors will bring about better world. Ultimately, though, I believe that many hands reaching towards their personal vision of Better will in fact make things Better, especially when that vision is informed by meaningful interaction with the real world and its real sorrows and its real triumphs.
But ya gotta reach. Ya gotta try.
I am so tired of hearing my well-fed, well-homed friends piss and moan about late capitalism4 without lifting a damn finger in service of the communities bearing the brunt of material hardship. Unfettered capitalism sure does have a marked tendency to wreak havoc on organic life! But capitalism is not a monolith, and lamenting the abuses perpetuated by its principle benefactors as unchanging or inevitable only normalizes them. Any investigation into the history of capitalism (or the broader phenomena of how a Few come to subjugate the Many) will very quickly disabuse you of the notion that this shit is going to stop without a great deal of active resistance.5
So unless you are personally doing work to put our current strand of democracy-withering corporatism six-feet-under, seriously, just STFU instead. Your nihilism is boring! You don’t sound woke! Save it for your local DSA working group!
Which isn’t to say that I’m not convinced of the wickedness6 of the problems we’re facing: skyrocketing wealth disparity with no relief in sight; the destruction of most of Earth’s biodiversity via mass extinction; a pernicious climate of racism and xenophobia that scapegoats black and brown folks and then visits misery upon them; the weight of an aging population bearing down on the shittiest healthcare system of any nation in its class; a widely disenfranchised electorate further fragmented and fatigued by hyper-polarization; the gendered terrorism that is inflicted daily on women, trans and non-binary folks, and queer people at large; a rising wave of depressive anxiety as people become more aware of these problems and how thoroughly they’ve been disempowered from changing things for the better.
So yeah, I get it. These are hard problems. I just don’t see any better option than trying anyway. I want to spend my time fixing things around here and encouraging others to try their hand too. You already know the bad news: real change is hard and it can take a very long time. You might work your whole life sowing seeds whose fruit you never get to taste.
The good news, however, is that you can get started whenever and wherever you are. The good news is that a sense of purpose is its own reward.
iv. how to get started
When you’ve got hard work ahead of you, your best bet is to use your beautiful human brain and create some leverage. Ask Archimedes about it.7
Lever systems got two parts:
The lever, which is the tool you use to amplify your effort. The longer your lever is, the easier your job will be.
The fulcrum, which is the wedge the lever rests on. The nearer your fulcrum is to the thing you want to move, the easier your job will be.
Tumblr media
If you’re starting from zero - ā€œI want to do more for the world but I don’t know how!ā€ - my advice is to forget about the lever arm for now. A lever ain’t shit without a fulcrum, anyway. Your time is better spent exploring the world, keeping an eye out for problems you’d like to solve, and identifying nearby points of leverage. If you want to get into activism, a fulcrum might be volunteering to fold pamphlets for an organization with a mission you believe in. If want to see more self-expression in the world, it might be might be inviting your friends to a zine-making class or hosting your own arts and craft night.
The best fulcrum is one that makes you Feel Good when you apply any amount of effort against it. Too many people get caught up in a self-defeating belief that if they can’t give 110% of their creative energy to something they might as well not try. I can confidently say that trying is itself a virtue. Every time you try even a little bit you make it easier for yourself to try again later, and more importantly, you make trying easier for others. A bunch of people altering their behavior a smidge in the same direction doesn’t add up to nothing; on the contrary, it’s a sea change.
If you’ve got a decent idea of the types of problems you want to solve, though, and you’ve tested your fulcrums, and you are thinking, ā€œOkay, but is this all I’m capable of giving?ā€ then it’s probably time to work on your lever. Given your own interests and inclinations, what skills can you develop that will increase the good you’re doing 10x, 100x over? This is the long game, but it scales a whole lot better than ā€œkeep doing what I’m already doing, but more.ā€
For me right now this means deepening my technical knowledge, building a resilient support network, and sharing what I’m learning. Helping others has been a powerful motivator for self-improvement, not the least of which because it’s a convenient shortcut through the snarl of self-confidence issues.
Tumblr media
I am so grateful that Recurse Center was a stop on lengthening my lever! What a concentrated cluster of helpful, considerate beings.
I’ve spent the last two years wandering around New York City in wide-eyed wonder, asking myself the most ambitious question I could think of: how do you save the world?
Getting older comes with a lot of downsides, but asking yourself big questions and living your life as the answer is the primary pleasure of adulthood. It took a ton of courage to get started and I am still frequently awed to find myself moving in the right direction. I’m humbled by the grace and fortitude of the folks who’ve been at this for way longer.
I’m also a hell of a lot happier. This summer’s gonna be rad. ā˜€ļø
There are lots of extraordinarily sexy company names like this in the legal world.Ā ā†©ļøŽ
Having the choice to direct my energies in this way is a privilege. Working in tech gives me this freedom of motion and I have been drawn to software engineering in part because it is the freest of the free (if you still gotta labor for your living).Ā ā†©ļøŽ
šŸ˜±šŸ˜«šŸ˜–šŸ˜¬šŸ˜¬šŸ˜¬... šŸ˜Ā ā†©ļøŽ
Substitute with whatever modifier is en vogue. As a point of fact, ā€œlate capitalismā€ is a term that’s been floating around for literally over a hundred years.Ā ā†©ļøŽ
Thankfully, history also clearly demonstrates that the tide can be turned.Ā ā†©ļøŽ
ā€œThe use of the term ā€˜wicked’ here has come to denote resistance to resolution.ā€ Wikipedia page.Ā ā†©ļøŽ
ā€œGive me a lever long enough and a fulcrum on which to place it, and I shall move the world,ā€ etc etc.Ā ā†©ļøŽ
3 notes Ā· View notes
because-its-important Ā· 8 years ago
Text
2017: a year of courage šŸ¦„
If 2016 was a year of opening doors, 2017 was a year of walking through them. This year demanded a lot of courage.
First, the fun things!
Programming.
I’ve been talking about this quite a bit already, so I don’t want to linger too much. This was my first year working as a programmer (heyo) and I learned a whole lot very, very quickly. Building a data-heavy webapp for bar associations and their member lawyers from scratch is no joke! I’m also real proud to be capping the year off in the midst of a batch at Recurse Center. About a year ago I kept thinking about how good it would feel to be ā€œreadyā€ for something like RC, and it does, it feels good.
Tumblr media
ā€œwhat are u doing rn?ā€ selfie circa mid May.
Zines and indie book sellers.
I encountered a lot of zines this year, exponentially more than all the years of my life prior. I went to a zine reading, multiple zine fairs (including one I volunteered at), I assembled a zine at the Bushwick Print Lab, I brought friends to Quimby’s. And, ofc, I bought a bunch too.
Tumblr media
I purchased all the zines above at Pete’s Mini Zine Fest.Ā  From top left to bottom right, they include: a parody science zine about ā€œfrackingā€; a zine about a woman’s experiences riding the subway when she was pregnant; a zine about the history of animals that have been sent to space; a holographic bookmark that isn’t a zine but reminded me of a femme version of the robot in FLCL; a zine someone made about remembering her recently deceased father and how they’d go mushroom hunting; an art zine full of sketches of demons. I also asked every artist to sign the copy I bought, because I am a huge dork. šŸ¤“
Tumblr media
A beautiful zine I found in the library at the Recurse Center. Zines are everywhere! Keep an eye out. šŸ‘€
I also spent a lot of time browsing and buying books (often used, sometimes not) from independent bookstores and sellers. I picked up books from BookPeople in Austin, from the Oakland Book Festival, from a library sale in Syracuse, from Unnameable Books in Prospect Heights 1, from Autumn Leaves in Ithaca, from the Verso loft in DUMBO, from Borderlands in the Mission, from Powell’s in Portland. I even scored Invisible Cities and Frankenstein from a stack left outside my neighborhood coffee shop.
Tumblr media
These were all purchased for like $3 from a library sale held in the garage of a old fire station in Syracuse, NY. Includes: a book about stream of consciousness novels; a book about how to make poisons written by this dude; a book of poetry about the devil. Must’ve been a real moody day.
Interference Archive and Church Night.
I visited a lot of new places in 2017, so I wanna talk about two places that I found myself coming back to again and again.
I first visited Interference Archive or went to events where they tabled roughly a dozen or so times this year. I remember spending snowy days in winter doing a bit of cataloging for a big archive they’d received of counter culture newspapers from the 70s. I participated in two reading groups hosted by IA, one on different social movements from the 60s to today and another on race and mass incarceration following The New Jim Crow2. Interference Archives annual block party was also killer, with free screen printing, radical button-making, a used book sale šŸ˜, free tamales served out of a trash bag (they were so good!!), and a live Yiddish queer punk band.
Tumblr media
I blew up and tied these balloons for IA’s block party all by myself! Very important work!Ā 
Tumblr media
One of the issues of The Berkeley Barb that I cataloged. I also cataloged about half of The Black Panther newspapers in their collection. You can check out Interference Archive’s catalog here.
I also went to church service four times! šŸ˜‹ Church Night is a comedy show that features three standup sets, a burlesque show, and a 90s rock sing-a-long, all rolled up into a evangelical sketch. Each service is also topped off by a real-ass sermon, with positive messages that have made me cry multiple times. It is a really perverse good time and the folks who run it are extremely friendly and hardworking. They travel to Brooklyn every couple months or so and are based in Washington DC, so if you near live in either of those areas, I fucken implore you to check them out.
Tumblr media
Another great service at Church Night!
Puppet shows and films.
I attended two puppet shows this year, which is two more than any year in adult memory and certainly two more than I could have expected! The first puppet show played after a few live bands on a rooftop in Bushwick on a hot summer night - I drank cold canned beer and graciously accepted when some generous stranger passed around a bowl.
The second puppet show was a performance at a banging housewarming party in a living room in Bed Stuy, and a friend was one of the central performers. At one point during the show an iMac in the living room fell four feet to the hardwood floor below and the audience - a room full of friends and friendly faces - gasped. THE SPECTRE OF FAILURE!3 I thought very loudly in my head while my face contorted into rapt, waiting concern. Of course the show Went On, the moment of danger transformed, transcended. Holy shit! This is real! This is real life! I thought over a swelling-swooning heart, and it set the tone for the best night of my year.
I managed to catch a bunch of rad shorts including the IFC’s showing of Academy Award-nominated animated shorts, Rooftop Films’ non-animated ā€œuncannyā€ shorts as well as their animation block party, and a round of alternative horror shorts presented by the Bushwick Film Festival. Respectively, my favorite shorts from each of these collections were: Blind Vaysha, about a girl with an eye that sees the past and an eye that sees the future4, See A Dog, Hear A Dog which explores how we train non-humans (particularly 🐶 and šŸ¤–) to respond to us as if they understand us, My Man (octopus) about the stickiness of a toxic relationship (or, from the same night, Pittari, about a v cute demon), and GREAT CHOICE, which is a hilarious horror short about being stuck in an infinitely looping Olive Garden commercial from the 90s.
If you enjoy films and live experiences generally, I can’t recommend Rooftop Films enough. They’re a long-running NYC nonprofit that supports diverse, independent filmmaking and their summer series is truly unique and wonderful; each screening is hosted in a dope outdoor location in NYC and is preceded by a musical act fit to the theme of the film. I saw films on the roof of the Old American Can Factory and backlit by the eponymous sunset of Sunset Park. The ticket-price also includes an open bar after each screening, and you can chat with the folks who worked on the films. These are the kind of events that make living in a city so special, so take a friend, take two, and go!
Tumblr media
It was a chilly the night at the Old American Can Factory where we saw Rat Film, a documentary about Baltimore told through the measures taken to control the rat population. Eugene (left) is wearing a towel I bought in LA. Bailey (right) is wearing a NASA sweatshirt.
Big music, living room music, radio music, discos Good and Bad.
Unlike last year, I didn’t go to any music festivals, but I did hit up a couple biggish shows. I saw Chastity Belt at Williamsburg Hall of Music (what a great venue šŸ’š) and Yaeji at Elsewhere.
Tumblr media
In a surprise display of social aptitude and luck, I managed to pull together folks from no less than four disparate friend groups to go see Chastity Belt with me in June.
I’ve been getting good at identifying proper communal experiences and boy, AcouticQ really hits the nail on the head. It’s such a friendly, intimate setting that you can’t help but wonder, is this not the perfect what to share tunes about heartache and triumph? If that compelling to you and you’re a good person who enjoys folky music and supporting queer artists, starting following AcoustiQ and hit up one of their events! Bring snacks, bring booze, bring a cash donation. šŸ’µ
Tumblr media
I saw Julia Weldon first at AcoustiQ in September…
Tumblr media
…and then again in November at PIANOS.Ā šŸ˜ŠšŸŽø
I started listened to radio programs - I think perhaps when looking for tunes for my daily bike commute? Anyway, I found myself tuning in pretty regularly to Radio Free Brooklyn. Bushwick Garage is probably my most listened to station, and I haven’t really tried any of the more talk show stuff. I suspect there’s something for everyone, especially if you live in NYC. You can check out their schedule here, though I’ve been relying on their Mixcloud channel for the most part.
Continued to do a fair bit of dancing in 2017 and saw a few new-to-me venues. I’ve decided that I really hate most any dance club on a Friday or Saturday past midnight; the situation nearly always devolves into Basic Dance Beat while straights get sloppy all over the place. There is nothing more distracting and vibe-killing than pretending not to notice some baseball cap bro who keeps desperately dancing at you in a crowded space, especially when you know he’s ā€œworking up the courageā€ to say something that will inevitably be heinously stupid. Like, I did not come here to build empathy for mediocre dudes hoping to ~get lucky~ at the club, I came here to dance myself clean!!! 😤
So when I tell you that I’ve had nothing but positive, glowing experiences the last two times I’ve been to weekend events at Magick City, let me tell you, this is high praise! What a great DIY music venue. The first event I went to there was a record listening party, where a roomful of people laid on blanket on the floor and quietly listened to an album - had a break to talk about it, pee, get another beer - and then listened to another. The second event was a set by these folks in a thick fog with a great light show and yet room to dance and breathe! The drinks were cheap and there was a whole table of delicious free snacks that had been prepared onsite.
youtube
Look at this rad setup by Drippy Eye Projections!
Tumblr media
A communal fifth of whiskey left in the bathroom at Magick City. Just in case you needed a lil, y’know? What a phenomenal discotheque!šŸ•ŗāœØ
Biking.
Through 2017, biking has been my main form of commuting. I spent winter and spring using Citibike5 until finally buying my own in early June. Deciding to own a bike for the first time in the city, let alone picking what to buy, was a pretty challenging experience. I went with a lightweight matte-black hybrid with an internal hub for its 3 gears.Ā 
Tumblr media
My bb is decked out with cleated neon-chartreuse pedals, green and yellow spoke beads (not pictured), and a purple-teal bluetooth speaker.Ā šŸ’œšŸ’š
And a word, if we might, about my speaker: this speaker is tough as shit! I’ve dropped it off my bike multiple times, and once I looked back only to watch it get run over by a car, twice. It’s also survived rain, sailing, and being dumped roughly into airport bins.6
Tumblr media
I have plenty more to say about biking, but to cut to the chase: biking is clearly a superior mode of urban transit if you are able-bodied, have the nerves to deal with cars, and don’t mind arriving at your destination kinda gross. In the last 18 months or so I’ve gone from someone who Never Goes Out to someone who Goes Out More Than Your Average Bear and I’m prepared to credit biking as a major enabler. If you want to learn more about your city, see your friends more often, and make new ones - start biking!
youtube
This is a video I shot while riding my bike home from a 4th of July party. I nearly got nailed with a Roman Candle, lol.
Traveling.
I also did a greater-than-expected bit of traveling again this year, again all within the United States. I went to Austin in April, visited Oakland and Berkeley for the first time in May, visited both Ithaca and Vermont for the first times in July, drove to Kentucky to see the TOTAL SOLAR ECLIPSE with my cousin in August, drove from San Francisco to Los Angeles for Indiecade in October, and capped off with a half-work half-play visit to Portland, OR in November. I suspect this isn’t a sustainable amount of traveling, but it’s incredibly hard to regret - especially when it allows you to see friends who live far away or experience unique bonding moments with friends who live nearby - so who knows what next year will look like.
Tumblr media
One of the most special places I’ve been this year was Lothlorien, a student coop at Berkeley where a friend lived in undergrad. It was an inspiring intentional community - so much art on the walls, a tree house with a perfect view of the sunset, a dream library. So magical!Ā šŸ’–
Tumblr media
The cabin trip in Vermont was also really special. We did so many appropriate summer camp activities, like sailing, tubing, visiting cows, taking walks under a sky full of stars, building a blanket fort, putting together puzzles, and playing with fire.
Tumblr media
We made this at the beginning of the day and boy oh boy did it come in handy for organizing ourselves! And gee, look at how well hydrated we were. šŸ’¦šŸŒˆšŸ’¦
Now, the less easy stuff.
Sex.
One of my goals this year was to ā€œlearn more about sex.ā€
Tumblr media
me: when you said we were going to be learning about sex, i didn’t realize there’d be so much reading involved, i thought it might be less of a mental and more of a physical edu- also me: lol don’t front
When I first cracked open Bataille’s Erotism: Death and Sensuality, I remember being absolutely floored by how much it was not whatever I had expected it to be - and that that was a helpful starting place. Erotism is an examination of the function of taboos and their sites of transgression, how the act of transgressing is subject to its own social rules and tends to be ritualized7, and how as conscious mortal beings we’re compelled towards moments of transgression because they seem to imitate what we imagine the great continuity of death feels like without having to, y’know, die. I liked his analysis of de Sade’s writing and the irony of sadism - that the promise of transgression is greater self-awareness, but the violence it requires necessarily also erodes that same awareness. I both appreciate and am wary of how aggressively Bataille dislocates sex from a bodily endeavor to a psychological compulsion. He had also some real undercooked shit say about women and was clearly terrified of sex, so I’m kinda disinclined to treat his opinions as functionally valuable to lived experience.
The Persistent Desire, on the other hand, was easily the most personally important book I read this year. It’s an anthology of generations of lesbian femme-butch relationships, told through stories from women’s lives, interviews with queer scholars, and some extremely hot sex poems. My primary inner-dialogue with gender has been ā€œughā€ and ā€œthis shit againā€ and ā€œif I pitch my voice and play Nice Girl this unbearable interaction will be over faster.ā€ I had never spent so much concentrated time thinking about the performance of gendered sexuality in queer relationships, and wow, I have been missing out on some much better thoughts!
Like, Q: Does gender performance ever feel sexy to me, not just hostile? Under what circumstances? A: Yes, but generally only so long as a) the performance is fluid, eg. you’re the boy, I’m the girl, now you’re the girl, now we’re both boys, and b) power, however gendered, doesn’t rest in one place for too long. Gender is fun to play with as long as it feels like playing, where the heteronormative script is really only referenced insofar as it’s being subverted, shredded up by contact with a reality that unequivocally de-legitimizes it.
Like, Q: how much better would my life be if I approached sexual relationships from a place of radical honesty and expected the same from my partners? A: PROBABLY A LOT.
Like, Q: how do I make space in my life to form romantic-sexual relationships with people who aren’t cishet dudes? A: idk bitch, but you’re apparently a pro at lifestyle changes! Keep going to queer events, keep reading, keep processing. I believe in you.
Tumblr media
This is a cute fire safety map at the Lesbian Herstory Archives, which I visited for the first time on a very wet snowy day in November. The archives had been mentioned frequently in The Persistent Desire and I was so excited to find that they were still around (44 years!), located in Brooklyn, and having an annual book sale.
Depression, denial, and death.
At one point this year I remember having an entirely normal hang out with my sister and partner in our Bed-Stuy apartment. I turned to the both of them and said, ā€œYou know, I think I might be real sad. I think I might depressed.ā€ I wasn’t worried when I said it, though I do remember the words feeling strange. My sister and my partner of 7 years looked at each other, something like ā€˜Uh, do you want to take this one?’ or ā€˜Does she really not know?’ and eventually someone said, ā€œYeah, Nicole, that sounds right.ā€
Tumblr media
If you had told me last year that I’d be spending so much time with Freud and Camus I would have rolled my eyes very, very exaggeratedly.
The most frightening thing about mental unwellness, imo, is that a good personal quality which is otherwise healthy and worth cherishing can become catastrophically distorted. So, say, an extremely deep capacity for enduring pain and discomfort, especially in service of others, becomes proving your worth by how much you’re willing to suffer, how much energy you’re willing to give away without expecting reciprocation. Worse still, let’s say, is being trapped in a cycle of denial about your own nature.
Denial takes lazy, irrational, harmful patterns of thought and elevates them to Gospel. You can’t be a generous and giving person because you can so clearly recall all the moments when you could have given more. You can’t be getting taken advantage of because you obviously would not abide exploitation in your presence. A friend wouldn’t repeatedly use you, to your loss and their gain, so that’s impossible by definition. If what you’re doing was really that painful and exhausting, you would have stopped already. _If you were depressed, you’d know it._8
Tumblr media
I took this photo in Austin on a night when I was feeling decidedly not good at all. In fact, I was feeling so not good and so ashamed of not feeling good that I went out and bought The Myth of Sisyphus.
Last month the opiate epidemic rose up and swallowed my estranged uncle. Though we weren’t personally close, I’d spent my childhood within a ten minute walk from his house and had lots of memories of him. Death leaves a vacuum, always. It’s also an effective invitation to re-examine your life and the people in it. My uncle was provided with endless love and support from his family - and yet. Self-delusion sure is captivating.9
This was a year where I decided that I valued truth over self-delusion, and more importantly, a year where I affirmed that decision with concerted effort. It is extraordinarily challenging to reckon with the blind-spots in your perception of reality, especially whenever those blind-spots were constructed By You to cope with past pain and avoid it again in the future. Maybe everyone doesn’t need to do this? Maybe most people live comfortably with the given state of their ego? But internal delusions are a barrier to conscious clarity, and to the extent that living consciously feels the most like Actually Living and not Waiting To Die, I am determined to clean that shit up.
Lessons, imperatives!
So it’s late afternoon on Dec 31st and if this is going to be a 2017 recap, I’m really coming down to the wire. Here are the most important lessons I learned this year.
Tumblr media
I luv this demon, because they sure got the right idea. ā¤ļøšŸ–¤Ā 
AESTHETICS MATTER.
I’ve often caught myself feeling bad for identifying with a community or culture that I didn’t feel like I’d ā€œearnedā€ my place at yet. This happened with biking, it happened with programming, it happened in queer spaces. imo, the best way to handle impostor syndrome is to kill it where it sleeps. I sure am! I am a devious impostor! Let’s see how far I can get before someone reveals me, exiles me! Turns out you can get all the way to Being The Thing, especially if your intentions are true. Your attraction to the thing is the first signal of your belonging, so get busy belonging!
LOVE THYSELF, AND GET GOOD AT IT.
Most of the psychological friction I’ve come up against in my search for The Truth Please has been caused by a very stubborn refusal to see and accurately assess my own self-worth. Very classic, very boring. I have only just begun to internalize what it might mean to love myself, to care for myself with even a little of the generosity and kindness and specificity that I happily devote to other people. The psychic backbending I’ve had to do to accomplish this goes something like, what if we loved ourselves the way we wished someone else would, like, idk, as a joke or something? Wouldn’t that be funny, at least?Ā šŸ™ƒ
That worked pretty well, but when it didn’t, I used brute willpower: hating yourself is a coward’s game, and whatever I may be able to lie to myself about, I will not pretend that I’m a coward.
Tumblr media
Ultimately, though, the best way to learn how to love yourself is to watch how your friends do it and to actively resist the urge to interrupt them.
SPEAK, BITCH šŸ—Æ
Earlier this year I was walking with a friend, and I was very ashamed of myself when I told her I was thinking about writing something. I immediately walked it back, waffled, recoiled from myself. She was bewildered. ā€œYou should! I feel like you have things to say!ā€ My reaction to this was sharp, panicked fear.
Because she was right. Because self-articulation and knowledge-sharing are fundamental human endeavors and if I think I’m somehow exempt from that, that I somehow uniquely Haven’t Got Anything Worth Saying, then that is delusion. Because if the real thing holding me back is a fear that my skill won’t measure up to the things I want to express, then the brave and honest thing to do is to try anyway.
So when I went to Recurse Center, I started this blog. I named it Because Its Important just so that every time I started doubting myself and asking ā€œWhy oh why am I doing this?ā€ I would have the answer right there. šŸ™
Tumblr media
šŸ‘‹ Thank you for reading! Here is a silly-glasses bathroom selfie.
I read Donna Haraway’s CYBORG MANIFESTO for an outdoor discussion group at Unnameable books this summer. It is so amazing. I could only barely keep pace with it and I can’t wait to read it again after some time.Ā ā†©ļøŽ
I consistently arrived late, but bearing coffee by way of apology. ā˜•ļøšŸ™Ā ā†©ļøŽ
I read Theatre of the Unimpressed, a book recommended to me by a friend after we saw an indie play earlier this year. The book talks a lot about what makes theater captivating, about the necessity of the possibility of failure, about the tendency for people to see see one boring-ass play and decide that they Just Aren’t Into Theater. The play we saw together wasn’t memorable, save for the fact that it was performed in a loft that hosts semi-regular makeout parties, which I’ve attended on half a dozen occasions. They are largely terrible.Ā ā†©ļøŽ
In one of the scenes Vaysha is courted by suitors, but they appear as child in one eye and an old man in the other. Fucking chilling.Ā ā†©ļøŽ
I remember a conversation earlier this year where a guy said that he ā€œcouldn’t imagine what it takesā€ to ride a heavy Citibike over a bridge in NYC. ā€œWillpower, mostlyā€ I replied. He ignored me, repeated himself: ā€œGee, but I just don’t get it!ā€ If someone doesn’t want to understand, they don’t want to understand.Ā ā†©ļøŽ
You can buy one here.Ā ā†©ļøŽ
In fact, a taboo ain’t even a taboo if it can’t be transgressed!Ā ā†©ļøŽ
A possibly less upsetting example of a denial! In September I was walking to brunch with my sister and her boyfriend the morning after a party at my bff's apartment. "Nicole, you really brought the party!" He said to me. My immediate emotional response was anger at how 100% wrong he was. The night before I had brought glowsticks, mini shark toys, and a Gingerhead House kit to the party. I was going to a party that night for which I'd purchased a tank of helium and large tropical balloons. But my desire to argue, my certainty that He Had Erred was complete. I've very rarely experienced moments where my subjective experience is so strongly misaligned with objective reality, but now that I'm in the business of noticing this crap, it happens pretty regularly whenever anyone says anything nice about me, to me.Ā ā†©ļøŽ
Drugs, too.Ā ā†©ļøŽ
2 notes Ā· View notes
because-its-important Ā· 8 years ago
Note
awesome post, awesome data, awesome script, the unicode hearts are a nice touch! it's inspired me to make my data-munging scripts just a little nicer. u should check out cProfile (run python -m cProfile -o output your_program), it will just spit out a file (readable using pstats module) that says how long was spent in each function.
thank you!!! sorry i didn’t see this until now! šŸ’š
0 notes
because-its-important Ā· 8 years ago
Text
nand2tetris
Tumblr media
One of the projects I’m working on at RC is completing Nand2Tetris - a free online course that takes you through the construction of a computer from basic hardware logic gates through running software like Tetris.
why am i doing this?
I’ve been spending a lot of time interrogating my limitations, with the hope that an honest assessment is the first step towards making them less limiting. Now that I’ve wholly decided that a perfectionist fear of failure will not be one such limiting factor, next up on the list is Time Itself. In each day there are a fixed number of hours I can spend tackling a challenging problem before my productivity - both in terms of output and learning - bottoms out.Ā 
So, knowing that quality focal time is a precious resource, why choose to spend it building a computer from scratch?
The Nand2Tetris coursework is well-regarded, well-documented, and has a big community. Even outside of folks at RC, I have friends who recommend the Nand2Tetris course and have worked through it on their own. One friend said that her office was planning on starting a study club for it in the near future. Taking a class that so many others have also engaged with and can vouch for makes it feel more ā€œrealā€ as a project, which is especially important since coursework in general (and MOOCs especially) tends to feel divorced from practical application.
Lower level thinking is a refreshing complement to ā€œnormalā€ projects. So far, one of my best strategies for eeking out a couple more productive learning hours is to take a walk around SoHo, grab a caffeinated beverage that I really shouldn’t be consuming so late in the day, and then switching gears to work on a problem of a very different flavor. It helps to be able to trade in the gnarly headaches that come from higher-level projects - like, let’s say, the sprawling agony that is setting up a node-react-express-pg webapp for the first time - for the more compact frustration of ā€œWhy is this damn bit saying 1 instead of 0?ā€
Overcoming insecurity about my lack of formal computer science training. While one MOOC hardly competes, a big part of my motivation for starting Nand2Tetris stemmed from a desire to get a peek into what obtaining a CS degree in undergrad might have looked like. Proceeding through the course has helped dispel a lot of unhelpful mythologizing.
Right place, right time. ā€œI learned how to build a computer at a programming retreatā€ just has a certain ring to it, y’know?
what i’ve learned so far
I’ve completed four of the twelve units, which puts me a third of the way through the course content. The most recent unit was an introduction to machine language, so I this week wrote and ran my first ever assembly program. 😊
Tumblr media
^ I think this is from a line of exploration when I was trying to make a Full Adder chip from Half Adders, but I can’t quite recall. I was just really happy when I came back to my notebook and found these HA HA HA sketches.
Putting things together hardware first is a fun paradigm shift. For Unit 1, I started by busting out a pencil to chart out chip interfaces and the logic gate components within them, then translating those into hardware description language (HDL). With the basic chips down, Unit 2 has you compose a longer HDL program in order to create an arithmetic logic unit - the chip responsible for performing the arithmetic necessary to operate on bits within your computer. Ā This is all pre-state, so creating the ALU really banks on your ability to wield an Everything All At Once control flow. Unit 3 introduces time, which you manipulate through building bigger and bigger RAM units and then a program counter that can direct data into and out of those units. In Unit 4 you write instructions in assembly, translate them down to machine language, and then run your first programs. Proceeding from the ground up, the way one imagines computers came together in ~antiquity~, adds some historical drama to what might otherwise be a pretty dry affair.
Recognize what works and what doesn’t; do the former, stop the latter. When I first started doing the Nand2Tetris course, I went about it according to my usual MOOC pattern: I did all the steps in order the best I good, including both reading through the book and watching all of the videos. I ended up finding that I really enjoyed the book, but that the videos were just as likely to confuse me as not - and they felt like they took an age to watch, regardless of how long the time commitment actually compared to reading the book. When starting Unit 2, I read the book chapter first and then said ā€œEh, can I do this without watching the videos?ā€ and found that indeed, I could, and I wasted a lot less time feeling confused in the process. The only videos I’ve consistently watched from that point out are the project overviews, which directly relate to the assignments and have tips on how to approach them. Talking to other folks at RC who have done the course, other strategies have worked better for them: some people do both, others watch the videos instead of reading the book, etc. I’m happy I’ve found a process that’s been working for me.
Get as far as you feel you can, then look for help. So far, and particularly when designing the chips, many of the assignments in the course have felt like riddle-solving. Once you’ve seen the solution it’s hard to imagine un-knowing it, so working it out for yourself is pretty much the entirety of the challenge. As such, I was disciplined about only looking up answers after I’d worked pretty darn hard to solve the puzzle myself. The three times I’ve been stuck enough to search for examples of passing assignments, I found that I was either a) making syntax errors or b) didn’t realize I had another feature of HDL at my disposal, like decomposing or replicating a single signal across multiple out streams. You don’t learn if you’re too quick to look up the answer, but you also don’t learn if you never get to the answer.
You don’t need to completely understand what you’re doing to be able to do it. I was surprised at how effectively I was able to fly by intuition in a pinch. When I was stumped about how to design a chip I experimented with just doing what ā€œfelt rightā€ and it reliably worked. I’ve spent a lot of time undervaluing my intuition. It can be hard to assign worth to a process which by definition resists rationalization, and all else being equal, a more complete understanding of how something works is preferable to hoping your subconscious tosses up something useful when you need it. But, is all else equal when moving forward on intuition helps build out such an understanding? šŸ¤” I feel like I’ll be digesting this one for a while.
having something to prove
When I first decided to do Nand2Tetris, I remember one conversation I had about it.
ā€œNo one will be able to challenge my cred,ā€ I joked. ā€œI’ll have built a computer from scratch.ā€
I felt weird pretty much immediately after saying that, since a) only assholes are interested in challenging someone else’s ā€˜cred’ for the heck of it, b) I’m disinterested in being or pretending to be motivated by the opinions of assholes, and c) to the extent that any single person spends time judging me against an arbitrary measure of success, that person is me. I am the asshole!!
So in an effort to not be an asshole, I’m doing my best to remind myself of my own personal appreciation for technological history and the process of distilling abstraction from implementation. Gotta say, internal motivation feels a lot more solid than the alternative!
0 notes
because-its-important Ā· 8 years ago
Text
dramatically better
I’m approaching the halfway point of my batch at Recurse Center. As such, it feels important to step back, take stock, and recalibrate. How has my sense of myself as a programmer changed? Am I becoming dramatically better?
why i’m here
There are endless reasons to want to become better at programming: the cool pleasure of deepening mastery in an esoteric domain, the hot pleasure of hacking something together real fast, the comforting pleasure of developing ā€˜job friendly’ skills, the tribal pleasure of identifying and aligning with other morally-conscious programmers, etc etc. It can feel really good!
At the beginning of my batch I spent some time thinking about why I, personally, wanted to be a better programmer.
Here’s what I had at the time:
Introduce and strengthen novel ways of thinking. As someone with very little in the way of traditional STEM education, programming concepts tend to be incredibly compelling, due at least in part to how alien they are.
Expand my capacity for self-expression. What are the skills I need to follow my own curiosity? How can I become brave enough to share what I find?
Help make the world a safer, more just, more meaningfully connected place. This runs the gamut from providing technical assistance to nonprofits to making games for my friends because I love them and want them to be happy.
As far as becoming better means making progress on these goals and having code to show for it, I’m doing pretty well. I’ve made my first ever solo game, I’ve explored a dataset and asked a funny question that other people enjoyed, I’m building a computer from the ground up, and in my free time (lol) I’m volunteering with a nonprofit whose mission is to stop harassment from debt collectors. I’ve even been writing about some of it!
what’s going well
Picking my own projects. I’ve been my most happy and productive when working on something that I felt personally attached to and which did not have a clearly defined tutorial to follow. I’ve also done a good job at finishing the projects I take on.
Taking ownership of my attention. I recognized a few big distractors at RC over the past few weeks, namely: keeping up with Zulip (the internal messaging platform) in real-time and attempting to concentrate in the main ā€˜open’ area. At first I felt like not doing these things would mean that I was ā€˜doing it wrong.’ I got over that by telling myself that even if this obviously untrue thing was somehow true, I care more about my happiness and productivity than ā€˜doing it right.’
Applying steady pressure to the outer bounds of my comfort zone. Every week I’ve done something that I’d wanted to do for years but never had, usually because I hadn’t known where to start and so never did.
what’s holding me back?
The #1 thing holding me back is that I waste any amount of time being afraid.
As a person living with more than my fair share of both social anxiety and philosophy textbooks, I’ve done a lot of work to order my internal universe. It’s important to me that I think and believe true things, which is why it really burns my biscuits when I find that I have been thinking and believing an untrue thing. And it has become increasingly clear that one of the greatest sources of untruth in my life is my estimate of my own capabilities.
The problem is that I stubbornly keep doing things that I’ve told myself I could never do. I’ll worry that what I’m working on doesn’t matter or isn’t interesting, only to find that other people very much care and are engaged with me and my projects. I court vague fears that I won’t know how to do something so I put off starting, then when I finally get bored of that and just start everything ends up goingĀ completely fine.
Tumblr media
I always eventually conquer my fears and it does get easier every time. But I’m not content with incremental improvements - I’m out here trying to get dramatically better, after all.
When you’re staring directly at your own irrationality for the fifth or so time in as many weeks, you gotta wonder: what is consistently underestimating myself costing me?Ā 
What if instead I chose to feel as capable and confident as I rationally should?Ā  šŸ¤”
Anyway, I think I can. I’ve done the impossible before.
1 note Ā· View note
because-its-important Ā· 8 years ago
Text
python data vis, small and not-small victories, and a taste of ML
tl;dr - Check out the Jupyter notebook I created for finding the most annoying question in the Sister Survey, plus a few visualizations of answers to demographic questions.
Last week I wrote about my using my rudimentary Python scripting skills to explore the ā€œSister Survey,ā€ which was a large survey administered to nearly 140,000 American women in Catholic ministry in 1967. A kind RC alum shared my post on MetaFilter, which lead to an absolutely amazing discussion, including a thorough explanation of the religious and historical context of the ā€œmost annoying question.ā€ Definitely worth a read!
I noticed that two different commenters had some pretty specific requests!
ā€œI'd love to see this redone as a Jupyter notebook.ā€
ā€œIt would be interesting to see what kinds of structure live in that data, e.g. factor analysis on the questions to see the more-or-less-independent areas of belief.ā€
The former I’d never done but seemed easy enough and the latter I’d never done and had absolutely no idea how to start, so I decided to cut the effort down the middle and create a Jupyter notebook with a few visualizations for demographic questions I found in the survey.
You can view it here.
Here are a few of the lessons I learned this week.
Wow, this whole ā€˜notebook’ thing is great.
This was the first time I’d worked with an iPython notebook, and it’s really hard to imagine going back to pure scripting. So many of the small annoyances that I struggled with while writing the original script - having to remember variable names and what was in them, accidentally re-running the portion that downloaded the responses, having to manually indentĀ in code blocks - are handled so neatly in the notebook structure. The more I learn about programming, the more often this happens: finding a solution that makes life an order of magnitude more pleasant, that I somehow wasn’t using before even though I was technically aware of its existence. It always feels a little silly to recognize how inefficiently I was doing things before, though doing things that way provided its own learning opportunities too.
The switch from writing Python in the terminal to using a notebook was generally seamless, though I did find myself surprised on one occasion. I’d noticed the execution order flag next to the notebook inputs, and I’d noticed them incrementing as I ran blocks of code, but I hadn’t realized that exporting the notebook (or uploading it to a Python notebook viewer, like Anaconda Cloud), would preserve that run order.Ā 
Tumblr media
What a powerful notion! I’m guessing this is particularly useful when working with data, since reproducibility is one of the hallmarks of good analysis.
When trivial things aren’t.
This was a really challenging week for me for reasons outside of RC. Emotional compartmentalization is a fool’s errand, though, so I mostly had to let myself deal with that - even when I would’ve much rather had my attention entirely focused on becoming a better programmer. When I encountered difficulties with what I assumed should be a very basic data visualization task, combined with my already dismal mood, my confidence bottomed out.Ā 
The gulf between my expectations for myself and my current performance was horrifying. I felt unsalvageable. Because I couldn’t immediately get some bar charts to display correctly.Ā 
Anyways, I kept going, because I didn’t have any better plans. And once I was able to clear my head enough to just do the damn thing, things came together. I felt better when I was finished, though I still had a lingering shame that it’d taken so long. (It didn’t take that long.)Ā 
I decided to post in the RC’s #victory channel, for three reasons - two good and one questionable:
I believe that it’s important to acknowledge and celebrate one’s wins.
Even so, I don’t ever doĀ it for myself. So I need to practice if I want to live according to my principles.
It seemed funny to celebrate something so utterly banal, anyway.
The response was super heartening. šŸ™‚
Tumblr media
All the frustrating moments - when I couldn’t tell if I needed to be reading MatPlotLib’s documentation, or Pandas documentation, and how the two libraries might be interacting with each other - suddenly felt real and valid. I don’t know why I was so surprised at how much better this made me feel, but I was. Social creatures are strange!
The power of 5 minutes.
I mentioned earlier that I had absolutely no idea how to start a principal analysis, which I took to mean, ā€œfind out which questions are most important for determining a respondents overall position.ā€ That might be a bit of an exaggeration, because I at least had a suspicion that some kind of clustering algorithm would be the right place to start.
Another big source of anxiety this week was the sense that I really wished I could answer this question, but that I didn’t have the skills or knowledge to do it. While I’m not so great at celebrating victories, I am thankfully at least marginally better at asking for help when I’m stuck. I asked around RC to see if any folks had experience implementing k-means in Python, but more broadly, if someone could help me talk through whether that was even the right approach for clustering respondents by their survey answers.Ā 
Fellow Winter 1 batcher Genevieve Hoffman, who has a background in creating data-art installations, came to my aid. I explained my goal and the data I had on hand, plus my central concern: is k-means even appropriate when the data you’re working with is essentially discrete and categorical (eg. multiple choice survey responses)? We both weren’t quite sure, so we started googling. The response was resoundingly: no, k-means relies on Euclidean distances for its clustering and therefore is notĀ the right way to go.Ā 
Could I have gotten to this answer myself? Almost certainly! But doing the work to frame my concern in a way that another person could understand it, searching for an answer together, and digesting the results together - even over the course of a few minutes - was invaluable for both widening my perspective and reassuring me that my intuitions were worth listening to. Several of the responses we read suggested that another (much less widely used) algorithm would be more appropriate: k-modes.
At the time of that conversation I had pretty much resolved that I should give up on clustering for now and be satisfied with my bar charts. I found, however, that I am generally not great at giving up. (For better and for worse.)Ā I read more about k-modes, mostly getting lost in the math, until it finally dawned on me: why don’t I just try to use this, for like, five minutes?
You can probably see where this is going.
Tumblr media
Those are three possible clusters when running k-modes on survey respondents answers to the demographic questions. Each value in the centroids list corresponds to an answer to a question, specifically these questions:
Your age now
Number of years in congregation from first vows
What is your race
To which of the following groups do you consider your family to have belonged while you were growing up
To what religion did you belong while you were growing up
With which political group would you align yourself
You can see right away that some questions don’t matter. For example, pretty much everyone was white and had been Catholic before joining the ministry. And there are clearly correlations with how old the respondent was and the number of years they’d been in the congregation: younger respondents had taken their vows more recently.Ā 
The most interesting result was the last one, where it seemsĀ like there may be some relationship between age and years in the congregation and willingness to identify politically: the 6 response in the survey isĀ ā€œI do not consider myself in a political contextā€ and the 2 response isĀ ā€œLiberal Democrat.ā€
Two important developments came out of this very, very quick exploration. Firstly, wow,Ā going fromĀ ā€œI can’t do itā€ toĀ ā€œit’s doneā€ in such a brief amount of time really calls into question the accuracy of one’s sense of personal agency! And secondly, algorithms aren’t magic and it would take a lot more work before I felt comfortable making any claims stronger than ā€œmaybe something is happening here?ā€
I’m excited to work my way towards that point, but I am not there yet. Plus, I don’t have any deep understanding of Catholicism and religious history, which seems like it would be pretty darn helpful in this situation! If I’m going to be getting into data analysis through machine learning, I feel like it’d be a lot more responsible to start with a less complex (and less serious?) dataset.
1 note Ā· View note
because-its-important Ā· 8 years ago
Text
what’s the most annoying question to ask a nun* in 1967?
tl;dr - In 1967, a very long survey was administered to nearly 140,000 American women in Catholic ministry. I wroteĀ this script, which makes the survey data work-ready and satisfies a very silly initial inquiry: Which survey question did the sisters find most annoying?
* The study participants are never referred to as nuns, so I kind of suspect that not all sisters are nuns, but I couldn't find a definitive answer about this during a brief search. 'Nun' seemed like an efficient shorthand for purposes of an already long title, but if this is wrong please holler at me!
During my first week at Recurse I made a quick game using a new language and a new toolset. Making a game on my own had been a long-running item on my list of arbitrary-but-personally-meaningful goals, so being able to cross it off felt pretty good!Ā 
AnotherĀ such goal I’ve had for a while goes something like this:Ā ā€œDevelop the skills to be able to find a compelling data set, ask some questions, and share the results.ā€ As such, I spent last week familiarizing myself with Python šŸ, selecting a fun dataset, prepping it for analysis, and indulging my curiosity.
the process
On recommendation from Robert Schuessler, another Recurser in my batch, I read through the first ten chapters in Python Crash CourseĀ and did the data analysis project. This section takes you through comparing time series data using weather reports for two different locations, then through plotting country populations on a world map.
During data analysis study group, Robert suggested that we find a few datasets and write scripts to get them ready to work with as a sample starter-pack for the group. Jeremy Singer-Vines’ collection of esoteric datasets, Data Is Plural, came to mind immediately. I was super excited to finally have an excuse to pour through it and eagerly set about picking a real mixed bag of 6 different data sets.
One of those datasets was The Sister Survey, a huge, one-of-its-kind collection of data on the opinions of American Catholic sisters about religious life. When I read the first question, I was hooked.Ā 
ā€œIt seems to me that all our concepts of God and His activity are to some degree historically and culturally conditioned, and therefore we must always be open to new ways of approaching Him.ā€Ā 
I decided I wanted to start with this survey and spend enough time with it to answer at least one easy question. A quick skim of the Questions and Responses file showed that of the multiple choice answer options, a recurring one was:Ā ā€œThe statement is so annoying to me that I cannot answer.ā€Ā 
I thought this was a pretty funny option, especially given that participants were already tolerant enough to take such an enormous survey! How many questions can one answer before anyĀ question is too annoying to answer? šŸ¤”Ā I decided it’d be fairly simple to find the most annoying question, so I started there.Ā 
I discovered pretty quickly that while the survey responses are in a large yet blessedly simple csv, the file with the question and answers key is just a big ole plain text. My solution was to regex through every line in the txt file and build out a survey_key dict that holds the question text and another dict of the set of possible answers for each question. This works pretty well, though I’ve spotted at least one instance where the txt file is inconsistently formatted and therefore breaks answer retrieval.
Next, I ran over each question in the survey, counted how many responses include the phrase ā€œso annoyingā€ and selected the question with the highest count of matching responses.
the most annoying question
Turns out it’s this one! The survey asks participants to indicate whether they agree or disagree with the following statement:
ā€œChristian virginity goes all the way along a road on which marriage stops half way.ā€
3702 sisters (3%) responded that they found the statement too annoying to answer. The most popular answer was No at 56% of respondents.Ā 
I’m not really sure how to interpret this question! So far I have two running theories about the responses:
The survey participants were also confused and boy, being confused isĀ annoying!
The sisters generally weren’t down for claiming superiority over other women on the basis of their marital-sexual status.
Both of these interpretations align suspiciously well with my own opinions on the matter, though, so, ymmv.
9x speed improvement in one lil refactor
The first time I ran a working version of the full script it took around 27 minutes.Ā 
I didn’t (still don’t) have the experience to know if this is fast or slow for the size of the dataset, but I did figure that it was worth making at least one attempt to speed up. Half an hour is a long time to wait for a punchline!
As you can see in this commit, I originally had a function called unify that rewrote the answers in the survey from the floats which they'd initially been stored as, to plain text returned from the survey_key.Ā I figured that it made sense to build a dataframe with the complete info, then perform my queries against that dataframe alone.Ā 
However, the script was spending over 80% of its time in this function, which I knew from aggressively outputting the script’s progress and timing it. I also knew that I didn’t strictly need to be doing any answer rewriting at all. So, I spent a little while refactoring find_the_most_annoying_question to use a new function, get_answer_text, which returns the descriptive answer text when passed the answer key and its question. This shaved 9 lines (roughly 12%) off my entire script.
Upon running the script post-refactor, I knew right away that this approach was much, much faster - but I still wasn’t prepared when it finished after only 3 minutes! And since I knew between one and two of those minutes were spent downloading the initial csv alone, that meant I’d effectively neutralized the most egregious time hog in the script. šŸ‘
I still don’t know exactly why this is so much more efficient. The best explanation I have right now is ā€œwelp, writing data must be much more expensive than comparing it!ā€ Perhaps thisĀ Nand2TetrisĀ course I’ll be starting this week will help me better articulate these sorts of things.
flourishes šŸ’ššŸ’›šŸ’œ
Working on a script that takes forever to run foments at least two desires:
to know what the script is doing Right Now
to spruce the place up a bit
I added an otherwise unnecessary index while running over all the questions in the survey so that I could use it to cycle through a small set of characters.Ā Last week I wrote in my mini-RC blog, "Find out wtf modulo is good for."Ā Well, well, well.
Here’s what my script looks like when it’s iterating over each question in the survey:
Tumblr media
I justified my vanity with the (true!) fact that it is easier to work in a friendly-feeling environment.
Plus, this was good excuse to play with constructing emojis dynamically.Ā I thought I’d find a rainbow of hearts with sequential unicode ids, but it turns out that ā¤ļø šŸ’™ and šŸ–¤ all have very different values. ĀÆ\_(惄)_/ĀÆ
the data set
One of the central joys of working with this dataset has been having cause to learn some history that I’d otherwise never be exposed to. Here’s a rundown of some interesting things I learned:
This dataset was only made accessible in October this year. The effort to digitize and publicly release The Sister Survey was spearheaded by Helen Hockx-Yu, Notre Dame’sĀ Program Manager for Digital Product Access and Dissemination, and Charles Lamb, a senior archivist at Notre Dame. After attending one of her forums on digital preservation, Lamb approached Hockx-Yu with a dataset he thoughtĀ ā€œwould generate enormous scholarly interest but was not publicly accessible.ā€
Previously, the data had been stored on ā€œ21 magnetic tapes dating from 1966 to 1990ā€ (Ibid)Ā and an enormous amount of work went into making it usable. This included both transferring the raw data from the tapes, but also deciphering it once it’d been translated into a digital form.
The timing of the original survey in 1967 was not arbitrary: it was a response to the Second Vatican Council (Vatican II). Vatican II was a Big Deal! Half a century later, it remains the most recent Catholic council of its magnitude. For example, before Vatican II, mass was delivered in Latin by a priest who faced away from his congregation and Catholics were forbidden from attending Protestant services or reading from a Protestant Bible. Vatican II decreed that mass should be more participatory and conducted in the vernacular, that women should be allowed into roles asĀ ā€œreaders, lectors, and Eucharistic ministers,ā€Ā and that the Jewish people should be considered as ā€œbrothers and sisters under the same Godā€ (Ibid).
The survey’s author, Marie Augusta Neal, SND, dedicated her life of scholarship towards studying theĀ ā€œsources of values and attitudes towards changeā€Ā (Ibid)Ā  among religious figures. A primary criticism of the survey was that Neal’s questions were leading, and in particular, leading respondents towards greater political activation. ✊
As someone with next to zero conception of religious history, working with this dataset was a way to expand my knowledge in a few directons all at once. Pretty pumped to keep developing my working-with-data skills.
2 notes Ā· View notes
because-its-important Ā· 8 years ago
Text
making a pico8 game during my first week of RC
tl;dr - Play my first ever solo game right here!
Tumblr media
On my first day of Recurse, fellow W1 2017 batcher Ayla Myers (whose work you can peep here) presented on fantasy game consoles, PICO-8 in particular. Her presentation ran roughly 5 minutes, but it only took about half that time to convince me that I should give it a whirl. Since asking for help is more than encouraged here, I approached her immediately afterwards and asked if she could do a quick walkthrough of PICO-8 sometime.
ā€œYeah, of course. When do you want to start?ā€
ā€œUhā€¦ā€ It was already 6pm. ā€œTomorrow?ā€
ā€œOkay!ā€
And lo, 11am the next day found myself and a handful of other Recursers sitting around a table in the Turing meeting room as Ayla showed us the ropes.
PICO-8 is a highly-opinionated, highly-constrained fantasy console with a robust set of tools for quickly developing and sharing games. While I’d played a few PICO-8 games before, I hadn’t realized just how core the commitment to retro-nostalgia is to the engine itself. Here are some fun things I learned about PICO-8:
It includes a pixel art editor and a chiptune mixer, both of which are a delight to use.
PICO-8 games can have 2 players, but each player only gets 6 possible inputs: four directional keys and two others (typically Z and X).
On the programming side, developers are allowed a maximum of ~8k tokens and ~65k characters. This incentivizes some extreme optimization, overloading, and other tricks in larger games that near those limits.
The games are super easy to export and share, either as embeddable HTML and JS or as downloadable executables.
As someone who has shipped dozens of games professionally but has never personally programmed one from start to finish, I decided that it’d be a good exercise to build one during the remaining 4 days of the first week.
On programming in a new language.
PICO-8 uses a subset of Lua, which I’ve never read or written before. Under other circumstances, I probably would have preemptively given up and shied away from using a tool that required learning a new language. Fortunately, my current circumstances are ā€œyou are entirely here to learn new things and surrounded by people who can help, actuallyā€ so I waved off the anxiety and plunged ahead instead.
Turns out that Lua felt very similar to other game programming I’d done in the past, so there wasn’t any need to worry anyway! (One begins to suspect that there is rarely a ā€˜need’ to worry… šŸ¤”)
There were a few things that stood out in particular as I built my game.
First, to handle animations - like bobbing a sprite or moving UI elements on and off screen - I found myself repeating a pattern using a counter (incremented every update loop) and a maximum (resetting the counter to 0 when it reached this value). I wasn’t sure if a series of timers would be a better fit for cycling through animation states, especially since this pattern meant assigning at least two tokens per animation. Since I was focused on building this quickly and wasn’t worried about running up against the token limit, however, I figured that consistently using a single pattern that I knew worked was the way to go.
Example of the section of the bat’s update loop that flaps her wings up and down and plays a quick beat on each flap:
Tumblr media
Second, I learned that tables are ā€œthe only data structuring mechanismā€ in Lua, and that there is no readily available method to query them about the number of items they’re holding. To solve this, I tracked the count of items as a separate variable and updated the count any time I was adding or removing items from the table. If I were pinched for tokens I’d probably handle this differently, likely by writing a separate function that iterates over the the items in the table and returns the count.
Tumblr media
Lastly, and this one was a pleasure to discover, Lua is perfectly a-okay with removing items from a table while iterating over items within that table. For example, during the update loop I want to iterate over each of the moths in the game and check if the bat is in a position to eat them. If the bat should eat the moth, I want to add a quick sound effect, draw some bug-gut splatter to the screen, and remove the moth from the moths table.
I can do all of that like this:
Tumblr media
This was a big relief to me because I’ve had trouble doing the same with JavaScript in the past!
On finding relief in constraints and designing a tiny game.
I didn’t have a strong idea when I first started making Sonar, other than that I should be able to finish it in a few days and that it should be about animals. Certainly my appreciation for earth’s non-human lifeforms would stave off any temptation to jump ship if things got confusing or tedious. šŸ¦‡
There was a brief moment where I sat, staring at my laptop screen, wondering what I could even do with only two non-directional inputs. It took about five minutes for me to come to my senses. What if this constraint, much like the constraint on tokens or audio channels, was a blessing? ā€œWow, I’m so glad I only have two buttons to work with,ā€ I told myself, found it to be true. ā€œIn fact, let’s start by using only one of those buttons.ā€
Changing your perspective sure is a time-efficient way to clear obstacles!
On making art and SFX.
While I’d done some game programming (though never a complete solo project), I’d certainly never done game art or audio. In fact, art and audio often felt more intimidating than the rest of the design or development. I didn’t really know anything about creating reasonable looking pixel art or have any kind of background in creating music or sound effects; I just knew that both were important to making a game feel whole.
Once again, PICO-8 provided seamless introduction to these areas of game development. With only 16-colors and 8x8 pixels to worth of space to work with, I never got stuck trying to pick the perfect colors or shape for a sprite. If it worked, it worked, and it only took a matter of seconds to make changes and see them live in the game.
Tumblr media
As someone who has zero musical education the responsibility of creating audio made me more than a little apprehensive, but I found the SFX editor similarly quick to learn and pleasant to use. I stopped short of making any ambient music, but I did make a few sounds: a steady but muffled bassline for the bat’s wings flapping, a high-pitched chirp for the echolocation, a gulp for a bug being swallowed, and a confirmation bloop for starting the game. SFX are necessary for giving a non-haptic game the illusion of tactile feedback, and even just these few simple, two-note sounds do a lot of heavy-lifting in making the game feel more responsive.
On jamming fast, alone, in an environment geared towards collaboration.
The single biggest struggle I had while working on this project was worrying if I should be spending my time doing something else. Whenever I spent large chunks of time coding alone, rather than pairing or attending study groups, I couldn’t help but feel like perhaps I was missing the forest for the trees. Shouldn’t the first week be about learning as much as possible about my peers and their interests, in the spirit of future collaboration? Did I somehow find a way to ā€˜do it wrong?’
Hard to say, what with only one week’s worth of information! My current guess, however, is no. I became familiar with a new language, I learned a new toolset, and I finished a project that I feel at least remotely comfortable showing to other people. Those are pretty solid accomplishments, even in the face of a gnawing suspicion otherwise!
More importantly though, I practiced being comfortable following my own intuition of what an ideal first week might look like. I proved to myself that I could set my own goals and meet them. I also developed a general feel for the ebbs and flows of working with myself as sole author and stakeholder on a project. I’m sure this kind of self-knowledge is valuable at any level, but as a beginner it feels like an especially worthwhile point of reference.
Besides, this was all made possible because I was inspired by a fellow Recurser, asked them for help and got it.Ā 
How could that be wrong? 😊
You can play SonarĀ right here.
ps. I almost forgot something funny!
This is one of the first things that happened when I began animating my pixel bat:
Tumblr media
I laughed at this for a solid minute. It was wonderful, and only more so because I had spent the previous two hours setting up new software, familiarizing myself with basic Lua syntax, and fretting over whether my pixel art would be at all legible.
As one of my friends commented, ā€œOH NO, HIS FLAPS FELL OFF!ā€ And then, ā€œor HER flaps, excuse me.ā€
Making games is generally time-consuming, tedious, detail-oriented work. On the bright side, many of the bugs and SNAFUs you run into are just silly as heck. The moments where ish goes off the rails can provide exactly the right dose of harmless humor to revitalize your motivation to finish.Ā šŸ‘‘
edit (11/15/2017)
Once again going above and beyond in her helpfulness, Ayla informs me that you totally can get the length of a list in PICO-8!
Here’s how, using the # operator:
local some_list = {32, 4, 72} print(#some_list) -- prints 3
āœŒļøšŸ¦‡
edit (11/17/2017)
So probably it makes sense to link to the the code, since becoming a better programmer is the whole gosh darn point! šŸ˜‘
Also, because it may be helpful, I want to provide a quick outline of how you might also crank out a small game in a narrow window of time:
day1 - purchase and install pico8 (if you’re at RC, talk to someone about using their license!) - install a lua linter on your text editor of choice - run pico8 in console mode, so u can use printh to debug - make a player character that responds to input - make a 2-state animation for that player character (eg. flip between two sprites, add some bobbing motion, etc) - get ppl to Play Your Game!
day2 - make an enemy (note that these could also just be Collectable Objects if u aint feeling like defaulting to violence ✨) - make a 2-state animation for that enemy - give that enemy some passive behavior - disappear the enemy conditionally (eg. touched by player, hit by bullet) - make another enemy with similar but more challenging behavior - get ppl to Play Your Game!
day3 - add an end-condition (eg. eating some amount of bugs) - add SFX. this is more important than music for making your game feel whole, and you can do just about everything you need to with 2 note blips - add UI elements (eg. health bar, bullets left, etc) - add a start screen - add an end screen - get ppl to Play Your Game!
day4 - add finishing touches - export your game as html from PICO8 - host somewhere, like itch.io - write a blog post!! - share with your friends and the rest-o the world
2 notes Ā· View notes