Language Mismatch

One of the reasons that I believe communication between developers and non-developers is difficult is because developers must work in a world of specifics and details whereas a non-developer can casually neglect those details without even knowing they’ve been neglected.

For instance a non-developer says we need to allow users to log into this system. Easy enough, non-developer thinks his part is done. The developer looks at this requirement and thinks, is it a single users system? Will people register for this system? Is htaccess acceptable? Should it be a web based login? Etc. etc.

The above example is overly simplified and does not entirely show the mismatch. The only way to improve communications between the two groups is to ensure both groups understand how the other thinks. Without this understanding there will be tension that doesn’t necessarily need to exist.

The non-developer has most likely been educated in a less scientific and more abstract manner. This leads the non-developer to neglect details that are essential to any system designed to run on a computer that has to understand all paths through the system.

The developer on the other hand has to think about and understand all these paths to be able to build a system that fully functions. Always thinking about and contemplating whether or not the requirements are complete enough and whether they conflict with each other.

I believe the only way to resolve this mismatch is through educating both parties to be more understand of how the other must think. With this education maybe each party can move toward the others way of thinking enough to make the resulting system that much better.

Some VIM Commands

Every once in a while I try to review some vim information to get additional practice with the editor. Today I reviewed file buffers, visual mode and markers. All very useful in editing files with vim.

File buffers are great when editing more than file.
:buffers
:b1 :b2 :b3
:bn :bp
:sbn :sbp

Visual Mode
In normal mode use v, shift-v or ctl-v (block edit)
Use >, <, r, c, d, etc.

Markers
In normal mode use ma, mb, mc, etc
Then use ‘a, ‘b, ‘c etc.

Windows
:sp, :open, ctl-Wn, etc.
ctl-w, ctl-w to switch windows
Buffer commands above come in useful here

Completion, Omni-completion
ctl-p, ctl-n to complete with words from file
ctl-x, ctl-o to use syntax completion
Very useful things in a text editor!

Perl Tidy and Vim

Perl Tidy and Vim Options I find useful. Mostly so I have it conveniently located for future machines.

Perl Tidy Options

-l=78     # max line width
-i=4       # Indent level 4 cols
-ci=4     # Continuation Indent 4 cols
-st         # Output to STDOUT
-se        # Errors to STDERR
-vt=2     # Maximal vertical tightness
-cti=0    # No extra indention for closing brackets
-pt=1     # Medium parenthesis tightness
-bt=1     # Medium brace tightness
-sbt=1    # Medium square bracket tightness
-bbt=1    # Medium block brace tightness
-nsfs     # No space before semicolons
-nolq     # Don't outdent long quoted string
-wbb="%  + - * / x != == &gt;= &lt;= =~ !~ &lt; &gt; | &amp;  &gt;= &lt; = **= += *= &amp;= &lt;&lt;=  &amp;&amp;= -= /= |= &gt;&gt;= ||= .= %= ^= x="  # Break before all operators

Standard VIM options

set nocompatible     " We're running Vim, not Vi!
filetype on              " Enable filetype detection
filetype indent on    " Enable filetype-specific indenting
filetype plugin on    " Enable filetype-specific plugins

set display+=lastline
set statusline=%&lt;%f%h%m%r%=%b\ 0x%B\ \ %l,%c%V\ %P
set laststatus=2
set ruler
syntax on
set tabstop=2
set paste