9:30 Arrivals (tea/coffee ...)
10:00 - 10:10 Introduction to DNAdigest (Fiona or Adrian)
10:20 - 10:40 Introduction to bionode (Bruno)
10:40 - 11:00 Genomic data landscape - a focus on accessibility (Adrian)
11:00 - 11:30 How to build a Node.js package for data fetching (Bruno) - practical session
11:45 - 13:00 Hack Session I ( 2:15 h session )
13:00 - 14:00 Lunch break
14:00 - 16:00 Hack Session II (3 to 4h) aiming for 14:00 to 17:30 session
16:15 - 16:45 Sessions Feedback
16:45 - 17:00 Closing remarks (Adrian + Bruno)
During the hackathon, you will be able to use a remote machine already setup with everything you need (easiest but limited), use a local copy of that machine through Docker (recommended), or install the software on your local operating system (advanced users).
For simple things, like code examples during a talk, you can go to try.bionode.io and access a machine through your browser. However, the command line, text editor, and filesystem explorer provided by the website are very limited and there is no functionality to download or upload your files easily.
For some real hacking, we will provide machines you can ssh
into and mount the filesystem with sshfs
.
There's a lot of documentation online on how to get and use ssh for every operating system.
# Access machine through ssh
ssh -i identity_file.pem remoteuser@your_host_address
# Mount folder
sshfs -o IdentityFile=identity_file.pem remoteuser@your_host_address:/host_location_to_mount /mnt/ec2
Go to docker.com and get Docker for Mac or Windows. For Linux, follow the distro specific instructions.
Then simply run in your terminal:
docker run --rm -it -v project_folder:/app bionode/try-bionode
# Get and install Homebrew (http://brew.sh) with following command
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
# Install Node.js versions manager
brew install n
# Get latest stable Node.js
sudo n stable
# Install Node.js package manager
sudo apt-get install npm
# Install Node.js versions manager
sudo npm install -g n
# Get latest stable Node.js
n stable
Go to nodejs.org and follow Windows instructions.
Workshopper is the name used for the open source lesson modules associated with NodeSchool. All are self guided (you don't need to attend a workshop to do one) and most work offline.
From all these, we recommend the following (by order of importance for Hackathon):
These workshoppers focus on essential skills for working with Node.js.
- javascripting - Learn the basics of JavaScript. No previous programming experience required.
- learnyounode - Learn the basics of node: asynchronous i/o, http.
- stream-adventure - Learn to compose streaming interfaces with .pipe().
- git-it - Learn Git and GitHub basics.
- How to npm - Learn how to use and create npm modules.
Workshoppers on popular libraries or styles of writing Node.js.
- Functional Javascript - Learn fundamental functional programming features of JavaScript in vanilla ES5.
- Async You - Learn to use the async package.
- mississippi - a collection of useful stream utility modules
- multistream - multistream is equivalent to executing a bunch of commands in sequence in bash
- multi-read-stream - multi-read-stream is like forking a bunch of processes and reading their output in parallel
- multi-write-stream - multi-write-stream is forking a bunch of process but writing to them all in parallel
- Request - Simplified HTTP client
- Casper.js - Navigation scripting & testing for PhantomJS and SlimerJS
- bionode-template - A base template for quickly creating bionode modules.
- bionode-ncbi - Node.js module for working with the NCBI API (aka e-utils).
This is an example of how you can quickly write a Stream in Node.js
var through = require('through2')
var stream = through2.obj(transform)
function transform (obj, enc, next) {
// do things, example:
var self = this
requestSomethingFromDB(obj.name, function(data) {
obj.data = data
self.push(obj)
next()
})
}