I work on a heavily customised version of Ubuntu which I treat a bit like Arch Linux but with more stable packages (i.e. custom X session with no GNOME etc, only running what I configure). I also use Emacs with a lot of configuration for almost all of my programming work. I was nudged down this path by The Art of Unix Programming, and I assumed that it would pay off but didn’t have much real foresight on the issue. In retrospect this kind of setup has some tradeoffs so I’m often unsure whether to recommend that younger engineers do something similar or stick with more standardised tools.
In response to Aaron Gertler’s prompt on the EA forum I’m writing a bit about my job. I hope this will be useful to people who are considering software engineering as a career path and EA software engineers who are in positions where their work is not EA relevant.
I read this book over the last few months hoping to get some more insight into African history. It’s a great book and very readable, although some parts drag on a bit or repeat things (I skimmed over a few pages).
The main paper from my PhD has finally made it through the publication process, and is available here (it’s open access so you don’t need an expensive subscription to read it).
I’ve been playing around in common lisp lately, and one feature I particularly
like is the trace macro.
trace is a macro which lets you easily log the
arguments and result of all calls to a function. It’s particularly handy for
visualising recursive function calls.
I’ve read some interesting debugging stories recently, so here’s one of mine. Hopefully it might help others who have similar issues.
It’s an old adage that you can’t secure a computer against people with physical
access to it. I was interested in this idea, so I was exploring what could be done
with only keyboard and mouse access to a typical Ubuntu machine (i.e. without
being able to plug in usb devices or pull out hard drives) when I came across
xinput test command. I’m sure this is old hat to anyone with a real
interest in security, and I’m sure there are plenty of ways to counter it; but I
think it’s interesting anyway.
I published a paper a while ago, but I’ve been pretty busy so hadn’t gotten around to figuring out the rules about posting it online. Anyway it looks like I’m allowed to host it on my personal website, so here it is!
Sometimes the way emacs utterly ignores standard unix conventions can be pretty annoying. In particular the fact that, unlike almost every other standard unix tool, you can’t give it
- instead of a filename and have it read from stdin has always annoyed me (yes, I know emacs came from lisp machines not unix, but it’s been used on unix machines since before I was born). So today I’ve final sat down and figured out how to hack around this limitation.
Update 2016-07-23: Updated the format of the udev rules for recent Linux distributions (in Ubuntu since at least 16.04, possibly earlier), thanks to an anonymous reader for the tip!
compile command. The setup required is not especially complex but could be mildly tricky to figure out for people new to emacs.
Edit: I’ve created a small emacs package based on this post.
urxvt is a lightweight, platform independent unicode-compatible terminal emulator. This is probably the least interesting of the various tools I’ve set up for programming so I thought I’d do it first.