Debugging an ELPA Package Install on Marmalade

To get started with ELPA packages I started small by trying to package up hide-comnt.el. Marmalade wouldn’t let me upload it though giving me a “520 Bad Gateway error”. Here is the package that I’m testing with.
Here are the steps I have since followed to try to address it:

  1. Guys in #emacs said it might be Internet access. I think it could be Internet access, package format might be wrong, OS issues, or tar might be bad.
  2. Tried first with Chrome on Windows, and then Firefox on Windows. No change.
  3. Tried first with GNU Tar on Windows, and then 7zip on Windows. No change.
  4. Installed Lubuntu 12.04 then tried GNU Tar and Chrome. No change.
  5. On Windows, blew away my manually installed copy of hide-comnt and installed the package (from above) from inside Emacs using ‘package-install-file’. This worked fine; the package installed and worked as expected. The package seems ok since Emacs installed it.
  6. Tried using a web proxy from home and did not get the 502 error, but the file was not uploaded.
  7. Noticed that there is a sample multi-file TAR package here. Think mine is OK but this is a useful reference.
  8. Found this package and tried doing a programmatic upload. It didn’t work, the result was “502 Bad Gateway”.
  9. Tried uploading using 4G on my Android and got the same result, “502 Bad Gateway”.
  10. #2, #5, and #9 make it seem like the package I made is OK and it is not my Internet connection. Only Nic can check, so I’m passing it to him now.

Tweaking the modeline characters for a minor mode

The modeline characters (call the lighter in Emacs terms) weren’t displaying correctly on my system for this excellent plugin. A cent sign should have been displayed but instead ” \242″ was displayed. ‘forcer’ in #emacs explained that those display settings are stored in ‘minor-mode-alist’ so we can modify them. I added this code at the end of my config:

(let ((ccm-cons (assoc 'centered-cursor-mode minor-mode-alist)))
  (when ccm-cons
    (setcdr ccm-cons '(" ccm"))))

Understanding the Y-Combinator with Racket

Understanding the Y-Combinator seems to be one of the functional programming right-of-passage things, and for good reason, it is fun. Not all of the articles out there spoke to me, so I took notes while coding it up in a way that I understood it.
My notes are attached in the form of a Scribble here How the Y Works, viewable here, and the source code version here y.
It is Racket, but it is really close to Scheme and if you wrote a couple of macros it would probably run on Clojure pretty easily.
The goal is for there to be no gaps in the code, it should be pretty obvious how each step was taken. Hand-coding it made it clear what was happening. This is what worked for me :).

Bless You Emacs

Trying to set up a dev mode in Emacs on Windows today, the code complained that $SHELL was not defined. Not sure what to use I guessed and used ‘cmd’.
At startup, that is startup, not runtime, Emacs gave me this warning:

Warning! The $SHELL environment variable uses cmd.
You probably want to change it so that it uses cmdproxy.exe instead.
Warning! shell-file-name uses cmd.
You probably want to change it so that it uses cmdproxy.exe instead.
Warning! shell-command-switch is "-c".
You should set this to "/c" when using a system shell.
Warning! w32-quote-process-args is t.
You should set this to nil when using a system shell.

Bless you Emacs! ‘cmdproxy’ worked perfectly.

The Best Foam Roller

Here is the blurb right from the site:

AXIS Roller Black – Round 36 x 6
Sku: AXR366
Geared for moderate to heavy users, the exclusive AXIS™ Rollers give all the benefits of traditional rollers without breaking down. The AXIS’s, black, molded foam technology is firm in density, has a smooth surface, and will not lose its shape after moderate to heavy use. Fitness and rehab professionals will love the durability and lasting power of this roller.

OPTP Website
This foam roller has survived my daily use and travels for the past two years and does the work equivalent to having a massage-therapist full-time on your staff for a fraction of a percentage of the price!

Connecting With People

Four trips. In my life I’ve been lucky enough to have four great trips. Three around the U.S.A. and one around all of Europe. At the time I thought the whole point was to see things. Well, you see things, and maybe you feel good about them, too. What you remember though are the people. The only way to connect with the people is by connecting with them. Eating with them, talking, laughing, and crying. Nothing else seems to work. Email doesn’t work. Internet doesn’t work. Phone doesn’t work. Thinking about them doesn’t work. The only way to connect with people is by connecting.