Category: Apple


First of all, please don’t hate me. This isn’t a post by a trendy mac-using hipster who uses Photoshop exclusively. I’ve been using Windows since booting the machine opened a DOS prompt, and you had to type ‘win’ to get in. I went through Windows 3.1, 95, 98, ME, 2000, XP, Vista, 7. I’ve never been a user of Apple products (although the middle school I attended had a Apple 2e and some old iMac’s). My first experience with Linux was a copy of Mandrake 7.2 I purchased at K-Mart to fix my broken W98 install (damn you I-Love-You virus!) when I was about 14, a year later I was re-compiling the Linux 2.2 Kernel on a 90Mhz, 80MB, 2.1GB laptop.

The biggest thing I noticed about silicon valley (and even the city I was living in before; Ann Arbor, MI) is that EVERYONE uses an Apple. Of about 200 hackers I get the pleasure of meeting with every week, about 190 of them use either a MacBook Pro or a MacBook Air. These are some of the brightest developers of our generation, all with awesome ideas and highly employable app development skills.

If you’re rolling your eyes at that paragraph, chances are you haven’t given Apple a fair chance. You just rolled your eyes again, didn’t you?!

I used to hate Apple products. Then again, I used to love IE. But then I gave it a fair chance and I can honestly say I’m never going back. People are always telling stories about how they switched to a Mac and can never go back to a PC, but you don’t really hear about the reverse happening.

Anyway, the reason I personally made the switch is because I love LAMP, I need to work in a command line, and I hate it when I break a Linux machine (sudo apt-get upgrade; init 6; GRUB ERRORS). I will never switch away from a Linux based server, but for a development machine, I need something more stable. One argument Linux users have against OS X is that it doesn’t have a native package manager, but grab something like HomeBrew and you’re good to go. Thanks to this utility, I’ve got Node.js, Redis, CouchDB, and MongoDB all running locally with minimal effort.

Questions and Answers

Why not just install a virtual machine and run Linux in it locally? Emulation is usually not the right way to go about solving a problem. It does work great in the dedicated hosting world, but for a dev machine it means you have to boot a system within your system, which takes time and system resources. It does work, and can more accurately resemble your server environment, but the convenience just isn’t there.

Why not just run Ubuntu or Fedora or RedHat? I really like knowing that everyone using my OS has the same window manager, same kernel, etc, and that any binary app I download just runs without configuration and compilation. It’s really easy to download a dmg file and double click a program and get it working, which is awesome! Windows users do get this benefit, too.

Not compiling your packages makes them slow. I know! But this is merely a development machine. I would never run OS X as a server (or Windows for that matter). Fine-Tuning performance is a definite need on the server, but on the dev machine it’s not as important.

The version of PHP / Apache / Python / Perl / GCC shipped with the OS is outdated. This is easily alleviated by installing the HomeBrew package manager and grabbing the newer versions. They will be stored somewhere in the /opt directory and remain separate from the versions shipped by the OS. This way when the OS upgrades your packages aren’t destroyed, and if you install an unstable program it won’t interfere with your OS.

Closing Notes

OS X isn’t for everyone. There are some startup teams which build software that needs to run on PC’s, and you’ll see one developer on a Mac and the other on a PC. Mac’s also cost about double of their PC counterpart.

I had a PC with nice specs (and 45 minutes of battery life) which cost me about $1,300. I sold it a month or two ago for $500 after 11 months of ownership. My Mac is a lot nicer as far as specs go, and cost about $2,400 (plus $50 for 8GB of aftermarket RAM) and will probably sell for $1,800 one day. Mac’s tend to sell for more, which is nice.

Owning a Mac and owning a PC is a lot like believing in the tooth fairy and not believing in the tooth fairy. I will leave it up to the reader to figure out my parable.

There’s two bugs that are annoying me…

The first is that it’s possible to set wallpapers on each of the desktops independently, but these changes are lost upon reboot. Also, unlike when setting wallpaper on multiple monitors, you don’t get a screen for each specific desktop. This means you can bring up the window on one desktop, move the window to another desktop, and not really know what is going on anymore.

Another issue is that full screen apps leave the other monitors with a boring grey background, causing wasted space. I’m not sure what the perfect solution for this would be, but surely there must be something.

Here’s a cool new feature I noticed in Apple OS X 10.7 Lion: If the OS detects that you’ve got limited access to the internet when connecting using Wireless, it automatically opens a new window (with a small chrome and dimensions) allowing you to login to the web authentication, preventing you from having to goof up a page load of your homepage. Kick ass!

Although, Windows 7 has a similar feature, where you’ll get a notification popup which you must click to bring up the window, when the OS detects a similar situation.

I made the upgrade from OS X Snow Leopard to Tiger a few days ago… Then I finally realized it isn’t working! Here are the symptoms:

  • Running apachectl start gives no error.
  • Running apachectl start again says the server is already running.
  • Clicking the Web Sharing checkbox in System Preferences, nothing happens, no error, checkbox stays deselected
  • Visiting localhost gives a server not found error
  • Log files is empty (/private/var/log/apache2)

I’ll keep playing with it trying to figure out what happened… Its likely that my updated server configuration is no longer compatible with Tiger.

Anyone have any insight?

Update: I was able to come up with a solution, Fixing Apache (Web Sharing) in OS X Snow Leopard to Tiger Update.

In a move I personally consider being highly intrusive and overstepping boundaries, Comcast (and many other ISP’s) have started to display their ad-ridden, useless, search pages to be “helpful” to a user who types in an incorrect web address.

There are many reasons a person would want to shut these off. For one thing, if you attempt to visit a website which does exist, but the ISP couldn’t find it momentarily, the TDS page appears. Now, say that the website is now responsive to the ISP’s request, they’ve already poisoned your DNS requests for the next several hours, and a request to the website will still return their crappy page (this DNS caching isn’t something stuck in your browser’s cache, it’s in different network routing devices upstream). This sort of thing doesn’t seem common to the average user, but to a web developer performing website migration tasks, it’s a nightmare.

Another reason to shut it off is that your ISP is already taking money from your pocket, and hoping you’ll click links on their ad search pages for even more revenue generation. Help stick it to the man and shut these things off.

Disabling this is quite simple: just set your machine up to use Google’s DNS records, instead of your ISP’s! Google has a nice guide available which describes the process for the major operating systems (Apple OS X, Microsoft Windows, Linux). In laymen terms, your computer will now ask Google how to get to a website, instead of asking your ISP. It isn’t any slower, and the same data is returned.

Force Resolution Change in OS X

This is how you can force OS X to use the proper resolution of your monitor.

Open up Finder, go to the Applications folder, then into Utilities, and open up Terminal.

Now, type the following command:

sudo nano /Library/Preferences/SystemConfiguration/com.apple.Boot.plist

You will then be prompted for the administrator password for the computer. Enter it and and press enter. This will open the console based text editing program named “nano”, with the administrative permissions (required so you can edit the file), and opens the configuration file for the system resolution. You should now see something like this screen:

OS X Change Resolution

If you don’t already have a line in here for the Graphics Mode, you can add it so that it looks like it does in the screenshot. After this line  you’ll add a String element, with the WIDTHxHEIGHTx32 format inside of it. Once you’ve made the necessary changes, press Ctrl+O (Opt+O) to write the file and Ctrl+X (Opt+X) to exit the file. Once you do a reboot you should be good to go with the new resolution.

Install this program to put drive icons on your desktop like in OS X, KDE, Gnome, OS 9, etc.

Desktop Media