39 Reasons I Love My Mac
Be the 1st to comment!

As I mentioned previously in, Everything Changes, I switched from PC to Mac about two months ago. I’m still just as excited about it every time I turn it on as the first day, so I’ve compiled a list of what I love about my Mac. By the way, I previously used linux as my sole computer for almost five years and Windows before that every year since it came out.

These are only in the order I thought of them…too hard to order them:

  1. Ability to use a PC keyboard seamlessly (maybe I’ll write later about why I prefer this, and I tried the Mac keyboard for a month before switching)
  2. Quicklook
  3. TextMate (have to save the wows on this for another post, too many to list – goodbye eclipse, netbeans, texteditor, notepad++, text wrangler, sql tool and wordpress blog gui)
  4. Adium (better than gaim, trillian, gtalk, etc)
  5. Auto mute when I take out my headset (just like I asked for last year)
  6. Mighty Mouse (best mouse I’ve ever used)
  7. Ability to use external monitors (love my Gateway FPD2275W, 22″ DVI-D with built-in 4 port USB 2 hub and PIP)
  8. Font rendering (improves the entire Internet browsing experience)
  9. Fluid (use this for bloglines, remember the milk, gmail)
  10. Unix underneath
  11. Running Windows on VMWare Fusion (when I unfortunately need to test something in Windows, but at least rebooting is not as painful and it seems more stable)
  12. Quicksilver
  13. Coverflow in Finder
  14. Finder’s 3 pane folder view (genius!)
  15. Dashboard
  16. Intel Dual Core
  17. Slick, streamlined case, and lightweight
  18. Cheap memory upgrade (through crucial.com of course)
  19. Firefox never crashes! (well, maybe on occasion, but it crashed consistently before)
  20. Hardware just works, from bluetooth devices to external usbs and hard drives
  21. Wifi just works (don’t get me started on Linux and wifi)
  22. iMovie and ease of using digital video cameras…plugged it in and iMovie sucked all the video in, with thumbnail generations, and sorted all the clips by date!
  23. Auto recognition of other devices on the network (lets see how do I connect to that linux server, hmm never done this, oh wait, why is it listed in the finder already…it already found it!)
  24. iSight, easy video chatting and recording
  25. the dock (love Mac’s take on this)
  26. Expose!
  27. Using external monitor as the primary and laptop screen as secondary monitor
  28. Running everything all at the same time while watching full screen video (on the laptop screen), running mongrel/Rails, mysql, textmate, firefox, and no problems!
  29. FrontRow
  30. Controlling my Mac with Ruby (instead of ActionScript…but haven’t actually tried it yet)
  31. Easy VNC with Vine Server
  32. Super easy installs (ugh, goodbye linux install tools, and command line builds) and uninstalls
  33. Small well-designed power brick, with fold out plug (don’t even need the 2nd part of the typical plug and brick)
  34. Being able to test my web development on all the main browsers on my laptop: IE 5 – 7, Safari on win/mac, Firefox 2/3 on Win/mac (see Running Multiple Browsers for Testing)
  35. The remote control
  36. Long battery life, excellent battery conservation when unplugged
  37. AppFresh
  38. Force quit
  39. Overall feeling that everything is more intuitive, more stable, and better integrated
Site Specific Browser
Be the 1st to comment!

I can definitely see uses for this, including having one browser running for the project site I’m working on (from Fluid):

Using Fluid, you can create [site specific browsers] to run each of your favorite WebApps as a separate desktop application. Fluid gives any WebApp a home on your Mac OS X desktop complete with Dock icon, standard menu bar, logical separation from your other web browsing activity, and many other goodies.

Increase Programming Efficiency By Taking Breaks
Be the 1st to comment!

Recently, Matt at 37signals wrote a post about taking a break from your programming task after four hours.

The comments of the post took a detour from the main point, which was to stop and take a look at the task and your direction with it. However, most of the comments seemed to focus on taking a break when you are stuck. It’s true if you hit a wall, you should take a walk and try to get some distance from the problem. You’ll often then be able to see over or around the wall, or realize the wall is actually only a figment of your imagination.

But I think the point to this post was to take a break from your task, after you’ve spent about four hours on it (though the time should be in relation to the size of the task), and reassess your current status and direction, and most importantly, if the task should even continue to be done.

Sometimes we think of a solution, but while working on it we hit road blocks; things that we weren’t aware would be a problem. An example might be using a new technology we thought would solve the problem, but in doing so we introduced new problems. As programmers, as thus problem solvers, we get so focused on solving the problem at hand, we need to take a step back and realize that the direction we are going is more work than our nifty solution was worth. Adding this new technology, for example, might turn out to add far too much complexity, and require too many other solutions to get it to work.

There may be times where, after taking a break and re-evaluating, we have to go back to the Project Manager, Team Leader, or whomever you report to, and let them know the task is not nearly as simple as you thought, and more time needs to be allotted. After reporting this, you may find that the task you are assigned to is no longer quite so important to management, knowing it will cost them more.

I’d like to add, that taking breaks from tasks, and taking time to clear the mind, and step away, is such a vital part of being a problem solver, and yet it is discouraged by the very nature of the 8 hour work day modern IT management stubbornly continues to conform to. My personal belief, is that some days should be 5 hour work days, and others might be 10. Or, you may work four hours in the morning, and four in the evening. We need to be free to stop what we are doing when it becomes clear that we are no longer making progress for whatever reason. We could be tired, we could have hit an unexpected wall, we could have a personal issue that is distracting us. In many of these cases, its much more efficient to stop, and do something entirely different and come back to your work later, than to attempt to press through, and possibly waste countless hours making absolutely no progress.

This requires management to assess your effectiveness by what you accomplish on the project and with the team, as opposed to what hours you are sitting in front of your computer monitor. For some reason that shift in people management has been very slow in coming. I know some companies, teams, and managers that understand it, but I think the majority are still far behind; still stuck in the industrial age of management styles.

Read the entire 37signals article, “Four hours upfront and then reevaluate“.

Add Google Calendar Agenda to your GMail
Be the 1st to comment!

I love using Gmail and Google Calendar. The only problem I’ve had with Google Calendar, is that I forgot to check it, and then forget something I scheduled. Here is a greasemonkey script, and a tutorial for setting it up, that places your Google Calendar agenda on your GMail in the left hand side. Fantastic idea, and now makes it much more likely I’ll not forget my scheduled events, since I’ll see them all day long.

See the tutorial.

Alone and Offline
2 Comments

Technology changes so fast in our society, that our methodologies, procedures, and comfort zones often lags behind. I’ve discussed the lag in acceptance for Telecommuting in my article, Telecommuting: Old-thinking vs New-thinking as one example of societal trends not keeping up with technology.

Another, is in our form of communication. In the past, we communicated almost exclusively with telephones and in person discussions. Now, we have email, chat rooms, and IM. We can access fellow team members at our every whim, even when they are working remotely. But this luxury of communication has it’s drawbacks. We all struggle with distractions, and these forms of instant communication create even more than we would already have. Focusing on a single issue at a time is generally the best method of completing a task, but being bombarded constantly with requests for help on other issues from teammates, requests for status updates on tasks by project management, and spontaneous team brain storming and problem solving meetings all serve to derail us from our train of thought and prevent us from completing the task at hand.

There must times when team members are allowed to focus on their current task, without risk of interruption in thought process. When developers are problem solving, it takes some time for the brain to get into the problem, thoroughly digest it, and get the creative juices flowing to find a solution. But how any times have you been involved in this process, only to be called into a meeting, get involved in an email thread, or be bombarded suddenly with IMs?

Read More »