Categories: life

RSS - Atom - Subscribe via email

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

| 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

Turning 40: a review of the last decade

| life, review

10 years ago, I wrote that I was on the threshold of even more changes and two wildly different paths, and that I was looking forward to learning, sharing, and scaling. Here's how that worked out:

  • Learning: I've been learning a ton about myself, life, and the people and resources around us, and skills that make our lives better. Drawing my thoughts out has been really helpful for untangling them. I haven't focused on tech as much, but sometimes I make little improvements here and there so that I can make the most of my limited screentime.
  • Sharing: Parenting's been keeping me too busy to create lots of focused resources. I'm not too worried about this, though, since lots of other people are making cool stuff for Emacs.
  • Scaling: Emacs News has been a really time-efficient way for me to help out with the Emacs community, and all the automation I've built around EmacsConf lets me squeeze it into the time I have. For consulting, I've been able to help other people learn by answering quick questions, and I continue to have fun making the client's crazy ideas happen.

Wow, 2013 to 2023 brought a lot of big changes to my life.

Text from sketch

Life in my thirties

Big changes:

  • Parenting:
    • I approached or hit my limits more than I used to, but that's part of what I signed up for, and it's a good opportunity to learn and grow.
      • Next: more patience, empathy, curiosity, and love
    • I have a deeper appreciation of W- and the people and resources available.
      • Next: use the inspiration to keep growing
  • COVID-19:
    • I have a deeper appreciation of W- and the people and resources available.
  • Consulting:
    • I have fun creatively solving challenges
    • Next: scale up by helping others learn
  • Emacs News, EmacsConf:
    • I found ways to help out even with the constraints on my attention. The Emacs community is thriving, and I enjoy being part of it.
    • Next: tinker & share more
  • Hobbies:
    • I'm more comfortable making things, growing things, preserving things.
    • Next: learn more skills, practise, organize

Looking ahead to my forties:

  • Parenting: From 7 years old to 17 years old is a ton of growth! This is the payoff from the last decade's setup, and the setup for decades to come.
  • As A+ becomes more independent, I'll have more time and energy for my own things. I want to work on the interests I share with W- as well as my own stuff: cooking, gardening, sewing, crafting, …

Text from sketch
  • 30 (2013-14): lots of drawing & writing, Hacklab, Emacs Chats, Google Helpouts, Frugal FIRE, self-publishing, trip to PH
  • 31: slow days, helped with new Hacklab, high-profile consulting project, sewing, laser cutter, Canadian citizenship
  • 32: library hackathon, A+! Sleep disruption, microphthalmia, lots of appointments, Emacs News, basement tiles, sewing for A+
  • 33: House projects, Royal Ontario Museum, conformer, lost shell, walking & talking, Learning Tower, cooking, Healthy Babies Healthy Children, trip to PH, de Quervain's
  • 34: Checking off medical questions, music, my dad died, dental surgery for A+, little books, city resources for kids, lots of trips to PH, babysitter experiments, bike trailer
  • 35 (2018-19): Why? more books, journal, Planet Emacslife, more consulting during the day, playdates, EarlyON, NL, PH, cousins
  • 36: EmacsConf, ReactJS, Docker, COVID lockdowns, tobogganing, gardening, Heroica, library card, allowance
  • 37: virtual school, exemption, reading, garden cage, sewing, steno, Pride & Prejudice, 11ty, Numberblocks
  • 38: cubing, Cinderella dress, pressure canning, glasses for A+, outside, house tweaks, skating, cursive, COVID vax, SuperNote, friend group, playdates, lemonade stand
  • 39: EmacsConf streaming, being outside, virtual grade 1, homework, learning to trust A+, semi-unschool, more cubing, swimming, Minecraft

Parenting will probably take up most of my forties. I think the biggest thing I need to practice is calm, appreciative curiosity: not letting my worries or reactions or shoulds get in the way of being present, enjoying what's there, and helping figure things out together. It's tough, but it's what I signed up for, and that skill will also come in handy as I learn to deal with aging and world weirdness.

It's been a good ten years. Looking forward to seeing what we can make of the next ten.

Notes from virtual grade 1

| school

Text from sketch

We're close to the end of the school year. We chose virtual school again this year, and we applied for a full exemption from synchronous learning. At completed the required homework on time and occasionally participated in class. The teachers were okay with this setup.

What worked well?

  • A+ generally did the homework quickly, giving her plenty of time for self-directed learning and outdoor playdates. Most teachers posted detailed instructions and resources.
  • It was extra nice when she took the initiative to do her homework.
  • I liked knowing what they were learning about in class, and following along with the homework.
  • A+ likes to read at night. Working asynchronously. meant that we could usually have laid-back mornings.

What was a little challenging?

  • Sometimes A+ was too tired after playdates, and homework was hard to get through. Sometimes she resisted doing homework with me. She always managed to do it, though. W- helped.
  • Sometimes I got a bit antsy about what we were missing out on, choosing to not do, or not doing as well as some of her classmates (Comparison is the thief of joy.)
  • Sometimes big feelings were hard to deal with.

Choosing virtual school again next year. I hope it works out just as well!