Spacemacs

There’s been a lot of buzz lately regarding Spacemacs. Probably the best way of describing it is as an Emacs environment that brings together VIM key bindings, an attractive UI, and a powerful customization capability. Sebastian Wiesner has a nice post on Why Spacemacs that describes the system and explains its advantages.

The first thing you notice is how beautiful the UI is, especially the mode line. The beauty is more than skin deep, though, because the UI, as Wiesner says, puts the user first. That starts with the VIM bindings, which given their composability, makes them very efficient and arguably superior to the standard Emacs bindings. Wiesner discounts the importance of those bindings but unless you’re coming from VIM, the modal editing experience, let alone relearning the key bindings, is going to be a high hurdle that most probably won’t want to deal with.

To me, the most interesting part of Spacemacs is its concept of layers. The idea is that instead of configuring individual packages, groups of functionality are enabled and configured as a whole. A layer may involve several packages so you can think of them as capabilities that can be configured without having to worry about the details. Sometimes, you need to worry about the details and want to tweak a layer’s behavior to suit your needs—it’s Emacs, after all–and the layer functionality provides this fine control when you need it. Of course, you can define your own layers in addition to the ones that come predefined with Spacemacs.

I come from decades of VIM use but when I started using Emacs, I didn’t feel the need to drag VIM along with me. I never, even in the beginning, used Vile or Evil, and I’ve been perfectly happy with the standard Emacs bindings. Still, if you miss modal editing and the VIM bindings you should definitely check out Spacemacs. Wiesner’s post is a good place to start

Posted in General | Tagged | 2 Comments

Presentations With Org Mode

Rob Rohan, whose work I’ve mentioned before, has posted a nice video about a bit of presentation software that he built. The software, bestowed, takes a normal Org mode outline and turns it into an HTML-based presentation. It does this with some Javascript and a CSS file, which are invoked by editing the Org mode headers. Nothing in Emacs or Org has to be changed for added to. The Org file is simply exported to HTML as usual.

Org has lots of ways to generate presentations and many of them have more capabilities than bestowed but if you’re looking for something quick and easy that will work, after adding a couple of headers, with Org files that weren’t written with it in mind, bestowed may be just what you need. If you’ve got a presentation in half an hour and would like to turn your Org notes into the slides for it, bestowed is perfect. There’s no export to PDF, so you’ll have to show the presentation in a browser.

The best way to understand the system is to watch the video and look at org file from which the example in the video was generated. The video is only 6 minutes 17 seconds so it’s easy to find time to watch it.

Posted in General | Tagged , | 1 Comment

Clocking In and Out

Sacha pointed me to this video by Mr. Swathe on logging the time spent on various tasks by clocking in and out with Org mode. The video is pretty elementary but it showed me enough to get going. I’ve tried to use clocking before but couldn’t get it to work. That’s because when I first started using Org, I didn’t know about the first rule for using Org and copied someone else’s configuration. Once I stripped out all that configuration from my init.el, it worked fine for me.

I don’t really have a need to track projects but readers who have been around for a while know I love to keep records so I decided to track how long it takes me to write each blog post. Most of you, I’m sure, have better applications and clocking really makes tracking your time easy. Watch the video and take a look at the manual to get going.

Posted in General | Tagged , | Leave a comment

We Need More of This

I love this. We definitely need more of it. My only suggestion is to make it longer. Making these busy bodies suffer is a moral imperative.

Posted in General | Tagged , | Leave a comment

Bling for Your Org Files

If you like bling on your desktop, Robert over at thraxys has some suggestions for prettying up your Org files. The first involves replacing the heading stars with various types of UTF-8 bullets. He recommends ◉, ◎, ⚫, ○, ►, and ◇ but there are other possibilities. These changes require the org-bullets package.

His second suggestion is to add UTF-8 glyphs to the TODO keywords. Take a look at his post for some suggestions. This is easy to configure with a stock Org mode installation.

I prefer a more austere presentation for my Org files but lots of people feel otherwise. If you’re one of those people, head on over and take a look at Robert’s post.

Posted in General | Tagged , | 1 Comment

The Cost of Collaboration

Regular readers know that Irreal has disdain for open plan offices and those who perpetrate them on their hapless employees but, somehow, never on themselves. These office plans are always justified on the grounds of “increased collaboration” but there’s a nasty, suspicious corner of Irreal’s soul that suspects it’s really all about saving money.

People who actually do creative work that requires concentration have always known that these plans are a disaster and very destructive of productivity. Now the The Economist is reporting what sensible people have understood all along: the cost of the increased collaboration that these plans bring exceeds their benefits.

As the economist says, “Oddly, the cult of collaboration has reached its apogee in the very arena where the value of uninterrupted concentration is at its height: knowledge work.” That would be our work spaces.

The good news is that a backlash is setting in. There’s an increasing body of research showing that, as Peter Drucker argues, you can do real work or you can go to meetings but you can’t do both. If you put workers in a noisy, disruptive environment, if you drag them into an endless series of meetings, the “deep work” that is the raison d’être of knowledge workers becomes impossible.

Part of the problem, the Economist says, is that while it’s easy for management to measure collaboration, it’s not so easy to measure the benefits of deep work. And, of course, managers gotta manage so we get days filled with meetings and memos. It’s a rare manager with the wisdom to give his workers the freedom to do their work unencumbered with distractions.

It’s a good article and well worth the five minutes of your time that it will take to read it.

Posted in General | Tagged | 1 Comment

HUH?!?

Remote SSH access with a hard-coded password? In a security device? Today? Who does this?

UPDATE: The answer, it seems, is just about everyone.

Posted in General | Tagged | Leave a comment

Is Object Oriented Programming Bad?

One of our community’s favorite arguments, right after Vim versus Emacs and static versus dynamic typing, is whether object oriented programming is boon or bane. Like those other arguments, there is more often heat than light in the discussions.

Brian Will has an excellent video and associated blog post that examines the question in a reasonable way and comes to a conclusion. Of course, some people—once they hear that conclusion, whatever it is—will immediately conclude that Will is a lunatic and disregard everything he says without actually considering his argument. For that reason, I’m tempted not to say what that conclusion is but Will is up front with his verdict by naming the video Object Oriented Programming is Bad and his blog post Object Oriented Programming: A Disaster Story.

But why does Will reach that judgment? OO, he says, is an attempt to manage shared state. It does that by encapsulating the state in objects and accessing it only through messages to the objects. In other words, what would otherwise be global variables are hidden away in objects and managed through the call graph.

The problem is that when you take this idea seriously you end up not with a graph of objects but with a strict hierarchy of objects. That would be okay but when you have a non-trivial amount of state it turns out to be impractical keep state manipulation in the same hierarchy so programmers end up passing around references to the state obviating the point of encapsulating it in objects.

Controlling state is the right end, Will says, but object oriented programming is the wrong solution. The right answer, he says, is to minimize state by using functional programming techniques.

The foregoing is just a précis of Will’s argument, which is a bit more nuanced, so you should definitely watch the video (it’s about 45 minutes) or at least read the blog post if you have any interest in the subject matter. When you do, you’ll discover that Will doesn’t dismiss every aspect of OO and that objects can be useful in some circumstances. As I said, you should watch the video.

Posted in Programming | 2 Comments

A Sad Security Prediction

Those of us who care about security will find this sad but in our hearts we know it’s true:

Posted in General | Tagged | Leave a comment

Xwidget Branch Merged Into Emacs 25.1

The XWidget branch has been merged into Emacs 25.1. One very important consequence of that is that it should be possible to embed webkit into Emacs. Perhaps we’re finally getting closer to the dream of a browser inside Emacs1. At least for me, there wouldn’t be much need to leave Emacs if that happened.

UPDATE: Here’s a post with a bit more on what this means.

Footnotes:

1

Yes, I know about eww.

Posted in General | Tagged | 1 Comment