Posts tagged mac os x

Uninstall Engine Yard’s OS X RailsInstaller

I’m in the midst of teaching an introductory 8-weeks course on Ruby and Ruby on Rails over at General Assembly in Manhattan. Per the course material, we have them install RailsInstaller, an “all-in-one” kit that is meant to get a novice developer up and running in a development environment as quickly as possible.

Acting as teacher, I felt it was good to lead by example and go through an installation of RailsInstaller. After I clicked the install button though, I immediately had flashes before my eyes of this tool over writing many hours of work of painstakingly pruning and preening my dot files, configs and preferences for RVM and git. I pretty much regretted that I did that, thinking it may compromise many of my personal and volunteer projects dependent on having a flawless development environment. (If you’re familiar at all with my Github profile, you’ll know that I have a few projects devoted to my obsessive collection of laptop configuration scripts and dot files.)

Honestly, I have been using my personal MacBook Air for a week now and haven’t noticed any issues in my development environment using the incorrect versions of Ruby, Git or RVM, but I still have this paranoid suspicion that I may have done something by installing RailsInstaller over everything I’ve curated. (Yes, very paranoid.)

Which led me to try to research on where RailsInstaller actually installed these files and how in the world I could remove them!

After a cursory search, I came up pretty empty-handed because on the RailsInstaller main page, it doesn’t give you any information on how to uninstall it! (Maybe a ploy for you to never uninstall it?? *cue evil laugher!*)

It seems Google Groups is the place to be for me in finding necessary information lately, so I came upon this thread asking about a “clean uninstall” for Mac OS X. (Finally!)

Two things:

If you have an old version of RailsInstaller, you can run this simple command:

/opt/rix/uninstall.app

If you have a recent version like mine, that App doesn’t actually exist in that path and is actually within the ~/Applications folder. D’oh! (Now you know how often I actually peek into that folder versus using Spotlight.)

open /Applications/RailsInstallerOSX-Uninstaller.app

And there you go, it runs through a similar process that you ran when installing, except this time removing the files you previously installed and you can happily watch as all that extraneous overhead is removed over a cup of tea!

Enjoy!

Growl 2.0 — Some Headaches, Some Workarounds

Like a lot of people I know who are on Macs, I use Growl for the different alerts I have set up on the different applications I use. For my IM client, Adium, I want to know when I get a new message and maybe know when my husband signs on or off. On Twitter, I want to see when I get a new private message and I use Propane to access my job’s Campfire and want to know when someone has mentioned something like my name or the work “Thai.” Growl recently updated to version 2.0 and I have encountered a couple of nagging problems.

The Headaches

Over the years, this functionality has become indispensable. I, like many people I know, either donated to the Growl project when it was free, or decided to purchase it on the Mac App Store whenever its newest version moved over to that platform.

That being said, I was really disappointed with some of the issues I have been having with Growl’s recent point release at 2.0 that came out a few days ago. All of a sudden, I noticed that I couldn’t click on the notifications anymore and have it open the appropriate application. When I see a new Adium message, I expect it to open Adium and show me that message. Instead, the notification pop-up would disappear into the GUI ether.

I insisted to myself that the problem just HAD to be user error and tried mercilessly to watch what it was that I was doing so I could debug. When that didn’t work, I then began to pour over the Growl preference panel to see if I may have accidentally unchecked/checked a box I didn’t mean to. No dice! There is no setting there that mentions any type of click behavior that could be modified.

My last stop was opening up the Mac App Store and looking at user feedback, I couldn’t possibly the only person experiencing this problem, right? Right. When I looked at the most recent reviews, ‘lo and behold, other users were having the same problem. A little more digging brought me to the Growl Google Group and latest gripes from the most passionate of users.

Another issue I encountered this morning was that roll-up and/or limits to how many Growl notifications appear at once also seems to be broken. As an example, when I logged into my account, Twitter was still running and was racking up notifications. I had to wait about a minute for the log to cycle through before I had access to my screen again, I’ve never had this problem before! Again, I don’t see a preference option for this, and it seems other people are experiencing the same issues. I don’t have “roll-up” enabled, because frankly, I only want those notifications if I am actually sitting at my desk, not later, but this could potentially resolve this issue. I’ll try again tomorrow morning to see if I encounter it again!

On Mountain Lion, I have the option of turning on Notification Center to handle my Growl notifications, but it gets grouped as a Growl application notification. That kind of sucks and defeats the purpose of quickly knowing which application is notifying me in the first place. I quickly turned this option off.

The Workarounds

As a preface, I use Mac OS X Version 10.7 (Lion) at work and Version 10.8 (Mountain Lion) at home. Both had issues.

In this thread, someone complains about the Growl notification clicking not working. One of the fixes, or “workarounds,” is to download the Growl Version Detective and analyzing the different registered apps utilizing the Growl framework — I didn’t know this tool existed!

If you download the application, you’ll get a great bird’s-eye view of how each of your Growl-enabled application is using the Growl framework.

When you click on an Application name, you’ll either see an option to “Upgrade FW” (upgrade the framework,) “Revert FW” (revert to the original framework,) or a message stating that it can’t be upgraded because Growl doesn’t have permission to upgrade the framework because the application was downloaded via the Mac App Store. In that instance, the application developers will need to update their application to work with the latest version of the Growl framework and release that update in the Mac App Store.

Can't Upgrade Growl Framework VersionI Can Upgrade the Growl Framework Version

An important change from version 1.3 to 2.0 was that Growl is now sandboxed. What does that mean?

In the Apple Sandbox Design Guide it goes over the importance of using sandboxing in your Mac apps. The idea is that you want to add additional protection to your apps and how user data is accessed. When Apple rolled out the Mac App Store, one of the biggest gripes from developers and users alike was the ability for low-level access to system functions to control more minute behavior and preferences. As designed, apps available through the Mac App Store can’t access root level privileges, nor should they as a safety concern! Apps that need that kind of access won’t find themselves in the App Store any time soon. That being said, Growl decided to trade off certain niceties and features so that they could offer their product in the App Store as well as having the additional pluses of having a sandbox.

That said, because of the sandboxing, it adds additional problems that haven’t been figured out quite yet, like the notifications not always opening the application after being clicked:

The old method for click feedback was using NSDistributedNotifications, which we could fire at any time, but these are not allowed under sandboxing with a payload (the context that we send back to the app would know what the click was in relation to).  The new system uses GNTP networking, and eventually we have to close that socket, or we run into the problems that 1.3.x and 1.4 had with running out of socket slots and pegging a CPU, we do this after the display times out or 15 seconds, whichever comes first.  We have plans on improving this, but we haven’t gotten that far yet. - Daniel Siemer

I will have to check back tomorrow to see if the “roll-up” option will fix the issue I was having with Twitter flooding my screen when I logged in this morning. I don’t have the option of upgrading the version of Growl framework for Twitter, so I’m hoping roll-up will work.

If you want to be able to use Notification Center with Growl in Mountain Lion, I would suggest you use a free product like Bark which will take the pain out of all the notifications getting grouped under the generic Growl App notification.

The Take-Away

I have to wonder, now that Growl is a pay product, if enough due-diligence was taken to bug test this latest version. I can excuse these types of issues if it’s a free product because, hey — it’s a great tool and it’s free. But if I am paying for it, AND it’s available in the Mac App Store, isn’t that supposed to convey an additional expectation of quality?

If you’re upgrading your framework drastically between 1.3 and 2.0, shouldn’t there be some sort of notification to all developers out there to prepare for framework 2.0? I shouldn’t expect my users to dig through Google Groups (which by the way is apparently favored over filing a bug ticket in the first place!) to look for workarounds to upgrade something that developers should be responsible for.

These issues aren’t going to prevent me from using Growl, but it does make my experience less enjoyable and less useful. I would really hope to see that in the long-run that the Growl team take some precautions when making large changes like this and give users/developers more of a heads up or at least delineate known issues within the upgrade description on the Mac App Store.

Postgres 8.4

Last year, you may remember me fussing with a new installation of Snow Leopard and trying to get Postgres to behave properly.

At my most current job I’m still stuck on Leopard and just began a project maintaining our installation of Redmine that requires PostgreSQL. We’re behind an iron-clad proxy server (which is a pain in itself) due to the nature of the company, but I was working from home that day and had the luxury of just disconnecting from the VPN and was able to use the one-click installer provided by EnterpriseDB which was a relatively painless procedure. I don’t remember it being so pleasant last year. I’m not sure if the one-click installer is new, I probably installed everything by source last time. In the hopes that within the next few months (I can only dream) I’ll get one of the new snazzy MacBook Pros they’re rolling out to the Online team, I can do it “properly” then and can afford to be lazy now.

I was quite impressed at the tools available in the installer that placed themselves in my /Applications directory by default such as pgAdmin III and a cute SQL Shell that automatically launches the psql command line tool. My only gripe with the one-click installer was that by default it installed postgres to the /Library/PostgreSQL/8.4 directory instead of /usr/local so previous postgres configurations in my extensive dotfiles were a little mucked up until I realized what I had done. Nothing a little bit of symlinking couldn’t fix, but it did drive me insane wondering why psql wasn’t in my $PATH.

MySQL on Mac OS X 10.5 (Leopard)

I wanted to write this down so I didn’t forget about it in case I had to do it again for any reason. I also had a couple friends ask me to help them. It’s extremely easy to fix it, but it did take me a while to find out what exactly was wrong and where to get the new files.

  1. The MySQL.prefPane for OS X 10.5 is wrong.
  2. MySQLCOM is in the wrong directory.

To fix this:

  1. First download the appropriate version of OS X you need: http://dev.mysql.com/downloads/
  2. Install it.
  3. You will then need to download the fix here: ftp://ftp.mysql.com/pub/mysql/download/gui-tools/MySQL.prefPane-leopardfix.zip
  4. Install the new pane. It won’t work yet!
  5. Execute this command in terminal: sudo mv /usr/local/MySQLCOM /Library/StartupItems/MySQLCOM
  6. Go back to the MySQL preference pane and start the MySQL server. Voila!

This bug is documented here: http://bugs.mysql.com/bug.php?id=25008

Go to Top