How I Learned to Read Class Materials on my iPad

I’ve always been a paper person. I like to print articles and mark them up in multi-colored highlighters. I write notes in the margins. I employ a complicated symbol system of stars, boxes, brackets and arrows to help me keep track of my thoughts.  The process of writing it down helps me to clarify my thoughts. It helps me remember. I’ve always done it this way.

It occurred to me that it’s a little insane to call myself a “digital” person when I don’t fully employ the technology or the tools available to me. I got an iPad for my birthday in June and until now I only used it for social media. This semester, I decided to experiment with reading articles online instead of wasting the paper to print them. I’d already organized my Zotero libraries to keep track of my sources. I also had purchased GoodReader (at the encouragement of several friends) to help me annotate pdfs, so I don’t lose the note-taking capability.

So far, to keep myself organized between my laptop and my iPad, I’ve been using GoodReader and Dropbox. These apps help me get the articles on my iPad and annotate like a fiend.  It’s pretty efficient. In the event that this system may help others, here is what I did.

Set up Dropbox

Install Dropbox on your computer. (Accounts are free for up to 2GB of storage.)

Open the Dropbox folder and create a new folder. Mine is called “Goodreader Sync.” The only items I put in here are items I plan to read on my iPad.

Set up GoodReader

Once you’ve installed GoodReader ($4.99), open it and select “Connect to Servers” > “Add” > “Dropbox” and input your account information.

Now it’s time to set up the sync: select “Connect to Servers,” click on Dropbox, name your connection–I named mine “Readings.” Tap the folder to connect to Dropbox and sign in with your  login information. Select the Dropbox folder you want to sync,  and select “Sync” from the buttons at the bottom of the window.

Click “Proceed”. GoodReader will then ask you to either create a new folder or “Download Here and Sync”. If you select “download here” all of your readings will populate your general GoodReader folder. I created a special folder in GoodReader to eliminate clutter, but it’s up to you.

Sync Thyself

That’s it! You can now use the green “Sync” button to connect the two. (Remember, you need to be connected to the Internet to sync your files.)


So far, my work flow consists of collecting all the week’s pdf readings from the browser on my laptop and organizing them into my “GoodReader Sync” folder in Dropbox. Once I sync from GoodReader, I’m ready to annotate for class.

Anyone else have a way to manage this? As this is the year I organize myself digitally, I’m always looking for suggestions.

Using JavaScript Libraries: Download or Link?

There are numerous open-source JavaScript libraries floating around the web that can be of particular use to historians. Google hosts quite a few of these, including the very popular jQuery and jQueryUI. For data visualization, some good options for historians include: Stanford University’s D3, or MIT’s SIMILE Widgets such as TimelineExhibit andTimePlotTimeMap combines the functionality of Timeline with popular mapping APIs to provide an easy way to plot geographic and chronological events in context.

Once you find a library and decide you want to use it, you need to make a decision, do you download and install the library on your own server or do you just link to the hosted library?  Your answer will depend on a variety of issues.

Libraries that are hosted elsewhere are handy, there are no files to install and a simple line of script can bring you all the functionality you’d want without you having to architect the file structure on your own servers. To load a hosted library, copy and paste the code snippet for that library (shown below) in your web page. For instance, to load jQuery, embed the <script src="//"></script> snippet in the <head> tag of your HTML page.

However, it’s important to note that any JavaScript that gets included in your webpage runs  within the context of your entire domain and can access any data contained therein. Using a library from a known and frequently-validated entity, such as Google, isn’t likely to cause problems, but it you’re looking to grab functionality from a third-party that isn’t as well-known, these files might cause issues on your own site. Always use code (whether you opt to link to it or download it) from sources you trust.

Additionally, the hosts of the library you’d like to use might not appreciate the additional server load that is created when you link to their libraries. Always read the documentation for instructions how best to use their library. In these cases, you should consider downloading the library to run from your own server. But where do you put it once you have it on your local machine?

If you opt to download a JavaScript library, you’ll need (eventually) to upload the entire library to your web server. For ease of organization, you can create a separate “javascript” or “js” folder at the root level of your site to house all of your libraries.

“js” is the folder and contains only JavaScript files and other libraries. You’ll notice here that I’ve installed the “timemap” library. I’ve organized all of my libraries into distinct folders, so that I can keep track of my files. Some of these libraries come with dozens of separate files, so keeping them organized becomes critical as you use more and more of them.

Most library documentation is helpful and includes instructions on how to download, but if you happen upon one that does not, these basic instructions apply:

1. Download the entire library to your local machine.
2. Unzip it and FTP it to the “javascript” or “js” folder on your web server.

That’s it. The library is now available for you to use on any page on your site.

To call your library, you’ll need to include all the appropriate <script> tags in the <head> tag of your HTML page. For example, to load TimeMap, one would need to call five different JavaScript files. In the example below the Google Maps API v3 is being called by a URL, while the rest are pulling from the local server by using the relative path “../js/timemap/lib/” code as seen below.

You can use multiple JavaScript libraries, but you should be aware of any possible conflicts. Always check the library documentation for issues of library incompatibilities. You can check for known JavaScript Library conflicts by searching Google for your library name and “conflict,” (e.g., jquery conflict)

To ensure your library is loading correctly, you can use any of the popular in-browser debugging tools like Firebug or Chrome Developer Tools. For example, if one incorrectly types the file name for the Timeline JavaScript file in the <script> tags, the page will fail to load. By using Chrome Developer Tools, it’s easy to see the Internal Server Error is due to a non-existent file on the server; the tool even gives the number of the problematic line of code causing the issue.

JavaScript libraries are a convenient way to harness the power of JavaScript functionality without having to write all the code yourself. Happy coding!