Hacker News new | past | comments | ask | show | jobs | submit login
Show HN: Rails One Click Installer for Mac Os X (github.com)
92 points by oscardelben on Apr 14, 2012 | hide | past | web | favorite | 68 comments

Hmm there was this a couple of weeks ago: http://www.kickstarter.com/projects/1397300529/railsapp?ref=...

I guess you don't need $44,219 to make "rails simple again".

What a stupid comment. $44,000 is ~2/5ths of a Sr. Rails Dev's salary. If Engine Yard, Github, Joyent or Force/Heroku announced that they were going to furlough one of their senior devs to work for 5 months on the best possible OS X Rails installer, we'd be cheering them on.

But Yehuda Katz has the temerity to suggest that working directly for his end-users might be a good way to accomplish the same goal, and for that, earns snarky bullshit like this.

I was just pointing out that there is someone who wanted $25k upfront and here we have someone who will do the work for free. That's all, just context.

And since you mentioned it, $44k is a two full years salary where I live, so excuse me if I think that's a bit much for a installer script.

Other than that, I have no interest in this since I'm not a RoR developer nor am I planning on becoming one. Like I said, I just wanted to provide context.

Yehuda Katz isn't just some average 'someone' we don't know. He has a proven track record. He's a core member of the ROR team and he was lead on Merb.


It's like saying, "Yeah Slash or Eddie Van Halen needs 40k to record a few tracks, but this kid from across the street will do it for free."

To add to that, most open source contributors live in large metros that aren't cheap (in the West and East Asia). $25k does not even come close to covering a year in those areas.

With all due respect we're not talking about kids across the street here. We're all professional developers trying to contribute something. I'm perfectly fine with people making money especially those who have contributed so much, but is it possible to continue to contribute like we always did without looking like some kid across the street?

> With all due respect we're not talking about kids across the street here.

That was the only analogy I could think of when comparing guitarists. I didn't mean to equate both you and myself to famous programmers as children, but that's the best I could do in 5 min. My point was just to show that Yehuda isn't some average unknown panhandling for money. He's well known and he's already given a lot to the community and not to just Ruby.

I don't have a problem with anyone making money if one can. Good for him I say (the opposite was not my intention in the original comment), he found a way to make some money while doing open source software.

I don't think you understand. This isn't "a way to make some money while doing open source software"; if anything, he's probably losing money on this.

The man is taking time off his job to do something he loves for a community which he's put a lot of time into, and that's something anyone should respect.

I can certainly respect that. But I can also respect (and maybe more) someone who does the same thing in his spare time, but for free.

In case you haven't already noticed, Yehuda has done plenty of that already.

5 months is a short waterfall dev cycle. Allocating one dev to "best possible OSX support for our dev platform" is a totally reasonable thing to slot into a cycle.

But since you don't know what you're talking about, I'm left wondering why you bothered to comment on this thread. What context could you possibly have to offer?

The level of irrational behavior dollar signs generate on HN is baffling.

Sorry I really have nothing to say to you since you apparently have some false assumptions about me and ignore what I write and I can't have a conversation that way.

There may or may not have been someone willing to do it for free, but that doesn't invalidate the effort Yehuda is willing to put in, or the price he has attached to it.

Once upon a time, my neighbor brought me a cake that they had made. It was fantastic. They weren't a professional baker, but could likely have sold the recipe to that cake, as I enjoyed it immensely.

Does this now mean that all other cakes aren't worth it? If I go to the grocery store, can I just walk out with a cake because "someone else is willing to do it for free"?

Obviously, the answer is that I can't. You're perfectly welcome to think whatever snide things you like about wycats, but it seems like kind of a douchey thing to do unless you were personally willing to provide Rails.app.

oscardelben is. Perhaps it's to make a name for himself? Perhaps it's because he believes it should be done? Perhaps it's because he believes that wycats shouldn't be charging money for it? Who knows?

It's awesome that he's doing it, and it makes him look like a big giant hero. He deserves every kudo that comes his way -- but that doesn't mean, for one second, that wycats shouldn't be able to accept money people are willing to give for a task he can perform very well. wycats is a proven developer, and doesn't need any reputation. (Not saying that oscar isn't -- I don't generally follow Rails development that closely. Apologies if he's the Linus Torvalds of Rails or something.)

And at the risk of sounding like a tool, we should probably point out that oscardelben's project isn't finished, and is described, in the Readme as "Not ready". It might take him a few months to get it perfect.

5 months to develop a trivial shell script? Where could you possibly work that this could remotely be true?

Nobody is suggesting it costs $44,000 to write a "trivial shell script".

Where is the proof that rails is hard to install and needs 5 months of work? Maybe more documentation is needed on best practices but 5 months of work for a specialized installer? No thanks.

Here's some anecdotal evidence.

I spent a day recently trying to install Rails on my Air. I fiddled with it once back when Locomotive worked. I was expecting a nice clean drag-n-drop like that or MAMP. Instead I wasted half the day with broken Locomotive, then spent the rest of the day installing the dev tools (which space I can ill spare on my Air) and getting it running. I lost all desire to actually fuck wih it during that time. Now I want to nuke it because something's eating up all my free space and it started a little after I installed ROR. And I have no fucking idea where to start aside from just flushing the machine and restoring apps/data from backup.

So that's one piece of any data from a frustrated artist/occasional hobby coder who really never wants to touch the command line in her life. This is what it's like for a noob: scary, frustrating, and confusing.

So, uh... I'm a little confused here.

About a year ago I opened a terminal on my Mac and typed:

    $ gem install rails sqlite3-ruby
I waited a few minutes for it to finish, then made a new directory, created a new rails project, ran 'rails server', opened a browser, and it worked.

Has this changed dramatically? I'm not talking about people who want to test out 5 different versions of ruby and rails simultaneously. I'm just talking about the basic first-time rails developer who wants to get a rails env up and running quickly (which is explicitly the audience for this one-click installer).

If you want or need ruby 1.9.x, then that's a little more work. Install homebrew or MacPorts or whatever and install 1.9 through that, make sure that guy is first in the PATH, and then do the 'gem install' dance. But this is hardly something that needs 5 months of work and $40k to accomplish.

I had to use RVM and edit some config files in order to get Rails to run at all. Might not be a big deal of people who are used to that kind of thing, but it did not make a good first impression to beginner like me.

This doesn’t seem to be isolated to Rails though, Django seems to have gotten harder. I actually gave up installing Django due to a localization bug.

This isn't complicated. 3-4 months of Katz' time costs $40k. That's not a matter of opinion. So the only thing we have to discuss here is, "how much better can Katz make the OS X Rails experience in 3-4 months". As a Mac Rubyist, my guess is, "lots".

Ugh... Your tale sounds all too familiar. I had a very similar situation on my previous MBP. Tried to install some stuff (MAMP was a cohort in the chaos here too...) and ended up spending three days on the command line pretty much at that stage running commands that I copied and lasted from blogs and forums where people had posted after having similar issues but not really knowing from shit what those commands actually did.

Ended up backing away slowly and never looking at RoR again.

Honestly: I am an experienced programmer and all I could make of the install process (plus the attempted installation of some gems) was an utter dogs breakfast.

So as anecdotal evidence goes - add mine to the list please.

I'm not familiar with Locomotive but I would say that most of the time getting my environment working had to do with installing other technologies like resque, mysql, mongo, heroku, gems (devise,haml,aws-ses,rspec,cucumber,pdfkit,js-routes), etc.

I'm guessing the majority of people don't spend the majority of their time installing rails. It's all the other requirements that are needed to build out the application.

Further to my post above: yes - as you have pointed out, if memory serves it was the installation of certain gems that embuggered the whole thing.

On the subject of figuring out where your free space is going, check out http://whatsizemac.com/ - it's great for tracking that kind of thing down.

Where's the proof that Rails has achieved the platonic ideal of OS X support for a dev platform? What, not arguing that at all? Then why is it hard to understand how 5 months of Katz's time could be well spent there?

It's hard to understand because none of the tools the typical developer works with are ideal. But trying to make something perfect that already works well? It's a waste of developer time.

It doesn't work well, and many people spend a day or more setting it up correctly on OS X (there was one commenter in the thread announcing his project that said that he had spent 3 days getting it working right). That's the point.

I can see many ways he could spend 5 months making this great and configurable setup utility, and since so many people will use it if it's good, it's worth one person spending a long time on it. It will probably save 40k of value in terms of time for the world within the first day of its release, and after that, it will keep on giving.

Yeah, cause one thing is for sure, if atomical doesn't need it then no one does, eh?

I think you need the money to get past "This software is not ready! I'm still working out some major problems."

No I'll need time for that. This is just 4 hours of work. I posted it now because I'll need help from the community as it evolves (especially testing)

Way to completely miss the point. We'll have a good laugh when we compare the two projects in the end. What Yehuda is coming up with will be WAY more than a simple installer. Maybe you should read his description of the Kickstarter project before you make up your mind.

I'm sorry, but what an asinine comment. This is a "Rails installer" app. This is completely different than the project you linked to on Kickstarter.

You're receiving a negative reaction here because you made a disingenuous comparison. If you honestly can't see the differences, then you have no place in the discussion.

You are, of course, welcome to your opinion, but do not be surprised when others answer in kind.

Came here to say the same thing!

Author here. I hope this can help the community, especially Yehuda with his own one click installer project.

Have you seen Jeremy McAnally's Railcar[1]? It might be worth a look since there seems to be some overlap in goals (even if maybe not in how you get there).

Edit: Here's a link to JM's blog post explaining his choices for Railcar[2].

[1]: https://github.com/arcturo/Railcar

[2]: [1]: http://omgbloglol.com/post/20783445544/on-railcar-an-isolate...

I hadn't. What I want to make though is a sandboxed environment that doesn't use rvm, etc and that provides everything you need. I also want to make an interface for beginners to easily run the server, execute commands, etc.

That's pretty much what I've built. I just use RbEnv to setup the environment for each version of Ruby installed. Running the server, etc. is already built.

I looked at your project and it looks very nice indeed. Nice work.

This looks like a nice idea, but I'm echoing others in wondering why this is necessary. Tools like RVM make it fairly trivial to maintain distinct versions of rails, associated gems etc.

The author might make this more compelling by sandboxing things like nginx, unicorn, etc. (in the path that MAMP and such have taken) that are a bit more of a pain to manage independently on OS X.

I agree. This seems at this time to focus on the already easy to install/configure parts (a Ruby build and Rails gem) and not the harder items (like Nginx).

I prefer to use rvm :)

    curl -L get.rvm.io | bash -s stable
    source ~/.bash_profile
    rvm install 1.9.3
    gem install rails

Yeah, I would agree strongly. The folks who'll use this are beginners and nothing sucks more than having some weird one-off environment that nobody else uses. I teach a lot of Ruby classes and I always tell people to do things in the most common way. That way, if they need help, the people helping them will feel right at home, and anything the beginners might google themselves will also apply. This is not the case if your one click installer doesn't follow the most common paths. It's convention over configuration, remember? Lastly, what I've been missing in the one click installer discussion is maintainability and upgradability. This is exactly the problem that brought about tools like bundler, rvm, homebrew or Debian/Ubuntu packaging.

Sssooooo yeah. Let me speak for the beginners such as myself.

A week or two before Yehuda announced his KS, I decided I wanted to fuck around with ROR. I blew like a half a day wrestling with Locomotive. Then I followed... some reciepe, I couldn't tell you where I found it.

By the time I got that working I had blown the whole day. And I had no energy to actually try, you know. Fucking with ROR. I still haven't.

And ever since I did this, I've been having problems with something filling up the limited space on my Air. When I reboot it goes back to normal, but within a week I've got my computer bitching about being out of space.

Is it something my installation of ROR and it's support infrastructure is doing? Hell, I don't know. And since I honestly have no idea what exactly I installed where, it's pretty much impossible for me to uninstall ROR and it's infrastructure to find out if it's the cause.

If I'd been using a self-contained package like MAMP (or like what Locomotive used to be) then I'd be able to nuke it at the drop of a hat instead of spending a day or two trying to piece together what I did, try to remove a ton of command-line packages, and hope I don't accidentally kill off something my machine actually depends on for basic operation.

I think it is very very important for beginners to be able to say "gee I didn't get into this and I need space" and quickly remove it. Your method of using "the most common way" is very hostile to this.

rvm lets you very easily uninstall everything:

    rvm implode

oh man thank you!

runs to her terminal

tealfour:~ egypt$ rvm implode -bash: rvm: command not found

Well poop. Thanks anyway!

Haha. Did you follow the install instructions and append that "[...] && ..." line to your .bashrc? It is necessary to load rvm into your console.


  brew install rbenv
  brew install ruby-build
  ruby-build --definitions
  rbenv install 1.9.3-p125
Not trying to debate RVM, which I never had a problem with, just throwing out an increasingly popular alternative.

For Rails, "sudo gem update --system; sudo gem install rails" is not sufficient ?

Seems like I should post my famous 5 lines again:

1. Install XCode and homebrew

2. sudo brew install {postgresql,rbenv,ruby-build}

3. Close terminal. Open terminal.

4. mkdir proj && cd proj && rbenv install 1.9.2-p290 && rbenv local 1.9.2-p290

5. gem install rails && rbenv rehash

6. rails new foo

That should get you up and running on any OSX with a sustainable environment (i.e. one that you can actually reproduce in the future and that can mimic your live servers).

This is correct, but replace 1.9.2-p290 with 1.9.3-p125.

Plus falcon patches? Here's a ruby-build formula for that:

    $ cat share/ruby-build/1.9.3-p125-falcon
    ## Hat tip to @burkelibbey and @metaskills - who did all the real work
    build_package_combined_patch() {
      local package_name="$1"
        curl https://github.com/ruby/ruby/pull/47.diff | git apply
        curl https://raw.github.com/gist/1859082/performance_and_backport_gc.patch | patch -p1
        ./configure --prefix="$PREFIX_PATH" $CONFIGURE_OPTS
        make -j 8
        make install
      } >&4 2>&1
    CC=$(which clang) install_package "yaml-0.1.4" "http://pyyaml.org/download/libyaml/yaml-0.1.4.tar.gz"
    CC=$(which clang) install_package "ruby-1.9.3-p125" "http://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.3-p125.tar.gz" combined_patch

There's this gist which combines all the patches and has you install a 1.9.3-p125-perf via rbenv: https://gist.github.com/2113359

Been using it at work for local dev and in production. Feels good, man.

> sudo brew install

No sudo. From https://github.com/mxcl/homebrew/wiki/FAQ:

> Why does Homebrew say sudo is bad? > tl;dr Sudo is dangerous, and you installed TextMate.app without sudo anyway.

> Homebrew is designed to work without using sudo. You can decide to use it but we strongly recommend not to do so. If you have used sudo and run into a bug then it is likely to be the cause. Please don’t file a bug report unless you can reproduce it after reinstalling Homebrew from scratch without using sudo.


When I returned to Rails after a couple of years away from it, I had to piece together a few different blog posts about setting up Rails 3 with Ruby 1.9 on Mac OS X to get my toolchain working, and even then I had to troubleshoot version-specific problems not covered in the blogs. I believe most beginners would have been deterred from continuing. I don't really use Rails on Windows much at all, but tried RailsInstaller on Windows 7 just for fun about a year ago and was delighted it worked so well and would like for beginners to have such an easy experience on a Mac, my OS of choice!

It's not. At the very least, you'll want to upgrade to a 1.9 version of Ruby - even in 10.7, I'm pretty sure it still comes out of the box with 1.8.7.

Also, most of the Ruby or Rails developers I know use either rvm or rbenv to have multiple versions of Ruby installed side by side.

I run Rails 3.2.3 with Ruby 1.8.7 on Snow Leopard without problems :)

Right, and that's the last release series that will support 1.8.7. Thus, you'll want Ruby 1.9 eventually. Besides Rails compatibility, 1.9 is faster, includes lots of nice new syntaxes and methods for doing things, better encoding support, etc.

Also, 1.8.7 EOL is so close that you should not choose it for new projects.

My MacBook EOL is also very close, I'm waiting for the new Apple hardware releas. I'll switch them both together : Christmas waaaaay before Christmas.

This is targeted at beginners with little/no programming experience.


This is great. Have just been installing rails on 3 friends macs, cuz' I'm working on a project with them - Meer.li - and it is such a terrible experience each time. Looking forward to what this can become.

This should hopefully help in eradicating "Chapter One: Installing Rails" from most Ruby on Rails books. Perhaps one of the the most frustrating chapters that someone beginning to learn Rail's faces.

Because everyone develops Rails in OS X? I hate that assumption.

Love it. Ideas like this make the first step that much more welcoming.

How would this compare to say the BitNami RubyStack, I've been using this to keep multiple Rails version (2.x and 3.x) running on Lion:


rvm or JewelryBox should be fine to me under Mac OS x

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