January 14, 2014
Rails and Node.js
First post in nearly two months. My header is undergoing some changes, but I think it's time to settle a few matters with getting Ruby on Rails and Node.js running.
So let's put this thing together!
Firstly, I don't think we need to stress how much Ubuntu (or several other Linux distros for that matter) loves to get people to use their repositories to download software especially when their repos are out of date most of the time. So, to avoid this, let's get our Node.js from a more reliable PPA. Chris Lea gladly provides this. So before we install Rails, let's install Node.js using Chris's PPA.
One of the things I like about Node.js is the fact that it has a REPL just like Google Chrome has. A REPL is an interactive environment just like Bash, Ruby, Perl, and Python has. In fact, if yo want to try out some REPLs interactively, you can go to REPL.it and give Ruby, Python, and other REPLs a test drive. When you have Node.js installed, you can boot it up and play around with it like so.
Now that we have Node.js installed, let's take care of the other half of this post.
Hopefully, you've been reading my previous posts for how to properly install Ruby and JRuby. Here we use Ruby's
gem program to install Rails, because using
rvm is really only good for installing Ruby and jRuby (everything else is such a pain in the butt!). Using
apt-get is also foolish! Besides, what did I just say about using Ubuntu's repos! On RubyGems.org there is a Rails gem. We'll be using that to execute the following installation commands.
'Fraid so, figcaption element. However, there are somethings that are really REALLY important that I should point out.
- This gem will take some time to install. Do not press
CTRL+C. Do not Google "installing ri documentation for rails-4.0.2 stuck" because that is part of the process. Do not pass Go. Do not collect $200. Do something productive because this will take a few minutes. Go make a sandwich or find that old HTML5 Canvas project you did, no that other one--and give it a good update.
- You do not need to be root to install gems. In fact, go tell
sudoto make you that sandwich. Administrators might want to take heed of this...not that you have anything to worry about. *cough*
Lastly, there's the issue of getting Rails running. I find putting anything where I need to test stuff on
localhost) where it should go, in
Rails is quite new to me, and I hope to write up a few more blog entries for how to do stuff with Rails this year especially in the next few weeks.
First, because I can, I want to do all my Rails stuff inside a special sandbox folder called
railyard where I will set up a project called
train. Because I can use
sudo, I can also create this file in
So here's what happened. We told Rails to create a new project at
/var/www/railyard/train. I'm not sure if I need to do
mkdir train, but everything is working, so I'm happy with it. We then told Rails to start up the server. If everything is working, Rails should keep running in the prompt (which a good
rails server & (with an ampersand) will let it run in the background), and you should see a Rails boilerplate page at
http://localhost:3000/ since Rails is listening to port 3000. I'm sure there is a way to forward port 80 traffic, but for now it's running. Rails will stop if you type
CTRL+C. If that happens,
localhost:3000 will not become available, much like what happens when you stop the Apache HTTP server when you run
sudo service httpd stop.
There are two other things I need to look into. Firstly, I need to see if Rails uses Apache HTTP Server or if it uses something else like Nginx. Secondly, what database server Rails uses. Rails claims that SQLite is the default SQL database engine, but I still have MySQL available (and phpMyAdmin) though I'd really like to give MariaDB a spin. Maybe if I got the time, I can just start over from scratch and put it all on a Raspberry Pi. Ray Hightower did it although now he recommends using a BeagleBone Black. There's a lot of stuff I would like to do this year like build a 3D printer out of old computer parts. If Kodjo Afate Gnikou can make one for about $100 in Togo, why should the folks who produce all that e-waste keep sullying the third world with perfectly usable technology?
Like I said, there's much to do still. The year is still young.