So much for good intentions. I get myself all geared up to
the problem I need to solve today? Well, I want to find out about how emacs networking works.
So first, I need a simple server to play with. Now normally when I think server I automatically think Apache but this time I want something a bit more basic. And if I was thinking enterprise1 I might reach for C++/ACE. However, for something basic, Perl is ideal.
I’ve just upgraded to Ubuntu 9.04 on this box and Perl is unused so let’s see if it has what I need.
06.52 Ubuntu finishes booting
I waste a few minutes on the internet.
06.57 I start Emacs
and remind myself just how gorgeous emacs-23 looks.
06.59 I check for the Net::Server package
$ perldoc Net::Server
You need to install the perl-doc package to use this program.
$ sudo apt-get install perl-doc
$ perldoc Net::Server
No documentation found for "Net::Server".
It is not installed. I could install it using apt (it is called libnet-server-perl) but I’ve got in the habit of using Perl’s CPAN module which provides package management facilities too. The advantage is that it is somewhat consistent across platforms.
$ sudo perl -MCPAN -e shell cpan[1]> install YAML cpan[2]> install CPAN cpan[3]> reload CPAN cpan[4]> install Bundle::CPAN
The CPAN bundle installs quite a bit so I go for breakfast.
07.15 Back from breakfast
cpan[5]> install Net::Server
I took this code pretty much straight from perldoc Net::Server.
#!/usr/bin/perl use strict; use warnings; package SimpleServer; use base qw(Net::Server); sub process_request { while (<STDIN>) { s/\r?\n$//; print STDERR "Received [$_]\n"; last if /quit/i; } } SimpleServer->run(port => 8080);
I tested it using telnet localhost 8080 to confirm it does what I need.
07.20 All done
Presumably Python and Ruby have similar incantations that will get a server up and running quickly.
And unfortunately at this point I have to go to work. But later on, I can begin experimenting with emacs networking.
1. i.e. some thing that grows humongous over a period of two years and then no-one wants to work with it anymore.