Hit a bug, couldn’t find the answer, documenting it here for the next person.

I’m working on a Rails project where I need SSL in development. The simple way to do this is with the thin gem for example http://www.railway.at/2013/02/12/using-ssl-in-your-local-rails-environment/

It had been working (on OS X El Capitan), but suddenly thin started blowing up on me, either the server wouldn’t start with:

1
2
3
-bash(3373,0x7fff71f87000) malloc: *** error for object 0x100007f9132d01e4: pointer being freed was not allocated
*** set a breakpoint in malloc_error_break to debug
Abort trap: 6

Or the server would start but would blow up on HTTPS requests:

1
2
Unexpected error while processing request: negative string size (or size too big)
  /blah/blah/blah/eventmachine-1.0.8/lib/em/connection.rb:488:in `get_peer_cert'

The Emacs Visual Bell issue I previously wrote about has been fixed.

As I understand it, the issue was that the old NexTSTEP visible bell code accidentally depended on an object not getting garbage collected and that improved GC in El Capitan finally caught up with it.

The bell code has been complete reworked to use a NexTSTEP warning icon instead of flashing the screen.

Last week I wrote about my issue with Emacs’ visible-bell on OS X El Capitan. I figured it was about the most esoteric thing I’ve written, but it may have gotten more comments then any other post. I’m not sure if that’s good or bad…

In any case, before coming up with my work-around, I first tried rebuilding Emacs, in case the issues had been already fixed or simply re-compiling/re-linking would take care of it. That didn’t help, but this is fine time to revisit building Emacs from source on OS X.

After I upgraded to OS X El Capitan‎, I started having random display issues with my build from source version of Emacs. After a while I realized that it was caused by the visual bell. I hate terminals/widows beeping at me, so I always set:

1
(setq visible-bell t)

in my .emacs. However, under El Capitan this smears (for lack of a better word) the center of the window with bits of zoomed in text.

Ever had to change the URL in 50 files? What do you do?

1
vi *.html

(You should know by now I’d use Emacs.)

Or whip up a Bash script with sed?

Since dinosaurs roamed the Earth, I’ve been using Perl’s In Place Editing feature -i.

1
perl -p -i.orig -e 's/bar/baz/' file

Let’s break it down, shall we?

Holy crap! You can use SSL client certificates to easily authenticate user logins!

What they hell am I talking about?

So, there’s this thing, SSL client certificates. They are pretty much exactly the same as SSL server certificates. They work like this:

  1. The web server has a key pair.
  2. The client generates a key pair.
  3. The client send the public key to the server.
  4. The server signs the public key with it’s private key and send a certificate back to the client.
  5. The client saves the certificate.

What’s that good for? Authentication! How’s it work?

Sometime I want all of Rails’ form bells and whistles for something that isn’t a database backed model. For example, I use this as a handy way to get form validations when starting a session with an API.

This is possible because Rails allows you to use ActiveModel without a database.