The XMPP Client State Transition Diagram I created last December was featured on blog.xmpp.org.
Diagram for XMPP connection
One of the most difficult part when developping a new XMPP client is the connection mechanism workflow. Tim Bielawa has drawn a state transitions diagram that might be very helpful to thousands of developpers worldwide.
Now that’s pretty exciting! I hope some one else may find it useful.
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
Emacs related posts are now being syndicated on Planet Emacsen!
I ran into this issue while installing dblatex (0.2.10) from the most recent MacPorts tree today:
Traceback (most recent call last):
File "/opt/local/bin/dblatex", line 16, in <module>
from dbtexmf.dblatex import dblatex
ImportError: No module named dbtexmf.dblatex
I got past it by exporting PYTHONPATH=/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages, but clearly this was not optimal. I was about to file a bug report about the issue but before I did that I read their new ticket guidelines which requested the full build log be included in the ticket.
In the build log was the solution. I would have missed it had my shell scrollback not been set to unlimited. Nestled a good 182 lines back in my buffer was this little message:
---> Installing python26 @2.6.4_0+darwin
---> Activating python26 @2.6.4_0+darwin
To fully complete your installation and make python 2.6 the default, please run
sudo port install python_select
sudo python_select python26
I did as instructed, and sure enough, dblatex started working! I just wanted to post this on the blog in case anyone else ran into this and missed it like I did.
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.
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.
Today abutcher and I found every way to fail to build VirtualBox OSE from source on OS X. We followed the build instructions on their web site but had some problems. I’ll post a more detailed writeup of what happened and what you need to do to build it later. Until then, here’s a link to download the most recent checkout from svn, built for OS X 10.6 (Snow Leopard). And here’s the SHA256:
dd55dbaabb23e19c16fb78d5b8f41d68bd19a6ad2ef810818b5d7d480da26393
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” }
I wrote a basic GNU Screen tutorial a while back for my work place. I’m posting it here for the unknown masses to enjoy too.
And now I present, Using GNU Screen. (DocBook Source & Makefile)
Andrew and I put together a small Linux 101 tutorial for new CS kids in our department. We collaborated on it using google docs for the outline and then google presentation to make the actual presentation.