Category Archives: -Uncategorized

Emacs Chat with Steve Purcell

In this Emacs Chat, Steve Purcell shares how he got started with Emacs by using a Vim emulation mode, what it’s like to give hundreds of package authors feedback on Emacs Lisp style, and how he’s eventually replacing himself with Emacs Lisp (flycheck-package). He also highlights useful packages for managing buffers of version-controlled files (ibuffer-vc), working with lines if the region isn’t active (whole-line-or-region), or maximizing certain buffers (full-frame).

http://youtu.be/Gq0hG_om9xY

Quick video table of contents (times are approximate):

0:04 From Vim to Emacs with Viper
0:11 Packages
0:18 Feedback
0:20 Lisp style
0:21 Flycheck
0:28 Versioning
0:32 Config
0:40 ibuffer-vc
0:41 whole-line-or-region
0:44 full-frame
0:47 Not using Emacs for everything
0:48 Auto-complete, hippie-expand
0:51 Graceful degradation with maybe-require-package
0:57 Making sense

Transcript will follow. In the meantime, you can check out Steve’s config at https://github.com/purcell/emacs.d, follow him on Twitter at @sanityinc, or go to his website at http://sanityinc.com/. You can find other Emacs Chats at http://sachachua.com/emacs-chat .

Got a nifty Emacs workflow or story that you think other people might find useful? I’d love to set up an Emacs Chat episode with you. Please feel free to comment below or e-mail me at [email protected]!

Yay! I rocked

I’ve been working long hours over the past few weeks, getting ready for an event that wrapped up yesterday. It worked out really well. Yay!

I picked up AngularJS for this, and I’m glad I did. Angular made it really easy to update parts of the page with data and bind various events to clicks. It would’ve been pretty hard to do it without a framework like that, I think, what with all the changes.

My brain is still a little frazzled from the concentration. We did a lot of prep leading up to the event in order to prepare for stuff, and I did some quick fiddling during the event to troubleshoot. Good to make things happen!

It’s nice to downshift from the intensity of the event. We have a few things to take care of, but now I can carve out more time to cook, to write, to draw. It was great to know that even with the long days and focus, I had enough sleep and enough energy. =) W- kept things going at home, and I trimmed practically all the discretionary stuff. Now that my schedule’s loosened, I’m looking forward to picking up what I temporarily put aside.

On to more adventures!

Gardening update: Reviewing my goals for this year

It’s September, which means fall will be here soon. Time for a brief review of my gardening plans for 2014, so I can squeeze in any last-minute learning I need. Here’s what I drew in November last year and May this year:

2013-11-08 More garden plans for 2014

2013-11-08 More garden plans for 2014

2014-05-23 Gardening - Things to learn more about or try

2014-05-23 Gardening – Things to learn more about or try

I got all our seedlings from the plant shop a few blocks away. The seedlings grew well, and dividing them up worked. Some of our bitter melon plants died, though. (Damping off?)

For the plants I started from seed, I planted in mostly neat rows this time and I watered frequently, so it was (mostly) easy to tell which ones were weeds and which ones were the ones I wanted. We found a spot in our bedroom window that might accommodate a few small plants during the winter and Hacklab has a space with a skylight, so I might be able to grow tomatoes and bitter melon from seed next season.

Regular watering worked well in spring and early summer, but I fell out of the habit with the rains and the heat. Then the garden got straggly and overgrown, so it wasn’t as much fun to maintain. I pulled up the dying plants and put in some peas and beans. We’ll see how far those get before the winter sets in.2014-09-01 15.58.27

Still planting things I don’t end up eating. I had salad for a while, and then stopped when the leaves got somewhat sluggy and insect-infested. Next time, I should just pull up the plants and start again.

Tried squashes. The zucchini, bitter melon, and winter melon produced lots of leaves and flowers, but weren’t as productive as rumoured. We’ll keep trying. We did get one zucchini out of it, though. (Whee!) The Internet says you can cook the squash flowers, so we might try that towards the end of the season.

The bright spots: peas and cherry tomatoes were popular, as always. =) Yum! The tomato plants were quite prolific this year. Last year, we got hardly anything. Hooray for cherry tomatoes! We also got a few handfuls of blueberries from the bushes too.

Writing for myself

Sometimes, when I feel my mind filling up with thoughts of other people (tasks, questions, ideas for helping), I take a step back and focus on something more selfish. It’s important to me that I sometimes write mainly for myself. If it so happens to benefit other people, wonderful, but it’s got to be stuff that I need too.

What are the kinds of things I write about when I’m writing for myself?

  • Notes on things that I’m figuring out
    • Idiosyncratic interests that hardly anyone will find useful
    • Puzzling through the tangles of life
    • Straightforward questions and the journey towards answers, including research and backtracking
    • Plans, scenarios
    • Data analysis
    • Things I’m learning, in case other people want to help out (and sometimes people can learn from it too, which is nice)
  • Things I want to remember
    • Reasons for decisions and expected outcomes
    • What this experiment feels like
    • The influences on my life

Based on a quick scan of the blog posts this year, I’d say that around 25% of my blog posts have been mostly for me rather than other people (excluding weekly and monthly reviews from the count). This is higher than I thought it would be, and I think that’s good. It’s probably just the buzz from e-mail and from a recent experiment tilting my blog towards more technical topics.

Month Mostly-reflections
Jan 6
Feb 6
March 8
April 5
May 3 so far

Based on my time records, drawing has been on a decline (62.6h in Jan, 34.7h in Feb, 18.2h in March, 12h in April), while Emacs has been on the increase. In fact, the correlation is -0.86 over five months. Interestingly, the only negative correlation for sleep in my top 10 activities is with Emacs: -0.43. Pretty strong positive correlations for sleep with work and writing. I probably like a balance like March, where I mixed things up a bit more with personal reflections. Hmm…

Okay. So maybe I dial back a little on the Emacs side, and do more drawing and writing as an experiment to see how that affects buzz. That probably means that Wednesdays and maybe a bit of Friday will be for Emacs (course, e-mail, blog posts, tinkering). Mondays and a bit of Friday will be for planning. Ideally, we’ll get to the point where I don’t feel a smidge of guilt for my inbox or limited ability to explain things, so it’s all upside. =)

If I set the expectation that I mostly care about my inbox only every 2-3 days (and that I sometimes take a week to reply), I think that will un-buzz-ify my brain enough. It’ll be interesting to see if I can still run an engaging e-mail course with those bounds. I like the conversation. I don’t want to give that up. =) I just want to make sure my brain has the quiet it needs for other things, too.

What’s the quiet for? I want to be able to catch myself being confused, to see the gaps, to say, “Hmm, that’s a good question,” and to dig into things further. What am I likely to find interesting after ten years? Easy enough to compare April 2014 with April 2004 (technical posts, snippets, links, teaching, flash fiction), March with March, and so on. I like the mix of March 2014 mix more than April’s. More exploratory, maybe? Hmm…

Emacs beginner resources

Sometimes it’s hard to remember what it’s like to be a beginner, so I’m experimenting with asking other people to help me with this. =) I asked one of my assistants to look for beginner tutorials for Emacs and evaluate them based on whether they were interesting and easy to understand. Here’s what she put together! – Sacha

Emacs #1 – Getting Started and Playing Games by jekor
Probably the most helpful Emacs tutorial series on YouTube. Goes beyond the “what to type” how-tos that other tutorials seem bent on explaining over and over. Emphasizes games and how they help users familiarize themselves with the all-keyboard controls. 5/5 stars

Org-mode beginning at the basics
What it says on the tin. Essential resource for those who are new to Emacs and org-mode. Provides steps on how to organize workflow using org-mode written in a simple, nontechnical, writing style. 5/5 stars

Xah Emacs Tutorial
Though the landing page says that the tutorial is for scientists and programmers, beginners need not be intimidated! Xah Emacs Tutorial is very noob-friendly. Topics are grouped under categories (e.g. Quick Tips, Productivity, Editing Tricks, etc.) Presentation is a bit wonky though. 4.5/5 stars

RT 2011: Screencast 01 – emacs keyboard introduction by Kurt Scwehr
Keyboard instruction on Emacs from the University of New Hampshire. Very informative and also presents some of the essential keystrokes that beginners need to memorize to make the most out of the program. But at 25 mins, I think that the video might be too long for some people. 4/5 stars

Emacs Wiki
Nothing beats the original- or in this case, the official- wiki. Covers all aspects of Emacs operation. My only gripe with this wiki is that the groupings and presentation are not exactly user-friendly (links are all over the place!), and it might take a bit of time for visitors to find what they are looking for. 4/5 stars

Mastering Emacs: Beginner’s Guide to Emacs
The whole website itself is one big tutorial. Topics can be wide-ranging but it has a specific category for beginners.
whole website itself is one big tutorial. Looks, feels, and reads more like a personal blog rather than a straightforward wiki/tutorial. 4/5 stars

Jessica Hamrick’s Absolute Beginner’s Guide to Emacs
Clear and concise. Primarily focused on providing knowledge to people who are not used to text-based coding environments. It covers a lot of basic stuff, but does not really go in-depth into the topics. Perfect for “absolute beginners” but not much else. 3/5 stars

Jim Menard’s Emacs Tips and Tricks
Personal tips and tricks from a dedicated Emacs user since 1981. Not exactly beginner level, but there’s a helpful trove of knowledge here. Some chapters are incomplete. 3/5 stars

Emacs Redux
Not a tutorial, but still an excellent resource for those who want to be on the Emacs update loop. Constantly updated and maintained by an Emacs buff who is currently working on a few Emacs related projects. 3/5 stars

Jeremy Zawodny’s Emacs Beginner’s HOWTO
Lots of helpful information, but is woefully not updated for the past decade or so. 2/5 stars

This list was put together by Marie Alexis Miravite. In addition, you might want to check out how Bernt Hansen uses Org, which is also pretty cool.

Managing virtual assistants: My process for managing talk deadlines and information

  1. Log on to docs.sachachua.com and open my Talk planning spreadsheet.
  2. Click on the last tab near the bottom of the page. (Talk planning)
  3. Select the F and G columns, right-click on the column header, and choose Insert 2 Left.
  4. Select the D and E columns, copy them, and paste them into F and G columns. Delete the TEMPLATE header.
  5. Replace the date and title from the text.
  6. Fill in the other information about the talk.
  7. Log on to Toodledo.com in a separate window, and arrange your windows so that you can see the spreadsheet and create tasks at the same time.
  8. Scroll down to see the tasks on the spreadsheet. The dates should be automatically calculated based on the due date of the talk. Manually set the dates if any were specified.
  9. In Toodledo, click on Folders, and then add a folder with the title of the talk. Then go to the To-Do List and add the tasks (shortcut key: n). Specify the folder, due date, and length based on the spreadsheet and/or talk information. Set the context to “home” (unless I indicate otherwise) and the tag as “presentation”. For the tasks before “Call or e-mail organizer to confirm details”, set the start date to be one week before the due date.
  10. Create a Timesvr reminder for two hours before the presentation with the following text:
    Please call me on my cellphone to remind me about the upcoming talk on (talk title). Remind me of the title, the time, the organizer’s name, and other information.
  11. Create a calendar entry for the presentation on my Sacha – Main calendar, including the talk title and organizer contact information. Add location, transit instructions, and driving instructions if specified. E-mail me when you’re finished.

For reference, this is what the left side of my spreadsheet looks like:

DATE OF TALK
Title of talk
Organizer contact info
Duration
Length Task Days
30 Send organizer title, abstract, bio, and picture -21
15 Get talk details -21
30 Outline talk -18
120 Do background research -14
60 Assemble detailed outline -7
150 Write pre-talk blog post -5
60 Storyboard presentation -4
120 Make presentation and send it to organizer -3
10 Call or e-mail organizer to confirm details -2
60 Give presentation 0
60 Post recordings 1
30 Update ROI spreadsheet 2
Talk information
Abstract
Bio