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).
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>
endif
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.
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.
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).
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, 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.
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.)
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.
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.
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.
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. :(