From 50dd11cd0ca5f674f02fc40cd4968ce9def13d28 Mon Sep 17 00:00:00 2001 From: Nicholas Henry Date: Tue, 4 Mar 2014 20:38:04 -0500 Subject: [PATCH 01/36] Update topics controller to reflect simple scaffold generator --- ..._topics_list_after_creating_a_new_topic.step | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/sites/en/intro-to-rails/redirect_to_the_topics_list_after_creating_a_new_topic.step b/sites/en/intro-to-rails/redirect_to_the_topics_list_after_creating_a_new_topic.step index e13df0646..e6243f894 100644 --- a/sites/en/intro-to-rails/redirect_to_the_topics_list_after_creating_a_new_topic.step +++ b/sites/en/intro-to-rails/redirect_to_the_topics_list_after_creating_a_new_topic.step @@ -18,12 +18,12 @@ steps { message "Find the line:" - source_code :ruby, "format.html { redirect_to @topic, notice: 'Topic was successfully created.' }" + source_code :ruby, "redirect_to @topic, notice: 'Topic was successfully created.'" message 'and change `@topic` to `topics_path` like this:' - source_code :ruby, "format.html { redirect_to topics_path, notice: 'Topic was successfully created.' }" + source_code :ruby, "redirect_to topics_path, notice: 'Topic was successfully created.'" message 'so that the file looks like this:' @@ -33,11 +33,9 @@ def create respond_to do |format| if @topic.save - format.html { redirect_to topics_path, notice: 'Topic was successfully created.' } - format.json { render action: 'show', status: :created, location: @topic } + redirect_to topics_path, notice: 'Topic was successfully created.' else - format.html { render action: 'new' } - format.json { render json: @topic.errors, status: :unprocessable_entity } + render action: 'new' end end end @@ -47,12 +45,12 @@ message "In the same file, locate the update method. " message "Find the line:" - source_code :ruby, "format.html { redirect_to @topic, notice: 'Topic was successfully updated.' }" + source_code :ruby, "redirect_to @topic, notice: 'Topic was successfully updated.'" message 'and change `@topic` to `topics_path` like before:' - source_code :ruby, "format.html { redirect_to topics_path, notice: 'Topic was successfully updated.' }" + source_code :ruby, "redirect_to topics_path, notice: 'Topic was successfully updated.'" end step "Add the flash message to your application view" do @@ -76,8 +74,7 @@ message "In the same file, locate the update method. " explanation { message <<-MARKDOWN - * `format.html { redirect_to topics_path, notice: 'Topic was successfully created.' }`: - * `format.html` means that the server should send html back to the browser + * `redirect_to topics_path, notice: 'Topic was successfully created.'`: * `redirect_to topics_path` means show the **topics list page** when we're done creating or updating a topic * `notice: 'Topic was successfully created/updated.'` puts the message into the flash so it will be displayed on the topics list MARKDOWN From 726313c3eeb0b85f25c0dcc10985c55cd7555c11 Mon Sep 17 00:00:00 2001 From: flohdot Date: Tue, 4 Mar 2014 20:50:15 -0500 Subject: [PATCH 02/36] moving Windows from RailsInstaller to Vagrant (incomplete) --- sites/en/installfest/windows.step | 141 ++++++++++++++---------------- 1 file changed, 64 insertions(+), 77 deletions(-) diff --git a/sites/en/installfest/windows.step b/sites/en/installfest/windows.step index df83db451..83ae83d7e 100644 --- a/sites/en/installfest/windows.step +++ b/sites/en/installfest/windows.step @@ -2,101 +2,106 @@ message <<-MARKDOWN These instructions should work for all versions of Windows from XP to Windows 8. You may need to login as Administrator, or give the Administrator password when installing some programs, depending on your Windows version and user settings. -MARKDOWN - -step "Run RailsInstaller" do - message <<-MARKDOWN - RailsInstaller includes Rails, Ruby, Git, and SQLite. +Installing Ruby and Rails on Windows is easy thanks to the RailsBridge Virtual Machine. +This setup will give you Ruby, Rails, Git and the Bash shell. Let's get started. - Go to , scroll to the 'Downloads' section, and download the RailsInstaller for Windows/Ruby 1.9. +Make sure you have performed the [pre-workshop steps](/pre_workshop) @TODO: LINK. - Click on the downloaded file to run the install wizard. Click Next at each step to accept the defaults. +MARKDOWN - Be sure to check the boxes for *Install git (recommended)* and *Add executables for Ruby, DevKit Git (if checked above) to the PATH* +step "Launch Git" do - ![WinRailsInstaller.jpg](img/WinRailsInstaller.jpg) + message "Launch Github for Windows. It will install a few dependencies. Once this is done, you may close it again." - Rails will be installed in C:\\RailsInstaller and the directory for your Rails projects will be C:\\Sites + message "Launch the Git Shell. You can find a shortcut on your Desktop (grey circle with a cat), or locate **Git Shell** in All Programs under GitHub. A new (mostly black) window will open." - MARKDOWN end -step "Configure your git and ssh environment" do - - important "At the end of the installer there will be a checkbox asking 'configure your git and ssh environment'. **Leave this box checked.** It will open a terminal window that you need to **type into**." +step "Set up your Vagrant box" do - message "When it asks *Please enter your name, for example mine is: Wayne E. Seguin*" - message "Type *your actual full name* into the console and press **[enter]**" + message "If the file railsbridgevm-3.2-a.box file you downloaded before the workshop isn't on your desktop, move it there." - message "When it asks *Please enter your email address, for example mine is: wayneeseguin@gmail.com*" - message "Type *your actual email address* into the console and press **[enter]**" + message "Then type the following commands. Press ENTER after each command and wait for the operation to finish before typing the next one." - important "Use the **same email address** for heroku, git, github, and ssh." + console <<-BASH + mkdir ~/Desktop/railsbridge + cd ~/Desktop/railsbridge + vagrant box add railsbridgemontreal railsbridgevm-3.2-a.box + vagrant init railsbridgemontreal + vagrant up + vagrant ssh + BASH - tip do - message "After this step you will have some **git config settings** and you will also have an **ssh key**." - end - -end + message "If the process seems to hang after vagrant up, try hitting the ENTER key to get it going." -step "Windows 8 Only — Install Node.js" do + message "After typing the last command, here is what you should see (approximately):" - message "Go to and download the installer" + console <<-BASH + C:\\Users\\DiligentStudent\\Desktop\\railsbridge> vagrant init railsbridgemontreal - message "Click on the downloaded file to run the install wizard. Click Next at each step to accept the defaults." + A `Vagrantfile` has been placed in this directory. You are now + ready to `vagrant up` your first virtual environment! Please read + the comments in the Vagrantfile as well as documentation on + `vagrantup.com` for more information on using Vagrant. + C:\\Users\\DiligentStudent\\Desktop\\railsbridge> vagrant up + BASH - message "**Reboot your computer.**" + message "Bringing machine 'default' up with 'virtualbox' provider..." - message "Once your computer is back up, load **Command Prompt with Ruby and Rails** (see below) and..." + console <<-BASH + ...many lines left out... + [default] -- /vagrant + C:\\Users\\Diligent Student\\Desktop\\railsbridge> vagrant ssh + Welcome to Ubuntu 12.04 LTS (GNU/Linux 3.2.0-23-generic-pae i686) + ...many lines left out... + vagrant@precise32:~$ + BASH - console "node -v" - fuzzy_result "v0{FUZZY}.8.x{/FUZZY}" end -step "Update Rails" do - message "Currently, RailsInstaller installs Rails 3.2.x, but we want 4.x. Upgrading Rails is pretty easy:" +step "Open another Vagrant shell" do + message "Leave this terminal window open on your computer. To open an extra Terminal (console) into the virtual machine, open another Git Shell window, then type:" - console "gem install rails" + console <<-BASH +cd ~/Desktop/railsbridge +vagrant ssh +vagrant@precise32:~$ cd workspace + BASH - message "...and you're done. New Rails! Woo." -end - -step "Sanity Check" do - - console "ruby -v" - fuzzy_result "ruby 1.9.3{FUZZY}p125{/FUZZY}" - - console "rails -v" - fuzzy_result "Rails 4.0{FUZZY}.x{/FUZZY}" + tip "@TODO: workspace" + message "Continue with the next step of the Installfest. @TODO LINKY BACK" end -step "Open a Terminal" do - message "Much of using Rails is typing commands and hitting **[enter]**. Your experience using Rails on Windows greatly depends on your making friends with the terminal window. Normally you will work in a terminal window and keep it open along with your browser." - tip "The Terminal is also called the Command Prompt, Command Line, DOS Prompt, or DOS Window." +step "Sanity Check" do - message "RailsInstaller made a special Terminal for you to use when you're working on Ruby, Rails, or Git." + message "@TODO" - message "To open the special Terminal, choose **All Programs** on the Start menu, then choose **RailsInstaller** and then **Command Prompt with Ruby and Rails**. You should do all your Rails work in this RailsInstaller DOS window." +end - img src: 'img/railsbridge_findingCommandPrompt.png' - tip "Pin It to Win It" do - img src: 'img/railsbridge_windowsScreenshot-commandprompt-pinnedtotaskbar.png', alt: 'Pin the Command Prompt to the Task Bar' - end +step "Usage Tips" do + tip "Turning the virtual machine off and on" do - message "Here is a summary of your settings after this process:" + message "When you're done for the day, logout and stop your machine:" - img src: 'img/railsbridge_windowsScreenshot-commandprompt_ror.jpg' + console <<-BASH +logout +vagrant halt + BASH -end + message "And close the Git Shell window." -step "Configure the Windows Terminal" do - message "Take a moment to configure the *Command Prompt with Ruby and Rails* so that it is a good height and width and has a nice font. Hint -- click to open the link below, and when you finish those steps, hit the **back** button in your browser to resume this procedure." + message "When you want to use the virtual machine (tomorrow morning, for instance), start your machine. Launch Git Shell, then:" - link "configure_the_windows_terminal" + console <<-BASH + cd ~/Desktop/railsbridge + vagrant up + vagrant ssh + BASH + end tip "Clearing the Terminal" do message "If you ever want to clear the terminal of all its cluttered output" @@ -115,23 +120,5 @@ step "Configure the Windows Terminal" do end end -step "Install Windows Colors" do - - message "This step is optional, but **highly** recommended. Hint -- click to open the link below, and when you finish those steps, hit the **back** button in your browser to resume this procedure." - - link "windows_colors" -end - -step "Install a Text Editor" do - message "You need a text editor to do Ruby. If you already have a preferred text editor, such as vi, emacs, jedit, etc., you can skip this step. It must be a plain text editor and not something with styling like Microsoft Word or WordPad." - - message "Notepad is not a good programming editor, but it will work in a pinch." - - important "**When in doubt, use Sublime Text 2.**" - - message "[Sublime Text 2](http://www.sublimetext.com/2) is a good option, if you don't have one yet." - - message "Download Sublime Text 2 here: " -end next_step "configure_git" From b04ec3d7047dec027cfdc83a77914c607da7ba6c Mon Sep 17 00:00:00 2001 From: Nicholas Henry Date: Tue, 4 Mar 2014 21:11:29 -0500 Subject: [PATCH 03/36] Update command rails generate for app template The template removes jbuilder to give us a simpler scaffold generator --- sites/en/intro-to-rails/getting_started.step | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sites/en/intro-to-rails/getting_started.step b/sites/en/intro-to-rails/getting_started.step index 5139b33da..29957831f 100644 --- a/sites/en/intro-to-rails/getting_started.step +++ b/sites/en/intro-to-rails/getting_started.step @@ -12,7 +12,7 @@ steps do step do insert 'switch_to_home_directory' end - + step do console "mkdir railsbridge" message "This command creates a new directory for us to store our project in." @@ -30,7 +30,7 @@ steps do end step do - console "rails new suggestotron" + console "rails new suggestotron -m https://raw.github.com/railsbridge-montreal/rails_template/master/intro_to_rails.rb" message "'rails new' creates a new rails project with the name you give." message "In this case we told it to create a new project called `suggestotron`. We'll go into detail on what it created shortly." end From 375e2524e47a1a9657d7d766b0fe91f8e51f3f11 Mon Sep 17 00:00:00 2001 From: flohdot Date: Tue, 4 Mar 2014 22:53:04 -0500 Subject: [PATCH 04/36] add 'before the workshop' page --- sites/en/installfest/before_the_workshop.step | 125 ++++++++++++++++++ 1 file changed, 125 insertions(+) create mode 100644 sites/en/installfest/before_the_workshop.step diff --git a/sites/en/installfest/before_the_workshop.step b/sites/en/installfest/before_the_workshop.step new file mode 100644 index 000000000..732d1f7b6 --- /dev/null +++ b/sites/en/installfest/before_the_workshop.step @@ -0,0 +1,125 @@ + + +message <<-MARKDOWN + ## Pre-workshop downloads +MARKDOWN + +message "You must bring your own laptop to RailsBridge. If you have both a Windows system and a Mac or Linux one we suggest you bring the latter." + +message "Please download the pre-requisite software onto your laptop computer before you attend the workshop. This helps speed things up on Friday and helps prevent the WiFi network from getting clogged." + +message <<-MARKDOWN +### Students of the advanced class +MARKDOWN + +message <<-MARKDOWN + +We assume you've already made at least one Rails app in the past. If you already have a working Rails setup on your laptop, you do not need to do this. To check if you have a working Rails setup, try @TODO link , running `bundle` and running the app with `rails server`. If you can see your newly created app in the browser, you're in the clear. +MARKDOWN + +message <<-MARKDOWN +## OS X 10.6 and above: +MARKDOWN + +message <<-MARKDOWN +First, download [Sublime Text 2 for Mac](http://c758482.r82.cf2.rackcdn.com/Sublime%20Text%202.0.2.dmg). +MARKDOWN + +message "Then pick one of the following options. The main difference is that Option 1 will install Ruby and various tools directly into your computer operating system, whereas Option 2 will install a temporary and easy-to-remove 'virtual machine' containing all the software you need for the workshop." + +message <<-MARKDOWN +### Option 1. RailsInstaller +MARKDOWN + +message <<-MARKDOWN +Download [Railsinstaller for Mac](https://s3.amazonaws.com/railsinstaller/OSX/RailsInstaller-1.0.4-osx-10.7.app.tgz) from the RailsInstaller webpage. +MARKDOWN + +message "Don't worry about watching the video. Just leave the download in your Downloads folder." + +message <<-MARKDOWN +### Option 2. Railsbridge Virtual Machine +MARKDOWN + +message <<-MARKDOWN +Download +[VirtualBox](http://download.virtualbox.org/virtualbox/4.2.18/VirtualBox-4.2.18-88780-OSX.dmg) +for Mac. Run the installer after it downloads. +MARKDOWN + +message <<-MARKDOWN +Download [Vagrant](https://dl.bintray.com/mitchellh/vagrant/Vagrant-1.4.3.dmg) for Mac. Run the installer after it downloads. +MARKDOWN + +message <<-MARKDOWN +Download +[this file](http://s3.amazonaws.com/railsbridgeboston/railsbridgevm-3.2-a.box) and save it somewhere on your desktop or home folder. +MARKDOWN + +message <<-MARKDOWN +## OS X 10.5 +MARKDOWN + +message <<-MARKDOWN +First, download [Sublime Text 2 for Mac](http://c758482.r82.cf2.rackcdn.com/Sublime%20Text%202.0.2.dmg). +MARKDOWN + +message <<-MARKDOWN +Go to the [Apple Developer Center](https://developer.apple.com/downloads), +and click Register. Fill out the first page with your account information. +The second page is a developer survey, which you can skip. Just go to the bottom and click +"Continue". +MARKDOWN + +message <<-MARKDOWN +Once you have confirmed your developer account, you can download [Xcode +3.1.4](http://adcdownload.apple.com/Developer_Tools/xcode_3.1.4_developer_tools/xcode314_2809_developerdvd.dmg). +If that link doesn't work, go to the [downloads +page](https://developer.apple.com/downloads) and search for "Xcode 3.1.4" +MARKDOWN + +message <<-MARKDOWN +## Windows +MARKDOWN + +message <<-MARKDOWN +Please follow *all* of the instructions below. +MARKDOWN + +message <<-MARKDOWN +First, download [Sublime Text 2 for Windows](http://c758482.r82.cf2.rackcdn.com/Sublime%20Text%202.0.2%20Setup.exe) -- or [64bit version](http://c758482.r82.cf2.rackcdn.com/Sublime%20Text%202.0.2%20x64%20Setup.exe). +MARKDOWN + +message <<-MARKDOWN +Download +[VirtualBox](http://download.virtualbox.org/virtualbox/4.2.18/VirtualBox-4.2.18-88781-Win.exe) +for Windows. Run the installer after it downloads. You can quit the application +if it launches at the end of the installation. +MARKDOWN + +message <<-MARKDOWN +Download +[Vagrant](https://dl.bintray.com/mitchellh/vagrant/Vagrant_1.4.3.msi) +for Windows. Run the installer after it downloads. Agree to restart the computer if you're prompted to do so. +MARKDOWN + +message <<-MARKDOWN +Download [GitHub for Windows](http://windows.github.com/) and run the installer. +If prompted during installation, install the Microsoft .NET framework. +If GitHub for Windows automatically launches after installation, quit the application. +MARKDOWN + +message <<-MARKDOWN +Download +[this file](http://s3.amazonaws.com/railsbridgeboston/railsbridgevm-3.2-a.box) and save it somewhere on your desktop or home folder. +MARKDOWN + +message "If you have any trouble with the installers just keep the files on your computer and someone will help you at the Installfest on Friday." + +message <<-MARKDOWN +## Linux +MARKDOWN + +message <<-MARKDOWN +Just install Sublime Text 2 -- [32 bit](http://c758482.r82.cf2.rackcdn.com/Sublime%20Text%202.0.2.tar.bz2) or [64 bit](http://c758482.r82.cf2.rackcdn.com/Sublime%20Text%202.0.2%20x64.tar.bz2). +MARKDOWN \ No newline at end of file From 7d10fc7a37789759cd9e1a4dd9e18f812f679bf7 Mon Sep 17 00:00:00 2001 From: flohdot Date: Tue, 4 Mar 2014 23:19:17 -0500 Subject: [PATCH 05/36] add osx vagrant installation --- sites/en/installfest/macintosh.step | 3 +- sites/en/installfest/osx_vagrant.step | 102 ++++++++++++++++++++++++++ 2 files changed, 104 insertions(+), 1 deletion(-) create mode 100644 sites/en/installfest/osx_vagrant.step diff --git a/sites/en/installfest/macintosh.step b/sites/en/installfest/macintosh.step index e3e4c70b3..51b3835bd 100644 --- a/sites/en/installfest/macintosh.step +++ b/sites/en/installfest/macintosh.step @@ -28,7 +28,7 @@ Below is an example. end step "Choose your instructions" do - + option "Mavericks" do link "osx_rvm" end @@ -40,6 +40,7 @@ step "Choose your instructions" do option_half "Manually" do message "If something went wrong with RailsInstaller, or you want to do things the 'long way', use these instructions." link "osx_rvm" + link "osx_vagrant" end end diff --git a/sites/en/installfest/osx_vagrant.step b/sites/en/installfest/osx_vagrant.step new file mode 100644 index 000000000..5246fecda --- /dev/null +++ b/sites/en/installfest/osx_vagrant.step @@ -0,0 +1,102 @@ + +step "Set up your Vagrant box" do + + message "If the file railsbridgevm-3.2-a.box file you downloaded before the workshop isn't on your desktop, move it there." + + message "Then type the following commands. Press ENTER after each command and wait for the operation to finish before typing the next one." + + console <<-BASH + mkdir ~/Desktop/railsbridge + cd ~/Desktop/railsbridge + vagrant box add railsbridgemontreal railsbridgevm-3.2-a.box + vagrant init railsbridgemontreal + vagrant up + vagrant ssh + BASH + + message "If the process seems to hang after vagrant up, try hitting the ENTER key to get it going." + + message "After typing the last command, here is what you should see (approximately):" + + console <<-BASH + MarieLambs-MacBookPro:~/Desktop/railsbridge marie$ vagrant init railsbridgemontreal + + A `Vagrantfile` has been placed in this directory. You are now + ready to `vagrant up` your first virtual environment! Please read + the comments in the Vagrantfile as well as documentation on + `vagrantup.com` for more information on using Vagrant. + MarieLambs-MacBookPro:~/Desktop/railsbridge marie$ vagrant up + BASH + + message "Bringing machine 'default' up with 'virtualbox' provider..." + + console <<-BASH + ...many lines left out... + [default] -- /vagrant + MarieLambs-MacBookPro:~/Desktop/railsbridge marie$ vagrant ssh + Welcome to Ubuntu 12.04 LTS (GNU/Linux 3.2.0-23-generic-pae i686) + ...many lines left out... + vagrant@precise32:~$ + BASH + +end + +step "Open another Vagrant shell" do + message "Leave this terminal window open on your computer. To open an extra Terminal (console) into the virtual machine, open another Terminal window, then type:" + + console <<-BASH +cd ~/Desktop/railsbridge +vagrant ssh +vagrant@precise32:~$ cd workspace + BASH + + tip "@TODO: workspace" + + message "Continue with the next step of the Installfest. @TODO LINKY BACK" +end + + +step "Sanity Check" do + + message "@TODO" + +end + + +step "Usage Tips" do + tip "Turning the virtual machine off and on" do + + message "When you're done for the day, logout and stop your machine:" + + console <<-BASH +logout +vagrant halt + BASH + + message "And close the Git Shell window." + + message "When you want to use the virtual machine (tomorrow morning, for instance), start your machine. Launch Git Shell, then:" + + console <<-BASH + cd ~/Desktop/railsbridge + vagrant up + vagrant ssh + BASH + end + + tip "Clearing the Terminal" do + message "If you ever want to clear the terminal of all its cluttered output" + console "cls" + end + + tip "Command History" do + message "The terminal window stores a \"command history.\" To view and re-run previous commands, use the <up arrow> and <down arrow> keys. You can also edit a previous command and run it -- this is handy for long commands, or fixing mistakes, or for cycles (series of commands) that you repeat." + end + + tip "Copy and Paste" do + + message "It's usually better to type commands in yourself. It takes a little longer but you learn more." + + message "But if you must... in these instructions, where it says: \"Type this in the terminal:\", you can usually copy the command from this page, and right click in the menu bar or terminal window, then click on \"Paste\", then hit the **[enter]** key." + end +end From 33f7bc0e4c4ec0aefdb01b536e285d199c64b642 Mon Sep 17 00:00:00 2001 From: flohdot Date: Tue, 4 Mar 2014 23:31:51 -0500 Subject: [PATCH 06/36] move Before The Workshop --- .../before-the-workshop.step} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename sites/en/{installfest/before_the_workshop.step => before-the-workshop/before-the-workshop.step} (100%) diff --git a/sites/en/installfest/before_the_workshop.step b/sites/en/before-the-workshop/before-the-workshop.step similarity index 100% rename from sites/en/installfest/before_the_workshop.step rename to sites/en/before-the-workshop/before-the-workshop.step From ae1e1fa7e57f9b7a433ee507de17d00ecd45c248 Mon Sep 17 00:00:00 2001 From: flohdot Date: Tue, 4 Mar 2014 23:32:06 -0500 Subject: [PATCH 07/36] remove reference to Windows RailsInstaller --- sites/en/installfest/configure_git.step | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/sites/en/installfest/configure_git.step b/sites/en/installfest/configure_git.step index 2cac44503..e3ac9fe66 100644 --- a/sites/en/installfest/configure_git.step +++ b/sites/en/installfest/configure_git.step @@ -1,4 +1,4 @@ -message "(If you used RailsInstaller on Windows then you should already have `user.name` and `user.email` configured.)" + console <<-BASH git config --global user.name "Your Actual Name" @@ -21,11 +21,6 @@ git config --global color.status auto git config --global color.branch auto BASH - important do - message "If you are using Windows, you may need to install AnsiCon to see colors (otherwise you'll see gibberish). If you didn't do this earlier, then you should do it now." - - link_without_toc "windows_colors" - end end next_step "create_an_ssh_key" From 0c2476cd71111ab46cf125b2a1d42d5165e3e930 Mon Sep 17 00:00:00 2001 From: flohdot Date: Tue, 4 Mar 2014 23:32:23 -0500 Subject: [PATCH 08/36] non-md formatting --- sites/en/installfest/windows.step | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/sites/en/installfest/windows.step b/sites/en/installfest/windows.step index 83ae83d7e..a12d9a554 100644 --- a/sites/en/installfest/windows.step +++ b/sites/en/installfest/windows.step @@ -1,14 +1,12 @@ -message <<-MARKDOWN -These instructions should work for all versions of Windows from XP to Windows 8. +message "These instructions should work for all versions of Windows from XP to Windows 8." -You may need to login as Administrator, or give the Administrator password when installing some programs, depending on your Windows version and user settings. +message "You may need to login as Administrator, or give the Administrator password when installing some programs, depending on your Windows version and user settings." -Installing Ruby and Rails on Windows is easy thanks to the RailsBridge Virtual Machine. -This setup will give you Ruby, Rails, Git and the Bash shell. Let's get started. +message "Installing Ruby and Rails on Windows is easy thanks to the RailsBridge Virtual Machine." +message "This setup will give you Ruby, Rails, Git and the Bash shell. Let's get started." -Make sure you have performed the [pre-workshop steps](/pre_workshop) @TODO: LINK. +message "Make sure you have performed the pre-workshop steps." -MARKDOWN step "Launch Git" do From 2e8268b64e19bc861a88ea6fb3f4b047306bf54d Mon Sep 17 00:00:00 2001 From: flohdot Date: Tue, 4 Mar 2014 23:43:05 -0500 Subject: [PATCH 09/36] move Sanity Check --- sites/en/installfest/osx_vagrant.step | 8 -------- .../installfest/{get_a_sticker.step => sanity_check.step} | 2 ++ sites/en/installfest/windows.step | 8 -------- 3 files changed, 2 insertions(+), 16 deletions(-) rename sites/en/installfest/{get_a_sticker.step => sanity_check.step} (94%) diff --git a/sites/en/installfest/osx_vagrant.step b/sites/en/installfest/osx_vagrant.step index 5246fecda..a52bfbb5a 100644 --- a/sites/en/installfest/osx_vagrant.step +++ b/sites/en/installfest/osx_vagrant.step @@ -55,14 +55,6 @@ vagrant@precise32:~$ cd workspace message "Continue with the next step of the Installfest. @TODO LINKY BACK" end - -step "Sanity Check" do - - message "@TODO" - -end - - step "Usage Tips" do tip "Turning the virtual machine off and on" do diff --git a/sites/en/installfest/get_a_sticker.step b/sites/en/installfest/sanity_check.step similarity index 94% rename from sites/en/installfest/get_a_sticker.step rename to sites/en/installfest/sanity_check.step index 504589fd7..9bcedbb2b 100644 --- a/sites/en/installfest/get_a_sticker.step +++ b/sites/en/installfest/sanity_check.step @@ -1,3 +1,5 @@ +important "Skip this step if you are in the Intro to Programming course." + step "Have a volunteer check your tool versions" do message "Find a volunteer and have them watch the next steps." diff --git a/sites/en/installfest/windows.step b/sites/en/installfest/windows.step index a12d9a554..c761499d7 100644 --- a/sites/en/installfest/windows.step +++ b/sites/en/installfest/windows.step @@ -72,14 +72,6 @@ vagrant@precise32:~$ cd workspace message "Continue with the next step of the Installfest. @TODO LINKY BACK" end - -step "Sanity Check" do - - message "@TODO" - -end - - step "Usage Tips" do tip "Turning the virtual machine off and on" do From 43f4724a731d53ab5cd15e40e230b0798de5c1e0 Mon Sep 17 00:00:00 2001 From: flohdot Date: Tue, 4 Mar 2014 23:43:26 -0500 Subject: [PATCH 10/36] get_a_sticker --> sanity_check --- sites/en/installfest/create_and_deploy_a_rails_app.step | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sites/en/installfest/create_and_deploy_a_rails_app.step b/sites/en/installfest/create_and_deploy_a_rails_app.step index 2026fd65f..18e9380c9 100644 --- a/sites/en/installfest/create_and_deploy_a_rails_app.step +++ b/sites/en/installfest/create_and_deploy_a_rails_app.step @@ -280,5 +280,5 @@ bundle install --without production end end -next_step "get_a_sticker" +next_step "sanity_check" From 8d937759006ebb033c8413b165764215ff2734d1 Mon Sep 17 00:00:00 2001 From: flohdot Date: Tue, 4 Mar 2014 23:43:52 -0500 Subject: [PATCH 11/36] parts to skip if in Intro To Programming course --- .../installfest/create_a_heroku_account.step | 4 ++- sites/en/installfest/create_an_ssh_key.step | 8 ++++-- .../install_komodo_edit_for_mac.step | 28 ------------------- 3 files changed, 8 insertions(+), 32 deletions(-) delete mode 100644 sites/en/installfest/install_komodo_edit_for_mac.step diff --git a/sites/en/installfest/create_a_heroku_account.step b/sites/en/installfest/create_a_heroku_account.step index 0b99cb4c9..d60acae00 100644 --- a/sites/en/installfest/create_a_heroku_account.step +++ b/sites/en/installfest/create_a_heroku_account.step @@ -1,3 +1,5 @@ +important "Skip this step if you are in the Intro to Programming course." + message "We'll be using Heroku to put our apps online because it's simple and free for the tier we'll be needing." step "Visit the Heroku web site" do @@ -29,7 +31,7 @@ end step "Add your SSH key to your Heroku account" do console "heroku keys:add" - + message "hit enter to accept the default key file to use" end diff --git a/sites/en/installfest/create_an_ssh_key.step b/sites/en/installfest/create_an_ssh_key.step index ef8a6a118..3b169ef71 100644 --- a/sites/en/installfest/create_an_ssh_key.step +++ b/sites/en/installfest/create_an_ssh_key.step @@ -1,3 +1,5 @@ +important "Skip this step if you are in the Intro to Programming course." + message "An SSH key uniquely identifies you (and your computer) when your computer is communicating with other computers. Think of an SSH key as a fancy password." message "You'll need one of these to create your Heroku and Github accounts." @@ -45,10 +47,10 @@ option "Generate an SSH key" do result <<-OUTPUT Generating public/private rsa key pair. -Enter file in which to save the key (/Users/student/.ssh/id_rsa): +Enter file in which to save the key (/Users/student/.ssh/id_rsa): Created directory '/Users/student/.ssh'. -Enter passphrase (empty for no passphrase): -Enter same passphrase again: +Enter passphrase (empty for no passphrase): +Enter same passphrase again: Your identification has been saved in /Users/student/.ssh/id_rsa. Your public key has been saved in /Users/student/.ssh/id_rsa.pub. The key fingerprint is: diff --git a/sites/en/installfest/install_komodo_edit_for_mac.step b/sites/en/installfest/install_komodo_edit_for_mac.step deleted file mode 100644 index e5cfbcb9d..000000000 --- a/sites/en/installfest/install_komodo_edit_for_mac.step +++ /dev/null @@ -1,28 +0,0 @@ -message <<-MARKDOWN - -We'll be using the KomodoEdit text editor during the workshop, though you are free to use a different editor if you prefer. It must be a plain-text editor, such as vi or Textmate. - -MARKDOWN - -important "Microsoft Word and other word processing programs, including TextEdit and Notepad, will not work." - -step "Download KomodoEdit" do - message "Download the [KomodoEdit installer](http://downloads.activestate.com/Komodo/releases/8.0.0/Komodo-Edit-8.0.0-12188-macosx.dmg)." -end - -step 'Select "Open with DiskImageMounter" in the file save dialog' do - message <<-MARKDOWN -This should be the default. - -It will open an installer with a KomodoEdit icon and a picture of your Applications folder. Something like this: - MARKDOWN - img src: 'img/Komodo-Edit-5.png', alt: 'Komodo Edit 5' -end - -step "Drag KomodoEdit into your Applications folder." do - message "It will open an installer with a KomodoEdit icon and a picture of your Applications folder. Drag KomodoEdit into your Applications folder." -end - -step "Unmount the installer disk image" do - message "by dragging it from your desktop to the trash" -end From ccdb0ffba43272de6452d98865db1f7c254d5223 Mon Sep 17 00:00:00 2001 From: flohdot Date: Wed, 5 Mar 2014 16:42:43 -0500 Subject: [PATCH 12/36] link advanced students to intermediate class as a sanity check... --- sites/en/before-the-workshop/before-the-workshop.step | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sites/en/before-the-workshop/before-the-workshop.step b/sites/en/before-the-workshop/before-the-workshop.step index 732d1f7b6..6ba33a456 100644 --- a/sites/en/before-the-workshop/before-the-workshop.step +++ b/sites/en/before-the-workshop/before-the-workshop.step @@ -14,7 +14,7 @@ MARKDOWN message <<-MARKDOWN -We assume you've already made at least one Rails app in the past. If you already have a working Rails setup on your laptop, you do not need to do this. To check if you have a working Rails setup, try @TODO link , running `bundle` and running the app with `rails server`. If you can see your newly created app in the browser, you're in the clear. +We assume you've already made at least one Rails app in the past. If you already have a working Rails setup on your laptop, you do not need to do this. To check if you have a working Rails setup, try [creating a new Rails app](/intro-to-rails/getting_started) , running `bundle` and running the app with `rails server`. If you can see your newly created app in the browser, you're in the clear. MARKDOWN message <<-MARKDOWN From 77b6f334d313b1c034fea15a9e01fd3a44f9961e Mon Sep 17 00:00:00 2001 From: flohdot Date: Sun, 23 Mar 2014 19:20:06 -0400 Subject: [PATCH 13/36] mention that the docs are not quite the same as those for other rails bridges --- sites/en/before-the-workshop/before-the-workshop.step | 2 -- sites/en/installfest/installfest.step | 2 +- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/sites/en/before-the-workshop/before-the-workshop.step b/sites/en/before-the-workshop/before-the-workshop.step index 6ba33a456..7fd0bc64a 100644 --- a/sites/en/before-the-workshop/before-the-workshop.step +++ b/sites/en/before-the-workshop/before-the-workshop.step @@ -1,5 +1,3 @@ - - message <<-MARKDOWN ## Pre-workshop downloads MARKDOWN diff --git a/sites/en/installfest/installfest.step b/sites/en/installfest/installfest.step index da3744459..87b9f2aff 100644 --- a/sites/en/installfest/installfest.step +++ b/sites/en/installfest/installfest.step @@ -1,4 +1,4 @@ -message "This is a set of step-by-step instructions for installing Ruby, Rails, and other important tools on Mac, Windows, or Linux computers. Originally developed for the [Railsbridge Workshops](http://railsbridge.org), it is a community-supported open-source documentation project. If you want to contribute, click the [git] link at the top-right corner of any page and submit your change on GitHub." +message "This is a set of step-by-step instructions for installing Ruby, Rails, and other important tools on Mac, Windows, or Linux computers. Especially for Windows computers, it is different from the installation processused by other Railsbridge workshops" step "Prepare for the Installfest" do message <<-MARKDOWN From 2b640fc6fc1152f7d9d11717aec1377e2941c98d Mon Sep 17 00:00:00 2001 From: flohdot Date: Sun, 23 Mar 2014 20:25:59 -0400 Subject: [PATCH 14/36] Railsbridge Montreal github and name --- lib/doc_page.rb | 18 +++++++++--------- sites/en/docs/docs.step | 16 ++++++++++------ 2 files changed, 19 insertions(+), 15 deletions(-) diff --git a/lib/doc_page.rb b/lib/doc_page.rb index 5e04c275f..6fb832bef 100644 --- a/lib/doc_page.rb +++ b/lib/doc_page.rb @@ -63,7 +63,7 @@ def file_name end def git_url - "https://github.com/railsbridge/docs/blob/master/sites/#{@locale}/#{@site_name}/#{file_name}" + "https://github.com/railsbridge-montreal/docs/blob/master/sites/#{@locale}/#{@site_name}/#{file_name}" end def src_url @@ -91,15 +91,15 @@ def body_content div(class: "navbar-header cf title") { a(href: "/#{site_name}") { - span("RailsBridge ", class: "brand") + span("RailsBridge Montreal ", class: "brand") text site_title } } ul(class: "navbar-nav nav") { - li { - widget Flags - } + # li { + # widget Flags + # } li(class: "dropdown") { a("sites", href: "#", class: "dropdown-toggle", "data-toggle" => "dropdown") @@ -131,17 +131,17 @@ def body_content } footer { - p "RailsBridge Docs is maintained by RailsBridge volunteers." + p "RailsBridge Montreal Docs is maintained by RailsBridge volunteers." p do text "If you find something that could be improved, please make a " - a "pull request ", href: "https://github.com/railsbridge/docs" + a "pull request ", href: "https://github.com/railsbridge-montreal/docs" text "or " - a "drop us a note ", href: "https://github.com/railsbridge/docs/issues/new" + a "drop us a note ", href: "https://github.com/railsbridge-montreal/docs/issues/new" text "via GitHub Issues (no technical knowledge required)." end p do text "Source: " - url "https://github.com/railsbridge/docs" + url "https://github.com/railsbridge-montreal/docs" end } end diff --git a/sites/en/docs/docs.step b/sites/en/docs/docs.step index 30cd78ffa..4b54e3649 100644 --- a/sites/en/docs/docs.step +++ b/sites/en/docs/docs.step @@ -1,27 +1,31 @@ message < Date: Mon, 31 Mar 2014 21:12:53 -0400 Subject: [PATCH 15/36] Update download path and fixed some references regarding vagrant usage. --- .../before-the-workshop.step | 20 ++++++------- sites/en/installfest/osx_vagrant.step | 28 +++++++++---------- sites/en/installfest/windows.step | 4 +-- 3 files changed, 24 insertions(+), 28 deletions(-) diff --git a/sites/en/before-the-workshop/before-the-workshop.step b/sites/en/before-the-workshop/before-the-workshop.step index 7fd0bc64a..3ab4f9708 100644 --- a/sites/en/before-the-workshop/before-the-workshop.step +++ b/sites/en/before-the-workshop/before-the-workshop.step @@ -41,17 +41,17 @@ MARKDOWN message <<-MARKDOWN Download -[VirtualBox](http://download.virtualbox.org/virtualbox/4.2.18/VirtualBox-4.2.18-88780-OSX.dmg) +[VirtualBox](http://download.virtualbox.org/virtualbox/4.3.10/VirtualBox-4.3.10-93012-OSX.dmg) for Mac. Run the installer after it downloads. MARKDOWN message <<-MARKDOWN -Download [Vagrant](https://dl.bintray.com/mitchellh/vagrant/Vagrant-1.4.3.dmg) for Mac. Run the installer after it downloads. +Download [Vagrant](https://dl.bintray.com/mitchellh/vagrant/vagrant_1.5.1.dmg) for Mac. Run the installer after it downloads. MARKDOWN message <<-MARKDOWN Download -[this file](http://s3.amazonaws.com/railsbridgeboston/railsbridgevm-3.2-a.box) and save it somewhere on your desktop or home folder. +[this file](https://www.dropbox.com/s/n0hio7qcbvipbyd/railsbridgevm-2014-04-rc2.box) and save it somewhere on your desktop or home folder. MARKDOWN message <<-MARKDOWN @@ -70,10 +70,8 @@ The second page is a developer survey, which you can skip. Just go to the bottom MARKDOWN message <<-MARKDOWN -Once you have confirmed your developer account, you can download [Xcode -3.1.4](http://adcdownload.apple.com/Developer_Tools/xcode_3.1.4_developer_tools/xcode314_2809_developerdvd.dmg). -If that link doesn't work, go to the [downloads -page](https://developer.apple.com/downloads) and search for "Xcode 3.1.4" +Once you have confirmed your developer account, you can download [Xcode 3.1.4](http://adcdownload.apple.com/Developer_Tools/xcode_3.1.4_developer_tools/xcode314_2809_developerdvd.dmg). +If that link doesn't work, go to the [downloads page](https://developer.apple.com/downloads) and search for "Xcode 3.1.4" MARKDOWN message <<-MARKDOWN @@ -90,14 +88,14 @@ MARKDOWN message <<-MARKDOWN Download -[VirtualBox](http://download.virtualbox.org/virtualbox/4.2.18/VirtualBox-4.2.18-88781-Win.exe) +[VirtualBox](http://download.virtualbox.org/virtualbox/4.3.10/VirtualBox-4.3.10-93012-Win.exe) for Windows. Run the installer after it downloads. You can quit the application if it launches at the end of the installation. MARKDOWN message <<-MARKDOWN Download -[Vagrant](https://dl.bintray.com/mitchellh/vagrant/Vagrant_1.4.3.msi) +[Vagrant](https://dl.bintray.com/mitchellh/vagrant/vagrant_1.5.1.msi) for Windows. Run the installer after it downloads. Agree to restart the computer if you're prompted to do so. MARKDOWN @@ -109,7 +107,7 @@ MARKDOWN message <<-MARKDOWN Download -[this file](http://s3.amazonaws.com/railsbridgeboston/railsbridgevm-3.2-a.box) and save it somewhere on your desktop or home folder. +[this file](https://www.dropbox.com/s/n0hio7qcbvipbyd/railsbridgevm-2014-04-rc2.box) and save it somewhere on your desktop or home folder. MARKDOWN message "If you have any trouble with the installers just keep the files on your computer and someone will help you at the Installfest on Friday." @@ -120,4 +118,4 @@ MARKDOWN message <<-MARKDOWN Just install Sublime Text 2 -- [32 bit](http://c758482.r82.cf2.rackcdn.com/Sublime%20Text%202.0.2.tar.bz2) or [64 bit](http://c758482.r82.cf2.rackcdn.com/Sublime%20Text%202.0.2%20x64.tar.bz2). -MARKDOWN \ No newline at end of file +MARKDOWN diff --git a/sites/en/installfest/osx_vagrant.step b/sites/en/installfest/osx_vagrant.step index a52bfbb5a..945bb5028 100644 --- a/sites/en/installfest/osx_vagrant.step +++ b/sites/en/installfest/osx_vagrant.step @@ -1,14 +1,14 @@ step "Set up your Vagrant box" do - message "If the file railsbridgevm-3.2-a.box file you downloaded before the workshop isn't on your desktop, move it there." + message "If the file railsbridgevm-2014-04.box file you downloaded before the workshop isn't on your desktop, move it there." message "Then type the following commands. Press ENTER after each command and wait for the operation to finish before typing the next one." console <<-BASH mkdir ~/Desktop/railsbridge cd ~/Desktop/railsbridge - vagrant box add railsbridgemontreal railsbridgevm-3.2-a.box + vagrant box add railsbridgemontreal railsbridgevm-2014-04.box vagrant init railsbridgemontreal vagrant up vagrant ssh @@ -34,9 +34,9 @@ step "Set up your Vagrant box" do ...many lines left out... [default] -- /vagrant MarieLambs-MacBookPro:~/Desktop/railsbridge marie$ vagrant ssh - Welcome to Ubuntu 12.04 LTS (GNU/Linux 3.2.0-23-generic-pae i686) ...many lines left out... - vagrant@precise32:~$ + Changing directory to the shared ~/workspace folder for your convenience. + [RailsBridge VM] ~/workspace$ BASH end @@ -45,13 +45,11 @@ step "Open another Vagrant shell" do message "Leave this terminal window open on your computer. To open an extra Terminal (console) into the virtual machine, open another Terminal window, then type:" console <<-BASH -cd ~/Desktop/railsbridge -vagrant ssh -vagrant@precise32:~$ cd workspace + cd ~/Desktop/railsbridge + vagrant ssh + [RailsBridge VM] ~/workspace$ BASH - tip "@TODO: workspace" - message "Continue with the next step of the Installfest. @TODO LINKY BACK" end @@ -61,8 +59,8 @@ step "Usage Tips" do message "When you're done for the day, logout and stop your machine:" console <<-BASH -logout -vagrant halt + logout + vagrant halt BASH message "And close the Git Shell window." @@ -70,15 +68,15 @@ vagrant halt message "When you want to use the virtual machine (tomorrow morning, for instance), start your machine. Launch Git Shell, then:" console <<-BASH - cd ~/Desktop/railsbridge - vagrant up - vagrant ssh + cd ~/Desktop/railsbridge + vagrant up + vagrant ssh BASH end tip "Clearing the Terminal" do message "If you ever want to clear the terminal of all its cluttered output" - console "cls" + console "clear" end tip "Command History" do diff --git a/sites/en/installfest/windows.step b/sites/en/installfest/windows.step index c761499d7..eab544e10 100644 --- a/sites/en/installfest/windows.step +++ b/sites/en/installfest/windows.step @@ -18,14 +18,14 @@ end step "Set up your Vagrant box" do - message "If the file railsbridgevm-3.2-a.box file you downloaded before the workshop isn't on your desktop, move it there." + message "If the file railsbridgevm-2014-04.box file you downloaded before the workshop isn't on your desktop, move it there." message "Then type the following commands. Press ENTER after each command and wait for the operation to finish before typing the next one." console <<-BASH mkdir ~/Desktop/railsbridge cd ~/Desktop/railsbridge - vagrant box add railsbridgemontreal railsbridgevm-3.2-a.box + vagrant box add railsbridgemontreal railsbridgevm-2014-04.box vagrant init railsbridgemontreal vagrant up vagrant ssh From 5bb33a7f27a2c8071d0268f4ed6c9a2cfde890e8 Mon Sep 17 00:00:00 2001 From: Ben Thouret Date: Mon, 31 Mar 2014 22:20:47 -0400 Subject: [PATCH 16/36] Update vagrant on windows doc. --- sites/en/installfest/windows.step | 23 +++++++++++------------ 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/sites/en/installfest/windows.step b/sites/en/installfest/windows.step index eab544e10..a7582dabe 100644 --- a/sites/en/installfest/windows.step +++ b/sites/en/installfest/windows.step @@ -53,7 +53,8 @@ step "Set up your Vagrant box" do C:\\Users\\Diligent Student\\Desktop\\railsbridge> vagrant ssh Welcome to Ubuntu 12.04 LTS (GNU/Linux 3.2.0-23-generic-pae i686) ...many lines left out... - vagrant@precise32:~$ + Changing directory to the shared ~/workspace folder for your convenience. + [RailsBridge VM] ~/workspace$ BASH end @@ -62,13 +63,11 @@ step "Open another Vagrant shell" do message "Leave this terminal window open on your computer. To open an extra Terminal (console) into the virtual machine, open another Git Shell window, then type:" console <<-BASH -cd ~/Desktop/railsbridge -vagrant ssh -vagrant@precise32:~$ cd workspace + cd ~/Desktop/railsbridge + vagrant ssh + [RailsBridge VM] ~/workspace$ BASH - tip "@TODO: workspace" - message "Continue with the next step of the Installfest. @TODO LINKY BACK" end @@ -78,8 +77,8 @@ step "Usage Tips" do message "When you're done for the day, logout and stop your machine:" console <<-BASH -logout -vagrant halt + logout + vagrant halt BASH message "And close the Git Shell window." @@ -87,15 +86,15 @@ vagrant halt message "When you want to use the virtual machine (tomorrow morning, for instance), start your machine. Launch Git Shell, then:" console <<-BASH - cd ~/Desktop/railsbridge - vagrant up - vagrant ssh + cd ~/Desktop/railsbridge + vagrant up + vagrant ssh BASH end tip "Clearing the Terminal" do message "If you ever want to clear the terminal of all its cluttered output" - console "cls" + console "clear" end tip "Command History" do From dc243266fa17ee20048a79a45d6384185812134a Mon Sep 17 00:00:00 2001 From: Nicholas Henry Date: Fri, 4 Apr 2014 13:50:59 -0400 Subject: [PATCH 17/36] Add options for windows installation A different installation process is provided to beginners to give them a simpler setup. If you're new to programming, navigating a VM is going to be an overwhelming experience. For those more experienced it will not be a problem, and the VM will provide a better development experience. --- .../before-the-workshop.step | 24 +++- sites/en/installfest/windows.step | 114 +-------------- .../installfest/windows_railsinstaller.step | 130 ++++++++++++++++++ sites/en/installfest/windows_vagrant.step | 113 +++++++++++++++ 4 files changed, 267 insertions(+), 114 deletions(-) create mode 100644 sites/en/installfest/windows_railsinstaller.step create mode 100644 sites/en/installfest/windows_vagrant.step diff --git a/sites/en/before-the-workshop/before-the-workshop.step b/sites/en/before-the-workshop/before-the-workshop.step index 3ab4f9708..59420db1c 100644 --- a/sites/en/before-the-workshop/before-the-workshop.step +++ b/sites/en/before-the-workshop/before-the-workshop.step @@ -86,6 +86,24 @@ message <<-MARKDOWN First, download [Sublime Text 2 for Windows](http://c758482.r82.cf2.rackcdn.com/Sublime%20Text%202.0.2%20Setup.exe) -- or [64bit version](http://c758482.r82.cf2.rackcdn.com/Sublime%20Text%202.0.2%20x64%20Setup.exe). MARKDOWN +message <<-MARKDOWN +### Option 1. RailsInstaller for "Introduction to Programming" +MARKDOWN + +message <<-MARKDOWN +Download [Railsinstaller for Windows](https://s3.amazonaws.com/railsinstaller/Windows/railsinstaller-2.2.2.exe) from the RailsInstaller webpage. +MARKDOWN + +message <<-MARKDOWN +### Option 2. Vagrant for "Introduction to Rails" or "Rails for Developers" +MARKDOWN + +message <<-MARKDOWN +Download [GitHub for Windows](http://windows.github.com/) and run the installer. +If prompted during installation, install the Microsoft .NET framework. +If GitHub for Windows automatically launches after installation, quit the application. +MARKDOWN + message <<-MARKDOWN Download [VirtualBox](http://download.virtualbox.org/virtualbox/4.3.10/VirtualBox-4.3.10-93012-Win.exe) @@ -99,12 +117,6 @@ Download for Windows. Run the installer after it downloads. Agree to restart the computer if you're prompted to do so. MARKDOWN -message <<-MARKDOWN -Download [GitHub for Windows](http://windows.github.com/) and run the installer. -If prompted during installation, install the Microsoft .NET framework. -If GitHub for Windows automatically launches after installation, quit the application. -MARKDOWN - message <<-MARKDOWN Download [this file](https://www.dropbox.com/s/n0hio7qcbvipbyd/railsbridgevm-2014-04-rc2.box) and save it somewhere on your desktop or home folder. diff --git a/sites/en/installfest/windows.step b/sites/en/installfest/windows.step index a7582dabe..38700903f 100644 --- a/sites/en/installfest/windows.step +++ b/sites/en/installfest/windows.step @@ -1,113 +1,11 @@ -message "These instructions should work for all versions of Windows from XP to Windows 8." +step "Choose your instructions" do + message "Make your choice based on the workshop you will be attending tomorrow." -message "You may need to login as Administrator, or give the Administrator password when installing some programs, depending on your Windows version and user settings." - -message "Installing Ruby and Rails on Windows is easy thanks to the RailsBridge Virtual Machine." -message "This setup will give you Ruby, Rails, Git and the Bash shell. Let's get started." - -message "Make sure you have performed the pre-workshop steps." - - -step "Launch Git" do - - message "Launch Github for Windows. It will install a few dependencies. Once this is done, you may close it again." - - message "Launch the Git Shell. You can find a shortcut on your Desktop (grey circle with a cat), or locate **Git Shell** in All Programs under GitHub. A new (mostly black) window will open." - -end - -step "Set up your Vagrant box" do - - message "If the file railsbridgevm-2014-04.box file you downloaded before the workshop isn't on your desktop, move it there." - - message "Then type the following commands. Press ENTER after each command and wait for the operation to finish before typing the next one." - - console <<-BASH - mkdir ~/Desktop/railsbridge - cd ~/Desktop/railsbridge - vagrant box add railsbridgemontreal railsbridgevm-2014-04.box - vagrant init railsbridgemontreal - vagrant up - vagrant ssh - BASH - - message "If the process seems to hang after vagrant up, try hitting the ENTER key to get it going." - - message "After typing the last command, here is what you should see (approximately):" - - console <<-BASH - C:\\Users\\DiligentStudent\\Desktop\\railsbridge> vagrant init railsbridgemontreal - - A `Vagrantfile` has been placed in this directory. You are now - ready to `vagrant up` your first virtual environment! Please read - the comments in the Vagrantfile as well as documentation on - `vagrantup.com` for more information on using Vagrant. - C:\\Users\\DiligentStudent\\Desktop\\railsbridge> vagrant up - BASH - - message "Bringing machine 'default' up with 'virtualbox' provider..." - - console <<-BASH - ...many lines left out... - [default] -- /vagrant - C:\\Users\\Diligent Student\\Desktop\\railsbridge> vagrant ssh - Welcome to Ubuntu 12.04 LTS (GNU/Linux 3.2.0-23-generic-pae i686) - ...many lines left out... - Changing directory to the shared ~/workspace folder for your convenience. - [RailsBridge VM] ~/workspace$ - BASH - -end - -step "Open another Vagrant shell" do - message "Leave this terminal window open on your computer. To open an extra Terminal (console) into the virtual machine, open another Git Shell window, then type:" - - console <<-BASH - cd ~/Desktop/railsbridge - vagrant ssh - [RailsBridge VM] ~/workspace$ - BASH - - message "Continue with the next step of the Installfest. @TODO LINKY BACK" -end - -step "Usage Tips" do - tip "Turning the virtual machine off and on" do - - message "When you're done for the day, logout and stop your machine:" - - console <<-BASH - logout - vagrant halt - BASH - - message "And close the Git Shell window." - - message "When you want to use the virtual machine (tomorrow morning, for instance), start your machine. Launch Git Shell, then:" - - console <<-BASH - cd ~/Desktop/railsbridge - vagrant up - vagrant ssh - BASH - end - - tip "Clearing the Terminal" do - message "If you ever want to clear the terminal of all its cluttered output" - console "clear" + option "Introduction to Programming" do + link "windows_railsinstaller" end - tip "Command History" do - message "The terminal window stores a \"command history.\" To view and re-run previous commands, use the <up arrow> and <down arrow> keys. You can also edit a previous command and run it -- this is handy for long commands, or fixing mistakes, or for cycles (series of commands) that you repeat." - end - - tip "Copy and Paste" do - - message "It's usually better to type commands in yourself. It takes a little longer but you learn more." - - message "But if you must... in these instructions, where it says: \"Type this in the terminal:\", you can usually copy the command from this page, and right click in the menu bar or terminal window, then click on \"Paste\", then hit the **[enter]** key." + option "Introduction to Rails or Rails for Developers" do + link "windows_vagrant" end end - - -next_step "configure_git" diff --git a/sites/en/installfest/windows_railsinstaller.step b/sites/en/installfest/windows_railsinstaller.step new file mode 100644 index 000000000..ba2ac2cf6 --- /dev/null +++ b/sites/en/installfest/windows_railsinstaller.step @@ -0,0 +1,130 @@ +message <<-MARKDOWN +These instructions should work for all versions of Windows from XP to Windows 8. + +You may need to login as Administrator, or give the Administrator password when installing some programs, depending on your Windows version and user settings. +MARKDOWN + +step "Run RailsInstaller" do + + message <<-MARKDOWN + RailsInstaller includes Rails, Ruby, Git, and SQLite. + + Go to , scroll to the 'Downloads' section, and download the RailsInstaller for Windows/Ruby 1.9. + + Click on the downloaded file to run the install wizard. Click Next at each step to accept the defaults. + + Be sure to check the boxes for *Install git (recommended)* and *Add executables for Ruby, DevKit Git (if checked above) to the PATH* + + ![WinRailsInstaller.jpg](img/WinRailsInstaller.jpg) + + Rails will be installed in C:\\RailsInstaller and the directory for your Rails projects will be C:\\Sites + + MARKDOWN +end + +step "Configure your git and ssh environment" do + + important "At the end of the installer there will be a checkbox asking 'configure your git and ssh environment'. **Leave this box checked.** It will open a terminal window that you need to **type into**." + + message "When it asks *Please enter your name, for example mine is: Wayne E. Seguin*" + message "Type *your actual full name* into the console and press **[enter]**" + + message "When it asks *Please enter your email address, for example mine is: wayneeseguin@gmail.com*" + message "Type *your actual email address* into the console and press **[enter]**" + + important "Use the **same email address** for heroku, git, github, and ssh." + + tip do + message "After this step you will have some **git config settings** and you will also have an **ssh key**." + end + +end + +step "Windows 8 Only — Install Node.js" do + + message "Go to and download the installer" + + message "Click on the downloaded file to run the install wizard. Click Next at each step to accept the defaults." + + message "**Reboot your computer.**" + + message "Once your computer is back up, load **Command Prompt with Ruby and Rails** (see below) and..." + + console "node -v" + fuzzy_result "v0{FUZZY}.8.x{/FUZZY}" +end + +step "Update Rails" do + message "Currently, RailsInstaller installs Rails 3.2.x, but we want 4.x. Upgrading Rails is pretty easy:" + + console "gem install rails" + + message "...and you're done. New Rails! Woo." +end + +step "Sanity Check" do + + console "ruby -v" + fuzzy_result "ruby 1.9.3{FUZZY}p125{/FUZZY}" + + console "rails -v" + fuzzy_result "Rails 4.0{FUZZY}.x{/FUZZY}" + +end + +step "Open a Terminal" do + message "Much of using Rails is typing commands and hitting **[enter]**. Your experience using Rails on Windows greatly depends on your making friends with the terminal window. Normally you will work in a terminal window and keep it open along with your browser." + + tip "The Terminal is also called the Command Prompt, Command Line, DOS Prompt, or DOS Window." + + message "RailsInstaller made a special Terminal for you to use when you're working on Ruby, Rails, or Git." + + message "To open the special Terminal, choose **All Programs** on the Start menu, then choose **RailsInstaller** and then **Command Prompt with Ruby and Rails**. You should do all your Rails work in this RailsInstaller DOS window." + + img src: 'img/railsbridge_findingCommandPrompt.png' + + tip "Pin It to Win It" do + img src: 'img/railsbridge_windowsScreenshot-commandprompt-pinnedtotaskbar.png', alt: 'Pin the Command Prompt to the Task Bar' + end + + message "Here is a summary of your settings after this process:" + + img src: 'img/railsbridge_windowsScreenshot-commandprompt_ror.jpg' + +end + +step "Configure the Windows Terminal" do + message "Take a moment to configure the *Command Prompt with Ruby and Rails* so that it is a good height and width and has a nice font. Hint -- click to open the link below, and when you finish those steps, hit the **back** button in your browser to resume this procedure." + + link "configure_the_windows_terminal" + + tip "Clearing the Terminal" do + message "If you ever want to clear the terminal of all its cluttered output" + console "cls" + end + + tip "Command History" do + message "The terminal window stores a \"command history.\" To view and re-run previous commands, use the <up arrow> and <down arrow> keys. You can also edit a previous command and run it -- this is handy for long commands, or fixing mistakes, or for cycles (series of commands) that you repeat." + end + + tip "Copy and Paste" do + + message "It's usually better to type commands in yourself. It takes a little longer but you learn more." + + message "But if you must... in these instructions, where it says: \"Type this in the terminal:\", you can usually copy the command from this page, and right click in the menu bar or terminal window, then click on \"Paste\", then hit the **[enter]** key." + end +end + +step "Install a Text Editor" do + message "You need a text editor to do Ruby. If you already have a preferred text editor, such as vi, emacs, jedit, etc., you can skip this step. It must be a plain text editor and not something with styling like Microsoft Word or WordPad." + + message "Notepad is not a good programming editor, but it will work in a pinch." + + important "**When in doubt, use Sublime Text 2.**" + + message "[Sublime Text 2](http://www.sublimetext.com/2) is a good option, if you don't have one yet." + + message "Download Sublime Text 2 here: " +end + +next_step "configure_git" diff --git a/sites/en/installfest/windows_vagrant.step b/sites/en/installfest/windows_vagrant.step new file mode 100644 index 000000000..a7582dabe --- /dev/null +++ b/sites/en/installfest/windows_vagrant.step @@ -0,0 +1,113 @@ +message "These instructions should work for all versions of Windows from XP to Windows 8." + +message "You may need to login as Administrator, or give the Administrator password when installing some programs, depending on your Windows version and user settings." + +message "Installing Ruby and Rails on Windows is easy thanks to the RailsBridge Virtual Machine." +message "This setup will give you Ruby, Rails, Git and the Bash shell. Let's get started." + +message "Make sure you have performed the pre-workshop steps." + + +step "Launch Git" do + + message "Launch Github for Windows. It will install a few dependencies. Once this is done, you may close it again." + + message "Launch the Git Shell. You can find a shortcut on your Desktop (grey circle with a cat), or locate **Git Shell** in All Programs under GitHub. A new (mostly black) window will open." + +end + +step "Set up your Vagrant box" do + + message "If the file railsbridgevm-2014-04.box file you downloaded before the workshop isn't on your desktop, move it there." + + message "Then type the following commands. Press ENTER after each command and wait for the operation to finish before typing the next one." + + console <<-BASH + mkdir ~/Desktop/railsbridge + cd ~/Desktop/railsbridge + vagrant box add railsbridgemontreal railsbridgevm-2014-04.box + vagrant init railsbridgemontreal + vagrant up + vagrant ssh + BASH + + message "If the process seems to hang after vagrant up, try hitting the ENTER key to get it going." + + message "After typing the last command, here is what you should see (approximately):" + + console <<-BASH + C:\\Users\\DiligentStudent\\Desktop\\railsbridge> vagrant init railsbridgemontreal + + A `Vagrantfile` has been placed in this directory. You are now + ready to `vagrant up` your first virtual environment! Please read + the comments in the Vagrantfile as well as documentation on + `vagrantup.com` for more information on using Vagrant. + C:\\Users\\DiligentStudent\\Desktop\\railsbridge> vagrant up + BASH + + message "Bringing machine 'default' up with 'virtualbox' provider..." + + console <<-BASH + ...many lines left out... + [default] -- /vagrant + C:\\Users\\Diligent Student\\Desktop\\railsbridge> vagrant ssh + Welcome to Ubuntu 12.04 LTS (GNU/Linux 3.2.0-23-generic-pae i686) + ...many lines left out... + Changing directory to the shared ~/workspace folder for your convenience. + [RailsBridge VM] ~/workspace$ + BASH + +end + +step "Open another Vagrant shell" do + message "Leave this terminal window open on your computer. To open an extra Terminal (console) into the virtual machine, open another Git Shell window, then type:" + + console <<-BASH + cd ~/Desktop/railsbridge + vagrant ssh + [RailsBridge VM] ~/workspace$ + BASH + + message "Continue with the next step of the Installfest. @TODO LINKY BACK" +end + +step "Usage Tips" do + tip "Turning the virtual machine off and on" do + + message "When you're done for the day, logout and stop your machine:" + + console <<-BASH + logout + vagrant halt + BASH + + message "And close the Git Shell window." + + message "When you want to use the virtual machine (tomorrow morning, for instance), start your machine. Launch Git Shell, then:" + + console <<-BASH + cd ~/Desktop/railsbridge + vagrant up + vagrant ssh + BASH + end + + tip "Clearing the Terminal" do + message "If you ever want to clear the terminal of all its cluttered output" + console "clear" + end + + tip "Command History" do + message "The terminal window stores a \"command history.\" To view and re-run previous commands, use the <up arrow> and <down arrow> keys. You can also edit a previous command and run it -- this is handy for long commands, or fixing mistakes, or for cycles (series of commands) that you repeat." + end + + tip "Copy and Paste" do + + message "It's usually better to type commands in yourself. It takes a little longer but you learn more." + + message "But if you must... in these instructions, where it says: \"Type this in the terminal:\", you can usually copy the command from this page, and right click in the menu bar or terminal window, then click on \"Paste\", then hit the **[enter]** key." + end +end + + +next_step "configure_git" From a8dbee25a4b4ffdaaabec7c7f8eda881714a612e Mon Sep 17 00:00:00 2001 From: Nicholas Henry Date: Fri, 4 Apr 2014 14:38:18 -0400 Subject: [PATCH 18/36] Revert "add osx vagrant installation" This reverts commit 7d10fc7a37789759cd9e1a4dd9e18f812f679bf7. Conflicts: sites/en/installfest/osx_vagrant.step The volunteer group decided that it was preferable to use the OSX RVM install over a VM. --- sites/en/installfest/macintosh.step | 3 +- sites/en/installfest/osx_vagrant.step | 92 --------------------------- 2 files changed, 1 insertion(+), 94 deletions(-) delete mode 100644 sites/en/installfest/osx_vagrant.step diff --git a/sites/en/installfest/macintosh.step b/sites/en/installfest/macintosh.step index 51b3835bd..e3e4c70b3 100644 --- a/sites/en/installfest/macintosh.step +++ b/sites/en/installfest/macintosh.step @@ -28,7 +28,7 @@ Below is an example. end step "Choose your instructions" do - + option "Mavericks" do link "osx_rvm" end @@ -40,7 +40,6 @@ step "Choose your instructions" do option_half "Manually" do message "If something went wrong with RailsInstaller, or you want to do things the 'long way', use these instructions." link "osx_rvm" - link "osx_vagrant" end end diff --git a/sites/en/installfest/osx_vagrant.step b/sites/en/installfest/osx_vagrant.step deleted file mode 100644 index 945bb5028..000000000 --- a/sites/en/installfest/osx_vagrant.step +++ /dev/null @@ -1,92 +0,0 @@ - -step "Set up your Vagrant box" do - - message "If the file railsbridgevm-2014-04.box file you downloaded before the workshop isn't on your desktop, move it there." - - message "Then type the following commands. Press ENTER after each command and wait for the operation to finish before typing the next one." - - console <<-BASH - mkdir ~/Desktop/railsbridge - cd ~/Desktop/railsbridge - vagrant box add railsbridgemontreal railsbridgevm-2014-04.box - vagrant init railsbridgemontreal - vagrant up - vagrant ssh - BASH - - message "If the process seems to hang after vagrant up, try hitting the ENTER key to get it going." - - message "After typing the last command, here is what you should see (approximately):" - - console <<-BASH - MarieLambs-MacBookPro:~/Desktop/railsbridge marie$ vagrant init railsbridgemontreal - - A `Vagrantfile` has been placed in this directory. You are now - ready to `vagrant up` your first virtual environment! Please read - the comments in the Vagrantfile as well as documentation on - `vagrantup.com` for more information on using Vagrant. - MarieLambs-MacBookPro:~/Desktop/railsbridge marie$ vagrant up - BASH - - message "Bringing machine 'default' up with 'virtualbox' provider..." - - console <<-BASH - ...many lines left out... - [default] -- /vagrant - MarieLambs-MacBookPro:~/Desktop/railsbridge marie$ vagrant ssh - ...many lines left out... - Changing directory to the shared ~/workspace folder for your convenience. - [RailsBridge VM] ~/workspace$ - BASH - -end - -step "Open another Vagrant shell" do - message "Leave this terminal window open on your computer. To open an extra Terminal (console) into the virtual machine, open another Terminal window, then type:" - - console <<-BASH - cd ~/Desktop/railsbridge - vagrant ssh - [RailsBridge VM] ~/workspace$ - BASH - - message "Continue with the next step of the Installfest. @TODO LINKY BACK" -end - -step "Usage Tips" do - tip "Turning the virtual machine off and on" do - - message "When you're done for the day, logout and stop your machine:" - - console <<-BASH - logout - vagrant halt - BASH - - message "And close the Git Shell window." - - message "When you want to use the virtual machine (tomorrow morning, for instance), start your machine. Launch Git Shell, then:" - - console <<-BASH - cd ~/Desktop/railsbridge - vagrant up - vagrant ssh - BASH - end - - tip "Clearing the Terminal" do - message "If you ever want to clear the terminal of all its cluttered output" - console "clear" - end - - tip "Command History" do - message "The terminal window stores a \"command history.\" To view and re-run previous commands, use the <up arrow> and <down arrow> keys. You can also edit a previous command and run it -- this is handy for long commands, or fixing mistakes, or for cycles (series of commands) that you repeat." - end - - tip "Copy and Paste" do - - message "It's usually better to type commands in yourself. It takes a little longer but you learn more." - - message "But if you must... in these instructions, where it says: \"Type this in the terminal:\", you can usually copy the command from this page, and right click in the menu bar or terminal window, then click on \"Paste\", then hit the **[enter]** key." - end -end From 3d8d2027060240bb475418619fa34bea47e6f376 Mon Sep 17 00:00:00 2001 From: Nicholas Henry Date: Fri, 4 Apr 2014 14:40:48 -0400 Subject: [PATCH 19/36] Update download instructions for OSX Based on the removal of the VM as an install option. --- .../before-the-workshop.step | 31 ++++++++++++++----- 1 file changed, 23 insertions(+), 8 deletions(-) diff --git a/sites/en/before-the-workshop/before-the-workshop.step b/sites/en/before-the-workshop/before-the-workshop.step index 59420db1c..0768b8955 100644 --- a/sites/en/before-the-workshop/before-the-workshop.step +++ b/sites/en/before-the-workshop/before-the-workshop.step @@ -16,7 +16,22 @@ We assume you've already made at least one Rails app in the past. If you already MARKDOWN message <<-MARKDOWN -## OS X 10.6 and above: +## OS X Mavericks (10.9): +MARKDOWN + +message <<-MARKDOWN +Go to the [Apple Developer Center](https://developer.apple.com/downloads), +and click Register. Fill out the first page with your account information. +The second page is a developer survey, which you can skip. Just go to the bottom and click +"Continue". +MARKDOWN + +message <<-MARKDOWN +Once you have confirmed your developer account, you can download [Commandline Tools for XCode](https://developer.apple.com/downloads/index.action) for your operating system. +MARKDOWN + +message <<-MARKDOWN +## OS X 10.6 - 10.8 and above: MARKDOWN message <<-MARKDOWN @@ -36,22 +51,22 @@ MARKDOWN message "Don't worry about watching the video. Just leave the download in your Downloads folder." message <<-MARKDOWN -### Option 2. Railsbridge Virtual Machine +### Option 2. Manual MARKDOWN message <<-MARKDOWN -Download -[VirtualBox](http://download.virtualbox.org/virtualbox/4.3.10/VirtualBox-4.3.10-93012-OSX.dmg) -for Mac. Run the installer after it downloads. +Go to the [Apple Developer Center](https://developer.apple.com/downloads), +and click Register. Fill out the first page with your account information. +The second page is a developer survey, which you can skip. Just go to the bottom and click +"Continue". MARKDOWN message <<-MARKDOWN -Download [Vagrant](https://dl.bintray.com/mitchellh/vagrant/vagrant_1.5.1.dmg) for Mac. Run the installer after it downloads. +Once you have confirmed your developer account, you can download [Commandline Tools for XCode](https://developer.apple.com/downloads/index.action) for your operating system. MARKDOWN message <<-MARKDOWN -Download -[this file](https://www.dropbox.com/s/n0hio7qcbvipbyd/railsbridgevm-2014-04-rc2.box) and save it somewhere on your desktop or home folder. +Download the [Commandline Tools for XCode]. You will need to register as a developer. MARKDOWN message <<-MARKDOWN From 9a1f61ca2dbe06f5e978b135ccfbe4262a49c380 Mon Sep 17 00:00:00 2001 From: Nicholas Henry Date: Fri, 4 Apr 2014 15:14:22 -0400 Subject: [PATCH 20/36] Add automated RSVP step. --- sites/en/installfest/sanity_check.step | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/sites/en/installfest/sanity_check.step b/sites/en/installfest/sanity_check.step index 9bcedbb2b..98c1698f8 100644 --- a/sites/en/installfest/sanity_check.step +++ b/sites/en/installfest/sanity_check.step @@ -32,6 +32,15 @@ step "Show your Heroku app to a volunteer" do message "Visit the heroku site you made on the previous page and create a new drink." end +step "RSVP for tomorrow's workshop" do + console "curl -s http://railsbridge-montreal.com/checks/script | ruby -" + + result "You have the prerequisites installed for the following classes:\n" \ + "Introduction to programming: Yes\n" \ + "Introduction to Rails: Yes\n" \ + "Rails for Developers: Yes" \ +end + step "Congratulations!" do message "You get a sticker! (Or a high-five if there aren't any stickers)." end From d98125bf3bf708354e5ee6dd0f973ef483ee49fa Mon Sep 17 00:00:00 2001 From: Nicholas Henry Date: Fri, 4 Apr 2014 17:09:01 -0400 Subject: [PATCH 21/36] For intro course, skip to Step 3 --- sites/en/installfest/sanity_check.step | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sites/en/installfest/sanity_check.step b/sites/en/installfest/sanity_check.step index 98c1698f8..073d2c391 100644 --- a/sites/en/installfest/sanity_check.step +++ b/sites/en/installfest/sanity_check.step @@ -1,4 +1,4 @@ -important "Skip this step if you are in the Intro to Programming course." +important "Skip to step 3 if you are in the Intro to Programming course." step "Have a volunteer check your tool versions" do From 94470bca7bea07d007b6d73b2fea438d35cd137e Mon Sep 17 00:00:00 2001 From: flohdot Date: Fri, 4 Apr 2014 20:06:08 -0400 Subject: [PATCH 22/36] missing www in sanity script --- sites/en/installfest/sanity_check.step | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sites/en/installfest/sanity_check.step b/sites/en/installfest/sanity_check.step index 073d2c391..7c38773a3 100644 --- a/sites/en/installfest/sanity_check.step +++ b/sites/en/installfest/sanity_check.step @@ -33,7 +33,7 @@ step "Show your Heroku app to a volunteer" do end step "RSVP for tomorrow's workshop" do - console "curl -s http://railsbridge-montreal.com/checks/script | ruby -" + console "curl -s http://www.railsbridge-montreal.com/checks/script | ruby -" result "You have the prerequisites installed for the following classes:\n" \ "Introduction to programming: Yes\n" \ From 3d7eb02328eecb0ced4e34bf88ba659d55a871be Mon Sep 17 00:00:00 2001 From: flohdot Date: Fri, 4 Apr 2014 20:39:11 -0400 Subject: [PATCH 23/36] heroku run:detached --- sites/en/installfest/create_and_deploy_a_rails_app.step | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/sites/en/installfest/create_and_deploy_a_rails_app.step b/sites/en/installfest/create_and_deploy_a_rails_app.step index 18e9380c9..649737cb0 100644 --- a/sites/en/installfest/create_and_deploy_a_rails_app.step +++ b/sites/en/installfest/create_and_deploy_a_rails_app.step @@ -250,6 +250,10 @@ bundle install --without production console "heroku run rake db:migrate" + message "If that does not work and you get an error message along the lines of 'Error connecting to process'" + + console "heroku run:detached rake db:migrate" + result <<-OUTPUT Migrating to CreateDrinks (20120428044153) == CreateDrinks: migrating =================================================== From 838e1ed71b945b734626f0236dc647c200a63d8a Mon Sep 17 00:00:00 2001 From: flohdot Date: Fri, 4 Apr 2014 20:41:09 -0400 Subject: [PATCH 24/36] vagrant box name --- sites/en/installfest/windows_vagrant.step | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sites/en/installfest/windows_vagrant.step b/sites/en/installfest/windows_vagrant.step index a7582dabe..9743e5d15 100644 --- a/sites/en/installfest/windows_vagrant.step +++ b/sites/en/installfest/windows_vagrant.step @@ -25,7 +25,7 @@ step "Set up your Vagrant box" do console <<-BASH mkdir ~/Desktop/railsbridge cd ~/Desktop/railsbridge - vagrant box add railsbridgemontreal railsbridgevm-2014-04.box + vagrant box add --name railsbridgemontreal railsbridgevm-2014-04-rc2.box vagrant init railsbridgemontreal vagrant up vagrant ssh From 5052ab66cf0c098c7da17747e887eea065de94a0 Mon Sep 17 00:00:00 2001 From: flohdot Date: Fri, 4 Apr 2014 21:12:38 -0400 Subject: [PATCH 25/36] sqlite --- sites/en/installfest/create_and_deploy_a_rails_app.step | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/sites/en/installfest/create_and_deploy_a_rails_app.step b/sites/en/installfest/create_and_deploy_a_rails_app.step index 649737cb0..c28471116 100644 --- a/sites/en/installfest/create_and_deploy_a_rails_app.step +++ b/sites/en/installfest/create_and_deploy_a_rails_app.step @@ -186,6 +186,12 @@ step "Deploy your app to Heroku" do message "SQLite and PostgreSQL are different kinds of databases. We're using SQLite for our development and test environments because it's simple to install. We're using PostgreSQL in our production environment because Heroku has done the hard work of installing it for us and it's more powerful than SQLite. We have seperate test, development and production databases by default in Rails." end + message "If you are using Vagrant, do the following step. If you are not sure you are using Vagrant, check if you see 'Railsbridge VM' before your cursor." + + console <<-BASH +sudo apt-get install sqlite3 libsqlite3-dev + BASH + console <<-BASH bundle install --without production BASH From fd2997dd1fb5381081ef3245fe638429814d51fa Mon Sep 17 00:00:00 2001 From: David Cornu Date: Sat, 5 Apr 2014 12:04:37 -0400 Subject: [PATCH 26/36] Update bootstrap gem link --- sites/en/intermediate-rails/make_it_pretty_with_bootstrap.step | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sites/en/intermediate-rails/make_it_pretty_with_bootstrap.step b/sites/en/intermediate-rails/make_it_pretty_with_bootstrap.step index 0b21086b9..27f049392 100644 --- a/sites/en/intermediate-rails/make_it_pretty_with_bootstrap.step +++ b/sites/en/intermediate-rails/make_it_pretty_with_bootstrap.step @@ -22,7 +22,7 @@ end tools_and_references do message <<-MARKDOWN -* A gem for Bootstrap!! Let’s use the gem bootstrap-sass-rails: https://github.com/yabawock/bootstrap-sass-rails +* A gem for Bootstrap!! Let’s use the gem bootstrap-sass: https://github.com/twbs/bootstrap-sass * Bootstrap docs: http://getbootstrap.com/css/ * Here's a link to the navbar section: http://getbootstrap.com/components/#nav * Reference for HTML and CSS: http://www.htmldog.com/ From 1ea07c893ab7d2489234340147983b03a74d7545 Mon Sep 17 00:00:00 2001 From: Henry Jenkins Date: Sun, 18 Sep 2016 18:33:06 -0400 Subject: [PATCH 27/36] Fixes badly merged markdown tag --- sites/en/installfest/windows_railsinstaller.step | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/sites/en/installfest/windows_railsinstaller.step b/sites/en/installfest/windows_railsinstaller.step index eb70c306d..180abcd39 100644 --- a/sites/en/installfest/windows_railsinstaller.step +++ b/sites/en/installfest/windows_railsinstaller.step @@ -1,8 +1,9 @@ step "Choose your instructions" do message "Make your choice based on the workshop you will be attending tomorrow." -You may need to login as Administrator, or give the Administrator password when installing some programs, depending on your Windows version and user settings. -MARKDOWN + tip "You may need to login as Administrator, or give the Administrator password when installing some programs, depending on your Windows version and user settings." +end + step "Run RailsInstaller" do message "RailsInstaller includes Rails, Ruby, Git and SQLite." From e4629f0b1954581c0061013da631ecb1a87ea55f Mon Sep 17 00:00:00 2001 From: Henry Jenkins Date: Sun, 18 Sep 2016 18:33:28 -0400 Subject: [PATCH 28/36] Fix version reference and respond_to --- sites/en/installfest/windows_railsinstaller.step | 2 +- ...o_the_topics_list_after_creating_a_new_topic.step | 12 ++++-------- 2 files changed, 5 insertions(+), 9 deletions(-) diff --git a/sites/en/installfest/windows_railsinstaller.step b/sites/en/installfest/windows_railsinstaller.step index 180abcd39..919ffef6c 100644 --- a/sites/en/installfest/windows_railsinstaller.step +++ b/sites/en/installfest/windows_railsinstaller.step @@ -99,7 +99,7 @@ step "Install Node.js" do end step "Update Rails" do - message "Currently, RailsInstaller installs Rails 4.1.x, but we want the latest. Upgrading Rails is pretty easy:" + message "Currently, RailsInstaller installs Rails 5.0.x, but we want the latest. Upgrading Rails is pretty easy:" console "gem install rails --no-document" diff --git a/sites/en/intro-to-rails/redirect_to_the_topics_list_after_creating_a_new_topic.step b/sites/en/intro-to-rails/redirect_to_the_topics_list_after_creating_a_new_topic.step index c114f2ef9..be00becf0 100644 --- a/sites/en/intro-to-rails/redirect_to_the_topics_list_after_creating_a_new_topic.step +++ b/sites/en/intro-to-rails/redirect_to_the_topics_list_after_creating_a_new_topic.step @@ -31,14 +31,10 @@ steps { def create @topic = Topic.new(topic_params) - respond_to do |format| - if @topic.save - format.html { redirect_to topics_path, notice: 'Topic was successfully created.' } - format.json { render :show, status: :created, location: @topic } - else - format.html { render :new } - format.json { render json: @topic.errors, status: :unprocessable_entity } - end + if @topic.save + redirect_to topics_path, notice: 'Topic was successfully created.' + else + render :new end end RUBY From 9772ca7c5887f5b71dcf97a7df44cf8fa8e76afa Mon Sep 17 00:00:00 2001 From: Henry Jenkins Date: Mon, 19 Sep 2016 21:14:50 -0400 Subject: [PATCH 29/36] Remove the 'Before The Workshop' docs They were out of date and confusing. --- .../before-the-workshop.step | 148 ------------------ sites/en/docs/docs.step | 4 - 2 files changed, 152 deletions(-) delete mode 100644 sites/en/before-the-workshop/before-the-workshop.step diff --git a/sites/en/before-the-workshop/before-the-workshop.step b/sites/en/before-the-workshop/before-the-workshop.step deleted file mode 100644 index 0768b8955..000000000 --- a/sites/en/before-the-workshop/before-the-workshop.step +++ /dev/null @@ -1,148 +0,0 @@ -message <<-MARKDOWN - ## Pre-workshop downloads -MARKDOWN - -message "You must bring your own laptop to RailsBridge. If you have both a Windows system and a Mac or Linux one we suggest you bring the latter." - -message "Please download the pre-requisite software onto your laptop computer before you attend the workshop. This helps speed things up on Friday and helps prevent the WiFi network from getting clogged." - -message <<-MARKDOWN -### Students of the advanced class -MARKDOWN - -message <<-MARKDOWN - -We assume you've already made at least one Rails app in the past. If you already have a working Rails setup on your laptop, you do not need to do this. To check if you have a working Rails setup, try [creating a new Rails app](/intro-to-rails/getting_started) , running `bundle` and running the app with `rails server`. If you can see your newly created app in the browser, you're in the clear. -MARKDOWN - -message <<-MARKDOWN -## OS X Mavericks (10.9): -MARKDOWN - -message <<-MARKDOWN -Go to the [Apple Developer Center](https://developer.apple.com/downloads), -and click Register. Fill out the first page with your account information. -The second page is a developer survey, which you can skip. Just go to the bottom and click -"Continue". -MARKDOWN - -message <<-MARKDOWN -Once you have confirmed your developer account, you can download [Commandline Tools for XCode](https://developer.apple.com/downloads/index.action) for your operating system. -MARKDOWN - -message <<-MARKDOWN -## OS X 10.6 - 10.8 and above: -MARKDOWN - -message <<-MARKDOWN -First, download [Sublime Text 2 for Mac](http://c758482.r82.cf2.rackcdn.com/Sublime%20Text%202.0.2.dmg). -MARKDOWN - -message "Then pick one of the following options. The main difference is that Option 1 will install Ruby and various tools directly into your computer operating system, whereas Option 2 will install a temporary and easy-to-remove 'virtual machine' containing all the software you need for the workshop." - -message <<-MARKDOWN -### Option 1. RailsInstaller -MARKDOWN - -message <<-MARKDOWN -Download [Railsinstaller for Mac](https://s3.amazonaws.com/railsinstaller/OSX/RailsInstaller-1.0.4-osx-10.7.app.tgz) from the RailsInstaller webpage. -MARKDOWN - -message "Don't worry about watching the video. Just leave the download in your Downloads folder." - -message <<-MARKDOWN -### Option 2. Manual -MARKDOWN - -message <<-MARKDOWN -Go to the [Apple Developer Center](https://developer.apple.com/downloads), -and click Register. Fill out the first page with your account information. -The second page is a developer survey, which you can skip. Just go to the bottom and click -"Continue". -MARKDOWN - -message <<-MARKDOWN -Once you have confirmed your developer account, you can download [Commandline Tools for XCode](https://developer.apple.com/downloads/index.action) for your operating system. -MARKDOWN - -message <<-MARKDOWN -Download the [Commandline Tools for XCode]. You will need to register as a developer. -MARKDOWN - -message <<-MARKDOWN -## OS X 10.5 -MARKDOWN - -message <<-MARKDOWN -First, download [Sublime Text 2 for Mac](http://c758482.r82.cf2.rackcdn.com/Sublime%20Text%202.0.2.dmg). -MARKDOWN - -message <<-MARKDOWN -Go to the [Apple Developer Center](https://developer.apple.com/downloads), -and click Register. Fill out the first page with your account information. -The second page is a developer survey, which you can skip. Just go to the bottom and click -"Continue". -MARKDOWN - -message <<-MARKDOWN -Once you have confirmed your developer account, you can download [Xcode 3.1.4](http://adcdownload.apple.com/Developer_Tools/xcode_3.1.4_developer_tools/xcode314_2809_developerdvd.dmg). -If that link doesn't work, go to the [downloads page](https://developer.apple.com/downloads) and search for "Xcode 3.1.4" -MARKDOWN - -message <<-MARKDOWN -## Windows -MARKDOWN - -message <<-MARKDOWN -Please follow *all* of the instructions below. -MARKDOWN - -message <<-MARKDOWN -First, download [Sublime Text 2 for Windows](http://c758482.r82.cf2.rackcdn.com/Sublime%20Text%202.0.2%20Setup.exe) -- or [64bit version](http://c758482.r82.cf2.rackcdn.com/Sublime%20Text%202.0.2%20x64%20Setup.exe). -MARKDOWN - -message <<-MARKDOWN -### Option 1. RailsInstaller for "Introduction to Programming" -MARKDOWN - -message <<-MARKDOWN -Download [Railsinstaller for Windows](https://s3.amazonaws.com/railsinstaller/Windows/railsinstaller-2.2.2.exe) from the RailsInstaller webpage. -MARKDOWN - -message <<-MARKDOWN -### Option 2. Vagrant for "Introduction to Rails" or "Rails for Developers" -MARKDOWN - -message <<-MARKDOWN -Download [GitHub for Windows](http://windows.github.com/) and run the installer. -If prompted during installation, install the Microsoft .NET framework. -If GitHub for Windows automatically launches after installation, quit the application. -MARKDOWN - -message <<-MARKDOWN -Download -[VirtualBox](http://download.virtualbox.org/virtualbox/4.3.10/VirtualBox-4.3.10-93012-Win.exe) -for Windows. Run the installer after it downloads. You can quit the application -if it launches at the end of the installation. -MARKDOWN - -message <<-MARKDOWN -Download -[Vagrant](https://dl.bintray.com/mitchellh/vagrant/vagrant_1.5.1.msi) -for Windows. Run the installer after it downloads. Agree to restart the computer if you're prompted to do so. -MARKDOWN - -message <<-MARKDOWN -Download -[this file](https://www.dropbox.com/s/n0hio7qcbvipbyd/railsbridgevm-2014-04-rc2.box) and save it somewhere on your desktop or home folder. -MARKDOWN - -message "If you have any trouble with the installers just keep the files on your computer and someone will help you at the Installfest on Friday." - -message <<-MARKDOWN -## Linux -MARKDOWN - -message <<-MARKDOWN -Just install Sublime Text 2 -- [32 bit](http://c758482.r82.cf2.rackcdn.com/Sublime%20Text%202.0.2.tar.bz2) or [64 bit](http://c758482.r82.cf2.rackcdn.com/Sublime%20Text%202.0.2%20x64.tar.bz2). -MARKDOWN diff --git a/sites/en/docs/docs.step b/sites/en/docs/docs.step index 2254feb39..e7aae1849 100644 --- a/sites/en/docs/docs.step +++ b/sites/en/docs/docs.step @@ -1,9 +1,5 @@ message <our Discourse forum. (Volunteers to answer questions always needed, too!) MARKDOWN From 605749c0d7bef1b839123872184312b5c05018e5 Mon Sep 17 00:00:00 2001 From: Henry Jenkins Date: Mon, 19 Sep 2016 22:35:04 -0400 Subject: [PATCH 30/36] Align with main docs --- sites/en/installfest/configure_git.step | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sites/en/installfest/configure_git.step b/sites/en/installfest/configure_git.step index 3f1d62bd3..68fc697a3 100644 --- a/sites/en/installfest/configure_git.step +++ b/sites/en/installfest/configure_git.step @@ -1,4 +1,4 @@ - +message "(If you used RailsInstaller on Windows then you should already have `user.name` and `user.email` configured.)" console <<-BASH git config --global user.name "Your Actual Name" From 2191f5acbdc98f3aef23324d456446101da108ce Mon Sep 17 00:00:00 2001 From: Henry Jenkins Date: Mon, 19 Sep 2016 23:00:38 -0400 Subject: [PATCH 31/36] Remove unsupported languages --- lib/doc_page.rb | 2 -- lib/flags.rb | 37 ------------------------------------- 2 files changed, 39 deletions(-) delete mode 100644 lib/flags.rb diff --git a/lib/doc_page.rb b/lib/doc_page.rb index 66382a447..655955a9c 100644 --- a/lib/doc_page.rb +++ b/lib/doc_page.rb @@ -4,7 +4,6 @@ require 'erector_scss' require 'titleizer' require 'html5_page' -require 'flags' require 'erb' class DocPage < Html5Page @@ -74,7 +73,6 @@ def body_content } } ul(class: "navbar-nav nav") { - widget Flags, locale: @locale li(class: "dropdown") { a("sites", href: "#", class: "dropdown-toggle", "data-toggle" => "dropdown") diff --git a/lib/flags.rb b/lib/flags.rb deleted file mode 100644 index 1e6372d31..000000000 --- a/lib/flags.rb +++ /dev/null @@ -1,37 +0,0 @@ - -# Flag icons borrowed from https://www.gosquared.com/resources/flag-icons/ -# Put them in public/flags -class Flags < Erector::Widget - needs :locale - - def initialize *args - super - @locales = ["en", "es", "zh-tw"] - end - - def image_for_locale(locale) - image_name = {"en" => "us"}[locale.to_s] || locale - "/flags/#{image_name.upcase}.png" - end - - def subdomain_for_locale(locale) - {"en" => "docs"}[locale.to_s] || locale - end - - def content - li class: 'dropdown' do - a class: 'dropdown-toggle', 'data-toggle' => 'dropdown', href: '#' do - img src: image_for_locale(@locale) - end - ul class: 'flags dropdown-menu' do - @locales.each do |locale| - li { - a(href:"http://#{subdomain_for_locale(locale)}.railsbridge.org") { - img src: image_for_locale(locale) - } - } - end - end - end - end -end From 2413886f65c124ad1123abf3106a6d3603d6cb6d Mon Sep 17 00:00:00 2001 From: Henry Jenkins Date: Fri, 23 Sep 2016 14:01:29 -0400 Subject: [PATCH 32/36] Fix links to vb images --- sites/en/installfest/windows_vagrant.step | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sites/en/installfest/windows_vagrant.step b/sites/en/installfest/windows_vagrant.step index 9743e5d15..28547b6d0 100644 --- a/sites/en/installfest/windows_vagrant.step +++ b/sites/en/installfest/windows_vagrant.step @@ -18,14 +18,14 @@ end step "Set up your Vagrant box" do - message "If the file railsbridgevm-2014-04.box file you downloaded before the workshop isn't on your desktop, move it there." + message "If the file [railsbridgevm-2016-09.box](http://downloads.railsbridge.org/railsbridgevm-2016-09.box) file you downloaded before the workshop isn't on your desktop, move it there." message "Then type the following commands. Press ENTER after each command and wait for the operation to finish before typing the next one." console <<-BASH mkdir ~/Desktop/railsbridge cd ~/Desktop/railsbridge - vagrant box add --name railsbridgemontreal railsbridgevm-2014-04-rc2.box + vagrant box add --name railsbridgemontreal railsbridgevm-2016-09.box vagrant init railsbridgemontreal vagrant up vagrant ssh From 30f5fe58847240769b779fd1d93dd596bc8113be Mon Sep 17 00:00:00 2001 From: Eric M Date: Fri, 23 Sep 2016 14:48:38 -0400 Subject: [PATCH 33/36] Changed osx_ruby_short to 2.3.1 --- lib/site_extensions/installfest.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/site_extensions/installfest.rb b/lib/site_extensions/installfest.rb index 37d1dd809..df287fdeb 100644 --- a/lib/site_extensions/installfest.rb +++ b/lib/site_extensions/installfest.rb @@ -5,7 +5,7 @@ def version_string(name) when :minimum_ruby '2.2.2' when :osx_ruby_short - '2.3' + '2.3.1' when :windows_ruby_short '2.2' else From d06caaf90c2362a0cc5e20ff5edbda7d2b5dbead Mon Sep 17 00:00:00 2001 From: Eric M Date: Fri, 23 Sep 2016 15:20:28 -0400 Subject: [PATCH 34/36] Updated references and links to Sublime Text 2 to instead reference and link to Sublime Text 3, the current maintained version of the app --- sites/en/frontend/get_a_sticker.step | 2 +- sites/en/frontend/tool_installation.step | 6 +++--- .../_install_sublime_text_2_for_mac.step | 14 +++++++------- sites/en/installfest/_install_textmate.step | 2 +- .../installfest/img/install_sublime_text.png | Bin 68971 -> 51655 bytes sites/en/installfest/installfest.step | 2 +- sites/en/installfest/linux.step | 6 +++--- sites/en/installfest/osx_rvm.step | 2 +- .../installfest/windows_railsinstaller.step | 6 +++--- sites/en/intro-to-rails/getting_started.step | 2 +- sites/en/job-board/make_a_jobs_home_page.step | 2 +- sites/en/learn-to-code/learn-to-code.md | 4 ++-- sites/en/workshop/welcome.deck.md | 2 +- 13 files changed, 25 insertions(+), 25 deletions(-) diff --git a/sites/en/frontend/get_a_sticker.step b/sites/en/frontend/get_a_sticker.step index 87344521f..ce0ef46e6 100644 --- a/sites/en/frontend/get_a_sticker.step +++ b/sites/en/frontend/get_a_sticker.step @@ -10,7 +10,7 @@ end verify "you can open a local webpage in a browser" do message <<-MESSAGE -Create a new file called `sticker.html` by opening it in Sublime Text 2 or your preferred editor. +Create a new file called `sticker.html` by opening it in Sublime Text or your preferred editor. Make a note of where you save it, you'll need to know in a second. Fill it with the following contents: diff --git a/sites/en/frontend/tool_installation.step b/sites/en/frontend/tool_installation.step index 4922fcbcd..a58aabd25 100644 --- a/sites/en/frontend/tool_installation.step +++ b/sites/en/frontend/tool_installation.step @@ -46,10 +46,10 @@ steps do end step "Install a text editor" do - a "Download and install Sublime Text 2", :href => "http://www.sublimetext.com/2" - message "Install Sublime Text 2 by double clicking the file you downloaded, then dragging the Sublime Text 2 icon into the Applications folder. Finish up by clicking the eject icon for Sublime Text 2 in your finder window." + a "Download and install Sublime Text", :href => "http://www.sublimetext.com/3" + message "Install Sublime Text by double clicking the file you downloaded, then dragging the Sublime Text icon into the Applications folder. Finish up by clicking the eject icon for Sublime Text in your finder window." a "or install a different editor", :href => "/installfest/editors" - message "FYI: Sublime Text 2 is a paid program that you can download and try out for free. If you keep using Sublime Text 2 after the workshop, you'll need to buy a license. There are other editors available you can find on [our editors page](/installfest/editors)." + message "FYI: Sublime Text is a paid program that you can download and try out for free. If you keep using Sublime Text after the workshop, you'll need to buy a license. There are other editors available you can find on [our editors page](/installfest/editors)." end end end diff --git a/sites/en/installfest/_install_sublime_text_2_for_mac.step b/sites/en/installfest/_install_sublime_text_2_for_mac.step index 68dfc4fb6..cf44df861 100644 --- a/sites/en/installfest/_install_sublime_text_2_for_mac.step +++ b/sites/en/installfest/_install_sublime_text_2_for_mac.step @@ -1,26 +1,26 @@ -message "We'll be using the Sublime Text 2 text editor during the workshop, though you are free to use a different editor if you prefer. It must be a plain-text editor, such as vi or TextMate." +message "We'll be using the Sublime Text text editor during the workshop, though you are free to use a different editor if you prefer. It must be a plain-text editor, such as vi or TextMate." important <<-MARKDOWN Microsoft Word and other word processing programs, including TextEdit and Notepad, will not work. - When in doubt, use Sublime Text 2. + When in doubt, use Sublime Text. MARKDOWN -step "Download Sublime Text 2" do - message "Download the [Sublime Text 2 installer](http://c758482.r82.cf2.rackcdn.com/Sublime%20Text%202.0.2.dmg)." +step "Download Sublime Text 3" do + message "Download the [Sublime Text 3 installer](https://download.sublimetext.com/Sublime%20Text%20Build%203124.dmg)." end step 'Select "Open with DiskImageMounter" in the file save dialog' do message "This should be the default." - message "It will open an installer with a Sublime Text 2 icon and a picture of your Applications folder. Something like this:" + message "It will open an installer with a Sublime Text icon and a picture of your Applications folder. Something like this:" img src: 'img/install_sublime_text.png', alt: 'Contents of the sublime text package showing a sublime text icon and a shortcut to applications' end -step "Drag Sublime Text 2 into your Applications folder." do - message "It will open an installer with a Sublime Text 2 icon and a picture of your Applications folder. Drag Sublime Text 2 into your Applications folder." +step "Drag Sublime Text into your Applications folder." do + message "It will open an installer with a Sublime Text icon and a picture of your Applications folder. Drag Sublime Text into your Applications folder." end step "Unmount the installer disk image" do diff --git a/sites/en/installfest/_install_textmate.step b/sites/en/installfest/_install_textmate.step index b6a86ef09..9596a7be5 100644 --- a/sites/en/installfest/_install_textmate.step +++ b/sites/en/installfest/_install_textmate.step @@ -1,6 +1,6 @@ message <<-MARKDOWN -Sublime Text 2 isn't compatible with versions of OS X lower than 10.6 so we'll use Textmate (which is still widely used by Rails developers), you are free to use a different editor if you prefer. It must be a plain-text editor. +Sublime Text isn't compatible with versions of OS X lower than 10.7 so we'll use Textmate (which is still widely used by Rails developers), you are free to use a different editor if you prefer. It must be a plain-text editor. MARKDOWN diff --git a/sites/en/installfest/img/install_sublime_text.png b/sites/en/installfest/img/install_sublime_text.png index b01c2c4e40b3633bfd54785893ead42f6ac9ef5e..c912b9500ddc94ad62cca4dce448f87bb242e72e 100644 GIT binary patch literal 51655 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 Gp$Pzn{-iko literal 68971 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 diff --git a/sites/en/installfest/installfest.step b/sites/en/installfest/installfest.step index 755e2c8a3..7018d4279 100644 --- a/sites/en/installfest/installfest.step +++ b/sites/en/installfest/installfest.step @@ -45,7 +45,7 @@ Here's a list of tools you'll be installing. As you go through the workshop, we' * **Git**. A revision or source control system. It creates a repository, which is a complete history of your programming changes, so you can undo changes and roll back to previous versions of your work if something has gone wrong. * **GitHub**. (optional) * **Heroku**. An application server, which hosts your application during development. This allows you to get your application online and interact with it from any browser, instead of just on your local machine. -* **Sublime Text 2** (or [some other editor](editors)). To write programs in Ruby, you need a text editor to create, edit and save Ruby files. +* **Sublime Text** (or [some other editor](editors)). To write programs in Ruby, you need a text editor to create, edit and save Ruby files. * Various useful "**Ruby gems**". Ruby gems are useful bits of Ruby code that someone has created for reuse, so you don't have to write it yourself. Including... * bundler * sqlite diff --git a/sites/en/installfest/linux.step b/sites/en/installfest/linux.step index c7f512d29..b9e40cb3b 100644 --- a/sites/en/installfest/linux.step +++ b/sites/en/installfest/linux.step @@ -77,12 +77,12 @@ step "Install Rails" do console "gem install rails" end -step "Sublime Text 2" do +step "Sublime Text" do message <<-MARKDOWN -If you don't have a preferred code editor, you can install Sublime Text 2. It's available for [32-bit machines](http://c758482.r82.cf2.rackcdn.com/Sublime%20Text%202.0.1.tar.bz2) and [64-bit machines](http://c758482.r82.cf2.rackcdn.com/Sublime%20Text%202.0.1%20x64.tar.bz2) +If you don't have a preferred code editor, you can install Sublime Text. It's available for [32-bit machines](https://download.sublimetext.com/sublime_text_3_build_3124_x32.tar.bz2) and [64-bit machines](https://download.sublimetext.com/sublime_text_3_build_3124_x64.tar.bz2) -Check for the latest version. +Check for the latest version. MARKDOWN tip "How many bits?" do diff --git a/sites/en/installfest/osx_rvm.step b/sites/en/installfest/osx_rvm.step index dda81fb2a..dbe616767 100644 --- a/sites/en/installfest/osx_rvm.step +++ b/sites/en/installfest/osx_rvm.step @@ -53,7 +53,7 @@ step "Install Rails" do end end -step "Install Sublime Text 2" do +step "Install Sublime Text" do insert "install_sublime_text_2_for_mac" end diff --git a/sites/en/installfest/windows_railsinstaller.step b/sites/en/installfest/windows_railsinstaller.step index 919ffef6c..34e5aad34 100644 --- a/sites/en/installfest/windows_railsinstaller.step +++ b/sites/en/installfest/windows_railsinstaller.step @@ -145,11 +145,11 @@ step "Install a Text Editor" do message "Notepad is not a good programming editor, but it will work in a pinch." - important "**When in doubt, use Sublime Text 2.**" + important "**When in doubt, use Sublime Text.**" - message "[Sublime Text 2](http://www.sublimetext.com/2) is a good option, if you don't have one yet." + message "[Sublime Text](http://www.sublimetext.com/3) is a good option, if you don't have one yet." - message "Download Sublime Text 2 here: " + message "Download Sublime Text here: " end next_step "create_a_heroku_account" diff --git a/sites/en/intro-to-rails/getting_started.step b/sites/en/intro-to-rails/getting_started.step index 5ecbc05ed..a1addc291 100644 --- a/sites/en/intro-to-rails/getting_started.step +++ b/sites/en/intro-to-rails/getting_started.step @@ -60,7 +60,7 @@ Open the suggestotron folder as a project in your text editor. tip "Close any files that are already open. They might be from yesterday's `test_app`, and we want to make sure that we're editing files in today's `suggestotron` app." message <<-MARKDOWN -In **Sublime Text 2**, you can use the `Project > Add Folder to Project...` menu option: +In **Sublime Text**, you can use the `Project > Add Folder to Project...` menu option: ![Sublime Text Project menu screenshot](img/sublime_add_folder_to_project.png) diff --git a/sites/en/job-board/make_a_jobs_home_page.step b/sites/en/job-board/make_a_jobs_home_page.step index 2fa53b5de..9fc877c9e 100644 --- a/sites/en/job-board/make_a_jobs_home_page.step +++ b/sites/en/job-board/make_a_jobs_home_page.step @@ -21,7 +21,7 @@ message <<-MARKDOWN So it's looking for a route, but can't find one. Let's add one! - Open up the routes file. It's in the config directory, called `routes.rb`. If you're using Sublime Text 2, you can open it using keyboard shortcuts: + Open up the routes file. It's in the config directory, called `routes.rb`. If you're using Sublime Text, you can open it using keyboard shortcuts: * Hitting cmd + p (on Mac) or ctl + p (on PC) * typing in `route` diff --git a/sites/en/learn-to-code/learn-to-code.md b/sites/en/learn-to-code/learn-to-code.md index 36f731881..0910bc072 100644 --- a/sites/en/learn-to-code/learn-to-code.md +++ b/sites/en/learn-to-code/learn-to-code.md @@ -70,8 +70,8 @@ Follow along at http://docs.railsbridge.org/learn-to-code * Ruby version 2.3 preferred, but 1.9+ is fine too * run `ruby -v` to check * a text editor - * e.g. Sublime Text 2 - * http://www.sublimetext.com/2 + * e.g. Sublime Text + * http://www.sublimetext.com/ * If you do not have both of these things, RAISE YOUR HAND * visit http://installfest.railsbridge.org for more instructions diff --git a/sites/en/workshop/welcome.deck.md b/sites/en/workshop/welcome.deck.md index 736f26a64..b3462401e 100644 --- a/sites/en/workshop/welcome.deck.md +++ b/sites/en/workshop/welcome.deck.md @@ -88,7 +88,7 @@ We want the community of software developers to reflect the diversity of our soc * **rake**: like make for Ruby. An easy way to run tasks. * **git**: source code control. * **database**: we'll use SQLite, but could be any relational database. -* **editor**: Sublime Text 2 +* **editor**: Sublime Text * **heroku**: free Rails hosting. From a0d764baa1c1b146b1bb027f0dc2daa541a2b210 Mon Sep 17 00:00:00 2001 From: Eric M Date: Fri, 23 Sep 2016 15:31:28 -0400 Subject: [PATCH 35/36] Added 'Install Text Editor' step to windows_vagrant page, moved windows text editor instructions into a partial --- sites/en/installfest/_install_text_editor_windows.step | 9 +++++++++ sites/en/installfest/windows_railsinstaller.step | 10 +--------- sites/en/installfest/windows_vagrant.step | 4 ++++ 3 files changed, 14 insertions(+), 9 deletions(-) create mode 100644 sites/en/installfest/_install_text_editor_windows.step diff --git a/sites/en/installfest/_install_text_editor_windows.step b/sites/en/installfest/_install_text_editor_windows.step new file mode 100644 index 000000000..49169d4a8 --- /dev/null +++ b/sites/en/installfest/_install_text_editor_windows.step @@ -0,0 +1,9 @@ +message "You need a text editor to do Ruby. If you already have a preferred text editor, such as vi, emacs, jedit, etc., you can skip this step. It must be a plain text editor and not something with styling like Microsoft Word or WordPad." + +message "Notepad is not a good programming editor, but it will work in a pinch." + +important "**When in doubt, use Sublime Text.**" + +message "[Sublime Text](http://www.sublimetext.com/3) is a good option, if you don't have one yet." + +message "Download Sublime Text here: " \ No newline at end of file diff --git a/sites/en/installfest/windows_railsinstaller.step b/sites/en/installfest/windows_railsinstaller.step index 34e5aad34..86e27393d 100644 --- a/sites/en/installfest/windows_railsinstaller.step +++ b/sites/en/installfest/windows_railsinstaller.step @@ -141,15 +141,7 @@ step "Configure the Windows Terminal" do end step "Install a Text Editor" do - message "You need a text editor to do Ruby. If you already have a preferred text editor, such as vi, emacs, jedit, etc., you can skip this step. It must be a plain text editor and not something with styling like Microsoft Word or WordPad." - - message "Notepad is not a good programming editor, but it will work in a pinch." - - important "**When in doubt, use Sublime Text.**" - - message "[Sublime Text](http://www.sublimetext.com/3) is a good option, if you don't have one yet." - - message "Download Sublime Text here: " + insert "install_text_editor_windows" end next_step "create_a_heroku_account" diff --git a/sites/en/installfest/windows_vagrant.step b/sites/en/installfest/windows_vagrant.step index 28547b6d0..5e4b03fe0 100644 --- a/sites/en/installfest/windows_vagrant.step +++ b/sites/en/installfest/windows_vagrant.step @@ -109,5 +109,9 @@ step "Usage Tips" do end end +step "Install a Text Editor" do + insert "install_text_editor_windows" +end + next_step "configure_git" From 1b81e3b39cf27c1c7d958884b8fb35188f45a3cd Mon Sep 17 00:00:00 2001 From: Henry Jenkins Date: Fri, 23 Sep 2016 16:45:08 -0400 Subject: [PATCH 36/36] Fix links for getting a sticker --- sites/en/frontend/tool_installation.step | 2 +- sites/en/installfest/installfest.step | 2 +- sites/en/message-board/message-board.step | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/sites/en/frontend/tool_installation.step b/sites/en/frontend/tool_installation.step index a58aabd25..0d9ed60c3 100644 --- a/sites/en/frontend/tool_installation.step +++ b/sites/en/frontend/tool_installation.step @@ -64,6 +64,6 @@ steps do tip "A note about your password. In order to push to GitHub, you'll need to type your password in at the terminal. So make it something easy to remember and type but hard to guess." end - next_step "get_a_sticker" + next_step "sanity_check" end diff --git a/sites/en/installfest/installfest.step b/sites/en/installfest/installfest.step index 7018d4279..12b3c7c37 100644 --- a/sites/en/installfest/installfest.step +++ b/sites/en/installfest/installfest.step @@ -54,7 +54,7 @@ You will also create an account on Heroku, an application hosting platform. If you already have an account on Heroku, make sure you know your username and password. -If you've already installed the above tools and are confident they are setup correctly, skip ahead to the Get a Sticker step. +If you've already installed the above tools and are confident they are setup correctly, skip ahead to the Get a Sticker step. MARKDOWN end diff --git a/sites/en/message-board/message-board.step b/sites/en/message-board/message-board.step index 68544832d..282f81361 100644 --- a/sites/en/message-board/message-board.step +++ b/sites/en/message-board/message-board.step @@ -1,6 +1,6 @@ message <<-MARKDOWN ## Assumptions made by this curriculum -* You’ve gone through the standard RailsBridge installfest and have successfully completed the Get a Sticker step. +* You’ve gone through the standard RailsBridge installfest and have successfully completed the Get a Sticker step. * You’ve gone through the RailsBridge Suggestotron curriculum and the Job Board curriculum at least once before, or maybe a couple of times, or maybe you feel decently comfortable with Rails for some other reason. * You want to learn more Rails!!!