The Emacs/Vi Holy War

I saw this tweet and it got me thinking.

The tweet is, of course, snark but it raises an interesting question. Does anyone still care about the holiest of holy wars? This tweet

suggests that some of us do but my sense is that Emacsers and Vimers are pretty much united against all the newcomers as exemplified by this tweet

I always get in trouble when I bring this up but I think it’s true that serious developers overwhelmingly prefer either Emacs or Vim. Of course there are exceptions. There are, I’m sure, thousands of excellent developers that use something else but mostly the great developers use Emacs or Vim.

The choice between the two depends on the developer’s outlook. If you want the fastest, most composable editor and are focused on simply editing text, you will probably prefer Vim. If, on the other hand, you want an environment that subsumes editing among other things, you will probably prefer Emacs.

My point, though, is that Emacsers and Vimers have pretty much moved from fighting each other to shaking their heads in disbelief about those engineers who are using one of those other editors. So perhaps the holy war isn’t over, it’s just move to another domain.

Posted in General | Tagged , | 2 Comments

Why Literate Programming: One Man’s Answer

Shane Cellos has a nice post on why literate programming makes sense. He tells the story of how he and an equally matched colleague worked on a relatively simple project. It was, he says, an ideal situation. One colleague with a similar technical background. What could go wrong?

You can read Celis’ post to see what went wrong but the TL;DR is that the code quickly diverged from the spec and only one of the researchers understood it. Celis suggests that using literate programming to document what the code is trying to do would have made the collaboration easier.

I’ve been coding so long that presenting code in its natural order seems like the right way to me so I don’t feel the need to document the code in an order different from what the compiler sees. That said, I think it makes a lot of sense to write a document explaining the code in which the actual code is embedded in the document.

Of course, this is ideally suited for Org mode, which is what I would use, but others may find another method better. Regardless, we should all consider how literate programming can enhance our workflow. See Howard Abrams posts on Literate Devops for a fine example of this.

Posted in General | Tagged , , | Leave a comment

Emacs Gifs

I just came across a twitter feed that some of my fellow Emacsers may find useful. Each tweet on the Emacs Gifs feed is a small animated gif that illustrates a feature of Emacs. Some examples are sorting lines, searching with swiper, Dired write mode, iedit, and others.

My problem with this sort of thing is that I find it really difficult to follow animations without an audio track. That’s just me, of course, and I know many of you like and learn from things like this. If you’re one of those people, you should definitely check out the feed. The above link will take you to the feed whether or not you are on twitter. If you are on twitter and like what you see, you can follow the feed and get regular updates. If you aren’t on twitter, you can check the website at your leisure and get the same goodness.

UPDATE [2016-07-26 Tue]: Gigs → Gifs

Posted in General | Tagged | Leave a comment

Trackers

This is why you should be using Ghostery or something similar:

Posted in General | Tagged | Leave a comment

Guile

I haven’t written much about Scheme lately because I wasn’t able to get Guile to compile on my Macs. Today I saw this nice video of Andy Wingo talking about building programs with Scheme and Guile. He discussed the current Guile system and some of his plans for the future. It’s a bit less than 40 minutes and worth a watch so if you have any interest in Scheme, I recommend it.

Watching the video inspired me to try compiling Guile again so I downloaded the latest stable source and gave it a go. Of course there were a bunch of GNU libraries that weren’t on my OS X system so I had to hunt them up and get them installed but that wasn’t much trouble. After that, the configure completed and I was able to compile and install Guile. I brought it up to make sure it was working but I haven’t done anything with it yet. I’ll write about it a bit more when I’ve had time to play with it.

If you’re on a Mac and gave up on Guile because you couldn’t get it to compile, now’s a good time to try it again.

Posted in General | Tagged | Leave a comment

An Idea Whose Time Has Come

Posted in General | Tagged | 1 Comment

Overturning Section 1201

Bunnie Huang, Matt Green, and the EFF are suing the U.S. Government over §1201 of the Digital Millennium Copyright Act. That’s the part of the act that prohibits bypassing software restrictions on copyrighted material. The original intent was to prevent music and movie piracy but, of course, the act has been abused to prevent such things as third party printer toner cartridges and even coffee capsules for Keurig coffee machines.

Huang and Green are concerned about the effect §1201 has on security research. The act makes it very difficult to do good faith security reviews of software and this has disastrous consequences for the public because flaws go undiscovered except by criminals who seek to abuse them.

We can only hope that the plaintiffs prevail but I’m not very sanguine about their chances. The industry is ferocious in their support of the law and will fight any attempt to chip away at it.

Both Green and Huang have posted remarks about the suit on their blogs. Green’s, especially, is a detailed rationale for the suit and explains what they hope to accomplish.

Posted in General | Tagged | Leave a comment

Emacs Bullet Points

Bryan Berry has posted the notes from a presentation on Emacs that he gave to some of his colleagues. The notes are basically a set of bullet points on Berry’s thoughts about Emacs.

They’re definitely worth reading if only to get another developer’s perspective. I’m inclined to disagree with his assertion that Emacs is probably not better than your current editor because, among other things, what does that even mean? I consider “best editor” to mean the one that enables you to be the most efficient and I know from experience that Emacs makes me more efficient. Others may have a different definition or find that some other editor makes them more efficient.

Making you more efficient is one of the things that Berry says Emacs does. I agree completely that Emacs has a high learning curve but that the ROI on the time spent is quite high. Another of his assertions with which I agree is that Emacs has been enjoying a Renaissance of late and has gotten dramatically better in the last 5 years.

You probably won’t learn anything you didn’t already know—unless you’re not a user or a rank beginner—but I found them interesting and worth the short amount of time to read the 3 pages.

Posted in General | Tagged | Leave a comment

That’s Not a Password; THIS is a Password

Via Karl Voit:

Posted in General | Tagged | Leave a comment

Reveal.js and Org Mode

Mike Zamansky is back from his trip and has a new video up. It’s on making presentations with reveal.js and Org mode. This is a nice introduction to reveal.js and shows how easy it is to make a nice looking1 presentations simply by writing a Org file.

Each top-level heading is a new slide and you can have subslides by using subheadings. You can add code, tables, or images in the usual way and they get added to your slides just as you’d expect. There are also a number of themes and special effects to choose from. Watch the video to see the details.

One of the things I didn’t like about reveal.js was that it could be a bit fiddly to get the environment set up but Zamansky shows you how to use the CDN version that gets dynamically loaded from the cloud.

The nice thing about reveal.js is that it’s easy to use and doesn’t require remembering a lot of details so it’s perfect if, like me, you don’t make a lot of presentations and don’t want to spend a lot of time learning a more complicated system.

Footnotes:

1

At least if you don’t mind PowerPoint-like presentations.

Posted in General | Tagged , | Leave a comment