<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Teejay VanSlyke</title><description>Letters and whimsy</description><link>https://www.teejayvanslyke.com/</link><item><title>Time aggressively marches on</title><link>https://www.teejayvanslyke.com/letters/time-aggressively-marches-on/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/time-aggressively-marches-on/</guid><pubDate>Thu, 19 Mar 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;My goodness, time sure is on an aggressive march. It seems like just yesterday I
was building my first website, spry, young, and 20.&lt;/p&gt;
&lt;p&gt;Now, at 40, I&apos;m at a crossroads. At the dawn of the age of artificial
intelligence, the cacophony of war, and the realization of mortality, it&apos;s about
damn time I went out on my own.&lt;/p&gt;
&lt;p&gt;I voluntarily left my most recent consulting gig three weeks ago, into a new world.
Artificial intelligence has all but eaten software engineering alive. What used
to take months of laborious effort now takes hours. I rebuilt this entire
website in the course of 24 hours. This is a new frontier, and the old way of
doing things won&apos;t get us very far.&lt;/p&gt;
&lt;p&gt;It&apos;s time to get brutally honest: I never really much enjoyed building software
professionally. It was exhausting to try to get the machine to do what you
wanted it to do. But now that the friction is evaporating, now that an idea can
be turned reality in days, what&apos;s to stop someone from going out on their own
and building an empire? When the only limit is your imagination, why go get
another lousy job?&lt;/p&gt;
&lt;p&gt;Stay tuned. There&apos;s so much more to come.&lt;/p&gt;
&lt;p&gt;T&lt;/p&gt;
</content:encoded></item><item><title>Tales from my 2024 mini retirement</title><link>https://www.teejayvanslyke.com/letters/tales-from-my-2024-mini-retirement/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/tales-from-my-2024-mini-retirement/</guid><pubDate>Thu, 18 Jan 2024 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Hiring in tech has slowed to a grinding halt, and I&apos;m currently looking
for work. But rather than stress out about securing my next
gig and spending every day overconcerned with what&apos;s going to happen next,
I&apos;m taking this time away from paid engineering work to stop and smell the
proverbial roses.&lt;/p&gt;
&lt;p&gt;The concept of the mini retirement isn&apos;t new. It was a term popularized by
Tim Ferriss, and refers to taking a set amount of time away from paid
employment to reset, retool, and enjoy life.&lt;/p&gt;
&lt;p&gt;For my entire career, I&apos;ve always had one project or another on my plate.
This has meant that, whatever I was set to do for the day, part of it was
occupied by the day-to-day responsibilities of the project. I&apos;ve always
been a diligent saver and in some ways have hoped the day would come where
I didn&apos;t have any paid work for a period of time. In fact, I remember at
one point &lt;em&gt;hoping&lt;/em&gt; for a recession in the tech industry.&lt;/p&gt;
&lt;p&gt;At the beginning of this period of idle time, I felt a sense of dread. My
income sources have dried up and I&apos;m burning through my savings. But
nothing in life is guaranteed, and what is our savings for if not for
supporting us?&lt;/p&gt;
&lt;p&gt;This realization has given me the courage to stop trying so hard to secure
new work right now. Would I rather spend these months (or years?)
constantly worrying about the future, or calmly enjoying these precious
days, which, I will never recover?&lt;/p&gt;
&lt;p&gt;I struggle with generalized anxiety and the state of my finances are no
exception. But I realize I&apos;m in a better position than most to weather
this storm. I have no children, no mortgage, no car payment, no student
loans. I have &lt;a href=&quot;/about&quot;&gt;lived in my van&lt;/a&gt; and could do it again if I had
to. I am creative by nature and constantly strive to learn new things.
These facts all give me confidence that I can kick back and enjoy this
period of idleness knowing I&apos;ve set myself up for success.&lt;/p&gt;
&lt;p&gt;So far, I&apos;ve occupied myself with several personal projects:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://github.com/teejayvanslyke/gigbot&quot;&gt;Gigbot&lt;/a&gt; is my Git-inspired
remote tech job aggregator for the command line. I&apos;ve been using it to
quickly peruse the most recent remote tech job listings across multiple
job boards.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;I&apos;ve been working on an HTML-based printable booklet zine engine, using
my original art and writing as content. The zine is called &lt;em&gt;EPHEMERA&lt;/em&gt;
and I&apos;ll be publishing it here soon.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;I started a new Discord server called &lt;em&gt;AI Took Our Jobs&lt;/em&gt;, as a place for
tech workers to help support one another during the current downturn.
&lt;a href=&quot;https://teejayvanslyke.com/2024/01/18/teejay@teejayvanslyke.com&quot;&gt;Email me&lt;/a&gt; if you&apos;d like an invite!&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://github.com/teejayvanslyke/taoverse&quot;&gt;Taoverse&lt;/a&gt; prints a random
verse from the Tao te Ching on the command line. I run the command in my
&lt;code&gt;.zshrc&lt;/code&gt; to print a verse every time I open a new terminal window.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;I&apos;ve been working on a new ebook about
&lt;a href=&quot;/letters/what-is-bohemianism-and-why-does-it-matter&quot;&gt;bohemianism&lt;/a&gt;
and how to use its tenets to live a more storied, meaningful, creative,
and adventurous life.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;I&apos;ve been decluttering by photographing and posting my unused stuff on
Craigslist for sale, as well as digitizing personal notes, greeting
cards, and documents I want to save but don&apos;t want to have to carry
around with me.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;I&apos;ve been casually learning more about machine learning using
&lt;a href=&quot;https://www.tensorflow.org/&quot;&gt;TensorFlow&lt;/a&gt; from free books and tutorial
videos online.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;All in all, this period has proven to be productive and exciting. I&apos;m
learning a ton and I recognize how lucky I am to have the resources to
pursue my own projects during this time. What will happen next? None of us
can be sure. And that&apos;s why it&apos;s important to take it easy,
man.&lt;/p&gt;
</content:encoded></item><item><title>Present wisdom&apos;s view of the past</title><link>https://www.teejayvanslyke.com/letters/present-wisdom-and-past-behavior/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/present-wisdom-and-past-behavior/</guid><pubDate>Fri, 28 Jul 2023 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;If you&apos;re a fallible human like me, you&apos;ve made some mistakes in your past
that you regret. Whether it&apos;s how you treated someone you love, how you
handled a stressful situation, or the general way with which you once
conducted yourself day-to-day, we all have things in our past we&apos;d have
done differently.&lt;/p&gt;
&lt;p&gt;And if you&apos;re committed to your personal growth, you&apos;ll likely find that
these feelings of regret seemingly come from nowhere, about things you
thought you&apos;d long since reconciled with yourself. This is because, if
you&apos;re getting wiser, you&apos;re viewing your past mistakes through a new and
improved lens. And this growth can be painful.&lt;/p&gt;
&lt;p&gt;I can say with confidence that I&apos;m a different person from who I was
a year, two years, five years, ten years ago. Every year I learn more
about myself and how to live more in accordance with my values. So it&apos;s no
wonder that when I look back, there are things that I did and said in the
past that my present self sees as foreign, and in some cases, revolting.&lt;/p&gt;
&lt;p&gt;And if you&apos;re a creative, introspective person with a tendency to journal
and make art like me, this becomes compounded by the fact you&apos;ve created
a living record of your past selves. Reading old journals and revisiting
old creative works can be illuminating, but it can also reveal the words
of a person who no longer occupies your body. And this can be
disorienting.&lt;/p&gt;
&lt;p&gt;In an act of memoriam, I recently purged a few of my old journals because
I realized the person who wrote the words in them was dead. I found myself
labeling this past version of myself: &quot;self-absorbed&quot;, &quot;delusional&quot;,
&quot;lost&quot;. The written words were so alien to me, reading them years later,
having resolved many of the issues I&apos;d dealt with back then.&lt;/p&gt;
&lt;p&gt;Will I read this post and feel the same way about it in a few years? Only
time and wisdom will tell.&lt;/p&gt;
</content:encoded></item><item><title>New watercolors now available</title><link>https://www.teejayvanslyke.com/letters/my-early-2023-collection-of-original-art/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/my-early-2023-collection-of-original-art/</guid><pubDate>Sun, 04 Jun 2023 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;A new collection of original art, Ink Into
Winter, is now available for viewing.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;In late 2022 I began to experiment more with color. Because I love
creating in the comfort of my favorite cafes, I decided the portable
nature of watercolors would be a natural fit. After noticing it was
difficult to achieve bold contrast with watercolors, I ordered a set of
India inks. Both afforded me the creative latitude to get lost in glorious
color.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a href=&quot;/art/ink-into-winter&quot;&gt;&lt;img src=&quot;/releases/ink-into-winter/01-cover@554x554.jpg&quot; alt=&quot;Cemetary&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;View the pieces here: &lt;a href=&quot;/art/ink-into-winter&quot;&gt;Ink Into Winter&lt;/a&gt;&lt;/p&gt;
</content:encoded></item><item><title>Nesting and the sense of home</title><link>https://www.teejayvanslyke.com/letters/nesting-and-the-sense-of-home/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/nesting-and-the-sense-of-home/</guid><pubDate>Tue, 18 Oct 2022 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Recently I&apos;ve been thinking a lot about &quot;home&quot;.&lt;/p&gt;
&lt;p&gt;For years, I clung to the minimalism fad as a way to become nimble and
ready to jump at any opportunity. Abundant potential energy. Few
possessions or ties to hold one down.&lt;/p&gt;
&lt;p&gt;Then, when I experimented with its extreme and sold all my belongings to
move into a campervan, I realized how damn lovely it is to have a proper
home. So now I find myself where I am today, again occupying an apartment
filled with all my things.&lt;/p&gt;
&lt;p&gt;But this time, I&apos;ve managed to retain a sense of appreciation and
gratitude for it. My refuge. My sanctuary. The one place on Earth where
I can peacefully practice my own anarchy.&lt;/p&gt;
&lt;p&gt;The minimalist ideal still rears its head in my life now and again. This
August, after months of relentless Florida heat, the idea of living in
a van to escape was intoxicating. So I took a long, beautiful trip up
north. But I found that, in spite of my new comfort of a hospitable
climate, it couldn&apos;t compare to the profound sense of home I had built
around me back in Florida.&lt;/p&gt;
&lt;p&gt;As I&apos;ve grown older, I&apos;ve noticed the slow transition in my values from
freedom toward security. It has not been without struggle: My initial
brush with this truth was riddled with self-denial, hoping to retain my
youthful ambition. But there&apos;s no denying my priorities have shifted. And
most of them, for the better.&lt;/p&gt;
</content:encoded></item><item><title>A Porchfest Porchcat Saturday</title><link>https://www.teejayvanslyke.com/letters/a-porchfest-porchcat-saturday/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/a-porchfest-porchcat-saturday/</guid><pubDate>Sat, 17 Sep 2022 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;img src=&quot;/assets/images/1280x1280/vincent/porchfest-band-on-porch-0ce768c0.jpg&quot; alt=&quot;Band playing on porch&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Pictured: I stumbled upon this band playing classic rock tunes as I made
my way from the métro in NDG (details below).&lt;/p&gt;
&lt;p&gt;Last night I went down to Boulevard Saint-Laurent to check out the street
fair I noticed they were starting when my bus ride from Vieux-Montréal the
other day took a meandering detour up Sherbrooke. I also wanted to go grab
a beer at the Anglophone pub I discovered, Barfly, since I was starved for
some socialization and figured it would be a good place to chat up some
locals.&lt;/p&gt;
&lt;p&gt;I had some great conversations about the politics of Quebec and Canada,
the sheer complexities of which I was not aware. I didn&apos;t realize how
contentious the Quebec political climate is, and how much the provincial
government has alienated its anglophone constituents.&lt;/p&gt;
&lt;p&gt;During our conversations, someone brought up the fact they were going to
attend an event today called Porchfest
NDG, a neighborhood music festival taking
place all around the Notre-Dame-de-Grâce neighborhood. I woke up and,
after writing my morning pages, decided I&apos;d make good use of a sunny
afternoon and find my way there.&lt;/p&gt;
&lt;p&gt;Luckily, NDG can be accessed via the Métro Orange Line, at the Vendôme
station. This was the furthest I had ridden the Métro so far, and I was
taken aback by how unique and beautiful some of the station interiors
were. It got me to thinking that it would be a fun photography project to
visit every métro stop, photograph each one and publish the photos on
a website to showcase the art and architecture that livens up commuters&apos;
days here.&lt;/p&gt;
&lt;p&gt;When I got off the train, I emerged a couple blocks off Sherbrooke, and
tried my best to orient myself.&lt;/p&gt;
&lt;p&gt;First, I discovered the band pictured above playing some mean classic rock
covers. People had congregated in the street to watch them play, so many
that cars had a difficult time getting around us. It was incredibly
inspiring to see a full-on concert crowd in someone&apos;s front yard.&lt;/p&gt;
&lt;p&gt;I remembered NDG was just beyond the A15 overpass, so I followed the road
signs to the A15 and eventually found the park that was to host the
festival&apos;s inaugural event.&lt;/p&gt;
&lt;p&gt;I was too late for that, but instead stumbled upon a dadcore punk rock
band playing outside an Anglophone used books and music shop:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/images/1280x1280/vincent/porchfest-band-at-encore-montreal-ced7d809.jpg&quot; alt=&quot;Band playing at
Porchfest&quot; /&gt;&lt;/p&gt;
&lt;p&gt;They were excellent, but unfortunately I arrived at the end of their set
and they only played a couple more songs.&lt;/p&gt;
&lt;p&gt;I also noticed this nifty mural while walking on Sherbrooke:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/images/1280x1280/vincent/mural-on-sherbrooke-4919ea85.jpg&quot; alt=&quot;Mural on Sherbrooke&quot; /&gt;&lt;/p&gt;
&lt;p&gt;On my way back, I remembered that Sherbrooke would eventually lead me back
downtown, so I decided to walk along it as far as I could before I got
tired, and then find the nearest métro station to wherever I was. This led
me to Westmount Square and the Atwater métro:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/images/1280x1280/vincent/atwater-metro-7868f4b2.jpg&quot; alt=&quot;Atwater Métro&quot; /&gt;&lt;/p&gt;
&lt;p&gt;I had to change trains at Berri-UQAM, since Atwater was on the Green Line.
Eventually, my legs sore and my body sleepy, I found my way home.&lt;/p&gt;
&lt;p&gt;After a few hours of lazing about in bed, I walked down to the phở
restaurant around the corner to get some tasty soup. The guy running the
place (I imagine he&apos;s the owner) is an all-around chill guy—super-friendly
and hospitable. And being that it feels like 110 degrees outside in
Florida most of the year, I haven&apos;t wanted noodle soup much down there, so
it was nice to have a cozy bowl of noodles.&lt;/p&gt;
&lt;p&gt;When I got back from dinner and a quick trip to the corner grocery store,
a white-and-black cat approached me on the sidewalk outside the apartment.
When I bent down to pet her, I expected her to be shy and to run away, but
she seemed quite interested in me. So much so that she followed me up the
stairs, where I sat for a moment and pet her. Then she leapt onto my lap,
at which point I began wondering if she&apos;d been abandoned, or at least,
forgotten about.&lt;/p&gt;
&lt;p&gt;But then, when I left her and went to unlock my apartment door, she zipped
up the stairs and walked in the door ahead of me.&lt;/p&gt;
&lt;p&gt;It was at this point that I was concerned. Was this just an extra-social
neighborhood cat, or was she in some sort of distress? I located two phone
numbers on her tag and called and texted both of them while I sat on the
porch and comforted her.&lt;/p&gt;
&lt;p&gt;It took a full hour for her owners to return my calls, but they laughed
and said she&apos;s quite social... which I think is quite the understatement!
Her name was Fleurette, and she was probably my favorite part of the day:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/images/1280x1280/vincent/fleurette-0b3b3c38.jpg&quot; alt=&quot;Fleurette&quot; /&gt;&lt;/p&gt;
</content:encoded></item><item><title>A brisk wonderland</title><link>https://www.teejayvanslyke.com/letters/a-brisk-wonderland/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/a-brisk-wonderland/</guid><pubDate>Thu, 15 Sep 2022 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;img src=&quot;/assets/images/1280x1280/vincent/church-in-vieux-montreal-3541143b.jpg&quot; alt=&quot;Church in Vieux-Montréal&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Pictured: A church I visited in Vieux-Montréal yesterday. The interior
was stunning, but unfortunately my little Nikon camera couldn&apos;t cope with
the low-light conditions. Trust me when I say it was a spiritual
experience.&lt;/p&gt;
&lt;p&gt;Autumn has broken here in Montréal in a real way. I awoke this morning
delightfully chilly, pulling the sheets and blankets up over me and
snuggling in for a few more minutes of rest before springing up to make
the morning coffee.&lt;/p&gt;
&lt;p&gt;The sky is clear and blue, and Montréalers are bundled in hats and scarves
and jackets.&lt;/p&gt;
&lt;p&gt;The past weeks have been incredible for my personal growth, in spite of
(and probably because of) a spell of depression. Here&apos;s why:&lt;/p&gt;
&lt;p&gt;Throughout most of my adult life, I&apos;ve been a hopeless romantic. I don&apos;t
mean this only in the sense of yearning for romantic love, although that
has been a component. I mean that I&apos;m hopelessly addicted to the promise
of salvation that allegedly waits for me on the other side of some effort.&lt;/p&gt;
&lt;p&gt;This year, that effort was my 25-hour drive to Quebec. I was so sure that
when I arrived, I would be greeted with perpetual elation and bliss.
Instead, I found ... myself, here, in Quebec, away from all my friends and
family, in a city where I know nobody.&lt;/p&gt;
&lt;p&gt;At first, this was an exciting prospect. I love that feeling of arriving
in a new city and feeling the energy and potential of the place. But, as
the days go on, it becomes familiar, and that novel feeling wears off.
What once was new becomes routine. And it happens quickly.&lt;/p&gt;
&lt;p&gt;I found it difficult to cope with this, until I asked myself what the
experience could teach me. And the lesson, found through weeks of daily
journaling, wasn&apos;t what I expected to find on this trip. But it is what
I&apos;ve truly needed.&lt;/p&gt;
&lt;p&gt;For most of my life I&apos;ve struggled with remaining grounded. Sometimes
I feel like a bee flitting from place to place, trying to pollinate as
many flowers as he can. I try to view this as a part of my nature and
nothing to be overly concerned with.&lt;/p&gt;
&lt;p&gt;And I think, to a point, it&apos;s true. I&apos;m so grateful for having the
privilege to have lived more life by my mid-thirties than most people live
in their entire lives. Sometimes, if I&apos;m tuned into the divinity of the
present moment, I feel the need to pinch myself just to see if I&apos;m
dreaming, because I&apos;ve been so goddamn blessed in this life. I wouldn&apos;t
trade my adventurousness, my creativity, or my appetite for romance for
anything.&lt;/p&gt;
&lt;p&gt;But the insidious side of all of this shows itself when I&apos;m not tuned into
the present moment and I&apos;m not viewing my current circumstance as the
existential perfection that it is. I become bitter. Anxious. Depressed.
I expect so much more than life can offer, and when it doesn&apos;t deliver,
I can&apos;t cope with the dissonance.&lt;/p&gt;
&lt;p&gt;We all know that attachment is the root of all suffering. But it requires
constant effort and practice to make use of this beyond uttering it as
a feel-good platitude. It requires noticing when your expectations exceed
reality, and bringing your expectations back down to earth. And most of
all, it requires observation of our present circumstance—no matter how
vile or unfit as it may seem—as perfect and divine.&lt;/p&gt;
&lt;p&gt;The curious thing is, as much as my solitude on this trip has recovered
this wisdom from the bowels of my intellect, I find myself constantly
forgetting and returning to my patterns of control and the anxiety and
depression they produce.&lt;/p&gt;
&lt;p&gt;Perhaps that&apos;s what people mean when they say that solitude can help us
find ourselves. Perhaps it is out of necessity, in our darkest and most
lonely moments, that we uncover wisdom we&apos;ve always known in our minds but
seldom practiced in our hearts.&lt;/p&gt;
&lt;p&gt;So today, I&apos;m basking in the tranquility of this perfect present moment.
I hope you find the courage to do the same.&lt;/p&gt;
</content:encoded></item><item><title>Summer&apos;s last hurrah, I hope</title><link>https://www.teejayvanslyke.com/letters/summers-last-hurrah-i-hope/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/summers-last-hurrah-i-hope/</guid><pubDate>Sun, 11 Sep 2022 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;img src=&quot;/assets/images/1280x1280/vincent/marche-jean-talon-e9b24354.jpg&quot; alt=&quot;Marché Jean-Talon&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Pictured: Marché Jean-Talon, a beautiful open-air year-round farmers&apos;
market just a block away from my flat in Montréal.&lt;/p&gt;
&lt;p&gt;When I first arrived in Montréal, I was greeted by an incredible reprieve
from the Florida heat. Autumn was in the
air and I got to wear my favorite
sweater, a pair of boots, and a beanie. I &lt;em&gt;love&lt;/em&gt; autumn. I feel most at
home during the autumnal weather—when I can wear clothes that don&apos;t make
me feel like a scrub and the city turns inward. As a closeted introvert,
it&apos;s a celebration of afternoons spent sitting in cozy cafes and the
click-clack of my favorite boots on the sidewalk.&lt;/p&gt;
&lt;p&gt;But this week, all of that changed as Montréal is experiencing another
heat wave. Yesterday, temperatures reached 85 degrees Fahrenheit. Today,
they&apos;re hovering around 83.&lt;/p&gt;
&lt;p&gt;And I&apos;ve noticed in the past couple days that I&apos;m more irritable than I&apos;d
been in the weeks prior. I wake up in a great mood, but as soon as I walk
outside and I&apos;m blinded by the late summer sun, all I want to do is go
back inside, close the blinds, and take a nap.&lt;/p&gt;
&lt;p&gt;All of this is making me wonder how much longer I can stomach living in
Florida. Florida&apos;s winter is idyllic—from December to March, it&apos;s my
paradise. But the rest of the year it&apos;s a bit like living in a wet, slimy
oven.&lt;/p&gt;
&lt;p&gt;The weather is supposed to turn on Tuesday, with rains bringing the
temperature down to a lovely 69 degrees Fahrenheit. My sweaters and
jackets and boots and socks are waiting anxiously, hoping this is the end
of their six-month hiatus from the street.&lt;/p&gt;
&lt;p&gt;In the meantime, I&apos;ve locked myself inside from the summer heat. I wanted
to go visit the
Basilique Notre-Dame de
Montréal,
but the thought of walking back out into the heat makes me think next
weekend I&apos;ll enjoy it a bit more.&lt;/p&gt;
&lt;p&gt;The positive aspect of all of this is that I&apos;ve had a lot of time for
self-reflection and self-improvement. I&apos;ve been committing to a daily
exercise regimen, I&apos;ve been eating healthily, and I&apos;ve been doing a lot of
therapeutic writing to help wipe away the cobwebs in my brain.&lt;/p&gt;
&lt;p&gt;I also took a trip down to Vieux-Montréal (Old Montreal) to visit the
Montréal &lt;a href=&quot;https://www.fluevog.com/&quot;&gt;John Fluevog&lt;/a&gt; store, my favorite
bootmaker. They had a pair of burgundy Derby Swirls in my size, so
I splurged on a pair because they&apos;ve always been my dream boots:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/images/1280x1280/vincent/derby-swirls-41e2fc77.jpg&quot; alt=&quot;Fluevog Derby Swirls&quot; /&gt;&lt;/p&gt;
&lt;p&gt;I love them, but I could only wear them for an hour this morning until the
city turned into a sweaty inferno.&lt;/p&gt;
&lt;p&gt;I&apos;m trying not to be timid about doing some shopping and spending some
money while I&apos;m here, since the exchange rate works splendidly in my favor
and Montréal&apos;s shopping options are near limitless! There&apos;s a denim store
called &lt;a href=&quot;https://www.jeansjeansjeans.ca/&quot;&gt;Jeans Jeans Jeans&lt;/a&gt; that
I overheard the locals talking about, so a new pair of jeans might be in
the cards, too.&lt;/p&gt;
&lt;p&gt;Hope you all have a beautiful Sunday!&lt;/p&gt;
</content:encoded></item><item><title>As the leaves turn</title><link>https://www.teejayvanslyke.com/letters/as-the-leaves-turn/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/as-the-leaves-turn/</guid><pubDate>Wed, 07 Sep 2022 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;img src=&quot;/assets/images/1280x1280/vincent/montreal-autumn-leaves-e1f7dce5.jpg&quot; alt=&quot;Montréal Autumn Leaves&quot; /&gt;&lt;/p&gt;
&lt;p&gt;One of the things I miss dearly from up north is the changing colors of
the autumn leaves. Out in the Pacific Northwest, we&apos;d get a bit of
a colorful autumn, but nothing compares to the brilliance of the autumn
colors in the northeast.&lt;/p&gt;
&lt;p&gt;I noticed, while sipping my morning coffee at the cafe I&apos;ve been
frequenting, that the leaves had begun their slow transformation from
green to amber. So often I&apos;m so absorbed in whatever it is I&apos;m doing that
I hardly notice the leaves change—and I realized this morning that it
would do me some good to slow down.&lt;/p&gt;
&lt;p&gt;It&apos;s a bright, sunny, crisp day here in Montréal, and I&apos;m so grateful
I was blessed with the ability to take this sojourn. Travel, for me, is as
much about seeing new frontiers as it is about rekindling an appreciation
of the place from which you came. I&apos;m so excited to reconnect with my
friends back in St Pete (if you&apos;re reading this, hi! I love you!). And I&apos;m
very excited to make a glorious drive back home just as the weather here
is turning frigid.&lt;/p&gt;
&lt;p&gt;Speaking of which, I decided over the weekend to extend my stay, so I&apos;ll
be departing Montréal the day before Halloween, October 30. Despite it
costing a pretty penny to book another place for October, I figured it
would be worth it to stay, since I&apos;m already here.&lt;/p&gt;
&lt;p&gt;On Monday I stumbled upon an anglophone open mic comedy night at a bar on
St Laurent. It was such a relief to be in an English-dominant space and to
have people to talk to. I&apos;ll definitely be returning next week!&lt;/p&gt;
&lt;p&gt;Hope you all have a beautiful week, wherever you may be.&lt;/p&gt;
</content:encoded></item><item><title>Back to work</title><link>https://www.teejayvanslyke.com/letters/back-to-work/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/back-to-work/</guid><pubDate>Fri, 02 Sep 2022 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;img src=&quot;/assets/images/1280x1280/vincent/montreal-alleyway-e7479ccb.jpg&quot; alt=&quot;Alleyway in Montréal&quot; /&gt;&lt;/p&gt;
&lt;p&gt;I&apos;ve returned to my client work as of yesterday, so I&apos;m sure my updates will
probably slow in the coming weeks as I focus more on that.&lt;/p&gt;
&lt;p&gt;One highlight from yesterday is that I successfully ordered a sandwich in
French without the clerk noticing I wasn&apos;t fluent (or maybe he did, but he
didn&apos;t switch to English, so, cool!).&lt;/p&gt;
&lt;p&gt;I also had an incredible experience last night when I got off the métro and
wanted a cold drink. In most American cities, that would usually mean walking
half a mile in some direction and finding a convenience store or gas station,
since we decided grocery stores should only be built for cars. But as soon as
I got off the métro, there was a small supermarket &lt;em&gt;directly&lt;/em&gt; on my way home.
I walked in, grabbed a few things, and walked back to the flat.&lt;/p&gt;
&lt;p&gt;I&apos;m currently prospecting staying in Montréal another month, to return to the
States around Halloween. It would cost a pretty penny to stay another month,
but I&apos;m already here and enjoying myself, so it seems like it would be worth
it.&lt;/p&gt;
&lt;p&gt;Okay, back to work. Enjoy the day, wherever you may be, dear reader!&lt;/p&gt;
</content:encoded></item><item><title>I don&apos;t want to go back</title><link>https://www.teejayvanslyke.com/letters/i-dont-want-to-go-back/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/i-dont-want-to-go-back/</guid><pubDate>Thu, 01 Sep 2022 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;img src=&quot;/assets/images/1280x1280/vincent/cafe-ferlucci-5502c77d.jpg&quot; alt=&quot;Cafe Ferlucci&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Pictured above: Cafe Ferlucci, a charming little cafe on Castlenau a few
blocks from my Montréal flat.&lt;/p&gt;
&lt;p&gt;I woke up this morning in a bit of a panic. I&apos;m not sure if I had a dream
or what happened, but I tossed and turned and couldn&apos;t fall back asleep.&lt;/p&gt;
&lt;p&gt;I&apos;m in love with Montréal, but I know I cannot stay.&lt;/p&gt;
&lt;p&gt;It&apos;s not uncommon for me to fall in love with cities when I arrive, only
to find the love affair wear thin after a season or two. But here, the
love affair is a bit more practical. Montréal, to me, feels like the most
livable city in North America.&lt;/p&gt;
&lt;p&gt;There are myriad grocery stores within walking distance. The streetscape
is pleasant and inviting. The culture is elegant—not flashy, not overdone,
and not opulent (I&apos;m looking at you, Florida). People ride bicycles to
work, down streets designed to accommodate them. There are very few large
pickup trucks, and when you see one, you laugh at how ridiculous they look
trying to navigate Montréal&apos;s crowded streets. You hardly ever see
Canadian flags on things, because people here evidently don&apos;t feel so
insecure about their country&apos;s standing so as to shove their nationalism
down your throat. (I&apos;m looking at you, America).&lt;/p&gt;
&lt;p&gt;To me, it is a more civil society. Now, this is all my impression from the
few square kilometers I&apos;ve seen of Montréal. The rest of Canada, I&apos;m sure,
is probably nearly as backwards as much of America. But here, life is
incredibly pleasant and rich. That the city is bilingual only adds to this
richness.&lt;/p&gt;
&lt;p&gt;And I really don&apos;t want to go back to the States.&lt;/p&gt;
&lt;p&gt;That&apos;s not to say I don&apos;t love America. It&apos;s a place that had a great run.
Some of the best art, music, and film was and is produced in America. If
you&apos;re an immigrant from a less affluent country, moving to America can be
an opportunity out of poverty. But compared to the rest of the developed
world, we&apos;ve messed up, severely. We&apos;ve prioritized the illusion of
individual self-determination—a tenuous illusion based on false
premises—over the development of the commonwealth. That has left us with
crumbling, inadequate infrastructure, housing that&apos;s built for the rich
few, ever-increasing healthcare costs, and a society of self-help gurus
and get-rich-quick schemes.&lt;/p&gt;
&lt;p&gt;Again, that&apos;s not to say anywhere is perfect. Canada is certainly &lt;em&gt;not&lt;/em&gt;
perfect. But in traveling, one can see where our deficits lie.&lt;/p&gt;
&lt;p&gt;I&apos;ve done a bit of research, and it would be quite the uphill battle to
immigrate to Québec. The most difficult part of the process, I imagine,
would be becoming fluent in French. But Québec is more strict with its
immigration policies than the rest of Canada. I feel fortunate that I have
a technical skillset that is in demand around the world, so I imagine if
I found a job and became fluent in French, I could make it happen.&lt;/p&gt;
&lt;p&gt;For now, being that I still have an apartment in Florida, I&apos;m going to
enjoy the winter in St Pete with the beautiful friends I&apos;ve made there.
But something has been gnawing at me for years—that something just doesn&apos;t
feel right to me living in America anymore. Being here and feeling so much
more at ease is confirming that. Maybe the grass &lt;em&gt;is&lt;/em&gt; greener if you find
the right grass.&lt;/p&gt;
</content:encoded></item><item><title>Montréal, the land of beautiful people</title><link>https://www.teejayvanslyke.com/letters/montreal-the-land-of-beautiful-people/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/montreal-the-land-of-beautiful-people/</guid><pubDate>Wed, 31 Aug 2022 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;img src=&quot;/assets/images/1280x1280/vincent/place-de-castlenau-50541ba5.jpg&quot; alt=&quot;Place de Castlenau&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Pictured: Place de Castlenau, a street in the Villeray neighborhood that,
you guessed it, is closed to private automobiles during the summer.&lt;/p&gt;
&lt;p&gt;Whether or not it is merely the language barrier playing tricks, I cannot
help but be ensconced by the elegant, poised, and beautiful nature of
Montréalers. I experienced a similar feeling when I was living in München.
What is it that makes us Americans seem so generally crude by comparison?&lt;/p&gt;
&lt;p&gt;And it warrants reiterating that my perception is a generalization. But
I can&apos;t help but notice that people here put in more effort to live la
belle vie than most of us do in America.&lt;/p&gt;
&lt;p&gt;Most people&apos;s manner of dress is elegant—refined yet modest, impressive
but not flashy. There&apos;s a sense that people put effort into their
appearance, but not so much that they appear outlandish, as if they&apos;re
trying merely to draw attention to themselves. Nor, on the other end of
the spectrum, do they appear slovenly and unkempt. Again, this is
a generalization, and there are exceptions in America as well as in
Montréal.&lt;/p&gt;
&lt;p&gt;As well, the city is generally clean and I imagine it&apos;s the result of
people caring enough to keep it that way. Compared to New York, I&apos;d eat
off the floor of the Métro here.&lt;/p&gt;
&lt;p&gt;That&apos;s not to say I haven&apos;t seen my share of ugly behavior since I&apos;ve been
here. I saw a jerk in a BMW swerve around someone stopped in traffic and
nearly collide with an oncoming car, all so they could be stuck behind yet
another car. And I&apos;ve noticed people on the street &lt;em&gt;will not&lt;/em&gt; smile back
at you—something that I&apos;d grown accustomed to in Florida.&lt;/p&gt;
&lt;p&gt;But overall, I feel so much more at ease here than I do in America. The
cosmopolitan spirit of the city is inspiring and energizing.&lt;/p&gt;
&lt;p&gt;Now if you&apos;ll excuse me, I have some serious people-watching to do. Tant
de belles personnes!&lt;/p&gt;
</content:encoded></item><item><title>Un paradis piétonnier</title><link>https://www.teejayvanslyke.com/letters/a-pedestrian-paradise/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/a-pedestrian-paradise/</guid><pubDate>Tue, 30 Aug 2022 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;img src=&quot;/assets/images/1280x1280/vincent/off-mont-royal-pedestrian-street-d57560a7.jpg&quot; alt=&quot;Off Mont-Royal&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Pardon my French, haux haux haux... I&apos;m trying to learn as much as I can
while I&apos;m here. The title of this post translates to &quot;A pedestrian
paradise&quot;.&lt;/p&gt;
&lt;p&gt;At risk of sounding like a broken record: Why do we build cities like we
do in the United States, when there&apos;s &lt;em&gt;clearly&lt;/em&gt; a better way? I came to
Montréal to discover whether my suspicions were correct—that there could
be a city somewhere in North America where the automobile wasn&apos;t the
highest priority citizen. Even in &quot;progressive&quot; Portland, life without
a car was tenuous at best due to most of the city being filled with
single-family housing. And Manhattan has the opposite problem: Skyscrapers
suffocate the island with hoardes of pedestrians on every streetcorner.&lt;/p&gt;
&lt;p&gt;But here in Montréal, life is so pleasant on foot. I walked around in awe
at how much I could access on my own two feet. I walked by several
supermarkets, some ethnic and some organic. Shops of every stripe. Cafes,
bars, restaurants. Parks and playgrounds. And despite the density,
I haven&apos;t once felt overwhelmed. In fact, I&apos;ve felt more comfortable than
I ever do in America, because I haven&apos;t been steering a two-ton hunk of
glass and metal through a goddamn city.&lt;/p&gt;
&lt;p&gt;There are several streets in the central city that close traffic to
private automobiles, such as the one pictured above. Walking down these is
like being in an urban wonderland. It&apos;s quiet. It&apos;s charming. There&apos;s
a real sense of place. You&apos;re free to stop and enjoy yourself without the
threat of being run over.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/images/1280x1280/vincent/mont-royal-a0d43aba.jpg&quot; alt=&quot;Mont-Royal Avenue&quot; /&gt;&lt;/p&gt;
&lt;p&gt;I will never stop asking: Why don&apos;t we do this in America? Why do we
choose to live our lives confined to horrid glass and metal boxes
careening dangerously through asphalt-laden hellscape cities, when there&apos;s
clearly a more livable way? I&apos;m here, I&apos;m experiencing it, and it&apos;s so
much better. Not only is it better, but it&apos;s also, per capita, much more
efficient and economical.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/images/1280x1280/vincent/montreal-residential-street-9c8a8766.jpg&quot; alt=&quot;Residential street&quot; /&gt;&lt;/p&gt;
&lt;p&gt;I&apos;ve had a few incredible multilingual experiences here so far. Yesterday,
I came across a Latin supermarket, where I bought some pastries,
a baguette, and some chorizo to prepare at home. The clerk didn&apos;t speak
any English. I didn&apos;t speak any French, but I could tell she spoke a bit
of Spanish. So I used the few Spanish phrases I knew to hopefully convey
the transaction. It barely worked and we both kept laughing at each other.&lt;/p&gt;
&lt;p&gt;Now I&apos;m sitting at an Italian-owned cafe. I walked in, and, armed with
a bit more French, asked &quot;Parlez-vous anglais?&quot; The barista seemed a bit
confused, and just asked &quot;English?&quot; I couldn&apos;t tell what her native
language was, but a couple of the regulars spent the next fifteen minutes
conversing, switching back and forth between Italian and English.&lt;/p&gt;
&lt;p&gt;All of this is making me realize how much more rich life would be if
I were multilingual, and I&apos;m going to make it a priority to learn French
from now on, since I&apos;m sure I would enjoy my time here even more if
I weren&apos;t timid on account of the language barrier.&lt;/p&gt;
&lt;p&gt;I&apos;ll leave you today with an interesting quirk I&apos;ve seen here. There are
still quite a few payphones strewn about the city—I wonder if these are
kept in operation for those people who cannot afford cell phones. Anyway,
being a bit of a telephony nerd, I couldn&apos;t help but snap a picture:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/images/1280x1280/vincent/montreal-phone-booth-d44bba12.jpg&quot; alt=&quot;Montréal pay phone&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;À plus tard!&lt;/em&gt;&lt;/p&gt;
</content:encoded></item><item><title>Je suis arrivé</title><link>https://www.teejayvanslyke.com/letters/je-suis-arrive/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/je-suis-arrive/</guid><pubDate>Mon, 29 Aug 2022 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;img src=&quot;/assets/images/1280x1280/vincent/rue-saint-zotique-20ce7b03.jpg&quot; alt=&quot;Rue Saint-Zotique&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Apologies for the lack of updates for those of you hanging onto your seats
wondering where I&apos;ve been all weekend.&lt;/p&gt;
&lt;p&gt;I left Pittsburgh and stayed with my aunt and uncle at their country
house, nestled in the cornfields of the Finger Lakes. It was lovely to see
them and to reconnect after they visited me down in St Petersburg in
April. I woke up to incredibly fresh air, dewey grass, and the most
profound silence I&apos;d heard in months. They also invited me to the annual
Borodino Pancake Breakfast, a charity event for the volunteer fire
department in the small town where they live. Unfortunately I took exactly
zero photographs the entire time I was there, and I&apos;m not sure why.&lt;/p&gt;
&lt;p&gt;I left their house yesterday morning and headed north. Being that my
apartment in Montreal wasn&apos;t going to be ready until the last day of the
month, I wasn&apos;t sure what I was going to do initially. I thought maybe I&apos;d
find some camping on the St Lawrence River—perhaps on Wellesley Island.
But once I got up there, the border called to me and I decided to just go
to Canada and figure it out once I was up there.&lt;/p&gt;
&lt;p&gt;The border crossing was surprisingly uneventful. I made sure to use
Canada&apos;s online arrival documentation tool ahead of crossing the border,
in order to submit my vaccination documentation. But when I arrived at the
border, I was hardly scrutinized at all. The customs official merely asked
if I had any alcohol, tobacco, or firearms, and then sent me on my way. No
Covid screening and no in-depth questioning about where I&apos;d stay.&lt;/p&gt;
&lt;p&gt;Whenever I&apos;m in Canada, it always feels like a slightly different version
of the United States. The highway signage is similar but just a bit
different. There&apos;s a sense you&apos;re still in North America, but with
a slightly more European flair. I was taken aback by how empty most of
Ontario is, at least along 401. The landscape was flat and thick with
trees.&lt;/p&gt;
&lt;p&gt;Once I crossed the border into Quebec, the signage went from bilingual to
francophone. I suddenly had to put on my fast-learner hat while driving to
make sure I was still heading in the right direction and not breaking any
laws that were, at this point, only communicated in French.&lt;/p&gt;
&lt;p&gt;As I&apos;ve said in previous posts, one of the prinicpal reasons for this trip
is to see how other cities are organized. One thing I noticed once
I entered the Montreal metro area was that highway 20 suddenly became
a surface street through the suburbs. There was no grade separation until
I reached the Montreal city center (Centre-Ville).&lt;/p&gt;
&lt;p&gt;Once the downtown skyline emerged, I knew I was about to embark upon the
most intensive urban driving I&apos;d done since the last time I drove a rental
car in New York. And my GPS device in my car, while excellent for
navigating American streets, isn&apos;t loaded with Canadian city data. So
I was on my own, having to navigate Montreal from memory from the maps I&apos;d
inspected in the months leading up to my trip. That, as you can imagine,
was a bit of a rush.&lt;/p&gt;
&lt;p&gt;I took the Centre-Ville exit toward Rue Guy and ended up on an insanely
busy boulevard in the heart of downtown Montreal. I had forgotten how much
pedestrian activity lights up the streets of a cosmopolitan city. If
I hadn&apos;t been driving Vincent through all of it, I would have been
delighted. On this particular street, most left turns were prohibited, but
I knew from memory that I needed to head due northwest to get to the
quieter neighborhoods.&lt;/p&gt;
&lt;p&gt;I somehow found my way to Boulevard Saint Laurent and was in the
most hectic urban driving I&apos;d ever done. Cyclists weaved between lanes.
Cars would use lane lines as mere suggestions. The street was bustling
with activity, it being such a beautiful Sunday afternoon. Again, I was
both struck by how beautiful it all was, but also couldn&apos;t look away from
the street lest I hit a pedestrian or rear-end another vehicle.&lt;/p&gt;
&lt;p&gt;At this point, all I wanted to do was to park Vincent on a quiet street,
but there were very few of those abound. What residential streets I could
find had restrictive parking, with signs saying things like &quot;No Parking
9h-23h JEUDI 1 AVRIL AU 1 DÉC&quot; (9:00am to 11:00pm Thursdays from April
1 to December 1). Again, it was imperative that I learn quickly. And
I love that about travelling to places where I don&apos;t know the language.
You&apos;re forced to learn and adapt.&lt;/p&gt;
&lt;p&gt;I kept driving, trying desperately not to hit anyone while also keeping an
eye on the street signs to see if I could find a spot where Vincent could
take a nap. Finally, I came across what appeared to be a retirement home
with unrestricted parking out front. I parked Vincent and took a deep
breath.&lt;/p&gt;
&lt;p&gt;Now I was tasked with finding a place to stay for these few nights before
my reserved flat was available. So I hopped into Vincent&apos;s belly and took
out my computer. I&apos;ve been using the Nokia as a hotspot to access the
Internet, so I reached for it in the front seat. But it wasn&apos;t there.
I searched high and low, and couldn&apos;t find my cell phone. I took another
deep breath.&lt;/p&gt;
&lt;p&gt;Here I was, in a francophone city, tired and hungry, and unable to secure
lodging for the night. I calmed myself down by remembering I could stealth
camp in the van for the night if I had to.&lt;/p&gt;
&lt;p&gt;I packed my backpack and went searching for a cafe or bar where I could
use the wifi. Somehow I couldn&apos;t find a single place. I found one cafe and
asked the owner if he had wifi, but he didn&apos;t allow his customers to use
it. This reminded me of the cafe culture in Europe, which I had long
forgotten about: Most cafes in Europe are not computer work hubs like they
are in the United States. It&apos;s a bit frowned upon if you post up in
a European cafe with your laptop.&lt;/p&gt;
&lt;p&gt;As I walked, I tried my best to enjoy myself in spite of the
circumstances. I had arrived! I was finally here, after months of planning
and anticipation. And so far, the streetscape was living up to my
expectations. The streets were vibrant, the people beautiful, and there
was a sense that people here valued aesthetics and the arts and urban
density and diversity and bicycling and all the other things I wish
America had more of.&lt;/p&gt;
&lt;p&gt;But I was still without a phone.&lt;/p&gt;
&lt;p&gt;I returned to Vincent and searched yet again, just to be sure. I couldn&apos;t
imagine where I might have left it, since the only place I stopped in
Canada before Montreal was a rest area on 401. I didn&apos;t remember bringing
my phone inside or using it, so I couldn&apos;t imagine I had left it there.&lt;/p&gt;
&lt;p&gt;I decided in one last desperate attempt to move the passenger seat back to
see if somehow it was lodged in the seat somewhere. I pulled the lever
that engages the seat, and my trusty Nokia sprung out into view. Dieu
merci!&lt;/p&gt;
&lt;p&gt;Suddenly the world got a lot brighter. I went online and booked an
apartment for the few days nearby, and walked over to it since it was
already ready for a guest.&lt;/p&gt;
&lt;p&gt;That evening, after settling in a bit, I decided to go exploring a bit.
Throughout the pandemic, I&apos;ve desperately missed urbanism. I love to ride
metros and explore cosmopolitan cities on foot, so I decided to go find
the nearest Metro stop and take a ride back to Saint Laurent.&lt;/p&gt;
&lt;p&gt;As I did, a feeling of glee and relief overcame me. I realized I was
finally in a place where I didn&apos;t have to spend all my transit time inside
of a glass and metal box, insulated from the community and forced to pay
attention at the expense of being able to wander, to pause, and to
appreciate.&lt;/p&gt;
&lt;p&gt;When I disembarked the Metro at Mont-Royal, I emerged on the ground to
a bustling pedestrian-only street, with shops and sidewalk cafes and
hoardes of beautiful people. I felt like I had arrived home. Maybe not
home, but at least, I had arrived in a place where I felt whole. There was
such a spirit of joy in this place. People could walk down the street
without being constantly vigilant of automobile traffic. I had a grin
ear-to-ear as I slowly made my way.&lt;/p&gt;
&lt;p&gt;I&apos;ve spent today at the apartment settling in, especially since it&apos;s going
to be quite hot all day today. I went grocery shopping (which is
incredibly pleasant here, since it was a mere five minute walk to the
supermarket down safe low-speed streets with charming rowhouses to look
at). And I&apos;ve been practicing my French, bit by bit, although I doubt I&apos;ll
be using much of it except to say &quot;Je ne parle pas français.&quot;&lt;/p&gt;
&lt;p&gt;It is so incredible to me that this city exists on the North American
continent. I do not feel like I am only a few hours north of the United
States here. Montreal has the same sort of multi-ethnic feel as New York,
but with more European influence in their urban design and lifestyle.
I have a feeling, if I meet people here and learn a bit of French, that
I won&apos;t want to go back to America. &lt;em&gt;On verra ça&lt;/em&gt;.&lt;/p&gt;
</content:encoded></item><item><title>Farewell, Pittsburgh</title><link>https://www.teejayvanslyke.com/letters/farewell-pittsburgh/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/farewell-pittsburgh/</guid><pubDate>Fri, 26 Aug 2022 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;img src=&quot;/assets/images/1280x1280/vincent/inkwell-coffee-house-77e8c0a0.jpg&quot; alt=&quot;Inkwell Coffee House&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Pictured: Inkwell Coffee House, a charming little cafe on Butler Street
that has served as my writing room here in Pittsburgh.&lt;/p&gt;
&lt;p&gt;In just a couple hours I&apos;m going to be departing Pittsburgh and heading
north to my aunt and uncle&apos;s house in the rolling hills of Upstate New
York.&lt;/p&gt;
&lt;p&gt;It&apos;s been an incredible, memorable week here. Increasingly, when I travel
I like to spend a long time in a place and integrate myself as a local,
rather than flittering about trying to do everything I can in a few short
days. To me, the things to see when visiting cities aren&apos;t the places
you&apos;re told about, but the places you discover when you&apos;re taking your
time. It also happens that this way of traveling is much less expensive,
since you&apos;re not bending to the demands of the tourism industry.&lt;/p&gt;
&lt;p&gt;My absolute favorite way to see a new city is to go on an aimless walk.
The French have a word for the kind of person who walks with no
destination, detached from society but nonetheless observing it with
intention: the &lt;em&gt;flâneur&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;Yesterday afternoon I decided to take a flâneuring walk of my own. First,
I discovered this mural on a wall in the Bloomfield neighborhood, just up
the hill from Lawrenceville:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/images/1280x1280/vincent/essential-workers-mural-211b3890.jpg&quot; alt=&quot;Essential Workers Make The World Work
Mural&quot; /&gt;&lt;/p&gt;
&lt;p&gt;I also passed this shop I peeked into the other day. It&apos;s unique in that
it sells 35mm film that looks like it&apos;s from the 1990s—but it might have
just been that Kodak hasn&apos;t updated their packaging in 30 years:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/images/1280x1280/vincent/bankrupt-bodega-93f2dd9f.jpg&quot; alt=&quot;Bankrupt Bodega&quot; /&gt;&lt;/p&gt;
&lt;p&gt;And I couldn&apos;t help but snap a photo of this street sign, whose street
bears the name of the small town in Upstate New York in which I grew up:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/images/1280x1280/vincent/dryden-way-pittsburgh-d0896ab0.jpg&quot; alt=&quot;Dryden Way, Pittsburgh&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Eventually, I found myself on Liberty Ave, the main arterial commercial
street in Bloomfield. I was greeted by this ominous old church. It&apos;s
a pretty terrible photo, but I loved how haunting this old brick beauty
felt. I imagine it would be doubly so on a dreary winter day:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/images/1280x1280/vincent/church-on-liberty-ave-pittsburgh-1c4812f9.jpg&quot; alt=&quot;Church on Liberty Ave,
Pittsburgh&quot; /&gt;&lt;/p&gt;
&lt;p&gt;After I walked the length of Liberty Ave, I decided to find my way back
down the hill, since it was getting awfully hot out in the afternoon sun.
I noticed an entrance to a cemetary whose paths seemed to head northward.
Being that I remembered seeing an entrance to a cemetary down the hill,
I gambled on the possibility it was the same cemetary, and walked through
the gate:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/images/1280x1280/vincent/st-marys-cemetary-pittsburgh-9bb84c47.jpg&quot; alt=&quot;St Mary&apos;s Cemetary,
Pittsburgh&quot; /&gt;&lt;/p&gt;
&lt;p&gt;A few things struck me about the cemetary. For one, it was vast and
expansive—the most expansive green space I&apos;d found in Pittsburgh so far.
Which got me to thinking: Aside from the waterfront path I walked on my
way to the Warhol
Museum,
I hadn&apos;t really seen any parks at all in my time here!&lt;/p&gt;
&lt;p&gt;As well, there were so many beautiful mausoleums in the cemetary. It
appears that the cemetary dates back to
1844. It&apos;s humbling to
feel the presence of so many generations of the deceased as you walk
through:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/images/1280x1280/vincent/pittsburgh-mausoleum-39b0c7d5.jpg&quot; alt=&quot;Mausoleum&quot; /&gt;&lt;/p&gt;
&lt;p&gt;I kept walking down every hill I could find, since I figured eventually
I&apos;d have to end up back in Lawrenceville if I was descending hills. And
sure enough, I wound up back at the entrance on Butler Street.&lt;/p&gt;
&lt;p&gt;My favorite thing about long walks through cities is that you end up
discovering things you would have never seen if you were in a car. The
slow pace means you have time to appreciate the things you pass and to
take diversions if it suits you. And many of the most beautiful places in
older cities aren&apos;t easily accessible by cars.&lt;/p&gt;
&lt;p&gt;Once I got back to the apartment, I made sure to snap this picture of the
gorgeous sidewalk and tree cover just outside, since I want to be able to
remember the feeling of this neighborhood forever:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/images/1280x1280/vincent/43rd-street-sidewalk-pittsburgh-882ce44c.jpg&quot; alt=&quot;43rd Street Sidewalk,
Pittsburgh&quot; /&gt;&lt;/p&gt;
&lt;p&gt;To me, memory is sacred. It&apos;s why I&apos;m taking the time to capture my trip
through journaling and photography. To hold onto moments, to be able to
cherish them in the future—perhaps a future when you&apos;re incapable of
experiencing them because of frailty or illness or poverty—is priceless.&lt;/p&gt;
&lt;p&gt;For too many years I neglected the part of me that appreciates beauty and
wonder, the part of me that craves adventure and uncertainty, all in the
pursuit of material security. I wanted every situation and circumstance to
be perfectly stable and secure. The thought of taking an open-ended,
monthslong trip with no firm itinerary would have terrified me. And when
I did travel, I would do it constantly aided by a smartphone and never
truly disconnected from what I left behind.&lt;/p&gt;
&lt;p&gt;Yes, this form of travel is more arduous. Yes, it&apos;s more stressful to not
know where you&apos;ll sleep, to go to a neighborhood without reading every
online review of every restaurant, to have to trust in the goodwill of
strangers to offer you directions, and to have to write down addresses and
directions so you can find your way later. But all of that &lt;em&gt;is&lt;/em&gt; travel.
It&apos;s all part of the profound experience of uncertainty and adventure. Too
much certainty makes travel a bland extension of your domestic life at
home. If we do not leave some of it to chance, we might as well just stay
at home.&lt;/p&gt;
&lt;p&gt;See y&apos;all in the Finger Lakes.&lt;/p&gt;
</content:encoded></item><item><title>Moving... to Pittsburgh?</title><link>https://www.teejayvanslyke.com/letters/moving-to-pittsburgh/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/moving-to-pittsburgh/</guid><pubDate>Thu, 25 Aug 2022 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;img src=&quot;/assets/images/1280x1280/vincent/lawrenceville-alleyway-5bfe580e.jpg&quot; alt=&quot;Lawrenceville Alleyway&quot; /&gt;&lt;/p&gt;
&lt;p&gt;I have to check out of my flat here in Pittsburgh tomorrow morning, just
as I&apos;ve gotten into a bit of a groove here. And as I write this, I realize
something: I love it here!&lt;/p&gt;
&lt;p&gt;For the past several years I&apos;ve found myself so frustrated at the way
we&apos;ve developed land in the United States in the course of my lifetime.
Unfortunately, arcane zoning laws have turned most American cities into
a bizarre mix of hyper-dense high-rise districts right next to sprawling
single-family neighborhoods. So when most people think of cities in
America, they think of this dysfunctional juxtaposition. Restrictive
zoning like this causes places that are unlivable for everyone. People who
live in high-rises have to shuffle into elevators to get to their houses
and live in concrete prisons in the sky. The people in the houses below
pay a mighty premium for their yards and are forced to drive to complete
most errands. It&apos;s monumentally stupid and there&apos;s a better way.&lt;/p&gt;
&lt;p&gt;I already wrote about Lawrenceville&apos;s damn near perfect level of
density. As I&apos;ve been
exploring the area a bit more on foot (and coming to terms with how much
living in flat, sea-level Florida has destroyed my capacity for hiking up
hills), I&apos;ve discovered that Lawrenceville&apos;s perfect density continues on
up the hill to the Bloomfield and Polish Hill neighborhoods.&lt;/p&gt;
&lt;p&gt;I&apos;ve also grown accustomed to walking out of the loft I&apos;m renting, down
the stairs, and a few short, quiet blocks to a bustling coffee shop where
I do my morning writing. In Florida, my walk to my favorite cafe was
horrendously interrupted by crossing a four-lane
&lt;a href=&quot;https://en.wikipedia.org/wiki/Stroad&quot;&gt;stroad&lt;/a&gt;, 4th Street. St Petersburg
planners obviously thought it wasn&apos;t a problem to bisect two beautiful
neighborhoods with a high-speed (actual speeds of 40-50 MPH) state
highway, because, you know, progress I guess?&lt;/p&gt;
&lt;p&gt;Now, what I just said sounds like an absurdly privileged thing to say.
&quot;HOW COME I CAN&apos;T WALK TO THE COFFEE SHOP TO GET MY LATTE WITHOUT WALKING
ACROSS A HIGHWAY?&quot; But my selfish daily coffee indulgence isn&apos;t the point.
The point is that mid-level density creates a livable place where people
actually want to be. And if we build more of these sorts of places—places
with four-story mixed-use buildings, places with public transit, places
with businesses intermixed with housing—that will result in more livable
environments for everyone.&lt;/p&gt;
&lt;p&gt;But no, we continue to build places that look like this:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/images/1280x1280/vincent/us-19-b913c969.jpg&quot; alt=&quot;US-19&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Who in the world wants to be in this place? This place isn&apos;t inspiring. It
isn&apos;t functional. It isn&apos;t sustainable. It&apos;s a travesty. (PS: That&apos;s
US-19, a giant stroad that cuts through Pinellas and Pasco Counties in
Florida. It&apos;s the deadliest such road in
America
for pedestrians.)&lt;/p&gt;
&lt;p&gt;Now, before you say &quot;You should go to 
and see how good you have it&quot;—that&apos;s not an argument for not demanding
progress and change here. Yes, America is a land of plenty, materially.
The economic engine here is unparalleled to anything that&apos;s ever come
before it. And we should continue that spirit of innovation and abundance.
But just like the smog-filled cityscapes of the early 20th century gave
way to clean air and water initiatives that have vastly improved the lives
of city dwellers across America, so too should livable street initiatives
clear the streets of private automobiles and herald a new era of livable
cities.&lt;/p&gt;
&lt;p&gt;Anyway.&lt;/p&gt;
&lt;p&gt;Pittsburgh is especially interesting to me as a place to buy property for
a few reasons.&lt;/p&gt;
&lt;p&gt;For one, the city has &quot;good bones&quot;—its prewar city grid and grandfathered
medium-density streets mean it&apos;s walkable by default.&lt;/p&gt;
&lt;p&gt;Secondly, Pittsburgh is fairly immune from natural disasters. Being
inland, there&apos;s no hurricane risk. It&apos;s fairly seismically inactive. There
is a bit of flooding risk, but only in the low-lying areas.&lt;/p&gt;
&lt;p&gt;And third, Pittsburgh, relative to other American cities, is fairly
insulated from the worst effects of climate change. In a long-term view,
this makes buying a home here a no-brainer. People are increasingly going
to flock to cities where they won&apos;t have to endure ever-hotter summers,
rising sea levels, and suffocating wildfires.&lt;/p&gt;
&lt;p&gt;Pittsburgh also has excellent infrastructure for a city of its size
because it&apos;s half the size it used to be. There&apos;s a great network of
hospitals, excellent universities, and a massive stock of character-rich
housing in livable neighborhoods.&lt;/p&gt;
&lt;p&gt;I&apos;m not sure what next year will bring, but I&apos;m definitely bookmarking my
time in Pittsburgh and might consider buying a rowhouse here next summer.
Even if I don&apos;t live here full-time, I don&apos;t think I&apos;ve ever been to
a city whose geographic location, cost of living, infrastructure, and
culture was more balanced.&lt;/p&gt;
&lt;p&gt;But please for the love of god don&apos;t tell anyone I told you. At least not
until next summer.&lt;/p&gt;
</content:encoded></item><item><title>57 varieties of Pittsburgh history</title><link>https://www.teejayvanslyke.com/letters/57-varieties-of-pittsburgh-history/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/57-varieties-of-pittsburgh-history/</guid><pubDate>Tue, 23 Aug 2022 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;img src=&quot;/assets/images/1280x1280/vincent/heinz-57-ebd84834.jpg&quot; alt=&quot;57&quot; /&gt;&lt;/p&gt;
&lt;p&gt;I came to Pittsburgh with a single goal: To visit the Andy Warhol
Museum. Beyond
that, I wasn&apos;t sure what my time here would be like or if I&apos;d even enjoy
it. Almost a week in, I&apos;ve grown quite fond of it here.&lt;/p&gt;
&lt;p&gt;I can&apos;t remember where, but somewhere in my research about Pittsburgh
I read that the original set of &lt;em&gt;Mister Rogers&apos; Neighborhood&lt;/em&gt; was on
display at the Senator John Heinz History Center. Being that I grew up on
a steady diet of Fred Rogers alongside &lt;em&gt;Sesame Street&lt;/em&gt;, &lt;em&gt;Fraggle Rock&lt;/em&gt;,
and &lt;em&gt;Eureka&apos;s Castle&lt;/em&gt;, I knew I wasn&apos;t going to be able to leave
Pittsburgh without paying respect to such an icon of children&apos;s
entertainment and education.&lt;/p&gt;
&lt;p&gt;I spent the morning writing at the lovely cafe on Butler Street that&apos;s
slowly become my second home during my stay here. The locals murmered
about how it was unseasonably cold outside. I felt a sense of gratitude
for that fact, as I sauntered around the neighborhood in a black
shirt-jacket and jeans, feeling more like myself in a full ensemble of
clothing than I had in months in the sweltering and unending Florida heat.&lt;/p&gt;
&lt;p&gt;I left the cafe and boarded the 91 bus toward downtown. The heat had
started to pick up at the bus stop and an older man with a cane stood
beside the trashcan on the street corner flicking his cigarette.&lt;/p&gt;
&lt;p&gt;I pulled the cord and got off at 12th and Liberty. At first I wasn&apos;t sure
where I&apos;d find the museum, but the giant ketchup sign revealed itself soon
enough. I walked around the building and found the entrance:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/images/1280x1280/vincent/heinz-history-center-sign-959b4626.jpg&quot; alt=&quot;Senator John Heinz History Center&quot; /&gt;&lt;/p&gt;
&lt;p&gt;I walked in, paid my admission, and made my way up the stairs to the first
exhibits. First was an exhibit on Pittsburgh sports, which admittedly
I skipped since, you know, I &lt;em&gt;love&lt;/em&gt; sports.&lt;/p&gt;
&lt;p&gt;Then there was an exhibit about innovation in Pittsburgh. A couple
reproductions of postwar households caught my eye, since they attempted to
portray the rise of consumerism in America after the Second World War:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/images/1280x1280/vincent/heinz-postwar-consumerism-db713c96.jpg&quot; alt=&quot;Heinz History Center - Postwar
Consumerism&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/images/1280x1280/vincent/heinz-wqed-and-early-television-4cd558b8.jpg&quot; alt=&quot;Heinz History Center - WQED and Early
Television&quot; /&gt;&lt;/p&gt;
&lt;p&gt;When I reached the fourth floor, I finally found the &lt;em&gt;Mister Rogers&lt;/em&gt;
television set in all its glory:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/images/1280x1280/vincent/heinz-mr-rogers-set-192b7abd.jpg&quot; alt=&quot;Heinz History Center - Mister Rogers
set&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/images/1280x1280/vincent/heinz-mr-rogers-castle-ed8b27c7.jpg&quot; alt=&quot;Heinz History Center - Mister Rogers
set - Castle&quot; /&gt;&lt;/p&gt;
&lt;p&gt;My favorite thing about travel is finding myself immersed in the
unexpected. I had no intention of coming to Pittsburgh before I decided
that was the path I&apos;d take from Asheville. And out of that one decision,
I was thrust into a whole new place and time that I&apos;ll always remember
fondly. Before last week, Pittsburgh existed only in my imagination. Now
I&apos;ve experienced, bit by bit, its culture, its landscape, and its people.
I&apos;m grateful to be a guest here and have met so many wonderful folks along
the way.&lt;/p&gt;
&lt;p&gt;Now I&apos;m curious where my journey will take me next. I&apos;m planning on
visiting my aunt and uncle in Upstate New York on Friday, after which I&apos;ll
have a few days to kill before my apartment in Montreal is ready for me.
Vermont might be calling me, or perhaps I&apos;ll drive all the way to Quebec
City for a few days before I head settle in Montreal. Travel without
a plan is both intensely stressful, as well as immeasurably rewarding. Had
I planned my entire trip I probably wouldn&apos;t have stopped here at all, and
instead booked it all the way up Interstate 95 as fast as I could to
Montreal. My meandering has granted the trip a sense of spotanaeity, and
to me, that&apos;s beautiful.&lt;/p&gt;
</content:encoded></item><item><title>Accepting you&apos;re a dirty mess</title><link>https://www.teejayvanslyke.com/letters/accepting-youre-a-dirty-mess/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/accepting-youre-a-dirty-mess/</guid><pubDate>Mon, 22 Aug 2022 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;img src=&quot;/assets/images/1280x1280/vincent/vincent-with-fruit-1e04d3a1.jpg&quot; alt=&quot;Vincent, with fruit&quot; /&gt;&lt;/p&gt;
&lt;p&gt;I woke up in the middle of the night on Saturday to the chaotic
pitter-patter of rain drops on Vincent&apos;s back. In the evening I&apos;d had the
thought that perhaps I ought to pack away my camp furniture since it might
rain, but paid it no mind and snoozed away. When I emerged from slumber,
I squarely regretted my neglect and found my yoga mat waterlogged like
a sponge.&lt;/p&gt;
&lt;p&gt;The rain stopped for a few hours, during which I managed to drive Vincent
out of the mud to a dead suburban mall several miles north to seek refuge
and do my daily writing. I find a strange sense of solace in the bowels of
suburban shopping malls—relics of what felt to me like a simpler time.
This mall, nestled in the middle of Applachia, was particularly dead;
I think there were more mall walkers circumscribing the mall&apos;s dark tiles
than there were stores open for business.&lt;/p&gt;
&lt;p&gt;I sat in the food court for a few hours writing and watching the people
walk by. I made small talk with the security guard and asked him if there
was wifi. And I took a break to make a cup of coffee on my camp stove in
the parking lot, since the mall was so dead there wasn&apos;t even a place to
get a cup of coffee.&lt;/p&gt;
&lt;p&gt;It&apos;s funny, but sometimes the most benign and uneventful days are the most
memorable. I&apos;ll never forget stumbling upon that shopping mall in the
middle of suburban Pittsburgh and seeing it not as a blight on the
landscape, but as a brilliant climate controlled oasis.&lt;/p&gt;
&lt;p&gt;When I returned to the campground, I noticed it had thinned out
considerably. Being that most of the campers were probably local
residents, I imagine they decided sitting in the rain wasn&apos;t how they
wanted to spend their weekend. I, however, was stuck, unless I wanted to
get a hotel room, which, I didn&apos;t. So I made the best of a muddy
situation. I went for a short hike. I made ramen noodles for dinner.
I watched online videos about living in vans.&lt;/p&gt;
&lt;p&gt;And then, the rains came again. This time, worse than the night before.
I checked the weather report and there was an advisory that there could be
55-mile-per-hour winds and nickel-sized hail. Luckily, neither of these
came to fruition, but I weighed my options and decided I could always seek
shelter in the lavatory building if things got dicey.&lt;/p&gt;
&lt;p&gt;I called my brother and we talked at length about life and my trip and his
upcoming trip and I was at a bit more peace. As I went to sleep, the rains
started again and I knew when I woke up I would be greeted by more mud
puddles and damp clothes.&lt;/p&gt;
&lt;p&gt;There comes a point when you&apos;re on the road where you stop trying to keep
yourself up and just accept that you&apos;re a filthy mess. As I sit here
awaiting my next rented room in Pittsburgh, my skin is oily, my head
unshaven, my feet filthy, my clothes dirty, and my body aching. But it is
what it is. Tomorrow I&apos;ll undoubtedly be elated to have woken up in a real
bed in a room with ceilings suitable for standing. But now, I&apos;m the dirty
vagabond, going here, there, and nowhere in particular.&lt;/p&gt;
&lt;p&gt;It&apos;s moments like this that make me wonder why I&apos;m so persistent in my
pursuit of adventure when I could very well have the kind of stable,
secure life that many people forced into a life of nomadism would kill
for. Is this sort of pursuit merely one of selfish indulgence?&lt;/p&gt;
&lt;p&gt;I left on this trip, like all my road trips before it, to find America.
It&apos;s hiding here somewhere, whether in the row houses of Lawrenceville or
the steel mills of Appalachia. Maybe it&apos;s in the grateful spirit of an
immigrant for whom Walmart does not represent a sort of American
overindulgence, but instead represents their newfound land of plenty in
a world of poverty. I am constantly in awe at the wonder and glory of this
land in spite of its horrors, its inequities, and its wastefulness.&lt;/p&gt;
&lt;p&gt;America, I love you, but it&apos;s not easy.&lt;/p&gt;
</content:encoded></item><item><title>Camping diversion in western Pennsylvania</title><link>https://www.teejayvanslyke.com/letters/camping-diversion-in-western-pennsylvania/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/camping-diversion-in-western-pennsylvania/</guid><pubDate>Sat, 20 Aug 2022 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;img src=&quot;/assets/images/1280x1280/vincent/vincent-in-the-woods-pa-d53af0d7.jpg&quot; alt=&quot;Vincent in the woods&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Unfortunately the loft I rented for a couple nights was booked for the
weekend, so I had to leave Pittsburgh for a few days. I found a state park
forty minutes west of town and reserved a site through Monday.&lt;/p&gt;
&lt;p&gt;Here in the woods of Pennsylvania, I&apos;m again confronted by a profound
sense of having returned home. The flora here reminds me of my childhood
in Upstate New York and the disposition of the people here is familiar as
well. So far I&apos;ve spent the day writing, working out, cooking, and
catching up with my parents on the phone.&lt;/p&gt;
&lt;p&gt;The weather forecast calls for rain tomorrow, so I&apos;m a bit apprehensive
about being couped up inside Vincent&apos;s belly all day with nowhere to go.
Hopefully the forecast is inaccurate and we&apos;ll have some dry hours, but
I probably ought to pack up my camp gear so it&apos;s not a soaked mess.&lt;/p&gt;
&lt;p&gt;It&apos;s been wonderful to have a bit of respite from the city before I return
on Monday. Pittsburgh&apos;s suburban landscape doesn&apos;t seem nearly as horrid
as St Petersburg&apos;s—I was able to get from the middle of the city to
a rural community in a half hour&apos;s drive. I&apos;ll always miss Oregon&apos;s urban
growth boundary keeping a lid on suburban sprawl; it felt magical to be in
the center of a cosmopolitan city and thirty minutes later feel like
you&apos;re in the middle of nowhere.&lt;/p&gt;
&lt;p&gt;Tomorrow I&apos;m planning on finding a challenging hike, since I&apos;m starved for
inclines after having been in Florida so long. There are a number of
trails that connect to the campground here, so hopefully I can find my way
to them on foot.&lt;/p&gt;
&lt;p&gt;The leaves here are just barely starting to show their colors; the tips of
some of them are yellow, but it&apos;ll be a few weeks before they really start
to turn. I&apos;m eager to see the fall colors this year, since I haven&apos;t seen
them in the northeast in over a decade.&lt;/p&gt;
&lt;p&gt;Here&apos;s to hoping I befriend a camper or two tomorrow, since I&apos;m about at
my limit for solitude after a full day alone. We shall see.&lt;/p&gt;
</content:encoded></item><item><title>Why did we pave paradise?</title><link>https://www.teejayvanslyke.com/letters/why-did-we-pave-paradise/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/why-did-we-pave-paradise/</guid><pubDate>Fri, 19 Aug 2022 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;img src=&quot;/assets/images/1280x1280/vincent/lawrenceville-row-houses-fe3136e4.jpg&quot; alt=&quot;Row houses in Lawrenceville&quot; /&gt;&lt;/p&gt;
&lt;p&gt;I came to the northeast principally to escape the oppressive Florida heat.
But my other, more consequential reason for coming to the northeast was to
immerse myself in prewar, old-world cities that predated the ubiquity of
the automobile.&lt;/p&gt;
&lt;p&gt;Florida (and most of the Sun Belt) is a congested mess of wide-laned
suburban arterial highways, strip malls, parking lots, high urban speed
limits, car culture, trucks the size of tanks, and a general lack of urban
planning. Its infrastructure matured after the Second World War, when the
general consensus (read: propagandized consensus) was that every American
should own a single-family detached house and an automobile.&lt;/p&gt;
&lt;p&gt;As a result, southern cities, excepting their prewar urban cores, are
a car-infested nightmare. They&apos;re hostile to anyone who isn&apos;t driving
a car, and most people in these places see pedestrians and cyclists as
a nuissance. Which is an irony, since I can&apos;t think of a bigger nuissance
than loud, polluting automobiles bisecting every single facet of civic
life.&lt;/p&gt;
&lt;p&gt;But here in Pittsburgh, founded in the decades before the Revolutionary
War, the city wasn&apos;t designed with cars in mind. Cars didn&apos;t even exist.
As a result, blocks are smaller and denser, streets are narrower, and
communities are more integrated.&lt;/p&gt;
&lt;p&gt;Just take a look at this photo I took of the back patios of the rowhouses
here in Lawrenceville:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/images/1280x1280/vincent/lawrenceville-patios-83ca7082.jpg&quot; alt=&quot;Lawrenceville back patios&quot; /&gt;&lt;/p&gt;
&lt;p&gt;One cannot help but know their neighbors if they&apos;re right beside them
every time they go outside. And this might be subjective, but to me this
is more beautiful and inviting than a big suburban backyard with a fence.
It has a sense of place, character, charm. Stuff happened here.&lt;/p&gt;
&lt;p&gt;And that&apos;s not to say there aren&apos;t cars in Pittsburgh. Actually, as
a result of higher density and a transit system that&apos;s evidently
underused, there&apos;s actually a ton of car traffic on these tiny streets.
But because of the fact the streets are so narrow, cars have no choice but
to drive slowly, lest they side-swipe parked cars in the parking lanes. To
me this is representative of the pervasive nature of car culture in
America. The idea that you&apos;d drive a private automobile living in
Lawrenceville, to me, is insane. Everything you need is within walking
distance, and there&apos;s reliable bus service on Butler Street. But I imagine
many people have car-brain and cannot imagine not driving their F-150 down
a tiny eighteenth century alleyway and trying to find parking.&lt;/p&gt;
&lt;p&gt;This is in contrast to cities in the Sun Belt, where not owning a car is
almost impossible unless you happen to live in the small prewar urban
cores. I happen to live in a prewar area of St Petersburg, and can
accomplish most things by foot. But the sheer lack of density precludes
say, a small corner grocery store ever emerging in my neighborhood. There
just aren&apos;t enough people within walking distance to make it economically
viable.&lt;/p&gt;
&lt;p&gt;To me, Lawrenceville is an example we could follow if we want to start
building more environmentally sustainable and economically equitable
communities in the United States. Like most prewar neighborhoods, the
rents in Lawrenceville have ballooned in recent years. People want to live
in walkable neighborhoods, yet we continue to build unsustainable suburban
hellscapes. This is a result of terrible policy, since it would be illegal
to build another Lawrenceville in most places in America due to
single-family zoning.&lt;/p&gt;
&lt;p&gt;When considering how to mitigate climate change, how to provide equitable
transportation options, and how to build more integrated communities,
let&apos;s look toward the past to get to the future.&lt;/p&gt;
&lt;p&gt;Also, isn&apos;t this just so much more beautiful than the bland suburban
housing that gets built today?&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/images/1280x1280/vincent/lawrenceville-row-house-pretty-e2bd3368.jpg&quot; alt=&quot;Beautiful Lawrenceville row
house&quot; /&gt;&lt;/p&gt;
</content:encoded></item><item><title>A leisurely hourslong walk to the Warhol</title><link>https://www.teejayvanslyke.com/letters/a-leisurely-hourslong-walk-to-the-warhol/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/a-leisurely-hourslong-walk-to-the-warhol/</guid><pubDate>Thu, 18 Aug 2022 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;img src=&quot;/assets/images/1280x1280/vincent/andy-warhol-bridge-edaf474e.jpg&quot; alt=&quot;The Andy Warhol Bridge&quot; /&gt;&lt;/p&gt;
&lt;p&gt;I returned to the loft after my morning coffee and writing to shed the
clothes I&apos;d donned in the chilly, overcast morning and prepare for my
journey down the river to the Warhol Museum.&lt;/p&gt;
&lt;p&gt;I began walking toward downtown on Butler Street and my stomach rumbled.
I came across a homegrown breakfast place several blocks into the walk and
so I popped in for a bite.&lt;/p&gt;
&lt;p&gt;The thing that strikes me most about Pittsburgh is its colonial influence
in the architecture. Pittsburgh was founded before the Revolutionary War,
and so it&apos;s a wonderland of diverse architectural styles reaching all the
way back to the time of British rule. It&apos;s wild stuff to spend time in
a place with so much history.&lt;/p&gt;
&lt;p&gt;I walked through the Strip District, which felt like a strange combination
of tourist junk shops and warehouses. There I asked a couple locals for
directions, and they told me I could walk down to the river where there
was a multi-use path.&lt;/p&gt;
&lt;p&gt;The banks of the Alleghany are lush with greenery and the infrastructure
is haunting and historic. Again, you get the sense here that real stuff
happened.&lt;/p&gt;
&lt;p&gt;Eventually, I reached the Three Sisters, of which one is named after Andy
Warhol. I walked up the stairs from the river path and found myself
suspended above the river. And suddenly, the museum&apos;s signage could be
seen in the distance on the north banks.&lt;/p&gt;
&lt;p&gt;Here are some shots from inside the museum:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/images/1280x1280/vincent/warhol-balloons-8ca89acd.jpg&quot; alt=&quot;Warhol balloons&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/images/1280x1280/vincent/warhol-sculpture-6d963218.jpg&quot; alt=&quot;Warhol sculpture&quot; /&gt;&lt;/p&gt;
&lt;p&gt;I walked back over the bridge into downtown, and caught the 91 bus back to
Lawrenceville.&lt;/p&gt;
</content:encoded></item><item><title>Reconnecting with the old world in Pittsburgh</title><link>https://www.teejayvanslyke.com/letters/reconnecting-with-the-old-world-in-pittsburgh/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/reconnecting-with-the-old-world-in-pittsburgh/</guid><pubDate>Thu, 18 Aug 2022 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;img src=&quot;/assets/images/1280x1280/vincent/pittsburgh-loft-exterior-ab542f48.jpg&quot; alt=&quot;Lawrenceville loft apartment exterior&quot; /&gt;&lt;/p&gt;
&lt;p&gt;I left Asheville early yesterday morning, stopping off at Izzy&apos;s cafe for
an early morning cup of coffee on my way out of town. I knew it was time
to say goodbye to the South for awhile, so I soaked up my last bit of
southern culture before heading north.&lt;/p&gt;
&lt;p&gt;The mountains of Tennessee were as grandiose as I remember from my travels
last summer, and granted me hope that there were still parts of
America left untouched by endless strip malls and subdivisions.&lt;/p&gt;
&lt;p&gt;As I crossed into Virginia, and then, West Virginia, I got a taste of the
desperation of Appalachia. The atmosphere through most of West Virginia
was one of a place left behind and forgotten. At traffic light after
traffic light on U.S. Route 19 lay fast food restaurants, Wal-Marts, and
gas stations, and no unique sense of place to speak of.&lt;/p&gt;
&lt;p&gt;And then, after exiting West Virginia and emerging into Pennsylvania,
I felt a sudden sense of being home again. Not because I have any real
connection to southwestern Pennsylvania specifically, but because I grew
up on the outskirts of the Rust Belt and could feel its ominous presence
in the architecture and landscapes. Rusted rail bridges cut through the
mountains and there was a sense that here, real stuff had happened.&lt;/p&gt;
&lt;p&gt;Living in Florida, it&apos;s rare to feel that way. Sure, there&apos;s history in
Florida. The confederacy reigned there. One can go to see the sites of
former slave markets. There&apos;s a rich indigenous history. I won&apos;t deny
there&apos;s a past there. But I cannot identify with it, because it wasn&apos;t in
my family&apos;s lineage. My great grandparents immigrated here hoping to
secure a better life. My grandparents lived in the Rust Belt when they had
my mother. My parents grew up immersed in this environment. And I was born
into the remnants of the industrial era, having not known its pain or
glory, but certainly knowing its environment. Nostalgia is a powerful
force and it forges our identity whether we like it or not.&lt;/p&gt;
&lt;p&gt;Florida often doesn&apos;t feel like a place because, for the most part, it&apos;s
make-believe. Most of the built environment was designed as a resort, an
escape, a retreat from the realities of productive life. One can drive
a hundred miles along coastal Florida highways and not actually go
anywhere, because there&apos;s another strip mall with a Publix and parking
lots and subdivisions full of retirees for miles in every direction.&lt;/p&gt;
&lt;p&gt;That&apos;s not to say I haven&apos;t loved my time there. I&apos;ve met some of the most
incredible people in my life in Florida. There&apos;s a charm there that&apos;s
unlike anywhere I&apos;ve ever been. But it doesn&apos;t feel like home. The
northeast feels more like home, even if its climate is less forgiving and
its are people less friendly.&lt;/p&gt;
&lt;p&gt;So far, Pittsburgh feels like a working-class town whose rough edges are
being sanded down by the pressures of gentrification. A walk down Butler
Street in Lawrenceville feels like walking down Bedford Ave in
Williamsburg in 2008. There&apos;s a chaotic juxtaposition of old and new—the
1938 Arsenal Bowl bowling alley is on the same street as
a pour-your-own-candle shop, for instance.&lt;/p&gt;
&lt;p&gt;Today I&apos;m planning on walking the length of the Allegheny River and over
the bridge to the Andy Warhol Museum. It feels fantastic to be in a prewar
city whose urban density is suited to long meandering walks and whose
drivers are accommodating to pedestrians.&lt;/p&gt;
</content:encoded></item><item><title>Charmed at the Moogseum</title><link>https://www.teejayvanslyke.com/letters/charmed-at-the-moogseum/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/charmed-at-the-moogseum/</guid><pubDate>Tue, 16 Aug 2022 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;img src=&quot;/assets/images/1280x1280/vincent/moogseum-9e8e0fa7.jpg&quot; alt=&quot;Moogseum&quot; /&gt;&lt;/p&gt;
&lt;p&gt;I sauntered home from Haywood Rd and made a turkey sandwich inside
Vincent&apos;s belly. I love having the ability to prepare my own food on the
go—it&apos;s a delight that I haven&apos;t been able to enjoy in so long!&lt;/p&gt;
&lt;p&gt;Once I ate my &quot;brunch&quot;, I packed up my things and headed eastward toward
downtown Asheville. My first stop was the Moogseum, a museum chronicling
the life and work of Robert Moog.&lt;/p&gt;
&lt;p&gt;As I approached the door, a transient woman was stumbling down the
sidewalk screaming at the sky. Cursing in every direction, she violently
struck down the A board outside the museum. I shrugged it off and went
inside.&lt;/p&gt;
&lt;p&gt;The clerk appeared, greeted me, and explained she needed to go take care
of the A board that had fallen at the hands of the screaming woman.
I waited for her at the counter and she came back, explaining how that
sort of thing happens all the time. I reassured her that I was used to
dealing with that sort of thing as well. We meandered on and on in
a lovely conversation about our travels, Asheville, culture, and the like.&lt;/p&gt;
&lt;p&gt;To me, the most profound part of travel is meeting new people and sharing
meaningful conversation together. I&apos;ve noticed that southerners are
especially open to conversing with strangers and don&apos;t have the
guardedness that tends to pervade northwesterners. In just a couple days
being in Asheville I&apos;ve had the pleasure of finding myself in several
fantastic conversations.&lt;/p&gt;
&lt;p&gt;Once I perused the Moogseum and played a theramin (they unfortunately
didn&apos;t permit photography inside), I wandered to a nearby coffee shop
called Rowan:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/images/1280x1280/vincent/rowan-coffee-c2db3314.jpg&quot; alt=&quot;Rowan Coffee&quot; /&gt;&lt;/p&gt;
&lt;p&gt;The interior of Rowan reminded me instantly of Barista, a small chain of
cafes in Portland, Oregon. The crown moulding, retro fixtures, and fine
woodworking gave me an instant feeling of nostalgia for my time in the
northwest. And, unsurprisingly, they served coffee roasted by Heart
Roasters in Portland.&lt;/p&gt;
&lt;p&gt;After sitting and doing a bit of writing, I decided to try to find
Malaprop&apos;s Books, a small bookstore cafe I&apos;d read was worth seeing.
I headed to Vincent and entered &quot;malaprop&quot; into his GPS, driving away from
my parking spot. But then I realized it was walking distance from where
I was, and there was hardly any chance of finding another parking spot.&lt;/p&gt;
&lt;p&gt;Downtown Asheville, while breathtakingly beautiful and charming, is
incredibly stressful, both on foot and by car. It feels like a place that
was once modest, but then became gentrified as people discovered it as
a mountain refuge. It has to me the same feeling of retrofitted
gentrification as Portland. And with that, it seems, comes bands of roving
tourists feverishly driving cars with out-of-state plates... myself
included.&lt;/p&gt;
&lt;p&gt;I retreated back to West Asheville for the afternoon—a place that feels
more local, less contrived, less touristy, calmer, more real.&lt;/p&gt;
</content:encoded></item><item><title>Rambling in West Asheville</title><link>https://www.teejayvanslyke.com/letters/rambling-in-west-asheville/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/rambling-in-west-asheville/</guid><pubDate>Tue, 16 Aug 2022 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;img src=&quot;/assets/images/1280x1280/vincent/ninja-turtles-mural-52c4e37c.jpg&quot; alt=&quot;Turtles in a half-shell&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Yesterday I breathed a sigh of relief as I returned to civilization and
could finally take a proper shower again. I spent some time at my new
digs—a basement apartment a few blocks off Haywood Rd—before venturing up
the hill to do some flâneuring along Haywood.&lt;/p&gt;
&lt;p&gt;West Asheville reminds me a bit of Seattle and a bit of Portland. It&apos;s
gritty, derelict, and industrial. There&apos;s a unique mix of old-world shops
and new-world gentrification.&lt;/p&gt;
&lt;p&gt;I stumbled upon another kava bar after having spent the afternoon across
town at Sovereign Kava. Elevated Kava Lounge is situated on the upper
level of an old brick building on Haywood.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/images/1280x1280/vincent/elevated-kava-lounge-b3037740.jpg&quot; alt=&quot;Elevated Kava Lounge&quot; /&gt;&lt;/p&gt;
&lt;p&gt;This morning I woke up and originally intended to find a cafe called
Izzy&apos;s that I had read about the day before, but my desperation for
caffeine was too mighty for me to find it. So I settled for a quaint
coffee shop called Bean Werks just a couple blocks down from Elevated
Kava.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/images/1280x1280/vincent/bean-werks-93cc8aef.jpg&quot; alt=&quot;Bean Werks&quot; /&gt;&lt;/p&gt;
&lt;p&gt;When I travel, I love to notice subtle differences between the place
I came from and the place I am. The thing I notice here compared to in St
Pete is that people are a bit more earthy. That&apos;s not to say I haven&apos;t
met my fair share of earthy folk in St Pete, but there&apos;s a mountain town
feeling here that reminds me a bit of the Pacific Northwest.&lt;/p&gt;
&lt;p&gt;Today I&apos;m hoping to make my way to the Moogseum—the Moog synthesizer
museum downtown. And there&apos;s a bookstore I&apos;ve heard is worth visiting as
well.&lt;/p&gt;
</content:encoded></item><item><title>I&apos;ll always be a mountain man</title><link>https://www.teejayvanslyke.com/letters/ill-always-be-a-mountain-man/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/ill-always-be-a-mountain-man/</guid><pubDate>Mon, 15 Aug 2022 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;img src=&quot;/assets/images/1280x1280/vincent/working-out-at-viewpoint-e2359a21.jpg&quot; alt=&quot;Working out at a viewpoint near
Asheville&quot; /&gt;&lt;/p&gt;
&lt;p&gt;The past few days have illuminated a truth that I think I&apos;ve known since
I moved to Florida, but that I tried very hard to escape: I&apos;ll always be
a mountain man at heart.&lt;/p&gt;
&lt;p&gt;This morning I awoke at Black Mountain Campground an hour&apos;s drive
northeast of Asheville. The temperature upon waking was a brisk 58 degrees
Fahrenheit and there was a gentle mist lining the treetops. The forest
floor was moist from a combination of the rain during the night and the
morning dew.&lt;/p&gt;
&lt;p&gt;I had yet another glorious night&apos;s rest—probably the best I&apos;ve had in
months since the brilliant, dry, cool Florida winter gave way to its
horrid, sticky summertime cousin. Which is a bitter irony, considering
I sleep in a luxurious king-sized pillow-top bed in my apartment, but on
a paltry twin-sized home-made couch conversion in Vincent&apos;s belly.&lt;/p&gt;
&lt;p&gt;As I made my way through the winding mountain pass back toward Asheville
this morning—with its hairpin switchbacks and crisp air, I giggled with
a feeling of conviction that this is the environment in which I thrive.
Perhaps not Asheville or North Carolina; the south has a political
undercurrent to which I still cannot acclimate. But the mountains,
generally, will always have my heart.&lt;/p&gt;
&lt;p&gt;The next couple days I&apos;ll be spending in a rented room in West Asheville
so that I can finally take the time to soak up the local culture and
perhaps meet some of the locals. I&apos;m eager to take a shower, to shave my
head, to make a triumphant return to urbanity, at least for a little
while.&lt;/p&gt;
</content:encoded></item><item><title>Waking up at the Cracker Barrel</title><link>https://www.teejayvanslyke.com/letters/waking-up-at-the-cracker-barrel/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/waking-up-at-the-cracker-barrel/</guid><pubDate>Sun, 14 Aug 2022 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;img src=&quot;/assets/images/1280x1280/vincent/2022-08-14-cracker-barrel-f3a49e2f.jpg&quot; alt=&quot;Woke up like this&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Yesterday I barreled (haha, get it?) through the swamps of Florida and
Georgia and into the forests of South Carolina. Last year, I stopped
somewhere south of the North-South Carolina border for a night&apos;s sleep at
a cheap motel. This year, however, I persisted and made it all the way to
Asheville.&lt;/p&gt;
&lt;p&gt;I pressed the button on Vincent&apos;s dashboard until the temperature
displayed below his speedometer, and watched it drop precipitously, from
91, to 88, to 83, to 79, to 72. I remember that incredible feeling when
I&apos;d traverse the mountains out west and could feel the temperature change
after only travelling a hundred miles.&lt;/p&gt;
&lt;p&gt;Exhausted from the day&apos;s travels, I scoured West Asheville for
a reasonably stealthy place to park, but couldn&apos;t find anywhere that
wasn&apos;t either directly in front of a residence or on a busy commercial
street. So I searched for the nearest Cracker Barrel and made their
parking lot my home for the night.&lt;/p&gt;
&lt;p&gt;To be honest, my night&apos;s sleep outside that Cracker Barrel was among the
best I&apos;ve had in months. The cool mountain air soothed me with its natural
fragrance—so much more inviting than the stale, noxious fumes of recycled
and conditioned Florida summer air. Whenever I take trips like this I&apos;m
reminded that the simplest changes are often the most profound. We spend
so much of our lives chasing status and material goods, not realizing that
often our contentment lies on the other side of a simple environmental
shift.&lt;/p&gt;
&lt;p&gt;So far, my trip has cost me only gas money and a few dollars for coffee on
the interstate—my food supply has so far been commandeered from leftovers
from my apartment. What bliss to know you&apos;re making the most of your
earnings and stretching out the amount of leisure you can have by
eliminating luxurious spending.&lt;/p&gt;
&lt;p&gt;Now I&apos;m sitting in Vincent&apos;s belly, enjoying a fresh cup of coffee
I brewed in the parking lot of an Ingles grocery store. I somehow had five
green propane bottles stored up at home that I thought I&apos;d bring along, so
I want to run my stove as much as I can so I can discard them to free more
precious space.&lt;/p&gt;
&lt;p&gt;I had forgotten, in my past year of domesticity, the thrill of not knowing
where you&apos;ll sleep.&lt;/p&gt;
</content:encoded></item><item><title>Preparing for departure</title><link>https://www.teejayvanslyke.com/letters/preparing-for-departure/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/preparing-for-departure/</guid><pubDate>Sun, 07 Aug 2022 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;img src=&quot;/assets/images/1280x1280/vincent/morning-pages-at-black-crow-coffee-679dcf81.jpg&quot; alt=&quot;Morning Pages @ Black Crow
Coffee&quot; /&gt;&lt;/p&gt;
&lt;p&gt;There are only a few short days until I head northward from my home base
in Saint Petersburg, Florida all the way to Montreal.&lt;/p&gt;
&lt;p&gt;I&apos;m very eager to get out of Florida and see some different landscapes and
interact with different cultures, even if I&apos;ll only be traversing North
America. I was stunned by how different Florida was when I arrived, and it
will be equally as stunning I&apos;m sure to once again witness the North
through Southern eyes.&lt;/p&gt;
&lt;p&gt;I&apos;m so grateful for the friends I&apos;ve made during my time in St Pete. I&apos;m
not sure I&apos;ve ever been a member of such a dynamic group.&lt;/p&gt;
&lt;p&gt;Because I kicked my smartphone to the curb, I&apos;ll be taking photos on the
trip with a Nikon Coolpix camera I bought from Craigslist for $20. As you
can see from the image above, it&apos;s of &lt;em&gt;excellent&lt;/em&gt; quality!&lt;/p&gt;
&lt;p&gt;Check back here for updates as I traverse this wild continent!&lt;/p&gt;
</content:encoded></item><item><title>Love</title><link>https://www.teejayvanslyke.com/letters/love/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/love/</guid><pubDate>Wed, 14 Apr 2021 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;I&apos;m on a mission to change the way I love. Maybe you&apos;ll join me.&lt;/p&gt;
&lt;p&gt;Our culture has taught us that love is a romantic fairytale, and that it
is normal and healthy to expect your partner to live up to all of your
wildest dreams. This leads us to harbor unrealistic expectations that
inevitably lead to resentments and misery.&lt;/p&gt;
&lt;p&gt;These expectations can be socially constructed, such as in marriage.
A spouse is expected to behave differently from a casual romantic lover.
A different set of norms and expectations arises out of the new social
contract, which the person might not be capable of fulfilling.&lt;/p&gt;
&lt;p&gt;Expectations can also be about our partner. We expect them to
conform to our needs and wants, and believe we&apos;ve been victims to
injustice if they don&apos;t meet those expectations. Even if we have the best
of intentions when we express our unmet needs and do not indulge in blame
or shaming, our grievances break the bounds of trust with our partner and
place us in a position of victimhood to our emotions.&lt;/p&gt;
&lt;p&gt;But most subtle and sinister of all, we craft expectations about ourselves
in our relationships. We believe we need to live up to the version of
ourselves we think our partner needs and wants. We become performative,
acting out the role we believe will garner acceptance and validation. We
deny our own limitations and boundaries, losing what makes us us in the
process.&lt;/p&gt;
&lt;p&gt;The fact is, the culturally sanctioned version of romantic love is not
love: It is infatuation. It places the ego at the center of the
relationship, and insists that we make satisfying our own selfish desires
a priority over being a present, grounded, reliable partner. The trouble
with the ego is that we often don&apos;t recognize clearly when we&apos;re being
selfish, and sometimes mistake our own selfishness for selflessness.&lt;/p&gt;
&lt;p&gt;We play the role of the fixer. We try to resolve our partner&apos;s problems
without asking, or insist on &quot;being there&quot; for them, becoming disappointed
when they don&apos;t want or need our help.&lt;/p&gt;
&lt;p&gt;While on the surface, this behavior might seem sweet and accommodating,
it&apos;s actually self-centered and insecure. It seeks not to help the other
person, but to validate our ego. Instead of being grounded and available,
we place our desire to be recognized and validated by the other person
above all else.&lt;/p&gt;
&lt;p&gt;Love starts at the source: Within ourselves. We cannot love another
without first trusting and confiding in ourselves. When we try, we project
the love we ought to have for ourselves onto the other person. We deny
ourselves attention and care, and expect the other person to make up
for it.&lt;/p&gt;
&lt;p&gt;Our misguided cultural notion of romantic love has deluded us into
believing that when we enter a relationship, it is normal and healthy to
make that person the center of our lives. We are led to believe that
constantly tending to the other person is compassionate and caring, and
that constantly making your needs known is vulnerable and sensitive. The
irony is that this is the most self-centered and ego-driven way to live
out a relationship. Our identity suddenly becomes defined in terms of the
other person. We lose our footing and become dependent on the other person
for meeting our needs.&lt;/p&gt;
&lt;p&gt;Instead, we must recognize that the truly compassionate path is the one of
self-love, self-sufficiency, and groundedness. By taking responsibility
for our own lives, learning to manage our own emotions, and grounding
ourselves in our own self-love, we are able to arrive to our partner with
our needs already met by the only person who can meet them: Us.&lt;/p&gt;
</content:encoded></item><item><title>Crying</title><link>https://www.teejayvanslyke.com/letters/crying/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/crying/</guid><pubDate>Tue, 13 Apr 2021 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;When was the last time you had a good, long cry?&lt;/p&gt;
&lt;p&gt;We&apos;ve been socialized, especially as men, to believe that crying is a sign
of weakness. And, while there is value in controlling the expression of
one&apos;s emotions, there&apos;s also immense value in the catharsis of a good cry.&lt;/p&gt;
&lt;p&gt;The other day, I spent a morning doing an exercise that might sound crazy.
You know those painful memories you have stored up? The ones where you
were bullied, or you got dumped, or a loved one died? I made a long list
of all of those.&lt;/p&gt;
&lt;p&gt;And then I added to that list all of my worst fears. My parents dying.
Someone I love receiving a terminal diagnosis. A car crash. Nuclear war.&lt;/p&gt;
&lt;p&gt;I looked up and down the list. Had I truly felt the pain experience of all
of these past occurrences and future possibilities and certainties? How
often in my life did I avoid feeling that pain, through drugs or sex or
intellectualizing or media or shopping?&lt;/p&gt;
&lt;p&gt;So I went down the list and forced myself to confront the pain of each
experience. I lay in my bed crying, alone, for hours. I allowed the flood
of emotion to overcome me. When it felt like it might be too much,
I breathed into the experience and reassured myself that I could press on.&lt;/p&gt;
&lt;p&gt;And then, I confronted the ultimate ego pain: my own death. I&apos;ve spent my
life avoiding the truth that one day, I&apos;m going to die. So I focused on
it. I pushed my ego off a cliff. &lt;em&gt;You&apos;re going to die.&lt;/em&gt; One day, some
day, is going to be your last. I bawled my eyes out.&lt;/p&gt;
&lt;p&gt;Afterward, I felt a divine calm wash over me. The only other experience
that offered me a similar serenity was in the aftermath of a psilocybin
therapeutic retreat. I held my own hand. I hugged myself. I felt, in that
moment, self-love and self-acceptance. I realized that, in spite of all my
painful experiences, they don&apos;t define me. I came to understand that by
embracing my mortality, I could access an inner peace I didn&apos;t know was
possible.&lt;/p&gt;
&lt;p&gt;You know that feeling when something funny happens in a quiet setting
where it would be inappropriate to laugh, and you have a hard time holding
it in? You cover your mouth and try to hide your smirk, but your laughter
still permeates through the gaps between your fingers. And if it doesn&apos;t
and you do manage to hold it in, you&apos;ll be gasping for air laughing
maniacally as soon as you&apos;re able to leave the room.&lt;/p&gt;
&lt;p&gt;Holding in your pain is a lot like that. Except when you hold in your
pain, releasing it tends to hurts other people. Whether by emotional abuse
or by actual violence, it&apos;s true that &quot;hurt people hurt people&quot;. Our
stored pain becomes a ball and chain weighing us down. We carry our pain
wherever we go. It&apos;s heavy and burdensome. It keeps us from opening up. It
damages our ability to trust—both in ourselves, and in the people we love.&lt;/p&gt;
&lt;p&gt;We recede into childish validation seeking, neediness, and addiction in
order to get what we perceive to be our needs met. They&apos;re not our needs:
They&apos;re the pain of not feeling okay in the world because we internalized
our past mistakes and traumas as a reflection of who we are. In choosing
to feel our previously unfelt pain, we open ourselves up to a more adult
modality of relating with others and ourselves.&lt;/p&gt;
&lt;p&gt;So don&apos;t be such a baby. Cry more.&lt;/p&gt;
</content:encoded></item><item><title>The nature industrial complex</title><link>https://www.teejayvanslyke.com/letters/the-nature-industrial-complex/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/the-nature-industrial-complex/</guid><pubDate>Wed, 05 Feb 2020 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Ever stop to think about how much we consume just to be outside?&lt;/p&gt;
&lt;p&gt;There&apos;s an entire industry that relies on the idea that we&apos;re all just
a bit too urban, that going into the woods is good for us, and that to do
it, first we need $300 boots and a $200 jacket.&lt;/p&gt;
&lt;p&gt;But it&apos;s not just the outdoor apparel industry that uses the narrative
&quot;nature is good for you&quot; to peddle its wares. The tourism industry, with
more than a hint of irony, develops previously &quot;natural&quot; land into hotels,
restaurants, and resorts—all in the name of &quot;getting back to nature.&quot;&lt;/p&gt;
&lt;p&gt;And it&apos;s not that nature isn&apos;t good for us. I have plenty of anecdotal
evidence from my own life that when I take a walk in the woods, I feel
better afterwards.&lt;/p&gt;
&lt;p&gt;But perhaps the outdoor lifestyle is actually just another machination of
the advertising industry. What if the outdoorsperson&apos;s desire to drive
a Subaru Outback, shop at REI, wear KEEN shoes, and go backpacking is
actually a manufactured desire, planted by advertising which alleges the
benefits of going outside in order to sell expensive outdoor products?&lt;/p&gt;
&lt;p&gt;The truth is, you don&apos;t really need that much equipment or special
clothing to go outside. A decent pair of boots and a windbreaking jacket
are a good start. Walk into your local REI though, and you&apos;ll be surely
convinced otherwise.&lt;/p&gt;
</content:encoded></item><item><title>Buying nothing in 2020</title><link>https://www.teejayvanslyke.com/letters/buying-nothing-in-2020/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/buying-nothing-in-2020/</guid><pubDate>Mon, 03 Feb 2020 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;I forgot to tell you about my New Year&apos;s resolution: This year, I&apos;m not
buying anything.&lt;/p&gt;
&lt;p&gt;Okay, maybe I&apos;m going to have to buy food, toiletries, and the odd article
of clothing out of necessity. But every time I catch myself thinking
&quot;wouldn&apos;t it be nice if I had X&quot;, I&apos;m going to pause, smile, and divert my
attention.&lt;/p&gt;
&lt;p&gt;So far, it&apos;s been a wholly liberating experience. I wear the same outfit
every day (black shirt with blue jeans), so I&apos;m not fazed by the birdsong
of advertisers or storefronts beckoning me to look differently.&lt;/p&gt;
&lt;p&gt;Priorities shift when you elect not to buy anything. Instead of focusing
on the next acquisition, the attention shifts toward creativity,
stillness, and community. I&apos;ve spent so much more time among friends than
in the self-imposed prison of work-and-spend.&lt;/p&gt;
&lt;p&gt;As well, a life with less stuff is less work to maintain and less space is
required. An inner peace is reemerging out of the knowledge that I have an
abundance—not of stuff—but of time and space.&lt;/p&gt;
&lt;p&gt;We&apos;re constantly fed messages that we ought be busy, that we ought work
and consume and work and consume again. But what if we practice refusal?
What if, instead, we all stopped buying and started smiling more, loving
more, and learning more? How would the world change?&lt;/p&gt;
&lt;p&gt;I&apos;m not buying anything in 2020.&lt;/p&gt;
</content:encoded></item><item><title>How I&apos;m staying youthful in my thirties</title><link>https://www.teejayvanslyke.com/letters/how-to-stay-youthful-in-your-thirties/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/how-to-stay-youthful-in-your-thirties/</guid><pubDate>Mon, 27 Jan 2020 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;I&apos;m a few months into my 35th year of life. And, in the past five years,
I&apos;ve noticed a trend in my behavior and outlook toward more conservative
values. Where once I was the spry idealist, I&apos;ve noticed myself recoiling
at the thought of change. The stakes are higher, or so they seem.&lt;/p&gt;
&lt;p&gt;But are the stakes truly higher? Must we enter midlife with the sense that
the decisions we make matter more than they did when we were younger? And
does the idea of a &quot;midlife crisis&quot; represent a less-than-graceful attempt
to refute the idea of &quot;growing up&quot;?&lt;/p&gt;
&lt;p&gt;Most people in their mid-thirties have children. I&apos;ve always thought
children were interesting, but I&apos;m still in no rush to have them. If you
don&apos;t have children, ironically, it&apos;s a lot easier to maintain your youth.
Children are expensive, stressful, and severely limit your mobility.&lt;/p&gt;
&lt;p&gt;Most people in their thirties carry some sort of consumer debt. They&apos;re
burdened by the hastiness of their past financial decisions, and throw up
their arms, surrendering to &quot;the way things are&quot;.&lt;/p&gt;
&lt;p&gt;Generally, debt is the result of ever-increasing anxieties about one&apos;s
status in society. In order to be treated with respect, we think, we need
to look the part of someone worth respecting. And so, we buy the markers
of respect, not recognizing that the work of being respected lies mostly
in improving our behavior and demeanor rather than our material
possessions.&lt;/p&gt;
&lt;p&gt;And finally, when we feel stuck, when the pressure to &quot;succeed&quot; becomes
suffocating, we cover up the difficult feelings of inadequacy with alcohol
and drugs. We allow our bodies to atrophe and soften. We &quot;let ourselves
go&quot;.&lt;/p&gt;
&lt;p&gt;Back in 2005, Steve Jobs gave a commencement address at
Stanford, where he quoted
the back cover of the final issue of the Whole Earth
Catalog:&lt;/p&gt;
&lt;blockquote&gt;&lt;/blockquote&gt;
&lt;p&gt;Stay hungry. Stay foolish.&lt;/p&gt;
&lt;p&gt;I remember watching his address on YouTube way back in 2005, way back when
I was a hungry, foolish twenty-year-old. And I remember thinking how
I would &lt;em&gt;never&lt;/em&gt; allow the winds of a crazy world to blow me into a state
of fear and paralysis. I would always be hungry: For knowledge, for love,
for adventure. And I would always be foolish: Always curious, a dopey fool
in love with waking up in the morning, with an unwaivering faith.&lt;/p&gt;
&lt;p&gt;But then, as my twenties progressed, I veered off course. I harbored deep
insecurities. I took high-paying jobs that offered me little in the way of
deeper meaning, and spent all my money on consumer purchases—the very
opposite of the ethos I had espoused in my college years. I drank.
I became so focused on my own petty problems that I couldn&apos;t see beyond
them.&lt;/p&gt;
&lt;p&gt;And now, in my mid-thirties, I&apos;ve been busy unravelling the horrible wet
blanket I knitted over myself. The blanket that looked like it kept me
warm but actually only made me shiver. A false security. A hollow
existence. I&apos;m cultivating my &lt;em&gt;beginner&apos;s mind&lt;/em&gt;—my sense of wonder,
curiosity, and courage.&lt;/p&gt;
&lt;p&gt;When I inevitably feel the fear piercing through—when I&apos;m confronted with
invasive thoughts about how I&apos;m not enough, how I&apos;m going to run out of
money, how I&apos;m going to die alone—how I ought to &quot;grow up&quot;, whatever that
means—I gently remind myself that I don&apos;t need to listen to that. Instead,
I breathe in that wonderful mantra: &lt;em&gt;Stay hungry. Stay foolish.&lt;/em&gt;&lt;/p&gt;
</content:encoded></item><item><title>My perfect next gig</title><link>https://www.teejayvanslyke.com/letters/looking-for-my-next-gig/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/looking-for-my-next-gig/</guid><pubDate>Fri, 24 Jan 2020 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Hello everyone! I&apos;m currently looking for my next web engineering gig.
I know there&apos;s no perfect job out there, but I thought I&apos;d outline what my
ideal gig might look like in case you or someone you know has a role for
which I&apos;m a good fit:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;15-20 hours per week:&lt;/strong&gt; I love engineering, but I find that beyond 20
or so hours per week, my personal health suffers and I become burnt out.
That&apos;s why I&apos;m looking for a project that accepts a half-time
commitment.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Remote:&lt;/strong&gt; I&apos;ve worked remotely my entire career, and I can&apos;t imagine
working a tethered position. I love going to client sites for occasional
meetings and for team building, but I do my best work at home and in
cafes.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Long-term product-oriented development:&lt;/strong&gt; While I enjoy the occasional
short-term subcontracting project, I really want to find a position on
a product team which takes pride and ownership over a product for the
long haul.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;A good mix of both proven and emerging technologies:&lt;/strong&gt; I love to learn
new and emerging technologies, but I also enjoy working with what works.
I&apos;d love to be able to leverage my years of experience with technologies
like Rails and React while also learning new languages and frameworks
like Rust and Svelte.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;A culture of managers of
one: I&apos;m
a bona fide self-starter and want to find a culture which incentivizes
people to self-organize.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;A skill-diverse team:&lt;/strong&gt; It&apos;s so rewarding to work among people whose
skills are different from mine. I love both teaching and learning
opportunities, and hope my next gig surrounds myself with people whose
aptitudes are different from mine.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you or anyone you know need to add another engineer to their team, head
over to my &lt;a href=&quot;/about&quot;&gt;About my services&lt;/a&gt; page to see how I work, and
&lt;a href=&quot;https://teejayvanslyke.com/contact&quot;&gt;send me a message&lt;/a&gt; so we can chat about the possibilities.&lt;/p&gt;
</content:encoded></item><item><title>Darkness</title><link>https://www.teejayvanslyke.com/letters/there-s-beauty-in-darkness/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/there-s-beauty-in-darkness/</guid><pubDate>Sat, 19 Oct 2019 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;img src=&quot;/assets/images/1280x1280/steeple-26ff8f3c.jpg&quot; alt=&quot;Steeple&quot; /&gt;&lt;/p&gt;
&lt;p&gt;I&apos;ve spent the better part of my life avoiding darkness and suffering.
Maybe you have, too.&lt;/p&gt;
&lt;p&gt;I&apos;m learning to love my rough edges: to confront them lovingly as I would
a friend, and to nurture them just like I nurture my lightness.&lt;/p&gt;
&lt;p&gt;Without shadows, there is no light. Without war, there is no peace.
Without evil, there is no good. Without fear, there is no love.&lt;/p&gt;
&lt;p&gt;Feeling fearful is unpleasant, but is there not joy in knowing you have
enough to lose that you&apos;re feeling that way? How elated we could be to
interpret fear as a sign we&apos;re already blessed.&lt;/p&gt;
&lt;p&gt;Transgressions against someone we love can evoke within us feelings of
guilt and shame. But our misdeeds are opportunities for growth and
learning. Is there not beauty in messing up? How lovely we have the
opportunity to fall and get back up again.&lt;/p&gt;
&lt;p&gt;A capacity for darkness exists within each of us, and yet we deny it
or excentuate our lighter qualities in the interest of appeasing others.
True, it&apos;s more noble to love and to do good, and we ought strive to
pursue these ends. But to be in touch with our darkness is to acknowledge
our deep, complex humanity. It is to admit to ourselves and each other
that we&apos;re alive, feeling, reeling, confused, and alone.&lt;/p&gt;
&lt;p&gt;And that&apos;s okay. You&apos;re beautiful—shadows, light, and all.&lt;/p&gt;
</content:encoded></item><item><title>Rise of the digital flâneur</title><link>https://www.teejayvanslyke.com/letters/rise-of-the-digital-flaneur/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/rise-of-the-digital-flaneur/</guid><pubDate>Tue, 08 Oct 2019 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;img src=&quot;/assets/images/1280x1280/irving-manor-43f52e0a.jpg&quot; alt=&quot;An apartment building in Northwest Portland&quot; /&gt;&lt;/p&gt;
&lt;p&gt;You&apos;ve heard of the digital nomad: people who use telecommunications
technologies to earn a living and conduct their life in a nomadic manner.&lt;/p&gt;
&lt;p&gt;I&apos;ve worked remotely for nearly as long as it&apos;s been feasible. Way back in
2007, only a year out of college and into my first job, I took the plunge
into remote working and never looked back.&lt;/p&gt;
&lt;p&gt;I remember being among the first wave of remote workers in Portland. It
was becoming more common to see laptops in cafes, but it wasn&apos;t as
normalized as it is now. I remmeber thinking that this style of work was
going to change the landscape of cities and the way we think about work.
It has.&lt;/p&gt;
&lt;p&gt;I never gave it much thought, but for the tenure of my remote work career,
I&apos;ve appreciated and enjoyed the sense of adventure that comes from the
freedom to work anywhere. There are days—workdays—I spend walking from
cafe to cafe, exploring, taking photographs, joining friends for meals,
cycling, shopping, and experiencing the beauty of the city. This is
a beautiful privilege for which I am deeply grateful.&lt;/p&gt;
&lt;p&gt;When my friend visited from Seattle over the weekend, she mentioned
Portland was the perfect city for the budding &lt;em&gt;flâneur&lt;/em&gt;. I couldn&apos;t think
of a better word to describe the essence of this lifestyle.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;dig·i·tal flâ·neur&lt;/strong&gt; (n): A person who uses digital technology to earn
a living in pursuit of experiencing beauty in the everyday.&lt;/p&gt;
</content:encoded></item><item><title>The joy of an experiential life</title><link>https://www.teejayvanslyke.com/letters/the-joy-of-an-experiential-life/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/the-joy-of-an-experiential-life/</guid><pubDate>Mon, 07 Oct 2019 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;img src=&quot;/assets/images/1280x1280/me-vandana-director-park-12a6238e.jpg&quot; alt=&quot;Scorpio Summit&quot; /&gt;&lt;/p&gt;
&lt;p&gt;I&apos;ve noticed, over the course of my adult life, a tendency to oscillate
gracefully between flaneur and entrepreneur, bon vivant and businessman,
bohemian and industrialist. There seem to be within me threads from each
of these cloths, vying for my time and attention.&lt;/p&gt;
&lt;p&gt;I&apos;ve spent the past few months as an idle lounger, but am squarely ready
to get back to work. I know though that, within a few months of returning
to work, I&apos;ll be longing for the tranquility and freedom of moments spent
in stillness.&lt;/p&gt;
&lt;p&gt;This weekend, a college friend visited from Seattle. We spent the better
part of the weekend indulging in our own subjective experience. We drank
coffee and tea, ate local cuisine, consumed cannabis edibles, took long
walks, and shared our current favorite music. It was the best of times.&lt;/p&gt;
&lt;p&gt;Something strikes me whenever I feel deeply connected to another person
and myself: It&apos;s never a result of industriousness, money, or
power—although these do play a role in our privilege to spend our time
this way. No: the greatest amusement park and entertainment device is
between our ears.&lt;/p&gt;
</content:encoded></item><item><title>Do thoughts create reality?</title><link>https://www.teejayvanslyke.com/letters/do-thoughts-create-reality/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/do-thoughts-create-reality/</guid><pubDate>Fri, 04 Oct 2019 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Ever since I watched the oh-so-vulnerable-to-skepticism movie &lt;em&gt;The Secret&lt;/em&gt;
back in 2007, I&apos;ve been fascinated, in varying degree, by the central
premise of the film that our thoughts create our reality. This idea is
much older than &lt;em&gt;The Secret&lt;/em&gt;. Napoleon Hill wrote about the causality of
thoughts in his seminal self-help book &lt;em&gt;Think and Grow Rich&lt;/em&gt; way back in
1937. And before Hill, Phineas Quimby wrote about the idea after having
been diagnosed with tuberculosis and believing in the idea of mind over
body in his miraculous recovery.&lt;/p&gt;
&lt;p&gt;From a skeptical perspective, the idea that our thoughts influence or
produce reality is untenable because it&apos;s not falsifiable. If I begin with
the premise that our thoughts are creating the reality around us, there&apos;s
no way for you to disprove it because I can always cite examples that will
support my claim. And similarly, there&apos;s no way for me to prove it to be
the case that thoughts are causal, since you can always come up with
counterexample narratives.&lt;/p&gt;
&lt;p&gt;But the scientific perspective, to me, isn&apos;t valuable when considering the
causality of thoughts. That&apos;s because the idea of the law of attraction is
much more like faith than science. We can debate whether or not God exists
from a scientific perspective until the end of time, but whether or not
God exists does not negate the value billions of people derive from
believing. It is this faith mindset—the idea that there is a force beyond
ourselves at work—that makes the idea of causal thoughts powerful.&lt;/p&gt;
&lt;p&gt;If you, for instance, believe that you are doomed to forever be
unattractive to the opposite sex, and carry that belief with you
throughout your days, there&apos;s a good chance your behavior will match that
perspective. You&apos;ll likely slouch and suggest lack of confidence with your
body language. You might overeat or abuse alcohol in order to cope with
your poor self-image. And you certainly won&apos;t be smiling at or approaching
anyone. Now, this doesn&apos;t necessarily mean your thinking you&apos;re
unattractive to the opposite sex has &lt;em&gt;directly&lt;/em&gt; caused you to be
unattractive, but it does imply that your thoughts translate into
behaviors which then result in your belief coming true.&lt;/p&gt;
&lt;p&gt;Conversely, if you choose to believe that you are abundantly attractive to
the opposite sex and work to carry that belief with you, it&apos;s likely that
your behavior will align to match. You&apos;ll stand up straighter, smile more,
and be more willing to engage with others. All of this lands you a much
better chance at success.  Again, this isn&apos;t a direct causal relationship
between thoughts and reality, but a causal link from your thoughts, into
your behaviors, into reality.&lt;/p&gt;
&lt;p&gt;Prayer and meditation are the practiced manifestation of these types of
positive thoughts, and have been around for millenia. We sit in stillness
and contact a higher power in order to manifest something different in our
lives, whether that&apos;s as simple as a better mood or as profound as
reversing terminal illness.&lt;/p&gt;
&lt;p&gt;I&apos;m a lifelong skeptic, but I often invoke prayer and the law of
attraction in my own life because I recognize the value in maintaining
focus on a goal. Whether there are peer reviewed papers on the efficacy of
such a technique, to me, is missing the point.&lt;/p&gt;
</content:encoded></item><item><title>My favorite teas</title><link>https://www.teejayvanslyke.com/letters/my-favorite-teas/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/my-favorite-teas/</guid><pubDate>Wed, 02 Oct 2019 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Awhile back I wrote about how I prepare coffee at
home. Now, I &lt;em&gt;love&lt;/em&gt; coffee, and it&apos;s
hard to admit this, but I think it&apos;s been contributing to what has become
a constant dull roar of anxiety in my life.&lt;/p&gt;
&lt;p&gt;Last week, I decided to try something different. I boxed up all my coffee
gear, and resolved to make coffee a special treat for when I&apos;m out at
cafes, and to make tea at home instead—especially first thing in the
morning when usually I&apos;d down a cup of Aeropress on an empty stomach.&lt;/p&gt;
&lt;p&gt;So far, the results have been overwhelmingly positive. I&apos;ve noticed that
I&apos;m more present during my 7:30am workouts, and can drink green tea on an
empty stomach without getting those horrid &quot;coffee gurgles.&quot; I&apos;ve also
noticed that I crave carbohydrates much less often, which has
a compounding positive effect on my mood since I&apos;m not constantly spiking
my blood sugar levels.&lt;/p&gt;
&lt;p&gt;Because of my newfound appreciation for tea, I thought I&apos;d share a few of
my favorite varieties.&lt;/p&gt;
&lt;h3&gt;Japanese sencha&lt;/h3&gt;
&lt;p&gt;Sencha is the most popular tea in Japan, comprising about 80 percent of
the tea produced there. It has a somewhat grassy taste and a cloudy,
green-gold color. I love sencha for the fact I can drink seemingly
unlimited quantities of it and not get jittery or anxious. That&apos;s because
sencha, like all green teas, contains theanine, an amino acid analogue
that counteracts some of the negative effects of caffeine. It also
contains significantly less caffeine than a cup of coffee, meaning it can
be consumed in much higher quantities than coffee. Additionally, green tea
isn&apos;t acidic like coffee, having a pH between 7 and 10, with coffee having
a pH of around 5.&lt;/p&gt;
&lt;h3&gt;Lapsang souchong&lt;/h3&gt;
&lt;p&gt;Literally translating to &quot;coarse tea leaves from the Upright Mountains&quot;,
lapsang souchong is a variety of black tea which is smoke-dried over
pinewood fires, giving it a distinct smoky taste that I think is
reminiscent of a fine scotch.&lt;/p&gt;
&lt;p&gt;Because of the smoky flavor and higher caffeine content when compared to
sencha, I&apos;ve been drinking lapsang souchong in the mornings. Its smoky
flavor is a delight for a reforming coffee drinker, since it gives the
impression that you&apos;re still imbibing something, erm, rugged.&lt;/p&gt;
&lt;h3&gt;Cinnamon spice rooibos&lt;/h3&gt;
&lt;p&gt;And finally, for those glorious hours before bedtime, I love to relax with
a cup of my favorite herbal blended tea variety. If you&apos;re in the Portland
area, both Townshends Tea Company and Tea Chai Te have similar blends:
Rooibos Cinnamon
Spice and
Rooibos Market
Spice,
respectively.&lt;/p&gt;
&lt;p&gt;I love these teas because they taste like, well, Christmas. They&apos;re
incredibly warming, naturally sweet, and you can drink as many cups as you
have time for. I like to think it&apos;s a great non-alcoholic substitute for
mulled wine in the autumn and winter months.&lt;/p&gt;
</content:encoded></item><item><title>Autumn update</title><link>https://www.teejayvanslyke.com/letters/autumn-update/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/autumn-update/</guid><pubDate>Mon, 30 Sep 2019 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Autumn is upon us. It&apos;s time to pack away the sunwear and prepare for
a more productive season. I&apos;m always struck how ready I am to begin
working again at the end of a hot summer. There&apos;s a certain energy abound
in the autumn season that begets sitting in cafes, tap-tap-tapping away at
your computer, doing the mental work that got cast aside in the throes of
summer.&lt;/p&gt;
&lt;p&gt;I&apos;ve gone through several transformations in the past few months which
have informed my perspective in autumn. Chief among these is becoming
newly single, foisted into a period of my life where I once again am able
to reunite with myself. At times, it&apos;s felt like an early midlife crisis.
At others, it&apos;s felt like a rejuvination. Either way, it&apos;s been an
incredible period of growth. If you&apos;re going through a breakup right now,
just keep in mind that often the biggest strides are made when you&apos;re at
your lowest.&lt;/p&gt;
&lt;p&gt;Being single has taught me that no matter my relationship status, I still
have to face myself. It&apos;s tempting to imagine that a partner can save us,
but our problems persist in spite of them. In fact, sometimes being in
love can inhibit our growth by distracting us from the difficult work that
needs doing.&lt;/p&gt;
&lt;p&gt;My career, for the past months, has been on a well-deserved and much
needed hiatus. As I wrote back in
March, I went on a self-imposed summer vacation
in order to see what I could discover and learn during a period of no
work. Surprisingly, it&apos;s at times been quite difficult to maintain my
sanity without needing to be of service to others. The first few weeks
were hell; my life had always been arranged around work. With nothing to
fill the void, I tended to fill the time with bad habits. After a couple
months though, I got into a routine filled with workouts, bike rides,
novels, and drawing:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/images/1280x1280/street-art-fe60f5d2.jpg&quot; alt=&quot;Street Art&quot; /&gt;&lt;/p&gt;
&lt;p&gt;That said, I think, as of today, I&apos;m ready to go back to work. I feel like
I&apos;ve taken the time I need to decompress, redefine some things that needed
time and space to redefine, and to explore and experiment with new
lifestyles, ideas, cultures, and perspectives. It&apos;s funny how, in spite of
resenting and renouncing the workaday world so much, I find myself
returning to it for a sense of purpose and dignity. I&apos;m not sure I&apos;ll ever
feel at home in a nine-to-five traditional job, but I think it&apos;s
imperative to feel needed and to have a purpose outside of myself.&lt;/p&gt;
&lt;p&gt;If you or anyone you know needs top-notch Rails or React engineering
help, head on over to read about my &lt;a href=&quot;/about&quot;&gt;engineering services&lt;/a&gt;
and send me a message.&lt;/p&gt;
</content:encoded></item><item><title>Learning to be alone</title><link>https://www.teejayvanslyke.com/letters/learning-to-be-alone/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/learning-to-be-alone/</guid><pubDate>Tue, 13 Aug 2019 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;img src=&quot;/assets/images/1280x1280/me-window-sweats-93609a0d.jpg&quot; alt=&quot;Me, looking out the window&quot; /&gt;&lt;/p&gt;
&lt;p&gt;For years, I&apos;ve actively battled my introversion. It has always seemed
like I wanted to spend most of my time alone, but I denied this because
I thought it would lead me to become antisocial. Extroversion is our
culture&apos;s default mode, and sometimes it feels like I&apos;m not supposed to
want to loaf around doing nothing all by myself.&lt;/p&gt;
&lt;p&gt;This past weekend I attended a music festival with my friends. It was
three days and two nights of camping in close quarters and time engaging
with groups. Within a few hours, I was exhausted. Several times
I retreated into the tiny confines of my tent to read and think on my own.
For most of the weekend I found myself sitting alone on the sidelines of
the festival, not wanting to engage. I thought I was a loser, a recluse,
a loner. It was a blow to my ego to think that I couldn&apos;t hang in this
environment.&lt;/p&gt;
&lt;p&gt;On my way home, I stopped at a cafe in Salem for some breakfast. There,
I Googled &quot;introversion&quot; on my phone, and stumbled upon the
&lt;a href=&quot;https://www.reddit.com/r/introvert/&quot;&gt;/r/introvert&lt;/a&gt; subreddit. I suddenly
felt at home! Here&apos;s a community of over 100,000 people who feel generally
the same way I do about socializing. It&apos;s not antisocial to want to spend
most of your time alone—it&apos;s introverted!&lt;/p&gt;
&lt;p&gt;I usually shy away from actively pursuing labels to add to my identity,
but &quot;introvert&quot; has become a label flag I&apos;ll proudly fly. For my entire
adult life I&apos;ve been trying to fight my tendencies to spend time alone, to
have a deep internal life, and to avoid group situations like the plague.&lt;/p&gt;
&lt;p&gt;I spent over a year in a relationship with a partner whose personality was
so different from mine in this regard. In spite of our best efforts, we
just couldn&apos;t make it work because I always wanted to spend more time
&quot;alone together&quot; than she did. I really took that personally, thinking
I was somehow deficient. Now I realize I really do need a partner who
wants to make the relationship her #1 priority, like I do.&lt;/p&gt;
&lt;p&gt;This week I&apos;ve noticed a certain tranquility in moments spent alone in
cafes reading or writing. Instead of feeling the typical guilt or shame
I&apos;d feel when I was alone and everyone else was gabbing away in the
background, I realize now that I loathe small-talk and much prefer to have
a few meaningful social interactions instead of constantly exhausting my
social energy on mundane conversations.&lt;/p&gt;
&lt;p&gt;If you&apos;re an introvert struggling like I was, I can assure you you&apos;re not
alone! There are plenty of kind, intelligent, quiet introverts like us who
can&apos;t wait to sit in cafes with you, headphones on, doing our own things,
together.&lt;/p&gt;
</content:encoded></item><item><title>I got rid of my home office</title><link>https://www.teejayvanslyke.com/letters/i-got-rid-of-my-home-office/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/i-got-rid-of-my-home-office/</guid><pubDate>Thu, 20 Jun 2019 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Today I got rid of my home office. I had a six-foot beheamoth of
a desk in my living room with a giant monitor that pierced your soul.&lt;/p&gt;
&lt;p&gt;I&apos;ve spent the past several months quietly deliberating whether or not to
pull the plug, and every time it came down to a sense of fear that I&apos;d
somehow be lost without it. That a laptop might not be enough.
That I&apos;d be a less serious engineer if I worked at the kitchen table.&lt;/p&gt;
&lt;p&gt;Now a credenza stands where my desk once stood, its surface covered in
plants, candles, a lamp, and a small speaker. Now when I have my morning
coffee, I no longer look across the room overwhelmed at all the busyness
I&apos;ll soon endure. Instead, I sit transfixed on the fractal nature of my
spider plant, and realize why I&apos;m here in the first place.&lt;/p&gt;
</content:encoded></item><item><title>Anticulturalism</title><link>https://www.teejayvanslyke.com/letters/anticulturalism/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/anticulturalism/</guid><pubDate>Mon, 17 Jun 2019 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;There&apos;s a lot of talk about multiculturalism these days. Well, I&apos;d like to
offer an alternative: Anticulturalism.&lt;/p&gt;
&lt;p&gt;Multiculturalism is the idea that we ought to celebrate the cultures of
the world and welcome them all into our communities. Anticulturalism is
the idea that culture divides us from one another and binds us to
arbitrary tradition, and that we&apos;d be better off without it.&lt;/p&gt;
&lt;p&gt;Where the culturalist will do as the group does, the anticulturalist will
follow their own intuition. They will forge their own path, produce their
own traditions, and create their own ideas.&lt;/p&gt;
&lt;p&gt;To be an anticulturalist is to reject the idea that we should continue
doing things a certain way because that&apos;s how we&apos;ve always done them. It&apos;s
celebrating diversity not at the level of the group, but at the level of
the individual. It is taking responsibility for our own thoughts and
actions.&lt;/p&gt;
&lt;p&gt;The anticulturalist doesn&apos;t waste their time reading the news or following
politics because they realize the inadequacy of policy to rectify the
world&apos;s ills. Instead, their crusade is one of liberating those around
them from the cultural chains that bind them, so that they too can become
empowered to define the course of their own lives.&lt;/p&gt;
&lt;p&gt;Usually in the name of pride, the culturalist blindly follows the norms
and traditions handed down to them, even if they do not serve their own
interests. While the culturalist talks about fictitious entities like
&quot;freedom&quot; and &quot;justice&quot; and &quot;purity&quot;, the anticulturalist realizes such
abstractions aren&apos;t real. To be an anticulturalist is to reject archaic
narratives that use abstract language to justify the wielding of power
over others.&lt;/p&gt;
&lt;p&gt;Culture takes us out of the animal body and reduces us to a matrix of
loyalty and compliance through language. By refusing to participate, we
become free.&lt;/p&gt;
</content:encoded></item><item><title>Terrible employee</title><link>https://www.teejayvanslyke.com/letters/terrible-employee/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/terrible-employee/</guid><pubDate>Tue, 11 Jun 2019 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;I&apos;m a terrible employee. You don&apos;t want to hire me to work in your office.
I&apos;ll show up late. I&apos;ll leave early. I won&apos;t attend meetings. Sometimes
I&apos;ll take two hours in the middle of the day to go sit in a park or ride
my bike. It&apos;s not that I&apos;m not doing my job—I&apos;ll probably excel at
whatever project you give me. No, it&apos;s just that I&apos;m a terrible employee.&lt;/p&gt;
&lt;p&gt;I love to &lt;a href=&quot;/about&quot;&gt;work&lt;/a&gt;. In fact, it&apos;s been hard, over the course of
the past month of &lt;a href=&quot;/letters/summer-vacation&quot;&gt;sabbatical&lt;/a&gt;, to not compulsively
look for gigs. I love the challenge of a new project. I love to sink my
teeth into new technologies. I love to know I&apos;m useful to somebody.&lt;/p&gt;
&lt;p&gt;But I can&apos;t do that at your office. It&apos;s nothing personal. You probably
built a fantastic company culture. You play ping-pong and have free snacks
and give your employees excellent benefits. But it&apos;s not for me.&lt;/p&gt;
&lt;p&gt;Sometimes I like to spend long, luxurious mornings writing and sipping
coffee. I love midday walks, making myself lunch, and the serenity of
owning my own time.&lt;/p&gt;
&lt;p&gt;I love the creativity that comes in those moments sitting alone in my
apartment. Ironically, the most valuable thoughts and ideas tend to come
when we&apos;re doing the dishes or taking a midday shower. If I work in an
office, I wouldn&apos;t do either of those things.&lt;/p&gt;
&lt;p&gt;&quot;But Teejay, don&apos;t you need a salary? You could make $XXX,XXX/year plus
excellent health benefits if you took a job in your field!&quot; I could, and
I have. I was miserable. I lived to work. I was addicted to my salary and
bought things in a misguided attempt to distract from my misery. I drank.
It wasn&apos;t for me. I&apos;d rather make half a salary per year consulting
part-time and loving it than spend 50 weeks per year glued to a desk.&lt;/p&gt;
&lt;p&gt;When you&apos;re addicted to recurring income, you acclimate to certain
luxuries. You buy new things each month. You eat out constantly. You take
exotic vacations. You justify all of these things in the name of
&quot;deserving it&quot; or &quot;enjoying yourself&quot; or &quot;living a little&quot;. But in
reality, none of these things have ever brought me contentment. They might
bring you contentment—and that&apos;s great. But they&apos;re not for me.&lt;/p&gt;
&lt;p&gt;So, if you&apos;re thinking of hiring me to work in your company, don&apos;t. I&apos;m
a terrible employee.&lt;/p&gt;
</content:encoded></item><item><title>GTD &amp; The Artist&apos;s Way</title><link>https://www.teejayvanslyke.com/letters/revisiting-gtd/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/revisiting-gtd/</guid><pubDate>Sat, 25 May 2019 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;This week, my partner handed me a copy of &lt;em&gt;The Artist&apos;s Way&lt;/em&gt; by Julia
Cameron. I was a big fan of the book in my early twenties, and in 2013
filled four Moleskines with daily morning
pages per the
book&apos;s recommendations.&lt;/p&gt;
&lt;p&gt;As I&apos;ve been revisiting the book this week, something stuck out to me. The
author suggests that, in the process of writing morning pages each
morning, we clean the cobwebs out of our mind&apos;s attic and are more able to
think and create as a result. To me, this idea is strikingly similar to
the recommendations of David Allen in his landmark productivity book
&lt;em&gt;Getting Things Done&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;The central argument of Allen&apos;s book is that we&apos;re walking
around with all these ideas and tasks rattling around in our brains, and
that our brains aren&apos;t suited to this task. It&apos;s better to get all those
thoughts and ideas and tasks out into a tool you trust you&apos;ll come back to
regularly.&lt;/p&gt;
&lt;p&gt;Gee, doesn&apos;t that sound a lot like morning pages, only with a business
productivity bent? What if instead of my todos being a repository only of the things
I &lt;em&gt;have&lt;/em&gt; to do, they also included all the things I&apos;ve ever &lt;em&gt;wanted&lt;/em&gt; to do
as well? Wouldn&apos;t it be fun to have a running list of all the things,
whether realistic or outlandish, that you&apos;ve ever thought of doing?&lt;/p&gt;
&lt;p&gt;So I made a task list in OmniFocus called &quot;Someday&quot;. I started small:
&lt;em&gt;Start a personal wiki.&lt;/em&gt; Then I got a bit more lavish: Take a trip to San
Francisco. Eventually, I dreamed bigger: Renovate an old church to live
in. &lt;em&gt;Take a rustic cruise to Alaska.&lt;/em&gt; Get a doctorate in computer
science.&lt;/p&gt;
&lt;p&gt;Wow! I&apos;m not sure I&apos;ve dreamed that big since I was in college. It&apos;s so
easy to get caught up in the duties and responsibilities of our day to day
life and miss out on the romance of our imagination in the process. By
giving myself permission to dream big and let go of my preconceptions of
what is &quot;realistic&quot; or &quot;responsible&quot;, I&apos;m expanding my horizons and
regaining my sense of imagination and creativity.&lt;/p&gt;
&lt;p&gt;My hope is that eventually, I&apos;ll feel confident enough to promote these
imaginings out of my &quot;Someday&quot; list and into my &quot;Current&quot; list. Time will
tell.&lt;/p&gt;
</content:encoded></item><item><title>My analog summer</title><link>https://www.teejayvanslyke.com/letters/my-analog-summer/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/my-analog-summer/</guid><pubDate>Thu, 16 May 2019 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Last week, I packed up my (virtual) things and waved goodbye to my last
bit of consulting work before the summer begins. It&apos;s been a very long
time since I had a good, long block of time with no real plans. I&apos;m
excited at the possibilities for personal enrichment and renewal.&lt;/p&gt;
&lt;p&gt;In exploring what it will mean to take a true summer
vacation, I&apos;ve been thinking about how my digital
devices often take center-stage in my mind&apos;s eye, and how I&apos;d like to
spend the summer exploring the tactile and the sensory, out here in the
real world.&lt;/p&gt;
&lt;p&gt;With that, I&apos;ve been re-evaluating how I use technology and whether there
are ways I can more often cross the digital-analog divide.&lt;/p&gt;
&lt;p&gt;As well, I&apos;ve been re-evaluating my relationship with giant tech companies
and seeing whether there are some David alternatives to my current Goliath
service providers.&lt;/p&gt;
&lt;p&gt;My hope is to re-ignite the magic of computing and creativity I remember
from the mid-2000&apos;s. There was a certain spirit about that time—one of
decentralization, of do-it-yourself hacker activism—that I think has been
lost in the age of big tech.&lt;/p&gt;
&lt;h4&gt;Gave away my Apple Watch&lt;/h4&gt;
&lt;p&gt;I bought an Apple watch a few months ago because it looked neat and
I thought it&apos;d be cool to track my activity. But I found that it only ever
served to further distract me from the present moment. I&apos;d receive text
messages directly to my wrist, which would distract me from whatever I was
doing and provoke me to dig into my bag for my phone to reply. I&apos;d be in
my workout class and get a text, only to ruminate over it for the duration
of the class and know I soon had to respond.&lt;/p&gt;
&lt;p&gt;When my parents came to Portland to visit me last week, I thought I&apos;d send
my Dad home with my Apple Watch, since he enjoys the Apple ecosystem more
than I do. So far, I&apos;ve really not noticed that it&apos;s gone.&lt;/p&gt;
&lt;h4&gt;Phone optional&lt;/h4&gt;
&lt;p&gt;Generally, I&apos;ve carried my phone everywhere I go, and you probably do too.
The expectation that we&apos;re always reachable has become part of our social
fabric. When did we ever agree that it&apos;s not optional to carry a device
that enables anyone to reach us at any time?&lt;/p&gt;
&lt;p&gt;I&apos;ve been experimenting with leaving my phone at home most of the time. It
has required a bit of extra planning with my family and friends, but so
far the results have been generally positive. I feel more present and
attentive to the details of the outside world. I have to ask others for
directions or the time because I don&apos;t have a device in my pocket with all
the answers.&lt;/p&gt;
&lt;p&gt;When I do bring my phone out into the world, I try to keep cellular data
off and make sure it&apos;s always in my backpack, so I&apos;m not constantly
tempted to check it. I also keep my text message notifications off so
I treat texting more like email and don&apos;t get distracted. Phone calls
still get through, in case someone needs to reach me due to an emergency.&lt;/p&gt;
&lt;h4&gt;Pen &amp;amp; paper notetaking and todos&lt;/h4&gt;
&lt;p&gt;Does anyone remember the Hipster
PDA? My friend Alex
Weber introduced me to the concept during college
way back in 2004. The idea is simple: Carry a stack of index cards held
together with a binder clip and use that to take notes and log todos.&lt;/p&gt;
&lt;p&gt;I&apos;ve been a die-hard &lt;a href=&quot;https://www.omnigroup.com/omnifocus&quot;&gt;OmniFocus&lt;/a&gt; user
for years, but it bothers me that I rely upon proprietary software for
a basic life function. So far, I&apos;m enjoying the simplicity of carrying
note cards, and the versaility of always knowing I have some paper with me
for notetaking.&lt;/p&gt;
&lt;h4&gt;No more paid streaming services&lt;/h4&gt;
&lt;p&gt;The pursuit of art is half its charm. I have fond memories of feeling
victorious when I&apos;d bought a CD I&apos;d been looking for or trading music and
movies with friends. Scarcity, while inconvenient, also encourages
collaboration and community. By being forced to go out into the world to
find new media, I interact with more creative people and get to support
them directly.&lt;/p&gt;
&lt;p&gt;As well, there&apos;s something magical about owning your own media. The fact
I cancelled my Spotify account this month and now have nothing to show for
it speaks volumes to how these services seek rents from users for limited
access. When you buy DRM-free files directly from the artist, you both
support the artist directly and get access to their work forever.&lt;/p&gt;
&lt;p&gt;I&apos;m excited to continue to question the way I use technology and hope my
journey inspires you to do the same!&lt;/p&gt;
</content:encoded></item><item><title>Summer vacation</title><link>https://www.teejayvanslyke.com/letters/summer-vacation/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/summer-vacation/</guid><pubDate>Thu, 28 Mar 2019 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;This year, the stars have aligned to give me the opportunity of
a lifetime: I&apos;m taking a summer vacation.&lt;/p&gt;
&lt;p&gt;After five years of persistent saving, planning, building and dreaming,
I&apos;m in a position where I&apos;m able to take the months of May through August
away from client work to indulge in personal pursuits.&lt;/p&gt;
&lt;p&gt;My plan has a few key objectives.&lt;/p&gt;
&lt;p&gt;I want to learn to become comfortable with boredom and
uncertainty. By making myself unavailable for client work for a period of
a few months, I think I&apos;ll be able to sink my teeth into some sweet, sweet
boredom. I&apos;ll wake up and my day will be unstructured. I&apos;ll have to define
my own objectives. I&apos;ll be free to write, to read, to sit and stare out
the window.&lt;/p&gt;
&lt;p&gt;I&apos;m excited to practice reducing my day-to-day expenses. With the
luxury of full, empty days, it&apos;s unlikely I&apos;ll have the knee-jerk idea to
&lt;em&gt;just go out to eat instead&lt;/em&gt;. Not constantly serving clients, I&apos;ll be
armed with the decision-making capacity to become an even more effective
home economist.&lt;/p&gt;
&lt;p&gt;I want to enjoy Oregon&apos;s lush and diverse landscapes. So often during the
summers have I wanted to venture out to explore Sauvie Island or take
a day trip to the coast, only to be pulled back into client work and
unable to enjoy its majesty. This summer, I want to give myself permission
to explore unencumbered.&lt;/p&gt;
&lt;p&gt;And as well, I&apos;m eager to push the big reset button on my life and
business. I&apos;ve engaged in flurries of writing about and promoting my
business, but making it a full-time job for a few months ought to bring
about some massive changes and allow me to see things more clearly than
when in the day-to-day cycle of client work.&lt;/p&gt;
&lt;p&gt;School&apos;s almost out. Time to play!&lt;/p&gt;
</content:encoded></item><item><title>Do it slowly</title><link>https://www.teejayvanslyke.com/letters/do-it-slowly/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/do-it-slowly/</guid><pubDate>Fri, 01 Feb 2019 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;In the pursuit of having what we want now, we often set ourselves up for
never having it at all.&lt;/p&gt;
&lt;p&gt;Risking your entire savings to start a company wrecklessly means you&apos;ve
compromised your security in the pursuit of rapid growth, instead of
growing slowly while maintaining other sources of income.&lt;/p&gt;
&lt;p&gt;Buying a Mercedes on credit (or worse, leasing it) will get you the car
you want now, but your future self might not be able to afford the
payments. Buying a lightly used Mercedes with cash from the person who
bought theirs new on credit, only when you can afford to do so &lt;em&gt;and&lt;/em&gt;
maintain your financial independence, will mean you can drive a Mercedes
forever.&lt;/p&gt;
&lt;p&gt;Trying to deadlift 400lbs when you haven&apos;t set foot in a gym in a decade
means you&apos;re likely to wind up doing irreversible damage to your body. If
instead you work with a trainer to learn how to deadlift 90lbs safely, and
over the course of several months, you&apos;ll eventually get the strength you
desire.&lt;/p&gt;
&lt;p&gt;Marrying the person you just met online six months ago might get you
a spouse now, but you&apos;re less likely to have built a foundation of trust.
You&apos;re more likely to divorce, or worse, spend your life with someone
whose company you dislike.&lt;/p&gt;
&lt;p&gt;The true reward of living is in the process—not the outcome. The
gratification from having exerted effort to achieve life&apos;s rewards is far
greater than the rewards themselves.&lt;/p&gt;
</content:encoded></item><item><title>God is everywhere</title><link>https://www.teejayvanslyke.com/letters/god-is-everywhere/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/god-is-everywhere/</guid><pubDate>Sun, 27 Jan 2019 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;img src=&quot;/assets/images/1280x1280/spencer-butte-fog-1985f890.jpg&quot; alt=&quot;Atop Spencer Butte&quot; /&gt;&lt;/p&gt;
&lt;p&gt;This weekend I took a solo retreat down to Eugene.&lt;/p&gt;
&lt;p&gt;I climbed to the top of Spencer Butte and did something I don&apos;t do usually
do: I sat and looked.&lt;/p&gt;
&lt;p&gt;I&apos;m always so distracted taking pictures and texting my friends about the
alleged majesty of it all that I don&apos;t even stop to &lt;em&gt;look&lt;/em&gt;. When I did manage
to pry my eyes up into the distance, what I saw was divine. It was God staring
me in the face.&lt;/p&gt;
&lt;p&gt;Not the Christian God or the Muslim God or the Jewish God or the Hindu
God. Just God. The unknown. The mystery. That sense that there&apos;s more than
we see.&lt;/p&gt;
&lt;p&gt;I&apos;m working to see God in more of what I do each day. To pause and notice
the little magic working itself in everything.&lt;/p&gt;
&lt;p&gt;That awe I feel when I look my partner in the eye.&lt;/p&gt;
&lt;p&gt;The warmth of a meal among friends I haven&apos;t seen in a long time.&lt;/p&gt;
&lt;p&gt;The way I feel when I pick up the phone to call someone I love and tell
them that.&lt;/p&gt;
&lt;p&gt;That feeling when you shut the laptop and decide life is too short to
spend all of it twitching your fingers into a machine.&lt;/p&gt;
&lt;p&gt;That. That&apos;s God.&lt;/p&gt;
</content:encoded></item><item><title>I have to get ready</title><link>https://www.teejayvanslyke.com/letters/i-have-to-get-ready/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/i-have-to-get-ready/</guid><pubDate>Mon, 21 Jan 2019 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Which are the shoes that are perfect for any and all weather conditions
and activities? When I find them, I&apos;ll finally go outside.&lt;/p&gt;
&lt;p&gt;What is the &lt;em&gt;perfect&lt;/em&gt; apartment to rent? That one apartment that balances
cost, square footage, location, and amenities in a way that sparks the
same romantic euphoria as the gaze of a new lover. It&apos;s a place where I&apos;ll
store my hundred things, curated to spark joy, with not a touch of excess.
It might take me decades to curate them, but once I do I&apos;ll start living.&lt;/p&gt;
&lt;p&gt;Which backpack balances versatility, size, aesthetic, and function such
that I can use it for travel, around town, my gym bag, and as a grocery
sack? I&apos;m not sure yet, but once I am I&apos;ll finally go on that trip.&lt;/p&gt;
&lt;p&gt;What is &lt;em&gt;the best way&lt;/em&gt; to brew a cup of coffee? What delicate ratio of
beans and water and grind setting and water temperature and vessel and
roast will achieve the proper setting for the &lt;em&gt;perfect&lt;/em&gt; cup? Until I find
it, I&apos;m not interested in having you over for coffee. It&apos;s not ready yet.&lt;/p&gt;
&lt;p&gt;Which car will excel both in the city and on the highway, will be great
for going grocery shopping as much as climbing mountains off-road, and
will double as a campervan in a pinch? If you have any leads, let me know
because I&apos;m not sure I want to go on any trips until I&apos;ve found it.&lt;/p&gt;
&lt;p&gt;How much money do I need before I start doing the things I want? That
just-right amount that gives me a perfect annual income at a safe 4%
annual withdrawal rate. Once I have it, I&apos;ll finally get to do everything
I want.&lt;/p&gt;
&lt;p&gt;But until then, I have to get ready.&lt;/p&gt;
</content:encoded></item><item><title>Break things down</title><link>https://www.teejayvanslyke.com/letters/when-in-doubt-break-it-down/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/when-in-doubt-break-it-down/</guid><pubDate>Sun, 20 Jan 2019 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;In software engineering, it&apos;s not technical prowess that most often
prevents projects from being completed on time and within budget. It&apos;s
lack of clarity.&lt;/p&gt;
&lt;p&gt;If features and tasks aren&apos;t understood by all stakeholders, both in their
content (the &lt;em&gt;what&lt;/em&gt;) and purpose (the &lt;em&gt;why&lt;/em&gt;), there&apos;s a risk those invalid
assumptions become real code.&lt;/p&gt;
&lt;p&gt;One habit I&apos;ve developed in the course of my career is breaking things
down. I&apos;m not afraid to dissect and extract everything from a set of
requirements until I&apos;m confident I can execute their implementation with
precision.&lt;/p&gt;
&lt;p&gt;In practice, that means taking an epic feature specification, i.e. &quot;As
a payroll administrator I want to be able to view a payroll summary
report&quot; into all of its smallest divisible parts as separate tickets in
your project management software:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;I want to see a list of my employees&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;I want to see all of my employees take-home pay&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;I want to see my total payroll tax for the pay period&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Et cetera&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Managing multiple tickets for one feature might create a bit more project
management work, but it enables team members to discuss each component of
the feature separately and in-context.&lt;/p&gt;
&lt;p&gt;Imagine if you hadn&apos;t broken down the original user story, and imagine you
wrote the all of its requirements in a single ticket. If there&apos;s
a question about more than one of the requirements (which, there will be),
you&apos;re now forced to engage in a disjointed discussion thread about &lt;em&gt;all&lt;/em&gt;
of the questions all in one place. This is confusing and difficult to
parse in the long-term.&lt;/p&gt;
&lt;p&gt;By creating multiple tickets, you&apos;re able to have more contextual
discussions about razor-thin specific topics. I can discuss what exactly
it means to see &quot;a list of my employees&quot;, and it won&apos;t be ambiguous which
requirement I&apos;m referencing because the discussion is contained within its
own ticket.&lt;/p&gt;
&lt;p&gt;This also enables you to track the progress toward completion more
granularly. Instead of the &quot;doneness&quot; of the epic feature being
represented as a binary state (&quot;done&quot; or &quot;not done&quot;), it can be
represented fractionally (four out of nine tasks completed). This is
powerful in representing progress to stakeholders because it ensures them
you&apos;re making progress, even if some aspects of the feature are more
effort-intensive than others.&lt;/p&gt;
&lt;p&gt;The next time you&apos;re writing functional requirements, ask yourself whether
there&apos;s a way you can break it down further. Your team will be more
equipped to ask questions and you&apos;ll be more equipped to track progress.&lt;/p&gt;
</content:encoded></item><item><title>What it&apos;s like to have a crippling fear of flying</title><link>https://www.teejayvanslyke.com/letters/what-it-s-like-to-have-a-crippling-fear-of-flying/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/what-it-s-like-to-have-a-crippling-fear-of-flying/</guid><pubDate>Fri, 18 Jan 2019 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;People who know me closely know I have a crippling fear of flying. I&apos;ve
avoided boarding planes since 2009, and haven&apos;t flown since 2016.&lt;/p&gt;
&lt;p&gt;In a nutshell, &lt;strong&gt;it really sucks&lt;/strong&gt;. As somebody who is in awe at the
engineering marvels of the modern age, the fact I cannot use the safest,
fastest form of travel ever devised runs counter to my entire ethos. It
feels inconsistent.&lt;/p&gt;
&lt;p&gt;I&apos;ve avoided going to see my family. I make excuses for why I can&apos;t come
see my friends in other cities. I say I don&apos;t see the point in world
travel. I do; I&apos;m just terrified of it.&lt;/p&gt;
&lt;p&gt;In the weeks preceding a scheduled flight, I&apos;ll become agitated and
irritable day-to-day for seemingly no reason. I&apos;ll spend hours Googling
flight fatality statistics. I&apos;ll envision the worst possible scenarios:
Total engine failure, bird strikes, the wings falling off, whatever. It
doesn&apos;t matter how far-fetched. It&apos;s going to happen to me. I know it.&lt;/p&gt;
&lt;p&gt;I&apos;ve had a full-blown panic attack right after getting on a plane and
forcibly left the plane right on the runway. I&apos;ve schemed how I&apos;m going to
secure a rental car to make my return flight.&lt;/p&gt;
&lt;p&gt;When you have a phobia, no statistics about the safety of air travel can
help. 1 in 7 million? I&apos;m that 1. I could talk to the pilot and they could
seem friendly, but that&apos;s probably because they&apos;re drunk. They&apos;re gonna
kill us all.&lt;/p&gt;
&lt;p&gt;I&apos;ve tried hypnosis, meditation, therapy, books about air travel, exposure
therapy, and positive visualization. I&apos;ve read books and listened to
seminars. Nothing has worked so far.&lt;/p&gt;
&lt;p&gt;I&apos;m planning a trip to see my family all the way in Florida. Maybe this
time will be different. Maybe this time I&apos;ll learn to trust the process.
I&apos;ll realize death is inevitable, and to live a safe life devoid of
meaning is worse than death itself. The humble act of boarding the plane
might reverse a decade of irrational behavior.&lt;/p&gt;
&lt;p&gt;Just maybe.&lt;/p&gt;
</content:encoded></item><item><title>If you&apos;re unsure, split the difference</title><link>https://www.teejayvanslyke.com/letters/if-you-re-unsure-split-the-difference/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/if-you-re-unsure-split-the-difference/</guid><pubDate>Sun, 13 Jan 2019 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Too often I&apos;m tempted by the one of the two most extreme options when
making a decision. When you have a goal, it&apos;s alluring to pursue it to the
exclusion of everything else.&lt;/p&gt;
&lt;p&gt;Want to become financially independent? Sell everything you own, live in
a van, and save 80% of your income. Happiness and lifestyle in the present
be damned.&lt;/p&gt;
&lt;p&gt;Want to lose weight? Go on a no-carb diet, even though carbohydrates are
necessary macronutrients.&lt;/p&gt;
&lt;p&gt;Want to run a business? &quot;Hustle&quot; for 16-hour days and don&apos;t pay attention
to your family or friends.&lt;/p&gt;
&lt;p&gt;This kind of all-or-nothing thinking is, for whatever reason, incredibly
attractive. But it&apos;s not realistic or possible. Instead, what if you split
the difference?&lt;/p&gt;
&lt;p&gt;Become financially independent in just 17 years without dramatically
compromising your lifestyle by saving 50% of your income.&lt;/p&gt;
&lt;p&gt;Lose weight by balancing a healthful, low-glycemic diet with regular
exercise every day.&lt;/p&gt;
&lt;p&gt;Build a business slowly and sustainably in your spare time, doing
something you enjoy.&lt;/p&gt;
&lt;p&gt;It takes longer, sure. But just what were you planning on doing
afterwards, anyway?&lt;/p&gt;
</content:encoded></item><item><title>Building a maintainable capsule wardrobe for men</title><link>https://www.teejayvanslyke.com/letters/building-a-maintainable-capsule-wardrobe-for-men/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/building-a-maintainable-capsule-wardrobe-for-men/</guid><pubDate>Fri, 11 Jan 2019 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;When it comes to clothing, I favor timeless, well-crafted pieces over the
cheap thrills of fast fashion and whatever&apos;s in style. I enjoy looking
good because it helps me feel good. Often I&apos;ve found myself resentful of
replacing functional clothing with new clothing only to impress
others, but impressing others can be a functional pursuit if it improves
feelings of self-confidence and self-worth.&lt;/p&gt;
&lt;p&gt;Being that I&apos;m a frugality and resourcefulness fanatic, the idea of buying
more clothes is burdensome and frought with indecision. I&apos;ve therefore
sought to codify a series of pieces that are well-constructed, timeless,
and easily purchased online so I can replace them without hassle.&lt;/p&gt;
&lt;p&gt;A &lt;em&gt;capsule wardrobe&lt;/em&gt; is a method of curating a wardrobe according to
staple garments that can be mixed and matched to produce several different
outfits. Mine currently consists of approximately:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;10 pairs boxer briefs&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;10 pairs socks&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;2 pairs jeans&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;2 pairs joggers&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;10 tees of different colors&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;4 button-down shirts of different weights and colors&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;2 sweatshirts of different colors&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Out of these, I can build numerous different outfit combinations. Because
there&apos;s a stocklist of clothing to have on-hand, it&apos;s easy to re-stock
garments whose appearance has degraded.&lt;/p&gt;
&lt;p&gt;I have a few favorite brands and pieces that I&apos;ve settled on as my current
favorites for re-stocking. My criteria for them is that they are durable,
comfortable, and that I feel attractive wearing them.&lt;/p&gt;
&lt;h4&gt;Unbranded Brand Raw Selvedge Jeans&lt;/h4&gt;
&lt;p&gt;I&apos;ve owned a couple pairs of Iron
Heart jeans and have been impressed
with their quality, but my last pair developed holes in the crotch within
a year of purchasing. Because of this, I decided to try other options,
since Iron Heart jeans can run almost $300.&lt;/p&gt;
&lt;p&gt;I did some research, and I found &lt;em&gt;exactly&lt;/em&gt; what I was looking for. The
Unbranded Brand makes 14.5oz selvedge
denim jeans with no branding or embellishments, at a third of the price of
Iron Hearts. I love their no-frills attitude, focusing on craftsmanship
over style.&lt;/p&gt;
&lt;h4&gt;Everlane Tees&lt;/h4&gt;
&lt;p&gt;After American Apparel shuttered all of its stores, I scoured the web for
a decent source for basic t-shirts at a reasonable price. So far, I&apos;ve
settled on &lt;a href=&quot;https://www.everlane.com&quot;&gt;Everlane&lt;/a&gt;. They&apos;ve got a pretty wide
variety of colors and cuts available, and their clothing is ethically
sourced with a transparent supply chain.&lt;/p&gt;
&lt;p&gt;I&apos;m not entirely impressed with their durability, but that might be more
the result of me washing and drying the shirts on regular cycles and more
often than is necessary.&lt;/p&gt;
&lt;h4&gt;Merrell Shoes&lt;/h4&gt;
&lt;p&gt;I&apos;m on my third pair of &lt;a href=&quot;https://www.merrell.com/&quot;&gt;Merrells&lt;/a&gt; and have
continued to be impressed with their well-compromised mix durability,
style, and comfort. I just bought a pair of their Annex Trak
Lows
and so far they&apos;ve been fantastic.&lt;/p&gt;
</content:encoded></item><item><title>When ideas become second nature</title><link>https://www.teejayvanslyke.com/letters/when-ideas-become-second-nature/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/when-ideas-become-second-nature/</guid><pubDate>Tue, 08 Jan 2019 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;When I was young, I read books and articles with ideas about how to be
effective. I had gracious mentors and teachers who gave me insights from
their experiences which I could apply into my own life.&lt;/p&gt;
&lt;p&gt;And I did. I read David Allen&apos;s Getting Things
Done
and now keep all my tasks organized in
&lt;a href=&quot;https://www.omnigroup.com/omnifocus/&quot;&gt;OmniFocus&lt;/a&gt;. Because I enter tasks
from my phone and review them weekly, I never worry about forgetting
something.&lt;/p&gt;
&lt;p&gt;I read Tim Ferriss&apos;s 4 Hour
Workweek
and now recognize how to apply the Pareto principle to accomplish more in
less time by eliminating the trivial in favor of the critical.&lt;/p&gt;
&lt;p&gt;My mentor &lt;a href=&quot;http://pcurtain.com/&quot;&gt;Patrick&lt;/a&gt; introduced me to the agile
software development methodology. Now I don&apos;t even think twice when
I organize my client projects into user stories and allow the product
owner to prioritize their implementation.&lt;/p&gt;
&lt;p&gt;Merlin Mann&apos;s talk Inbox
Zero at Google in 2007 led me to
keep my email inbox empty ever since.&lt;/p&gt;
&lt;p&gt;After reading Vicki Robin&apos;s Your Money or Your
Life,
I learned the importance of tracking every penny that comes into or goes
out of my life. It&apos;s become a keystone habit for improving my finances.&lt;/p&gt;
&lt;p&gt;These ideas are simple to understand, but can take years of conditioning
and practice to become habits. When I first heard these ideas, I would
parrot them as the holy dogma of how to be effective. But years on,
I realize they&apos;re merely lanterns lighting the way. You still have to walk
the path.&lt;/p&gt;
</content:encoded></item><item><title>How I prepare coffee at home</title><link>https://www.teejayvanslyke.com/letters/how-i-prepare-coffee-at-home/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/how-i-prepare-coffee-at-home/</guid><pubDate>Mon, 07 Jan 2019 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;I &lt;em&gt;love&lt;/em&gt; coffee, and living in the Pacific Northwest means I drink &lt;em&gt;a lot&lt;/em&gt;
of it. Over the years I&apos;ve perfected my home brewing methods and love the
ritual of making a delicious cup each morning. Although there are plenty
of tutorials on how to make a great cup of coffee, I thought I&apos;d share
with you how I like to make mine. (Photo below is my home coffee bar.)&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/images/1280x1280/coffee-bar-633ab4f9.jpg&quot; alt=&quot;My home coffee bar&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;My favorite beans&lt;/h3&gt;
&lt;p&gt;Coffee sourced from Ethiopia tends to be my favorite. Ethiopian coffees
tend to be fruitier and brighter than other coffees. To me, they have the
most pronounced flavor profile. Of course, that&apos;s a personal preference
and I encourage you to find the beans you like.&lt;/p&gt;
&lt;p&gt;Here in Portland, we&apos;re spoiled with amazing coffee roasters all over
town. My favorite roasters are &lt;a href=&quot;https://www.heartroasters.com/&quot;&gt;Heart&lt;/a&gt; and
&lt;a href=&quot;https://coavacoffee.com/&quot;&gt;Coava&lt;/a&gt;.&lt;/p&gt;
&lt;h3&gt;Coffee for one: Aeropress&lt;/h3&gt;
&lt;p&gt;The &lt;a href=&quot;https://aeropressinc.com/&quot;&gt;Aeropress&lt;/a&gt; is my favorite way to brew
a single cup of coffee. Because of its unique vacuum brew method, it&apos;s
fast and easy to clean up afterwards.&lt;/p&gt;
&lt;p&gt;To start, I weigh out 16g of beans and dump them in the hopper of my
Barazta Encore grinder. I use a fine-medium grind at approximately the
&apos;10&apos; setting on the Encore grinder.&lt;/p&gt;
&lt;p&gt;Then, I heat 500ml water to a boil. While it&apos;s boiling, I place the
Aeropress base atop a plain white mug I bought for a dollar at a thrift
store in Eugene a couple years back.&lt;/p&gt;
&lt;p&gt;Once the water is heated, I flip the switch on the grinder and pour
a splash of hot water into the Aeropress to heat the mug. This is
important to make sure your coffee maintains temperature as soon as it
hits your mug!&lt;/p&gt;
&lt;p&gt;Once the coffee is ground, I turn off the grinder, dump the water in the
mug down the sink, and dump the ground coffee into the Aeropress. I fill
the Aeropress to the &apos;4&apos; line with water, gently agitating the grounds.
Then, I use the Aeropress stirrer to stir the mixture gently for about 10
seconds.&lt;/p&gt;
&lt;p&gt;Once the mixture is stirred, I wedge the Aeropress plunger inside the
base, and pull up to create suction so the coffee stays in the Aeropress
for the duration of the brew. I have a timer preset to 1m30s on my coffee
bar so I can press the &apos;Start&apos; button without setting the timer.&lt;/p&gt;
&lt;p&gt;After 1m30s have passed, I plunge the plunger and force the sweet, sweet
coffee nectar into the mug.&lt;/p&gt;
&lt;h3&gt;Coffee for two: Chemex&lt;/h3&gt;
&lt;p&gt;When my girlfriend is staying over, I like to jolt out of bed and prepare
us a batch of coffee from my Chemex.&lt;/p&gt;
&lt;p&gt;First, I weigh out 42g of beans and dump them in the grinder hopper. I use
a medium grind at approximately the &apos;15&apos; setting on the Encore grinder.&lt;/p&gt;
&lt;p&gt;Then, I heat a full gooseneck kettle of water. While it&apos;s boiling, I place
the Chemex on top of my kitchen scale (I use the Jennings
CJ-4000)
with a square Chemex paper filter opened and the &quot;folded&quot; side toward the
spout.&lt;/p&gt;
&lt;p&gt;After the water is heated, I pour boiling water all over the filter. This
both removes the papery taste from the filter, as well as heats the Chemex
to provide a better brew. In addition, I also pour a splash of water in
our two mugs to heat them as well.&lt;/p&gt;
&lt;p&gt;Once the water has found its way through the filter and into the base of
the Chemex, I turn on the grinder and dump the water in the sink.&lt;/p&gt;
&lt;p&gt;After pouring the ground coffee into the now-wet paper filter, I begin the
bloom process. I slowly pour water from the outside of the grounds inward
in concentric circles, trying to only hit the dry grounds with the stream
of water. Once I&apos;ve poured about 100g of water into the Chemex, I pause to
let the coffee &quot;bloom&quot;. After a few seconds, I stir the mixture carefully
with a spoon.&lt;/p&gt;
&lt;p&gt;Finally, I continue pouring water in, trying to hit the darkest spots with
the stream. If there are no dark spots, I usually aim for the center,
letting the Chemex fill until I&apos;ve poured 700g of water. Once I have,
I turn off the scale and let the brew run its course.&lt;/p&gt;
&lt;p&gt;After the dripping has stopped, I dump the used filter, swirl the coffee
a bit to make sure it&apos;s even, and pour it evenly into each mug. The 42g
grounds to 700g water ratio should yield about two mugs of coffee.&lt;/p&gt;
&lt;p&gt;I hope this inspires you to prepare your own delicious cup of coffee at
home!&lt;/p&gt;
</content:encoded></item><item><title>Who the hell am I?</title><link>https://www.teejayvanslyke.com/letters/who-the-hell-am-i/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/who-the-hell-am-i/</guid><pubDate>Mon, 07 Jan 2019 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;I think I know better than other people and I want them to know that.&lt;/p&gt;
&lt;p&gt;I pontificate about political theory as if it were real life. It&apos;s not.
It&apos;s theory.&lt;/p&gt;
&lt;p&gt;I tell you which foods are healthy and which are not. Does anyone
really know anything about nutrition at all?&lt;/p&gt;
&lt;p&gt;I make judgments about others based on appearance.&lt;/p&gt;
&lt;p&gt;I give advice when none was solicited.&lt;/p&gt;
&lt;p&gt;Who am I to assume the role of CEO of the world?&lt;/p&gt;
&lt;p&gt;Who am I to assume I know better?&lt;/p&gt;
&lt;p&gt;Who the hell am I?&lt;/p&gt;
</content:encoded></item><item><title>Why I&apos;m not on social media</title><link>https://www.teejayvanslyke.com/letters/why-i-m-not-on-social-media/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/why-i-m-not-on-social-media/</guid><pubDate>Sun, 06 Jan 2019 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;I&apos;ve been on and off social media sites for years. With Facebook&apos;s selling
users&apos; data to nefarious third parties and fake news bots infiltrating
online communities to sway opinions, I&apos;m proud to say I&apos;m social media
free in 2019.&lt;/p&gt;
&lt;p&gt;When I was on Instagram, I often felt like my life didn&apos;t measure up. I&apos;d
see posts by people with (allegedly) more chiseled bodies, accounts with
hundreds of thousands of followers run by 20 year olds, and ads convincing me my life
wasn&apos;t up to par.&lt;/p&gt;
&lt;p&gt;I feel sometimes like I&apos;m missing out—specifically on events to which
I&apos;d only be invited on Facebook. But I&apos;m not sure the prospect of having
billions of opinions injected into my brain day after day is worth the few
more parties I could attend.&lt;/p&gt;
&lt;p&gt;I do feel out of touch because I&apos;m not participating, but to me that&apos;s
a good thing. It means I have to go out and hunt for meaning.
That I can bask in the comfort of knowing the world is more complex than
can be expressed in 140 (280?) characters.&lt;/p&gt;
&lt;p&gt;I&apos;ve never quantified it, but I bet there&apos;s a positive correlation between
social media use and insecurity. There&apos;s definitely a positive correlation
between insecurity and unnecessary spending. So maybe I&apos;m richer for it,
too.&lt;/p&gt;
&lt;p&gt;It&apos;s a tired cliche by now, but if you&apos;re not paying for something, then
you&apos;re probably the product.&lt;/p&gt;
</content:encoded></item><item><title>2018 year in review</title><link>https://www.teejayvanslyke.com/letters/2018-year-in-review/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/2018-year-in-review/</guid><pubDate>Sat, 05 Jan 2019 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;I&apos;m a few days late writing this, but I wanted to chronicle some of what
I&apos;ve done, what I&apos;ve learned, who I&apos;ve met, and how I plan to spend 2019.&lt;/p&gt;
&lt;p&gt;I learned a ton about yoga and my body. Although I feel like I exhausted
the &quot;self-help&quot; portion of the yoga practice, the physical movements have
followed me into the rest of my life, aiding in my balance and overall
physical strength.&lt;/p&gt;
&lt;p&gt;To begin a new chapter in my fitness journey, I started a new fitness
program called Academy at my friend Mike&apos;s gym, Eastside Strength
&amp;amp; Performance. His emphasis is on teaching how to
answer your own questions during your training, which I really appreciate.
If you&apos;re in the Portland area I can&apos;t recommend Mike&apos;s approach to
fitness enough.&lt;/p&gt;
&lt;p&gt;I continued working on &lt;a href=&quot;https://www.formbotapp.com&quot;&gt;Formbot&lt;/a&gt;, my
HTML-form-submission-to-Slack app. It&apos;s &lt;em&gt;technically&lt;/em&gt; profitable, but
definitely not enough to quit consulting. If you love building static
sites but always cringe when you need to set up a web service specifically
to drive your contact form, Formbot might be for you.&lt;/p&gt;
&lt;p&gt;The thought of buying a house soon continues to enter my brain, but I just
can&apos;t make the numbers work. Portland&apos;s price-to-rent ratio is almost 30,
meaning it&apos;s actually a renter&apos;s market (versus buying a house). Plus I&apos;m
not really sure I want to own a house in the first place.&lt;/p&gt;
&lt;p&gt;Being that somehow Portland didn&apos;t have a FIRE (Financially Independent,
Retired Early) meetup on &lt;a href=&quot;http://Meetup.com&quot;&gt;Meetup.com&lt;/a&gt;, I took the liberty of starting one.
Portland
FIRE has
grown to over 100 members!&lt;/p&gt;
&lt;p&gt;In 2019, I want to write more. I&apos;ve found that I&apos;m often discouraged
writing and publishing things here because I judge myself too critically.
Instead of judging myself so harshly, I want to throw things against the
wall and see if they stick. That&apos;s been my &lt;em&gt;modus operandi&lt;/em&gt; for decades.
Why stop now?&lt;/p&gt;
</content:encoded></item><item><title>Is work a virtue?</title><link>https://www.teejayvanslyke.com/letters/is-work-a-virtue/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/is-work-a-virtue/</guid><pubDate>Tue, 13 Nov 2018 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Yesterday I came across Bertrand Russell&apos;s essay In Praise of
Idleness in which he persuades the
reader that the idea work is virtuous and is an end in itself is
a fabrication by powerful people who want convince others to do work for
them and maintain their power.&lt;/p&gt;
&lt;p&gt;Having grown up in a family that prided itself on hard work and in
a society that praises the sacrifice and dedication of those who rose to
great success and fame, it&apos;s difficult to see outside the prevailing
cultural narrative that work is a virtue and ought be encouraged no matter
the cost.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&quot;Satan finds some mischief for idle hands to do&quot;&lt;/em&gt;—this sounds reasonable,
doesn&apos;t it? I know from my own experience that, when presented with
nothing to do, I tend to gravitate toward my vices. But is this a symptom
of idleness, or of our cultural discomfort with the idea of not working?
Is the tendency in idleness toward self-destructive behaviors like
drinking, indiscriminate sex, or gambling actually a manifestation of our
shame and guilt surrounding our prevalent cultural narrative that work is
good, and if we&apos;re not doing it, we&apos;re &lt;em&gt;bad&lt;/em&gt;?&lt;/p&gt;
&lt;p&gt;For me personally, it&apos;s been a struggle to see that doing work for work&apos;s
sake is not virtuous. It is not a virtue to toil for a cause you don&apos;t
believe in for sake of a higher &quot;standard of living&quot;, if your current
living standard is satisfactory. I&apos;d enjoy the security of financial
independence and that&apos;s the main reason I work as much as I do, but at the
same time, spending all of one&apos;s time in pursuit of a secure tomorrow
discounts the beauty and spontaneity available only in the present moment.&lt;/p&gt;
&lt;p&gt;This isn&apos;t to say that the causes one advances through work are not
virtuous. But if the same causes, through technological per-capita
productivity increases, can be advanced at the same rate with less work,
how is it virtuous to continue working at the same pace? Isn&apos;t our
eventual goal in productivity increases to permit everyone to have
abundant leisure time? Why have we instead decided work ought fill
a specified amount of our day, instead of a specified quota of productive
output?&lt;/p&gt;
</content:encoded></item><item><title>Analysis is not action</title><link>https://www.teejayvanslyke.com/letters/analysis-is-not-action/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/analysis-is-not-action/</guid><pubDate>Thu, 18 Oct 2018 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Have you ever spent a whole day trying to make a decision?&lt;/p&gt;
&lt;p&gt;We all sometimes suffer from &quot;analysis paralysis&quot;, right? That nagging
feeling that we&apos;re not doing the so-called &lt;em&gt;right thing&lt;/em&gt;. The idea that if
we choose to open one door, all the others will be locked forever.
Opportunity cost.&lt;/p&gt;
&lt;p&gt;And that&apos;s true... to a point. We cannot do everything. And our decisions
do matter. But sometimes our inability to make decisions quickly hurt us
even more.&lt;/p&gt;
&lt;p&gt;Perhaps then it could be said that it is wise to carefully consider big
decisions, but wiser still to set limits on the duration of your analysis.&lt;/p&gt;
&lt;p&gt;When you choose wrong, it hurts. But when you don&apos;t choose at all, you
don&apos;t grow.&lt;/p&gt;
</content:encoded></item><item><title>I sold all my self help books</title><link>https://www.teejayvanslyke.com/letters/i-sold-all-my-self-help-books/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/i-sold-all-my-self-help-books/</guid><pubDate>Tue, 02 Oct 2018 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;When I woke up this morning, I glanced at my bookshelf. Almost &lt;em&gt;every&lt;/em&gt;
book was a book about how to be happier, how to be healthier, how to love
myself, how to love someone else, how to have sex, how to be more
emotionally stable, how to be more productive, how to stop being
depressed, how to get rich, how to stay rich, and how to find God.&lt;/p&gt;
&lt;p&gt;But then I decided I&apos;m happy enough. I&apos;m healthy enough. I love myself
plenty. I love my friends, family, and partner a ton. I&apos;m decent in bed,
I think. Sometimes I&apos;m a bit of a handful, but I&apos;d say I&apos;m pretty darn
emotionally aware. I&apos;m definitely productive. Sometimes people get
depressed, and I&apos;m a person, so I&apos;ll probably get depressed again. I&apos;m
getting rich my own way, and it&apos;ll stay that way. Or it won&apos;t; I don&apos;t
know. And God is the beauty in everything and everyone. I see it. Right.
There.&lt;/p&gt;
</content:encoded></item><item><title>Archival as art</title><link>https://www.teejayvanslyke.com/letters/archival-as-art/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/archival-as-art/</guid><pubDate>Mon, 10 Sep 2018 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;I&apos;ve been making art and music since I was a child.&lt;/p&gt;
&lt;p&gt;Because of the portability of digital media, I&apos;ve managed to keep most of
that work, transferring it from hard drive to hard drive over the years.
I&apos;ve always intended on sharing it with the world, but could never find
the courage or perseverance to build a platform suitable for housing all
of it.&lt;/p&gt;
&lt;p&gt;I wanted a platform where I could tell a story. Where I could share the
most intimate details of where I was when I recorded a song or made
a video or sketch. These details are what make art meaningful; they turn
my somewhat benign and technically unimpressive works into a part of
a person&apos;s life worth thinking about.&lt;/p&gt;
&lt;p&gt;That&apos;s why I built my new original art &amp;amp; music platform,
&lt;a href=&quot;/art-and-music&quot;&gt;art.teejayvanslyke.com&lt;/a&gt;. On it, I&apos;m
working to archive, chronologize, and annotate every last shred of my
creative output from my life, as a sort of meta artwork. It&apos;s an effort
that&apos;s more personally motivated than motivated by the idea that you or
someone else might become captivated by my story. But I do hope that it
inspires you to be unapologetically creative in your own life, to share
your sacred self-expression, and to harness the power of your own
godliness.&lt;/p&gt;
</content:encoded></item><item><title>10 things I&apos;m grateful for in 2018</title><link>https://www.teejayvanslyke.com/letters/10-things-i-m-grateful-for-in-2018/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/10-things-i-m-grateful-for-in-2018/</guid><pubDate>Mon, 18 Jun 2018 00:00:00 GMT</pubDate><content:encoded>&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;My friends.&lt;/strong&gt; I returned to Portland after stints in both Seattle and
Eugene, mainly to be closer to my friends during what was a rough
period of last year. I&apos;ve been humbled by the incredible support my
friend have offered me this year and hope I&apos;ve been as emotionally
available to them as they have to me.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;My apartment.&lt;/strong&gt; When I sought to return to Portland, I knew the
housing market was crazy. Amidst the emotional turmoil surrounding
a recent breakup, I did my best to find a new place to call home.
Luckily I found a great fourth-story apartment in a newer building for
below market rate. It&apos;s perfect for me in that it&apos;s minimal, has
bicycle parking, in a great location, and quiet. I really lucked out.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;My brain.&lt;/strong&gt; I can&apos;t offer enough gratitude for having been born with
the brain I have. For whatever reason, I was blessed with the right
biological makeup to navigate our insane modern world. Had I been born
two hundred years earlier I don&apos;t think I would have made it. Sure, my
brain is also responsible for causing some existential dread, but it&apos;s
also helped me to where I am now. Thanks, brain.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Yoga.&lt;/strong&gt; To help curb the existential dread that comes with a brain
that tends to think too much, there&apos;s yoga. I&apos;ve practiced yoga in the
past, but always found myself falling out of the habit. After several
months of practicing several times per week, I can attest to its
benefit in helping calm my mind&apos;s chatter.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;My bicycle.&lt;/strong&gt; Any time I&apos;m feeling down and out, a quick ride to the
park or to the cafe seems to quell whatever&apos;s ailing me. My current
bicycle is a Surly with an eight-speed internal hub and a Brooks
saddle. I&apos;ve never enjoyed riding a bicycle as much as I enjoy riding
this one, and I treat it like a baby.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;My family.&lt;/strong&gt; My family has been there for me through everything. They
were there to care for my cat when I foolishly sent my ex-girlfriend
across the country with him. They were there for the fallout from the
2016 election... enough said. They were there when I moved back to
Portland and they&apos;re always there when I need someone to talk to. I&apos;m
forever grateful for their continued generosity and open-heartedness.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;A newfound sense of optimism.&lt;/strong&gt; I think that in our increasingly
secularized world, our faith has eroded and been replaced with
skepticism. Being skeptical is practical, but only as long as it&apos;s
productive. To me, optimism is believing everything will be okay, even
if you don&apos;t have the evidence to prove it.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;The inventiveness of those who came before us.&lt;/strong&gt; It&apos;s so easy to
forget that even a modest modern lifestyle is more luxurious than that
of kings a hundred years ago. We&apos;ve eradicated so much suffering
through technological advances and we take it for granted every time we
flip a light switch or flush the toilet.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Those who put their lives at risk to help others.&lt;/strong&gt; The other day
I asked myself how I would react if I were tasked with risking my life
to save someone else&apos;s. I&apos;ve never been much of a hero and I&apos;m not
confident in my bravery given a dire circumstance. I&apos;m thankful there
are people who are.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Time.&lt;/strong&gt; I&apos;m most grateful for the time I&apos;m afforded each day to live
according to my own schedule, to pursue the things I want to pursue,
and to live the life I want to live. Not everyone gets this much time.
When I&apos;m feeling boredom, I breathe and remember how lucky I am.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
</content:encoded></item><item><title>Every moment a lifetime, every lifetime just a moment</title><link>https://www.teejayvanslyke.com/letters/every-moment-a-lifetime-every-lifetime-just-a-moment/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/every-moment-a-lifetime-every-lifetime-just-a-moment/</guid><pubDate>Thu, 22 Mar 2018 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Like you, I&apos;ve been busy aging.&lt;/p&gt;
&lt;p&gt;My days now seem to go by as quickly as the hours of my youth. Have you
ever watched a timer counting down to zero? I&apos;m pretty sure the digits
change faster now than they used to. It&apos;s haunting to imagine the last
year of your life passing as fast as the day you were born.&lt;/p&gt;
&lt;p&gt;If time really is accelerating, or, at least, our perception of it, then
ought we give any meaning to our measurement of it? It might be more
prudent to ignore the whims of our clocks and calendars and to realize the
futility of our compulsive time-tracking.&lt;/p&gt;
&lt;p&gt;This moment is one in a series of moments that will end in death. Within
every moment is a lifetime of possibility. Every lifetime is a mere moment
in the expanse of the cosmos. Let&apos;s cease ours.&lt;/p&gt;
</content:encoded></item><item><title>The psychological shift of a penny saved</title><link>https://www.teejayvanslyke.com/letters/the-psychological-shift-of-a-penny-saved/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/the-psychological-shift-of-a-penny-saved/</guid><pubDate>Sun, 11 Mar 2018 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;I&apos;ve noticed that, since beginning my financial indepedendence journey, my
psychology around risk has changed.&lt;/p&gt;
&lt;p&gt;Before accruing substantial savings and learned the art of frugal living,
I would constantly wonder if I&apos;d become destitute should I lose my income.
This would drive me to remain in jobs I didn&apos;t enjoy, work for people
I didn&apos;t like, and take whatever work came my way in order that I continue
to service my status quo lifestyle.&lt;/p&gt;
&lt;p&gt;But now, I know I&apos;m free to walk away. I&apos;m not driven to go get a &quot;stable&quot;
job in order to maintain a cycle of paycheck-to-paycheck spending. The
idea of taking a month, two, or three, away from client work, doesn&apos;t
terrify me. It excites me because I know I have the resources to continue
living normally through that time.&lt;/p&gt;
&lt;p&gt;In the financial independence community online, there&apos;s a tendency to
measure financial independence as a binary state: You&apos;re either ready to
retire or you&apos;re not. I think this distinction makes sense if you work
a salaried 9-5 job; in this case you don&apos;t have a choice in when you work,
for how long, and under what conditions.&lt;/p&gt;
&lt;p&gt;But for those of us who have built consulting businesses or otherwise have
escaped the industrial-age idea of a 40-hour workweek, financial
independence is more of a continuum. We ask the question &quot;What percentage
of my expenses could be paid with passive income from my investments?&quot;
Framed like this, it&apos;s easier to see how much freer you are if you have an
invested nest egg, even if you&apos;re a ways off from true &quot;retirement.&quot;&lt;/p&gt;
&lt;p&gt;And those among us who pursue financial independence so fervently are,
ironically, those who will probably work until we die—at least in some
capacity. It requires an entrepreneurial spirit to save a million dollars.
That spirit doesn&apos;t die upon hanging your spurs, but it sure feels good to
know that each day you can hang them a few minutes longer than yesterday,
if you so choose.&lt;/p&gt;
</content:encoded></item><item><title>Reflections on sobriety</title><link>https://www.teejayvanslyke.com/letters/reflections-on-sobriety/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/reflections-on-sobriety/</guid><pubDate>Fri, 09 Mar 2018 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;For the past few years I&apos;ve been on a journey to become sober.&lt;/p&gt;
&lt;p&gt;It may come as a surprise if you know me; I have what most people would
call my &quot;shit together.&quot; I have a vibrant career, I pay my bills, I save
money fervently, and have an incredible support network of beautiful
friends. &lt;em&gt;He mustn&apos;t have a problem.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;By most accounts I don&apos;t have a problem. I&apos;ve historically drank far less
than most of my peers. I go to bed early most nights. I don&apos;t find myself
saying &quot;let&apos;s get one more&quot; or &quot;I could use another.&quot; I haven&apos;t kept
alcohol in my home in years.&lt;/p&gt;
&lt;p&gt;But I do have a problem. I have a problem with living this one precious
life with anything less than my full attention. I have a problem with the
idea that I might spend several hours one night in a state of malaise and
stupor, engaged in conversations about nothing around a table doing
nothing at all, only to wake up covered in my own sweat recovering for
hours the next morning.&lt;/p&gt;
&lt;p&gt;I have a problem with spending a single moment more of my life in that
faded state. I have a problem with constricting my mind and poisoning my
body and drowning my spirit all in the pursuit of muting the voice deep
down within me that&apos;s screaming up and out for love and connection and
touch and intimacy. That voice that&apos;s begging me to be more vulnerable. To
show myself to others.&lt;/p&gt;
&lt;p&gt;I have a problem with the idea that ingesting a poison is normal. That
it&apos;s how we socialize. That it helps loosen us on dates. That it gives us
courage. That it&apos;s fun to drink. It&apos;s not. It&apos;s fun to spend time with
friends. Alcohol hitches itself to your fun experience and drags its feet
along the ground screaming at you:&lt;/p&gt;
&lt;p&gt;&quot;YOU&apos;RE NOT GOOD ENOUGH WITHOUT ME.&quot;&lt;/p&gt;
&lt;p&gt;&quot;DON&apos;T YOU WANT TO HAVE A GOOD TIME?&quot;&lt;/p&gt;
&lt;p&gt;&quot;I&apos;LL HELP YOU RELAX.&quot;&lt;/p&gt;
&lt;p&gt;&quot;YOU&apos;LL NEVER FIND A GIRLFRIEND WITHOUT ME.&quot;&lt;/p&gt;
&lt;p&gt;&quot;COME ON, IT&apos;S EASIER THIS WAY.&quot;&lt;/p&gt;
&lt;p&gt;But it&apos;s not easier. Alcohol forges a path of hardship, confusion,
emotional distress, poor physical health, abusive behavior, malaise,
lethargy, and financial ruin. It was never fun.&lt;/p&gt;
</content:encoded></item><item><title>The diminishing returns of seeking behavior</title><link>https://www.teejayvanslyke.com/letters/the-diminishing-returns-of-seeking-behavior/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/the-diminishing-returns-of-seeking-behavior/</guid><pubDate>Thu, 08 Mar 2018 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Have you ever noticed how, after accomplishing something you&apos;ve sought to
accomplish for a long time, you quickly find yourself feeling underwhelmed
by the happiness you feel?&lt;/p&gt;
&lt;p&gt;How, in spite of achieving what you set out to achieve, you find yourself
still restless and longing for more?&lt;/p&gt;
&lt;p&gt;I&apos;ve been experiencing this recently. When I first moved back to Portland
in October, I was fresh out of a relationship and feeling lonely.
I thought that, if only I exercised my dating muscle a bit and started
dating a few women, I&apos;d feel a sense of gratification and completeness.
I&apos;ve now done that—some might say in excess—and yet the void I sought to
fill remains. That&apos;s not to say we should stop dating—but we ought to ask
ourselves our motives. Do we hope to fill the radio silence of our lives
because it&apos;s uncomfortable, or are we striving to forge relationships that
enhance our already blooming sense of community?&lt;/p&gt;
&lt;p&gt;And then there&apos;s the dining table I found on
Craigslist
for a fifth of its retail price. I found chairs to
match
the next day! They&apos;re lovely and fit my apartment wonderfully. But I think
my expectation ahead of their purchase were that, if I could just fill the
void in my kitchen, I&apos;d fill the void in my heart. Not so.&lt;/p&gt;
&lt;p&gt;Have you ever left the house—not because you had to fulfill an obligation
or a plan with a friend—but because you thought there might be something
better waiting for you outside if only you looked hard enough? I&apos;ve spent
hours in cafes hoping for another interaction with a stranger, hoping for
a connection. It&apos;s natural to hope for connection, but I&apos;m not sure
whether it&apos;s healthy be addicted to looking for it.&lt;/p&gt;
&lt;p&gt;The truth is, whatever your circumstance right now, you&apos;re reading this
article on a computer (or phone) and so you probably have everything you
need. You have your own set of unique problems and you probably suffer
a fair amount. I do, too. We may endure different suffering, but we have
something beautiful in common: We can dramatically reduce our suffering
not by seeking something outside of us, but by radically appreciating what
is within ourselves.&lt;/p&gt;
&lt;p&gt;Have a beautiful day.&lt;/p&gt;
</content:encoded></item><item><title>You can relax now</title><link>https://www.teejayvanslyke.com/letters/you-can-relax-now/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/you-can-relax-now/</guid><pubDate>Mon, 26 Feb 2018 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;I&apos;m learning to relax.&lt;/p&gt;
&lt;p&gt;Here in Portland, we have an abundance of cafes serving some of the best
coffee in the country. As a single man living alone with disposable income
and a computer-based career that goes wherever I want, I frequently find
myself in cafes during the week to escape the monotony of my home offce.
But I&apos;ve realized, in the past few months, the novelty has worn off and
it&apos;s become more a compulsive habit to leave the house to work than
a premeditated occasional treat.&lt;/p&gt;
&lt;p&gt;By the end of the traditional 9-5 workday, I&apos;m an exhausted mess. I&apos;ve
spent a fair bit of time unnecessarily commuting between coffee shops and
paying their rent getting grossly overcaffienated. And, simultaneously,
I recognize that when I&apos;m at cafes, allegedly to escape the lonely
monotony of my apartment, I don&apos;t tend to engage with others on account of
being immersed in my work.&lt;/p&gt;
&lt;p&gt;I&apos;m resigning to change this behavior, starting this week. I&apos;m going to
try &lt;em&gt;not&lt;/em&gt; going to cafes to work anymore, at all. Working from coffee
shops has been a part of my identity since I was in college. I wonder what
miracles lie on the other side.&lt;/p&gt;
&lt;p&gt;I&apos;m learning to relax.&lt;/p&gt;
</content:encoded></item><item><title>It all ends</title><link>https://www.teejayvanslyke.com/letters/it-all-ends/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/it-all-ends/</guid><pubDate>Thu, 28 Dec 2017 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;I&apos;m sitting working on my computer in a cafe. There&apos;s an old man, perhaps
75 years, sitting at an adjacent table. He wears a beige cardigan and dons
a white beard on his otherwise bald head. His glasses are delicate and he
leans an intricately carved cane against the table.&lt;/p&gt;
&lt;p&gt;I spend so much time in cafes—hours per day—but rarely stop to think what
will become or where I&apos;ll end up. I&apos;m generally self-absorbed, wondering
when I&apos;ll find a lover or a new career or a shimmer of elation in a sea of
confusion. But, at the end of all of it, we&apos;re all alone. The man sitting
alone at the cafe.&lt;/p&gt;
&lt;p&gt;If only we realized sooner that all our attachments and confusion and
jealousy and emotion and everything we experience every single day will
one day inevitably and quietly ... end.&lt;/p&gt;
</content:encoded></item><item><title>How our beliefs change our reality</title><link>https://www.teejayvanslyke.com/letters/how-our-beliefs-change-our-reality/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/how-our-beliefs-change-our-reality/</guid><pubDate>Mon, 25 Dec 2017 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;You&apos;ve probably heard of new age ideas like the Law of Attraction, books
like Think and Grow Rich, and movies like The Secret and What the Bleep Do
We Know?. All of them share a common idea: That what we think inevitably
becomes our reality.&lt;/p&gt;
&lt;p&gt;We all know from experience that wishing an outcome into existence doesn&apos;t
bring about the outcome. Who hasn&apos;t wished for more money, a new and
lovely partner, or a more fit body? And who hasn&apos;t been disappointed when
nature didn&apos;t deliver?&lt;/p&gt;
&lt;p&gt;But I&apos;d like to posit that although the Law of Attraction can be
interpreted as new age hullabaloo, there is a grain of truth in the idea
that is nearly as powerful if applied.&lt;/p&gt;
&lt;p&gt;While our beliefs don&apos;t shape results directly, they do have a substantial
effect on the action we take &lt;em&gt;toward&lt;/em&gt; our desired results. If
you believe you&apos;ll succeed, you&apos;re more likely to spend the time and
energy required for success than if you believe you&apos;ll fail.&lt;/p&gt;
&lt;p&gt;And at every step along our path toward our goal, we&apos;ll be confronted with
bits of feedback which will further inform our belief. Progress
strengthens our positive beliefs about our ability to succeed, which
breeds more constructive action, which brings about more success.&lt;/p&gt;
&lt;p&gt;So, will sitting around dreaming of a new lover who is yet to
manifest bring them knocking on your apartment door? Probably not. But
believing your dream can manifest means you&apos;re likely to hold yourself in
higher regard, take the steps you need to get there, and ultimately find
yourself in a scenario closer to where you want to be.&lt;/p&gt;
</content:encoded></item><item><title>The meaning of life</title><link>https://www.teejayvanslyke.com/letters/the-meaning-of-life/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/the-meaning-of-life/</guid><pubDate>Wed, 15 Nov 2017 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;I&apos;ve been thinking carefully about the meaning of life.&lt;/p&gt;
&lt;p&gt;It&apos;s a tried concept that there&apos;s some inherent meaning to our daily
existence. At one end of the spectrum of the discussion there&apos;s religious
piety. At the other, nihilism.&lt;/p&gt;
&lt;p&gt;I&apos;ve heard the meaning of life is to be happy. To help others. To exist
peacefully. These are platitudes that offer no tangible behavior
prescriptions.&lt;/p&gt;
&lt;p&gt;Instead,&lt;/p&gt;
&lt;p&gt;You might say the meaning of life is to be happy. To act according to
a set of virtues&lt;/p&gt;
</content:encoded></item><item><title>As the climate changes</title><link>https://www.teejayvanslyke.com/letters/as-the-climate-changes/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/as-the-climate-changes/</guid><pubDate>Tue, 05 Sep 2017 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;With historic wildfires raging across the American West and back-to-back
historic hurricanes in the Atlantic, I&apos;m left panicking at the prospect of
facing once-in-a-lifetime weather events every year.&lt;/p&gt;
&lt;p&gt;But I do realize that, despite the hellish reality we face, there are
opportunities for adaptation.&lt;/p&gt;
</content:encoded></item><item><title>Tactics for a happier digital life</title><link>https://www.teejayvanslyke.com/letters/tactics-for-a-happier-digital-life/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/tactics-for-a-happier-digital-life/</guid><pubDate>Thu, 24 Aug 2017 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;I have some beef. Rage, even. For the past decade I&apos;ve owned an iPhone and
had access to the infinite power of the Internet in my pocket.&lt;/p&gt;
&lt;p&gt;Do you remember 2006? It was a year when most people looked up when they
walked, when asking for directions was normal, and when there wasn&apos;t
a constant temptation to hide behind a constant flow of distraction.&lt;/p&gt;
&lt;p&gt;Then the iPhone happened. And its imitators followed. Suddenly we became
a culture immersed in handheld screens. I remember, in my rebellious
youth, decrying television as a tool to dumb down an entire generation.
And yet, somehow, we were sold on the smartphone as some sort of
revolution.&lt;/p&gt;
&lt;p&gt;And ... it has been. Tools like Google Maps and Uber fundamentally change
the way we interact with the world. I carry a more powerful digital camera
in my pocket than even existed 20 years ago. Technology is powerful
augmentation for the real world.&lt;/p&gt;
&lt;p&gt;But I have a confession: Until recently, my smartphone was more a source
of escape from life than an enhancement of it. I&apos;d use it to avoid life:
browsing social media, reading toxic articles by people whose main
interest is selling me something, or catching up on the latest outrage
porn.&lt;/p&gt;
&lt;p&gt;&quot;But it&apos;s just entertainment!&quot; &quot;It&apos;s fun!&quot; &quot;You&apos;re being too serious!&quot;
Then why does it seem like most of my generation is chronically depressed
or anxious? I posit that all this information is doing something sinister
to our minds and bodies and that the science will say so soon enough.
Could it be that we&apos;ll soon find scientific consensus that chronic
Internet use is as harmful as chronic sugar consumption or smoking?&lt;/p&gt;
&lt;p&gt;So... I decided to quit. I decided it was time to turn back the clock—back
to when I remember feeling more contented and less stressed and more
creative. The year was 2003.&lt;/p&gt;
&lt;p&gt;Remember 2003? There were no smartphones. The Internet was gaining in
popularity. Facebook hadn&apos;t quite launched. It was a simpler time. A time
when you could leave the Internet back at your house and spend your time
uninterrupted. Remember?&lt;/p&gt;
&lt;p&gt;That&apos;s why I quit &lt;em&gt;all&lt;/em&gt; social media. I communicate with my friends just
fine via SMS, email, and phone calls.&lt;/p&gt;
&lt;p&gt;That&apos;s why I sold my iPad. I don&apos;t need &lt;em&gt;another&lt;/em&gt; black glass distraction
machine in my life.&lt;/p&gt;
&lt;p&gt;That&apos;s why I used iOS&apos;s Restrictions to disable Safari and the App Store
on my phone. I don&apos;t want infinity at the touch of a screen in my pocket
anymore.&lt;/p&gt;
&lt;p&gt;Remember when you could leave the house without getting interrupted?
That&apos;s why I also disabled &lt;em&gt;all&lt;/em&gt; my notifications on my iPhone, except for
phone calls. That means no text message notifications, either. Life&apos;s just
better when you&apos;re fully engaged.&lt;/p&gt;
&lt;p&gt;That&apos;s why I&apos;m vowing to read paper books and magazines again. I want to
feel the pages on my skin. I want to feel a sense of commitment to what
I&apos;m reading. I want to know infinity isn&apos;t a home button away. I want to
feel safe.&lt;/p&gt;
&lt;p&gt;Those are my tactics for a happier digital life.&lt;/p&gt;
</content:encoded></item><item><title>The subtle art of staying at home</title><link>https://www.teejayvanslyke.com/letters/the-subtle-art-of-staying-at-home/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/the-subtle-art-of-staying-at-home/</guid><pubDate>Tue, 15 Aug 2017 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;I have a penchant for whimsically leaving the house without cause.&lt;/p&gt;
&lt;p&gt;Working remotely, I have the freedom to remain in the comfort of my home
for as long as I like. For whatever reason, that&apos;s typically only a couple
hours.&lt;/p&gt;
&lt;p&gt;Today I&apos;m setting the intention to occupy myself here, at home, for the
duration of the day. I want to practice disciplining myself to remain in
my office, for sake of improving both my productivity as well as my
mindful awareness.&lt;/p&gt;
&lt;p&gt;I was reading from the book &lt;em&gt;Full Catastrophe Living&lt;/em&gt; over the weekend.
There was a particular passage about examining the richness in every
moment, no matter how mundane the moment might seem.&lt;/p&gt;
&lt;p&gt;Of all disciplines subject to needless hurrying, computing is probably the
worst. There&apos;s a tendency to attempt to complete every task in as little
time as possible, without regard for the beauty of the moments during
which we&apos;re acting.&lt;/p&gt;
&lt;p&gt;I wonder whether this tendency of mine to move quickly is a fear that I&apos;ll
be outmatched by one of my peers. That, if only I go faster, I can hope to
retain my position among them.&lt;/p&gt;
&lt;p&gt;Slow down. Take inventory of the task. Breathe. Enjoy the process.&lt;/p&gt;
</content:encoded></item><item><title>Your own European safety net</title><link>https://www.teejayvanslyke.com/letters/your-own-european-safety-net/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/your-own-european-safety-net/</guid><pubDate>Sun, 13 Aug 2017 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;I stumbled into viewing Michael Moore&apos;s &lt;em&gt;Where to Invade Next&lt;/em&gt; last night.
In the film, he visits several countries—mostly in Europe—and identifies
social programs other countries have from which the United States could
learn.&lt;/p&gt;
&lt;p&gt;Among these programs were eight weeks of guaranteed vacation, increased
equity between workers and managers as a result of requiring workers be on
corporate boards, and government-subsidized university education.&lt;/p&gt;
&lt;p&gt;This got me thinking: We tend to measure success in business here in the
United States in terms of valuation and profit, pushing aside less
tangible successes like worker satisfaction, their future security, and
contribution to the public good.&lt;/p&gt;
&lt;p&gt;As a small business owner, I too have fallen into the trap of measuring my
business success in terms of gross revenue, instead of in the more
meaningful terms of work/life balance, savings rate, and personal
satisfaction.&lt;/p&gt;
&lt;p&gt;Being part of America&apos;s dwindling affluent upper middle class, Moore&apos;s
film has inspired me to think more about money in terms of the risk it
mitigates instead of the numbers in a computer. That is, to recognize that
the reason I earn a living is not for sake of making my bank account
balance go up, but in order to ensure a prosperous present and future.&lt;/p&gt;
&lt;p&gt;There may be little hope for the American middle class—specifically the
working class who have in so many ways been left behind in our
neolibertarian wasteland—but those among us fortunate enough to secure
a generous income can, if we&apos;re clever, replicate the European social
safety net for our families within the American system.&lt;/p&gt;
&lt;p&gt;By taking full advantage of programs like the 401(k), IRA, and HSA, we can
minimize our tax burden in order to create a personal pension plan that
will, with any luck, keep us fed, clothed, housed, and prosperous into our
golden years.&lt;/p&gt;
&lt;p&gt;It is critical though, that we do so humbly and with gratitude. We ought
to view our positions of financial privilege as opportunities to level the
playing field—not to flaunt our affluence and status.&lt;/p&gt;
&lt;p&gt;A recurring theme in Moore&apos;s film was the idea that countries with healthy
social safety nets fought hard to maintain them. They weren&apos;t easily won
without political interference; rather, they were won through difficult
and strenuous organization.&lt;/p&gt;
&lt;p&gt;I do hope the political tide turns in my lifetime and that someday the
poorest of Americans won&apos;t need suffer the plights of homelessness and
chronic illness. But in the meantime, those among us fortunate enough to
bear the means to insure ourselves against future poverty should do so.&lt;/p&gt;
&lt;p&gt;If each of us capable enough to buy the symbols of affluence instead
chooses to buy the real thing, we will free ourselves enough to enact
change for those who lack that capability.&lt;/p&gt;
&lt;p&gt;Life ought to amount to more than eighty-odd years of accumulation of
stuff. The structure of some societies seems to reflect that. We can, at
best, mimic their ideas with our budgets.&lt;/p&gt;
</content:encoded></item><item><title>Why I decided not to buy a house</title><link>https://www.teejayvanslyke.com/letters/why-i-decided-not-to-buy-a-house/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/why-i-decided-not-to-buy-a-house/</guid><pubDate>Fri, 11 Aug 2017 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;The rent is too damn high.&lt;/p&gt;
&lt;p&gt;Especially here in Oregon. In Portland, rents were up
34%
as of 2016.&lt;/p&gt;
&lt;p&gt;Because of this, I&apos;ve spent a disproportionate amount of my time
contemplating whether I should buy a house to insulate my family from the
threat of ever-increasing rents.&lt;/p&gt;
&lt;p&gt;I called a mortgage broker. I surveyed the local real estate market here
in Eugene. There are 1200 square foot houses with list prices greater than
$300,000. And don&apos;t even ask about Portland, where I could barely afford
a shoebox condo next to a freeway.&lt;/p&gt;
&lt;p&gt;After seeing the San Francisco Bay Area become unaffordable even for the
upper middle class, it&apos;s scary to imagine Oregon ending up in the same
situation.&lt;/p&gt;
&lt;p&gt;But then I realized something.&lt;/p&gt;
&lt;p&gt;I don&apos;t want to own a house. Ever.&lt;/p&gt;
&lt;p&gt;The only reason I want a house is to hedge against rising rents. I don&apos;t
want to spend my weekends at Home Depot. I don&apos;t want to remodel
a kitchen. And I &lt;em&gt;really&lt;/em&gt; don&apos;t want to sink a ton of money into
a house.&lt;/p&gt;
&lt;p&gt;I like to move around. I like to live
nimbly. To know I can call my landlord,
pay a lease break fee, and be free to do anything I want.&lt;/p&gt;
&lt;p&gt;A house is a prison. At least, for me. It might be a great investment for
you. But I&apos;d rather live in a micro-studio for the rest of my life than be
stuck because I was afraid of rising rents.&lt;/p&gt;
</content:encoded></item><item><title>Feeling insignificant</title><link>https://www.teejayvanslyke.com/letters/feeling-insignificant/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/feeling-insignificant/</guid><pubDate>Thu, 10 Aug 2017 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;For the past few years I&apos;ve been frantically saving and investing money.&lt;/p&gt;
&lt;p&gt;I feel fortunate that my skills are in demand and permit me to invest
a large percentage of my income while still enjoying a pleasant existence
today.&lt;/p&gt;
&lt;p&gt;But despite this, I find myself feeling insignificant, and blaming the
balance of my investment account for my malcontent.&lt;/p&gt;
&lt;p&gt;Reading this interview with Derek
Sivers made me realize that while
owning a nice pile of stocks and bonds makes me feel more financially
secure, it will &lt;em&gt;never&lt;/em&gt; make me feel more emotionally or spiritually
secure.&lt;/p&gt;
&lt;p&gt;In the absence of conspicuous consumption and overindulgence, I will not
suddenly feel connected to others. I will not, by virtue of my frugality,
be generous and noble.&lt;/p&gt;
&lt;p&gt;The only way to feel connected and generous is to do generous deeds and to
connect with others.&lt;/p&gt;
</content:encoded></item><item><title>Adding React to a Middleman project with Webpack</title><link>https://www.teejayvanslyke.com/letters/adding-react-to-a-middleman-project-with-webpack/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/adding-react-to-a-middleman-project-with-webpack/</guid><pubDate>Sat, 05 Aug 2017 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Middleman is a static site generator written in Ruby. It&apos;s a great way to
produce rich static content sites without the need for a server. Despite
this, it doesn&apos;t come with internal support for modern JavaScript
frameworks like React. Luckily, Middleman 4 ships with a feature called
&lt;a href=&quot;https://middlemanapp.com/advanced/external-pipeline/&quot;&gt;External Pipeline&lt;/a&gt;
which allows wiring in your own external build tool like Gulp or Webpack.&lt;/p&gt;
&lt;p&gt;Let&apos;s look at how to integrate Webpack with Middleman for the purpose of
using React on our site.&lt;/p&gt;
&lt;h3&gt;Install development dependencies&lt;/h3&gt;
&lt;p&gt;First, let&apos;s install the dependencies we&apos;ll need to build our React code.
Note that we&apos;re using the &lt;code&gt;--save-dev&lt;/code&gt; flag to indicate to npm that we
should append these libraries to the &lt;code&gt;devDependencies&lt;/code&gt; section of our
&lt;code&gt;package.json&lt;/code&gt;.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;$ npm install --save-dev babel-core babel-loader babel-preset-es2015 babel-preset-react webpack uglifyjs-webpack-plugin

&lt;/code&gt;&lt;/pre&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;babel-core&lt;/code&gt; is the core Babel package for transpiling ES6 and JSX into
browser-friendly ES5 JavaScript.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;babel-loader&lt;/code&gt; is a Webpack loader which loads files from our path into
Babel.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;babel-preset-es2015&lt;/code&gt; is a preset for Babel to transpile ES6 code.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;babel-preset-react&lt;/code&gt; is a preset for Babel to transpile JSX code.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;webpack&lt;/code&gt; is Webpack itself.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;uglifyjs-webpack-plugin&lt;/code&gt; is a Webpack plugin to uglify and compress our
code for production.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Install React&lt;/h3&gt;
&lt;p&gt;Next, install the React packages, this time using &lt;code&gt;--save&lt;/code&gt; to indicate
these are runtime dependencies:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;$ npm install --save react react-dom

&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Set up your Babel configuration file&lt;/h3&gt;
&lt;p&gt;Babel has its own configuration file inside &lt;code&gt;.babelrc&lt;/code&gt;. Create this file
in the root of your Middleman project with the following contents:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;{
  &quot;presets&quot;: [
    &quot;es2015&quot;, &quot;react&quot;
  ]
}

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This file tells Babel to use the &lt;code&gt;es2015&lt;/code&gt; and &lt;code&gt;react&lt;/code&gt; presets we installed
in the first step.&lt;/p&gt;
&lt;h3&gt;Configure Webpack&lt;/h3&gt;
&lt;p&gt;Next we&apos;ll configure Webpack with a basic configuration file that supports
both development and production environments. Place the following inside
the file &lt;code&gt;webpack.config.js&lt;/code&gt; in the root of your project:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;// webpack.config.js
var webpack = require(&apos;webpack&apos;);

const isProduction = process.env.NODE_ENV === &apos;production&apos;;

const productionPlugins = [
  new webpack.DefinePlugin({
    &apos;process.env.NODE_ENV&apos;: &apos;&quot;production&quot;&apos;
  }),
  isProduction ? new webpack.optimize.UglifyJsPlugin({
    compress: {
      warnings: false,
    },
  }) : null,
];

module.exports = {
  entry: &apos;./assets/javascripts/index.js&apos;,
  devtool: isProduction ? false : &apos;source-map&apos;,
  output: {
    library: &apos;MyApp&apos;,
    path: __dirname + &apos;/tmp/dist&apos;,
    filename: &apos;bundle.js&apos;,
  },
  module: {
    loaders: [
      {
        test: /\.js$/,
        loader: &apos;babel-loader&apos;,
        exclude: /node_modules/
      }
    ]
  },
  plugins: isProduction ? productionPlugins : []
};

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Notice that we use the &lt;code&gt;isProduction&lt;/code&gt; flag to toggle the use of the
&lt;code&gt;UglifyJsPlugin&lt;/code&gt; as well as whether we use a &lt;code&gt;devtool&lt;/code&gt; to provide us with
source maps for debugging.&lt;/p&gt;
&lt;h3&gt;Configure Middleman to build Webpack&lt;/h3&gt;
&lt;p&gt;Now that we&apos;ve configured Webpack, let&apos;s tell Middleman to execute it
whenever it rebuilds. To do this, we&apos;ll activate the external pipeline
plugin in our &lt;code&gt;config.rb&lt;/code&gt; and point it at the Webpack executable:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# config.rb

activate :external_pipeline,
  name: :webpack,
  command: build? ?
  &quot;NODE_ENV=production ./node_modules/webpack/bin/webpack.js --bail -p&quot; :
  &quot;./node_modules/webpack/bin/webpack.js --watch -d --progress --color&quot;,
  source: &quot;tmp/dist&quot;,
  latency: 1

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;When we run &lt;code&gt;middleman build&lt;/code&gt;, we run Webpack with &lt;code&gt;NODE_ENV=production&lt;/code&gt;.
This triggers our production build options in our Webpack configuration.&lt;/p&gt;
&lt;p&gt;When using &lt;code&gt;middleman server&lt;/code&gt; though, we tell Webpack to &lt;code&gt;--watch&lt;/code&gt; for
changes and automatically rebuild.&lt;/p&gt;
&lt;p&gt;Middleman will look for the result of our built assets inside &lt;code&gt;tmp/dist&lt;/code&gt;.
Let&apos;s go ahead and create that directory now:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;$ mkdir -p tmp/dist

&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Build an example React component&lt;/h3&gt;
&lt;p&gt;Now that we&apos;ve got our tooling configured, let&apos;s create a simple React
component to test that everything works. First, create a directory to
store your Webpack JavaScript assets. I place these files in
&lt;code&gt;assets/javascripts&lt;/code&gt; since Sprockets looks inside &lt;code&gt;source/javascripts&lt;/code&gt;,
and I don&apos;t want Sprockets to attempt to build my React code.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;$ mkdir -p assets/javascripts

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Next, let&apos;s sketch out a React component. Note that from &lt;code&gt;index.js&lt;/code&gt; I&apos;m
exporting a function &lt;code&gt;renderHello&lt;/code&gt; which renders the &lt;code&gt;HelloWorld&lt;/code&gt;
component to a DOM element specified by ID. This allows us to call upon
fragments of React code from within existing pages.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;// assets/javascripts/index.js

import React from &apos;react&apos;;
import ReactDOM from &apos;react-dom&apos;;

const HelloReact = props =&amp;gt; (
  &amp;lt;div&amp;gt;Hello, React!&amp;lt;/div&amp;gt;
);

function renderHello(id) {
  const el = document.getElementById(selector);
  ReactDOM.render(&amp;lt;HelloReact /&amp;gt;, el);
}

export default {
  renderHello
}

&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Mount the component&lt;/h3&gt;
&lt;p&gt;Finally, mount the component onto an existing DOM element on a page.
First include the built &lt;code&gt;bundle.js&lt;/code&gt; file. Then, call &lt;code&gt;renderHello&lt;/code&gt;:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;  &amp;lt;body&amp;gt;
    &amp;lt;div id=&quot;hello&quot;&amp;gt;
    &amp;lt;/div&amp;gt;

    &amp;lt;%= javascript_include_tag  &quot;bundle&quot; %&amp;gt;
    &amp;lt;script type=&quot;text/javascript&quot;&amp;gt;
      MyApp.default.renderHello(&apos;hello&apos;);
    &amp;lt;/script&amp;gt;
  &amp;lt;/body&amp;gt;

&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Other resources&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://rossta.net/blog/using-webpack-with-middleman.html&quot;&gt;Using Webpack with Middleman&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://middlemanapp.com/advanced/external-pipeline/&quot;&gt;Middleman - External Pipeline&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;http://ccoenraets.github.io/es6-tutorial-data/babel-webpack/&quot;&gt;Using Babel and Webpack&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://medium.com/@mrbar42/how-i-reduced-the-size-of-my-webpack-bundle-by-1000-f4d74894c2e5&quot;&gt;How I reduced the size of my Webpack bundle by 1000%&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
</content:encoded></item><item><title>When you forget why</title><link>https://www.teejayvanslyke.com/letters/when-you-forget-why/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/when-you-forget-why/</guid><pubDate>Tue, 01 Aug 2017 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;I don&apos;t ever want to forget why.&lt;/p&gt;
&lt;p&gt;There are so many layers in what I do. From the sales process to the
technical work to the administrative work.&lt;/p&gt;
&lt;p&gt;It&apos;s easy to get caught in a cycle of continuing to do what you&apos;ve always
done without looking up from your work.&lt;/p&gt;
&lt;p&gt;It&apos;s easy to forget that all this work is a means toward an end and not
the end itself.&lt;/p&gt;
&lt;p&gt;The end is my family.&lt;/p&gt;
&lt;p&gt;The end is a cup of coffee enjoyed in tranquility on my porch.&lt;/p&gt;
&lt;p&gt;The end is the cool breeze as I ride my bicycle along the river.&lt;/p&gt;
&lt;p&gt;I want to serve others. But I&apos;ll serve them better if I serve myself.&lt;/p&gt;
</content:encoded></item><item><title>Addicted to advice</title><link>https://www.teejayvanslyke.com/letters/addicted-to-advice/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/addicted-to-advice/</guid><pubDate>Mon, 31 Jul 2017 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Self-help books. Articles on Medium and Thought Catalog. Top ten lists.
Seminars. Order my monthly coaching package.&lt;/p&gt;
&lt;p&gt;And in rushes the anxiety. Are you doing everything you could be? Are you
doing enough? Do you have what it takes? What will happen if you don&apos;t act
now? Are you falling behind?&lt;/p&gt;
&lt;p&gt;Are we addicted to advice? Are we listening too much too often to the
babble of other people who tell us they know better how to be?&lt;/p&gt;
&lt;p&gt;I challenge myself today to rely on instinct. To act on intuition. To beat
my own drum and to listen to the song.&lt;/p&gt;
&lt;p&gt;I&apos;m Teejay, and I&apos;m a recovering advice addict.&lt;/p&gt;
</content:encoded></item><item><title>Integrity</title><link>https://www.teejayvanslyke.com/letters/integrity/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/integrity/</guid><pubDate>Mon, 31 Jul 2017 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Integrity is a virtue.&lt;/p&gt;
&lt;p&gt;There are a million ways to make your website convert better. But some of
them abuse the visitor and dangle carrots that don&apos;t help them.&lt;/p&gt;
&lt;p&gt;I can&apos;t remember the last time I saw an on-exit popup that made me smile.&lt;/p&gt;
&lt;p&gt;It&apos;s easy to make a living selling the idea of becoming rich or famous and
then not deliver.&lt;/p&gt;
&lt;p&gt;It&apos;s harder to make a living encouraging someone to do their best and
genuinely help them get as far as they can.&lt;/p&gt;
&lt;p&gt;I don&apos;t want to sell shovels to miners. My vow to my clients is simple:
I will always act in your best interest.&lt;/p&gt;
</content:encoded></item><item><title>Fighting the urge to remain in motion</title><link>https://www.teejayvanslyke.com/letters/fighting-the-urge-to-remain-in-motion/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/fighting-the-urge-to-remain-in-motion/</guid><pubDate>Sat, 29 Jul 2017 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Do you ever find yourself involuntarily trending toward making life more
difficult than it need be? To crave change and excitement—the very same
that you were trying to eradicate through the simplicity and calm you now
inhabit?&lt;/p&gt;
&lt;p&gt;I&apos;ve felt that way recently. A drive to shake things up for the sake of
shaking them up. Funny though; where I am now was a dream only a year ago.&lt;/p&gt;
&lt;p&gt;It pays to reflect on our journey occasionally to recognize our progress.
But fighting the urge to remain in motion is futile until we
reach the grave.&lt;/p&gt;
</content:encoded></item><item><title>Remote for life</title><link>https://www.teejayvanslyke.com/letters/remote-for-life/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/remote-for-life/</guid><pubDate>Sat, 22 Jul 2017 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;The last time I went to an office was in 2007.&lt;/p&gt;
&lt;p&gt;I remember never quite feeling at ease. Wanting to work but feeling like
there was a pressure to stay for the full eight hours. Not feeling like
I could go take a break to clear my mind. Subordination.&lt;/p&gt;
&lt;p&gt;Ten years later and I&apos;ve invested in working from home.&lt;/p&gt;
&lt;p&gt;I&apos;ve built myself a lovely minimalist workstation where I&apos;m able to be
productive without distractions. I work in my sweatpants and make my own
lunches. I&apos;m simultaneously productive and happy and free. This is the
lifestyle that works for me.&lt;/p&gt;
&lt;p&gt;I know I might be missing out on career opportunities because of my
stubbornness to work from home, but in my view they&apos;re not worth the
commutes and the feeling of entrapment.&lt;/p&gt;
&lt;p&gt;There was an article in the New York
Times
yesterday about people with commutes more than 2 hours. If you work an
8-hour day and commute 4 hours per day to get there and back, that&apos;s a 33%
pay cut.&lt;/p&gt;
&lt;p&gt;My trip to Portland reminded me how city commuting can be stressful. The
busyness and the sense we all have to be somewhere fast. From my
perspective, we ought to spend our time figuring out how &lt;em&gt;not&lt;/em&gt; to do that
anymore.&lt;/p&gt;
&lt;p&gt;That&apos;s why I&apos;ve built my life around working remotely. And while I might
turn down opportunities to grow, I know I&apos;m in control of my own time.&lt;/p&gt;
</content:encoded></item><item><title>The Portland I used to know</title><link>https://www.teejayvanslyke.com/letters/the-portland-that-i-used-to-know/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/the-portland-that-i-used-to-know/</guid><pubDate>Tue, 18 Jul 2017 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;I went to Portland this past weekend to attend Edward Tufte&apos;s excellent
Presenting Data and
Information course.&lt;/p&gt;
&lt;p&gt;Having lived there for the better part of a decade, I&apos;ve always thought of
Portland as my adulthood home. A place to which I&apos;d return someday.
A place bookmarked in time.&lt;/p&gt;
&lt;p&gt;But now I&apos;m not so sure. The experience I had in Portland this time left
my befuddled: Had Portland changed so dramatically in the three years I&apos;d
been gone, or did my own values change?&lt;/p&gt;
&lt;p&gt;My friends there say it&apos;s probably a bit of both. I remember a Portland
where ordinary people could afford to open small businesses. Now it seems
as though all of those lovely local businesses are closing. I&apos;m not
opposed to change and certainly don&apos;t think preservation legislation is
the answer, but it&apos;s a difficult and depressing pill to swallow.&lt;/p&gt;
&lt;p&gt;And can we talk about the cultural shift? I don&apos;t mean to stereotype, but
I&apos;m about to. When did Portland go from a place where the punks and
weirdos thrive to a place where it seems as though people go to great
lengths to manicure their appearance to the point of absurdity? Was
Portland always the epicenter of douchey-cool and I&apos;ve just grown out of
it? Or has it reached its tipping point?&lt;/p&gt;
&lt;p&gt;I still love the Portland cityscape and don&apos;t bemoan out-of-towners who
dream of moving there. One of the unique draws of city life is being
surrounded by people different from you. But Portland&apos;s recent
homogenization represents a shift away from that diversity. I&apos;m not
talking about racial diversity or even ethnic diversity. I mean diversity
of ideas. A place where both artists and businesspeople can thrive. That&apos;s
the Portland I left. And now I&apos;m not so sure I&apos;ll go back.&lt;/p&gt;
</content:encoded></item><item><title>Buffers</title><link>https://www.teejayvanslyke.com/letters/buffers/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/buffers/</guid><pubDate>Tue, 11 Jul 2017 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Life is peaceful when there are buffers.&lt;/p&gt;
&lt;p&gt;The time between the present moment and your next obligation is a buffer.
The money in your bank account that protects you from insolvency is
a buffer. Food in the pantry. The space between your neighbor&apos;s house and
your own.&lt;/p&gt;
&lt;p&gt;As I&apos;ve grown older, I&apos;ve noticed I want wider buffers. I&apos;m less willing
to allow them to shrink to their size ten years ago. Busyness. Brokeness.
Empty pantries and tiny apartments.&lt;/p&gt;
&lt;p&gt;Part of me misses that wild abandon. But when I sleep at night knowing
there&apos;s a cushion between me and the world, I smile.&lt;/p&gt;
</content:encoded></item><item><title>How to name and organize your React components</title><link>https://www.teejayvanslyke.com/letters/how-to-name-and-organize-your-react-components/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/how-to-name-and-organize-your-react-components/</guid><pubDate>Mon, 10 Jul 2017 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;When I first began building complex React applications, I struggled to
determine the best way to name and organize my components within my
codebase. Having come from the Rails school of convention over
configuration,
I was perplexed to find that most modern JavaScript apps rely heavily on
custom configuration and don&apos;t adhere to any sort of community-driven
conventional norms. That&apos;s changing slowly with the advent of toolkits
like
&lt;a href=&quot;https://github.com/facebookincubator/create-react-app&quot;&gt;create-react-app&lt;/a&gt;,
but even its conventions go right out the window as soon as you npm
eject.&lt;/p&gt;
&lt;p&gt;After a couple years of learning and mistakes, there are a few guidelines
I use when organizing my React components so my code is more readable,
understandable, and succinct.&lt;/p&gt;
&lt;h4&gt;Compose your components into smaller subcomponents&lt;/h4&gt;
&lt;p&gt;While it&apos;s tempting to just keep adding bits and pieces to your
component&apos;s &lt;code&gt;render&lt;/code&gt; method, this can grow to the point where it becomes
difficult for new eyes to discern your intentions. Imagine a &lt;code&gt;render&lt;/code&gt;
method like this:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;render() {
  return (
    &amp;lt;div className=&quot;todo-list&quot;&amp;gt;
      &amp;lt;div className=&quot;todo-list__items&quot;&amp;gt;
        {this.props.items.map(item =&amp;gt; (
          &amp;lt;div className=&quot;todo-item&quot;&amp;gt;
            {item.title}
          &amp;lt;/div&amp;gt;
        ))}
      &amp;lt;/div&amp;gt;
    &amp;lt;/div&amp;gt;
  );
}

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Instead of rendering todo items within the root component&apos;s &lt;code&gt;render&lt;/code&gt; method,
create a new component:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;const TodoItem = props =&amp;gt; (
  &amp;lt;div className=&quot;todo-item&quot;&amp;gt;
    {props.item.title}
  &amp;lt;/div&amp;gt;
);

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Then, call it in our root component&apos;s &lt;code&gt;render&lt;/code&gt; method:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;render() {
  return (
    &amp;lt;div className=&quot;todo-list&quot;&amp;gt;
      &amp;lt;div className=&quot;todo-list__items&quot;&amp;gt;
        {this.props.items.map(item =&amp;gt; (
          &amp;lt;TodoItem item={item} /&amp;gt;
        ))}
      &amp;lt;/div&amp;gt;
    &amp;lt;/div&amp;gt;
  );
}

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;It&apos;s a subtle change, but making these sorts of changes proactively
can keep your components readable. And becuase React only re-renders those components
that change, extracting smaller components can improve your application&apos;s performance.&lt;/p&gt;
&lt;h4&gt;Extract iterators into class methods or new components&lt;/h4&gt;
&lt;p&gt;Extracting a subcomponent is a good first step. But
we can go one step further by extracting the &lt;code&gt;map&lt;/code&gt; iterator
call into its own method in the root component. This improves
the readability of the &lt;code&gt;render&lt;/code&gt; method:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;render() {
  return (
    &amp;lt;div className=&quot;todo-list&quot;&amp;gt;
      &amp;lt;div className=&quot;todo-list__items&quot;&amp;gt;
        {this.renderItems()}
      &amp;lt;/div&amp;gt;
    &amp;lt;/div&amp;gt;
  );
}

renderItems() {
  return this.props.items.map(item =&amp;gt; (
    &amp;lt;TodoItem item={item} /&amp;gt;
  ));
}

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Now when we scan the &lt;code&gt;render&lt;/code&gt; method, we see a more succinct
summary of its contents!&lt;/p&gt;
&lt;h4&gt;Only use ES6-style class components where state is needed&lt;/h4&gt;
&lt;p&gt;Notice in my previous example that I&apos;ve opted to use &lt;code&gt;const&lt;/code&gt; to
define the &lt;code&gt;TodoItem&lt;/code&gt; component. This is because, in its current
incarnation, the &lt;code&gt;TodoItem&lt;/code&gt; component is stateless.&lt;/p&gt;
&lt;p&gt;In React, stateless components are merely functions that return
a React-wrapped DOM element. Unlike using the ES6 &lt;code&gt;class&lt;/code&gt; keyword or the
now-antiquated &lt;code&gt;React.createClass&lt;/code&gt; method, stateless components cannot
hold their own component state in a &lt;code&gt;this.state&lt;/code&gt; object.&lt;/p&gt;
&lt;p&gt;The reason this syntax is favorable is because it encourages authoring
code in a functional style. Let&apos;s expand our &lt;code&gt;TodoItem&lt;/code&gt; component to
include a &quot;Delete&quot; button:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;const TodoItem = props =&amp;gt; (
  &amp;lt;div className=&quot;todo-item&quot;&amp;gt;
    &amp;lt;div className=&quot;todo-item__title&quot;&amp;gt;
      {props.item.title}
    &amp;lt;/div&amp;gt;

    &amp;lt;button onClick={props.onDelete}&amp;gt;
      Delete
    &amp;lt;/button&amp;gt;
  &amp;lt;/div&amp;gt;
);

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Here we&apos;ve enclosed the title in a new container &lt;code&gt;div&lt;/code&gt;, and then
added a &lt;code&gt;&amp;lt;button&amp;gt;&lt;/code&gt; tag with an &lt;code&gt;onClick&lt;/code&gt; handler set to a hypothetical
&lt;code&gt;onDelete&lt;/code&gt; thunk handler that we would pass through from the parent
component.&lt;/p&gt;
&lt;p&gt;Just like in our iterator extraction example above, there&apos;s opportunity to
make this component more readable. However, because this component is
stateless we can use a more functional style:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;const Title = props =&amp;gt; (
  &amp;lt;div className=&quot;todo-item__title&quot;&amp;gt;
    {props.value}
  &amp;lt;/div&amp;gt;
);

const DeleteButton = props =&amp;gt; (
  &amp;lt;button onClick={props.onDelete}&amp;gt;
    Delete
  &amp;lt;/button&amp;gt;
);

const TodoItem = props =&amp;gt; (
  &amp;lt;div className=&quot;todo-item&quot;&amp;gt;
    &amp;lt;Title value={props.item.title} /&amp;gt; &amp;lt;DeleteButton
    &amp;lt;DeleteButton onClick={props.onDelete} /&amp;gt;
  &amp;lt;/div&amp;gt;
);

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Our goal in doing these extractions is to reduce fatigue when scanning
your components&apos; code. New developers who visit this code for the first
time will be greeted with components whose markup is only a few lines,
making it much easier to parse and understand than if they were tens or
hundreds of lines.&lt;/p&gt;
&lt;p&gt;Keeping this habit early on will mean your codebase can grow and remain
understandable to newcomers.&lt;/p&gt;
&lt;h4&gt;Organize composed components into subdirectories&lt;/h4&gt;
&lt;p&gt;So far, we&apos;ve built the following components:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;TodoList&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;TodoItem&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;Title&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;DeleteButton&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;As our codebase grows, the way we physically organize our code on disk is
going to become more critical. I&apos;ve experimented with a couple
methodologies.&lt;/p&gt;
&lt;p&gt;The first is to create a directory called &lt;code&gt;components&lt;/code&gt;, dump all your
components in there, and call it a day. This is fine for projects with
fewer than 20 or so components, but it becomes cumbersome as the number of
components grows.&lt;/p&gt;
&lt;p&gt;Instead, I&apos;ve settled on creating subdirectories for certain root-level
components. In our example, we could envision the following directory
structure:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;  components/
    TodoList/
      index.js
      Item/
        index.js
        Title.js
        DeleteButton.js

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Organizing our components in this way has the following benefits:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Components only ever reference other components within their own
subdirectory.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;We can name components based on their context. For instance, instead
of naming our item component &lt;code&gt;TodoItem&lt;/code&gt;, we can call it &lt;code&gt;Item&lt;/code&gt;. This
reduces unnecessary verbosity.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Our components become portable. By encapsulating their hierarchy within
a single directory, we can reuse the component in other codebases easily.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
</content:encoded></item><item><title>That feeling when you want to give up</title><link>https://www.teejayvanslyke.com/letters/that-feeling-when-you-want-to-give-up/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/that-feeling-when-you-want-to-give-up/</guid><pubDate>Mon, 10 Jul 2017 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Marketing yourself sure is an anxious chore. I&apos;m plenty qualified for all
sorts of full-time jobs, but I&apos;m resolute against taking one since I know
I work best when I&apos;m free.&lt;/p&gt;
&lt;p&gt;What does freedom mean to me?&lt;/p&gt;
&lt;p&gt;Freedom means the ability to wake up when my body tells me instead of when
an alarm sounds its siren. It means I can take some time between clients
to ride my bicycle around town casually without worrying that I need to
return to the office. It means I&apos;m not burdened by day-to-day inter-office
politics. That I can provide immense value without being physically
present.&lt;/p&gt;
&lt;p&gt;But it&apos;s tough out there. Not in the economic sense; there&apos;s probably
plenty of work to be done. But marketing yourself as a consultant is no
easy task. Most consultants probably wouldn&apos;t admit such a thing on their
website for fear of being perceived as a failure or a fake.&lt;/p&gt;
&lt;p&gt;I&apos;m not afraid of that because I know my value, but I am afraid of
failure. I&apos;m afraid I&apos;ll soon be applying for jobs and working 40 hours
per week and giving up on this whole consulting thing for good. Which is
humorous in its own way given the fact I&apos;m nowhere near failing. But
that&apos;s how fear works, isn&apos;t it?&lt;/p&gt;
</content:encoded></item><item><title>Limiting beliefs and the tech industry</title><link>https://www.teejayvanslyke.com/letters/limiting-beliefs-and-the-tech-industry/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/limiting-beliefs-and-the-tech-industry/</guid><pubDate>Sun, 09 Jul 2017 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Limiting beliefs are beliefs we hold which constrain us in some way. We
define ourselves by what we do or don&apos;t do, what we can or cannot do, what
we are and what we aren&apos;t.&lt;/p&gt;
&lt;p&gt;The tech industry, with its continuous cycle of innovation, cutthroat
competition, and social darwninist hierarchy, can foster some pretty
sinister limiting beliefs. I struggle with them regularly and I&apos;m sure you
do too.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;I&apos;m too old.&lt;/strong&gt; There&apos;s plenty of chatter about ageism in the tech
community. As someone who&apos;s turning 32 this year, I&apos;m fearful of it, in
spite of not having experienced it. I do wonder though, whether ageism is
a bogeyman insecurity that can be overcome in the minds of those affected,
rather than a form of systemic oppression. It&apos;s tempting to give up on
that new startup or to believe we&apos;re unable to grasp new technologies on
account of our age. But the market doesn&apos;t care how old we are,
truthfully.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;The market is too saturated.&lt;/strong&gt; I&apos;m running up against this resistance
right now myself. Building a consulting business is no easy task. There is
plenty of advice of how best to proceed when building a consulting
business, and I&apos;ve learned over the past few months that it&apos;s easy to get
sucked into their vortex and forget to do the work. While some of the
advice is prudent to follow, most of them are just selling shovels to the
miners. I&apos;m learning that the best way to build a business is to build
the business. The market doesn&apos;t care how many players are in the game.
It&apos;s just a matter of standing out among them.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;All the good ideas are already taken.&lt;/strong&gt; This one is fascinating to me,
but I&apos;m still succeptible to it. Imagine someone saying this in the days
before the Internet. Lawyers didn&apos;t decide not to start a law firm because
there were already lawyers in the world. Dentists didn&apos;t say &quot;Well, there
are already people fixing teeth. I guess that dream is off the table.&quot; Why
are we so caught up in the notion that our idea need to be original?
Competitors are a sign there are people willing to pay for what we offer.
It&apos;s just a matter of providing more value than they do.&lt;/p&gt;
&lt;p&gt;I&apos;m writing this as a gentle reminder to myself: There&apos;s abundant
opportunity for thoughtful and innovative people. It&apos;s just a matter of
training our minds to open.&lt;/p&gt;
</content:encoded></item><item><title>Why aren&apos;t more companies hiring independent consultants?</title><link>https://www.teejayvanslyke.com/letters/why-aren-t-more-companies-hiring-independent-consultants-for-web-development-work/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/why-aren-t-more-companies-hiring-independent-consultants-for-web-development-work/</guid><pubDate>Sat, 08 Jul 2017 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;I&apos;m noticing a trend as I&apos;m bootstrapping my consulting business. There
are plenty of awesome software development gigs, but most of them are
full-time positions.&lt;/p&gt;
&lt;p&gt;I have nothing against full-time positions; they&apos;re great for people who
enjoy capturing a regular paycheck each month and don&apos;t like the sales
process. But I&apos;m not sure I understand how hiring full-time staff benefits
the employer, especially in terms of cost benefit relative to hiring
results-oriented consultants to complete the same work.&lt;/p&gt;
&lt;p&gt;Employees are paid for their time. No matter the enriching culture you
provide them internally, they have little incentive to be efficient aside
from the possibility they&apos;ll lose their job. Most employees do want the
best for their company, but their principal concern is the livelihood of
their families and their ability to live life on their own terms. Paying
an employee&apos;s salary for a year does not translate into results for the
business. I&apos;ve spent months as an employee working on projects which never
made the company a dime because they were ill-conceived from the start.
I got paid and the company got nothing.&lt;/p&gt;
&lt;p&gt;Consultants charge for the outcomes they produce. If you need a new user
interface for your web application, I&apos;m going to spend a fair amount of
time asking you why you need it. I&apos;m going to dig deep into how such
a move could improve your business fundamentals. I&apos;m going to ask you
difficult questions that have more to do with sales, marketing, and users
than technology, infrastructure, or design.&lt;/p&gt;
&lt;p&gt;When I send you an invoice, I&apos;m going to tell you exactly the results you
paid for. If you&apos;re not satisfied, you&apos;ll get your money back.&lt;/p&gt;
&lt;p&gt;Feeling pressure to keep your team members employed
because you know they rely on you for paying their rent? Hire a consultant
and you won&apos;t have that problem. I&apos;m happy when you don&apos;t need me anymore.
Hopefully I worked myself out of a job and you can spend the money you
would have allocated to my salary on marketing to more users or innovating
in other ways.&lt;/p&gt;
&lt;p&gt;There&apos;s a stigma abound that independent consultants are hawks looking to
scoop up a payday without providing real value in return. I want to debunk
that myth for good. Consultants are seasoned professionals who realize
they don&apos;t thrive in the employer-employee model. We want nothing more
than for you to succeed and to help you find the best possible path to get
there. Our business is not one of billing hours, but of optimizing costs.
We charge fees not based upon the time we spend, but based upon the value
we provide.&lt;/p&gt;
</content:encoded></item><item><title>A notificationless life</title><link>https://www.teejayvanslyke.com/letters/a-no-notification-life/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/a-no-notification-life/</guid><pubDate>Tue, 04 Jul 2017 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;em&gt;I&apos;m an anxious person.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Wait, strike that. I&apos;m striving not to carelessly apply labels. I
sometimes suffer from anxiety. There. That&apos;s better.&lt;/p&gt;
&lt;p&gt;I sometimes suffer from anxiety. Having spent the majority of my waking
adult life in front of a screen, I&apos;m no stranger to the anxiety-inducing
nature of life online in 2017. The average computer or smartphone user has
hundreds of apps vying for their attention, each hoping to take a slice.&lt;/p&gt;
&lt;p&gt;It didn&apos;t used to be this way. Before 2009 and the introduction of Apple&apos;s
Push Notification Service, your iPhone left you alone except for when you
received a phone call or a text message. Those were simpler times.&lt;/p&gt;
&lt;p&gt;Now, if we don&apos;t do something about it, we&apos;re subject to a near-constant
buzzing and chirping. Emails. Text messages. Tweets. Likes. It doesn&apos;t
stop. As a technologist, I feel almost apologetic for the culture of
distraction that is now our everyday reality.&lt;/p&gt;
&lt;p&gt;That&apos;s why I want to do you a favor. I&apos;m going to make a suggestion that
hopefully will change your life for the better. Ready?&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Turn off all your notifications.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;That&apos;s right. Turn them &lt;em&gt;all&lt;/em&gt; off. Even your text messages. Maybe leave
your phone call notifications on so people can reach you in case of an
emergency. But you haven&apos;t experienced the serenity the people of the
twentieth century took for granted until you turn off all your smartphone
notifications.&lt;/p&gt;
&lt;p&gt;Afraid you&apos;ll miss something? You won&apos;t. If something is important enough,
someone will call you.&lt;/p&gt;
</content:encoded></item><item><title>Consultant vs. Freelancer</title><link>https://www.teejayvanslyke.com/letters/consultant-vs-freelancer/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/consultant-vs-freelancer/</guid><pubDate>Tue, 04 Jul 2017 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Consultant. The word conjures up thoughts of business attire, meetings,
and an expensive invoice. When you&apos;re going to hire a developer, you
usually don&apos;t seek out a &lt;em&gt;consultant&lt;/em&gt;. In fact, you might steer clear of
them for fear that they&apos;re only out to line their pockets. What you&apos;re
looking for is a &lt;em&gt;freelancer&lt;/em&gt;. Someone you can trust. Right?&lt;/p&gt;
&lt;p&gt;It&apos;s difficult to discern the difference between the two, so I want to
explore what each term means and how to gage whether the person you&apos;re
hiring should be deemed a consultant or a freelancer.&lt;/p&gt;
&lt;p&gt;The biggest distinction between a freelancer and a consultant is that
a freelancer thinks in terms of deliverables, while a consultant thinks in
terms of outcomes.&lt;/p&gt;
&lt;p&gt;Imagine you&apos;re losing sales to your competitors and you attribute this
loss in sales to your competitors&apos; superior online sales experience. You
want to hire a developer to build an online store that can rival your
competitors.&lt;/p&gt;
&lt;p&gt;When hiring a developer who bills themselves as a freelancer or
contractor, it&apos;s likely they&apos;ll focus more on the deliverables. They&apos;ll
take orders from you and you&apos;ll (hopefully) end up with the online
experience you envisioned.&lt;/p&gt;
&lt;p&gt;But what if that online experience doesn&apos;t result in the outcomes you
expected? What if it has a net negative impact on your sales?&lt;/p&gt;
&lt;p&gt;It&apos;s not your developer&apos;s fault, necessarily. They built what you asked
for, focusing on &lt;em&gt;what&lt;/em&gt; to build. But their interest and focus is on
&lt;em&gt;deliverables&lt;/em&gt;—the website, the technology, the means. Yours is on
&lt;em&gt;outcomes&lt;/em&gt;—the traffic, the sales, the customer satisfaction.&lt;/p&gt;
&lt;p&gt;But what if your developer understood your desired outcomes? And what if
instead of billing you merely for the time it took them to produce
deliverables which may or may not achieve those outcomes, they billed you
for &lt;em&gt;actually achieving the outcomes&lt;/em&gt;?&lt;/p&gt;
&lt;p&gt;That&apos;s the essence of hiring a consultant. You&apos;re not paying for a web
application; you&apos;re paying for the results that come from that web
application. A consultant is a partner. Their interest is your interest.
They guarantee outcomes that they believe they can deliver, instead of
billing you arbitrarily for their time which may or may not produce the
desired results. They seek to intimately understand your business and how
it can be improved through technology. And because they&apos;re billing you for
the results they achieve, they&apos;re not going to sell you technology you
don&apos;t need to achieve them.&lt;/p&gt;
</content:encoded></item><item><title>How is prototyping different?</title><link>https://www.teejayvanslyke.com/letters/how-is-prototyping-different/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/how-is-prototyping-different/</guid><pubDate>Mon, 05 Jun 2017 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Usually interactive projects involve one or all of the following creative
talent:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;User experience (UX) designer&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Visual designer&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Front end developer&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Back end developer&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Quality assurance engineer&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;A traditional project lifecycle looks something like this:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;The user experience designer expresses &lt;em&gt;user flows&lt;/em&gt; and &lt;em&gt;wireframes&lt;/em&gt; which
represent the final product. After your approval...&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;The visual designer processes the wireframes into &lt;em&gt;mockups&lt;/em&gt; which capture the
client&apos;s desired visual aesthetic (&quot;look and feel&quot;). After your approval...&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;The front-end developer begins building the mockups into HTML, CSS, and
JavaScript, which drive the user&apos;s experience in the browser. They&apos;ll also
inform the back end developer of what API will be required. After your approval...&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;The back-end developer builds the API while the front-end developer
integrates.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;If you&apos;re lucky, a QA engineer tries frantically to break things and reports
what they find to the developers for fixing.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;And if you&apos;re really lucky you&apos;ll
have nothing but praises to sing about the your product and everyone can go home
early.&lt;/p&gt;
&lt;p&gt;Except that never happens.&lt;/p&gt;
&lt;p&gt;What really happens is that you notice things. Things you didn&apos;t notice when all
you were working from were some black-and-white sketches. You realize a button&apos;s
text is confusing, so you ask if it can be changed. Your supervisor informs you
that the product needs to work differently.&lt;/p&gt;
&lt;p&gt;If only you could have shown your supervisor sooner.&lt;/p&gt;
&lt;p&gt;If only you could have seen your product in its early stages to collaborate on
its success, instead of leaving it to the mercy of an agency.&lt;/p&gt;
&lt;p&gt;That&apos;s the problem prototyping solves. Prototyping is when you build a product
iteratively, collaboratively, and with as little upfront design as possible.&lt;/p&gt;
&lt;p&gt;It puts experimentation above specification, and outcomes above delivery.
It implores developers to become product- and design-focused instead of just
playing an adult game of paint-by-numbers.&lt;/p&gt;
&lt;p&gt;Your average developer
builds software according to a design specification.&lt;/p&gt;
&lt;p&gt;Developers who prototype
&lt;em&gt;design&lt;/em&gt; software to achieve outcomes through experimentation.&lt;/p&gt;
&lt;h3&gt;A new paradigm&lt;/h3&gt;
&lt;p&gt;As programming tools have increased in capability, developer productivity has
increased with it.
It&apos;s now not unfathomable that a solo developer execute both the design and
implementation of a small- to medium-sized digital product.&lt;/p&gt;
&lt;p&gt;Composable user interface libraries like React mean we rely less and less upon
visual designers to inform the first versions of our products, because it&apos;s
trivial to iterate on visual aesthetics in the midst of a product build.&lt;/p&gt;
&lt;p&gt;And technologies like hot reloading of stylesheets mean that a developer fluent
in CSS can rapidly design a gorgeous user interface without ever consulting a
visual designer.&lt;/p&gt;
&lt;p&gt;Paradigm shifts like this one have occurred throughout the course of software development
history. Agile development killed the idea that you could build software
successfully with rigid upfront specification, but its methodology speaks very
little about user experience and what role developers play in shaping it.&lt;/p&gt;
&lt;p&gt;I believe we&apos;re now going through
another transformation: The realization that developers, if up to the task, can
play a unique role in driving the user experience conversation. And that role
can be so profound that it changes the entire process of product development.&lt;/p&gt;
&lt;p&gt;Now, I don&apos;t want to make any wild claims that visual designers are unnecessary
or that all developers should start focusing on user experience. After all, we
need specialists in all sorts of disciplines, and big projects will &lt;em&gt;always&lt;/em&gt;
require the leadership of a visual designer to create cohesion and establish
identity. But I do think that as product managers, entrepreneurs, and anyone who
buys professional software services realize the potential in granting product
leadership to their developers, we&apos;re going to see a shift in methodology.&lt;/p&gt;
&lt;p&gt;And too, as developers begin to recognize the value they can bring to a product
by becoming more involved in the user&apos;s perception, experience, and value, they
too will embrace this subtle but powerful change.&lt;/p&gt;
&lt;h3&gt;The power of simultaneity&lt;/h3&gt;
&lt;p&gt;A non-technical user experience designer can offer only so much in terms of real
value to end users. They can demonstrate a concept, but not execute it for
analysis.&lt;/p&gt;
&lt;p&gt;A non-technical visual designer can produce a new identity for an interface, but
relies upon the whims of a paint-by-numbers developer to bring that concept to
customers in the product.&lt;/p&gt;
&lt;p&gt;A design-focused, user-focused developer can execute all of this simultaneously.
They&apos;re able to conceptualize a visual identity, produce a working prototype of
an interface concept, and give it to real end users to test their hypothesis.&lt;/p&gt;
&lt;p&gt;By putting your developers in the design
seat, you reduce the communication feedback loop that inevitably occurs between
designers and developers. This new autonomy produces design decisions which
both serve the user and consider technical challenges.&lt;/p&gt;
</content:encoded></item><item><title>What is prototyping?</title><link>https://www.teejayvanslyke.com/letters/what-is-prototyping/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/what-is-prototyping/</guid><pubDate>Fri, 02 Jun 2017 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;img src=&quot;/assets/images/1280x1280/landscape-70dc446b.jpg&quot; alt=&quot;Spencer Butte, Eugene, Oregon&quot; /&gt;&lt;/p&gt;
&lt;p&gt;You have an idea for a new online product offering. Maybe you already have a thriving business and you
want to reach more customers with an interactive experience. Or maybe you&apos;re a budding
entrepreneur who has a fresh idea to take to market.&lt;/p&gt;
&lt;p&gt;What&apos;s the first thing that you should do?
Maybe you should brainstorm a compelling and memorable name. Then go register a domain name.
Hire a designer to create a logo.
Sketch some wireframes.
Hire a developer.
Build the app.&lt;/p&gt;
&lt;p&gt;These all sound like reasonable starting points. And they&apos;re all things thriving product businesses have done,
so it&apos;s natural you&apos;d follow this progression.&lt;/p&gt;
&lt;p&gt;But none of these activities involve the reason you&apos;re building your product in
the first place: &lt;em&gt;your customers&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;Your customers aren&apos;t going to come to you because of your name.
They&apos;re not going to pay you because you have a sweet logo.
And they don&apos;t care about your app.&lt;/p&gt;
&lt;p&gt;Your customers only care about one thing: That their life is
improved because your product is in their lives.&lt;/p&gt;
&lt;p&gt;It&apos;s fair to say then that your customers care about &lt;em&gt;outcomes&lt;/em&gt;. They care that,
after using your product, they feel better, have more money, or are otherwise
more satisfied than before using your product.&lt;/p&gt;
&lt;h3&gt;An outcomes-oriented approach&lt;/h3&gt;
&lt;p&gt;Instead of focusing on deliverables like mockups, technology, and a snazzy marketing page,
what if you focused on the outcomes your customers will experience? What if you
spent time answering questions like...&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Who am I serving?&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;What problem am I solving for them?&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;What makes me better than the competition?&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The answers to these questions &lt;em&gt;might&lt;/em&gt; involve technology or visual design, if
you decide those things are necessary to helping your customers solve their
problem. But they certainly aren&apos;t the core reason your customers want what
you&apos;ve got. You&apos;ve got to identify why they came to you in the first place. How
do they think? What annoys them? How can you alleviate their existential
suffering... or at least make their lives marginally easier?&lt;/p&gt;
&lt;p&gt;When you know who you&apos;re serving, you&apos;re able to learn from them about what
they want. And when you know the problem you&apos;re solving and how your solution is
unique, you won&apos;t dilute your message and scope.&lt;/p&gt;
&lt;p&gt;If you&apos;re actually solving someone&apos;s problem, they won&apos;t care if your branding
isn&apos;t perfect. They won&apos;t mind if your site looks terrible on mobile, so long as
&lt;em&gt;they&lt;/em&gt; don&apos;t need to use the site on mobile. And even if they do: As long as
they&apos;re getting value from your product, they&apos;ll be willing to wait.&lt;/p&gt;
&lt;p&gt;That&apos;s the essence of prototyping: Building a working version of a product
idea that provides real value to real human people, and putting everything else
off until after you&apos;ve done that.&lt;/p&gt;
&lt;p&gt;Your objective is to confirm or refute your product&apos;s value hypothesis
by conducting experiments which simulate aspects of your product idea—not to
hold off &quot;launching&quot; your product until a &quot;public release.&quot;&lt;/p&gt;
&lt;p&gt;That doesn&apos;t mean you won&apos;t eventually choose a marketable name. It doesn&apos;t mean you&apos;re
going to skimp on any aspect of your product for good. It just means you
recognize that the thing your product &lt;em&gt;must&lt;/em&gt; do in order to be viable is provide
someone somewhere with real value.&lt;/p&gt;
&lt;p&gt;If you&apos;re doing that, you have a successful
product. If you&apos;re not, you just have a bunch of code and images and text
chasing a fantasy.&lt;/p&gt;
&lt;h3&gt;The prototyping process&lt;/h3&gt;
&lt;p&gt;I&apos;ve spent my career leading the early stages of digital products.
Here&apos;s the process I use to reduce cost and encourage experimentation when
taking a new product to market:&lt;/p&gt;
&lt;h4&gt;1. Identify the problem you&apos;re solving, and for whom&lt;/h4&gt;
&lt;p&gt;Clearly define the problem your new product alleges to solve, and the specific
segment of the market who has the problem.&lt;/p&gt;
&lt;p&gt;My favorite exercise for defining your problem and target market is the
&lt;a href=&quot;http://www.smartbiz.com/article/view/156/1/4&quot;&gt;Fool-Proof Positioning Statement&lt;/a&gt; by Dan Janal:&lt;/p&gt;
&lt;blockquote&gt;&lt;/blockquote&gt;
&lt;p&gt;The Fool-Proof Positioning Statement is a two-sentence message that tells people&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;what your product is and how they will benefit. The second sentence tells people
why your product is different than others. Here&apos;s an example: David Letterman is
a talk show host who entertains
baby boomers so they can feel good before they go to bed. Unlike other talk show
hosts, he performs a Top Ten List.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;A positioning statement identifies the following elements:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Category of product&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Primary audience&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Primary benefits&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Competing products&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Primary difference or uniqueness&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Take for example, a positioning statement for &lt;a href=&quot;https://formbotapp.com&quot;&gt;Formbot&lt;/a&gt;,
my SaaS for sending webform submissions to Slack and email:&lt;/p&gt;
&lt;blockquote&gt;&lt;/blockquote&gt;
&lt;p&gt;Formbot is an online service that helps developers of static sites receive&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;feedback from their visitors without setting up a server. Unlike other form
services, Formbot connects to Slack.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;I had the idea for Formbot because I had a real and annoying problem: I love building
websites with &lt;a href=&quot;https://www.staticgen.com/&quot;&gt;static site generators&lt;/a&gt;, but I didn&apos;t
want to have to set up a server just to receive form feedback from my visitors.&lt;/p&gt;
&lt;p&gt;Once you&apos;ve identified your primary audience, identify real people within that
audience who have the problem you want to solve. Get their assurance that they
would gladly pay money to have the problem solved. Forge relationships with
them. Ask them how your competitors&apos; product could be better. Listen.&lt;/p&gt;
&lt;h4&gt;2. Identify desired outcomes from using your product&lt;/h4&gt;
&lt;p&gt;Now that you have a handle on the problem and the audience for whom you&apos;re solving it,
it&apos;s time to identify how you&apos;re going to solve their problem.&lt;/p&gt;
&lt;p&gt;Do your users want a fully-automated solution, or one with an interface that
affords more customizability?&lt;/p&gt;
&lt;p&gt;What are your audience&apos;s &lt;em&gt;success outcomes&lt;/em&gt;? If your audience gets nothing else
out of using your product, what is the one thing with which they need to leave
in order to continue using the product?&lt;/p&gt;
&lt;p&gt;Organize your product&apos;s hypothetical features into &lt;em&gt;user stories&lt;/em&gt;. These are a
special type of device for thinking about a product&apos;s features in terms of their
outcomes instead of their deliverables. Each well-written user story identifies a
persona, action, and outcome for a given software feature:&lt;/p&gt;
&lt;blockquote&gt;&lt;/blockquote&gt;
&lt;p&gt;As a Formbot user, I want to connect my Slack account so that I can receive&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;potential sales leads in Slack.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;As a...:&lt;/strong&gt; the persona who has a stake in using the product&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;I want to...:&lt;/strong&gt; the action they&apos;re going to perform to reach a desired
outcome&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;so that...:&lt;/strong&gt; the valuable outcome the product grants them&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Note that the &lt;em&gt;action&lt;/em&gt; for each user story needn&apos;t be explicit. You don&apos;t need
to explain that your user should press the &quot;Create Message&quot; button; just explain
that they&apos;re going to send a message and why that&apos;s important. For instance,
here&apos;s an example of a user story that&apos;s too bound to deliverables and has no
real business outcome:&lt;/p&gt;
&lt;blockquote&gt;&lt;/blockquote&gt;
&lt;p&gt;As a user, I want to click the &quot;Create Message&quot; button to open the Create&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Message dialog so that I can send a message to my clients.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Instead, focus on the outcome of the action as it relates to the user:&lt;/p&gt;
&lt;blockquote&gt;&lt;/blockquote&gt;
&lt;p&gt;As a user, I want to send a message to my clients so that I can follow up with&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;them and make more sales.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;In doing so, you decouple implementation from your outcomes. When you engage a
developer to build the first version of your product, you&apos;ll be measuring
success not by whether there&apos;s a button that reads &quot;Create Message&quot; (irrelevant
to your business), but by whether your users can effectively reach their clients
(relevant to your business).&lt;/p&gt;
&lt;h4&gt;3. Determine the most valuable feature of the solution&lt;/h4&gt;
&lt;p&gt;Of all the user stories you wrote, which one offers the most value to your
users? If you were stranded on a desert island and your developer could only
build one feature (yes this is a terrible analogy), which feature would you have
them build?&lt;/p&gt;
&lt;p&gt;Do your prospective users from step 1 feel the same way? Would they start using
your product if you could deliver them that one feature?&lt;/p&gt;
&lt;p&gt;Formbot started out as a single feature with hardly any user interface. It was
barebones, but it did one thing exceptionally well. So it attracted a small but
loyal userbase. As a result, I was able to capture user feedback and better
understand why users were satisfied and why they weren&apos;t. This informed further
development and further feedback collection.&lt;/p&gt;
&lt;p&gt;You might think you need features that most products have, like
email alerts or two-factor authentication. But when you force yourself to think in terms
of delivering value to real human people you are actually talking to right
now, you find ways to help them without a ton of expensive engineering work.&lt;/p&gt;
&lt;p&gt;Again: That&apos;s not to say email alerts and two-factor authentication aren&apos;t
valuable. They&apos;re both immensely valuable and you should build them. They
&lt;em&gt;might&lt;/em&gt; even be inseparable from your most valuable feature, and you might need
to build them in order to satisfy your users. But strive to build the least
product possible to deliver the most value. Usually that&apos;s less than you think.&lt;/p&gt;
&lt;h4&gt;4. Build and deliver that feature to your audience&lt;/h4&gt;
&lt;p&gt;Now that you know the featureset that will deliver the most value to your users,
it&apos;s time to build it.&lt;/p&gt;
&lt;p&gt;It&apos;s not time to create wireframes. Nor is it time to hire a designer. These are
both actions that result in deliverables, like wireframes and mockups. We&apos;re prototyping, so we don&apos;t want
deliverables. We want &lt;em&gt;outcomes&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;The first iteration of your product probably won&apos;t be pretty. But it&apos;ll solve a
real problem that your identified &lt;em&gt;real human users&lt;/em&gt; need solved. So it doesn&apos;t
need to be pretty. It needs to work. And for that, you need a developer.&lt;/p&gt;
&lt;p&gt;Developers are a dime a dozen. Most developers focus on deliverables. They build
the features you want built in the way you specify. They paint by numbers.&lt;/p&gt;
&lt;p&gt;What you want is a developer who focuses on outcomes. Remember the user stories
you wrote in step 2? You know how I told you to make sure they specify your
desired outcomes, as opposed to the path for getting there? You want to find a
developer who thinks like that. Someone who sees the road ahead of your business
and can steer your product accordingly.&lt;/p&gt;
&lt;p&gt;Instead of asking &lt;em&gt;how?&lt;/em&gt; like most developers, you want to find a developer who asks
&lt;em&gt;why?&lt;/em&gt; Instead of estimating how long it&apos;ll take to deliver &quot;your app,&quot; you want
to find a partner who can estimate how long it&apos;ll take to validate your
business.&lt;/p&gt;
&lt;p&gt;Here&apos;s a secret truth about software development no one wants you to know:
You&apos;re never done. Your product will always have bugs, unimplemented features,
or things you don&apos;t like. It&apos;s a fact of the business.&lt;/p&gt;
&lt;p&gt;Developers don&apos;t want you to know this because they
make their money on deliverables. For them to be done with a project is for all the
deliverables to be completed. But by this definition of completeness, no project
is ever finished.&lt;/p&gt;
&lt;p&gt;But you&apos;re not going to focus on deliverables. You&apos;re going to focus on
outcomes. You know that by focusing on deliverables, you can&apos;t clearly say
whether you&apos;ve achieved your desired outcome. Having a product with a gorgeous
user interface that doesn&apos;t have any users is a sure way to go broke.
But having a product with an ugly interface that helps 1,000 people achieve a
desired outcome means you&apos;ve proven your hypothesis. The gorgeous interface will
come later.&lt;/p&gt;
&lt;h4&gt;5. Assess the value delivered&lt;/h4&gt;
&lt;p&gt;You&apos;ve built your first feature. Your users are
now able to walk through one workflow from start to finish. It&apos;s not pretty, but it works.
Now it&apos;s time to see how your audience responds.&lt;/p&gt;
&lt;p&gt;Because of how little you&apos;ve actually built, you might feel ashamed to share
this with your audience. But ask yourself this: How would you feel if you made
it &quot;perfect&quot;, shared it with your audience, and discovered it didn&apos;t help them?&lt;/p&gt;
&lt;p&gt;And what about the best case scenario? What if your one feature helps your
audience in ways you didn&apos;t think it could? If that happens, then
congratulations! You&apos;ve validated your product idea. And you did it without
spending all your money on vanity deliverables like branding, visual design, and SEO marketing.&lt;/p&gt;
&lt;h4&gt;6. Refocus your efforts accordingly&lt;/h4&gt;
&lt;p&gt;If your first feature was a hit, then you&apos;re probably feeling encouraged and want to press on.
If your audience didn&apos;t respond the way you hoped, then you&apos;re
probably a bit discouraged and might feel like giving up.&lt;/p&gt;
&lt;p&gt;Whatever happened, you can rest assured that because you reduced your
deliverables to only those things that help you validate whether you can deliver your
users the outcomes they desire, 100% of your investment was in pursuit of
providing your users with a valuable experience.&lt;/p&gt;
&lt;p&gt;You didn&apos;t spend lavishly on a hip domain name.&lt;/p&gt;
&lt;p&gt;You didn&apos;t hire an expensive visual designer.&lt;/p&gt;
&lt;p&gt;And hopefully, your sunk cost is low enough that you have the emotional
wherewithal to be able to walk away unscathed.&lt;/p&gt;
&lt;p&gt;Or, you can choose to regroup and reposition your product. Because you didn&apos;t
lock yourself into a specific featureset with lavish marketing and polish, you
can conduct another experiment. You can continue this process indefinitely until
you find something that sticks.&lt;/p&gt;
&lt;p&gt;That&apos;s the beauty of prototyping. That&apos;s why I focus on outcomes. And that&apos;s how
to build a product people will actually use.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Read on: &lt;a href=&quot;/letters/how-is-prototyping-different&quot;&gt;How is prototyping different?&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
</content:encoded></item><item><title>How long will it take for you to deliver my MVP application?</title><link>https://www.teejayvanslyke.com/letters/how-long-will-it-take-to-deliver-an-mvp/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/how-long-will-it-take-to-deliver-an-mvp/</guid><pubDate>Mon, 29 May 2017 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Ah, the age-old question that eludes anyone who wants to build custom software:
&lt;em&gt;How long is this going to take and what will it cost me?&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;I&apos;ve been on the receiving end of this question numerous times. And until now,
I always butchered the answer. Because in order to properly assess cost when we&apos;re
building software, it&apos;s inadequate to assess the cost of building the software
you &lt;em&gt;think&lt;/em&gt; your business needs. Instead, a great consultant will analyze your
business&apos;s unique situation and recommend a path resulting in business outcomes that
don&apos;t strain your budget and get you to market faster.&lt;/p&gt;
&lt;p&gt;Ask yourself: What is the value you hope to deliver to
your users? Can you deliver a small part of that value with less effort than
you’re envisioning presently, and get it to market faster? Are you operating
with invalid assumptions about how your users will behave and what they&apos;ll
expect?&lt;/p&gt;
&lt;p&gt;Imagine you go to a software vendor and tell them &quot;I want to build a car!&quot; They
give you a specification for building a car and tell you it&apos;ll cost $50,000.
You cringe at the price, but go forward with it, because you need to build the
car.&lt;/p&gt;
&lt;p&gt;A great consultant will ask you why you want to build a car. &quot;Because I want to
get across town!&quot; you&apos;ll say. And then they&apos;ll ask you if a bicycle for $500
will get the job done.&lt;/p&gt;
&lt;p&gt;When vetting a consultant to take on your MVP project, it&apos;s critical to ensure they possess both the hard skills
required to build a working application and the experience to know when what
you’re asking them to build isn’t in your best interest.&lt;/p&gt;
&lt;p&gt;You&apos;re trying to find a consultant who will find the simplest solution to your
problem, as opposed to building what you tell them. Building the thing is the
easy part. The hard part is defining the thing to build that produces the
outcome you desire at the lowest cost.&lt;/p&gt;
&lt;p&gt;Rather than building a wireframe
specification and handing it to a developer to implement as you&apos;ve specified,
you&apos;d be better off to seek a consultant who can unpack your business, analyze
its core needs in the context of technology, and then deliver to you working
software week after week.&lt;/p&gt;
&lt;p&gt;If you&apos;re non-technical, you&apos;re probably not in a place to
understand the technical consequences of what you want to build. When
your ideas are placed under that scrutiny, you might change course because
there&apos;s a more expedient way you didn&apos;t see before.&lt;/p&gt;
</content:encoded></item><item><title>Are your rituals serving you?</title><link>https://www.teejayvanslyke.com/letters/are-your-rituals-serving-you/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/are-your-rituals-serving-you/</guid><pubDate>Fri, 05 May 2017 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;We knowledge workers love rituals. We&apos;re always seeking ways to reduce
friction, increase productivity, and increase visibility. There&apos;s
&lt;a href=&quot;https://en.wikipedia.org/wiki/Agile_software_development&quot;&gt;Agile&lt;/a&gt;,
&lt;a href=&quot;https://en.wikipedia.org/wiki/Extreme_programming&quot;&gt;XP&lt;/a&gt;,
&lt;a href=&quot;https://en.wikipedia.org/wiki/Kanban_(development)&quot;&gt;Kanban&lt;/a&gt;, Pair
Programming, and now even Mob
Programming. There&apos;s an entire
industry within an industry devoted to teaching others how to apply these
principles.&lt;/p&gt;
&lt;p&gt;Some teams hold a daily
standup. Most
hold some form of an iteration planning
meeting. And
some apply points-based
estimations
during their planning meetings.&lt;/p&gt;
&lt;p&gt;Both standups and estimation have value, depending on your team. If you
have a dedicated project manager who scopes the next sprint&apos;s work, they might benefit from
points-based estimations because they can measure how much progress to expect
next. And if you work on a team building a high-touch customer-oriented product, you might benefit from
a daily standup to keep your non-technical stakeholders in the loop.&lt;/p&gt;
&lt;p&gt;But I&apos;ve been on too many teams who did one or both of these rituals even
though they didn&apos;t provide any tangible value. And in many cases, the maturity of modern
network tools has rendered these rituals all but obsolete.&lt;/p&gt;
&lt;h4&gt;Are your daily standups redundant?&lt;/h4&gt;
&lt;p&gt;Before the likes of GitHub pull requests, it was difficult to, at a glance, see
what your teammates were spending their time on. If they had a question, the
daily standup served as a space for making inquiries without feeling like you
were interrupting their day.&lt;/p&gt;
&lt;p&gt;But now that GitHub pull requests enable a one-click view of ongoing efforts by
your team and a vehicle through which questions can be asked and answered on
our own time, the daily standup is a relic of a less connected past.&lt;/p&gt;
&lt;p&gt;And even if you do commit to a daily standup, does it necessarily need to be a
synchronous meeting where everyone is present at the same time? I&apos;ve worked on a
team with a &lt;em&gt;#standup&lt;/em&gt; Slack channel. We each post our daily standup in the
room. Everyone can read up on what the rest of the team is doing that day and
whether they&apos;re blocked. And no one has to interrupt their workflow to do it.&lt;/p&gt;
&lt;p&gt;Ask yourself: Do you get much or any value from your standup, or
is it just another mindless ritual?&lt;/p&gt;
&lt;h4&gt;Are your estimations meaningless?&lt;/h4&gt;
&lt;p&gt;Stakeholders want to know how much their software is going to cost. This is
a reality with which every software developer must contend. But another reality
is that software estimation is a losing
game.&lt;/p&gt;
&lt;p&gt;We can try, to the best of our ability, to assess a software problem and
estimate how long it will take to come up with a solution. Armed with an
understanding of a fixed software problem, estimating the time to build
a solution is actually relatively easy. But software problems are rarely
&lt;em&gt;understood correctly&lt;/em&gt; ahead of time, and are rarely ever &lt;em&gt;fixed&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;Most software problems are complex enough that they require further inquiry
&lt;em&gt;after&lt;/em&gt; beginning development. There might be a variable we didn&apos;t consider
during estimation. We might have misunderstood the original problem and gotten
that feedback from the customer halfway into development. When was the last
time you developed a piece of software without asking for clarification from
your customer in the midst of development?&lt;/p&gt;
&lt;p&gt;And even if you&apos;re fortunate enough to understand a problem thoroughly enough
to implement it to the customer&apos;s desires the first time, there&apos;s a good chance
they&apos;ll change their mind about it in the middle of development. Maybe they
think of a better way. Or maybe business conditions have changed and it makes
more sense to do things differently. Whatever the reason, requirements change.
And when requirements change, you can kiss your original estimate&apos;s accuracy
goodbye.&lt;/p&gt;
&lt;h4&gt;Okay, then what do we do instead?&lt;/h4&gt;
&lt;p&gt;Estimation and daily standups attempt to solve a real problem: Making sure
everyone involved in your project is held accountable and are aware of the
changing conditions of your project.&lt;/p&gt;
&lt;p&gt;If your team reports that they find value in these activities, then keep doing
them.&lt;/p&gt;
&lt;p&gt;But if you really consider the opportunity cost of continuing to live by these
rituals, you might find their cost outweighs their benefit.&lt;/p&gt;
&lt;p&gt;Does interrupting everyone&apos;s flow during ongoing high-value development work to
hold a daily standup have a net benefit to your team&apos;s productivity and
happiness? Or would the team be better informed by committing to reviewing open
pull requests and tickets once per day on their own time?&lt;/p&gt;
&lt;p&gt;Are your estimations providing your product owner with valuable insight into
what progress they should expect in the coming months, or are your estimates so
skewed from reality that they&apos;re meaningless?&lt;/p&gt;
&lt;p&gt;Do you own your rituals, or do your rituals own you?&lt;/p&gt;
</content:encoded></item><item><title>Only build the bare minimum</title><link>https://www.teejayvanslyke.com/letters/only-build-the-bare-minimum/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/only-build-the-bare-minimum/</guid><pubDate>Fri, 28 Apr 2017 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Founders ought to be a bit less ambitious.&lt;/p&gt;
&lt;p&gt;When you bring software to the marketplace, you&apos;re competing for attention in
a cruel world. Where you focus your resources matters immensely. Because
complexity in software is
a multipler, new features built
today will cost time, effort and money tomorrow.&lt;/p&gt;
&lt;p&gt;That&apos;s why it&apos;s critical to &lt;em&gt;build the tiniest product you can first&lt;/em&gt;. The
sooner your application is humming along in a real person&apos;s hands, the sooner
they&apos;re going to tell you all the reasons they love or hate it.&lt;/p&gt;
&lt;p&gt;Feedback from real users as early as possible is the most valuable asset to your
team. When the only user feedback comes from an insulated CEO or
project manager, it&apos;s likely the feedback received, while well-meaning, is going
to be at least a few degrees away from the needs of your users.&lt;/p&gt;
</content:encoded></item><item><title>Complexity is a multiplier</title><link>https://www.teejayvanslyke.com/letters/complexity-in-software-is-a-multiplier/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/complexity-in-software-is-a-multiplier/</guid><pubDate>Thu, 27 Apr 2017 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;If there were one sort of interaction I wish I could take back from all my time
as a software consultant, it would be every time I nodded my head at a client
when they asked me to add &lt;em&gt;one more feature&lt;/em&gt;, knowing full well that its
addition would be costly and that the client should place their assumptions
about its benefit under more scrutiny.&lt;/p&gt;
&lt;p&gt;Considering my title of &lt;em&gt;Digital Product Consultant&lt;/em&gt;, you&apos;d think I was up to
the task. But a point I think deserves being driven home is how we consultants
are paid to increase revenue and decrease cost, even though sometimes we act as
though we&apos;re paid to follow directions.&lt;/p&gt;
&lt;p&gt;The fact is, someone who pays money for custom software isn&apos;t necessarily going
to be aware of the ongoing costs of maintaining a specific software feature.
And these costs, depending on the architecture of a given system and its
dependencies, can balloon exponentially. That&apos;s because added complexity to
a software product &lt;em&gt;multiplies&lt;/em&gt; cost.&lt;/p&gt;
&lt;p&gt;When your application has a single button that, when pressed, shows
a predetermined text string on-screen, you&apos;ve built a simple program. When you
make the button show a bit of randomly selected text from a list when pressed,
you&apos;ve built a slightly more complex program.&lt;/p&gt;
&lt;p&gt;With each new feature we add to a software program, the resulting complexity
increases. It&apos;s easy to assume the increase in complexity (and therefore, the
inversely correlated decrease in ease of understanding) is a linear progression.
But each feature actually increases complexity exponentially.&lt;/p&gt;
&lt;p&gt;This means that for each new feature, it&apos;s likely you&apos;re going to multiply—not
add to—the overall cost of maintaining your software.&lt;/p&gt;
&lt;p&gt;Therefore, it&apos;s prudent to consider the long-term ramifications of
implementing a feature. The real cost center is not in its implementation,
but in its continued support. How does the new feature play with existing
ones? What happens if we later want to remove it? How will our users
react?&lt;/p&gt;
&lt;p&gt;What are some ways consultants can help their clients better understand
the ramifications new features could have on their ongoing maintenance
costs? And what are some ways you can protect yourself if you&apos;ve hired
a consultant but are unsure whether you next feature request will balloon
into a Great Expensive Ball of Doom?&lt;/p&gt;
&lt;h3&gt;Is it additive or foundational?&lt;/h3&gt;
&lt;p&gt;Does the new feature sit beside or on top of other features in a way that
doesn&apos;t stand to negatively impact other parts of the application? Is the
feature &lt;em&gt;orthogonal&lt;/em&gt;, meaning it neither creates nor propagates side
effects to other parts of your application? If so, the chances are lower
that implementing and shipping the feature will result in regressions or
service outages. This is what I call an &lt;em&gt;additive&lt;/em&gt; feature.&lt;/p&gt;
&lt;p&gt;But if your feature involves widespread changes to fundamental components
of your application that are in production, mission-critical, and costly
should they malfunction, then you&apos;re implementing a &lt;em&gt;fundamental&lt;/em&gt; feature.
In this case, you ought to spend more time analyizing the costs and
benefits of building it.&lt;/p&gt;
&lt;h3&gt;Performing a cost benefit analysis&lt;/h3&gt;
&lt;p&gt;If you&apos;ve identified that your new feature will likely have an impact on
existing mission-critical infrastructure, you&apos;ll want to do a bit of
analysis before you give the thumbs-up to have it built.&lt;/p&gt;
&lt;p&gt;List the potential externalities that could arise when shipping the new
feature. Could it disrupt orders from being processed? Is there a chance
that users won&apos;t be able to sign in for a brief period of maintenance
time? Will you need to perform an intensive migration on your database
that could cause downtime and/or integrity concerns?&lt;/p&gt;
&lt;p&gt;List each of these and attempt to quantify the best and worst case
scenario you can imagine, in terms of the costs to the business.&lt;/p&gt;
&lt;p&gt;For instance, if you think there&apos;s a chance you could see some downtime to
your sales pipeline for 10 minutes up to 1 hour, and on a typical day you
see $24,000 in sales, you stand to lose up to $1,000 in sales as a result
of implementing the feature. You&apos;ll also want to account for the
opportunity cost associated with the hours (or days) your team spends
resolving the regression.&lt;/p&gt;
&lt;p&gt;In addition to the lost dollar value, you should also consider intangible
costs like costs to your brand&apos;s value, customer perception, and team
morale. While these costs are not necessarily measurable, they have
a profound effect on your business over time.&lt;/p&gt;
&lt;p&gt;When you spend the extra time coming to terms with the potential
externalities of implementing a new feature, you&apos;ll increase the
reliability of your product and reduce stress resulting from outages.
While new features stand to make your product more valuable and stand out
among your competition, carefully considering how they will affect your
existing featureset can save you time, money, and headaches.&lt;/p&gt;
</content:encoded></item><item><title>The real formula for marketing success</title><link>https://www.teejayvanslyke.com/letters/the-real-formula-for-marketing-success/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/the-real-formula-for-marketing-success/</guid><pubDate>Wed, 26 Apr 2017 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;We read books that purport to uncover the techiques that will propel us to
greatness. Some say how to get more followers on social media. Others say to
quit social media entirely. Some advocate sending emails to influencers. Others
say you should speak to an existing audience instead of trying to create your
own.&lt;/p&gt;
&lt;p&gt;But really, all of the so-called gurus want the same thing you do. They want
success. They want a following. They want admiration. They want business.&lt;/p&gt;
&lt;p&gt;There&apos;s nothing wrong with following the advice of marketing gurus. But in my
experience, success in the marketplace comes down to one factor: Whether or not
you add value to someone else&apos;s life.&lt;/p&gt;
&lt;p&gt;Every single time I&apos;ve found success in my career, it had little or
nothing to do with my Twitter feed, drip marketing campaigns, or my email
subscribers. These are all amazing tools when used properly. But at the
end of the day, publishing clickbait articles with little substance or
value is a waste of your time and the time of your fellow Internet
citizens.&lt;/p&gt;
&lt;p&gt;I think that instead of spending our time hacking human attention, we
ought to be asking ourselves what we can do to truly help and engage
others. It&apos;s the more difficult path, for sure. But I think it&apos;s the only
one which ultimately results in lasting, fruitful business relationships.&lt;/p&gt;
</content:encoded></item><item><title>How to befriend uncertainty</title><link>https://www.teejayvanslyke.com/letters/how-to-befriend-uncertainty/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/how-to-befriend-uncertainty/</guid><pubDate>Tue, 25 Apr 2017 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Yesterday I found out my biggest client will no longer need my services in a
couple months.&lt;/p&gt;
&lt;p&gt;The last 24 hours have been a bit of a whirlwind of emotions. Part of me is
excited. Another part is scared. I have other sources of income and a
savings. But I&apos;m still unsure of what I&apos;ll be doing in three months&apos; time.&lt;/p&gt;
&lt;p&gt;The funny thing is, I&apos;ve wanted to go off on my own for some time now. I&apos;ve
been frustrated with the monotony of working on one project for years at
a time. But now that I&apos;m faced with it, I&apos;m scared and uncomfortable. Why is it
that we&apos;re so comfortable being unhappy?&lt;/p&gt;
&lt;p&gt;Most of us are constantly chasing certainty. We work jobs we may not enjoy so
we&apos;re certain we&apos;ll have food to eat when we get home. We buy health insurance
so we&apos;re certain we&apos;ll be cared for when we&apos;re ill. And we invest for the
future so we&apos;re certain we won&apos;t be out in the cold during old age.&lt;/p&gt;
&lt;p&gt;But what is certainty, really? You can&apos;t see it. You can&apos;t reach out and touch
it. Maintaining certainty about tomorrow feels good today, but tomorrow it&apos;s
gone, leaving us hoping for certainty the next day.&lt;/p&gt;
&lt;p&gt;And in the face of complete certainty, we&apos;re miserable. We become bored. To
know that each day will be the same as the last is the definition of a boring
existence.&lt;/p&gt;
&lt;p&gt;But there&apos;s another way. Instead of seeking certainty day to day, we can
befriend uncertainty. We can invite it to sit in our corner with us and share
its perspective. After all, just think of the things that wouldn&apos;t be possible
if we had perfect certainty:&lt;/p&gt;
&lt;h3&gt;Adventure&lt;/h3&gt;
&lt;p&gt;When we embark on an adventure—whether it&apos;s down the street to the cafe to
write or to another country for a month of backpacking—the allure of doing it
is that we don&apos;t know exactly what will happen. We might have a plan or
itinerary, but our reason for adventuring is to see the unseen and to take
a chance on something new.&lt;/p&gt;
&lt;p&gt;Framing each uncertain moment as an adventure can help to ease the struggle of
seeking certainty in an uncertain situation. And too, it can help grant meaning
to ordinary everyday activities which may have seemed monotonous when framed as
such.&lt;/p&gt;
&lt;h3&gt;Love&lt;/h3&gt;
&lt;p&gt;In love, we&apos;re entering into the most profound uncertainty. We commit our
hearts and minds and energy to one person. Expecting nothing in return and
knowing it will end in heartbreak or death, we proceed to give ourselves to
another person.&lt;/p&gt;
&lt;p&gt;No one ever entered into a romantic relationship knowing how it would turn out.&lt;/p&gt;
&lt;h3&gt;Passion&lt;/h3&gt;
&lt;p&gt;I&apos;m not sure there was ever once a passionate artist, businessperson,
politician, or writer who knew for certain at the start of their endeavor that
their efforts would be meaningful and worthwhile in the end.&lt;/p&gt;
&lt;p&gt;The reason people do great things is &lt;em&gt;because&lt;/em&gt; of this uncertainty—not in spite
of it. We are drawn to the idea that we might achieve what others think to be
impossible.&lt;/p&gt;
</content:encoded></item><item><title>Learning Elm</title><link>https://www.teejayvanslyke.com/letters/learning-elm/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/learning-elm/</guid><pubDate>Tue, 25 Apr 2017 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Elm is &quot;a delightful language for reliable webapps.&quot;— or so its
&lt;a href=&quot;http://elm-lang.org/&quot;&gt;homepage&lt;/a&gt; says.
Today, I&apos;m going to dive in head-first to find out what all the fuss is about.&lt;/p&gt;
&lt;p&gt;For those of you unacquainted, here are some of Elm&apos;s purported features,
straight from its homepage:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Compiles to JavaScript: The language targets JavaScript specifically&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;No runtime exceptions: Instead of producing runtime exceptions, Elm uses type
inference to detect problems during compilation.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Great performance: Like React, Elm uses a virtual DOM designed for simplicity
and speed.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Sounds cool. Let&apos;s fire it up then, shall we?&lt;/p&gt;
&lt;h3&gt;Installing Elm&lt;/h3&gt;
&lt;p&gt;If you&apos;re on a Mac like I am, Elm has a Mac installer available
here. The current stable version is
0.18. The &apos;0&apos; at the beginning doesn&apos;t give me much confidence in using Elm in production,
but if Pivotal is doing
it then maybe it&apos;s
worth a try?&lt;/p&gt;
&lt;p&gt;After completing, the installer tells us:&lt;/p&gt;
&lt;blockquote&gt;&lt;/blockquote&gt;
&lt;p&gt;A bunch of useful programs were just placed in /usr/local/bin/&lt;/p&gt;
&lt;h3&gt;Installing the Vim plugin&lt;/h3&gt;
&lt;p&gt;Since I use Vim, I&apos;m going to go ahead and install the
&lt;a href=&quot;https://github.com/lambdatoast/elm.vim&quot;&gt;elm.vim&lt;/a&gt; plugin:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;  $ cd ~/.vim/bundle
  $ git clone https://github.com/lambdatoast/elm.vim.git

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Easy enough.&lt;/p&gt;
&lt;h3&gt;Hello World&lt;/h3&gt;
&lt;p&gt;When learning a new language, there are two benchmarks of expertise: Hello World
and Todo.&lt;/p&gt;
&lt;p&gt;Elm appears to be no exception. Let&apos;s follow this Hello World
tutorial on the
&lt;a href=&quot;https://www.elm-tutorial.org&quot;&gt;elm-tutorial.org&lt;/a&gt; site.&lt;/p&gt;
&lt;h4&gt;Create a project folder&lt;/h4&gt;
&lt;p&gt;First we create a new folder for our Hello World application. I called mine
&lt;code&gt;hello-elm&lt;/code&gt;:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;  $ mkdir hello-elm

&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;Install packages&lt;/h4&gt;
&lt;p&gt;It looks like first we need to install the package &lt;code&gt;elm-lang/html&lt;/code&gt;. Why that&apos;s
not installed by default I&apos;m hopeful will be revealed later on...&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;  $ elm package install elm-lang/html
  Some new packages are needed. Here is the upgrade plan.

    Install:
        elm-lang/core 5.1.1
        elm-lang/html 2.0.0
        elm-lang/virtual-dom 2.0.4

 Do you approve of this plan? [Y/n]

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Ooh, do I &lt;em&gt;approve&lt;/em&gt;? I feel like a boss. Yeah, I approve.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Starting downloads...

  ● elm-lang/virtual-dom 2.0.4
  ● elm-lang/html 2.0.0
  ● elm-lang/core 5.1.1

Packages configured successfully!

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;First impressions of package management: Elm is pretty freaking mature for a
0.18 release! Would be nice to see NPM/Yarn-style progress bars, but so far this
feels solid.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;elm package install&lt;/code&gt; command seems to have created the following stuff in
the directory:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;elm-package.json
elm-stuff

&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;Write some code&lt;/h4&gt;
&lt;p&gt;Okay, now we&apos;re going to create our first Elm module. Exciting. Here&apos;s mine:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;module Hello exposing (..)

import Html exposing (text)

main =
    text &quot;Hello&quot;

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;I put that in &lt;code&gt;Hello.elm&lt;/code&gt;. Right now it&apos;s not clear to me whether that should be
in the &lt;code&gt;elm-stuff&lt;/code&gt; directory or in the root directory. I put it in the root.&lt;/p&gt;
&lt;p&gt;Now we run &lt;code&gt;elm reactor&lt;/code&gt;:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;  $ elm reactor

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Interesting. So it looks like Elm has a sort of &quot;dashboard&quot; view of your files,
packages, and dependencies. Clicking on our &lt;code&gt;Hello.elm&lt;/code&gt; file takes us to our
application, which at this point is just the text &quot;Hello&quot; in the top-left corner
of the page.&lt;/p&gt;
&lt;p&gt;Some thoughts about what I&apos;ve seen so far:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;There&apos;s a module named &lt;em&gt;Html&lt;/em&gt;.&lt;/strong&gt; The fact that Elm treats the DOM as a
first-class concept as opposed to relying on class-like abstractions as in
standard JavaScript is a welcome change as we move toward functional UI
paradigms.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;The compile time for a Hello World application seemed awfully long.&lt;/strong&gt; I&apos;m
not sure if it was just a fluke on my machine, but it took 2-3 seconds before
my app loaded. I could understand if we had a complex application, but this
is Hello World...&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Okay, let&apos;s keep going...&lt;/p&gt;
&lt;h3&gt;Rendering complex markup&lt;/h3&gt;
&lt;p&gt;So far, it looks like we can render text using the &lt;code&gt;text&lt;/code&gt; function. I&apos;m digging
around in the documentation and found an examples
page. I poked around a few of these until I found
an example of rendering an unordered
list.&lt;/p&gt;
&lt;p&gt;It looks like Elm&apos;s composition syntax is Lisp-ish, but not Lisp:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;import Html exposing (li, text, ul)
import Html.Attributes exposing (class)

main =
  ul [class &quot;carbonated-beverages&quot;]
    [ li [] [text &quot;La Croix&quot;]
    , li [] [text &quot;Zevia&quot;]
    , li [] [text &quot;Pepsi&quot;]
    ]

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Some observations here:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Because Elm is functional, even attributes need be imported.&lt;/strong&gt; Whereas in
ES6, we need only import a module in order to gain access to all its getters
and setters, Elm requires explicitly importing things like &lt;code&gt;class&lt;/code&gt; in order
to use them.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;It is a welcome change to see a main function that returns a DOM tree.&lt;/strong&gt; In
React, there&apos;s a bunch of boilerplate to attach a component to the DOM. In
Elm, all of that boilerplate is baked into the language.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;The slow compile time appears to have been a fluke.&lt;/strong&gt; This new example
compiled almost instantly.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;A word about Elm&apos;s architecture&lt;/h3&gt;
&lt;p&gt;It looks like Elm has its own application architecture that it lovingly calls
the ... &lt;a href=&quot;https://guide.elm-lang.org/architecture/&quot;&gt;Elm Architecture&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;It consists of:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Model&lt;/strong&gt;: the state of the application&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Update&lt;/strong&gt;: a way to update the state of the application&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;View&lt;/strong&gt;: the resulting view of your state as HTML (or XML, or SVG)&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;From what I can tell, these roughly correspond to React/Redux concepts thusly:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Elm&apos;s Model layer is equivalent to Redux&apos;s store&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Elm&apos;s Update layer is equivalent to Redux&apos;s actions&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Elm&apos;s View layer is equivalent to React itself&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;These analogies are made even more convincing when you consider the fact every
value in Elm is
immutable,
just like Redux when used with
&lt;a href=&quot;https://facebook.github.io/immutable-js/&quot;&gt;Immutable.js&lt;/a&gt;, and that the Elm
Architecture makes use of the one-way data flow
paradigm made famous by
Facebook&apos;s &lt;a href=&quot;https://facebook.github.io/flux/&quot;&gt;Flux&lt;/a&gt;.&lt;/p&gt;
&lt;h3&gt;Responding to user input&lt;/h3&gt;
&lt;p&gt;Okay, so we&apos;ve produced a Hello World example and then rendered some slightly
more complex markup. That&apos;s fine, but how does Elm deal with user input? Let&apos;s
try creating an example where clicking a button renders the text &quot;Hello Elm&quot;
below the button.&lt;/p&gt;
&lt;p&gt;According to Lucas Reis&apos;s
blog, Elm supplies a
function &lt;code&gt;Html.App.program&lt;/code&gt; which automatically routes an application for the
Elm Architecture:&lt;/p&gt;
&lt;blockquote&gt;&lt;/blockquote&gt;
&lt;p&gt;Elm apps use a centralized state pattern, which I&apos;ve written about in this blog.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;It&apos;s a simple &quot;loop&quot; described as such:&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;&lt;/blockquote&gt;
&lt;p&gt;Model &amp;gt; View &amp;gt; Update &amp;gt; Model &amp;gt; View &amp;gt; ...&lt;/p&gt;
&lt;blockquote&gt;&lt;/blockquote&gt;
&lt;p&gt;First you describe a model of your app. It is the skeleton, the data you need to&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;render the application.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;&lt;/blockquote&gt;
&lt;p&gt;The view is then a function of the model. It takes the data and renders it.&lt;/p&gt;
&lt;blockquote&gt;&lt;/blockquote&gt;
&lt;p&gt;After rendering, the application &quot;waits&quot; for user interaction or any other&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;event. When that happens, it triggers the update function. The update function
is a function that receives the old model and data of the event, and returns a
new model. This model is then rendered, and the loop continues.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Evidently, there&apos;s a simpler version of this function supplied with Elm called
&lt;code&gt;beginnerProgram&lt;/code&gt;. I couldn&apos;t find a decent explanation anywhere for what this
function does that the regular &lt;code&gt;program&lt;/code&gt; doesn&apos;t (or vice versa). If you know,
please leave a comment!&lt;/p&gt;
&lt;p&gt;Here&apos;s the full text of the user input example I just created:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;import Html exposing (Html, button, div, text, p)
import Html.Events exposing (onClick)

type alias Model =
    String

model : Model
model = &quot;&quot;

type Msg = ShowGreeting

update : Msg -&amp;gt; Model -&amp;gt; Model
update msg model =
    case msg of
        ShowGreeting -&amp;gt;
            &quot;Hello Elm&quot;

view : Model -&amp;gt; Html Msg
view model =
    div [ ]
        [ button
            [ onClick ShowGreeting ]
            [ text &quot;Click Me&quot; ]
        , p [ ] [ text model ]
        ]

main =
    Html.beginnerProgram
        { model = model
        , view = view
        , update = update
        }

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Let&apos;s walk through this line by line together.&lt;/p&gt;
&lt;p&gt;First, we import some HTML functions we&apos;ll use to render our markup and listen
to the button for clicks:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;import Html exposing (Html, button, div, text, p)
import Html.Events exposing (onClick)

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Then we&apos;ll create a new type called &lt;code&gt;Model&lt;/code&gt; which is an alias for a string:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;type alias Model =
    String

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Next, we&apos;ll create an instance of the &lt;code&gt;Model&lt;/code&gt; type called &lt;code&gt;model&lt;/code&gt; and initialize
it to an empty string literal:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;model : Model
model = &quot;&quot;

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Then, we&apos;ll set up our &lt;code&gt;update&lt;/code&gt; function. This confused me at first, so maybe my
explanation will help you if you come from the Redux universe.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;update&lt;/code&gt; function in Elm works essentially like reducers in Redux. It takes
a message (an action in Redux-speak) and the model (the state in Redux-speak)
and returns a newly mutated model.&lt;/p&gt;
&lt;p&gt;Except Elm is much more suited to this paradigm for the following reasons:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Elm&apos;s &lt;a href=&quot;https://guide.elm-lang.org/types/union_types.html&quot;&gt;union types&lt;/a&gt; make
the usage of symbolic enumerations like user actions checkable at
compile time instead of relying on runtime checks.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Because Elm data is always immutable, state reduction doesn&apos;t require clunky
external libraries like Immutable.js.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;So our &lt;code&gt;update&lt;/code&gt; function takes a &lt;code&gt;msg&lt;/code&gt; (in this case, only the value
&lt;code&gt;ShowGreeting&lt;/code&gt;), and returns a new model state based on whatever &lt;code&gt;msg&lt;/code&gt; it
received:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;type Msg = ShowGreeting

update : Msg -&amp;gt; Model -&amp;gt; Model
update msg model =
    case msg of
        ShowGreeting -&amp;gt;
            &quot;Hello Elm&quot;

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Okay, now that we&apos;ve defined how our model will change in response to user
actions, let&apos;s define the view. Again, Elm comes to the rescue by allowing us to
pass the model directly into the view function. No complex binding a la Redux
containers!&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;view : Model -&amp;gt; Html Msg
view model =
    div [ ]
        [ button
            [ onClick ShowGreeting ]
            [ text &quot;Click Me&quot; ]
        , p [ ] [ text model ]
        ]

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Notice how we&apos;re passing &lt;code&gt;model&lt;/code&gt; to the &lt;code&gt;text&lt;/code&gt; function inside the &lt;code&gt;p&lt;/code&gt; tag. When
we boot the application, the model&apos;s value will be an empty string, but as soon
as we click the button, we fire the &lt;code&gt;ShowGreeting&lt;/code&gt; message and the model changes
to the string &lt;code&gt;&quot;Hello Elm&quot;&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Finally, we glue everything together via the &lt;code&gt;beginnerProgram&lt;/code&gt; function:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;main =
    Html.beginnerProgram
        { model = model
        , view = view
        , update = update
        }

&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;My impressions&lt;/h3&gt;
&lt;p&gt;All in all, I was pretty impressed with Elm after playing with it for an hour or
so. While it&apos;s clear the framework has a ways to go in terms of documentation
and external library support, its philosophy removes a lot of the boilerplate
that plagues modern JavaScript tooling. In addition, it takes concepts like
immutability, functional programming, one-way data flow, and type safety which are must-haves in
today&apos;s JavaScript development world, and makes them first-class members of the language.&lt;/p&gt;
&lt;p&gt;Would I use Elm in a production project yet? I&apos;m not sure if I&apos;d subject my
clients&apos; businesses to that risk &lt;em&gt;just&lt;/em&gt; yet. While it&apos;s impressive, the idea of
relying on a small community for support on complex topics like JavaScript
interoperability would make me a bit cautious. But I&apos;ll definitely consider Elm
the next time I build a personal project.&lt;/p&gt;
</content:encoded></item><item><title>The vicious circle</title><link>https://www.teejayvanslyke.com/letters/the-vicious-circle/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/the-vicious-circle/</guid><pubDate>Mon, 24 Apr 2017 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;In modern life we&apos;re caught in a vicious circle.&lt;/p&gt;
&lt;p&gt;We work long hours at jobs we don&apos;t really like because we believe it will
result in a better future. Our days are spent in pursuit of a tomorrow that will be oh-so-bright if we just
keep our heads down and keep working for it. But then, when tomorrow finally
comes, we&apos;re befuddled at how inadequate the present suddenly feels. And so we
seek yet again for a brighter future, working more and more, until the day we
die.&lt;/p&gt;
&lt;p&gt;And most of the time, the bright future we&apos;re after isn&apos;t one where our basic
needs are met so that we may pursue some higher artistic calling. No, our
hypothetical future has shiny cars and gadgets and a big house and daycare and
expensive cocktails and luxurious clothing. It&apos;s one where we don&apos;t have to
deal with life&apos;s tedium and we can come and go as we please. It&apos;s a future
where all our problems are solved and we can finally start living.&lt;/p&gt;
&lt;p&gt;It&apos;s a future that will never come. It will never come because it cannot exist.&lt;/p&gt;
&lt;p&gt;It cannot exist because even when all of life&apos;s tedium has been eradicated,
more tedium emerges: the tedium of boredom.&lt;/p&gt;
&lt;p&gt;Left with nothing to push up against, we create new problems. We continue the
habit of looking outward for our gratification. And so, we suffer once more.&lt;/p&gt;
&lt;p&gt;It&apos;s tempting, but futile to seek a hypothetical future with no problems.
Because the nature of a life without problems is problematic itself.&lt;/p&gt;
&lt;p&gt;Instead, we might strive to accept life&apos;s problems without judgment. To take
each passing moment as a blessing, because this moment is the only thing we
really have anyway.&lt;/p&gt;
</content:encoded></item><item><title>The minimalist day planner</title><link>https://www.teejayvanslyke.com/letters/minimalist-day-planner/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/minimalist-day-planner/</guid><pubDate>Thu, 20 Apr 2017 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;img src=&quot;/assets/images/1280x1280/day-planner-photo-b9a33394.jpg&quot; alt=&quot;My Minimalist Day Planner&quot; /&gt;&lt;/p&gt;
&lt;p&gt;A few months ago, my partner introduced me to the Day
Designer. I used their print-at-home version for
a few days in an attempt to add some sanity to my busy days.&lt;/p&gt;
&lt;p&gt;But I was finding they weren&apos;t quite what I was looking for.
I wanted my day planner to help codify two habits into my day:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Gratitude journaling:&lt;/strong&gt; The Five Minute
Journal
from Intelligent Change is all about enriching your day-to-day experience by
prompting you to think of what you&apos;re grateful for each day.
I really appreciated this idea, but wanted to integrate it into my daily
planning routine so it would be more or less automatic. So I decided to ask
myself each day three things I&apos;m grateful for.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Pomodoro technique:&lt;/strong&gt; I use the Pomodoro
Technique religiously
when I&apos;m working. Not only does it improve my focus by encouraging me to
stay on task for short bursts, but it also helps me frame my tasks into
more tangible 25-minute blocks as opposed to the vague notion of minutes and
hours. To help track my time, I added two tomato-shaped checkboxes for each
hour of my day planner to track 2 25-minute pomodoros and 2 5-minute
breaks.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&quot;/assets/images/1280x1280/day-planner-b60f1e2c.png&quot; alt=&quot;My Minimalist Day Planner&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;../../../downloads/MinimalistDayPlanner.pdf&quot;&gt;Download the Minimalist Day Planner (PDF)&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
</content:encoded></item><item><title>The freedom of less</title><link>https://www.teejayvanslyke.com/letters/the-freedom-of-less/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/the-freedom-of-less/</guid><pubDate>Tue, 18 Apr 2017 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;img src=&quot;/assets/images/1280x1280/the-freedom-of-less-88bc61dd.jpg&quot; alt=&quot;Less&quot; /&gt;&lt;/p&gt;
&lt;p&gt;For the past two years I&apos;ve been devoted to the pursuit of less and fewer: Less
debt. Less stuff. Fewer commitments. Less driving. Fewer expenses. Less social
media. Less drinking.&lt;/p&gt;
&lt;p&gt;And suddenly I&apos;m finding myself with more: More money. More attention. More
time. More meaning. More fitness. More &lt;em&gt;freedom&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;It hasn&apos;t been an easy journey, but it has been a simple one. There are just two
principles that have driven me here:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Spend less than you earn.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Strive to be happy with what you have.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Debt&lt;/h3&gt;
&lt;p&gt;Rewind back to late 2014. I had just moved to Seattle with my girlfriend at the
time and was living the yuppie dream. We had an apartment with a sweet view and
we went out drinking a few nights each week. I didn&apos;t spend beyond my means,
but I generally spent the money I earned each month. I&apos;d buy new computer
equipment, recording equipment, or clothes. And what I didn&apos;t spend went toward
servicing my student loans. Our monthly rent was $2,275/mo, which was pretty
standard for our neighborhood.&lt;/p&gt;
&lt;p&gt;Then something hit me. I realized I&apos;d been holding my student debt for almost
a decade. There was haunting symbolism in that. Each month I made a $400
payment to Sallie Mae. It felt normal—as if that was the way things were and
that I&apos;d be paying the loans for another decade. My balance at the time was
somewhere around $30,000. The amount was a far cry from the student loan horror
stories you hear from graduates nowadays, but it still made me nauseous
to think about paying them off.&lt;/p&gt;
&lt;p&gt;I decided enough was enough. It was time to rid myself of debt once and for
all. I tallied my monthly expenses. I began eliminating all non-essential
spending. I told my friends I could only go out one night per week. I took on
more client work to help pay down the balance. And before long I paid them
down.&lt;/p&gt;
&lt;p&gt;Freedom.&lt;/p&gt;
&lt;p&gt;It&apos;s hard to describe the feeling of being free of the shackles of debt after
having known it for so long. I felt like I could breathe again. I knew the
money I earned was now mine to keep. I knew I was in control of my time for the
first time since before college.&lt;/p&gt;
&lt;p&gt;Or was I?&lt;/p&gt;
&lt;h3&gt;Lifestyle&lt;/h3&gt;
&lt;p&gt;Despite my temporary hustle to pay down my debt, I realized my living expenses
were out of control. My girlfriend at the time and I parted ways, and I was
stuck servicing rent at our apartment. I did the math, and realized that if
I suddenly lost my income I could only sustain my lifestyle for maybe two
months.&lt;/p&gt;
&lt;p&gt;For the remainder of my lease, I labored to reduce my expenses where I could.
I dined out less. I found a new affinity for lentils. And I took on more client
work so I could save and invest at least a little bit.&lt;/p&gt;
&lt;p&gt;And then I met my current partner. She and I moved into an apartment in
Green Lake, which is a much less expensive Seattle neighborhood than
Capitol Hill. My rent dropped from $2,275/month to just $1,067, with my
partner covering part of the $1,600/month total. That meant I just reduced my rent by 53%
overnight. Woo-hoo!&lt;/p&gt;
&lt;p&gt;But you get what you pay for. In Seattle, a 2-bedroom apartment for $1,600
is a &lt;em&gt;steal&lt;/em&gt;. But it was
right next to a busy street and it sounded like there was a highway in our living
room. Our bedroom window faced an alleyway. We didn&apos;t have the luxury of
laundry in our unit. And the appliances, while working, were outdated. The
refrigerator smelled like rotting milk. The apartment had terrible
ventilation problems.&lt;/p&gt;
&lt;p&gt;All of this would have been tolerable if we had a compelling reason
to stay in Seattle. If either of us had a lucrative or meaningful career
that was reliant on our physical presence in Seattle, it would have been
worth it to tolerate the cost. But I work from home. At the time, my
partner was working a part-time retail job. What were we paying for, exactly?&lt;/p&gt;
&lt;p&gt;We both love attending cultural events that a big city like Seattle hosts.
But we&apos;re also both generally homebodies. I can&apos;t speak for my partner,
but as I&apos;ve gotten older I&apos;ve found myself valuing a nice home. Not a big
home or a flashy home or anything like that. I value a home that feels
like home. A place that&apos;s comfortable. A sanctuary. And our place in
Seattle was anything but that.&lt;/p&gt;
&lt;p&gt;Then we took a trip to Eugene, Oregon. And it was right then I knew I&apos;d
found my new home. I just had to convince my partner it was the right
move. After a few long discussions, we decided upon a cozy house in the
hills. Rents in Eugene make me feel rich! Here&apos;s the cost breakdown for my
last three apartments. Notice the precipitous drop in price per square
foot:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Location&lt;/strong&gt;
&lt;strong&gt;Monthly Rent&lt;/strong&gt;
&lt;strong&gt;My Share&lt;/strong&gt;
&lt;strong&gt;$/sqft&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Capitol Hill, Seattle
$2,275
$2,275
$3.79&lt;/p&gt;
&lt;p&gt;Green Lake, Seattle
$1,600
$1,067
$1.60&lt;/p&gt;
&lt;p&gt;Eugene
$1,395
$930.00
$1.27&lt;/p&gt;
&lt;p&gt;My partner and I cook almost every day and eat most of our meals in. We
have a morning coffee and breakfast ritual. We own only one small car.&lt;/p&gt;
&lt;p&gt;Because of all this, my mandatory monthly spend is only around $2,000.
That covers rent, food, and utilities.&lt;/p&gt;
&lt;p&gt;For every $2,000 I have in the bank, I can sustain myself
comfortably for a month without working.&lt;/p&gt;
&lt;h3&gt;Work&lt;/h3&gt;
&lt;p&gt;I&apos;m not sure there was a specific moment when it happened, but it changed
my relationship with work forever.&lt;/p&gt;
&lt;p&gt;It was the moment when I realized the psychological power of capital. The
power of money is hardly in the material things it can buy. No, the true
power of money is in the way knowing you have it changes your behavior.&lt;/p&gt;
&lt;p&gt;Because I know I&apos;ll be able to pay my bills for the foreseeable future
without working, the way I treat my client work has changed dramatically.&lt;/p&gt;
&lt;p&gt;No longer am I desperate to please clients in the short-term. I remember
bending over backwards, compromising my values and my health in order to
make sure I&apos;d continue to get paid.&lt;/p&gt;
&lt;p&gt;Now instead of engaging with clients purely to get paid, I do it to serve
them and their interests. Conveniently, money tends to be a byproduct of
this service.&lt;/p&gt;
&lt;p&gt;The beauty in having capital is that you&apos;re free to walk away from toxic
client relationships. And you&apos;re in a position to vet new relationships
with more scrutiny before it&apos;s too late and you&apos;ve made promises you
cannot keep.&lt;/p&gt;
&lt;p&gt;The irony too, is that by maintaining a low-expense lifestyle I&apos;m able to
charge more for my services because I know I don&apos;t &lt;em&gt;need&lt;/em&gt; the work. This
doesn&apos;t mean I don&apos;t respect my clients&apos; needs and constraints. In fact,
minimalism has led me to respect them more because when I work with clients,
I treat them like people instead of paychecks.&lt;/p&gt;
&lt;p&gt;My desire to &lt;em&gt;make it&lt;/em&gt; in my career has subsided as a result. If you&apos;re
ambitious you probably know what I mean by wanting to &lt;em&gt;make it&lt;/em&gt;. It&apos;s that
sense that if only you had a few more markers of success, you&apos;d finally be
happy. You know what? I&apos;ve acquired a few of those markers over the past
decade and none of them made me happy. I&apos;ve had luxury apartments and
fancy dinners and $15 cocktails. I&apos;ve been lured by big salaries and
bonuses. None of it made me happy. Truth is, most of the things that make
me happy don&apos;t require money. So why do we keep chasing more of it?&lt;/p&gt;
&lt;h3&gt;Happiness&lt;/h3&gt;
&lt;p&gt;So what &lt;em&gt;do&lt;/em&gt; I live for now?&lt;/p&gt;
&lt;p&gt;I live for meaning. For cups of coffee with my partner in the morning. For
quiet bicycle rides. For losing myself in complex programming problems.
For being a disciplined learner. For the pursuit of art. For excellence.&lt;/p&gt;
&lt;p&gt;I live to be curious. To be valuable. To serve others. To contribute. To
live each day like it&apos;s my last, but knowing what that means for me.&lt;/p&gt;
&lt;p&gt;I live to be free. To recognize that money is important not because of the
stuff it can buy but because of the freedom it can buy. The freedom to
breathe. The freedom to spend an afternoon writing an article for my blog
instead of working to pay off a BMW.&lt;/p&gt;
&lt;p&gt;To me, happiness is knowing if I died tomorrow I&apos;d die with dignity. I&apos;d
die knowing that up until this moment I spent my days in accordance with
my values.&lt;/p&gt;
&lt;p&gt;A luxurious lifestyle would be nice, but it&apos;s not necessary for a life well
lived.&lt;/p&gt;
</content:encoded></item><item><title>Feng shui for programmers</title><link>https://www.teejayvanslyke.com/letters/feng-shui-for-programmers/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/feng-shui-for-programmers/</guid><pubDate>Sun, 16 Apr 2017 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;img src=&quot;/assets/images/1280x1280/command-position-desk-3a449480.jpg&quot; alt=&quot;My office, in command position&quot; /&gt;&lt;/p&gt;
&lt;p&gt;I&apos;m fascinated by the subtle changes that make a big difference. The
optimizations that only take a bit of time and thought, but which fundamentally
improve our lives. This weekend I stumbled upon one such change by accident.&lt;/p&gt;
&lt;p&gt;I&apos;d heard of feng shui through popular culture, but never really took the time
to understand its principles. All I really knew is that it was &quot;bad feng shui&quot;
to have your bed against the same wall as your bedroom door. And while the
boldest claims feng shui practitioners make should be regarded as
pseudoscience, it&apos;s still worth examining whether there are parts of the
practice that can be appropriated in order to live a better life.&lt;/p&gt;
&lt;p&gt;A YouTube search for &quot;feng shui office&quot; turned up tons of self-proclaimed feng
shui consultants recommending placing your desk in the &lt;em&gt;command position&lt;/em&gt;. For
the layman, this just means that instead of putting your desk against the far
wall with your back to the door, turn your workstation around so you face the
door with your back against the wall:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/images/1280x1280/command-position-diagram-4847e8dc.png&quot; alt=&quot;Command Position&quot; /&gt;&lt;/p&gt;
&lt;p&gt;The theory behind this is that the wall behind you provides you some sort of
energetic support and that by facing your door, you&apos;re open to new business
entering your life. If that sounds woo-wooey, you&apos;re not alone. But being a bit
of an interior design enthusiast, I couldn&apos;t help but spend an hour rearranging
my office to see how it felt to face the other way.&lt;/p&gt;
&lt;p&gt;When I did, I was struck. I feel more open and in control sitting at my new
workstation---and yes, I&apos;m aware how new-agey that sounds. There&apos;s just really
no other way to describe it.&lt;/p&gt;
&lt;p&gt;I do wonder though: Is part of why I feel better with my desk facing into the
room that my periphery is more expansive? Rather than looking out onto a wall
directly in front of me, I&apos;m now looking at the entire room. I wonder if
there&apos;s some biological response of which I&apos;m unaware.&lt;/p&gt;
&lt;p&gt;If you have the luxury of having a dedicated office and your desk currently
faces the wall, give the &quot;command position&quot; a try. I&apos;m curious whether you feel
the same empowerment I do.&lt;/p&gt;
</content:encoded></item><item><title>Things you might notice if we work together</title><link>https://www.teejayvanslyke.com/letters/things-you-might-notice-if-we-work-together/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/things-you-might-notice-if-we-work-together/</guid><pubDate>Tue, 28 Mar 2017 00:00:00 GMT</pubDate><content:encoded>&lt;h3&gt;I won&apos;t respond to emails immediately&lt;/h3&gt;
&lt;p&gt;But I will respond to them within 48 hours, and when I do I&apos;ll make sure I give
them the time they deserve. I learned years ago that living inside my email
inbox is a surefire way to fragment my attention throughout the day.&lt;/p&gt;
&lt;p&gt;What this means for you is that I&apos;ll focus my full attention on your product.
I&apos;ll enter a state of
flow and have
insights about your product I wouldn&apos;t have had if I were constantly checking
and responding to my email.&lt;/p&gt;
&lt;p&gt;I try to check my email twice per day: Once before lunch, and once before
I leave the office.&lt;/p&gt;
&lt;h3&gt;I won&apos;t be available in Slack all day&lt;/h3&gt;
&lt;p&gt;Even though I built &lt;a href=&quot;https://formbotapp.com&quot;&gt;a SaaS product that loves Slack&lt;/a&gt;, I&apos;ve found that it tends to
&lt;a href=&quot;/letters/slack-the-ultimate-distractor&quot;&gt;interrupt and fragment my work&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I love Slack for what it is: A clever tool for communicating with your team
about the on-goings of the day. But I&apos;ve noticed that when Slack is open and
active as I work, my attention gets split between the work of attending to
inbound chat messages and the work of designing and programming.&lt;/p&gt;
&lt;p&gt;That&apos;s why I usually only keep Slack open for an hour each day, and try to
remain engaged with chat for that period of time. It reduces the number of times
I have to switch contexts over the course of the day, which ultimately turns
into cost savings for my clients and a happier mind for me.&lt;/p&gt;
&lt;h3&gt;We won&apos;t have tons of meetings&lt;/h3&gt;
&lt;p&gt;If we work together, I want to ensure you feel confident I understand your
business and how software can help you.&lt;/p&gt;
&lt;p&gt;But once I do, it&apos;s critical to your project that I get to spend
long blocks of uninterrupted time deep in thought (and code) building your new
product.&lt;/p&gt;
&lt;p&gt;Some meetings are productive. If we call a meeting to define next week&apos;s block
of work, and afterwards we&apos;ve defined the work, then hooray! What a productive
meeting.&lt;/p&gt;
&lt;p&gt;But if we call a meeting to &quot;discuss the status of the project,&quot; what have we
accomplished that couldn&apos;t be done in a couple emails? When it comes to
meetings, clear outcomes are key. If I&apos;m not billing you for lots of
meetings, that&apos;ll leave time for building your awesome product.&lt;/p&gt;
&lt;h3&gt;You&apos;ll get the best service and quality&lt;/h3&gt;
&lt;p&gt;And of course: Because my mind is freed to go off and imagine the best solutions
for your project, you&apos;ll get a better product. I guarantee it.&lt;/p&gt;
</content:encoded></item><item><title>How to position yourself to bill clients weekly instead of hourly</title><link>https://www.teejayvanslyke.com/letters/how-to-convince-your-clients-billing-weekly-is-better-for-them/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/how-to-convince-your-clients-billing-weekly-is-better-for-them/</guid><pubDate>Tue, 21 Mar 2017 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;One of my friends asked a great question about weekly
billing as a freelancer:&lt;/p&gt;
&lt;blockquote&gt;&lt;/blockquote&gt;
&lt;p&gt;How do you position weekly billing with an organization that has strict&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;accounting procedures?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;In case you&apos;re unfamiliar with the benefits of weekly billing, read my previous
article, &lt;a href=&quot;/letters/why-i-stopped-billing-hourly-and-you-should-too&quot;&gt;Why I stopped billing hourly and you should too&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;What are some strategies we can employ to help our prospective clients view a weekly
billing cycle in a more positive light?&lt;/p&gt;
&lt;h3&gt;Productize your services&lt;/h3&gt;
&lt;p&gt;When a company&apos;s accounting department or project manager hears the new
freelancer wants to bill a weekly rate, they&apos;ll rightly have a fit if &lt;em&gt;their&lt;/em&gt;
clients are used to receiving a bill for a rate in hours. After all, how will
they bill their clients within the context of a contract that states all labor
will be paid hourly?&lt;/p&gt;
&lt;p&gt;But if instead, you position yourself as a vendor offering a product, the story
changes. Now you&apos;re not a freelancer, but a &lt;em&gt;vendor&lt;/em&gt;. Not only are you more in
control of your pricing, but you de-commodify yourself in the marketplace.&lt;/p&gt;
&lt;p&gt;You&apos;re not Joe Freelancer the Designer, easily replaced and micromanaged. You&apos;re
Joe Design Product, a one-of-a-kind designer machine.&lt;/p&gt;
&lt;p&gt;And if this approach doesn&apos;t work? Give them enough reasons, through marketing
materials and brand promotion, to believe that you are the best solution to
their problem. If
they believe you&apos;re the saving grace for their clients, you can bet they&apos;ll find
a way to make it work.&lt;/p&gt;
&lt;p&gt;Brennan Dunn over at Double Your Freelancing has an awesome article outlining 3
great examples of productized consulting
services
that ought to inspire you.&lt;/p&gt;
&lt;h3&gt;Deliver value before getting paid&lt;/h3&gt;
&lt;p&gt;The surest way to build trust with another human is to give something to them
without expecting anything in return.&lt;/p&gt;
&lt;p&gt;Can you add value to your prospective client&apos;s project &lt;em&gt;before&lt;/em&gt; you sign
anything?&lt;/p&gt;
&lt;p&gt;If you&apos;re a designer, can you make 3-5 recommendations about how you
would change their current design approach?&lt;/p&gt;
&lt;p&gt;If you&apos;re a developer, can you ask them what their biggest pain point is and
do a few hours of research to help them along?&lt;/p&gt;
&lt;p&gt;In sales, reciprocity is powerful
stuff.
In my day-to-day sales efforts, I make a point to be genuine and
help my prospective clients unconditionally. But I&apos;m convinced it has a profound
effect on my ability to close sales. And it should! Giving is good.&lt;/p&gt;
&lt;h3&gt;Build rapport with testimonials&lt;/h3&gt;
&lt;p&gt;When it comes to building trust, social proof is huge. Craft solid testimonials
that say to the reader, &lt;em&gt;If you go anywhere else, you&apos;re going to lose.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;How do you get these awesome testimonials? In The Brain
Audit, Sean D&apos;Souza
shares &lt;a href=&quot;http://www.copyblogger.com/testimonials-part-2/&quot;&gt;six questions&lt;/a&gt; that changed my consulting career forever. They&apos;re
questions you can send in a polite email to your past clients which, if
answered, almost guarantee you&apos;ll be able to extract a high-impact testimonial
for your marketing page:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;What was the obstacle that would have prevented you from buying this product?&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;What did you find as a result of buying this product?&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;What specific feature did you like most about this product?&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;What are three other benefits of this product?&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Would you recommend this product? If so, why?&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Is there anything you’d like to add?&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Read his analysis of the
questionaire to understand
the theory behind each question, but I can attest that this works. In fact, the
testimonials on my &lt;a href=&quot;/&quot;&gt;homepage&lt;/a&gt; are derived from answers to these very
questions.&lt;/p&gt;
&lt;h3&gt;Explain that hourly billing incentivizes tedious, low-value work&lt;/h3&gt;
&lt;p&gt;Attorney Matthew Hickey discusses his transition from billing hourly to billing
at a fixed rate for
services.&lt;/p&gt;
&lt;p&gt;One of the key takeaways from his article is that the billable hour incentivizes
working less efficiently. After all, if you can squeeze out another half hour,
your brain is going to be more likely to take the long path to the same
destination. With weekly billing, this &lt;em&gt;could&lt;/em&gt; become a problem on a macro
scale, but it&apos;s much less likely you&apos;ll sit on your thumbs for a whole week and
your client won&apos;t notice.&lt;/p&gt;
&lt;p&gt;Not only does the billable hour incentivize working at less-than-maximum
capacity, but it gives you permission to split your attention between several
different client projects at a time, nickel-and-diming them for each. This lack
of focus will translate into poorer quality.&lt;/p&gt;
&lt;p&gt;Give your clients reassurance that when you bill them weekly, they&apos;re receiving
your full attention for the time allotted. They&apos;ll be better able to estimate
their overall cost, and be armed with the confidence you&apos;re putting their best
interest at heart.&lt;/p&gt;
&lt;h3&gt;Get into a position where you can turn down the work&lt;/h3&gt;
&lt;p&gt;What if, when your prospective client insisted that they&apos;ll only work
with you if you bill them hourly, you cold tell them that you only bill weekly and
that the engagement wouldn&apos;t be a good fit?&lt;/p&gt;
&lt;p&gt;Sometimes, we&apos;re responsible for feeding our family and paying rent with the
next check our clients write us. But if we&apos;re able to get our cashflow in line,
our expenses in check, and our debt eliminated, we can have enough in the bank
so that we have the leverage to say no.&lt;/p&gt;
&lt;p&gt;I can say first hand that I&apos;m able to charge more now
that I spend less and have no debt. It&apos;s a bit counterintuitive: I&apos;m making way
more money and I&apos;m spending way less! But when you think of the psychology of
making a sale, desperation will lead you to undercut your own value.&lt;/p&gt;
&lt;p&gt;Save a year&apos;s worth of household expenses and soon you&apos;ll find yourself willing
and able to turn down work arrangements that don&apos;t suit you. You&apos;ll find that if
you deliver enough value, soon enough your clients will come around to realize
they can&apos;t afford &lt;em&gt;not&lt;/em&gt; to hire you.&lt;/p&gt;
</content:encoded></item><item><title>How do we know when we&apos;ve arrived?</title><link>https://www.teejayvanslyke.com/letters/how-do-we-know-when-weve-arrived/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/how-do-we-know-when-weve-arrived/</guid><pubDate>Mon, 20 Mar 2017 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;I&apos;ve had a fire under my ass the past couple months.&lt;/p&gt;
&lt;p&gt;I think in part it&apos;s my fear that I&apos;m getting older and too
comfortable. If you&apos;re over
30 and in the tech industry, I&apos;m sure you can identify with this fear. It&apos;s
crippling to think you might be rendered irrelevant, and even worse when faced
with the irony that it&apos;s because you&apos;re &lt;em&gt;too experienced&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;And really, all of this stems from our tendency to compare ourselves to others.
To think that if we&apos;re not running a big company or sitting on millions (or
billions) of dollars from an exit, we might not have fully self-actualized.&lt;/p&gt;
&lt;p&gt;But something struck me last night as I was getting ready for bed. I tried to
imagine my ideal future. Have you ever tried to do that? For me, the canvas was
blank. Or at least out of focus. I couldn&apos;t really define what it was I was
after.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Is it money we&apos;re after?&lt;/strong&gt; Sure, financial independence and certainty would be
better than not having it. I don&apos;t know about you, but I love to work and often
find myself restless on days I&apos;m supposed to be relaxing. How is money going to
fix any of that?&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Do we want recognition?&lt;/strong&gt; I love to foster connection and think it would be
fun to speak at big events, to autograph books, or to have a cult following on
Twitter. But when I close my eyes and imagine myself in those shoes, I&apos;m
actually more stressed out and feel under tremendous scrutiny. I think we tend
to idealize being culturally significant, but fail to recognize the tradeoffs.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;So what is it?!&lt;/strong&gt; I&apos;ve been leafing through Tony Robbins&apos; Awaken the Giant
Within.
For me, the most illuminating point he makes is that material wealth and
cultural significance don&apos;t create lasting contentment. It&apos;s actually our
&lt;em&gt;contributions&lt;/em&gt; that give us lasting joy.&lt;/p&gt;
&lt;p&gt;It bears repeating: The investment with the greatest existential returns is a gift given
unconditionally.&lt;/p&gt;
&lt;p&gt;Granted, Tony Robbins is
the king of pop psychoanalysis and if you want to hold his statements to the
fire of more rigorous inquiry, I don&apos;t blame you. But when I inquire about my
own life, chasing fame or fortune has &lt;em&gt;never&lt;/em&gt; made me contented. And my tiny
brushes with both have left me feeling hollow and unfulfilled.&lt;/p&gt;
&lt;p&gt;Gratitude and charity, on the other hand, have always, 100% of the time, left me
feeling energized and capable. What&apos;s even more striking is the irony that
gratitude and charity inevitably lead to fame and fortune. Who doesn&apos;t
appreciate and honor someone who gives to others without asking for something in
return?&lt;/p&gt;
&lt;p&gt;I&apos;m writing this as a reminder to myself, but I hope it&apos;s helpful for
your journey as well. The path to contentment and wealth is paved with kindness, gratitude,
generosity, and contribution. These are difficult to enact each day because
we&apos;re constantly bombarded with messages that lead us to believe the contrary.&lt;/p&gt;
</content:encoded></item><item><title>The tools I use &amp; why I use them</title><link>https://www.teejayvanslyke.com/letters/the-tools-i-use-and-why-i-use-them/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/the-tools-i-use-and-why-i-use-them/</guid><pubDate>Sun, 19 Mar 2017 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;img src=&quot;/assets/images/1280x1280/computer-and-desk-color-ec940b95.jpg&quot; alt=&quot;My workstation&quot; /&gt;&lt;/p&gt;
&lt;p&gt;I&apos;ve spent a decade honing my engineering and design workflows, but never
really bothered to share all the tools that make my days more productive and
enjoyable.&lt;/p&gt;
&lt;p&gt;My main criteria when evaluating the tools I use each day are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Do they enable me to work close to as fast as my brain can think?&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Do they make the experience of working a joyful and rich experience?&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Here&apos;s a list of all the tools I use on a near-daily basis, and why
they make me a better craftsperson:&lt;/p&gt;
&lt;h3&gt;Quicksilver&lt;/h3&gt;
&lt;p&gt;Quicksilver is the original Mac app launcher. Although it sometimes feels dated
next to Spotlight, it&apos;s scriptable and lets you perform actions on your
searches. Although if I&apos;m being honest, I usually just use it to launch apps
rapid-fire.&lt;/p&gt;
&lt;p&gt;If you&apos;re still hunting for apps in your Applications folder by hand,
definitely download Quicksilver and work it into your workflow.  You&apos;ll be
surprised you could live without it before.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/images/1280x1280/quicksilver-838b0914.png&quot; alt=&quot;Quicksilver launching Quicksilver&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://qsapp.com/&quot;&gt;Get Quicksilver&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;Divvy&lt;/h3&gt;
&lt;p&gt;Ever get frustrated trying to optimize your screen real estate in OS X? I like
to work with a terminal on one half of the screen and a browser on the other.
Trying to size the windows in this way using the mouse cursor is a bad time.&lt;/p&gt;
&lt;p&gt;Divvy is a window management tool for OS X. It allows you to quickly size
windows into exact screen portions.&lt;/p&gt;
&lt;p&gt;I have mine configured for three quick keyboard shortcuts to allow me to make
the currently-focused window occupy the left half, right half, or entirety of
the screen:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/images/1280x1280/divvy-shortcuts-d87437f7.png&quot; alt=&quot;Divvy Shortcuts&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://mizage.com/divvy/&quot;&gt;Get Divvy&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;Focus&lt;/h3&gt;
&lt;p&gt;I used to have a tic where I&apos;d open a new browser tab, type &quot;f&quot;, and press
Return to launch Facebook. Then I quit Facebook, and the tic shifted to typing
&quot;r&quot; and launching Reddit. Ever been there?&lt;/p&gt;
&lt;p&gt;I&apos;ve surveyed a bunch of Mac content filter apps for keeping me focused when
I&apos;m working, and Focus is by far the best one.&lt;/p&gt;
&lt;p&gt;It has support for blacklist- and whitelist-based filtering, timers, schedules,
and a special &quot;Hardcore Mode&quot; which doesn&apos;t let you turn it off in the middle
of a timer or schedule.&lt;/p&gt;
&lt;p&gt;When you visit a blocked site, you&apos;ll be forwarded to a page with an
inspirational quote:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/images/1280x1280/focusapp-50407205.png&quot; alt=&quot;Focus&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://heyfocus.com/&quot;&gt;Get Focus&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;Pomodoro One&lt;/h3&gt;
&lt;p&gt;Having trouble staying on task for hours at a time?&lt;/p&gt;
&lt;p&gt;What if you tried staying on task for just 25 minutes? Think you could do that?&lt;/p&gt;
&lt;p&gt;Whenever I&apos;m feeling distracted, I use the Pomodoro
Technique to keep me going.
The gist of it: Work for 25 minutes and then take a break for 5. Repeat several
times.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/images/1280x1280/pomodoro-one-9376d7d6.png&quot; alt=&quot;Pomodoro One&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Pomodoro One is a minimalist Pomodoro timer I use when I&apos;m in crunch mode. It
keeps me focused for hours because I know a break is just around the corner.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://rinik.net/pomodoro/&quot;&gt;Get Pomodoro One&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;OmniFocus&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;/assets/images/1280x1280/omnifocus-d089c6df.png&quot; alt=&quot;OmniFocus&quot; /&gt;&lt;/p&gt;
&lt;p&gt;I&apos;ve tried so many personal task management tools and OmniFocus is the best one
there is, hands down.&lt;/p&gt;
&lt;p&gt;Built by disciples of David Allen&apos;s Getting Things
Done methodology, OmniFocus keeps all your tasks
organized by project and context.&lt;/p&gt;
&lt;p&gt;My favorite feature is the Inbox, where new tasks live until you get a chance to
sort through them. It has integration with iOS&apos;s &quot;Send to&quot; feature, so I&apos;m
always able to forward articles and ideas directly to my OmniFocus for later
reading without losing a beat.&lt;/p&gt;
&lt;h3&gt;Notational Velocity&lt;/h3&gt;
&lt;p&gt;OmniFocus is amazing for tracking tasks, but often I just need to archive bits
of information for retrieval. This might be account numbers, usernames, license
keys, or lists of books I want to read.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/images/1280x1280/notational-velocity-6fad5e9d.png&quot; alt=&quot;Notational Velocity&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;Mailplane&lt;/h3&gt;
&lt;p&gt;I&apos;ve tried &lt;a href=&quot;http://www.polymail.com&quot;&gt;so many&lt;/a&gt; &lt;a href=&quot;http://airmailapp.com/&quot;&gt;freaking&lt;/a&gt; Mac mail apps.
All of them have a common problem: They&apos;re slow when put under real-world load.&lt;/p&gt;
&lt;p&gt;I delete a &lt;em&gt;ton&lt;/em&gt; of email, just like I&apos;m sure you do. I found that every desktop mail
app I used would lag when I was doing rapid-fire deletion.&lt;/p&gt;
&lt;p&gt;Plus I really wanted an interface with Vim-like keyboard shortcuts.&lt;/p&gt;
&lt;p&gt;The GMail interface is fast &lt;em&gt;and&lt;/em&gt; had keyboard shortcuts. But I
like to isolate myself from email during the day because it&apos;s almost as much of
a productivity suck as Slack.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/images/1280x1280/mailplane-40854fec.png&quot; alt=&quot;Mailplane&quot; /&gt;&lt;/p&gt;
&lt;p&gt;That&apos;s when I found Mailplane. It&apos;s a Mac app that wraps a nice desktop
interface around GMail. Although it doesn&apos;t satisfy my dream of having a single
inbox for all of my three email accounts, it does a great job of showing me
my email, letting me batch through all my messages to get to zero, and getting
the hell out of there.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://mailplaneapp.com/&quot;&gt;Get Mailplane&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;Vim&lt;/h3&gt;
&lt;p&gt;Vim is the best text editor on the face of the earth.&lt;/p&gt;
&lt;p&gt;And that will be the most hotly-contested statement on the face of the earth.&lt;/p&gt;
&lt;p&gt;But seriously: Before you learn them Vim keybindings seem archaic and confusing.
But they&apos;re built for speed. And once they&apos;re part of your muscle memory,
they&apos;ll come as natural to you as the alphabet.&lt;/p&gt;
&lt;p&gt;As I said before, one of my criteria for choosing my tools is if they get me
closer to being able to work as fast as I think.&lt;/p&gt;
&lt;p&gt;Here are some of my favorite Vim plugins that enhance my workflow:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://github.com/reedes/vim-pencil&quot;&gt;vim-pencil&lt;/a&gt;: Rethinking Vim as a tool
for writing. I&apos;m using it to write this!&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://github.com/ctrlpvim/ctrlp.vim&quot;&gt;ctrlp.vim&lt;/a&gt;: Full path fuzzy finder
for Vim. It&apos;s like the Quicksilver launcher for your text files.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://github.com/scrooloose/nerdtree&quot;&gt;NERD Tree&lt;/a&gt;: A file tree explorer.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a href=&quot;http://www.vim.org/&quot;&gt;Vim Homepage&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;Tmux&lt;/h3&gt;
&lt;p&gt;Tmux is like Divvy (above) for your terminal. Split a terminal window in half
without using the mouse, deploy new shells, and keep your entire session
running even if you close your terminal window. Here&apos;s me editing this article
using it (and Vim) right now:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/images/1280x1280/tmux-ab2fab3b.png&quot; alt=&quot;Tmux&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Probably the biggest reason I use Tmux is because it enables IDE-like
functionality without leaving the terminal. For those of you using Emacs, you
might not find a use for Tmux in your toolbox. But being that Vim is a text
editor first and foremost means you have to look elsewhere to do things like
display an editor and shell in the same screen.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://tmux.github.io/&quot;&gt;Get Tmux&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;Tmuxinator&lt;/h3&gt;
&lt;p&gt;Tmuxinator enhances the Tmux experience by giving you the ability to fully
configure Tmux workspaces and launch them with a single command.&lt;/p&gt;
&lt;p&gt;Imagine you&apos;re working on three different web projects. Each of them has a
server process, a file you&apos;re editing, and maybe a test runner. Instead of
launching all of these as separate terminal windows every time you want to
switch projects, Tmuxinator allows you to configure Tmux workspace templates so
that switching projects is as simple as typing &lt;code&gt;mux my-project&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Plus, in case you ever accidentally close a terminal window like I do all the
time, your session is saved right where you left off. Just use Tmuxinator to
re-launch your session and everything will be right where you left it.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://github.com/tmuxinator/tmuxinator&quot;&gt;Get Tmuxinator&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;Powerline&lt;/h3&gt;
&lt;p&gt;Powerline is a nifty little status line plugin for Vim, Tmux, ZSH, and others.
It displays things like the current time, CPU utilization, and more.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/images/1280x1280/powerline-028ff7c4.png&quot; alt=&quot;Powerline&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://github.com/powerline/powerline&quot;&gt;Get Powerline&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;Middleman&lt;/h3&gt;
&lt;p&gt;If you&apos;re not using a static site generator for your blog, I implore you to
consider it! It reduces your maintenance overhead since you don&apos;t need to bother
with configuring and maintaining a server or database.&lt;/p&gt;
&lt;p&gt;And with services like &lt;a href=&quot;https://www.disqus.com&quot;&gt;Disqus&lt;/a&gt; and my own
&lt;a href=&quot;https://www.formbotapp.com&quot;&gt;Formbot&lt;/a&gt;, it&apos;s hardly necessary to run a server
application for most blogs.&lt;/p&gt;
&lt;p&gt;There are &lt;a href=&quot;https://www.staticgen.com/&quot;&gt;plenty of static site generators&lt;/a&gt; and
they all have their pros and cons.&lt;/p&gt;
&lt;p&gt;Being a Ruby enthusiast, I settled on Middleman. It has enough features,
including a robust &lt;a href=&quot;https://github.com/middleman/middleman-blog&quot;&gt;blog plugin&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Plus it has support for external
pipelining, which I use to generate image
thumbnails in Gulp.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://middlemanapp.com/&quot;&gt;Try using Middleman&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;Amazon S3 &amp;amp; CloudFront&lt;/h3&gt;
&lt;p&gt;I&apos;ve used S3 to host my static sites for years. Despite its learning curve, S3
offers unlimited storage and bandwidth at a relatively low cost.&lt;/p&gt;
&lt;p&gt;I use the gem &lt;a href=&quot;https://github.com/fredjean/middleman-s3_sync&quot;&gt;middleman-s3_sync&lt;/a&gt;
to sync my Middleman sites to S3.&lt;/p&gt;
&lt;p&gt;Hosting a Static Website on Amazon Web
Services&lt;/p&gt;
&lt;h3&gt;2014 MacBook Pro&lt;/h3&gt;
&lt;p&gt;In my opinion, the 2014 and 2015 Retina MacBook Pros are the best laptops Apple
ever made.&lt;/p&gt;
&lt;p&gt;They balance fast speeds, elegant design, and ports (yes, there are ports!) for
most applications.&lt;/p&gt;
&lt;p&gt;I think it&apos;s the most refined notebook computer in history. And I&apos;m sad Apple
decided to veer off that path with gimmicks like the Touch Bar.&lt;/p&gt;
&lt;p&gt;So for now, I&apos;m staying in 2014.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.amazon.com/Apple-Macbook-MJLQ2LL-15-inch-Processor/dp/B00XZGMBVC&quot;&gt;Buy a MacBook Pro from 2015 before they run out!&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;iPhone 7 Plus with Defender Case&lt;/h3&gt;
&lt;p&gt;This is the best smartphone I&apos;ve ever used. Even though in its Otterbox Defender
case it&apos;s as big as a 1980&apos;s carphone, the iPhone 7 Plus feels like putting a
computer in your pocket.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.apple.com/iphone-7/&quot;&gt;Visit the iPhone 7 site&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;WASD Keyboard with PBT keycaps&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;/assets/images/1280x1280/wasdkeyboard-23111a4f.jpg&quot; alt=&quot;WASD Keyboard&quot; /&gt;&lt;/p&gt;
&lt;p&gt;I didn&apos;t believe the hype at first.&lt;/p&gt;
&lt;p&gt;An entire &lt;a href=&quot;https://www.reddit.com/r/MechanicalKeyboards/&quot;&gt;subreddit&lt;/a&gt; devoted to mechanical keyboards?!&lt;/p&gt;
&lt;p&gt;Spurred by some pretty brutal wrist pain, I sought relief through new hardware.
I looked at Amazon review after Amazon review and people were recommending
mechanical keyboards.&lt;/p&gt;
&lt;p&gt;I settled on the WASD 87-key keyboard. The Wirecutter
agrees.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;A $150 keyboard?!&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Yes, and I spent $100 on custom keycaps. It&apos;s not for everyone. But I can tell
you my fingers are happy all day long pecking away on this gorgeous keyboard.
And like a good mattress, a good keyboard returns on investment over years of
constant use.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.wasdkeyboards.com/&quot;&gt;Build a custom WASD keyboard&lt;/a&gt;&lt;/p&gt;
</content:encoded></item><item><title>How losing all my hair has changed my perspective in tech</title><link>https://www.teejayvanslyke.com/letters/how-aging-has-changed-my-perspective-in-tech/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/how-aging-has-changed-my-perspective-in-tech/</guid><pubDate>Fri, 17 Mar 2017 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;img src=&quot;/assets/images/1280x1280/me-at-kitchen-table-2.JPG&quot; alt=&quot;Where did all my hair go?!&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Where did all my hair go?!&lt;/p&gt;
&lt;p&gt;I started programming when I was 6. I had a full head of hair.&lt;/p&gt;
&lt;p&gt;Now I&apos;m 31. And all my hair is gone.&lt;/p&gt;
&lt;p&gt;In tech circles, 31 feels old. You 40-year-olds might scoff at that
notion, but since turning 30 I&apos;ve felt a distinct shift in the way I make
decisions. I&apos;m less inclined to dream big and more inclined to play it
safe. That&apos;s not to say I don&apos;t still dream big, but I examine caveats
with more scrutiny than I did when I was 21.&lt;/p&gt;
&lt;h3&gt;I&apos;m not as easily manipulated into work I don&apos;t enjoy&lt;/h3&gt;
&lt;p&gt;When I was 21, I&apos;d jump at the opportunity to build new things, even if it
meant compromising my values or sacrificing all my time. At 21 I had
a desire to prove myself and my worth. That, and I don&apos;t think I possessed
the resilience to stand my ground.&lt;/p&gt;
&lt;p&gt;Now I vet projects with great scrutiny before committing. I want to work
on projects that add great value to the lives of others and to work with
people who value their time as much as mine.&lt;/p&gt;
&lt;p&gt;I&apos;m not sure I would have even uttered such sentiments ten years ago.
I was afraid of being cast aside---of being seen as elitist or
unappreciative. But now I realize being discerning and being grateful
aren&apos;t mutually exclusive.&lt;/p&gt;
&lt;h3&gt;My aims lie not in achieving an &quot;exit&quot;, but in doing great work&lt;/h3&gt;
&lt;p&gt;I&apos;ve seen a few of my friends and colleagues &quot;make it big.&quot;&lt;/p&gt;
&lt;p&gt;I think it&apos;s amazing when someone finds their way to the pot of gold. And
if I someday have mine, I&apos;ll feel blessed for it.&lt;/p&gt;
&lt;p&gt;But that&apos;s not what all of this is about.&lt;/p&gt;
&lt;p&gt;We&apos;re craftspeople. We thrive in the creative journey. To create is to
leave a legacy bigger than yourself.&lt;/p&gt;
&lt;p&gt;No amount of money can ever do that. Fame cannot do that.&lt;/p&gt;
&lt;p&gt;Ten years has shown me my happiness comes not from cashing out but from
pitching in.&lt;/p&gt;
&lt;h3&gt;Experience is an invaluable asset&lt;/h3&gt;
&lt;p&gt;When I was 21, I said &quot;yes&quot; to just about everything.&lt;/p&gt;
&lt;p&gt;Can you build this app for me? &lt;em&gt;Yes!&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Do you want to take on another project? &lt;em&gt;Yes!&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Can we get this done by next week? &lt;em&gt;Yes!&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;At 31, I know the naivety of that sort of indiscriminate head-nodding. Now my
greatest asset isn&apos;t my willingness to say &quot;yes&quot; all the time, but my ability
to know when to say &quot;no.&quot;&lt;/p&gt;
&lt;h3&gt;I worry about different things&lt;/h3&gt;
&lt;p&gt;I don&apos;t worry about whether I&apos;ll make rent next month, but I do worry about
whether I&apos;ll have work next year. That is, I&apos;ve learned how to manage my
resources but am fearful of being made redundant.&lt;/p&gt;
&lt;p&gt;But I&apos;m choosing to be an optimist in that regard. Continuing to learn and grow
and connect has never done me wrong. And to witness the arc of technological
progress over the course of the past decade gives me hope that tomorrow&apos;s
digital products will be richer and more immersive than ever before. I want to
be a part of that. I &lt;em&gt;will&lt;/em&gt; be a part of that.&lt;/p&gt;
</content:encoded></item><item><title>Nine ways to kick ass on a remote team</title><link>https://www.teejayvanslyke.com/letters/nine-ways-to-kick-ass-on-a-remote-team/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/nine-ways-to-kick-ass-on-a-remote-team/</guid><pubDate>Fri, 17 Mar 2017 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;img src=&quot;/assets/images/1280x1280/cafe-computer-4bd24b48.jpg&quot; alt=&quot;Ten years in cafes&quot; /&gt;&lt;/p&gt;
&lt;p&gt;It&apos;s my ten-year anniversary of working remotely. That&apos;s a decade of
coding at home in my underpants.&lt;/p&gt;
&lt;p&gt;In that time, remote work has gone from being a fringe idea to being a
mainstream
&lt;a href=&quot;https://weworkremotely.com/&quot;&gt;industry&lt;/a&gt; and
&lt;a href=&quot;https://nomadlist.com/&quot;&gt;lifestyle&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Best practices for remote work are emerging, but they&apos;re far from codified.
These are the things I do every day to make sure my projects run smoothly.
They&apos;ve made my teams happy and my clients happy.&lt;/p&gt;
&lt;h3&gt;1. Use (and learn!) a project management tool&lt;/h3&gt;
&lt;p&gt;It all comes down to threading. Every single time I&apos;ve used email or chat to
clarify requirements, it started a death spriral of scrolling up in the chat log
to find the thing I said last week or last month. When you keep everything in
context, it&apos;s a lot easier to track everything.&lt;/p&gt;
&lt;p&gt;And keep it a simple tool. Just use something that has support for making
comments in separate todos that you can mark done when they&apos;re done. Forget
complicated velocity tracking and projections. They&apos;re going to be wrong anyway.&lt;/p&gt;
&lt;h3&gt;2. Invite the developers to every planning call&lt;/h3&gt;
&lt;p&gt;An agency I used to work with would exclude me from scoping and discovery
discussions with their client. Their creative director would meet with the
client, then relay the client&apos;s vision back to me.&lt;/p&gt;
&lt;p&gt;Because of this, there were constantly questions left unanswered at
the end of our planning sessions, since I tended to ask specific questions
the creative director couldn&apos;t answer.&lt;/p&gt;
&lt;p&gt;So he went to the client to ask them for answers.&lt;/p&gt;
&lt;p&gt;And then we&apos;d meet again. And the cycle would continue.&lt;/p&gt;
&lt;p&gt;It&apos;s powerful to have constant contact with stakeholders. Introduce the team to
your client and foster their relationship. When I do, I find the project
ends up running itself.&lt;/p&gt;
&lt;h3&gt;3. Invite the client to every planning call&lt;/h3&gt;
&lt;p&gt;Building software is an amazing adventure because we get to work on
projects in all sorts of industries! I&apos;ve worked in fashion,
pharmaceuticals, government, social media, and energy engineering, just to
name a few.&lt;/p&gt;
&lt;p&gt;Because of this, we&apos;re at the mercy of our clients to &lt;em&gt;really&lt;/em&gt; know what
they need built.&lt;/p&gt;
&lt;p&gt;The &lt;em&gt;why&lt;/em&gt; is critical. Make your client the focal point of your sprint planning.&lt;/p&gt;
&lt;h3&gt;4. Batch and limit conference calls&lt;/h3&gt;
&lt;p&gt;Meetings and conference calls are the only way to brainstorm and discover new
features. They&apos;re also the only way to plan a development sprint.&lt;/p&gt;
&lt;p&gt;But they&apos;re expensive. They demand the full attention of your entire team. If
you have a two hour meeting with your four team members, you&apos;ve lost a full
workday&apos;s worth of work to that meeting.&lt;/p&gt;
&lt;p&gt;I do my darndest to limit mandatory meetings and conference calls to under 10%
of my total work hours, and batching that time all at once. The planning has to
get done, but getting it done all at once means you&apos;re free to create and
produce the other 90% of the time without interruption.&lt;/p&gt;
&lt;h3&gt;5. Make every task actionable&lt;/h3&gt;
&lt;p&gt;Semantics are important.&lt;/p&gt;
&lt;p&gt;If you need to build the new marketing site and you add a task with the caption
&quot;Build new marketing site&quot;, you&apos;re going to spin wheels trying to figure out how
to get it done.&lt;/p&gt;
&lt;p&gt;But if you identify the pain points within that monumental task and sketch them
out in separate tasks, you can delegate and accomplish each of them separately.&lt;/p&gt;
&lt;p&gt;So maybe you write &quot;Survey CMS&apos;s for new marketing site&quot; and &quot;Pick CMS for new
marketing site&quot; and &quot;Deploy CMS&quot;.&lt;/p&gt;
&lt;p&gt;And then you break down each of those tasks.&lt;/p&gt;
&lt;p&gt;And then if it&apos;s necessary, break those down.&lt;/p&gt;
&lt;p&gt;Suddenly, everything is in view and your team can execute.&lt;/p&gt;
&lt;h3&gt;6. Refine incomplete tasks&lt;/h3&gt;
&lt;p&gt;If there&apos;s a task that&apos;s done except for a tiny edge case, add a new task to
cover the edge case, call the original one done, and make a note of it in the
old task.&lt;/p&gt;
&lt;p&gt;Now you&apos;re razor-focused on the edge case. And now your team can better assess
the sprint progress without digging into every single task ticket.&lt;/p&gt;
&lt;h3&gt;7. Peer review every commit&lt;/h3&gt;
&lt;p&gt;I used to resent the process of mandatory peer review. But after having been
humbled by being called out on my bullshit a few times, I can attest to the
value of knowing someone else&apos;s eyes have grazed my work before it goes to
production.&lt;/p&gt;
&lt;h3&gt;8. Don&apos;t use email or Slack to delegate tasks&lt;/h3&gt;
&lt;p&gt;If there&apos;s work to be done and you want to ask someone else to do it, open a
ticket in your project management tool and assign them.&lt;/p&gt;
&lt;p&gt;Don&apos;t explain it in Slack.&lt;/p&gt;
&lt;p&gt;Don&apos;t send them an email.&lt;/p&gt;
&lt;p&gt;A project management tool is designed to track and manage project requirements
and progress. Email and Slack are fantastic platforms for informal
communication, but if it winds up in the product, make sure it has a ticket.&lt;/p&gt;
&lt;p&gt;See #1.&lt;/p&gt;
&lt;h3&gt;9. Close email and Slack most of the day&lt;/h3&gt;
&lt;p&gt;This is my superhero hack. And it&apos;s hard, because we&apos;re conditioned to be
responsive and always-on.&lt;/p&gt;
&lt;p&gt;But the truth is, the world won&apos;t end if you disconnect and focus on one thing
for a few hours. I have to tell myself that every time I do.&lt;/p&gt;
&lt;p&gt;Slack and email have their place, but it&apos;s not in the middle of your focused
creative work.&lt;/p&gt;
&lt;p&gt;I limit my Slack online time to an hour each morning, and I check my email twice
daily. Sometimes I break these rules, but I think they&apos;re worth aiming for.&lt;/p&gt;
&lt;p&gt;Read Cal Newport&apos;s book
&lt;a href=&quot;http://calnewport.com/books/deep-work/&quot;&gt;Deep Work&lt;/a&gt; and watch Merlin Mann&apos;s
Inbox Zero talk for more on this.&lt;/p&gt;
</content:encoded></item><item><title>How a mission statement is helping me focus</title><link>https://www.teejayvanslyke.com/letters/how-a-mission-statement-is-helping-me-focus/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/how-a-mission-statement-is-helping-me-focus/</guid><pubDate>Thu, 16 Mar 2017 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;You could say I&apos;ve been throwing tons of crap at the wall lately. I&apos;m not sure
how much of it is sticking. Have you been there? You know, when you keep doing,
doing, doing without really knowing why you&apos;re doing it or where you&apos;re
heading? Yeah. That&apos;s where I&apos;ve been for the past month.&lt;/p&gt;
&lt;p&gt;I made it a 2017 resolution to start writing again. I wasn&apos;t sure exactly why;
maybe I just wanted a creative outlet that I controlled. I&apos;m grateful for my
client relationships and the fact I get paid to be creative, but fulfilling
someone else&apos;s dream doesn&apos;t feed your soul like making your own thing.&lt;/p&gt;
&lt;p&gt;And so I&apos;ve been writing. I&apos;ve written about
&lt;a href=&quot;/letters/how-to-vet-a-developer-when-you-arent-technical-yourself&quot;&gt;hiring&lt;/a&gt;,
building
products,
&lt;a href=&quot;/letters/why-i-stopped-billing-hourly-and-you-should-too&quot;&gt;business&lt;/a&gt;,
and more. I&apos;ve also been coding. I built a creative community page for Eugene,
Oregon and a Slack integration for HTML
forms.&lt;/p&gt;
&lt;p&gt;But most of this has felt like I was flailing my creative elephant trunk and
knocking everything over in the process.&lt;/p&gt;
&lt;p&gt;And I realized something today: I don&apos;t have a mission.&lt;/p&gt;
&lt;p&gt;My mission was &quot;write more.&quot; My mission was &quot;build things.&quot; And so I wrote
more. And I built things. But I wasn&apos;t doing it with an ethos behind me.
I didn&apos;t have a target at which I was aiming.&lt;/p&gt;
&lt;p&gt;Today, I did a few things to help me focus.&lt;/p&gt;
&lt;p&gt;For awhile now, I&apos;ve tried to maintain both a personal site, a business
site, and an arts site. While I hope to someday return to producing art
and music in a more full-time capacity, there aren&apos;t enough hours in the
day to do everything. I&apos;m shutting down Guilded and moving everything to
one place at &lt;a href=&quot;/&quot;&gt;teejayvanslyke.com&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I&apos;ve also drafted a mission statement that I want to carry with me through
my career. It reminds me of why I work so hard every single day: To design
and build digital products that improve people&apos;s lives:&lt;/p&gt;
&lt;blockquote&gt;&lt;/blockquote&gt;
&lt;p&gt;I design &amp;amp; build timeless &amp;amp; elegant digital products.&lt;/p&gt;
&lt;p&gt;I&apos;ve used the word &lt;em&gt;timeless&lt;/em&gt; in the past to describe the epitome of what
I strive for in my product work. Software is inherently ephemeral, but
I do think there&apos;s value in producing tools which provide value for as
long as possible.&lt;/p&gt;
&lt;p&gt;I&apos;m also foregoing using the word &lt;em&gt;software&lt;/em&gt; to refer to what it is I do
any longer. From now on, I&apos;m eager for my role to be in designing and
engineering &lt;em&gt;digital products&lt;/em&gt;. I think the distinction is massive.&lt;/p&gt;
</content:encoded></item><item><title>Why React will make UI designers redundant... eventually</title><link>https://www.teejayvanslyke.com/letters/why-react-will-make-designers-redundant/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/why-react-will-make-designers-redundant/</guid><pubDate>Thu, 16 Mar 2017 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;img src=&quot;/assets/images/1280x1280/materialui-552ede4d.png&quot; alt=&quot;Material UI&quot; /&gt;&lt;/p&gt;
&lt;p&gt;A thought occurred to me today as I was knee-deep in a Material
UI codebase: For a lot of MVP&apos;s, hiring a visual
designer is largely irrelevant now.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://getbootstrap.com/&quot;&gt;Bootstrap&lt;/a&gt; popularized the idea of prefabbed
component sets, but using it relies heavily on a soup of CSS classes ugly HTML.
Because of this, most Bootstrap codebases I&apos;ve worked on turn into a confusing
mess of CSS overrides. Gross.&lt;/p&gt;
&lt;p&gt;React components eliminate that entropy. Instead of shipping a framework
consisting of complex markup that only works when used a certain way,
frameworks like Material UI are able to deliver visually challenged developers
a framework for developing pleasant-looking interfaces with ease.&lt;/p&gt;
&lt;p&gt;Obviously, great products require forward thinking visual design direction and
the aid of a dedicated designer---especially in the consumer space. And someone
needs to direct the user&apos;s experience regardless of the interface aesthetic.&lt;/p&gt;
&lt;p&gt;But for delivering rapid value, interface componentization means we&apos;re able to
develop fully-working, beautiful prototypes without full mockups.&lt;/p&gt;
&lt;p&gt;The way I see it, this trend will continue. Component sets will mature, React
will be replaced by another more powerful component-based library, and new
methods for rapid UI prototyping will emerge.&lt;/p&gt;
</content:encoded></item><item><title>How to build your own products without burning out</title><link>https://www.teejayvanslyke.com/letters/how-to-build-your-own-products-without-burning-out/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/how-to-build-your-own-products-without-burning-out/</guid><pubDate>Sat, 11 Mar 2017 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Too often we expect instant results.&lt;/p&gt;
&lt;p&gt;It&apos;s not that we &lt;em&gt;consciously&lt;/em&gt; expect things to move quickly and work out the
first time, but our brains are wired to race to the finish line without
enjoying the view along the way.&lt;/p&gt;
&lt;p&gt;I&apos;ve built so many failed products.&lt;/p&gt;
&lt;p&gt;Once I built a custom printed t-shirt site. Another time I built a note tool to
compete with Evernote. &lt;em&gt;Yeah, that was going to take off.&lt;/em&gt; And I even spent
months building an online marketplace site to compete with Craigslist.&lt;/p&gt;
&lt;p&gt;All of these are now defunct. Why? Because I wasn&apos;t in it for the experience.
I only ever wanted the cashout.&lt;/p&gt;
&lt;p&gt;I&apos;m writing this as much to remind myself as to inspire you: The only way to
succeed is to be fulfilled by the journey toward success. To create something
of value to someone else without expectation that you&apos;ll ever receive anything
in return.&lt;/p&gt;
&lt;p&gt;Instead of chasing the pot of gold, appreciate the fact you&apos;re sitting on
a rainbow.&lt;/p&gt;
&lt;p&gt;The Internet has the potential to connect you with people across the globe who
need your help to fulfill their dreams. Your help might be offering your
insight in a blog post or building a SaaS tool to help them save time, make
sales, or connect with others.&lt;/p&gt;
&lt;p&gt;It is our contribution---not our payout---which ultimately leads to our
satisfaction as developers and entrepreneurs.&lt;/p&gt;
&lt;p&gt;I&apos;ve been finding that out as I&apos;ve been building
&lt;a href=&quot;https://formbotapp.com&quot;&gt;Formbot&lt;/a&gt;. The slow trickle of new users is
discouraging at first, but then I realize how lucky I am to live in a time
where I&apos;m able to help others across the globe. Finding new ways to help them
is more gratifying than money could ever be. And I&apos;m confident that with that
attitude, money will come.&lt;/p&gt;
&lt;p&gt;What are some strategies you can use to build your new product without feeling
discouraged by the climb ahead?&lt;/p&gt;
&lt;h3&gt;Strive to help others before yourself&lt;/h3&gt;
&lt;p&gt;Instead of constantly worrying about monetization strategies, social media
outreach, and when you can retire to the beach, focus on producing something
that helps other people.&lt;/p&gt;
&lt;p&gt;Your product needn&apos;t be world-shaking to be world-changing. It could be as
simple as automating a workflow that makes you and other people more
productive.&lt;/p&gt;
&lt;p&gt;You&apos;ll smile when you see other people deriving value from what you made. And
when they do, they&apos;ll be happy to pay you for it.&lt;/p&gt;
&lt;h3&gt;Give yourself a break&lt;/h3&gt;
&lt;p&gt;If you&apos;re going to build something that other people want to use, it&apos;s going to
take time. Consistency always wins over short bursts of intensity. Do the work,
but then go live life. You&apos;ll find that when you return, you&apos;ll see things from
a renewed perspective.&lt;/p&gt;
&lt;p&gt;Just last week I was struggling to figure out what feature to build next.
Luckily, I took it upon myself to shift
gears and do some writing instead. Then suddenly, a burst of inspiration came
all at once yesterday and I shipped a whole new feature all in one day!&lt;/p&gt;
&lt;p&gt;Take a break, work on a different project for awhile, and come back. You&apos;ll be
glad you did.&lt;/p&gt;
&lt;h3&gt;Smile and enjoy the ride&lt;/h3&gt;
&lt;p&gt;I need to remind myself of this constantly. As digital creatives, we spend the
better part of our lives at the computer. Let&apos;s enjoy the time! It&apos;s an
incredible era to be alive when we&apos;re able to produce so much value from the
comfort of our homes.&lt;/p&gt;
&lt;p&gt;Would you enjoy playing a game you always won, or would it bore you after the
second or third round? Failure is critical to learning and growth, but it&apos;s
also fundamental to our ability to experience success in the first place.&lt;/p&gt;
&lt;p&gt;Now let&apos;s all go make something great. But first, let&apos;s go look out the window.
Ooh. A squirrel!&lt;/p&gt;
</content:encoded></item><item><title>How to vet a freelance developer when you aren&apos;t technical yourself</title><link>https://www.teejayvanslyke.com/letters/how-to-vet-a-developer-when-you-arent-technical-yourself/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/how-to-vet-a-developer-when-you-arent-technical-yourself/</guid><pubDate>Thu, 09 Mar 2017 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;I was at a local tech meetup. A man approached the table. &quot;Is this Tech
Tuesday?&quot;&lt;/p&gt;
&lt;p&gt;He was seeking a freelance developer who could help him finish development on
his mobile app. He&apos;d been through the ringer, having contracted with multiple
shops and each time having a terrible experience.&lt;/p&gt;
&lt;p&gt;Feeling down and out, he just wanted to find development talent he could trust
to deliver on their promises.&lt;/p&gt;
&lt;p&gt;I spent the better part of an hour listening to his needs and providing insight
into how he might go about finding the right person. And I wanted to ensure he
didn&apos;t waste any of his precious time and money on the &lt;em&gt;wrong&lt;/em&gt; person.&lt;/p&gt;
&lt;p&gt;If your background is business, you know how to deal with people better than
you know how to deal with technology. What are some ways you can use your
interpersonal skills to determine whether a developer is the right fit for your
project? How do you weed out the candidates who will end up wreaking havoc?&lt;/p&gt;
&lt;p&gt;I&apos;m a developer myself, so I&apos;m a bit naive about it. But here are some things
I&apos;d look for if I were in your shoes:&lt;/p&gt;
&lt;h3&gt;Do they have the heart of a teacher?&lt;/h3&gt;
&lt;p&gt;Do you believe with your heart and soul that your
candidate has your best interest in mind? Is their demeanor more like that of
your kindergarten teacher, or a used car salesman?&lt;/p&gt;
&lt;p&gt;Software development is a two-way engagement. It&apos;s tempting to assume you
can hand a developer a pile of requirements, wait six months, and get what you
paid for. But in reality, your relationship with them is
collaborative. Your understanding of how they build your application will prove
valuable to you long after their engagement ends.&lt;/p&gt;
&lt;p&gt;Ask them to explain how they would solve one of your core problems. And
continue to ask questions until you understand, to the point where you
could explain their explanation to someone else. If they&apos;re reluctant to engage
with you in this way, run. Fast.&lt;/p&gt;
&lt;h3&gt;Are they willing to challenge your assumptions?&lt;/h3&gt;
&lt;p&gt;My greatest asset to your business is that I&apos;m happy to tell you when you&apos;re
probably better off not building the thing you think you need. Often, the
software ou think you need to build isn&apos;t the most expedient way to your
business goals when technical realities smack you in the face.&lt;/p&gt;
&lt;p&gt;This doesn&apos;t mean you ought to find someone who is lazy or unmotivated! But you
want them to push back when you explain your needs, and to justify their
concerns.&lt;/p&gt;
&lt;p&gt;Numerous times I&apos;ve told my clients that the feature they thought they needed
next probably didn&apos;t need to be built yet. Or that there was a way to do it
that would better serve their needs for less cost.&lt;/p&gt;
&lt;p&gt;Your developer is a running expense to your business. Finding one who treats
themselves that way is critical.&lt;/p&gt;
&lt;h3&gt;Are they an effective communicator?&lt;/h3&gt;
&lt;p&gt;Building software is 90% communication and 10%
code. The end result of poor communication
in a software product is a poor product, no matter how awesome your developer&apos;s
hard skills might be.&lt;/p&gt;
&lt;p&gt;If you hire a remote developer, it&apos;s &lt;em&gt;critical&lt;/em&gt; they have excellent written
communication skills. Their work schedule might not overlap with yours to
engage in phone calls and chats. And you don&apos;t want them to rely on phone calls
because then they&apos;re burning all your money squawking on the phone instead of
building software.&lt;/p&gt;
&lt;p&gt;What you&apos;re really looking for is someone who can effectively engage you
through your project management software. Someone who can answer your questions
thoroughly, follow up regularly, and ask questions consistently.&lt;/p&gt;
&lt;p&gt;When you&apos;re getting to know your candidate, email them with a question about
a specific aspect of your project. Get a feel for how they engage in an
asynchronous (i.e., not realtime, like a phone call or chat) environment.&lt;/p&gt;
&lt;p&gt;On one extreme, you might find their responses thoughtless and overly brief.
They might not satisfy your need for clear answers.&lt;/p&gt;
&lt;p&gt;On the other hand, they might be &lt;em&gt;too&lt;/em&gt; verbose, explaining things that
needn&apos;t be explained and ultimately confusing you.&lt;/p&gt;
&lt;p&gt;Give them the benefit of the doubt, but ask yourself whether their manner of
written communication empowers you to make effective decisions about your
product. Did your test exchange leave you feeling more confident, or more
confused? How would you feel if you were relying on them to put out a fire in
your business? Would you have faith in their execution?&lt;/p&gt;
&lt;h3&gt;Ask them to explain a time they failed. Then ask how they resolved it.&lt;/h3&gt;
&lt;blockquote&gt;&lt;/blockquote&gt;
&lt;p&gt;What is defeat? Nothing but education. Nothing but the first step to something&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;better.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;&lt;/blockquote&gt;
&lt;p&gt;— Wendell Phillips&lt;/p&gt;
&lt;p&gt;Every developer (myself included—oh boy myself included) has failed at some
point in their career. We&apos;ve botched a client
deadline. We&apos;ve built the wrong feature. We&apos;ve deployed buggy code to
production. And we&apos;ve probably indirectly or directly lost our clients
customers because of those mistakes.&lt;/p&gt;
&lt;p&gt;If anything is certain in software development, it&apos;s that you&apos;ll fail. Because
of this, the critical piece when vetting a developer is finding out how they
respond to failure. Looking for a developer who has never failed will turn up
two kinds of developers: Those who have failed, and liars.&lt;/p&gt;
&lt;p&gt;Instead of facing the lost cause of finding a developer who always succeeds,
ask them how they&apos;ve responded to failure. Do they step up to address problems
irrespective of who was to blame, or do they focus on placing blame, whether on
their managers, their clients, or the technology?&lt;/p&gt;
&lt;p&gt;Failure isn&apos;t always their fault, but the attitude with which they approach
failure is an indicator of their character. Use this as a metric for
how they might react to an issue on your project.&lt;/p&gt;
&lt;h3&gt;Is their rate commensurate with the market rate in your area?&lt;/h3&gt;
&lt;p&gt;The adage is that &quot;you get what you pay for.&quot; While there are exceptions,
it&apos;s most often the case that a developer knows what they&apos;re worth. If they&apos;re
younger and just starting out consulting, a they might not necessarily know
their value in dollars per hour or
&lt;a href=&quot;/letters/why-i-stopped-billing-hourly-and-you-should-too&quot;&gt;week&lt;/a&gt;. But then too,
their lack of experience will likely be reflected in the work, whether it&apos;s now
or after months of engaging with them.&lt;/p&gt;
&lt;p&gt;Use sites like &lt;a href=&quot;http://www.payscale.com&quot;&gt;Payscale&lt;/a&gt; to determine how your
candidate&apos;s rate compares to the average salary in the area. To convert an
annual salary to an hourly rate, divide the salary figure by 1,000. For
instance, if the average salary of a Senior Ruby Developer in your area is
$100,000 per year, that comes out to $100/hour. This accounts for 20 billable
hours per week, since most freelance consultants will spend equal time
programming as they do engaging in business development, totalling to a 40-hour
workweek.&lt;/p&gt;
&lt;p&gt;If there&apos;s an obvious low rate outlier among your candidates, ask yourself
whether there might be a reason their rate is so low. Do they lack experience?
Are they eager to work with you, or desparate? Give them the benefit of the
doubt, but don&apos;t let a low price fool you into believing you&apos;re getting a great
deal!&lt;/p&gt;
&lt;h3&gt;Do they have professional references? Call them.&lt;/h3&gt;
&lt;p&gt;Always ask for the phone number of at least one professional reference. It
might be a former manager, another client, or a colleague.&lt;/p&gt;
&lt;p&gt;When you call, explain you&apos;re thinking of hiring your candidate, but that you
have a few questions and are hoping they might be able to help. If they had
a good working relationship, you&apos;ll hopefully find them eager and willing to
help.&lt;/p&gt;
&lt;p&gt;Don&apos;t know what to ask? Try these questions:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;What obstacle would have prevented you from hiring/working with them?&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;What value did they provide to your business?&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Would you recommend them to others?&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;These specific questions will help you identify:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;If there was something that gave them pause before hiring the candidate&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;What specific value the candidate provided to a real-life business&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Whether someone would go out of their way to recommend the candidate&apos;s work&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Now you have a first-hand testimonial with real talking points upon which you
can base your decision!&lt;/p&gt;
&lt;h3&gt;Get a second opinion from someone you trust.&lt;/h3&gt;
&lt;p&gt;If you know someone else in the industry whose opinion you trust, why not
hire them to help you with the process? A seasoned developer or technical
manager will have years of experience with other developers and will know what
to look for.&lt;/p&gt;
&lt;p&gt;They&apos;ll be able to review the candidate&apos;s sample code and portfolio to tell you
whether they&apos;d feel comfortable working with them.&lt;/p&gt;
&lt;p&gt;And most importantly, they&apos;ll give you an impartial opinion because you&apos;ll pay
them a fee for helping with the hiring process—not for being a prospective
candidate.&lt;/p&gt;
&lt;h3&gt;Review&lt;/h3&gt;
&lt;p&gt;When you hire your next freelance developer, consider the following:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Do they have the heart of a teacher?&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Are they willing to challenge your assumptions?&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Are they an effective communicator?&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;How do they respond to failure?&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Is their rate commensurate with the market rate in your area?&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Do they have professional references? Call them.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Hiring technical talent can be anxiety-inducing if you don&apos;t approach it with a
process that helps you filter away candidates that aren&apos;t the best fit for your
business and project. Have any techniques you like to use?&lt;/p&gt;
</content:encoded></item><item><title>So, I&apos;m the new guy in town</title><link>https://www.teejayvanslyke.com/letters/hi-im-new-in-town/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/hi-im-new-in-town/</guid><pubDate>Mon, 13 Feb 2017 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;a href=&quot;http://www.weareeug.com&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Since moving to Eugene, Oregon at the beginning of 2017, I&apos;ve been flat-out
astonished at the energy booming in the tech and creative communities here. Between
&lt;a href=&quot;https://www.meetup.com/EugeneTech/&quot;&gt;#TechTuesday&lt;/a&gt;, RAIN
Eugene, &lt;a href=&quot;https://siliconshire.org/&quot;&gt;Silicon Shire&lt;/a&gt;, and
the &lt;a href=&quot;http://eugenetech.switchboardhq.com/&quot;&gt;Eugene Tech Switchboard&lt;/a&gt;, Eugene has
an incredible infrastructure of support for developers, designers, makers, and
more.&lt;/p&gt;
&lt;p&gt;This all makes me excited
to contribute to the advancement of Eugene&apos;s status among creative cities.
I want to build tools that help our community members promote their talents
and services.&lt;/p&gt;
&lt;p&gt;That&apos;s why I built WEAREEUG.&lt;/p&gt;
&lt;p&gt;Inspired by sites like &lt;a href=&quot;http://prtlnd.com/&quot;&gt;We are PRTLND&lt;/a&gt;,
WEAREEUG is a &quot;who&apos;s who&quot; site for the Eugene creative community.&lt;/p&gt;
&lt;p&gt;The response so far has been overwhelming. To everyone so far who has created
their own profiles, I thank you for making the site glow on its very first day!&lt;/p&gt;
&lt;p&gt;If you have an idea or suggestion for the site, I&apos;d love to hear it. Send me a
message or find me in the Eugene Tech Slack. I&apos;m @teejayvanslyke.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;http://www.weareeug.com&quot;&gt;Check out WEAREEUG&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
</content:encoded></item><item><title>Use Slack&apos;s Incoming Webhooks from your Rails app</title><link>https://www.teejayvanslyke.com/letters/use-slack-incoming-webhooks-from-rails/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/use-slack-incoming-webhooks-from-rails/</guid><pubDate>Wed, 04 Jan 2017 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;a href=&quot;https://api.slack.com/incoming-webhooks&quot;&gt;Incoming Webhooks&lt;/a&gt;
are the simplest way to post messages from your
application into your users&apos; Slack channels. They use plain HTTP requests with
JSON payloads to post text messages and rich content alike.&lt;/p&gt;
&lt;p&gt;If you&apos;re building a &lt;a href=&quot;https://api.slack.com/slack-apps&quot;&gt;Slack app&lt;/a&gt;, with Rails, you probably
want to make use of incoming webhooks
to send custom message notifications about your app.
To do this, we&apos;ll authenticate your app to your user&apos;s Slack team
and extract the incoming webhook URL from the API.&lt;/p&gt;
&lt;h3&gt;Embed the &quot;Add to Slack&quot; button&lt;/h3&gt;
&lt;p&gt;If you haven&apos;t already registered your app with Slack, go to the Your
Apps page and click &quot;Create New App&quot;. Give your
app a name and click &quot;Create App&quot;.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/images/1280x1280/slack-create-an-app-15376713.png&quot; alt=&quot;Create an App&quot; /&gt;&lt;/p&gt;
&lt;p&gt;After you&apos;ve created your app, head over to the Slack
Button documentation page and scroll
down to the &quot;Add the Slack button&quot; section. There you&apos;ll find a form where you
can customize the code for embedding your Slack button. Be sure to select your
app name from the list. Also be sure the &quot;incoming webhook&quot; option is selected.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/images/1280x1280/slack-add-the-slack-button-650071f1.png&quot; alt=&quot;Add the Slack Button&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Paste the resulting code into the view where you want your user to authenticate
their Slack team with your application. You&apos;ll most likely want this to occur
after the user has already authenticated themselves with your app so they&apos;ll be
able to log back in and change their preferences.&lt;/p&gt;
&lt;h3&gt;Create a callback endpoint&lt;/h3&gt;
&lt;p&gt;When your users click the &quot;Add to Slack&quot; button, they&apos;ll be taken to a
Slack-hosted page where they&apos;ll verify that they want to give you the ability to
post to Slack on their behalf. After they confirm, Slack will redirect to an
&lt;em&gt;OAuth Redirect URL&lt;/em&gt;. This URL will receive a special code from Slack that will
grant your app access to Slack&apos;s API features, including incoming webhooks.&lt;/p&gt;
&lt;p&gt;Before we build the endpoint, add the Slack API gem to your Gemfile. I came
across two popular gems at the time of this writing. The one we&apos;ll use is the
&lt;a href=&quot;https://github.com/aki017/slack-ruby-gem&quot;&gt;slack-api&lt;/a&gt; gem:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# Gemfile
gem &apos;slack-api&apos;

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Run &lt;code&gt;bundle install&lt;/code&gt; to download the gem and load it into your app.&lt;/p&gt;
&lt;p&gt;Next, define a route in your &lt;code&gt;routes.rb&lt;/code&gt; file for our new endpoint:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# config/routes.rb
Rails.application.routes.draw do
  # ...
  get &apos;/auth/callback&apos;, to: &apos;slack#callback&apos;
end

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Then, create a corresponding controller in &lt;code&gt;app/controllers&lt;/code&gt;:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# app/controllers/slack_controller.rb
class SlackController &amp;lt; ApplicationController
  # If you&apos;re using Devise to authenticate your
  # users, you&apos;ll want to first ensure you
  before_action :authenticate_user!

  def callback
    client = Slack::Client.new
    response = client.oauth_access(
      client_id: &amp;lt;YOUR_SLACK_CLIENT_ID&amp;gt;,
      client_secret: &amp;lt;YOUR_SLACK_CLIENT_SECRET&amp;gt;,
      code: params[:code],
      redirect_uri: &quot;http://localhost:3000/auth/callback&quot;
    )

    if current_user.update_attributes(
      slack_access_token: response[&apos;access_token&apos;],
      slack_incoming_webhook_url: response[&apos;incoming_webhook&apos;][&apos;url&apos;]
    )
      redirect_to root_path
    else
      render text: &quot;Oops! There was a problem.&quot;
    end
  end
end

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;First, we create a &lt;code&gt;before_action&lt;/code&gt; which authenticates the user before entering
the controller action. It&apos;s likely you&apos;ll want to know who is clicking the &quot;Add
to Slack&quot; button so you&apos;re able to save their Slack credentials for later use
and/or discarding.&lt;/p&gt;
&lt;p&gt;Then, in the action, we create a new &lt;code&gt;Slack::Client&lt;/code&gt; object and call the Slack
API method &lt;a href=&quot;https://api.slack.com/methods/oauth.access&quot;&gt;&lt;code&gt;oauth.access&lt;/code&gt;&lt;/a&gt;
which will grant us access to the Slack access token, incoming webhook URL, and
other metadata associated with the Slack account we just authorized.&lt;/p&gt;
&lt;p&gt;You&apos;ll want to change the &lt;code&gt;client_id&lt;/code&gt; and &lt;code&gt;client_secret&lt;/code&gt;
settings to reflect the settings in your Slack app&apos;s configuration.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/images/1280x1280/slack-app-credentials-123faf00.png&quot; alt=&quot;Slack App Credentials&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Since we defined the route to our callback as &lt;code&gt;/auth/callback&lt;/code&gt; in our routes
file, you should use &lt;code&gt;http://localhost:3000/auth/callback&lt;/code&gt; (or a different port
if you&apos;re running Rails elsewhere) as the
&lt;code&gt;redirect_uri&lt;/code&gt; value. Note that you&apos;ll want to make this configurable when you
deploy this to production.&lt;/p&gt;
&lt;p&gt;You&apos;ll also want to add &lt;code&gt;http://localhost:3000/auth/callback&lt;/code&gt; to the redirect
URL field in your Slack app config panel:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/images/1280x1280/slack-oauth-settings-51100240.png&quot; alt=&quot;Slack OAuth Settings&quot; /&gt;&lt;/p&gt;
&lt;p&gt;After we call &lt;code&gt;oauth_access&lt;/code&gt;, we then update our &lt;code&gt;current_user&lt;/code&gt; record&apos;s
&lt;code&gt;slack_access_token&lt;/code&gt; and &lt;code&gt;slack_incoming_webhook_url&lt;/code&gt; attributes with the values
in the API response. You might want to store them differently in your app, so
I&apos;ve added this purely for illustration. But you&apos;ll want to store them somewhere
so you&apos;re able to access them when we post messages using the incoming webhook.&lt;/p&gt;
&lt;h3&gt;Send a message using the webhook&lt;/h3&gt;
&lt;p&gt;We&apos;ve successfully authorized our Rails app to use the Slack API on behalf of
our user. Now let&apos;s post a message using the incoming webhooks API!&lt;/p&gt;
&lt;p&gt;For demonstration, let&apos;s build an endpoint at &lt;code&gt;/post_message&lt;/code&gt; which posts the
message &quot;Hello, Slack!&quot; into the user&apos;s Slack when we visit it.&lt;/p&gt;
&lt;p&gt;First, add a route declaration:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# config/routes.rb
Rails.application.routes.draw do
  # ...
  get &apos;/auth/callback&apos;, to: &apos;slack#callback&apos;
  get &apos;/post_message&apos;, to: &apos;slack#post_message&apos;
end

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;We&apos;re going to use the &lt;a href=&quot;https://github.com/lostisland/faraday&quot;&gt;Faraday&lt;/a&gt; gem
as our HTTP client. Any HTTP client gem will do, since the incoming webhook is
just a plain HTTP request. Add it to your Gemfile:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# Gemfile
# ...
gem &apos;faraday&apos;

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;And add a new controller action to &lt;code&gt;SlackController&lt;/code&gt;:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;class SlackController &amp;lt; ApplicationController
  # ...

  def post_message
    conn = Faraday.new(url: current_user.slack_incoming_webhook_url)

    conn.post do |req|
      req.headers[&apos;Content-Type&apos;] = &apos;application/json&apos;
      req.body = { text: &quot;Hello, Slack!&quot; }.to_json
    end

    render text: &quot;Posted to Slack!&quot;
  end
end

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;First we create a new &lt;code&gt;Faraday&lt;/code&gt; connection with the URL we captured in our
callback action. Then, we &lt;code&gt;post&lt;/code&gt; to the endpoint using a JSON request body.
The payload of the request is formatted according to the specification in the
&lt;a href=&quot;https://api.slack.com/incoming-webhooks&quot;&gt;Slack Incoming Webhooks&lt;/a&gt;
documentation. Finally, we render some text to let the user know we posted to
Slack.&lt;/p&gt;
&lt;p&gt;We ought to do more error handling in the event Slack doesn&apos;t respond, but I&apos;ll
leave that as an exercise for the reader.&lt;/p&gt;
&lt;p&gt;Assuming everything is wired up, when you point your browser at
&lt;a href=&quot;http://localhost:3000/post_message&quot;&gt;http://localhost:3000/post_message&lt;/a&gt;, you&apos;ll find a new message
waiting for you in Slack!&lt;/p&gt;
&lt;p&gt;I had a tough time sifting through the Slack documentation to find
a decent Rails walkthrough, so
I hope this guide answers some of your questions.&lt;/p&gt;
</content:encoded></item><item><title>Send visitor HTML form data to Slack with Formbot</title><link>https://www.teejayvanslyke.com/letters/send-visitor-html-form-data-to-slack-with-formbot/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/send-visitor-html-form-data-to-slack-with-formbot/</guid><pubDate>Tue, 03 Jan 2017 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;img src=&quot;/assets/images/1280x1280/formbot-screenshot-abdc86c3.png&quot; alt=&quot;Formbot sends visitor HTML form data to Slack&quot; /&gt;&lt;/p&gt;
&lt;p&gt;You&apos;re using a static site generator like &lt;a href=&quot;http://www.middlemanapp.com&quot;&gt;Middleman&lt;/a&gt; or
&lt;a href=&quot;https://jekyllrb.com&quot;&gt;Jekyll&lt;/a&gt;. These tools are fantastic for building blogs and
marketing sites. But every so often you need to collect some data from your
visitors in a form.&lt;/p&gt;
&lt;p&gt;There are plenty of form tools on the web (&lt;a href=&quot;http://www.wufoo.com/&quot;&gt;Wufoo&lt;/a&gt; comes
to mind). But most of them are bloated and made for less technically minded
people. All you want is to embed a form in your site and be notified when
your visitors fill it out without having to set up a server application.&lt;/p&gt;
&lt;p&gt;Almost every time I&apos;ve built a marketing site for a new product I run into this
situation. So this week, I built a little tool called
&lt;a href=&quot;http://formbotapp.com&quot;&gt;Formbot&lt;/a&gt; that&apos;s here to help!&lt;/p&gt;
&lt;p&gt;Formbot sends the contents of your HTML form fields to any of your Slack channels.
Create a custom HTML form with any number of fields, set its &lt;code&gt;action&lt;/code&gt; attribute
to your Formbot URL, and it&apos;ll do the rest.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Want to add a Slack-enabled form to your site? &lt;a href=&quot;http://formbotapp.com&quot;&gt;Install Formbot&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
</content:encoded></item><item><title>Why I stopped billing hourly and you should too</title><link>https://www.teejayvanslyke.com/letters/why-i-stopped-billing-hourly-and-you-should-too/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/why-i-stopped-billing-hourly-and-you-should-too/</guid><pubDate>Thu, 29 Dec 2016 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;If you&apos;re like most freelance developers, you bill by the hour. I want to
show you why this isn&apos;t ideal, and suggest an alternative billing structure to
simplify your relationships with your clients.&lt;/p&gt;
&lt;p&gt;Imagine you have a client that wants to build a new application. The
specification is vague enough that you know you can&apos;t offer a waterfall-style
fixed-bid estimate. The project might rely on a third party, or might use
technologies with which you&apos;re not particularly familiar.&lt;/p&gt;
&lt;p&gt;In this case, you&apos;d typically bill your client by the hour. This insulates you
from risk because you know you&apos;ll be paid regardless of the value you deliver.
And your client is happy because they know they&apos;re only paying you for the time
you spend on their project.&lt;/p&gt;
&lt;p&gt;But there are a few less-than-ideal things that happen in an hourly billing
scenario:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Your client questions items on their invoice.&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Your invoice might say it took you 2 hours to &quot;Refactor the XYZ module&quot;, but to
your client, that doesn&apos;t translate into value for their business. Now you have
to explain how and why you spent time on what you did because your client
perceives them as unnecessary expenses instead of as part of the path toward
producing value.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;You cannot bill for time away from your desk.&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Raise your hand if you stop thinking about your work the moment you leave your
desk! I&apos;m sure your hand isn&apos;t raised. Mine sure isn&apos;t. We programmers spend
&lt;em&gt;most&lt;/em&gt; of our time thinking in one way or another about how we can improve our
chops or solve our clients&apos; problems. This is real time that goes unaccounted
for in our billing when we bill by the hour.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;You don&apos;t really bill accurately anyway.&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;How many minutes in a given billable hour do you work? How many seconds? Are
there moments where you&apos;re distracted? The truth is, no one can stay 100%
on-task for a duration of time. Creative work especially is conducted in a
manner that is sporadic and inconsistent. Billing hourly ignores this.&lt;/p&gt;
&lt;p&gt;Is the answer to conduct a comprehensive estimate and then engage your client on
a fixed-bid project basis? If your sort of work has predictable timelines
and you&apos;re comfortable with the
possibility of being underpaid, then a fixed-bid engagement might work.
But for the rest of us building applications with vague timelines and
requirements, fixed bid pricing is too risky.&lt;/p&gt;
&lt;p&gt;Re-examining the problems with hourly billing above, there&apos;s a common cause
among all of them: No one can deliver much value in one hour. So why do we use
an hour as the default unit of billable value?&lt;/p&gt;
&lt;p&gt;You feel undercompensated for all those minutes of work you inevitably spend
away from your desk. Your client feels nickled and dimed for tasks that don&apos;t
appear to contribute value to their business.&lt;/p&gt;
&lt;p&gt;Wouldn&apos;t it be simpler to
not have to think in terms of how many minutes or hours you spent working, and instead
focus your attention on &lt;em&gt;doing the work&lt;/em&gt;?&lt;/p&gt;
&lt;p&gt;We&apos;ve discussed how fixed-bid billing won&apos;t insulate us from risk. Instead of
engaging on a fixed-bid basis, let&apos;s visit the hour&apos;s longer cousins: the day,
the week, and the month.&lt;/p&gt;
&lt;p&gt;Billing by the day results in the same sort of micromanaging relationship:
If you spend an entire day doing a task which doesn&apos;t appear to have provided
any real business value but does pave the way for the following day&apos;s work,
it&apos;s difficult to effectively justify that cost to your client.&lt;/p&gt;
&lt;p&gt;Billing monthly has the opposite problem: When your client receives the invoice,
they&apos;re less likely to understand the value delivered relative to the fee
they&apos;ve paid. After a whole month, it&apos;s difficult to communicate
effectively what was done and how it benefited them.&lt;/p&gt;
&lt;p&gt;Weekly billing, though... weekly billing is gold:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;You can invoice for value.&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In one week, you can deliver tangible value that you can qualify in a sentence
on your invoice (&quot;Delivered Feature X&quot;). Your client will love this since the
value you produce is what they care about anyway.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Your deliverables are clear.&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Each week, you can discuss with your client the deliverable you want to make
the following week. This puts them in control and gives them a sense of what
your fee is buying them.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;It makes planning simple.&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Because your fee is fixed per week,
it makes financial planning for both parties simple. Your client won&apos;t be
surprised by your bill, and you won&apos;t be surprised by their expectations.&lt;/p&gt;
</content:encoded></item><item><title>Testing ES6 React components with Enzyme&apos;s shallow rendering</title><link>https://www.teejayvanslyke.com/letters/testing-es6-react-components-with-enzyme-shallow/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/testing-es6-react-components-with-enzyme-shallow/</guid><pubDate>Tue, 27 Dec 2016 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;I ran into a strange issue today when writing some assertions using the
&lt;a href=&quot;https://github.com/airbnb/enzyme&quot;&gt;Enzyme&lt;/a&gt; testing library for React.&lt;/p&gt;
&lt;p&gt;Whenever I create a new component, I like to use ES6 class notation and export
the class anonymously like this:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;// MyChildComponent.js
import React from &apos;react&apos;;

export default class extends React.Component {
  render() {
    return (&amp;lt;div&amp;gt;MyChildComponent&amp;lt;/div&amp;gt;)
  }
}

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Then, I&apos;ll render it in another component like this:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;// MyParentComponent.js
import React from &apos;react&apos;;
import MyChildComponent from &apos;./MyChildComponent&apos;;

export default class extends React.Component {
  render() {
    return (
      &amp;lt;div&amp;gt;
        &amp;lt;MyChildComponent /&amp;gt;
      &amp;lt;/div&amp;gt;
    )
  }
}

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;When testing for the presence of &lt;code&gt;MyChildComponent&lt;/code&gt; within &lt;code&gt;MyParentComponent&lt;/code&gt;
in Enzyme, I&apos;ll typically produce a test that looks like this:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;import { shallow } from &apos;enzyme&apos;;
import { expect } from &apos;chai&apos;;

import MyParentComponent from &apos;./MyParentComponent&apos;;

describe(&quot;&amp;lt;MyParentComponent /&amp;gt;&quot;, () =&amp;gt; {

  const wrapper = shallow(&amp;lt;MyParentComponent /&amp;gt;);

  it(&quot;renders a MyChildComponent&quot;, () =&amp;gt; {
    expect(wrapper.find(&apos;MyChildComponent&apos;)).to.have.length(1);
  });

});

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;But this fails! It&apos;s as if &lt;code&gt;MyChildComponent&lt;/code&gt; isn&apos;t being rendered at all.&lt;/p&gt;
&lt;p&gt;If I dump &lt;code&gt;wrapper.debug()&lt;/code&gt;
(&lt;a href=&quot;https://github.com/airbnb/enzyme/blob/master/docs/api/ShallowWrapper/debug.md&quot;&gt;doc&lt;/a&gt;)
to the console, I get this output in place of &lt;code&gt;MyChildComponent&lt;/code&gt;:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;div&amp;gt;
&amp;lt;_class /&amp;gt;
&amp;lt;/div&amp;gt;

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;It&apos;s as if Enzyme doesn&apos;t know the component is called &lt;code&gt;MyChildComponent&lt;/code&gt;!&lt;/p&gt;
&lt;h3&gt;Solutions&lt;/h3&gt;
&lt;p&gt;There are two ways to solve this.&lt;/p&gt;
&lt;h4&gt;Import the component itself and assert on it instead&lt;/h4&gt;
&lt;p&gt;Below, we import &lt;code&gt;MyChildComponent&lt;/code&gt; and then, in the assertion, use the class
constant instead of the string literal &lt;code&gt;&quot;MyChildComponent&quot;&lt;/code&gt;:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;import { shallow } from &apos;enzyme&apos;;
import { expect } from &apos;chai&apos;;

import MyParentComponent from &apos;./MyParentComponent&apos;;
import MyChildComponent from &apos;./MyChildComponent&apos;;

describe(&quot;&amp;lt;MyParentComponent /&amp;gt;&quot;, () =&amp;gt; {

  const wrapper = shallow(&amp;lt;MyParentComponent /&amp;gt;);

  it(&quot;renders a MyChildComponent&quot;, () =&amp;gt; {
    expect(wrapper.find(MyChildComponent)).to.have.length(1);
  });

});

&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;Export the named class from within the child component&lt;/h4&gt;
&lt;p&gt;As much as we should strive to write code that doesn&apos;t repeat itself, this was
the solution I ultimately chose. It turns out React is able to determine the
class name so long as you define it in the &lt;code&gt;class&lt;/code&gt; statement. Modifying
&lt;code&gt;MyChildComponent.js&lt;/code&gt; to produce a named class and then exporting it allows Enzyme
to find it in the string literal assertion:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;// MyChildComponent.js
import React from &apos;react&apos;;

class MyChildComponent extends React.Component {
  render() {
    return (&amp;lt;div&amp;gt;MyChildComponent&amp;lt;/div&amp;gt;)
  }
}

export default MyChildComponent;

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;If you can&apos;t seem to get an Enzyme assertion to find a component you know is
there, make sure Enzyme knows what sort of component it is!&lt;/p&gt;
</content:encoded></item><item><title>How to set up a test runner for modern JavaScript using Webpack, Mocha, and Chai</title><link>https://www.teejayvanslyke.com/letters/how-to-set-up-a-test-runner-for-modern-javascript/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/how-to-set-up-a-test-runner-for-modern-javascript/</guid><pubDate>Sun, 25 Dec 2016 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;We&apos;ve all been there: You&apos;re about to build another front-end feature. You
know you want to start unit testing your JavaScript. You know that because
React employs one-way data binding, it means writing tests is made easier than
the Backbone MVC days of yore. But the setup... oh my, the setup. It&apos;s
painful. There are so many tools, so much boilerplate. So you say to yourself,
&lt;em&gt;we&apos;ll do it next sprint.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;But then the regressions start mounting. Your team is frustrated when QA sends
back your work and tells you the new thing works, but that you broke 2 old
things. And so now you&apos;re back to the grind, trying to ship a working build
before the end of the week.&lt;/p&gt;
&lt;p&gt;We&apos;ve all been there, but let&apos;s put our procrastination to rest once and for all. The truth
is, JavaScript testing is more awesome than ever. It might not be as distilled
as say, Rails testing. But after reading this guide, you&apos;ll be able to go back
to your team and proudly say this is the week you start testing your
JavaScript.&lt;/p&gt;
&lt;p&gt;If you&apos;ve already read the guide, or just want to play around with some
real, working code, I&apos;ve prepared an example app here:
&lt;a href=&quot;https://github.com/guildedco/webpack-mocha-chai-example&quot;&gt;Webpack+Mocha+Chai Example&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;Tools&lt;/h3&gt;
&lt;p&gt;Right now, the landscape of tools for testing JavaScript is large. In this
guide, we&apos;re going to focus on what I&apos;ve found to be the most productive
combination:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://mochajs.org/&quot;&gt;Mocha&lt;/a&gt; to run our tests.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;http://chaijs.com/&quot;&gt;Chai&lt;/a&gt; to make assertions.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://webpack.github.io/&quot;&gt;Webpack&lt;/a&gt; to glue everything together.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Install Packages&lt;/h3&gt;
&lt;p&gt;I&apos;ll assume you&apos;re already familiar with npm, have created a &lt;code&gt;package.json&lt;/code&gt;
file, and are using it in your project. If not, here&apos;s a tutorial to get you
started.
The npm command installs packages you want to use in your application and
provides an interface for working with them. We&apos;re going to install the
packages that will support our tests. Because these packages are for our
development use only, we use the &lt;code&gt;--save-dev&lt;/code&gt; option when running npm:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;npm install --save-dev webpack mocha chai mocha-webpack

&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Create a Webpack Configuration&lt;/h3&gt;
&lt;p&gt;&lt;a href=&quot;https://webpack.github.io/&quot;&gt;Webpack&lt;/a&gt; is a module bundler for the web. You
might have used Browserify or CommonJS in the past to modularize your
JavaScript. Webpack takes this paradigm a step further and lets you produce a
dependency for just about any type of file. A full explanation of the tool is
outside the scope of this tutorial, but Ryan Christiani has a great
&lt;a href=&quot;http://ryanchristiani.com/introduction-to-webpack/&quot;&gt;Introduction to Webpack&lt;/a&gt;
tutorial to get you started.&lt;/p&gt;
&lt;p&gt;For now, create a file &lt;code&gt;webpack.config.js&lt;/code&gt; and fill it with the following:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;var webpack = require(&apos;webpack&apos;);

module.exports = {
    module: {
        loaders: [
            {
                test: /.*\.js$/,
                exclude: /node_modules/,
                loaders: [&apos;babel&apos;]
            }
        ]
    },
    entry: &apos;index.js&apos;,
    resolve: {
        root: [ __dirname, __dirname + &apos;/lib&apos; ],
        extensions: [ &apos;&apos;, &apos;.js&apos; ]
    },
    output: {
        path: __dirname + &apos;/output&apos;,
        filename: &apos;app.bundle.js&apos;
    }
};

&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Configure Babel&lt;/h3&gt;
&lt;p&gt;&lt;a href=&quot;https://babeljs.io/&quot;&gt;Babel&lt;/a&gt; is a JavaScript compiler that allows us to use
next generation JavaScript (ES6, ES7, etc) in browsers that only support
ES5. As you&apos;ll see when we begin writing tests, having ES6 &lt;code&gt;import&lt;/code&gt;
statements and fat arrow function notation (&lt;code&gt;() =&amp;gt; { }&lt;/code&gt;) will make our tests
more readable and require less typing.&lt;/p&gt;
&lt;p&gt;You&apos;ll notice, in the &lt;code&gt;loaders&lt;/code&gt; section above, we&apos;re using the &lt;code&gt;babel&lt;/code&gt; loader
to process our JavaScript. This will allow us to write our application and
test code in ES6. However, Babel requires that we configure it with &lt;em&gt;presets&lt;/em&gt;,
which will tell Babel how it should process our input code.&lt;/p&gt;
&lt;p&gt;For our example, we need just one preset: &lt;code&gt;es2015&lt;/code&gt;. This tells Babel we want to
use the &lt;a href=&quot;https://babeljs.io/learn-es2015/&quot;&gt;ECMAScript 2015&lt;/a&gt; standard so we can
use things like the &lt;code&gt;import&lt;/code&gt; and &lt;code&gt;export&lt;/code&gt; statements, &lt;code&gt;class&lt;/code&gt; declarations, and
fat arrow (&lt;code&gt;() =&amp;gt; {}&lt;/code&gt;) function syntax.&lt;/p&gt;
&lt;p&gt;To use the preset, we&apos;ll first install its package using &lt;code&gt;npm&lt;/code&gt;:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;npm install --save-dev babel-preset-es2015

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Then, we&apos;ll tell Babel to use it by creating a &lt;code&gt;.babelrc&lt;/code&gt; file:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;{
    &quot;presets&quot;: [
        &quot;es2015&quot;
    ]
}

&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Create the entry file and test Webpack configuration&lt;/h3&gt;
&lt;p&gt;Our Webpack configuration states that our entry file, the JavaScript module
Webpack will run when our bundle is included in the page, is &lt;code&gt;index.js&lt;/code&gt;. So
let&apos;s create that file now. For now, let&apos;s just alert &quot;Hello, World!&quot;. We&apos;re
not going to run this code anyway, since we&apos;re really just using this entry
file to be sure Webpack is configured properly.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;// index.js

alert(&quot;Hello, World!&quot;);

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Then we&apos;ll create an &lt;code&gt;output&lt;/code&gt; directory. This is where we&apos;ve configured
Webpack to write our bundle file:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;mkdir output

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;If we&apos;ve configured everything properly, running Webpack should spit out our
bundle file:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;webpack

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;If the file &lt;code&gt;output/app.bundle.js&lt;/code&gt; is present and you can locate our
&lt;code&gt;alert(&quot;Hello, World!&quot;)&lt;/code&gt; code in its contents, then you&apos;ve configured Webpack
successfully!&lt;/p&gt;
&lt;h3&gt;Set up the Mocha runner command&lt;/h3&gt;
&lt;p&gt;NPM has a &lt;code&gt;scripts&lt;/code&gt; configuration option that allows creating macros for
running common commands. We&apos;ll use this to create a command that will run our
test suite on the command line.&lt;/p&gt;
&lt;p&gt;In your &lt;code&gt;package.json&lt;/code&gt; file, add the following key to the JSON hash:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;{
  &quot;scripts&quot;: {
    &quot;test&quot;: &quot;mocha-webpack --webpack-config webpack.config.test.js \&quot;spec/**/*.spec.js\&quot; || true&quot;
  }
}

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;For an actual example of this command in a real &lt;code&gt;package.json&lt;/code&gt; file, see the package.json file in the example
code.&lt;/p&gt;
&lt;p&gt;Dang though, that is one hefty command. Let&apos;s go through this piece by piece.&lt;/p&gt;
&lt;p&gt;First, we&apos;re assigning this to the &lt;code&gt;test&lt;/code&gt; command. That means that when we run
&lt;code&gt;npm run test&lt;/code&gt;, NPM will execute the &lt;code&gt;mocha-webpack --webpack-config ...&lt;/code&gt;
command for us.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;mocha-webpack&lt;/code&gt; executable is a module that precompiles your Webpack
bundles before running Mocha, which actually runs your tests. Now,
mocha-webpack is designed for server-side code, but so far I haven&apos;t had any
problems using it for client-side JavaScript. Your mileage may vary.&lt;/p&gt;
&lt;p&gt;When we call the &lt;code&gt;mocha-webpack&lt;/code&gt; command, we pass it the &lt;code&gt;--webpack-config&lt;/code&gt;
option with the argument &lt;code&gt;webpack.config.test.js&lt;/code&gt;. This tells &lt;code&gt;mocha-webpack&lt;/code&gt;
where to find the Webpack configuration file to use when precompiling our
bundle. Notice that the file has a &lt;code&gt;.test&lt;/code&gt; suffix and that we haven&apos;t created
it yet. We&apos;ll do that in the next step.&lt;/p&gt;
&lt;p&gt;After that, we pass &lt;code&gt;mocha-webpack&lt;/code&gt; a glob of our test files. In this case,
we&apos;re passing it &lt;code&gt;spec/**/*.spec.js&lt;/code&gt;, which means we&apos;ll run all the test files
contained within the &lt;code&gt;spec&lt;/code&gt; folder and all folders within it.&lt;/p&gt;
&lt;p&gt;And finally, we append &lt;code&gt;|| true&lt;/code&gt; to the end of the command. This tells NPM
that in the event of an error (non-zero) exit code from the &lt;code&gt;mocha-webpack&lt;/code&gt;
command, we shouldn&apos;t assume something horrific went wrong and print a
lengthy error message explaining that something probably did. Most of the time
we run tests, a test or few will fail, resulting in a non-zero exit status.
This addition cleans up our output a bit so we don&apos;t have to read a nagging
error message each time. I&apos;m sure the NPM team meant well when they added this
message, but I think it&apos;s a bit silly we have to resort to this to remove it.
If you know a better way, leave a comment!&lt;/p&gt;
&lt;h3&gt;Create our test Webpack configuration&lt;/h3&gt;
&lt;p&gt;Because we&apos;re running our tests on the command line and not in the browser, we
need to be sure to tell Webpack that our target environment is Node and not
browser JavaScript. To do this, we&apos;ll create a specialized test Webpack
configuration which targets Node in &lt;code&gt;webpack.config.test.js&lt;/code&gt;:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;var config = require(&apos;./webpack.config&apos;);
config.target = &apos;node&apos;;
module.exports = config;

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;I also want to point out how nice it is that Webpack configurations are just
plain JavaScript objects. We&apos;re able to require our base configuration, set
the &lt;code&gt;target&lt;/code&gt; property, and then export the modified configuration. This
pattern is especially useful when producing production configuration files,
but that&apos;s a topic for another guide.&lt;/p&gt;
&lt;h3&gt;Write a basic test&lt;/h3&gt;
&lt;p&gt;It&apos;s the moment we&apos;ve been waiting for! We&apos;ve laid the foundation for testing
in our project. Now let&apos;s write a basic (failing) test to see Mocha in action!&lt;/p&gt;
&lt;p&gt;Create the &lt;code&gt;spec&lt;/code&gt; directory in your project if you haven&apos;t already. Before we
get testing React components, let&apos;s just try our hand at testing a plain old
function. Let&apos;s call that function &lt;code&gt;sum&lt;/code&gt;, and test that it does indeed sum two
numbers. I know, it&apos;s real exciting. But it&apos;ll give us confidence our
test setup is working.&lt;/p&gt;
&lt;p&gt;Create a file &lt;code&gt;spec/sum.spec.js&lt;/code&gt; with the following:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;import sum from &apos;sum&apos;;
import { expect } from &apos;chai&apos;;

describe(&quot;sum&quot;, () =&amp;gt; {
    context(&quot;when both arguments are valid numbers&quot;, () =&amp;gt; {
        it(&quot;adds the numbers together&quot;, () =&amp;gt; {
            expect(sum(1,2)).to.equal(3);
        });
    });
});

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Let&apos;s go over that one line at a time.&lt;/p&gt;
&lt;p&gt;First, we import a function called &lt;code&gt;sum&lt;/code&gt; from a module called &lt;code&gt;&apos;sum&apos;&lt;/code&gt;.
You probably guessed we&apos;re going to need to create that file. You guessed
right.&lt;/p&gt;
&lt;p&gt;Create the file &lt;code&gt;lib/sum.js&lt;/code&gt;:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;export default function() { }

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Note that we&apos;re creating the file inside the &lt;code&gt;lib&lt;/code&gt; folder. Way back in step 2,
we told Webpack that we should resolve modules in both the root folder as well
as the &lt;code&gt;/lib&lt;/code&gt; folder. We use &lt;code&gt;lib&lt;/code&gt; because it indicates to other developers
that this file is part of our application &lt;em&gt;library&lt;/em&gt; code, as opposed to a
test, or configuration, or our build system, etc.&lt;/p&gt;
&lt;h4&gt;Assertion Styles&lt;/h4&gt;
&lt;p&gt;The second line in our test file imports a function &lt;code&gt;expect&lt;/code&gt; from the Chai
module. Chai has a couple different assertion
styles which dictate how tests will be written.
Without going too far into the details, it means your tests could either read
like this:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Assert that x is 10.

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Or like this:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Expect x to be 10.

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Or like this:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;x should be 10.

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This is largely a matter of developer preference. In my time as a developer,
I&apos;ve seen the Ruby community shift its consensus from &lt;code&gt;assert&lt;/code&gt;, toward &lt;code&gt;should&lt;/code&gt;,
and now toward &lt;code&gt;expect&lt;/code&gt;. So let&apos;s settle on &lt;code&gt;expect&lt;/code&gt; for now.&lt;/p&gt;
&lt;h3&gt;Run our test suite&lt;/h3&gt;
&lt;p&gt;Now that we&apos;ve created our &lt;code&gt;spec/sum.spec.js&lt;/code&gt; file, let&apos;s go ahead and run our
&lt;code&gt;npm run test&lt;/code&gt; command:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;npm run test

&amp;gt; react-webpack-testing-example@1.0.0 test /Users/teejayvanslyke/src/react-webpack-testing-example
&amp;gt; mocha-webpack --webpack-config webpack.config.test.js &quot;spec/**/*.spec.js&quot; || true

sum
  when both arguments are valid numbers
    1) adds the numbers together

0 passing (7ms)
1 failing

1) sum when both arguments are valid numbers adds the numbers together:
  AssertionError: expected undefined to equal 3
    at Context.&amp;lt;anonymous&amp;gt; (.tmp/mocha-webpack/01b73f0d4e3c95d9c729f459c86e1fc4/01b73f0d4e3c95d9c729f459c86e1fc4-output.js:93:61)

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Success! Well, sort of. Our test runs, but it looks like it&apos;s failing because we
never implemented the &lt;code&gt;sum&lt;/code&gt; function. Let&apos;s do that now.&lt;/p&gt;
&lt;h3&gt;Make the test pass&lt;/h3&gt;
&lt;p&gt;Let&apos;s make our sum function take two arguments, &lt;code&gt;a&lt;/code&gt; and &lt;code&gt;b&lt;/code&gt;. We&apos;ll return the
result of adding both of them together, like so:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;export default function(a, b) { return a + b; }

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Now run our test again. It passes!&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;npm run test

&amp;gt; react-webpack-testing-example@1.0.0 test /Users/teejayvanslyke/src/react-webpack-testing-example
&amp;gt; mocha-webpack --webpack-config webpack.config.test.js &quot;spec/**/*.spec.js&quot; || true

sum
  when both arguments are valid numbers
    ✓ adds the numbers together

1 passing (6ms)

&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Watch for changes to streamline your workflow&lt;/h3&gt;
&lt;p&gt;Now that we&apos;ve written a passing test, we&apos;ll want to iterate on our &lt;code&gt;math.js&lt;/code&gt;
library. But rather than running &lt;code&gt;npm run test&lt;/code&gt; every time we want to check the
pass/fail status of our tests, wouldn&apos;t it be nice if it ran automatically
whenever we modified our code?&lt;/p&gt;
&lt;p&gt;Mocha includes a &lt;code&gt;--watch&lt;/code&gt; option which does exactly this. When we pass
&lt;code&gt;mocha-webpack&lt;/code&gt; the &lt;code&gt;--watch&lt;/code&gt; option, Mocha will re-run our test suite whenever
we modify a file inside our working directory.&lt;/p&gt;
&lt;p&gt;To enable file watching, let&apos;s add another NPM script to our &lt;code&gt;package.json&lt;/code&gt;:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;{
  &quot;scripts&quot;: {
    &quot;test&quot;: &quot;mocha-webpack --webpack-config webpack.config.test.js \&quot;spec/**/*.spec.js\&quot; || true&quot;,
    &quot;watch&quot;: &quot;mocha-webpack --webpack-config webpack.config.test.js --watch \&quot;spec/**/*.spec.js\&quot; || true&quot;
  }
}

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Notice how the &lt;code&gt;watch&lt;/code&gt; script just runs the same command as the &lt;code&gt;test&lt;/code&gt; script,
but adds the &lt;code&gt;--watch&lt;/code&gt; option. Now run the &lt;code&gt;watch&lt;/code&gt; script:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;npm run watch

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Your test suite will run, but you&apos;ll notice the script doesn&apos;t exit. With the
&lt;code&gt;npm run watch&lt;/code&gt; command still running, add another test to &lt;code&gt;spec/sum.spec.js&lt;/code&gt;:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;import sum from &apos;sum&apos;;
import { expect } from &apos;chai&apos;;

describe(&quot;sum&quot;, () =&amp;gt; {
    context(&quot;when both arguments are valid numbers&quot;, () =&amp;gt; {
        it(&quot;adds the numbers together&quot;, () =&amp;gt; {
            expect(sum(1,2)).to.equal(3);
        });
    });

    context(&quot;when one argument is undefined&quot;, () =&amp;gt; {
        it(&quot;throws an error&quot;, () =&amp;gt; {
            expect(sum(1,2)).to.throw(&quot;undefined is not a number&quot;);
        });
    });
});

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Save the file. Mocha will have re-run your suite, and it should now report that
your new test fails.&lt;/p&gt;
&lt;h4&gt;Reduce duplication in package.json&lt;/h4&gt;
&lt;p&gt;In the previous step, we copied and pasted the &lt;code&gt;test&lt;/code&gt; script into the &lt;code&gt;watch&lt;/code&gt;
script. While this works fine, copy and paste should bother every developer just
a little bit.&lt;/p&gt;
&lt;p&gt;Luckily, &lt;code&gt;mocha-webpack&lt;/code&gt; provides a way to specify the default options to the
command so we needn&apos;t include them in each line of our &lt;code&gt;package.json&lt;/code&gt;&apos;s
&lt;code&gt;scripts&lt;/code&gt; section.&lt;/p&gt;
&lt;p&gt;Create a new file called &lt;code&gt;mocha-webpack.opts&lt;/code&gt; in your project&apos;s root directory:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;--webpack-config webpack.config.test.js
&quot;spec/**/*.spec.js&quot;

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;And now, your &lt;code&gt;package.json&lt;/code&gt; file can be shortened like this:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;{
  &quot;scripts&quot;: {
    &quot;test&quot;: &quot;mocha-webpack || true&quot;,
    &quot;watch&quot;: &quot;mocha-webpack --watch || true&quot;
  }
}

&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;Helpful links&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://chaijs.com/api/bdd/&quot;&gt;Chai BDD API Reference&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Reference for the Chai &lt;code&gt;expect&lt;/code&gt; and &lt;code&gt;should&lt;/code&gt; chainable language for making
assertions.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://mochajs.org/&quot;&gt;Mocha Documentation&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Helpful for clarifying &lt;code&gt;describe&lt;/code&gt;/&lt;code&gt;context&lt;/code&gt; block syntax and more.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Testing with Mocha and
Webpack&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Another post about the mocha-webpack project from another developer&apos;s
perspective.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Introduction to
Webpack&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Ryan Christiani&apos;s introduction to Webpack.&lt;/p&gt;
</content:encoded></item><item><title>Install CtrlP to save time hunting for files in Vim</title><link>https://www.teejayvanslyke.com/letters/install-ctrlp-to-save-time-hunting-for-files-in-vim/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/install-ctrlp-to-save-time-hunting-for-files-in-vim/</guid><pubDate>Sun, 25 Dec 2016 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Vim is my favorite text editor. I&apos;ve used it exclusively since 2004, having
fallen in love with its near-infinite customizability and &quot;one tool, one job&quot;
philosophy.&lt;/p&gt;
&lt;p&gt;But if there&apos;s one feature that&apos;s always felt missing, it&apos;s a great fuzzy file
search. Other text editors like Atom, TextMate, and Sublime offer the user a
convenient way to search files by typing partial substrings of the full
filename. So if you have a file in &lt;code&gt;lib/foobar/baz.rb&lt;/code&gt;, typing &lt;code&gt;foobaz&lt;/code&gt; into the
fuzzy finder would find the file.&lt;/p&gt;
&lt;p&gt;This becomes &lt;em&gt;especially&lt;/em&gt; useful in the context of modern JavaScript, where
you&apos;ll often have file trees that look like this:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;reducers/todos.js
actions/todos.js
components/TodoList.js

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Using tab completion to resolve these paths works, but it&apos;s a lot of keyboard
crunching. Not the smoothest approach.&lt;/p&gt;
&lt;p&gt;Luckily, &lt;a href=&quot;http://ctrlpvim.github.io/ctrlp.vim/&quot;&gt;CtrlP&lt;/a&gt; offers a turnkey
solution.&lt;/p&gt;
&lt;h4&gt;Installation&lt;/h4&gt;
&lt;p&gt;To install CtrlP, clone it into your &lt;code&gt;~/.vim/bundle&lt;/code&gt; directory:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;git clone https://github.com/ctrlpvim/ctrlp.vim.git ~/.vim/bundle/ctrlp.vim

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Then, add it to your Vim&apos;s runtime path in your &lt;code&gt;~/.vimrc&lt;/code&gt;:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;set runtimepath^=~/.vim/bundle/ctrlp.vim

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;You&apos;ll probably also want to tell CtrlP to ignore files matching some paths by
setting the &lt;code&gt;wildignore&lt;/code&gt; option in your &lt;code&gt;~/.vimrc&lt;/code&gt;:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;set wildignore+=*/.git/*,*/.hg/*,*/.svn/*,*/build/*,*/node_modules/*

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This tells CtrlP to ignore version control meta files (Git/Mercurial/SVN), files
inside &lt;code&gt;build&lt;/code&gt; directories (I use &lt;a href=&quot;http://www.middlemanapp.com&quot;&gt;Middleman&lt;/a&gt;
frequently and it dumps its output files here), and your NPM &lt;code&gt;node_modules&lt;/code&gt;
directory. If you have other project-specific paths you don&apos;t want to show up in
your fuzzy search results, add them here.&lt;/p&gt;
&lt;h4&gt;Usage&lt;/h4&gt;
&lt;p&gt;To use CtrlP, open Vim in the root directory of the codebase of your choice and
press, well, &lt;code&gt;Ctrl+P&lt;/code&gt;. A buffer will appear at the bottom of your Vim. Type some
characters that are a part of the file you want to find, and you&apos;ll see the list
of files reduce to those matching your query. Press Return and the selected file
will open!&lt;/p&gt;
&lt;p&gt;Hopefully CtrlP will improve your workflow like it has improved mine. Reducing
the friction between your brain and your fingers is paramount in creating a work
environment that enables great work instead of getting the way. Cheers!&lt;/p&gt;
</content:encoded></item><item><title>Beware of making database queries in Goroutines</title><link>https://www.teejayvanslyke.com/letters/beware-of-making-database-queries-in-goroutines/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/beware-of-making-database-queries-in-goroutines/</guid><pubDate>Sat, 24 Dec 2016 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;The past couple days I&apos;ve been struggling to patch an issue in a client&apos;s
codebase wherein PostgreSQL is reporting the following repeatedly in my error
tracker:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;pq: sorry, too many clients already

&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;pq: remaining connection slots are reserved for non-replication superuser connections

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;In &lt;a href=&quot;/letters/too-many-connections-using-postgres-with-golang&quot;&gt;an earlier post&lt;/a&gt;, I
hypothesized that perhaps I wasn&apos;t closing connections I&apos;d opened using
&lt;code&gt;db.Query&lt;/code&gt;. While I did find some instances of this, I found that the actual
culprit was opening database connections inside of Goroutines created and run in
a &lt;code&gt;for&lt;/code&gt; loop:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;
for _, user := range users {
  go doStuff(user)
}

func doStuff(user User) {
  rows, err := db.Query(&quot;SELECT * FROM cars where user_id=$1;&quot;, user.Id)
  defer rows.Close()
}

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The above example would work just fine if not for running &lt;code&gt;doStuff&lt;/code&gt; in
concurrent Goroutines. PostgreSQL would execute the queries in series, closing
the previous connection before opening a new one. But when we tell Go to execute
them in parallel, open connections pile up and bad things happen.&lt;/p&gt;
&lt;p&gt;So: If Postgres is complaining that you&apos;ve got too many concurrent connections,
think about the architecture of your application. Is there some place where you
might be trying to execute queries in parallel? Is there any way you can
execute the queries in series? Or perhaps complete your queries ahead of the
concurrent processing?&lt;/p&gt;
&lt;p&gt;If you&apos;ve struggled with having too many concurrent open connections in your Go
application, I&apos;d love to hear how you overcame the problem.&lt;/p&gt;
</content:encoded></item><item><title>Alias your common Ruby commands for a faster workflow</title><link>https://www.teejayvanslyke.com/letters/alias-your-common-ruby-commands-for-a-faster-workflow/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/alias-your-common-ruby-commands-for-a-faster-workflow/</guid><pubDate>Wed, 21 Dec 2016 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;If you&apos;re a Rubyist, you probably use the likes of &lt;code&gt;rspec&lt;/code&gt;, &lt;code&gt;cucumber&lt;/code&gt;, &lt;code&gt;rake&lt;/code&gt;,
and other commands frequently. And it&apos;s likely that you might be running them
using &lt;code&gt;bundle exec&lt;/code&gt; to execute them in the context of your project&apos;s bundle.
After finding I was spending a lot of time typing each of these commands, I
added a few aliases to my shell config to speed up my workflow:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;alias rsp=&apos;bundle exec rspec&apos;
alias cuc=&apos;bundle exec cucumber&apos;
alias rak=&apos;bundle exec rake&apos;
alias mm=&apos;bundle exec middleman&apos;

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Paste these into your &lt;code&gt;~/.bashrc&lt;/code&gt; or &lt;code&gt;~/.zshrc&lt;/code&gt;, restart your shell, and now
running an &lt;code&gt;rspec&lt;/code&gt; test in the context of your bundle is as simple as:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;rsp spec/models/banana_spec.rb

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Have other useful aliases? Post them in the comments below!&lt;/p&gt;
</content:encoded></item><item><title>Remap ESC key in Vim for better ergonomics</title><link>https://www.teejayvanslyke.com/letters/remap-esc-key-in-vim-for-improved-ergonomics/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/remap-esc-key-in-vim-for-improved-ergonomics/</guid><pubDate>Wed, 21 Dec 2016 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;A couple months ago, I had a sharp, shooting pain in my left hand. It was right
after I switched from an Apple keyboard to using a &lt;a href=&quot;http://wasdkeyboards.com/&quot;&gt;WASD mechanical keyboard&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;After a couple weeks of pain, I realized I&apos;d been reaching my left hand to the
Escape key in Vim, probably hundreds of times per day! No wonder my hand was
hurting.&lt;/p&gt;
&lt;p&gt;I finally resolved to remapping Vim not to use the Esc key, in favor of using
the consecutive letters &lt;code&gt;jk&lt;/code&gt; in its place. Lo and behold, my pain went away.
Hopefully it resolves yours, too!&lt;/p&gt;
&lt;p&gt;To remap your Esc key like I have, add the following line to your &lt;code&gt;~/.vimrc&lt;/code&gt;:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;inoremap jk &amp;lt;esc&amp;gt;

&lt;/code&gt;&lt;/pre&gt;
</content:encoded></item><item><title>Too many connections using PostgreSQL with Golang</title><link>https://www.teejayvanslyke.com/letters/too-many-connections-using-postgres-with-golang/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/too-many-connections-using-postgres-with-golang/</guid><pubDate>Wed, 21 Dec 2016 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;If you&apos;re building a database-backed Golang application using PostgreSQL, you might come across
one or both of the following errors:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;pq: sorry, too many clients already

&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;pq: remaining connection slots are reserved for non-replication superuser connections

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Both of these errors are signs that you&apos;ve tried opening more database
connections than your PostgreSQL server can handle.&lt;/p&gt;
&lt;p&gt;It&apos;s tempting to go into your PostgreSQL server configuration and increase the
number of connections your server will accept. But that will only lead to
performance problems, especially if you&apos;re running your PostgreSQL server on a
smaller instance with less memory and CPU.&lt;/p&gt;
&lt;p&gt;More likely than the database not accepting connections being the culprit is the
possibility of your Golang code leaking database connections.&lt;/p&gt;
&lt;p&gt;Wherever you open a query connection, you&apos;re responsible for deferring a
&lt;code&gt;Close()&lt;/code&gt; call on the resulting row set:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;rows, err := db.Query(&quot;SELECT * FROM cars;&quot;)
defer rows.Close()

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;It&apos;s a good bet that somewhere, you&apos;re not closing a connection you&apos;ve opened.
Over time, this could result in your database connection pool being consumed by
idle connections. Auditing your code for queries where you&apos;re not closing the
connection afterward will help ensure your application can still connect to its
database.&lt;/p&gt;
&lt;p&gt;Depending on the size of your application, this process could take awhile. But
it&apos;s a surefire way to get things moving in the right direction.&lt;/p&gt;
</content:encoded></item><item><title>Using Gulp to generate image thumbnails in a Middleman app</title><link>https://www.teejayvanslyke.com/letters/using-gulp-to-generate-image-thumbnails-in-a-middleman-app/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/using-gulp-to-generate-image-thumbnails-in-a-middleman-app/</guid><pubDate>Wed, 21 Dec 2016 00:00:00 GMT</pubDate><content:encoded>&lt;pre&gt;&lt;code&gt;var gulp = require(&apos;gulp&apos;);
var imageResize = require(&apos;gulp-image-resize&apos;);

var paths = {
  images: &quot;source/images/**/*&quot;
}

gulp.task(&apos;images&apos;, function() {

    gulp.src([&apos;source/images/**/*.png&apos;, &apos;source/images/**/*.jpg&apos;])
        .pipe(imageResize({
            width: 538,
            height: 538
        }))
        .pipe(gulp.dest(&apos;tmp/dist/assets/images/538x538&apos;));

    gulp.src([&apos;source/images/**/*.png&apos;, &apos;source/images/**/*.jpg&apos;])
        .pipe(imageResize({
            width: 1076,
            height: 1076
        }))
        .pipe(gulp.dest(&apos;tmp/dist/assets/images/1076x1076&apos;));

});

gulp.task(&apos;watch&apos;, function() {
  gulp.watch(paths.images, [&apos;images&apos;]);
});

gulp.task(&apos;default&apos;, [&apos;watch&apos;, &apos;images&apos;]);
gulp.task(&apos;build&apos;, [&apos;images&apos;]);

&lt;/code&gt;&lt;/pre&gt;
</content:encoded></item><item><title>Fixing Postgres errors after an ungraceful shutdown on your Mac</title><link>https://www.teejayvanslyke.com/letters/fixing-postgres-errors-after-ungraceful-shutdown/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/fixing-postgres-errors-after-ungraceful-shutdown/</guid><pubDate>Tue, 20 Dec 2016 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Every so often, I&apos;m forced to shut down my Mac by holding down the power button.
When this happens, PostgreSQL often doesn&apos;t shut down properly, and when my
computer starts again it doesn&apos;t start automatically.&lt;/p&gt;
&lt;p&gt;It turns out this is because there&apos;s a stale &lt;code&gt;pid&lt;/code&gt; file kicking around inside
your PostgreSQL &lt;code&gt;var&lt;/code&gt; folder. To fix it, simply delete the &lt;code&gt;postmaster.pid&lt;/code&gt;
file. PostgreSQL will start automatically thereafter.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;rm /usr/local/var/postgres/postmaster.pid

&lt;/code&gt;&lt;/pre&gt;
</content:encoded></item><item><title>Fixing a Ruby crash using Middleman 4.1x with Ruby 2.3.0</title><link>https://www.teejayvanslyke.com/letters/fixing-ruby-crash-on-middleman-using-ruby-230/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/fixing-ruby-crash-on-middleman-using-ruby-230/</guid><pubDate>Tue, 20 Dec 2016 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;I went to update a &lt;a href=&quot;https://middlemanapp.com/&quot;&gt;Middleman&lt;/a&gt; project&apos;s gems today.
After I did, I noticed &lt;code&gt;middleman server&lt;/code&gt; exited with the following error:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Assertion failed: (!STR_EMBED_P(shared)), function str_new_frozen, file string.c, line 1075.

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This is an internal Ruby error generated from within its C source.  I found a
discussion about the topic in the Ruby
bug tracker, but that wasn&apos;t much help.&lt;/p&gt;
&lt;p&gt;Once I modified my Gemfile to use Ruby 2.3.1 and re-bundled my gems, middleman
server worked just fine.&lt;/p&gt;
&lt;p&gt;If you&apos;re running into this problem, try upgrading to a more recent Ruby and
running Middleman on it. There&apos;s a chance this bug has nothing to do with
Middleman and could be due to another gem, but I figured I&apos;d mention it here in
case someone else is having the same problem.&lt;/p&gt;
</content:encoded></item><item><title>How to bind React component event handlers in ES6</title><link>https://www.teejayvanslyke.com/letters/how-to-bind-react-component-event-handlers-in-es6/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/how-to-bind-react-component-event-handlers-in-es6/</guid><pubDate>Tue, 20 Dec 2016 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;When creating React components using ES6 class notation, you&apos;ll need to bind
event handlers passed as props to &lt;code&gt;this&lt;/code&gt;, or you&apos;ll find that the handlers will
be bound instead to the DOM element.&lt;/p&gt;
&lt;p&gt;There are a few ways to do this. You can reassign the bound handler in the
constructor:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;class MyComponent extends React.Component {
  render() {
    return (
      &amp;lt;div&amp;gt;
        &amp;lt;button onClick={this.onClick.bind(this)}&amp;gt;Click Me&amp;lt;/button&amp;gt;
      &amp;lt;/div&amp;gt;
    );
  }

  onClick(event) {
    alert(&quot;You clicked me!&quot;);
  }
}

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This works fine, but now you have &lt;code&gt;.bind(this)&lt;/code&gt; littering your otherwise
elegant JSX.&lt;/p&gt;
&lt;p&gt;To remedy that, you can use the fat arrow prototype method syntax:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;class MyComponent extends React.Component {
  render() {
    return (
      &amp;lt;div&amp;gt;
        &amp;lt;button onClick={this.onClick.bind(this)}&amp;gt;Click Me&amp;lt;/button&amp;gt;
      &amp;lt;/div&amp;gt;
    );
  }

  onClick = (event) =&amp;gt; {
    alert(&quot;You clicked me!&quot;);
  }
}

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Except... now you have two separate syntaxes for declaring methods, which could
make your code less readable and more confusing.&lt;/p&gt;
&lt;p&gt;I think the most elegant way is to use the new double-colon (&lt;code&gt;::&lt;/code&gt;) notation,
which is a shortcut for calling &lt;code&gt;.bind(this)&lt;/code&gt; on a given handler:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;class MyComponent extends React.Component {
  render() {
    return (
      &amp;lt;div&amp;gt;
        &amp;lt;button onClick={::this.onClick}&amp;gt;Click Me&amp;lt;/button&amp;gt;
      &amp;lt;/div&amp;gt;
    );
  }

  onClick(event) {
    alert(&quot;You clicked me!&quot;);
  }
}

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Now your caller is binding the method to &lt;code&gt;this&lt;/code&gt; without an ugly &lt;code&gt;.bind(this)&lt;/code&gt;
call, and the method body isn&apos;t unnecessarily decorated with fat arrow notation.&lt;/p&gt;
</content:encoded></item><item><title>Naming conventions for modern JavaScript</title><link>https://www.teejayvanslyke.com/letters/naming-conventions-for-modern-javascript/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/naming-conventions-for-modern-javascript/</guid><pubDate>Tue, 20 Dec 2016 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;If you&apos;re like me, you&apos;ve struggled to come up with a reasonable scheme for
naming things in JavaScript. I&apos;d like to share the conventions I use, with the
hope that you can put them to use in your project and never think about it
again.&lt;/p&gt;
&lt;p&gt;In my mind, there are three main types of JavaScript files:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Collections of functions&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Single functions&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Classes&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;Collections of functions&lt;/h4&gt;
&lt;p&gt;Let&apos;s say you have a couple utility functions called &lt;code&gt;add&lt;/code&gt; and &lt;code&gt;subtract&lt;/code&gt;,
each exported from a single file:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;export function add(a, b) {
  return a + b;
}

export function subtract(a, b) {
  return a - b;
}

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;When I have a group of functions like this, I name the file using &lt;code&gt;drunkenCamelCase&lt;/code&gt;,
(lowercase first letter) with a name that suggests the library&apos;s contents. This module
I&apos;d probably call &lt;code&gt;math.js&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;When I go to use one of the functions from another file, now I can refer to it
like so:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;import { subtract } from &apos;math&apos;;

console.log(subtract(5, 1));

&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;Single functions&lt;/h4&gt;
&lt;p&gt;What if you have a single helper function you want to use from a few places in
your codebase that you&apos;d like to give its own file?&lt;/p&gt;
&lt;p&gt;For instance, let&apos;s say you have a function that generates a fully-qualified URL
from a URL path:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;export default function(path) {
  return &quot;http://www.guilded.co&quot; + path;
}

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;In this case, I&apos;d name the file using drunken camel case, but would name the
file explicitly after the exported function. That way, when I go to import it
from another file, I can refer to it thusly:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;import urlFor from &apos;urlFor&apos;;

console.log(urlFor(&apos;/about.html&apos;));

&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;Classes&lt;/h4&gt;
&lt;p&gt;Now that ES6 has support for classes built into the language, there&apos;s a good
chance you&apos;ll use them to represent the stateful objects in your codebase.&lt;/p&gt;
&lt;p&gt;I like to make it clear that classes are distinct from functions, so I name them
using &lt;code&gt;CamelCase&lt;/code&gt; (capital first letter) notation:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;class MyClass {
  // ...
}

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;When producing a new file for a class, export the class directly,
omitting its name:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;export default class {
  // ...
}

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;File names for classes should be &lt;code&gt;CamelCased&lt;/code&gt; as well. So our &lt;code&gt;MyClass&lt;/code&gt; class
would be in &lt;code&gt;MyClass.js&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;If you use React, you probably know you&apos;re required to name React components in
the same &lt;code&gt;CamelCased&lt;/code&gt; format. If you use ES6 classes to construct your React
components, this convention will come in handy.&lt;/p&gt;
</content:encoded></item><item><title>Why doesn&apos;t React immediately mutate state when calling setState?</title><link>https://www.teejayvanslyke.com/letters/set-state-doesnt-immediately-mutate-state/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/set-state-doesnt-immediately-mutate-state/</guid><pubDate>Tue, 20 Dec 2016 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;When setting the state on a React component within an event handler, you&apos;ll find
that the state isn&apos;t updated if you dump the state to the console immediately
after:&lt;/p&gt;
&lt;p&gt;The React
documentation warns:&lt;/p&gt;
&lt;blockquote&gt;&lt;/blockquote&gt;
&lt;p&gt;&lt;code&gt;setState()&lt;/code&gt; does not immediately mutate this.state but creates a pending state&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;transition. Accessing &lt;code&gt;this.state&lt;/code&gt; after calling this method can potentially
return the existing value.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;&lt;/blockquote&gt;
&lt;p&gt;There is no guarantee of synchronous operation of&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;calls to setState and calls may be batched for performance gains.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;I learned today that &lt;code&gt;setState&lt;/code&gt; accepts a callback in this scenario. So
modifying &lt;code&gt;handleChange&lt;/code&gt; to the following will result in the console receiving
the updated state:&lt;/p&gt;
</content:encoded></item><item><title>So you&apos;re really good at hammers</title><link>https://www.teejayvanslyke.com/letters/so-youre-really-good-at-hammers/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/so-youre-really-good-at-hammers/</guid><pubDate>Wed, 02 Nov 2016 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;If you&apos;re about to hire a contractor to remodel your kitchen, you won&apos;t
ask them if they&apos;re really good at hammering nails.&lt;/p&gt;
&lt;p&gt;And if you hire a personal trainer, you&apos;re not going to be too interested in if
they use the latest and greatest weight machines.&lt;/p&gt;
&lt;p&gt;So why then, do software consultants often value themselves based on the tools they
use? What value is it to your clients to know you have a theoretical knowledge
of framework X, when framework Y is threatening its demise?&lt;/p&gt;
&lt;p&gt;As your customer, I already know you can hammer nails. I want to know what kind
of house you can build me. I want to know that, in the event nails suddenly
become passé, you can deliver me a functional house using screws or bolts or
glue.&lt;/p&gt;
&lt;p&gt;More often than not, your hard skills don&apos;t matter. It&apos;s your &lt;strong&gt;meta-skill&lt;/strong&gt;—
your ability to learn new skills rapidly and under pressure—that is truly
valuable.&lt;/p&gt;
&lt;p&gt;Just like hard skills, meta-skills can be learned. Through conditioning,
you can train your body and mind to be really good at learning. Here are some
things that have worked for me.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Spend an hour per day reading about the latest technologies in your discipline.&lt;/strong&gt;
Apply one of them to a side project. Ask your clients or employer if you can give a talk on one. If you
think there&apos;s a new technology that could add value to your client&apos;s project,
say so, and lobby to use it.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Adopt a product-oriented mentality.&lt;/strong&gt; Don&apos;t get caught in the weeds of
implementation. Be sure to poke your head out to make sure what you&apos;re doing
matches your product&apos;s overarching vision. Talk more and code less.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Start with the solution in mind.&lt;/strong&gt; If you&apos;re going to build a new feature,
sketch it out first and ask for feedback. It&apos;s likely you&apos;re wrong in at
least one of your assumptions. Better to make it wrong on a napkin than in
code.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Learn to distill everything in lists.&lt;/strong&gt; Developers are communicators
above all. If you are a capable analyst, you will excel no matter the
toolset. Lists convey to your team and stakeholders an itemized vision of
the future. They&apos;re easy to clarify and easy to change. And, they ultimately
produce more value than the code that spawns from them.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Don&apos;t be afraid of not doing it best way the first time.&lt;/strong&gt; On a recent
project, I was tasked with building a new user interface feature. I decided
that, since React is eating the world of web interfaces, it was time we
caught up with the times. My first release of the feature worked great for
the user, but under the hood I neglected some of the best practices I would
later learn. While we&apos;re still in the process of adopting those practices,
my code is currently chugging along in production, adding value to the
product. If we&apos;re to brave new frontiers, it&apos;s likely we&apos;ll end up
backtracking along the way.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Technologies change, but your own meta-skill will keep you valuable for your
entire life. Even if you&apos;re really good at hammers, make sure you know how to
build a house.&lt;/p&gt;
</content:encoded></item><item><title>Things I wish I&apos;d known at 20</title><link>https://www.teejayvanslyke.com/letters/what-i-wish-id-known-at-20/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/what-i-wish-id-known-at-20/</guid><pubDate>Wed, 02 Nov 2016 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;I&apos;m turning 31 in less than two weeks. In tech nerd terms, that means I&apos;m
basically
an ancient relic. There are a few
things I wish I&apos;d been told, and other things I was told but wish I had listened
to. If you&apos;re a young aspiring geek about to excitedly enter a career in technology,
maybe I can save you some heartache in your twenties.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Programming is hard, but (usually) it&apos;s not an emergency. Enjoy
yourself and don&apos;t sweat the day-to-day.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Ideas are worthless. Execution is everything.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Learn how to solve problems, not how to use the latest tech. No one ever
hired a builder because they were really good at
hammers. They hired them to
build a house.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Avoid lifestyle inflation. Live like you&apos;re middle class, even if you make
six figures. (American median income:
&lt;a href=&quot;https://en.wikipedia.org/wiki/Household_income_in_the_United_States&quot;&gt;$51,939&lt;/a&gt;)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Save six months&apos; worth of expenses in a savings account as fast as you can.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Keep your recurring expenses as low as possible. This means things like rent,
debt payments, utilities, and your gym membership.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Stay out of debt. If you&apos;re in debt, eat dog food and work until you&apos;re out.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Remember your colleague with the big house and nice car probably makes about
the same you do. Also remember they&apos;re probably stuck in their job paying for
them. Choose mobility.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Don&apos;t buy a
house
unless it&apos;s a really, really good deal. Even then, probably don&apos;t.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Commuting to an office eats more of your salary than you
think.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Fall in love. It keeps you out of bars, in bed early, and attentive to your
work.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Eat lots of vegetables. Allocate time to cook.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Invest in ergonomics. Stand at work.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Listen to others unconditionally.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Learn basic yoga postures. Practice them daily.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Take frequent breaks while working.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Drink lots of water.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;/letters/why-i-stopped-drinking-alcohol&quot;&gt;Avoid alcohol.&lt;/a&gt;
Especially chronic use, since it becomes difficult to notice its negative
effects when you&apos;re always hungover.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Track every penny you earn and every penny you
spend.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Buy a small, inexpensive, efficient car.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Run your household like a business with shareholders.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;You&apos;re going to be old and sexually undesirable someday. You&apos;re likely more
attractive now than you&apos;ll be at the end. Enjoy that.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Give to others spontaneously.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Don&apos;t let your salaried job get in the way of your own dreams.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Don&apos;t let your dreams be diluted by the day-to-day challenges of your
salaried job.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Don&apos;t let Apple tell you the things you need to buy.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Chat and email aren&apos;t actual work.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Choose clients and employers based on how you get along, not on how much you get paid.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Symbols of status matter, but the symbols aren&apos;t your car, house, or
clothes.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Enrich yourself with knowledge and art. They&apos;re inexpensive hobbies and
you&apos;ll always be fulfilled.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Your parents are wrong about a lot of things. But they&apos;re also right about
some. Choose your own path, but respect their guidance.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;The world is in peril. But it&apos;s always been that way.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Gratitude is effective therapy.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;The best time to start has already past. But the second best time is right now.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
</content:encoded></item><item><title>Why I stopped drinking alcohol</title><link>https://www.teejayvanslyke.com/letters/why-i-stopped-drinking-alcohol/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/why-i-stopped-drinking-alcohol/</guid><pubDate>Mon, 04 Jan 2016 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Disclaimer: The following is my personal account of stopping drinking. If
you&apos;re a happy drinker, I don&apos;t want to alienate you. I was once a happy
drinker myself. I wrote this post to help sort out my own feelings about alcohol
with the hope it could inspire others. I hope it&apos;s not mistaken for preachy
evangelism!&lt;/p&gt;
&lt;p&gt;There are books about how to be a better lover. Books about how to improve
your physique, how to eat healthier, how to live longer, how to become more in
touch with your spirituality, how to get more organized, how to be happier.&lt;/p&gt;
&lt;p&gt;I&apos;ve read most of them.&lt;/p&gt;
&lt;p&gt;I&apos;ve read most of them, and sometimes while reading them I had a drink in my hand.&lt;/p&gt;
&lt;p&gt;I&apos;ve spent a significant amount of time on self improvement without
ever seeing the elephant in the room: My use of alcohol (&lt;a href=&quot;/letters/leaving-my-privately-defined-world&quot;&gt;and cannabis, for that matter&lt;/a&gt;)
were decaying my potential more than any of my other behaviors were.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&lt;strong&gt;But alcohol gives you courage.&lt;/strong&gt;&lt;/em&gt; Alcohol doesn&apos;t give me courage. In the end, it makes me a coward. I feel
ashamed. By morning, I feel remorse.
Courage is the ability to take action in spite of fear.
Alcohol doesn&apos;t make me courageous. It makes me reckless.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&lt;strong&gt;But surely alcohol relaxes you.&lt;/strong&gt;&lt;/em&gt; But it made me tense to begin with. Drinkers aren&apos;t more relaxed than
non-drinkers. According to popular culture, non-drinkers are uptight. But
I&apos;ve met a lot of uptight drunks. And I sure don&apos;t feel relaxed on a Saturday
morning in the throes of a hangover.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&lt;strong&gt;But how will you socialize?&lt;/strong&gt;&lt;/em&gt; The same way I always have. I&apos;ll just be sober instead. I&apos;ll go to bars with
my friends. I&apos;ll order virgin cocktails. I&apos;ll drink soda water. Nothing will
have changed, except I&apos;ll be in control of my actions. And I&apos;ll wake up with a
smile.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&lt;strong&gt;You don&apos;t drink? That must be boring.&lt;/strong&gt;&lt;/em&gt; No, actually. Sobriety is pretty awesome.
I&apos;ve had more profound life experiences in my last few weeks of sobriety than in the
previous months using alcohol. When I&apos;m not shorting my pleasure circuit,
I&apos;m forced to seek pleasure in real-life experiences. Friendship. Adventure. Life.&lt;/p&gt;
&lt;p&gt;The alleged benefits of drinking alcohol are illusory justifications for the
continued ingestion of an addictive substance.&lt;/p&gt;
&lt;p&gt;They&apos;re the same justifications a junkie uses to get his next fix
of heroin or a smoker uses to accept his purchase of another pack.&lt;/p&gt;
&lt;p&gt;Well, no different except that we&apos;re all okay with our alcohol addictions
until catastrophe strikes.&lt;/p&gt;
&lt;p&gt;But I don&apos;t want to wait for catastrophe.&lt;/p&gt;
&lt;p&gt;I don&apos;t want to spend the best years of my life slightly numbed. I want to
feel the full breadth of my human experience. I&apos;ve spent so many of those
special occasions---the ones we&apos;re supposed to remember forever, the ones
we&apos;re supposed to cherish---inebriated.&lt;/p&gt;
&lt;p&gt;Alcohol impairs my judgment, costs me money,
wastes my time, sabotages my health,
numbs my experience, constricts my mind,
and makes me ugly. It does all of these things
without offering tangible benefits.&lt;/p&gt;
&lt;p&gt;Drinking alcohol prevents me from being the best version of myself.&lt;/p&gt;
&lt;p&gt;So I stopped.&lt;/p&gt;
</content:encoded></item><item><title>The freelancer&apos;s guide to retirement savings accounts</title><link>https://www.teejayvanslyke.com/letters/freelancers-guide-to-retirement-savings-accounts/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/freelancers-guide-to-retirement-savings-accounts/</guid><pubDate>Fri, 02 Oct 2015 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;strong&gt;Do you have enough saved for retirement for your age?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;When you&apos;re employed at a company, the details of retirement are largely
&quot;set-and-forget&quot; if you want them to be. Your 401(k) deduction is made before
you even get your paycheck and you can rest easy knowing your check next month
will come reliably. But as freelancers, it&apos;s our responsibility to provide a
fruitful retirement for ourselves.&lt;/p&gt;
&lt;p&gt;Fortunately, there are still options for the self-employed among us who want
to get a head start on saving for tomorrow.&lt;/p&gt;
&lt;h2&gt;Roth IRA&lt;/h2&gt;
&lt;p&gt;Roth IRA&apos;s are the secret sauce of retirement saving. With a Roth IRA, you
can contribute up to $5,500 per year of after-tax (&quot;take-home&quot;) money. But
then, after age 59 1/2, you can make withdrawals from the account &lt;em&gt;tax-free&lt;/em&gt;.
This means that $10,000 invested in a Roth IRA will be $76,122.60 after 30
years of 7% growth, all available to you with no tax bill!&lt;/p&gt;
&lt;p&gt;Want a great first small win on your way toward retirement savings excellence?
Open a Roth IRA with
Vanguard
and contribute to the $5,500 limit each year.&lt;/p&gt;
&lt;p&gt;Note that if your income exceeds $129,000 (if filing single), you are ineligible to contribute to
a Roth IRA. Fortunately though, there exists a sneaky technique for converting a
traditional IRA into a Roth called the Backdoor Roth
IRA. Tax loopholes
aren&apos;t just for corporate lobbyists anymore!&lt;/p&gt;
&lt;h2&gt;Traditional IRA&lt;/h2&gt;
&lt;p&gt;The traditional IRA is Roth&apos;s shy, modest cousin. With a traditional IRA, your
tax incentives are swapped. You can contribute up to $5,500 per year, tax
deductible in the year you contribute. But when you withdraw your funds after
age 59 1/2, the gains will be subject to tax at your income tax rate.&lt;/p&gt;
&lt;p&gt;The traditional IRA is a great choice if your income exceeds the $129,000
limit for a Roth IRA. It&apos;s also a good choice if you expect your retirement
income to be lower than your current income. But if you&apos;re unsure and don&apos;t
exceed the income limit for a Roth IRA, I&apos;d stick with the Roth. It&apos;s likely
the growth in your account will far exceed your contributions by the time you
retire, so it&apos;s the more tax-advantaged choice.&lt;/p&gt;
&lt;h2&gt;Solo 401(k)&lt;/h2&gt;
&lt;p&gt;The Solo 401(k), or i401(k), is the best way to minimize your taxable income.
With the i401(k), you can make employee contributions of up to $18,000 per
year, plus an additional employer match of up to 25% of your employee&apos;s
salary, up to a maximum of $53,000 per year. Plus, you can contribute up to
100% of your employee&apos;s salary.&lt;/p&gt;
&lt;p&gt;Additionally, some i401(k) plans have a Roth option, meaning you can
make an employee contribution of up to $18,000 after-tax dollars per year and
make retirement withdrawals &lt;em&gt;tax free&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;Because your i401(k) contributions are distinct from your Roth IRA
contributions, this means you can contribute up to $23,500 per year into
accounts that grow tax free. That&apos;s huge.&lt;/p&gt;
&lt;p&gt;The biggest caveat with an i401(k) is that you cannot plan to hire employees
into your business—the plan isn&apos;t permitted in businesses with common-law
employees.&lt;/p&gt;
&lt;p&gt;When I found out about the i401(k) plan, my jaw dropped to the floor. So
this is how people get rich!&lt;/p&gt;
&lt;h2&gt;Health Savings Account&lt;/h2&gt;
&lt;p&gt;&lt;em&gt;Wait, what? I thought we were saving for retirement?&lt;/em&gt; We are, but there&apos;s a
secret weapon. The Health Savings Account (HSA) is a special type of savings
account available to U.S. taxpayers enrolled in a high-deductible health plan
(HDHP). Like a traditional IRA or 401(k), funds contributed to an HSA are not
subject to federal income tax upon deposit. Funds can be withdrawn at any time
to pay for qualified medical expenses without a tax hit. HSA&apos;s
can typically be invested in similar mutual funds as in an IRA.&lt;/p&gt;
&lt;p&gt;Like it or not, we&apos;re going to have medical bills. According to Fidelity Investments, a
65-year-old couple retiring this year will need
$240,000 to cover their
future medical expenses. By regularly contributing to an HSA, you can take
control of your retirement medical care while saving money on your IRS bill.&lt;/p&gt;
&lt;p&gt;Note that in order to qualify for an HSA, you must have a high-deductible
health plan. These plans typically don&apos;t cover routine medical expenses or
preventative care. You&apos;ll want to weigh whether it makes sense to step down to
an HDHP to qualify, or if you&apos;re saving enough using other retirement
vehicles.&lt;/p&gt;
&lt;h2&gt;What Should You Do?&lt;/h2&gt;
&lt;p&gt;Because you&apos;re a freelancer with no employees and you want to maximize your tax deferral,
I recommend using a Solo 401(k) and a Roth IRA. These accounts will grow
tax-free, are relatively easy to set up, and allow contributing $23,500 in
total contributions if you&apos;re filing single.&lt;/p&gt;
&lt;p&gt;To open these accounts now, visit Vanguard:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://investor.vanguard.com/ira/roth-ira?WT.srch=1&quot;&gt;Vanguard Roth IRA&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Vanguard Individual
401(k)&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Want to Learn More?&lt;/h2&gt;
&lt;p&gt;I&apos;ve been fine-tuning my freelance business to build wealth and become
financially independent, and I want to help you do the same!
That&apos;s why I&apos;ve been writing a
book called The Freelancer&apos;s Guide to
Money---a one-stop guide to making
your freelance business work for your future.&lt;/p&gt;
&lt;p&gt;From corporate structures to saving for retirement to budgeting and beyond,
making your money work for you can be a complicated process. I want to show
you how easy it can be to get control of your freelance business&apos;s money so
you&apos;ll have enough money to retire with dignity.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;https://teejayvanslyke.com/freelancers-guide-to-money&quot;&gt;Find Out More&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
</content:encoded></item><item><title>Slack, the ultimate workday distractor</title><link>https://www.teejayvanslyke.com/letters/slack-the-ultimate-distractor/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/slack-the-ultimate-distractor/</guid><pubDate>Sat, 29 Aug 2015 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Unless you&apos;re living under a rock, you&apos;ve probably heard of or used Slack, the
now wildly popular workplace chat application that&apos;s slowly killing IRC.
It&apos;s uncommon for me to look over the shoulder of my peers and see another
chat client these days. Slack&apos;s emphasis on collaboration, clarity, and fun
make it the go-to choice for workplace chat.
Slack attempts to replace email in the work setting by creating a realtime
chat environment that gives teams an always-on channel for discussion.&lt;/p&gt;
&lt;p&gt;Don&apos;t get me wrong: Slack is an incredible tool if you work in a fast-paced,
customer-oriented environment. If you work in tech support, customer service,
sales, or sysops, Slack is indispensible for staying on top of inbound alerts
that help keep your business running day-to-day.
But when you&apos;re a programmer, designer, writer, or other creative, it&apos;s
imperative that you&apos;re granted several hours per day of uninterrupted flow.&lt;/p&gt;
&lt;p&gt;Also make no mistake: Slack is an amazing chat application. It&apos;s the best I&apos;ve
ever used. It&apos;s intuitive, friendly, fun, and engaging. I love it.&lt;/p&gt;
&lt;p&gt;But Slack represents a destructive psychological shift in the way we conduct
creative work:
The always-on always-available culture amplifies anxiety and
destroys real productivity by putting our attention up for auction in a highly
distracting and unactionable environment.&lt;/p&gt;
&lt;h2&gt;Always Available, Never In Focus&lt;/h2&gt;
&lt;p&gt;In Merlin Mann&apos;s famous Google Tech
Talk about his Inbox Zero methodology for
email processing, he explained how email has turned from a fun and exciting
new medium of exchange into the reactive centerpiece of the modern desktop.
At one time, checking your email was a once-per-day activity, something you
did when you connected your 56k modem to the Internet for an hour. Now it has
become an always-on communication center from which we draw our next actions
and conduct our day-to-day tasks.&lt;/p&gt;
&lt;p&gt;Not only does this always-on approach segment our attention from our most important
work, but it provokes a sense of constant anxiety, wherein we believe we must
respond to every message with ever-accelerating urgency.
And that&apos;s exactly why I believe Slack is the ultimate productivity killer.&lt;/p&gt;
&lt;p&gt;When there&apos;s an unspoken, implicit expectation that we&apos;ll be on Slack all day
long, we begin to measure our personal productivity in terms of our response
to chatter instead of in terms of the completion of our most critical tasks.
We lose control of our time and what was once creative, intentional work turns into
a constant stream of opinions, anecdotes, and noise.&lt;/p&gt;
&lt;h2&gt;Like Email, Slack Causes Anxiety&lt;/h2&gt;
&lt;p&gt;Studies show checking email frequently causes
anxiety.
By constantly feeding our brains new inputs about our responsibilities, we&apos;re
effectively sending ourselves into a panic about whether or not the task we&apos;re
currently attempting to complete is the most important.&lt;/p&gt;
&lt;p&gt;Slack effectively puts this anxiety on overdrive. Sitting down to implement
that new feature your investor is expecting next week? Too bad: Your teammate
needs help defining requirements for another feature and sent you a private Slack
message to ask you to help. With Slack, true heads-down focus and intention is a thing of the past.
And you can forget losing yourself in your work: Slack will make sure you
always have something more pressing (read: an opportunity for procrastination) to do.&lt;/p&gt;
&lt;h2&gt;Unlike Email, Slack Doesn&apos;t Have Threads&lt;/h2&gt;
&lt;p&gt;In Slack, you can organize your team&apos;s discussions into channels, but that&apos;s
hardly a substitute for the hard lines drawn by operating within threads in
email. If Slack truly replaces email, how do I reach Slack Zero? When I&apos;m
scanning Slack for any actionable information, I end up re-scanning
conversations numerous times to find the discussion I&apos;m looking for. Email and
project management tools don&apos;t beget that problem. They&apos;re threaded and that&apos;s
the way discussion about specific tasks and projects &lt;em&gt;should&lt;/em&gt; be.&lt;/p&gt;
&lt;p&gt;None of this is to say that realtime chat doesn&apos;t have a place in the
workplace. But I do think using Slack in place of a more rigid
communication medium is a sure recipe for losing your mind.&lt;/p&gt;
&lt;h2&gt;Solution? Check Slack Twice Per Day&lt;/h2&gt;
&lt;p&gt;That&apos;s why I&apos;m making a commitment to checking Slack as infrequently as I check my email:
Once in the mid-morning and once near the end of the day.&lt;/p&gt;
&lt;p&gt;When we reduce the number of inputs vying for our attention during
our workday, we are better equipped to focus on what we&apos;ve already
deemed our day&apos;s priorities. Let&apos;s turn off Slack, turn off email, and get
to work.&lt;/p&gt;
</content:encoded></item><item><title>Your best candidates demand to work remotely</title><link>https://www.teejayvanslyke.com/letters/your-best-candidates-demand-to-work-remotely/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/your-best-candidates-demand-to-work-remotely/</guid><pubDate>Thu, 30 Jul 2015 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Tuesday morning. It&apos;s 6:32am. You yawn. You stretch and turn over on your side.
No alarm woke you up. You, like most highly-productive people like waking early.
You rise, stretch again, and don your bathrobe. You go into the kitchen.
You press play on a podcast, leisurely cook yourself a healthy breakfast,
eat, and then make coffee. It&apos;s 7:41am.&lt;/p&gt;
&lt;p&gt;You sit at your desk and decide on your first task. You work, with no
interruptions, for 1 hour and 54 minutes. It&apos;s 9:35.&lt;/p&gt;
&lt;p&gt;Most people are still stuck in traffic,
but you just clocked nearly 2 hours of completely
uninterrupted work.&lt;/p&gt;
&lt;p&gt;You take a break to stretch and make some more coffee. You check your email,
because you know checking your email before you complete your most important
task of the day is the best way to ensure it won&apos;t get done. You process all
your email. Inbox zero. It&apos;s 10:00.&lt;/p&gt;
&lt;p&gt;You have a brief, 5-minute meeting with your team members. You
do this every morning. Once the call is over, you work again, with
laser-focus, for another hour.&lt;/p&gt;
&lt;p&gt;It&apos;s lunch time. You make a healthy salad for lunch. You spent only 28% of what
it would have cost to buy a comparable lunch at a restaurant.
You take your time washing the dishes.&lt;/p&gt;
&lt;p&gt;You decide you&apos;d like to take a walk. You take a leisurely half-hour walk
around the neighborhood. You remember you need to buy some toiletries, so
you stop at the grocery store.&lt;/p&gt;
&lt;p&gt;When you return to your house, you sit for another two hours of
uninterrupted work. Your superior is thrilled with your output. You are
thrilled with being able to work on your terms.&lt;/p&gt;
&lt;p&gt;It&apos;s 4:35. You turn off your computer and go spend time with your family and
friends.&lt;/p&gt;
&lt;p&gt;If you work remotely, it&apos;s likely you&apos;re familiar with the lifestyle I
portrayed above.
Thousands of programmers, designers, writers and other
creative professionals are working remotely and enjoying the fruits of a self-driven,
telecommute lifestyle. And thousands of companies are reaping the benefits of sourcing the
best talent by allowing them to work on their own terms.&lt;/p&gt;
&lt;h2&gt;The Best Will Demand It&lt;/h2&gt;
&lt;p&gt;If your organization doesn&apos;t allow remote work, it&apos;s not attracting the best
talent, because the best talent will demand to work remotely.&lt;/p&gt;
&lt;p&gt;Remote work is becoming more common, and your best talent isn&apos;t having
a hard time finding employment with remote-friendly employers.&lt;/p&gt;
&lt;p&gt;The best talent has invested in creating a home workspace tailored
to their personal tastes. They have created the ideal place for
their productivity to flourish, and you didn&apos;t spend a dime. They&apos;ve created
systems that enhance their unique work style and culture.&lt;/p&gt;
&lt;p&gt;Your best candidates are self-motivated, outcome-oriented people. Why would
someone self-motivated and outcome-oriented want to spend their entire day in
an office? They want to be spending their days productive when they can
be, and &lt;em&gt;enjoying life&lt;/em&gt; when they run out of steam.&lt;/p&gt;
&lt;p&gt;They recognize the finite nature of time, which is why they strive to do excellent
work for you while reserving the right to enjoy mid-day leisure.&lt;/p&gt;
&lt;p&gt;Creative knowledge work is unlike
the industrial and clerical work that came before it. There is no longer a linear
correlation between hours worked and productivity. A programmer who works eight hours in a row
will not produce twice as much as a programmer who works four hours in a row.
I have personally found that I reach my productivity ceiling at around four
hours&apos; work in a day. Why are you requiring your team to stick around for eight hours straight?&lt;/p&gt;
&lt;h2&gt;A Broader Base of Talent&lt;/h2&gt;
&lt;p&gt;According to Payscale, the median salary for a senior web developer in San
Francisco is
&lt;a href=&quot;http://www.payscale.com/research/US/Job=Senior_Web_Developer/Salary/505ed800/San-Francisco-CA&quot;&gt;$102,157&lt;/a&gt;.
In Seattle, it&apos;s
&lt;a href=&quot;http://www.payscale.com/research/US/Job=Senior_Web_Developer/Salary/37bc675e/Seattle-WA&quot;&gt;$83,903&lt;/a&gt;.
That&apos;s an $18,254 difference, and they&apos;re happy to split it with you.&lt;/p&gt;
&lt;p&gt;If you&apos;re hiring for a San Francisco company and you source your
developers from the north, you could incentivize your candidates with a $9,127
salary increase over their local Seattle options, and save $9,127 per year
compared to hiring someone in San Francisco. It&apos;s a win-win scenario for both
you and your new hire.&lt;/p&gt;
&lt;p&gt;With hyper-specialization becoming more common for technical workers, hiring
outside your local metropolitan area also means you&apos;re able to find talent
with experience that better matches your organization&apos;s needs.&lt;/p&gt;
&lt;p&gt;When you offer a relocation package, you incur the additional risk that your
new hire won&apos;t be the star player you thought they&apos;d be. You&apos;ll have lost the
airfare, the moving expenses, and the time spent interviewing and training
them. When you hire remotely, your hiring costs are minimal.&lt;/p&gt;
&lt;h2&gt;Commuting is Expensive&lt;/h2&gt;
&lt;p&gt;In America, the average commute to work is 25.5 minutes. That&apos;s 51 minutes per
day, or 4 hours and 15 minutes per week. That equates to a 10% pay cut: 4
hours of unpaid time for every 40 spent working. But that&apos;s not the worst of
it.&lt;/p&gt;
&lt;p&gt;The average per-mile cost of operating a sedan in America is
&lt;a href=&quot;http://newsroom.aaa.com/2013/04/cost-of-owning-and-operating-vehicle-in-u-s-increases-nearly-two-percent-according-to-aaas-2013-your-driving-costs-study/&quot;&gt;$0.60&lt;/a&gt;.
Assuming a 30-mile round-trip commute, that&apos;s $18 per day, or $90 per week
spent commuting, in addition to the opportunity cost of the lost time!&lt;/p&gt;
&lt;p&gt;Consider an average-salaried San Francisco senior web developer. They make
$102,157 per year. Assuming they work 50 weeks per year, for 40 hours per week,
that means their effective hourly rate is $51. When we apply their effective $51 hourly
rate to their time spent commuting, their opportunity cost lost to commuting is
4.25 hours × $51 = &lt;strong&gt;$216.75 per week&lt;/strong&gt;. That&apos;s an annual cost of
$10,837.50. Add the cost of operating the car, and their effective salary
dropped $15,337.50.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Commuting has turned your candidate&apos;s $102,157 salary into $86,819.&lt;/strong&gt; That&apos;s
a 15% effective pay cut. Armed with this knowledge, how many of your best and
brightest candidates do you think would agree to a daily commute?&lt;/p&gt;
&lt;h2&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;Remote workers enjoy a lifestyle that cannot be valued in dollars. They are
high-output, self-motivated professionals who recognize the opportunity costs
associated with mandatory office hours, and so they seek employment with firms
that also recognize these costs. The life of a remote worker is richer and less restrictive.
This richness and freedom will translate into better work for you.&lt;/p&gt;
</content:encoded></item><item><title>Using jQuery Deferred to wait for multiple Backbone models to save</title><link>https://www.teejayvanslyke.com/letters/using-jquery-deferred-to-wait-for-multiple-backbone-models-to-save/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/using-jquery-deferred-to-wait-for-multiple-backbone-models-to-save/</guid><pubDate>Tue, 28 Jul 2015 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Backbone&apos;s Model implementation is great for most things, but one thing I&apos;ve
had a hard time with is waiting for multiple models to save before proceeding.
Backbone offers a &lt;code&gt;success&lt;/code&gt; callback like this:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;model.save
  success: -&amp;gt;
    alert(&quot;We did it!&quot;)

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;You could also use the &lt;code&gt;sync&lt;/code&gt; callback like this:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;model.on &apos;sync&apos;, -&amp;gt;
  alert(&quot;We did it!&quot;)
model.save()

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;But what about when you want to wait for multiple models to finish saving, all
with their own asynchronous requests?&lt;/p&gt;
&lt;h2&gt;Don&apos;t Nest It. Chain It!&lt;/h2&gt;
&lt;p&gt;The jQuery Deferred object is a chainable utility object that can register
multiple callbacks to relay the success or failure state of an asynchronous
operation. Lucky for us, Backbone&apos;s &lt;code&gt;model.save()&lt;/code&gt; method returns a jqXHR
object, which implements the Deferred API. This means that instead of writing
this:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;model.save
  success: -&amp;gt;
    alert(&quot;We did it!&quot;)

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;We can write this:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;model.save().done(-&amp;gt; alert(&quot;We did it!&quot;))

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;That&apos;s a nice bit of syntactic sugar, but it still doesn&apos;t address our
original problem: How can we wait for multiple models to save, and &lt;em&gt;then&lt;/em&gt; fire
the callback to alert the user?&lt;/p&gt;
&lt;h2&gt;Tell Me When You&apos;re All Done&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;jQuery.when&lt;/code&gt; allows us to combine multiple Deferred objects into one
aggregate Deferred object, such that we can chain callbacks to be executed
&lt;em&gt;only when all the objects have resolved&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;For sake of example, let&apos;s say we have a collection of 3 Backbone models we&apos;d
like to save:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;collection = new MyCollection([{name: &quot;Steve&quot;}, {name: &quot;Dave&quot;}, {name: &quot;Tom&quot;}])

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Remember that Backbone&apos;s &lt;code&gt;model.save()&lt;/code&gt; returns a jqXHR object, which acts as
a Deferred. So we can run:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;xhrs = collection.map (model) -&amp;gt; model.save()

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This will create an array &lt;code&gt;xhrs&lt;/code&gt; containing the jqXHR objects for each
individual save operation. To alert the user when all of them complete, we can
use &lt;code&gt;jQuery.when&lt;/code&gt;:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;jQuery.when(xhrs...).done(-&amp;gt; alert(&quot;All of them are saved!&quot;))

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; The splat (&lt;code&gt;...&lt;/code&gt;) syntax above is required to split the &lt;code&gt;xhrs&lt;/code&gt; array
into separate arguments. This had me stumped---without the splat, jQuery
treats the array as a single Deferred object, which obviously doesn&apos;t execute
the callbacks in the same manner as multiple jqXHR objects.&lt;/p&gt;
&lt;h3&gt;And Tell Me When One of You Failed&lt;/h3&gt;
&lt;p&gt;We can also use Deferred&apos;s &lt;code&gt;fail()&lt;/code&gt; method to alert the user that one or more
of the save operations failed:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;jQuery.when(xhrs...).
  done(-&amp;gt; alert(&quot;We succeeded!&quot;)).
  fail(-&amp;gt; alert(&quot;We failed.&quot;))

&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;The jQuery Deferred API is a powerful way to elegantly wait for the completion
of asynchronous operations in your Backbone application. While it&apos;s tempting to
resort to workarounds like using &lt;code&gt;setTimeout&lt;/code&gt; to wait an arbitrary amount of
time for operations to complete, using &lt;code&gt;jQuery.when&lt;/code&gt; means you don&apos;t introduce
race conditions into your application.&lt;/p&gt;
&lt;p&gt;If you have any questions or if something isn&apos;t working as described above,
please leave me a comment. I&apos;ll try my best to answer as soon as I can.&lt;/p&gt;
</content:encoded></item><item><title>How to authenticate Instagram in a command line application</title><link>https://www.teejayvanslyke.com/letters/authenticating-instagram-in-a-command-line-application-with-ruby/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/authenticating-instagram-in-a-command-line-application-with-ruby/</guid><pubDate>Thu, 23 Jul 2015 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;img src=&quot;/assets/images/1280x1280/blog/instagram-cookie-f6978d1e.jpg&quot; alt=&quot;Instagram&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Instagram uses OAuth to authenticate, meaning it can be kind of a drag to use
its API if you don&apos;t want to build a web application. Building the simplest
interface you can build to achieve your application&apos;s goals is one of the best
ways to streamline your development process. And the simplest and cheapest
interface is often the command line.&lt;/p&gt;
&lt;p&gt;But because the OAuth handshake requires a web callback to operate, it can be
cumbersome to build this authentication into a command line application.
Below, I&apos;ll show you how to do it with only a little bit of annoyance.&lt;/p&gt;
&lt;h2&gt;Create an Instagram API Client&lt;/h2&gt;
&lt;p&gt;First, you&apos;ll want to go ask Instagram nicely for an API Client ID so you can get
access to the Instagram API. Go to their developer
portal and click &apos;Manage Clients&apos; to add a
new one.&lt;/p&gt;
&lt;p&gt;When asked for URL&apos;s, feel free to use non-existent domains. I use
&lt;code&gt;guilded.dev&lt;/code&gt; for mine.&lt;/p&gt;
&lt;p&gt;In the Security tab, be sure to uncheck &quot;Disable implicit OAuth&quot;. This will
allow you to connect to the API without requiring an explicit server-side
post, meaning we can hijack the access token from the callback URL:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/images/1280x1280/blog/instagram-disable-implicit-oauth-918e460a.png&quot; alt=&quot;Uncheck &apos;Disable implicit OAuth&apos;&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Make a Firm Handshake&lt;/h2&gt;
&lt;p&gt;So what are you to do when you can&apos;t redirect your terminal window to
Instagram so you can authorize your account? A little bit of copy-pasta.
Here&apos;s what we&apos;re going to do:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Generate an Instagram authorization URL and ask the user to paste
it into their browser.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;The user will authenticate their Instagram account like usual. They&apos;ll be
redirected to our dummy Redirect URI.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;We&apos;ll prompt the user for their newly-issued access token. Because we
unchecked &quot;Disable implicit OAuth&quot; in our Instagram client configuration, the
access token will be appended to the redirect URI. We&apos;ll ask them kindly to
copy and paste it into the terminal.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;We&apos;ll be authenticated to Instagram in the terminal!&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code&gt;require &apos;instagram&apos;

Instagram.configure do |config|
  config.client_id = &quot;YOUR CLIENT ID&quot;
  config.client_secret = &quot;YOUR CLIENT SECRET&quot;
end

# Generate an Instagram authorization URL
puts &quot;Visit the Instagram OAuth URL below to get started:\n&quot;
puts &quot;&quot; + ::Instagram.authorize_url(
  redirect_uri: &quot;http://guilded.dev/instagram/callback&quot;
  response_type: &apos;token&apos;
)

# Prompt the user for their newly-issued access token.
puts &quot;Enter the access token at the end of the redirect URL.\nYou&apos;ll find it after the &apos;#access_token=&apos; in the URL.&quot;
access_token = gets.strip

# Create an Instagram client with the access token.
client = Instagram.client(access_token: access_token)

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Now you should have an authenticated Instagram client. Use the Ruby Instagram
API as usual:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;for media_item in client.user_recent_media
  puts media_item.images.thumbnail.url
end

&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Store Your Access Token&lt;/h2&gt;
&lt;p&gt;Of course, requiring entering the access token each time we use our Instagram command line
application is going to annoy our user. What if we could store the access
token on the first authentication so we could use it for subsequent runs?&lt;/p&gt;
&lt;p&gt;For this example, we&apos;ll store the access token in a file called
&lt;code&gt;.instagram-access-token&lt;/code&gt;. Depending on your application, you might want to
use an existing YAML configuration file or another method.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;require &apos;instagram&apos;

# Configure the Instagram gem the same way we did above:
Instagram.configure do |config|
  config.client_id = settings.instagram_client_id
  config.client_secret = settings.instagram_client_secret
end

# If there&apos;s an access token saved to the file, then read it.
if File.exists?(&quot;.instagram-access-token&quot;)
  access_token = File.read(&quot;.instagram-access-token&quot;)
else
  # Otherwise, generate one
  puts &quot;Visit the Instagram OAuth URL below to get started:\n&quot;
  puts &quot;&quot; + ::Instagram.authorize_url(
    redirect_uri: &quot;http://guilded.dev/instagram/callback&quot;
    response_type: &apos;token&apos;
  )

  # Prompt the user for their newly-issued access token.
  puts &quot;Enter the access token at the end of the redirect URL.\nYou&apos;ll find it after the &apos;#access_token=&apos; in the URL.&quot;
  access_token = gets.strip

  # And save the token to the file for the next use:
  File.open(&quot;.instagram-access-token&quot;, &apos;w&apos;) do |file|
    file.write(access_token)
  end
end

# Create an Instagram client with the access token.
client = Instagram.client(access_token: access_token)

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;As you can see above, we first check to see if there&apos;s an access token saved
in our &lt;code&gt;.instagram-access-token&lt;/code&gt; file. If there is, we skip the handshake
process altogether. If not, we initiate the handshake.&lt;/p&gt;
&lt;p&gt;Note that for the purposes of simplifying the example, I&apos;ve left out some
error handling for invalid access tokens. You&apos;ll want to verify that the
access token stored is valid and go through the handshake process again if you
cannot connect.&lt;/p&gt;
&lt;h2&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;Building a command line application for Instagram is fairly easy, assuming
you&apos;re able to build the authentication in a way that doesn&apos;t confuse your
user. If you&apos;re just building a tool for personal use, this is a great way to
create real value without incurring the burden of building a full-blown web application.&lt;/p&gt;
&lt;p&gt;If you have questions or if something is unclear, please leave a comment below
and I&apos;ll do my best to answer you.&lt;/p&gt;
</content:encoded></item><item><title>Software is 10% Code</title><link>https://www.teejayvanslyke.com/letters/software-is-10-percent-code/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/software-is-10-percent-code/</guid><pubDate>Thu, 16 Jul 2015 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Building software is about programming, right? Day to day, we turn caffeine into
code. We spend countless hours
reading about new programming languages, techniques, and platforms. We engage in
conferences, get into arguments about whose stack performs better, and scour
Stack Overflow for the answers to our problems.&lt;/p&gt;
&lt;p&gt;But none of that is programming. In fact, &lt;em&gt;all&lt;/em&gt;
of it—reading blogs, attending conferences, arguing, research—all of these
activities are, at their core, interpersonal communication.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;A good programmer knows the hottest programming language is English.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;(Disclaimer: I speak English natively. Feel free to substitute your native
tongue. I have no bias toward English and don&apos;t mind pressing &apos;1&apos;.)&lt;/p&gt;
&lt;p&gt;Our stakeholders
communicate their vision by telling us about it—in English. We capture
their vision for development into well-crafted user stories—in English. We
write our Stack Overflow questions in English, chat on Slack in English, and
report bugs in English. So why do we look to
techno-wizardry as solutions to problems whose root is likely poor team
communication?&lt;/p&gt;
&lt;h2&gt;Bad Writing is a Meeting Factory&lt;/h2&gt;
&lt;p&gt;Being able to articulate a thought in writing means your team gets to take advantage
of asynchronous communication. Whereas meetings are &lt;em&gt;synchronous&lt;/em&gt;—
requiring all parties to be present and engaged for the duration of the
communication event—written communication is &lt;em&gt;asynchronous&lt;/em&gt;, meaning the
recipient can address your request or idea on their own time.&lt;/p&gt;
&lt;p&gt;Understanding this distinction can save your team hours each day. If you&apos;re
about to hold a meeting, ask whether it&apos;s because you don&apos;t feel confident
writing an email to address the topic. Some topics are best discussed in
person: &quot;big picture&quot; decisions and human resources concerns are a couple. But
most technical decision-making is better left to the great text file in the
sky.&lt;/p&gt;
&lt;h2&gt;Great Writing is Documentation&lt;/h2&gt;
&lt;p&gt;When ideas are birthed in writing, they&apos;re already documented. There&apos;s no need
for a secretary in an email thread. No one need spend time writing meeting
minutes or informing the team of decided action items. Your Slack channels are
searchable.&lt;/p&gt;
&lt;p&gt;This means that if we spend time to compose our thoughts concisely—if we
re-read our message before sending and ensure we&apos;ve articulated our thought as
succinctly as we can muster—we have created a valuable artifact. We have
contributed to our team&apos;s canon.&lt;/p&gt;
&lt;h2&gt;Resources for Better Writing&lt;/h2&gt;
&lt;h3&gt;The Elements of Style&lt;/h3&gt;
&lt;p&gt;Strunk &amp;amp; White&apos;s classic prescriptive style guide &lt;em&gt;&lt;a href=&quot;http://www.amazon.com/The-Elements-Style-Fourth-Edition/dp/020530902X&quot;&gt;The Elements of Style&lt;/a&gt;&lt;/em&gt; comprises &quot;eight elementary
rules of usage&quot;, ten &quot;elementary principles of composition&quot;, &quot;a few matters of
form&quot;, a list of 49 &quot;words and expressions commonly misused&quot;, and a list of 57
&quot;words often misspelled.&quot; It&apos;s often cited as the standard for learning great writing
style. I once kept a copy on my nightstand.&lt;/p&gt;
&lt;h3&gt;How to Win Friends and Influence People&lt;/h3&gt;
&lt;p&gt;Dale Carnegie&apos;s &lt;em&gt;&lt;a href=&quot;http://www.amazon.com/How-Win-Friends-Influence-People/dp/0671027034/ref=sr_1_1?s=books&amp;amp;ie=UTF8&amp;amp;qid=1437080021&amp;amp;sr=1-1&amp;amp;keywords=how+to+win+friends+and+influence+people&quot;&gt;How to Win Friends and Influence People&lt;/a&gt;&lt;/em&gt; will help you adopt
interpersonal skills to help win people to your way of thinking. Carnegie
stresses that showing respect for other people&apos;s opinions and trying honestly
to see things from the other person&apos;s point of view can dramatically change
the way others perceive you. I think this is especially relevant to writing
software, since there are often different but comparably adequate ways of
approaching the same problem. Seeking to understand your team members&apos; differing
opinions can help you reach consensus. Adopting a sympathetic and concise
writing style can help you do that.&lt;/p&gt;
&lt;h3&gt;Influence: The Psychology of Persuasion&lt;/h3&gt;
&lt;p&gt;This is the classic book on the science of
persuasion. A word of warning: The
tactics in this book can be (and are) used for some horribly manipulative
things. But understanding the fundamentals of persuasion, how to coerce
others, and how to defend against coercion, can be beneficial in your
team diplomacy efforts.&lt;/p&gt;
&lt;p&gt;One of the principles Cialdini covers, &lt;strong&gt;the contrast principle&lt;/strong&gt;, can be used
to dramatic effect when working with clients. The principle states that if we
see two things in sequence that are different from one another, we will tend
to see the second one as more different from the first than it actually is.
This means that if we know Approach 1 is costly, but offer a more costly
Approach 2 beside it, the client will likely accept Approach 1 by contrast.
Consider the contrast principle when making proposals. It&apos;s likely you&apos;ll see
an improvement in your team&apos;s buy-in to your ideas. Just don&apos;t take advantage
of it.&lt;/p&gt;
&lt;h2&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;When hiring technical talent, the first thing I look for is strong verbal
communication skills. Being able to articulate ideas in writing is more
valuable than technical skills because humans think in terms of and react to
stories. Being able to tell stories that captivate your team and your
customers creates consensus. When consensus is reached, the technicalities
fall into place.&lt;/p&gt;
&lt;p&gt;Writing is critical to your remote project because you don&apos;t get much face time.
If you sign up for my free email course, I&apos;ll
send you 12 patterns to make your remote team better. &lt;a href=&quot;/about&quot;&gt;Sign up for free&lt;/a&gt;&lt;/p&gt;
</content:encoded></item><item><title>Mallsterbating</title><link>https://www.teejayvanslyke.com/letters/mallsterbating/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/mallsterbating/</guid><pubDate>Wed, 16 Apr 2014 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;img src=&quot;/assets/images/1280x1280/mallsterbating-c8a63607.jpg&quot; alt=&quot;Destiny USA&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Photo is of Destiny USA, a shopping mall in Syracuse, New York formerly
known as Carousel Center.&lt;/p&gt;
&lt;p&gt;I grew up in several small towns scattered across western New York State. My
childhood was one spent predominantly in the 1990s, a time of seeming economic
prosperity. The shining beacon of consumer confidence in that period was the
&lt;strong&gt;all-holy shopping mall&lt;/strong&gt;. The veritable consumer church.&lt;/p&gt;
&lt;p&gt;Raised in a typical, middle-class American family with a mother and a father,
three children, a cat, two cars, a three-bedroom house, a pool, two incomes,
and a healthy dose of suburban teenage angst, there were truly two escape
hatches presented to the apprehensive adolescent: drugs &amp;amp; the mall. As a
teenager, I
never much fancied the idea of psychoactive substances and would not find my
way into their clutches until later in life. At age sixteen, the mall offered
emancipation from parents I didn&apos;t know I was lucky to have. A town square for
the new recruits of the consumer class.&lt;/p&gt;
&lt;p&gt;I have childhood memories of sitting on mall benches unboxing the latest computer games (Jedi Knight comes to mind), of
meeting my family for dinner at the food court (I fucking loved Arby&apos;s), and
my first awkward makeout sessions in the back of a matinee screening of The
Crocodile Hunter: Collision Course. It is a unique condition of the consumer
generations to &lt;strong&gt;feel nostalgic for time spent in shopping malls&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;In college, I began experimenting with marijuana. Without going into too
much detail about my experiences with the drug, one of the most notable
effects was the gentle euphoric high I&apos;d encounter when reminded of
a favorable past event.&lt;/p&gt;
&lt;p&gt;Fast forward to 2008. I&apos;d been living in Portland for a few months and needed
to shop for some clothes. I decided to shop the Lloyd Center mall near the
city center. I took a few hits off my small pipe before entering. As soon as
I walked in, the familiar &lt;strong&gt;mall smell&lt;/strong&gt; hit my olfactory receptors and I was
overcome with nostalgic euphoria and a sense of childish wistfulness. I
was immediately drawn to stores which I&apos;d frequented in my youth: Spencer
Gifts, Hot Topic, EB Games. Somehow, despite my age, the experience gave me a sense of
fullness. I&apos;d walk into Barnes &amp;amp; Noble and immediately recount past
experiences of shopping for books with friends in high school, of sipping my
first Starbucks coffee in the cafe, of loitering because there was nothing
else to do.&lt;/p&gt;
&lt;p&gt;Soon, the prospect of rekindling that feeling became a mild addiction. I&apos;d go
&lt;strong&gt;mallsterbating&lt;/strong&gt; at least once a month. I&apos;d bring my laptop so I could sit
in the food court and work on projects stoned out of my mind. I&apos;d
people-watch. I&apos;d eat the shitty Chinese food and I&apos;d loiter on benches.
I&apos;d seek out new malls -- mallsterbating in new cities was always my favorite.
And, aside from the occasional coffee or lunch, I&apos;d never spend a dime. Who
shops in malls anymore, anyway?&lt;/p&gt;
&lt;p&gt;I gave up my mallsterbating habit, but I&apos;ll always remember it as one
of the most bizarre life experiences I&apos;ve ever had. That I could trigger
profound reminiscience of my youth with a couple tokes and a walk through a
shopping mall is a testament to the virtues of enjoying simple pleasures.&lt;/p&gt;
</content:encoded></item><item><title>Leaving my privately defined world</title><link>https://www.teejayvanslyke.com/letters/leaving-my-privately-defined-world/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/leaving-my-privately-defined-world/</guid><pubDate>Fri, 18 Oct 2013 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;img src=&quot;/assets/images/1280x1280/potleaf-962c1941.png&quot; alt=&quot;Leaving my privately defined world&quot; /&gt;&lt;/p&gt;
&lt;p&gt;My relationship with marijuana began like most teenagers.
It was April 20th of my freshman year of college. My friends
invited me to try taking rips from a three-foot
blue-and-white bong filtered with ice during a break between classes.
Being on the open-minded side of
cautious, I asked myself what the harm was. And, as is allegedly typical
among first-timers, I didn&apos;t get high. But my friends promised me I would if I
had another go. So, a few days later I took a few hits from a small pipe. I
remember the experience vividly. Music suddenly had a rejuvinated profundity,
as if every deliberation of Cedric Bixler-Zavala&apos;s vocal melodies on the
sophomore Mars Volta album &lt;em&gt;Frances The Mute&lt;/em&gt; were
just for me. When I closed my eyes, intense visual hallucinations spun on my
eyelids, as if some part of my brain lay dormant, awaiting a rush of
cannabanoids to unlock its gate.&lt;/p&gt;
&lt;p&gt;As a rookie stoner, most basic tasks were unfathomable under the spell of the
drug. I have memories of sitting in my car in a parking garage, watching the
shapes of music take form on the canvas of my mind. I&apos;d sit for a half hour,
terrified at the prospect of interacting with other humans but content within
the confines of my newfound cognitive adventure. I was hooked. But what did
&quot;hooked&quot; mean, exactly? I certainly wasn&apos;t &lt;em&gt;addicted&lt;/em&gt;. I didn&apos;t &lt;em&gt;need&lt;/em&gt;
marijuana in my life like a junkie needs heroin. I could function just fine
without it. When I&apos;d travel or visit family, I never craved cannabis.
Marijuana just &lt;em&gt;made everything better&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;And, as so many users continue to believe, I thought it &lt;em&gt;made me better, too&lt;/em&gt;.
I felt more creative, more compassionate, and more grounded when
under the influence of the drug. I had a sense of euphoria and oneness. It was
as if I&apos;d discovered a whole new mode of being.&lt;/p&gt;
&lt;p&gt;Public perception of marijuana, especially in the United States, is becoming
increasingly positive. 65 percent of adults between the ages of 18 and 32
support Marijuana legalization according to a Pew Research Center
poll.
In 2012, Washington and Colorado became the first states to legalize marijuana
for recreational use. 20 states, along with the District of Columbia, have
legalized marijuana for medical
use.
Pro-pot campaigns compare statistics surrounding the dangers of alcohol in
defense of recreational cannabis legalization.
&lt;a href=&quot;http://www.youtube.com/watch?v=MyynQQbjjAU&quot;&gt;A clever campaign video&lt;/a&gt; produced
by a campaign organization for a marijuana referendum in British Columbia
even goes as far as to compare alcohol to Microsoft and cannabis to Apple.
With this kind of media acceptance, it&apos;s no wonder we&apos;re all toking.&lt;/p&gt;
&lt;p&gt;After I finished college in 2007, I packed up and headed west. Here in
Portland, I found a community of activists dedicated to the legalization
movement, many of whom are medical marijuana cardholders. Despite still being
illegal for recreational use in the state of Oregon, cannabis is as easy to obtain and
less expensive per &quot;dose&quot; than alcohol. It also bears just about as much
social stigma as alcohol, making it just another staple at house parties, on
bar patios, and, as it would turn out, my living room.&lt;/p&gt;
&lt;p&gt;In 2010, I purchased a marijuana vaporizer, an electronic device which heats plant matter
to a temperature high enough to vaporize the active compounds in
cannabis, but not high enough to combust the plant matter. This method of cannabis
ingestion is arguably safer since fewer hazardous carcinogens are inhaled.
Soon, I had a veritable marijuana &lt;em&gt;appliance&lt;/em&gt; which became another
&quot;productivity tool&quot; alongside my coffee cup. And the fact that my method of
ingestion was physically harmless meant I saw no issue in more frequent use.&lt;/p&gt;
&lt;p&gt;Calling cannabis a &quot;productivity tool&quot; may seem contradictory when I earlier
mentioned I had trouble performing even the most basic tasks under the
influence of the drug. As with all psychoactive substances, cannabis users
experience diminishing returns as their bodies build tolerance to the drug and require
more to achieve the same effect. In fact, many of the pleasant
hallucinatory effects I mentioned earlier ceased within my first six months of
use. Eventually, the cannabis high became less like a trip and more like a buzz.&lt;/p&gt;
&lt;p&gt;Creatives profess achieving a state of
&lt;a href=&quot;http://en.wikipedia.org/wiki/Flow_(psychology)&quot;&gt;flow&lt;/a&gt;, wherein they are
fully immersed in their work with energized focus and enjoyment. Cannabis
appeared to provide further immersion, to the point where I could sit at my
computer for hours and produce without ever acknowledging the world beyond my
screen. It also appeared to enhance my spatial reasoning abilities, a
cornerstone of software engineering aptitude. I now know all of these apparent
benefits to be erroneous.&lt;/p&gt;
&lt;p&gt;In actuality, the alleged benefits of cannabis with respect to productivity
and creativity are fabrications of the mind. In the same way cannabis conjures
increased appreciation and admiration for art and music, so too it
materializes false grandeur in the creative process. It&apos;s not that my ideas
or execution were any better when I was stoned. They just appeared that way. At least, for
the duration of the high.&lt;/p&gt;
&lt;p&gt;Looking back, I realize most of the time I spent high I actually wasn&apos;t
relaxed, euphoric, or productive. And it wasn&apos;t even enjoyable. I experienced,
almost daily, symptoms of cannabis-induced acute psychosis. These
included panic attacks, agoraphobia, aerophobia, hypochondria, persecutory
delusions, mild sociopathic tendencies, and delusions of grandeur.&lt;/p&gt;
&lt;p&gt;My first serious bout of panic occurred in the winter of 2010. I had just
returned from an emergency trip to take care of my grandparents, both recently
hospitalized. One night, I lit a joint in my bedroom, when suddenly I
felt a horrific sense of doom come over me, as if I needed to escape from
existence itself. My heart started racing and I felt intense pressure in my
chest. Believing this was the start of a heart attack, I rushed myself to the
emergency room. An EKG would later verify I had a healthy heart. In fact, at
my doctor&apos;s request I completed a treadmill stress test and the technician
told me I was the only patient she&apos;d seen who made it all the way to the
finish. My heart was fine. My brain certainly wasn&apos;t. My doctor suggested
that cannabis was causing my anxiety and that I should
discontinue use. &lt;em&gt;But cannabis is harmless! Everyone knows that.&lt;/em&gt; I continued
using.&lt;/p&gt;
&lt;p&gt;Shortly after that episode, I made plans to visit a friend in Philadelphia.
As I boarded the plane, an all-too-familiar sense of panic came over me. I
clung to the armrests, palms sweating, breathing nervously for the entire
duration of the flight. This continued for the next several years, despite
knowing flying is the safest form of transportation per passenger-mile.
Since stopping use, I haven&apos;t a shred of fear about my upcoming plane trip.&lt;/p&gt;
&lt;p&gt;Similar to my fear of flying, I also suffered persecutory delusions wherein I
believed, whether acutely or chronically, that something horrific was about to
happen. In the case of boarding a plane, I believed we were certainly going to
crash. I also, for a period of about two years, dwelled over the possibility of
a catastropic earthquake striking the Cascades. I&apos;d have persistent visions of
the terror of fallen bridges and would panic if I were stopped in traffic
underneath an overpass. The region is due for a catastrophic quake, but
cannabis turned what should have been an exercise in humble preparedness into
years of panic and dread.&lt;/p&gt;
&lt;p&gt;But the most alarming side effect of my regular cannabis use was its subtle
erosion of my empathy and capacity for interpersonal connection. People,
mostly lovers, became mere instruments in a selfish, privately defined game
with no winner. I found myself overly critical of every aspect of my lovers.
One day I&apos;d be head-over-heels in love. The next day, I&apos;d have determined, by
way of my own cannabis-fueled, paranoid means of analysis, that that person
was insufficient. This cycle continued through one long-term relationship and
countless casual dating encounters. I would become frustrated at the idea no
one met my precise criteria, not recognizing the deadened and ill-natured
disposition of my desires.&lt;/p&gt;
&lt;p&gt;Most users are under the impression that because cannabis isn&apos;t
physiologically addictive, they don&apos;t suffer withdrawal symptoms.
Examining the reason for continuing use quickly debunks this myth.
If the user believes pot &lt;em&gt;makes everything better&lt;/em&gt;,
then it should follow that their sober experiences would be, in contrast, worse. And
that&apos;s the subtle trick that kept me toking for the better part of a decade.
Cessation was surprisingly easy and I rarely experience cravings. When I
do experience a craving, it&apos;s nothing like the infamous baby-on-the-ceiling scene
from &lt;em&gt;Trainspotting&lt;/em&gt;. Stopping pot was mostly an exercise in cognitive
behavioral therapy, reprogramming my brain to understand that the alleged benefits
of cannabis are mere illusions.&lt;/p&gt;
&lt;p&gt;The dynamic of an abusive relationship is a reasonable analogy for
my relationship with cannabis. Despite instinct
telling me it&apos;s time to move on, pressures led me to
persevere in the relationship. In spite of the misery,
I became accustomed to the drug and took security in its
presence.&lt;/p&gt;
&lt;p&gt;Since stopping use, I&apos;ve found myself more eager to help others and more in touch
with the emotions of those around me. I operate in a space of emotional
certainty, where I&apos;m able to succinctly cast my desires and express my true
feelings without lingering feelings of hesitation. And I want to engage in
relationships not because of what I&apos;ll gain, but because of what I&apos;ll give.&lt;/p&gt;
&lt;p&gt;Cannabis abuse is especially sinister because the consequences are so subtle
they&apos;ll often go unrecognized. In the same way a functional alcoholic can
continue to go through the motions of daily life, so too can the functional
stoner exist and even excel in certain respects. Cannabis didn&apos;t take my
home, my family, or my physical health. The dire consequence of chronic
marijuana use is the steady corrosion of virtuous subjective experience.&lt;/p&gt;
&lt;p&gt;I recognize the stigma surrounding drug addiction and understand I&apos;m making a
lot of admissions which could negatively effect my career and social life.
However, I am choosing to take that risk with the hope that others might read
my personal accounts and reevaluate their own recreational use of cannabis. If
you&apos;re considering stopping, the &lt;a href=&quot;http://reddit.com/r/leaves&quot;&gt;/r/leaves&lt;/a&gt;
community on Reddit is a great support resource. Literature on the subject is
unfortunately sparse, but The Joy of Quitting
Cannabis
takes a positive, nothing-to-lose approach to the issue and was written by an
ex-toker.&lt;/p&gt;
&lt;p&gt;If you need me, I&apos;ll be busy getting high on life.&lt;/p&gt;
</content:encoded></item><item><title>What I&apos;ve Learned About Love</title><link>https://www.teejayvanslyke.com/letters/what-ive-learned-about-love/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/what-ive-learned-about-love/</guid><pubDate>Wed, 06 Mar 2013 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;In my ten or so years of dating, I&apos;ve experienced triumphs, failures, heartbreaks,
butterflies, and everything in between. I&apos;ve been flat-out rejected and I&apos;ve rejected
flat-out. But a recent string of love and loss has given me cause to rethink my behavior
in relationships and reflect on how to be a better lover. These are the things I&apos;ve
learned about love.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Soul mates are real. Perfection is not.&lt;/strong&gt; Having logged far more time with computers
than women, I&apos;ve come to expect that relationships should operate in a similarly predictable
fashion. And, much as a web designer pushes pixels until their design is perfect, so too
can we pigeonhole our significant others into being perfect by our measure, right? No.
We humans are generally fucked up. We have ugly faces when we wake up, we smell when we come
home from a long day, and we&apos;re prone to misery at the most inoppurtune times. While it might
be the case you&apos;re with your soul mate, recognize they&apos;re just as human as you are. Loving
their inperfections is often &lt;em&gt;more&lt;/em&gt; important than loving their good qualities.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;A hot date is exciting. But a hot date won&apos;t take care of you.&lt;/strong&gt; Countless times during
my last relationship, I explained to my lover that I wanted to &quot;see other people.&quot; I thought
it better to express this desire and talk about it rather than act upon it callously behind
her back. I&apos;ve always had a hard time with commitment, be it with my living situation, job, or
relationship. But only recently, I&apos;ve realized that a &quot;hot date&quot; gets cold fast. I&apos;m reminded
of a &lt;a href=&quot;http://www.youtube.com/watch?feature=player_embedded&amp;amp;v=qjPBMAmNH14#at=615&quot;&gt;quote by relationship expert Chris Rock&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;&lt;/blockquote&gt;
&lt;p&gt;You gotta think about life in the long term. Now, people tell you life is short. No it’s not. Life is loooong. Especially if you make the wrong decisions! And in the long term, if I’m sick, is new pussy going to take care of me? No. If I’m hungry, is new pussy going to feed me? New pussy can’t cook!&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Happiness in a relationship comes from within yourself.&lt;/strong&gt; Your lover can&apos;t make you happy,
and you can&apos;t make them happy. The best you can do is provide support to act as a catalyst
for their happiness and have faith that they&apos;ll come around. So many times I&apos;ve found myself
unattracted to my partners, not recognizing that it might have been
my own lack of awareness causing our mutual grief.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;In order to truly love, you must first truly love yourself.&lt;/strong&gt; I&apos;ve experienced this on both sides
of the table. Nothing is less alluring or attractive than a lover who can&apos;t muster the courage and strength to take care
of themselves. Deficient self-love is the root cause of codependency in my experience. In cultivating
healthy self-love, you&apos;ll appear more vibrant, capable, and desirable.&lt;/p&gt;
&lt;p&gt;Next time, I&apos;ll be a better lover.&lt;/p&gt;
</content:encoded></item><item><title>Why I&apos;ll Always Be A Mercenary</title><link>https://www.teejayvanslyke.com/letters/why-ill-always-be-a-mercenary/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/why-ill-always-be-a-mercenary/</guid><pubDate>Mon, 04 Mar 2013 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;I&apos;ve worked in the startup scene for the better part of a decade. In that time, I&apos;ve built MVP&apos;s,
maintained production applications, and generally helped people with ideas turn those ideas into
working realities. And in that time, I&apos;ve logged hours on late nights, weekends, and other time
I would have been spending time with my loved ones had I not allowed the pervasive &quot;live to work&quot;
startup culture permeate my being.&lt;/p&gt;
&lt;p&gt;The sense of urgency when working in a startup can indeed breed excitement and form cohesion. But none
of our work is, by definition of the word, &lt;em&gt;urgent&lt;/em&gt;. Some of us might be building systems whose
reliability and availability does save (or cost) lives. Those excluded (and you deserve kudos for your
dedication), we work in an industry of seemingly unending urgency despite the inconsequntial nature of
our labor.&lt;/p&gt;
&lt;p&gt;That&apos;s not to say we&apos;re not making great things. Or that the things we make aren&apos;t valuable and world-changing.
But it is to say that there are more consequential, valuable experiences to be had than manipulating text
and images on an expensive pane of painted glass. I&apos;ve actually heard of startup founders who admitted their
company was more important to them than their spouses. It is this brand of irrationality that has turned me
into a mercenary.&lt;/p&gt;
&lt;blockquote&gt;&lt;/blockquote&gt;
&lt;p&gt;My life&apos;s passion is to be a better human, to cultivate love among those closest to me.&lt;/p&gt;
&lt;p&gt;As a mercenary, I&apos;m eager to solve your problems. But they&apos;re still &lt;em&gt;your problems&lt;/em&gt;. I take responsibility
for my mistakes and take credit for my triumphs within your organization. But my life&apos;s passion is to be
a better human, to cultivate love among those closest to me, and to have time to take the hard-earned
fruits of my mercenary labor to solve my own problems. Taking on the brunt of your organization&apos;s hardships
by working when I could be traveling, loving, making, and playing sucks the soul right out of life. It
begs the question: What is it all for?&lt;/p&gt;
&lt;p&gt;That&apos;s why I&apos;ll always be a mercenary.&lt;/p&gt;
</content:encoded></item><item><title>The Fool&apos;s Guide to Sustainable Saving</title><link>https://www.teejayvanslyke.com/letters/the-fools-guide-to-sustainable-saving/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/the-fools-guide-to-sustainable-saving/</guid><pubDate>Fri, 11 Jan 2013 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Despite my relatively stable income, maintaining a healthy, consistent savings rate has
always been a difficult test of my will. Either I&apos;d find a new, shiny toy I just couldn&apos;t
live without or I&apos;d find myself in an emergency situation where spending was my only option.&lt;/p&gt;
&lt;p&gt;I&apos;ve always been under the impression that credit cards were to be used sparingly, but I never
considered the ramifications of making interest payments and how disempowering &quot;buy now, pay later&quot;
really is on your psyche. And, when you don&apos;t have a savings plan, rainy days quickly turn into
credit card balances.&lt;/p&gt;
&lt;p&gt;In 2012, I spent most of the year catching up with my 2011 tax payments. I jokingly refer to
2012 as my &lt;em&gt;lost year&lt;/em&gt;, akin to the Japanese &lt;a href=&quot;http://en.wikipedia.org/wiki/Lost_Decade_(Japan)&quot;&gt;Lost Decade&lt;/a&gt;.
Recognizing the error of
my ways, I sought to find a methodology which would ensure this type of catastrophe would never
happen again.&lt;/p&gt;
&lt;h4&gt;Accounts Receivable&lt;/h4&gt;
&lt;p&gt;When receiving money, whether by way of your paycheck, a gift, or a garage sale, the typical procedure
is to put it in our wallet or bank account and then spend it with mild to medium discretion. As long
as we spend less than our income, we&apos;ll come out okay, right?&lt;/p&gt;
&lt;p&gt;This strategy would suit us fine if we knew, with utter certainty, that our income will always exceed our
necessary expenditures. Unfortunately, such casual treatment of our income doesn&apos;t account for a grave flaw
in human nature: our tendency to justify wreckless spending because we&apos;ll make more money later.&lt;/p&gt;
&lt;p&gt;In recognizing this pattern of earning and spending, I realized the only solution was to formalize a process
around my income. Now, rather than simply depositing my income into my checking account and transferring an
arbitrary amount into my savings account (usually only to be transferred back so I can buy &quot;shiny new toy X&quot;),
I apply a series of filters to my income:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;25% is set aside to pay my income taxes&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;15% is deposited into my savings account&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;10% is reinvested into my business (this pays for things like my Internet access, business cards, conference fees, etc)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;The remaining 50% is &quot;mine&quot;.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I&apos;m self-employed and withhold my own taxes, so of the items in the schedule above, only #2 might apply to you.
I&apos;ve found that saving 15% of my income is the sweet spot where I have enough liquidity month-to-month without having to
habitually dip into my savings account to maintain my standard of living.&lt;/p&gt;
&lt;p&gt;I use a spreadsheet to track every penny of my income and how it should be
appropriated. By establishing consistent process for your income, you&apos;ll find yourself saving more and spending less.&lt;/p&gt;
&lt;h4&gt;Your new rewards card&lt;/h4&gt;
&lt;p&gt;When you save a percentage of your income rather than feebly saving arbitrary amounts each month, a pretty sweet thing happens:
all of the sudden you accumulate a sizable balance and realize those credit cards you carry in your wallet suddenly feel less
useful. Most people use credit cards &quot;for the rewards&quot; or &quot;in emergencies.&quot; The truth is, carrying a high savings account balance
yields astronomically higher rewards. Consider the following scenario.&lt;/p&gt;
&lt;p&gt;Jane has a Chase Freedom Visa with a 15.99% APR and a $5,000 credit limit. She also has no savings account. Jane only carries a balance on the
card in emergencies.  Last night, her dog Sparky woke her up howling in the early morning and, startled, she took him to the animal hospital. Sparky needed
emergency surgery. She swiped her Visa and incured a $1,683 charge overnight. Assuming she pays back her credit card bill using approximately
15% of her $4,000 income each month, she&apos;ll pay it off in three months and incur $45 in interest charges.&lt;/p&gt;
&lt;p&gt;Sally, on the other hand, is carrying a $5,000 savings account balance and does not have a credit card. When Sally&apos;s dog Spunk needs to go to the
animal hospital, she pays cash. Her savings account balance is now $3,317. Even if she only maintains her 15% savings rate, she&apos;ll have replenished
her savings account in three months. The difference between Jane and Sally? While Jane was busy repaying the bank and incuring $45 in interest, Sally
had been &lt;em&gt;earning&lt;/em&gt; interest on her positive savings account balance. Jane will end up broke when Sally is worth $5,000, even though they both
earn the same amount.&lt;/p&gt;
&lt;h4&gt;Don&apos;t trust yourself, fool&lt;/h4&gt;
&lt;p&gt;It&apos;s important to recognize that, when it comes to spending, humans have
little to no self-control. By implementing safeguards into your income stream,
you can ensure you&apos;re ahead of the inevitable emergencies that &lt;em&gt;will&lt;/em&gt; arise.
And believe me, it feels damn good. Fool.&lt;/p&gt;
</content:encoded></item><item><title>Trailer Chic: My Ignite Portland talk is online!</title><link>https://www.teejayvanslyke.com/letters/trailer-chic-my-ignite-portland-talk-is-online/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/trailer-chic-my-ignite-portland-talk-is-online/</guid><pubDate>Sat, 29 Sep 2012 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;For those of you who missed it, last week I gave a talk at &lt;a href=&quot;http://igniteportland.org&quot;&gt;Ignite Portland&lt;/a&gt; about my experiences living
in an RV in Portland (fast-forward to around 15:00):&lt;/p&gt;
&lt;p&gt;And, if you&apos;d like to download the slide deck for your own amusement, click the link below.&lt;/p&gt;
&lt;p&gt;Trailer Chic: Living in an RV in Portland&lt;/p&gt;
</content:encoded></item><item><title>Listen to others for fun and profit</title><link>https://www.teejayvanslyke.com/letters/listen-to-others-for-fun-and-profit/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/listen-to-others-for-fun-and-profit/</guid><pubDate>Sat, 14 Jul 2012 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;By &lt;a href=&quot;http://tynan.com&quot;&gt;Tynan&lt;/a&gt;&apos;s recommendation, I downloaded &lt;a href=&quot;http://sebastianmarshall.com&quot;&gt;Sebastian Marshall&lt;/a&gt;&apos;s ebook &lt;em&gt;Ikigai&lt;/em&gt;.
He poses that leading a meaningful life is a very different ambition from the all-too-commonly sought-after notion of &quot;happiness&quot;. Too often,
according to Marshall, we seek happiness as the pinnacle of human experience, without first considering its self-involved implications.&lt;/p&gt;
&lt;p&gt;In Ikigai, Sebastian makes several reading recommendations, one of which I took immediately. &lt;em&gt;How to Win Friends &amp;amp; Influence People&lt;/em&gt; by
Dale Carnegie, evidently, is a classic guide to human interpersonal relationships. Though the book is extensive and draws several practical points about
successful interpersonal relationships by example, it all really boils down to the Golden Rule: &lt;em&gt;Do unto others as you would have them do to you.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;What does that mean, exactly? The notion that we should treat others as we prefer to be treated is abstract and difficult to make actionable.
We feel most valued, most respected, and most connected when our own interests are put first. So, in order to elicit that feeling in others,
we need only put their concerns above ours.&lt;/p&gt;
&lt;p&gt;I&apos;m on a trip to Brooklyn this week and have been using my being surrounded by eight million strangers as fodder for my social engineering exploits. So far,
my experiments have validated Carnegie&apos;s hypotheses swimmingly. I used to have a bad habit of interrupting others mid-sentence, of concocting a retort
before my conversational companion had finished their thoughts. This week, I&apos;ve focused on reversing that pattern.&lt;/p&gt;
&lt;p&gt;On the plane ride here, I was seated next to a bearded fellow reading a book in Hebrew. I leaned over and asked if it was the Torah. He explained to me that
it was actually the New Testament of the Bible. Interested, I prodded further, and he revealed to me that he was a creationist. Rather than condemn his
beliefs as stifling progress and disrupting scientific education, I chose to listen. And, as I listened, I realized this man was actually more intelligent
and more informed about science than I was. Even if I didn&apos;t leave the conversation convinced that his point of view was correct, I left it feeling
humbled about my own.&lt;/p&gt;
&lt;p&gt;I&apos;ve made a point to ask more questions in place of my own rhetoric. People love to talk about themselves. And, if the foundation of our lives is other
people, it follows that we should be fascinated and humbled by all of them one way or another. If you listen, you find that every single person you talk to
has something valuable to say.&lt;/p&gt;
&lt;p&gt;And that&apos;s exactly why I advocate this approach. It&apos;s one thing to be an altruist, but that&apos;s not in our nature. What &lt;em&gt;is&lt;/em&gt; in our nature is
to change behavior in order to obtain value. And, given that all value, whether economic, social, or political, is derived from other people, it follows
that we want them to value our company. It&apos;s just a matter of cherishing theirs first.&lt;/p&gt;
</content:encoded></item><item><title>My tiny living ebook is now available for free!</title><link>https://www.teejayvanslyke.com/letters/my-tiny-living-ebook-is-now-available-for-free/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/my-tiny-living-ebook-is-now-available-for-free/</guid><pubDate>Sun, 08 Jul 2012 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;I&apos;ve just put the finishing touches on &lt;a href=&quot;http://minifybook.com&quot;&gt;Minify&lt;/a&gt;, my short ebook about my transition to living in
a tiny RV, and am happy to announce that it&apos;s now available for free download. Some highlights:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Curate your possessions to a Few Wonderful Things.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Learn how living in a tiny house, apartment, or RV can save you thousands of dollars per year.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Make delicious, nutritious meals in your simple kitchen.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Enact simple principles to encourage tranquility in all aspects of your life.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Practical advice for those interested in minimalism, frugal living, and tiny living alike.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Head over to the book&apos;s website to grab your copy today: &lt;a href=&quot;http://minifybook.com&quot;&gt;Minify: A 21st Century Guide to Living a Happier Life With Less&lt;/a&gt;&lt;/p&gt;
</content:encoded></item><item><title>Tmux for Vim users</title><link>https://www.teejayvanslyke.com/letters/tmux-for-vim-users/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/tmux-for-vim-users/</guid><pubDate>Mon, 02 Jul 2012 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;a href=&quot;http://tmux.sourceforge.net&quot;&gt;Tmux&lt;/a&gt; is a terminal multiplexer with a more elegant configuration
and more powerful feature set than GNU Screen. Tmuxinator is a layout manager for tmux which makes managing complex
tmux sessions easy. If you work on several projects at once like I do, &lt;a href=&quot;https://github.com/aziz/tmuxinator/&quot;&gt;Tmuxinator&lt;/a&gt;
allows you to run several tmux session
configurations at once, meaning switching contexts is as easy as typing a shell command. Tmux also allows full customization
of its keyboard shortcuts, meaning if you&apos;re accustomed to Vim&apos;s keybindings, you can enable yourself to feel right at home.
There are plenty of tmux &lt;a href=&quot;http://blog.hawkhost.com/2010/06/28/tmux-the-terminal-multiplexer/&quot;&gt;tutorials online&lt;/a&gt;, so
check those out for details about setting up your environment. Instead, I&apos;d like to go over the contents of my &lt;code&gt;.tmux.conf&lt;/code&gt;
file so you&apos;re able to get comfortable in tmux quickly as a seasoned Vim user.&lt;/p&gt;
&lt;p&gt;First, I set the tmux prefix key combination to &lt;code&gt;Ctrl+A&lt;/code&gt; instead of the default &lt;code&gt;Ctrl+B&lt;/code&gt;. This means that the prefix key
combination can be pressed using only your left hand. And, if you remap your &lt;code&gt;Caps Lock&lt;/code&gt; key to trigger &lt;code&gt;Ctrl&lt;/code&gt;
instead, both keys are right next to one another, making it easy to switch panes, create new ones, etc.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;set -g prefix C-a
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Next, I set the history limit to 100000 lines. This allows scrolling back as far as you&apos;ll ever need using &lt;code&gt;Ctrl+A [&lt;/code&gt;.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;set-option -g history-limit 100000
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;There are a couple settings that make Vim itself more pleasant to use inside of tmux. To ensure keyboard shortcuts inside Vim
still work, we need to enable XTerm keybindings. And to be sure Vim&apos;s colors aren&apos;t distorted, we enable 256 color mode:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;setw -g xterm-keys on
set-option -g default-terminal &quot;screen-256color&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The default keybindings for splitting windows are poorly defined in the &lt;code&gt;%&lt;/code&gt; key. To provide more memorable shortcuts,
I&apos;ve bound them to &lt;code&gt;|&lt;/code&gt; and &lt;code&gt;-&lt;/code&gt; for vertical and horizontal splits, respectively. This means you can press
&lt;code&gt;Ctrl+A |&lt;/code&gt; to split your current pane into two vertically, and &lt;code&gt;Ctrl+A -&lt;/code&gt; to split it horizontally.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;bind-key | split-window -h
bind-key - split-window
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Next, to match Vim&apos;s &lt;code&gt;/&lt;/code&gt; search, I enable the vi key mode.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;setw -g mode-keys vi # I especially like being able to search with /,? when in copy-mode
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;One of my most commonly used Vim features is the &lt;code&gt;Ctrl+W&lt;/code&gt; pane navigation commands.
These allow easy navigation between all your visible editor panes. This behavior can be mimicked
in tmux by binding the &lt;code&gt;hjkl&lt;/code&gt; keys to the &lt;code&gt;select-pane&lt;/code&gt; command:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;unbind-key j
bind-key j select-pane -D

unbind-key k
bind-key k select-pane -U

unbind-key h
bind-key h select-pane -L

unbind-key l
bind-key l select-pane -R
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Vim and Tmux are elegant tools on their own, but a veritable developer utopia when used together. I love my new terminal
environment and can&apos;t wait to put it to work for me. Cheers!&lt;/p&gt;
</content:encoded></item><item><title>Disable volume buttons on iOS using Activator</title><link>https://www.teejayvanslyke.com/letters/disable-volume-buttons-on-ios-using-activator/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/disable-volume-buttons-on-ios-using-activator/</guid><pubDate>Wed, 13 Jun 2012 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;The other night, I stumbled while holding my iPad and knocked my volume-up button such that it now sticks, meaning the
volume indicator is now stuck on-screen. Luckily, I devised a way to disable both volume buttons using the Cydia-based app
Activator.&lt;/p&gt;
&lt;p&gt;To enable this hack, you&apos;ll need a jailbroken iOS device, the latest version of Cydia, and to have the Activator app installed.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Inside Activator, tap &apos;Anywhere&apos;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Scroll to the bottom of the list to &apos;Volume Buttons&apos;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Tap each item in the &apos;Volume Buttons&apos; section and select &apos;Do Nothing&apos;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Your volume indicator should disappear and you just saved yourself a trip to the Apple Store, or worse, the cost of a new
iPad.&lt;/p&gt;
</content:encoded></item><item><title>Random acts of aggression</title><link>https://www.teejayvanslyke.com/letters/random-acts-of-aggression/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/random-acts-of-aggression/</guid><pubDate>Tue, 29 May 2012 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;img src=&quot;/assets/images/640x640/2011/random-acts-of-aggression-05-28-2012-21cc7d39.jpg&quot; alt=&quot;Streets are public places for community building, free speech, and safe mobility.&quot; /&gt;&lt;/p&gt;
&lt;p&gt;The general consensus is that Portland is a relatively safe and tolerant city. Most of the time, my beliefs,
appearance, and behavior are tolerated and accepted by most people. Either that or they&apos;re passive-aggressively keeping
their mouths shut. Either way, altercations rarely arise, and when they do, they&apos;re resolved swiftly
and peacefully.&lt;/p&gt;
&lt;p&gt;On Sunday, May 27, 2012, at approximately 3:00 pm, my faith in those convictions was shattered as I looked
the fender of a speeding red convertible in the eye, contemplating, if only for a fraction of a second, the possibility
that my life might be cut short by an unmeditated act of aggression. I was (and still am) reluctant to make the details of this incident public for my own safety, but I cannot help
but share a synopsis as a friendly reminder that such aggression can happen here, too.&lt;/p&gt;
&lt;p&gt;As I approached an intersection by bicycle, two cars queued in the lane
beside me, followed by a third. As soon as the signal turned green, I continued through.
The motorist in the first car stopped in order to yield to my right of way before proceeding with her right turn. I
continued approximately 200 feet, when I heard a loud bang from behind.&lt;/p&gt;
&lt;p&gt;The third car, a red convertible, had rear-ended the second car. Instead of pulling off the street to exchange
insurance information, the red convertible proceeded to swerve out of the right lane into the left lane, pass both
the other cars back into the right lane, and aggressively run me off the road, his front
bumper well into the bicycle lane. Did he believe it to be my fault he rear-ended another car?
Did he just not have an insurance policy? What perverse cowardice
could drive someone to such aggression?&lt;/p&gt;
&lt;p&gt;The next day, as I was walking down the sidewalk on my way to the grocery store, a teenager yelled &quot;Faggot!&quot;
out the window of his SUV as he sped by. Boy, he sure must have felt empowered, him and his big SUV and his homophobic
slurs. I wish that poor, deprived, wandering soul the best of luck, because despite his bigoted demeanor, my own
self-love and improvement-oriented attitude mean I&apos;ll live a happier, healthier life than the lowlife aggressor. While
he digs outward, I dig inward.&lt;/p&gt;
&lt;p&gt;Aggression is the outward reflection of a person&apos;s insecurities and fears. The aggressor sees something in his victim,
whether it be social status, intellectual ability, self-confidence, or physical prowess, which he either lacks or believes
he lacks. Instead of looking inward and asking how he can possess the qualities of his victim, he chooses to belittle
his victim&apos;s weaknesses. So, the next time you&apos;re a victim of aggression or bullying, just remember that it just means
your aggressor is probably wrought with insecurity and misery because your stride is just that much better than his.
Just don&apos;t get run over in the process.&lt;/p&gt;
</content:encoded></item><item><title>What I&apos;ve learned after three months living tiny</title><link>https://www.teejayvanslyke.com/letters/what-i-ve-learned-after-three-months-living-tiny/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/what-i-ve-learned-after-three-months-living-tiny/</guid><pubDate>Sat, 19 May 2012 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;img src=&quot;/assets/images/640x640/2011/what-ive-learned-after-three-months-living-tiny-c5a52c4b.jpg&quot; alt=&quot;Cozy corner in my RV&quot; /&gt;&lt;/p&gt;
&lt;p&gt;It&apos;s been about three months since my girlfriend and I trekked to Beaverton by bus
to pick up the RV that I now call home. Since then, I&apos;ve gone on a wild two-week
roadtrip in my own house, transformed a modest RV interior into a luxurious palace on
wheels, and learned so much about how to make the most of 100 square feet.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;When you live in a tiny space, clutter&apos;s effects are amplified.&lt;/strong&gt;
When I lived in my loft apartment, weeks would go by without giving the place a
good decluttering. Bottles and cans from parties weeks ago would remain on my giant
countertop. If I ate popcorn the night before, you&apos;d likely find the remnants in my
giant bowl sitting on my coffee table. In the RV, most surfaces serve many purposes,
so there &lt;em&gt;simply isn&apos;t room&lt;/em&gt; for clutter. I do my dishes within a day
&lt;em&gt;because I only have one plate.&lt;/em&gt; Everything has its right place, and if it
doesn&apos;t, its misplacement will reveal itself as soon as I try to drive my house
away and need to find a place to stow it.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;When resources are limited, you curb your usage subconsciously.&lt;/strong&gt;
My RV holds 20 gallons of fresh water and 19 gallons of waste, which is just enough
to live one week comfortably before going to the dump station. Because of this
inconvenience, I find myself turning off the faucet to conserve water more than I
did in a brick-and-mortar home. It&apos;s amusing how barbaric and selfish we actually
are when it comes to conservation, but I&apos;ll admit it took knowing my own supply
is limited before I&apos;d make a concerted effort in curbing my usage.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;My life is generally richer and more experience-driven.&lt;/strong&gt;
When you live in 100 square feet, you&apos;re not occupied with the temptation to buy
a new, swanky piece of furniture. Since I moved into the RV, I&apos;ve found myself
more eager to leave the house to explore, since I&apos;ve stripped my house of frivolty
and responsibility. No space for a couch means I&apos;m less likely to vegetate during
the daytime.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;A small space is dirt cheap to maintain!&lt;/strong&gt;
When I lived in my loft apartment, I was paying $1239/mo in rent, between $20-$100
in electricity per month (it had electric forced air heat), and varying amounts
in water and sewer usage. In the RV, my monthly expenses are $100/mo for my parking
spot, about $25/mo for electricity, about $10/mo for propane, and $40/mo for waste
disposal. That puts my monthly base living expenses at $175!&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;A small space is cozy.&lt;/strong&gt;
My RV is just a downright pleasant place to be. Most people assume because I have
such a small space that I&apos;m not comfortable. I think the opposite is true. My
walls are closer together. Rather than the cold, vast cavern my loft often felt like,
my RV feels like a small, warm cocoon.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Okay, so you&apos;re probably thinking there &lt;em&gt;must&lt;/em&gt; be some serious drawbacks to tiny
living. &quot;Don&apos;t you wish you had more room once in awhile?&quot; &quot;Doesn&apos;t living in your car
get old?&quot; &quot;Don&apos;t you wish you had a shower in your house?&quot; Sometimes these thoughts
enter my mind. But in all honesty, the feeling of self-sufficiency, resourcefulness,
and ingenuity I derive from this lifestyle far outweigh the drawbacks. Quite frankly, I&apos;m
happier than I&apos;ve ever been.&lt;/p&gt;
&lt;p&gt;If you&apos;re interested in tiny living in an RV but don&apos;t know how to get started, drop
me a line! &lt;a href=&quot;mailto:teejay.vanslyke+rv@gmail.com&quot;&gt;teejay.vanslyke+rv@gmail.com&lt;/a&gt;&lt;/p&gt;
</content:encoded></item><item><title>Using HTML data attributes to elegantly create Mixpanel trackers</title><link>https://www.teejayvanslyke.com/letters/using-html-data-attributes-to-elegantly-create-mixpanel-trackers/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/using-html-data-attributes-to-elegantly-create-mixpanel-trackers/</guid><pubDate>Tue, 01 May 2012 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;I&apos;ve been using &lt;a href=&quot;http://mixpanel.com&quot;&gt;Mixpanel&lt;/a&gt; to track user behavior on one of my projects, and sought a more elegant way to track link clicks than the &lt;code&gt;track_links&lt;/code&gt;
method the standard API provides. Instead, I&apos;d like to be able to specify the tracker&apos;s name and properties as HTML attributes.&lt;/p&gt;
&lt;p&gt;Simply paste this snippet into your document ready block to get started: &lt;a href=&quot;https://gist.github.com/2569284&quot;&gt;Using data attributes to elegantly create Mixpanel trackers&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Then, on any links you&apos;d like to track, simply provide the &lt;code&gt;data-mixpanel-tracker&lt;/code&gt; attribute:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;a href=&quot;/moon&quot; data-mixpanel-tracker=&quot;he chose to go to the moon&quot;&amp;gt;Go to the Moon!&amp;lt;/a&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Specify custom properties in JSON using the &lt;code&gt;data-mixpanel-properties&lt;/code&gt; attribute:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;a href=&quot;/moon&quot; data-mixpanel-tracker=&quot;he chose to go to the moon&quot; data-mixpanel-properties=&quot;{agency: &apos;nasa&apos;, mission: &apos;apollo 13&apos;}&quot;&amp;gt;Go to the Moon!&amp;lt;/a&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This snippet will automatically redirect the user to the link&apos;s &lt;code&gt;href&lt;/code&gt; after 300ms, so no
need to worry if the Mixpanel request failed. Happy tracking!&lt;/p&gt;
</content:encoded></item><item><title>A holistic approach to happiness</title><link>https://www.teejayvanslyke.com/letters/a-holistic-approach-to-happiness/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/a-holistic-approach-to-happiness/</guid><pubDate>Thu, 26 Apr 2012 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;img src=&quot;/assets/images/640x640/2011/salad-04-26-2012-46cab51b.jpg&quot; alt=&quot;My homemade salad in a tiffin&quot; /&gt;&lt;/p&gt;
&lt;p&gt;March was a turbulent month for my body and mind. I had just terminated the lease on my
apartment in Portland and was in the process of moving into a tiny RV. Every day was rendered
more burdensome by persistent rain, gloomy skies, and an unnerving sense that the rabbit hole
of my anguish would burrow ever-deeper.&lt;/p&gt;
&lt;p&gt;And so, I set out on the open road in a blaze of escapist glory, thinking I was destined
to find happiness outside myself. At first, the distraction of the road combined with the
glimmer of sunshine provided me with the fulfillment I so craved. But, as with all stints of
pleasure, it was short-lived and transient.&lt;/p&gt;
&lt;p&gt;When I returned to Portland, I sought to properly investigate the source of my anguish.
Why did I find myself in a constant state of yearning and escapism? It wasn&apos;t my friends, nor
my surroundings, nor the weather, nor my work. I had tailored each of those to my liking--moreso
than for most people have the opportunity or will. If none of those things, then &lt;em&gt;what&lt;/em&gt;?&lt;/p&gt;
&lt;p&gt;Fast-forward to this weekend. Within a 24-hour span, I discovered a film and a book, the likes of
which would change my life. The film is the recently released, critically-acclaimed &lt;em&gt;Forks Over Knives&lt;/em&gt;.
In it, the documentarian examines &lt;em&gt;The China Study&lt;/em&gt;, the famed 2004 book examining the relationship between
the consumption of animal products and illness, in the context of the Western diet.&lt;/p&gt;
&lt;p&gt;I was well-aware my diet wasn&apos;t optimal, but I knew my attentiveness toward what I put in my gullet was more than
most Americans, so I thought little of it. But when I realized that certain foods, in adequate daily quantities, could
reverse diseases like cancer, multiple sclerosis, and coronary artery disease, I was astonished and sought to completely
revamp my diet to meet and exceed those criteria.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Forks Over Knives&lt;/em&gt; evangelizes a strict vegan diet and claims meat, dairy, and even fish are not necessary for, and
often detrimental to, a healthy, disease-preventitive diet. Being a curious little bugger, I never let one driver steer me
down the street. After all, veganism is generally regarded as a veritable tightrope walk to get adequate levels of B vitamins,
and essential amino acids. Dr. Terry Wahls, a now-recovering multiple sclerosis patient, gave a &lt;a href=&quot;http://www.youtube.com/KLjgBLwH3Wc&quot;&gt;TED talk&lt;/a&gt; detailing the diet
she used to kickstart her brain and find her way out of a wheelchair and walking again.&lt;/p&gt;
&lt;p&gt;Now, rather than eating out for two or more meals per day, I go to the grocery store shortly after waking up each morning,
buy a bunch of dark leafy greens, one colored vegetable, one bunch of herbs, two pieces of fruit, and a bag of seeds or
nuts of my choosing. All of this becomes the basis for two heaping servings of raw salad. You probably think I&apos;m malnourished,
but I&apos;ve never felt so alert and alive. My craving for &quot;mood enhancers&quot; like caffeine, alcohol and cannabis have
diminished substantially, almost to the point where I find their use to yield a net negative effect.&lt;/p&gt;
&lt;p&gt;Okay, so I&apos;ve got my body on the path to proper nourishment. On to my spirit...&lt;/p&gt;
&lt;p&gt;Enter &lt;em&gt;The Power of Now&lt;/em&gt; by Eckart Tolle. Typically I don&apos;t gravitate toward mainstream
bestsellers as the source for great inspiration, but there are always exceptions. This is a big one. Tolle
has re-taught me the duality of being and self, a distinction I hadn&apos;t forgotten but one I had certainly
neglected in my daily life. Whenever I find myself becoming anxious, fearful, or stressed, I focus my
attention to the beauty of the moment I&apos;m living. After all, the past and future only exist as recollections
and projections in our minds.&lt;/p&gt;
&lt;p&gt;This led to another realization, the likes of which Tolle couldn&apos;t have discussed in his 1999 book but stares
me straight in the face in our twenty-first century age. If past and future are mere products of ego, if self and identity
are ailments of our own making, then what does social media represent in that context? The ultimate manifestation
of our egos in digital form? Are all the texts, tweets, status updates, and constant social noise causing us
anxiety of which we&apos;re hardly aware? Does the comment I receive on my Facebook post, pushed straight to my phone
and ready for my consumption the instant it is published, the most iconic example of &lt;em&gt;non&lt;/em&gt;-presence,
&lt;em&gt;non&lt;/em&gt;-attentiveness, and unconscious living imaginable?&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;tl;dr&lt;/strong&gt; Eat your fucking vegetables and be here now.&lt;/p&gt;
</content:encoded></item><item><title>Affluence, transience and identity</title><link>https://www.teejayvanslyke.com/letters/affluence-transience-and-identity/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/affluence-transience-and-identity/</guid><pubDate>Wed, 11 Apr 2012 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;I&apos;ve been living out of my tiny RV for two months. My comfort level with the
arrangement is growing steadily, to the point where I almost always get a good
night&apos;s sleep in my vehicle. But there&apos;s still a nagging uncertainty amidst my
gratification that I&apos;ll be caught and prosecuted for my behavior, the likes of
which bears no harm upon others and has &lt;em&gt;less&lt;/em&gt; of an environmental impact
than a normal, modern living arrangement.&lt;/p&gt;
&lt;p&gt;When I was in San Luis Obispo, I decided that its downtown core was much too alluring
to spend my time driving between it and a campground on the outskirts of town. And so,
despite its illegality, I spent the night in my RV parked on the street beside a
law firm. I made sure my presence wouldn&apos;t upset anyone and kept my profile low. I
awoke peacefully and didn&apos;t have any issues.&lt;/p&gt;
&lt;p&gt;The next morning over coffee, I executed a quick web search for &quot;RV parking
in San Luis Obispo&quot; and came across &lt;a href=&quot;http://www.sanluisobispo.com/2012/04/10/2023709/lawsuit-san-luis-obispo-homeless.html&quot;&gt;this article&lt;/a&gt;.
Turns out, SLO has enacted an ordinance banning RV camping from their streets in
an effort to combat vagrantism and the drugs and violence that come with it. Yet
another instance of combating a problem by enacting more laws, rather than approaching
it with discretion and common sense.&lt;/p&gt;
&lt;p&gt;And so, I had three options. I could continue to spend my nights on city streets
and risk being harassed by the police, I could find a campground on the outskirts of
SLO and pay $45/night for 100 square feet of cement in an area with no amenities or
attractions, or I could realize how unwelcome I felt and head home. I headed home.&lt;/p&gt;
&lt;p&gt;Here in Portland, we&apos;re constantly at odds with how to deal with homelessness and
vagrantism. Our downtown core is littered with their trash and our shelters have
lines longer than swanky brunch cafes on a late Sunday morning. And yet, we continue
to uphold laws prohibiting camping on public grounds and ordinances prohibiting
long-term camping on private lots. In my short experience as a vagabond, my most striking
observation was that my ability to be productive was drastically reduced when
faced with the question of where I would sleep that night.&lt;/p&gt;
&lt;p&gt;Now that I&apos;m back in Portland and sitting pretty in my girlfriend&apos;s driveway while contributing
my share of rent each month, I&apos;m reminded that I&apos;m still living an illegal lifestyle.
Because of zoning ordinances in our city and most others, I&apos;ve effectively erected a
second domicile in a lot zoned for single-family occupancy, which if used regularly,
constitutes a zoning violation. Luckily, I&apos;ve got a laundry list of alibis if the city
asks any questions. &quot;This is my mobile office and I live in the house with my
girlfriend&quot; is what I&apos;m sticking with for now. But the fact that I even have to
&lt;em&gt;consider&lt;/em&gt; having an alibi for completely harmless behavior (and in a time of
increasing rent fees, one solution to the affordable housing problem) makes me cringe.
Why should it be illegal for me to occupy a perfectly suitable dwelling on private property?&lt;/p&gt;
&lt;p&gt;My RV lifestyle has granted me new perspective on homelessness and vagrantism.
Despite my affluence and ability to get a hotel room or rent a house at a moment&apos;s notice,
my reluctance to do those things means I face many of the same problems and vulnerabilities.
I seek to live a happy, peaceful existence and have chosen minimalism as my path. It&apos;s too
bad it&apos;s illegal for me to do so.&lt;/p&gt;
</content:encoded></item><item><title>Bay Area Exploits</title><link>https://www.teejayvanslyke.com/letters/bay-area-exploits/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/bay-area-exploits/</guid><pubDate>Sun, 08 Apr 2012 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;img src=&quot;/assets/images/640x640/2011/san-jose-04-07-2012-f3432b25.jpg&quot; alt=&quot;Rialta on the street in San Jose&quot; /&gt;&lt;/p&gt;
&lt;p&gt;It&apos;s amusing to observe the patterns of my anxiety, as correlated with
the weather and scenery. Portland&apos;s climate generally leaves me feeling
depressed and wanting more. Its urban landscape is as near to perfect as
an American city can be, but it might edge too far into the category of
&quot;major metropolitan area&quot; for me to maintain a consistent semblance
of sanity.&lt;/p&gt;
&lt;p&gt;Monterey&apos;s cool, sunny climate combined with its seemingly lacksidasical seafaring populous
made it a damn near perfect place to reset my head. And now, being thrusted back
into another major metropolitan area, I&apos;m reminded why I left in the first place.&lt;/p&gt;
&lt;p&gt;Every California city is comprised of equal parts slums, picket fences, and ugly car-oriented
commercialism. Even Berkeley, a haven for progressivism, is a congested beheamoth of a place.
Don&apos;t get me wrong: Californian urbanites are generally lovely people. It&apos;s just that
the car-oriented, sprawling nature of their urban areas propagates a unique brand of
California aggression. Everyone here is in a hurry to get somewhere, and when they&apos;re done
being somewhere, they&apos;re in a hurry to get somewhere else. It&apos;s as if someone put blinders on their
car windshields and they&apos;re living oblivious to the fact they live in the most beautiful
place on earth. Or it&apos;s because one look out their car windshields means another In-N-Out Burger,
strip mall, or traffic interchange.&lt;/p&gt;
&lt;p&gt;If there were a brand name for this perpetual state of rushedness and instant
gratification, it would be dubbed San Jose™. In less than 24 hours, I&apos;ve witnessed
a man in a Lexus blast his horn at a woman walking in a parking lot as if his weekend might
be ruined if not for his on-time arrival at the local BevMo!. I&apos;ve counted the BMW&apos;s, the Lexuses (Lexi?),
the Mercedes-Benz&apos;s, and the sad, balding men who drive them.&lt;/p&gt;
&lt;p&gt;If there&apos;s one thing I&apos;ve re-learned in my travels, it&apos;s that the most vital ingredient to
happiness is what I like to call &lt;em&gt;experiential diversity&lt;/em&gt;. Nostalgic thoughts act as
&lt;a href=&quot;https://web.archive.org/web/20120116193321/https://www.veryevolved.com/2009/02/neuroscience-and-nostalgia&quot;&gt;natural antidepressants&lt;/a&gt;.
Marketers convince you that their product or service will make you feel at home or
bear resemblance to &quot;the good old days.&quot; They&apos;re just targeting
the same part of the brain stimulated the first night home after a peaceful vacation or the moment two
loved ones are reconnected at the airport. What advertising and commercialism &lt;em&gt;does not&lt;/em&gt; grant us
is sustained diversity in experiences, thoughts, and ideas. If our hunter-gatherer roots aren&apos;t
indicative enough of humankind&apos;s tendency toward exploration and conquest, then the blood-soaked founding of the United
States should be. Denying our primal need to explore is to deny our humanity.&lt;/p&gt;
&lt;p&gt;Never let the people on television, in your computer, on billboards, or on the radio persuade you
their way is the right way. It&apos;s a certainty they&apos;re trying to take your money, and it&apos;s a near certainty
that they feel the same longing and entrapment as you do when you listen to them. I&apos;ve found
a new kind of fulfillment, and it comes from within.&lt;/p&gt;
</content:encoded></item><item><title>Cycling at Laguna Seca</title><link>https://www.teejayvanslyke.com/letters/cycling-at-laguna-seca/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/cycling-at-laguna-seca/</guid><pubDate>Thu, 05 Apr 2012 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;img src=&quot;/assets/images/640x640/2011/laguna-seca-04-04-2012-cd68f54d.jpg&quot; alt=&quot;Laguna Seca&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Winds battered the side of my van through the night, perched
atop a hill in Monterey County. I awoke to a rainy windshield,
a crisp, dewey morning with a glowing potential to blossom
into a beautiful sunny afternoon.&lt;/p&gt;
&lt;p&gt;I spent Thursday and Friday working and cycling. The Laguna Seca
Recreation Area is home to the Mazda Laguna Seca raceway, which served
as a veritable road cyclist&apos;s utopia with its maze of paved and barely-traveled
access roads around the campus. For two days, I cheerfully alternated
between cycling and working every few hours. I hardly spoke to a soul, but this
solidarity gave me new perspective.&lt;/p&gt;
</content:encoded></item><item><title>Detour to Monterey</title><link>https://www.teejayvanslyke.com/letters/detour-to-monterey/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/detour-to-monterey/</guid><pubDate>Wed, 04 Apr 2012 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;img src=&quot;/assets/images/640x640/2011/laguna-seca-04-03-2012-a96ea63f.jpg&quot; alt=&quot;Rialta at Laguna Seca&quot; /&gt;&lt;/p&gt;
&lt;p&gt;I awoke bright and early this morning—5:30 is the earliest I&apos;ve woken up voluntarily in years.
After committing a couple hours of work, I packed up the RV and headed out. My first stop was one of
two gas stations in Big Sur. And at only $5.25 per gallon, it was quite the bargain. The shopkeepers
had a certain rural charm and genuine friendly demeanor that I&apos;m not sure I&apos;ve experienced elsewhere.&lt;/p&gt;
&lt;p&gt;My trip was to be simple in form, but burdensome in execution. Two hours driving, according to Google Maps,
will carry an automobile from Big Sur to San Luis Obispo. What Google &lt;em&gt;didn&apos;t&lt;/em&gt; know about was the
rockslide and road closure I&apos;d encounter a quarter of the way there.&lt;/p&gt;
&lt;p&gt;US-1 runs along the perimeter of the Pacific coast. Outlets are sparse: There are stretches where one can drive
forty miles without encountering a road leading inland. I was on one of those very stretches when
I reached a &quot;Road Closed&quot; sign and a portly woman informing me (in that very same rural charm
and friendly demeanor) that a rock the size of a large vehicle had fallen square into the highway, and
that it was to be dynamited later that day.&lt;/p&gt;
&lt;p&gt;And so, I set off in the northward direction, anxiously steering the windy, hilly intestine of the California
coast. Since I enjoyed my grocery shopping experience in Monterey, I figured I&apos;d set up shop in the area for the week.
Monterey itself is quite a lot like all the California cities I&apos;ve visited: Bright, car-crowded, noisy, yet still
charming. I was tempted to try spending the night in my RV on a city street, but my waste tanks needed emptying
and I wanted to retire to a peaceful place after the day&apos;s driving and working. I worked at a local coffee shop,
bought enough groceries to last the rest of the week, and headed to Laguna Seca Recreation Area.&lt;/p&gt;
&lt;p&gt;Despite sharing land with a race track, Laguna Seca is a gorgeous
hilltop campground with full hookups and just about the best view out your window you&apos;ve ever seen. I&apos;m very much
looking forward to spending my workday atop a hill in the peaceful sunshine.&lt;/p&gt;
</content:encoded></item><item><title>Coastal forest bliss in Big Sur</title><link>https://www.teejayvanslyke.com/letters/coastal-forest-bliss-in-big-sur/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/coastal-forest-bliss-in-big-sur/</guid><pubDate>Tue, 03 Apr 2012 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;img src=&quot;/assets/images/640x640/2011/big-sur-04-02-2012-2c9939d5.jpg&quot; alt=&quot;The RV in Big Sur&quot; /&gt;&lt;/p&gt;
&lt;p&gt;I awoke Sunday morning to near-freezing temperatures in the parking lot of the Walmart in Yreka, California.
Much to my surprise, I was the first RV to leave the lot in the morning. Armed with a fresh box of granola and
unfettered by the bag of garbage and rotting produce left in the parking lot trash bin, I once again headed south
on I-5.&lt;/p&gt;
&lt;p&gt;Snow turned to rain turned to green forests turned to barren desert, and before I knew it, I was at a truck stop
in the Central Valley. It amuses me that entire towns form in California with the sole purpose of providing Interstate travelers
with amenities. Also amusing is how unfazed these desert dwellers are by living an existence which would have proven impossible only
a hundred years ago.&lt;/p&gt;
&lt;p&gt;And then I crossed the California Aqueduct. This is one of those fables I was told was true, but conveniently
ignored. But there it was, a flowing network of oasises (oases?) feeding the fairytale city of Los Angeles,
transforming temperate into desert and desert into temperate. According to Wikipedia, the California Water Project
is the single biggest net consumer of energy in the state, despite it also being one of the largest producers.
I&apos;ll put this in the categories of &lt;em&gt;very cool&lt;/em&gt; and &lt;em&gt;totally not going to last another century&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;I arrived in Monterey at around 5:00 pm and stopped off for some groceries; Big Sur is located on a stretch of
US-1 with no outlets for miles, so if I wanted to eat more than pub food I had to ensure I was well-stocked. Monterey
immediately struck me as a place I could stand to spend some time. Small-town, coastal mentality paired with
a seemingly classic Californian aesthetic made it a place to which I&apos;d like to return.&lt;/p&gt;
&lt;p&gt;The drive along US-1 was both arduous and one of the most beautiful experiences of my life,
probably second only to the last time I drove it. Last time, my vessel was a rented Mustang, and could
maneuver the windy, tight turns with ease. This time, it was a bit of a different story. I don&apos;t know why
motorists on US-1 would &lt;em&gt;want&lt;/em&gt; to go faster than 25 MPH. Speeds any greater don&apos;t provide the
driver with an opportunity to dart their eyes westward at the coast&apos;s majesty. I must have pulled into four
or five lookout points along the way to let Joe American and his American Family speed by to their next
destination, racing as if he had to see the entirety of the California coast in only a day.&lt;/p&gt;
&lt;p&gt;I arrived at my campsite and plugged in my land yacht as if it were a household appliance. I&apos;m very
eager to have her outfitted with solar panels so I&apos;m not reliant on 110V power. I&apos;m convinced that
12V is the way of the future, and that portably powered microhomes are a means toward sustained
energy independence. Anyway, my stay here has cleared my head, provided me with a fresh supply of
oxygen, and allowed me to recharge before I plunge into the bowels of Southern California.&lt;/p&gt;
</content:encoded></item><item><title>Welcome to Walmart. Would you like some fucking chamomile?</title><link>https://www.teejayvanslyke.com/letters/welcome-to-walmart-would-you-like-some-fucking-chamomile/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/welcome-to-walmart-would-you-like-some-fucking-chamomile/</guid><pubDate>Sat, 31 Mar 2012 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;img src=&quot;/assets/images/640x640/2011/walmart-parking-lot-03-31-2012-29df64a0.jpg&quot; alt=&quot;Walmart in Yreka&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Today I embarked on the first leg of my journey to find America or some nice weather
or whatever the hell I&apos;m looking for barrelling down Interstate 5 at a whopping 45-65 MPH
(my VW is a 4-cylinder; give me a break). I set my sights on the Mt. Shasta area of
Northern California as a reasonable stopping point, and I sought to cross one particular
nagging American dream off my very long bucket list. Tonight, I&apos;m sleeping at Walmart.&lt;/p&gt;
&lt;p&gt;So far, my experience has been nothing but…what I thought it would be. There&apos;s the overweight employees
and patrons, not entirely unkempt but as &apos;kempt&apos; as required by Sir Sam Walton. And then
there&apos;s the haggard old woman waving hello to the greeter at the front door. Yreka is a
town of fewer than eight thousand; I suppose everyone knows your name in a place like this.&lt;/p&gt;
&lt;p&gt;It&apos;s a bizarre feeling to drive into a Walmart parking lot and then realize you&apos;ve got your
entire house with you. As soon as I pulled in, I cranked on the propane and put on a pot of
tea. Chamomile, to put me fast asleep to catch the first crack of sunlight pouring over the
mountain. A Walmart patron might have suggested I take some 5-Hour Energy and push through
till dawn, but I think I&apos;ll take their pimply-nosed complexion as a clear sign that sleep
is a better option.&lt;/p&gt;
&lt;p&gt;Here&apos;s to a good night&apos;s rest.&lt;/p&gt;
</content:encoded></item><item><title>Reflections on a month living small</title><link>https://www.teejayvanslyke.com/letters/reflections-on-a-month-living-small/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/reflections-on-a-month-living-small/</guid><pubDate>Wed, 28 Mar 2012 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;It&apos;s been about a month since I began moving my life into the tiny RV I now call home. It&apos;s not
a stretch to say that the last month of my life is probably in my top five life-changing experiences,
right up there with moving out of my parents&apos; house. Never has my daily consideration shifted so much
in the direction of frugality and resourcefulness.&lt;/p&gt;
</content:encoded></item><item><title>A Jasmine matcher for Backbone.js Event Expectations</title><link>https://www.teejayvanslyke.com/letters/a-jasmine-matcher-for-backbone-js-event-expectations/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/a-jasmine-matcher-for-backbone-js-event-expectations/</guid><pubDate>Wed, 21 Mar 2012 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;I wanted to be able to eloquently test Backbone.js event chains, so I wrote a &lt;a href=&quot;https://gist.github.com/2152540&quot;&gt;custom matcher&lt;/a&gt;.&lt;/p&gt;
</content:encoded></item><item><title>A leak is a good excuse for bamboo.</title><link>https://www.teejayvanslyke.com/letters/a-leak-is-a-good-excuse-for-bamboo/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/a-leak-is-a-good-excuse-for-bamboo/</guid><pubDate>Wed, 21 Mar 2012 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;It&apos;s been raining and hovering around 40°F for the past two weeks straight here in Portland.
As a result, my trusted land yacht (RV) has faced the plight of condensation in all its orifices.
And so, I figured, my wet carpet must surely be a result of it raining inside, right?&lt;/p&gt;
&lt;p&gt;Wrong.&lt;/p&gt;
&lt;p&gt;The plastic tubing connecting my water pump to the faucet had sprung a slow leak, and was dripping
water all over the inside of my kitchenette unit, down onto the carpet in front of my bed. I&apos;d
impressed myself countless times with my seeming natural handyman talent (this kid deals in bits and
bytes typically), but this one was too much stress for me to handle.&lt;/p&gt;
&lt;p&gt;My trusty Craigslist contractor came to the rescue, but had a caveat: The carpets needed to be ripped
out. With that much water seeping through to the subfloor, chances of salvaging the wood below with
the carpets in place were slim. And so, reluctantly, I started the process I had hoped to put off
until I reached sunnier pastures. It was time to go bamboo.&lt;/p&gt;
&lt;h4&gt;Wood Jerry! Wood!&lt;/h4&gt;
&lt;p&gt;At the inception of my &lt;a href=&quot;https://teejayvanslyke.com/a-grand-lifestyle-experiment&quot;&gt;grand lifestyle experiment&lt;/a&gt;, I decided
I wanted to remodel most of my RV with gorgeous hardwoods from &lt;a href=&quot;http://bamboorevolution.com&quot;&gt;Bamboo Revolution&lt;/a&gt;.
Their work is most prominent in the interior of &lt;a href=&quot;http://coava.myshopify.com&quot;&gt;Coava Roasters&lt;/a&gt;,
with which they happen to share a space. When I saw it, I fell in love.&lt;/p&gt;
&lt;p&gt;The installation is still a work in progress, but I have a hunch the improvement will be night and day.
I don&apos;t know what kind of masochist wants carpet installed in their home, but I&apos;m glad to make a swift exit
from that club.&lt;/p&gt;
</content:encoded></item><item><title>RVM, Ruby 1.9.3, Homebrew and PostgreSQL make me want to kill babies</title><link>https://www.teejayvanslyke.com/letters/rvm-ruby-1-9-3-homebrew-and-postgresql-make-me-want-to-kill-babies/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/rvm-ruby-1-9-3-homebrew-and-postgresql-make-me-want-to-kill-babies/</guid><pubDate>Fri, 23 Dec 2011 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;After much frustration with absymal load times on my Rails 3.1 application when running on Ruby 1.9.2,
I decided it was high time to upgrade to 1.9.3 to take advantage of its new hash-based require scheme. Turns out
it was going to take an entire afternoon because of an issue with the &lt;code&gt;pg&lt;/code&gt; gem&apos;s configuration.&lt;/p&gt;
&lt;p&gt;If you&apos;re having the same problem, try the following:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;$ rvm use 1.9.3-p0
$ gem uninstall pg # uninstall all versions
$ gem install pg  --with-pg-config=/usr/local/Cellar/postgresql/9.0.4/bin/pg_config
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Essentially, you need to be explicit about Homebrew&apos;s Postgres installation so you don&apos;t end up using
the default Mac installation.&lt;/p&gt;
&lt;p&gt;I hope this helps. Happy holidays!&lt;/p&gt;
</content:encoded></item><item><title>My inner monologue</title><link>https://www.teejayvanslyke.com/letters/my-inner-monologue/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/my-inner-monologue/</guid><pubDate>Tue, 13 Dec 2011 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;So I&apos;ve noticed some things about my inner monologue when reading poorly-written prose:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;If someone misuses the word &apos;to&apos; in place of &apos;too&apos;, my internal meter speeds up to accommodate the missing &apos;o&apos;.&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;em&gt;What&apos;s up? Oh not to much.&lt;/em&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Whenever someone writes in all capital letters, I shout the entire sentence to myself&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;em&gt;HEY TEEJAY HOW&apos;S IT GOING? I&apos;M GOOD LOVE AUNT SHERRY&lt;/em&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;When someone uses the possessive pronoun &quot;your&quot; in place of the contraction &quot;you&apos;re,&quot; I want to give my eyeballs paper cuts with acid blotter paper.&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;em&gt;Boy I bet your glad I took that English class!&lt;/em&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;And finally, when someone does all three at once, I write blog posts like this one!&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;em&gt;YOUR REALLY GREAT AND WE SHOULD HANG OUT TO!&lt;/em&gt;&lt;/p&gt;
</content:encoded></item><item><title>Sugar is a poison and should be regulated</title><link>https://www.teejayvanslyke.com/letters/sugar-is-a-poison-and-should-be-regulated/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/sugar-is-a-poison-and-should-be-regulated/</guid><pubDate>Sat, 03 Dec 2011 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Robert H. Lustig, MD gives a lecture exploring the damage caused by sugary foods:&lt;/p&gt;
</content:encoded></item><item><title>Coffeehouse hipster technocrats are the linchpins of tomorrow</title><link>https://www.teejayvanslyke.com/letters/coffehouse-hipster-technocrats-are-the-linchpins-of-tomorrow/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/coffehouse-hipster-technocrats-are-the-linchpins-of-tomorrow/</guid><pubDate>Tue, 29 Nov 2011 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;My brother stumbled upon my last post,
&lt;a href=&quot;https://teejayvanslyke.com/2413224cf1c6f2206c3f7156419b68a54fc67acd/&quot;&gt;We have the capacity for renaissance&lt;/a&gt;,
and suggested I read Seth Godin&apos;s book &lt;em&gt;Linchpin&lt;/em&gt;.
Only thirty-some-odd pages into it and I&apos;m realizing he&apos;s preaching
what I so-humbly prophetized five years ago: My generation&apos;s affluence
depends not upon employment, following, or obedience, but upon
self-reliance, leadership, and challenging the status quo. For the first time in
our industrial society, Godin proclaims, the proletariat owns the means of production.&lt;/p&gt;
&lt;p&gt;In my last days of my undergraduate study, I held an internship at a small software
company in Ithaca, New York. When I decided to up and move across the country to Portland,
I was bold enough to inquire about telecommuting. They said yes.&lt;/p&gt;
&lt;p&gt;What an exciting, new prospect! I had heard of transcriptionists and architects taking their work home with them,
but the idea that I could work among a team of four engineers sitting in a seat
3,000 miles and three timezones away seemed like a fantasy. This was in 2007 a time when VoIP was in its
barely-useful infancy. Source control systems were hosted on dedicated servers and lacked the social facilities
which make GitHub such a joy to use.&lt;/p&gt;
&lt;p&gt;Moving to Portland, in retrospect, was like sailing the maiden voyage of a vessel to a new world.
One free from the shackles of 9-5 work schedules, daily commutes, lacking office kitchen facilities,
distracting water cooler jabber, and most importantly, &lt;em&gt;showing up for work&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;My parents&apos; generation was the Worker Bee Generation. Throughout my childhood,
my parents preached higher education not as a means for academic enrichment, but
as a means toward gainful employment. It&apos;s not their fault they were wrong to assume
polite obedience and good grades would bear our generation&apos;s livings. It is our
responsibility to adjust our attitudes and act in accordance with our brave new economy.&lt;/p&gt;
&lt;p&gt;We are thoughtworkers. Whereas a steel worker&apos;s hands are easily replaced by another&apos;s hands, the
thoughtworker&apos;s mind is irreplaceable and irreplicable. Manual and clerical labor are mere &lt;em&gt;facilities&lt;/em&gt;
to assist creative people to realize their visions.&lt;/p&gt;
&lt;p&gt;We are the new elite. We have the power to shift opinion, to automate businesses, to create and topple
entire industries with our minds and some circuitry. And we&apos;re doing it from your neighborhood coffee shop,
your cocktail bar, your park&apos;s picnic table, and the beach.&lt;/p&gt;
&lt;p&gt;That&apos;s so fucking cool.&lt;/p&gt;
</content:encoded></item><item><title>We have the capacity for renaissance</title><link>https://www.teejayvanslyke.com/letters/we-have-the-capacity-for-renaissance/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/we-have-the-capacity-for-renaissance/</guid><pubDate>Mon, 28 Nov 2011 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;So frequently I find myself in awe over the tools available for content creation and
distribution—tools which might have cost the average worker&apos;s annual salary only a decade ago.
The Internet has granted nearly everyone the capacity to realize and disseminate the ideas in their hearts and minds
in a way we&apos;ve never known in any culture, ever.&lt;/p&gt;
&lt;p&gt;Why then, do we trend toward consumption-centric use patterns with our new technology? I consider myself prolific,
but I still find myself checking my Facebook and Twitter feeds constantly, as if this moment of my life is
incomplete. We flock toward the mundane minutae of image macros and top ten lists despite their obvious irrelevance
to profound betterment of our lives.&lt;/p&gt;
&lt;p&gt;Each and every one of us has the capacity to create. What will you make today?&lt;/p&gt;
</content:encoded></item><item><title>Sticker/poster designs.</title><link>https://www.teejayvanslyke.com/letters/sticker-poster-designs/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/sticker-poster-designs/</guid><pubDate>Sun, 30 Dec 2007 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;I was bored sitting at Stumptown today, so I decided to let out my anti-globalization rage by creating a few bumper sticker and/or poster designs.  If any of y’all like them I might get them printed and open an online store or something…&lt;/p&gt;
</content:encoded></item><item><title>What Will We Eat as the Oil Runs Out?</title><link>https://www.teejayvanslyke.com/letters/what-will-we-eat-as-the-oil-runs-out/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/what-will-we-eat-as-the-oil-runs-out/</guid><pubDate>Thu, 06 Dec 2007 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Richard Heinberg has a &lt;a href=&quot;https://web.archive.org/web/20080416005554/http://www.richardheinberg.com/museletter/188&quot;&gt;wonderful paper&lt;/a&gt; which discusses the direness of the oil crisis, and eloquently debunks the idea that biofuels are a viable solution to our energy crisis:&lt;/p&gt;
&lt;blockquote&gt;&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;One factor influencing food prices arises from the increasing incentives for farmers worldwide to grow biofuel crops rather than food crops. Ethanol and biodiesel can be produced from a variety of crops including maize, soy, rapeseed, sunflower, cassava, sugar cane, palm, and jatropha. As the price of oil rises, many farmers are finding that they can produce more income from their efforts by growing these crops and selling them to a biofuels plant, than by growing food crops either for their local community or for export.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;&lt;/blockquote&gt;
&lt;p&gt;Already nearly 20 percent of the US maize crop is devoted to making ethanol, and that proportion is expected to rise to one quarter, based solely on existing projects-in-development and government mandates. Last year US farmers grew 14 million tons of maize for vehicles. This took millions of hectares of land out of food production and nearly doubled the price of corn. Both Congress and the White House favor expanding ethanol production even further - to replace 20 percent of gasoline demand by 2017 - in an effort to promote energy security by reducing reliance on oil imports. Other nations including Britain are mandating increased biofuel production or imports as a way of reducing carbon emissions, though most analyses show that the actual net reduction in CO2 will be minor or nonexistent.&lt;/p&gt;
&lt;p&gt;Heinberg, unlike many alarmist environmentalists today, attempts to offer viable solutions to our impending crisis, which can be summed up with one word:  conservation.  I encourage everyone and anyone to peruse his article carefully; it provides a well-cited, insightful overview of the resource depletion crises which will affect every human on the planet.  Most importantly, Heinberg stresses that “applying mere techno-fixes … will almost certainly lead to dire consequences.”&lt;/p&gt;
&lt;p&gt;See you all on the farm.&lt;/p&gt;
</content:encoded></item><item><title>I am in love with this town!</title><link>https://www.teejayvanslyke.com/letters/i-am-in-love-with-this-town/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/i-am-in-love-with-this-town/</guid><pubDate>Sun, 02 Dec 2007 00:00:00 GMT</pubDate><content:encoded>&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;There is no sales tax.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Coffee shops have free wi-fi.  Period.  Oh, and my favorite americano and bagel combination costs less than at Juna’s in Ithaca as a result of the lack of sales tax.  Oh, and the coffee here is good.  Really, really good.  Better than Gimme.  Sorry, Gimme.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;I pay $45 more per month for a house that is 1000% more livable than my previous apartment.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Pabst Blue Ribbon isn’t an option.  It’s a staple.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;I was at a crosswalk, and the cars stopped for &lt;em&gt;me&lt;/em&gt;.  They have to.  By law.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;There’s a multi-acre park on a main boulevard.  The trees in the park are taller than the shops.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;I have never seen greener grass in my life.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
</content:encoded></item><item><title>A smattering of holiday “cheer”</title><link>https://www.teejayvanslyke.com/letters/a-smattering-of-holiday-cheer/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/a-smattering-of-holiday-cheer/</guid><pubDate>Sat, 24 Nov 2007 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;I was at the bank today, and sure enough, they had a television tuned to CNN.  While waiting in line, I figured I would see what the rest of the country deems “news.”  What I saw in the ten minutes I watched was a report about how Domino’s Pizza expects a 6% increase in profits today due to some tradition that claims tonight is a great night to eat pizza.  This is not news.  This is an overpriced commercial for pizzerias.  We’ve entrusted the responsibility of rigorous appraisal and objective scrutiny of our government with the likes of CNN, and they offer us a report about pizza.  Fuck you, CNN.  Fellow Americans, you pay for this?  You actually take out your wallets and say “Hey News Corporation, I want you to tell me about celebrities every minute of every day and neglect to address key issues like our energy crisis and our three escalating conflicts in the Middle East!”  You should be ashamed.  If you want to see change in the world, put away your wallets and open your notebooks, turn on your cameras, and start screaming.&lt;/p&gt;
&lt;p&gt;Most eccentrics and radicals with opinions often offer little in the way of a solution.  These are the rabid protesters at every WTO rally, the Democrats, the Republicans, Michael Moore and Bill O’Reilly.  There is one thing all of these folks lack which I think needs to be addressed at a public hearing immediately:  balls.  No, I’m not talking in the physical sense — I haven’t checked whether rabid hippies have testicles and God would know I wouldn’t want to check under Michael Moore’s trousers… if I believed in God.  The balls I’m talking about represent the ability for an individual or organization to stand up for what they believe in and be able to rigidly define those beliefs without succumbing to fear that their particular ideology will be shot down by another party.  That certainly isn’t to say that women don’t have balls.  As a matter of fact, many of the women I know have bigger balls than most men — they take action and do so with passion.  Perhaps us men have become comfortable with our balls to the point where they have shriveled so far up into our abdomens that we have turned into a rowdy bunch of cowards:  the Gonzalez’s, the Cheney’s, the Bush’s, the Murdoch’s, the Turner’s, and the Rockafeller’s.&lt;/p&gt;
&lt;p&gt;This holiday season, I want each and every one of you to do something radical.  Do not lavish your friends with expensive shit they will not use because the TV tells you to (and don’t pull the “the TV didn’t tell me to, I did it by my own volition” card.  I stopped buying gifts for people at Christmas as soon as I rid myself of the propagandavision and I will never look back).  Instead, take extra time to think of your family.  No, not just your mother.  Not just your siblings, your aunts, your uncles, your cousins.    They’re all important, but they’ll do just fine without iPods.  I mean your distant black cousins down the street whose mother is working Christmas Day because her children’s father left her.  I mean your distant Iraqi cousins whose house just got destroyed in a raid and spent Ramadan fighting for their lives.  No, don’t send them iPods — they don’t need them either.  Meditate on the world and find peace within yourself.  No amount of wrapping paper, pretty bows, and blister-packed electronics can possibly compare to the humility of awareness.&lt;/p&gt;
&lt;p&gt;Change starts with you.  I had a conversation with my brother I’d like to share with all of you.  He told me he didn’t have any idea what he wanted to pursue in college.  No subject of study seemed relevant to the world around him.  I told him to look outside, and tell me who decided that there should be a traffic light at the intersection.  He hesitated, and I told him a civil engineer probably decided that — a civil engineer that might retire soon and expect our generation to pick up where he left off.  I explained to him that our generation is about to take the reigns of the sleigh of humanity, and that, to be quite honest, it looked as if we were heading straight into a tree.  I could tell this started the wheels of his brain turning.  Change starts with you.  It is your world and your responsibility.  Your XBox, CNN, ESPN, NFL, CBS, Wal-Mart, NASCAR world is a fantasy.  It is a condition of a naive mind to believe that the problems caused by the machine of the world will be solved as a cog.  You must be the operator of that machine.  Consumption breeds corruption.  Gluttony breeds greed.  Ask any good-hearted Christian and they’ll tell you it’s in their Bible.  It’s too bad we’ve all lost sight of the true meaning of it all.&lt;/p&gt;
</content:encoded></item><item><title>Casper’s DoppelgÃ¤nger</title><link>https://www.teejayvanslyke.com/letters/casper-s-doppelga-nger/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/casper-s-doppelga-nger/</guid><pubDate>Sun, 04 Nov 2007 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;a href=&quot;https://teejayvanslyke.com/web/20080416005805/http://teejayvanslyke.com/wp-content/uploads/2007/11/caspers_doppelganger.mp3&quot;&gt;[mp3]&lt;/a&gt;&lt;/p&gt;
</content:encoded></item><item><title>The West Coast Departure Project</title><link>https://www.teejayvanslyke.com/letters/the-west-coast-departure-project/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/the-west-coast-departure-project/</guid><pubDate>Sun, 04 Nov 2007 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;a href=&quot;https://web.archive.org/web/20080416005805/http://teejayvanslyke.com/wp-content/uploads/2007/11/the-west-coast-departure-project-r2.mp3&quot;&gt;[revision 2 | mp3]&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://web.archive.org/web/20080416005805/http://teejayvanslyke.com/wp-content/uploads/2007/11/the-west-coast-departure-project.mp3&quot;&gt;[revision 1 | mp3]&lt;/a&gt;&lt;/p&gt;
</content:encoded></item><item><title>They sold out.</title><link>https://www.teejayvanslyke.com/letters/they-sold-out/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/they-sold-out/</guid><pubDate>Sun, 14 Oct 2007 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;So much &lt;a href=&quot;https://web.archive.org/web/20080416005549/http://teejayvanslyke.com/wp-content/uploads/2007/10/they_sold_out.mp3&quot;&gt;nonsense&lt;/a&gt;.&lt;/p&gt;
</content:encoded></item><item><title>I just traveled five hours to sit at Gimme! Coffee.</title><link>https://www.teejayvanslyke.com/letters/i-just-traveled-five-hours-to-sit-at-gimme-coffee/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/i-just-traveled-five-hours-to-sit-at-gimme-coffee/</guid><pubDate>Fri, 07 Sep 2007 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;I’m sitting at Gimme! Brookyln on Lorimer St. in Williamsburg.  Not surprisingly, it looks and feels identical to the Gimme! Coffee locations back home in Ithaca, boasting the same iconic stamped cups and white-on-black signage.  There’s also the familiar ambiance of indie music playing in the background and kitschy artwork hanging along the white, black and red walls.&lt;/p&gt;
&lt;p&gt;The lack of worthwhile eateries in Williamsburg is striking.  The streets are littered with the usual fare:  pizza, Chinese food, deli, deli, deli, pizza, pizza, pizza, Chinese food, Chinese food, and the occasional mom-and-pop Mexican restaurant also serving Chinese food as if it will drive more business.  I settled on the greasiest slice of eggplant pizza I’ve ever eaten.&lt;/p&gt;
&lt;p&gt;Tomorrow I’m going to McKarren Pool to see Modest Mouse in concert.  Toodles.&lt;/p&gt;
</content:encoded></item><item><title>Summer slack-off roundup.</title><link>https://www.teejayvanslyke.com/letters/summer-slack-off-roundup/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/summer-slack-off-roundup/</guid><pubDate>Tue, 07 Aug 2007 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;It’s been awhile since I’ve managed to post.  Here is a quick summary of what I’ve been up to, in one-word exclamations:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;FLY!&lt;/strong&gt; I returned from Europe in one piece.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;MOVE!&lt;/strong&gt;  I moved off South Hill to a small apartment downtown.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;PLAN!&lt;/strong&gt;  I planned a short trip to New York to see a Daft Punk concert and friends.  I leave this Thursday.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;PLAY!&lt;/strong&gt;  I played the drums and the banjo in Eric Stewart’s band &lt;a href=&quot;https://web.archive.org/web/20080416005014/http://www.myspace.com/ghostinmybasement&quot;&gt;Ghost In My Basement&lt;/a&gt; at No Radio Records.  We lined up another show on September 1 at a Buzzsaw Haircut benefit show at Ithaca College.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
</content:encoded></item><item><title>So long, Dundee, and good riddance indeed.</title><link>https://www.teejayvanslyke.com/letters/so-long-dundee-and-good-riddance-indeed/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/so-long-dundee-and-good-riddance-indeed/</guid><pubDate>Thu, 28 Jun 2007 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Today was an adventure like all the others.  I spent my usual hour in the morning finding my way to Buchanan Station in Glasgow; everything in this city looks the same!  I boarded the bus to Dundee and slept most of the way there.  Upon my arrival, I luckily tracked down a taxi to the conference so that I wasn’t stuck walking miles uphill as I was in the days prior.  I was able to attend a few sessions for the first time the entire conference, and Ali gave our presentation.  The presentation was fairly well-received by the conference attendees.&lt;/p&gt;
&lt;p&gt;Following the conference, Ali and I made our way to the botanical gardens at the University for yet another refreshment session.  The gardens were absolutely stunning:&lt;/p&gt;
&lt;p&gt;Ali and I were having a jolly good time, joking and bantering down the street trying to find a restaurant that didn’t serve fish and chips or pizza.  He was meeting some Norwegian fellows at a pub in Dundee at around 22:00.  I had to catch my bus back to Glasgow at 20:40.  At around 20:10, we settled on a Pizza Hut and made our way in.  I lost track of time and, without surprise, missed my bus by thirty seconds in a rage running to the bus station.  I walked the walk of shame back up the hill, pizza in hand, and told Ali the news.&lt;/p&gt;
&lt;p&gt;I weighed my options.  I could bum around town with Ali and the Norwegians and “figure something out,” or I could find another way home.  Luckily, the folks working at the restaurant tracked down the next train to Glasgow  that evening.  We walked to the train station and I purchased my ticket.  Â£20.40, which is approximately $40 USD for those of you keeping track at home.&lt;/p&gt;
&lt;p&gt;The train station in Dundee is kind of like everything else in the city after 19:00:  cold, dark, lonely, and terrifying.  There was a young chap banging sticks up above the station looking down at me.  The station was eerily quiet.  To be honest, the only sense of security I had came from the CCTV cameras placed throughout.&lt;/p&gt;
&lt;p&gt;It’s good to know that the only bus I have left to board is back to Prestwick to return to London.&lt;/p&gt;
&lt;p&gt;I’m off to see Paul Strachan at the University of Strathclyde.  Further updates to follow!&lt;/p&gt;
</content:encoded></item><item><title>A drink at Stansted.</title><link>https://www.teejayvanslyke.com/letters/a-drink-at-stansted/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/a-drink-at-stansted/</guid><pubDate>Mon, 25 Jun 2007 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;I got off the train and made my way to the check-in counter at Ryanair.  They told me check-in for my flight hadn’t begun yet, so I decided to get a drink at the bar.  I happened to meet a lovely girl from Kent, who bought me a Chardonnay.  We talked politics, religion, dreams, and destinies.  It’s amazing the conversations you’ll have if you just say hello.  I told her about my idea to travel across the country in a motorhome, and I was met with fascination, as she was seeking to leave her current position as a police officer to move to Australia and seek a similar lifestyle.&lt;/p&gt;
</content:encoded></item><item><title>Aboard the Stansted Express.</title><link>https://www.teejayvanslyke.com/letters/aboard-the-stansted-express/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/aboard-the-stansted-express/</guid><pubDate>Mon, 25 Jun 2007 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;I am sitting aboard a train in the Liverpool Street train station, bound for Stansted Airport.  Unfortunately, I am accompanied by all of my baggage again, limiting my mobility.  I do hope that Stansted has Internet access and public electricity; the old laptop needs a recharge.&lt;/p&gt;
&lt;p&gt;London and I are starting to have a love-hate relationship on a grandiose scale.  At the level of the individual, there are plenty of folks who will make you feel right at home, regardless of where you are from or what you believe.  However, at large, London operates like an Orwellian dystopia.  The Underground is flooded with automated announcements by a computerized British female voice, informing you of the train’s next destination.  Large posters inform citizens about the improvements that are being made to the Underground to facilitate for more secure, faster, and robust travels.  But through all of it, there is little sign of true compassion.  London is not a community; rather, it is a system into which its citizens are so horribly integrated that they operate as mere cogs.&lt;/p&gt;
&lt;p&gt;Fear-mongering is abound moreso than anywhere I’ve been in the United States.  Signs warn citizens to be warned that they are being watched and will be prosecuted if a crime is committed.  I witnessed a woman being accosted by the British Transport police and having her bag searched.  Londoners, at least among those travelling aboard the Underground, have little or no sense of humor.  I didn’t dare speak to any of them; it is almost as if there is an unwritten rule.  I was tempted to break that rule, when I realized that the folks I would talk to may not take kindly to such behavior and might report it to the authorities, as they are instructed to over the loudspeakers several times per day.&lt;/p&gt;
&lt;p&gt;As I travel out of central London, I am reminded that the United Kingdom isn’t completely close-circuited.  What does Glasgow have to offer?&lt;/p&gt;
</content:encoded></item><item><title>Deerhoof in Glasgow!</title><link>https://www.teejayvanslyke.com/letters/deerhoof-in-glasgow/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/deerhoof-in-glasgow/</guid><pubDate>Mon, 25 Jun 2007 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Deerhoof will be playing at ABC Glasgow this evening at 7:00.  Unfortunately, I will probably be occupied with the conference banquet in Dundee and unable to make it.  It may not be in my best interest, but I might leave the conference early to make it to the concert… There aren’t many opportunities like this one.&lt;/p&gt;
</content:encoded></item><item><title>Not even the locals like Dundee…</title><link>https://www.teejayvanslyke.com/letters/not-even-the-locals-like-dundee/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/not-even-the-locals-like-dundee/</guid><pubDate>Mon, 25 Jun 2007 00:00:00 GMT</pubDate><content:encoded>&lt;h2&gt;What I see:  The 78 Bar, Glasgow&lt;/h2&gt;
&lt;p&gt;I boarded the bus to Dundee with a smile on my face and eyes full of vibrant Scottish landscape.  As the coach neared Dundee, I became excited that I was reaching the ultimate destination of my trip.  Upon stepping off the bus, I sought the location of the University, to find out that many of the locals were less than friendly.  It ended up that I walked miles uphill in heavy shoes and a gentleman’s blazer with an overloaded backpack in search of the buildings which housed the conference.  Three inquiries and several curses later, I found myself at West Park at the University of Dundee, less than impressed.  I ate my complimentary lunch, spoke with a few of the conference attendees, and sought my professor to discuss our presentation.&lt;/p&gt;
&lt;p&gt;(Un)fortunately, I haven’t any photographs from Dundee.  I must return tomorrow to finish the presentation, so I will attempt to snap some then.&lt;/p&gt;
&lt;p&gt;When I returned to Glasgow, I attempted to go to the ABC to see Deerhoof, only to find that it was sold out.  There were some Uni students outside hoping to catch some scalpers, and I had a short conversation with them about food and drink around the city.  After they recommended me several delightful places to eat and drink, I promptly neglected to use their advice and got some second-rate fish and chips.  Then I wandered the streets of Glasgow in search of a pub that wasn’t trendy as fuck, found myself at a loss, and returned back to the hostel to find a delightful dive down the street, the 78, where I am now.&lt;/p&gt;
&lt;p&gt;Another lager barkeep; I’m sleepin’ alone tonight.&lt;/p&gt;
</content:encoded></item><item><title>Notting Hill Gate.</title><link>https://www.teejayvanslyke.com/letters/notting-hill-gate/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/notting-hill-gate/</guid><pubDate>Sun, 24 Jun 2007 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;I’m sitting outside an Apostrophe cafe at Notting Hill Gate.  Before I hopped the Tube, I met up with a couple of Singaporean graphic designers at St. Christopher’s:&lt;/p&gt;
&lt;p&gt;They are attending an exhibition at Lower Thames this week.  We spoke about our business in Europe and our aspirations for the future.  I may meet up with them again if I stay at St. Christoper’s when I return to London.&lt;/p&gt;
&lt;p&gt;I am noticing my dialect and accent going the way of the Englishmen, even only after a few days.  I cannot believe it myself.  Perhaps I was meant to be here.&lt;/p&gt;
&lt;p&gt;I happened to take some photographs around Notting Hill:&lt;/p&gt;
&lt;p&gt;It’s about 3 in the afternoon and I’ll need to be getting back to Borough shortly to pick up my luggage and board the Tube to Liverpool Street to catch the train to Stansted.  There I will be flying into Glasgow where I have a hostel accommodation.  I look forward to seeing Glasgow as it may be my home for the duration of my Ph.D program.  I have a feeling it will be a late night and an early morning.  Until then, cheers.&lt;/p&gt;
</content:encoded></item><item><title>Shake-up at St. Christopher’s.</title><link>https://www.teejayvanslyke.com/letters/shake-up-at-st-christopher-s/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/shake-up-at-st-christopher-s/</guid><pubDate>Sun, 24 Jun 2007 00:00:00 GMT</pubDate><content:encoded>&lt;h2&gt;Blackfriars Bridge at sunset&lt;/h2&gt;
&lt;p&gt;Sunday morning.  Londoners seem to adhere to blue laws of old: Hardly any shops are open Sunday morning.  Luckily, Londoners love their coffee and tea and so I am able to blog.&lt;/p&gt;
&lt;p&gt;Last night was an interesting course of events.  I met up with some Americans and a New Zealander at the hostel and we had some bonding time over a few drinks at the pub.  It was a good time, but I wish I could have met some locals.  One Londoner stopped us on the street and asked us for directions.  This was a good indicator of the sheer size of this city.  He was an extremely friendly fellow and was infinitely amused at our use of the exclamation “Sweet!”&lt;/p&gt;
&lt;p&gt;As soon as I was ready to turn in for the evening, things got interesting.  The hostel I was staying at was split into two buildings on the same block of Borough High Street, St. Christopher’s Village and St. Christopher’s Inn.  My first mistake was misreading my bed reservation as saying I was staying in Room 1 of the Village.  I went upstairs and found myself locked out of the room.  I then realized I was supposed to be at the Inn, and walked down the street to be accosted by two large fellows standing outside bouncing the hostel’s bar downstairs.  I showed them my room key and they allowed me through.  I went upstairs and slid my key card through the door of Room 1, to find myself locked out there as well.  I sighed heavily, trudged down the stairs, down the street, and explained the problem to the receptionist.  He slid my card through his magic machine and told me the key would work now.  I huffed down the street yet again and collapsed into my bed.  Twenty minutes later, a young British fellow entered the room and wondered what I was doing in his bed.  I replied that I was unaware that the bed was taken.  I sighed more heavily than before, slipped my shoes on, and walked down the street yet again.  By now, I could tell the security guards outside were becoming mighty suspicious of my behavior.  I explained the problem to reception and he punched some buttons on his computer.  He looked up my name and told me I was actually supposed to be in Room &lt;em&gt;10&lt;/em&gt; at the Inn.  I suppose it was an honest mistake of the receptionist that booked me, but I was quite tired and thus, quite peeved.  I walked back to the Inn and collapsed for the night.&lt;/p&gt;
&lt;p&gt;I remember distinctly falling asleep to the sound of a pissed English fellow explaining his plan to punch some other fellow’s stomach in.  I laughed inside and fell right asleep.&lt;/p&gt;
&lt;p&gt;Today I might take a trip to Notting Hill before I have to board the train to Stansted Airport to catch my plane to Glasgow.&lt;/p&gt;
</content:encoded></item><item><title>A base of operations.</title><link>https://www.teejayvanslyke.com/letters/a-base-of-operations/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/a-base-of-operations/</guid><pubDate>Sat, 23 Jun 2007 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;I found a hostel in Borough called St. Christoper’s which fortunately had a vacancy.  I stowed my luggage away and embarked on my walk around the city.  London is beautiful; it is a peculiar superimposition of modern architecture atop London’s iconic classical buildings.  I’m sitting at a coffee shop outside St. Paul’s Cathedral.&lt;/p&gt;
&lt;h2&gt;What I See:&lt;/h2&gt;
&lt;p&gt;The CCTV around London is a bit disconcerting… They’ve really turned the city into a police state.  It doesn’t feel particularly invasive, but I am struck every time I see a sign stating that the area is being monitored.&lt;/p&gt;
&lt;p&gt;I had a chance to see the River Thames as well:&lt;/p&gt;
&lt;p&gt;Unfortunately, I’m going to have to spend some time preparing for the conference this afternoon, so I won’t be able to do much sightseeing.  I suppose it is to be expected; after all, it’s what brought me here in the first place.&lt;/p&gt;
</content:encoded></item><item><title>Pubhopping at Picadilly.</title><link>https://www.teejayvanslyke.com/letters/pubhopping-at-picadilly/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/pubhopping-at-picadilly/</guid><pubDate>Sat, 23 Jun 2007 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;I hopped the tube and found my way to Picadilly Circus:&lt;/p&gt;
&lt;h2&gt;St. Paul’s Underground Station&lt;/h2&gt;
&lt;p&gt;I floated around, finding many historic buildings and statues along the way:&lt;/p&gt;
&lt;p&gt;Walking down a small side street, I happened upon a historic pub where I sat down and had a Strongbow:&lt;/p&gt;
&lt;p&gt;Londoners are surprisingly friendly.  The Underground is about as friendly as the Metro… eye contact is implicitly prohibited.  However, I found that pubs and coffee houses have a vibe reminiscent of Ithaca.&lt;/p&gt;
&lt;p&gt;Until next time…&lt;/p&gt;
</content:encoded></item><item><title>Welcome to the Four Stars Hotel at London.</title><link>https://www.teejayvanslyke.com/letters/welcome-to-the-four-stars-hotel-at-london/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/welcome-to-the-four-stars-hotel-at-london/</guid><pubDate>Sat, 23 Jun 2007 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Morning.  I have awkaken with a stomach full of Greek cuisine and a rested body.  The hotel room has a peculiar bathroom arrangement; there is a small, closet-sized door which leads to a self-contained, extremely space-efficient stall.  The sink and mirror share the stall with the shower.&lt;/p&gt;
&lt;p&gt;There’s supposedly a continental breakfast downstairs, so I am about to find my way to a cup of coffee.  Then it will be a long day of booking hostels and (hopefully) seeing some of historic London.  I cannot afford to pay 50 pounds for a room again, so I do hope I will be able to find suitable accommodations.&lt;/p&gt;
</content:encoded></item><item><title>Hopeless.</title><link>https://www.teejayvanslyke.com/letters/hopeless/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/hopeless/</guid><pubDate>Fri, 22 Jun 2007 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;London.  I am operating on no sleep and am slowly falling into a daze of perceived helplessness.&lt;/p&gt;
&lt;p&gt;Customs was a nightmare.  It was the factory-farmed fight to the finish that you hear about but never believe.  I stood waiting in line for two hours.  As soon as I spoke with the immigration officer, she asked of my business abroad.  I told her everything I knew.  One thing I did not know, and still do not know, is where I am to sleep tonight.  72 hours without sleep would be a catastrophe.&lt;/p&gt;
&lt;p&gt;I have been here for five hours and have yet to step outside.  This train is heading for Paddington Station.  An Australian couple sits ahead of me and recommends that I find lodging accommodations at Paddington.  They, as everyone else, told me I should have made reservations ahead of time.  I told them they were right.&lt;/p&gt;
&lt;p&gt;New York and London are strikingly similar thusfar.  Everything is arbitrarily numbered, lettered, or named, and it requires a vocabulary of contextual babble in order to survive.&lt;/p&gt;
&lt;p&gt;Armed with my granola bars imported from America and bags beneath my eyes the size of lady fingers, I must set out to face the city.  Ciao.&lt;/p&gt;
</content:encoded></item><item><title>Greyhound.</title><link>https://www.teejayvanslyke.com/letters/greyhound/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/greyhound/</guid><pubDate>Thu, 21 Jun 2007 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;And so it begins!  I am currently aboard the Great Ship Greyhound, embarking on&lt;/p&gt;
&lt;p&gt;its journey to the New York Port Authority.&lt;/p&gt;
&lt;p&gt;I happened upon an interesting conversation with a woman at the Ithaca bus&lt;/p&gt;
&lt;p&gt;terminal which reassured me that my traveling alone will provide me with ample&lt;/p&gt;
&lt;p&gt;opportunities to meet vibrant individuals.&lt;/p&gt;
</content:encoded></item><item><title>Autobiography, circa 1994</title><link>https://www.teejayvanslyke.com/letters/autobiography-circa-1994/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/autobiography-circa-1994/</guid><pubDate>Sun, 17 Jun 2007 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;I was roaming around my media folders and came across a copy of a diskette containing several pieces of writing from third grade.&lt;/p&gt;
&lt;p&gt;First, an autobiography:&lt;/p&gt;
&lt;blockquote&gt;&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;The time was 10:14 am, the date was November 14, 1985. All I heard was “It’s a boy, no it’s a girl, no it’s a boy!” My name is Timothy James (T.J.) VanSlyke Jr. If I were a girl, (which I’m glad I’m not!), my name would have been Catherine. They named me after my dad. That is also the reason they named me what they did.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;&lt;/blockquote&gt;
&lt;p&gt;My family members are my mom, my dad, Adam, Chris, and I. My mom is 35 years old, and she’s a nice and indulgent mom. She has brown eyes and brown hair. She’s German-Italian and is a homemaker, but can be a teacher. My dad is 35 also. He has brown eyes and brown hair. He’s sort of strict, but hardly ever grumpy. My mom and dad were both born in the same month as their holiday (Father’s Day and Mother’s Day). My brother, Adam, is 7 years old. He loves hockey, but sometimes he goes a little too far and he thinks it’s a wrestling match. He is also a little high-tempered. He has brown eyes and brown hair, and wears hearing aids. My other brother, Chris, is almost 5 (he’ll turn 5 in November). He loves playing with his toy figures, and also loves Power Rangers. He has blue eyes and blonde hair. Now I’ll tell you about the houses that I’ve lived in. I’ve lived in Utica, Sherrill, and Dryden. The first place I lived in was a little apartment in Ithaca. That was where I was born. Then we moved to Utica when I was about one. We lived in a little one-story house on Cosby Manor Road. It had three bedrooms, one bathroom, and red siding. We lived there until I was about six. After that, we moved to Sherrill. Sherrill was a nice, little city, (It’s the smallest city in NY!) where lots of nice people live and play together. Sherrill was the best place I’ve ever lived. Our house had two and a half bathrooms, four bedrooms, a nice kitchen, a deck, and a front porch. I wish I lived there again! I live in Dryden now. We live in a house on Bear Circle. It’s a nice place because there’s hardly ever any traffic. We have a really spacious house. It has everything that the house in Sherrill did. The only difference is one less bedroom.&lt;/p&gt;
&lt;blockquote&gt;&lt;/blockquote&gt;
&lt;p&gt;As you know, the first special event was me being born. But at the age 1, I had my first camping trip. At age 2, I had my first Halloween party and I was a clown. At age 2Â½, my brother, Adam was born. At age 4, I went to nursery school for the first time and my teacher’s name was Mrs. Bedell. And here’s the most crazy, I had my first birthday and I cried! I got a book, puzzles, an Ernie doll, a Cabbage Patch doll, and a sled. I ate chocolate cake and got it all over the place. On my first Easter, I got a rabbit doll that I still have. I was 7 months old when I first crawled, 13 months old when I first walked, and 2 years old when I first talked. My baptism was done by Father William M. Barrett when I was 3 months old.&lt;/p&gt;
&lt;blockquote&gt;&lt;/blockquote&gt;
&lt;p&gt;Lots of things are very important to me that I got and started in my later years. I started school in 1990. I got my first computer. It was a little computer with a little hard drive. We got our 2nd computer in 1992. It had a 107 MB hard drive and a 25 MhZ 486 processor. It also had a 2400 baud modem. Our third computer is a really, really nice one. We still have it. It has a 75 MhZ Pentium processor. It also has a 1 GB hard drive, 14,400 baud modem, and tons of software. I started school in Utica. I went through kindergarten and then moved to Sherrill. I finished kindergarten in Sherrill, and went through 1st and 2nd. Then we moved to Dryden and went through 3rd, 4th, and 5th. The worst thing that ever happened to me was that my brother had to go to the hospital. The best thing was that we got a really cool computer. Another thing that happened to me in 1990 is that my brother was born.&lt;/p&gt;
&lt;blockquote&gt;&lt;/blockquote&gt;
&lt;p&gt;I am T.J. VanSlyke, the lover of computers and technology. I am almost 10 years old (10 in November). I have brown eyes and brown hair. I love to help people out and I thirst for knowledge. I would like to be a computer programmer when I grow up. I’m very polite and not very athletic. I take saxophone lessons and I can really entertain myself.&lt;/p&gt;
&lt;blockquote&gt;&lt;/blockquote&gt;
&lt;p&gt;My favorite color is blue. I also like teal. My favorite song is Don’t Let The Sun Go Down On Me by Elton John. I consider sitting down and fooling with the computer a good time. One of the famous people that I like is Bill Gates because he was the one who invented Windows. My favorite book series is Goosebumps by R.L. Stine.. I really, really, really love seafood. One of the things that I hate is when my brothers argue with me.&lt;/p&gt;
&lt;blockquote&gt;&lt;/blockquote&gt;
&lt;p&gt;I hope to be a computer programmer when I grow up. I’d like to get my PhD in science and technology. I want to go to MIT for college. I also hope to own a little kitten and an IBM ThinkPad. I want to have a nice wife and 3 kids. I also wish I could be as famous as Bill Gates!&lt;/p&gt;
&lt;blockquote&gt;&lt;/blockquote&gt;
&lt;p&gt;I am especially curious what I really meant when I described my mother as “nice and indulgent.”  Alas, the vocabulary of a third grader.&lt;/p&gt;
&lt;p&gt;I will continue to post these nuggets of prepubescent ponderings as they turn up.&lt;/p&gt;
</content:encoded></item><item><title>Crocodile Camper, circa 1994</title><link>https://www.teejayvanslyke.com/letters/crocodile-camper-circa-1994/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/crocodile-camper-circa-1994/</guid><pubDate>Sun, 17 Jun 2007 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;And happily ever after…&lt;/p&gt;
&lt;blockquote&gt;&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;Once upon a time there lived a camper. That camper had a crocodile. The crocodile’s name was Francisco. One day the camper planned on going home. But when he was packing, he saw a enormous egg. “Wow!” he said. He went over and picked it up. When he picked it up, it began to shake. Francisco came over to watch. The egg popped open and a green tent came out. It looked like a crocodile. Francisco went to hug him. The camper asked Francisco “Is this your child?” Francisco answered “uh ha!” The camper and the crocodile and the child lived happliy ever after.&lt;/p&gt;
&lt;/blockquote&gt;
</content:encoded></item><item><title>On Computers, circa 1994</title><link>https://www.teejayvanslyke.com/letters/on-computers-circa-1994/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/on-computers-circa-1994/</guid><pubDate>Sun, 17 Jun 2007 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Following up on the autobiography I found in a collection of Microsoft Works .wps document files I authored in 1994 (third or fourth grade), here’s another gem I wrote on the state of computing at the time.  I remember that I &lt;em&gt;volunteered&lt;/em&gt; to read this aloud in the front of the class:&lt;/p&gt;
&lt;blockquote&gt;&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;Computers have changed the lives of many in the last 10 - 20 years by offering an easy way to calculate mathematical equations, communicate with others via on-line services, Internet, etc., and also giving a wide variety of games and other forms of electronic entertainment.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;h2&gt;Electronic Education&lt;/h2&gt;
&lt;/blockquote&gt;
&lt;p&gt;Not many computer users recognize how much information is out there for school work, business work, etc.. These sources include electronic encyclopedias, cookbooks, and there are even do-it-yourself guides for construction, and other sources.&lt;/p&gt;
&lt;blockquote&gt;&lt;/blockquote&gt;
&lt;p&gt;The Internet, even as entertaining as it may seem, has loads of information. You could find anything from when King Tutankhamun was born, to how many soldiers were killed in World War I! Don’t trust the Internet as much as much as a computer encyclopedia, for anyone can put false information on the Internet, but major companies cannot give false information.&lt;/p&gt;
&lt;blockquote&gt;&lt;/blockquote&gt;
&lt;p&gt;Computer encyclopedias are probably the best source of information, because they offer sound, picture, animation, and motion picture (which all make up multimedia) to the user, which makes learning a bit more enjoyable.&lt;/p&gt;
&lt;blockquote&gt;&lt;/blockquote&gt;
&lt;p&gt;Electronic cookbooks are a nice way for cooks to look up a recipe, and even see a picture of what the recipe makes up. Some even let you input your own recipes!&lt;/p&gt;
&lt;blockquote&gt;&lt;/blockquote&gt;
&lt;p&gt;Do-it-yourself guides aren’t the thing that I would recommend, for a few reasons.  Most of them have a lot of multimedia, which, of course, doesn’t let you print any thing out, and therefore, you have to keep going back to your computer to review the instructions.&lt;/p&gt;
&lt;blockquote&gt;
&lt;h2&gt;Electronic Entertainment&lt;/h2&gt;
&lt;/blockquote&gt;
&lt;p&gt;Electronic entertainment is probably the most popular form of entertainment, especially on a computer. There are all sorts of games, and other neat forms of entertainment right in your own home. You can even put an electronic card inside your computer that will let you view television, right on your monitor!&lt;/p&gt;
&lt;blockquote&gt;&lt;/blockquote&gt;
&lt;p&gt;My favorite form of electronic entertainment is probably flight simulation. Flight sims are very lifelike, and offer a wide variety of planes to choose from. You can fly anything from a Learjet, to a B-2 Spirit!&lt;/p&gt;
&lt;blockquote&gt;&lt;/blockquote&gt;
&lt;p&gt;There are also shoot ‘em up type games, but the graphics aren’t always that great. You can make your own levels with these games, which is always fun. But I wouldn’t reccomend spending money on a shoot ‘em up game though, just download the shareware version off the Internet&lt;/p&gt;
&lt;blockquote&gt;&lt;/blockquote&gt;
</content:encoded></item><item><title>The Tree Princess, circa 1994</title><link>https://www.teejayvanslyke.com/letters/the-tree-princess-circa-1994/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/the-tree-princess-circa-1994/</guid><pubDate>Sun, 17 Jun 2007 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Once upon a time…&lt;/p&gt;
&lt;blockquote&gt;
&lt;h2&gt;Chapter 1:  Yikes!&lt;/h2&gt;
&lt;/blockquote&gt;
&lt;p&gt;It all happened in a quaint, little town in Nebraska. Prince Patrick went in the forest looking for butterflies when he saw a huge castle. It was over 3,000 feet high! Prince Patrick went in. He looked for a princess. Then he heard a big noise. It sounded like a ghost. It was coming closer! “Ohhhh ohhhh!” it screamed. Soon he saw it. “Yikes!” he cried. He ran for his life. Then as he was about to ecscape, the door slammed shut and trapped him inside the castle. There was a opening on the ceiling. Prince Pactrick threw his rope up. It got caught! He climbed the rope and jumped out. Now he was safe. Then he jumped off the castle.&lt;/p&gt;
&lt;blockquote&gt;
&lt;h2&gt;Chapter 2:  The Storm In The Forest&lt;/h2&gt;
&lt;/blockquote&gt;
&lt;p&gt;When he landed, he went into the forest. Then he saw a old beggar. “Have you heard about the princess?” the beggar asked. “What princess, where?” the prince wondered. The prince walked away. “Wait!” the beggar pleaded. “There is a tree that is really a princess!” Just one second later a storm began. Lightning flashed in all directions. The prince took the beggar’s hand. “Let’s go!” cried the prince. They soared through the forest trying to escape. Soon they came to the prince’s castle.&lt;/p&gt;
&lt;blockquote&gt;
&lt;h2&gt;Chapter 3:  The Prince’s Castle&lt;/h2&gt;
&lt;/blockquote&gt;
&lt;p&gt;They went in. The king stepped over to Prince Patrick and scolded him. “You know that you cannot bring beggars in the castle.” he scolded. “Yes, but this beggar knows where I can find a princess.” said the prince. The beggar told the king all about the tree princess. “Do you know which tree it is?” asked the king. “Yes!” answered the beggar. The king, the prince, and the beggar ran out of the castle and into the forest. “Turn left.” said the beggar. Soon they got to it. “Come on Prince Patrick, kiss it.” said the beggar. “O.K.” said the prince. As soon as he kissed the tree, it turned into a beautiful princess. Her name was Princess Sally. “Thank you.” the princess said. The princess kissed the prince and they went to the prince’s castle.&lt;/p&gt;
&lt;blockquote&gt;
&lt;h2&gt;Chapter 4:  Getting Married&lt;/h2&gt;
&lt;/blockquote&gt;
&lt;p&gt;If you didn’t know, the prince and the princess were getting married. They went to the dressing room and dressed better for the wedding. Then they went to the church near by. “I now proclaim you man and wife. You may kiss the bride.” said the preist. They both kissed and hugged for about 10 minutes! The king cried. The prince finally had a wife. There was another good thing that happend. He was now king!&lt;/p&gt;
&lt;blockquote&gt;&lt;/blockquote&gt;
</content:encoded></item><item><title>ruby-wmii SVN log notifier</title><link>https://www.teejayvanslyke.com/letters/ruby-wmii-svn-log-notifier/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/ruby-wmii-svn-log-notifier/</guid><pubDate>Wed, 06 Jun 2007 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;If you haven’t played with the &lt;a href=&quot;https://web.archive.org/web/20080416005544/http://wmii.suckless.org/&quot;&gt;wmii&lt;/a&gt; window manager and Mauricio’s &lt;a href=&quot;https://web.archive.org/web/20080416005544/http://eigenclass.org/hiki/wmii+ruby&quot;&gt;ruby-wmii&lt;/a&gt; scripts, you need to join the revolution.  Today I created a plugin script which updates with current Subversion revision information for a given repository.  Simply add the following to your ~/.wmii-3/wmiirc-config.rb:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;
# change to the path of your repository
plugin_config[&quot;svn-log:svn-log&quot;][&quot;url&quot;] = &quot;http://path/to/repos&quot;
# however many seconds you want between updates
plugin_config[&quot;svn-log:svn-log&quot;][&quot;interval&quot;] = 5
# how many characters wide you want the notification area
plugin_config[&quot;svn-log:svn-log&quot;][&quot;size&quot;] = 80

from &quot;svn-log&quot; do
  use_bar_applet &quot;svn-log&quot;, 400
end

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Next, put &lt;a href=&quot;https://web.archive.org/web/20080416005544/http://teejayvanslyke.com/wp-content/uploads/2007/06/svn-logrb.txt&quot;&gt;svn-log.rb&lt;/a&gt; into your ~/.wmii-3/plugins/ directory.&lt;/p&gt;
&lt;p&gt;Now, when you re-run your wmiirc, you will have a nifty SVN notifier with the latest revision information!&lt;/p&gt;
</content:encoded></item><item><title>TJ@EU:  A teejayvanslyke! featured series.</title><link>https://www.teejayvanslyke.com/letters/tj-eu-a-teejayvanslyke-featured-series/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/tj-eu-a-teejayvanslyke-featured-series/</guid><pubDate>Sun, 03 Jun 2007 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;With less than three weeks’ time until I depart across the Atlantic ocean, it’s time I started planning my blog coverage of my trip.  Thus, I present &lt;strong&gt;TJ@EU&lt;/strong&gt;, a series of entries about my trip to Europe.&lt;/p&gt;
&lt;p&gt;I have just purchased the last of my bus and air fare for my inter-Europe travels, and have begun to secure accommodations and appointments with some “key individuals.”&lt;/p&gt;
&lt;p&gt;Expect photographs and musings of a lone traveler soon!&lt;/p&gt;
</content:encoded></item><item><title>What I found written in my journal today…</title><link>https://www.teejayvanslyke.com/letters/what-i-found-written-in-my-journal-today/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/what-i-found-written-in-my-journal-today/</guid><pubDate>Fri, 25 May 2007 00:00:00 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;I happened upon an interesting conversation with a Vietnam bar rat with a wet mouth and a book to say.  His demeanor suggested trouble in his heart; terror within and tyranny without.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;I spoke of controversy–tessellations moving mysteriously mixing society senseless–STOP!&lt;/p&gt;
&lt;blockquote&gt;&lt;/blockquote&gt;
&lt;p&gt;So much nonsense selling&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Sex toys at the corner-store&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;Selling sex toys at the corner-store.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;&lt;/blockquote&gt;
&lt;p&gt;Fuck!&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;(they sold out)&lt;/p&gt;
&lt;/blockquote&gt;
</content:encoded></item><item><title>API Hell: The Rise of Application Frameworks and the Fall of Sanity</title><link>https://www.teejayvanslyke.com/letters/api-hell-the-rise-of-application-frameworks-and-the-fall-of-sanity/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/api-hell-the-rise-of-application-frameworks-and-the-fall-of-sanity/</guid><pubDate>Tue, 08 May 2007 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Software development has started down a path of no return.  With the rise of so-called “rich web applications” and application development frameworks such as Adobe Flex, Mozilla, and Ruby on Rails, application developers are struggling to fit their applications into the rigidly-defined frameworks that promise to save development time and maintain developer sanity.  In the end, this couldn’t be further from the truth.&lt;/p&gt;
&lt;p&gt;Take the Mozilla Platform.  Serving as the basis for the Mozilla suite of Internet applications, Mozilla comes packaged with thousands of pre-fabricated components for developing rich desktop applications.  At first glance, this would seem to be the holy grail of rapid development.  Components could be used and reused in place of proprietary code, and this will save development resources, right?  Wrong.  Instead, this API bloat &lt;em&gt;increases&lt;/em&gt; the learning curve for new developers and leaves them at the mercy of arbitrarily defined interfaces which do not serve their purposes properly.  What’s more, the Mozilla Platform is in bed with the W3C, and uses web standards as its main development toolset.  This means that in order to develop a complex Mozilla application, a developer needs to learn XML, XUL, XBL, RDF, JavaScript, CSS, C++, and XPCOM.  In addition, unit and acceptance testing becomes a two-tiered operation (C++ versus JavaScript), with some code left untestable due to restrictions placed on the Mozilla DOM implementation (XBL and templates, for instance).  This leads to regression hell, where one part of the application is no longer functioning properly due to inconsistencies in the other.&lt;/p&gt;
&lt;p&gt;Development teams should measure how much time they are taking to learn their development environment versus actual practical development and design.  &lt;strong&gt;If developers are spending more time understanding the API and less time generating functionality, it may be time to migrate to a simpler development environment.&lt;/strong&gt;  What’s more, developers are often happier when they are creating real functionality.  Even if this means reinventing the wheel on several occasions, an application developed from the ground up will ultimately reflect the needs of the client, and will not be subject to compartmentalization due to the framework chosen.&lt;/p&gt;
</content:encoded></item><item><title>Which Programming Language Am I?</title><link>https://www.teejayvanslyke.com/letters/which-programming-language-am-i/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/which-programming-language-am-i/</guid><pubDate>Mon, 07 May 2007 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Which Programming Language are You?&lt;/p&gt;
</content:encoded></item><item><title>Mike Gravel ‘08</title><link>https://www.teejayvanslyke.com/letters/mike-gravel-08/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/mike-gravel-08/</guid><pubDate>Sun, 29 Apr 2007 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Former Alaska senator Mike Gravel is the little candidate that could in the 2008 Democratic primaries.  His compassionate views on the war and civil rights make him my current favorite among those in the Democratic running.  At a &lt;a href=&quot;https://web.archive.org/web/20080416005533/http://www.youtube.com/watch?v=1gMlHv2lDqA&quot;&gt;televised debate among the Democratic runners&lt;/a&gt;, Gravel blasted the likes of Obama, Clinton, and Biden over their seeming unwillingness to deny nuclear confrontation as a possibility in dealing with Iran.  He also made the case for world diplomacy, claiming the United States’ unilateral policy has deteriorated our world image and polarized both our nation and the international community.&lt;/p&gt;
&lt;h2&gt;Links:&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://web.archive.org/web/20080416005533/http://www.wakeupfromyourslumber.com/node/1387&quot;&gt;Meet the Next President of the United States of America&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://web.archive.org/web/20080416005533/http://www.gravel2008.us/&quot;&gt;Gravel 2008&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
</content:encoded></item><item><title>Gliese 581 c</title><link>https://www.teejayvanslyke.com/letters/gliese-581-c/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/gliese-581-c/</guid><pubDate>Tue, 24 Apr 2007 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Scientists at the Geneva Observatory in Switzerland discovered the first extrasolar planet in a habitable zone today while observing the Gliese 581 system.  Although it is fifty percent larger than our Earth and has a significantly larger sun, &lt;a href=&quot;https://web.archive.org/web/20080416005533/http://en.wikipedia.org/wiki/Gliese_581_c&quot;&gt;581 c&lt;/a&gt; looks to be the most habitable planet in the known Universe to date.&lt;/p&gt;
&lt;p&gt;What an exciting time to be alive.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://web.archive.org/web/20080416005533/http://www.space.com/scienceastronomy/070424_hab_exoplanet.html&quot;&gt;SPACE.com — Major Discovery:  New Planet Could Harbor Water and Life&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://web.archive.org/web/20080416005533/http://www.news.com.au/dailytelegraph/story/0,22049,21618354-5001021,00.html&quot;&gt;The Daily Telegraph — Life-supporting Planet A New Earth&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
</content:encoded></item><item><title>Hildebrands Deutsche Schokolade</title><link>https://www.teejayvanslyke.com/letters/hildebrands-deutsche-schokolade/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/hildebrands-deutsche-schokolade/</guid><pubDate>Tue, 24 Apr 2007 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;a href=&quot;https://web.archive.org/web/20080416005533/http://paleo-future.blogspot.com/2007/04/postcards-showing-year-2000-circa-1900.html&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Paleo-Future posted a great collection of art from a German chocolate company circa 1900, depicting the technology of the year 2000.  These “personal flying machines” are my personal favorite.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://web.archive.org/web/20080416005533/http://paleo-future.blogspot.com/2007/04/postcards-showing-year-2000-circa-1900.html&quot;&gt;Link&lt;/a&gt;&lt;/p&gt;
</content:encoded></item><item><title>Is that a gavel in my uterus?</title><link>https://www.teejayvanslyke.com/letters/is-that-a-gavel-in-my-uterus/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/is-that-a-gavel-in-my-uterus/</guid><pubDate>Thu, 19 Apr 2007 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Yesterday &lt;a href=&quot;https://web.archive.org/web/20080416005533/http://www.csmonitor.com/2007/0419/p01s03-usju.html?s=t5&quot;&gt;the Supreme Court upheld&lt;/a&gt; the &lt;a href=&quot;https://web.archive.org/web/20080416005533/http://en.wikipedia.org/wiki/Partial-Birth_Abortion_Ban_Act&quot;&gt;Partial-Birth Abortion Ban Act of 2003&lt;/a&gt; by a vote of 5-4, setting precedent for the issue and bringing freedom and democracy to unborn fetuses nationwide.&lt;/p&gt;
&lt;p&gt;civil_rights–;&lt;/p&gt;
</content:encoded></item><item><title>New York, London, Dundee, Glasgow, Amsterdam</title><link>https://www.teejayvanslyke.com/letters/new-york-london-dundee-glasgow-amsterdam/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/new-york-london-dundee-glasgow-amsterdam/</guid><pubDate>Sat, 07 Apr 2007 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;This June I will be traveling to Europe to present a paper I co-authored which will be published at the &lt;a href=&quot;https://web.archive.org/web/20080416005533/http://iticse2007.computing.dundee.ac.uk/&quot;&gt;ITiCSE 2007&lt;/a&gt; conference at the &lt;a href=&quot;https://web.archive.org/web/20080416005533/http://www.dundee.ac.uk/&quot;&gt;University of Dundee&lt;/a&gt;.  As I’ve never been to Europe, I am certainly taking this as an opportunity to see all I can.  I will be flying out of JFK June 22, landing at Heathrow in London.  After remaining there for the weekend, I will take the &lt;a href=&quot;https://web.archive.org/web/20080416005533/http://www.eurail.com/&quot;&gt;Eurail&lt;/a&gt; to Dundee for the conference June 25-27.  Following the conference, I will board a train to Glasgow to speak with Prof. Paul Strachan at the &lt;a href=&quot;https://web.archive.org/web/20080416005533/http://www.esru.strath.ac.uk/&quot;&gt;Energy Systems Research Unit&lt;/a&gt; at the &lt;a href=&quot;https://web.archive.org/web/20080416005533/http://www.strath.ac.uk/&quot;&gt;University of Strathclyde&lt;/a&gt; about a possible Ph.D program in the fall of 2008.  After that, I will take a personal trip to Stockholm or Amsterdam, and then return to London for my flight home.&lt;/p&gt;
&lt;h2&gt;Gimme money!&lt;/h2&gt;
&lt;p&gt;I am in the process of applying for a student bursary sponsored by the British Computer Society which would cover the cost of the conference, as well as travel expenses within the UK.  I am finding it best to close my eyes when I make travel accommodation transactions, as the cost is starting to weigh in.  I keep telling myself it is an investment in my career, and an all-around cultural experience I should have had years ago.&lt;/p&gt;
&lt;h2&gt;Nerd alert!&lt;/h2&gt;
&lt;p&gt;The paper that has been chosen for publication is entitled “Data Structure Visualization with LaTeX and Prefuse.”  Effectively, it is a survey of two paradigms for data structure and object-oriented program visualization.  In the first, Dr. Ali Erkan shows how LaTeX’s tree packages can be used to create slide presentation “animations” out of Java data structures.  He implements the toString() method of various Java data structure implementations in order to generate LaTeX markup at each critical point in execution.&lt;/p&gt;
&lt;p&gt;The second method discussed is implemented as &lt;strong&gt;j-specter&lt;/strong&gt;, an application Tim Scaffidi and I developed for our undergraduate senior project.  Effectively, it uses &lt;a href=&quot;https://web.archive.org/web/20080416005533/http://www.eclipse.org/aspectj&quot;&gt;AspectJ&lt;/a&gt;, an &lt;a href=&quot;https://web.archive.org/web/20080416005533/http://en.wikipedia.org/wiki/Aspect-oriented_programming&quot;&gt;aspect-oriented programming&lt;/a&gt; package, to construct a map of object instantiation.  From this, it constructs a graph using the &lt;a href=&quot;https://web.archive.org/web/20080416005533/http://www.prefuse.org/&quot;&gt;Prefuse Visualization Toolkit&lt;/a&gt; to illustrate the program’s components at any point in execution.&lt;/p&gt;
&lt;p&gt;I am working on a project site for &lt;strong&gt;j-specter&lt;/strong&gt;, and will keep you posted on its status.  Cheers!&lt;/p&gt;
</content:encoded></item><item><title>Accountability:  Blaming individuals for worldly problems.</title><link>https://www.teejayvanslyke.com/letters/accountability-blaming-individuals-for-worldly-problems/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/accountability-blaming-individuals-for-worldly-problems/</guid><pubDate>Mon, 26 Mar 2007 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;It seems the latest buzzword in politics, especially in Democratic circles, is that of “accountability.”  Whether it be holding the Bush Administration accountable for the war in Iraq, holding businesses accountable for their environmentally degrading practices, or holding CEO’s accountable for their insider trading scandals, it seems that accountability is &lt;em&gt;in&lt;/em&gt;.  As with any buzzword, I like to see what &lt;a href=&quot;https://web.archive.org/web/20080416005413/http://www.m-w.com/cgi-bin/dictionary?sourceid=Mozilla-search&amp;amp;va=accountability&quot;&gt;Webster&lt;/a&gt; has to say:&lt;/p&gt;
&lt;blockquote&gt;&lt;/blockquote&gt;
&lt;p&gt;acÂ·countÂ·abilÂ·iÂ·ty : an obligation or willingness to accept responsibility or to account for one’s actions&lt;/p&gt;
&lt;p&gt;According to Webster’s, accountability starts where blame leaves off.  It is the obligation we have placed upon an individual or group to be responsible for their own actions.  So accountability implies a &lt;a href=&quot;https://web.archive.org/web/20080416005413/http://en.wikipedia.org/wiki/Positive_right&quot;&gt;positive right&lt;/a&gt;; that is, it imposes a moral obligation upon the individual or group being held accountable.  This, in my opinion, is not a constructive means of ensuring social justice.&lt;/p&gt;
&lt;p&gt;Critics of the Bush administration’s domestic spying programs cite privacy violations as the chief concern in the issue.  They believe that the government is infringing on citizens’ &lt;em&gt;negative&lt;/em&gt; rights to privacy.  This is true.  However, the same critics believe the Bush administration should be held accountable for the war in Iraq, be it by impeachment proceedings or the guillotine.  While I do agree that the administration has committed crimes against humanity, removing it from power will not solve the quagmire at hand.  Such proceedings will only perpetuate the negative attitude which has plagued the tenure of this administration since its inauguration in 2000.&lt;/p&gt;
&lt;p&gt;While I do believe taking to the streets is necessary to encourage solidarity, there comes a point where the fine line between constructive protest and incessant whining is crossed.  Take the labor union movement, for example.  Although unions were put in place to protect the working class from its white collar bourgeois, wouldn’t it be more effective for labor unions to assemble their assets and create their own means of production?  The amount of red tape unions create for businesses is astronomical.  In a market economy, the prospect of a body of workers investing in their &lt;em&gt;own&lt;/em&gt; business is not unthinkable.  And yet, labor unions continue to lodge complaints against the lords they serve, not thinking to cease economic power for themselves.  A lord without peasants is a peasant himself.&lt;/p&gt;
</content:encoded></item><item><title>Tompkins County March For Peace</title><link>https://www.teejayvanslyke.com/letters/tompkins-county-march-for-peace/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/tompkins-county-march-for-peace/</guid><pubDate>Sun, 18 Mar 2007 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;This Tuesday, March 20th marks the fourth anniversary of the Iraq War that has claimed over 59,000 civilian lives since 2003 (&lt;a href=&quot;https://web.archive.org/web/20080416005413/http://www.iraqbodycount.org/&quot;&gt;Iraq Body Count&lt;/a&gt;).  To mark the anniversary, Ithaca Peace Vigil organized the Tompkins County March for Peace this past Saturday.  The occasion was as festive as any Ithaca anti-war gathering despite the unforgiving snow storm that marched through Central New York.&lt;/p&gt;
&lt;h2&gt;People congregate atop South Hill.&lt;/h2&gt;
&lt;h2&gt;Over 15 communities attended the vigil.&lt;/h2&gt;
&lt;p&gt;I had the pleasure of speaking with a few dissidents to the movement.  The first was an older gentleman who claimed that “Freedom, Liberty, and Justice” were more important than peace.  I think he was riding a wave of American nationalism that never subsided after World War II, so I forgave his illogical rhetoric.  The second skeptic was a man of my parents’ generation who described himself as a fiscal conservative.  He argued that while the war was a quagmire, to impeach the president and end the war immediately would lead the Iraqi people into more sectarian violence and ultimately schism the state that has been established.  While I understand his concerns and agree with his philosophy of fiscal conservatism, I disagree that American influence can alter the course of sectarian conflict.  In choosing to commit to war, America has chosen a side in the conflict, and its adversaries will be repressed.  One point I strongly agreed with however:  We have a tendency to simplify extremely complex issues and alter the course of history accordingly.  There are innumerable variables which affect the course of these issues and no rigid ideology or doctrine can serve to resolve them.&lt;/p&gt;
</content:encoded></item><item><title>Javascript Inheritance Diagrams with GraphViz and Base.js</title><link>https://www.teejayvanslyke.com/letters/javascript-inheritance-diagrams-with-graphviz-and-base-js/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/javascript-inheritance-diagrams-with-graphviz-and-base-js/</guid><pubDate>Sat, 17 Mar 2007 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;At my office we’re using XULRunner to deploy a large-scale application platform which requires a hefty Javascript class hierarchy.  Due to Javascript’s lack of “true” class inheritance, we were forced to make use of one of the many Javascript OO libraries available.  When I stumbled upon Dean Edwards’ Base.js, I was in heaven.  It makes Javascript inheritance quite painless and ultimately does what you tell it to:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;
var Vegetable = Base.extend({
	constructor: function() {
		// constructor
	}
});
var Kale = Vegetable.extend({
	constructor: function() {
		this.base(); // run vegetable constructor
		// ... kale constructor
	}
});  ...

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;However, as any programmer would, I wanted &lt;em&gt;more&lt;/em&gt;.  We were evolving a substantially complex class hierarchy and documenting this would prove to be cumbersome.  I sought a means of creating inheritance diagrams painlessly.  My first thought was code interpretation, but I realized that given my timeframe (I wanted to do it in less than an hour), it simply wasn’t an option.  That was when I dug into the Base.js code and made a few modifications…&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://web.archive.org/web/20080416005413/http://teejayvanslyke.com/?p=114#more-114&quot;&gt;[Read]&lt;/a&gt;&lt;/p&gt;
</content:encoded></item><item><title>Free as in Skool</title><link>https://www.teejayvanslyke.com/letters/free-as-in-skool/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/free-as-in-skool/</guid><pubDate>Tue, 13 Mar 2007 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Last night, ABC Cafe hosted a benefit concert and information session for Ithaca Freeskool, a new local collective aiming to start an anarchist learning initiative in Ithaca.&lt;/p&gt;
&lt;p&gt;I first heard of this type of collective learning initiative when I found &lt;a href=&quot;https://web.archive.org/web/20080416005413/http://www.anarchistu.org/twiki/view/Anarchistu/&quot;&gt;Anarchist Free University&lt;/a&gt; in Toronto in &lt;a href=&quot;https://web.archive.org/web/20080416005413/http://www.boingboing.net/2007/01/03/torontos_anarchist_u.html&quot;&gt;a post on Boing Boing&lt;/a&gt;.  Their website is complete with curricula for each course, including ones on obscure topics like &lt;a href=&quot;https://web.archive.org/web/20080416005413/http://www.anarchistu.org/twiki/view/Anarchistu/CurrentIndigenousMovementsInTheContextOfWhatIsKnownAsCanada&quot;&gt;Current Indigenous Movements in the Context of What is Known as Canada&lt;/a&gt; and &lt;a href=&quot;https://web.archive.org/web/20080416005413/http://www.anarchistu.org/twiki/view/Anarchistu/SecretHistoryOfTheWorldPartOne&quot;&gt;Secret History Of The World&lt;/a&gt;.  Members are invited to teach anything they have to offer, but courses run as rigid as a normal institution:  There are summer, winter, and fall sessions that run for ten weeks each.&lt;/p&gt;
&lt;p&gt;The Ithaca Freeskool is loosely modeling itself after &lt;a href=&quot;https://web.archive.org/web/20080416005413/http://santacruz.freeskool.org/&quot;&gt;Free Skool Santa Cruz&lt;/a&gt;.  Its website sums up its mission quite succinctly:&lt;/p&gt;
&lt;blockquote&gt;&lt;/blockquote&gt;
&lt;p&gt;Free Skool Santa Cruz is an interactive, decentralized model for learning-without the limitations of hierarchy and the sterile institutional environment of a University or formal school. It is an attempt to de-school ourselves and to learn from one another the skills necessary to transform society and challenge oppressive systems.&lt;/p&gt;
&lt;p&gt;I am currently considering teaching a course at Ithaca Freeskool, but am unsure of a topic which is aligned with their mission.  Here are  a few ideas I’ve been kicking around; maybe you can help me decide:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Choose Your Own Text Adventure&lt;/strong&gt; — Learn how to create your own text adventure computer game using the &lt;a href=&quot;https://web.archive.org/web/20080416005413/http://www.ruby-lang.org/&quot;&gt;Ruby programming language&lt;/a&gt;.  Examine the language from the bottom up and have a lot of fun developing a storyline as well.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;21st Century Ethics&lt;/strong&gt; — A discussion group about ethical issues facing Generation Next.  Topics will include the open source software initiative, intellectual property laws, and environmental responsibility.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;What the F@&amp;amp;K is Ontology?&lt;/strong&gt; — A discussion group surveying the branch of philosophy known as &lt;a href=&quot;https://web.archive.org/web/20080416005413/http://en.wikipedia.org/wiki/Ontology&quot;&gt;ontology&lt;/a&gt;, the study of being.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For more information on Ithaca Freeskool (including a link to their mailing list), please visit &lt;a href=&quot;https://web.archive.org/web/20080416005413/http://ithacaunderground.com/mb/YaBB.pl?num=1171909400/1&quot;&gt;this post from Ithaca Underground&lt;/a&gt;.&lt;/p&gt;
</content:encoded></item><item><title>Your environment, your wallet:  Seven tips to save money and reduce your ecological footprint.</title><link>https://www.teejayvanslyke.com/letters/your-environment-your-wallet-seven-tips-to-save-money-and-reduce-your-ecological-footprint/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/your-environment-your-wallet-seven-tips-to-save-money-and-reduce-your-ecological-footprint/</guid><pubDate>Sun, 11 Mar 2007 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Far too many people equate environmentalism with expensive goods like organic foods and hybrid cars.  While these things are important in the green movement, there are ways &lt;strong&gt;you&lt;/strong&gt; can make a lasting difference.  Here are a few I’ve tried:&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://web.archive.org/web/20080416005413/http://teejayvanslyke.com/?p=109#more-109&quot;&gt;[Read]&lt;/a&gt;&lt;/p&gt;
</content:encoded></item><item><title>Film Review:  Our Daily Bread</title><link>https://www.teejayvanslyke.com/letters/film-review-our-daily-bread/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/film-review-our-daily-bread/</guid><pubDate>Sat, 10 Mar 2007 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;a href=&quot;https://web.archive.org/web/20080416005413/http://www.ourdailybread.at/&quot;&gt;&lt;/a&gt;Last weekend, Cornell Cinema showed &lt;a href=&quot;https://web.archive.org/web/20080416005413/http://www.imdb.com/title/tt0765849/&quot;&gt;Our Daily Bread&lt;/a&gt; (German: &lt;em&gt;Unser tÃ¤glich Brot&lt;/em&gt;) (2005), a German documentary by Nikolaus Geyrhalter.  The film examines the modern food industry, specifically its use of mechanized production to maximize efficiency and profit.  I expected, as I was walking in to the theater, to see a Michael-Moore-Super-Size-Me-style documentary, complete with director commentary and ambush journalism.  Instead, I found myself immersed in a &lt;a href=&quot;https://web.archive.org/web/20080416005413/http://www.imdb.com/title/tt0085809/&quot;&gt;Koyaanisqatsi&lt;/a&gt;-meets-&lt;a href=&quot;https://web.archive.org/web/20080416005413/http://en.wikipedia.org/wiki/The_Jungle&quot;&gt;The-Jungle&lt;/a&gt; film experience, more effective than any politically-driven film endeavor could have hoped to be.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://web.archive.org/web/20080416005413/http://teejayvanslyke.com/?p=101#more-101&quot;&gt;[Read]&lt;/a&gt;&lt;/p&gt;
</content:encoded></item><item><title>Like the White Rabbit, with less fat around the edges.</title><link>https://www.teejayvanslyke.com/letters/like-the-white-rabbit-with-less-fat-around-the-edges/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/like-the-white-rabbit-with-less-fat-around-the-edges/</guid><pubDate>Thu, 08 Mar 2007 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Welcome to the next reincarnation of the White Rabbit, now &lt;strong&gt;&lt;a href=&quot;http://teejayvanslyke.com&quot;&gt;teejayvanslyke.com&lt;/a&gt;&lt;/strong&gt;.  All of my posts from the old site are still archived on this site, but my focus will change slightly from the topics of yesteryear.&lt;/p&gt;
&lt;p&gt;I would also like to start doing more non-blog publishing; specifically, my recent fiction endeavors.Â  I am considering turning my current fiction project, a short novel entitled &lt;em&gt;Self-Immolation of an American Monk&lt;/em&gt;, into a chapter-by-chapter series, published to this site incrementally.&lt;/p&gt;
&lt;p&gt;The topic of sustainability has also moved to the forefront of “things worth speaking of.”Â  I am currently working out a proposal to do some sustainable development work in Kerala, India, with the aid of a &lt;a href=&quot;https://web.archive.org/web/20080416005413/http://www.iie.org/fulbright/&quot;&gt;Fulbright&lt;/a&gt; grant.Â  I am also doing research on the issue of local food distribution, specifically with regard to use of web technologies to automate the logistics of distribution, ordering, and inventory.Â  Expect updates on these projects as they progress.&lt;/p&gt;
&lt;p&gt;It’s great to be back.&lt;/p&gt;
</content:encoded></item><item><title>I am Jack’s Blue Screen of Death.</title><link>https://www.teejayvanslyke.com/letters/i-am-jack-s-blue-screen-of-death/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/i-am-jack-s-blue-screen-of-death/</guid><pubDate>Tue, 30 May 2006 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;One article in particular caught my eye today on Slashdot.  It seems that some tech workers in Silicon Valley have &lt;a href=&quot;https://web.archive.org/web/20080416005800/http://www.usatoday.com/tech/news/2006-05-29-fight-club_x.htm&quot;&gt;started their own boxing clubs&lt;/a&gt;, inspired by the 1999 film &lt;em&gt;Fight Club&lt;/em&gt;.  The fact that this article surfaced only hours after I finished watching Fight Club and researching nihilism is uncanny.  Their version of Fight Club is unlikely to start a nationwide revolution causing a prolietariat uprising and the erasure of our debt record (although it would be nice); however, it goes to show that self destruction is &lt;em&gt;in&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;Nihilism is a topic that has intrigued me for some time.  I have always understood the sense behind disbelief in truth and morality, but could never (and still cannot) accept it.  Perhaps it is our inherent need for something intangible to hold on to, whether it be our job, our country, our church, or our marriage.  These things &lt;em&gt;are never permanent&lt;/em&gt;; they are always fleeting or fading.  Yet, there is no denying that a life free of attachments sounds attractive.  After all:  &lt;em&gt;What you own ends up owning you.&lt;/em&gt;&lt;/p&gt;
</content:encoded></item><item><title>Fall in love.</title><link>https://www.teejayvanslyke.com/letters/fall-in-love/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/fall-in-love/</guid><pubDate>Tue, 23 May 2006 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;When you fall in love, the distinctions and priorities that once clouded your mind no longer matter.  Being with that person as much as possible becomes a dream, an obsession.  The word ‘obsession’ often has an ill connotation, as if passion and desire are ideals which should be avoided at all costs.  But then what is there to live for?  If being with someone can pull your heartstrings to the point of no return, if being apart from them can propel you into a state of disarray—not unbearable, but oh-so-treacherous—why shouldn’t we cherish it, fight for it, and claim it as ours?  That is not to say that love can ever be one-sided; rather, it is to say that all there truly is to live for—to die for—is each other.&lt;/p&gt;
&lt;p&gt;But what about “the big picture?”  You know, the bills, the boss, the job, church, Wall Street, the Internet, politics?  Unravel every one of these to its core and find the answer for yourself.  We occupy our cubicles so that one day we will acheive some “pie-in-the-sky” eternal greatness that we cannot yet fathom.  We invest in a system of stocks and bonds that promises to yield returns for our retirement.  We fill our brains with nuggets of information that will somehow bring us satisfaction.  Yet somehow, no matter how hard we work, no matter how much we invest, and no matter how much we know, we are no more fulfilled.  What if we ceased our preparations for the future and acted for the moment?  Acted for each other, rather than for some faceless abstraction, be it our job, our stocks, or our facts?&lt;/p&gt;
&lt;p&gt;That is not to say that we should quit our jobs or stop working altogether.  After all, we must provide for our survival.  However, in our modern age there is a distinct focus on the intangible.  We often find ourselves hanging on to the mental constructions we have fabricated for ourselves, forgetting that everything of significance can be felt in a lover’s touch.  Money is the eternal scale by which we evaluate the worth of everything (and often everyone), but those with an overabundance of it are often less fulfilled than those living paycheck to paycheck.&lt;/p&gt;
&lt;p&gt;So fall in love.  Kisses are cheaper than cars.&lt;/p&gt;
</content:encoded></item><item><title>Newspeak, here we come.</title><link>https://www.teejayvanslyke.com/letters/newspeak-here-we-come/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/newspeak-here-we-come/</guid><pubDate>Fri, 19 May 2006 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;The U.S. Senate &lt;a href=&quot;https://web.archive.org/web/20080416005800/http://www.bloomberg.com/apps/news?pid=10000103&amp;amp;sid=a_LjjNFU9gBY&amp;amp;refer=us&quot;&gt;voted yesterday&lt;/a&gt; by an overwhelming majority to make English the United States’ national language.  While proponents of a national language may point out obvious merits in the legislation of a national language, it represents further homogenization of our world culture and a step closer to the horrific notion of a language that speaks for its state, akin to the &lt;em&gt;Newspeak&lt;/em&gt; language in George Orwell’s &lt;em&gt;Nineteen Eighty-Four&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;Now, do not think I am suggesting that this is another conspiracy concocted by Big Brother himself to gain more control over all of us puny commoners.  There are distinct economic and diplomatic advantages to language homogenization.  It allows us to better understand both our trade partners and avoid misrepresentation within our communities.  However, we must acknowledge the consequences of such legislation.  While language is a conduit of thought, it also emphasizes a culture’s world view and heritage.  It is this diversity that creates culture itself.  Likewise, we must evaluate the original intentions and motivations of the English language.  English evolved from a predominantly Christian society with a particular metaphysics and understanding of the world.  Words like ‘goodbye’ in English have their roots in these religious doctrines.  Other cultures do not admit such polar concepts into their everyday vocabulary.&lt;/p&gt;
&lt;p&gt;English has also skewed the meaning of several of its “borrowed” words.  Take the word ‘karma,’ as borrowed from Sanskrit and Hindu and Buddhist traditions.  Many English speakers use ‘karma’ incorrectly.  According to its original definition, karma roughly translates to ‘deed’ or ‘destiny.’  How many times have you heard a fellow English speaker say “that’s not good for your karma” or “this will increase my karma” as if karma is some kind of commodity that has a quantifyable value?  It is our Western understanding of the world that prevents us from properly conceptualizing such terms.&lt;/p&gt;
&lt;p&gt;Perhaps the most dangerous consequence of language homogenization is the degree of control it places in the hands of those in power.  Ask an average American what communists believe and you’re bound to get an answer that strays distant from the truth.  Likewise, ask an average American to identify their notion of Islam and they will almost undoubtedly include terrorism in their response.  These examples do not suggest Americans are ignorant (okay, maybe a bit), but it does show the effect the generalization of these concepts has had on our world view.  However, ask a dedicated Marxist their notion of communism or a Muslim their notion of their faith and culture and you will receive quite a contrary response.  Language is an instrument of control that states will use to their advantage if given the opportunity.&lt;/p&gt;
&lt;p&gt;There’s some goodthink for you.&lt;/p&gt;
</content:encoded></item><item><title>Giving Rails its own GUI</title><link>https://www.teejayvanslyke.com/letters/giving-rails-its-own-gui/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/giving-rails-its-own-gui/</guid><pubDate>Wed, 17 May 2006 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Ruby on Rails is an amazing framework for building web applications, but that doesn’t quite help us in the world of the desktop.  Yesterday I sought to do away with this limitation and create a self-contained application that starts WEBrick, creates its own “browser” window, and knows how to terminate itself as well.  Allow me to enlighten you…&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://web.archive.org/web/20080416005800/http://teejayvanslyke.com/?p=87#more-87&quot;&gt;[Read]&lt;/a&gt;&lt;/p&gt;
</content:encoded></item><item><title>It’s summertime.</title><link>https://www.teejayvanslyke.com/letters/it-s-summertime/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/it-s-summertime/</guid><pubDate>Sat, 13 May 2006 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Spring 2006 ended with an abrupt halt, as if a well-lit brick wall at the end of a tunnel of doubt, curiousity and triumph.Â  I am currently unemployed, and that is more of a relief than anything could ever be.&lt;/p&gt;
&lt;p&gt;I picked up a book of Bertrand Russell’s essays and have found myself greatly admiring his work; in particular, &lt;em&gt;The World As It Could Be&lt;/em&gt; tickles my socialist fancy.Â  Some of the truths of the perils of capitalism Russell brings out are both astonishing and inspiring.Â  However, the ideal world he presents seems tantamount to a utopian dream.Â  Someday though, we will have Russell’s perfect society.Â  Until then, we can remain in our McWalMart subservience as our parents tell us is proper.&lt;/p&gt;
&lt;p&gt;Is our fate as a corporate oligarchy inevitable, or is it a self-fulfilling prophecy that can be untangled given the time and effort?Â  Personally, I don’t think we’re far from a revolution.Â  It has to happen sometime… at least that’s what history tells us.Â  And boy, history hasn’t lied yet.Â  Who knows… Iran might be Bush’s Poland.&lt;/p&gt;
&lt;p&gt;On a not-so-political note, this summer has also shown me the beauty of frugality.Â  Not being employed at the moment has left me without the affordances of past, but has had not a mark on my happiness.Â  The world is beautiful when viewed through the eyes of the poor and powerless.Â  If there is nothing left to lose, there’s nothing left to fear.&lt;/p&gt;
&lt;p&gt;Now go play in the sun.&lt;/p&gt;
</content:encoded></item><item><title>The rise of the neo-green revolution.</title><link>https://www.teejayvanslyke.com/letters/the-rise-of-the-neo-green-revolution/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/the-rise-of-the-neo-green-revolution/</guid><pubDate>Sun, 23 Apr 2006 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Last month’s Wired focused on the advent of a new revolution in environmentalism that eco-pundits are calling the Neo-Green Revolution.  At the forefront of this new movement is none other than 2000 president-elect Al Gore, who believes that the solution to our dependence on dirty fuel is not to change our lifestyles, but to put our technological strides to use  in creating more efficient, eco-friendly solutions.&lt;/p&gt;
&lt;p&gt;I couldn’t agree more with this philosophy.  There is no reason we cannot overcome our dependence on fossil fuels through advances in technology rather than a recession of lifestyle.  In my opinion, a sustainable future relies on the following coming to fruition:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Tighter vehicle emissions standards.&lt;/strong&gt;  Car companies are currently getting away with eco-murder with SUV’s that leave an immense footprint on our environment and drive gas demand through the roof.  As much as I disagree with big government, these regulations are necessary to curb automobile emissions and fuel usage.  Hybrid and fuel-cell vehicles need to replace gas-guzzling vehicles.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Environmentalism goes chic.&lt;/strong&gt;  In order to generate enthusiasm for our lowly environment, it needs to have a strong marketing department.  Western society needs to shift its frame of mind from “bigger is better” to “greener is better.”  This includes marketing campaigns advocating the immediate advantages of green products, as well as public service announcements denouncing industrial gluttony.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Computers, meet the environment.&lt;/strong&gt;  Computers have been used in every facet of industry, from mechanized production to accounting to marketing and beyond.  Their role in environmentalism is equally important.  On an industrial level, computers can be used to schedule power usage and create more efficient factories and offices.  Such “green facilities” would curb energy usage by using advanced scheduling techniques to determine what parts of a building are in use and power them accordingly.  This can be mirrored in the home, with “smart houses” partially powered by solar arrays dominating the mainstream.  These solar arrays can be connected to our current power grid, creating a decentralized energy infrastructure.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Organic synthetics.&lt;/strong&gt;  Companies like &lt;a href=&quot;https://web.archive.org/web/20080416005400/http://www.fabrikal.com/&quot;&gt;Fabri-Kal&lt;/a&gt; are already creating &lt;a href=&quot;https://web.archive.org/web/20080416005400/http://www.fabrikal.com/greenware/index.php&quot;&gt;organic solutions&lt;/a&gt; to our plastic addiction.  Synthetics companies need to begin researching eco-friendly solutions to the disposable products we use on a daily basis.  The foodservice industry is not going away and we need disposable tableware that doesn’t take millenia to decompose.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;**Renewable energy (duh).  **Oil is dirty.  It is the single most deadly drug that has ever plagued the human race or the Earth, yet this often goes unheeded because we love our Hummers so much.  Wars with oil as their motive kill thousands every year, and this number is growing.  If we can turn to cleaner, renewable sources of energy such as wind, solar, and biofuel, this madness can cease and we can find something else to fight about.  Watch for these industries to explode in the near future.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Government and corporate support.&lt;/strong&gt;  This may go without saying, but there’s no hope for change without support from those with the power and money to foster it.  World governments (the United States, China, and India, in particular) must realize the dilemma that we currently face and act accordingly to curb our reliance on dirty fuel.  Contact your congressmen and voice your concerns!&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
</content:encoded></item><item><title>Cyberwar On Terror… or The Long Cyberwar?</title><link>https://www.teejayvanslyke.com/letters/cyberwar-on-terror-or-the-long-cyberwar/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/cyberwar-on-terror-or-the-long-cyberwar/</guid><pubDate>Thu, 13 Apr 2006 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Two articles on the BBC caught my eye over the course of the past couple days:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://web.archive.org/web/20080416005400/http://news.bbc.co.uk/2/hi/americas/4897786.stm&quot;&gt;Planning the US ‘Long War’ on terror&lt;/a&gt; — apparently, the War on Terror isn’t going away, and the government wants us to know.Â  From here on out, the War on Terror will be known as the Long War.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://web.archive.org/web/20080416005400/http://news.bbc.co.uk/2/hi/uk_news/4905036.stm&quot;&gt; 					British ‘hacker’ fears Guantanamo&lt;/a&gt; — As a proponent of the hacker ethic, this could be one of the most horrendous events I have heard in a long time.Â  This just goes to show that information is the world’s new commodity.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
</content:encoded></item><item><title>iranisnext.org</title><link>https://www.teejayvanslyke.com/letters/iranisnext-org/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/iranisnext-org/</guid><pubDate>Thu, 13 Apr 2006 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Today I put together a web site with some information and links about the nuclear standoff with Iran.  Many people are unaware of the possibilities, and even fewer of the implications even a small-scale nuclear strike on Iran could have on the world.  Take a look at the page — constructive criticism is always welcome.  If you have an event or link you would like promoted on the site, please let me know.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://web.archive.org/web/20080416005400/http://www.iranisnext.org/&quot;&gt;Iran is Next… &lt;/a&gt;&lt;/p&gt;
</content:encoded></item><item><title>World War III</title><link>https://www.teejayvanslyke.com/letters/world-war-iii/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/world-war-iii/</guid><pubDate>Tue, 11 Apr 2006 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Our first nuclear winter is only months away as the Bush Administration gears up for phase III of its systematic destruction of the Middle East.  News reports yesterday told of a report leaked from the White House detailing the administration’s plan for a &lt;strong&gt;small-scale nuclear assault&lt;/strong&gt; against key targets in Iran.  These targets include underground facilities believed to be housing nuclear laboratories.&lt;/p&gt;
&lt;p&gt;This comes amid rising tensions over Iran’s nuclear capabilities.  No one wants a nuclear Iran.  However, &lt;em&gt;no one wants a nuclear United States&lt;/em&gt;, nor does anyone want an &lt;em&gt;actively proliferating, nuclear-warfare-bound United States&lt;/em&gt;.  The hypocrisy is overwhelming.&lt;/p&gt;
&lt;p&gt;We live in a nation in which over 65% of its people do not agree with its government’s actions.  A nation in which 50% of tax dollars fund the military or military-related expenses.  A nation that will most likely pass &lt;a href=&quot;https://web.archive.org/web/20080416005400/http://news.bbc.co.uk/1/hi/world/americas/4896182.stm&quot;&gt;a bill into congress that will render illegal immigrants felons&lt;/a&gt;.  This is no land of the free.  What happened to the American dream?  Equal oppurtunity for all?&lt;/p&gt;
&lt;p&gt;We live in a corporate oligarchy.  Democracy is a buzzword.  I urge each and every one of you to stand up to this nonsense and fight for what you believe in &lt;em&gt;at every avenue of the system’s exploitation&lt;/em&gt;.  The state cannot hold without the support of the masses.  Put your dollar where it counts:  Out of the hands of gangsters and tyrants.&lt;/p&gt;
</content:encoded></item><item><title>TJVD&amp;D is now Flex.</title><link>https://www.teejayvanslyke.com/letters/tjvd-d-is-now-flex/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/tjvd-d-is-now-flex/</guid><pubDate>Sun, 26 Mar 2006 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Business is “booming” as it were, and as such, it’s time to expand.Â  Flex is the name Alex and I have given our new web venture.Â  Our goal is to be a cost-effective solution for small businesses and non-profit organizations, while still maintaining status as a professional web firm.&lt;/p&gt;
&lt;p&gt;We will also be collaborating network resources with &lt;a href=&quot;https://web.archive.org/web/20080416005009/http://www.movingboxstudios.com/&quot;&gt;Moving Box Studios&lt;/a&gt;, a production company in Ithaca.Â  This will afford us many opportunities for collaboration — power in numbers.&lt;/p&gt;
&lt;p&gt;Hopefully we will begin work on our web site soon.Â  In the meantime, I have to find myself a secretary.Â  And maybe an intern.Â  I’ve always wanted an intern.&lt;/p&gt;
</content:encoded></item><item><title>Three years later and still in chains.</title><link>https://www.teejayvanslyke.com/letters/three-years-later-and-still-in-chains/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/three-years-later-and-still-in-chains/</guid><pubDate>Sun, 19 Mar 2006 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Today marks the three-year anniversary of the United States’ invasion of Iraq.Â  It also marks what many are calling the beginning of an Iraqi civil war.Â  Are we any more free?Â  Is the world safer?Â  Here’s what the Bush administration has been up to in the last three years on a few key topics:&lt;/p&gt;
&lt;p&gt;Freedom&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;USA PATRIOT Act&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;NSA Wiretapping&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Guantanamo Bay&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;War on Terror&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Igniting anti-Americanism across several cultures around the globe&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Triggering an Iraqi civil war&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Economy&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Driving the gap between our nation’s rich and poor to an unacceptable size with tax cuts for the rich&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Allowing Iraq to become the breeding ground for anti-Western hatred that it is today, thereby reducing our ability to import its oil&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Creating the biggest trade defecit our country has ever endured&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Cutting domestic programs such as Medicare in favor of miltary spending&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;There are only two options at this point:Â  communist revolution or nuclear holocaust.Â  Happy anniversary.&lt;/p&gt;
</content:encoded></item><item><title>Iran:  Our next warzone.</title><link>https://www.teejayvanslyke.com/letters/iran-our-next-warzone/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/iran-our-next-warzone/</guid><pubDate>Thu, 09 Mar 2006 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Recent developments in the so-called War on Terror have led many to believe what some have always known:  &lt;a href=&quot;https://web.archive.org/web/20080416005009/http://www.globalresearch.ca/index.php?context=viewArticle&amp;amp;code=%20CH20060103&amp;amp;articleId=1714&quot;&gt;a war with Iran is imminent&lt;/a&gt;. Tehran’s unwillingness to compromise combined with Euromerica’s muscle flexing will undoubtedly launch us into yet another war.&lt;/p&gt;
&lt;p&gt;That is, unless we do something about it first.  I have started a small offshoot site from my &lt;a href=&quot;https://web.archive.org/web/20080416005009/http://www.teejayvanslyke.com/&quot;&gt;main page&lt;/a&gt; entitled &lt;a href=&quot;https://web.archive.org/web/20080416005009/http://www.teejayvanslyke.com/iran/&quot;&gt;Iran is Next&lt;/a&gt;.  Right now the content is sparse, but if anyone has anything to add, please let me know.&lt;/p&gt;
&lt;p&gt;In the coming weeks I will be writing letters and making phone calls to my congressmen and I urge you to do the same. The Bush Administration has already made several cuts to domestic programs in favor of military spending (Medicare, anyone?) and appears ready to make more. We must stop this nonsense before we realize we’re living in an Orwellian dystopia.&lt;/p&gt;
</content:encoded></item><item><title>Spring Break:  Neither spring nor break.</title><link>https://www.teejayvanslyke.com/letters/spring-break-neither-spring-nor-break/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/spring-break-neither-spring-nor-break/</guid><pubDate>Sat, 04 Mar 2006 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;I just finished up midterms week at school and am prepared to “kick back” and “bask in the sun” during my week off.Â  That is, if “kicking back” is doing a lot of work and “basking in the sun” is trudging through a foot of snow.&lt;/p&gt;
&lt;p&gt;I will never understand the false sense of security colleges like to portray when naming breaks.Â  If they called spring break “winter misery week” I would have no complaints.Â  False advertising is one of my biggest pet peeves.Â&lt;/p&gt;
&lt;p&gt;So what’s on the agenda for the week, you ask?&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;http://linnadolph.com&quot;&gt;linnadolph.com&lt;/a&gt;&lt;/strong&gt; — This is a local glass artist that I have been working closely with to create an informational page for her artwork, complete with a gallery section for some of her pieces.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Purple Dragon Co-op Online Store&lt;/strong&gt; — This is an online store system I am developing for the Purple Dragon Co-op in Glen Ridge, NJ.Â  I am writing it in Ruby on Rails.Â  Mr. Alex Weber (a.k.a. FelixWonderland) is aiding in the site design.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Jizualizer&lt;/strong&gt; — My Advanced Networks class aims to expand the &lt;a href=&quot;https://web.archive.org/web/20080416005009/http://jist.ece.cornell.edu/&quot;&gt;JiST and SWANS&lt;/a&gt; network simulation projects to include better support for ad-hoc protocols and add some new features.Â  One such feature is a simulation visualizer that we have lovingly called Jizualizer.Â  I’ll be working closely with my professor on this one.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;With all of this on my plate, it’s looking to be an exciting, albeit busy, “spring” “break.”Â  Maybe I’ll even have time to go to Florida or something.Â  Pssh… right.&lt;/p&gt;
</content:encoded></item><item><title>Weekends — such a brilliant concept.</title><link>https://www.teejayvanslyke.com/letters/weekends-such-a-brilliant-concept/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/weekends-such-a-brilliant-concept/</guid><pubDate>Sun, 19 Feb 2006 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Free weekend number three of the new semester was an amazing experience.&lt;/p&gt;
&lt;p&gt;Friday afternoon I submitted my final invoice to WICB and completed the site to specification.Â  I am so relieved that that project won’t be occupying my time any longer.Â  This started a high that lasted through the weekend.&lt;/p&gt;
&lt;p&gt;Saturday could have been the single coldest day thusfar this winter.Â  Coincidentally, the annual Ithaca Chili Cook-Off was this Saturday as well.Â  After volunteering at 10,000 Villages I made my way around the Commons once, took a look around, realized my face was frozen, and proceeded to have my own chili cook-off with a nice bowl of freeze-dried chili at home.Â  It might not have been made with delicious fresh ingredients, but I sure did enjoy it more than anyone at the actual cook-off could have.&lt;/p&gt;
&lt;p&gt;Saturday afternoon was spent singing and playing guitar with the robots.Â  I believe our all-time greatest hits that afternoon were “Put It In Your Bum” and “We’re the Robots.”&lt;/p&gt;
&lt;p&gt;Saturday night was a blast.Â  We had what turned out to be a really enjoyable party at our house.Â  It epitomized everything I love about Robot House in one glorious, climactic night.Â  Hookahs littered the living room; acquaintances of past, present and future came and went.Â  I love parties that have a distinguished dynamic to them.Â  There was a diverse crowd of people, making way for some very interesting exchange.&lt;/p&gt;
&lt;p&gt;Back to the grind…&lt;/p&gt;
</content:encoded></item><item><title>The Middle East ran fresh out of democracy; Rice asks if she can buy them some more.</title><link>https://www.teejayvanslyke.com/letters/the-middle-east-ran-fresh-out-of-democracy-rice-asks-if-she-can-buy-them-some-more/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/the-middle-east-ran-fresh-out-of-democracy-rice-asks-if-she-can-buy-them-some-more/</guid><pubDate>Wed, 15 Feb 2006 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;From  &lt;a href=&quot;https://web.archive.org/web/20080416005004/http://www.nytimes.com/2006/02/15/politics/15cnd-rice.html?ex=1297659600&amp;amp;en=67c2c83c40fa4689&amp;amp;ei=5088&amp;amp;partner=rssnyt&amp;amp;emc=rss&quot;&gt;The New York Times&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;&lt;/blockquote&gt;
&lt;p&gt;Secretary of State &lt;a href=&quot;https://web.archive.org/web/20080416005004/http://topics.nytimes.com/top/reference/timestopics/people/r/condoleezza_rice/index.html?inline=nyt-per&quot;&gt;Condoleezza Rice&lt;/a&gt; told a Senate panel today that she plans to ask for $75 million to promote democracy in &lt;a href=&quot;https://web.archive.org/web/20080416005004/http://topics.nytimes.com/top/news/international/countriesandterritories/iran/index.html?inline=nyt-geo&quot;&gt;Iran&lt;/a&gt;, but she met with sharp questioning from Democrats about whether Bush administration policies were promoting the rise of anti-American governments around the world.&lt;/p&gt;
&lt;blockquote&gt;&lt;/blockquote&gt;
&lt;p&gt;Ms. Rice told the Senate Foreign Relations Committee that the money for Iran, on top of $10 million already provided in the current budget, would be used to “support the democratic aspirations of the Iranian people,” and to counter the influence of Tehran’s new hard-line regime.&lt;/p&gt;
&lt;p&gt;With innumerable instances of anti-West fury due to &lt;a href=&quot;https://web.archive.org/web/20080416005004/http://news.bbc.co.uk/2/hi/middle_east/4718328.stm&quot;&gt;recent&lt;/a&gt; &lt;a href=&quot;https://web.archive.org/web/20080416005004/http://news.bbc.co.uk/2/hi/south_asia/4715084.stm&quot;&gt;foreign&lt;/a&gt; &lt;a href=&quot;https://web.archive.org/web/20080416005004/http://www.voanews.com/english/2006-02-16-voa4.cfm&quot;&gt;policy&lt;/a&gt; blunders, it could be said that the Bush administration is propelling us into a spiral of worldwide hatred and dismay.  I’m not sure how buying democracy works, but I assume it would be through the use of propaganda and military force.&lt;/p&gt;
&lt;p&gt;On our side it’s promoting democracy — the administration fails to see that on their side, it’s cultural imperialism.&lt;/p&gt;
</content:encoded></item><item><title>I.N.T.E.L.L.I.G.E.N.C.E.</title><link>https://www.teejayvanslyke.com/letters/i-n-t-e-l-l-i-g-e-n-c-e/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/i-n-t-e-l-l-i-g-e-n-c-e/</guid><pubDate>Thu, 09 Feb 2006 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;There’s a &lt;a href=&quot;https://web.archive.org/web/20080416005004/http://www.csmonitor.com/2006/0209/p01s02-uspo.html?s=hns&quot;&gt;little-known secret floating around intelligence agencies&lt;/a&gt; that has been brought to the foreground in tech media.  In yet another effort to combat terrorism, the United States government has been actively pursuing a computer system that will mine data from various blogs, e-mail, and other online personal media outlets using &lt;a href=&quot;https://web.archive.org/web/20080416005004/http://www.alexa.com/&quot;&gt;Alexa’s WebSearch&lt;/a&gt; platform and sophisticated AI techniques to synthesize the data.&lt;/p&gt;
&lt;p&gt;Alright, so what if terrorists were using the web for coordinating attacks.  If you were a terrorist, would you blog about your latest jihads?  I know I would love to have a handy RSS feed outlining all of my terrorist plots so my fellow blogoterrorists could aggregate them on their terrorblogs.   The bottom line is, Islamic militants aren’t ignorant.  The blogosphere is comprised of a bunch of Internet fanboys (and girls) who want nothing more than to share their seemingly important opinions and accounts with the world (myself included).  As bloggers, *our *privacy will be undermined and any so-called “terrorist activity” will amount to extremist Western liberals who do not understand Internet tact.&lt;/p&gt;
&lt;p&gt;…I think the NSA is at the door.&lt;/p&gt;
</content:encoded></item><item><title>My first weekend off</title><link>https://www.teejayvanslyke.com/letters/my-first-weekend-off/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/my-first-weekend-off/</guid><pubDate>Mon, 06 Feb 2006 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;I don’t usually quote indie rock, but I’m going to make an exception.&lt;/p&gt;
&lt;blockquote&gt;&lt;/blockquote&gt;
&lt;p&gt;All these people drinking lover’s spit&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;They sit around and clean their face with it&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;And they listen to teeth to learn how to quit&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;tied to a night they never met&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;&lt;/blockquote&gt;
&lt;blockquote&gt;&lt;/blockquote&gt;
&lt;p&gt;– Broken Social Scene&lt;/p&gt;
&lt;p&gt;This weekend marked my first days off since we’ve been back at school, and I must say they were everything I could ever have hoped they could be.Â  I was at ease and regained a part of my sanity and spirit I hadn’t even realized I’d lost.&lt;/p&gt;
&lt;p&gt;On Saturday,Â  I experienced role reversal as I returned to Ten Thousand Villages as a volunteer.Â  Although I enjoyed my position beforehand, the lifting of such responsibility was refreshing.&lt;/p&gt;
&lt;p&gt;This morning, Kendra and I drove to Dryden to take some pictures.Â  It was one of the most meditative experiences I have had in a long time.Â  We went to my old elementary school (among several other places) and looked for interesting subjects for her photo project.Â  I felt a strong sense of nostalgia with everything around me–it had been a few years since I had spent any reasonable amount of time in Dryden.&lt;/p&gt;
&lt;p&gt;I spent most of the rest of the day formatting the pictures I took for the web.Â  I wrote a Rails application that manages photo albums with customizable CSS for each album.Â Â  Next, I’m going to try to implement real-time thumbnail generation so that the album pages have thumbnail images next to the photo titles.Â  Expect to see this in action on &lt;a href=&quot;http://photos.teejayvanslyke.com&quot;&gt;photos.teejayvanslyke.com&lt;/a&gt; as soon as its ready.&lt;/p&gt;
&lt;p&gt;Goodnight.&lt;/p&gt;
</content:encoded></item><item><title>Rounded corners make me happy.</title><link>https://www.teejayvanslyke.com/letters/rounded-corners-make-me-happy/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/rounded-corners-make-me-happy/</guid><pubDate>Thu, 02 Feb 2006 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;I added rounded corners to my main page (&lt;a href=&quot;http://www.teejayvanslyke.com&quot;&gt;http://www.teejayvanslyke.com&lt;/a&gt;) per a wonderful tutorial I found on digg.Â  Once I find the link to the tutorial I will link to it from here.Â  My next project is my Services page.&lt;/p&gt;
</content:encoded></item><item><title>State of the Union</title><link>https://www.teejayvanslyke.com/letters/state-of-the-union/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/state-of-the-union/</guid><pubDate>Mon, 30 Jan 2006 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;George W. Bush will be giving his annual State of the Union address this evening and it certainly looks to be a great show. Here’s a preview:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Several articles about tonight’s address claim that because of Bush’s dwindling approval rating combined with the U.S. economy’s poor performance and rising gas prices, tonight’s speech will focus on patching up our perception of the administration from the oil-loving, hatemongering fascists they appear to be to the freedom-loving, good samaritans they really are.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Possible topics for discussion include improved health policy, extended tax cuts, and the renewal of the USA PATRIOT Act.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;All in all, tonight’s State of the Union address, if the name were to accurately portray the content of the speech, could be one word long: “Shitty.”&lt;/p&gt;
</content:encoded></item><item><title>Intellectual Property — A follow-up</title><link>https://www.teejayvanslyke.com/letters/intellectual-property-a-follow-up/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/intellectual-property-a-follow-up/</guid><pubDate>Sat, 28 Jan 2006 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;So I may have been generalizing when I said that coursework from &lt;em&gt;any&lt;/em&gt; institution is property of the institution itself.  It seems that the IP policy of colleges and universities varies depending on the nature of the works and the capital gain acquired.  According to &lt;a href=&quot;https://web.archive.org/web/20080416005750/http://www.ithaca.edu/funding/intlprop.html&quot;&gt;Ithaca College’s Intellectual Property Policy&lt;/a&gt;, this is the case, but only under certain circumstances:&lt;/p&gt;
&lt;blockquote&gt;&lt;/blockquote&gt;
&lt;p&gt;Where a copyrightable work is designed and produced as a class project, or is substantially designed by a student or students under a professor’s supervision, the College may elect either to take copyright or to require a share of net royalties from the professor’s copyright. The patent royalty table should be used as a guide. (It is recognized that many creative disciplines at Ithaca are taught through apprenticeship. This section is not to be construed to deny the member’s copyright where a film, video, musical recording, painting, etc. is essentially the personal intellectual product of the professor, produced with student assistance for the students’ educational benefit.)&lt;/p&gt;
&lt;p&gt;I’m just not going to think anymore.Â   I’m taking it to the man.&lt;/p&gt;
</content:encoded></item><item><title>I’m a Fair Traitor.</title><link>https://www.teejayvanslyke.com/letters/i-m-a-fair-traitor/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/i-m-a-fair-traitor/</guid><pubDate>Fri, 27 Jan 2006 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;So I came to the conclusion that this semester is turning out to be much too intense academically for me to continue to work at Ten Thousand Villages.Â  I announced my resignation a couple weeks ago and am inÂ my final few days of service.Â  This means I will have a weekend again!Â&lt;/p&gt;
&lt;p&gt;My dad informed me last night of two possible web clients, which means more business and more enjoyably acquired income.Â&lt;/p&gt;
&lt;p&gt;I also found out a tidbit of information today that I was completely oblivious to:Â  all coursework at &lt;em&gt;any&lt;/em&gt; institution - not only graduate institutions– becomes the intellectual property of the institution itself.Â  Looks like I won’t be developing anything that merits more than an ‘A’ for awhile.&lt;/p&gt;
</content:encoded></item><item><title>Back to school…</title><link>https://www.teejayvanslyke.com/letters/back-to-school/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/back-to-school/</guid><pubDate>Fri, 13 Jan 2006 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;It’s that time again–time to start another semester at Ithaca.Â  Here’s my course lineup for the Spring:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;CS210 - Intro to Computer Org &amp;amp; System&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;CS225 - User Interface Design &amp;amp; Development&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;CS321 - Programming Languages&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;CS490 - Advanced Networks Seminar&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;2005 was the year of the academics; 2006 will be the year of the nerd.Â  Although this semester is looking to be one spent in the lab, it *is *only four courses and might be significantly less work than I’m expecting.Â  Then again, I’ve said that before…&lt;/p&gt;
&lt;p&gt;What I’m really looking forward to is working with &lt;a href=&quot;https://web.archive.org/web/20080416005750/http://faculty.ithaca.edu/aerkan&quot;&gt;Ali&lt;/a&gt; to inch my way into the Cornell labs to make connections for graduate school.Â  He is considering using &lt;a href=&quot;https://web.archive.org/web/20080416005750/http://jist.ece.cornell.edu/&quot;&gt;JIST&lt;/a&gt;, a network simulation API for Java, to teach the Advanced Networks seminar.Â  Since JIST is being developed at Cornell,Â he suggested that some of his students might work with Cornell professors on documentation and implementation of the system.Â  Connections, anyone?&lt;/p&gt;
&lt;p&gt;I’m really looking forward to seeing more of my friends that went abroad this past semester.Â  It will be refreshing to have some different yet familiar faces roaming campus.Â  This semester is also my last one on campus, so I am hoping to make it a good one.&lt;/p&gt;
</content:encoded></item><item><title>Corpse Economy</title><link>https://www.teejayvanslyke.com/letters/corpse-economy/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/corpse-economy/</guid><pubDate>Sun, 08 Jan 2006 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;**Corpse Pride. **With the atrocities of the Iraq War claiming several hundred lives each week combined with the growing number of deaths due to extreme natural disasters, it cannot be denied that death is in style.  Corpses are going mainstream.&lt;/p&gt;
&lt;p&gt;But what use do we have for corpses in our everyday lives?  We could tie strings to their limbs and parade them around like marionettes, but that might border on grotesque.  There is no denying the overabundance of cemeteries in rural America.  &lt;a href=&quot;https://web.archive.org/web/20080416005750/http://www.mrotoday.com/mro/archives/Cover%20stories/batesvilleON2000.htm&quot;&gt;The casket industry is a growing at an alarming rate.&lt;/a&gt; Do you want your economy being supported by dead people?  What if dead people &lt;em&gt;supported your economy&lt;/em&gt;?&lt;/p&gt;
&lt;p&gt;**Black Death. **Last week I outlined (with severe brevity, I must admit) the problems of an oil-based economy.   It is predicted that within the next thirty years, we will no longer have the energy supplies to accomodate for our demand.  Turning to another source of inexpensive, efficient energy will be a very long, difficult transition.  Many analyists advocate a combination of biodiesel, ethanol, and wind power to curb our dependency on oil.  However, I would like to offer another solution.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;The Matrix Was Really Cool.&lt;/strong&gt;  If machines can produce energy from our rotting flesh, what is preventing us from doing the same?  I propose that we begin refining human flesh as soon as possible.  If we are to fuel the Western war machine, we need a fuel source that will not deplete itself.  With the numbers of casualties in our current wars, it would be very economical to put these bodies to good use.  What’s more, funerals could be held at the local gas station.  Give your grandmother the honor she deserves:  Don’t toss her ashes into the ocean;  pump her fluids into your Hummer.&lt;/p&gt;
&lt;p&gt;The bottom line is that death is here to stay.  Why don’t we at least capitalize off of its vast resources?Â   Sure, it might seem taboo to send your dead relative to the refinery, but how else are we going to perpetuate our American lifestyles?  Genocide is wrong, but if we’re going to do it, let’s wring out the metaphorical washcloth of war and get as much as we can.  I invite you to follow these three easy steps:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Kill innocent people in the name of freedom.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Refine innocent people in the name of sport-utility vehicles.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Pump innocent people into your gas tank and show the world you care.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
</content:encoded></item><item><title>That’s Dr. Teejay to you!</title><link>https://www.teejayvanslyke.com/letters/that-s-dr-teejay-to-you/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/that-s-dr-teejay-to-you/</guid><pubDate>Sat, 07 Jan 2006 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;I’m currently hunting around for graduate programs, trying to find something that suits my mind and my wallet.Â  Here’s what I’ve been looking at thusfar:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://web.archive.org/web/20080416005750/http://www.slis.indiana.edu/degrees/phd/&quot;&gt;School of Library and Information Science, Indiana University&lt;/a&gt; - Information Science Ph.D&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://web.archive.org/web/20080416005750/http://www.infosci.cornell.edu/grad/&quot;&gt;Cornell Information Science&lt;/a&gt; - Ph.D Program — the course requirements look the best so far…Â but the tuition won’t be fun.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://web.archive.org/web/20080416005750/http://www.ischool.washington.edu/programs/phd/&quot;&gt;Information School, University of Washington&lt;/a&gt; - Information Science Ph.D… Seattle would be fun.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I especially like Cornell’s Cognition concentration in their Infosci program.Â  It entails several cognitive science courses along with the usual information science courses, offering a glimpse at both how we produce information, and &lt;em&gt;how we consume it&lt;/em&gt;.Â  I think my metaphysics class solidified my interest in cogsci, if only because of its emphasis on the ultimate nature of human understanding.Â  Hopefully the courses I’ve taken at Ithaca will bode well for my graduate admission.&lt;/p&gt;
</content:encoded></item><item><title>Vonnegut’s Fortune Cookie #2</title><link>https://www.teejayvanslyke.com/letters/vonnegut-s-fortune-cookie-2/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/vonnegut-s-fortune-cookie-2/</guid><pubDate>Fri, 06 Jan 2006 00:00:00 GMT</pubDate><content:encoded>&lt;blockquote&gt;&lt;/blockquote&gt;
&lt;p&gt;“No wonder kids grow up crazy.Â  A cat’s cradle is nothing but a bunch of X’s between somebody’s hands, and little kids look and look and look at all those X’s…”&lt;/p&gt;
&lt;blockquote&gt;&lt;/blockquote&gt;
&lt;p&gt;“And?”&lt;/p&gt;
&lt;blockquote&gt;&lt;/blockquote&gt;
&lt;p&gt;&lt;em&gt;“No damn cat, and no damn cradle.”&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;– Kurt Vonnegut, &lt;em&gt;Cat’s Cradle&lt;/em&gt;&lt;/p&gt;
</content:encoded></item><item><title>Vonnegut’s Fortune Cookie #3</title><link>https://www.teejayvanslyke.com/letters/vonnegut-s-fortune-cookie-3/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/vonnegut-s-fortune-cookie-3/</guid><pubDate>Fri, 06 Jan 2006 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;I can’t seem to stop reading &lt;em&gt;Cat’s Cradle&lt;/em&gt;…&lt;/p&gt;
&lt;blockquote&gt;&lt;/blockquote&gt;
&lt;p&gt;“Sir, how does a man die when he’s deprived of the consolations of literature?”&lt;/p&gt;
&lt;blockquote&gt;&lt;/blockquote&gt;
&lt;p&gt;“In one of two ways,” he said, “petrescence of the heart or atrophy of the nervous system.”&lt;/p&gt;
&lt;blockquote&gt;&lt;/blockquote&gt;
&lt;p&gt;“Neither one very pleasant, I expect,” I suggested.&lt;/p&gt;
&lt;blockquote&gt;&lt;/blockquote&gt;
&lt;p&gt;“No,” said Castle the elder. “For the love of God, *both *of you, &lt;em&gt;please&lt;/em&gt; keep writing!”&lt;/p&gt;
&lt;p&gt;– Kurt Vonnegut, &lt;em&gt;Cat’s Cradle&lt;/em&gt;&lt;/p&gt;
</content:encoded></item><item><title>Funded?</title><link>https://www.teejayvanslyke.com/letters/funded/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/funded/</guid><pubDate>Thu, 05 Jan 2006 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Today my computer science professor e-mailed me regarding my &lt;strong&gt;skrap:pad&lt;/strong&gt; project.  Apparently, several science departments are looking for ways to make their teaching technologies more powerful and he would like to see if what I have been developing could be applied as a solution.&lt;/p&gt;
&lt;p&gt;All I know is that if this gets picked up, it could mean a very attractive research project on my resume.  Attached is the proposal — I’m all blogged out already, so read it for yourself.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://web.archive.org/web/20080416005750/http://blog.teejayvanslyke.com/wp-content/uploads/2006/01/Wiki.Supercharged.pdf&quot;&gt;Wiki, supercharged.&lt;/a&gt; [pdf]&lt;/p&gt;
</content:encoded></item><item><title>It’s the end of the world as we know it: A follow-up.</title><link>https://www.teejayvanslyke.com/letters/it-s-the-end-of-the-world-as-we-know-it-a-follow-up/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/it-s-the-end-of-the-world-as-we-know-it-a-follow-up/</guid><pubDate>Thu, 05 Jan 2006 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;On New Year’s Eve I presented a few prophecies for the apocalypse occuring or beginning within 2006.  Obviously, although we all love Drosdin’s &lt;em&gt;The Bible Code&lt;/em&gt;, it is a completely unreasonable theory — equidistant letter sequences occur everywhere if you look hard enough.  The other theories were also crackpot enough to dismiss — I don’t believe in angels — or at least ones that bring about the apocalypse.  That said, let’s examine one real-world end times theory:  The horrors of &lt;strong&gt;Peak Oil&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Peak what?&lt;/strong&gt; So you’ve been living in apathy the last few years, eh?  So has most everyone else.  Peak oil is the theory that purports that global oil production operates along a bell curve; that is, that oil production will ‘peak’ and then steadily decline at some unforeseen rate.  For more general information on peak oil, please see &lt;a href=&quot;https://web.archive.org/web/20080416005750/http://en.wikipedia.org/wiki/Peak_Oil&quot;&gt;this very informative Wikipedia article&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;So I’ll stop driving.&lt;/strong&gt;  Yeah you will.  And you’ll cease being warm.  And you’ll have to stop reading this blog.  You’ll probably also need to stockpile weapons if you would like to maintain some sense of security because a lot of people will want to drive, be warm, and read my blog (at least I hope).  They’ll most likely want to take what you have stockpiled.  &lt;a href=&quot;https://web.archive.org/web/20080416005750/http://www.wolfatthedoor.org.uk/&quot;&gt;This site offers a frightening depiction of what may come&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Okay, so what can I do?&lt;/strong&gt;  Well, spread love?  It’ll be about the only commodity we have left after our economy is in turmoil.  I would suggest stockpiling your preferred intoxicant.  I would also suggest some inspirational music, but you sure won’t have any means of playing it.&lt;/p&gt;
</content:encoded></item><item><title>Everyone has a story.</title><link>https://www.teejayvanslyke.com/letters/everyone-has-a-story/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/everyone-has-a-story/</guid><pubDate>Tue, 03 Jan 2006 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Sitting here at Stella’s is so gratifying.Â  It puts one in a position of constant observation, as if I am an anthropologist observing an obscure indigenous tribe.Â  These are real people with real stories that bear as much significance as any other story.&lt;/p&gt;
&lt;p&gt;Perhaps that is what makes life significant — not who you are, but what you are.Â  Without conversation, we’re drones.&lt;/p&gt;
&lt;p&gt;What did you talk about today?&lt;/p&gt;
</content:encoded></item><item><title>Vonnegut’s Fortune Cookie.</title><link>https://www.teejayvanslyke.com/letters/vonnegut-s-fortune-cookie/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/vonnegut-s-fortune-cookie/</guid><pubDate>Tue, 03 Jan 2006 00:00:00 GMT</pubDate><content:encoded>&lt;blockquote&gt;&lt;/blockquote&gt;
&lt;p&gt;“Peculiar travel suggestions are dancing lessons from God.”&lt;/p&gt;
&lt;blockquote&gt;&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;Kurt Vonnegut, &lt;em&gt;Cat’s Cradle&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This week has proven to reinforce this quote many times over.&lt;/p&gt;
</content:encoded></item><item><title>It’s the end of the world as we know it.</title><link>https://www.teejayvanslyke.com/letters/it-s-the-end-of-the-world-as-we-know-it/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/it-s-the-end-of-the-world-as-we-know-it/</guid><pubDate>Sat, 31 Dec 2005 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;With the new year mere hours away, there are bound to be eschatologists at work depicting humanity’s final hours as being at the dawn of or during 2006.  Since I have a strange fascination with the field of &lt;a href=&quot;https://web.archive.org/web/20080416005528/http://en.wikipedia.org/wiki/Eschatology&quot;&gt;eschatology,&lt;/a&gt; I figured I would present some of the theories that are cropping up across the Internet:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;According to &lt;a href=&quot;https://web.archive.org/web/20080416005528/http://exodus2006.com/2006.htm&quot;&gt;this site&lt;/a&gt;, 2006 is the year prophecized by an angel to the prophet Daniel when people’s distress is at its peak.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;According to &lt;a href=&quot;https://web.archive.org/web/20080416005528/http://www.amazon.com/gp/product/0684849739/qid=1136074825/sr=8-1/ref=pd_bbs_1/103-8454824-3679036?n=507846&amp;amp;s=books&amp;amp;v=glance&quot;&gt;Michael Drosdin’s book The Bible Code&lt;/a&gt;, &lt;a href=&quot;https://web.archive.org/web/20080416005528/http://www.crawford2000.co.uk/bible_code.htm&quot;&gt;an atomic holocaust is set to erupt between 2000 and 2006&lt;/a&gt;.  These years were encoded with the words “World War” in the Bible as equidistant letter sequences.  Creepy.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://web.archive.org/web/20080416005528/http://en.wikipedia.org/wiki/Millenialism&quot;&gt;Millenialism&lt;/a&gt; is the belief that the world would end in the year 2000.  Well, that sure didn’t happen.  However, many believe that since theologists could be wrong about the true birthyear of Jesus Christ, the &lt;em&gt;true&lt;/em&gt; end of the world would occur within that factor of error.  Could it be six years?&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;All I know is that I’m going to be partying like it’s 1999 tonight.  Who knows if we’ll see tomorrow?&lt;/p&gt;
</content:encoded></item><item><title>The Cold War II:  A follow-up</title><link>https://www.teejayvanslyke.com/letters/the-cold-war-ii-a-follow-up/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/the-cold-war-ii-a-follow-up/</guid><pubDate>Sat, 31 Dec 2005 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Vladimir Putin announced today that Russia would delay its oil export hike on Ukraine three months, giving Kiev a chance to reach compromise.  However, if Ukraine does not sign on to the deal, Russia’s oil monopoly Gazprom will cease supplying oil as early as this Sunday.  Putin remarked on his decision at a meeting with Gazprom head Alexi Miller:&lt;/p&gt;
&lt;blockquote&gt;&lt;/blockquote&gt;
&lt;p&gt;“I instruct the government and Gazprom to ensure gas deliveries in the first quarter of 2006 with the conditions and rates of 2005, on the condition that before the end of today the Ukrainian partners sign the contract with Gazprom’s offer for switching to market prices in the second quarter,” he said in remarks broadcast by Russian TV. (&lt;a href=&quot;https://web.archive.org/web/20080416005528/http://news.bbc.co.uk/2/hi/europe/4571726.stm&quot;&gt;BBC News&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;Although Russia has insisted that the dispute will not affect the European Union’s oil supply, 80% of its exports are sent through Ukraine, forcing many to think otherwise.&lt;/p&gt;
&lt;p&gt;This news comes only minutes before &lt;a href=&quot;https://web.archive.org/web/20080416005528/http://quote.bloomberg.com/apps/news?pid=10000006&amp;amp;sid=aIaMr92k4bh8&amp;amp;refer=home&quot;&gt;this Bloomberg article&lt;/a&gt; that puts oil at a two-month high in the states.&lt;/p&gt;
&lt;p&gt;It’s going to be a cold, cold winter.&lt;/p&gt;
</content:encoded></item><item><title>And I thought I had seen it all…</title><link>https://www.teejayvanslyke.com/letters/and-i-thought-i-had-seen-it-all/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/and-i-thought-i-had-seen-it-all/</guid><pubDate>Fri, 30 Dec 2005 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Yesterday might have been the most obtuse day I have ever had.  Please be aware that although I am about to attempt to convey its events with words, I do not think there is a language that is sufficient to fully express the eccentricity of yesterday’s events.  That said, allow me to begin. &lt;a href=&quot;https://web.archive.org/web/20080416005528/http://teejayvanslyke.com/?p=39#more-39&quot;&gt;[Read]&lt;/a&gt;&lt;/p&gt;
</content:encoded></item><item><title>The Cold War II — only this time it won’t be a nuclear winter.</title><link>https://www.teejayvanslyke.com/letters/the-cold-war-ii-only-this-time-it-won-t-be-a-nuclear-winter/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/the-cold-war-ii-only-this-time-it-won-t-be-a-nuclear-winter/</guid><pubDate>Thu, 29 Dec 2005 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Russia today threatened to cut off gas from Ukraine unless they begin paying four-fold what they are currently paying for their gas imports.Â  It “demanded that Kiev agree to pay $220-$230 (Â£128-Â£133) per 1,000 cubic metres, compared with the $50 it had previously paid instead of transit fees for gas heading to Western Europe.” (&lt;a href=&quot;https://web.archive.org/web/20080416005528/http://www.timesonline.co.uk/article/0,,13509-1963017,00.html&quot;&gt;Page, Times Online&lt;/a&gt;).Â  This could mean a very, very cold winter for not only Ukraine, but also western European countries that depend on Russian oil imports for 80% of their oil consumption.&lt;/p&gt;
&lt;p&gt;Some analyists claim that the situation isn’t worth panicking over:&lt;/p&gt;
&lt;blockquote&gt;&lt;/blockquote&gt;
&lt;p&gt;“Germany can be supplied for more than two month from gas storage tanks,” Martin Weyand, head of the Federal Association of German Gas and Water Economy (BGW) pointed out this week. (&lt;a href=&quot;https://web.archive.org/web/20080416005528/http://www.dw-world.de/dw/article/0,2144,1839484,00.html&quot;&gt;DW-World.de&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;However, with oil prices as high as they are in the states, such developments can make us wonder: &lt;a href=&quot;https://web.archive.org/web/20080416005528/http://www.amazon.com/gp/product/0865714827/103-8454824-3679036?v=glance&amp;amp;n=283155&quot;&gt;is the party over&lt;/a&gt;?&lt;/p&gt;
</content:encoded></item><item><title>To Ph.D or to not Ph.D…</title><link>https://www.teejayvanslyke.com/letters/to-ph-d-or-to-not-ph-d/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/to-ph-d-or-to-not-ph-d/</guid><pubDate>Thu, 29 Dec 2005 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Looking at graduate programs is making me cringe at the thought of paying *another * $30,000+ per year for school.  I would like to realize my dream of becoming a professor, but at that cost I will be paying for it for life.  I suppose the knowledge gained would easily be worth it, but I am already in over my head.  So far I have looked at UC Berkeley and Cornell — although, these should probably be considered my “dream” schools.&lt;/p&gt;
&lt;p&gt;We shall see soon enough…&lt;/p&gt;
</content:encoded></item><item><title>New party with old friends.</title><link>https://www.teejayvanslyke.com/letters/new-party-with-old-friends/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/new-party-with-old-friends/</guid><pubDate>Wed, 28 Dec 2005 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;I had the pleasure of seeing some old friends this week, including one of my best friends from grade school who happened to be serving in the military overseas.  Here are a couple pictures:&lt;/p&gt;
&lt;p&gt;Sarah and I&lt;/p&gt;
&lt;p&gt;Everybody.&lt;/p&gt;
</content:encoded></item><item><title>teejay vanslyke development &amp; design:  it’s legit.</title><link>https://www.teejayvanslyke.com/letters/teejay-vanslyke-development-design-it-s-legit/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/teejay-vanslyke-development-design-it-s-legit/</guid><pubDate>Wed, 28 Dec 2005 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;I went to the County Clerk’s office today to get my DBA notorized so that I am officially recognized as a sole proprietorship.Â  It’s neat to know that my business is now a legally recognized entity.&lt;/p&gt;
&lt;p&gt;The security at the courthouse cracked me up — it’s sad that even to access the Clerk’s office I had to go through a metal detector… I bet they think I’ll steal… their paper… or something.Â  I suppose it’s necessary, but I certainly would rather be greeted with a cheery “Hello” than “Remove all metallic items from your pockets.”&lt;/p&gt;
&lt;p&gt;Oh well.&lt;/p&gt;
</content:encoded></item><item><title>Words of wisdom.</title><link>https://www.teejayvanslyke.com/letters/words-of-wisdom/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/words-of-wisdom/</guid><pubDate>Wed, 28 Dec 2005 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Greg:Â  “T.J., maybe if you didn’t like dick you wouldn’t like blogging.”&lt;/p&gt;
&lt;p&gt;Greg:Â  “Blogging sounds like a sexual term, anyway.”&lt;/p&gt;
</content:encoded></item><item><title>teejayvanslyke.com is a reality.</title><link>https://www.teejayvanslyke.com/letters/teejayvanslyke-com-is-a-reality/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/teejayvanslyke-com-is-a-reality/</guid><pubDate>Tue, 27 Dec 2005 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;I have reformatted the entirety of my web site (and it is a work-in-progress).Â  The White Rabbit now operates on Wordpress 2.0.Â  The site is structured as such:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://web.archive.org/web/20080416005528/http://www.teejayvanslyke.com/&quot;&gt;www.teejayvanslyke.com&lt;/a&gt; - this is my company page.Â  it holds my web development and design services information and the like.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://web.archive.org/web/20080416005528/http://blog.teejayvanslyke.com/&quot;&gt;blog.teejayvanslyke.com&lt;/a&gt; - you’re lookin’ at it.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://web.archive.org/web/20080416005528/http://webpire.teejayvanslyke.com/&quot;&gt;webpire.teejayvanslyke.com&lt;/a&gt; - this is my ‘portal’ page of sorts.Â  it has links to all of my various web projects, original music, web sites, and the like.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;http://development.teejayvanslyke.com&quot;&gt;development.teejayvanslyke.com&lt;/a&gt; - this domain will run an instiki for my development work.Â  it will also operate the SVN repository for all of my projects.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In the process of moving everything around, there will probably be some problems around the site.Â  Please feel free to report any of these to me  .&lt;/p&gt;
</content:encoded></item><item><title>All break and no school makes Teejay a huge nerd.</title><link>https://www.teejayvanslyke.com/letters/all-break-and-no-school-makes-teejay-a-huge-nerd/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/all-break-and-no-school-makes-teejay-a-huge-nerd/</guid><pubDate>Fri, 23 Dec 2005 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;I don’t think I’ve ever coded so much in my life.  Skrap:pad is coming along nicely and now most of the GUI schema is in place.  I also created a prototype for my &lt;em&gt;new&lt;/em&gt; home page to replace the old television one — it was getting too complex and I want to make the site focus on my web development moreso than fun quotes.&lt;/p&gt;
&lt;p&gt;I’ve also been hard at work on the WICB web site, including a calendar system and MyJSSQL, a library that allows direct access of data from a MySQL database via JavaScript and a driver PHP script.  I am looking for freelance work for this summer, so if you know anyone that needs a quality piece of web lovin’, send them my way  .&lt;/p&gt;
&lt;p&gt;On yet another web-related note, the new issue of Buzzsaw is almost complete.  All that is left is adding images and a couple smaller articles.  I added an ‘auxilary pane’ feature that allows me to add a content pane to the top, left, right, or bottom of the page body.  This will push the site to look more like an actual print magazine I hope.&lt;/p&gt;
&lt;p&gt;As sad as it sounds, I am so happy the Christmas season is almost over.  I need to regain my sanity at the store.  I have most of next week off, so expect more frequent updates.&lt;/p&gt;
&lt;p&gt;Merry Winter,&lt;/p&gt;
&lt;p&gt;~ teejay&lt;/p&gt;
</content:encoded></item><item><title>Ideas, ideas, ideas!</title><link>https://www.teejayvanslyke.com/letters/ideas-ideas-ideas/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/ideas-ideas-ideas/</guid><pubDate>Sun, 04 Dec 2005 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;So I’ve been developing some ideas for neat web projects to occupy my time with.  Let me fill you in…&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Hitchhiker&lt;/strong&gt;, as I am calling it, will be a new way to categorize and find information on the web.  Rather than having an implied hierarchy as is present in most online directories, why not visually represent the hierarchy in a Mac-OS-X-Finder-esque way?  The page could start with a top-level listing on the left side of the screen.  As soon as you choose a category, another list appears next to it.  The application continues in this fashion until it gets to actual items with information associated, at which point clicking on the item will bring up a window with the article or whatever is associated with that item.  All of this could be animated in the style of a certain nameless fictional book from a nameless recent motion picture of the same name  .&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;skrap:pad&lt;/strong&gt;… oh boy.  This one is my baby.  Imagine a web free of the chains of HTML.  Imagine a web that works more like Adobe Photoshop.  That is what I envision for this–rapid web “scrapbooking” using completely graphical menus.  The possibilities would be endless.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;to be continued…&lt;/em&gt;&lt;/p&gt;
</content:encoded></item><item><title>It’s cold, it’s December, and it’s going to be a long haul.</title><link>https://www.teejayvanslyke.com/letters/it-s-cold-it-s-december-and-it-s-going-to-be-a-long-haul/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/it-s-cold-it-s-december-and-it-s-going-to-be-a-long-haul/</guid><pubDate>Sun, 04 Dec 2005 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Yesterday the store did over $4,000 in business, making Saturday, December 3 the single most stressful day of work in my life.  Combine that with several papers and projects due, my WICB web gig, and my own personal aspirations, and you have yourself quite the taxing month indeed.&lt;/p&gt;
&lt;p&gt;Tonight I will be writing my final metaphysics paper on the theories surrounding the persistence of objects across time… that is, after I work the rest of the day and such.&lt;/p&gt;
&lt;p&gt;It’s hard to believe the last week of classes is already imminent.  My coworkers and I were joking around — after finals, I’m going to find a &lt;em&gt;month&lt;/em&gt; spa… a day spa would be underemphasizing my stress  .&lt;/p&gt;
&lt;p&gt;We shall see what comes of all of this.&lt;/p&gt;
&lt;p&gt;&amp;lt;3 teejay&lt;/p&gt;
</content:encoded></item><item><title>The beginning of my freelance career</title><link>https://www.teejayvanslyke.com/letters/the-beginning-of-my-freelance-career/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/the-beginning-of-my-freelance-career/</guid><pubDate>Tue, 22 Nov 2005 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Yesterday I met with the station manager at WICB and he officially offered me the job of redeveloping their web site.  This is great news.  Hopefully this will officially jumpstart my freelance web development career and give me some connections.&lt;/p&gt;
&lt;p&gt;I have recently started learning the &lt;a href=&quot;https://web.archive.org/web/20080416005523/http://www.rubyonrails.org/&quot;&gt;Ruby on Rails&lt;/a&gt; web development paradigm.  It seems to be an interesting approach at database-driven web applications.  However, learning &lt;a href=&quot;https://web.archive.org/web/20080416005523/http://www.ruby-lang.org/&quot;&gt;Ruby&lt;/a&gt; might be more commitment than I’m ready for at this point.  I started developing an application to keep track of my finances as a tutorial application.  So far, I have support for accounts, transactions, and transaction categories.  All of the data is stored on my MySQL server.  What’s neat about Rails is its understanding of databases.  With one line, it understands the relation between, say, account transactions and accounts.&lt;/p&gt;
&lt;p&gt;Today also marks the first real snowfall of the season (ugh).  Looks like I’ll be hibernating for a few months.&lt;/p&gt;
&lt;p&gt;Until next time,&lt;/p&gt;
&lt;p&gt;teejay&lt;/p&gt;
</content:encoded></item><item><title>Winter is close enough…</title><link>https://www.teejayvanslyke.com/letters/winter-is-close-enough/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/winter-is-close-enough/</guid><pubDate>Fri, 18 Nov 2005 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;It’s the day before our Thanksgiving break starts and it’s beginning to get colder.&lt;/p&gt;
&lt;p&gt;I just finished the server component of my Software Engineering class’s online-playable version of Clue Jr.  Now that I’m more proficient with Java, I finally understand the merit of such a structured object-oriented language.&lt;/p&gt;
&lt;p&gt;This break I’m going to be meeting with the station manager at &lt;a href=&quot;https://web.archive.org/web/20080416005523/http://www.wicb.org/&quot;&gt;WICB&lt;/a&gt; to discuss the possibility of developing their new web site.&lt;/p&gt;
&lt;p&gt;Details later.&lt;/p&gt;
</content:encoded></item><item><title>Happy birthday to me!</title><link>https://www.teejayvanslyke.com/letters/happy-birthday-to-me/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/happy-birthday-to-me/</guid><pubDate>Mon, 14 Nov 2005 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;So today I turned twenty years old.  It’s not as exciting as I had hoped, but it is still a reminder that I’m an adult… ugh.  I decree tonight as Ye Olde Wine Binging Night.&lt;/p&gt;
&lt;p&gt;I just upgraded my internet service to 3 mbps, so there should be a noticeable speed increase on my server… yay!&lt;/p&gt;
</content:encoded></item><item><title>Hydrino?</title><link>https://www.teejayvanslyke.com/letters/hydrino/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/hydrino/</guid><pubDate>Sun, 06 Nov 2005 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;It sounds like a cleaning product or Intel’s newest chip, but its actually what inventor Randell Mills is claiming to be the solution to our renewable energy problem.  &lt;a href=&quot;https://web.archive.org/web/20080416005523/http://www.guardian.co.uk/science/story/0,3605,1627424,00.html&quot;&gt;This article&lt;/a&gt; in the Guardian explains how Mills has claimed to create a new kind of hydrogen that violates our current understanding of quantum mechanics.  This newly-formed atomic structure could spell an end to our oil dependency and the true dawn of the information age.  However, there is still a long way to go.  Many skeptics seem to think that Mills’ theory is completely quacked out.&lt;/p&gt;
&lt;p&gt;Wikipedia has an article on the hydrino theory &lt;a href=&quot;https://web.archive.org/web/20080416005523/http://en.wikipedia.org/wiki/Hydrino_theory&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Let’s hope this goes somewhere.&lt;/p&gt;
</content:encoded></item><item><title>I can make you a man</title><link>https://www.teejayvanslyke.com/letters/i-can-make-you-a-man/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/i-can-make-you-a-man/</guid><pubDate>Sat, 29 Oct 2005 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;It’s Halloween weekend, and we all know what that means — Ithaca’s annual production of Rocky Horror Picture Show.  This year I am the master of ceremonies for the event, and my throat has never been more sore from yelling.  I’m at work right now staring into a daze from general lack of sleep, awaiting patiently the moment when I can go home and do it all again.&lt;/p&gt;
&lt;p&gt;Tonight, Robot House is hosting the Robot House Masquerave Ball.  It will prove to be a great time or a complete bust, depending on the nature of the cops tonight.&lt;/p&gt;
&lt;p&gt;Alright, I suppose I’d best get back to work.  Hopefully I don’t fall asle– &lt;em&gt;thud&lt;/em&gt;&lt;/p&gt;
</content:encoded></item><item><title>And the leaves keep falling.</title><link>https://www.teejayvanslyke.com/letters/and-the-leaves-keep-falling/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/and-the-leaves-keep-falling/</guid><pubDate>Mon, 24 Oct 2005 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Autumn has reached its peak and soon it will be too cold to bear outside.  Soon, we will all huddle in our houses, hibernating in anticipation of a warm spring day.  Until then…&lt;/p&gt;
&lt;p&gt;I just started my new job at Ten Thousand Villages downtown.  It’s a rewarding experience and pays better than CBORD did.  Although it would be nice to have a day off once in awhile.&lt;/p&gt;
&lt;p&gt;I’ve been drawing and painting a lot lately — I might put up a gallery section on my main page if I can get my work together.  There’s something special about having your own artwork all over your walls… some might say it’s narcissistic, but I think its simply self-expressive.&lt;/p&gt;
&lt;p&gt;Next weekend is Halloween, which means Rocky Horror Picture Show and several high-class party affairs.  I think this might be one of the last big party weekends I involve myself in.  Halloween gives all of us laypeople a chance to dress like the freaks  ).&lt;/p&gt;
&lt;p&gt;So yeah… that was the most Livejournal-esque entry I’ve ever made.  I’m gonna go slit my wrists and listen to Bright Eyes.  Oh.  And my cats.  Play with my cats.&lt;/p&gt;
&lt;p&gt;&amp;lt;3,&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;  ~ teejay
&lt;/code&gt;&lt;/pre&gt;
</content:encoded></item><item><title>Holy Crap!</title><link>https://www.teejayvanslyke.com/letters/holy-crap/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/holy-crap/</guid><pubDate>Wed, 12 Oct 2005 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;So I decided it would be prudent to update my front page… after all, it’s been awhile.  I created a nifty randomizing engine that takes quotes and images from a database and assigns them to regions of the screen so that on mouse over, the text and images change.  Useless?  Yes.&lt;/p&gt;
&lt;p&gt;Garrett and I were thinking about how plausible it would be to implement some more useless eye candy into my site.  How about a perspective engine written in Java so we could lob objects at the television set?  Sounds like a project…&lt;/p&gt;
&lt;p&gt;Until next time,&lt;/p&gt;
&lt;p&gt;teejay&lt;/p&gt;
</content:encoded></item><item><title>A few thoughts…</title><link>https://www.teejayvanslyke.com/letters/a-few-thoughts/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/a-few-thoughts/</guid><pubDate>Sun, 09 Oct 2005 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;I was leafing through my book of Buddhist scriptures and found a quote I really admired:&lt;/p&gt;
&lt;blockquote&gt;&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;“As rain breaks through an ill-thatched house, passion will break through an unreflecting mind.”&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;This inspired me to write a few observations I’ve been formulating in my head lately:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;We fear what we do not understand&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Our longevity is arbitrary due to death’s innate inevitability.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Purpose is synthetic; however, this does not invalidate our need to pursue it.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Truth is general belief.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Deceit is the sin from which all sins stem.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
</content:encoded></item><item><title>Welcome to the Fourth Reich - Part 2</title><link>https://www.teejayvanslyke.com/letters/welcome-to-the-fourth-reich-part-2/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/welcome-to-the-fourth-reich-part-2/</guid><pubDate>Wed, 05 Oct 2005 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Your freedom is being undermined.  We live in a time when terrorists run rampant, hoping to take away the freedoms you love dearly.  They do not come in turbans preaching the Quaran; rather, these terrorists played a fun riddle.  They warned you of themselves.&lt;/p&gt;
&lt;p&gt;Today, President Bush &lt;a href=&quot;https://web.archive.org/web/20080416004958/http://edition.cnn.com/2005/POLITICS/10/05/bush.reax/&quot;&gt;pondered the possibility of reworking&lt;/a&gt; the &lt;a href=&quot;https://web.archive.org/web/20080416004958/http://en.wikipedia.org/wiki/Posse_Comitatus_Act&quot;&gt;Posse Comitatus Act&lt;/a&gt; of 1878, the law that effecitvely banned the use of military (specifically the Army at that time, but other branches were added) in policing our own country.  Using the recent bird flu epidemic sweeping Asia combined with his administration’s lackluster performance in quelling the damage from Hurricane Katrina as his two main arguments for what could easily be deemed a request for martial law, he thinks it is an important discussion for Congress to have.&lt;/p&gt;
&lt;p&gt;So let me get this straight.  You want military personnel with weaponry roaming the streets to save us from… bird flu and hurricanes?  Somehow I don’t know how their weapons are going to impact either of these problems.  What about this?  How about we invest in vaccinations?  What about homeless shelters for the unfortunate people that lost their entire lives in New Orleans?&lt;/p&gt;
&lt;p&gt;Well actually, Mr. Bush, from a realist, hardlined stance I guess you’re right.  If we just kill all of the people with bird flu, we can end it just like terrorism!  Fight death with more death, that’s what I would say too.  In fact, drop a few nuclear weapons on America.  That will solve all of our problems… no more fighting because no one will be here to fight.  What do you think of that, &lt;em&gt;terrorists&lt;/em&gt;?&lt;/p&gt;
&lt;p&gt;Psst… America… it’s time to wake up.&lt;/p&gt;
</content:encoded></item><item><title>Forever since an update…</title><link>https://www.teejayvanslyke.com/letters/forever-since-an-update/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/forever-since-an-update/</guid><pubDate>Thu, 29 Sep 2005 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;I’ve been neglecting to make any posts lately due to my very busy schedule.  This semester is proving to be one of great intellectual growth and I’m already realizing it won’t be like past semesters.  I have been hard at work on numerous projects, both for academics and not, and I’d like to fill you in on some of them:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Buzzsaw Haircut&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I’ve been hard at work on redesigning the website for Ithaca’s underground magazine, Buzzsaw Haircut.  You can check out my progress &lt;a href=&quot;https://web.archive.org/web/20080416005744/http://teejayvanslyke.ath.cx/buzzsaw/&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;The Wall&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Yesterday, Felix and I were discussing the possibility of a new kind of Wiki that would be more free-formed and artistic.  We dubbed it &lt;em&gt;The Wall&lt;/em&gt;.  Check out our plans for world domination &lt;a href=&quot;https://web.archive.org/web/20080416005744/http://teejayvanslyke.ath.cx/wiki/index.php/The_Wall&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;That’s all for now.  Hopefully I will make more frequent updates…&lt;/p&gt;
</content:encoded></item><item><title>Here comes the Fall</title><link>https://www.teejayvanslyke.com/letters/here-comes-the-fall/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/here-comes-the-fall/</guid><pubDate>Fri, 12 Aug 2005 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Summer is coming to an end, and it is time to usher in another semester of living and learning.  I feel more attuned to the way of the world and ready to accept the obstacles that may lay in my path in the coming months.  I’ve learned that the problems that arise in life are of our own creation.&lt;/p&gt;
&lt;p&gt;An interesting thought dawned on me the other day:  Life is spent entirely attempting to balance out imbalances.  Everything we do is done to fix a particular problem.  Even my writing this is a result of my lack of self-expression as of late, regardless of whether or not I may think it.  If we realize and accept this truth, mundane tasks become more meaningful and we realize that everything we do contributes equally to our well-being.&lt;/p&gt;
&lt;p&gt;I recently viewed the film &lt;a href=&quot;https://web.archive.org/web/20080416005355/http://www.imdb.com/title/tt0399877/&quot;&gt;What the #$*! Do We (K)now!?&lt;/a&gt; and found it to be a very interesting way of thinking despite its obvious flaws.  Its main thesis is that our emotions are of our own doing.  We are addicted to our own emotions and by accepting that, we are able to control them.&lt;/p&gt;
&lt;p&gt;I wanted to test this theory.  I happened to stub my toe the other day and felt the familiar throbbing pain.  Then I remembered what I had learned and simply cleared my mind; the pain subsided.&lt;/p&gt;
&lt;p&gt;Don’t ever let your emotions tell you right from wrong.  They are an addiction like any other.&lt;/p&gt;
</content:encoded></item><item><title>Open Source Incorporated</title><link>https://www.teejayvanslyke.com/letters/open-source-incorporated/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/open-source-incorporated/</guid><pubDate>Wed, 03 Aug 2005 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Today is a sad day in web browser land.  The &lt;a href=&quot;https://web.archive.org/web/20080416005355/http://www.mozilla.org/&quot;&gt;Mozilla Foundation&lt;/a&gt;, specifically the developers of the Firefox web browser and Thunderbird e-mail client that have been garnering wide respect due to their innovative security and customization features, &lt;a href=&quot;https://web.archive.org/web/20080416005355/http://www.technewsworld.com/story/45194.html&quot;&gt;has decided it will go corporate&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I am in much dismay (or perhaps as much dismay as I can be in over such a situation).  &lt;a href=&quot;https://web.archive.org/web/20080416005355/http://www.getfirefox.com/&quot;&gt;Firefox&lt;/a&gt; has revolutionized the way we browse the web, and although the Mozilla Foundation claims commercializing will do the product good, it will only lead to corruption and might lend itself to the fate of Netscape.&lt;/p&gt;
&lt;p&gt;However, one quote struck me:  “The browser wars are back.”  It will be interesting to see how it all pans out.&lt;/p&gt;
</content:encoded></item><item><title>Emperor Bush and the Landslide of Tyranny</title><link>https://www.teejayvanslyke.com/letters/emperor-bush-and-the-landslide-of-tyranny/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/emperor-bush-and-the-landslide-of-tyranny/</guid><pubDate>Tue, 02 Aug 2005 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Although the slippery slope argument is filled with fallacy, it is impossible to deny its merit in the last two days of news in Washington.  With the &lt;a href=&quot;https://web.archive.org/web/20080416005355/http://seattletimes.nwsource.com/html/politics/2002415579_bolton02.html&quot;&gt;recess appointment&lt;/a&gt; of &lt;a href=&quot;https://web.archive.org/web/20080416005355/http://en.wikipedia.org/wiki/John_R._Bolton&quot;&gt;John Bolton&lt;/a&gt; to the U.N. ambassadorship and the &lt;a href=&quot;https://web.archive.org/web/20080416005355/http://www.bloomberg.com/apps/news?pid=10000086&amp;amp;sid=aVSXc_GdFgM4&amp;amp;refer=latin_america&quot;&gt;signing of&lt;/a&gt; the &lt;a href=&quot;https://web.archive.org/web/20080416005355/http://en.wikipedia.org/wiki/CAFTA&quot;&gt;Central American Free Trade Agreement (CAFTA)&lt;/a&gt;, Bush is flexing his self-granted political muscles in frightening ways.  Despite striking opposition from both sides, our government continues to neglect moral observation in favor of legal loopholes.&lt;/p&gt;
&lt;p&gt;Recess appointments should be used responsibly.  It is doubtful that our founding fathers intended the President of the United States to appoint a man to a high office whose credibility and attitude do not satisfy the will of the people.  Bolton has spoken out against the United Nations on several occasions.  He has claimed that the United States is the only true world power and that it should rule as the sole international governing body.  As a member of the &lt;a href=&quot;https://web.archive.org/web/20080416005355/http://www.newamericancentury.org/&quot;&gt;Project for the New American Century (PNAC)&lt;/a&gt;, the Washington think tank that follows this ideology, is this the man we would like to represent our country in a world-governing body?&lt;/p&gt;
&lt;p&gt;The signing of CAFTA is another step toward globalization and American unipolarity.  By removing tariffs with Central American nations, the United States may falter to further globalization due to a decrease in demand for domestic goods.&lt;/p&gt;
&lt;p&gt;It is scary to think that we live in a country where fewer and fewer goods that contribute to our subsistence are being produced every day.  We are a nation fueled and propelled by information.  We produce very few goods ourselves and for all intents and purposes, we are the CEO’s of the metaphorical corporation that is the rest of the world.  This might be neat or innovative, but I don’t think you can eat information.  Let’s ensure we’ll be able to eat before it’s too late.&lt;/p&gt;
&lt;p&gt;Wake up, America.&lt;/p&gt;
</content:encoded></item><item><title>Adventures into Python</title><link>https://www.teejayvanslyke.com/letters/adventures-into-python/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/adventures-into-python/</guid><pubDate>Wed, 27 Jul 2005 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;The office has been much more forgiving as of late and has given me more opportunities to learn different programming techniques.  I have recently started learning &lt;a href=&quot;https://web.archive.org/web/20080416005735/http://www.wxpython.org/&quot;&gt;wxPython&lt;/a&gt;, a &lt;a href=&quot;https://web.archive.org/web/20080416005735/http://www.python.org/&quot;&gt;Python&lt;/a&gt; GUI library based off &lt;a href=&quot;https://web.archive.org/web/20080416005735/http://www.wxwidgets.org/&quot;&gt;wxWidgets&lt;/a&gt;.  So far it has been an interesting experience and I’m really enjoying developing actual applications rather than mundane VBScript/SQL database web applications.&lt;/p&gt;
&lt;p&gt;I’d like to start developing in Python more now that I’m more familiar with the syntax.  It’s an excellent language once you get past the obscure syntax and can be quite efficient.&lt;/p&gt;
&lt;p&gt;We’ll see what I come up with…&lt;/p&gt;
</content:encoded></item><item><title>Compassion from an old friend</title><link>https://www.teejayvanslyke.com/letters/compassion-from-an-old-friend/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/compassion-from-an-old-friend/</guid><pubDate>Wed, 27 Jul 2005 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;A friend from high school e-mailed me today and offered me some of the most genuinely compassionate blessings I have ever received.  I don’t think anything has ever touched me quite like this did.  It is this compassion and love among humans that will be what saves us.  It is gestures like these that give me hope and show me that despite all of our differences, we are all still one.&lt;/p&gt;
&lt;p&gt;I encourage anyone who reads this to say hello to someone you haven’t seen in awhile.  Even the smallest gesture can go a long way.&lt;/p&gt;
&lt;p&gt;Spread love and eliminate fear.&lt;/p&gt;
</content:encoded></item><item><title>Part 4: Pentium III laptop for $35? Why, I&apos;ll take it.</title><link>https://www.teejayvanslyke.com/letters/part-4-pentium-iii-laptop-for-35-why-ia-ll-take-it/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/part-4-pentium-iii-laptop-for-35-why-ia-ll-take-it/</guid><pubDate>Tue, 26 Jul 2005 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Tonight I compiled the 2.6.7 kernel for my new baby.  This way I have better ALSA support and the like.  It’s amazing how much more you know about your computer when you actually configure everything yourself.  Although, now my other machine is having issues of its own…&lt;/p&gt;
&lt;p&gt;For some reason I came home tonight to find my PC with both its drive lights on and no display.  I restarted the machine and it resumed this state.  I have no idea what it could be — perhaps some sort of power supply problem.  Nonetheless, it’s really irritating.&lt;/p&gt;
&lt;p&gt;In other news, at work I’ve started developing an application in Python that keeps track of employees’ metrics.  I’m developing it using the wxPython library and the Python ODBC library to access an MS Access database.  So far it’s just a suite of database functions and some crude UI, but hopefully development will speed up.&lt;/p&gt;
&lt;p&gt;Anyway, until next time… peace.&lt;/p&gt;
</content:encoded></item><item><title>Part 3: Pentium III laptop for $35? Why, I&apos;ll take it.</title><link>https://www.teejayvanslyke.com/letters/part-3-pentium-iii-laptop-for-35-why-ia-ll-take-it/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/part-3-pentium-iii-laptop-for-35-why-ia-ll-take-it/</guid><pubDate>Wed, 20 Jul 2005 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;em&gt;phew&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;So I finally got Slackware running on my new laptop, which I have lovingly named Rogue.  I got my wireless card working (the Netgear WG511v2 which runs on the Marvell chipset, not the Prism chipset as I thought) using &lt;a href=&quot;https://web.archive.org/web/20080416005735/http://ndiswrapper.sourceforge.net/&quot;&gt;ndiswrapper&lt;/a&gt;, a brilliant driver wrapper that allows Linux to use Windows drivers.&lt;/p&gt;
&lt;p&gt;Now I’m just hoping nothing else goes horribly wrong.  I decided to start using GNOME to keep my sanity for now; perhaps I’ll want to go insane later.&lt;/p&gt;
</content:encoded></item><item><title>Update: Pentium III laptop for $35? Why, I&apos;ll take it.</title><link>https://www.teejayvanslyke.com/letters/update-pentium-iii-laptop-for-35-why-ia-ll-take-it/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/update-pentium-iii-laptop-for-35-why-ia-ll-take-it/</guid><pubDate>Tue, 19 Jul 2005 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;So I went to Best Buy and picked up a new Netgear wireless ethernet card.  It looked like it would do the job using the &lt;a href=&quot;https://web.archive.org/web/20080416005735/http://www.prism54.org/&quot;&gt;Prism54&lt;/a&gt; drivers which are designed for this chipset.  However, installing the card has involved much more than I was willing to get into.  Or so I thought…&lt;/p&gt;
&lt;p&gt;First I put the card in and checked to see if it auto-configured miraculously.  Of course this wasn’t the case, but it was worth a shot.  I started looking around for help and saw I needed the &lt;a href=&quot;https://web.archive.org/web/20080416005735/http://www.prism54.org/&quot;&gt;Prism54&lt;/a&gt; drivers as stated above.  Attempting to install those then yielded an error saying I didn’t have an option in my kernel set correctly (evidently some sort of firmware loading option).  I sighed heavily, but wasn’t going to make a big deal out of recompiling my kernel.  “I’ll get to know the machine better.”  Right.  Anyway, I try to find the option in my kernel configuration and there doesn’t appear to be such an option.  Oh good.&lt;/p&gt;
&lt;p&gt;Time to install a 2.6 kernel.  “I was going to do that anyway.”  &lt;em&gt;Right.&lt;/em&gt;  I started filling out the configuration when I realized this was a lost cause because I was simply lowering my chances by configuring my own kernel and not paying much attention to detail.&lt;/p&gt;
&lt;p&gt;So now I’m reinstalling Slackware so I don’t have to deal with my mistakes and crossing my fingers.  Stay tuned for part 3.&lt;/p&gt;
</content:encoded></item><item><title>Pentium III laptop for $35?  Why, I’ll take it.</title><link>https://www.teejayvanslyke.com/letters/pentium-iii-laptop-for-35-why-i-ll-take-it/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/pentium-iii-laptop-for-35-why-i-ll-take-it/</guid><pubDate>Mon, 18 Jul 2005 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;It seems that my lowly stagnance in cubicledom comes with perks!  After contemplating buying a notebook for quite some time and never giving in, my calling was answered.  I have it up and running &lt;a href=&quot;https://web.archive.org/web/20080416005735/http://www.slackware.com/&quot;&gt;Slackware&lt;/a&gt; 10.1 with &lt;a href=&quot;https://web.archive.org/web/20080416005735/http://www.fluxbox.org/&quot;&gt;Fluxbox&lt;/a&gt; and all of the fixin’s.  Here are le specs:&lt;/p&gt;
&lt;blockquote&gt;&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;Dell Latitude&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;Pentium III 1 GHz&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;512 MB RAM&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;14.1&quot; monitor (1024×768)&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;30 GB HD&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;I don’t fancy Dells, but there’s a Dell, and then there’s a Dell for $35.&lt;/p&gt;
</content:encoded></item><item><title>Summer</title><link>https://www.teejayvanslyke.com/letters/summer/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/summer/</guid><pubDate>Tue, 12 Jul 2005 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;This summer has proven to be one of great spiritual and mental growth.  I feel like I am finally discovering what being human is all about.  I have embraced religion — something I thought I had left in the dust of my Catholic childhood.  I have realized the roots of human conflict and am better able to separate my feelings from the truth.  Patterns are emerging — perhaps not patterns explicable by mathematical means — but the patterns that shape and evolve people.&lt;/p&gt;
&lt;p&gt;One theme of the summer has been tolerance.  I have recognized the merits of diversity — not only among different creeds and ethnicities — but in all facets of life.&lt;/p&gt;
&lt;p&gt;As a result, I am more confident and secure with myself.  The problems of our lives are all created within ourselves — anxieties manifest inside our minds, and therefore we can control them.  That is not to say that we should ignore life’s difficulties, but that we should identify the roots of our problems and change our behavior appropriately.&lt;/p&gt;
&lt;p&gt;My parents always told me that I could be whatever I wanted if I put my mind to it.  I’m not sure if they were eluding to the above philosophy, but their words still hold true.&lt;/p&gt;
</content:encoded></item><item><title>Inspiration Inside a Tibetan Monastery</title><link>https://www.teejayvanslyke.com/letters/inspiration-inside-a-tibetan-monastery/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/inspiration-inside-a-tibetan-monastery/</guid><pubDate>Mon, 11 Jul 2005 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Today I visited the Tibetan monastery downtown for their meditation and prayer session.  It was a very enlightening and uplifting experience.  I felt things inside me I have never felt — or perhaps it was that I stumbled upon parts of my being I never knew were there.  No one can deny the mystical energy that flows through our inner selves — and no one can explain it.  We look for answers to questions regarding a higher order and create those answers based on what these energies tell us — but the explanations are arbitrary.  It is the undeniable fact that we are a part of an immense system of emotion that causes prophecy, spirituality, and theocracy.  The names, places, dates, etc, are there to allow those who have not directly felt — or directly known such energy to be able to conceptualize it.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;THESIS&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;All belief systems, including religion, myth, science, and philosophy, stem from the desire to explain the inexplicable energy that comprises the universe.  However, by accepting the undeniable bonds that we observe, we are able to harness those energies.&lt;/p&gt;
</content:encoded></item><item><title>My Journey Into Awareness — Buddhism as a Way of Life</title><link>https://www.teejayvanslyke.com/letters/my-journey-into-awareness-buddhism-as-a-way-of-life/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/my-journey-into-awareness-buddhism-as-a-way-of-life/</guid><pubDate>Sat, 09 Jul 2005 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;I have finally found a faith I can live by!  Buddhism has literally changed my life in the last week alone.  I am so enthused by a religion with no worship — only meditation.  A religion that I may practice as I please — in which awareness and living supercede belief and fear.  I have never felt so alive in my life.&lt;/p&gt;
&lt;p&gt;Upon appreciating the moment for what it is rather than what it could be, a blanket of fears is lifted away and one realizes the true meaning of existence:  to live the joy of existence itself.  Filling the voids of one’s life only manifests more problems; simply accept these voids and jump over them.  Realize that the universe is the way it is and that there is no particular reason for it.  Even if we knew all the answers to life’s questions, would we be more fulfilled?  Would we even be able to accept them as the last thread of the unknown, or would we become so terribly bored without the aspiration to know the unknown?&lt;/p&gt;
&lt;p&gt;For instance, if God does exist and he is the true creator of the universe, then how did s/he get here?  We cannot imagine a world with boundaries yet we cannot conceptualize a world without them.  If the universe has an end, what’s on the other side?  Likewise if the universe is infinite, how could we ever prove it before we die?&lt;/p&gt;
&lt;p&gt;I am finally conceding to the one thing that held me back — curiousity is integral to an enjoyable life.  Without chance, problems, and chaos, life loses all excitement.  I would rather be confused and in danger than retain complete knowledge and security.  What would be the reason for living?&lt;/p&gt;
</content:encoded></item><item><title>Welcome to the Fourth Reich</title><link>https://www.teejayvanslyke.com/letters/welcome-to-the-fourth-reich/</link><guid isPermaLink="true">https://www.teejayvanslyke.com/letters/welcome-to-the-fourth-reich/</guid><pubDate>Thu, 30 Jun 2005 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Evidence of America Becoming A Police State&lt;/p&gt;
&lt;p&gt;The following is a list of measures taken recently by the American government projected to protect American interests.  However, these measures bear striking resemblance to measures taken by past tyrannical regimes.  I have included their potential purpose in what could be a grave threat to our democracy.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;The New Freedom Commission&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Projection:  	To improve the mental health of our citizens&lt;/p&gt;
&lt;p&gt;Purpose:  	To reduce citizen awareness through mass use of&lt;/p&gt;
&lt;p&gt;prescription drugs (see Aldous Huxley, Brave New World)&lt;/p&gt;
&lt;p&gt;Historical Equivalents:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;USA PATRIOT Act&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Projection:  	To protect the American people from eminent threats through increased intelligence&lt;/p&gt;
&lt;p&gt;Purpose:  	To deny chief rights to citizens to maintain order at the cost of liberty&lt;/p&gt;
&lt;p&gt;Historical Equivalents:  Reichstag Fire Decree in Nazi Germany&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;The War on Terror&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Projection: 	To protect the American people from another dastardly attack by taking preventative military action&lt;/p&gt;
&lt;p&gt;Purpose:  	A justification for global cultural imperialism and ultimately world rule&lt;/p&gt;
&lt;p&gt;Historical Equivalents:  Salem Witch Trials (metaphorical)&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;National Security Service&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Projection: 	An elite spy agency that will combat domestic terrorism by centralizing domestic security.&lt;/p&gt;
&lt;p&gt;Purpose:  	To create what will become a fascist police force akin to the Thought Police (see George Orwell, 1984)&lt;/p&gt;
&lt;p&gt;Historical Equivalents:  Gestapo in Nazi Germany&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Tax Cuts (EGTRRA, JCWA, JGTRRA)&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Projection:  By cutting taxes on higher-class American citizens, the economy will flourish due to increased spending.&lt;/p&gt;
&lt;p&gt;Purpose:  To weaken the lower classâs economic power in a world where capital provides political power, thereby undermining the political power of the proletariat.&lt;/p&gt;
&lt;p&gt;Stay tuned for further development of this thesis.&lt;/p&gt;
</content:encoded></item></channel></rss>