I started having trouble with vim crashing for me. I’m on OSX with homebrew and rbenv, and it crashed when editing Ruby files. I would get a segmentation fault. After some googling which was not particularly fruitful, the solution I came up with was: switch to the system ruby rbenv shell system uninstall vim completely with homebrew brew uninstall vim reinstall vim from head brew install --HEAD --override-system-vi vim This seems to have fixed the problem, though I do not know if it was switching to the system ruby or installing from head.
Ok so after my previous post, I was feeling pretty excited about Ruby. I talked about its power and flexibility and the exciting things that could come from it. I also talked of Ruby’s scariness, it’s ability to terrify new programmers and potential for difficulties. I’ve found one particular example which I’m sure shouldn’t be allowed. I can see the intention and how in experienced hands it is amazing, but I can’t unsee it’s potential for misuse.
So I’ve been trying Ruby recently, partially trying to add some substance to my CV, and partially out of curiosity. I used to be a complete python snob; I didn’t understand why anyone wouldn’t use python. It is a dynamic language so no more manual memory management (though there are plenty of advantages cough cough); duck typing deserves its own special place in hell but it is bloody convenient; the amazing standard library which is great for system administration; and many other things.
I’ve been playing with Ruby quite a bit recently and I like the way a custom-looking DSL can be created from the same source language. This means I’ve converted a lot of my tools (e.g. Makefiles) into Rakefiles and I’ve just found foreman which can manage multiple subprocesses and combine their output into a nice looking coloured console result. This is typically used to manage web processes (server, task runner, development database etc.