Kitchin on Using helm to Ease Navigation

John Kitchin, who in addition to being a professor with all the work that that entails, has been busy showing us how to leverage Emacs to ease our work flows. If you’re a helm user, Kitchin has some nice Elisp that makes it easy to go wherever he needs to go for his normal tasks.

That includes things like reading email, his elfeed feed, his calendar, and so on. He has shortcuts to all his frequently used files as well as his recently used files.

The amazing thing about the code is how simple it is. If you steal it, you’ll want to adjust it for your particular work flow but the simplicity of the code should make that easy for anyone with even modest Elisp skills.

I do a lot of this with bookmarks (which Kitchin also handles) and by just leaving my frequently used files in buffers. If I had helm installed, I’d have already stolen his code. It might be enough to get me to embrace helm. I hear nothing but good things about it but ido and smex are working well for me and seem natural by now. I’d be happy to hear from anyone who has some wisdom on the matter. Leave a comment. It’s free.

Posted in General | Tagged | 3 Comments

The Answer to Blogging Friction

Although regular readers are familiar with it, here is a quick review of the history of my blogging work flow. In my old blog on Blogger, I was already using Org-mode but I exported the Org to HTML and pasted it into the Blogger editor. That worked OK except for embedding pictures. That process was sufficiently complicated that I posted a couple of essays explaining how to do it. I couldn’t get the code block scrolling to work either so it was a constant effort to juggle line and display size.

A bit later I moved to WordPress and starting using org2blog. I can’t tell you how much easier it was. I can still remember the first time I posted a jpeg and was amazed that it just worked. org2blog took care of transferring the jpeg to my hosting site and changing the links in the blog post to reflect the jpeg’s new location. It really did make blogging much more frictionless and I haven’t looked back.

As I’ve said many times, I like to read about how other people handle their writing and blogging work flows so of course I had to check out a post entitled Writing For Hypotheses in Org-mode by Michael Piotrowski. He starts out recounting how he didn’t really like blogging and put off writing a post he had been thinking of for months because he couldn’t face all the overhead. Now, Piotrowski says, he’s blogging up a storm and the reason is that he’s using org2blog. Like me, he’s found that it removes much of the friction involved with blogging.

If you’re blogging with WordPress1 and not using org2blog, you really should give it a try. Even if you’re not an Emacs user, you should give it a try. I’ve been blogging everyday for two and a half years and I know I couldn’t do it if I had to use something like the WordPress editor.

The point is, for most people writing is hard enough without making it harder by using suboptimal tools. Org, of course, is a go-to tool for most types of writing. Add org2blog and you have the perfect blogging tool.

Footnotes:

1

If you’re using Blogger, there’s an org2blog for you too. It’s not by the same author and is completely unrelated except for the name. I haven’t tried it but hear good things about it. If I were still on Blogger I’d almost certainly be using it.

Posted in Blogging | Tagged , | 4 Comments

Uncommon Bigrams

Recently, Sacha Chua wrote about how she leveraged abo-abo’s def-repeat-command to easily call windmove and ace-window. She bound the function to the prefix key-chord of yy. That seemed an odd choice to me but I just shrugged and moved on.

Now it appears that she was on to something. John Cook has a nice post that looks at rare bigrams to use as a key-chord. The idea is that if you choose a rare combination, you’re less likely to activate a key-chord by mistake. As it happens, yy is one of those rare combinations making it a perfect prefix for her window switching commands. I use a QWERTY keyboard so yy has the additional advantage of being easy to type even though it’s not on the home row. I know Chua uses a Dvorak keyboard but that has y in roughly the same place so, again, it’s a win for ease of typing.

I have no idea whether Chua was aware that yy is a rare combination, used her intuition that it wasn’t very likely, or just chose a random key-chord but it turned out to be an excellent choice. If you like using key-chords, take a look at Cook’s post for some ideas on which ones are apt to keep you out of trouble.

Posted in General | Tagged | 1 Comment

Inserting C++ Object Names

If you have the misfortune to be a C++ user, abo-abo over at (or emacs has a nifty bit of Elisp to make inserting code like

some_object.method()

much easier.

Posted in Programming | Tagged | Leave a comment

SBCL 1.2.8

Last night, I installed the latest version (1.2.8) of SBCL. As usual, the regression tests and installation executed without problem. You can get your copy at the usual place.

This month’s release fixes some bugs, has three enhancements, and two optimizations. See the NEWS page for the details. As I say every month, I really love this system and can’t recommend it enough. It’s easy to install so if you’ve ever wanted to try out Lisp just load it up and have fun.

Posted in Programming | Tagged , | Leave a comment

Sacha on Org Using Org Tables

Sacha Chua has an outstanding post on how to add data to and get data from Org mode tables. I’ve written a lot about using Org tables and what used to be called Babel to calculate results from the tables and insert those results into the same Org buffer. That’s hugely useful for things like reproducible research or even for tracking income tax deductions.

Chua looks at these aspects in detail but also looks at it the other way around. She shows how to export tables and the code associated with it to an external file. She gives the example of a table with some data and a bit of Elisp that processes that data. If you export that code, it takes the data from the table with it in an Elisp usable form. For example given

#+NAME: numbers
| number  | value |
|---------+-------|
| "one"   |     1 |
| "two"   |     2 |
| "three" |     3 | 
  
#+BEGIN_SRC emacs-lisp :exports code :var nums=numbers[2:-1] :tangle yes
  (mapc (lambda (x) (print (format "%s has value %d" (car x) (cadr x)))) nums)
#+END_SRC

the resulting export is

(let ((nums (quote (("one" 1) ("two" 2) ("three" 3)))))
  (mapc (lambda (x) (print (format "%s has value %d" (car x) (cadr x)))) nums))

Notice how the table data has been converted to a let that’s directly usable by Elisp. That’s pretty neat and something I didn’t know. Even better, she shows how to extract data from Org tables and put them someplace else. I use this in a lightweight way to generate a summary table for my tax data but Chua shows some advanced features.

If you want to learn how to leverage Org mode data handling, you should be sure to check out her post.

Posted in General | Tagged , | Leave a comment

The Emacs Honor Society

John Kitchin, whose work I’ve mentioned many times, states the obvious.

Posted in General | Tagged | Leave a comment

Deanonymizing Metadata

I’ve written a couple of times about the New York City Taxi Commission’s metadata and how easily it can be abused even though it was anonymized by removing the personally identifiable information. The anonymization notwithstanding, data analysts were able to recover a plethora of personal information attributable to specific individuals. You can read the two posts above to see how easy this was.

Now the New York Times is reporting on the problems of anonymous metadata. They report on a study published in Science showing that anonymous credit card metadata could be deanonymized over 90% of the time if the analyst had 4 pieces of outside information about a person in the anonymized metadata. Even social scientists, who relish this type of data and use it in their research, are concerned about the privacy issues that it represents.

Much this data is collected as a side effect of ordinary business practices. For example, credit card data has to be collected so that the credit card user can be billed and the merchant reimbursed. There is, however, no reason to release this data in any form, no matter how much social scientists might wish to study it or advertisers wish to leverage it for targeted advertising. The data belongs to the customers and no one else. Nothing compels companies to make this sort of data available and it should, in fact, be illegal to do so.

The situation with data collected by the government is more complex. It is almost always subject to FOIA requests and therefore subject to release no matter what the holders or subjects of the data might prefer. That’s what happened with the NYC Taxi Commission data: someone filed a FOIA request for the data and then promptly deanonymized it. It’s certainly the case that the government must collect some data. Income tax returns, for example, are full of sensitive personal information. That’s why they’re specifically exempted from FOIA and why it’s illegal to release the data to anyone.

Sadly, though, the government collects lots of data that (a) is not protected from FOIA and (b) probably doesn’t need to be collected. Much of the data is collected simply because technology makes it cheap and easy to do so and because it might, someday, be useful. As the Science report makes clear there are no effective standards in place to guarantee the safety of data so in the absence of a compelling reason to do so, it shouldn’t be collected in the first place.

Of course, lots of people want to get their hands on that data and almost never for the benefit of the people it was collected from. For that reason it almost certainly will continue to be collected. The people who want it have deep pockets and will ensure to flow isn’t shut off. That’s too bad for the rest of us.

Posted in General | Tagged | Leave a comment

Running a Course Video

My New Year’s post was about how John Kitchin used Emacs and Org-mode to run a graduate course in Chemical Engineering. If you want to see it in action, he’s posted a short video that shows the system from both the students’ and instructor’s point of view.

I love seeing how people leverage the Lisp Machine aspect of Emacs to solve problems having little to do with editing text. If you like it too, be sure to check out the video. It’s only six and a half minutes to you won’t have to schedule time.

Posted in General | Tagged , | Leave a comment

A Nice Org Mode Tip

Posted in General | Tagged , | 1 Comment