This was a common problem with past versions of MAMP and it continues to happen for some users in version 4.x. Fortunately, the fix is easy. The problem is that when exiting MAMP the MySQL processes continue to run and are not stopped.
Steps to Fix
- Quit MAMP. You may have to force quit when this happens as it does not shut down correctly.
- Open Terminal and from the command prompt run:
ps -ef | grep mysql
This will show you any mysql processes that are still running. Note there are two processes running in this example (not including the grep process). The process id’s are 38585 and 39048. Note these id’s will be different on your system!
- Next, from within terminal, kill the two processes.
sudo kill -9 38585 39048
To verify they no longer exist, we’ll grep for mysql again
ps -ef | grep mysql
- Now launch MAMP again and it should start normally, including MySQL Server.
I am done with “free”. I have come to the realization that most people who want something for free will never, ever think of paying you, no matter how valuable they find your service. I found this cold hard fact out over this Christmas holiday with my free Letter From Santa site. The site uses a freemium model allowing people to create personalized printable santa letters for their children for free. In addition to the free version, I also offered a paid version that includes a higher resolution letter, a personalized envelope and door hanger for a nominal cost.
Traffic was substantial this Christmas season, with over 120,000 unique visitors and nearly 1,000,000 page views. The site was used to create over 50,000 free santa letters. It’s cool to know a site I built was used to bring joy to kids all around the world.
Free customers are higher maintenance than paying customers. I think it’s because they aren’t paying, they show little or no attention to directions. I focused on making the UI of the site drop dead simple and easy to use. I created a pretty thorough FAQ to answer 99.9% of the questions people might have. I even linked to the FAQ in the email response they got with their download links to the letter they created. I still had hundreds of free customers ask for help with simple questions that were answered in the FAQ. One the other side, the rate of paying customers who asked for help was much lower, under 20 people in fact.
So I am off to refactor my web app and take out the free journey and switch over to paid only.
UPDATE: This post made it to the first page on Hacker News, it’s also been Slashdotted and picked up by several tech blogs. Some of the comments have been great and informative, others not so much. Some people have made false assumptions and some I am convinced didn’t even read what I wrote. This is MY experience with freemium. I am not condemning the concept for everyone. If freemium works for your business, that’s great.
Google announced support for specifying a canonical representation of content back in Feb of 2009. This was done in order to help webmasters avoid duplicate content in their sites by specifying the rel=”canonical” link element in the head section of duplicate pages. In December of 2009, Google announced the ability to implement the canonical tag cross-domain. This is particularly helpful for webmasters who have mulitple domain names pointing at the same content and cannot implement 301 redirects on their servers.
If you have a dynamic site, editing the head of each document individually is not possible. In this situation you can utilize the Apache REQUEST_URI server variable in PHP to create the canonical link element dynamically. The example code is below:
<link rel="canonical" href="http://www.domain.com<?php echo htmlspecialchars($_SERVER['REQUEST_URI']) ?>" />
In this example, you would put the code snippet in the head area of your dynamic page(s) on your other domains ie. domain.net and domain.org. This tells the search engines that no matter what the path or page is on those domains, the canonical location of that page is located on domain.com.