diff --git a/fulltext.md b/fulltext.md index 8754ad5..63829ab 100755 --- a/fulltext.md +++ b/fulltext.md @@ -1,9 +1,15 @@ # The Rubyist Historian ## Ruby Programming for Humanities Scholars -Coming off my recent post on How I Learned Code, I've decided to write a series of blog posts that will introduce historians to the basics of Ruby that I will eventually publish as a free ebook. My hope is to write an accessible introduction to Ruby and demonstrate not only how to write small programs but also think about ways programming can help scholars in their everyday tasks. Although I'm aiming this at historians, my hope is that anyone interested in humanist computing (or Ruby in general) will find this useful. Watch here, follow me on Twitter, or subscribe to catch updates as I produce them. +In late 2010 I wrote a post on [how I learned code](http://www.jasonheppler.org/2010/12/03/how-i-learned-code.html). I was, simultaneously, enrolled in ENGL4/878: Electronic Text with Professor Stephen Ramsay, where part of the course was about learning the Ruby programming language and how we could apply programming to humanistic data. The course, it turns out, was a sort of pivot moment for me. Although I had always been something of a computer geek, programming was something I had not touched since high school. But after the course I became captured by the power that programming can offer humanities scholars. In an age of Big Data, from Google Books to ever-growing cultural heritage digitized by libraries, museums, and centers, we have at our hands a vast array of material that can be manipulated, queried, browsed, and visualized through computational methods. When the course was finished, I decided to write a series of blog posts for others who might be interested in applying Ruby to humanistic questions. The result was the seven write-ups below. -You can find copies of code examples in the Rubyist Historian Github repository. The blog series will be available as a free Anthologize ebook download once it's completed. +The original post promised that the series would be released as an electronic book. At the time I wrote the series I was running WordPress and the plugin [Anthologize](http://anthologize.org/) had recently been released. Shortly after, however, I switched blog platforms to Jekyll and, as other projects demanded my attention, I never got around to pushing the material into a format beyond my blog posts. + +But I had a new idea. Instead of pushing out a static project as a PDF or epub format I decided to host things dynamically. Starting today (2012-05-21) I am pushing all posts to Github and hosting the series on Github pages. Anyone interested can now download a copy of The Rubyist Historian to use. + +I want more, however. As a bit of an experiment in open publishing, I've decided to open source The Rubyist Historian for public contributions. People are free to fork The Rubyist Historian and offer corrections, clearer (or better, or more) examples, and overall contribute to what I want to become a collaborative project and reference for humanities scholars looking to get started with Ruby programming. + +As before, copies of the example code (and now the full text) can be found at the [Rubyist Historian Github repository](https://github.com/hepplerj/rubyist-historian). ### Contents @@ -15,6 +21,8 @@ You can find copies of code examples in the to string (.to_s) type cast as well - [Ruby Class Tutorial](http://juixe.com/techknow/index.php/2007/01/22/ruby-class-tutorial/), Juixe Techknow -## The Rubyist Historian: Loops and Control Structures +## Loops and Control Structures Our last segment introduced us to Ruby methods and classes. This section will introduce you to expressions and loops. Loops are, put simply, a test of whether an expression is true or false. This is the basic way that computer's operate: continue following a set of instructions until the expression becomes true, then end or move on to the next set of instructions. @@ -395,8 +402,7 @@ As extra reading, I would check out Steve Ramsay's File class. @@ -577,7 +583,7 @@ You now know how to read and write files. A whole new world of programming shoul - [Read/Write Files](http://www.codingfriends.com/index.php/2009/07/28/readwrite-files-3/), Coding Friends - [Working with Files in Ruby](http://www.techotopia.com/index.php/Working_with_Files_in_Ruby), Techtopia -## The Rubyist Historian: Randomness +## Randomness We're entering the final leg of our journey. We've covered a lot of topics in the last few sections, but I just have a couple of things to touch on before we move on to writing our first full program together. @@ -719,7 +725,7 @@ Now that you have the basics, you might want to learn more and start creating aw Next up, we're writing a program together. We're going to build a word frequency generator and begin working with the web. -## The Rubyist Historian: Our First Program +## Our First Program "Okay, Jason," you're asking yourself, "I'm tired of saying hello and counting numbers and doing mathematics. How can Ruby be applied to my work as a humanities scholar?" I'm thrilled you asked! Because today, we're writing our first full program together. I'll warn you, this might be a long read and a lot of writing. But I'm hoping by doing this we experience the process of designing, planning, writing code, optimizing code, debugging, and finally using the program. @@ -1051,4 +1057,4 @@ In [about ten years](http://norvig.com/21-days.html) you can call yourself a pro *See something that's wrong? Examples that don't work? Explanations that are unclear or confusing? Embarrassing typographic errors? Drop me an email at jason.heppler+feedback at gmail and I'll fix things right up!* -*Topic structure, examples, and explanations for the Rubyist Historian are inspired by, credited to, and drawn from Stephen Ramsay and his course Electronic Text.* +*Topic structure, examples, and explanations for the Rubyist Historian are inspired by, credited to, and drawn from Stephen Ramsay and his course Electronic Text.* \ No newline at end of file