• 2021

    new year energy

    It’s January once again. Predictable things that happen in January include the one weird week late in the month where clear skies and sun convince me and the daffodils that spring is around the corner, and a manic period where I’m convinced that I can change everything in my life that needs changing. I can, I will, and in my favored manner, with extreme effort all at once.

    Instead of offering resolutions, here are some of the themes I think will be sounding throughout my next year:


    I completed a coding bootcamp and switched careers last year. I spent a lot of time working on my focused work muscles, and it’s time to turn my attention to play. I really love the way that Cal Newport talks about ‘high-quality leisure’: the challenging, active ways of using downtime that restore and recharge us after focused work. https://www.calnewport.com/blog/2019/05/31/on-the-pleasures-and-sorrows-of-life-without-screens/ It’s kind of like exercise is to the body: sometimes rest requires more than sleeping, it may require stretches, breathing, reclaiming range of motion.

    I’m particularly looking forward to trying to build relationships around writing and playing music. I have dearly felt their lack in the past years, particularly since the beginning of the pandemic. I’m ready to find others to play with.

    finding space for books and music (aka cutting down on podcasts)

    As my work has become more mentally taxing, demanding, and as it requires more single-task focus, I have found it harder to make space for reading and listening to music. I’m looking forward to continuing my journey toward cutting down on passive podcast consumption and doomscrolling to make that happen.

    I dearly love podcasts, but it’s so easy to just keep listening to them. If podcasts were books, I’d read better books. If they were articles, I would abandon more of them. I have a few podcasts that I’m pretty attached to on a parasocial level, but I’m working on winding those down and trying not to get attached to new ones.

    practicing networking

    I could write a lot about this. I am hungry for in-person, social, group ways to experience my passions. Professionally, artistically, even among my friends. This year I am rededicating myself to making that happen and to putting social effort into participating in new ‘scenes’ that I have curiosity about.

  • toot or boot?

    Twitter Mascot

    My therapist asks And does this serve you? when I’ve been complaining about something and he’s trying to gently ask me to consider that ‘stop’ might be an easy way to improve the situation. It creates space to feel honest feelings about the things that we hate doing but we have to because it serves a purpose in our lives, and a way of double checking that the purposes they serve actually exist.

    I joined Mastodon. This is the 3rd time. The first time was after some kind of Twitter corporate outrage. The second was after reading How to Do Nothing and hungering for richer online experiences.

    This time around, Mastodon feels much more mature as a platform. There are still huge holes in the user experience that need attention. It’s hard to find people. It’s even harder to find people based on keywords and hashtags. The only way to build an audience is through word of mouth, like Follow Fridays. This time, I am questioning whether the habit of publishing anything online is serving me.

    Out of the many dreams of what social media can do, two have been seductive to me. The first vision is social media as a public channel for keeping friends and family updated on big life events etc. That’s Instagram. The second is as a forum to get attention in a way that is difficult to get offline.

    I read many bloggers in the period between the founding of Daily Kos and Huffington Post to the end of Google Reader. They were smart people, but not journalists or paid writers and sometimes from a marginalized group or young or from an unimportant place. The internet allowed them to compete for their share of the internet audience. Same with niche subjects or hobbies. All it took was four or five writers and their audiences on a beat to create an idea ecosystem. Generous attention to each other’s writing created that feeling of group cohesion.

    The writing that I’ve shared on blogs on Twitter are the closest I come to asking for online attention. I struggle with that. The version of me that emerges from that body of work has less of my sense of humor, less of my sense of delight. He tends to emerge more often in anxiety and alienation than in joy or connectedness. He doesn’t share as much as he’s learned, and the only subject he has endless time for is himself.

    My favorite online writers either focus on a narrow range of topics or they write in their own voice. Idiomatic blogs are conversational, fast pieces of writing. Books or works from publication have a higher bar for polish and accuracy. It’s understood that a blog post is more perishable. The thing that can perish is the voice of the mind working through its first reaction. First thought, best thought. It’s not always true, but it does have a strong flavor!

    In the last 15 years, it has been very rare for me to get constructive feedback that inspires me to keep going. I tell myself that I keep writing because its rewarding. I worry that it’s because either I can’t give up on the idea of being discovered to be interesting, or that I don’t have the imagination to try something else. Does that serve me? I’m not sure. It takes practice to make perfect, sure. Audiences and artists train each other, though. There’s a ceiling for how far you can develop without high quality attention and feedback.

    That’s what I’m really looking for: high quality attention and feedback.

    I don’t know how to get it, online, in person, whatever. I write because even if I never get the feedback I want, I will end up with something to read back through. I hope it ends up more than that, but many people create even less.

    I promise to myself that in 2023 I will seek more play, more attention, more good feedback. It’s time to be more brave.

  • tweet

    photo of cheese fries
    Mmm… chili cheese fries” by jeffreyw is licensed under CC BY 2.0.

    When the restaurants shut down, one of my favorite neighborhood bars shut down too. They were lucky—the bar was on a quiet street that was easy to pedestrianize. They opened back up with outdoor cafe seating a few weeks later. There were changes. Order at the window. Sanitize your own table. The menu got smaller. My favorite dish, a platter of fries, bacon, and jalapeños covered in cheese and served with a strawberry ketchup, was cut from the menu.

    About 18 months later, I was back in the bar, and delighted to learn that the full menu was back. Once I ordered my fries, I discovered that though the dish was on the menu, it wasn’t quite back. Even a blunt combination of cheese and meat and potatoes demands delicate balances to approach greatness. When the oven is too hot or the dish warmed too long, the cheese gets hard and dries out. The cheese should smother the fries, not cement them together. The salt in the bacon and cheese requires under-salting the fries. If there is not enough strawberry jam mixed into the ketchup, it conflicts with the jalapeño brine.

    Eighteen months is a long time. Most likely, the kitchen turned over while the dish was off the menu, and there was no one there to teach the new people how to make it. Or a change in vendors led to a different cheese blend or ketchup order. It’s possible that it’s just a bad dish and I no felt nostalgic for it.

    Many of the things we value in our everyday world, things that make up the texture of ordinary living, are contingent on relationships. A bar that doesn’t maintain relationship with its staff, a kitchen manager that doesn’t maintain relationship with its vendors, even a patron that doesn’t maintain relationship with his favorite dish, all of these can cause a dish to unravel.

    I met a contractor that specialized in home renovations in small, out of the way, wealthy Ojai, California. He explained why he ordered his hardware from a small, independent hardware store. “I can get 25-30% better prices ordering from Home Depot. That’s real money. But sometimes I make an ordering mistake. Sometimes things break. I can run out and back to Ojai Lumber in 30 minutes. If there’s no hardware store in Ojai, then I have to go to the Home Depot in Oxnard. That’s a round trip of two hours, and my guys are standing around until I get back. My time is much more expensive than materials. There’s a big difference between one local hardware store and no local hardware stores, so I try to make sure that I give them business when I can.”

    That’s attending to relationships.

    Elon Musk goes out of his way to show contempt for anyone he does business with. Nothing attracts his attention faster than letting slip that you have your own goals and financial interests. I am not enjoying seeing Twitter fall apart. But I am enjoying him fail. He assumed that everyone would eventually give up on having their own interests in the platform, and that nobody else would have any human reaction to his abuse. Twitter may be more complicated and less perfect than my favorite plate of cheese fries, but it has turned out to be no less vulnerable to falling apart when the people who make it stop cooperating.

  • novel

    File:Monumento a Miguel de Cervantes – 05.jpg” by Carlos Delgado is licensed under CC BY-SA 3.0.

    For almost 500 years the type of story most popular among literate Europeans was the chivalric romance. The Song of Roland, Troilus and Criseyde, the kind of stories that Monty Python and the Holy Grail makes fun of. In 1605, Miguel de Cervantes writes a bawdy little satire called Don Quixote. It takes all of the noble tropes of the romance and turns them upside down. In the place of a young noble undergoing a challenge of grave importance to earn the hand of a beautiful maiden, there is a destitute old crank and his wisecracking frenemy wasting their time shouting at windmills and fantasizing like incels about the feminine qualities of the beauties they’re totally going to find.

    That’s how Cervantes accidentally invented the modern novel.

    The novel embraced that it was a low, grubby kind of story. They didn’t have to be any more realistic than the romances. They just dealt with slightly more grounded people than Chosen Ones on a divine quest given to them by God. They made mistakes for petty, human reasons. That turned out to be relatable to people, and novels are still with us today.

    I thought about the romance and the novel recently while watching TV, bored. I was watching It’s A Sin but it could have been any number of shows or movies. I realized that I wanted a drama but I was watching some new form of show that reminds me of school pageants.

    Pageants present well-known stories about well-known people going through well-known situations. If the pageant is about George Washington, there will be a cherry tree and the Delaware will be crossed. About California history, expect Missions and Gold Rush and Silicon Valley. Any child actor is welcome to play their part artfully, if they so choose, but the form doesn’t demand it. A good pageant keeps the story moving along even when the people on stage aren’t behaving in ways that resemble any human let alone a particular character, or can’t remember their lines, forget how to speak, are having an out of body experience. It’s a funny art form!

    Many shows and movies that get applause for being brave and diverse and bringing new stories are secretly pageants. It’s A Sin was about AIDS in the 1980’s, a rural, innocent looking twink moved to a big city and was taken under the wing of worldly club queens. There were tearful scenes of family betrayal and discrimination at work. Among a large cast of characters are stand-ins for straight allies, lesbians, older gay men, Black and Asian gay men.

    Playing with pageantry can be great. Juno sends up the teen mom after school special by giving you a quirky, character-driven comedy. A lot of the pleasure of Ryan Murphy or Aaron Sorkin shows, Derek Jarman films, or Julie Taymor musicals are that they are pageants.

    Pageants are blunt, though, and I don’t think they can ever introduce a new story as well as a drama. Work in Progress, The Bisexual, and Chewing Gum are all weird, flawed shows. But showing the messy ambivalence of the human, strange, lovable characters at the heart of those shows gave me a chance to fall in love with them. That’s what I need from TV.

  • trades

    I’m a builder’s son. My father was a Northern California ski bum in the 70’s. There was a building boom going on. Construction jobs were easy to get, and they suited his lifestyle. Later, the construction industry got much more professionalized and licensed. A generation of lucky tradesmen got to keep licenses that were much easier to get than those that their apprentices were earning. My dad wasn’t particularly good at any one trade, but his ability to nose out a loophole was the best in the business. He recognized that the door was not going to be open forever. He paid the testing fees and ended up with full Electrician, Plumber, HVAC, and General Contractor licenses.

    Now, as when I was a kid, getting a conversation going with my dad takes a lot of work. We have two safe topics always available to us: “I heard this piece of classical music recently,” and “I wonder how they built that?”

    As a side effect of trying to connect with my dad, I learned a lot about building and architectural designs.

    I developed an appreciation for well-constructed buildings. Buildings that suit their purpose. Buildings that were designed with integrity. Buildings that are solid enough to be repurposed.

    Things that look expensive can be cheap. Things that are actually expensive can have no integrity in their design. Buildings are designed for someone, ideally the people that will use it. Often not. These are some of the things you think about when you notice the quality of construction around you.

    A well designed, beautiful space can fill you with a sense of tranquility and abundance. Good design makes the activities that will take place in the space easier. Bad design adds friction.

    There’s both delight and sadness when I am surprised by the beauty of an old building or public space. Beauty delights me. The bittersweet surprise is that this group, in this place, at one time, were worth spending enough money on to build something nice.

  • synthesis

    One afternoon I noticed I had a philosophy. I might have had one before, I’m not sure. My younger self made a lot of decisions that I no longer understand.

    My path to the present included many embarrassing learning experiences. “Learning experiences” is a euphemism. I said stupid things in front of very smart people, argued loudly that I was right, grudgingly admitted that I was wrong, then sulked for days about it.

    Put another way, the learning experiences were unlearning experiences. My universe of known things was always getting bigger, but I had to let go of many of the working assumptions I built that universe on.

    I thought the unlearning would never end. I liked being able to look around me and read so many layers of knowledge into the world around me. I didn’t like the growing ambivalence I had about the usefulness of that knowledge. I really didn’t like the growing distance I felt from other people. I worried that I would grow into an old man like Michael Caine’s character in The Cider House Rules. He spent his days in service of others. He spent his nights anesthetizing himself. The whisper that asks whether finding meaning in life is easier to hear at night.

    But that one afternoon I realized that there was a through line that connected many of the themes that had captured my curiosity in the past years. Ecology and living in balance with the planet. The failure of capitalism and the historical circumstances of its rise. The disappearance of musicians and the rise of a musical monoculture. Queer joy and the healing power of sex. What to do with the artistic spoils of colonialism. How to feel better. What is a community and how does it work?

    Here’s the basic thought that I’m trying to develop:

    There are very few rewards that humans take in on a primate level. They include food, brain and adrenaline highs, sex, the pleasure of social position, and the feeling of safety. The current global system that distributes those rewards is unjust. It requires misery for those at the bottom of the hierarchy, and our planet cannot sustain it.

    That is a cultural choice. We can make different cultural choices. When we provide human rewards to each other without exchanging money, we reinforce a new culture that differentiates between living well and succeeding in an economic marketplace.

    I know that sounds very simple, but I hope to spend some time unpacking it. I think there is a lot there. My hope is that developing this idea will generate creative ideas & help me better understand how to be a community member and leader.

  • hit refresh

    cover of hit refresh by satya nadella

    I’m fascinated by Satya Nadella and his transformation of Microsoft. While there were moments where his personality came through, this is mostly a bland piece of corporate hagiography, and you should look elsewhere for insights into that work.

    The first part of the book is the most valuable. It’s a first person account of Nadella’s upbringing, education, and entry into the tech field. It captured how much pride he has in being both his father’s son and his mother’s son, as well as his clear love for his wife and family and his love for the cosmopolitan and ambitious India he grew up in. 

    The next part is about his rise to CEO, and the undoing work he accomplished to change the corporate culture at Microsoft. There are a lot of corporate credits (our great work growing our cloud business was accomplished by such visionary leaders as blah blah blah) and a lot of telling but not showing (over the course of several meetings, we reached a consensus about how to move forward…). 

    As with all transformational stories, details matter. If you zoom out far enough, all transformational narratives are the same: I was doing it one way, I wanted to change, I finally let go of what was holding me back from change, I tried a different way, and that turned out way better.

    There’s not much more than that here. There are references to Microsoft losing its way and employee unhappiness, but a reluctance to call out specific mistakes. There is almost no specificity about the personnel changes that he made to signal that more changes were coming down the line. There is a little more detail about Nadella’s “new way,” including: moving away from the mindset of corporate friends and enemies and toward thinking about all other corporations as potential partnerships, breaking down the inefficient communication and empty status symbols of 20th century blue-chip corporate hierarchy, and stoking a real hunger for learning about use cases and developing sales channel for every sector of the market. 

    If there’s any value in this book, it’s in this section.

    The final section is Nadella’s prognostication of the future. It seems completely ghostwritten and is structured around Nadella visiting various Microsoft R&D initiatives and marveling with wet eyes about what he finds. Skip it. Skip the whole book*.

    *I am aware that most people probably never even considered reading the book, that a book by a major corporate CEO was guaranteed to be bland and impersonal. What can I say? I’m an optimist.    

  • interconnected

    Photo by Fábio Lucas on Unsplash

    There is no blog that makes me feel excitement to meet the future than Interconnected, the public journal of Matt Webb. Webb is a UK based managing director of investment funds and former head of a design group. He specializes in imagining the near future, supporting businesses at the intersection of tech and material design.

    I love the way that he incorporates a very long view of history into his imagination of the almost-possible. In this fantastic post considering the use of birds to divine the future in the ancient world, he connects this taxonomy of magicians codified in Roman law:

    A haruspex is one who prognosticates from sacrificed animals and their internal organs;

    a mathematicus, one who reads the course of the stars;

    a hariolus, a soothsayer, inhaling vapors, as at Delphi;

    augurs, who read the future by the flight and sound of birds;

    a vates, an inspired person – prophet;

    chaldeans and magus are general names for magicians;

    maleficus means an enchanter or poisoner.

    to some of the mystical personalities that have become common in Silicon Valley and globalized manufacturing:

    I happen to have spent my career in a number of fields that promise to have some kind of claim to supernatural powers: design, innovation, startups…

    It’s not hard to run through a few archetypes of the people in those worlds, and map them onto types of ancient magician.

    Those like Steve Jobs (with his famous Reality Distortion Field) who can convincingly tell a story of the future, and by doing so, bring it about by getting others to follow them – prophets.

    Inhaling the vapours and pronouncing gnomic truths? You’ll find all the thought leaders you want in Delphi, sorry, on LinkedIn.

    Those with a good intuition about the future who bring it to life with theatre, and putting people in a state of great excitement so they respond – ad planners. Haruspex.

    Those who have the golden mane of charismaenchanters. Startup founders.

    People with a great aptitude for systems and numbers, who can tell by intuition what will happen, from systems that stump the rest of us. We call them analysts now. MBAs. Perhaps the same aptitude drew them to read the stars before? Mathematicus.

    Just today, I was lit up with imagination and fantasies of the wonders of the future—confidence in the future is hard to locate right now, on the brink of a nuclear world war that all of the small people of the world are hoping against—by a new post connecting the physics of bumblebees and fish:

    Vortices in the water are generated by the skin, and the side-to-side movement of a trout is the fish slipping between the vortices, pinballing between them, propelled on them like a boat on wind. (Shown, says the article, by the fact a dead trout on a line in moving water will still exhibit the characteristic swimming action.)

    All of which leads to this REMARKABLE line:

    Fish don’t swim, they’re swum.

    ARGH. Too good. Am dead now.

    to new forms of locomotion enabled by the marriage of machine learning with precise, instant control of motors:

    How can the tools for inventing new wheels end up in the hands of the people with the right imaginations?


    All wired together. Handed out to designers and mechanical engineering students.

    And, given this package, perhaps the future will look very different from our science fiction.

    Pinhead drones dragging copper wires behind them, darting through the home bouncing on air currents, generating electricity and power by dragging their tails through ambient magnetic fields.

    Directional packaging that is can’t slip out of your hands (but dislodges easily when you move your hands the other way).

    Cars with fine filament-bristles covering on the base, shaping and sweeping the air at nanometer resolution to ride on a silent and almost friction-free air cushion of vortex turbulence.

    All mechanical objects with halos of filaments, magnets, mist, so fine that the eye can’t identify clean edges, no hard plastics or iron but all our artefacts in soft focus, encased as they will be in a gentle haze of turbulent air sculpted by alien intelligence.

    It’s just fantastic.

    I have such an inborn and church-reinforced worldview that is highly attuned to loss, and I never assume that just because the present followed the past it is automatically better. When I think about the lifestyles of the 1930s, I don’t think about how they didn’t have TV and most of their movies sucked, I think about how there were professional musicians in every city and dance halls where people had fun. Embodied, active fun. And their bread tasted better.

    But it’s also true that I don’t have a way to think about all of the hunger, all of the people who had no bread at all. Maybe the truest truth about the 30’s is that the early 30’s sucked for almost everyone, and romanticizing anything about it is ridiculous.

    A more balanced view would be to appreciate the good qualities of any given time, and appreciate it separately from comparisons to the future. There are social factors that make it difficult to set up a 1930’s style dance hall today: no one knows how to dance, the economic model relied on huge volumes and it would be a niche activity today, and it’s more expensive to secure and insure event spaces today. Not to mention that partner dances rely on rigid gender roles! All that means is that we need new models to respond to the conditions today.

    It takes faith in the belief that people want to dance.

    Future thinkers like Matt Webb give me confidence that we can figure out new models to create spaces where that can happen.

  • avicii’s pizza

    This is my latest code review project. The coding program I am going through, Epicodus, is modeled after a software development company rather than a school. That means that instead of lectures and classes and homework, the emphasis is heavily on time with hands on the keyboard. Each day we pair up with a different peer and “pair code”—work through a coding exercise together, switching off typing code and proofreading for errors. Every Friday, we work alone on a project from 8am to 5pm, and we are not given the prompt ahead of time.

    Screenshot of “Avicii’s Pizza” webapp.

    This week’s challenge was to build a website that allows the user to customize a pizza and be returned a price for that pizza. I ended up building something a little more complicated than that, and that was one of two big mistakes I made that led to this being a more difficult project than other Friday code reviews. 

    This week we added object constructors and prototype methods to our JavaScript toolkit. At my level of understanding right now, objects and methods are the heart of object oriented programming languages (like JavaScript, and many others). An object is constructed, and the object bounces around various functions as they are triggered by the user. 

    I’ve been making really good progress, and that good progress led to my other big mistake this week. On Wednesday I worked with another student that came into the program from an IT background and together we blazed through the learning exercises we had for that day. That gave me a false sense of mastery over the material, and I ended up spending time helping a student in my team this week that was running behind on the material. What I didn’t realize (and what I might have caught if I had continued going through the extended practice projects) is that I didn’t quite internalize a particular strategy used to loop through objects stored in other objects. That strategy would turn out to be essential to finishing this project. 

    Photo of planning notebook.

    I started out by sketching my vision in a notebook. I struggled last week with coding according to test-driven development principles, writing incremental tests for my code before writing it. I had an idea that making a list of functions to write might help me not get distracted by xyz questions when I was working on abc. That turned out to be a good idea, but I also ended up sketching out a system that was a lot bigger than I was asked to make. I read through the specs too quickly and I wasn’t aware that I was extending every feature. I also came up with the Avicii’s Pizza pun, putting together Avicii, the late EDM artist that I greatly liked, and Ameci’s Pizza, a SoCal chain that had a restaurant in my hometown. Although nobody in Portland is going to get the pun—and, honestly, maybe not people in SoCal either—it made me laugh every time, and I was looking forward to adding styling and theming as the project got closer to being done.

    I worked steadily, building the business logic in test driven steps throughout the morning. By the time lunch rolled around, I had built all of the functions that I sketched out in my list. When I got back from lunch, there was something off about the code I had written. I started to understand that while I had all of my functions written to add pizzas to an order, the way that I had assigned IDs made it impossible to reliably delete pizzas from the order and add new ones. I realized that I had not totally understood the strategy we were taught to do that, and I had to go back to lesson texts to catch myself up. This derailed me for an hour and a half. Even after rewriting, I wasn’t able to get the user interface code I wrote next to work as expected. Once I saw that it was unlikely that I would finish the project on time, it took a lot of wind out of my sails. 

    At the end of Friday, I turned in my project as-is, and I was in a pretty stinky mood. I was stuck getting the project over the finish line, but I knew I was close and couldn’t stomach editing down the code that I wrote into something that was simpler but would pass. I came back to the code later that night and made a breakthrough (it was a classic JavaScript mistake—using a `]` when it should have been a `)` ). I went to bed knowing that the functionality of the site was there, and I knew I could put in an hour or two on Saturday and get the project themed and polished the way that I wanted to.

    That work was a joy. I figured out how to apply a background gradient in CSS code, which, when combined with lightly-opaque background tiles around the content boxes, got to an EDM theme feeling with barely any additional styling beyond the default Bootstrap theme. I cracked myself up putting together the photo of Avicii with a Super Mario Brothers mustache. The Easter egg that took the most time to implement was adding the chiptune cover of “Wake Me Up.” The implementation of that feature was really satisfying to me: a 1px by 1px tiny YouTube player hidden inside the button that plays when you click it.  

    Another chiptune Avicii cover, my other option for pizza parlor theme song.

    I have a lot of ideas for getting back on track next time. I got a good reminder that the implementation of a feature may work with one set of features but break if you add more. I also took something from my pairing experience this week: I don’t ever want to railroad my partner or leave them behind, but in order to get the most out of the experience for myself, I also have to work at my own pace in order to explore the extended learning opportunities and projects. This upcoming week we are adding automated testing, package managers, and a full development environment, and all of these tools are new to me. I’m looking forward to this week getting more difficult. 

    View the code for this project on Github.

  • mr. roboger

    Screenshot of the JavaScript webapp I created.

    This is my latest code review project. The coding program I am going through, Epicodus, is modeled after a software development company rather than a school. That means that instead of lectures and classes and homework, the emphasis is heavily on time with hands on the keyboard. Each day we pair up with a different peer and “pair code”—work through a coding exercise together, switching off typing code and proofreading for errors. Every Friday, we work alone on a project from 8am to 5pm, and we are not given the prompt ahead of time.

    This prompt was called Mr. Roboger’s Neighborhood. The challenge was to take a number from user input, and return to that user all the numbers from 0 to the user input number, with some numbers substituted with words based on the presence of certain digits in the numbers. 

    This code review project came after a week of learning about creating arrays in JavaScript, manipulating those arrays, and creating looped functions through arrays. The curriculum always includes skills that are relevant to working in the software industry but are a little outside of core coding skills. This week that involved writing plain-English tests for each step of our code writing process in order to prepare us for adding automated code testing to our projects in a few weeks. I found it really frustrating to stick to that focused, incremental way of working. If I have to code a, b, and c, I generally code most of a before going on to b, writing a very specific part of c, then coming back to finish a, which broke b, etc. I can feel that once I get used to the mental discipline of working in test-driven steps, I will start making rapid progress and spending less time tracking down spelling and syntax errors in my code.   

    Completing the actual project went really smoothly for me. On Friday morning, I read over the specs for the project, then walked over to the kitchen to make a French press. While I was staring at the water, waiting for it to boil, the basic path toward completing the project just bubbled up from my subconscious. When it came time to actually write it, it turned out to take way more individual steps to manipulate the input than I first anticipated. I also really struggled to keep my work adhering to the test-driven development principles. I made a lot of progress in the morning, and just before lunch I realized I hadn’t documented any tests and had to try and fill in testing for code I already wrote. 

    I had the most fun stying the page in the afternoon, after I got the functionality of the project working. I knew right away that I wanted to evoke an old-school monochrome green monitor. I first tried to align the page the way I wanted using the Bootstrap framework that we use as a starting place for most of our projects, but that wasn’t working for me and I ended up styling the whole page in custom CSS. I wanted to transform a picture of Mr. Rogers into green monochrome, but that ended up being a little beyond my skill. I was playing around with the image in GIMP and more or less stumbled across the color distorting effect that made it to the final project. It reminded me of both old school computers and was also a little psychedelic, so I couldn’t resist including it. I also had a lot of fun using the voice reader feature built into most modern browsers. That took the last hour and a half of the day. It wasn’t necessary and using that API was way outside my grasp, but the emotional payoff when it started speaking was the high point of the day.

    I’m excited for what’s coming next time. This week we learned how to create our own JavaScript object constructors and prototypes, and if I had learned that technique my code for this project could have been much smaller. I also can’t wait to get skilled enough to understand how, exactly, to manipulate the screen reader to use different voices, pitches, and reading speeds. 

    If you’d like to view the code for this project, it lives in this Github repository. 

Matthew Eilar

Matthew Eilar headshot

This is my personal blog. I’ve been blogging since 2008, and self-hosting this blog on Linode since 2020.

the gram


recent reading