» tagged pages
» logout
Emacs
Return to Emacs

Emacsen Blog

(or Cancel)

(Editing anonymously: to be credited for your changes, login or register a new account)

other page actions:

Tags Applied to this Topic

1 person has tagged this page:

Life with the extensible, self-documenting text editor.

Tuesday, January 16, 2007

Twitter from Emacs

Forget TwitterPost.app and Twitterific for your twittering needs — Nic James Ferrier’s hacked up a tool for posting to Twitter from Emacs! Here’s my first use of it.

AFAIK this is the first really cool hack that depends on my JSON parser. Very, very awesome.

Sunday, October 29, 2006

Planet Emacsen

As noted on the EmacsWiki, by mwolson and others, I’ve built an aggregation of Emacs-related blogs at Planet Emacsen. It’s powered by Sam Ruby’s most excellent Planet Venus.

Share and Enjoy!

Any suggestions on feeds to include etc.?

(Cross-posted on my blog.)

Saturday, July 08, 2006

Bloglines

Emacs 4,294,967,254 articles unread

That’s how Bloglines greeted me this morning.

For some reason, I don’t quite believe that there have been 4.3 billion posts to blogs in my Emacs folder in the last 12 hours…

Tuesday, May 30, 2006

Giant Emacs screens in Cambridge, MA

John Sullivan was walking through Harvard Square when he saw a giant Emacs window on video screens:

Giant Emacs *shell* buffer

I think this is the first example of a public computer error featuring Emacs.

Tuesday, May 30, 2006

Introducing json.el

JSON is a lightweight data interchange format based on a subset of JavaScript. You can read all about JSON at json.org.

json.el is a JSON parser and generator for Emacs Lisp, which can produce an Emacs Lisp data structure from a JSON object and vice-versa.

Using it is pretty straightforward; here are some examples.

* (require 'json)
json

JSON’s primitive values are strings, numbers, and the keywords true, false, and null.

* (json-read-from-string "true")
t
* (json-encode t)
"true"
* (json-read-from-string "4.5")
4.5
* (json-read-from-string "\"foo\"")
"foo"

JSON’s compound values are arrays and dictionaries.

* (json-read-from-string "[true, 4.5]")
[t 4.5]
* (json-read-from-string "{\"foo\": true}")
((foo . t))

Notice that we read the JSON array as a lisp vector and the JSON dictionary as an alist. We could just have read the array as a list, and the dictionary as a plist or hashtable. json.el allows for all of these representations. (Also, note that the alist keys are symbols; we could read these as keywords or strings.)

  • dictionary-as-plist:

    * (let ((json-object-type 'plist))
        (json-read-from-string "{\"foo\": true}"))
    (:foo t)
  • key-as-string:
    * (let ((json-key-type 'string))
        (json-read-from-string "{\"foo\": true}"))
    (("foo" . t))
  • dictionary-as-hashtable:
    * (let ((json-object-type 'hash-table))
        (json-read-from-string "{\"foo\": true}"))
    #<hash-table 'equal nil 1/65 0×314f800>
    * (gethash "foo" *)
    t

json.el generally does the right thing when encoding idiomatic lisp data structures:

* (json-encode '(1 2 3))
"[1, 2, 3]"
* (json-encode '(:foo 1 :bar 2 :baz 3))
"{\"foo\":1, \"bar\":2, \"baz\":3}"

Tuesday, May 30, 2006

Emacs: the 100-year editor

Bill Clementson linked to an exceptional rant on programming languages from former Amazon (and current Google) employee Steve Yegge, which is of particular interest for Emacs users. Apparently, Amazon’s customer service system was for many years Emacs-based! You should immediately go and read the whole thing. Here are some of the juicy bits:

When Amazon got its start, we had brilliant engineers… They wrote the Obidos webserver. Obidos made Amazon successful… Obidos was a key cornerstone of Amazon’s initial success…

They all used Emacs, of course. Hell, Eric Benson was one of the authors of XEmacs. All of the greatest engineers in the world use Emacs. The world-changer types… I’m talking about the greatest software developers of our profession, the ones who changed the face of the industry. The James Goslings, the Larry Walls, the Paul Grahams, the Jamie Zawinskis, the Eric Bensons. Real engineers use Emacs. You have to be way smart to use it well, and it makes you incredibly powerful if you can master it. Go look over Paul Nordstrom’s shoulder while he works sometime, if you don’t believe me. It’s a real eye-opener for someone who’s used Visual Blub .NET-like IDEs their whole career.

Emacs is the 100-year editor…

Shel wrote Mailman in Lisp. Emacs-Lisp… Mailman was the Customer Service customer-email processing application for … four, five years? A long time, anyway. It was written in Emacs. Everyone loved it.

People still love it. To this very day, I still have to listen to long stories from our non-technical folks about how much they miss Mailman. I’m not shitting you. Last Christmas I was at an Amazon party, some party I have no idea how I got invited to, filled with business people, all of them much prettier and more charming than me and the folks I work with here in the Furnace, the Boiler Room of Amazon. Four young women found out I was in Customer Service, cornered me, and talked for fifteen minutes about how much they missed Mailman and Emacs, and how Arizona (the JSP replacement we’d spent years developing) still just wasn’t doing it for them.

It was truly surreal. I think they may have spiked the eggnog.

Shel’s a genius. Emacs is a genius. Even non-technical people love Emacs. I’m typing in Emacs right now. I’d never voluntarily type anywhere else. It’s more than just a productivity boost from having great typing shortcuts and text-editing features found nowhere else on the planet. I type 130 to 140 WPM, error-free, in Emacs, when I’m doing free-form text. I’ve timed it, with a typing-test Emacs application I wrote. But it’s more than that.

Emacs has the Quality Without a Name.

Seriously. Go read the whole thing.

Update: You should also check out his post Effective Emacs: 10 Specific Ways to Improve Your Productivity With Emacs. Here are the main points:

  1. Swap Caps-Lock and Control
  2. Invoke M-x without the Alt key
  3. Prefer backward-kill-word over Backspace
  4. Use incremental search for Navigation
  5. Use Temp BuffersMaster the buffer and window commands
  6. Lose the UI
  7. Learn the most important help functions
  8. Master Emacs’s regular expressions
  9. Master the fine-grained text manipulation commands

Tuesday, May 30, 2006

GTD: Simple to-do lists with Emacs’ outline-mode

Here’s a really simple technique for managing short-term to-do lists in Emacs with outline-mode.

I start the day by creating a new to-do flie in outline-mode. I use different outline levels to keep tasks organized by area. Since I have font-lock-mode enabled by default, all of my tasks end up in various colors. When I complete a task, I simply prepend a space to that line in the file. As Emacs no longer considers the line an outline heading, it loses its highlighting, thus marking the task done.

For instance, here’s what today’s to-do list looked like at some point this afternoon:

~/TODO

There are certainly more featureful ways to manage your to-do items, but this is an exceptionally simple method for handling more ad-hoc tasks that come up during the day’s Emacsing.

Tuesday, May 30, 2006

Updated backpack.el: Now with multiple-lists-per-page support!

Several months ago, the folks over at 37signals added multiple-lists-per-page support to Backpack, their simple personal organization tool, but didn’t update the (otherwise quite excellent) Backpack API documentation, so I didn’t update backpack.el.

Fortunately, a resourceful developer posted his own documentation for the new and updated API methods to the Backpack forum. I’ve updated backpack.el accordingly: backpack-api/page/items/list and backpack-api/page/items/add now each take an optional list-id argument. In addition, there are four new API methods: backpack-api/page/lists/add, backpack-api/page/lists/update, backpack-api/page/lists/list, and backpack-api/page/lists/destroy.

(Cross-posted to my blog.)

Tuesday, May 30, 2006

MozRepl - rapid Javascript development with Emacs and Mozilla

MozRepl enables you to directly evaluate JS code written in Emacs in Mozilla — without any reloading

From the README:

This extension lets you write Javascript code in Emacs and have it evaluated in a running Mozilla immediately. You will be able to:

  • Send lines of code from an interaction buffer.
  • Send regions of code from Javascript sources.
  • Send the block the cursor is in (a function or other brace-delimited area) from Javascript sources.

via the XUL Weblog.

Tuesday, May 30, 2006

Upgraded to WordPress 2

The upgrade was quite painless, but please bear with me for a bit while I re-theme…

Update: I’ve got a preliminary new theme in place. What do you think?

Tuesday, May 30, 2006

In the beginning, there was Emacs

David Kastrup, on whether or not Emacs Lisp is "archaic":

ἡ ἀρχῆ in Greek means “the beginning”. John 1 starts of with “ἐν ἀρχῇ ἦν ὁ λόγος”: in the beginning, there was the word.

Now of course we all know that Emacs was there before Word, but this might have escaped John’s notice.

Tuesday, May 30, 2006

ERC is now bundled with Emacs!

Here’s the announcement. Congratulations to all involved.

ERC is a fantastic Emacs IRC client.

Tuesday, May 30, 2006

Eric Marsden’s EMACSulation

Some time ago (in 1998), Eric Marsden wrote a series of articles on Emacs for Linux Gazette. While some of the material is dated, there’s a lot of good stuff in there. Here they are:

Username:
Password:
(or Cancel)