Develop on OSX (or anything else...), run production on Linux. That seems to be the standard modus operandi.
We use a Xen virtual private server (VPS) RimuHosting for production. The guys there seem very knowledgeable about running Rails (at least for a web host). They set up everything for us. Plus, it's nice having total control over everything on your server; even root access.
We tried a host that offered just a shared environment (A2), but Rails would hog the CPU and memory like crazy. And they wouldn't let us run FCGI in a shared environment b/c they said it didn't play nice with others. So we had to run SCGI which wasn't stable. It was a major pain, and I wouldn't recommend a shared environment for any production Rails app that gets even modest usage.
I use it extensively (every day) to develop large, internally-focused applications. Our production environment is Linux Debian, while our development environment is (ugh) Windows.
We use Eclipse with the RDT plug-in for Ruby. It's quite nice. Not as great an IDE as IntelliJ IDEA, but pretty good. There's not much Ruby-specific functionality in Eclipse yet that I can see, but it's certainly better than a basic Windows editor.
We also use PostgreSQL, which has been very nice, stable, and fast. We've never had any problems with it and ROR. We use phpPgAdmin to administer it on production and pgAdmin III to administer it on development, both of which are fairly good database browser/query tools.
So far the experience has been great. More worrying than the tools is ActiveRecord, which has a lot of nice features, but a few really glaring holes.
I completely agree: PostgreSQL should now be *the* open-source database of choice.
I used to use MySQL extensively. Then six months ago, a new client required that we use Postgres. What an eye-opener! Honestly, I'm *never* going back to MySQL. I can't believe I wasted all that time trying to get MySQL work properly, configured right, rewriting SQL to work-around holes in their implementation...
PostgreSQL is fast, stable, and full-featured. It also has a good *open-source* front-end GUI client, pgAdmin. Our production database has never failed in the four months since we released. The required configuration, administration, and maintenance is pretty minimal. You can fairly well just install it, create tables, and start putting data in. The feature set is so much better than MySQL. And you don't have to worry about some company (MySQL AB, or worse, Oracle) controlling your future.
There are probably areas that MySQL does better (replication, perhaps?), but for most situations I have to think that Postgres is better. Plus, when your company gets bought out by the suits for big bucks and they switch you to Oracle, you'll have to rewrite less SQL than if you started with MySQL!
Why is MySQL so popular? Marketing. I think MySQL just got some marketing buzz behind it (probably because they actually have a company to do public relations), then someone coined that dumb LAMP acronym, and O'Reilly publicized the heck out of it. Forget that LAMP stuff; go with LLPRR (OK, an even worse acronym) -- Linux/Lighttpd/PostgreSQL/Ruby/Rails. Or maybe Nitro/Og instead of Rails; hear it's great but haven't checked it out yet...
Video games have had a big effect on tank gunners too.
I read (a few years ago; can't find the reference now) that the US Army has run the same hand-eye coordination test on every tank gunner recruit since WWII. The average score didn't budge from the 40s all the way to the early 90s, when it started to improve. By the late 90s, average scores had so dramatically improved (doubled if I remember correctly) they were considering revising the test.
They believe that this improvement is solely due guys growing up playing video games.
I like using Ruby for this kind of work too. The language is *so* much nicer and easier to work with than Tcl, VB, C#, etc...
I tend to use wxRuby (a subset of wxWidgets / wxWindows) for the GUI toolkit. It works nicely and looks good. However, since it does auto-layout using spacers and such, it might take some time to get used its new paradigm. But once you learn it, it rocks. No more specifying exactly where things go; the toolkit ensures everything lines up right and spaces out right. There are some GUI design tools for it...umm, maybe wxGlade I think?
The downside to this is that (as of summer '05) the tools to wrap up Ruby programs into an.exe package were not totally flawless. I always seemed to have to manually edit the packaging configuration file to ensure that it included all the correct files. But that only took a few seconds. Maybe those programs have been fixed since then (hopefully). RubyForge is a good place to check for them.
I use Eclipse on Windows with the Ruby plugin (RDT). It's great. But you can use any old text editor if you prefer, especially for a small project.
The upside is that you'll be learning Ruby, which is not only a great language, but is also on the upswing! And those skills will be applicable to Web app development too (using Rails). Might be a great skill for you to pick up. Might as well learn a language of the future instead of one of the previous century.
Develop on OSX (or anything else...), run production on Linux. That seems to be the standard modus operandi.
We use a Xen virtual private server (VPS) RimuHosting for production. The guys there seem very knowledgeable about running Rails (at least for a web host). They set up everything for us. Plus, it's nice having total control over everything on your server; even root access.
We tried a host that offered just a shared environment (A2), but Rails would hog the CPU and memory like crazy. And they wouldn't let us run FCGI in a shared environment b/c they said it didn't play nice with others. So we had to run SCGI which wasn't stable. It was a major pain, and I wouldn't recommend a shared environment for any production Rails app that gets even modest usage.
I use it extensively (every day) to develop large, internally-focused applications. Our production environment is Linux Debian, while our development environment is (ugh) Windows.
We use Eclipse with the RDT plug-in for Ruby. It's quite nice. Not as great an IDE as IntelliJ IDEA, but pretty good. There's not much Ruby-specific functionality in Eclipse yet that I can see, but it's certainly better than a basic Windows editor.
We also use PostgreSQL, which has been very nice, stable, and fast. We've never had any problems with it and ROR. We use phpPgAdmin to administer it on production and pgAdmin III to administer it on development, both of which are fairly good database browser/query tools.
So far the experience has been great. More worrying than the tools is ActiveRecord, which has a lot of nice features, but a few really glaring holes.
I completely agree: PostgreSQL should now be *the* open-source database of choice.
I used to use MySQL extensively. Then six months ago, a new client required that we use Postgres. What an eye-opener! Honestly, I'm *never* going back to MySQL. I can't believe I wasted all that time trying to get MySQL work properly, configured right, rewriting SQL to work-around holes in their implementation...
PostgreSQL is fast, stable, and full-featured. It also has a good *open-source* front-end GUI client, pgAdmin. Our production database has never failed in the four months since we released. The required configuration, administration, and maintenance is pretty minimal. You can fairly well just install it, create tables, and start putting data in. The feature set is so much better than MySQL. And you don't have to worry about some company (MySQL AB, or worse, Oracle) controlling your future.
There are probably areas that MySQL does better (replication, perhaps?), but for most situations I have to think that Postgres is better. Plus, when your company gets bought out by the suits for big bucks and they switch you to Oracle, you'll have to rewrite less SQL than if you started with MySQL!
Why is MySQL so popular? Marketing. I think MySQL just got some marketing buzz behind it (probably because they actually have a company to do public relations), then someone coined that dumb LAMP acronym, and O'Reilly publicized the heck out of it. Forget that LAMP stuff; go with LLPRR (OK, an even worse acronym) -- Linux/Lighttpd/PostgreSQL/Ruby/Rails. Or maybe Nitro/Og instead of Rails; hear it's great but haven't checked it out yet...
Video games have had a big effect on tank gunners too.
I read (a few years ago; can't find the reference now) that the US Army has run the same hand-eye coordination test on every tank gunner recruit since WWII. The average score didn't budge from the 40s all the way to the early 90s, when it started to improve. By the late 90s, average scores had so dramatically improved (doubled if I remember correctly) they were considering revising the test.
They believe that this improvement is solely due guys growing up playing video games.
I like using Ruby for this kind of work too. The language is *so* much nicer and easier to work with than Tcl, VB, C#, etc...
I tend to use wxRuby (a subset of wxWidgets / wxWindows) for the GUI toolkit. It works nicely and looks good. However, since it does auto-layout using spacers and such, it might take some time to get used its new paradigm. But once you learn it, it rocks. No more specifying exactly where things go; the toolkit ensures everything lines up right and spaces out right. There are some GUI design tools for it...umm, maybe wxGlade I think?
The downside to this is that (as of summer '05) the tools to wrap up Ruby programs into an .exe package were not totally flawless. I always seemed to have to manually edit the packaging configuration file to ensure that it included all the correct files. But that only took a few seconds. Maybe those programs have been fixed since then (hopefully). RubyForge is a good place to check for them.
I use Eclipse on Windows with the Ruby plugin (RDT). It's great. But you can use any old text editor if you prefer, especially for a small project.
The upside is that you'll be learning Ruby, which is not only a great language, but is also on the upswing! And those skills will be applicable to Web app development too (using Rails). Might be a great skill for you to pick up. Might as well learn a language of the future instead of one of the previous century.