A change a day

Change one thing about your development environment every day. It doesn’t have to be a big change, you don’t need a new editor, but one small thing. I’m setting a goal to make one change to my working environment each day. Right now I’m completly daunted by getting something like tmux or emacs configured exactly the way I would like it. It’s to much of a change for one day. Even if I could get everything changed, there is no way I’d remember while I’m working.

This has caused me to leave these tools in configuration that is familiar to me. Every few weeks or months I’ll make a huge change, and maybe something will stick, but not usually. To fix this I’m going to try making a small nudge every day, and trying to make sure I use these small changes several times until I’ve learned them. If I don’t like something it’ll be easy enough to revert. It’s iterative development, but for my environment.

I’d love to know what changes other people are making to their environments. It’s especially interesting how you go about making big changes stick. Can you break them down into small, incremental changes? I’ll try to document if I find a good way.

Let me know about what you’ve changed in your environment, and how it went. I’m easiest to find on twitter @wwkeyboard.

Syslog on OSX

I was trying to sort out a problem with logging in a production app. Instead of trying to replicate the problem on a system that better emulated production I spent some time figuring out how syslog works on OSX.

OSX uses the Apple System Log application to process syslog messages. The configuration lives in /etc/asl.conf and is not complex. I used this to capture all of the logs from the ‘api’ project.

> application_dev.log mode=0640 format=bsd rotate=seq compress file_max=5M all_max=50M
? [= Sender api] file application_dev.log

Once you change the file you’ll have to send -HUP to the syslogd process.

$ ps aux | grep syslogd
$ sudo kill -HUP # The pid from above

The first line, the one prefixed by ‘>’ sets up the write file and tells ASL to handle the log rotation(a nice bonus). The second line routes all messages from the api program to the application_dev.log. Which we then tail or open with Console.app to see the logs from the api program.

The ASL configuration has many more options, including filtering by log level and setting the deduplication limits.

How I track my day in org-mode

A few years ago I started tracking the work I do during the day. This is aside from any hours required by my job, but it helps when I have reviews or need to reference when something occurred. It’s super useful when I have an early morning standup, just read the outline and I’m up to speed. Aside from those obvious benefits I find that putting my tasks into just a few words helps solidify in my mind what I’ve done.

I keep this list with one running org file that tracks the work by day. Each year I start a new file, not for some limitation with org-mode, but it gives some finality for me to roll the file from, say, 2014 to 2015.

Org-mode makes it easy for me to keep the outline, and track TODOs. At the end of each day I make notes for the TODOs that I worked on but didn’t finish. Then I make TODOs for anything I think of during the evening that I want to tackle the next day.

The format looks somewhat like:

* Jan 2
** DONE Data model for image generation
** TODO Data storage for image generation

I’ve also started keeping a separate file for the notes on each different project I have, but that format is new and I’m not completely sold.

Basic zshell in emacs

I found a great post on Mastering Emacs that covers the basics of running shells in emacs. Included in this post is the small bit of magic I needed to get zshell working. It’s not full or perfect, but at least the environment is set up correctly. This allows me to test and compile code without leaving my emacs window.

(setq explicit-shell-file-name "/usr/local/bin/zsh")
(setq shell-file-name "zsh")
(setenv "SHELL" shell-file-name)

Starting a blog for the new year

I’ve tried starting a blog before, but it never stuck. This year I’m trying something a little different. In the vain of tiny habits I will try to post something every few days. To start these posts will probably be small, just something interesting I’ve found or a small change to my emacs config. But as I grow this blog I hop it turns into something useful to everyone.