Update (May 6/09): I used 12 megs of data while in the States. Without the US Roaming package at the rate of $30/meg my total would have been $360!! With US Roaming plan $10/month + $1/meg = $22.
I’m heading to the States this weekend (I live in Toronto) and got a bit paranoid about what my roaming data (3G) charges would amount to. A quick look on the Rogers website confirmed my fears: $0.03/kb or $30/mb! That’s madness! I heard from a few people that Rogers had a US Roaming Package of some sort. I tried looking for it on the Rogers website, but couldn’t find it anywhere. I then somehow thought to search (on the Rogers website) for ‘Roaming’ and this appeared:
US Data Roaming Add-On - $10.00
Buy the $10/month U.S Data Roaming Add-On and then pay only $1/MB ($0.001 per KB) while roaming in the U.S
I called Rogers and had them add the package to my plan. You can remove it at anytime and only be charged for the month you used. Keep in mind this plan only covers data. Regardless if you have a text-messaging plan in Canada, in the States it’s $0.60 per text message. I don’t even want to know what voice + roaming would hit.
What a way to spend Good Friday. I just sent this email to a few people at Big Blue explaining what happened…
_______________
Hey guys,
You may have noticed I was offline for most of the afternoon. My timing belt broke on the highway (401) while I was driving. I heard a (really) strange noise — the car lost all power and I quickly moved to the shoulder. I called some people and eventually got it towed off the highway. What a way to spend Good Friday (I’m Greek Orthodox). All that said, is it too early to ask for a raise? Ha, just joking. Have a good weekend guys.
"Today, the Cold War has disappeared but thousands of those weapons have not. In a strange turn of history, the threat of global nuclear war has gone down, but the risk of a nuclear attack has gone up. More nations have acquired these weapons. Testing has continued. Black market trade in nuclear secrets and nuclear materials abound. The technology to build a bomb has spread. Terrorists are determined to buy, build or steal one…. Some argue that the spread of these weapons cannot be stopped, cannot be checked — that we are destined to live in a world where more nations and more people possess the ultimate tools of destruction. Such fatalism is a deadly adversary, for if we believe that the spread of nuclear weapons is inevitable, then in some way we are admitting to ourselves that the use of nuclear weapons is inevitable…. So today, I state clearly and with conviction America's commitment to seek the peace and security of a world without nuclear weapons. I'm not naive. This goal will not be reached quickly — perhaps not in my lifetime. It will take patience and persistence. But now we, too, must ignore the voices who tell us that the world cannot change." - Obama, Prague, 2009 [April 11-17 Economist]
“I built my first computer when I was twelve in Amarillo, Texas. At the time I was into hardware because you couldn’t really program things. No courses or books existed, and, as a twelve-year-old boy, I couldn’t ask my peers for help. So, I pounded the doors at the local IBM sales office until a salesman took pity on me. After we chatted for a while, he handed me a Fortran [manual]. I’m sure he gave it to me thinking, “I’ll never hear from this kid again.” I returned the following week saying, “This is really cool. I’ve read the whole thing and have written a small program. Where can I find a computer?” The fellow, to my delight, found me programming time on an IBM 1130 on weekends and late-evening hours. That was my first programming experience, and I must thank that anonymous IBM salesman for launching my career.” - Grady Booch (link)
I have a big problem with writing things down. This inevitably leads me to spending excessive amount of time looking all over the internet for how to solve a problem. Most recently I was trying to remember the steps to get Memcached going on my Debian server and on my laptop.
Luckily I came across this comment on php.net, which explains nicely how to get this going on Debian/Linux. The only thing I needed to do was make sure g++ was installed (i.e. apt-get install g++). Here are the steps:
-------------------------
# Prerequisite Install
-------------------------
# Download & install libevent (memcached dependency)
wget http://www.monkey.org/~provos/libevent-1.4.8-stable.tar.gz
tar xfz libevent-1.4.8-stable.tar.gz
cd libevent-1.4.8-stable
./configure && make && sudo make install
# Create a symlink to libevent
sudo ln -s /usr/local/lib/libevent-1.4.so.2 /usr/lib
# Download & install memcached
wget http://danga.com/memcached/dist/memcached-1.2.6.tar.gz
tar xfz memcached-1.2.6.tar.gz
cd memcached-1.2.6
./configure && make && sudo make install
# Run memcached as a daemon (d = daemon, m = memory, u = user, l = IP to listen to, p = port)
memcached -d -m 1024 -u root -l 127.0.0.1 -p 11211
-------------------------
# PHP5-Memcache Install
-------------------------
# Download the extension module
apt-get install php5-memcache
# Edit /etc/php5/conf.d/memcache.ini and uncomment the following line by removing the semi-colon
extension=memcache.so
# Restart apache
/etc/init.d/apache2 restart
-------------------------
# Test Install
-------------------------
# Create a file 'memcache_test.php' in your webroot and paste the following:
<?php
$memcache = new Memcache;
$memcache->connect('localhost', 11211) or die ("Could not connect");
$version = $memcache->getVersion();
echo "Server's version: ".$version."<br/>\n";
$tmp_object = new stdClass;
$tmp_object->str_attr = 'test';
$tmp_object->int_attr = 123;
$memcache->set('key', $tmp_object, false, 10) or die ("Failed to save data at the server");
echo "Store data in the cache (data will expire in 10 seconds)<br/>\n";
$get_result = $memcache->get('key');
echo "Data from the cache:<br/>\n";
var_dump($get_result);
?>
In Windows (assuming you have XAMPP installed) go into your php.ini (check phpinfo for location) file and un-comment the following:
...
extension=php_memcache.dll
...
[Memcache]
memcache.allow_failover = 1
memcache.max_failover_attempts=20
memcache.chunk_size =8192
memcache.default_port = 11211
...
Then head to Jellycan Code and download the Windows memcached port (binary). At this point you should be able to launch the .exe and run the sample code above.
I came across a great feature by Forbes that asked key individuals the advice that most influenced their lives. I particularly like what Tony Robbins said:
In 1979, when I was 19, I had all these people giving me conflicting advice. Jim Rohn, a personal-development speaker, said, ‘Tony, think about it this way. If your worst enemy drops sugar in your coffee, what’s going to happen to you? Nothing. But what if your best friend drops strychnine in your coffee? You’re dead. You have to stand guard at the door of your mind.” He was saying that the selection of [my friends and advisors] will matter more than anything else, and that you can’t take anybody’s approach as sacrosanct.