Dead Ink Vinyl

Musings of David L Kinney

Archive for April 2009

First birthday, courtesy of the March of Dimes

My daughter turned one year old today. She is crawling and cruising, exploring and learning, smiling and laughing — a happy baby on the cusp of her toddler years. You would not know to look at her that she was born six weeks premature, that she entered the world at just 4lbs 13oz, and that she spent 11 days in the neonatal intensive care unit. Our family has been very fortunate to have exceptional doctors and medical facilities, to have loving and supportive family and friends, to have great health care coverage, to have access to prenatal education and information about prematurity, and to have a daughter who is a tenacious fighter.

We are very fortunate, but we know that our story didn’t have to turn out so well. For many newborns, premature birth is just the beginning of a long struggle for survival, where every breath is a small victory. For many families, a premature birth is an incredible and lasting emotional and financial hardship.

It doesn’t have to be this way.

The March of Dimes is working to ensure that one day all babies will be born healthy. After successfully supporting the development of two vaccines against polio in the 1950s, the March of Dimes refocused its charitable infrastructure to serve mothers and babies with a new mission: to improve the health of babies by preventing birth defects, premature birth, and infant mortality. The organization accomplishes this with programs of research, community services, education, and advocacy, along with the annual March for Babies.

My daughter’s first birthday was made possible by research funded by the March of Dimes. Help me in supporting the March of Dimes during this year’s March for Babies so that more children can see their first birthdays. Donate any amount by visiting http://www.marchforbabies.org/dlkinney0603 or clicking on the March for Babies badge to the right (if you are viewing this on my web site).

Best regards,
David

Written by dlkinney

April 14, 2009 at 11:34 pm

Relational databases are dead

Okay, I’m overstating things a bit. But Aimee captures the coming evolution of the database perfectly:

In my mind, the database has gone from being the most important thing to being just a method of persistence for the data in the domain model.

I believe that this revelation, which more and more developers are having, will be very healthy for application design.

It will probably also be very bad for RDBMS companies. But RDBMS vendors can take comfort in the fact there will always be a place for relational databases in projects that have strongly-typed and well-structured data for which consistency is more important than availability.1 MySQL might prove me wrong, though — they seem to be doing some lateral thinking. I have to applaud any RDBMS vendor that is willing to promote a session entitled SQL is dead at its conference.2

1 No, I can’t think of any examples, either.

2 Again with the sensational titles. Of course, SQL is not really dead — Amazon’s addition of a SQL-like syntax to SimpleDB shows that there is a significant demand for a familiar (if not quite standard) query language.

Written by dlkinney

April 13, 2009 at 10:27 pm

Screen and my .screenrc file [UPDATED]

I was introduced to Screen — a terminal multiplexer — a couple of weeks ago. When I first tried it, I was mostly annoyed and set it aside. However, it came so highly recommended that I picked it up again and forced myself to learn enough that I could use it on a daily basis:

  • screen -ls (list screens)
  • screen -r (reattach)
  • Ctl-A c (new screen)
  • Ctl-A A (rename screen)
  • Ctl-A <num> (switch to screen)
  • Ctl-A d (detach)
  • Ctl-A M (monitor for activity)
  • Ctl-A _ (monitor for silence)

After getting those commands under my belt, I was very impressed and I use screen all the time now. However, a lot of Screen’s power comes from the customization of Screen through its startup files. Good information about startup files is scattered across the web, so I’ll share what I’ve put together.

Below is my ~/.screenrc file, compiled from the information at softpanorama, from Matt Cutts, from the Screen FAQ, and from the Screen manual’s command list. I’m using this on Ubuntu 8.10 servers over at Slicehost and on my MacOSX 10.5 laptop.

UPDATE: Added more comments around the termcapinfo setting that enables scrollbars to work as expected.

# For a complete list of available commands, see http://bit.ly/jLtj

# Message to display in the status line when activity is detected in a
# monitored window.
activity              "activity in %n (%t) [%w:%s]~"

# Detach session on hangup instead of terminating screen completely.
autodetach            on              # default: on

# When a bell character is sent to a background window, screen displays a
# notification in the message line. The notification message can be re-defined
# by this command.
bell_msg              "bell     in %n (%t) [%w:%s]~"

# This command controls the display of the window captions. Normally a caption
# is only used if more than one window is shown on the display.
caption               always          "%{= kw}%?%-Lw%?%{+b kw}%n*%t%f %?(%u)%?%{= kw}%?%+Lw%?"

# Select line break behavior for copying.
crlf                  off             # default: off

# Select default utmp logging behavior.
#deflogin              off             # default: on

# Set default lines of scrollback.
defscrollback         3000            # default: 100

# If set to 'on', screen will append to the 'hardcopy.n' files created by the
# command hardcopy; otherwise, these files are overwritten each time.
hardcopy_append       on              # default: off

# This command configures the use and emulation of the terminal's hardstatus
# line. The type 'lastline' will reserve the last line of the display for the
# hardstatus. Prepending the word 'always' will force screen to use the type
# even if the terminal supports a hardstatus line.
hardstatus            alwayslastline  "%{+b kr}[ %H ] %{ky} Load: %l %-=%{kb} %c  %Y.%m.%d"
msgwait               15

# Set message displayed on pow_detach (when HUP is sent to screen's parent
# process).
pow_detach_msg        "BYE"

# Set the default program for new windows.
shell                 bash

# Default timeout to trigger an inactivity notify.
silencewait           30              # default: 30

# Change text highlighting. See http://bit.ly/11RDGZ
sorendition           gK

# Do NOT display copyright notice on startup.
startup_message       off             # default: on

# Set $TERM for new windows. I have more luck with 'linux' than Terminal's
# default 'xterm-color' (^H problems). Comment out to use the default.
term                  linux

# Tweak termcap, terminfo, and termcapinfo  entries for best performance.
termcap               linux           'AF=\E[3%dm:AB=\E[4%dm'
termcap               xterm-color     'AF=\E[3%dm:AB=\E[4%dm'
terminfo              linux           'AF=\E[3%p1%dm:AB=\E[4%p1%dm'
terminfo              xterm-color     'AF=\E[3%p1%dm:AB=\E[4%p1%dm'

# Allow xterm / Terminal scrollbars to access the scrollback buffer. This
# enables the behavior you'd expect, instead of losing the content that scrolls
# out of the window.
termcapinfo           linux           ti@:te@
termcapinfo           xterm-color     ti@:te@

# Use visual bell instead of audio bell.
vbell                 on              # default: ???

# Message to be displayed when the visual bell is triggered.
vbell_msg             " *beep* "

Written by dlkinney

April 10, 2009 at 1:17 pm