Share a Trick?

Steve Jovanovic plug-discuss@lists.plug.phoenix.az.us
Mon, 10 Mar 2003 03:11:20 -0600


This is a multi-part message in MIME format.

------=_NextPart_000_0059_01C2E6B2.BD9D3940
Content-Type: multipart/related;
	boundary="----=_NextPart_001_005A_01C2E6B2.BD9D3940"


------=_NextPart_001_005A_01C2E6B2.BD9D3940
Content-Type: multipart/alternative;
	boundary="----=_NextPart_002_005B_01C2E6B2.BD9D3940"


------=_NextPart_002_005B_01C2E6B2.BD9D3940
Content-Type: text/plain;
	charset="us-ascii"
Content-Transfer-Encoding: 7bit

Heya,
 
I was exchanging Linux tricks with a friend and thought I'd share a few
here. Please feel free to reply with your own, if you like. It'd be cool
to see how other people are saving time and geeking out. :)
 
Thanks!
 
Steve
 
.BEGIN.
 
If you're still using cd to change directories, for shame! Well, sorta.
:)
 
Let me show you something.
 
Let's say that you have a directory like
/home/geoff/very/deeply/nested/stuff1 and let's say you have another:
/home/geoff/very/deeply/nested/stuff2, right?
 
And let's say you run a new interactive bash shell. How do you get to
stuff1 or stuff2 without typing a lot?
 
Put this in your .bash_profile:
 
CDPATH=/home/geoff/very/deeply/nested
export CDPATH
 
Then, source the file ( . .bash_profile ) so that it picks up changes.
 
Then, no matter where you are, simply type:
 
cd stuff1 or cd stuff2
 
and it takes you there. cd always checks anything that you type against
the base directories that you define in CDPATH. Cool, hey? :)
 
Now, let's say that you're cd'ing all over the place. That's very
inefficient. Instead, use pushd and dirs.  But first, add this to your
.bash_profile:
 
alias pd='pushd'
 
and source the file again.
 
Anyway, here's what happens:
 
pd /etc
pd /home
pd /usr
pd /var/log/httpd
pd /proc
 
Now, type: dirs
 
That's your stack of directories. The top of the stack is near the top
of the screen. You can also type dirs -v
 
Say you want to change to a particular directory. Simply say: pd +N
where N is 0 (/etc), 1 (/home), 2 (/usr), etc.
 
Once you've done that, type dirs again. See how the directory you've
pushed has now become the top of the stack, and you've cd'd into it
automagically?
 
In case you ever want to remove a directory, you can use popd +N. That
will blow away that particular directory from the stack.
 
You really should never use cd again, unless you're using CDPATH.
 
Always use pd and bash will remember where you've been. Much better than
the stateless cd! 
 
Note that pushd and popd can also take negative arguments, like -4. The
difference between +4 and -4 is that +4 starts counting from the top of
the stack (0), whereas -4 starts counting from the bottom (taken as 0).
So either way, it will target the fifth element either from the top or
the bottom of the stack.
 
 
Noumenaut Software
 
Steve Jovanovic
Director of Engineering
 <http://dev.noumenaut.com> http://dev.noumenaut.com
262.632.7755
 
"And the walls shall have eyes, and the doors shall have ears." - Bowie
 

------=_NextPart_002_005B_01C2E6B2.BD9D3940
Content-Type: text/html;
	charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

<html xmlns:v=3D"urn:schemas-microsoft-com:vml" =
xmlns:o=3D"urn:schemas-microsoft-com:office:office" =
xmlns:w=3D"urn:schemas-microsoft-com:office:word" =
xmlns=3D"http://www.w3.org/TR/REC-html40">

<head>
<META HTTP-EQUIV=3D"Content-Type" CONTENT=3D"text/html; =
charset=3Dus-ascii">


<meta name=3DProgId content=3DWord.Document>
<meta name=3DGenerator content=3D"Microsoft Word 10">
<meta name=3DOriginator content=3D"Microsoft Word 10">
<link rel=3DFile-List href=3D"cid:filelist.xml@01C2E6B2.B90C3F70">
<link rel=3DEdit-Time-Data href=3D"cid:editdata.mso@01C2E6B2.B90C3F70">
<!--[if !mso]>
<style>
v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style>
<![endif]--><!--[if gte mso 9]><xml>
 <o:OfficeDocumentSettings>
  <o:DoNotRelyOnCSS/>
 </o:OfficeDocumentSettings>
</xml><![endif]--><!--[if gte mso 9]><xml>
 <w:WordDocument>
  <w:SpellingState>Clean</w:SpellingState>
  <w:GrammarState>Clean</w:GrammarState>
  <w:DocumentKind>DocumentEmail</w:DocumentKind>
  <w:EnvelopeVis/>
  <w:Compatibility>
   <w:BreakWrappedTables/>
   <w:SnapToGridInCell/>
   <w:WrapTextWithPunct/>
   <w:UseAsianBreakRules/>
  </w:Compatibility>
  <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel>
 </w:WordDocument>
</xml><![endif]-->
<style>
<!--
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
	{mso-style-parent:"";
	margin:0in;
	margin-bottom:.0001pt;
	mso-pagination:widow-orphan;
	font-size:12.0pt;
	font-family:"Times New Roman";
	mso-fareast-font-family:"Times New Roman";}
a:link, span.MsoHyperlink
	{color:blue;
	text-decoration:underline;
	text-underline:single;}
a:visited, span.MsoHyperlinkFollowed
	{color:purple;
	text-decoration:underline;
	text-underline:single;}
span.EmailStyle17
	{mso-style-type:personal-compose;
	mso-style-noshow:yes;
	mso-ansi-font-size:10.0pt;
	mso-bidi-font-size:10.0pt;
	font-family:Arial;
	mso-ascii-font-family:Arial;
	mso-hansi-font-family:Arial;
	mso-bidi-font-family:Arial;
	color:windowtext;}
span.SpellE
	{mso-style-name:"";
	mso-spl-e:yes;}
span.GramE
	{mso-style-name:"";
	mso-gram-e:yes;}
@page Section1
	{size:8.5in 11.0in;
	margin:1.0in 1.25in 1.0in 1.25in;
	mso-header-margin:.5in;
	mso-footer-margin:.5in;
	mso-paper-source:0;}
div.Section1
	{page:Section1;}
-->
</style>
<!--[if gte mso 10]>
<style>
 /* Style Definitions */=20
 table.MsoNormalTable
	{mso-style-name:"Table Normal";
	mso-tstyle-rowband-size:0;
	mso-tstyle-colband-size:0;
	mso-style-noshow:yes;
	mso-style-parent:"";
	mso-padding-alt:0in 5.4pt 0in 5.4pt;
	mso-para-margin:0in;
	mso-para-margin-bottom:.0001pt;
	mso-pagination:widow-orphan;
	font-size:10.0pt;
	font-family:"Times New Roman";}
</style>
<![endif]-->
</head>

<body lang=3DEN-US link=3Dblue vlink=3Dpurple =
style=3D'tab-interval:.5in'>

<div class=3DSection1>

<p class=3DMsoNormal><span class=3DSpellE><font size=3D2 =
face=3DArial><span
style=3D'font-size:10.0pt;font-family:Arial'>Heya</span></font></span><fo=
nt
size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;font-family:Arial'>,<o:p></o:p></span></font></=
p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'><o:p>&nbsp;</o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>I was exchanging Linux tricks with a friend and =
thought I&#8217;d
share a few here. Please feel free to reply with your own, if you like. =
It&#8217;d
be cool to see how other people are saving time and <span =
class=3DSpellE>geeking</span>
out. :)<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'><o:p>&nbsp;</o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>Thanks!<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'><o:p>&nbsp;</o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>Steve<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'><o:p>&nbsp;</o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>&#8230;BEGIN&#8230;<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'><o:p>&nbsp;</o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>If you&#8217;re still using <span =
class=3DSpellE>cd</span> to
change directories, for shame! Well, <span class=3DSpellE>sorta</span>. =
:)<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'><o:p>&nbsp;</o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>Let me show you =
something&#8230;<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'><o:p>&nbsp;</o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>Let&#8217;s say that you have a directory like
/home/geoff/very/deeply/nested/stuff1 and let&#8217;s say you have =
another:
/home/geoff/very/deeply/nested/stuff2, =
right?<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'><o:p>&nbsp;</o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>And let&#8217;s say you run a new interactive bash =
shell.
How do you get to stuff1 or stuff2 without typing a =
lot?<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'><o:p>&nbsp;</o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>Put this in your .<span =
class=3DSpellE>bash_profile</span>:<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'><o:p>&nbsp;</o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>CDPATH=3D/home/<span =
class=3DSpellE>geoff</span>/very/deeply/nested<o:p></o:p></span></font></=
p>

<p class=3DMsoNormal><span class=3DGramE><font size=3D2 =
face=3DArial><span
style=3D'font-size:10.0pt;font-family:Arial'>export</span></font></span><=
font
size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;font-family:Arial'> =
CDPATH<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'><o:p>&nbsp;</o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>Then, source the file <span class=3DGramE>( .</span> =
.<span
class=3DSpellE>bash_profile</span> ) so that it picks up =
changes.<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'><o:p>&nbsp;</o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>Then, no matter where you are, simply =
type:<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'><o:p>&nbsp;</o:p></span></font></p>

<p class=3DMsoNormal><span class=3DSpellE><span class=3DGramE><font =
size=3D2
face=3DArial><span =
style=3D'font-size:10.0pt;font-family:Arial'>cd</span></font></span></spa=
n><font
size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;font-family:Arial'> stuff1 or <span
class=3DSpellE>cd</span> stuff2<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'><o:p>&nbsp;</o:p></span></font></p>

<p class=3DMsoNormal><span class=3DGramE><font size=3D2 =
face=3DArial><span
style=3D'font-size:10.0pt;font-family:Arial'>and</span></font></span><fon=
t
size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;font-family:Arial'> it takes
you there. <span class=3DSpellE><span class=3DGramE>cd</span></span> =
always checks
anything that you type against the base directories that you define in =
CDPATH.
Cool, hey? :)<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'><o:p>&nbsp;</o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>Now, let&#8217;s say that you&#8217;re <span =
class=3DSpellE>cd&#8217;ing</span>
all over the place. That&#8217;s very inefficient. Instead, use <span
class=3DSpellE>pushd</span> and dirs.<span =
style=3D'mso-spacerun:yes'>&nbsp;
</span>But first, add this to your .<span =
class=3DSpellE>bash_profile</span>:<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'><o:p>&nbsp;</o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>alias <span class=3DGramE>pd</span>=3D&#8217;<span =
class=3DSpellE>pushd</span>&#8217;<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'><o:p>&nbsp;</o:p></span></font></p>

<p class=3DMsoNormal><span class=3DGramE><font size=3D2 =
face=3DArial><span
style=3D'font-size:10.0pt;font-family:Arial'>and</span></font></span><fon=
t
size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;font-family:Arial'> source the
file again.<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'><o:p>&nbsp;</o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>Anyway, here&#8217;s what =
happens:<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'><o:p>&nbsp;</o:p></span></font></p>

<p class=3DMsoNormal><span class=3DGramE><font size=3D2 =
face=3DArial><span
style=3D'font-size:10.0pt;font-family:Arial'>pd</span></font></span><font=
 size=3D2
face=3DArial><span style=3D'font-size:10.0pt;font-family:Arial'> =
/etc<o:p></o:p></span></font></p>

<p class=3DMsoNormal><span class=3DGramE><font size=3D2 =
face=3DArial><span
style=3D'font-size:10.0pt;font-family:Arial'>pd</span></font></span><font=
 size=3D2
face=3DArial><span style=3D'font-size:10.0pt;font-family:Arial'> =
/home<o:p></o:p></span></font></p>

<p class=3DMsoNormal><span class=3DGramE><font size=3D2 =
face=3DArial><span
style=3D'font-size:10.0pt;font-family:Arial'>pd</span></font></span><font=
 size=3D2
face=3DArial><span style=3D'font-size:10.0pt;font-family:Arial'> /<span
class=3DSpellE>usr</span><o:p></o:p></span></font></p>

<p class=3DMsoNormal><span class=3DGramE><font size=3D2 =
face=3DArial><span
style=3D'font-size:10.0pt;font-family:Arial'>pd</span></font></span><font=
 size=3D2
face=3DArial><span style=3D'font-size:10.0pt;font-family:Arial'> /<span
class=3DSpellE>var/log/httpd</span><o:p></o:p></span></font></p>

<p class=3DMsoNormal><span class=3DGramE><font size=3D2 =
face=3DArial><span
style=3D'font-size:10.0pt;font-family:Arial'>pd</span></font></span><font=
 size=3D2
face=3DArial><span style=3D'font-size:10.0pt;font-family:Arial'> =
/proc<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'><o:p>&nbsp;</o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>Now, type: <span =
class=3DSpellE>dirs</span><o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'><o:p>&nbsp;</o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>That&#8217;s your stack of directories. The top of =
the stack
is near the top of the screen. You can also type <span =
class=3DSpellE>dirs</span>
&#8211;v<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'><o:p>&nbsp;</o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>Say you want to change to a particular directory. =
Simply
say: <span class=3DGramE>pd</span> +N where N is 0 (/etc), 1 (/home), 2 =
(/<span
class=3DSpellE>usr</span>), etc.<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'><o:p>&nbsp;</o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>Once you&#8217;ve done that, type <span =
class=3DSpellE>dirs</span>
again. See how the directory you&#8217;ve pushed has now become the top =
of the
stack, and you&#8217;ve <span class=3DSpellE>cd&#8217;d</span> into it =
<span
class=3DSpellE>automagically</span>?<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'><o:p>&nbsp;</o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>In case you ever want to remove a directory, you can =
use <span
class=3DSpellE>popd</span> +N. That will blow away that particular =
directory from
the stack.<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'><o:p>&nbsp;</o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>You really should never use <span =
class=3DSpellE>cd</span>
again, unless you&#8217;re using CDPATH.<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'><o:p>&nbsp;</o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>Always use <span class=3DGramE>pd</span> and bash =
will
remember where you&#8217;ve been. Much better than the stateless <span
class=3DSpellE>cd</span>! <o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'><o:p>&nbsp;</o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>Note that <span class=3DSpellE>pushd</span> and <span
class=3DSpellE>popd</span> can also take negative arguments, like -4. =
The
difference between +4 and -4 is that +4 starts counting from the top of =
the
stack (0), whereas -4 starts counting from the bottom (taken as 0). So =
either
way, it will target the fifth element either from the top or the bottom =
of the
stack.<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'><o:p>&nbsp;</o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'><o:p>&nbsp;</o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial;mso-no-proof:yes'><img width=3D182 height=3D37 =
id=3D"_x0000_i1025"
src=3D"cid:image001.gif@01C2E6B2.B90C3F70" alt=3D"Noumenaut Software"
align=3Dbaseline border=3D0></span></font><span =
style=3D'mso-no-proof:yes'><o:p></o:p></span></p>

<p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span =
style=3D'font-size:
12.0pt;mso-no-proof:yes'>&nbsp;<o:p></o:p></span></font></p>

<p class=3DMsoNormal><em><i><font size=3D2 color=3Dgray =
face=3DArial><span
style=3D'font-size:10.0pt;font-family:Arial;color:gray;mso-no-proof:yes'>=
Steve
Jovanovic</span></font></i></em><span =
style=3D'mso-no-proof:yes'><o:p></o:p></span></p>

<p class=3DMsoNormal><em><i><font size=3D2 color=3Dgray =
face=3DArial><span
style=3D'font-size:10.0pt;font-family:Arial;color:gray;mso-no-proof:yes'>=
Director
of Engineering</span></font></i></em><span =
style=3D'mso-no-proof:yes'><o:p></o:p></span></p>

<p class=3DMsoNormal><font size=3D2 color=3Dgray face=3DArial><span =
style=3D'font-size:
10.0pt;font-family:Arial;color:gray;mso-no-proof:yes'><a
href=3D"http://dev.noumenaut.com"><em><i><font color=3Dblack =
face=3DArial><span
style=3D'font-family:Arial;color:windowtext;text-decoration:none;text-und=
erline:
none'>http://dev.noumenaut.com</span></font></i></em></a></span></font><s=
pan
style=3D'mso-no-proof:yes'><o:p></o:p></span></p>

<p class=3DMsoNormal><em><i><font size=3D2 color=3Dgray =
face=3DArial><span
style=3D'font-size:10.0pt;font-family:Arial;color:gray;mso-no-proof:yes'>=
262.632.7755</span></font></i></em><span
style=3D'mso-no-proof:yes'><o:p></o:p></span></p>

<p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span =
style=3D'font-size:
12.0pt;mso-no-proof:yes'>&nbsp;<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D1 color=3Dgray face=3DArial><span =
style=3D'font-size:
7.5pt;font-family:Arial;color:gray;mso-no-proof:yes'>&quot;And the walls =
shall
have eyes, and the doors shall have ears.&quot; - =
Bowie</span></font><o:p></o:p></p>

<p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span =
style=3D'font-size:
12.0pt'><o:p>&nbsp;</o:p></span></font></p>

</div>

</body>

</html>

------=_NextPart_002_005B_01C2E6B2.BD9D3940--

------=_NextPart_001_005A_01C2E6B2.BD9D3940
Content-Type: image/gif;
	name="image001.gif"
Content-Transfer-Encoding: base64
Content-ID: <image001.gif@01C2E6B2.B90C3F70>

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

------=_NextPart_001_005A_01C2E6B2.BD9D3940--

------=_NextPart_000_0059_01C2E6B2.BD9D3940
Content-Type: text/x-vcard;
	name="Steve Jovanovic (stevej@noumenaut.com).vcf"
Content-Transfer-Encoding: quoted-printable
Content-Disposition: attachment;
	filename="Steve Jovanovic (stevej@noumenaut.com).vcf"

BEGIN:VCARD
VERSION:2.1
N:Jovanovic;Steve
FN:Steve Jovanovic (stevej@noumenaut.com)
ORG:Noumenaut Software
TITLE:Noumenaut Skribe Geek
TEL;WORK;VOICE:(262) 632-7755
TEL;CELL;VOICE:(262) 930-9932
ADR;WORK:;;2918 Goold St.;Racine;WI;53404-1915;United States of America
LABEL;WORK;ENCODING=3DQUOTED-PRINTABLE:2918 Goold St.=3D0D=3D0ARacine, =
WI 53404-1915=3D0D=3D0AUnited States of America
URL;WORK:http://dev.noumenaut.com
EMAIL;PREF;INTERNET:stevej@noumenaut.com
REV:20030213T140645Z
END:VCARD

------=_NextPart_000_0059_01C2E6B2.BD9D3940--