Day: March 21, 2005

  • The Potato Wanter

    I have spent the last 14 hours in Hicks 301 coding, with the exception of a short break for dinner. I am now inexplicably super twitchy, in spite of (or perhaps on account of) the late hour.

    I was exceedingly productive over the last three days, but particularly today. On Friday, I finally got my painterly plant rendering working, although I still need to use it to make pretty things.

    Yesterday (by which I mean Saturday) I spent about 8 hours working on Rune, the Robot-User Nexus, which is our new name for my interface, which used to be called Robobot. I think the new name fits in very well with the fantastical naming conventions we’ve generally been using. I got a decent start on evaluating, updating, repairing, and documenting my code.

    Today, however, was the real meat of my work. I have gone through what is now 8502 lines of code. I converted all of the functions from under_line_format to camelBackFormat. I documented every single function, data structure, and type definition using Doxygen-compatible comments. This means that I will be able to generate some very good HTML documentation for Rune, which will in turn (I hope) help other developers take over from where I’m going to be leaving off.

    Note that this coding is technically a part of my E90 Senior Design Project, even though I am just updating old code. I need the interface to work so that I can work on my actual project (ArchMage and its component modules) and see what it’s doing. I also need to get the interface working and compliant with Fritz’ GCM and Robomon code so that two other E90 groups can use the Swarthmore Robotics Team’s system with their robots.

    Unfortunately, some new features that Fritz has been planning to add to Robomon and GCM are totally implemented yet, so I have to wait for him to fix up a few things. At the same time, I need to ask Bruce for permission to modify the ways in which SVM and SMM (the Swarthmore Vision and Map Modules, respectively) send messages. Specifically, we need to migrate all of their broadcast messages, and the commands they listen for, under the umbrella of GCM, the General Communication Module. GCM is technically more of a library of common messages, one which I am sure Fritz could explain better than I.

    We also need to make sure that everything is compliant with Robomon’s capabilities functionality. Once that’s working, instead of requesting a specific module and specific module initialization and data processing functions, a user of Rune will (theoretically) only need to specify what module capabilities that they want the robot to have, and Robomon, the relevant modules, and Rune will work it all out through GCM and CMU IPC to get everything that’s necessary initialized and up and running. We’re really looking forward to getting that working, but I have no idea how much of it will be done by the end of the semester, on top of my Advanced Graphics and Senior Conference work.

    I’ve definitely been slacking off in my work the first half of the semester. I’ve been getting things done, but my weekends up until this point have been essentially work-free. I’ve also been spending too much time doing stuff for the SCCS, which while productive does not help me gradumutate. My routine is going to change from here on out. I’ll be going crazy to finish all of this stuff up so that I can start working on my final reports about all of this work.

    Well, the length of this entry definitely reflects my hyperactivity, twitchiness, and general verbosity that seems to set in at this hour, particularly after my brain has been so heavily focused on a task for so long. I think I should at least try to get to sleep at this point. I am thinking that I should have had something to eat before brushing my teeth – I suppose I could eat something and just brush them again. Something tells me that I won’t be going to class in the morning.

  • Cube

    Hand holds a Rubik's cube at angle so the white face with logo, blue face, and orange face are visible.

    Nerd achievement unlocked. Kiddo asked me to solve his Rubik’s Cube. I merely followed the algorithm.

  • New Glasses

    Selfie of Nick in a grey shirt with new small brown professorial glasses, standing in front of a grey wall with a black metal bird sculpture on it

    After almost three years without a vision checkup, found my nearsightedness increased slightly in one eye. Picked out some new frames in a different style, courtesy Queen Anne Eye Clinic.

  • Work Where You Want

    For those of us in the “knowledge economy” we have the privilege of our work largely being decoupled from objects and places. Whether it’s coding, designing, writing, or any number of other activities that involve manipulating information, little more is required than ourselves, a computer, and an internet connection. This feature has been of particular value during the ongoing global pandemic as it has offered workers the opportunity to shape their lives as best as they can while dealing with extreme external stressors.

    For those of you not immersed in the Apple blog-podcast-Twitter discourse, recently John Gruber doubled down on his take on remote work prompted by an internal Apple employee letter. I think John’s take is bad, and has prompted multiple rounds of valid criticism from a variety of sources. At points in both posts he refers to the leaked Apple employee statement as “self indulgent” or “passive-aggressive”, and I think in general fails to understand how much the last almost year and a half of remote work has obviously changed the way many Apple employees relate to work and home life. This is especially ironic coming from someone who has been a work-from-home member of the commentariat for well over a decade!

    At this point I should do two things: disclaim that my opinions are my own and do not reflect those of my employer; and establish my own remote work bonafides. In addition to the current pandemic-induced work from home period, I worked remotely for the last two years in my previous job. In the former case my entire team is forced to work from home (with perhaps occasional brief periods in the office as needed); in the latter I was the odd one out but remained a part of a team with whom I had already established in-person relationships. I want to talk a little bit about the advantages of supporting people working where they want, when they want, as the nature of their work allows.

    First and foremost for myself, both that previous remote stint and the crisis-induced work-from-home period have allowed me to spend more time with my family at critical periods of their day. Somewhat flexible hours and working from home have allowed me to be more present for everything from meals to bedtime to walking to school. Secondly, the elimination of a daily commute (at least one that exceeds walking down the hall!), even when trying to live in locations that minimize distance to an office, saves time that I can now dedicate to other pursuits, including cohosting a video game podcast with my friend Chris. Thirdly, with modern communication tools like chat apps and video calls, you don’t have to fight to book a conference room and there are whole categories of meetings that can be handled more easily with an asynchronous conversation or more quickly with a short call than gathering everyone in one big (and likely poorly ventilated) room. Finally, most large companies already have teams distributed all over the world, so they were already making use of tools that support remote work just to complete their regular in-office work. And these points don’t even consider the accessibility factors in how remote work allows fuller participation from disabled folks! (This is an area where Gruber seems particularly obtuse in his complaint that anyone disagreeing with the original letter must be against inclusivity; including disability means accommodations like remote work.)

    Fully remote work is not entirely without its disadvantages; however I think most of these problems have mitigations, if a team works to establish those mechanisms. In the last year-plus of remote work I have run into only three major issues: onboarding new hires into the team culture; some team members overworking; and certain kinds of technical discussion. All of these are more of a problem in an organization that is not natively remote, where habits around this kind of work are lacking. For the first, I think it’s a combination of some natural human tendencies to want to get to know people face-to-face as well as how you structure impromptu encounters between experienced team members and new hires. These don’t require an office, but unless you structure your team thoughtfully, it can be challenging to bring new folks into the fold. For the second, when work is reachable from everywhere, it’s all too easy to never stop working. I try to make clear to people on my team that they should establish clear boundaries and use tools at hand (such as calendar blockers and notification settings) to separate work time from other time. (This is something that is easier said than done; Slack on my phone is dangerous!) For the third, as a technical lead on my team, the thing I miss the most is being able to overhear (and jump into!) some informal technical discussions. Right now some of those might be happening in direct messages or other chat channels I’m not in, in which case I might miss out on giving some critical feedback until a later review when it’s a bit too late.

    All of these problems are solvable with a fully remote or hybrid team. You can establish a mentorship system with onboarding guides to welcome new members to the team; you can schedule regular virtual team events that help build those critical trust relationships; you can agree upon team standards for core hours; you can configure your devices to not inject work into your non-work times; you you can have conversations in the right channels where stakeholders have an opportunity to comment and arrest a problematic solution before it goes too far; you can share your musings in documents and channels where team members of all levels can comment on them.

    To get back to my criticism of John’s thoughts specifically: he puts a lot of emphasis on gathering everyone together in Apple Park, which is no doubt an architectural wonder. As a would-be urbanist (who happens to normally work in a downtown office) I think Apple has made a mistake in creating this suburban monument and expecting so many of their employees to physically commute there. While a beautiful space, that kind of daily routine sacrifices time that be can better used for other activities with limited advantages on any given typical day in the office. “Onsite” or “office centric” culture misunderstands what most modern knowledge workers value, and Gruber demonstrates his worst impulses in in repeatedly stating that employees just need to get in line with a executive-driven return to normal that fails to value their unique and diverse lives.

    In short, a company or a team that wants to hire the best people to solve their complex problems must support a wide variety of work arrangements, including fully remote work. Let your employees work where and how they want to.

  • One Dose Down

    Nick sits in passenger seat of car giving thumbs up for bandaid on shoulder

    Joining Team Pfizer. Found an appointment at a random Safeway down in Kent now that Washington is in Phase 3. Second dose scheduled!

  • Stickers

    Finally got around to organizing my sticker collection that’s been accumulating for a few years and applying them to my newer work-issued 16″ MacBook Pro.

    The back of a laptop covered in stickers, shiny Apple logo still visible

    Compared to my previous 2015 13″ MacBook Pro, the stickers are much less work-oriented. The main vibes are podcasts and veganism. Here’s the key of what all these stickers are:

    1. While we don’t call them departments, this is the old logo for mine: five related AWS security services.
    2. Assorted colored D20 stickers from Storymakers Trading Company that were a Kickstarter bonus.
    3. Zoncon, a mostly internal computer security conference that includes a Capture the Flag event that my team usually participates in
    4. Radiotopia, a favorite podcast network featuring a favorite show, 99% Invisible. I got these meeting some of the hosts at PodCon.
    5. A few advocacy stickers about veganism from a favorite clothing and accessories brand, Herbivore, located in Portland.
    6. Pouring one out for a pandemic casualty Highline Bar, a favorite vegan bar and concert venue. Their kitchen menu lives on at Georgetown Liquor Company south of the city.
    7. SAAR is our security data science team that is primarily located in New York City. They’re hiring!
    8. The retired podcast Better Know A Jackal, a series of interviews by Mike B of fans of 5by5 podcasts. I was on an episode years ago.
    9. The breakfast podcast Most Important Meal by Bostonians Brian and Truj, whom I had the fun of meeting at PodCon.
    10. A quote from Bilbo Baggins from the end of The Lord of the Rings when, as a ringbearer, he is about to leave the Grey Havens for the Undying Lands. This sticker was another Kickstarter bonus from Storymakers Trading Company.
    11. The logo of Amazon Employees for Climate Justice, an internal group organizing for better corporate practices.
    12. The outline of The Spheres, and architecturally iconic feature of Amazon HQ.
    13. Representing the 2019 Global Climate Strike, which we’re going to have to keep doing until our leaders take action on climate.
    14. Twitch logo
    15. VLCNR, a joke startup from the podcast Bonanza that references the James Bond film You Only Live Twice.
    16. A gold Apple sticker from Andrle’s recent MacBook acquisition.
    17. The pixelated classic Mac icon for Hypercritical, my entry point into the world of podcasts courtesy of John Siracusa.
    18. Let’s Roll sticker featuring a D20 designed by someone going by Captain Har Har.

    A good long overdue weekend project. Of course no one at work will be seeing these across a conference table for many more months! 💉