Hacker News new | past | comments | ask | show | jobs | submit login
My Recent Development Stack: OS X Tools (renownedmedia.com)
83 points by tlhunter on Feb 2, 2012 | hide | past | favorite | 65 comments

Thanks for the heads up on Jason. I work with a lot of web apis and this looks like a great tool for browsing json responses.

I use this Chrome extension to view JSON responses directly in browser https://chrome.google.com/webstore/detail/chklaanhfefbnpoihc...

The webkit inspector is also great for that. you can paste js and browse it in a nice way.

On most pages you can even just open the inspector (cmd alt i) and do $.get() to inspect json from random places

This is also a great website for quickly viewing prettyified json:


Another great way is via the json ruby gem, which installs a prettifier which can be used from the command line, like this:

    curl 'http://api.twitter.com/1/statuses/user_timeline.json?screen_name=twitter&include_rts=1 | prettify_json.rb| less

Another way to do it without having to install anything extra:

curl "http://api.twitter.com/1/statuses/user_timeline.json?screen_... | python -m json.tool | pbcopy

I use the Chrome extension JsonViewer. It automatically formats the json. Great for api inspection.

My application Library Inspector is also pretty useful if you are a developer: http://www.oriontransfer.co.nz/software/library-inspector

If you are developing Mac and iOS applications it is especially useful as it gives .a and .dylib files custom icons indicating their architecture.

Jason looks great. It definitely makes JSON management easy. I loved it and even donated money.

GitX is good (and free), but if you're looking for the best Git client for Mac, without a doubt it's Tower (http://www.git-tower.com/).

I've been using GitX for months and it's pretty good, but it still buggy at times. I've been using the GitX (L) fork, since the original GitX doesn't seem to be actively maintained anymore. It's available here: http://gitx.laullon.com/

A few days ago a co-worker turned me on to SourceTree (http://www.sourcetreeapp.com/), which is also free and developed by Atlassian. I've got to say it's a bit more polished and so far it looks like it might be replacing GitX for me.

I just found source tree myself and really enjoy it. The best feature for me is how it allows you to view diffs of all your changes as you write your commit message, that makes it easy to include good detail on all changes.

Also, it's great that Source Tree supports multiple projects. I tried Tower a while ago and it only allowed you to have one project open at a time. Maybe that's changed now, but it's also not free.

I don't agree; Tower is pretty good (and pretty pretty), but SourceTree is siginificantly more performant and full-featured. It's much faster than Tower with large repos, and can open more than one repo at the same time, supports Git submodules (not to mention Hg and svn, though I don't need/use those).

I bought SourceTree for $60 and was completely satisfied, but since then Atlassian bought it and made it free. I would say SourceTree is the best Git client for Mac (or any platform).


I recently wrote a pretty detailed list and review of Git GUIs for Mac.

It includes 3 forks of GitX, Tower, SourceTree, and Gitbox.

Hopefully people find it of use.


Gitbox is a simpler, faster, cheaper ( and better IMO) git client for OS X http://gitboxapp.com/

GitHub's OS X client also works with non-GitHub-hosted repos.

didn't know that. thanks!

Interesting, this article helped me with some VIM issues.

Does anyone know if you can open multiple docs in macVIM, in the same window and switch back and forth between?

Vim buffers fit what I think you're describing. Put `:set hidden` in your vimrc and you can flip between buffers in the same window with no trouble.

You can also use tabs in macvim and split windows, or any combination of buffers, tabs and splits. It's pretty flexible that way.

I'd be really interested in hearing how you got the swipe left/right commands to map to buffer management in MacVim.

He linked to his vimrc on github from the article. The binding is done in this block:

  if has("gui_macvim") "Use Experimental Renderer option must be enabled for transparencY
    set transparency=15
    set guifont=Monaco:h10
    set noantialias " I like my Monaco this way ;D
    " Swipe to move between bufers :D
    map <SwipeLeft> :bprev<CR>
    map <SwipeRight> :bnext<CR>

Ah, I missed that- thanks!

It's been a lifesaver. I usually have 20 buffers open and swiping between them makes editing a lot quicker.

I don't see what people get out of Property List Editor style interfaces - syntax highlighted JSON is easier to read once it goes through a prettifier, and surely writing JSON is drastically faster with a text editor.

I like GUI tools for quickly visualizing data, otherwise you're correct, a text editor is (currently) better/faster for editing.

Can anyone recommend a good GUI on Mac for Postgres? Sequel Pro is amazing, but it unfortunately only supports MySQL.

There is always pgAdmin (http://www.pgadmin.org/) which is very close to the Postgres core development and thus is always updated to support the latest features of Postgres.

It suffers a lot from the has-to-work-on-all-platforms UI design issues though (even though it uses wxWidgets).

Personally, I hardly ever use the GUI tool (the exception is explaining really big query plans) because the command line psql client is really, really good. It has an awesome line editor and so many convenience features like always shelling out into $PAGER for big result sets, or the very handy \x mode.

And it offers tab-completion not just for internal commands, but even for the SQL queries you are typing.

$EMPLOYER's databases are behind a firewall, so I've never had access to a GUI tool, and learned to love psql.

When I need to pick apart a query plan, I paste it into http://explain.depesz.com.

Try pgedit.com

I've found that when it comes to GUI tools the Mac is your best friend. Even a good majority of command lime stuff is really a joy to use. I'll never abandon the Mac but I must say that the deeper into my programming journey I get the more I'm reaching for my Linux machine. Last week I caught myself thinking of dumping the Mac altogether! But that's heresy and I quickly banished those thoughts.

The Mac gives you a really great portion of 2 worlds - the ability to operate from the terminal much like Linux but with amazing support for anything requiring you to either use or create GUI apps. The only problem is that once you venture off too far in one direction or the other you're either wishing you were on your Mac or you Linux machine. I don't subscribe to the belief that on OS is superior to another. Mac and Linux each have their very special uses. Instead I subscribe to the belief that 2 OSes are better than the third (unless you're coding for Windows exclusively in which case I wouldn't want to be you).

Out of curiosity, what were you missing from Linux?

That's not to say I don't miss things from Linux (/proc, XMonad to name two), just nothing all that much.

For me it's a package manager that does not require a compile every time I want to install something.

edit: also macports seems fragile too.

Ah, macports is a bit fragile, yes :) I'm pretty happy with homebrew, however (for the most part). Plus writing formulas for homebrew is really easy.

+1 on Homebrew. I had both fink and MacPorts running at one time. Homebrew is more pleasant in every respect (my opinion, of course).

I liked homebrew until I needed pygtk. I don't know of any good way to install that but with macports and boy is it a pain to install without a package manager. And once I needed macports. I also like to have a recent version of gcc. This also required macports.

Homebrew is great. Macports is good, too, if you like seeing which programs will segfault due to the version of OpenSSL it currently includes.

Homebrew is great, but it's quite annoying that one day Apple decides to drop straight gcc from Xcode, making many Formulae uncompilable. Yes, you can install an older Xcode first, or use a 3rd party gcc build. But in Linux distributions such as Debian, they'd just keep 'deprecated' things around for some time

I like Homebrew but I wish there was something like porticus for it (a way to browse and install available packages) - unless I am just missing something.

I miss Apt from Debian.

And I really, really miss being able to get *-dev packages.

Can't you run XMonad on a mac? I'm pretty sure a couple people I know do just that. (There might be some wrangling and virtual machines, but I doubt it.)

You can run XMonad on a Mac, but it will only tile X11 apps, not standard OS X apps, which unfortunately makes it fairly useless for me.

And of course, working in a VM with it is always an option (and I have a VM setup with it for when I want to drop back into linux).

Does that include Chrome? Because I've definitely seen them use Chrome, and it looked Mac OS-y. Of course, the people I'm thinking of probably have a different outlook on OS X: they like it, but not the UI. (That's a paraphrase from one of them:)).

I've fiddled with xmonad on the mac, and as someone else said it only tiles X11 apps. This is not totally useless as I primarily like xmonad for controlling terminal windows, so I set it up to manage urxvt instances. I used xmonad.layout.gaps to make it avoid my dock area (I like my dock on the left, and I like to have the dock even when xmonad is around) and it seems to work well but the configuration breaks in subtle ways (doesn't start up sometimes, etc). I haven't put any more time into figuring it out. I might just go the VM route to get my xmonad fix. If Lion's x11.app had true Lion fullscreen support it might work better, but it doesn't yet.

I missed apt-get a teeny tiny bit but Homebrew is amazing. I'm not really into customizing my system all that much either so it wasn't that either. It's Lion that has me a little upset.

First off, Lion has replaced GCC with LLVM which for the most part is fine but I was doing some work with Ruby that I started on my Linux machine then when I cloned it on my Mac (which is where I do the majority of my work) I had problems with Rubygems and RVM. This was due to me having the latest Xcode 4.2. I was getting a weird Posix error because some gems needed to be compiled with GCC. So then I had to remove Xcode, get GCC as a standalone install and I'm still stuck with errors. Most things work but the other day I just wanted to deploy a new Octopress blog and rake generate throws a long list of errors at me. So that was the first time I was truly upset with Mac.

Then the other little things are:

- inability to save or rename files without a name (as in .htaccess). I always have to open my main text editor for that as you can't rename files that way nor does TextEdit allow that

- no more "Save as"

Showing hidden files got a little harder too and then there were some general quirks that made it seem like the OS was babysitting me and not letting me just do what I knew I wanted to do. For the most part I'm over those and I love my Mac to death but I'm still pissd about how much of a chore it is to get RVM and Runygems working in Lion.

AFAIK Xcode still ships with gcc, even though llvm-gcc is default. I regularly use "brew install --use-gcc" for things that don't work with llvm-gcc.

I believe rake should allow you to specify a C compiler on the command line. Even if it doesn't, you can temporarily change your CC environment variable to point to the gcc binary instead of llvm-gcc and things will probably work. Probably.

No, it's not included anymore, though you might still have it as a result of upgrading from an older version of Xcode.

More information is in the Homebrew issue:


I thought the same thing and while it should work like that it doesn't. I've gone through specifying the compiler, making a symbolic link to GCC, messing with my bash_profile... there's just a lot of problems. I'm probably going to have to do a clean install of Lion as getting things to all work involves a fragile, and very specific Procedure I think I've found.

Awww come on, windows isn't that bad, I find VS2008 or 2010 + Kiln to be a pretty good combo.

I can't stand Windows. I don't hate it out of some fanboy fetish as that's not fair. With Linux and Mac is can do pretty much anything without jumping through any hoops. As a web developer you're basically dealing with Linux on the server in most cases and most open source tools are built with Limix in mind as the final destination. Setting up a development environment with just about anything is very consistent and easy on Mac and Linux.

Try getting a basic AMP stack running on Windows. It's a pain and full of non standard practices. Even if you've found it easy to do, you probably have to deploy to a Linux environment for production anyway. Being sure everything works when moving from WAMP to LAMP environments can be risky.

But, of course, that all depends on the complexity and specifics of what you're doing. Everyone's mileage varies. It's been my experience that Windows is great.. if you're both developing,mtesting and deploying to production using Windows all the way through. Otherwise it's Mac/Linux all the way for me. But again, you can say the same of Mac/Linux. But why would you develop on Mac/Linux only to deploy to Windows anyway?

As for Visual Studio, I have Win7 and VS2010 on a machine I use every 6 months or so and I feel like I'm being smothered. VisualStudio wants me to write code in a way that locks me in to the Windows environment and that just not where I belong. I feel like the other platforms' IDEs just get out of your way and let you write code.

Honestly, I like the Mac because of its hybid GUI/command line nature. However, I also feel like it is the most restrictive OS that I have ever used. What I mean is that it actively stops me from doing things that I want to do. That is not to say that I cannot do them, just that the OS makes it harder. Some examples include showing folders like /usr in Finder and updating command line tools like autoconf (the easy way would be the linux way: with apt). I am making an application which will be primarily on Windows (where the market is) but making it cross-compatible with Mac for the singular purpose of using Valgrind. In any case, the project is entirely Makefile based and works on both Mac and Windows (with the help of cygwin).

I've never felt like I've had to jump through hoops to get things working on Windows, though I have been using it almost exclusively for 10+ years and hosting on it for 3 so maybe I've either tuned in so much that I just get it, or I just don't notice any problems I have because I'm so used to them. I'm aiming to give OSX a go soon.

That's exactly My point! If you're developing on Windows for Windows then you're golden but most of us have to deploy to a Linux server environment most of the time unless you're a pure Windows developers.

You may run into some issues when you switch to Mac but luckily there are far more resources out there to help you out that work on both Mac and Linux than there are for Windows. Windows isn't bad, it's just different and that different-ness can be a pain for the average developer.

IMO the best thing about the terminal on a mac is being able to select text and copy and paste it with the keyboard (since the CMD keys don't have a purpose in the terminal world).

I was going down the "Maybe I should ditch Mac" thought process last night when I had to recompile PHP on OSX Server (10.6) so that I could enable GD and FreeType. I wish Apple would just leave the sources in the same folders you find them in on linux as I had to hunt through my build flags to figure out why each one could not find the dependencies.

At 2AM I finally was able to do my sudo make install and everything was right with the world again. :)

PHP's build system has an awesome feature: every one of the included extensions can also be built stand-alone. There is no difference between an external and a bundled library.

So to add a bundled library to the mac's PHP, you download the PHP sources (most of the time, not even the version has to match) and you extract them.

Then you cd into ext/<name of extension> and type phpize, followed by configure and make install.

Now you can enable the freshly built and correctly installed extension in your php.ini.

No need to replace the system PHP with something home-grown.

This sort of thing led me to doing all development on a per-project Linux virtual machine. I started by using various development stacks (LAMP, LEPP, whatever) running under VMWare Fusion, using appliances from http://www.turnkeylinux.org/ or http://bitnami.org/. Then I discovered Vagrant (http://vagrantup.com/), which is a nice command-line driven tool for managing and provisioning base images. I use it for everything now.

You can run Lion virtualized under OS X, if you are so inclined, but I don't see any advantage to doing so.

I like the isolation of environments so much that even if I were to switch to Linux as my day to day OS, I would still develop every project in a VM.

You should use MacPorts or Homebrew - Googling suggests that Homebrew at least specifically supports php with freetype.

I agree Sequel Pro is awesome, hands down best MySql client I have used on any platform. I also love Textmate, great text editor. For CSS - CSS Edit can't be beat however the developer is no longer offering it as a standalone app. :(

For a free MySQL client ... maybe, but if you're willing to pay a little money, I think Querious is better designed http://www.araelium.com/querious/

If all you need is MySQL, the MySQL Workbench is pretty awesome now that it's a bit more stable:


Love Sequel Pro as well but HeidiSQL on Windows is great too. Both have their pluses, not sure which one I like more.

If anyone's looking for something like Sequel Pro but for SQLite, I recommend Base. Sadly, not free.

I only wish I could find a good Mac client for Postgres. pgAdmin III is awful.

Have you tried http://www.navicat.com/en/products/navicat_pgsql/pgsql_detai...

I haven't, but they have a full suite of tools.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact