Help me get rid of my tech books; $10 $5 bucks, any book

As I transition to a mobile lifestyle (at least more mobile), I realized that I simply cannot lug around all my tech books, so I'm basically giving them away. As the title says, $10 $5 bucks for any book ($2 for any of the top eight books on the left stack). I am extremely careful with my books (to the point where I don't bend the pages apart and wear out the spine) and as a result, these books are in practically new condition. Many of them are $40+ each, so get them while they last.

$10 bucks, any book

Here's how this works:

Email me (use the contact form on this site if you don't already have my email) with the title of the book(s) you want and your mailing address, and I'll send you a PayPal invoice that includes shipping charges (using the cheapest USPS shipping method). Once I get your payment, I'll mail the book(s) and send you the tracking number. As the books are sold, I will update the image and cross them off.

Mobile Computing Revised

I really hate making excuses for not posting on this blog more regularly, but this time I have a genuine reason: I'm transitioning to a mobile lifestyle (more on that later). I've also been striving not to spend my weekends on the computer. I thought it would be a lot harder than it has but, thanks to an incredible web browsing experience and an app for almost everything, my iPhone has changed the meaning of "mobile computing" as I see it. While away from my laptop, I've been micro-blogging with Twitter, which seems to accommodate the mobile lifestyle perfectly.

Going Cold Turkey on all Liquids Except Water and Tea

A few months ago when I went cold turkey on coffee, my goal was not to eliminate caffeine altogether, just black coffee. Many people who learned of my quitting coffee were confused when they saw me drinking a soy latte (which contains expresso), so I had to explain to them the difference between black coffee and coffee diluted in soy milk. As much a I love coffee (yes, love, not loved; I still love coffee!), I have suppressed all the urges (as ridiculously strong as they may have been) and my mouth has not seen a single cup of black coffee in over four months!

Although I did not quit black coffee to eliminate all caffeine from my diet, the negative side effects of high caffeine consumption that I was experiencing from drinking lots of black coffee was my main motivation. However, the past few weeks I have unconsciously been increasing the number of lattes I drink, thereby increasing my caffeine intake, increasing the negative side effects that I originally quit black coffee to avoid, and decreasing the money in my wallet.

So today I decided I'm going cold turkey on all liquids except water and tea (and possibly soy milk for protein shakes), until at least the end of the year. I really need to escape this caffeine addiction (yes, it's addiction, no matter how much I don't want to admit it). It's ridiculous, unnecessary, and costing me way too much money. I quit black coffee, so this should be easy.

Predicting the iPhone's Impact on Computing History

Almost exactly one year ago I wrote about how I thought the iPhone was the future of mobile computing:

I am fully convinced that the iPhone, along with the developer tools Apple is providing, will lead the way for a new generation of mobile devices over the next few decades.

I don't usually make such bold statements, especially given how fast technology changes and how quickly fads come and go, but the iPhone was different. It seemed like less of a phone and more of an enjoyable computing device; a toy for children, a toy and a smartphone for adults, and a beautiful piece of technology (as in looks) that people love to show off.

In Jeff Atwood's latest blog post, he made similar statements that describe the revolutionary level at which the iPhone is changing the way we define mobile computing (talking about the latest iPhone 3GS):

A landmark, genre-defining product, no longer a mere smartphone but an honest to God fully capable, no-compromises computer in the palm of your hand.

We will look back on this as the time when "software" stopped being something that geeks buy (or worse, bootleg), and started being something that everyone buys, every day.

Jeff's post gives a great overview of what's amazing about the iPhone. He says to check back in fifteen to twenty years to see if he was right about his prediction on the historical impact the iPhone will have on computing. It looks like I'm one year ahead of you, Jeff. 😉

A Script to Install & Configure ifplugd on Debian

The default configuration on some older Linux systems is to only send a DHCP request while booting up. This means if the network cable gets unplugged, or if the router is powered off, the system may lose its IP configuration. To restore the network connection, the system may need to be manually rebooted or have someone at the local console run the dhclient command to request a DHCP lease.

For systems that are only accessed remotely via SSH, such a scenario can be painful. What is needed is a daemon that watches the link status of the Ethernet jack and reconfigures the network (or sends out another DHCP request) when it detects a cable is plugged in (or the power to the router is restored).

ifplugd does exactly that:

ifplugd is a Linux daemon which will automatically configure your ethernet device when a cable is plugged in and automatically unconfigure it if the cable is pulled.

On a Debian system, installing and configuring ifplugd is relatively simple using apt-get install ifplugd. Once its been installed, it needs to be configured by editing /etc/default/ifplugd. The most basic configuration is to simply set INTERFACES="auto" and HOTPLUG_INTERFACES="all". This configuration tells ifplugd to watch all network interfaces for a new link status and automatically reconfigure them using the Debian network configuration defined in /etc/network/interfaces.

I recently needed to automate the install and configuration of ifplugd on many remote Linux systems, so I wrote this simple script.

Download: install-ifplugd.tar.gz

[sourcecode lang="bash"]
#!/bin/sh

#########################################
# Author: Raam Dev
#
# This script installs ifplugd and configures
# it to automatically attempt to restore any
# lost connections.
#
# Must be run as root!
#########################################

# Check if we're running this as root
if [ $EUID -ne 0 ]; then
echo "This script must be run as root" 1>&2
exit 1
fi

# Files used when configuring ifplugd
OUTFILE=/tmp/outfile.$$
CONFIG_FILE=/etc/default/ifplugd

# Update package list and install ifplugd, assuming yes to any questions asked
# (to insure the script runs without requiring manual intervention)
apt-get update --assume-yes ; apt-get install --assume-yes ifplugd

# Configure ifplugd to watch all interfaces and automatically attempt configuration
sed 's/INTERFACES=""/INTERFACES="auto"/g' < $CONFIG_FILE > $OUTFILE
mv $OUTFILE $CONFIG_FILE

sed 's/HOTPLUG_INTERFACES="auto"/HOTPLUG_INTERFACES="all"/g' < $CONFIG_FILE > $OUTFILE
mv $OUTFILE $CONFIG_FILE

[/sourcecode]

If you're interested in doing more with ifplugd, check out this article.

Configuring Kayako SupportSuite to Close Tickets via Email

If you're using Kayako SupportSuite to process emails and turn them into tickets, you might also be interested in being able to close tickets via email. This would allow a staff or regular users to close tickets by simply responding to the email notification with something like "close this request" in the body of the message. Using a mail parsing rule, this is relatively easy to set up in SupportSuite.

First, login to the admin section of your SupportSuite installation. Now insert a new mail parser rule by selecting Mail Parser » Manage Rules » Insert New Parser Rule in the left navigation menu. Now configure the parsing rule as follows:

Rule Title: Close Ticket via Email
Stop processing rules: No
Execution Order: 1

Now add three criteria (press the green plus icon to add more than one criteria).

Body » Contains » close this request
Plain-text Body » Contains » close this request
HTML Body » Contains » close this request

You can change 'close this request' to whatever you like, but keep in mind it should be something that isn't likely to occur in a ticket response (i.e., 'close' would probably be too generic).

If you have more than one email queue and you only want this mail parser rule to apply to a specific queue, you can add a forth (optional) criteria:

Destination E-mail Address: [mail queue address, i.e., [email protected]]

Now finish configuring this parser rule:

Select Match Any Criteria
Set Rule Type: Post Parse
Change Ticket Status: Closed

That's it! Now press Insert and you're done.

Caprica (Extended Pilot)

The 2-hour extended pilot of the new TV series Caprica takes place 58 years before the events seen in Battlestar Galactica. It "tells the story of how Colonial humanity first created the robotic Cybernetic Lifeform Nodes or Cylons, who would later plot to destroy human civilization in retaliation for their enslavement". I watched the 2-hour extended pilot and it was awesome; I'm really looking forward to the series (which airs in 2010). You can check out the promo video here.

Adding a Google Calendar with iPhone 3.0

One of the nice new features of the iPhone 3.0 software is the ability to add a custom CalDAV account. Since Google Calendar supports CalDAV, this means that you can now add your Google Calendar account to your iPhone! And not only are you able to view calendar entries, but you can add, delete, and modify them too!

To get started, navigate to to the following screen by choosing Settings -> Mail, Contacts, Calendars -> Add Account... -> Other:

iphone-gcal1

Now choose Add CalDAV Account and enter your Google Calendar account login details. The server should be set to www.google.com. When you're done, press Next and wait for the iPhone to verify the information:

iphone-gcal2

When it finishes, go back to your home screen and open your calendar. Press the Calendars button at the top left to view a list of all available calendars. You will now see an All Google option listed:

iphone-gcal3

If you only want to view your Google calendars, you can select the All Google option. Otherwise, choose All Calendars to view all of them. Now when you add, delete, or modify an entry on any of your Google calendars from your iPhone, they will automatically be synced with Google!

A compromise between city and rural life?

A few days ago (actually, a few weeks ago; holy crap!) I wrote about my wondering if I should move back to the city. Well, I still haven't made up my mind. I have, however (thanks to inspiration from this comment), come up with some alternate solutions.

One option I came up with was to use something like AirBNB to rent a cheap room for the two nights that I'm in Cambridge. I would drive (or take the train) to Cambridge on Wednesday morning, stay overnight somewhere local until Friday, and then drive back to NH Friday evening. This would save me about six hours of commuting and would be a good balance between the advantages and disadvantages I outlined in the earlier post.

However, renting a room twice a week would also mean an additional $320 a month spent on rooming (assuming a $40/night room, which seems to be the cheapest in the area). Even with the $115 I would be saving on gas from not commuting as much, that's still an extra $205 every month. For quite some time now, I've been doing everything I can to save money and cut down on expenses, so spending money on something that really just solves a big inconvenience doesn't seem to make sense.

So I continued thinking of other ways that might be cheaper and still offer the same result. That's when I remembered reading about couch surfing. What is couch surfing? It's exactly what it sounds like (well maybe not exactly): someone offers to let you sleep on their couch (or floor) at no cost! People do it out of the goodness of their hearts (and/or the desire to meet people and/or socialize). The CouchSurfing.org website is the primary resource for couch surfers around the world (including those hosting a couch) and there are over a million registered users, including me!

While I'm couch surfing, I can continue to make up my mind about whether or not to move back to the city and at the same time work on adapting more of a mobile lifestyle. There are no long term (monthly) commitments and I will be saving money (on gas) instead of spending it. Also, one of my 2009 New Years Resolutions was to "improve my social skills", so at the very least couch surfing will help with that!

I'm sure couch surfing will prove to be an interesting experience -- I'll be sure to take notes and write about it. 🙂

An Excerpt from the Koran (8-20)

While eating lunch at Life Alive today, I picked up a book called The Essential Koran (the Qur'an is the most important religious text of Islam). I consider myself very neutral when it comes to religions: I'm not atheist, but I follow no religion. I remain open minded.

From the forty pages I read, the following excerpt really stood out. (It's very important to read slowly, and understand each line. The context changes a lot, so you might need to read it a few times to fully appreciate it.)

(8-20)
Is it not that they are in fact
the troublemakers,
without even knowing it?

And when it is said to them,
"Believe as the people believe,"
they say, "Shall we believe
as imbeciles believe?"
No, it is they,
they who are the imbeciles,
though they do not know.

And when they encounter
those who believe,
they say, "We believe."
But when they are alone
with their obsessions,
they say,
"We are in fact with you;
we were only joking."

While everyone will of course read the text from a different context and therefore interpret it differently (that's what makes humanity so interesting), my take on it was that it seemed to explain the way so many people in this world behave: deceptive. And while I'm sure there is plenty of intentional deceptiveness that goes on in this world, I'm also fairly certain there is as much, if not more, unintentional deception that goes on under the covers ("troublemakers without even knowing it"). But how? How can people be deceptive without even knowing it? Simple: By deceiving themselves! In deceiving themselves they are unable to be fully aware of their actions towards others.

We must make a conscious effort to be true to ourselves so that we may be true to others.

Movie Review: Pontypool

Tonight I watched Pontypool, a very "different" type of zombie movie. I thought it was awesome because I had no clue what to expect next. The story line is very original and doesn't really follow the same boring script that all the other zombie movies follow. It's definitely the most interesting zombie movie I've ever seen.

If you like lots of gore and zombies chasing innocent people around, then you probably won't like this movie. However, if you have somewhat of an imagination (enough imagination to enjoy science fiction) and like to be kept guessing, then you'll probably agree that this movie is awesome. (Fair warning: Everyone else watching it with me thought it was the stupidest thing they've ever seen.)

You can check out the trailer on Hulu.com.

It's not my house anymore

Several times a month, I find myself going out of my way to drive by the first house I bought (Cumberland RD), even though it was sold more than six months ago. It's weird. It almost feels as though it hasn't hit me that I no longer own it -- like I still have some sort of responsibility to make sure everything is OK.

Cooking food with positive thoughts and positive energy

While sitting at my favorite vegan cafe, Life Alive, I overheard one of the employees telling a new employee about the importance of positive energy and positive thoughts when making rice. Yes, making rice. She was explaining how even if it's been a busy day and you're frustrated, it's important not to put negative energy and negative thoughts into the rice. Whether or not that's the primary reason the food tastes so good, I'm willing to bet it plays a big role. (I would reference Masaru Emoto's Messages from Water research, but it has yet to be scientifically proven.)

Should I move back to the city?

I've been thinking about moving back to the city; Cambridge to be specific. A little more than two years ago, in January of 2007, I moved to Cambridge to be closer to work (the office was a 10 minute walk from the apartment). A year later, in January 2008, I moved to Arlington due to the landlord increasing the rent and because I was getting tired of trying to find a parking spot for my truck and paying so much money for such a small space (~450 sqft).

Then at the end of October 2008, only ten months after moving to Arlington, I decided to move again. The Arlington apartment was very nice; a first floor, two bedroom apartment, with off-street parking, a back yard, and plenty of storage space. For the first time, I had a place that felt like home. But all the space led me to realize how wasteful I was being. I was accumulating so much stuff without realizing it because the huge apartment made it easy to hide stuff. So I began letting go and decided to move back to NH, close to my family where rent was cheaper and outside activities plentiful.

I've been enjoying the outdoor activities in NH, but the long three-hour round trip commute to work has really been getting to me. I'm trying to decide if I should move back to the city, or just tough it out and continue living in NH.

Disadvantages of moving back to the city:

  1. No easy access to running trails and forests (there are two huge conservations within 10 minutes of where I'm living in NH!).
  2. The air is not as clean (I wrote about this two years ago when I first moved to the city, here and here).
  3. The distance from my family means activities with them will be limited to weekends (badminton with my dad, volleyball with my brother-in-law, swimming in the lake at my parents house), and that's only if I decide to even make the trek up there on the weekends.
  4. Parking will be difficult.
  5. Rent is a lot more expensive, which means I'll probably need to settle with having a roommate.

Advantages of moving back to the city:

  1. I'll have more free time, because less time will be spent commuting (I spend about 3 hours commuting on the days I work in Cambridge!).
  2. With everything so close, I'll do more walking and biking, which are both a lot healthier than driving.
  3. It will be easier to build my IT services business (a greater number of small businesses within 10 - 15 minutes).
  4. Public transportation makes moving around the entire city very easy (providing plenty of places to explore in Boston).
  5. I tried, but I couldn't come up with a 5th advantageous reason to move back to the city.

There are more things to consider, such as my newly modified work schedule at Aerva (three days a week, instead of five), the higher price of gas making it cheaper to commute via the train (same three-hour round trip commute, but I get to sit down and work or read), and my desire to build my IT services business (building it in the NH area and still commuting to Cambridge makes it more difficult for me to be in two places at once, compared to building it in Cambridge).

I don't usually write posts like this, but I figured writing it would help with my making the decision. And I think I can already feel it helping. I love the outdoors so much and having access to trails and being able to play volleyball or badminton after work with family is really great. Is it worth the increased opportunity for my business and the three hours of commuting I would save by moving to the city? That's what I need to decide.

Finding your Passion

I've been struggling with trying to find my passion for as long as I can remember (each time I think I've found it I discover an insane disliking of the subject, even if only a temporary disliking). This tweet by EpicSelf really made a lot of sense to me and it got me thinking about ways I can increase my chances of finding it: "How to find your passion: Do lots of stuff. Keep doing the fun stuff."

Memorial Day Weekend Activities, Time, and Twitter

Over Memorial Day weekend I spent lots of time being active, playing volleyball, badminton, and trail running. It was really great and it flew by too fast. With each passing day, time seems to be ticking away at a faster and faster pace; I can't believe a whole week has passed since my last post! I really meant to post more regularly, honest. It's just that Twitter seems to have replaced my blog as the medium to which I prefer to post short updates. It just doesn't make sense to repeat myself with a blog post.