Permalink
Browse files

REmoving old files.

Signed-off-by: Kurtis Rainbolt-Greene <kurtisrainboltgreene@gmail.com>
  • Loading branch information...
1 parent ad6dd9d commit 8b710eea7f32c2a88080825794add535e6790cff Kurtis Rainbolt-Greene committed Jun 5, 2011
Showing with 0 additions and 2,414 deletions.
  1. +0 −44 COPYRIGHT
  2. +0 −31 README
  3. +0 −317 book/chapters/chapter-1.md
  4. +0 −3 book/chapters/chapter-2.md
  5. +0 −2 book/chapters/chapter-3.md
  6. 0 book/chapters/chapter-4.md
  7. 0 book/chapters/chapter-5.md
  8. +0 −11 book/copyright.md
  9. +0 −84 book/frequently-asked-questions.md
  10. BIN book/images/_why.png
  11. BIN book/images/dhh.png
  12. BIN book/images/from-japan.png
  13. BIN book/images/hacker.png
  14. BIN book/images/matz.png
  15. BIN book/images/soviet-duck.png
  16. BIN book/images/zed-shaw.png
  17. +0 −47 book/table-of-contents.md
  18. 0 book/tasks/source/task-0.rb
  19. +0 −8 book/tasks/source/task-1.rb
  20. +0 −26 book/tasks/source/task-2.rb
  21. +0 −16 book/tasks/source/task-3.rb
  22. 0 book/tasks/source/task-4.rb
  23. 0 book/tasks/source/task-template.rb~
  24. +0 −107 book/tasks/task-0.md
  25. +0 −38 book/tasks/task-1.md
  26. +0 −26 book/tasks/task-2.md
  27. +0 −44 book/tasks/task-3.md
  28. +0 −23 book/tasks/task-4.md
  29. +0 −33 book/tasks/task-template.md~
  30. +0 −22 web/COPYRIGHT.md
  31. 0 web/README.md
  32. +0 −65 web/app.rb
  33. BIN web/public/image/_why.png
  34. BIN web/public/image/browser/chrome.png
  35. BIN web/public/image/browser/firefox.png
  36. BIN web/public/image/browser/opera.png
  37. BIN web/public/image/dhh.png
  38. BIN web/public/image/favicon.png
  39. BIN web/public/image/from-japan.png
  40. BIN web/public/image/hacker.png
  41. BIN web/public/image/matz.png
  42. BIN web/public/image/social/facebook.png
  43. BIN web/public/image/social/google.png
  44. BIN web/public/image/social/linkedin.png
  45. BIN web/public/image/social/livejournal.png
  46. BIN web/public/image/social/myspace.png
  47. BIN web/public/image/social/tumblr.png
  48. BIN web/public/image/social/twitter.png
  49. BIN web/public/image/social/wordpress.png
  50. BIN web/public/image/soviet-duck.png
  51. BIN web/public/image/zed-shaw.png
  52. +0 −30 web/public/javascript/modernizr.min.js
  53. +0 −43 web/public/javascript/plugins.js
  54. +0 −26 web/public/javascript/script.js
  55. +0 −5 web/public/robots.txt
  56. +0 −59 web/public/style/syntax.css
  57. +0 −6 web/views/_footer.haml
  58. +0 −12 web/views/_header.haml
  59. +0 −20 web/views/browser.haml
  60. +0 −317 web/views/chapter-1.md
  61. +0 −299 web/views/chapter-2.md
  62. +0 −2 web/views/chapter-3.md
  63. 0 web/views/chapter-4.md
  64. 0 web/views/chapter-5.md
  65. +0 −46 web/views/clean.sass
  66. +0 −11 web/views/copyright.md
  67. +0 −3 web/views/fourohfour.haml
  68. +0 −84 web/views/frequently-asked-questions.md
  69. +0 −10 web/views/index.haml
  70. +0 −42 web/views/layout.haml
  71. +0 −41 web/views/markdown.haml
  72. +0 −133 web/views/mixins.sass
  73. +0 −7 web/views/mobile.sass
  74. +0 −97 web/views/standard.sass
  75. +0 −47 web/views/table-of-contents.md
  76. +0 −59 web/views/typography-old.sass
  77. +0 −62 web/views/typography.sass
  78. +0 −6 web/views/variables.sass
View
44 COPYRIGHT
@@ -1,44 +0,0 @@
-Copyright(s)
-============
-This work is split into two parts: Literature and Source Code. Each part has a
-different copyright license attached.
-
-
-Literature
-----------
-Simplified:
- http://creativecommons.org/licenses/by-sa/3.0/
-Standard:
-> [Learn You The Ruby For Awesome Power][0] by [Kurtis Rainbolt-Greene][1] is licensed under a [Creative Commons Attribution-ShareAlike 3.0 Unported License][2].
-> Based on a work at [learnyoutheruby.com][3].
-
-
-Source Code
------------
-Simplified:
- http://creativecommons.org/licenses/MIT/
-Standard:
-> Copyright (c) 2010 Kurtis Rainbolt-Greene
-
-> Permission is hereby granted, free of charge, to any person obtaining a copy
-> of this software and associated documentation files (the "Software"), to deal
-> in the Software without restriction, including without limitation the rights
-> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-> copies of the Software, and to permit persons to whom the Software is
-> furnished to do so, subject to the following conditions:
-
-> The above copyright notice and this permission notice shall be included in
-> all copies or substantial portions of the Software.
-
-> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-> THE SOFTWARE.
-
-[0]: http://learnyoutheruby.com
-[1]: http://krainboltgreene.github.com/resume
-[2]: http://creativecommons.org/licenses/by-sa/3.0/
-[3]: http://learnyoutheruby.com/source.tar.gz
View
31 README
@@ -1,31 +0,0 @@
-README
-======
-
-This is a book I am writing,
-called Learn You The Ruby For
-Awesome Power. Learn You The
-Ruby For Awesome Power is a
-book for those who want to
-hack with the Ruby Programming
-Language. The book attempts to
-be similar to Learn You A
-Haskell, Learn You Some Erlang,
-and Learn Python The Hard Way.
-This book also attempts to be
-funny, but never really had
-the nack for telling jokes.
-The book constantly wonders
-what life would have been like
-if things had been different.
-
-This book takes the reader from
-zero to developer by having them
-complete tasks that over time
-take what the reader has learned
-and adds new layers. This book
-also gives the reader pep talks,
-and advice concerning girls. The
-conversations get awkward and the
-book will, at times, start ranting
-about some woman called "Vickey"
-and how it all really went down.
View
317 book/chapters/chapter-1.md
@@ -1,317 +0,0 @@
-And Then There Was Ruby
-=======================
-
-**Note: If you want to get straight to hacking start at [Chapter 2: Ready! Set! Hack](/chapter/2).**
-
-[HCP: Hackers, Code, and Programming](id:section-one)
------------------------------------------------------
-
-> The computer programmer is a creator of universes for which he alone is responsible.
-> Universes of virtually unlimited complexity can be created in the form of computer programs.
-> ---
-> **Joseph Weizenbaum**, Computer Power and Human Reason
-
-If you've watched any news in the last ten years, read any newspapers in the last fifteen (Some people still do!), or talked to that technically inclined cousin of yours, then you've probably heard three words that are specific to this field:
-
-1. Hacker (or Hacking)
-2. Code (or coding)
-3. Programming (Or programs)
-
-Lets talk about each one specifically since they're going to be so prevalent in the next ten years of your life should you decide to be a programmer.
-The first and most complicated word is *Hacker*.
-You've probably heard it in a very negative tone, often defined as a person who uses computers to illegally gain access to computers to hinder or damage.
-Hell, you've probably had some idiot claim to be a hacker in order to intimidate you into doing something.
-
-**Guess what**: That's not what _hacker_ means.
-No, there's already a name for people who do what I just described: Criminals.
-They don't need a special name to help them appear more mysterious or dangerous.
-In reality, a hacker is a member of the hacker subculture and simply an individual who seeks to learn as much as possible using technology.
-Usually under a self-defined code of ethics, not necessarily ones that reflect common law.
-Many consider the only method of learning is to examine, since the information necessary for their own enlightenment is not free.‏
-
-![Real Hackers](/image/hacker.png "Yeah, it's kinda like that.")
-
-The latter two terms are less culturally significant but should still be defined and talked about: _Programming_ is the act of writing code, using a programming language.
-A programming language is the language we, humans, use to instruct computers, dumb pieces of plastic, on what to do.
-A program (or script) is a list of instructions that you've laid out for the computer to follow and complete.
-Programs are sometimes called software, applications, or scripts depending on the complexity or detail involved in using them.
-
-The act of programming is to write these scripts or applications in a programming language, like Ruby.
-A computer only knows how and when to do things if you tell it to in it's own language, Binary.
-
-### Binary's Count 1 To 10, Print Sum
-
-<script src="http://gist.github.com/654757.js?file=count-to-ten.binary"></script>
-
-This program tells the computer to take every number from 1 to 10, add them together, and display the sum (55).
-It's complex, arcane, and completely unreadable to the naked eye for most people.
-Would you believe that people actually programmed applications this way?
-Simple software, like a calculator, required complex and time consuming work that was error prone and easily crashed.
-The same code is written here in Ruby:
-
-### Ruby's Count 1 To 10, Print Sum
-
-<script src="http://gist.github.com/654757.js?file=count-to-ten.rb"></script>
-
-Or even:
-
-<script src="http://gist.github.com/654757.js?file=alt-count-to-ten.rb"></script>
-
-![Awesome Placeholder Image](http://dummyimage.com/300/00/44.png&text=Awesome%20Placeholder "So awesome.")
-
-It's obvious in the previous two examples that programming languages are a tool for making developing easier.
-Programming in Ruby works by writing text (like above), having the Ruby interpreter compile it, and getting the result of your work.
-The next two examples are exactly the same, first in Java a really powerful and common language, the second in Ruby:
-
-### Java's "Hello, World"
-
-<script src="http://gist.github.com/654757.js?file=hello-world.java"></script>
-
-### Ruby's "Hello, World"
-
-<script src="http://gist.github.com/654757.js?file=hello-world.rb"></script>
-
-Meanwhile, _Code_ is a language agnostic term for the source code that we write.
-Further, source code is is any collection of statements or declarations written in some human-readable computer programming language.
-The above examples I've listed are exactly that: Code.
-
-
-[def ruby](id:section-two)
---------------------------
-
-> A dynamic, open source programming language with a focus on simplicity and productivity.
-> It has an elegant syntax that is natural to read and easy to write.
-> - - -
-> **Ruby Lang**, http://ruby-lang.org
-
-
-> Ruby is a dynamic, reflective, general purpose object-oriented programming language that combines syntax inspired by Perl with Smalltalk-like features.
-> Ruby originated in Japan during the mid-1990s and was initially developed and designed by Yukihiro "Mat.
-Matsumoto.
-> It is based on Perl, Smalltalk, Eiffel, Ada, and Lisp.
-> - - -
-> **Wikipedia**, http://en.wikipedia.org/wiki/Ruby_(programming_language)
-
-![It Came From Japana](/image/from-japan.png ":horror-face:")
-
-You didn't come here to read about a few definitions, though.
-You came here to learn about Ruby (or else you're going to be mildly disappointed).
-So let's learn about Ruby: Ruby is a programming language.
-Ok, so you probably figured that out already.
-Here's some important information that wont make sense yet: The Ruby programming language is expressive, imperative, and object-oriented.
-Ruby doesn't require a compile step, but instead is interpreted by an interpreter.
-The Ruby programming language is geared toward and designed for both simplicity and enjoyability.
-Ruby's goal is to make development very fun and easy for developers.
-
-> Experienced programmers should take note of the term "Object-Oriented.
-> That's not "Object-Curious", or "Object-Casual.
-> This isn't that one time at band camp when your program let another modify his orientation for the night.
-
-This is an object-oriented language and you'll be dealing with Classes and Objects the entire time.
-Everything, and I do mean everything, is an Object in Ruby, even the results from methods (a more manlier word for function) are an Object.
-
-Ruby was officially named on 1993-02-24 in Japan by it's creator Yukihiro "Mat" Matsumoto.
-The language went public 1995-12-21 with Ruby v0.95.
-Ruby v1.0 wouldn't crawl around until a year later, 1996-12-25.
-Somewhere during the year 2000 Ruby would finally become used mainstream outside of Japan, and on 2001-12-15 the Pragmatic Programmers released Programming Ruby, otherwise known as _Pickaxe_.
-2001 also happened to be the year of the ever successful convention, RubyConf?
-which was first called RubyConf?.new(2001).
-It's an inside joke you'll get later.
-
-![The Real Matz](/image/matz.png "Matz: The Original Ruby Goatee")
-
-The ball didn't start really rolling until David "DH.
-Heinmeier hit the scene.
-Mr.
-Heinemeier designed and created Rails (Usually called Ruby On Rails) and opened the source on 2004-07.
-He didn't give commit rights (The right to change the code) to anyone else until 2005-02 and even then it's a strict list.
-Rails exploded onto the web development scene like the Virut virus on an unsuspecting computer.
-DHH had single handedly made web development enjoyable, the cad.
-Apple Inc.
-picked up on this crazy development in the webtech scene and announced that Mac OS X (10.5, Leopard) would ship with the latest Rails in 2004-08.
-
-The real question you want to know (most likely) is what the language is "good for", or at least used for.
-The answer to this is easy: Everything.
-Want a script that sorts, edits, or deletes your files?
-Can do.
-Want to write a pretty GUI (Graphic User Interface)?
-Yep, in spades.
-Pushing out an extensive and complex web application?
-Twitter, YelloPages, and Github did it with Rails.
-You will be doing simpler things of course, but all these projects and more are within the grasp of even average people if they put their mind to it.
-In fact, here's a (very small) list of examples:
-
-* [Sinatra](http://sinatrarb.com), a micro-web framework and DSL for creating tiny (or complex) web applications! * [Hackety Hack](http://hacketyhack.heroku.com/), a wonderful programming introduction for children, by \_why.
-* [Event Machine](http://rubyeventmachine.com/), an event based server.
-* [Mongrel](http://github.com/fauna/mongrel), the powerful HTTP server built by Zed Shaw.
-* [Rake](http://rake.rubyforge.org/), all the simplicity of Ruby for powerful makes.
-
-Ruby has a lot of good facets (haha, precious gem joke) that are very easy to identify: Ruby is powerful and elegant, easy to read and detailed, with enterprise and open source in mind.
-All these are pretty much buzz words when you get down too it so the real good side of Ruby is that it's easy and fun.
-These are traits not often found in programming languages.
-Like all programming languages and tools Ruby has a place and use that it is best fit for: Web development.
-
-![Awesome Placeholder Image](http://dummyimage.com/300/00/44.png&text=Awesome%20Placeholder "So awesome.")
-
-Like every other language Ruby has some bad parts too.
-The Ruby Community is so terrible that I've devoted an entire chapter just to the culture around Ruby.
-The standard Ruby interpreter (1.8) is really slow compared to pretty much every other modern used language.
-The latest stable version (1.9) is only just now coming into broad usage by developers.
-Ruby isn't scalable naturally for the most part, and requires external sources and languages to assist it.
-One programmer has told me that the long time solution to this was, "Run more machines with Ruby.
-which is an obviously flawed approach.
-Open Ruby projects tend to have serious little or poor documentation and for the most part hasn't improved.
-
-
-[The Ruby Revolution & Renaissance](id:section-three)
---------------------------------------------------------
-
-Now that you know what Ruby is (or at least the definition of Ruby) and how it started, it's time to learn about the history.
-The era, called the _Ruby Revolution_ by some, of most significance started in 2004.
-The Ruby Revolution concerns the period of time where Rails hit the scene and started to cause a fuss among web developers.
-The "fus.
-would be called _Ruby Philosophy_.
-The core philosophy behind Ruby is "DRY: Don't Repeat Yourself".
-During this time period you can see at least three sides forming in the web development community: The older fellows who liked what they had (JavaEE, PHP) and didn't think this new fangled Ruby On Rails was worth the change, the younger developers who quite enjoyed the ease Rails and Ruby gave them, and those that didn't care either way.
-
-While web development and web frameworks existed long before Rails, it was commonly considered that web application development sucked.
-It was something you had to really plow through without much help.
-The idea that web development could be significantly easier made a lot of people happy.
-Of course, Ruby and Rails wasn't (and isn't) perfect, but it was the initial push toward making things easier that mattered.
-The thing is the Ruby Revolution wouldn't have happened without the success of Ruby On Rails with American developers.
-Thanks to the Rails phenomenon the number of Ruby developers in the United states and European Union grew by incredible amounts.
-Even though there is an even smaller divide among Rubyists on Rails, we owe a lot of Ruby's following and popularity to Rails.
-
-![David Heineiehem Handsomface](/image/dhh.png "DHH: The Ruby Pretty Boy")
-
-As with all revolutions there had to end, and it did end around the year 2009.
-Though while the _Ruby Revolution_ ended many claimed that 2010 will be the start of the _Ruby Renaissance_.
-An era for Ruby to refine many aspects of the language and it's parts.
-At the end of 2009 Ruby already had four variations, the beginning of a Standard, and the rise of three other major web frameworks beyond Rails.
-More importantly many companies were (and are) specifically hiring Ruby and Ruby On Rails developers.
-
-A lot of articles have been written and will be written about the Ruby Revolution and the change that Ruby has made in the web development area.
-It's a good idea to keep in mind that Ruby's Revolution and Renaissance didn't sprout from a void.
-The real source of Ruby's success is you, future developers and users.
-
-
-[Rock Out To The Rock Star](id:section-four)
---------------------------------------------
-The term Rockstar, or Rock Star, in the context of developers or developing is commonly meant to describe someone who has a cult like following.
-Rock Stars are programmers who do things (sometimes amazing things) and advance the community or the language.
-Like Jimi Hendrix, Elvis, and Lynyrd Skynyrd, the Rock Stars usually have a large amount of followers and disciples that watch their every word and movement.
-Rock Stars don't have everything going for them however.
-Much like the music gods they're titled after eventually the Rock Star burns out and either becomes destructive or washes away in mystery.
-I know, who thought Programming could be so dramatic?
-
-The Ruby Community has two Rock Stars worth taking serious notice of.
-Both of these Rock Stars are people I look up to and look forward to matching one day.
-They have changed the face of Ruby and will be remembered for a very long time.
-It's hard to look at Ruby and not see the areas that they've changed and so they are in my Ruby Rock Star Hall of Fame, if you will.
-The first is Zed Shaw, someone whom you might already know from his rants and usual internet ravings.
-A musician and a talent, he has since left the Ruby community.
-The second is Why The Lucky Stiff, or \_why, and has paved the path for a kinder and more enjoyable Ruby experience for a lot of new people.
-He is also considered to be one of the more wild aspects of Ruby developing.
-He has since left the internet completely, committing what many consider to be "Internet Suicide."
-
-![why the lucky stiff](/image/_why.png "_why: Pure Imagination")
-
-Zed Shaw developed Mongrel, an open-source HTTP library and web server for Ruby web applications and is mostly recognized for that accomplishment.
-He has since moved on to building Mongrel 2 (Not Ruby), Lamson, and the Liberlist.
-Attaining Rock Star status due to his heavy influence in how the community deals with Corporate presence, Zed Shaw burned out finally with a blog post called "Rails Is A Ghetto."
-The blog post no longer exists on his web site and all that remains is a note by him for programmers to follow the quiet helpers who look after those in need rather than the tough jocks of our community, like himself.
-
-![Zed Shaw](/image/zed-shaw.png "Zed Shaw: Born to code.")
-
-You might wonder why I don't use \_why's real name, and instead use his moniker Why The Lucky Stiff.
-This is because no one currently knows his true identity and is willing to tell.
-\_why has developed many projects that have changed the face of the Ruby Community.
-His efforts to guide the Ruby Community into a place where new people are met with enthusiasm and not disgust have put him in the Rock Star Hall of Fame along with Zed Shaw.
-Unlike most Rock Stars he went out with a serious whimper, rather than a dramatic bang.
-One day all of his repositories and social networking accounts were closed and gone.
-Many of his works are now mirrored, but developers of Ruby have all felt his impact.
-
-While Rock Stars have a limited time to do good before they burn out it's important to understand that Rock Stars do in fact do good.
-Think of them as Nitrous Oxide Systems, that for a short period drastically increase the speed the community moves at.
-The Ruby Community has a lot to gain from these men of action, despite their short social life spans.
-
-
-[The Cherry Kool-Aid](id:section-five)
---------------------------------------
-
-Like many geek cultures that exist today the programming communities tend to have a very common problem: Power users, fanboys, and evangelists.
-Fanatics of a religion, political party, or creed have always existed and the programming culture is no less afflicted by them.
-In fact due to the social ineptitude many geeks live with we are more prone to the red haze of cultism.
-You're mistaken if you think I'm joking when I say that there have been actual fist fights over which indentation style to use in C, or what command line editor to write with.
-Despite the Hacker culture's focus on individuality and freedom, the Ruby world is still a geek world.
-
-![Awesome Placeholder Image](http://dummyimage.com/300/00/44.png&text=Awesome%20Placeholder "So awesome.")
-
-Ever since Rails rolled out the Ruby community has stepped knee deep in hype and hyperbole.
-It started off as lot of programmers becoming very enthusiastic about a new and expressive language.
-It didn't help that the community had a lot of early Rock Stars emerging from Rails, and that they talked a lot of smack about other languages.
-Many touted Ruby as the Great White Hope of Programming.
-It's a general consensus among Rubyits that the egotism and dickery comes directly from Rails's growth.
-
-The reality here is that geeks of any flavor tend to gush over new toys and geeks of any flavor tend to rant about others gushing.
-In recent years the type of behavior described has slowly ground to a halt as the fanatics are pushed aside and the community, and language, matures.
-It is important to realize that his behavior stems from ignorance and the best cure is education.
-We as a group cannot abide by this blind fervor because it will ultimately ruin a lot of what Ruby stands for: The enjoyment of developing.
-
-![Awesome Placeholder Image](http://dummyimage.com/300/00/44.png&text=Awesome%20Placeholder "So awesome.")
-
-
-[Credits & Licensing](id:section-six)
--------------------------------------
-Alright, you've gotten through the boring part of the book.
-You know about Ruby, the history, and some of the pitfalls of the community.
-You're equipped, now, to start learning Ruby and building applications.
-Hopefully you can start understand why I've written this guide, especially this way, once you get into Ruby developing on your own.
-This book is of course not the last thing you'll read.
-In fact you should go on to read these great books, because they inspired me to write this:
-
-* [Learn Python The Hard Way](http://learnpythonthehardway.org/) (Read Chapter 1 first, then you can read either book.)
-* [Poignant Guide To Ruby](http://mislav.uniqpath.com/poignant-guide/) (Written in an odd but fun way.)
-* [Eloquent Javascript](http://eloquentjavascript.net/) (Also free and web/pdf)
-* [Think Python](http://www.greenteapress.com/thinkpython/thinkpython.html) (Also free and web/pdf)
-* [Programming Ruby](http://ruby-doc.org/docs/ProgrammingRuby/) (Not free/Web)
-* [Learn You A Haskell For Great Good](http://learnyouahaskell.com/)
-* [Learn You Some Erlang For Great Good](http://learnyousomeerlang.com/)
-* [Learning Clojure](http://en.wikibooks.org/wiki/Learning_Clojure)
-
-Also, here's the [copyright](/book/copyright).
-
-
-[How This Book Works](id:section-seven)
----------------------------------------
-
-**Good!** You've heroically made it to the end of Chapter One.
-I promise the next chapter won't be too terribly long.
-In fact chapters three through ten will all be ten sections long, while chapter two will have 1 setup section and 10 learning sections.
-Each section of each chapter will be in five important sections:
-
-* A brief summary of what the section will teach you
-* A bit of source code
-* A result of running the code
-* A detailed description of each (new) important part
-* And some extra credit tasks
-
-![Awesome Placeholder Image](http://dummyimage.com/300/00/44.png&text=Awesome%20Placeholder "So awesome.")
-
-Now that we know all the pieces to the puzzle it's time to learn how to read and use this book.
-Follow each step exactly and then go wild:
-
-1. Read the brief description, don't worry if you don't fully understand it
-2. Create a new file, in your projects directly (We'll get to that), called `lytr#.rb` and replace the # with the task number.
-3. Write each line from the source code into the file. **Do not copy and paste**. The point is to learn by doing.
-4. Read the detailed description and the code you just wrote.
-5. Run the code, see if you get the desired output. If you don't, return to step 3. _**Note**: Some sections will have **secret bugs** just for you to figure out!_
-6. If you feel confidant check out the extra credit portions, change the code around, and get messy!
-
-It is very important that you type each bit of source code out.
-It will make the learning process a whole lot easier and give you a deeper, first hand, understanding of writing Ruby code.
-Once you've followed each step carefully you should understand another portion of how to program with Ruby.
-Initially this might be a very difficult way of learning how to program with Ruby, but if you stick with it you'll be hacking out apps left and right.
-One last thing before we start you on the really interesting things: Have.
-Fun.
-
View
3 book/chapters/chapter-2.md
@@ -1,3 +0,0 @@
-# Ready! Set! Hack.
-**Note: I adore notes.**
-
View
2 book/chapters/chapter-3.md
@@ -1,2 +0,0 @@
-The Trail To Neverland
-======================
View
0 book/chapters/chapter-4.md
No changes.
View
0 book/chapters/chapter-5.md
No changes.
View
11 book/copyright.md
@@ -1,11 +0,0 @@
-COPYRIGHT
-=========
-
-[Learn You The Ruby For Awesome Power][0] by [Kurtis Rainbolt-Greene][1] is licensed under a [Creative Commons Attribution-ShareAlike 3.0 Unported License][2].
-
-Based on a work at [learnyoutheruby.com][3].
-
-[0]: http://learnyoutheruby.com
-[1]: http://krainboltgreene.github.com/resume
-[2]: http://creativecommons.org/licenses/by-sa/3.0/
-[3]: http://learnyoutheruby.com/source.tar.gz
View
84 book/frequently-asked-questions.md
@@ -1,84 +0,0 @@
-FREQUENTLY ASKED QUESTIONS
-==========================
-
-> **Q**: Is (Ruby||Programming) hard to learn?
-
-**A**: Programming is largely four things: Effort, Learning, Syntax, and Paradigms.
-This shouldn't be surprising, but the effort is the hardest part about learning how to program.
-Without the effort to work on things yourself you'll never go forward as a learner, no matter how much you read.
-The latter three are self explanitory, but here you go: You have to be willing to learn, constantly.
-Programming is a moving target even if you want to work with old stuff.
-Finally, learning any language requires learning the facets of the Paradigm and the particular syntax the language uses.
-
-
-> **Q**: Who are you?
-
-**A**: I'm a hacker, writer, designer, and father.
-I have a keen interest in pushing the programming community forward by making it easier to jump into.
-Luckily I was gifted with the ability, fortitude, and foolishness to write a learning book.
-
-
-> **Q**: Why do you like Ruby?
-
-**A**: I like Ruby because it's expressive syntax, and it's affinity for Domain Specific Languages.
-It was the first language I ever used seriously, and I hope to continue working with it.
-It also happens that I can make a lot of money developing in Ruby.
-
-
-> **Q**: Who built this website?
-
-**A**: I built this website!
-All of it.
-To elaborate I wrote the HTML with HAML, and the CSS with SASS.
-Each chapter is formatted with the Discount markdown language.
-The web site runs on Sinatra, a simple micro web framework.
-
-
-> **Q**: Why did you build this website?
-
-**A**: I built this website because I felt the tutorials out there, excluding \_why's, were dry and unapproachable.
-For a language that is as expressive and fun to develop with as Ruby, this seems like such a tragedy.
-
-
-> **Q**: Have you built any others?
-
-**A**: Other **Learn You The**'s? Not yet, but I seriously plan to.
-I look forward to finishing the LYTR website only to do a Factor, HTML/CSS, and many many more if I have the time.
-It's a rather time consuming task and I do love to bog myself down in projects.
-
-
-> **Q**: Can you help me make my own?
-
-**A**: I can and will help those who want to help others, all you have to do is contact
-me.
-
-
-> **Q**: You stole this from (LYAH || LYSE || LPTHW), didn't you!?
-
-**A**: Arrrgh, you found out my diabolical scheme...
-Actually, no it's more like "I was incredibly inspired by that book."
-The creators seem to enjoy my book, and that's really awesome for me.
-
-
-> **Q**: Is this website available in Russian?
-
-**A**: No, sadly it isn't available in Russian...Yet!
-I plan to have this work translated into as many languages as I possibly can.
-At the very least provide links to Google Translate.
-Because I'm lazy and poor, and that is easy and free.
-
-
-> **Q**: What's with the duck and Soviet theme then?
-
-**A**: That's actually a good question.
-It's a rather obscure joke that I will attempt to explain:
-You see, Ruby is a Duck-Typed language, right?
-And Ruby, the precious gem, is red (So is the color, obviously)!
-...Which is the primary color in Soviet Russia!
-So you see, it all makes sense:
-*In Soviet Ruby, Duck Types You!*
-
-
-> **Q**: Are you a Socialist/Communist/Leninist?
-
-**A**: I do sport an awesome goatee.
View
BIN book/images/_why.png
Deleted file not rendered
View
BIN book/images/dhh.png
Deleted file not rendered
View
BIN book/images/from-japan.png
Deleted file not rendered
View
BIN book/images/hacker.png
Deleted file not rendered
View
BIN book/images/matz.png
Deleted file not rendered
View
BIN book/images/soviet-duck.png
Deleted file not rendered
View
BIN book/images/zed-shaw.png
Deleted file not rendered
View
47 book/table-of-contents.md
@@ -1,47 +0,0 @@
-TABLE OF CONTENTS
-=================
-
-1. [And Then There Was Ruby](/book/chapter/1)
- * [HCP: Hackers, Code, And Programming](/book/chapter/1#section-one)
- * [def ruby](/book/chapter/1#section-two)
- * [The Ruby Revolution & Renaissance](/book/chapter/1#section-three)
- * [Rock Out To The Rock Star](/book/chapter/1#section-four)
- * [The Cherry Kool-Aid](/book/chapter/1#section-five)
- * [Credits & License](/book/chapter/1#section-six)
- * [How This Book Works](/book/chapter/1#section-seven)
-
-2. [Ready! Set! Hack.](/book/chapter/2)
- * [Task 0 - \_why: I Need Ruby, Lots Of Ruby](/book/chapter/2#section-one)
- * [Task 1 - Puts and Strings](/book/chapter/2#section-two)
- * [Task 2 - Print, Comments, and Backslash Characters](/book/chapter/2#section-three)
- * [Task 3 - Numbers, Math, and Interpolation](/book/chapter/2#section-four)
- * [Task 4 - ](/book/chapter/2#section-five)
- * [Task 5 - ](/book/chapter/2#section-six)
- * [Task 6 - ](/book/chapter/2#section-seven)
- * [Task 7 - ](/book/chapter/2#section-eight)
- * [Task 8 - ](/book/chapter/2#section-nine)
- * [Task 9 - ](/book/chapter/2#section-ten)
-
-3. [The Trail To Neverland](/book/chapter/3)
- * [Task 10 - ](/book/chapter/3#section-one)
- * [Task 11 - ](/book/chapter/3#section-two)
- * [Task 12 - ](/book/chapter/3#section-three)
- * [Task 13 - ](/book/chapter/3#section-four)
- * [Task 14 - ](/book/chapter/3#section-five)
- * [Task 15 - ](/book/chapter/3#section-six)
- * [Task 16 - ](/book/chapter/3#section-seven)
- * [Task 17 - ](/book/chapter/3#section-eight)
- * [Task 18 - ](/book/chapter/3#section-nine)
- * [Task 19 - ](/book/chapter/3#section-ten)
-
-4. [It's Rubies All The Way Down](/book/chapter/4)
- * [Task 20 - ](/book/chapter/4#section-one)
- * [Task 21 - ](/book/chapter/4#section-two)
- * [Task 22 - ](/book/chapter/4#section-three)
- * [Task 23 - ](/book/chapter/4#section-four)
- * [Task 24 - ](/book/chapter/4#section-five)
- * [Task 25 - ](/book/chapter/4#section-six)
- * [Task 26 - ](/book/chapter/4#section-seven)
- * [Task 27 - ](/book/chapter/4#section-eight)
- * [Task 28 - ](/book/chapter/4#section-nine)
- * [Task 29 - ](/book/chapter/4#section-ten)
View
0 book/tasks/source/task-0.rb
No changes.
View
8 book/tasks/source/task-1.rb
@@ -1,8 +0,0 @@
-puts "A Boy And His Lucky Dog"
-puts "================="
-puts "It was a cold winter morning in the Forgotten Valley."
-puts 'The boy looked to his dog and said, "Look there, Lucky!"'
-puts '"The Temple of Golden Arches!" The dog glumly barked.'
-puts "Venturing forth they climb down from the mountainside."
-puts '"We are sure to find lost treasure!"'
-puts 'The abandoned temple to the Golden Arches awaited.'
View
26 book/tasks/source/task-2.rb
@@ -1,26 +0,0 @@
-# This line is a comment. A comment is used to
-# document source code. This makes it easier to
-# read for others, and yourself.
-
-puts "The Wealthiest Merchant And His Daughter"
-puts "========================================"
-
-# Any part of a line after the pound sign is a comment, and not interpreted.
-
-puts "The boy and his lucky dog travelled along the wasteland together." # Like this.
-puts "They saw many things, but mostly trash and death." # These are comments
-puts "The adventurous two wandered through abandoned cities and towns."
-
-# puts "Avoiding raiders and wastelanders." # This is line is a comment.
-
-print "One time the two happened on a small village named "
-puts '"Wall Mart Town"'
-
-### You can put multiple pound signs, but it doesn't read anything after the
-## first pound sign. ##
- # You can even indent the comments!
-
-print "\"Hey Lucky,\" the boy says"
-print " "
-puts "\"Lets check this place out!\""
-puts "The dog didn't think this was a good idea."
View
16 book/tasks/source/task-3.rb
@@ -1,16 +0,0 @@
-puts "Preparing For The Market And The Wasteland"
-puts "=========================================="
-puts "The boy looked over his belongings before entering the market."
-
-# A little intro to interpolation.
-puts "He had found #{4 + 9} shotgun slugs and #{3 - 2} MRE."
-puts "The lucky dog could smell the #{10 * 3 - 2 - 10} packets of salt."
-
-puts "The boy wondered how much ammo he could get from the merchant!"
-
-# This next line shows a math equation.
-puts 4 + 2 * ( 100 % 2 ) / 4 + ( ( 4 + 2 ) * 4 )
-
-puts '"Well Lucky Dog, if we sell all this we can definitely stock up!"'
-print "The Lucky Dog could only think of all (#{4 + 2 * ( 100 % 2 ) / 4 + ( ( 4 + 2 ) * 4 ) + 3} cans)"
-puts " the Dog Food the Boy would surely buy."
View
0 book/tasks/source/task-4.rb
No changes.
View
0 book/tasks/source/task-template.rb~
No changes.
View
107 book/tasks/task-0.md
@@ -1,107 +0,0 @@
-[T0](id:section-one) \_why: I Need Ruby, Lots Of Ruby
------------------------------------------------------
-
-\![Awesome Placeholder Image](http://dummyimage.com/300/00/44.png&text=Awesome%20Placeholder "So awesome.")
-
-### Summary
-
-This is the most important Task in the entire book.
-This task will detail each step required to get Ruby running on your computer.
-Without Ruby you can't run the code you build and that makes this entire thing worthless.
-Oh we also talk about your workstation.
-
-### Source Code
-
-#### Ubuntu
-
-1. Open up terminal (Menu -> Accessories -> Terminal) and type the following:
- 1. `sudo apt-get update && sudo apt-get upgrade` then type `yes` and hit enter.
- 2. `sudo apt-get install build-essential bison autoconf g++ \ `
- 3. `zlib1g-dev libreadline-dev libsqlite3-dev \ `
- 4. `libxslt-dev libxml2-dev libssl-dev \ `
- 5. `curl git-core subversion` then type `yes` and hit enter.
- 6. *Optionally* `sudo apt-get install gedit` if you need it.
- 7. `bash < <( curl http://rvm.beginrescueend.com/releases/rvm-install-head )`
- 8. `source ~/.rvm/scripts/rvm && rvm install --default 1.9.2`
- 9. Grab a coke and hamburger.
- 10. `rvmsrc='[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm"'`
- 11. `echo $rvmsrc >> ~/.bash_profile && echo $rvmsrc >> ~/.bashrc`
- 12. `curl https://github.com/krainboltgreene/dotfiles/blob/master/gemrc -o ~/.gemrc`
- 12. `mkdir ~/repo ~/repo/rb ~/repo/rb/lytr && cd ~/repo/rb/lytr && gedit ~/.bashrc`
-2. In `.bashrc` add a `# ` character in front of: `[ -z "$PS1" ] && return` if it's there.
-3. In gedit, open the Edit menu and go to Preferences:
- 1. Turn on `Highlight Cur...` and `Highlight Mat...`
- 2. Go to the Editor tab.
- 3. `Tab Width` change to 4. Turn On `Insert Spaces Inst...` and `Enable Auto...`
-4. Save and close gedit. Type `exit` in the Terminal.
-5. Add the Terminal & Gedit shortcuts to the panel
-
-**Windows**:
-
-1. Magic Happens.
-
-#### Mac OS X
-1. Open up Terminal:
- 1. Click on the magnifying glass in the top right of your screen.
- 2. Type `Terminal` and press enter.
- 3. Type in the parts that look like `this` into Terminal.
-2. Install brew:
- 1. `ruby -e "$(curl -fsSLk https://gist.github.com/raw/323731/install_homebrew.rb)"`
- 2. `open https://connect.apple.com/cgi-bin/WebObjects/MemberSite.woa/wa/getSoftware?bundleID=20792`
- 3. Login and install XCode.
-3. Install RVM and Ruby:
- 1. `brew install curl git`
- 2. `bash < <( curl http://rvm.beginrescueend.com/releases/rvm-install-head )`
- 3. `source ~/.rvm/scripts/rvm && rvm install --default 1.9.2`
- 4. Grab a coke and hamburger.
- 5. `rvmsrc='[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm"'`
- 6. `echo $rvmsrc >> ~/.bash_profile && echo $rvmsrc >> ~/.bashrc`
- 7. `curl https://github.com/krainboltgreene/dotfiles/blob/master/gemrc -o ~/.gemrc`
- 8. `mkdir ~/repo ~/repo/rb ~/repo/rb/lytr && cd ~/repo/rb/lytr && open ~/.bashrc`
- 9. In `.bashrc` add a `# ` character in front of: `[ -z "$PS1" ] && return` if it's there.
-4. Install and setup GEdit:
- 1. ...
- 2. ...
- 3. ...
- 4. In gedit, open the Edit menu and go to Preferences.
- 5. Turn on `Highlight Cur...` and `Highlight Mat...`
- 6. Go to the Editor tab.
- 7. `Tab Width` change to 4. Turn On `Insert Spaces Inst...` and `Enable Auto...`
- 8. Save and close gedit. Type `exit` in the Terminal.
- 9. Add the Terminal & Gedit shortcuts to the dock
-
-#### EXTRA
-
-1. **CentOS Notes**: bison autoconf gcc-c++ zlib-devel readline-devel sqlite-devel libxslt-devel libxml2-devel.
-2. **BSD Notes**: bison autoconf gcc-c++ zlib-devel readline-devel sqlite-devel libxslt-devel libxml2-devel
-
-
-### Results
-
-You should have working instances of Ruby Version Manager, Ruby 1.9.2, and Gedit.
-With a interpetor, an editor, and a computer you're well on your way to becoming a developer!
-If you happened to encoutner an error simply go to http://gist.github.com.
-Paste the error message (if you can) along with the step you were on.
-Then create a new issue at [http://github.com/krainboltgreene/learn-you-an-ruby-for-awesome-power/issues](http://github.com/krainboltgreene/learn-you-the-ruby-for-awesome-power/issues) with the link to Gist.
-
-
-### Task Details
-
-The steps above assume one thing: You know the very basics about using your computer.
-If you don't understand how your computer works you need to take some classes, explore, and learn.
-Don't go beyond this point until you do.
-Ruby, and other languages, are tools and tools require that much respect to use.
-
-
-### Extra Credit
-
-1. Open a few text files with gedit and get to know the interface.
-2. Customize Gedit, Terminal, and your Operating System to better suit your style.
-3. Go to the Learn You The Ruby website and read through the glossary.
-4. Type these in the Terminal:
- 1. `rvm use 1.9.2@global`
- 2. `gem install bundler heroku rake rack`
- 4. `rvm use 1.9.2`
-5. Type these in the Terminal:
- 1. `rvm --create 1.9.2@web-development`
- 2. `gem i sinatra haml rdiscount thin`
View
38 book/tasks/task-1.md
@@ -1,38 +0,0 @@
-## [T-1](id:section-two) Puts and Strings
-\![Awesome Placeholder Image](http://dummyimage.com/300/00/44.png&text=Awesome%20Placeholder "So awesome.")
-
-> **Note**: If you haven't finished Task Zero you're going to have a very unpleasant time. This is the first and last time I'll tell you not to skip ahead.
-
-### Summary
-You should by now know what a terminal is. If you don't remember, just go back to Task Zero.. This task will show you how to print text directly to the terminal output.
-
-### Source
-
-
-### Result
- $ ruby task-1.rb
- >
-
-### Details
-You might not realize it but you've done three things already just by writing this source code and running it:
-
-1. You've written your first method!
-2. You've written your first string!
-3. You've used the `"` and `'` characters to create a string!
-
-After you run this script you should have a series of text lines appearing in your terminal screen, one after the other. A small story has formed before your very eyes! It's time to describe each portion of this source code:
-
-* Each line in the source code tells the Ruby interpreter to print the string out to the display
-* `puts` is a method. This method sends text to the output. The output we're dealing with in this source code is the terminal screen.
-* `"` or the _double quotation mark_ and the `'` or the _single quotation mark_ are used to tell the interpreter that the content inside is a string.
-* A string is a series of characters connected together.
-* A character is a unit of information that roughly corresponds to a grapheme, grapheme-like unit, or symbol, such as in an alphabet or syllabary in the written form of a natural language.
-
-You may also notice that there is a space between `puts` and the first `"` or `'`. This is a single _whitespace_ space character (Also shown as `\b` or `\s` inside strings). You can put as many _whitespace_ space characters as you want because Ruby will ignore those. Other _whitespace_ characters include the tab (`\t`) and the return (`\n` or `\r`), but we'll talk about those later.
-
-#### Extra Credit
-1. Change some of the words (other than puts) in the story.
-2. Add some extra words and characters to the story.
-3. Add some extra lines to the story with extra puts methods.
-4. Change the `'` to `"` characters and run the code. What happens? Then revert to the original.
-5. Change the `puts` method to something else and run the code. What happens? Then revert to the original.
View
26 book/tasks/task-2.md
@@ -1,26 +0,0 @@
-## [T-2](id:section-three) Print, Comments, and \\
-\![Awesome Placeholder Image](http://dummyimage.com/300/00/44.png&text=Awesome%20Placeholder "So awesome.")
-
-### Summary
-In this task we'll learn about the other output display method, method arguments, and commenting. You'll learn about where and how to comment, why you want to comment, and the very basics of what an argument is! More importantly you'll find out about method syntax!
-
-### Source
-
-
-### Result
- $ ruby task-2.rb
- >
-
-### Details
-In the previous task you were introduced to the `puts` method. In this task we see a new method being used, the `print` method. You may notice something different about the output `print` produces. This is because `print` does **not** append a `\n` or _new line_ character to the text, where `puts` does. This means that two lines of `print` will concatenate (or plug together) in the output.
-
-You may also notice two new characters introduced in this task. The first is the `#` character or _pound sign_, sometimes called a _hash_. You will notice in the Result that the text after the `#` are completely ignored! This is called a _comment_. Comments are bits of text used to describe the intent or process of the code around them. This is a great documentation tool and should be used when necessary to help others, and yourself, later understand things.
-
-The second special character you might have noticed is `\` character or _blackslash_. The `\` does two things depending on what character it is prepended to. In this source they are prepended to `"` characters. This use, inside `"` wrapped strings tells the interpreter to treat the `"` as a regular character instead of the start or end of a string. The `\` is printed directly if inside a `'` wrapped string.
-
-#### Extra Credit
-1. Remove the first `#` character on line 14 and run the code. What happens?
-2. Add more string arguments to the `puts` and `print` methods.
-3. Delete line 24 and run the code. What happens? Then revert the changes.
-4. Insert `\n` characters into one of the strings wrapped with `"` characters and run the code. What happens? Then revert the changes.
-5. Insert `\n` characters into one of the strings wrapped with `'` characters and run the code. What happens? Then revert the changes.
View
44 book/tasks/task-3.md
@@ -1,44 +0,0 @@
-## [T-3](id:section-four) Numbers and Interpolation
-\![Awesome Placeholder Image](http://dummyimage.com/300/00/44.png&text=Awesome%20Placeholder "So awesome.")
-
-### Summary
-In this task we'll be learning about how Ruby handles numbers, math, and something called "Interpolation." It's going to be a *blast*.
-
-### Source
-
-
-### Results
- $ ruby task-3.rb
- >
-
-### Details
-In this Task we see a few unique things unencountered before.
-For instance the appearance of the strange `(` and `)` symbols, called **Parens** or **Parentheses**.
-The first `(` is called an **Open Paren**, and the second `)` is called **Close Paren**.
-You should also notice a few Mathematical Operators like `+ * / -`, but what's this?
-A strange new creature has entered the arena: `%`.
-This character is called a **Modulo**, and in computing the modulo finds the remainder of division.
-
-Ruby works magic, when you know how to feed it the right materials.
-For instance, if you feed Ruby `2 + 2` then Ruby spits out `4`.
-Ruby also understands that if you feed it `(3 + 4) * 2` the answer is **not** `11`, but `14`.
-
-> Ruby (and many other languages) spits out weird results if you don't understand the fine points.
-> For instance, `3 / 2` should come out to `1.5` and yet Ruby tells you `1`!
-> Why would Ruby lie?
-> Well this is because you gave Ruby two **Integers** rather than a **Float**.
-> If you feed Ruby `3 / 2.0`, `3.0 / 2`, or even `3.0 / 2.0` you get the correct `1.5`.
-> Another instance of Ruby giving strange results is when you try `3 / 0`.
-> Ruby knows this is bad, and tells you to stop trying to divide by zero!
-
-You should also have noticed a second new thing in this Task source.
-Interpolation, a long and ungainly word, is the boon of many programmers.
-Simply put, Interpolation is stuffing Ruby code wrapped in `#{` and `}` into Strings.
-You might have picked up in the source how we've stuffed Math into that there set of Strings.
-You can stuff anything in Strings, including other Strings, and it will evaluate that code!
-
-#### Extra Credit
-1. Add some more numbers to the equations.
-2. Remove the `#{` and `}` from line 7. What happens? Then revert to the original.
-3. Remove the math from line 15, change it to "31". What happens? Then revert to the original.
-4. Wrap the math on line 12 in Interpolation characters. What happens? Then revert to the original.
View
23 book/tasks/task-4.md
@@ -1,23 +0,0 @@
-## [T-#](id:section-num) Title Here
-\![Awesome Placeholder Image](http://dummyimage.com/300/00/44.png&text=Awesome%20Placeholder "So awesome.")
-
-### Summery
-Words Here.
-
-
-### Source
-
-
-### Results
- $ ruby task-#.rb
- Results Here
-
-
-### Details
-Words Here.
-
-
-### Extra Credit
-1. Words Here.
-2. Words Here.
-3. Words Here.
View
33 book/tasks/task-template.md~
@@ -1,33 +0,0 @@
-[T#](id:section-num) Title
---------------------------------------------------------------------------------
-
-\![Awesome Placeholder Image](http://dummyimage.com/300/00/44.png&text=Awesome%20Placeholder "So awesome.")
-
-### Summary
-
-...
-
-
-### Source Code
-
-...
-
-
-### Results
-
-**Outputs**:
-
- $ ruby task-#.rb
- ...
-
-
-### Task Details
-
-...
-
-
-### Extra Credit
-
-1. ...
-2. ...
-3. ...
View
22 web/COPYRIGHT.md
@@ -1,22 +0,0 @@
-Copyright
-=========
-
-Copyright (c) 2010 Kurtis Rainbolt-Greene
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
View
0 web/README.md
No changes.
View
65 web/app.rb
@@ -1,65 +0,0 @@
-#!/usr/bin/env ruby
-# encoding: utf-8
-author = "Kurtis Rainbolt-Greene"
-created = "2010.10.29 15:18:39"
-tags = "ruby, rails, learn, tutorial, guide, exercises, tasks, programming, practice, newbie, community, culture"
-description = "A website that helps people learn the Ruby programming language in an enjoyable fashion."
-
-require 'sinatra'
-require 'haml'
-require 'sass'
-
-set :port, 9000
-set :markdown, layout_engine: :haml
-
-configure :production do
- enable :static, :cache_enabled
-
- set :haml, { attr_wrapper: '"', ugly: true, format: :html5 }
- set :sass, { style: :compressed }
-end
-
-
-get '/' do
- @view = {title: 'LEARN YOU THE RUBY FOR AWESOME POWER', author: author, created: created, tags: tags}
- haml :index
-end
-
-get '/book/:misc' do |misc|
- @view = {title: 'LYTR - ' + misc, author: author, created: created, tags: tags}
- markdown misc.to_sym
-end
-
-get '/book/chapter/:chapter' do |chapter|
- @view = {title: 'LYTR - Chapter ' + chapter, author: author, created: created, tags: tags}
- chapter = "chapter-" + chapter
- markdown chapter.to_sym
-end
-
-get '/book/task/:task' do |task|
- task = "task-" + task
- markdown task.to_sym
-end
-
-get '/404' do
- @view = {title: 'Error 404: Aw snap :/', author: author}
- haml :fourohfour
-end
-
-get '/browser' do
- @view = {title: 'Browser Error: Whaaaaat!', author: author}
- haml :browser
-end
-
-get '/*.css?' do |sheet|
- content_type 'text/css', charset: 'utf-8'
- unless sheet == 'mobile'
- sass :standard
- else
- sass :mobile
- end
-end
-
-get '/*' do
- redirect '/404'
-end
View
BIN web/public/image/_why.png
Deleted file not rendered
View
BIN web/public/image/browser/chrome.png
Deleted file not rendered
View
BIN web/public/image/browser/firefox.png
Deleted file not rendered
View
BIN web/public/image/browser/opera.png
Deleted file not rendered
View
BIN web/public/image/dhh.png
Deleted file not rendered
View
BIN web/public/image/favicon.png
Deleted file not rendered
View
BIN web/public/image/from-japan.png
Deleted file not rendered
View
BIN web/public/image/hacker.png
Deleted file not rendered
View
BIN web/public/image/matz.png
Deleted file not rendered
View
BIN web/public/image/social/facebook.png
Deleted file not rendered
View
BIN web/public/image/social/google.png
Deleted file not rendered
View
BIN web/public/image/social/linkedin.png
Deleted file not rendered
View
BIN web/public/image/social/livejournal.png
Deleted file not rendered
View
BIN web/public/image/social/myspace.png
Deleted file not rendered
View
BIN web/public/image/social/tumblr.png
Deleted file not rendered
View
BIN web/public/image/social/twitter.png
Deleted file not rendered
View
BIN web/public/image/social/wordpress.png
Deleted file not rendered
View
BIN web/public/image/soviet-duck.png
Deleted file not rendered
View
BIN web/public/image/zed-shaw.png
Diff not rendered.
View
30 web/public/javascript/modernizr.min.js
@@ -1,30 +0,0 @@
-/*
- * Modernizr v1.6
- * http://www.modernizr.com
- *
- * Developed by:
- * - Faruk Ates http://farukat.es/
- * - Paul Irish http://paulirish.com/
- *
- * Copyright (c) 2009-2010
- * Dual-licensed under the BSD or MIT licenses.
- * http://www.modernizr.com/license/
- */
-window.Modernizr=function(i,e,u){function s(a,b){return(""+a).indexOf(b)!==-1}function D(a,b){for(var c in a)if(j[a[c]]!==u&&(!b||b(a[c],E)))return true}function n(a,b){var c=a.charAt(0).toUpperCase()+a.substr(1);c=(a+" "+F.join(c+" ")+c).split(" ");return!!D(c,b)}function S(){f.input=function(a){for(var b=0,c=a.length;b<c;b++)L[a[b]]=!!(a[b]in h);return L}("autocomplete autofocus list placeholder max min multiple pattern required step".split(" "));f.inputtypes=function(a){for(var b=0,c,k=a.length;b<
-k;b++){h.setAttribute("type",a[b]);if(c=h.type!=="text"){h.value=M;if(/^range$/.test(h.type)&&h.style.WebkitAppearance!==u){l.appendChild(h);c=e.defaultView;c=c.getComputedStyle&&c.getComputedStyle(h,null).WebkitAppearance!=="textfield"&&h.offsetHeight!==0;l.removeChild(h)}else/^(search|tel)$/.test(h.type)||(c=/^(url|email)$/.test(h.type)?h.checkValidity&&h.checkValidity()===false:h.value!=M)}N[a[b]]=!!c}return N}("search tel url email datetime date month week time datetime-local number range color".split(" "))}
-var f={},l=e.documentElement,E=e.createElement("modernizr"),j=E.style,h=e.createElement("input"),M=":)",O=Object.prototype.toString,q=" -webkit- -moz- -o- -ms- -khtml- ".split(" "),F="Webkit Moz O ms Khtml".split(" "),v={svg:"http://www.w3.org/2000/svg"},d={},N={},L={},P=[],w,Q=function(a){var b=document.createElement("style"),c=e.createElement("div");b.textContent=a+"{#modernizr{height:3px}}";(e.head||e.getElementsByTagName("head")[0]).appendChild(b);c.id="modernizr";l.appendChild(c);a=c.offsetHeight===
-3;b.parentNode.removeChild(b);c.parentNode.removeChild(c);return!!a},o=function(){var a={select:"input",change:"input",submit:"form",reset:"form",error:"img",load:"img",abort:"img"};return function(b,c){c=c||document.createElement(a[b]||"div");b="on"+b;var k=b in c;if(!k){c.setAttribute||(c=document.createElement("div"));if(c.setAttribute&&c.removeAttribute){c.setAttribute(b,"");k=typeof c[b]=="function";if(typeof c[b]!="undefined")c[b]=u;c.removeAttribute(b)}}return k}}(),G={}.hasOwnProperty,R;R=
-typeof G!=="undefined"&&typeof G.call!=="undefined"?function(a,b){return G.call(a,b)}:function(a,b){return b in a&&typeof a.constructor.prototype[b]==="undefined"};d.flexbox=function(){var a=e.createElement("div"),b=e.createElement("div");(function(k,g,r,x){g+=":";k.style.cssText=(g+q.join(r+";"+g)).slice(0,-g.length)+(x||"")})(a,"display","box","width:42px;padding:0;");b.style.cssText=q.join("box-flex:1;")+"width:10px;";a.appendChild(b);l.appendChild(a);var c=b.offsetWidth===42;a.removeChild(b);
-l.removeChild(a);return c};d.canvas=function(){var a=e.createElement("canvas");return!!(a.getContext&&a.getContext("2d"))};d.canvastext=function(){return!!(f.canvas&&typeof e.createElement("canvas").getContext("2d").fillText=="function")};d.webgl=function(){var a=e.createElement("canvas");try{if(a.getContext("webgl"))return true}catch(b){}try{if(a.getContext("experimental-webgl"))return true}catch(c){}return false};d.touch=function(){return"ontouchstart"in i||Q("@media ("+q.join("touch-enabled),(")+
-"modernizr)")};d.geolocation=function(){return!!navigator.geolocation};d.postmessage=function(){return!!i.postMessage};d.websqldatabase=function(){return!!i.openDatabase};d.indexedDB=function(){for(var a=-1,b=F.length;++a<b;){var c=F[a].toLowerCase();if(i[c+"_indexedDB"]||i[c+"IndexedDB"])return true}return false};d.hashchange=function(){return o("hashchange",i)&&(document.documentMode===u||document.documentMode>7)};d.history=function(){return!!(i.history&&history.pushState)};d.draganddrop=function(){return o("drag")&&
-o("dragstart")&&o("dragenter")&&o("dragover")&&o("dragleave")&&o("dragend")&&o("drop")};d.websockets=function(){return"WebSocket"in i};d.rgba=function(){j.cssText="background-color:rgba(150,255,150,.5)";return s(j.backgroundColor,"rgba")};d.hsla=function(){j.cssText="background-color:hsla(120,40%,100%,.5)";return s(j.backgroundColor,"rgba")||s(j.backgroundColor,"hsla")};d.multiplebgs=function(){j.cssText="background:url(//:),url(//:),red url(//:)";return/(url\s*\(.*?){3}/.test(j.background)};d.backgroundsize=
-function(){return n("backgroundSize")};d.borderimage=function(){return n("borderImage")};d.borderradius=function(){return n("borderRadius","",function(a){return s(a,"orderRadius")})};d.boxshadow=function(){return n("boxShadow")};d.textshadow=function(){return e.createElement("div").style.textShadow===""};d.opacity=function(){var a=q.join("opacity:.5;")+"";j.cssText=a;return s(j.opacity,"0.5")};d.cssanimations=function(){return n("animationName")};d.csscolumns=function(){return n("columnCount")};d.cssgradients=
-function(){var a=("background-image:"+q.join("gradient(linear,left top,right bottom,from(#9f9),to(white));background-image:")+q.join("linear-gradient(left top,#9f9, white);background-image:")).slice(0,-17);j.cssText=a;return s(j.backgroundImage,"gradient")};d.cssreflections=function(){return n("boxReflect")};d.csstransforms=function(){return!!D(["transformProperty","WebkitTransform","MozTransform","OTransform","msTransform"])};d.csstransforms3d=function(){var a=!!D(["perspectiveProperty","WebkitPerspective",
-"MozPerspective","OPerspective","msPerspective"]);if(a)a=Q("@media ("+q.join("transform-3d),(")+"modernizr)");return a};d.csstransitions=function(){return n("transitionProperty")};d.fontface=function(){var a,b=e.head||e.getElementsByTagName("head")[0]||l,c=e.createElement("style"),k=e.implementation||{hasFeature:function(){return false}};c.type="text/css";b.insertBefore(c,b.firstChild);a=c.sheet||c.styleSheet;b=k.hasFeature("CSS2","")?function(g){if(!(a&&g))return false;var r=false;try{a.insertRule(g,
-0);r=!/unknown/i.test(a.cssRules[0].cssText);a.deleteRule(a.cssRules.length-1)}catch(x){}return r}:function(g){if(!(a&&g))return false;a.cssText=g;return a.cssText.length!==0&&!/unknown/i.test(a.cssText)&&a.cssText.replace(/\r+|\n+/g,"").indexOf(g.split(" ")[0])===0};f._fontfaceready=function(g){g(f.fontface)};return b('@font-face { font-family: "font"; src: "font.ttf"; }')};d.video=function(){var a=e.createElement("video"),b=!!a.canPlayType;if(b){b=new Boolean(b);b.ogg=a.canPlayType('video/ogg; codecs="theora"');
-b.h264=a.canPlayType('video/mp4; codecs="avc1.42E01E"')||a.canPlayType('video/mp4; codecs="avc1.42E01E, mp4a.40.2"');b.webm=a.canPlayType('video/webm; codecs="vp8, vorbis"')}return b};d.audio=function(){var a=e.createElement("audio"),b=!!a.canPlayType;if(b){b=new Boolean(b);b.ogg=a.canPlayType('audio/ogg; codecs="vorbis"');b.mp3=a.canPlayType("audio/mpeg;");b.wav=a.canPlayType('audio/wav; codecs="1"');b.m4a=a.canPlayType("audio/x-m4a;")||a.canPlayType("audio/aac;")}return b};d.localstorage=function(){try{return"localStorage"in
-i&&i.localStorage!==null}catch(a){return false}};d.sessionstorage=function(){try{return"sessionStorage"in i&&i.sessionStorage!==null}catch(a){return false}};d.webWorkers=function(){return!!i.Worker};d.applicationcache=function(){return!!i.applicationCache};d.svg=function(){return!!e.createElementNS&&!!e.createElementNS(v.svg,"svg").createSVGRect};d.inlinesvg=function(){var a=document.createElement("div");a.innerHTML="<svg/>";return(a.firstChild&&a.firstChild.namespaceURI)==v.svg};d.smil=function(){return!!e.createElementNS&&
-/SVG/.test(O.call(e.createElementNS(v.svg,"animate")))};d.svgclippaths=function(){return!!e.createElementNS&&/SVG/.test(O.call(e.createElementNS(v.svg,"clipPath")))};for(var H in d)if(R(d,H)){w=H.toLowerCase();f[w]=d[H]();P.push((f[w]?"":"no-")+w)}f.input||S();f.crosswindowmessaging=f.postmessage;f.historymanagement=f.history;f.addTest=function(a,b){a=a.toLowerCase();if(!f[a]){b=!!b();l.className+=" "+(b?"":"no-")+a;f[a]=b;return f}};j.cssText="";E=h=null;i.attachEvent&&function(){var a=e.createElement("div");
-a.innerHTML="<elem></elem>";return a.childNodes.length!==1}()&&function(a,b){function c(p){for(var m=-1;++m<r;)p.createElement(g[m])}function k(p,m){for(var I=p.length,t=-1,y,J=[];++t<I;){y=p[t];m=y.media||m;J.push(k(y.imports,m));J.push(y.cssText)}return J.join("")}var g="abbr|article|aside|audio|canvas|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video".split("|"),r=g.length,x=RegExp("<(/*)(abbr|article|aside|audio|canvas|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video)",
-"gi"),T=RegExp("\\b(abbr|article|aside|audio|canvas|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video)\\b(?!.*[;}])","gi"),z=b.createDocumentFragment(),A=b.documentElement,K=A.firstChild,B=b.createElement("style"),C=b.createElement("body");B.media="all";c(b);c(z);a.attachEvent("onbeforeprint",function(){for(var p=-1;++p<r;)for(var m=b.getElementsByTagName(g[p]),I=m.length,t=-1;++t<I;)if(m[t].className.indexOf("iepp_")<0)m[t].className+=" iepp_"+
-g[p];K.insertBefore(B,K.firstChild);B.styleSheet.cssText=k(b.styleSheets,"all").replace(T,".iepp_$1");z.appendChild(b.body);A.appendChild(C);C.innerHTML=z.firstChild.innerHTML.replace(x,"<$1bdo")});a.attachEvent("onafterprint",function(){C.innerHTML="";A.removeChild(C);K.removeChild(B);A.appendChild(z.firstChild)})}(this,document);f._enableHTML5=true;f._version="1.6";l.className=l.className.replace(/\bno-js\b/,"")+" js";l.className+=" "+P.join(" ");return f}(this,this.document);
View
43 web/public/javascript/plugins.js
@@ -1,43 +0,0 @@
-
-// remap jQuery to $
-(function($){
-
-
-
-
-
-
-
-
-
-
-
-})(window.jQuery);
-
-
-
-// usage: log('inside coolFunc',this,arguments);
-// paulirish.com/2009/log-a-lightweight-wrapper-for-consolelog/
-window.log = function(){
- log.history = log.history || []; // store logs to an array for reference
- log.history.push(arguments);
- if(this.console){
- console.log( Array.prototype.slice.call(arguments) );
- }
-};
-
-
-
-// catch all document.write() calls
-(function(){
- var docwrite = document.write;
- document.write = function(q){
- log('document.write(): ',q);
- if (/docwriteregexwhitelist/.test(q)) docwrite(q);
- }
-})();
-
-
-// background image cache bug for ie6. www.mister-pixel.com/#Content__state=
-/*@cc_on @if (@_win32) { document.execCommand("BackgroundImageCache",false,true) } @end @*/
-
View
26 web/public/javascript/script.js
@@ -1,26 +0,0 @@
-/* Author:
-
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
View
5 web/public/robots.txt
@@ -1,5 +0,0 @@
-# www.robotstxt.org/
-# www.google.com/support/webmasters/bin/answer.py?hl=en&answer=156449
-
-User-agent: *
-
View
59 web/public/style/syntax.css
@@ -1,59 +0,0 @@
-.c { color: #408080; font-style: italic } /* Comment */
-.err { border: 1px solid #FF0000 } /* Error */
-.k { color: #008000; font-weight: bold } /* Keyword */
-.o { color: #666666 } /* Operator */
-.cm { color: #408080; font-style: italic } /* Comment.Multiline */
-.cp { color: #BC7A00 } /* Comment.Preproc */
-.c1 { color: #408080; font-style: italic } /* Comment.Single */
-.cs { color: #408080; font-style: italic } /* Comment.Special */
-.gd { color: #A00000 } /* Generic.Deleted */
-.ge { font-style: italic } /* Generic.Emph */
-.gr { color: #FF0000 } /* Generic.Error */
-.gh { color: #000080; font-weight: bold } /* Generic.Heading */
-.gi { color: #00A000 } /* Generic.Inserted */
-.go { color: #808080 } /* Generic.Output */
-.gp { color: #000080; font-weight: bold } /* Generic.Prompt */
-.gs { font-weight: bold } /* Generic.Strong */
-.gu { color: #800080; font-weight: bold } /* Generic.Subheading */
-.gt { color: #0040D0 } /* Generic.Traceback */
-.kc { color: #008000; font-weight: bold } /* Keyword.Constant */
-.kd { color: #008000; font-weight: bold } /* Keyword.Declaration */
-.kp { color: #008000 } /* Keyword.Pseudo */
-.kr { color: #008000; font-weight: bold } /* Keyword.Reserved */
-.kt { color: #B00040 } /* Keyword.Type */
-.m { color: #666666 } /* Literal.Number */
-.s { color: #BA2121 } /* Literal.String */
-.na { color: #7D9029 } /* Name.Attribute */
-.nb { color: #008000 } /* Name.Builtin */
-.nc { color: #0000FF; font-weight: bold } /* Name.Class */
-.no { color: #880000 } /* Name.Constant */
-.nd { color: #AA22FF } /* Name.Decorator */
-.ni { color: #999999; font-weight: bold } /* Name.Entity */
-.ne { color: #D2413A; font-weight: bold } /* Name.Exception */
-.nf { color: #0000FF } /* Name.Function */
-.nl { color: #A0A000 } /* Name.Label */
-.nn { color: #0000FF; font-weight: bold } /* Name.Namespace */
-.nt { color: #008000; font-weight: bold } /* Name.Tag */
-.nv { color: #19177C } /* Name.Variable */
-.ow { color: #AA22FF; font-weight: bold } /* Operator.Word */
-.w { color: #bbbbbb } /* Text.Whitespace */
-.mf { color: #666666 } /* Literal.Number.Float */
-.mh { color: #666666 } /* Literal.Number.Hex */
-.mi { color: #666666 } /* Literal.Number.Integer */
-.mo { color: #666666 } /* Literal.Number.Oct */
-.sb { color: #BA2121 } /* Literal.String.Backtick */
-.sc { color: #BA2121 } /* Literal.String.Char */
-.sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */
-.s2 { color: #BA2121 } /* Literal.String.Double */
-.se { color: #BB6622; font-weight: bold } /* Literal.String.Escape */
-.sh { color: #BA2121 } /* Literal.String.Heredoc */
-.si { color: #BB6688; font-weight: bold } /* Literal.String.Interpol */
-.sx { color: #008000 } /* Literal.String.Other */
-.sr { color: #BB6688 } /* Literal.String.Regex */
-.s1 { color: #BA2121 } /* Literal.String.Single */
-.ss { color: #19177C } /* Literal.String.Symbol */
-.bp { color: #008000 } /* Name.Builtin.Pseudo */
-.vc { color: #19177C } /* Name.Variable.Class */
-.vg { color: #19177C } /* Name.Variable.Global */
-.vi { color: #19177C } /* Name.Variable.Instance */
-.il { color: #666666 } /* Literal.Number.Integer.Long */
View
6 web/views/_footer.haml
@@ -1,6 +0,0 @@
-%p#copyright
- %a{ href: '/book/copyright', title: "You can read the silly copyright information here. Frankly I don't see the need, though. It's all free! Every little bit of it!" } Copyright.
-
-%p#contact
- E-Mail:
- %a{ href: 'mailto:kurtisrainboltgreene@gmail.com' } kurtisrainboltgreene@gmail.com
View
12 web/views/_header.haml
@@ -1,12 +0,0 @@
-- if @view[:title] == "LEARN YOU THE RUBY FOR AWESOME POWER"
- %h1#title
- LEARN
- %br/
- YOU THE
- %br/
- RUBY FOR
- %br/
- AWESOME
- %br/
- POWER
- %img#logo{ src: '/image/soviet-duck.png', title: 'IN SOVIET RUBY, DUCK TYPES YOU!' }
View
20 web/views/browser.haml
@@ -1,20 +0,0 @@
-%h1 Oh Noes!
-%p Hey person, you're using a web browser that isn't cool :(. It won't view my websites very well! You should be using one of these:
-
-
-#chrome
- %img{src: '/image/browser/chrome.png', style: 'float:left', width: '128px', height: '128px'}
- %h2 Chrome
- %p One of the fastest and simplist web browsers out there! It's amazingly simple! Download it <a href="http://www.google.com/chrome">for free here</a>.
-
-
-#firefox
- %img{src: '/image/browser/firefox.png', style: 'float:left', width: '128px', height: '128px'}
- %h2 Firefox
- %p A popular open source web browser with an amazing list of addons and extensions! Snag it <a href="http://www.mozilla.com/firefox">for free here</a>.
-
-
-#opera
- %img{src: '/image/browser/opera.png', style: 'float:left', width: '128px', height: '128px'}
- %h2 Opera
- %p A new and bold browser with amazing UI, great controls, and hundreds of ways to customize! Grab it <a href="http://www.opera.com/browser/download/">for free here</a>.
View
317 web/views/chapter-1.md
@@ -1,317 +0,0 @@
-And Then There Was Ruby
-=======================
-
-**Note: If you want to get straight to hacking start at [Chapter 2: Ready! Set! Hack](/chapter/2).**
-
-[HCP: Hackers, Code, and Programming](id:section-one)
------------------------------------------------------
-
-> The computer programmer is a creator of universes for which he alone is responsible.
-> Universes of virtually unlimited complexity can be created in the form of computer programs.
-> ---
-> **Joseph Weizenbaum**, Computer Power and Human Reason
-
-If you've watched any news in the last ten years, read any newspapers in the last fifteen (Some people still do!), or talked to that technically inclined cousin of yours, then you've probably heard three words that are specific to this field:
-
-1. Hacker (or Hacking)
-2. Code (or coding)
-3. Programming (Or programs)
-
-Lets talk about each one specifically since they're going to be so prevalent in the next ten years of your life should you decide to be a programmer.
-The first and most complicated word is *Hacker*.
-You've probably heard it in a very negative tone, often defined as a person who uses computers to illegally gain access to computers to hinder or damage.
-Hell, you've probably had some idiot claim to be a hacker in order to intimidate you into doing something.
-
-**Guess what**: That's not what _hacker_ means.
-No, there's already a name for people who do what I just described: Criminals.
-They don't need a special name to help them appear more mysterious or dangerous.
-In reality, a hacker is a member of the hacker subculture and simply an individual who seeks to learn as much as possible using technology.
-Usually under a self-defined code of ethics, not necessarily ones that reflect common law.
-Many consider the only method of learning is to examine, since the information necessary for their own enlightenment is not free.‏
-
-![Real Hackers](/image/hacker.png "Yeah, it's kinda like that.")
-
-The latter two terms are less culturally significant but should still be defined and talked about: _Programming_ is the act of writing code, using a programming language.
-A programming language is the language we, humans, use to instruct computers, dumb pieces of plastic, on what to do.
-A program (or script) is a list of instructions that you've laid out for the computer to follow and complete.
-Programs are sometimes called software, applications, or scripts depending on the complexity or detail involved in using them.
-
-The act of programming is to write these scripts or applications in a programming language, like Ruby.
-A computer only knows how and when to do things if you tell it to in it's own language, Binary.
-
-### Binary's Count 1 To 10, Print Sum
-
-<script src="http://gist.github.com/654757.js?file=count-to-ten.binary"></script>
-
-This program tells the computer to take every number from 1 to 10, add them together, and display the sum (55).
-It's complex, arcane, and completely unreadable to the naked eye for most people.
-Would you believe that people actually programmed applications this way?
-Simple software, like a calculator, required complex and time consuming work that was error prone and easily crashed.
-The same code is written here in Ruby:
-
-### Ruby's Count 1 To 10, Print Sum
-
-<script src="http://gist.github.com/654757.js?file=count-to-ten.rb"></script>
-
-Or even:
-
-<script src="http://gist.github.com/654757.js?file=alt-count-to-ten.rb"></script>
-
-![Awesome Placeholder Image](http://dummyimage.com/300/00/44.png&text=Awesome%20Placeholder "So awesome.")
-
-It's obvious in the previous two examples that programming languages are a tool for making developing easier.
-Programming in Ruby works by writing text (like above), having the Ruby interpreter compile it, and getting the result of your work.
-The next two examples are exactly the same, first in Java a really powerful and common language, the second in Ruby:
-
-### Java's "Hello, World"
-
-<script src="http://gist.github.com/654757.js?file=hello-world.java"></script>
-
-### Ruby's "Hello, World"
-
-<script src="http://gist.github.com/654757.js?file=hello-world.rb"></script>
-
-Meanwhile, _Code_ is a language agnostic term for the source code that we write.
-Further, source code is is any collection of statements or declarations written in some human-readable computer programming language.
-The above examples I've listed are exactly that: Code.
-
-
-[def ruby](id:section-two)
---------------------------
-
-> A dynamic, open source programming language with a focus on simplicity and productivity.
-> It has an elegant syntax that is natural to read and easy to write.
-> - - -
-> **Ruby Lang**, http://ruby-lang.org
-
-
-> Ruby is a dynamic, reflective, general purpose object-oriented programming language that combines syntax inspired by Perl with Smalltalk-like features.
-> Ruby originated in Japan during the mid-1990s and was initially developed and designed by Yukihiro "Mat.
-Matsumoto.
-> It is based on Perl, Smalltalk, Eiffel, Ada, and Lisp.
-> - - -
-> **Wikipedia**, http://en.wikipedia.org/wiki/Ruby_(programming_language)
-
-![It Came From Japana](/image/from-japan.png ":horror-face:")
-
-You didn't come here to read about a few definitions, though.
-You came here to learn about Ruby (or else you're going to be mildly disappointed).
-So let's learn about Ruby: Ruby is a programming language.
-Ok, so you probably figured that out already.
-Here's some important information that wont make sense yet: The Ruby programming language is expressive, imperative, and object-oriented.
-Ruby doesn't require a compile step, but instead is interpreted by an interpreter.
-The Ruby programming language is geared toward and designed for both simplicity and enjoyability.
-Ruby's goal is to make development very fun and easy for developers.
-
-> Experienced programmers should take note of the term "Object-Oriented.
-> That's not "Object-Curious", or "Object-Casual.
-> This isn't that one time at band camp when your program let another modify his orientation for the night.
-
-This is an object-oriented language and you'll be dealing with Classes and Objects the entire time.
-Everything, and I do mean everything, is an Object in Ruby, even the results from methods (a more manlier word for function) are an Object.
-
-Ruby was officially named on 1993-02-24 in Japan by it's creator Yukihiro "Mat" Matsumoto.
-The language went public 1995-12-21 with Ruby v0.95.
-Ruby v1.0 wouldn't crawl around until a year later, 1996-12-25.
-Somewhere during the year 2000 Ruby would finally become used mainstream outside of Japan, and on 2001-12-15 the Pragmatic Programmers released Programming Ruby, otherwise known as _Pickaxe_.
-2001 also happened to be the year of the ever successful convention, RubyConf?
-which was first called RubyConf?.new(2001).
-It's an inside joke you'll get later.
-
-![The Real Matz](/image/matz.png "Matz: The Original Ruby Goatee")
-
-The ball didn't start really rolling until David "DH.
-Heinmeier hit the scene.
-Mr.
-Heinemeier designed and created Rails (Usually called Ruby On Rails) and opened the source on 2004-07.
-He didn't give commit rights (The right to change the code) to anyone else until 2005-02 and even then it's a strict list.
-Rails exploded onto the web development scene like the Virut virus on an unsuspecting computer.
-DHH had single handedly made web development enjoyable, the cad.
-Apple Inc.
-picked up on this crazy development in the webtech scene and announced that Mac OS X (10.5, Leopard) would ship with the latest Rails in 2004-08.
-
-The real question you want to know (most likely) is what the language is "good for", or at least used for.
-The answer to this is easy: Everything.
-Want a script that sorts, edits, or deletes your files?
-Can do.
-Want to write a pretty GUI (Graphic User Interface)?
-Yep, in spades.
-Pushing out an extensive and complex web application?
-Twitter, YelloPages, and Github did it with Rails.
-You will be doing simpler things of course, but all these projects and more are within the grasp of even average people if they put their mind to it.
-In fact, here's a (very small) list of examples:
-
-* [Sinatra](http://sinatrarb.com), a micro-web framework and DSL for creating tiny (or complex) web applications! * [Hackety Hack](http://hacketyhack.heroku.com/), a wonderful programming introduction for children, by \_why.
-* [Event Machine](http://rubyeventmachine.com/), an event based server.
-* [Mongrel](http://github.com/fauna/mongrel), the powerful HTTP server built by Zed Shaw.
-* [Rake](http://rake.rubyforge.org/), all the simplicity of Ruby for powerful makes.
-
-Ruby has a lot of good facets (haha, precious gem joke) that are very easy to identify: Ruby is powerful and elegant, easy to read and detailed, with enterprise and open source in mind.
-All these are pretty much buzz words when you get down too it so the real good side of Ruby is that it's easy and fun.
-These are traits not often found in programming languages.
-Like all programming languages and tools Ruby has a place and use that it is best fit for: Web development.
-
-![Awesome Placeholder Image](http://dummyimage.com/300/00/44.png&text=Awesome%20Placeholder "So awesome.")
-
-Like every other language Ruby has some bad parts too.
-The Ruby Community is so terrible that I've devoted an entire chapter just to the culture around Ruby.
-The standard Ruby interpreter (1.8) is really slow compared to pretty much every other modern used language.
-The latest stable version (1.9) is only just now coming into broad usage by developers.
-Ruby isn't scalable naturally for the most part, and requires external sources and languages to assist it.
-One programmer has told me that the long time solution to this was, "Run more machines with Ruby.
-which is an obviously flawed approach.
-Open Ruby projects tend to have serious little or poor documentation and for the most part hasn't improved.
-
-
-[The Ruby Revolution & Renaissance](id:section-three)
---------------------------------------------------------
-
-Now that you know what Ruby is (or at least the definition of Ruby) and how it started, it's time to learn about the history.
-The era, called the _Ruby Revolution_ by some, of most significance started in 2004.
-The Ruby Revolution concerns the period of time where Rails hit the scene and started to cause a fuss among web developers.
-The "fus.
-would be called _Ruby Philosophy_.
-The core philosophy behind Ruby is "DRY: Don't Repeat Yourself".
-During this time period you can see at least three sides forming in the web development community: The older fellows who liked what they had (JavaEE, PHP) and didn't think this new fangled Ruby On Rails was worth the change, the younger developers who quite enjoyed the ease Rails and Ruby gave them, and those that didn't care either way.
-
-While web development and web frameworks existed long before Rails, it was commonly considered that web application development sucked.
-It was something you had to really plow through without much help.
-The idea that web development could be significantly easier made a lot of people happy.
-Of course, Ruby and Rails wasn't (and isn't) perfect, but it was the initial push toward making things easier that mattered.
-The thing is the Ruby Revolution wouldn't have happened without the success of Ruby On Rails with American developers.
-Thanks to the Rails phenomenon the number of Ruby developers in the United states and European Union grew by incredible amounts.
-Even though there is an even smaller divide among Rubyists on Rails, we owe a lot of Ruby's following and popularity to Rails.
-
-![David Heineiehem Handsomface](/image/dhh.png "DHH: The Ruby Pretty Boy")
-
-As with all revolutions there had to end, and it did end around the year 2009.
-Though while the _Ruby Revolution_ ended many claimed that 2010 will be the start of the _Ruby Renaissance_.
-An era for Ruby to refine many aspects of the language and it's parts.
-At the end of 2009 Ruby already had four variations, the beginning of a Standard, and the rise of three other major web frameworks beyond Rails.
-More importantly many companies were (and are) specifically hiring Ruby and Ruby On Rails developers.
-
-A lot of articles have been written and will be written about the Ruby Revolution and the change that Ruby has made in the web development area.
-It's a good idea to keep in mind that Ruby's Revolution and Renaissance didn't sprout from a void.
-The real source of Ruby's success is you, future developers and users.
-
-
-[Rock Out To The Rock Star](id:section-four)
---------------------------------------------
-The term Rockstar, or Rock Star, in the context of developers or developing is commonly meant to describe someone who has a cult like following.
-Rock Stars are programmers who do things (sometimes amazing things) and advance the community or the language.
-Like Jimi Hendrix, Elvis, and Lynyrd Skynyrd, the Rock Stars usually have a large amount of followers and disciples that watch their every word and movement.
-Rock Stars don't have everything going for them however.
-Much like the music gods they're titled after eventually the Rock Star burns out and either becomes destructive or washes away in mystery.
-I know, who thought Programming could be so dramatic?
-
-The Ruby Community has two Rock Stars worth taking serious notice of.
-Both of these Rock Stars are people I look up to and look forward to matching one day.
-They have changed the face of Ruby and will be remembered for a very long time.
-It's hard to look at Ruby and not see the areas that they've changed and so they are in my Ruby Rock Star Hall of Fame, if you will.
-The first is Zed Shaw, someone whom you might already know from his rants and usual internet ravings.
-A musician and a talent, he has since left the Ruby community.
-The second is Why The Lucky Stiff, or \_why, and has paved the path for a kinder and more enjoyable Ruby experience for a lot of new people.
-He is also considered to be one of the more wild aspects of Ruby developing.
-He has since left the internet completely, committing what many consider to be "Internet Suicide."
-
-![why the lucky stiff](/image/_why.png "_why: Pure Imagination")
-
-Zed Shaw developed Mongrel, an open-source HTTP library and web server for Ruby web applications and is mostly recognized for that accomplishment.
-He has since moved on to building Mongrel 2 (Not Ruby), Lamson, and the Liberlist.
-Attaining Rock Star status due to his heavy influence in how the community deals with Corporate presence, Zed Shaw burned out finally with a blog post called "Rails Is A Ghetto."
-The blog post no longer exists on his web site and all that remains is a note by him for programmers to follow the quiet helpers who look after those in need rather than the tough jocks of our community, like himself.
-
-![Zed Shaw](/image/zed-shaw.png "Zed Shaw: Born to code.")
-
-You might wonder why I don't use \_why's real name, and instead use his moniker Why The Lucky Stiff.
-This is because no one currently knows his true identity and is willing to tell.
-\_why has developed many projects that have changed the face of the Ruby Community.
-His efforts to guide the Ruby Community into a place where new people are met with enthusiasm and not disgust have put him in the Rock Star Hall of Fame along with Zed Shaw.
-Unlike most Rock Stars he went out with a serious whimper, rather than a dramatic bang.
-One day all of his repositories and social networking accounts were closed and gone.
-Many of his works are now mirrored, but developers of Ruby have all felt his impact.
-
-While Rock Stars have a limited time to do good before they burn out it's important to understand that Rock Stars do in fact do good.
-Think of them as Nitrous Oxide Systems, that for a short period drastically increase the speed the community moves at.
-The Ruby Community has a lot to gain from these men of action, despite their short social life spans.
-
-
-[The Cherry Kool-Aid](id:section-five)
---------------------------------------
-
-Like many geek cultures that exist today the programming communities tend to have a very common problem: Power users, fanboys, and evangelists.
-Fanatics of a religion, political party, or creed have always existed and the programming culture is no less afflicted by them.
-In fact due to the social ineptitude many geeks live with we are more prone to the red haze of cultism.
-You're mistaken if you think I'm joking when I say that there have been actual fist fights over which indentation style to use in C, or what command line editor to write with.
-Despite the Hacker culture's focus on individuality and freedom, the Ruby world is still a geek world.
-
-![Awesome Placeholder Image](http://dummyimage.com/300/00/44.png&text=Awesome%20Placeholder "So awesome.")
-
-Ever since Rails rolled out the Ruby community has stepped knee deep in hype and hyperbole.
-It started off as lot of programmers becoming very enthusiastic about a new and expressive language.
-It didn't help that the community had a lot of early Rock Stars emerging from Rails, and that they talked a lot of smack about other languages.
-Many touted Ruby as the Great White Hope of Programming.
-It's a general consensus among Rubyits that the egotism and dickery comes directly from Rails's growth.
-
-The reality here is that geeks of any flavor tend to gush over new toys and geeks of any flavor tend to rant about others gushing.
-In recent years the type of behavior described has slowly ground to a halt as the fanatics are pushed aside and the community, and language, matures.
-It is important to realize that his behavior stems from ignorance and the best cure is education.
-We as a group cannot abide by this blind fervor because it will ultimately ruin a lot of what Ruby stands for: The enjoyment of developing.
-
-![Awesome Placeholder Image](http://dummyimage.com/300/00/44.png&text=Awesome%20Placeholder "So awesome.")
-
-
-[Credits & Licensing](id:section-six)
--------------------------------------
-Alright, you've gotten through the boring part of the book.
-You know about Ruby, the history, and some of the pitfalls of the community.
-You're equipped, now, to start learning Ruby and building applications.
-Hopefully you can start understand why I've written this guide, especially this way, once you get into Ruby developing on your own.
-This book is of course not the last thing you'll read.
-In fact you should go on to read these great books, because they inspired me to write this:
-
-* [Learn Python The Hard Way](http://learnpythonthehardway.org/) (Read Chapter 1 first, then you can read either book.)
-* [Poignant Guide To Ruby](http://mislav.uniqpath.com/poignant-guide/) (Written in an odd but fun way.)
-* [Eloquent Javascript](http://eloquentjavascript.net/) (Also free and web/pdf)
-* [Think Python](http://www.greenteapress.com/thinkpython/thinkpython.html) (Also free and web/pdf)
-* [Programming Ruby](http://ruby-doc.org/docs/ProgrammingRuby/) (Not free/Web)
-* [Learn You A Haskell For Great Good](http://learnyouahaskell.com/)
-* [Learn You Some Erlang For Great Good](http://learnyousomeerlang.com/)
-* [Learning Clojure](http://en.wikibooks.org/wiki/Learning_Clojure)
-
-Also, here's the [copyright](/book/copyright).
-
-
-[How This Book Works](id:section-seven)
----------------------------------------
-
-**Good!** You've heroically made it to the end of Chapter One.
-I promise the next chapter won't be too terribly long.
-In fact chapters three through ten will all be ten sections long, while chapter two will have 1 setup section and 10 learning sections.
-Each section of each chapter will be in five important sections:
-
-* A brief summary of what the section will teach you
-* A bit of source code
-* A result of running the code
-* A detailed description of each (new) important part
-* And some extra credit tasks
-
-![Awesome Placeholder Image](http://dummyimage.com/300/00/44.png&text=Awesome%20Placeholder "So awesome.")
-
-Now that we know all the pieces to the puzzle it's time to learn how to read and use this book.
-Follow each step exactly and then go wild:
-
-1. Read the brief description, don't worry if you don't fully understand it
-2. Create a new file, in your projects directly (We'll get to that), called `lytr#.rb` and replace the # with the task number.
-3. Write each line from the source code into the file. **Do not copy and paste**. The point is to learn by doing.
-4. Read the detailed description and the code you just wrote.
-5. Run the code, see if you get the desired output. If you don't, return to step 3. _**Note**: Some sections will have **secret bugs** just for you to figure out!_
-6. If you feel confidant check out the extra credit portions, change the code around, and get messy!
-
-It is very important that you type each bit of source code out.
-It will make the learning process a whole lot easier and give you a deeper, first hand, understanding of writing Ruby code.
-Once you've followed each step carefully you should understand another portion of how to program with Ruby.
-Initially this might be a very difficult way of learning how to program with Ruby, but if you stick with it you'll be hacking out apps left and right.
-One last thing before we start you on the really interesting things: Have.
-Fun.
-
View
299 web/views/chapter-2.md
@@ -1,299 +0,0 @@
-# Ready! Set! Hack.
-**Note: I adore notes.**
-
-[T0](id:section-one) \_why: I Need Ruby, Lots Of Ruby
------------------------------------------------------
-
-\![Awesome Placeholder Image](http://dummyimage.com/300/00/44.png&text=Awesome%20Placeholder "So awesome.")
-
-### Summary
-
-This is the most important Task in the entire book.
-This task will detail each step required to get Ruby running on your computer.
-Without Ruby you can't run the code you build and that makes this entire thing worthless.
-Oh we also talk about your workstation.
-
-### Source
-
- Code
-
-#### Ubuntu
-
-1. Open up terminal (Menu -> Accessories -> Terminal) and type the following:
- 1. `sudo apt-get update && sudo apt-get upgrade` then type `yes` and hit enter.
- 2. `sudo apt-get install build-essential bison autoconf g++ \ `
- 3. `zlib1g-dev libreadline-dev libsqlite3-dev \ `
- 4. `libxslt-dev libxml2-dev libssl-dev \ `
- 5. `curl git-core subversion` then type `yes` and hit enter.
- 6. *Optionally* `sudo apt-get install gedit` if you need it.
- 7. `bash < <( curl http://rvm.beginrescueend.com/releases/rvm-install-head )`
- 8. `source ~/.rvm/scripts/rvm && rvm install --default 1.9.2`
- 9. Grab a coke and hamburger.
- 10. `rvmsrc='[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm"'`
- 11. `echo $rvmsrc >> ~/.bash_profile && echo $rvmsrc >> ~/.bashrc`
- 12. `curl https://github.com/krainboltgreene/dotfiles/blob/master/gemrc -o ~/.gemrc`
- 12. `mkdir ~/repo ~/repo/rb ~/repo/rb/lytr && cd ~/repo/rb/lytr && gedit ~/.bashrc`
-2. In `.bashrc` add a `# ` character in front of: `[ -z "$PS1" ] && return` if it's there.
-3. In gedit, open the Edit menu and go to Preferences:
- 1. Turn on `Highlight Cur...` and `Highlight Mat...`
- 2. Go to the Editor tab.
- 3. `Tab Width` change to 4. Turn On `Insert Spaces Inst...` and `Enable Auto...`
-4. Save and close gedit. Type `exit` in the Terminal.
-5. Add the Terminal & Gedit shortcuts to the panel
-
-**Windows**:
-
-1. Magic Happens.
-
-#### Mac OS X
-1. Open up Terminal:
- 1. Click on the magnifying glass in the top right of your screen.
- 2. Type `Terminal` and press enter.
- 3. Type in the parts that look like `this` into Terminal.
-2. Install brew:
- 1. `ruby -e "$(curl -fsSLk https://gist.github.com/raw/323731/install_homebrew.rb)"`
- 2. `open https://connect.apple.com/cgi-bin/WebObjects/MemberSite.woa/wa/getSoftware?bundleID=20792`
- 3. Login and install XCode.
-3. Install RVM and Ruby:
- 1. `brew install curl git`
- 2. `bash < <( curl http://rvm.beginrescueend.com/releases/rvm-install-head )`
- 3. `source ~/.rvm/scripts/rvm && rvm install --default 1.9.2`
- 4. Grab a coke and hamburger.
- 5. `rvmsrc='[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm"'`
- 6. `echo $rvmsrc >> ~/.bash_profile && echo $rvmsrc >> ~/.bashrc`
- 7. `curl https://github.com/krainboltgreene/dotfiles/blob/master/gemrc -o ~/.gemrc`
- 8. `mkdir ~/repo ~/repo/rb ~/repo/rb/lytr && cd ~/repo/rb/lytr && open ~/.bashrc`
- 9. In `.bashrc` add a `# ` character in front of: `[ -z "$PS1" ] && return` if it's there.
-4. Install and setup GEdit:
- 1. ...
- 2. ...
- 3. ...
- 4. In gedit, open the Edit menu and go to Preferences.
- 5. Turn on `Highlight Cur...` and `Highlight Mat...`
- 6. Go to the Editor tab.
- 7. `Tab Width` change to 4. Turn On `Insert Spaces Inst...` and `Enable Auto...`
- 8. Save and close gedit. Type `exit` in the Terminal.
- 9. Add the Terminal & Gedit shortcuts to the dock
-
-#### EXTRA
-
-1. **CentOS Notes**: bison autoconf gcc-c++ zlib-devel readline-devel sqlite-devel libxslt-devel libxml2-devel.
-2. **BSD Notes**: bison autoconf gcc-c++ zlib-devel readline-devel sqlite-devel libxslt-devel libxml2-devel
-
-
-### Results
-
-You should have working instances of Ruby Version Manager, Ruby 1.9.2, and Gedit.
-With a interpetor, an editor, and a computer you're well on your way to becoming a developer!
-If you happened to encoutner an error simply go to http://gist.github.com.
-Paste the error message (if you can) along with the step you were on.
-Then create a new issue at [http://github.com/krainboltgreene/learn-you-an-ruby-for-awesome-power/issues](http://github.com/krainboltgreene/learn-you-the-ruby-for-awesome-power/issues) with the link to Gist.
-
-
-### Task Details
-
-The steps above assume one thing: You know the very basics about using your computer.
-If you don't understand how your computer works you need to take some classes, explore, and learn.
-Don't go beyond this point until you do.
-Ruby, and other languages, are tools and tools require that much respect to use.
-
-
-### Extra Credit
-
-1. Open a few text files with gedit and get to know the interface.
-2. Customize Gedit, Terminal, and your Operating System to better suit your style.
-3. Go to the Learn You The Ruby website and read through the glossary.
-4. Type these in the Terminal:
- 1. `rvm use 1.9.2@global`
- 2. `gem install bundler heroku rake rack`
- 4. `rvm use 1.9.2`
-5. Type these in the Terminal:
- 1. `rvm --create 1.9.2@web-development`
- 2. `gem i sinatra haml rdiscount thin`
-## [T-1](id:section-two) Puts and Strings
-\![Awesome Placeholder Image](http://dummyimage.com/300/00/44.png&text=Awesome%20Placeholder "So awesome.")
-
-> **Note**: If you haven't finished Task Zero you're going to have a very unpleasant time. This is the first and last time I'll tell you not to skip ahead.
-
-### Summary
-You should by now know what a terminal is. If you don't remember, just go back to Task Zero.. This task will show you how to print text directly to the terminal output.
-
-### Source
-
- puts "A Boy And His Lucky Dog"
- puts "================="
- puts "It was a cold winter morning in the Forgotten Valley."
- puts 'The boy looked to his dog and said, "Look there, Lucky!"'
- puts '"The Temple of Golden Arches!" The dog glumly barked.'
- puts "Venturing forth they climb down from the mountainside."
- puts '"We are sure to find lost treasure!"'
- puts 'The abandoned temple to the Golden Arches awaited.'
-
-
-### Result
- $ ruby task-1.rb
- >
-
-### Details
-You might not realize it but you've done three things already just by writing this source code and running it:
-
-1. You've written your first method!
-2. You've written your first string!
-3. You've used the `"` and `'` characters to create a string!
-
-After you run this script you should have a series of text lines appearing in your terminal screen, one after the other. A small story has formed before your very eyes! It's time to describe each portion of this source code:
-
-* Each line in the source code tells the Ruby interpreter to print the string out to the display
-* `puts` is a method. This method sends text to the output. The output we're dealing with in this source code is the terminal screen.
-* `"` or the _double quotation mark_ and the `'` or the _single quotation mark_ are used to tell the interpreter that the content inside is a string.
-* A string is a series of characters connected together.
-* A character is a unit of information that roughly corresponds to a grapheme, grapheme-like unit, or symbol, such as in an alphabet or syllabary in the written form of a natural language.
-
-You may also notice that there is a space between `puts` and the first `"` or `'`. This is a single _whitespace_ space character (Also shown as `\b` or `\s` inside strings). You can put as many _whitespace_ space characters as you want because Ruby will ignore those. Other _whitespace_ characters include the tab (`\t`) and the return (`\n` or `\r`), but we'll talk about those later.
-
-#### Extra Credit
-1. Change some of the words (other than puts) in the story.
-2. Add some extra words and characters to the story.
-3. Add some extra lines to the story with extra puts methods.
-4. Change the `'` to `"` characters and run the code. What happens? Then revert to the original.
-5. Change the `puts` method to something else and run the code. What happens? Then revert to the original.
-## [T-2](id:section-three) Print, Comments, and \\
-\![Awesome Placeholder Image](http://dummyimage.com/300/00/44.png&text=Awesome%20Placeholder "So awesome.")
-
-### Summary
-In this task we'll learn about the other output display method, method arguments, and commenting. You'll learn about where and how to comment, why you want to comment, and the very basics of what an argument is! More importantly you'll find out about method syntax!
-
-### Source
-
- # This line is a comment. A comment is used to
- # document source code. This makes it easier to
- # read for others, and yourself.
-
- puts "The Wealthiest Merchant And His Daughter"
- puts "========================================"
-
- # Any part of a line after the pound sign is a comment, and not interpreted.
-
- puts "The boy and his lucky dog travelled along the wasteland together." # Like this.
- puts "They saw many things, but mostly trash and death." # These are comments
- puts "The adventurous two wandered through abandoned cities and towns."
-
- # puts "Avoiding raiders and wastelanders." # This is line is a comment.
-
- print "One time the two happened on a small village named "
- puts '"Wall Mart Town"'
-
- ### You can put multiple pound signs, but it doesn't read anything after the
- ## first pound sign. ##
- # You can even indent the comments!
-
- print "\"Hey Lucky,\" the boy says"
- print " "
- puts "\"Lets check this place out!\""
- puts "The dog didn't think this was a good idea."
-
-
-### Result
- $ ruby task-2.rb
- >
-
-### Details
-In the previous task you were introduced to the `puts` method. In this task we see a new method being used, the `print` method. You may notice something different about the output `print` produces. This is because `print` does **not** append a `\n` or _new line_ character to the text, where `puts` does. This means that two lines of `print` will concatenate (or plug together) in the output.
-
-You may also notice two new characters introduced in this task. The first is the `#` character or _pound sign_, sometimes called a _hash_. You will notice in the Result that the text after the `#` are completely ignored! This is called a _comment_. Comments are bits of text used to describe the intent or process of the code around them. This is a great documentation tool and should be used when necessary to help others, and yourself, later understand things.
-
-The second special character you might have noticed is `\` character or _blackslash_. The `\` does two things depending on what character it is prepended to. In this source they are prepended to `"` characters. This use, inside `"` wrapped strings tells the interpreter to treat the `"` as a regular character instead of the start or end of a string. The `\` is printed directly if inside a `'` wrapped string.
-
-#### Extra Credit
-1. Remove the first `#` character on line 14 and run the code. What happens?
-2. Add more string arguments to the `puts` and `print` methods.
-3. Delete line 24 and run the code. What happens? Then revert the changes.
-4. Insert `\n` characters into one of the strings wrapped with `"` characters and run the code. What happens? Then revert the changes.
-5. Insert `\n` characters into one of the strings wrapped with `'` characters and run the code. What happens? Then revert the changes.
-## [T-3](id:section-four) Numbers and Interpolation
-\![Awesome Placeholder Image](http://dummyimage.com/300/00/44.png&text=Awesome%20Placeholder "So awesome.")
-
-### Summary
-In this task we'll be learning about how Ruby handles numbers, math, and something called "Interpolation." It's going to be a *blast*.
-
-### Source
-
- puts "Preparing For The Market And The Wasteland"
- puts "=========================================="
- puts "The boy looked over his belongings before entering the market."
-
- # A little intro to interpolation.
- puts "He had found #{4 + 9} shotgun slugs and #{3 - 2} MRE."
- puts "The lucky dog could smell the #{10 * 3 - 2 - 10} packets of salt."
-
- puts "The boy wondered how much ammo he could get from the merchant!"
-
- # This next line shows a math equation.
- puts 4 + 2 * ( 100 % 2 ) / 4 + ( ( 4 + 2 ) * 4 )
-
- puts '"Well Lucky Dog, if we sell all this we can definitely stock up!"'
- print "The Lucky Dog could only think of all (#{4 + 2 * ( 100 % 2 ) / 4 + ( ( 4 + 2 ) * 4 ) + 3} cans)"
- puts " the Dog Food the Boy would surely buy."
-
-
-### Results
- $ ruby task-3.rb
- >
-
-### Details
-In this Task we see a few unique things unencountered before.
-For instance the appearance of the strange `(` and `)` symbols, called **Parens** or **Parentheses**.
-The first `(` is called an **Open Paren**, and the second `)` is called **Close Paren**.
-You should also notice a few Mathematical Operators like `+ * / -`, but what's this?
-A strange new creature has entered the arena: `%`.
-This character is called a **Modulo**, and in computing the modulo finds the remainder of division.
-
-Ruby works magic, when you know how to feed it the right materials.
-For instance, if you feed Ruby `2 + 2` then Ruby spits out `4`.
-Ruby also understands that if you feed it `(3 + 4) * 2` the answer is **not** `11`, but `14`.
-
-> Ruby (and many other languages) spits out weird results if you don't understand the fine points.
-> For instance, `3 / 2` should come out to `1.5` and yet Ruby tells you `1`!
-> Why would Ruby lie?
-> Well this is because you gave Ruby two **Integers** rather than a **Float**.
-> If you feed Ruby `3 / 2.0`, `3.0 / 2`, or even `3.0 / 2.0` you get the correct `1.5`.
-> Another instance of Ruby giving strange results is when you try `3 / 0`.
-> Ruby knows this is bad, and tells you to stop trying to divide by zero!
-
-You should also have noticed a second new thing in this Task source.
-Interpolation, a long and ungainly word, is the boon of many programmers.
-Simply put, Interpolation is stuffing Ruby code wrapped in `#{` and `}` into Strings.
-You might have picked up in the source how we've stuffed Math into that there set of Strings.
-You can stuff anything in Strings, including other Strings, and it will evaluate that code!
-
-#### Extra Credit
-1. Add some more numbers to the equations.
-2. Remove the `#{` and `}` from line 7. What happens? Then revert to the original.
-3. Remove the math from line 15, change it to "31". What happens? Then revert to the original.
-4. Wrap the math on line 12 in Interpolation characters. What happens? Then revert to the original.
-## [T-#](id:section-num) Title Here
-\![Awesome Placeholder Image](http://dummyimage.com/300/00/44.png&text=Awesome%20Placeholder "So awesome.")
-
-### Summery
-Words Here.
-
-
-### Source
-
-
-
-
-### Results
- $ ruby task-#.rb
- Results Here
-
-
-### Details
-Words Here.
-
-
-### Extra Credit
-1. Words Here.
-2. Words Here.
-3. Words Here.
-
View
2 web/views/chapter-3.md
@@ -1,2 +0,0 @@
-The Trail To Neverland
-======================
View
0 web/views/chapter-4.md
No changes.
View
0 web/views/chapter-5.md
No changes.
View
46 web/views/clean.sass
@@ -1,46 +0,0 @@
-html,body,div,span,object,iframe,hr,h1,h2,h3,h4,h5,h6,p,blockquote,pre,abbr,address,cite,code,del,dfn,em,img,ins,kbd,q,samp,small,strong,sub,sup,var,b,i,dl,dt,dd,ol,ul,li,fieldset,form,label,button,label,legend,input,textarea,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,figure,footer,header,hgroup,menu,nav,section,menu,time,mark,audio,video
- margin: 0
- padding: 0
- border: 0 none
- outline: 0
- outline-offset: 0
- font-size: inherit
- text-decoration: none
- vertical-align: baseline
- background: transparent
- color: inherit
-article,aside,figure,footer,header,hgroup,nav,section,hr
- display: block
-body
- line-height: 1
-ol,ul,nav
- list-style: none
-blockquote,q
- quotes: none
- &:before,&:after
- content: ''
- content: none
-del
- text-decoration: line-through
-ins,mark
- backgroun-color: #ff9
- color: #000
-ins
- text-decoration: none
-mark
- font-style: italic
- font-weight: bold
-table
- border-collapse: collapse
- border-spacing: 0
-hr
- height: 1px
- border-top: 1px solid #ccc
- margin: 1em 0
-abbr[title],dfn[title]
- border-bottom: 1px dotted #000
- cursor: help
-input,select
- vertical-align: middle
-\:focus
- outline: 0
View
11 web/views/copyright.md
@@ -1,11 +0,0 @@
-COPYRIGHT
-=========
-
-[Learn You The Ruby For Awesome Power][0] by [Kurtis Rainbolt-Greene][1] is licensed under a [Creative Commons Attribution-ShareAlike 3.0 Unported License][2].
-
-Based on a work at [learnyoutheruby.com][3].
-
-[0]: http://learnyoutheruby.com
-[1]: http://krainboltgreene.github.com/resume
-[2]: http://creativecommons.org/licenses/by-sa/3.0/
-[3]: http://learnyoutheruby.com/source.tar.gz
View
3 web/views/fourohfour.haml
@@ -1,3 +0,0 @@
-%details
- %summary Whoops, this page doesn't exist.
- %p The thing you were looking for isn't here! Maybe you should hit the <strong>back</strong> button to start over.
View
84 web/views/frequently-asked-questions.md
@@ -1,84 +0,0 @@
-FREQUENTLY ASKED QUESTIONS
-==========================
-
-> **Q**: Is (Ruby||Programming) hard to learn?
-
-**A**: Programming is largely four things: Effort, Learning, Syntax, and Paradigms.
-This shouldn't be surprising, but the effort is the hardest part about learning how to program.
-Without the effort to work on things yourself you'll never go forward as a learner, no matter how much you read.
-The latter three are self explanitory, but here you go: You have to be willing to learn, constantl