Amen!
Raam Dev
A Unique Perspective: College Campus
Today marks the first day of my twenty-six years of living that I spent time inside a college classroom and on a college campus. (There was one time I attended an Indian classical music concert with my dad at MIT, but I was young and barely remember it.) I'm taking the Introduction to C/Unix/CGI Programming class at Harvard Extension. As I walked around campus on the first day of class, I very quickly observed how different things felt from the "normal world".
My perspective is probably somewhat unique in that I have been around business for as long as I can remember. My parents have always owned their own business and I myself just went through being a landlord for a few years and then lost all three of my houses to foreclosure. I also had my own consulting business going for awhile. Being home-schooled my whole life also meant that I saw nothing of the public school system.
The atmosphere of being on campus felt very unfamiliar to me -- almost alien. I was only a few hundred feet from streets I had driven on every day for the past few years and yet I felt as if I was on a different planet. It's a hard feeling to describe. As I stood there looking around, I could almost fool myself into believing I was in the middle of a utopian alien society where everything was about peace, harmony, learning, and knowledge. (Then I turned around, looked across the street, and saw all the money-hungry shops trying to buy your soul. I was quickly reminded that I am, in fact, still on Earth. Damn.)
As strange and different as the atmosphere felt, it also felt relaxing -- like there was nothing to do except learn and relax. I was able to walk into a building and have instant access to dozens upon dozens of computers just waiting for me to login and start using them for whatever constructive thing I needed to do. Everything outside was clean and there were plenty of benches and places to sit.
But my perspective is flawed. The company where I work is paying for the class and I'm sure things wouldn't feel quite as "free" and relaxing if I had student loans riding on my back. But that should say something for the current system. Imagine what society would be like if all education was free. Imagine the atmosphere it would create. People learning because they want to learn and because they can learn. Not learning because they want to make money and get an awesome job to pay off their student loans. No, learning because they want to create, explore, and evolve. Learning because it's fun. Learning to learn.
It's frustrating when I'm look…
It's frustrating when I'm looking for a good FOSS app and the best one I can find was developed by non-native English-speaking developers.
iTunes Genius is Genius!
One of the new features of iTunes 8 is called Genius. It basically allows you to select any song in your library, click the Genius button, and it will generate a playlist of songs from your library that it thinks go great together. I was a bit optimistic at first, but holy crap! I tried it and I suddenly feel like I have a real live DJ picking songs for me to listen to! I feel like I'm rediscovering all the music in my collection!
How to become an astronaut
How to become an astronaut is an interesting article. It describes the risks to consider (which definitely made me reassess my desire for space travel) and the kind of education path required to apply.
Steve Jobs is a reality distortion field
I rarely read the articles posted on Slashdot. Instead, after reading the article summary, I go straight to the user comments for interesting information and true tech humor. Take for example the first comment on the Apple Losing Touchscreen War post by ardor: Steve will fix it, don't worry. Steve Jobs is not a human with a reality distortion field, Steve Jobs is a reality distortion field with a human body inside.
Reading Getting Things Done by David Allen
As of late, I've been spending more of my free time reading and doing yoga/stretching. One of my 2008 New Years resolutions was to read one book a month. Since that definitely hasn't happened, I thought it made the most sense to make my first cover-to-cover read for this year a book about getting things done: Getting Things Done by David Allen.
Think of debt payments as an investment
Think of debt payments as an investment. When you make a $100 payment on a loan with a 13% interest rate, your annual return is 13%, or $13. Why? Because you avoid having to pay that extra $13 in the future, which leaves you $13 more than you would have otherwise had. [source: wikiHow]
U.S. seizes Fannie and Freddie
In what is being called a "historic government takeover", Freddie Mac and Freddie Mae have been taken over by the U.S. Government. Together, the two companies back $5 trillion in home loans. This move certainly shows how serious the financial situation is for the United States.
Switching to suPHP; What a Mess!
When one of my users reported problems deleting files he had uploaded using a PHP script, I quickly discovered all the files being uploaded were owned by the user running the web server: nobody. This meant only the root user could delete those files.
Apache suEXEC is commonly used to resolve this problem. It allows Apache to run as the user who owns the domain being accessed. This way, files created by PHP would be owned by the user owning the site instead of the default nobody user.
However, Apache suEXEC only works if you're using CGI as the PHP handler. The PHP5 handler on my server was set to use CGI, but I have PHP4 configured as the default PHP version and it was configured to use DSO. When I tried changing PHP4 to use CGI as the handler, most of the domains on my server displayed this:
Warning: Unexpected character in input: '' (ASCII=15) state=1 in /usr/local/cpanel/cgi-sys/php4 on line 772 Warning: Unexpected character in input: ' in /usr/local/cpanel/cgi-sys/php4 on line 772 Warning: Unexpected character in input: ' in /usr/local/cpanel/cgi-sys/php4 on line 772 Warning: Unexpected character in input: ' in /usr/local/cpanel/cgi-sys/php4 on line 772 Parse error: syntax error, unexpected T_STRING in /usr/local/cpanel/cgi-sys/php4 on line 772
OK, that looks like a problem with cPanel. I don't have time to debug cPanel's problems.
suPHP, like suEXEC, is used to run Apache as the user who owns the domain. I decided to try recompiling Apache and PHP with suPHP enabled to see if that would fix the problem.
File Ownership Hell
suPHP worked, except now the sites using PHP sessions were trying to access stored session data in /tmp/ that was owned by the user nobody! So I deleted all the session data and that allowed the PHP sites to create new session data with file ownership of the user owning the domain.
But then I tried accessing my WordPress admin page and started getting permission denied errors in /wp-content/cache/. Same problem: the cache files that had been created before I enabled suPHP were owned by the user nobody and now the user who owns my domain couldn't access them. A quick chown -R raamdev:raamdev /wp-content/cache/ fixed that problem.
Yeah, I could simply chown -R [user]:[user] /home/[user] for each of the users on the server, but there's something about running a recursive command on files I've never seen, and know nothing about, that makes me uncomfortable.
More suPHP Limitations
I was beginning to worry that this was going to be more difficult than simply enabling suPHP and I wondered how many other sites I'm hosting could have similar problems. I tried accessing one of the high priority sites I'm hosting and discovered it was broken and displaying an "Internal Server Error".
After a little research, I discovered that you cannot use php_value directives in .htaccess files with suPHP. The .htaccess file included with (created by?) Joomla! contained this at the bottom:
#Fix Register Globals
php_flag register_globals off
I already knew register_globals was turned off in the global PHP configuration, so I simply commented out that line and the site started working again.
Conclusion
It was at this point that I concluded it was too risky to just blindly enable suPHP while hosting over 50 domains, many of which I am not at all familiar with what's being used or hosted. I will need to take the time to carefully crawl through all the sites making sure their .htaccess files don't contain anything that might disrupt suPHP and then confirm all the sites are still working properly.
Lesson learned: Setup suPHP before you're hosting 50+ domains.
Google Autocomplete for Search
I just noticed the main Google page now has autocompletion for the search box:

The feature, called Google Suggest, has been in the Labs for awhile. It "graduated" to the main front page almost exactly one week ago.
This is going to make it easy and lots of fun to check the most popular search term for a particular topic!
Toots & The Maytals – Sit Down Now
I heard an awesome song on the radio this morning by Toots & The Maytals. The song is called Sit Down Now from the Funky Kingston album and was released in 1973. It's age probably explains why finding a torrent for it was so difficult. All the music on the album is awesome. It's technically reggae, but it's unlike any reggae I've heard.
Accessing the VMWare Fusion BIOS
As noted in the Known Issues section of the VMWare Fusion Release Notes, the VMWare Fusion BIOS goes by way too fast to give you a chance to access it. The only way you can access it is by modifying the .vmx configuration file for the VM:
The VMware Fusion BIOS posts too quickly to access.
Most users will not need to access the BIOS, but advanced users might want to do so, to change the boot order, set a boot password, or enable a second floppy drive. To work around this problem, use a text editor to add the following line to the configuration (.vmx) file of the virtual machine:
bios.forceSetupOnce = "TRUE"The next time you boot up the virtual machine, it will automatically boot into the BIOS. This configuration option then reverts to FALSE. You must set the option to TRUE each time you want to boot the virtual machine into the BIOS.
Having trouble finding the .vmx file?
You cannot edit the .vmx file by opening it with Finder. You need to use the Terminal to edit the file. Here's how you do that:
Launch Terminal (Applications -> Utilities -> Terminal.app) and navigate to the folder (or directory) where your Virtual Machines are stored. To do this, you use the "cd" command. For example, my Virtual Machines are stored in Documents -> Virtual Machines, so I type the following to change into that directory: cd Documents/Virtual Machines/ and then press Enter.
Now you need to change into the directory that matches the name of your Virtual Machine. For example, let's say it's called "Windows XP" -- you would type cd Windows XP/. (Note that you have to "escape" spaces in the folder name by preceding them with a backslash.)
Once you're there, you can use the "ls" command (that's a lowercase L) to list the contents of that folder. You should see the .vmx file you're looking for. Now to edit that file in TextEdit, simply run the following command: open -e *.vmx.
That's it! Now you can edit the file as described above to enable the BIOS.
Labor Day Volleyball
I played volleyball two days in a row (yesterday and the day before) at my brother-in-law's house and now my feet, and body, are so sore. I like playing sports barefoot because I sprain my ankles easily when I wear shoes. However, after I stubbed my big toe and obtained a quarter-size blister on the other, I decided shoes were needed for the second day. My body feels so stiff -- this isn't what I should feel like at twenty-six. I need to commit to a daily two hour running and stretching routine and stick with it.
Boston FU: Retractable Earbud Hack
The first Boston Freehacker's Union meeting was tonight at Trident Cafe. FU rule #3 states,
Everyone who attends has to eventually show something they did. Not something someone else did. This is your time to give a performance, not to teach people how to use something so you get a book deal.
I didn't really have anything to show, but I wanted to show something. Tangled earbuds are one of the things that have been bugging me for, literally, years. (I prefer real headphones, but sometimes size matters.)
Every time I take the earbuds out of my bag, they're all tangled and I have to spend 30 seconds or so untangling them. I wanted something like the retractable cables in my Belkin 7-in-1 Retractable Cable Travel Pack, but for my Apple earbuds. Well, here's my 30 minute retractable earbud hack:
The most interesting part about this hack was what I learned about the locking mechanism. The recoil system was very simple; a twisted metal coil that increases tension as it is twisted. However, as you pull the wire out of the coil, something stops the device from retracting.
That something turned out to be a tiny metal ball bearing, sitting inside the funny looking track on top of the spinning center coil. The single straight track on the top stationary cover sandwiches the ball bearing inside the track and keeps the ball bearing in place. I actually lost the ball bearing twice and ended up taking apart all three of the retractable cables that came with the Belkin kit.
There's definitely lots of room for improvement. A removable retractable device would be much nicer and the size and weight is also an issue. The guys I met at the FU meeting seemed to like it and I'm definitely going to keep using it whenever I use the earbuds. I'll add any further observations to the bottom of this post.
ASCII Scissors
ASCII Scissors: ------8<----------- I learn something new every day!
It Ain't Dead Yet
It Ain't Dead Yet has pictures of some very awesome vintage equipment.
EA SPORE Origins; Sounds like a Virus
Check out Electronic Art's description of the upcoming SPORE Origins game for iPods and iPhones:
Eat or be eaten when you play SPORE Origins on your iPod. Guide your spore through its evolution and shape its destiny. Devour smaller creatures, explore primordial worlds filled with bizarre organisms, and avoid larger, lethal life forms. Grow from single-cell to complex predator as you rise through the levels. Customize your spore, and watch it move to the tunes in your iPod. Battle friends by importing their spores into your iPod from the Sporepedia website.
Tell me that last sentence doesn't sound an awful lot like "importing a virus" onto your iPod. I sure hope they secure the "spores" enough to prevent someone from piggybacking a virus on one.
iPhone: Ambiance; Noise to Fall Asleep!
I purchased the Ambiance app (link opens in iTunes) for my iPhone a few weeks ago ($0.99) and although some of the noises seemed pointless (White Noise, Blue Noise, and Violet Noise all just sound like static!) some of the noises were really nice, like the Birds, Stream, Waterfall, and Waves.
Last night I "discovered" there was a built-in timer! This meant I could leave a noise on for an hour while I'm falling asleep and it would automatically turn off. So last night I turned on the Waves sound and went to sleep. It was amazing how I could close my eyes and instantly imagine myself near the beach with real waves rolling in.
I also use my iPhone as my morning alarm, so now I have two uses for it related to sleeping. 🙂
Backup-Bouncer
I haven't tried it yet, but Backup-Bouncer looks like a very useful tool for verifying backup methods (it doesn't actually verify backups, but rather the accuracy of a backup method's ability to copy OS X metadata). The latest version of rsync (v3.0.3) passes Backup-Bouncer with flying colors when tested with this command: sudo rsync -aNHAXx –protect-args –fileflags –force-change /Volumes/Src/* /Volumes/Dst/test

