Tech Companies Get Religion

In the aftermath of the push back from the Snowden revelations American tech companies are feeling the heat about suspicions they are a bit too cooperative with the NSA and various law enforcement agencies. Now they are endeavoring to put a little distance between themselves and the government.

One way they’re doing that is by serving notice that unless prohibited by a warrant they will notify targets that the government is seeking their information. Yahoo did this some time ago and Apple just posted their new guidelines for law enforcement agencies.

The Apple guidelines are worth reading just to see what information Apple says it can extract from its devices. Significantly, they say that they can not provide any FaceTime or iMessage data because those communications are encrypted end-to-end.

In a way you almost have to feel sorry for the law enforcement agencies. No one wants to make it more difficult to stop real criminals but they brought this problem on themselves. For years they’ve abused tools like administrative subpoenas and along with the NSA have tried to vacuum up as much information as possible. Now they’re whining and issuing dire warning about the four horsemen of the infopocalypse. It’s the same nonsense they always use: Terrorists! Think of the children! I think I’d rather think of the constitution.

In any event, this is good news and, I hope, the harbinger of more push back to come. It will be interesting to see what happens next.

Posted in General | Tagged | Leave a comment

A Guide for Writing Reproducible Research with Org Mode

Vikas Rawal has an excellent guide up at Github for writing papers with Emacs and Org Mode. He takes a reproducible research tact so it’s a great resource for learning how to produce a paper with everything in a single file and all the tables and graphs produced automatically.

The guides takes a “from the beginning” approach so it’s fine for even those with limited or, perhaps, no Emacs experience. If you have even a little bit of Emacs under your belt you should have no problems at all. One of the points that Rawal makes is that you can spend more time figuring out LaTeX than you do actually writing the paper. Using Org Mode removes most of that friction and lets you to concentrate on your writing but still allows an escape into LaTeX for specialized tweaks.

It turns out that Emacs and Org Mode are almost everything you need. He recommends Pandoc for some conversions, TeXLive and BibTeX for producing LaTex, and, in his case, R and ESS to handle statistics. R is a good solution if you’re producing a lot of statistics but the techniques he describes works just as well with other languages if your needs are different. He doesn’t go into the details of R itself so its use as the example language is not distracting.

Even if you know only a little LaTeX (or, I suppose, none at all) you can follow his recipe and get good results. That’s a major benefit when you’re just starting and don’t want to hassle with LaTeX along with everything else. Even the amount of Org that he uses is minimal so by following his example you can be producing great looking papers without knowing much about LaTeX or even Org.

I really liked this guide and recommend it if you’re looking for a way to produce journal-quality papers.

Posted in General | Tagged , | Leave a comment

The Oldest Religious War

Over at Slate, David Auerbach has an amusing article on the oldest religious war. That would be vi versus Emacs, of course. Auerbach has a dangerous marriage: he’s an Emacs user and his wife is a Vim user so he’s probably seen some front-line action.

I’ve logged a lot of time with both editors so I was able to evaluate his descriptions of the editors. By and large I agree but he thinks that Emacs is easier to learn than vi. Vi’s modality can confuse a beginner for a short time but it seems to me the command set is pretty regular and intuitive while the Emacs key sequences are much less so. I think Emacs was harder to get really efficient in but the effort was worth it because of the tremendously powerful platform that you then have at your disposal.

There’s not much new in the article for Irreal readers but you’ll probably find it interesting anyway. Read it and see what you think. If you’ve got both vi(m) and Emacs experience, leave a comment telling us whether or not you agree with Auerbach’s assessments.

Posted in General | Tagged , | 7 Comments

Emacs For Developers

Pierre Lecocq has a nice set of Emacs tips for developers. I’ve been meaning to write about it for a while now and Lecocq has recently updated it to include tips for Ruby, Python, C/C++/Objective C, Go, PHP, Java, and R developers so this seems like a good time.

If you follow the link, you land on his Github page where the README is the Table of Contents for the tips. Rather than going through them, I’ll just send you over to take a look. Some of the examples have animated gifs so it’s worth checking the tips out.

I see a lot of posts on Reddit asking how to set up Emacs for language X. Provided that X is one of the above languages, these tips may help. The sections on tips for developers is mostly links to other resources but it’s convenient to have the links in one place.

The other sections are more general tips that all Emacs users will find helpful. Again, these tips are mainly for beginners but you may find something useful. Use the TOC to explore things you think might be interesting.

Posted in General | Tagged | Leave a comment

Sacha Chats with Phil Hagelberg

For her latest chat, Sacha Chua meets up with Phil Hagelberg. A year and a half ago, Hagelberg was featured on The Setup where he had some very interesting things to say about Emacs. I wrote about that here.

Chua and Hagelberg begin with a discussion and demonstration of syme, a facility for doing pair programming on Githup projects. If you’re working jointly on a project that’s hosted on Github, you’ll want to check syme out.

They also talk about Clojure and getting a REPL for it within Emacs. That’s informative but what’s really interesting is Hagelberg’s hardware hack to control the heating in his detached programming shed. One nice feature of that is that he can control it from his house by chatting with the system over XMPP. That nice because he can get the heat going in the shed before he has to leave his house.

The chat is a few seconds over an hour so plan accordingly. Hagelberg is an interesting guy so I think you’ll enjoy the chat. Don’t worry about trying to write down the links he talks about; Chua lists them along with the video of the chat.

Posted in General | Tagged | 1 Comment

At Last

For time, I’ve been unsatisfied with the options for moving between windows. 【Ctrl+x o】is great when there are only two windows in the frame but becomes clumsy when there are three or more. For a long time I’ve been using windmove and that works well except that I always type【Ctrl】 and an arrow instead of 【Shift】and an arrow. Furthermore, 【Shift】 plus an arrow conflicts with Org mode bindings.

Now, at last, I’ve found the perfect solution: ace-window. It works pretty much like ace-jump-mode (see this Emacs Rocks! video for an example of ace-jump-mode in action). When invoked, ace-windows grays the text in each window except for a red number in the upper left hand corner. Pressing the number gives focus to that window and ungrays the text. Very nice.

I first found ace-window a week or two ago but there was an autoload problem that kept it from working. Now, happily, that’s been fixed and I can zip around between windows almost effortlessly. I love this package.

Posted in General | Tagged | 8 Comments

Encrypt Your Dropbox Data!

I’ve told you many times (here, here, here, here, and here) that if you’re using Dropbox and you have any file in it that you wouldn’t like to see on the Internet, then you better be encrypting those files. Dropbox is a great product and their developers take care to make it as secure as possible but bugs still creep in. If you’re a developer, that knowledge is held in your DNA. If you’re not a developer, take my word for it: bugs always creep in.

Now it’s Dropbox’s turn. The problem occurs when users issue a shared link. That can result in an unintentional file leak. Dropbox has disabled the shared link mechanism while they consider ways of tightening things up. The problem results not from a flaw but from the fact that the links can be revealed in unexpected ways—see the article for the details.

So here’s the bottom line: if you’re going to issue a shared link you should require a password and/or expire it after a set time. If there’s anything really sensitive in the file set being shared, you had better encrypt it. Yes, it’s a pain for your collaborators but it’s better than having your secret plans for world domination revealed.

Posted in General | Tagged | Leave a comment

Password Silliness Epitomized

Remember how I told you of a sure tip off to an insecure site? Were you looking for an in-the-wild example? Well, here it is. The very apotheosis of a bad password policy. Forget, for a moment, the ridiculous explanation for this policy. How does disabling special characters and essentially making the use of password managers impossible constitute good security policy?

These people deserve all the ridicule that the Internet can provide. Of course, the real cost will come when their database is captured, customer information compromised, and customers start suing. They will, I’m sure, express their surprise and mystification as to how it all happened.

Posted in General | Tagged | Leave a comment

Guessing File Applications in Dired

One of the really great tools in Emacs is the Dired/Dired+ package. Recently, Mickey wrote a nice introduction to using Dired to run shell commands on files; I commented on that here. The other day, by happenstance, I found myself needing to do just that. I wanted to display a series of PDF files from a directory to collect some information. Since I was in Emacs already to collect the data, I used Dired to list the directory and then used 【!】 to invoke the PDF viewer.

Emacs, of course, is pretty smart about things like that and suggested that I use xpdf. That would be precisely the right answer if I was working on one of my Linux machines but this was OS X and I really needed to invoke the open command. So I had to delete the suggestion and type in open for each file. Not really much trouble but later I thought that there was undoubtedly a way to control the suggestions.

There is, of course. After grubbing around in dired.el for a bit, I found the answer. Dired uses an alist to match the default applications to file extensions but it has another—empty by default—alist, dired-guess-shell-alist-user, that it will prepend to the default list if it’s present.

So I added

(setq dired-guess-shell-alist-user      ;quess shell command by file ext
      '(("\\.pdf\\'" "open")
        ("\\.ps\\'" "open")))

to my OS X specific configuration and now I get the proper suggestion when I run a shell command on PDF or PS files. How can you not love Emacs?

Posted in General | Tagged | 3 Comments

Emacs Life

I recently came across this sketchnote from Sacha Chua. I not sure how I missed emacslife.com but I don’t remember reading anything about it before. The site is a wonderful Emacs resource. It’s got links to tons of posts, articles, and videos about Emacs and Org mode.

It’s got tutorials for beginners, links to her Emacs chats, links to a slew of videos on Emacs, and a long section on Org mode and how to use it for managing your work flow and publishing blog posts, talks, and other documents.

Take a look at the landing page to get an idea of the topics the site covers. It’s all done as simple Org files, which are available on Github, so it’s easy to keep up to date and expand. According the sketchnote, Chua is hoping for input from others so if you have a valuable link that’s not listed, drop her a line. And take a look at the Emacs Life site. I think you’ll like it.

Posted in General | Tagged | 1 Comment