28 Apr 2015
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.
26 Jan 2015
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.
06 Jan 2015
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 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
02 Jan 2015
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)
30 Dec 2014
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