Chicago Intro to Lisp Workshop Attendee Stats

May 31st, 2008

[UPDATED 6/3/2008: I fixed a duplicate, found some more registration forms, and updated the stats.]

We’re blogging live from the Chicago Lisp User Group’s Intro to Lisp Workshop, and (now that my presentation is done – whew!) here are some statistics on the attendees, based on our ghetto paper signin forms.

Total People: 41. Only 5 were involved in planning or presenting, and only 10 had ever been to one of our meetings.

Total Registration Forms: 25 31. This is the baseline for all of the statistics below (except How Did You Hear?) and doesn’t include Chicago Lisp members. 22 of them wanted to receive email announcements of future meetings.

Geographic Distribution:

Within Chicago – 68%
Illinois (outside Chicago) – 13%
Out of State – 19% (Madison and LaCrosse, Wisconsin, Omaha, Nebraska, and Columbus, Ohio)
People driving over 100 miles – 7
Furthest Travelers: Blaine and Scott from Omaha – 468 miles!

% Gmail Addresses: 45%

Primary Languages (% of registrants) – people could specify more than one

Java – 48%
Ruby – 39%
Python – 29%
C++ – 26%
C – 26%
Javascript – 16%
Perl – 10%
C# – 10%
Lisp – 10%
Obj-C – 6%
PHP – 6%
Bash – 3%
Erlang – 3%
VB – 3%
Fortran – 3%
Groovy – 3%
SmallTalk – 3%

Primary Operating System (% of registrants) – again, people could specify more than one

Linux – 71%
OSX – 48%
Windows – 13%
Solaris – 3%

How Did You Hear About The Workshop? (% of those who answered) – one answer, but I forgot to write it on the form so only 14 answered it.

Chicago Linux User Group – 29%
Chicago Python User Group – 14%
Chicago Ruby User Group – 29%
Other – 36%

I’ll put up Here’s an HTML version of my slideshow “Lisp Basics and Idioms” soon. I’m not sure what to do about the Macros presentation since it’s more in depth and was very interactive on screen (and we didn’t screen capture it). I video recorded the presentations but it’ll take me a while to get them off my camcorder and edit and process them. Keep your eyes here for more goodness.

Installing SBCL, Emacs, and SLIME on Windows XP

May 30th, 2008

My recent install guide for CLISP, Emacs, and SLIME on Windows XP was a big hit – it has had about 2000 hits and 5 sincere thanks in the comments (it even got praise from a troll!). In it I promised a similar guide for SBCL, and here it is.

The nice thing is that swapping out Common Lisp implementations within an Emacs/SLIME setup is easy, so maybe 3/4 of this guide is identical to the CLISP guide. I’ll put a disclaimer at the beginning of each section saying whether there’s anything new or whether you can skip it.

Read the rest of this entry »

Recap of 5/16/2008 Chicago Lisp Meeting

May 27th, 2008

My math joke in the recap of the previous meeting turned out to be too conservative: this month, we had 22 people, double the turnout from last month! The meeting was held at the offices of CashNetUSA, and they were generous enough to provide pizza and drinks (for both drivers and transit riders ;-) . There was a wireless transmitter but no connection to the internet, so Bruce B. routed us all through an ad-hoc network off his cellular wireless card. Next month’s meeting will be held there as well, and they promise to have a proper internet connection setup then!

<thankstosponsors>

CashNetUSA

CashNetUSA is looking for Ruby developers, or more accurately, great developers who know Ruby. They’re hiring at all levels of experience – check out their job listings. Thanks, CashNetUSA!

</thankstosponsors>

Programming Erlang: Software for a Concurrent World

John Q. donated a copy of Programming Erlang to our first book raffle, which was won by Craig L. If anyone has a book they’d like to donate, please contact me so I put it in announcements for future meetings.

Intro to Lisp Workshop

There was some more discussion about the details of the Intro to Lisp Workshop on May 31. The most noteworthy decisions were:

  • standardize on SBCL, SLIME, Emacs
  • have a set of milestone files that people who can’t keep up with the presentations can download to get themselves caught up
  • recommended screen capture softweare: xvdicap, vnc2swf

Future Meetings

We also planned presentation topics for future meetings:

  • June: Kurt S. will present on implementing interpreters, and Steve G.’s presentation on Lisp languages on the JVM got bumped to June in the interest of time at May’s meeting
  • July: Andrew W. will demo Open Genera, the operating system from Symbolics’ Lisp machines
  • future: John Q. knows a guy who could presnet on programming language topics, I will (someday) present on Weblocks

Read the rest of this entry »

Setting Up and Using Emacs InfoMode

May 25th, 2008

Emacs has an ancient (predating hypertext), simple, powerful documentation program called Info. It’s very difficult to find info about it online (try searching for “Info”), so here’s my beginner’s guide.

Info is an output format for the Texinfo typesetting syntax. Texinfo is used for writing documentation that can be output in multiple print and digital formats and is the official documentation format of the GNU project. Info files are strongly associated with Emacs – Emacs is the primary reader for Info files, but there is also a standalone reader. Manuals are organized into a tree of nodes, with a variety of ways to navigate between those nodes.

Info files can technically be written by hand, but it is much more common for them to be compiled from Texinfo. Many Linux/Unix distros come bundled with the TeX toolchain necessary to compile Texinfo, but Windows does not. The TeX/LaTex/Texinfo on Windows post is coming in the near future. For now, stick to precompiled .info files or go dive into TeX yourself.

Emacs ships with several Info manuals – they’re in the emacs/info folder. You can also create your own Info directory, add new manuals to the directory, and create your own manuals. This guide will walk you through the steps needed to get Emacs to find your info directory, add manuals in your directory to the main directory list, and use Info from within Emacs.

[NOTE: This guide assumes you're following the directory conventions I laid out in my previous post Installing CLISP, Emacs, and SLIME on Windows XP. It also gives you the baseline level of familiarity with Emacs to follow along here.]

Read the rest of this entry »

Beautiful Guts – Dissecting a First Generation iPod Nano

May 23rd, 2008

I’ve recently come into possession of a damaged, non-functioning iPod Nano (Public Service Announcement: be careful how you hold your iPod when operating a urinal) that gave its body to science. After cleaning and drying it, I decided to see what was inside. I never took things apart as a kid because a) I took good care of things so they didn’t break, and b) if I couldn’t get it working again, I wouldn’t get a new one, so I didn’t risk it. First time for everything!

So here’s my photo documentary about taking my iPod Nano apart. I have no great electrical skills so I didn’t bother trying to fix it; I just wanted to see how it was put together and what was inside.

[DISCLAIMER: The thumbnails were automatically generated by WordPress and therefore not always centered or cropped the way I would like. Click on each image for larger and more complete images.]

First, a front and back view of the iPod:

Front and back view

Read the rest of this entry »

Installing CLISP, Emacs, and SLIME on Windows XP

May 16th, 2008

Until this week, I had been putting off setting up a CL/Emacs/SLIME environment from scratch ever since I had trouble getting ASDF to work with Lispbox. Every time I tried, I ran into some will-sapping problem like needing to find a good Windows program for .tar.gz files, or finding the command line flags to get CLISP to run right, or figuring out the best way to setup a folder structure that matches the Unix folders used by most Lispers. Every time I fixed one problem, I ran into another. For someone out there trying to do a setup like this, there are lots of good resources, but they are either incomplete or outdated.

For instance, the Common Lisp Cookbook has a very thorough page on Setting Up an IDE with Emacs on Windows or Max OSX, but as far as I can tell, it’s from 2004 or earlier because it doesn’t mention SBCL or SLIME, two of the most popular pieces of CL development software today. Or when you run into a specific problem, it’s usually not too hard to find an answer, but it might not match the setup you’re using. That’s why I had to quit using Lispbox, because no one had any clue how it was configured, especially not on Windows. n00bs didn’t know the answers and the wizards had a traditional setup.

Here are some of the variables that contribute to the combinatorial explosion of configuration, in order or pain caused:

  • Operating system: Linux (many flavors), Mac, Windows, Cygwin
  • CL implementation: most common are SBCL, CMUCL, Allegro, LispWorks, CLISP
  • CL implementation version (I ran into a problem here)
  • SLIME version (stable 2.0 release or CVS snapshot)
  • Emacs version (I didn’t run across any problems with this)
  • I almost forgot, now there’s Cusp/Eclipse if you don’t want to use Emacs/SLIME, but right now Cusp is only tested on SBCL.

Maybe someday someone will try out all of those combinations and report, but for today, I did exactly one: Windows XP, CLISP 2.44, SLIME CVS, and Emacs 22.2 Why CLISP? After reading lots of internet, I came to the conclusion that (aside from the commercial CLs), CLISP is the best implementation for Windows users. The knocks against it are that it’s slow because it’s byte-code compiled, it doesn’t have threads, and on some points, it’s ideologically different from CL and other implementations.

Well, the performance isn’t a big concern for me (plus as I went to press, 2.45 was released with experimental JIT compilation), the threads also aren’t a big deal right now, and I think the differences will help me be aware of the considerations for writing portable code. Also regarding the SBCL windows port, it’s still considered experimental (currently v1.013 for Windows) but people are saying it’s stable and everything works except the threads. There’s even an msi installer for the Windows version. One of my next projects will be to dive into the SBCL documentation and mailing lists to get a better feel for it.

As far as the philosophy behind this (and future) setup guides, I want them to be a) thorough and b) instructive. Instructive? If you just want to take my word for everything, that’s fine, but I want you to know where I got my info from, so I’ve tried to include links to references for each step. On to the setup guide!

Read the rest of this entry »

Ripping And Encoding Streaming RM, or How I Defeated RealPlayer

May 13th, 2008

I’ve known (and written about) MIT’s OpenCourseWare project for a while but never gone through any of the courses. I’ve found the first one I want to work through on Data Wrangling’s outstanding Hidden Video Courses in Math, Science, and Engineering page. One of the courses in the Mathematics header is Godel, Escher, Bach: A Mental Space Odyssey, and I decided to bite.

Godel, Escher, Bach: An Eternal Golden Braid

The book Godel, Escher, Bach: An Eternal Golden Braid, is widely praised as being an important, mind-bending, eye-opening book, but the reviews I’ve seen generally fall have fallen into two categories:

  • people who have tried to read it but quit about 1/3 of the way through, but still proudly display it on their shelves as a badge of honor
  • b) people who have read it and understand it, but don’t feel like trying to explain it to the uninitiated.

Since the MIT OCW course was a summer lecture series for high school students, I figured I could keep up. And by watching the lectures first, I’m hoping the book will be easier when I get around to reading it. It doesn’t seem like a book where I should worry about spoiling the ending.

There was one problem that took me a while to overcome: the lectures were in streaming .rm (Real Media) format. That means RealPlayer. I am not friends with RealPlayer – I cut my ties with Real in 2002 and vowed never to have their software on any of my computers again. If you don’t understand my revulsion, just Google “real player sucks” (477,000 hits).

So after a few days of tinkering, I came up with this solution for ripping rm streams and encoding them in a different format (I chose .mp4 so I can watch them on computer or video iPod). It takes about 20-25 mintues per hour of media but can be setup up in batches to run overnight. In my opinion, that’s a small price to avoid dealing with RealPlayer.

[NOTE: This is for Windows XP. YMMV on other platforms]

Read the rest of this entry »

Some Links on Sleep, 5/14/08

May 12th, 2008

Some links I came across with a thorough, well researched view of sleep. Two articles, with key excerpts:

Good Sleep, Good Learning, Good Life

“…Myth: Since we feel rested after sleep, sleep must be for resting. Ask anyone, even a student of medicine: What is the role of sleep? Nearly everyone will tell you: Sleep is for rest. Fact: Sleep is for optimizing the structure of memories. If it was for rest or energy saving, we would cover the saving by consuming just one apple per night. To effectively encode memories, mammals, birds and even reptiles need to turn off the thinking and do some housekeeping in their brains. This is vital for survival. This is why the evolution produced a defense mechanisms against skipping sleep. If we do not get sleep, we feel miserable. We are not actually as wasted as we feel, the damage can be quickly repaired by getting a good night sleep. It is our brain dishing punishment for not sticking to the rules of intelligent life-form: let the memory do restructuring in its programmed time.”

Polyphasic Sleep: Facts and Myths

“It appears that polyphasic sleep encounters the precisely same problems as seen in jet lag or shift-work. Human body clock is not adapted to sleeping in patterns other than monophasic or biphasic sleep. In other words, the only known healthy alternatives are: (1) a single 6-8 hours sleep block in the night, or (2) a night sleep of 5-7 hours combined with a 15-90 min. siesta nap. Those numbers differ substantially across the population and there is no single recommended dose of sleep for everyone.”

The site these articles came from, www.supermemo.com, is called “Super Memory: Forget About Forgetting”. I’ll be looking more into it soon.

My Life, Told By Pins

May 11th, 2008

As part of my husbandly duties on Mother’s day, I did some cleaning and came across my pin collection.  Yes, I went through a phase (that’s apparently over – keep reading for details) where I would collect pins from the places I traveled to.  I kept them in a little tin that I hadn’t seen in years until today.  I had my camera out so I thought I’d show a picture and let them tell my story (or the part of it that can be expressed through pins).

Explanation after the jump:

Read the rest of this entry »

Music Operates Directly On Your Abstract Syntax Tree

May 9th, 2008

I mentioned music in each of the last two posts as a digitizable creation that people enjoy enough to pay for. So what is it about music that is so great? I’ve been asking myself this question for years, and now seems like the time to try and tackle it.

I’ve always enjoyed music – from playing the trumpet in elementary school, owning a $230 portable CD player in 1993, to being an iPod man today. Practically every spare dollar I earned between the ages of 13 and 17 was spent on CDs. I love and appreciate all kinds of music – classical, rap, rock, alternative, opera, techno, Hawai’ian (especially Hawai’ian), even country (Claire from 9th grade, if you’re reading this (which I’m pretty darn sure you’re not), it took over 15 years and I’m still not a fan, but I can say now that I appreciate country music). But now I don’t listen to music very often. In fact hardly at all. I have my iPod running most of the day, but I listen to podcasts, sweet delicious podcasts of all stripes that keep me informed and help me learn new things. What’s the difference between me now and when I was in high school (besides the notably reduced mental redardation and 70 extra pounds)?

Music and the Brain

On Intelligence

My answer has come from my interest in neuroscience and artificial intelligence. Jeff Hawkins’ book On Intelligence (God bless him for writing it) stresses the temporal nature of the brain – how learning, memory, even sensory perceptions like vision and hearing only work on data that changes through time. Our brain works by processing related events connected by the sequence they occur in – kind of like musical notes! Music speaks our brain’s native language! No compiling, no byte code, etc – it operates directly on our abstract syntax tree (that’s my analogy, don’t hold it against Jeff). That is why it’s easier to remember song lyrics than the words of a speech – the lyrics are attached to a musical sequence that burns into your mind.

Read the rest of this entry »