Oct 2007

A regular expression IDE for Emacs

I've started work on a new mode for Emacs, which intends to be something like an "IDE" for regular expressions. There are similar tools out there, such as Reggy for OS X and The Regex Coach for Windows. But the former doesn't show me subgroup matches, and the latter costs money and won't run on OS X. Which made me wonder, wouldn't this be easy to do in Emacs? Three hours later says yes. Read More...
|

Script of the week: sizes

For the next few months, I will have a "script of the week" each week: just some tiny little scripts I've developed over the years that I happen to find particularly useful.

Today's is a shell script called sizes. It's a fairly simplistic interface to the du commands which just shows you all files and directories in the current directory that are larger than one megabyte. Read More...
|

The groovy thing about Groovy

One of my favorite languages this year is Groovy, a scripting lanugage for the Java VM. It has a nice, clean syntax, in combination with some very powerful ideas, like it's brand of closures. It can be close enough to Java as to be nearly indistinguishable -- which is good, if you're selling it to Java programmers; and close enough to Python that it seems like a first cousin.... Read More...
|

Life and times of a TCP packet

Have you ever wondered how data reaches your computer from all over the world as you browse the Internet? You may have heard of TCP/IP, but what exactly is it doing to reach that single Web server over in France, all the way from the United States? How does the information reach you?

Today's article examines how a single connection works, from my computer on the island of Grenada to another computer sitting in southern France — in this case, the website of my favorite soap company, Marius Fabre. Read More...
|

Get Lisp running on OS X (easy version!)

A few days ago I posted instructions for getting a freeware based Common Lisp installation running on your Mac. I have since discovered a better alternative: just install LispWorks Personal Edition, a free environment with a superb set of debugging and profiling tools. Note that it does have the restriction that it will only run for five hours at a time. Once you hit the four hour mark, it gives you a warning, after which you should shutdown and restart the environment. But really, if you’re Lisping for more than four hours every day, that’s great news.

The other option is Lisp in a Box, which offers a completely self-contained freeware Lisp environment that’s ready to download and run on your Mac.

Since the Lisp in a Box site has gotten a little stale with regard to OS X, I’ve created a new package based on Aquamacs, which I call Ready Lisp. The advantage to this package is that it downloads as a single Application bundle. You just drag-and-drop it into your /Applications directory, double-click and go! You’ll have all of the following tools immediately at your disposal:

  • Aquamacs 1.2a
  • SBCL 1.0.10
  • SLIME (CVS version 2007-09-27)

But the nicest part for those new to Emacs and Lisp is that everything is pre-configured and setup for you. Once you double-click the packaged application, you will find yourself at a REPL where you can start right away:

CL-USER> (format nil "Hello, world!")
"Hello, world!"
CL-USER>

The disk image is 44 Mb and can be downloaded from my Lisp repository over FTP. Also, please note that this package is for Intel Macs only. If you need an easy Lisp to run on the PowerPC architecture, I suggested you visit the Lisp in a Box site and download one of their packages based on OpenMCL.

Happy Lisping!

|

Common Lisp docs for DEVONthink

NOTE: I have removed the pre-built tarball of these links form my Lisp repository due to possible copyright concerns. I recommend that if you want to collect these documents into one place (for searching in programs like DEVONthink), that you use the tools available in such programs to download these resources from the Web:

|

Common Lisp on Mac OS X

Lately I have been having a ball doing Common Lisp programming on my MacBook Pro. But as with all great starts, this was not without its pitfalls. After many frustrating hours, and questions asked on the #lisp IRC channel, I've come to realize that perhaps others may benefit from treading a path already trodden.
Read More...
|

Serving up Mercurial using mod_python

The following article resulted from several hours of battling with SELinux and Apache, attempting to find some way of serving up my Mercurial repository (now at http://hg.newartisans.com) over HTTP. Now I'm happy to bring you the fruits of that research, even though I'm still getting errors from Mercurial when trying to push (I'm using ssh at the moment). More to come on that front later... Read More...
|

Intall BootCamp with multiple partitions

I like having two partitions in Mac OS X: one for the operating system and Applications, another for my user data. Since my user data is changing constantly -- and my system far less so -- this avoids lots of needless fragmentation and clutter during long periods of extended use.

However, using BootCamp with this setup proved a challenge. The utility that comes from Apple for installing BootCamp will only let you have two partitions total: one for BootCamp, and one for OS X. But after a little bit of playing around with Disk Utility, I discovered a set of steps that will allow you to have as many partitions as you like in addition to BootCamp. Read More...
|

Using Archiveopteryx on the Mac

I recently discovered an IMAP mail storage server called Archiveopteryx, which is able to store virtually unlimited amounts of e-mail in a PostgreSQL database. I can't say enough good things about it. My article describes how to get up and running with Archiveopteryx on a Mac OS X or a Linux machine. I use it for keeping my private mail on my MacBook Pro laptop. Read More...
|

Applescript and UTF-8 arguments

Today's brief article describes how to pass UTF-8 arguments to an Applescript from the command-line. If you've ever tried saying "olé" to osascript before, you'll know what I mean. Read More...
|
© 2008 John Wiegley