Categories: life

RSS - Atom - Subscribe via email

Reflecting on my conscientiousness (or whatever the opposite is)

| reflection, life

Over the past few days, I've been reflecting on the personality trait of conscientiousness, which is something that can be a bit of a struggle for me. From Wikipedia:

Conscientiousness is the personality trait of being responsible, careful, or diligent. Conscientiousness implies a desire to do a task well, and to take obligations to others seriously. Conscientious people tend to be efficient and organized as opposed to easy-going and disorderly. They tend to show self-discipline, act dutifully, and aim for achievement; they display planned rather than spontaneous behavior; and they are generally dependable. Conscientiousness manifests in characteristic behaviors such as being neat, systematic, careful, thorough, and deliberate (tending to think carefully before acting).

Conscientiousness and me

conscientiousness-butterfly.jpg

I think of myself as not very conscientious. At school, I struggled with completing homework, sometimes not even turning in assigned essays. I forgot about deadlines and accidentally left my stuff behind. I did well on standardized tests because I could read quickly and eliminate probably incorrect answers, but other types of tests were a drag. There were some subjects I liked enough to do well in (well, mostly teachers I found engaging). For the most part, though, I didn't particularly care about grades. Even as an adult, I occasionally forget to finish something I'm working on, I lose things and time due to disorganization and attentional hiccups, and I've used my "Oops" fund a number of times. (W+ is more conscientious than I am, and occasionally patiently reminds me to take care of stuff.) I tend to follow the butterflies of my interest.

Fortunately, I've figured out some things that work well for me. Coding is great because even though it needs me to be pretty exact, I can work in small chunks, write tests to help me double-check, and automate repetitive tasks that my brain tends to hiccup on. When I worked at IBM, I had a lot of fun working on projects I cared about, like building systems to help professionals transition into teaching or helping food banks distribute food. I also did well skimming pages and pages of internal discussions so that I could summarize key themes for workshops. For my consulting clients, I tend to focus on prototyping their crazy ideas. If the idea proves worthwhile, we can then turn it over to other people to get it ready for production. Org Mode helps me keep track of what I want to do and when. In the Emacs community, I tend to focus on breadth rather than depth: Emacs News instead of package maintenance or core Emacs development. (And besides, it's volunteering anyhow, so when people bump into bugs in my code, it's either an opportunity for them to help out or something they might just put up with or work around.) I like experimenting, and I don't feel stuck; I can move on from an experiment when I've gotten enough data or when things change. I've shifted my life so that most of the tasks on my to-do list are things that I want to do that aren't time-sensitive, so I can do them when I want.

Noticing when my brain likes to do the work

conscientiousness-piano.jpg

I recognize myself in other descriptions of conscientiousness. I like to plan and I like to take notes. I get somewhat stressed by the idea of being late, although I've learned to chill out a little about that because kids mean being flexible about time. I like considering decisions carefully and doing little experiments. I find risky behaviour stressful rather than fun. Still, I tend to think of myself as someone who doesn't do the extra work, who often doesn't pay attention to the fiddly details. A few counter-examples might help me figure out more about when my brain likes to spend the extra time on things:

  • In a cryptography course that I took in university, we had an assignment to break a simple monalphabetic cipher. Each student was assigned one line. I had fun crunching through all of them (puzzles! piece of cake) and I distinctly remember relishing the teachers' surprise the next day.
  • I signed up for more school, getting a master's degree in Mechanical and Industrial Engineering at the University of Toronto. I got interested in it for two reasons:
    • I enjoyed teaching computer science at my alma mater. Getting an advanced degree was strongly recommended. I experimented with a masters in education but I wasn't that interested in it.
    • I was also interested in personal information management thanks to Emacs and Planner Mode, so I was curious about exploring the usage patterns of people who had highly customized their PIM tool. Several papers in that area had been written by a researcher at the University of Toronto, so I applied there for a master's. That researcher left shortly after I arrived, so we looked around for another topic. Eventually we settled on social networking platforms in organizations, which was also interesting for me because it was about how people use technology to organize collective knowledge.
  • I also signed up for parenting knowing that it's a ton of extra work including stress-testing my abilities, being responsible for helping an entirely separate little being figure out things I'm still figuring out myself, and handling endless problem-solving and adaptation in the face of uncertainty.
  • I notice that I'm getting a little better at slowing down and practising piano, singing, and drawing. I've tried all these things before, but now I can approach it differently because I'm going into it with more life experience.
    • For piano, I can treat it like a moving meditation on the quirks of my monkey mind, and be amused at how my brain learns. I enjoy feeling the motions become more automatic. I also like the thoughts and memories that the pieces evoke. (As part of this beginner course I'm doing, I just practised a very simple version of "Thus Spake Zarathustra", which makes everything feel more epic.) Eventually I think it would be nice to be able to play the music that A+ and I might want to sing to. It seems to be my current hyperfocus. I enjoy spending the time practising, knowing that there's no way to skip that part (and perhaps this is even supposed to be the fun part).
    • For singing, I can be mystified by all the weird movements that I have to figure out in my larynx and my diaphragm and other parts I haven't even figured out how to name yet, much less activate. It gives me some empathy for how kids are learning about things we can't easily teach them.
    • For drawing, I can be amused by the gap between how things really are and how I imagine them to be, and the gap between what I imagine and what I can draw. The video tutorial assures me that taking the time to slow down and shade or add texture is worthwhile, and is even the fun part of drawing. I still get impatient occasionally (do I really want to spend all this time on one sketch?), but it's an interesting perspective. I think it might be nice to develop art into a relaxing activity. If I go through the steps, I'll probably get there. Also, I like doodling to break up the wall of text in a blog post like this one, so that's another fun way to practice.

So maybe I can be a bit more conscientious when it's something I'm curious about or care about.

Supporting my brain

conscientiousness-toolbox.jpg

For the tasks that I need to be conscientious about, there are other things that help:

  • I'm getting better at accepting my limits. For example, when I had a pie in the oven last night, I told A+ that I couldn't go off to play Minecraft with her because I might forget about the pie and accidentally undercook or overcook it.
  • Writing notes helps me keep track of where I am, what I wanted to do next, what I'm figuring out along the way, and so on. The possibility of sharing those notes (and thus having more opportunities to learn from my past self or from other people) also encourages me to get to a point where those notes can be shared. Here I really appreciate how Org Mode helps me capture, manage, and post my tasks and notes, thanks to literate programming. People occasionally tell me that they think I'm very organized, but that's probably just because I write about stuff so that when I forget, I can look them up again.
  • Checklists are also handy. Most of the time, I just make a checklist on my phone using Orgzly Revived, but maybe I can make these more visual. I notice that I'm not particularly influenced by the gamification strategy of a streak count and mildly influenced by XP bars.
  • Journal entries and blog posts also give me a record of what I've worked on, and even little bits of progress accumulate.
  • I'm also learning to to distract the fidgety part of my brain with music or movement, and to manage it with timers. Timers are great. Timers to get started, timers to check in with myself, timers to come back…
  • Automation is wonderful. Getting a computer to do the work is often more fun and less error-prone than my doing it myself. Even semi-automation is helpful.

Despite not thinking of myself as particularly conscientious, I'm pretty happy with what I've been figuring out about my life and the world. I can think of how I work as building on my strengths instead of just working around my weaknesses. I enjoy learning about and dabbling in lots of different interests, and the combination of ideas can be very useful (like dancer curiosity). Framing many decisions as experiments helps me get to 80%-fine quickly, and I don't spend a lot of time chasing down that last 20% that takes most of the effort. I don't fit the hustle culture of many self-help books, blogs, and videos, and that's okay.

Not far from the tree

conscientiousness-ultralight.jpg

I think my dad was not particulary conscientious either, at least not in terms of planning ahead, paying attention to details, following conventions. He was always in motion, happiest whenever he had a crazy project. Fortunately, he was really good at inspiring other people to handle the logistics. He came up with the ideas ("I want to fly across the Philippines in an ultralight") and people like my mom figured out how (fuel, landing spots, etc.). His spontaneous road trips drove me a little batty when I was a kid. But also, when it came to the things he cared about, he could spend hours, days, weeks on getting it right. I remember how he'd stay up late to figure something out, whether it was digital photography or Microsoft 3D Pinball. I've written about how he repeatedly drew variations on the same sketch in order to figure out what he wanted. He did okay. He found his way, even though it looked nothing at all like the standard paths. I'm probably doing all right, too.

My mom was more conscientious and deliberate than my dad was. She handled the business while my dad got to focus on his passions. From her, I picked up the habits of reading and writing. I think I'd like to be more of a mix between their styles rather than one or the other.

Growing

Apparently, conscientiousness tends to increase with age, so that's interesting. I feel slower when it comes to some things (probably because of adapting to all those distractions and periods of sleep deprivation, or maybe age, or simply a more realistic evaluation of my abilities), so it's easier to give myself time to do things that are slow. Maybe I'll get better at enjoying the act of practising and paying attention to the details. I'll probably benefit from more orderliness, too. I wonder how I can get my brain to enjoy decluttering and figuring out the right homes for objects. It's a little like preparing the space so that I can see what I like and it's easy to work on what I enjoy. (Marie Kondo's The Life-Changing Magic of Tidying Up might be relevant here, although even she has found keeping a tidy house with kids to be a challenge…)

Tangent: A quote from Marie Kondo

When I first became a mother, I felt frustrated when I couldn’t tidy my home exactly the way I wanted. Then, I had two more children, and I found I didn’t even have the energy to consider some of my former practices around the house!

With this in mind, here are some tips that help me keep my home in order with two young children.

Motherhood has taught me to be more forgiving of myself. The joy that comes from parenting exceeds any satisfaction that could have come from a perfectly neat home. My children also remind me that our lives can shift daily (if not every minute) — and that the best we can do is honor where we are in the present moment.

source

I've been trying to think of a neutral or positively-coded word for the opposite of the conscientiousness personality trait. I asked Claude AI to generate a bunch of antonyms. I don't quite identify with "free-spirited" or "spontaneous", but I like "adaptable" and "improvisational," and "interest-driven" is an accurate description of the way we spend our energy. Those words don't quite cover the same cluster of meanings that "conscientious" does, but they give me other ways to think about the personality trait as something more positive.

Learning on my own and with others

I'm always curious about how I can work with what I've got. New challenges, new experiences, new capabilities… I get to learn even more about how my brain works and what I can do, especially as I build systems and processes to support myself.

Figuring out more about building on my strengths will also help me parent A+, so this work is extra worth it. I can even learn from the worries that sometimes flutter up when I see her also wandering far from what the school system would probably prefer that she focus on.

conscientiousness-timeline.jpg

Thinking about processes and tools and self-acceptance also makes me think a little about Andy's recent blog post My 10 Years with Emacs, in which (among other thoughts about what he's learned about using Emacs and other people he wants to thank for helping) he mentions thinking of me as kind of the community mom. I was 18 when I started using Emacs, I've grown up in this community, and I've got blog posts and videos that help me catch glimpses of myself throughout the years. It does feel interesting to notice the shifts in my brain, from kind of an enthusiastic puppy bursting with energy to something more about experimentation, reflection, and connection. If I can get better at understanding myself and the tools I can build to support who I am and what I want to do, I wonder if that'll help other people too. I'm looking forward to being able to someday bring grandparent energy to this. What could that be like? There are people even older than I am in this community, which is wonderful. I'm looking forward to seeing how we all figure out how to work with what we've got.

View org source for this post

A year with my cargo bike

| decision, life

Summary: Life with a cargo bike has been working out really well for our family.

Stroller

I used to walk for an hour to get to some of A+'s playdates, pushing her in the Thule bike trailer / stroller that she still fit into. I liked bringing popsicles during the summer so that A+ could share them with her friends, so I often balanced a small cooler on top of the stroller and walked as briskly as I could. The popsicles were usually still reasonably cold by the time I got to the park. We'd spend a few hours playing there, and then there would be another hour's walk back. A+ usually napped on the way, so it was a chance for me to listen to podcasts.

Car

Sometimes we biked to the playdate instead. That was much faster in terms of getting there, even with a popsicle break halfway through. Those popsicles were only for us, since I couldn't bring a cooler on my bike. Also, A+ was usually too tired to bike back, or it was too dark for her to be safe biking on the busy streets between the park and our house, so we often waited in the mall parking lot for W- to pick up A+ and her bike in his car. Then I biked back by myself.

Dumped

We'd been considering cargo bikes for a while, and eventually things lined up to make it possible. It was a carefully-considered decision. I did a bunch of test rides using different models of cargo bikes. My height (or lack of it) ruled out many of the models designed for taller people. A+ was quite vocal about her preference for the suspension on the R&M Load cargo bikes, and she liked the view from the front-loaders more than the longtails. I rented the Load 75 and the Load 60 to try them out, accidentally tipping over onto the side an embarrassing number of times; A+ was safely buckled in but very grumpy about it.

When we confirmed that a cargo bike fit into our life, I bought a Riese & Müller Load 75 from Curbside Cycle. We picked the Load 75 over the Load 60 because the rain cover was nicer and the extra room could give us more years of use as A+ grows.

Loaded up

I love it. Biking is my favourite way to get around. There's just something so cheerful about it. A+ and I sing as we go around town. We smile at dogs in sweaters. She takes pictures of trees. Sometimes there are cargo bikes in front of us as we wait at the traffic light, and we wave and nod.

We got the Bakkie bag, too. It's designed to tow a kid's bike. That way, A+ can bike wherever she wants. When she gets tired, she can hop into the cargo bike and I can buckle her bike into the Bakkie bag, towing it all the way home. We've been able to go on more bike adventures by ourselves and together with W- because we don't have to worry about exceeding A+'s range.

Hot chocolate

Since we could get to the playground in 15 minutes instead of 60, it was a lot easier to bring snacks to share. We pretty much kept the playground kids well-supplied with free popsicles (and the occasional much-coveted ice cream treat) all summer, and the ice packs came in handy for treating the occasional bumps too. We even brought disposable cups and insulated bottles of hot water for making hot chocolate and instant apple cider in the colder months.

Potting mix

Aside from taking A+ to a wider range of places, we've also used it to bring several bags of potting mix or a propane tank home from the hardware store, carry other bulky items, and take lots of stuff to the community environment days for recycling/donation.

We are very lucky to have cargo biking as an option. When people ask me how much it is, I ruefully tell them, "Well, it's less than a second car." We weren't actually choosing between this and a second car; even though W- rarely uses his car these days, I'm too anxious to drive. My brain gets a little squirrelly and is prone to attentional hiccups. I don't want a moment of distraction to result in someone's death or serious injury. I'm still on alert when I bike, but it feels a lot more like something I can handle. And biking is so fast and convenient. I don't have to nudge A+ out of a playdate so that we can make it out before the subway gets packed like sardines, or shepherd A+ back home from the subway station ("I'm tiiiired.").

I got the bike in November 2023. Here's how much I biked over the past year:

Month KM
Nov 208
Dec 157
Jan 69
Feb 78
Mar 176
Apr 82
May 106
Jun 143
Jul 135
Aug 96
Sep 212
Oct 120
2024-11-04T14:04:00.159647 image/svg+xml Matplotlib v3.6.3, https://matplotlib.org/
Figure 1: Graph of kilometres by month

I was pleasantly surprised that even during the cold months (and A+'s reluctance to go outside if it was very cold or slushy), and even during the schoolweek, we still managed to get out on the bike.

2024-11-04T13:43:31.432403 image/svg+xml Matplotlib v3.6.3, https://matplotlib.org/
Figure 2: Kilometres by date

I got data from the ebike-connect site using Spookfox using the code below.

Javascript code for extracting distances and times
[...document.querySelectorAll('.activities__ride-menu')].map((o) => {
  return {
    date: o.querySelector('.activities__menu-details > span').textContent,
    distance: o.querySelector('.activities__menu-distance-text').textContent.trim(),
    time: o.querySelector('.activities__menu-details > span:nth-child(2) > span:nth-child(2)').textContent,
  }
});
Emacs Lisp to group distance by month
(let ((by-month (seq-group-by
  (lambda (row)
    (let ((date (plist-get row :date)))
      (when (string-match "[0-9][0-9]\\.\\([0-9][0-9]\\)\\.\\([0-9][0-9]\\) [0-9][0-9]:[0-9][0-9]"
                          date)
        (format "20%s-%s-01"
                (match-string 2 date)
                (match-string 1 date)))))
  trips)))
  (append
   '(("Month" "Distance")
     hline)
   (mapcar
    (lambda (row)
      (list (format-time-string "%b" (date-to-time (car row)))
            (format
             "%d"
             (round (apply '+
                           (mapcar (lambda (entry) (string-to-number (plist-get entry :distance)))
                                   (cdr row)))))))
    (reverse (seq-filter (lambda (o) (string< (car o) "2024-11")) by-month)))))
Emacs Lisp to group distance by date
(let ((by-day (seq-group-by
  (lambda (row)
    (let ((date (plist-get row :date)))
      (when (string-match "\\([0-9][0-9]\\)\\.\\([0-9][0-9]\\)\\.\\([0-9][0-9]\\) [0-9][0-9]:[0-9][0-9]"
                          date)
        (format "20%s-%s-%s"
                (match-string 3 date)
                (match-string 2 date)
                (match-string 1 date)))))
  trips)))
  (json-encode (mapcar
   (lambda (row)
     (cons (car row)
           (format
            "%d"
            (round (apply '+
                          (mapcar (lambda (entry) (string-to-number (plist-get entry :distance)))
                                  (cdr row)))))))
   (reverse (seq-filter (lambda (o) (string< (car o) "2024-11")) by-day)))))
Python code for making a bar graph of distance by month
import pandas as pd
import datetime
import matplotlib.pyplot as plt
import seaborn as sns
import json

data = trips
df = pd.DataFrame(data, columns=["Month", "Distance"])
df.set_index('Month')
df['Distance'] = df['Distance'].astype(float)
plt.figure(figsize=(8, 6), dpi=100)
sns.barplot(data=df, y='Distance', x='Month')
plt.savefig('biking-distance-by-month.svg')
Python code for making a heatmap
import pandas as pd
import datetime
import matplotlib.pyplot as plt
import seaborn as sns
import json

start_date = datetime.datetime(2023, 11, 1)
end_date = datetime.datetime(2024, 11, 1)
dates = pd.date_range(start=start_date, end=end_date, freq='D')
data = json.loads(trips)
df = pd.DataFrame.from_dict(data, orient='index')
df.index = pd.to_datetime(df.index)
df[0] = df[0].astype(float)
# Create calendar heatmap
plt.figure(figsize=(16, 3), dpi=100)
pivoted = df.pivot_table(index=df.index.day_name(), columns=df.index.strftime('%Y-%W'))
all_days = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday']
pivoted.index = pd.Categorical(pivoted.index, all_days, ordered=True)
pivoted = pivoted.sort_index()
heatmap = sns.heatmap(
    pivoted,
    cmap="crest",
    linewidths=0.5,
    linecolor='white'
)

# Set the x-axis tick labels to show only the months
month_labels = df.index.strftime('%b').unique()
month_ticks = [i * 4 for i in range(len(month_labels))]
plt.xticks(
    month_ticks,
    month_labels,
    rotation=90
)
tick_positions = [i + 0.5 for i in range(len(all_days))]
plt.yticks(tick_positions, all_days)
plt.title('Distance on dates')
plt.xlabel('November 2023 - November 2024')
plt.ylabel('')
plt.xticks(rotation=90)
plt.savefig('biking-by-day.svg')

I like our cargo bike a lot. I hope to ride it for many years to come.

View org source for this post

Tiny chunks

| productivity, life

I want to get better at working in tiny chunks. Some of the things I find hard are:

  • getting incomplete thoughts out of my head when the kiddo interrupts so that I don't get grumpy (because of the Ovsiankina effect)
  • managing the stack of interrupting tasks and yak-shaving temptations
  • still making time for larger projects or things with less-immediate or more uncertain payoffs

Some general ways to improve:

  • Reduce friction so that more things can fit in less time.
    • Take notes
    • Improve workflows and tools
    • Create templates
  • Build momentum: focusing several chunks on one project to minimize context switches and make more progress
  • Lower expectations and split things up.
  • Start with a rough cut and then refine.
  • Use different types of work:
    • Organizing information can be easier than thinking up something new
    • Recognizing things from a list can be easier than recalling them from scratch

How can I get better at using tiny chunks in different aspects of my life?

  • Code:
    • Now that I'm on a more powerful computer, I'm looking forward to learning how to take advantage of LSP, completion, and other modern conveniences.
    • I can replace social media doomscrolling with reading APIs, guides, and code samples.
    • I can take more notes and review them.
  • Writing:
    • If I sketch my thoughts, that can help me think through things in a more nonlinear way at the beginning. Mindmaps and sketchnotes might actually be easier than using text outlines, since I can do them off my computer.
    • Dictation might help me turn other pockets of time into writing time, and then turn computer time into editing time.
    • Improving my workflows makes it easier for me to get the text out into a blog post that has a sketch or a video or a screenshot.
  • Drawing:
    • I can ask smaller questions so that I can get to an answer faster. I also don't have to flesh out the full thought in the drawing - I can use dictation or writing to add more details.
    • I can crop the image to remove the pressure to use the full page. I used to draw my thoughts on index cards. That was a good size for a small thought, and they were easier to build up into larger chunks.
    • I can use visual organizers, metaphors, and other structures to help me think through things. That might also give me additional insights.
  • Bigger projects: One of the things that sometimes frustrates me is having bigger projects that I can't figure out how to fit into smaller segments, or that take a lot of setup time and therefore tend to get deprioritized in favor of things with more immediate payoffs.
    • I have a few 1.5-hour chunks of focused time because of A+'s virtual school, and I might be able to reserve more time eventually. It might be good to have that time when I'm not prioritizing short tasks and quick wins. Aside from that, if I get focused time in the evening, the trade-off is usually that A+ binge-watches YouTube videos when I'm not focusing on her. Sometimes I'm okay with this because I really want some thinking time. It's better when I'm getting that focused time because she's off doing something with W-, though.
    • I tend to work on whatever I've been thinking about lately (availability bias), but it might be good to review longer-term projects/interests to keep them on my radar or make peace with archiving them.
    • Even the stuff that feels like very slow progress can be worthwhile.
  • Life:
    • Sometimes I feel a little distracted by things I want to do, but it's worth figuring out how to put stuff aside so that I can play. Bluey has plenty of examples of short games that could be fun to play with A+.
    • There's always time to work on health. Sometimes doing a single pushup makes it easier to do another, especially when the kiddo jumps in and starts exercising too.
    • Similarly, a small chunk of time is great for tidying.
View org source for this post

Playing sungka with the kiddo

| life, parenting, fun
20240901_Page_21.png
Figure 1: my drawing of a sungka board

I've been really enjoying playing sungka with my eight-year-old daughter. We've been playing it for a number of years now. Usually she likes to start out with one shell in each cup and working our way up to seven shells in each cup over a series of rounds.

Over the last week, she's gotten a lot better at playing. In the past, she used to make her moves fairly randomly, and she liked having the advantage of starting off with a few extra shells in her home. Now she doesn't need that starting point, and she's beginning to plan ahead. She counts the shells to predict where she's going to end up. She recognizes common patterns like clearing out the cups closest to her home. She loves moving shells out of the way so that she can make a very large capture, cupped hands full of shells.

Sungka has taken over as her current hyperfocus. It's the game she asks to play with me when her virtual school is on a recess break. I enjoy playing with her. Even when I'm losing, I enjoy watching her become more dextrous as she drops the shells in one at a time, and I like watching her plan ahead.

I played sungka a lot when I was a kid around her age. I think the school had some sungka boards that people could borrow after class, and I played with the other kids until it was time to go home. I don't know if this is a game that I can bring to the playground. It'll probably be a challenge with sand and kids and lots of small pieces. I think this will just be a game for home and for us, but it's wonderful that I get to share it with her.

View org source for this post

Emacs tweaks: Choosing what to hack on

Posted: - Modified: | emacs, life, productivity

[2024-01-22 Mon]: How do you combat being overwhelmed by choice? is somewhat relevant. I particularly like this comment which talks about delaying the decision to see if it still makes sense.

Is it the Emacs lifecycle that you tweak your config for few months and then you live off of fat of the land for >4 years? My Emacs config is a Org-tangle spaghetti that I touch only if I want to set some more sane config variable.

@xgqt@emacs.ch

This got me thinking about how tweaking my config fits in with other things I want to do–how I choose what to hack on and for how long.

Text from sketch

Choosing what to hack on - 2024-01-16-01

When it comes to computer work, I can usually choose what to do.

Idea -> Test

XKCD on automation: time to automate vs frequency x time saved

I focus more on what I'll enjoy (both the destination and the journey)

  1. How can I make this better?
  2. What's the smallest step I can take? What can I fit in 15-30 minutes?
  3. What's nearby?
    • Relevant functions or packages
    • Next steps, possibilities
  4. What kinds of notes can I leave for myself or others?
  5. like desire paths: where, what size
  6. or like a river wearing down rocks

Sometimes when I chat with other people about automation, this XKCD chart about Is It Worth the Time? comes up.

I realized that this isn't quite how I consider things. I'm lucky in that when it comes to computer things, I get to choose most of the things I spend my time on. My consulting clients have very long wishlists that I pick from based on interests and priority, and I play with Emacs for fun.

Drawing of a task sandwich with Emacs tweaking, the actual task, and blog posts and comments

Because I enjoy tinkering around with Emacs, I often build a little Emacs hacking into my tasks. 15 or 20 minutes of exploring an idea can make it even more fun to do the actual task it's supposed to help with because then I want to test it out. Then after the task is done, I get to write about it. It's like making a little task sandwich with really nice bread. This is also a little related to sharpening the saw, which is pretty fun in Emacs. (Vim people do it too!)

These little changes add up over time, making things even more enjoyable. It's a little like the way desire paths show where people actually walk between buildings and give a sense of how much they are used, or how rivers smooth down the edges of stones. The easier I make something, the more likely I am to do it, and the more I'll get to enjoy the results of my code. It's a little like the Igors described in this essay.

When I think about something I might tweak about my Emacs configuration, I usually consider the following:

1. How can I make this better?

I like looking for ways to reduce manual work or looking-up. I tend to have a hard time with tedious, repetitive tasks. I also keep an eye out for things I've been meaning to learn.

2. What's the smallest step I can take? What can I fit in 15-30 minutes?

Small steps make it easy to squeeze in things here and there. I know my brain's going to suggest half a dozen things along the way, so it helps to start as small as possible and capture most of the other things in my inbox for later. That way, I can get to experience the benefits right away without feeling lost.

Another advantage of picking really small tasks and using Org Mode to capture the rest of the ideas is that I can try to avoid the Ovsiankina effect.1 I spend most of my day taking care of our 7-year-old, so I squeeze in my focused-time tasks early in the morning before she wakes up. Sometimes I have little opportunities to work on things throughout the day, like when she wants to read a book or watch a video. She might do that for 15-30 minutes before wanting to connect again. If I pick the wrong-sized task or I don't dump enough rough notes into my inbox so that I can get the open loops out of my head and trust that I can pick things up again, the unfinished part pulls on my brain and makes it harder to enjoy time with her. Then I get tempted to let her binge-watch Minecraft or Rubik's cube videos2 so that I can finish a thought, which doesn't quite feel like good parenting.

Lastly, I don't usually understand enough about my needs to build something complex from the start. Trying things out helps me discover more about what's possible and what I want.

3. What's nearby?

Thanks to Emacs's amazing community, there are usually relevant functions or packages that I can borrow code from. I mostly have a sense of things from the blog posts and forum threads that cross my radar because of Emacs News, and I should probably get used to skimming the descriptions in the "New packages" list because that can help me find even more things.

When coming up with possible approaches, I also sometimes think about other related ideas I've had before. Filing those ideas into the appropriate subtrees in my Org files sometimes helps me come across them again. If I can take a small step that also gets me closer to one of those ideas, that's handy.

I also like to think about next steps and possibilities. For example, even if I spend an hour or two learning more about data visualization with Org Mode and plotting, that's something I can use for other things someday. This works pretty well with keeping things small, too, since small parts can be combined in surprisingly interesting ways.

Let me try to trace through a web of related features so I can give you a sense of how this all works in teeny tiny steps.

G defun defun my-include:...?from-regexp=...&to-regexp... my-include:...?from-regexp=...&to-regexp... defun->my-include:...?from-regexp=...&to-regexp... my details my details defun->my details defvar defvar defun->defvar emacsconf-el emacsconf-el defun->emacsconf-el context context defun->context my-include:...?name= my-include:...?name= my-include:...?from-regexp=...&to-regexp...->my-include:...?name= :summary :summary my details->:summary defun-open defun-open :summary->defun-open web links web links emacsconf-el->web links Embark Embark :comments both :comments both Embark->:comments both QR code QR code Embark->QR code :comments both->context web links->Embark

  • defun: I often wanted to write about a specific function, so I wrote some code to find the function definition and copy it into my export post hidden inside a details tag with the first line of the docstring as the summary. 2023-01-02
  • my-include:...?from-regexp=...&to-regexp...: Sometimes I wanted to write about longer pieces of code. I wanted to include code without repeating myself. The regular #+INCLUDE can handle line numbers or headings, but neither of them worked for the Elisp files I referred to since the line numbers kept changing as I edited the code above it and it wasn't an Org Mode file. I made my own custom link so I could specify a start and end regexp. 2023-01-08
  • my_details: I wanted to put the code in a details element so that it could be collapsible. I made an org-special-blocks template for it. special-blocks
  • :summary: For Org source blocks, I wanted to be able to do that kind of collapsible block by just adding a :summary attribute. 2023-01-27
  • defun-open: I wanted to sometimes be able to keep the function definition expanded. 2023-09-12
  • emacsconf-el: Since I was writing about a lot of EmacsConf functions in preparation for my presentation, I wanted a quick way to link to the files in the web-based repository. 2023-09-12
  • defvar: Made sense to include variable definitions too.
  • web links: The emacsconf-el links were so useful, I wanted to be able to use that type of link for other projects as well. 2024-01-07
  • Embark: I wanted to be able to copy the final URL from a custom link at point, so I used Embark. 2024-01
  • QR code: I started livestreaming again, so I wanted a quick way for viewers to get the URL of something without waiting for stream notes. 2024-01-10
  • :comments both: While scanning Reddit to find links for Emacs News, I learned about :comments both and how that includes references to the Babel file that tangled the code. 2024-01-07
  • context: Now that it was easy to link to the web version of an Emacs Lisp file, I thought it might be fun to be able to automatically include a context link by passing link=1. I also wanted to be able to navigate to the Org source code for a tangled function. 2024-01-11
  • my-include:...?name=...: I wanted to be able to refer to Org Babel source blocks by name.
I promise it's all connected. (Pepe Silva meme)

In the course of writing this blog post, I learned how to use URLs in Graphviz, learned how to include inline HTML for export with @@html:...@@, used position: sticky, figured out how to highlight the SVG using JS, used CSS to make a note that should only show up in RSS feeds, and submitted a pull request for meme.el that was merged. And now I want to figure out sidenotes or at least footnotes that don't assume they're the only footnotes on the page… This is just how my brain likes to do things. (Oooh, shiny!)

4. What kinds of notes can I leave for myself or others?

I might take years before revisiting the same topic, so good notes can pay off a lot. Also, when I share what I've been working on, sometimes people e-mail me or comment suggesting other things that are nearby, which is a lot of fun. The ideas I come up with are probably too weird to exactly line up with other people's interests, but who knows, maybe they're close enough to what other people work on that they can save people time or spark more ideas.

Inspired by Mats Lidell's EmacsConf 2023 talk on writing test cases, I've been working on writing occasional tests, too, especially when I'm writing a small, function to calculate or format something. That's a good way of sketching out how I want a function to behave so that I can see examples of it when I revisit the code. Tests also mean that if I change things, I don't have to worry too much about breaking important behaviours.

Ideas for next steps

How can I get even better at this?

  • Popping the stack (untangling interruptions and ideas): When I let myself get distracted by a cool sub-idea, I sometimes have a hard time backing up. I can get back into the habit of clocking time and practise using my org-capture template for interrupting task so that I can use C-u with C-c j (my binding for org-clock-goto) to jump to a recently-clocked task.
  • Braindumps can help me use non-computer time to flesh out notes for things I'm working on or ideas for next steps.
  • If I skim the descriptions of new packages in Emacs News (maybe even the READMEs instead of just the one-liners), I'll probably retain a brief sense of what's out there and what things are called.
  • Vector search across package descriptions and function docstrings could be an even more powerful way to discover things that are close to something I want to do.
  • Using elisp-demos to add more examples to functions can help me look up things I frequently use but don't remember.
  • Figuring out more modern IDE features like refactoring support, on-the-fly error checking, and code navigation could help me code faster.

So that's how I tinker with Emacs for fun: start with something that mostly works, keep an eye out for opportunities to make things better, use tinkering as a way to make doing things more fun, look for things that are nearby, and

Footnotes:

1

I used to think this was the Zeigarnik effect, but it turns out the Zeigarnik effect is about remembering incomplete tasks versus completed tasks, while the Ovsiankina effect is more about intrusive thoughts and wanting to get back to that incomplete task.

2

At the moment, she likes Eyecraftmc and J Perm.

View org source for this post

2023-12-30-01 Daily moments

| drawing, life

Text from sketch

Inspired by Arne Bab (who mentioned being inspired by my sketches) I've been drawing daily moments since 2023-03-20. Nothing fancy, just a quick reminder of our day.

I draw while the kiddo watches a bedtime video. Sometimes she suggests a moment to draw, or flips through the pages and laughs at the memories.

I also have my text journal (occasionally with photos) and my time tracker. It doesn't take a lot of time to update them, and I like what they let me do.

I like this. It makes the path visible. I'm looking forward to seeing what this is like after years

I used to draw and write monthly reviews. I'd like to get back to those. They help with the annual reviews, too.

  • phone: review sketches, jot keywords on phone
  • computer: draw sketch, braindump, blog

Right now I put 12 days on one A5.

  • Week? nah, not really needed
  • More details? longer to review, though. Redirect drawing to monthly notes

Still working on shaping the day/week more proactively. A+ likes to take the lead, so maybe it's more like strewing.

Moments: https://sketches.sachachua.com/tags/moment

If you're viewing this on my blog, you might be able to click on the links below to open them in a viewer and then swipe or use arrow keys to navigate.

Here are older ones.

ArneBab's post: "My best thing today in sketchnotes"

View org source for this post

Working with the flow of ideas

| speechtotext, metaphor, life, blogging, writing, kaizen

Text from sketch

2023-12-25-07

Flow of ideas

What can I learn from thinking about the flow rate?

input > output, and that's okay

Parts:

  • idea: agenda/review?
  • capture: refile to tags
  • toot: use this more, get stuff out
  • braindump: use transcripts or outline
  • sketch: bedtime
  • post: cut off earlier, can follow up
  • video: workflow tweaks

Thoughts:

  • more input is not always better; already plenty, not limiting factor
  • prioritize, review
  • overflow: add notes and pass it along, if poss.
  • can add things later (results, sketches, posts, videos)
  • manage expectations; minimize commitments
  • favour small things that flow easily
  • collect things in a container
    • tags, outlines
    • posts, videos
  • minimize filing, but still find related notes
  • become more efficient and effective

The heap:

  • Org dates have been working for time-sensitive/urgent things
  • Lots of discretionary things get lost in the shuffle
    • waste info collected but forgotten
    • half-finished posts that have gone stale
    • redoing things
    • late replies to conversations
    • things that are just in my config - some people still find them, so that's fine

Next: toot more experiment with braindumping, video

I come up with way more ideas than I can work on, and that's okay. That's good. It means I can always skim the top for interesting things, and it's fine if things overflow as long as the important stuff stays in the funnel. I'm experimenting with more ways to keep things flowing.

I usually come up with lots of ideas and then revisit my priorities to see if I can figure out 1-3 things I'd like to work on for my next focused time sessions. These priorities are actually pretty stable for the most part, but sometimes an idea jumps the queue and that's okay.

There's a loose net of projects/tasks that I'm currently working on and things I'm currently interested in, so I want to connect ideas and resources to those if I can. If they aren't connected, or if they're low-priority and I probably won't get to them any time soon, it can make a lot of sense to add quick notes and pass it along.

For things I want to think about some more, my audio braindumping workflow seems to be working out as a way to capture lots of text even when I'm away from my computer. I also have a bit more time to sketch while waiting for the kiddo to get ready for bed. I can use the sketchnotes as outlines to talk through while I braindump, and I can take my braindumps and distill them into sketches. Then I can take those and put them into blog posts. Instead of getting tempted to add more and more to a blog post (just one more idea, really!), I can try wrapping up earlier since I can always add a follow-up post. For some things, making a video might be worthwhile, so smoothing out my workflow for creating a video could be useful. I don't want to spend a lot of time filing but I still want to be able to find related notes, so automatically refiling based on tags (or possibly suggesting refile targets based on vector similarity?) might help me shift things out of my inbox.

I'm generally not bothered by the waste of coming up with ideas that I don't get around to, since it's more like daydreaming or fun. I sometimes get a little frustrated when I want to find an interesting resource I remember coming across some time ago and I can't find it with the words I'm looking for. Building more of a habit of capturing interesting resources in my Org files and using my own words in the notes will help while I wait for personal search engines to get better. I'm a little slow when it comes to e-mails because I tend to wait until I'm at my computer–and then when I'm at my computer, I prefer to tinker or write. I occasionally redo things because I didn't have notes from the previous solution or I couldn't find my notes. That's fine too. I can get better at taking notes and finding them.

So I think some next steps for me are:

  • Post more toots on @sachac@emacs.ch; might be useful as a firehose for ideas. Share them back to my Org file so I have a link to the discussion (if any). Could be a quick way to see if anyone already knows of related packages/code or if anyone might have the same itch.
  • See if I can improve my braindumping/sketch workflow so that I can flesh out more ideas
  • Tweak my video process gradually so that I can include more screenshots and maybe eventually longer explanations