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.

Restricted Growth: The Butterfly in a Kevlar Cocoon

Up until recently, the volume of information that I have had to deal with has been manageable and I haven't felt as though anything was interfering with my growth. However, that’s beginning to change.

As the volume of information I consume increases, the volume of stuff I want to get out -- ideas, things I want to learn, stuff I want to create or share -- seems to increase exponentially. Trying to manage this torrent of stuff, both incoming and outgoing, on a day-to-day basis leaves my head feeling cloudy and disorganized — just thinking about it is overwhelming.

I'm beginning to recognize certain aspects of my life that are growing out of control and some that need obvious improvement.
Continue reading

How I Revamped My Web Hosting Business

During the past two months or so, I’ve pushed really hard to finish a project that I’ve been “working on” for the past year. The project was to rename, streamline, and solidify my web hosting business. This included registering the business as a trade name with the state, opening a business bank account, opening a post office box, designing a new website, and setting up and integrating the billing system into the website.

The hosting business originally started as a side-project — something I set up to host my own websites and those of friends and colleagues. I hadn’t anticipated the business growing and not putting much thought into setting it up properly from the start was a mistake.

As the number of hosting clients grew, I found it increasingly difficult to keep track of account balances, payments, contact information, account statuses, etc. I realized that I needed something that would automatically generate invoices and send them out, accept payments through my website, and handle new account signups.

I researched various billing systems and eventually settled with WHM.AutoPilot: It was relatively inexpensive and appeared to have everything I needed. However, after adding all my clients and reconciling the accounts, I struggled to get the system working just the way I wanted. There were many bugs and newer versions weren’t being released in a timely manner. It felt as though the billing software just made things more complicated rather than improving them.

All the while, my hosting business continued to grow. Despite bad accounting and being very unorganized, clients were continuing to roll in by word-of-mouth advertising. Every time a new client would sign up, I felt embarrassed that I didn’t have something more professional to present to them. I was beginning to dislike the thought of setting up new accounts!

That’s when I realized I really needed to streamline everything and make growth less of a burden. (Growth should be easy, not something you dread!) So almost exactly a year ago, I decided to change the name of the business to ActualWebSpace, open a bank account so clients could make checks payable to the business instead of my personal name, and get everything set up properly once and for all.

After researching billing systems once again, I decided on and purchased WHMCS. The developers seemed more “on top of things” and the community around the software appeared very active. It used a very simple PHP templating system that would make integrating the billing system into the website very simple.

So that I could offer domain registration and SSL certificates, I signed up for an eNom reseller account. WHMCS included full integration with eNom, so automating domains and SSL certificates was easy.

For the website, I decided to use WordPress as a back-end and design a WordPress theme from scratch. It was both the first time I had set up WordPress as a CMS and the first time I had designed a WordPress theme from scratch. While it extended the amount of time it took the launch the site, it was an invaluable learning experience.

Setting up the website was probably the most difficult part of the entire process for me. I’m a perfectionist and it’s difficult for me to create something and be happy with it. But, after much persistence, I discovered ways of getting out of my perfectionist state of mind and I made enormous progress in the past few weeks.

I launched the new website for ActualWebSpace yesterday. It has been almost a year in the making and it feels great to finally follow through with a project to the end. I’m going to use the lessons I learned to start, and finish, my next project (still deciding what that will be).

The biggest lesson I learned from this year-long project: When starting any kind of venture that has the potential to grow, set things up properly from the beginning. Plan for and anticipate growth instead of waiting until the growth begins to happen.

Removing the GMail "On Behalf Of" Sender Header

Like many of you, I have several email accounts and while using GMail as my primary email client would be nice, one of the things that has kept me from doing so is the annoying "On Behalf Of" that the GMail SMTP servers add to outgoing email. Some of the accounts are work related and the "On Behalf Of" comes across to me as unprofessional.

GMail On Behalf Of

That "On Behalf Of" part is caused by the Sender: header that GMail's SMTP servers add:

Sender: [email protected]
Date: Sun, 13 Dec 2009 10:33:18 -0500
Subject: Re: Project Details
From: [email protected]
To: [email protected]

Having your personal GMail address show up looks totally unprofessional and prevents you from being able to keep your personal email, uh, well, personal. Unfortunately, Google has already said it's part of their SMTP server specs, so they won't change it.

For a long time, your only option was to use a desktop email client like Outlook or Thunderbird to send email using your own domain's SMTP server. However, this meant accessing your GMail account using IMAP/POP and basically defeated the purpose of the web client (unless you didn't mind switching between the web and desktop client).

When Google offered GMail for Domains (now called Google Apps for Domains), I eagerly set up a free account using one of my domains and tested to see if email sent still included the Sender header. Sadly it did and I abandoned the idea of using GMail as my primary email client.

A few days ago I accidentally discovered that now both the standard GMail and Google Apps for Domains have the ability to specify your own SMTP server when you add an external email address to your GMail account. (Here's the announcement from a few months ago on Google's Blog.) This means you can receive email from [email protected] and also reply to emails from within GMail as [email protected] and the receiver won't know that you're using GMail!

Here's how to get this set up:

Login to GMail and click Settings at the top right. Then click the Accounts and Import tab:

GMail Settings - Accounts and Import

Now make sure the "Reply from the same address the message was sent to" is selected and click "Send mail from another address" to add your external email account.

GMail - Send mail from another address

Fill in the name you want to show up when you send email from this account. This will probably be your name, but it might also be something like "Company Support" or "Sales". Now enter your full external email address in the second box and then click Next Step.

GMail - Add another address - Step 1

On the next screen, select the second option box, "Send through SMTP servers" and fill in the SMTP Server, Username, and Password fields. When you click Add Account, Google will try connecting to the SMTP server using the credentials you supplied. If it successfully connects, you'll be brought back to the Accounts and Import tab with your new account added. Otherwise, Google will display the error it had when trying to verify the SMTP connection details.

GMail - Add another address - Step 2

Now you should see the new account listed on the Accounts and Import tab, along with a note at the bottom showing that email will be sent using the SMTP server you specified:

GMail - New account listed on Accounts and Import tab

Now, you can send and receive email using this external account and the receiver won't see that annoying "On Behalf Of" message! Your GMail address won't even be visible in the email headers if they choose to view the email source (they'll see that the email was routed through a Google server, but Google is well known enough that they probably won't care).

Mac OS X: Fixing 'Always Open With'

After installing the TextMate editor I wanted all shell scripts (files ending with the .sh extension) to open in TextMate. Unfortunately, selecting Open With -> Other... from the context menu, choosing an application, and then clicking the Always Open With checkbox doesn't change the default application for all files with that extension, but rather only changes that specific file.

If you want to change the default application used to open all files with a specific extension, the steps are slightly different:

Select the file and choose File -> Get Info (or Cmd+i) and expand the Open With section:

Get Info

From here, select the application you want to use for opening those file types and then click Change All. This will update the OS X Launch Services Database, which is consulted when opening files. Now all files with that extension will be opened with the application you selected.

Choose Happiness and Growth

There are few things in life that are absolutely, one hundred percent, guaranteed. Death is one of those things. Take a moment to think about that. Every single one of us, no matter how smart, rich, or popular, every single one of us is going to die. The flesh and organic matter that is this body is guaranteed to one day cease to exist.

It's not just us either. Everything ends one day. Even this Earth will be gone, most likely consumed by the sun when it expands to a red giant billions of years from now. The entire universe, with all the planets, stars, and galaxies, will also be gone one day. And while it will probably happen a lot sooner, we can be certain that any memory of our existence will also gone when the universe goes.

The bottom line is this: You can be guaranteed that every single thing you see, think, do, or create, every single person you know or have heard of, every single place you’ve been or know about, will one day cease to exist.

So what does all this have to do with happiness? Well, if we can be assured that we’ll all die one day and that everything will eventually be gone, then it’s safe to assume that the only reason for existence is to experience life while it’s here.

So what’s life? Well, we know that death most often brings sadness and is associated with the ending of progression, so this would mean that life, being the polar opposite of death, should be associated with happiness and growth. I propose that choosing anything less than happiness and growth in our life is associating ourselves with death and thereby ignoring life.

This should give no one any reason to accept anything in life that constrains their own happiness or growth (whether mental, physical, or spiritual) or enables the constraint of others’ happiness or growth. To do either of these is to disregard, neglect, and eschew life itself.

Life is our chance. It’s our small window of opportunity. Our situations may vary and our circumstances may differ, but we all have the ability to make a conscious, day-to-day decision to strive for happiness over sadness; for growth over stagnation; for life over death.

Choose happiness. When something upsets you — the car in front of you cuts you off; you feel yourself getting agitated; someone is rude or unpleasant towards you; things just don’t seem to be going your way — make a conscious decision to let it go and choose happiness. Don't let your circumstances become an excuse not to be happy. You're alive right now. That's the only reason you need to be happy.

Choose growth. Do you feel as though you're a better version of yourself today than you were yesterday? If you don’t, then it's time to make a conscious decision to do something to improve yourself every single day. Stop watching so much TV. Stop oversleeping. Do something every day to improve your health (both mental and physical!). Small changes over a long period always equate to a greater overall change. As long as you're living, you should be growing. Stagnation is for death.

It’s your life! What will you do with it?

10 Ways to Nudge Yourself Into Action

I recently took action on a big decision. This “taking action” literally came down to pressing a button on my keyboard (I was sending an email). Pressing that one button turned out to be a lot more difficult, and much more interesting, than I had expected.

As time ticked on, I watched my subconscious surface with unseen doubts, alternative outcomes, and a bunch of stuff that I hadn’t anticipated getting in my way. I had literally planned and thought about this event for months and decided earlier in the week that it was time to take action.

It’s funny how we can psych ourselves up to do something, only to turn back with our tail between our legs the moment we’re face-to-face with actually having to do something about it. Taking action can be scary, and for good reason: Wielding the power to control or influence the future is a daunting task.

If you need to take action on something and you’ve made up your mind that you won’t back down without a fight, try some of these tips to help nudge yourself into action. I used all of them the night I sent that email.

  1. Get your blood moving. Get up and walk around. Go for a run. Workout. Fresh blood running through your veins gives you new energy and helps you see your thoughts, and the situation, from a new perspective.
  2. Move to a different location. Physically moving to a different location helps change the context and let's you see things from a different angle.
  3. Ask yourself, how bad is the alternative? If the decision is big enough to warrant as much attention as you've already given it, doing nothing will most likely do more harm than good.
  4. Does your happiness depend on it? If the thing you're having trouble taking action on has any chance of improving your happiness, then taking action is damn well worth the risk!
  5. Remind yourself why. What made you want to take action? Why are you doing this? Simply remembering what motivated you to take action in the first place can nudge you to take that next step.
  6. Time is limited, your opportunities are not. There will always be a greater opportunity out there. There will always be a better time. You can choose to do nothing now and let time run on, or you can choose to take action and move yourself forward, thereby placing yourself into a position of receiving those opportunities.
  7. Without action, nothing happens. It sounds obvious, but we often want and expect things to change without doing anything to make them happen. If you want air, you breathe. If you want to eat, you feed yourself. If you want to get somewhere in life, you need to do something about it.
  8. You will always make mistakes. And that's good! Mistakes make us better -- it's a basic function built into nature. The more mistakes you make, the more likely you are to grow and learn. Most of us don't make enough mistakes!
  9. Envision what comes next. What will your world be like after taking action? What things can you be absolutely certain of? The clearer your understanding of how the world will be after taking action, the easier it will be to nudge yourself into action.
  10. Realize how you'll feel if you don't take action. If you're feeling antsy now, how will you feel if you don't take action? Will those feelings continue to build up? You'll feel so much better after this "taking action" step is behind you.

What things have helped you nudge yourself into action?

Getting out of my Perfectionist State of Mind

I've been spending a lot of time working on the new website for my web hosting business, ActualWebSpace (formerly known as Akmai.net). It’s a project that’s been underway for a lot longer than I’d hoped for and my perfectionist mentality is mostly to blame.

Early on, I decided the new site would run on WordPress and while I’ve spent a good amount of time tweaking WordPress themes, I've never designed one from the ground up. I’m by no means a designer and, being somewhat of a perfectionist, it's rather difficult for me to accept my creations the way they are and just be happy. This often results in designs that never leave the drawing board or, even worse, entire sites that never leave my computer.

Realizing it would be a good opportunity to teach myself to ignore the screaming perfectionist in my head and learn a little about site design along the way, I borrowed ideas and CSS from the WordPress.org theme and began envisioning and planning the custom theme. Because this was a business site, I felt the need to design something custom; I didn't want to use someone else's work and I wasn’t ready to spend money to outsource the work. I figured it would take me a month to get the new site up, two at the most.

Its been almost a full year since I started working on the new site and the perfectionist has been winning so far. I've dragged my feet so many times that I lost count and I've spent way too much time with little adjustments that, in the end, probably won't make a difference.

The past few weeks, however, have been much different. I've been making a hard push to finally get it done and I've made great progress. Focusing on one page at a time and working on it until it was finished has really helped. I keep reminding myself that anything I don't like can be changed later, even after the site goes live. Improvements to the site will always be ongoing and that's expected by everybody.

Here are just a few tips that have helped me as a non-designer get out of my perfectionist state of mind and make real progress on my site. These may not work for you, but they worked great for me. I plan to review this list in the future when I’m working on other sites:

  • Decide what pages are an absolute must-have to launch the site. Whatever pages can be added later, add them later. Only work on the must-have pages until they’re done.
  • Get the color scheme, header, and footer (preferably in that order) done before working on the individual pages. It’s easier to work on individual pages when you can step back and see the finished page in its entirety.
  • Focus on one page (or task) at a time and work on nothing else until it’s finished. You’ve probably heard this before, but real progress is made when you stay focused and consistently chip away at something until it’s done.
  • If you get stuck, work on something else. I know this contradicts the previous tip, but if you’re really feeling stuck try working on another part of the site for awhile. Let working on something else be your release for the thing you’re stuck on. Just don’t get carried away and start jumping all over the place.
  • Don’t let ideas distract you. You will invariably think of stuff you think could be made better or have ideas you want to try that are unrelated to what you’re currently working on. Keep a list of stuff you want to change or try and simply add to the list the moment something comes up. Then get back to work. (This tip also applies to header/footer changes, which you will see a lot of while designing individual pages!) No matter how simple, add it to the list and tackle it later.
  • Remember that sometimes less is more. Don’t try to fill spaces simply for the sake of filling them or to mimic the design/layout/content of other sites. Figure out exactly what information you need to get across and leave out the rest.
  • Get inspiration and ideas from other sites. Look at other sites for design, implementation, content, and topography ideas, but don’t get hung up comparing your site to theirs; they are two different sites.
  • Recycle. Find sites with layout or design elements that you really like and grab the CSS. Analyze how other sites have made stuff work and try them on your own site (I cannot stress how useful the FireFox Firebug extension is for doing this!).
  • Learn from the best. Look at big-name sites and analyze how they laid things out. There are often entire teams dedicated to figuring out the best techniques and many sites are where they are now only after years of trial-and-error. Save yourself an enormous amount of time and money by studying these sites.
  • Stop when it’s both “good enough” and “usable”. Would it kill you to let others see the page right now? Could Grandma figure out how to use it? Then stop. It’s good enough and you can improve on it later!

Finally, I want to give Steve Krug's awesome book on web usability, Don't Make Me Think!, a quick plug. I finished reading it this week and I think it’s a must-read by anyone involved with web design. It’s such a small book and so full of gold nuggets that you have absolutely no excuse not to read it. I’ll be reviewing Don’t Make Me Think! soon, so be sure to subscribe to my blog if you’re interested in reading the review.

Preparing a Mac for Resale with OS X Leopard

When reselling a Mac, it's nice to give the new owner an experience similar to buying a new Mac. This means reinstalling a clean copy of OS X and, if you're super nice, installing the latest software updates and additional software. Finally, the Setup Assistant needs to be reset so that it runs when the new owner turns on the computer.

Note: The steps below were used to prepare a MacBook Pro running OS X Leopard for resale. Although the steps are similar for other versions of OS X, I have only tested them with Leopard. (Update: Matt mentioned in the comments that he successfully used these steps on OS X 10.6.)

Backup Your Data

If the Mac you're reselling is your own, you should do a full system backup before proceeding.

My favorite method for doing this is to use an external USB hard drive and Carbon Copy Cloner (free). Carbon Copy Cloner can be used to take a snapshot of your entire drive and make it bootable. This means you can actually boot from your backup drive, given you're booting from identical hardware. At the very least, you'll have an identical copy of everything on the computer.

You can also use Time Machine to backup your data. I don't use Time Machine, so I cannot recommend it.

The bottom line is, you want to backup anything important on the Mac you're reselling because the next steps will erase everything.

Reinstall Mac OS X Leopard

  1. Insert Mac OS X Leopard Install Disc
  2. Restart the computer
  3. Hold down the Option key while the computer is restarting. The system will then prompt you to select a startup disk. Choose the Mac OS X Leopard Install Disc.
  4. On the "Select a Destination" screen, click "Options" and choose "Erase and Install". This will ensure a clean installation of Mac OS X Leopard.
  5. Follow the remaining steps to install Mac OS X; they are all self explanatory.
  6. When the installation finishes, the Mac will reboot and you'll be presented with the Setup Assistant.

If you're not interested in installing the software updates or any additional software, press Command+Q to quit the Setup Assistant and choose Shutdown. The next time you turn on the machine, the Setup Assistant will launch again.

Install Software Updates & Additional Software

If you want to be super nice to the new owner of your Mac, you'll need to complete the Setup Assistant and create a temporary user. We will use that user to download and install the software updates as well as install any additional applications (Firefox, MS Office, etc.). Once we're done updating the system and installing software, we'll delete the temporary user and reset the Setup Assistant.

  1. Complete the Setup Assistant and create the first user account (we'll delete this user and reset the Setup Assistant later, so it doesn't matter what you use). Make note of the shortname for the user you create as we'll need that in the next section (e.g., user "Raam Dev" will probably have a shortname of "raamdev").
  2. At this point, you should be logged into the newly reinstalled system using the temporary account you created.
  3. Connect to the Internet (using a wired or wireless connection)
  4. Run Software Update (Apple Icon -> Software Update) and install any available updates. This may take awhile!
  5. After the system reboots, run Software Update again. There will most likely be more updates to install. Repeat this process until there are no more updates to install.
  6. Install any additional applications, being sure to install for "All Users" if prompted. Also, make sure the new applications are installed in /Applications/ and not ~/Applications/

Clean Up and Reset the Setup Assistant

Now that we've installed the latest updates and installed any additional software, we need to clean things up. First, we'll delete the temporary user we created and then we'll reset the Setup Assistant to ensure it launches the next time we boot up.

First, you'll need to start the Mac in Single User mode by restarting and holding down Command+S. This mode does not have a graphical user interface (GUI) and is entirely command-based.

Once you're in Single User mode, run the following commands and press Enter at the end of each line. (Note: The $ represents the command prompt; you don't actually type the $.)

By default, the hard drive is mounted as read-only in Single User mode. Before we continue, we need to make the disk writable:

[code lang="bash"]
$ mount -uw /
[/code]

Next, we clean up that temporary user we created. Replace USERNAME with the shortname of the user you created in the previous section.

[code lang="bash"]
$ rm -R /Library/Preferences/
$ rm -R /Users/USERNAME/
$ /bin/launchctl load /System/Library/LaunchDaemons/com.apple.DirectoryServices.plist &
$ dscl . -delete /Users/USERNAME
[/code]

And lastly, we need to reset the Setup Assistant so it runs the next time we start the Mac:

[code lang="bash"]
$ rm /var/db/.AppleSetupDone
[/code]

Now that everything is cleaned up and the Setup Assistant has been reset, we can shutdown the system and ship or deliver the Mac to its new owner!

[code lang="bash"]
$ shutdown -h now
[/code]

If you want to boot the Mac to make sure it looks the way it should when the user gets it (i.e., the intro video and Setup Assistant start), just make sure you press Command+Q and choose Shutdown.

Mt. Jackson & Mt. Webster

On Top of Mt. Jackson

This past Monday I hiked Mt. Jackson, checking off another 4k footer from the list of 48 in NH. The trailhead was located off RT302, right next to Crawford Notch in the heart of the White Mountain National Forest. At the base, the temperature was around 40 degrees Fahrenheit, so I expected much colder temps at the summit and prepared accordingly.

It was a steady climb up; there were only a few places where I didn't feel like I was climbing stairs. Since I was constantly moving, my body warmed up and I ended up storing most of the warm clothing in my bag during the hike. Most of the landscape was lush -- even tropical (it's hard to imagine for New England, but there are rain forests here!).

Somewhere around 3,500', I looked up and the tops of the trees were covered in something white. I realized it was ice! At the same time, I noticed the wind was blowing incredibly strong just 15' above me; the clouds, so close I felt like I could reach out and touch them, were whipping by as if on a racetrack. From that point onward, things just got colder.

When I reached the summit, everything was frozen. It was incredible. The wind was gusting so strongly that I struggled to maintain my balance. I took off one of my gloves to take pictures and within thirty seconds I couldn't feel my fingers! There were 360-degree views of the surrounding Presidentials -- absolutely stunning.

I decided to take the Mt. Webster loop back instead of going the same way I came. It was an extra 1.6 miles, but I was in no rush. But before I left the summit, I heard a bird whistling to me. I looked over and there he was, perched ten feet in front of me on a frozen pine branch. Realizing I was on part of the Appalachian Trail, I suspected he might be accustom to being fed by passing hikers. I opened a food bar and sure enough, he ate right out of my hand!

The hike from the summit of Mt. Jackson to the summit of Mt. Webster was mostly easy-going terrain. There were lots of slippery log walkways winding through swampy areas that were overgrown with green moss. It was also still cold (the trees were still under 15', and I was still exposed to the strong winds).

Overall, it was an incredible hike. The four and a half hours felt more like eight and the changing landscape, high winds, and friendly wildlife made the trip exhilarating. I didn't pass a single person on the entire hike, probably due to the fact that it was Monday. 🙂

Date of Hike
2009/11/16

Hiking Time
Total Time (including breaks): 4 hours
Book Time: 4-5 hours

Hiking Distance
Round Trip: 5.73 miles

Total Climb
2,232′

Runkeeper Stats

Developing my Personal Brand

This past weekend I read Colin Wright's free eBook on Personal Branding. While I had a general idea what personal branding was before I read the ebook, what I didn't have was a good answer to the ever important question, "Why?".

Here's what Colin says about why you need a personal brand:

Why Do You Need a Personal Brand?

There are many reasons you should want to develop a personal brand. Building a positive reputation (whatever that might mean in your field) can lead to increased word-of-mouth advertising for you and your services. When your reputation spreads and precedes you, it also makes interactions with potential clients that much easier, allowing you to spend less time convincing them to hire you, and more time negotiating the scope of services and payment (and actually working on the project).

Managing a personal brand helps you build a kind of brand equity, which will grant your name and products a certain star power. This associative celebrity can aid you in future projects you may wish to undertake, allow you to easily segue into alternate-but-related fields and will grant you expert status within your current field.

By recognizing and optimizing your personal brand, you will become part of and associated with specific ideas, movements, aesthetics, cultural attitudes and people. The more you refine your brand, the more targeted your message becomes and the more you will be doing the work you want to do, with the people you want to be working with, and at a price point that everyone can agree on.

And those are just the short-term benefits! In the long run, taking the time to filter out the rough and think through what kind of professional you want to be and how you want the rest of the world to see you can actually make you a much more skilled, fulfilled and happy person. It was Abe Lincoln who said, “I don’t think much of a man who is not wiser today than he was yesterday.” Don’t be looked down on by Abe: improve yourself today.

Colin's ebook is a must-read for anyone who works as a consultant or freelancer, who does business or communicates on the web, or who just plain cares about themselves. Everyone has a personal brand. However, you need to take charge of defining that brand; you need to take charge of owning it. Your personal brand is like your health: you are the only person who can maintain it.

To begin developing my personal brand I need to figure out where my personal brand stands now. However, figuring that out on my own would be a bit difficult: I’m bound to be biased. So to help me get started I’ve created an online form with three simple questions that I will personally pass around to friends and family:

  • When you hear or see the name "Raam Dev", what's the first thing that comes to mind?
  • Describe something you like about Raam
  • Describe something you don't like about Raam

If you have a minute to fill out the form (it’s only three questions!), I would greatly appreciate it:

Help Raam Improve Himself!

Anyone who knows me can help, even if you've never met me in person! In fact, I'm very interested in the current state of my online brand, so if you only know me online I'd really be grateful for your submission.

In a few weeks, or whenever I’ve collected enough answers, I will announce the results here on my blog. This will be my current personal brand; the starting point from which I will work to consciously improve myself and my personal brand.

Unix/Linux: Finding and Killing Processes by User

If you've ever run ps aux | grep user to list processes and hunt for process IDs, you'll be happy to know there is a simpler alternative. Both finding and killing processes owned by a particular user is made simple using the handy pgrep and pkill utilities.

Listing Processes with pgrep

Listing all the processes owned by the user raam can be done like this (the -l switch causes the output to include the process name):

[bash]
$ pgrep -l -u raam
9614 screen
9628 bash
9644 irssi
16165 bash
16297 rtorrent
19462 ssh
19515 bash
19526 ssh
20964 sshd
[/bash]

You can also filter the list of results by appending a full (or partial) process name to the command:

[bash]
$ pgrep -l -u raam bash
9628 bash
16165 bash
19515 bash
[/bash]

Killing Processes with pkill

The pkill command does basically the same thing as pgrep, except it kills the processes instead of listing them. This is useful if you have a user with several dead processes, or if you were deleting a user and you wanted to kill any running processes first.

Killing all the processes owned by the user raam looks like this:

[bash]
$ pkill -u raam
[/bash]

And once again, if you only wanted to kill all the bash processes owned by raam, you would append the process name to the command:

[bash]
$ pkill -u raam bash
[/bash]

As always, check the man pages for pgrep and pkill for more information and switch options.

Mac OS X: Resizing Oversized Windows to Fit the Screen

I recently switched from a 15" MacBook Pro (2007 model) to the latest 13" MacBook Pro (2009, unibody model). After transferring my iTunes library to the new laptop, I found that the size of the iTunes window exceeded the size of the screen (the 15” MBP had a 1440x900, while the 13” MBP has a slightly smaller 1280x800). This meant I was unable to grab the bottom right corner of the window to resize it:

iTunes too large to resize!

Unfortunately, the maximize button in iTunes only cycles through Previous Size and the Mini Player mode; at no point does it actually maximize the window to fit the screen!

Note: As Ondrej commented below, you might be able to fix this by simply holding down the Alt/Option key and pressing the zoom/maximize button (the green button).

I tried installing an application called RightZoom which changes the behavior of the maximize button in OS X by maximizing the window to fill the screen (as opposed to simply maximizing for “best fit”). However, that did nothing to change the behavior of iTunes.

After searching the web for solutions and finding nothing, I remembered a trick I had used in the past on Windows computers: Change the display resolution to something smaller, thereby forcing the operating system to resize windows to fit the new resolution. Then, after the OS resizes the windows, change the resolution back to the original. Of course this only works if the original resolution is not already set for the lowest one (it most likely isn't).

To my relief, this trick worked perfectly! When I switched to a smaller resolution, the iTunes window was resized to fit the smaller screen.

For your reference, here are the steps:

  1. Launch System Preferences -> Displays
  2. Select a smaller resolution
  3. iTunes (or any other application) will be resized to fit the smaller resolution
  4. Change the resolution back to the default
  5. Oversized window problems solved!

Create and Share Value

Do you add valueless content to the digital world? How much of what you say or write is only valuable to yourself? How much of it consists of you complaining or bragging about what you've done (or even worse, what you're currently doing)?

I know I'm guilty of it: Sometimes when I’m alone and my mind is idle, posting something, anything, to Twitter and knowing that someone somewhere will read it gives me a sense of connection. But that's being selfish. How much does spewing useless information into the world actually help me (or anyone)? It makes me “feel” a little better in the moment, but does it really do anything for anyone long-term?

The Internet makes it easy for us to keep sharing useless stuff that we think is important because we don't see anyone’s reaction to what we're offering. If you stood on the sidewalk and asked strangers to listen to how your day went, how many people would care? With the in-your-face feedback that you’d receive on the sidewalk, how long would it take you to realize that what you're offering is valueless and adds nothing useful to the lives of others?

On the Internet, you don’t see when someone grumbles at that self-centered, narcissistic paragraph of text you’ve written; you don’t see all the eyeballs that pass over and dismiss your carefully crafted jumble of words.

Being in a constant mode of providing value requires changing your mindset. Yesterday, for example, I went for a walk to clear my head. Towards the end of the walk, I decided to post something on Twitter to share the refreshing experience. At first, I wrote:

"Just finished a nice walk outside in the cold. It really cleared my head.”

Then I realized I could provide more value to others by rephrasing the message:

“Got a lot on your mind? Try taking a walk outside when it’s cold and focus on nothing but your breathing and the movement of your legs.”

Now which of those two posts would you rather read? Which provides more value to world?

Be someone who creates value, not noise. If you find something of value, rebroadcast it (but don't become a repeater just rebroadcasting someone else's voice; create your own voice). If you feel you rarely have anything of value to share, try changing your perspective. If you still have nothing, don't share information simply for the sake of sharing. Sharing is good, but sharing something that only adds to the noise is not good.

Before you publish something you’ve written for Twitter, Facebook, or a blog post, ask yourself if what you're writing would be of value to anyone. If not, don't pollute the digital world by adding to the noise.

Be someone who provides value:

  • Ask yourself how your observations, activities, and experiences could be useful to others.
  • Rephrase valuelessness to provide value through making suggestions or offering advice.
  • Try seeing things through someone else's perspective; would a stranger be interested?
  • Only create or share when you think it will provide value; don't create or share for the sake of creating or sharing.
  • Rebroadcast value, but don't become a rebroadcaster; build your own voice through personal observations.
  • Change your mindset to reflect someone who provides value.

It’s amazing how easily valuelessness can become valuable by simply changing the perspective and intention.

Redefining the Purpose of my Technology Blog

A little over nine months ago, I announced Solid State Raam, a technology blog dedicated to my explorations of the digital world. It was originally set up to give myself a place to write about technology and document my discoveries without feeling like I was alienating visitors on my personal blog. The new blog was, however, lacking a vision; it mostly existed “just in case” I wrote something that I felt was too long or complex for my personal blog. In short, the motivation for writing new content just wasn’t there.

In the past, I had spent enormous amounts of time searching for a “perfect” theme, so when I put up my technology blog I decided to use a default WordPress theme and be done with it, however, last month Cody McKibben of ThrillingHeroics.com released his awesome (and free!) custom WordPress theme. Solid State Raam was in terrible need of a facelift, so I installed Cody’s theme and spent a little time tweaking it. The new theme seemed to breathe some motivation into writing for the blog, but there was still something missing: a vision.

Incidentally, the installation of the new theme coincided with another event. After explaining the WHOIS system to my dad one evening, I realized that I have a passion for helping others understand the digital world. The WHOIS system is a rather boring subject, even for a geek like me, but I nevertheless found myself explaining it to my dad with great enthusiasm. When I thought back to the other times where I had explained technology to people, I realized that I’ve always been enthusiastic and excited about it, no matter how boring or simple the subject was to me.

With this new understanding of my passion for helping others understand technology, a more clearly defined vision for my technology blog has emerged: A place to not only document my discoveries but to also help others understand the world of technology with which I am so familiar.

The world is filled with evildoers looking to take advantage of those who know very little about technology: identities are stolen, wallets are emptied, and valueless electronic goods are willingly purchased as a result of pure ignorance. Many people are fully aware of their ignorance to technology and, as a result, using technology creates intense frustration. I have often wondered how much more enjoyable the web would be for people if they knew how they could find anything with Google, or if understanding the simple difference between a web browser and an operating system would help prevent them from becoming victims to identity theft.

If I can help alleviate fear, frustration, and ignorance towards technology by simply providing a resource for people to educate themselves, then I will be helping to make the world a better place.

Edit: After about a year of having my tech posts published separately from my personal site, I decided to move them back here and shut down SolidStateRaam.com. You can find tech posts in the Technology category.