Questions and practicalities
...
- scholarsphere
- dl.tufts.edu - tufts digital library - put a hydra head on top of existing fedora repo. awesome transcription / TEI w/ embedded timecode / audio player
- levysheetmusic - changes / customizations to interface
- hullhistorycentre.org.uk - hull city archives - example of EADs. (nice search box page!)
- hydra.hull.ac.uk - has a backend with workflow stuff. would likely be happy to give a short demo. (also note interesting icons)
- alexandria digital research
- spotlight (stanford) - library.stanford.edu/projects/spotlight - for exhibit building. - note: blacklight gallery gem gives you different views of results lists.
- another gem: date slider
- digital.case.edu (built on worthwhile, rdf-driven) - open seadragon + iiif-compliant server for amazing image viewing. view metadata / different formats.
- dl.tufts.edu - MIRA (management of institutional repository assets. more workflow-type, controlled deposit.
- http://demo.curationexperts.com/
- WGBH - digitize on-demand. Metadata is published and there's a button.
- HydraDAM (replaced Artesia at WGBH)
Syllabus
March 9th-13th, 2015
Yale University Library
New Haven, CT
Course Goals
The goal of Hydra Camp is to introduce new developers to the skills and tools they will need to successfully build Hydra based digital repository solutions. There’s a lot of ground to cover and you won’t walk out at the end of the week a complete expert, but we hope we’ll have provided you enough of a scaffolding to jump-start your own work and keep learning like the rest of us. We hope that the topics covered at Hydra Camp provide enough breadcrumbs that you’ll have a good idea where to start looking once you get home and start digging into problems on your own!
Supplies
Laptop & Power Supply
Headphones/Earbuds
Water bottle/Travel Mug
Location
WALKING - Meet in The Study lobby at 8:45am Monday morning, walk as a group - https://goo.gl/maps/kH3Cu
DRIVING - Commuters should park in any of the visitor lots on campus: http://to.yale.edu/parking-map
WIFI SSID: available Monday
Prerequisites
If you have never used Ruby, visit http://tryruby.org for an interactive tutorial.
We’ll be providing a VirtualBox VM with everything you need for development, if you have time please install VirtualBox (download here) before class. Also install Vagrant (download here) if possible
Alternatively, if you want to run a local development environment directly on your laptop - RailsBridge Installfest has good instructions for getting your system setup: http://installfest.railsbridge.org/installfest/ - you can skip the Heroku steps.
...
Local Development Environment Requirements
If you’re using a Mac, install/update XCode & homebrew.
Install Git (on Mac, we recommend using homebrew to install git)
Install RVM + Ruby 2.1.5 using RVM `rvm install ruby-2.1.5`
(if you follow the installfest exactly, 2.0.0 also works fine)
Install Java 7 runtime (if you already have 6 installed, that also works)
Install Rails 4.1.9: `gem install rails 4.1.9`
Install a Text Editor of your choice. KomodoEdit is a popular free option. Many people use TextMate (not free). VIM is hardcore but some of us do it.
Create a (free) Github Account if you don't already have one: https://github.com/signup/free
Create Github SSH Keys and set them up for your development machine
NOTE: We’ll have help available in class if you run into any troubles getting your system set up. We’ll have the VirtualBox image configured with Ubuntu and the necessary tools to complete class exercises or can help install all necessary software locally.
Syllabus
https://docs.google.com/document/d/10YeaUkYV-akfLQhqVd7Zffy_UxosdDUgzu6RxuIsxBA/edit#
Day 1: Monday, March 9th
MORNING - start 9:00am
Welcome - Housekeeping - Introductions
Your name, institution, something unique about yourself
Course goals!
Rails for Zombies - at your own pace - bring headphones https://www.codeschool.com/courses/rails-for-zombies-redux
IN PARALLEL - finish Virtual Box & Vagrant setup, distribute VMs
LUNCH ~12:30 - on your own
Setup VMs and/or confirm local dev environments
Config the local git with your name and e-mail
git config --global user.name "Your Name"
git config --global user.email you@example.comDive into Hydra: https://github.com/projecthydra/hydra/wiki/Dive-into-Hydra
NOTE: before step “Lesson: install hydra jetty” - copy
master.zip from the home directory to the hydra-demo/tmp directory
cp ~/master.zip tmpIndividual help available for install questions
[Optional] RailsBridge - Intro to Rails
http://docs.railsbridge.org/intro-to-rails/ - you can skip Heroku sectionsDINNER - on your own
Day 2: Tuesday, March 10th
MORNING - start 9:00am
Hydra Framework Technical Overview
https://wiki.duraspace.org/display/hydra/Technical+Framework+and+its+PartsHydras in the Wild - examples of live Hydra heads
See links to examples under Resources
LUNCH - on your own
[Optional] Start modelling your own metadata
[Optional] Create some additional content (books) to search
[Optional] http://vim-adventures.com
DINNER - group dinner @ TBA (?)
Day 3: Wednesday, March 11th
MORNING - start 9:00 am
Install Sufia (Development): https://github.com/projecthydra/sufia
see also http://demo.curationexperts.com
NOTE: git ssh may not work over the Yale Guest WIFI, use these lines in your Gemfile:
gem 'sufia', '6.0.0.rc4'
gem 'kaminari', git: 'https://github.com/harai/kaminari.git', branch: 'route_prefix_prototype'
gem 'blacklight', '~> 5.9.0'Dependencies are pre-installed in your VM:
Redis: apt-get or brew install
FITS: https://github.com/curationexperts/hydradam/wiki/Installation%3A-fits
Imagemagick: apt-get or brew install
Collaborative development exercise using github
Also see:LUNCH ~11:30 - Visit Sterling, Beinecke, and eat at Trumbull College.
Production Deployment
http://curationexperts.com/2013/10/07/the-hydra-production-stack/
https://github.com/curationexperts/hydradam/wiki/Production-Installation%3A-Overview
[OPTIONAL] Solrizer walkthrough - additional references:
https://github.com/projecthydra/solrizer (see Readme)
[OPTIONAL] Blacklight quickstart https://github.com/projectblacklight/blacklight/wiki/Quickstart https://github.com/projectblacklight/blacklight/wiki/Configuring-and-Customizing-Blacklight
[Optional] Solr Tutorial: https://lucene.apache.org/solr/4_7_1/tutorial.html
DINNER - on your own
Day 4: Thursday, March 12th
MORNING - start 9:00am
MORNING - start 9:00 am
XML Metadata - https://github.com/projecthydra/hydra/wiki/Lesson:-Build-a-Book-Model-in-XML
Create an object in Sufia and Hydra-Demo repos with architecture walk-through
[OPTIONAL] Managing descriptive Metadata:
XML:https://github.com/projecthydra/om/wiki/Tame-your-XML-with-OM OR
RDF:https://github.com/projecthydra/active_fedora/wiki/Tame-your-RDF-Metadata-with-ActiveFedoraGroup photo: https://www.flickr.com/photos/126513397@N05/15064527352/ The Hydra developer toolkit
Production Deployment
http://curationexperts.com/2013/10/07/the-hydra-production-stack/https://github.com/curationexperts/hydradam/wiki/Production-Installation%3A-Overview
LUNCH - on your own
AFTERNOON - Students depart as necessary for transit
Q&A
Development process - feature branches, forks, pull requests
see: http://ndlib.github.io/practices/ruby-and-rails-developer-tools/
Hydra-tech ■ IRC ■ Bundler & gems ■ DRY
Debugger ■ Better Errors ■ Fedora Admin ■ IDEs
The Hydra Community
https://wiki.duraspace.org/display/hydra/Hydra+Community+FrameworkOperations & Production Deployment
Avalon deployment - see especially Virtual Machine install #2: http://www.avalonmediasystem.org/download
HydraDam Install instructions
[OPTIONAL] Hydra Access Controls: https://github.com/projecthydra/hydra-head/wiki/Access-Controls-with-Hydra
Day 5 [BONUS]: Friday, March 13th
Blacklight workshop
RESOURCES
Get on the hydra-tech mailing list & IRC:
https://groups.google.com/forum/#!forum/hydra-tech
https://wiki.duraspace.org/pages/viewpage.action?pageId=43910187Hydra Developers Page
https://wiki.duraspace.org/display/hydra/Developers
also at https://github.com/projecthydra/hydra/wiki/For-DevelopersContributing Code
Rails engines - see http://edgeguides.rubyonrails.org/engines.html
Hydra Hacking - OM, customized views, search and facet customization, testing, access restrictions, etc.
Legal https://wiki.duraspace.org/display/hydra/Hydra+Licensed+Contributors
Practical https://github.com/projecthydra/hydra/blob/master/CONTRIBUTING.md
Release notes and wiki for individual gems (varies)
Release notes: eg. https://github.com/projecthydra/active_fedora/releases
Semantic versioning: http://semver.org
General Rails Programming
CodeSchool: https://www.codeschool.com/paths/ruby#starting-rails
RailsBridge: http://docs.railsbridge.org/docs/
Rails Guides: http://guides.rubyonrails.org
Humble Little Ruby Book: http://www.humblelittlerubybook.com
RAILS APIs: http://api.rubyonrails.org/
Skilled Up: http://www.skilledup.com/learn-ruby-on-rails-guide/
Data Models
Dive into Hydra - the basic case
Sufia - Medium Sized RDF file-centric model
https://github.com/projecthydra/sufia/blob/master/sufia-models/app/models/concerns/sufia/generic_file/metadata.rb
https://github.com/projecthydra/sufia/blob/master/sufia-models/app/models/datastreams/generic_file_rdf_datastream.rbetc.
UCSD DAMS - Comprehensive RDF modelling of ‘the world’
https://github.com/ucsdlib/damsExample Hydra and Hydra related sites
IUCat (Blacklight Only) - http://www.iucat.iu.edu
Spotlight (Blacklight + Spotlight) -
Live Exhibit - Maps of Africa
Blog post with videos
Avalon Media System: http://www.avalonmediasystem.org/
Integrated Development Environments
RubyMine: http://www.jetbrains.com/ruby/
Aptana RadRails: http://www.aptana.com/products/radrails
Data Curation Experts
Website & contact info: http://curationexperts.com
Tell your Friends about Hydra Camp!
http://curationexperts.com/who-we-are/about/hydra-camp/
RDF book: Semantic Web for the Working Ontologist: Effective Modeling in RDFS and OWL http://workingontologist.org/
RDF Primer: http://www.w3.org/TR/2014/NOTE-rdf11-primer-20140225/
ResourceSync: http://www.openarchives.org/rs/toc
Fixity in Sufia with Fedora 4: https://github.com/psu-stewardship/scholarsphere/wiki/Fixity-in-Sufia-with-Fedora-4
Sample code for exercises
https://gist.github.com/afred/660e8f43026ad08a992d
def show_my_stuff(solr_parameters, user_parameters)
...