index.md (6645B)
1 +++ 2 title = "Roll Call" 3 description = "An experiment in replacing the phone in your morning routine." 4 date = 2024-12-17T14:52:00-08:00 5 +++ 6 7 Roll Call is a jury-rigged receipt printer that sits on my desk and 8 dictates my morning routine. Every morning, it prints out a briefing 9 of all the critical information I need to catapult me into the day that 10 awaits. Phones are great—but I don't like checking mine when I wake up. 11 I want my brain fresh and undistracted. 12 13 ![Sexy advertisement for Roll Call](poster.png) 14 15 I first ideated what would become Roll Call on a post-it note on the 16 wall of my dorm. When the final project of [DESIGN11] rolled around and 17 they asked us to "fix a bug in our lives," I knew I had to take 18 advantage of the opportunity. 19 20 After a flurry of on-paper ideation, I began with the software. It's all 21 open-source: the bulk is [a couple hundred lines] of bespoke Python, 22 supported by an iMessage library [I customized] to allow me to determine 23 if a message was unread. I call out to a few [startlingly] [good] 24 libraries to fetch the data that will go on the receipt: the day of the 25 week, the weather, my Oura Ring stats from the night before, unread 26 iMessages, my todo list, and my calendar events for the day. When that 27 was done, I called every single possible retailer in the Bay Area who 28 might sell me a receipt printer—no dice. I even asked a couple 29 restaurants that I was eating at if I could pawn theirs, which was 30 similarly unsuccessful. So I ordered one on Amazon (guided in my 31 purchase by [this blog post]), married it to my code, and have been 32 using it every morning since. 33 34 ![Early ideation of Roll Call in my notebook](notebook.png) 35 36 Roll Call is one experiment in my long crusade to replace the phone. Our 37 current era of mobile computing has brought benefits that are difficult 38 to fully comprehend. But they have come along with deep ills. The 39 combination of hardware and software in Roll Call has allowed me to 40 entirely eliminate my phone from this component of my daily routine. In 41 this slice of my life, I experience all the benefits of technology with 42 none of its downsides. However, this only works because I can still rely 43 on my phone during the rest of the day. I can replace my phone with a 44 receipt in the morning and feel better because of it, but later in the 45 day I still need to fall back to the harsh light of the screen to 46 respond to message, mark todos as complete, and more. 47 48 What the Roll Call experiment allows us to do is free our minds to 49 imagine what removing the phone might look like from the rest of the 50 day. This part? It's already taken care of. We've solved for this use 51 case, one that is normally solved with our phones. How can we solve for 52 the rest? We have an alternative way to read data, how can we rethink 53 writing? How do we redesign the rest of our phone-based experiences to 54 avoid falling into Instagram and a hundred other things that melt away 55 all the presence and the possiblity of our beautiful lives? This part of 56 the pressure is gone, now let's deal with the rest. 57 58 <details> 59 <summary> 60 <i>A theoretical, optional pitch that loses people but I think is 61 conceptually neat and cool</i> 62 </summary> 63 Roll Call is paper, with a digital brain. Every morning I look at a 64 slip of paper—for all intents and purposes the same piece of 65 paper—and instead of remaining static it autonomosly reflects the 66 changing state of the world around me. The state of the world exists 67 in a Platonic ideal somewhere in conceptspace. Nowadays we represent 68 all that information about our lives, that typically is just held in 69 our heads, in various databases. That information is displayed back 70 to us in our calendar apps, and todo lists, and all the rest. Those 71 apps transform the database's zeroes and ones, which are themselves 72 representations of ideas, into a form that we view on our phones all 73 the time. Roll Call's receipts are equally valid transformations of 74 those zeroes and ones. 75 </details> 76 77 ![An example Roll Call receipt from December 17, 2024](receipt.jpg) 78 79 The current implementation of Roll Call does have some gaps, which I 80 would love to address in hypothetical future versions. The most 81 prominent is its deep reliance on macOS: it reads iMessage's `chat.db` 82 directly from disk and searches `Contacts.app` to associate phone 83 numbers with names. Beyond that, Roll Call also doesn't trigger 84 automatically. Instead, I manually run the script on my laptop, which is 85 significantly less sexy. The device itself is pretty large and bulky, 86 and relies on some gross cabling (USB A, B, *and* C). It doesn't print 87 out my gym day. Some imagined diagnoses: 88 89 1. A Matrix-iMessage bridge, a-la Beeper, would make developing for the 90 messaging platform less hellish. I could also skip the middleman and 91 set up a direct API call from a Raspberry Pi to a macOS host in the 92 cloud. 93 2. Developing a good CardDAV library in Python, which I shockingly 94 couldn't find, seems like a simple replacement for the `Contacts.app` 95 AppleScript-in-Python monstrosity I cooked up. 96 3. Ideally, the script would run as soon as I wake up. I wear an Oura 97 Ring every night; it would be super cool to connect the printer to a 98 webhook that gets called when the ring detects that I'm awake. That 99 endpoint doesn't exist at the moment, and probably would be very 100 difficult to create given Oura's current periodic-sync-over-Bluetooth 101 technology. I'll keep my eye out though! 102 4. Barring the above, I would love to hook up the whole thing to a smart 103 button (no screen!) that I can just smack and have the whole thing 104 print. 105 5. Making the code asynchronous where it makes sense. Initially, I had 106 the script fetch the data and then print it all out really fast. Then 107 I introduced some styling that I had to weave throughout and couldn't 108 do before printing: I miss the smooth all-at-once feeling. I think 109 some smart code jockey-ing could bring this back. 110 6. Put the gym day in my calendar? 111 112 As a last component of my time in DESIGN11, we made little 113 advertisements. You can check out mine [here on YouTube]! Remind me 114 never to film when I have a stuffy nose ever again. 115 116 [DESIGN11]: https://explorecourses.stanford.edu/search?q=DESIGN11 117 [a couple hundred lines]: https://git.sr.ht/~figbert/morning-receipt 118 [I customized]: https://github.com/figbert/imessage_reader 119 [startlingly]: https://github.com/hedgertronic/oura-ring 120 [good]: https://github.com/thingsapi/things.py 121 [this blog post]: https://aschmelyun.com/blog/i-built-a-receipt-printer-for-github-issues/ 122 [here on YouTube]: https://www.youtube.com/watch?v=rNGusG71qD8