2016-02-08 Emacs News

Links from reddit.com/r/emacs, /r/orgmode, Hacker News, planet.emacsen.org, Youtube, EmacsWiki:RecentChanges, the Emacs commit log, the changes to the Emacs NEWS file, and emacs-devel.

Past Emacs News round-ups

On scattered moments and video games

In anticipation of more fuzzy-brain time-confetti, I’ve been thinking about what I can do with short, scattered moments. The considerations are:

  • They should be activities that I can pick up and put down at a moment’s notice: minimal switching costs and easy availability
  • They should be useful or enjoyable, and ideally both
  • Ideally, they should build up over time

Here’s a list of things I often find myself doing:

  • Reading: nonfiction, fiction, random Internet browsing. Dusted off my Kindle and loaded it up with a few tech manuals and some fanfiction. Great for walking around, since I can use the page buttons even with gloves on.
  • Tidying up or preparing: there’s always something that needs to be done
  • Checking out the Emacs community to see if I can answer a quick question or learn from other people’s conversations
  • Drawing an index card or two
  • Playing casual games

I think games are worth thinking about a little more, even though I’m tempted to focus on the more useful activities. There are a lot of people who spend a lot of time thinking about how to make gaming more engaging. It’s a big industry. I wonder if I can turn it to my own purposes.

2016-02-01c Game endings -- index card #gaming

2016-02-01c Game endings – index card #gaming.png

I tend to like games with stories that have funny moments, like RPGs or LEGO games. Since games like that tend to require space and development effort, I play them on the PSP or the PS3. I’ve learned I’m not a completionist when it comes to achievements or levels – I like passing a level, but I’m not driven to reach three out of three stars. I can enjoy open-ended sandbox simulations. Games that go until failure tend to be a little depressing after a while – the abstract achievement of lasting a certain time or reaching a certain level doesn’t tickle my brain the same way other things do.

2016-01-14d Thinking about games I liked -- index card #play #gaming #leisure

2016-01-14d Thinking about games I liked – index card #play #gaming #leisure.png

Reflecting on the specific games I’ve liked, I notice that I usually explore games that W-‘s also playing as a way of spending time together or sharing experiences. This is how I ended up getting into Borderlands 2 and Persona 4 Golden, and why I’m playing Final Fantasy IX now. On my own, I find that I’m a little partial to time- and resource-management games. I figure that among the popular games of those genres, a game is probably as good as any other. So I’m playing through Rising Star Chef on the tablet, and just for kicks (and Takei’s narration, although there’s far too little of that), Star Trek: Trexels on my phone.

It seems like most of the popular games have switched to a freemium model, with in-app purchases for the impatient. I find myself liking the built-in timers and rate limits, actually. They’re good for reminding me to surface from the game and look around. There’s a little bit of pride, too, in the thought: “Aha, I resist your feeble attempts to convince me to spend money.” But that’s only part of the picture, of course. I pay in time and attention, and often in exposure to advertisements. So if I’m going to do this, I want to make sure that I get what I want out of it.

Here are the pay-offs I think I’m getting from these games, and some alternatives if I want to play with those pay-offs.

2016-01-28c Playing with games -- index card #games

2016-01-28c Playing with games – index card #games.png

Games give me a sense of learning and a sense of progress, although they’re of arbitrary things. Games also deliberately build on the rush of intermittent rewards.

2016-02-01b Playing with my brain's failure modes -- index card #gaming

2016-02-01b Playing with my brain’s failure modes – index card #gaming.png

The most interesting benefit for me, though, is developing an awareness of how I think in different situations, while keeping things low-risk. Sometimes I catch myself getting flustered and messing up orders in the cooking game, or letting a party member get knocked out in FF9 because I was too distracted to pay attention to the health stats. (Trexels seems more like a virtual pet than anything else; it feels like it’s just a matter of time.) I like the way games make me think a few steps ahead, take risks, recover from mistakes, and deal with (or even celebrate) the inevitable failures.

So maybe a little more gaming, with built-in limits thanks to freemium timers and the pull of other things, mixed in with all these other ways to use scattered moments. Hmm…

Eating more vegetables

It looks like all I really needed in order to nudge myself to eat more vegetables was to keep a large variety of salad-able vegetables in the fridge. It’s still pretty cold out, so I prefer to eat warm foods. Roast vegetables, then.

2016-02-07c Eating more vegetables -- index card #cooking #vegetables

2016-02-07c Eating more vegetables – index card #cooking #vegetables

I spent part of my afternoon processing a stream of various vegetables cut into half-inch-ish dice, tossed in olive oil, and roasted at 400’F for however long it took to make them tender, generally shaking them and checking them every ten minutes or so. It’s a good pipeline: one bowl for scraps, one bowl for tossing in olive oil, one large chopping board and a chef’s knife, a roasting pan lined with foil, and each batch of vegetables is generally chopped up by the time the previous batch is done roasting, with liberal breaks for hanging out in #emacs, browsing the Web, or playing games.

Today’s haul: parsnips, carrots, fennel, broccoli, and beets, joining the sweet potatoes and butternut squash in the fridge. I also have chickpeas (both boiled and roasted) and couscous. Mwahaha. My very own salad bar. Meals feel like more of an indulgent production when I haul out almost a dozen containers so that I can take a couple of spoons from each. It’s like when I spend a weekend making a banchan extravaganza, lining up a slew of Korean side dishes, but with less work since the vegetables pretty much use the same cooking methods and I don’t have to juggle different pans, oils, and spices.

Might be a good opportunity to revisit this sketch from last year:

2015-01-28 Winter vegetables to explore -- index card #cooking

2015-01-28 Winter vegetables to explore – index card #cooking

Still haven’t played around with endives, kohlrabi, broccoli raabe, chicory, escarole, rutabagas, or turnips. There’s still time, though!

I imagine that stocking this kind of salad bar would be much the same in warmer weather, except maybe with less cooking and more greens/fruits. Should be fun.

Weekly review: Week ending February 5, 2016

I walked a lot this week – an average of two hours a day, exploring different destinations. It was a bit tiring, but it was good to get out in the sun. =) It was surprisingly warm when I was out by the Stockyards; practically shirt weather.

Lots of cooking this week. Now that our freezer’s mostly full, I’ve been focusing on exploring new recipes. Of the different things I tried this week, I like the roast vegetable salad the most. Nothing fancy, just assorted vegetables roasted and tossed together, but I enjoyed eating it.

More tidying and more preparing. Some sewing, too. I sewed an extra-large pouch, and that was a good opportunity to learn how to add a zipper pull to continuous zipper tape. Now that I know how to do that, I’m tempted to keep a few yards of zipper tape and a small thing of zipper pulls. So handy.

W- bought Final Fantasy 9 during the recent Playstation Network sale, so now we’re playing that. At first I wanted to see how far I could get without a walkthrough. It’s the sort of game that can be much harder if you miss certain items or options, though, so we’re back to referring to the walkthrough regularly.

Some more consulting, too. Transitioning more tasks, updating some neat data visualizations I’d almost forgotten about… Things are going well. =)

2016-02-06a Week ending 2016-02-05 -- index card #journal #weekly output

Blog posts

Sketches

Focus areas and time review

  • Business (18.1h – 10%)
    • Earn (9.2h – 51% of Business)
      • ☑ Prepare invoice
      • ☑ Earn: E1: 1-2 days of consulting
      • ☐ Earn: E1: 1-2 days of consulting
    • Build (8.4h – 46% of Business)
      • Drawing (7.4h)
      • Paperwork (0.2h)
    • Connect (0.5h – 2% of Business)
  • Relationships (8.0h – 4%)
    • ☑ Fix up room
  • Discretionary – Productive (9.4h – 5%)
    • Emacs (1.3h – 0% of all)
      • ☑ Do another Emacs News review
      • ☐ Do another Emacs News review
    • Sewing (2.6h)
    • Writing (5.5h)
  • Discretionary – Play (11.8h – 7%)
  • Personal routines (35.0h – 20%)
  • Unpaid work (15.7h – 9%)
  • Sleep (69.9h – 41% – average of 10.0 per day)

Level up: figured out how to add a zipper pull on continuous zipper tape

The fabric warehouse near our house has an assortment of zippers, but it can be tricky digging through the bins to find a zipper of the appropriate type, length, and colour. They also sell zippers by the yard, and will thread on as many pulls as you ask for.

I picked up a few yards of zipper tape months ago as an experiment. I’ve used the zippers on a number of small pouches already. It’s so convenient being able to just cut the length of the zipper I need instead of sifting through a stash of pre-cut zippers.

Today I was sewing a large pouch that needed a 21″ zipper along one end. One side of the zipper had escaped the zipper pull on the segment I was working with, so I opened the zipper and removed the last two zipper pulls that were on it. Then I realized I had no idea how to get the zipper pulls back on.

Youtube to the rescue! I followed this tutorial:

After a little bit of wiggling, I got the zipper pull onto the coils. The new zipper pull zipped the zipper closed behind it. Hooray!

Bonus: Because I had left the bottom part of the zipper closed, by the time I had moved the zipper pull to the middle of the segment I had stitched into the pouch, the zipper pull was basically in between two closed parts of the zipper. This made stitching over both sides of the zipper much neater than it would have been if one of the sides were open, like the way pre-cut zippers are.

2016-02-05a Zipper pulls and zipper tape -- index card #sewing

2016-02-05a Zipper pulls and zipper tape — index card #sewing

I love how easy it is to find all sorts of practical tutorials on the Internet. It’s a small thing, but it’s nice to know that I can deal with zipper pulls and zipper tape. It means that I can buy zipper tape by the yard and never have to worry about having the wrong length, and that I can make large containers without being constrained by the pre-cut lengths available in the fabric stores. Yay making things!

Publishing Emacs News as plain text, HTML, and attached Org file

Update 2016-02-05: Since @ThierryStoehr linked to this post about Emacs News-related code, I figured I’d add a link to the other support functions I’ve been using to help me with Emacs News summarization. There’s also this bit:

(let ((date (org-read-date nil nil "-mon")))
    (concat
     (my/org-list-from-rss "http://planet.emacsen.org/atom.xml" date) "\n"
     (shell-command-to-string (concat "~/bin/list-reddit-links.coffee emacs " date)) "\n"
     (shell-command-to-string (concat "~/bin/list-reddit-links.coffee org-mode " date)) "\n"
     "- New packages:\n"
     (my/list-new-packages) 
     "\n"))

Handy little things!

——

I’ve been publishing these weekly summaries of Emacs-related links on my blog and to the emacs-tangents mailing list / newsgroup. I started by posting plain text from Org Mode’s ASCII export, and people asked for Org Mode and HTML formats. So here’s some code that prepares things for pasting into a Gnus message buffer.

It turns out that order matters for multipart/alternative – start with plain text, then include richer alternatives. First time around, I put the HTML version first, so people didn’t end up seeing it. Anyway, here’s something that shows up properly now: text/plain, then text/html, with text/x-org attached. The heavy lifting is done with org-export-string-as, which exports into different formats.

  (defun my/share-emacs-news ()
    "Prepare current subtree for yanking into post."
    (interactive)
    ;; Draft Gnus article
    (save-restriction
      (org-narrow-to-subtree)
      (let ((org-export-html-preamble nil)
            (org-html-toplevel-hlevel 3)
            output)
        (setq output
              (apply
               'format
               "<#multipart type=alternative>
<#part type=\"text/plain\" disposition=inline>
%s
<#/part>
<#part type=\"text/html\" disposition=inline>
%s
<#/part>
<#/multipart>
<#part type=\"text/x-org\" disposition=attachment name=\"emacs-news.org\">
%s
<#/part>
"
               (mapcar
                (lambda (format)
                  (org-export-string-as (buffer-substring (point-min) (point-max)) format t))
                '(ascii html org))))
        (kill-new output))))

Howard Abrams showed me something like this in June 2015’s Emacs Hangout (~1:18:26) using org-mime-org-buffer-htmlize, which probably does the job in a much cooler way. =) I thought he had a blog post about it, but I can’t seem to find it. Anyway, there’s my little hack above!