Raam Dev

Hello, future.

We're not lab rats, damnit. We're humans!

Are you a dreamer? Do you frequently find yourself gazing off into the distance getting lost in a world of "What If"?

Back to work. You can't daydream forever.

But what if you could? What if you had the freedom to daydream when you felt like daydreaming? To work when you felt like working?

Humans aren't supposed to spend their days in office buildings. We're not supposed to spend large amounts of time moving ourselves from one place to another in giant hunks of metal while our bodies slowly deteriorate and our relationships slowly fade.

We're not supposed to spend gargantuan amounts of time plopped down in front of electronic devices moving our fingers and eyelids, absorbing radiation, and spending more waking time in the virtual world than in the real one.

We not supposed to arrive at home and focus our attention on a box that has been pre-programmed to brainwash us while simultaneously allowing our bodies to atrophy. Continue reading

One Year Without Black Coffee

I love coffee.

I drink it black. No cream. No sugar. Ever.

It has been extremely tough to quit but today marks the one year anniversary since I went cold turkey on black coffee.

One year ago today, I stopped drinking it. Not caffeine, but black coffee. I didn't eliminate caffeine -- that wasn't the goal -- just black coffee. I still allowed myself expresso as long as it was diluted in something other than water. (Since I'm vegan, that only left soy milk.)

At first I switched to tea. Then I experimented with soy lattes (an espresso diluted in steamed soy milk). Eventually, I removed all sources of high caffeine.

Now I drink water, tea, and the occasional Earl Grey Soy Misto (Earl Grey tea with steamed soy milk).

I no longer wake up in the morning feeling the need to power myself by ingesting a foreign substance. Continue reading

Capturing Moments of Passionate Inspiration to Produce your Best Writing

What is "passionate inspiration"?

Passionate inspiration occurs when you feel so inspired by something that you become engulfed with passion.

It might be triggered by a random blog post or comment that you read. It could be a conversation with a friend or an unexpected exchange with a stranger.

Whatever triggers it, you usually know when it happens. You suddenly feel a spark of inspiration followed by a flood of enthusiasm. A stream of ideas quickly turns into a river and before you know it you can’t keep up!

It doesn't matter what type of writing you do -- perhaps you're a novelist, a journalist, a poet, or a programmer -- this experience is universal among writers. If you’re a blogger, this flood of ideas -- this flood of inspiration, is something you know would make for good blog post. It's something you’d love to magically see go from brain to blog. Continue reading

What does it mean to be successful?

Success isn't something you can frame on the wall. It's not something that you can attain once and then discard as having accomplished it. It's not a level of achievement or an objective. It's not a social status or the amount of money in the bank. It's not how many languages I can speak or how many businesses I have founded.

For me, success means two things occurring simultaneously in the present moment:

  1. Doing everything that's possible to work towards my goals
  2. Being happy

If we're happy in the present moment, we are successful.

If we're doing everything that's possible in the present moment to move towards our goals, we are successful.

The goal I'm working towards in the present moment might be as simple as "getting ready for the day" or "making breakfast". It might be "finishing a blog post" or even "pumping gas so I can get to work".

Whatever my goal is in the present moment, if I'm accomplishing everything necessary to reach that goal and my mind is happy and at peace, then I feel successful.

To be successful we need to break free from the idea that success is a mountain that must be ascended. We must realize that success is what we make it. If we choose to make success unattainable, then it will be unattainable. If we choose to realize that nothing can stop us from reaching our goals, no matter how far-fetched, then we have already succeeded.

Success is being able to manage our mind under all circumstances.

The day that I considered myself to be successful was the day I decided that nothing was going to stop me from achieving the craziest of my goals. - Earl Baron

But what if you don't have any goals? In that case your goal should be to free yourself of anything that might be preventing you from discovering your purpose -- from discovering the life you want to live.

If you're content just living, just being, that's a goal too. Striving for freedom from pain and ignorance is an excellent way to live.

Success is the complete eradication of ego, because ego is the only thing that stands in the way of my absolute freedom from pain and ignorance. - Jai Dev

Success is a frame of mind and a way of thinking. It's not a destination or an objective.

Success is knowing what's possible, not just believing in it.

Success is purposeful action in motion.

What does success mean to you? What does it mean to be successful?

This post is part of a unique project organized by my buddy Jonny from TheLifeThing.com to put together a free ebook about success. Jonny asked 30 bloggers, including myself, for their personal definitions of success and how they achieve it. He then requested that we write a blog post about success to announce the free book and create a flood of inspiration around the topic. This book is totally free and full of inspirational perspectives on success. Download The SUCCESS eBook.

Find the Courage to Be Yourself

Be yourself.

It’s not impossible, but it takes courage. It takes courage to be and to think differently. But the act of being and thinking differently is only different to those looking at you from the outside.

If you make up your mind that you're fully in control of your destiny -- if you decide to choose what you want to believe in -- then you're not being different. You're being you.

Recognize that those who say you're crazy, or those who try to stop you from being or thinking differently, are only confronting their own demons; they're trying to reaffirm their own beliefs.

If others give you advice, listen. If they tell you what you should or should not do, listen. But decide for yourself. Believe in yourself. Be yourself. Continue reading

Site Update: A New Theme

Writing about changes to my site theme feels a lot like writing a big "I don't have anything better to talk about" message; it feels like running around telling everybody about my fantastic idea to get rich without having anything to show for it. The truth of the matter is, all the talk in the world means nothing without action. I'll make this brief.

The site update is part of the rebranding I'm working on and it's meant to simplify my writing outlet. The new theme (a modified version of Cleanr) has larger fonts and less clutter.

There is something very motivating about writing a blog post with large font; it makes me feel as though I'd better get to the point and not putz around. It also encourages me to improve my writing. I'm all for getting to the point, so I really like the effect of this new theme. Continue reading

Moving WordPress to a New URL and New Permalink Structure

When I decided to change the permalink structure and move my WordPress blog from raamdev.com to raamdev.com/blog/, I knew it was going to be a delicate process. I have over a thousand posts, more than three hundred of which have been indexed by Google. A huge portion of my traffic comes from Google, so my biggest concern was that the old URLs redirect to the new location.

Step 1: Disable plugins

It's a good idea to disable your plugins before making these changes. At the very least, if you have a caching plugin installed (such as WP Super Cache), delete the cache and then disable that plugin.

Step 2: Change the blog URL

First, I had to change the WordPress blog URL from raamdev.com to raamdev.com/blog/. This is simply a matter of updating the "WordPress address" and "Blog address" options from within the WordPress Administration panel (Settings -> General).

Second, I wanted the final URL to be raamdev.com/, instead of raamdev.com/blog/. To do this, I first changed the "Blog address" to raamdev.com/. Now to get WordPress working on the web root (raamdev.com/), I had to move /blog/index.php to the web root (/index.php) and then edit index.php and change this line,

require('./wp-blog-header.php');

to this,

require('./blog/wp-blog-header.php');

Now, when index.php is loaded, it knows to look for all the WordPress files in /blog/ and since WordPress has been configured to use raamdev.com/ as the "Blog address", it will automatically handle everything else.

Step 3: Redirect old URLs to the new URL

The blog. sub-domain maps to a directory in the web root called /blog/. If someone visits a link to a page that includes the sub-domain, the web server needs to tell the browser the new location. To do this, I needed to recreate the /blog/ directory and add the following to an .htaccess file:

Options +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTP_HOST} ^raamdev.com$ [NC]
RewriteRule ^(.*)$ https://raamdev.com/wordpress/blog/$1 [R=301,L]

Now, if someone tries to visit https://raamdev.com/2010/01/28/some-blog-post, the web server will do a 301 redirect to https://raamdev.com/wordpress/blog/2010/01/28/some-blog-post.

What's a 301 redirect? Well, when you move a web page from one location to another, you can specify the type of redirection. A 301 redirect means the web page has been moved permanently. This is useful for keeping indexes updated. For example, if someone searches Google and finds an old link, Google will detect the 301 redirect and update its index with the new URL, thereby keeping your URL's page rank.

Step 4: Change Permalink structure

To change the permalink structure, I used the awesome Permalink Migration plugin by Dean Lee. With this plugin, I just specify the old permalink structure (in my case, this was /%year%/%monthnum%/%postname%/) and then change the permalink structure in WordPress (Settings -> Permalinks) to the new format (I'm using /%postname%/).

Now whenever someone visits a URL using the old permalink structure, Dean's plugin sends a 301 redirect to the new URL.

Summary

With the .htaccess rewrite rule and Dean's Permalink Migration plugin, we now have a double 301 redirect to make sure the old URLs redirect to the new ones:

  1. Someone searches Google and finds this link to my site: https://raamdev.com/2010/01/28/some-blog-post
  2. The .htaccess rule rewrites the URL and redirects: https://raamdev.com/wordpress/blog/2010/01/28/some-blog-post
  3. Dean's Permalink Migration plugin redirects to the new permalink structure: https://raamdev.com/wordpress/blog/some-blog-post

Searching For My Blogging Focus

This isn't a post about my currently-in-progress lifestyle transition. It could be, but it isn't.

This is a post about how I'm making decisions to reorganize my online presence. One of my goals for this year is to revamp this website and turn it into what personal branding gurus like to call my "home base".

Over the next few years, I will be doing a lot more writing and networking as I travel around the world with only the stuff on my back (there I go; talking about my lifestyle transition again) and I've been trying to decide where I should blog about all this stuff: here on raamdev.com or somewhere else -- an entirely new blog. Continue reading

What the hell am I doing?

Today marks the first day in ten years that I am without my own place. When I moved out of my parents house at the age of 17, my dreams of traveling the world and living a nomadic lifestyle were quickly confronted by real-world challenges.

Eight apartments, three houses, five jobs, seven cars, and one bankruptcy later and now I'm back to owning almost nothing, with plenty of real-world mistakes under my belt. However, thanks to my unwavering stubbornness I never lost sight of those dreams; I never gave up believing they were possible. I always knew it was not a matter of "if" but a matter of "when".

I knew this point in my life would come eventually, but I never took the initiative to decide when things would start changing. Now, after taking those first steps early last month, I'm on track to becoming a nomadic world traveler and living my lifelong dream. Continue reading

An Invitation to Follow my Lifestyle Transition

Traveling the world and exploring new places and new cultures has been a lifelong dream of mine. As a teenager, I fantasized about trekking through the jungles of South America and island hopping in the South Pacific. I dreamt of sailing on the ocean for weeks or months at a time, only returning to shore for supplies.

Now, a few months shy of my 28th birthday, I’m in the process of transitioning to that nomadic, location independent lifestyle that I have always dreamed of. I’m setting down my foot (actually, quite the opposite), taking action, and creating my dreams, rather than sitting back and waiting for them to happen (because if I do that, they probably never will). Continue reading

Mac OS X: Replicating md5sum Output Format

The md5sum program is used to calculate and verify 128-bit MD5 hashes. This program is installed by default in most Unix, Linux, and Unix-like operating systems including BSD. Mac OS X is a BSD variant and it also includes the md5sum program. However, the program is called md5 instead of md5sum and outputs an MD5 checksum in a different format than the standard md5sum program.

Here's what the standard md5sum output looks like:

$ md5sum test.txt
d0ea20794ab78114230ba1ab167a22c2 test.txt

Now here's what the output of md5 on Mac OS X looks like:

$ md5 test.txt
MD5 (test.txt) = d0ea20794ab78114230ba1ab167a22c2

While this normally wouldn't be a big deal, it can cause major issues if you're trying to run scripts that were written for a Unix-like environment which expect the default md5sum format.

Thankfully, md5 has a switch that reverses the output:

$ md5 -r test.txt
d0ea20794ab78114230ba1ab167a22c2 test.txt

If you'd like to permanently change md5's behavior to mimic that of md5sum, you have two options:

The first is to simply add the following alias to ~/.profile:

alias md5sum='md5 -r'

Now when you type 'md5sum test.txt', the command will be replaced with 'md5 -r test.txt'. However, this may not work with your scripts.

The second solution, and my preferred method, is to create a small script called md5sum that contains the following:

#!/bin/bash
/sbin/md5 -r "$@"

I then make this script executable (chmod +x md5sum) and put it in /sbin/. Now, whenever a script calls md5sum, the small bash script above is used and it produces output identical to that of md5sum on other Unix systems.

Consulting Maxims to Live By

A while back I stumbled across Steve Friedl's awesomely informative article, "So you want to be a consultant...?" -- it was so good that I read the entire page in one sitting (my ass was sore afterwards, but it was worth it!).

Having done consulting and freelance work on and off for most of my working career, Steve's article was of particular interest to me. I was surprised by how many of Steve's points I had discovered by accident over the years and I really wished I had such a resource to guide me years ago.

With Steve's permission, I have compiled a list of all the "Consulting Maxims" he lists throughout his article. Anyone who does consulting, or for that matter freelance or contract work, should read Steve's article and integrate these points into their life.
Continue reading

PHP Session Permission Denied Errors with Sub-Domains and IE7 or IE8

I encountered a strange problem with IE7 and IE8 where if I visited `example.com` first and then visited `sub-domain.example.com`, Apache would return Permission Denied errors errors when trying to access the PHP session files for `sub-domain.example.com`.

After some investigation, it appears this is a problem with the way IE7 and IE8 request session data from Apache, or possibly because IE7 and IE8 have a non-standard way of announcing the domain they're requesting session data for.

Here's my scenario:

I'm running Apache 1.3 with two domains, each has their own account with their own users:

    Domain: mycompany.com
    Session path: /tmp/
    Webserver user: mycompanycom

    Domain: support.mycompany.com
    Session path: /tmp/
    Webserver user: nobody

Here is what happens during a normal visit with Firefox/Safari/Chrome:

  1. I visit `mycompany.com` and session file is created in /tmp/ owned by the user mycompanycom
  2. I then visit `support.mycompany.com`, and second session file is created in /tmp/ owned by user nobody
  3. Apache doesn't get confused and the correct session files are returned

However, here's what happens during a visit with IE7 and IE8:

  1. I visit `mycompany.com` and a session file is created in /tmp/ owned by the user mycompanycom
  2. I then visit `support.mycompany.com` and, instead of creating second session file in /tmp/ owned by the user nobody as you would expect (and as happens when using Firefox/Safari/Chrome), Apache tries to return the session file for mycompany.com.
  3. The session file for `mycompany.com` is owned by the user mycompanycom, so the web server, running as user nobody cannot access it. Permission is denied.

I searched Google for a solution and came across this question on StackOverflow. Several users suggested creating a separate directory in /tmp/ to separate the stored session data for `support.mycompany.com` from the session data for `mycompany.com` and then telling PHP to store all session data for `support.mycompany.com` in the new directory. This worked perfectly!

Here's what I did. First, create the new session directory (Note: Make sure the new directory resides inside /tmp/!):

    mkdir /tmp/support.mycompany.com
    chown nobody:nobody /tmp/support.mycompany.com

I then added the following to an .htaccess file in the root web directory for `support.mycompany.com`:

    php_value session.save_path '/tmp/support.mycompany.com'

And finally, I removed all existing session data in /tmp/ to ensure the new session path would get used immediately:

    rm -f /tmp/sess_*

And that's it! Now IE7 and IE8 work properly because when visiting `support.mycompany.com`, IE7 and IE8 do not accidentally find session data for `mycompany.com` and try to use it.

I'm fairly certain this problem has to do with how IE7 and IE8 request session data from Apache. They probably first request session data for `mycompany.com` and THEN request session data for `support.mycompany.com`, even though the latter was the only doman entered in the address bar.

Goals for 2010

For the past few years I have compiled a list of "New Year's Resolutions" to work towards. While there is nothing wrong with having resolutions and working towards them, I feel that I'm outgrowing them. A resolution is defined as "a firm decision to do or not to do something" whereas a goal is "an aim or desired result". Having an aim and achieving a specific result is becoming more and more important to me than just checking things off a list.

This year I'm taking "resolutions" to the next level. Borrowing a system from Chris Guillebeau, I've defined several goals by category -- Lifestyle, Health, Learning, Writing, Blogging, Financial, Travel, and Business -- and, using a spreadsheet, I will keep track of progress throughout the year.

What follows are several (but not all) categories from my annual review spreadsheet. I intend to review all of the goals in each category at the end of each quarter (April 1st, July 1st, October 1st). This will allow me to see which goals I need to reevaluate and which I need to focus more on to make progress.
Continue reading

Year in Review: 2009

This year has been one of self-discovery and of asking myself what I should do next with my life. It has been one of learning and big decisions.

I discovered the importance of nose breathing, went cold-turkey on black coffee (more than 11 months now!), started studying the Navy SEALs (an unrelenting source of physical motivation), took a firearms course.

I discovered some incredible bloggers who have inspired me more than words can describe and whose tweets from various exotic places continue to inspire and motivate me. Most notable are Sid (connected through HN), Amber (connected through Sid), and Colin (connected through Amber’s blog comments). Amber and Colin’s dramatic transition to a nomadic lifestyle motivated and inspired my decision to take the steps necessary to make my own nomadic lifestyle transition a reality.
Continue reading

Best Posts of 2009

As the year wraps up, I look back through the archives and pull out what I consider to be my best writing for the year. The purpose of this "Best of 2009" list isn't to showcase the most popular posts, but rather my personal favorites, generally based on creativity and the quality of writing. If you have any favorites that you think should be on this list, I'd love to know about them!
Continue reading

Book Review: The Four Agreements by Don Miguel Ruiz

The Four Agreements: A Practical Guide to Personal Freedom, A Toltec Wisdom Book by Don Miguel Ruiz, is a book about letting go of false identification. It's about realizing that the life we're living is nothing more than a dream -- a dream that we have full control over but often fail to take action and do something with.

Don Ruiz, a Toltec nagual guide, uses the wisdom of his ancestors to help us understand how each and every one of us has the power within ourselves to take control of life and experience the happiness we all possess within ourselves. Don explains how to rewire our belief system so that we can create a new world for ourselves -- a new perspective of the world around us and of ourselves.
Continue reading

Completing Last-Minute 2009 Resolutions

One of my 2009 resolutions was to read one book every month -- twelve books total. I've read less than half that number so far and there are less than five days left in the year. I've been doing my best to catch up over the past few weeks but now that I have some extra free holiday time, I feel confident I can make some solid progress. One thing I find really helpful after reading a book is to write a review, so I'll be posting a couple of reviews over the next few days.

I've also been working hard to reach one of my other goals: 80 pushups in 2 minutes. Earlier this month I started doing a minimum of one hundred pushups every day, first in five sets of twenty, then four sets of twenty-five, then three sets of thirty-five, and now two sets of fifty. It will be tough, but I'm fairly confident I'll be able to do eighty pushups in two minutes before the year is over.

What 2009 resolutions have you missed this year? Are you doing anything to try and meet them before the year is over?

279 Days to Overnight Success by Chris Guillebeau

One of the bloggers I've been following for the past few months is Chris Guillebeau. Among other things, he writes about personal development, lifestyle design, entrepreneurship, and international travel on his blog, The Art of Non-Conformity.

I just finished reading one of his free eBooks, 279 Days to Overnight Success, where he writes about how he created a career in social media for himself in less than a year.

Since I'm starting to develop my personal brand, start a career in social media, and become a digital nomad, such information is absurdly useful and interesting to me. I strongly believe in learning from the experiences of others and I am immensely grateful that Chris has shared such valuable information free of charge. (Thanks Chris!)

While reading the book, I compiled a collection of quotes and sentences that stood out the most for me so that I may share them here with you. If you're getting into blogging, or even if you've been blogging for quite some time, 279 Days to Overnight Success is definitely worth checking out! (I mean come'on, it's free!)
Continue reading

The Passing of my Grandfather

My grandfather passed away in his sleep last Thursday at the age of seventy.

I clearly remember the very last time I saw him. It was three weeks prior to his passing. He shook my hand, as he always did, and asked how I was doing. I only saw him for a brief moment but now that moment is burned into my memory.

The days following his passing were noticeably, and understandably, tough on my mom, grandma, and my aunts and uncles. It was the first time I had seen many of my relatives cry. I was so impressed by my grandmothers strength. At one point, when she started crying into my shoulder, she held back and said "look at me, crying like a little child".

In life, choose happiness. Reserve your sadness for the afterlife.

A strange feeling arises every now and then when I realize he's gone. For that brief moment, it doesn't feel real. Everything, from the wake to the funeral, felt surreal. I couldn't help but contemplate how one day, myself and all the people present will meet the same fate. Life felt animated, a picturesque moment in a film without a known duration. Thirty years? Ten years? Five months? Three weeks? Six days? One hour?

My other grandfather, on my dad's side, died when I was about nine years old. I remember going to his wake and being surrounded by people in black suits towering over me, mourning for a reason I didn't understand and obviously feeling something I didn't feel. I really didn't know him that well and my only other memory of him is of when we visited him in the hospital.

You never know what moment may be the very last you'll see someone, so it's important to treat every moment as if it were your, or their, last. Living that way makes you appreciate every moment of life, regardless of the situation. When we take life for granted we forget who we really are and how much those we love mean to us.

Death gives us the ultimate reason to celebrate life.

A little over a week ago I wrote about how every single one of us will die one day and why that means we should all choose happiness and growth in life.

Almost every day I remind myself of this fact and each time I do I seem to appreciate life a little bit more. It reminds me that I have no reason to be unhappy; no reason to be angry; no reason to be frustrated; no reason to be unmotivated. It pushes me to take action and do the things I've always wanted to do. It reminds me to appreciate family, friends, and most of all, myself. It reminds me that, as my Uncle Dan always says, "your health is your wealth" and that all the money and fame in the world is pointless if I don't have my health.

"Your health is your wealth."

Take care of your health.