<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom">

	<title type="text" xml:lang="en">JasonHeppler.org - History in the Digital</title>
	
 	<link type="text" href="http://jasonheppler.org" rel="alternate" />
	<updated>2012-05-24T14:51:15-05:00</updated>
	<id>http://jasonheppler.org</id>
	<author>
		<name>Jason Heppler</name>
	</author>
	<rights>Copyright (c) 2005-2012, Jason Heppler; all rights reserved.</rights>

	
	<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/JasonHeppler" /><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="jasonheppler" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><feedburner:emailServiceId xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">JasonHeppler</feedburner:emailServiceId><feedburner:feedburnerHostname xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">http://feedburner.google.com</feedburner:feedburnerHostname><entry>
		<title>Content on the Web</title>
		<link href="http://jasonheppler.org/2012/05/24/content-on-the-web.html" />
		<updated>2012-05-24T14:01:10-05:00</updated>
		<id>http://jasonheppler.org/2012/05/24/content-on-the-web</id>
		<content type="html">&lt;p&gt;Dan Cohen &lt;a href="https://twitter.com/dancohen/status/205670836693250048"&gt;tweets today&lt;/a&gt;:&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;Over 70% of new content on the web is now produced by individuals, &amp;amp; very little of it can be archived because it's in places like Facebook.&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;An amazing statistic. I tend to keep a lot of the things I create -- blog posts, shared links, and so on -- publically available because I don't want things locked behind a wall. Hence my preference for Twitter and Tumblr (which, incidentally, also updates Facebook and Twitter when I post something new).&lt;/p&gt;

&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/mX4j4subtKGDv-CSTKtKEpUFrUU/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/mX4j4subtKGDv-CSTKtKEpUFrUU/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/mX4j4subtKGDv-CSTKtKEpUFrUU/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/mX4j4subtKGDv-CSTKtKEpUFrUU/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;</content>
	</entry>
	
	<entry>
		<title>Forking the Rubyist Historian</title>
		<link href="http://jasonheppler.org/2012/05/22/open-publishing-the-rubyist-historian.html" />
		<updated>2012-05-22T21:21:30-05:00</updated>
		<id>http://jasonheppler.org/2012/05/22/open-publishing-the-rubyist-historian</id>
		<content type="html">&lt;p&gt;In early 2011 I wrote a &lt;a href="http://www.jasonheppler.org/2010/12/29/the-rubyist-historian-getting-started.html"&gt;series of blog posts&lt;/a&gt; based off of &lt;a href="http://lenz.unl.edu/"&gt;Steve Ramsay's&lt;/a&gt; course on electronic text and Ruby programming, where part of our goal was to think about ways we could apply programming to humanistic data. The course became something of a pivot point for me. Although I've long been a computer geek, programming was something I never deeply used and hadn't touched any computer language since high school (and even then, it was BASIC and Visual Basic). But Ramsay's course made me realize the power that programming can offer researchers. The digitization of our cultural heritage means we have a growing abudance of material being released electronically by libraries, museums, archives, and digital centers, leaving us with 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 inquery. The result was The Rubyist Historian.&lt;sup&gt;1&lt;/sup&gt;&lt;/p&gt;

&lt;p&gt;When I originally wrote the first post kicking off the series, I promised the release of an electronic book. At the time I was running WordPress and the plugin &lt;a href="http://anthologize.org/"&gt;Anthologize&lt;/a&gt; had recently been released. I wanted to test it out, and thought some of the things I was doing would also generate some good feedback for the Anthologize team. Shortly after, however, I switched my blog platform to Jekyll and, as other projects demanded my attention, I never got around to publishing the material into a format beyond my blog posts.&lt;/p&gt;

&lt;p&gt;That changes today.&lt;/p&gt;

&lt;p&gt;I had a new idea. Instead of pushing a static project as a PDF or epub format I decided to build something dynamic. After all, the electronic medium offers me a much easier way of updating material over time. So, this afternoon I pushed the seven posts to Github &lt;a href="https://github.com/hepplerj/rubyist-historian/blob/master/fulltext.md"&gt;under a single file&lt;/a&gt;, and &lt;a href="http://hepplerj.github.com/rubyist-historian/"&gt;pushed that file to Github pages&lt;/a&gt;. This offers two advantages: 1) Anyone interested can now download a copy of the Rubyist Historian and all example code to use, 2) Any updates I make can also be pushed to the page, as well as tracked in version history.&lt;/p&gt;

&lt;p&gt;But I want more. As a bit of an experiment in open publishing, I've decided to open source The Rubyist Historian for public contributions. I take my inspiration from William Turkel and Alan MacEachern's &lt;a href="http://www.niche-canada.org/programming-historian"&gt;The Programming Historian&lt;/a&gt;, which used a wiki to allow public suggestions and contributions to the book. I hope to offer the same through a different venue in using Github pages and version control.&lt;/p&gt;

&lt;p&gt;People are free to fork The Rubyist Historian and offer corrections, clear (or better, or more) examples, and overall contribute to what I hope can become a collaborative project and reference for humanities scholars looking to get started in Ruby programming. The text could also be extended in other ways, such as rewriting parts that would make more sense for Windows users (the text, as it exists, is meant primarily for *nix environments), or porting the examples to other languages (someone should do Lisp, just for fun), or add "homework" exercises, or new lessons. Or new examples could push beyond the text analysis I offer and explore different computational methods over different sets of data. Or perhaps you'd like to see a PDF or epub format for Rubyist. There are no limitations to the ideas that could be offered and incorporated.&lt;/p&gt;

&lt;h3&gt;How to Contribute&lt;/h3&gt;

&lt;p&gt;My current idea and workflow for contributions will operate as follows:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;If you want to make contributions, make a fork of the project in your Github repository.&lt;/li&gt;
&lt;li&gt;Changes you make should be made to the &lt;code&gt;fulltext.md&lt;/code&gt; file. Then changes can be pushed back to my repository.&lt;/li&gt;
&lt;li&gt;If new lessons are offered, a corresponding directory for code examples should accompany the lesson. Discussions of new lessons can be had on the &lt;a href="https://github.com/hepplerj/rubyist-historian/wiki"&gt;Github wiki page&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;As changes are merged into the full text, the Github page will be manually updated by me (this appears to be the only way to do this right now.)&lt;/li&gt;
&lt;/ol&gt;


&lt;p&gt;This may undergo some evolution -- as I mentioned, this is an experiment and I haven't fully thought through how everything will work. I'll work out issues as time goes on.&lt;/p&gt;

&lt;p&gt;So, go check out the &lt;a href="http://hepplerj.github.com/rubyist-historian/"&gt;new Rubyist Historian page&lt;/a&gt; and &lt;a href="https://github.com/hepplerj/rubyist-historian/"&gt;start forking&lt;/a&gt;.&lt;/p&gt;

&lt;ol class="footnotes"&gt;
    &lt;li&gt;The other pivot point, which the course also contributed to, was a switch in my research agenda towards the history of computers. More on this in an upcoming post.&lt;/li&gt;
&lt;/ol&gt;


&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/rZ7OZdoE7BEFkTXKaPwSt-Tn7iQ/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/rZ7OZdoE7BEFkTXKaPwSt-Tn7iQ/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/rZ7OZdoE7BEFkTXKaPwSt-Tn7iQ/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/rZ7OZdoE7BEFkTXKaPwSt-Tn7iQ/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;</content>
	</entry>
	
	<entry>
		<title>The Bastards Book of Ruby</title>
		<link href="http://jasonheppler.org/2012/05/16/the-bastards-book-of-ruby.html" />
		<updated>2012-05-16T21:24:24-05:00</updated>
		<id>http://jasonheppler.org/2012/05/16/the-bastards-book-of-ruby</id>
		<content type="html">&lt;p&gt;If you're looking for an excellent starting point for learning Ruby (besides, of course, the &lt;a href="http://www.jasonheppler.org/2010/12/10/the-rubyist-historian-the-series.html"&gt;Rubyist Historian&lt;/a&gt;, check out "&lt;a href="http://ruby.bastardsbook.com/"&gt;The Bastards Book of Ruby&lt;/a&gt;" by Dan Nguyen. He lays out his chapters really well, and I love how he has organized his table of contents and gives the status of each section's progress.&lt;/p&gt;

&lt;p&gt;(Via Steve Ramsay.)&lt;/p&gt;

&lt;p&gt;&lt;a href="http://ruby.bastardsbook.com/"&gt;Visit Link →&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/u3cRyJejuh7TAD3ijZas7jza4LQ/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/u3cRyJejuh7TAD3ijZas7jza4LQ/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/u3cRyJejuh7TAD3ijZas7jza4LQ/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/u3cRyJejuh7TAD3ijZas7jza4LQ/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;</content>
	</entry>
	
	<entry>
		<title>It's About the Problem</title>
		<link href="http://jasonheppler.org/2012/05/15/its-about-the-problem.html" />
		<updated>2012-05-15T22:49:09-05:00</updated>
		<id>http://jasonheppler.org/2012/05/15/its-about-the-problem</id>
		<content type="html">&lt;p&gt;There have been a lot of discussions today about developer Jeff Atwood's post pleading people to &lt;a href="http://www.codinghorror.com/blog/2012/05/please-dont-learn-to-code.html"&gt;not learn to code&lt;/a&gt;. Atwood is responding to the "everyone should code" and new features like Code Academy that promises to introduce people to the ins and outs of programming.&lt;/p&gt;

&lt;p&gt;I tend to agree with the sentiment behind &lt;a href="http://feedproxy.google.com/~r/Smarterware/~3/LtYNHJir_IQ/please-do-learn-how-to-propose-better-solutions"&gt;Gina Trapani&lt;/a&gt; and &lt;a href="http://pro.benjaminste.in/post/23103344300/look-i-love-programming-i-also-believe"&gt;Benjamin Stein&lt;/a&gt; -- there's a big difference between professional development and coding. One of the things coding teaches is analytical skills, logical workflow, and debugging. Few other activities combine these into situations that require all three.&lt;/p&gt;

&lt;p&gt;What Atwood is correct in noting is "[coding] puts the method before the problem. Before you go rushing out to learn to code, figure out what your problem actually is."&lt;/p&gt;

&lt;p&gt;For better or worse, in my department I am the person most people come to for questions regarding programming and code. People wonder if they should take Steve Ramsay's Ruby course (they should, it's great) or what language they should start with. Writing code, however, is not the first step.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Writing code is about solving problems&lt;/strong&gt;. Digital humanities practitioners should be building, and writing code certainly falls within that domain. But if you think writing code is your &lt;em&gt;starting&lt;/em&gt; point, then you are framing the issue incorrectly. What you need is to identify solutions to problems. Building your tool is little different than your standard research paper: identify your problem, determine your users (audience), do your research, figure out where your solution fits and how it's different from existing solutions.&lt;/p&gt;

&lt;p&gt;Writing code is not your first step. Identify the problem first.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/ZQkztjxr5bXv-acdqcuuwhaRSK0/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ZQkztjxr5bXv-acdqcuuwhaRSK0/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/ZQkztjxr5bXv-acdqcuuwhaRSK0/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ZQkztjxr5bXv-acdqcuuwhaRSK0/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;</content>
	</entry>
	
	<entry>
		<title>World Aeropress Championship</title>
		<link href="http://jasonheppler.org/2012/05/15/world-aeropress-championship.html" />
		<updated>2012-05-15T16:16:56-05:00</updated>
		<id>http://jasonheppler.org/2012/05/15/world-aeropress-championship</id>
		<content type="html">&lt;p&gt;AeroPress recipes from the World AeroPress Championship. Yes, this exists.&lt;/p&gt;

&lt;p&gt;And for the record, I'm the happy owner of a new AeroPress, which has replaced my previous brewing method of the French press. It is that good.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://worldaeropresschampionship.wordpress.com/recipes/"&gt;Visit Link →&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;(Via &lt;a href="http://www.marco.org/2012/05/14/world-aeropress-championship-recipe"&gt;Marco&lt;/a&gt;.)&lt;/p&gt;

&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/LX_A-9b9rr7-TqXV4i32OSD_db8/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/LX_A-9b9rr7-TqXV4i32OSD_db8/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/LX_A-9b9rr7-TqXV4i32OSD_db8/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/LX_A-9b9rr7-TqXV4i32OSD_db8/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;</content>
	</entry>
	
	<entry>
		<title>Hemingway on Writing</title>
		<link href="http://jasonheppler.org/2012/05/10/hemingway-on-writing.html" />
		<updated>2012-05-10T09:25:45-05:00</updated>
		<id>http://jasonheppler.org/2012/05/10/hemingway-on-writing</id>
		<content type="html">&lt;p&gt;Ernest Hemingway in &lt;a href="http://www.theparisreview.org/interviews/4825/the-art-of-fiction-no-21-ernest-hemingway"&gt;a 1958 interview&lt;/a&gt;
 with George Plimpton:&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;When I am working on a book or a story I write every morning as soon after first light as possible. There is no one to disturb you and it is cool or cold and you come to your work and warm as you write. You read what you have written and, as you always stop when you know what is going to happen next, you go on from there. You write until you come to a place where you still have your juice and know what will happen next and you stop and try to live through until the next day when you hit it again.&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;Great advice.&lt;/p&gt;

&lt;p&gt;(Via &lt;a href="http://daringfireball.net/linked/2012/05/09/hemingway"&gt;John Gruber&lt;/a&gt;.)&lt;/p&gt;

&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/Enu9DPqkjtYvwJAugaVc0dTZQO8/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Enu9DPqkjtYvwJAugaVc0dTZQO8/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/Enu9DPqkjtYvwJAugaVc0dTZQO8/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Enu9DPqkjtYvwJAugaVc0dTZQO8/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;</content>
	</entry>
	
	<entry>
		<title>Open Source Data Journalism Handbook Launched</title>
		<link href="http://jasonheppler.org/2012/05/08/open-source-data-journalism-handbook-launched.html" />
		<updated>2012-05-08T07:46:29-05:00</updated>
		<id>http://jasonheppler.org/2012/05/08/open-source-data-journalism-handbook-launched</id>
		<content type="html">&lt;p&gt;The free &lt;a href="http://datajournalismhandbook.org/1.0/en/index.html"&gt;Data Journalism Handbook&lt;/a&gt; seeks to help journalists with the challenges of working with lots of data. The handbook contains case studies and serves as a guide to gathering, understanding, and delivering data.&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;It was born at a 48 hour workshop at MozFest 2011 in London. It subsequently spilled over into an international, collaborative effort involving dozens of data journalism's leading advocates and best practitioners - including from the Australian Broadcasting Corporation, the BBC, the Chicago Tribune, Deutsche Welle, the Guardian, the Financial Times, Helsingin Sanomat, La Nacion, the New York Times, ProPublica, the Washington Post, the Texas Tribune, Verdens Gang, Wales Online, Zeit Online and many others.&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;It looks like an excellent resource for anyone looking to learn more about working with data, not just if you're a journalist. You can also find the book available in other formats (including epub and mobi) &lt;a href="https://github.com/Mortimerp9/TheDataJournalismHandbook"&gt;on Github&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/1UheCRiwkDyJOjFbSeo9n2JEkPA/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/1UheCRiwkDyJOjFbSeo9n2JEkPA/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/1UheCRiwkDyJOjFbSeo9n2JEkPA/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/1UheCRiwkDyJOjFbSeo9n2JEkPA/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;</content>
	</entry>
	
	<entry>
		<title>Adam Lisagor's AeroPress Tribute</title>
		<link href="http://jasonheppler.org/2012/04/25/adam-lisagors-aeropress-tribute.html" />
		<updated>2012-04-25T21:44:48-05:00</updated>
		<id>http://jasonheppler.org/2012/04/25/adam-lisagors-aeropress-tribute</id>
		<content type="html">&lt;iframe src="http://player.vimeo.com/video/40980282" width="500" height="281" frameborder="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen&gt;&lt;/iframe&gt;


&lt;p&gt;I'm a &lt;a href="http://www.jasonheppler.org/2012/02/15/the_french_press_method.html"&gt;fan of the French press&lt;/a&gt;, but I really would like to try out the AeroPress someday soon.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/8RtXINdcibMC1xmSVOG3eCFi8sQ/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/8RtXINdcibMC1xmSVOG3eCFi8sQ/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/8RtXINdcibMC1xmSVOG3eCFi8sQ/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/8RtXINdcibMC1xmSVOG3eCFi8sQ/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;</content>
	</entry>
	
	<entry>
		<title>A Simple Ruby NGram Generator</title>
		<link href="http://jasonheppler.org/2012/04/24/a-simple-ruby-ngram-generator.html" />
		<updated>2012-04-24T15:45:43-05:00</updated>
		<id>http://jasonheppler.org/2012/04/24/a-simple-ruby-ngram-generator</id>
		<content type="html">&lt;p&gt;I was playing around with Ruby the other night and wrote a simple n-gram generator. In case anyone is interested, here is the script:&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre&gt;&lt;code class="ruby"&gt;&lt;span class="c1"&gt;#!/usr/bin/env ruby -w&lt;/span&gt;
&lt;span class="c1"&gt;# r_ngram.rb&lt;/span&gt;
&lt;span class="c1"&gt;# Generate a simple bi- and tri-gram, prints to STDOUT&lt;/span&gt;
&lt;span class="c1"&gt;# Usage: ruby ngram.rb file.txt&lt;/span&gt;
&lt;span class="c1"&gt;# To save the output to a file: ruby ngram.rb file.txt &amp;gt; output.txt&lt;/span&gt;

&lt;span class="vg"&gt;$words&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="no"&gt;File&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;read&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="no"&gt;ARGV&lt;/span&gt;&lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;downcase&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;scan&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sr"&gt;/[a-z]+/&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;bi_grams&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="no"&gt;Hash&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;new&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;tri_grams&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="no"&gt;Hash&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;new&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;num&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="vg"&gt;$words&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;length&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;
&lt;span class="n"&gt;num&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;times&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;
  &lt;span class="n"&gt;bi&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="vg"&gt;$words&lt;/span&gt;&lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="o"&gt;]&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39; &amp;#39;&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="vg"&gt;$words&lt;/span&gt;&lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="o"&gt;]&lt;/span&gt;
  &lt;span class="n"&gt;tri&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;bi&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39; &amp;#39;&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="vg"&gt;$words&lt;/span&gt;&lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="o"&gt;]&lt;/span&gt;
  &lt;span class="n"&gt;bi_grams&lt;/span&gt;&lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="n"&gt;bi&lt;/span&gt;&lt;span class="o"&gt;]&lt;/span&gt; &lt;span class="o"&gt;+=&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;
  &lt;span class="n"&gt;tri_grams&lt;/span&gt;&lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="n"&gt;tri&lt;/span&gt;&lt;span class="o"&gt;]&lt;/span&gt; &lt;span class="o"&gt;+=&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="nb"&gt;puts&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;## -- bi-grams -- ##&amp;quot;&lt;/span&gt;
&lt;span class="n"&gt;bg&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;bi_grams&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;sort&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;b&lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt; &lt;span class="n"&gt;b&lt;/span&gt;&lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="o"&gt;]&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;=&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;num&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;times&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt; &lt;span class="nb"&gt;puts&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="si"&gt;#{&lt;/span&gt;&lt;span class="n"&gt;bg&lt;/span&gt;&lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="o"&gt;][&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt; : &lt;/span&gt;&lt;span class="si"&gt;#{&lt;/span&gt;&lt;span class="n"&gt;bg&lt;/span&gt;&lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="o"&gt;][&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="nb"&gt;puts&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;
&lt;span class="nb"&gt;puts&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;## -- tri-grams -- ##&amp;quot;&lt;/span&gt;
&lt;span class="n"&gt;tg&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;tri_grams&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;sort&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;b&lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt; &lt;span class="n"&gt;b&lt;/span&gt;&lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="o"&gt;]&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;=&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;num&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;times&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt; &lt;span class="nb"&gt;puts&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="si"&gt;#{&lt;/span&gt;&lt;span class="n"&gt;tg&lt;/span&gt;&lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="o"&gt;][&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt; : &lt;/span&gt;&lt;span class="si"&gt;#{&lt;/span&gt;&lt;span class="n"&gt;tg&lt;/span&gt;&lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="o"&gt;][&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;




&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/R2s0xqXsWIJ__XA5Zj5k8bM1ZWw/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/R2s0xqXsWIJ__XA5Zj5k8bM1ZWw/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/R2s0xqXsWIJ__XA5Zj5k8bM1ZWw/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/R2s0xqXsWIJ__XA5Zj5k8bM1ZWw/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;</content>
	</entry>
	
	<entry>
		<title>1862 Great Plains Symposium</title>
		<link href="http://jasonheppler.org/2012/03/28/1862_great_plains_symposium.html" />
		<updated>2012-03-28T15:19:36-05:00</updated>
		<id>http://jasonheppler.org/2012/03/28/1862_great_plains_symposium</id>
		<content type="html">&lt;p&gt;Starting tonight with a talk by Donald Worster, the Center for Great Plains Studies is hosting their symposium &lt;a href="http://www.unl.edu/plains/seminars/2012_Symposium/home.shtml"&gt;1862: The Making of the Great Plains&lt;/a&gt;. I'll be at the electronic poster session on Thursday discussing the &lt;a href="codyarchive.org"&gt;William F. Cody Archive&lt;/a&gt;. Featured speakers at the symposium this year also include Elliott West, Martin Jischke, Richard White, William Thomas, Myron Gutmann, and David Von Drehle.&lt;/p&gt;

&lt;p&gt;Saturday, the history graduate students are kicking off the seventh annual James A. Rawley Conference, which we are holding at the Homestead National Monument this year. Coming fresh off of comprehensive exams, this should make for a nice way to end the week.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/vTEptqziVHW4uGb-lyDTzvYZpWk/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/vTEptqziVHW4uGb-lyDTzvYZpWk/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/vTEptqziVHW4uGb-lyDTzvYZpWk/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/vTEptqziVHW4uGb-lyDTzvYZpWk/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;</content>
	</entry>
	
</feed>

