Mavericks Upgrade Removes Java & DNS Domain Search

Yesterday when Apple prompted me with a new OS X 10.9 upgrade available to be installed, I followed  and upgraded. Guess what? ISSUES.

I use PHPStorm for PHP, IntelliJ IDEA for Java and PyCharm CE for Python, but after the upgrade, none of them are working anymore. Because all three of them are from JetBrains and based on Java, so my immediate thought was that Java is missing.

After Googling and it turned out to be the case, Mavericks simply removes your Java installation. To fix it, I downloaded and installed Java for OS X , and everything back to normal again.

Another issue I found was that the DNS search domain has been disabled. So if you have:


when  you try to

ssh test

It will not search “” anymore. To fix it, open up file:

sudo vim /System/Library/LaunchDaemons/

Add “<string>-AlwaysAppendSearchDomains</string>” into the following section:


And finally reload mDNSResponder service:

sudo launchctl unload -w /System/Library/LaunchDaemons/
sudo launchctl load -w /System/Library/LaunchDaemons/

This should enable you to perform DNS lookups the same way as was before.

PHPStorm 5.0 – PHP Coding at Its Finest

JetBrains has released its most up-to-date PHPStorm version 5.0 recently, key new features includes:

  1. Improved variable type detection
  2. Transparently recognises PHAR-packaged code
  3. Shows more potential flaws in editor (example: conversion to string for objects without __toString() method)
  4. New MVC view for Symfony2 and Yii frameworks
  5. Build-in Symfony2 compliant code formatting
  6. Coding standard check with Symfony2
  7. Database supports:
  • Live database schema refactoring (rename table/column, drop table/column, new table/column + DDL export)
  • Generation of schema migration scripts
  • Export query result to file or clipboard as CSV, TSV, HTML, SQL INSERTs, or SQL UPDATEs
  • Editing of stored procedures
  • Improved SQL completion, and other enhancements

I won’t be beneficial from all the new features but it is certainly worth the upgrade.

Visit what’s new on JetBrains website for more details.

Enable Xdebug & Code Coverage In PHPStorm 4

PHPStorm has released version 4 last month. Our license enables us to freely upgrade PHPStorm until Feb next year, so why not?

There are a few features that come with version 4, you can have a look at here if you are interested, but I am more interested in the one called “Code Coverage for PHPUnit”. I will detail in the following on what I did to get it working.

Firstly I enabled Xdebug on my MAMP installation by update the correct php.ini file. For my instance it is in file “/Applications/MAMP/conf/php5.3/php.ini”, find the following line in your file and uncomment it:


Restart your apache server and you should be able to find the xdebug section from your phpinfo();

Now open PHPStore’s preference and select PHP from left side, and choose “Xdebug” for Debugger:

Then setup PHPUnit for your project, my configuration looks like this:

Now I am able to run the test by clicking on the “Run <project> with coverage” command:

After running the test with coverage, I can see the report on my project:

And it also highlights in the file which lines are covered (green) and which lines are not covered (red) by giving appropriate colors on each line:

Now I know exactly how my code is covered and how to fix them directly inside the IDE.

PHPStorm – My One Month Trial

Last month I downloaded Jetbrain’s PHPStorm IDE and tried it for nearly a month. The main reason for the trial is that Eclipse simply doesn’t meet what I need. It is a great IDE offering lots of features, but it is slow and crashes often. I have been suggested through the LinkedIn discussion that lots of people love PHPStorm, even though it is a commercial product. So I decided to give it a try and ask my boss to pay for it if it meets what I need :).


1. Speed – Even though PHPStorm is based on Java as well, its performance is much better than Eclipse. The indexing is not lightening fast, but faster enough to make me happy. The autocompletion is really handy at reasonable performance.

2. Inline diff – It immediately shows the diff you have made to a file by simply click on the icon next to the line number bar, and allow you to undo or copy the old text if you wish. Eclipse lacks this feature but Netbean does.

3. Class search + File search – I guess the main reason for them to break search into class and file is the performance, so when you are search classes, all other ordinary files can be skipped, and it is fast. Eclipse’s open file feature is not bad either.

4. PHPStorm’s SVN support is quite good, from what I can see anyway, although I don’t use this feature much. I am more of a command line user when it comes to managing svn files, some how I feel more comfortable do these stuff on a shell :).

5. Smart SQL support and syntax highlighting – not just php syntax. PHPStorm is smart enough to figure out whether a given string is SQL query or not and highlight it accordingly.

6. It tells you when there are unused variables in your code. If a variable is not used in the current function, it will be highlighted as grey:



1. PHPStorm is Java based, which makes it another memory hungry IDE:

I just used a few hours and it jumped to more than 400M already. And sometimes it actually jumped to more than 700MB of memory usage and I am certain that once you are in the debugging mode, the memory usage will be much higher.

2. It is hard to work on two or more different projects under PHPStorm, as it doesn’t allow you to show more than one projects at a time. You will have to keep switching back and forward:

Update: You can actually open more than one projects in different windows

3. When you have lots of files open, it is hard to see which file you are currently on in the tab section, the color chosen is really poor:

Update: PHPStorm 3 has slightly better tab colors:

4. Well, it is commercial and you have to pay. It cost $200 for commercial use and $100 for personal.


So far I quite like PHPStorm compared with Eclipse. The performance  + SVN integration with inline diff are the key winner. I am certain that there are still lots of great features out there that are yet to be discovered. I will certainly persuade my boss to pay for the license as I will get performance gain out of this IDE.

Inspired by – Rich’s PHPStorm – my week’s trial