Archive for category Programming

Macports updates their Erlang version, update your load-path’s

Posted by on Wednesday, 3 February, 2010

I’ve been working on my XMPP server pet project recently, and the need for a good Erlang XML parser has finally struck. I decided to go with Erlsom. It’s in MacPorts, so from there I installed it. Now, since I don’t update my port tree frequently I get delightful surprises from time to time. This time installing Erlsom triggered an update of Erlang, to the latest version!

Short story shorter, the update changes the path to the erlang-mode.el file so before you can M-x erlang-mode again you’ll have you fix your Emacs load-path to register the new location. (See my older post on how to initially set up Erlang and Emacs from MacPorts from scratch)

The new load commands should be:

(setq load-path (cons  "/opt/local/lib/erlang/lib/tools-2.6.5/emacs/" load-path))
(setq erlang-root-dir "/opt/local/lib/erlang")
(setq exec-path (cons "/opt/local/bin" exec-path))
(require 'erlang-start)

It just requires changing the tools-x.x.x to 2.6.5.

p.s. about erlang-mode

Macports, and Erlang: Setting up Emacs and your $MANPATH

Posted by on Wednesday, 2 December, 2009

You may find this helpful if you should find yourself using Erlang on OS X and you’ve installed it using Macports. After a default installation you’ll need to manually configure your .emacs file for erlang-mode and set your $MANPATH variable correctly, here’s how.

If you’ve installed Erlang with Macports then you may have noticed that when you edit .erl files you’re not entering into erlang-mode, nor is it available to enter into. Here’s how I got erlang-mode working on my system.

Macports will install Erlang into /opt/local/lib/erlang by default. The paths to put in your .emacs file provided in the erlang-mode documentation only need to be tweaked a slight bit to function properly. Here’s what I put in mine:

(setq load-path (cons  "/opt/local/lib/erlang/lib/tools-2.6.4/emacs/" load-path))
(setq erlang-root-dir "/opt/local/lib/erlang")
(setq exec-path (cons "/opt/local/bin" exec-path))
(require 'erlang-start)

Note that you may require setting “tools-2.6.4″ to something else if Macports has upgraded it’s distribution of Erlang.

Setting up your $MANPATH variable is fairly simple as well. Just put the string “/opt/local/lib/erlang/man” in a file called ‘erlang’ in /etc/manpaths.d/ and make sure it ends with an empty line. Test this by opening a new terminal and running: echo $MANPATH | grep erlang. If it doesn’t come back empty then you’ve done it right.

Emacs Hacking, reverse other buffer

Posted by on Sunday, 18 October, 2009

I started reading Writing GNU Emacs Extensions by Bob Glickstein. The first real meaty example you work through in it is making an ‘other-buffer’ like key command that works in reverse. So here I present to the internet, my version of previous-window.

(defun previous-window ()
  "As other-buffer, except in the other-direction"
  (interactive)
  (other-window -1))
 
(global-set-key "\C-c\o" 'previous-window)

Put in your .emacs file and activate with C-c o when you have multiple frames open at once.

A haiku for modulus

Posted by on Friday, 4 September, 2009

I needed to know
Is this Even or odd, hmm?
I used modulus

This is the simplest way to quickly find out if an integer is even or odd. I’m posting this because I don’t recall my programming lab TAs or professors ever mentioning this simple way to figure that out.

May it save you many lines of code and time!

Update: Suppose I should show an exampe

if ( (your-number % 2) == 0) { echo “that’s an even number” }