From 85381ef55ea8562234f09b265b66203f29c3899b Mon Sep 17 00:00:00 2001 From: Max Ogden Date: Sun, 25 Sep 2016 13:10:13 -0700 Subject: [PATCH] more changes for css nonprofit --- package.json | 21 +- posts.js | 70 +---- posts/2014-04-02-dat.md | 11 - posts/2014-08-19-dat-alpha.md | 82 ------ posts/2015-04-03-sloan.md | 9 - posts/2015-07-29-dat-beta.md | 52 ---- posts/2015-12-01-proprietary.md | 33 --- posts/2015-12-05-1-design.md | 14 - posts/2016-01-19-brief-history-of-dat.md | 131 ---------- posts/2016-02-01-announcing-publicbits.md | 12 - posts/2016-02-01-dat-1.md | 71 ----- posts/2016-05-16-key-elements.md | 39 --- posts/2016-07-07-announcing-dat-land.md | 28 -- render.js | 4 +- rendered/about.html | 48 ++-- rendered/blog/2014-04-02-dat.html | 139 ---------- rendered/blog/2014-08-19-dat-alpha.html | 178 ------------- rendered/blog/2015-04-03-sloan.html | 138 ---------- rendered/blog/2015-07-29-dat-beta.html | 163 ------------ rendered/blog/2015-12-01-proprietary.html | 154 ----------- .../blog/2016-01-19-brief-history-of-dat.html | 222 ---------------- .../2016-02-01-announcing-publicbits.html | 141 ---------- rendered/blog/2016-02-01-dat-1.html | 173 ------------- rendered/blog/2016-05-16-key-elements.html | 242 ------------------ .../blog/2016-07-07-announcing-dat-land.html | 148 ----------- rendered/blog/index.html | 242 ------------------ rendered/docs.html | 70 ----- rendered/index.html | 101 +------- rendered/static/css/base.css | 22 +- .../static/img/codeforscience.png | Bin rendered/static/img/dat-hex-1.png | Bin 9060 -> 6373 bytes rendered/static/img/dat-hex-2.png | Bin 7733 -> 4399 bytes rendered/static/img/dat-hex-3.png | Bin 8795 -> 4629 bytes rendered/static/img/keithchreston.jpg | Bin 0 -> 8456 bytes rendered/static/img/waldojaquith.jpg | Bin 0 -> 7713 bytes rendered/team.html | 136 +++------- scss/base.scss | 2 + static/css/base.css | 22 +- static/img/codeforscience.png | Bin 0 -> 203328 bytes static/img/dat-hex-1.png | Bin 9060 -> 6373 bytes static/img/dat-hex-2.png | Bin 7733 -> 4399 bytes static/img/dat-hex-3.png | Bin 8795 -> 4629 bytes static/img/keithchreston.jpg | Bin 0 -> 8456 bytes static/img/waldojaquith.jpg | Bin 0 -> 7713 bytes templates/about.html | 45 +++- templates/docs.html | 8 - templates/index.html | 5 +- templates/splash.html | 96 +------ templates/team.html | 129 ++-------- 49 files changed, 185 insertions(+), 3016 deletions(-) delete mode 100644 posts/2014-04-02-dat.md delete mode 100644 posts/2014-08-19-dat-alpha.md delete mode 100644 posts/2015-04-03-sloan.md delete mode 100644 posts/2015-07-29-dat-beta.md delete mode 100644 posts/2015-12-01-proprietary.md delete mode 100644 posts/2015-12-05-1-design.md delete mode 100644 posts/2016-01-19-brief-history-of-dat.md delete mode 100644 posts/2016-02-01-announcing-publicbits.md delete mode 100644 posts/2016-02-01-dat-1.md delete mode 100644 posts/2016-05-16-key-elements.md delete mode 100644 posts/2016-07-07-announcing-dat-land.md delete mode 100644 rendered/blog/2014-04-02-dat.html delete mode 100644 rendered/blog/2014-08-19-dat-alpha.html delete mode 100644 rendered/blog/2015-04-03-sloan.html delete mode 100644 rendered/blog/2015-07-29-dat-beta.html delete mode 100644 rendered/blog/2015-12-01-proprietary.html delete mode 100644 rendered/blog/2016-01-19-brief-history-of-dat.html delete mode 100644 rendered/blog/2016-02-01-announcing-publicbits.html delete mode 100644 rendered/blog/2016-02-01-dat-1.html delete mode 100644 rendered/blog/2016-05-16-key-elements.html delete mode 100644 rendered/blog/2016-07-07-announcing-dat-land.html delete mode 100644 rendered/blog/index.html delete mode 100644 rendered/docs.html rename codeforscience.png => rendered/static/img/codeforscience.png (100%) create mode 100644 rendered/static/img/keithchreston.jpg create mode 100644 rendered/static/img/waldojaquith.jpg create mode 100644 static/img/codeforscience.png create mode 100644 static/img/keithchreston.jpg create mode 100644 static/img/waldojaquith.jpg delete mode 100644 templates/docs.html diff --git a/package.json b/package.json index 6e609a5..cc25bba 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { - "name": "dat-website", + "name": "codeforscience-website", "version": "1.0.0", - "description": "dat-data.com source", + "description": "codeforscience.org source", "main": "index.js", "scripts": { "start": "npm run build-css && node render.js && npm run server", @@ -13,29 +13,22 @@ "render": "node render.js" }, "keywords": [ - "data", - "datasets", - "publish", - "registry", - "dathub", - "dat", - "web" ], "gh-pages-deploy": { "staticpath": "rendered", - "cname": "dat-data.com", + "cname": "codeforscience.org", "prep": [ "build-css", "render" ], "noprompt": false }, - "author": "dat project", + "author": "max ogden", "license": "BSD", "bugs": { - "url": "https://github.com/datproject/website/issues" + "url": "https://github.com/codeforscience/codeforscience.github.io/issues" }, - "homepage": "http://dat-data.com", + "homepage": "http://codeforscience.org", "dependencies": { "cheerio": "^0.19.0", "cptar": "^1.0.0", @@ -66,6 +59,6 @@ }, "repository": { "type": "git", - "url": "git+https://github.com/datproject/website.git" + "url": "git+https://github.com/codeforscience/codeforscience.github.io.git" } } diff --git a/posts.js b/posts.js index 839e4a8..ea972c4 100644 --- a/posts.js +++ b/posts.js @@ -1,71 +1,3 @@ module.exports = [ - { - // date: '2016-07-07', - title: 'Announcing dat.land online demo', - author: 'Karissa McKelvey', - teaser: 'Live peer to peer sync in the browser with http://dat.land', - name: '2016-07-07-announcing-dat-land' - }, - { - date: '2016-05-16', - title: 'Key Elements of Distributing Data', - author: 'Karissa McKelvey', - teaser: 'How the current tools fall short by missing key elements.', - name: '2016-05-16-key-elements' - }, - { - title: 'Dat 1.0 is ready', - author: 'Karissa McKelvey', - teaser: 'After years of R&D, the release candidate is ready.', - name: '2016-02-01-dat-1', - date: '2016-02-05' - }, - { - title: 'Announcing Publicbits.org', - author: 'Karissa McKelvey', - teaser: 'Breaking down open data silos with a new Knight Foundation grant.', - name: '2016-02-01-announcing-publicbits', - date: '2016-02-01' - }, - { - title: 'The likely collapse of a major proprietary hosting service', - author: 'Karissa McKelvey', - teaser: 'The beginning of the end -- and what it means for science.', - name: '2015-12-01-proprietary' - }, - { - date: '2016-01-19', - title: 'A Brief History of Dat', - author: 'Max Ogden', - teaser: 'History of Dat and the design choices over the last 2 years', - name: '2016-01-19-brief-history-of-dat' - }, - { - date: '2015-07-29', - title: 'Dat goes beta!', - author: 'Karissa McKelvey', - teaser: 'After a long year of alpha testing, dat goes beta.', - name: '2015-07-29-dat-beta' - }, - { - date: '2015-04-03', - title: 'Sloan Redoubles Dat Funding', - author: 'Waldo Jacquith', - teaser: 'Announcing a generous $640,000 grant from the Sloan foundation', - name: '2015-04-03-sloan' - }, - { - date: '2014-08-19', - title: 'Announcing the Dat Alpha', - author: 'Max Ogden', - teaser: 'The first major version of dat along with a new website.', - name: '2014-08-19-dat-alpha' - }, - { - date: '2014-04-02', - title: 'Sloan funding Dat development', - author: 'Waldo Jacquith', - teaser: 'Announcing Sloans support of the dat project', - name: '2014-04-02-dat' - } + ] diff --git a/posts/2014-04-02-dat.md b/posts/2014-04-02-dat.md deleted file mode 100644 index aae4b13..0000000 --- a/posts/2014-04-02-dat.md +++ /dev/null @@ -1,11 +0,0 @@ -# Sloan Funding Dat Development - -We’ve got two happy pieces of news at the U.S. Open Data Institute. - -The first is that board member [Max Ogden](http://maxogden.com/) is transitioning to being an employee, as we start to house and support [Dat](http://dat-data.com/), Max’s data package management tool. Dat is a system for real-time replication, transformation, and versioning of large tabular datasets. Git is to source code as Dat is to datasets. [The John S. and James L. Knight Foundation provided $50,000](http://maxogden.com/) to support taking Dat from an idea to [a pre-alpha stage](https://github.com/maxogden/dat/), which sustained the project until February. Now it's becoming a US ODI project. - -This is possible because of the second announcement: the [Alfred P. Sloan Foundation](http://www.sloan.org/) has provided $260,000 in funding to support the continued development of Dat. That money will be used to pay Max and two additional developers to spend the year growing Dat into a vibrant, healthy, widely used open source project. Sloan's interest is in seeing Dat used in the sciences, which produces a great deal of data, but for reasons both cultural and technological, does not generally publish that data openly. We intend to play a role in changing that. - -Max got started yesterday. You can follow along with development of Dat at [its GitHub repository](https://github.com/maxogden/dat/). - -Our thanks to Josh Greenberg and the Sloan Foundation for their generosity and gracious support. We're also grateful to Casey Dachs and the [Miami Foundation](https://www.miamifoundation.org/), and the folks at the Knight Foundation for their important help in making this possible. diff --git a/posts/2014-08-19-dat-alpha.md b/posts/2014-08-19-dat-alpha.md deleted file mode 100644 index f0faec6..0000000 --- a/posts/2014-08-19-dat-alpha.md +++ /dev/null @@ -1,82 +0,0 @@ -# Announcing the dat alpha. -by [Max Ogden](http://maxogden.com) - -The first code went into dat one year ago, [on August 17th 2013](https://github.com/maxogden/dat/commit/e5eda57b53f60b05c0c3d97da90c10cd17dcbe19). Today, after a year of work, we are really excited to release the first major version of dat along with a [new website](http://dat-data.com). - -Our overall goal with dat is to make a set of tools for creating and sharing streaming data pipelines, a sort of [ETL](http://en.wikipedia.org/wiki/Extract,_transform,_load) style system but designed from the ground up to be developer friendly, open source and streaming. We are aligned with the goals of the [frictionless data](http://blog.okfn.org/2013/04/24/frictionless-data-making-it-radically-easier-to-get-stuff-done-with-data/) initiative and see dat as an important tool for sharing data wrangling, munging and clean-up code so that data consumers can simply `dat clone` to get good data. - -The first six months of dat development were spent making a prototype (thanks to the [Knight foundation Prototype Fund](http://www.knightfoundation.org/grants/201346305/)). In April of this year we were able to expand the team working on dat from 1 person to 3 persons, thanks to [support from the Sloan foundation](http://usodi.org/2014/04/02/dat). At that time dat also became an official [US Open Data Institute](http://usopendata.org/) project, to ensure that open data remains a top priority going forward. - -Sloan's proposition was that they like the initial dat prototype but wanted to see scientific data use cases be treated as top priority. As a result we expanded the scope of the project from its tabular-data-specific beginnings and have focused on adding features that will help us work with larger scientific datasets. - -Up until this point, the dat API has been in flux, as we were constantly iterating on it. From this point forward we will be taking backwards compatibility much more seriously, so that third party developers can feel confident building on top of dat. - -## How to get involved - -### Try it out - -You can [install dat today](https://github.com/maxogden/dat#install) and play around with it by importing or cloning a dataset. - -You can also click this button to deploy a dat to Heroku for testing purposes for free (but be aware of the [Heroku ephemeral filesystem limitations](https://github.com/maxogden/dat/blob/master/readme.md#deploy-to-heroku)): - -[![Deploy](https://www.herokucdn.com/deploy/button.png)](https://heroku.com/deploy?template=https://github.com/bmpvieira/heroku-dat-template.git) - -The dat REST API comes bundled with the [dat-editor](https://github.com/maxogden/dat-editor#readme) web application. - - - dat editor - - -To start learning about how to use dat please read our [getting started guide](https://github.com/maxogden/dat/blob/master/docs/getting-started.md). - -To help you choose an approach to loading data into dat we have created a [data importing guide](https://github.com/maxogden/dat/blob/master/docs/importing.md). - -### Write a module or 5 - -The benefit of dat isn't in the dat module, but rather in the ecosystem that it enables to be built around it. - -There are a lot of modules that we think would be really awesome to have, and [we started a wishlist here](https://github.com/datproject/discussions/issues/5). If you see something you are interested in building, please leave a comment on that thread stating your intent. Similarly, if there is a format or storage backend that you would like to see dat support, leave it in the comments. - -## Pilot users - -This release of dat represents our efforts to get it to a point where we can start working with scientists on modeling their data workflows with dat. We will now be starting concrete work on these pilot use cases. - -If you have a use case in mind and you want to bounce it off of us please open at issue on the maxogden/dat repository with a detailed description. - -While we don't have many details to share today about these pilots, we hope to change that over the new few months. - -### Bionode (Bioinformatics -- DNA) - - - bionode logo - - -Dat core team member [@bmpvieira](https://github.com/bmpvieira/), a Bioinformatics PhD student at Queen Mary University in London, is working on applying dat to the domain of working with various DNA analysis related datasets. - -Bruno runs the [Bionode](https://github.com/bionode) project. We will be working on integrating Bionode with dat workflows to solve common problems in DNA bioinformatics research. - -### RNA-Seq (Bioinformatics -- RNA) - -Two researchers from UC-San Diego reached out to us recently and have started explaining their use case [here](https://github.com/maxogden/dat/issues/129) and [here](https://github.com/maxogden/dat/issues/135). We hope to use dat to make their data management problems go away. - -### Sloan Digital Sky Survey (Astronomy) - - - sdss - - -We will be working with the [SDSS](http://www.sdss.org/) project to share large their scans of the visible universe, and eventually connect their data with other sky survey data from other organizations. - -## The future of dat - -This release is the first step towards our goal of creating a streaming interface between every database or file storage backend in the world. We are trying to solve hard problems the right way. This is a process that takes a lot of time. - -In the future we would also like to work on a way to easily host and share datasets online. We envision a sort of data package registry, similar to [npmjs.org](http://npmjs.org), but designed with datasets in mind. This kind of project could also eventually turn into a sort of "GitHub for data". - -We also want to hook dat up to P2P networks, so that we can make downloads faster but also so that datasets become more permanent. Dat advisor Juan Benet is now working on [IPFS](http://ipfs.io/), which we are excited to hook up to dat when it is ready. - -Certain datasets are simply too large to share, so we also expect to work on a distributed computation layer on top of dat in the future (similar to the [ESGF](http://esgf.org/) project). - -You can help us discuss these high level future ideas on [this issue](https://github.com/datproject/discussions/issues/1). - -*To keep up to date with the dat project you can follow [@dat_project](https://twitter.com/dat_project) on Twitter or [watch the repo](https://github.com/maxogden/dat) on GitHub.* diff --git a/posts/2015-04-03-sloan.md b/posts/2015-04-03-sloan.md deleted file mode 100644 index 143bb62..0000000 --- a/posts/2015-04-03-sloan.md +++ /dev/null @@ -1,9 +0,0 @@ -# Sloan Redoubles Dat Funding - -We’re thrilled to announce that the [Alfred P. Sloan Foundation](http://www.sloan.org/) has provided a $640,000 grant to support the development of [Dat](http://dat-data.com/). Created by Max Ogden, and housed at U.S. Open Data, Dat makes it easy to create automated, reproducible data pipelines that sync. Sloan’s support will allow Dat to bring to scientific data the same automated, distributed workflows that Git brings to source code sharing. They’re funding three full-time positions for the next two years. - -Dat is about more than scientific data—Sloan’s core support is about building its capacity in the sciences, but it will also improve Dat in ways that will serve open data generally. - -One year ago, [Sloan provided $260,000 in funding for Dat development](https://usopendata.org/2014/04/02/dat/), also focusing on scientific data use cases, which enabled the team to release an alpha version of Dat in August, and a beta version, due out imminently. - -We’re all grateful to the Sloan Foundation for their support, and to Sloan’s Josh Greenberg for his guidance and forbearance, and look forward to two years of fruitful work. diff --git a/posts/2015-07-29-dat-beta.md b/posts/2015-07-29-dat-beta.md deleted file mode 100644 index f49e5f0..0000000 --- a/posts/2015-07-29-dat-beta.md +++ /dev/null @@ -1,52 +0,0 @@ -# Dat Goes Beta -by [Karissa McKelvey](http://karissa.github.io) - -After a long year of alpha testing, which started on [August 19th](https://usopendata.org/2014/08/19/dat-alpha/), we are excited to announce our launch of a new phase of dat. [Beta starts _now_](https://github.com/maxogden/dat). - -Let us know what you’re working on and how dat might work for you. We’ll even come to your lab to help you get up and running, implement features, and fix bugs in real time. - -Get started and and break things (but don't forget to [let us know](#chat-with-us) if things break): - -``` -npm install -g dat -``` - -### From Data Sharing to a Data Ecosystem - -Dat is a data collaboration tool. We think most people will use it to simplify the process of downloading and updating datasets, but we are also very excited about how people will use it to fork, collaborate on, and publish new datasets for others to consume. - -We've been testing dat with the generous help of physicists, data hackers, machine learning experts, biostatisticians, government developers, sociologists, and informaticians. We brought our work to [Mozilla Science Lab to integrate with Federated Wiki](https://www.youtube.com/watch?v=AKpJgNoT1b8), [the Sanger Institute to show off dat and Bionode](https://www.youtube.com/watch?v=AKpJgNoT1b8), [Berkeley Institute for Data Science where one of us co-works](https://www.youtube.com/watch?v=psmtJUyZHE0), [ROpenSci to talk about visual diffing](http://unconf.ropensci.org/), [JSConf to get our nerd on](https://www.youtube.com/watch?v=iM3Pr7tfHF0), and [to SRCCON to demo with Flatsheet](http://srccon.org/docs/transcripts/datflatsheet/), just to name a few. - -Finally, we've landed on an internal and external design that we believe covers the key use cases in the collaboration of data science and open data. With dat beta, you now can: - -1) **[Put multiple data tables in a single repository](https://github.com/maxogden/dat/blob/master/docs/whitepaper.md#31-importing-datasets)**. With dat alpha, the entire dat was one tabular entity—now, dat supports complex, heterogeneous datasets composed of different schemas or types of files. Datasets are kind of like SQL tables, except these datasets don’t support robust querying or joins. - -2) **[Trust versions with cryptographic accuracy](https://github.com/maxogden/dat/blob/master/docs/whitepaper.md#32-versioning)**. Versions are now represented as uniquely identifiable SHA-256 hashes, and you can attach a message and timestamp for a coarse-grained view of the data’s history. You can also easily (O(1)) revert to a historical version to view and edit the data. - -3) **[Fork, diff and merge](https://github.com/maxogden/dat/blob/master/docs/whitepaper.md#34-one-thousand-forks-when-all-you-need-is-a-knife-isnt-irony)**. Although forks could be represented as conflicts to be merged immediately (as one might expect in a version control system such as Git), dat’s philosophy is the opposite. We think that data tools should embrace forks as key support for experimentation during the scientific process. Now dat is a decentralized, versioned, [directed acyclic graph](https://github.com/mafintosh/hyperlog), so fork away! - -4) Deploy over HTTP or SSH. Dat is transport-agnostic and easy to deploy. This means your IT team is happy because your existing authentication schemes will work the same as ever. Feel free to give read-only access through HTTP, too. - -5) Integrate with other backend engines. Now you can use dat on top of any database that implements the [AbstractLevelDOWN api](https://github.com/Level/abstract-leveldown)—that means PostgreSQL, Redis, Mongo, Google Drive, etc. This feature is one of the many that still need extensive testing, but we are excited about the prospect. - -6) **Focus on internals**. We’ve decided to scale back our initial offerings of the dat editor and server in favor of relying on a community of modules across languages that are built on top of dat, using dat as a data storage and collaboration tool instead of a jack-of-all-trades-master-of-none. Check out [flatsheet](http://github.com/flatsheet) for a dat editor replacement and [karissa/dat-rest-server](http://github.com/karissa/dat-rest-server) for a REST server replacement. - -7) **It's faster**. Yeah, it’s faster. And it’ll only get faster as time goes by. - -### The Future - -After being granted the security to continue working on dat for the next two years, [courtesy of the Alfred P. Sloan Foundation](https://usopendata.org/2015/04/03/sloan/), we are doubling down on reliability on our approach to a full-featured 1.0 release in the coming months. We want to make it easier to: - -* track forks (with names, for starters); -* verify tabular schemas through test suites, with inspiration from [sensorQC](https://github.com/USGS-R/sensorQC) and [testdat](https://github.com/ropensci/testdat); -* add a robust set of complex and heterogenous data security, privacy, and access settings; -* make BitTorrent support easy for fast data transfer (for cases like [all of the stars in the sky](http://trillianverse.org/)); and, -* integrate into user-friendly editors like [flatsheet](http://flatsheet.io) and [the Jupyter Project](https://jupyter.org/). - -But we can’t do it without your help (really). Every little piece of feedback counts. We’re particularly looking for bug testing, feature requests, and integration with existing data sharing systems. We can’t wait to see your feedback, comments, questions, and pull requests. - -[Read more about the motivation and design of dat’s new beta](https://github.com/maxogden/dat/blob/master/docs/whitepaper.md) in the whitepaper. - -### Chat with Us - -We're mostly always available in #dat on [freenode](https://webchat.freenode.net), or [datproject/discussions on gitter.im](https://gitter.im/datproject/discussions), so join us! diff --git a/posts/2015-12-01-proprietary.md b/posts/2015-12-01-proprietary.md deleted file mode 100644 index efd89fa..0000000 --- a/posts/2015-12-01-proprietary.md +++ /dev/null @@ -1,33 +0,0 @@ -# Where is the Iron Mountain for open data? -by [Karissa McKelvey](http://karissa.github.io) - -**Proprietary services such as Google, GitHub, Dropbox, PLOS, Figshare, and AWS provide data hosting and sharing at a low cost. They've become the most popular platforms for data sharing in science. However, using them can be dangerous, because when the money runs out, so does your data.** - -Imagine a scenario 30 years in the future, when most of the world's scientific data has been hosted on Dropbox...and the company closes its doors. They might give users a chance to download that data before it is deleted permanently, or they might not anticipate their demise to make that possible. Even if they do, and even if many people download their data, scientists do not have the same incentive to download and store their data for the simple purpose of archiving and reproducibility. Most scientists will not do this. The data will disappear. - -This is already a serious problem _without_ a Dropbox closure, discovered when the question "Where are the original scripts and data you used?" is answered with "I don't know," or a referral to another person. Much of the content produced on these closed, proprietary systems will be deleted, with those valuable scientific artifacts lost forever. - -Most of the companies around today won't exist in 50 years. The average lifespan of a company has decreased from 67 years in the 1920s to just [15 years today](http://www.bbc.com/news/business-16611040). If Galileo stored photos from his telescope on Dropbox in 1610, somebody would have had to re-host that data somewhere between 11 and 33 times for it to be available today. -For decades, we've been copying paper records and storing them in literal [mountains of iron](http://www.ironmountain.com/) on microfilm, a hardy material that has [a life expectancy of a few hundred years](https://en.wikipedia.org/wiki/Microform). When information can be copied to other formats, it has higher redundancy, increasing the chance that it will be around forever. To this end, it should be made trivial to duplicate scientific data from a digital hosting service. When we want data to be around forever, it must be free to be retrieved and copied at any point in time. - -## So how did we get here in the first place? - -Unfortunately, many proprietary hosting services do not like it when their users can copy and re-host data. Many hosting companies will offer private installations on an organization's own hardware and databases. Even so, these clients may not copy, distribute, study, change, or improve the hosting software without permission from the company. This is how service hosting companies make money in the long run -- once the users buy into the software, it is difficult (or impossible) to move that data to another service. Proprietary services use code that is closed source for this purpose, so that users are incapable, legally, of running their own copy of the software and their data. - -To make matters worse, even if the hosting service prides itself on its ease of data transfer, it can still take tremendous effort to move data off of a proprietary service. Amazon encourages users by making it free to _upload_ data to cloud storage, but it charges the organization every time the data needs to be _downloaded._ Bandwidth can become expensive for very large datasets. Who will pay for this data transfer cost? The individual researcher is unlikely to have a budget for that. - -Although unfortunate, this market landscape is not necessarily the fault of companies, and a data service should not be considered harmful just because it is a business. I don't object to businesses running hosting services. But we need to start supporting and using services that are open source and free (as in speech, not beer) and allowing users to copy and re-host data. This should be considered not only a necessity, but an _inevitability_ in the use of the software. Even though this copying and re-hosting data may not good for all business models, it is a sure way to create redundancy and ensure that scientific materials will be around forever. The tension between profit and science must be resolved in favor of science. - -## Start here: open data as common knowledge - -As open data publication becomes normalized, we need to concern ourselves heavily with the method -- and that's where tools like Dat can come in. Dat is a distributed data sharing tool that is has been open source since day one. We have designed the tool explicitly for _editing, copying, re-hosting, and redistributing data._ The data hosting model will work like SETI@Home, where any user or organization can run a node that will offer bandwidth to the network to re-host and share data. This distribution model for data will enable libraries, non profits, scientific societies, universities, news organizations, and open data scientists to all participate in the open data network, drastically increasing redundancy and ensuring longevity compared to the current centralized model. - -We're convinced that this distributed data model is the most durable for ensuring that public knowledge stays accessible. Brewster Kahle of the Internet Archive has called for [an internet that "locks" openness into how it works and operates](http://brewster.kahle.org/2015/08/11/locking-the-web-open-a-call-for-a-distributed-web-2/), by distributing data over a peer to peer network. We support this notion -- with a distributed, peer to peer data sharing tool, the power over the data is distributed. This method of distribution is harder to monetize by single corporate entity than a centralized, corporate model. The market simply does not have an incentive to build this kind of distributed database for public knowledge. - -Libraries, on the other hand, are in a great position to be shepherds of public knowledge. In practice, copying scientific materials, such as books, results, drawings, sketches -- copying and making data retrievable -- is what libraries ought to be well-equipped to do. However, as scientific publishing has become more digital, many of us are challenged with the question of where to host open data. We are hoping that open data publishers choose open, redundant software. We can get far by simply helping librarians achieve their goals. Academic journals, universities, and software foundations should start listening to trained digital librarians who have advocated for these open systems by supporting their creation and using them instead. Let's stop using proprietary services for data publishing, and instead advocate for open, redundant systems. - -Karissa McKelvey
-Multiple hat wearer and Developer, Dat Project
-[http://karissa.github.io](http://karissa.github.io)
[@captainkmac on Twitter](http://twitter.com/captainkmac) - -- [1] *If you want to read more about this topic, I highly recommend reading the work of the late Eleanor Ostrom and Charlotte Hess on commons management, [Understanding the Knowledge Commons](https://mitpress.mit.edu/books/understanding-knowledge-commons).* diff --git a/posts/2015-12-05-1-design.md b/posts/2015-12-05-1-design.md deleted file mode 100644 index 457e89f..0000000 --- a/posts/2015-12-05-1-design.md +++ /dev/null @@ -1,14 +0,0 @@ -# How DropBox and Git fail on collaboration. -by [Karissa McKelvey](http://karissa.github.io) - -Our research first started with a series of interviews with researchers and data scientists using corporate filesharing services like Dropbox, Amazon S3, and Google Drive to share their data. We also studied version control tools like Git and those built on top of Git (like Git Annex). In our research, we found key design flaws in each of these tools when applied to data sharing: - -DropBox (+ Box, S3, Google, etc): -- **Central point of failure.** Any files saved here may be subject to disappearing whenever the original host can no longer pay for the service. If someone rehosts the data, -- **Proprietary software.** Users are not free to read, modify, or redeploy the code on their own servers. -- **Ad-hoc versioning.** Versioning is either non-existant or - -Git: -- **Merge conflicts.** Seen in a [recent XKCD](https://imgs.xkcd.com/comics/git.png), when a user encounters a merge conflict, the accepted solution amongst non-experts is to "move everything to another folder and start over." -- **Manually adding files.** Users can often forget to add a crucial file, leaving their collaborators with the infamous "I don't see that file... did you forget to add it?" -- **File sizes.** Git has trouble when files start getting bigger than 100MB. diff --git a/posts/2016-01-19-brief-history-of-dat.md b/posts/2016-01-19-brief-history-of-dat.md deleted file mode 100644 index bee7927..0000000 --- a/posts/2016-01-19-brief-history-of-dat.md +++ /dev/null @@ -1,131 +0,0 @@ -# A Brief History of Dat -by [Max Ogden](http://maxogden.com) - -We have some exciting news to share about Dat: We're working on a 1.0 release! It's not out just yet, but you can try what we have so far by checking out [the `master` branch on GitHub](https://github.com/maxogden/dat) or with `npm install dat@next -g`. - -I'd like to explain the history of the project and the design choices over the last 2 years since the project started, as the project has made some pretty substantial changes in direction during that time. We have been in a constant cycle of R&D during this period, and have rewritten the Dat CLI four times. - -Each rewrite incorporates the best modules and approaches from the last iteration and presents what we hope is a more straightforward workflow. We firmly believe this iterative process is the only way we could have arrived at the conclusions that led us to the features we are currently focusing on for our 1.0 release. - -## Early Dat Prototype - -The original use case for Dat centered around tabular datasets that change often. We wanted to make something to simplify the process of updating your copy of the data when the publisher updates the source data. The prototype version of Dat was built over the course of 6 months and was completed in Spring of 2014. - -The prototype `dat` command-line tool only worked with tabular data and usage looked like this: - -```sh -dat init -echo '{"hello": "world"}' | dat --json # put a JSON object into dat -cat some_csv.csv | dat --csv # stream a CSV into dat -echo $'a,b,c\n1,2,3' | dat --csv --primary=a # specify a primary key to use -dat cat # stream the most recent of all rows -dat push http://mydat.myserver.com:6461 -``` - -In addition to `dat push` there was also `dat clone` and `dat pull`. - -An example of the canonical use case we had in mind at the time was an Excel spreadsheet that gets published on an FTP server. We envisioned Dat as a tool that could sit between the user and the Excel spreadsheet and add fast + efficient syncing of new updates as well as version control features, neither of which are supported by Excel files natively. - -## Dat Alpha - -The Dat Alpha version was [released in August of 2014](https://usopendata.org/2014/08/19/dat-alpha/). The major feature we worked on was support for syncing large, non-tabular data files. This opened up a new use case: using Dat as a sort of 'DropBox for data' to sync a folder on your filesystem. - -The Alpha release was the first release after starting on a new grant that shifted our focus from open civic datasets (which tend to be tabular -- e.g. lots of database tables) to the field of data intensive scientific research, which tends to use domain specific flat-file based data formats. - -We worked directly, starting during the time of the Alpha and continuing on through to today, with some amazing research labs in fields like Astrophysics, Bioinformatics and Neuroscience to try and understand their data management problems. The addition of large file support in the Alpha was a direct result of getting feedback from these scientific pilot users. - -With the Alpha CLI we attempted to support both the tabular *and* file syncing use cases, which increased the API surface area quite a bit: - -``` -dat cat -dat export -dat import -dat init -dat help -dat version -dat pull -dat push -dat clean -dat clone -dat serve -dat listen -dat blobs get -dat blobs put -dat rows get -dat rows delete -dat rows put -``` - -At this point in time we were very excited about the new file (AKA "blobs") syncing use cases, but unsure about the intuitiveness of the API that we had come up with. User testing during this period revealed that when given a choice between two workflows, new users got very confused and it made getting started more difficult. - -To put your tabular data into version control you first have to know your schema, know your primary key (or come up with a composite primary key or use random unique IDs), and then build an import process that can be repeated when your source tabular data files change. This was a lot of work for users before they got to the gratifying parts like convenient push/pull/sync. - -Also because we presented separate "row-oriented" and "blob-oriented" workflows, users had to be able to understand the tradeoffs of both before making a choice, further complicating the onboarding process and path to a first gratifying experience. - -## Dat Beta - -The Beta version [shipped in July of 2015](https://usopendata.org/2015/07/29/dat-beta/). The major focus was to make collaboration and reproducibility features possible by switching our internal data representation to a [directed acyclic graph](https://github.com/jbenet/random-ideas/issues/20). This means we can model fully decentralized workflows like pull requests on top of Dat, as well as offer versioning with cryptographic accuracy for entire datasets. - -Up until this version Dat acted more like a traditional centralized version control system (CVS) such as Subversion where there is a central repository and all clients must synchronize with the central database before they can send any change they made. - -The new DAG abstraction we developed during this time is called [hyperlog](https://github.com/mafintosh/hyperlog). It provides a graph storage API that supports incremental, streaming replication. We used it in the `dat` CLI tool as the core database, and added tabular import and file import + synchronization features on top of it. - -In terms of command-line API, the beta didn't change too dramatically from the alpha. We still supported both tabular and file oriented workflows. We dropped the word 'blob' in exchange for 'files' and used terms like 'read' and 'write' instead of 'get' and 'put'. - -The most notable new concept in the Beta was support for multiple datasets in a single repository. This was added to support datasets with hybrid data types, such as a astronomy full sky scan which might include raw image files from a telescope as well as tabular data created during post-processing of the images. You could model each one as a dataset in dat (sort of like two different sub-folders). - -``` -repository commands: - dat init Create a new dat. - dat clone Copy a dat to the local filesystem via http or ssh. - dat push Push data to a remote dat. - dat pull Pull data from a remote dat. - dat checkout Change view to a given version. - dat serve Start an http server. - -descriptive commands: - dat status Show current status. - dat log List of changes. - dat files List all files. - dat datasets List all datasets. - dat forks List current forks. - dat diff See differences between the data in two forks. - dat keys List existing keys in a dataset. - -data commands: - dat import Add tabular data to a dataset. - dat export View tabular data from a dataset. - dat read Read a binary file. - dat write Write a binary file. - dat delete Delete a key in a dataset. - dat merge Merge two forks into one. -``` - -At the time of the Beta release we were most excited about the new decentralized possibilities. We were still unsure about the intuitiveness of the API, but weren't sure how to simplify the API without dropping support for use cases we thought were important. - -## Dat 1.0 - -We are still working on the official Dat 1.0 release, but you can try out the 1.0 RC (release candidate) today. - -After testing the alpha and beta extensively we realized we had to reduce the scope of Dat in order to make it intuitive to use. One thing we have learned through this process is that the most difficult part of designing software is finding the natural API. Once we know what we want to build actually building it is the easy part. - -In our case we were torn between a tabular data workflow (importing CSVs row by row, re-importing CSVs when individual rows are edited, with key/value database semantics) and a file based workflow (like Dropbox or rsync where we are agnostic to the actual contents and format of the files). - -We decided a "files-first" approach is the way forward. Modeling more complex tabular data workflows on top of Dat is still possible, but we are treating it as an advanced use case. As a result, the new 1.0 command-line API looks like this: - -``` -$ dat link -# prints share link -$ dat -# downloads data -``` - -We were able to get rid of 90% of our previous API surface area by going lower level (files-first). - -This blog post would be too long if I took the time to list the reasoning behind the removal of all of the commands from the Beta version. [Thankfully, we did a talk about just this redesign late last year](https://vimeo.com/147914258), which you can watch below. The short answer is that we decided to try and focus on making something that was as easy to use as Dropbox (but open source and peer to peer), and that specific focus allowed us to streamline quite a bit. As I said above, the hard part was going through the process of trying different approaches until we could feel confident in committing to one of them. - - -

Designing Dat 1.0 from ropensci on Vimeo.

- - -I hope this was insightful, and please try out the new Dat and let us know what you think! diff --git a/posts/2016-02-01-announcing-publicbits.md b/posts/2016-02-01-announcing-publicbits.md deleted file mode 100644 index 3916352..0000000 --- a/posts/2016-02-01-announcing-publicbits.md +++ /dev/null @@ -1,12 +0,0 @@ -# Announcing PublicBits: Bridging open data silos -by [Karissa McKelvey](http://karissa.github.io) - - - -We’re happy to announce that we’ve received [a $420,000 grant](http://www.knightfoundation.org/grants/201551933/) from the [John S. and James L. Knight Foundation](http://www.knightfoundation.org/) for a new project that we’re calling “PublicBits.” Our goal is to collect the world’s open data sources, to make their historical data available through a dataset registry at [PublicBits.org](http://publicbits.org/). This “dataset of datasets” will become accessible through a free, decentralized, redundant, open network, inspired by BitTorrent. PublicBits.org will use [Dat](http://dat-data.com/), our flagship project, to craft a new, collaborative framework that breaks down the silos of data portals. Our project takes inspiration from GitHub, the popular platform that allows developers to collaboratively develop software. We plan to bring the collaborative, historical, and reusable nature of open source to the open data movement. - -Developer Max Ogden started developing Dat with support from a [Knight Prototype Grant](http://knightfoundation.org/blogs/knightblog/2015/3/26/prototype-fund-winner-max-ogden-building-data-sharing-ecosystem/) in 2013. For the past two years, Dat has evolved with input from civic tech, journalism, and data science partners, and with $900,000 in funding from the [Alfred P. Sloan Foundation](http://www.sloan.org/). Through this process, we identified a significant pain point that spans the open data landscape, centered around the discovery and distribution of data. With PublicBits, we bring a new vision for an open data architecture that brings structure to the openness of data, by making it findable, manageable, and re-usable. - -Long ago, Max Ogden set out to build a “GitHub for data,” but through prototypes, we learned that a centralized model for data hosting is different than source code, posing problems for hosting big data. It’s possible to centrally host code as a service because code is small, but datasets are often too large to shuttle in and out of cloud storage, both because it can be computationally expensive process but also because it costs a lot of money. A distributed approach is more robust, cheaper, faster, and more open than a centralized model because it provides a strong network of redundant peers. To that end, we are pursuing partnerships with cloud storage companies, academic institutions, and internet freedom organizations to ensure there will be “super-sharer” hosts available, with lots of reliable storage and bandwidth. - -The Dat development team will continue to be led by creator Max Ogden, while Dat teammember Karissa McKelvey will take the reins at PublicBits. It will be a challenge to find the right team and execute the plan within the allotted time for the grant. The design must also contend with a scale of data that could potentially be very large, diverse, and complicated. We need to make sure users will not get overwhelmed by the amount of data, and that we can return relevant results. These challenges will not be insurmountable without the right team. Thankfully, we are already experts in the field and have built simple prototypes of the PublicBits registry and desktop application. Feel free to check out the [code on GitHub](https://github.com/publicbits/publicbits.org). Contributions welcome! diff --git a/posts/2016-02-01-dat-1.md b/posts/2016-02-01-dat-1.md deleted file mode 100644 index 398a68d..0000000 --- a/posts/2016-02-01-dat-1.md +++ /dev/null @@ -1,71 +0,0 @@ -# Dat 1.0 release candidate - -We’ve been working hard on a new implementation of the `dat` command-line tool. You can try it out now (and remember to [let us know if things break](http://gitter.im/datproject/discussions)): - -``` -npm install -g dat -``` - -This is our first 1.0 release candidate, meaning we will work on stability and performance until we feel comfortable enough to release a stable 1.0 for long-term support. _Please note that the alpha and beta versions of `dat` are not compatible with these new versions,_ but this will be the last time that we choose to make backwards-incompatible changes. - -We also recently published a post about the previous versions of the `dat` CLI, and how the project has evolved, called [“A Brief History of Dat.”](http://dat-data.com/blog/2016-01-19-brief-history-of-dat) - -### Dat Overview - -Dat is a command-line tool that we have been developing as an open source project with input from scientific research partners over the past two years. The pilot users have so far been in the fields of astronomy, bioinformatics, and neuroscience. These fields are becoming heavily data-based (e.g. digital imaging from telescopes and microscopes, DNA sequencing) and tend to share their research publicly on the web. We have been in a constant cycle of research and development during this period, and have rewritten the Dat CLI four times. Each rewrite incorporates the best modules and approaches from the last iteration and presents what we hope is a more straightforward workflow. We firmly believe this iterative process is the only way we could have arrived at the conclusions that led us to the features that we’re focusing on for the 1.0 release. - -Dat has been redesigned with the following goals in mind: - -#### 1. Ensure datasets can be accessed even if the original data source becomes unavailable - -The key principle is to let anyone who has data share it with anyone who wants that data, in an automated and decentralized way. This makes it possible to create many copies of data, so that if the original provider disappears, other providers can take their place. We are pursuing partnerships with cloud storage companies, academic institutions, and internet freedom organizations to ensure there will be “super-sharer” nodes available, with lots of reliable storage and bandwidth. We will also be building an open-source registry service, funded by [a generous grant from the John S. and James L. Knight Foundation](http://www.knightfoundation.org/grants/201551933/). - -#### 2. Make available all versions of all datasets - -A drawback of existing peer-to-peer file sharing tools is that they lack the ability to dynamically update a dataset or access previous versions of a dataset. This is key for reproducibility of data, a huge issue in science. Every time a Dat repository is shared, Dat uses [cryptographic fingerprinting](http://github.com/maxogden/rabin) of the files to ensure others will get exactly the same data. Peers that wish to host previous versions of data may do so at the cost of more storage space. - -#### 3. Fast dataset transfer speeds at reduced cost - -Downloads are frequently bandwidth-limited, either explicitly by the server or by the nature of clogged single-socket connections. We maximize transfer speeds by downloading in parallel from a swarm of nodes. Because we use Rabin fingerprinting (similar to rsync) Dat updates datasets by transferring only the data that changed. These two optimizations increase download bandwidth and reduces bandwidth costs, especially in cases where large datasets change only slightly between versions. - -### API - -The new API is very simple. It comes with only two commands: one for sharing data, and one for downloading data. - -#### Sharing data with `dat link` - -`dat link` will create a unique hash for your data, and then serve it using our peer-to-peer network. This hash is generated from the contents of your files—if you change any files, the hash will change. In the future, we plan on creating feeds that will allow users to publish updates to old data, informing peers of newer versions, like Git. - -``` -$ dat link -Creating share link for 19 files, 3 folders, 13.8 MB total -Link: dat://a53d819bdf5c3496a2855df83daaac885686cac4b0bccfc580741b04898e3b32 -Sharing data on port 3282, connected to 0/2 peers -``` - -#### Downloading data with `dat` - -To download the data shared by someone else, you can simply type `dat ` and dat will traverse the peer to peer network, connect to anyone else that has a copy, and download the data directly from all of them simultaneously. File metadata and contents do not travel over any centralized servers—it flows directly from the peers to your computer. Peers are discovered using either [DNS](http://npmjs.org/dns-discovery), the [BitTorrent DHT](https://www.npmjs.com/package/bittorrent-dht), or WebRTC with the [desktop app](http://github.com/karissa/dat-desk). - -``` -$ dat dat://a53d819bdf5c3496a2855df83daaac885686cac4b0bccfc580741b04898e3b32 -Downloaded 1/1 files (4 MB/s, 13.8 MB total) -Download complete, sharing data. Connected to 1/2 peers -``` - -### Ecosystem - -We have built a variety of modules to support dat's wide range of use cases. - - * [hyperdrive](http://github.com/mafintosh/hyperdrive): The file sharing protocol dat uses to distribute files and data. - * [discovery-channel](http://github.com/maxogden/discovery-channel) - : This is the module that dat uses to find peers on the local network or the internet who are sharing the same files and data that you are. - * [dat-desk](http://github.com/karissa/dat-desk): A cross-platform desktop application for managing local Dats - * [dat-explorer](http://github.com/karissa/dat-explorer): Explore a Dat link in the browser. - * [datpy](http://github.com/karissa/datpy): Python client for Dat - -Over the last couple of years we’ve come up with a long list of things we want to use Dat to build. Dat will be a stable building block that anyone can use for a variety of applications and use cases, such as: structured data like CSVs or database tables; reproducible code environments using containers; mounting filesystems to capture file changes; an open source file sharing app along the lines of Dropbox/BitTorrent Sync; deploying code and data to a compute cluster...the list goes on. We are excited to see what the community will build in the coming months. - -Stay in touch with us on [Twitter @dat_project](http://twitter.com/dat_project), `#dat` on freenode, [Gitter](http://gitter.im/datproject/discussion), or subscribe to our [TinyLetter](http://tinyletter.com/datdata). We will let you know when new features are rolled out and when major bugs are fixed. - -It's almost production-ready, please help us get it over the finish line! diff --git a/posts/2016-05-16-key-elements.md b/posts/2016-05-16-key-elements.md deleted file mode 100644 index d7411d3..0000000 --- a/posts/2016-05-16-key-elements.md +++ /dev/null @@ -1,39 +0,0 @@ -# Key Elements of Distributing Open Data -by [Karissa McKelvey](http://karissa.github.io) - -The data distribution toolkit has become a mixed bag of tools that require different skill sets and are applied for different purposes. Git, for example, is a tool that works effectively for governing data (if you learn how to use it), but it quickly becomes unwieldy for larger datasets. BitTorrent is a great solution for distributing large datasets across many machines, but torrent files are static, and can become a hassle to use with changing data. BitTorrent Sync, DropBox, and Google Drive attempt to solve this problem, but they are proprietary software that fall short when it comes to governing data amongst teams or for the public eye. Data portals like Socrata, CKAN, or are custom built employ HTTP/FTP plus a good metadata file (and a hearty group of helping hands) and continue to be the most used method for publishing open data. - -All of these tools mentioned above have some of the key elements for open data distribution, but none of them have them all -- and this is why, I argue, they all fall short. These key elements are: open, streaming, historical, content-addressable, signable, indexable, and decentralized. In this blog post I’m going to cover each of these key elements and talk about why they’re important as well as what they offer us when attempting to distribute data to the public. I will also introduce the newest version of our tool, Dat, which contains all of these elements. - - -| | signable | open | historical | content-addressable | decentralized | indexable | streaming | -| --- | --- | --- | --- | --- | --- | --- | --- | --- | -| Socrata | x | | | | | | | -| CKAN | x | x | x | | | | | -| FTP | x | x | | | | x | x | -| HTTP | x | x | | | | x | x | -| DropBox/Drive | x | | x | | | x | x | -| BitTorrent Sync | x | | | x | x | x | x | -| Git | x | x | x | x | x | | | -| Dat | x | x | x | x | x | x | x | - - - - -**Open.** An open data tool should be open source. This isn’t simply out of principle -- it also enables developers to tweak the tool for use within a potentially complicated distribution system. This property is key for extensibility and stability of any distribution toolchain by not requiring dependence upon outside proprietary and corporate software. Most importantly, developers can peer review, or audit, the tool for reliability and safety. *Benefits: developer-friendliness, extensibilty, long-term stability.* - -**Historical.** Data should be versioned with cryptographically secure hashes. We can then prove the data is exactly what we need when we reference a particular version in scripts or analysis results. We can also audit the history of the data, which could be key for understanding errors in the data transformation or distribution pipeline. *Benefits: auditing, governance, provenance.* - -**Decentralized.** Data that is decentralized enables each user to have a complete copy of the data and its history. Then, data be manipulated locally before being re-published, either as a fork or as an update to the original dataset. As data is downloaded, it is served, reducing bandwidth and increasing efficiency as more people download data. When the original server goes offline, the data could still be available through the peer network, increasing the likelihood that the open data will be around as long as possible. If decentralized and versioned, the tool must use data structures that guarantee the data can be trusted even across many computers. That means using a decentralized tree called a merkle directed acyclic graph, what we find in Git, Blockchains, and other popular decentralized applications. *Benefits: bandwidth, uptime.* - -**Content-addressable.** Each file should be split into chunks that are stored in the filesystem under a content-addressable scheme, so that all identical chunks are only downloaded once. This increases speed when downloading datasets that often repeat chunks of data, or when downloading new versions of a dataset that only have slight changes. *Benefits: bandwidth, storage.* - -**Signable.** Also known as authentication, each repository should be able to have an ‘owner’ that can prevent global editing of the dataset. This allows us to guarantee the integrity of the dataset by only allowing trusted users to edit and add data. *Benefits: security, collaboration, governance.* - -**Streaming.** A client should be able to retrieve data chunks immediately instead of being forced to download the entire contents of a dataset before reading. This also allows clients to listen to changes and update as soon as new data is published. *Benefits: live file syncing, live audio/video streaming, instantaneous upload/download.* - -**Indexable.** The tool will allow a client to download a particular byte range of a file. *Benefits: random access seeking, file indexing (e.g., rows in a csv).* - -Our newest version of [dat](http://github.com/maxogden/dat) is a working implementation of these key elements. Check out the [GitHub repository now](http://github.com/maxogden/dat) to get started or see the [online demo](http://dat.land). We are also always available in IRC, #dat on freenode, for questions, comments, or suggestions. - -**edit**: [See the discussion on hacker news](https://news.ycombinator.com/item?id=12020422) diff --git a/posts/2016-07-07-announcing-dat-land.md b/posts/2016-07-07-announcing-dat-land.md deleted file mode 100644 index b147170..0000000 --- a/posts/2016-07-07-announcing-dat-land.md +++ /dev/null @@ -1,28 +0,0 @@ -# Live peer to peer sync in the Browser -by [Karissa McKelvey](http://karissa.github.io) - -Today we are happy to announce [dat.land](http://dat.land) -- a new browser-based demonstration of dat. - - - -The new version of dat uses [hyperdrive](http://github.com/mafintosh/hyperdrive), a distributed filesystem that takes the best parts of data sync tools like DropBox or BitTorrent Sync -- but open source, peer to peer, and works in the browser. - -Two months ago, I outlined the [7 key principles of a peer to peer data system](http://dat-data.com/blog/2016-05-16-key-elements), which include signability, openness, history, content-addressability, decentralization, indexing, and streaming. This new version of dat in our browser based demo is the first iteration able to accomplish all of these key principles, and we are very proud of it. - -## How it works - -When the browser is opened, [dat.land](http://dat.land) generates what we call a "live" hyperdrive in the browser which is referenced by a public key, which looks like a bunch of random characters, like this: - -``` -be4d373dd847f3a138de926f939648f79d231de642b1fe88790d749c5693db14 -``` - -This is same concept used in Google Drive and DropBox share links. This unique string of characters will identify your dat archive forever -- at least, as long as someone is broadcasting the key over the decentralized network. - -If you share the new [dat.land](http://dat.land) link with someone else, their browser will attempt to find the other sources on the network that are broadcasting this same public key. Once it finds another source, it will attempt to connect directly to that other peer, and start downloading the data. - -If you drag more data onto the screen, you'll notice that the data is automatically synced to the other browser. None of the source data is transferred through a central server. It is also encrypted end-to-end between browsers to prevent malicious third parties from reading the data without your permission. Only users you share the dat key with will be able to download your data. - -## Implications - -## Next steps diff --git a/render.js b/render.js index df9d02d..71f234e 100644 --- a/render.js +++ b/render.js @@ -21,8 +21,7 @@ var templates = { about: readTemplate('about'), blog: readTemplate('blog'), splash: readTemplate('splash'), - team: readTemplate('team'), - docs: readTemplate('docs') + team: readTemplate('team') } function readTemplate (file) { @@ -48,7 +47,6 @@ posts.forEach(function (post) { renderStatic(templates.splash, 'index') renderStatic(templates.about, 'about') renderStatic(templates.team, 'team') -renderStatic(templates.docs, 'docs') // copy static stuff cptar('./static', outDir + '/static', function (err) { diff --git a/rendered/about.html b/rendered/about.html index 314af30..bac0508 100644 --- a/rendered/about.html +++ b/rendered/about.html @@ -25,7 +25,7 @@
-
About Dat
+
About Us
@@ -34,35 +34,52 @@
-
Dat is a grant-funded, open-source, decentralized data sharing tool for efficiently versioning and syncing changes to data.
+
Code for Science & Society ("CSS") is a not-for-profit organization committed to improving access to data for the public good.
-
Built in Node.js, Dat can be used to version data locally, or to share and sync data over the internet. Dat includes an optional peer-to-peer distribution system, meaning that the more widely that a dataset is shared, the faster it is for users to retrieve or sync a copy, and the more redundant that the dataset’s availability becomes.
+
At CSS we seek to advance the power of data to improve the social and economic lives of all people through public education, scientific research, and technology development and deployment. We work to improve the public’s ability to find, collect, and share the data they use to make more informed decisions in the benefit of the public interest.
-
By building tools to build and share data pipelines, we aim to bring to data a style of collaboration similar to what Git brings to source code, while bringing a style of sharing similar to what Dropbox brings to file generally.
+
We work at the intersection of technology with three areas of public interest: science, journalism and government. Our goal is to help these areas make better use of technology to accomplish their goals and help foster more openness, transparency and collaboration.
-
Note that while Dat is a designed as a general-purpose tool, our team focuses on its use in the sciences.
+
Our main function is to build, promote and train these communities on data management, sharing and search tools they can use to make better use of data in their work and to benefit the public at large.
+
+
-
History
+
+
+
Contact Us
-
The first code went into Dat on August 17, 2013. The first six months were spent making a prototype (thanks to the John S. and James L. Knight foundation Prototype Fund), followed by taking Dat beyond the prototype phase and into an alpha release.
+
+ Phone (415) 238-6351 +
-
In the spring of 2014 we were able to expand the team working on Dat from one to three people, thanks to support from the Alfred P. Sloan foundation. Sloan’s proposition was that they like the initial Dat prototype, but wanted to see scientific data use cases be treated as top priority. As a result we expanded the scope of the project from its tabular data specific beginnings, and have focused on adding features that will help us work with larger open scientific datasets. Sloan redoubled their support in the spring of 2015, allowing us to continue to fund three positions for another two years.
+
+ E-mail max@maxogden.com +
+ +
+ Mailing Address
+ Code for Science and Society
+ C/O Max Ogden
+ 419 NE 10th Ave
+ Portland, OR
+ 97232 +
-
In the winter of 2016, the Knight Foundation provided significant funding to create a centralized registry for Dat-hosted datasets, towards creating a global data commons. That allowed the project to create three new positions.
-
-
Logo/Sticker Templates
- + +
+
+
- + -
-
-
-
Recent Talks
-
Get up-to-date with Dat. - -
-
-
-
-
- -

Designing Dat 1.0 for ROpenSci Community Call

-
Dec 2015
-
-
-
-
- -

Dat Demo at the Decentralized Web Summit

-
June 2016
+
Open Journalism
+
We want to empower journalists by letting them more effectively use data to drive their reporting and inform the public.
@@ -149,9 +75,9 @@

Dat Demo at the Decentralized Web Summit

Sponsors and Supporters
- - - + + +
@@ -196,10 +122,11 @@

Dat Demo at the Decentralized Web Summit

(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) - })(window,document,'script','//www.google-analytics.com/analytics.js','ga'); + })(window,document,'script','https://www.google-analytics.com/analytics.js','ga'); - ga('create', 'UA-49664853-1', 'dat-data.com'); + ga('create', 'UA-84719120-1', 'auto'); ga('send', 'pageview'); + diff --git a/rendered/static/css/base.css b/rendered/static/css/base.css index 91c9d9d..560596b 100644 --- a/rendered/static/css/base.css +++ b/rendered/static/css/base.css @@ -6898,7 +6898,7 @@ Railscasts-like style (c) Visoft, Inc. (Damien White) .header-nav-link { color: #293648; } .header-nav-link.active { - color: #35B44F; } + color: #5f7993; } .header-nav-link:hover, .header-nav-link:focus { color: #505F6D; } @@ -7056,7 +7056,7 @@ input.edit-info { z-index: 999999; } .banner.success { top: 0; - background-color: #35B44F; } + background-color: #5f7993; } .banner.error { top: 0; background-color: #D8524E; } @@ -7218,7 +7218,7 @@ h1, h2, h3, h4, h5 { width: 100%; } a { - color: #35B44F; } + color: #5f7993; } a:hover, a:focus { color: #24943A; text-decoration: none; } @@ -7250,7 +7250,7 @@ pre { font-size: 18px; font-weight: 600; color: white; - background-color: #35B44F; + background-color: #5f7993; padding: 9px 14px; border-radius: 5px; } .button.button-light { @@ -7265,7 +7265,7 @@ ul { /** SPLASH **/ .rsaquo { - color: #35B44F; + color: #5f7993; margin-right: 10px; font-family: "Times New Roman", Times, serif; font-size: 20px; } @@ -7353,12 +7353,12 @@ ul { .jumbotron-continue { font-size: 20px; font-weight: 700; - color: #35B44F; + color: #5f7993; padding-right: 10px; padding-bottom: 50px; } .jumbotron-continue a { - color: #35B44F; } + color: #5f7993; } .jumbotron-spacer { height: 60px; } @@ -7378,7 +7378,7 @@ ul { background-color: white; } .content a { - color: #35B44F; + color: #5f7993; font-weight: 600; text-decoration: none; } .content a:hover, .content a:focus { @@ -7483,7 +7483,7 @@ ul { margin-bottom: 10px; } .content-text-container a { - color: #35B44F; + color: #5f7993; text-decoration: none; } .content-text-container a:hover, .content-text-container a:focus { text-decoration: underline; } @@ -7500,7 +7500,7 @@ ul { margin-bottom: 50px; } .content-card-small a { - color: #35B44F; + color: #5f7993; text-decoration: none; } .content-card-small a:hover, .content-card-small a:focus { text-decoration: underline; } @@ -7624,7 +7624,7 @@ a.load-document { color: #919BA4; } .sidebar-list .document h2 { margin: 0; - color: #35B44F; } + color: #5f7993; } .sidebar-list .document:not(.active) { border-left: 1px solid #F6F7F8; } .sidebar-list .document.active { diff --git a/codeforscience.png b/rendered/static/img/codeforscience.png similarity index 100% rename from codeforscience.png rename to rendered/static/img/codeforscience.png diff --git a/rendered/static/img/dat-hex-1.png b/rendered/static/img/dat-hex-1.png index ef95031661ca5a30ffe678695e5bf55a5710716d..55873451fbb5b258186427ef7970362546a8b367 100644 GIT binary patch literal 6373 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 literal 9060 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 diff --git a/rendered/static/img/dat-hex-2.png b/rendered/static/img/dat-hex-2.png index a7c943259465acd3295672ccb51db16c616a43e7..23f829cd05e2e58a0b5c8306711a4478cca88115 100644 GIT binary patch literal 4399 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 OA+&{^`8`vQbN>TrsIkWY literal 7733 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 EAA?&L$^ZZW literal 8795 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 R3;TNyfaTTYYGf>e{s#?Nol5`! diff --git a/rendered/static/img/keithchreston.jpg b/rendered/static/img/keithchreston.jpg new file mode 100644 index 0000000000000000000000000000000000000000..144b670ccbf36cd39b257f9c2809268424ed219c GIT binary patch literal 8456 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 G3;zSOVpb#o literal 0 HcmV?d00001 diff --git a/rendered/static/img/waldojaquith.jpg b/rendered/static/img/waldojaquith.jpg new file mode 100644 index 0000000000000000000000000000000000000000..e588a23896d86a5b5f31e6067c0429ae3c922ce6 GIT binary patch literal 7713 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 literal 0 HcmV?d00001 diff --git a/rendered/team.html b/rendered/team.html index 2aa6d06..8c577ef 100644 --- a/rendered/team.html +++ b/rendered/team.html @@ -24,36 +24,37 @@
-
Development Team
+
Team
-
+
Max Ogden
+
Director/Board President
- Programmer based in Portland, OR. Max works on or has worked on things like CSVConf, Code for America, JavaScript for Cats, and Voxel.js. + Former Code for America fellow who has worked with a number of U.S. city governments to build systems that make open data available to the public. Recently he has also been focusing on access to and preservation of scientific research outputs through his work on the Dat Project.
-
+
-
Mathias Buus
+
Karissa McKelvey
- Programmer based in Copenhagen, Denmark. Co-creator of node-modules.com and co-founder of ge.tt. open mouth, open source. + Former social science academic experienced in building interactive data collaboration tools. Formerly with Google and other data analytics companies, she is an accomplished speaker and software developer and facilitates speaking and training engagements.
-
+
-
Karissa McKelvey
+
Mathias Buus
- Programmer and data scientist based in Oakland, CA. Former academic experienced in building interactive data visualization and collaboration tools. + Works on systems for sharing large datasets over the internet. He has worked in the software industry at file sharing and financial companies, and is active in the web software and data sharing communities hosting hands-on workshops.
@@ -63,7 +64,7 @@
Julian Gruber
- Programmer traveling the world. Contributor to projects like Node.js and LevelDB. Has a strong drive to rid humanity of redundant work and empower everyone to think big. + Contributor to projects like Node.js and LevelDB. He is skilled in creating web and desktop applications and interfaces using tools like the Electron framework, and has consulted on a variety of data analysis and visualization products.
@@ -73,7 +74,7 @@
Lauren Garcia
- Code monkey based in San Francisco. Using the internet to level the playing field for others. Creator of LevelNews.org. Open web enthusiast. + Creator of LevelNews.org and an open web enthusiast; interested in using the internet to level the playing field for others. She has worked for a number of large software companies and non-profit initiatives.
@@ -83,7 +84,7 @@
Chia-liang Kao
- Developer and civic hacker based in Taipei, Taiwan. Co-founder of g0v.tw. + Chia-liang is active in the open government community and organizes community and government civic tech events. He brings lots of experience building data backed web applications to the team and works on various use cases sharing data in government and science.
@@ -93,7 +94,7 @@
Joe Hand
- Programmer and open data enthusiast based in Portland, OR. Joe previously built tools for communities in informal settlements worldwide to collect data. + Built tools for the Santa Fe Institute Cities and Urbanization initiative collecting world wide data about informal settlements and slums. He is now focused on scientific reproducibility and works to understand the needs of academic researchers who wish to publish their data more easily on the web. Joe attends scientific conferences and facilitates workshops and trainings.
@@ -103,7 +104,7 @@
Kristina Schneider
- Designer based in Berlin, Germany. Kriesse organizes community events like CSSconf EU, CSSclasses and upfront.ug. + Organizes events for the design community and has consulted previously for a variety of software companies in Germany and the U.S. She is skilled in improving the user experience of software and making things easy to use and well designed.
@@ -115,115 +116,41 @@ --> -
Advisors
+
Board
-
-
-
-
Jeremy Freeman
-
Group Leader, Jenelia Research Campus. -
-
-
-
-
-
-
-
Waldo Jaquith
-
Director of U.S. Open Data and a Shuttleworth Foundation Fellow. -
-
-
-
-
-
-
-
Richard Smith-Unna
-
A biologist, hacker, and PhD student in Plant Sciences in the Hibberd Lab at the University of Cambridge. A Mozilla Fellow for Science for 2015-16. -
-
-
-
-
+
-
Kaitlin Thaney
-
- Director, Mozilla Science Lab (@MozillaScience). Using data for good at @datakindUK, frequent flyer, and other general geekery. +
Keith Chreston
+
Secretary-Treasurer
+
Over 30 years experience as a senior financial executive and consultant with several businesses and non-profit organizations. He is a CPA (inactive) and former auditor with Ernst & Young.
-
- -
Alumni
-
-
-
-
-
-
Melanie Cebula
-
- Computer Science major at UC Berkeley, software engineer, Hackers@Berkeley officer, open source contributor, makeup artist, swing dancer, huge foodie, feminist, and classically trained musician! -
-
-
-
-
-
-
-
Portia Burton
-
- Programmer based in Portland, OR. Founder of PLB Analytics, and author of O'Reilly's upcoming 'Data Science in Python' video. Worked on Dat CLI tools. -
-
-
-
-
-
-
-
Bruno Vieira
-
- Bioinformatics PhD student at Queen Mary University of London and Node.JS Web Developer. Working on bionode.io and yeban/afra. -
-
-
-
-
-
-
-
Yuhong Wang
-
- Programmer in the bay area. Worked on Dat special use cases! -
-
-
-
-
+
-
Juan Batiz-Benet
-
- Juan is a computer scientist, engineer, and entrepreneur. He is obsessed with knowledge and studied Computer Science at Stanford University +
Jeremy Freeman
+
Director
+
Neuroscientist using computation to understand the brain and group leader at HHMI Janelia Research Campus. He is active in developing data sharing and analysis tools.
-
+
-
Finn Pauls
-
- Computer Science student at Free University Berlin, Open Source developer, Organizer of NodeSchool Berlin, Contributor to the NDJSON spec. +
Waldo Jaquith
+
Director
+
Director of U.S. Open Data and a Shuttleworth Foundation Fellow.
-
- -
+
-
-
-
-
-
-
Try Dat
-
- You can try Dat on the command line: -
-
-
-
-
-
- 1 -
- Install Dat: -
npm install -g dat
-
-
-
- 2 -
- Share a directory by typing: -
dat path/to/directory
-
-
-
- 3 -
- And that’s it! Your data is now published. You can copy and paste the dat-link and share it. -
-
-
+
Supporting public technology infrastructure through software development, education and outreach.
@@ -61,56 +17,26 @@

Making Data Accessible

-
Distributed Sync
+
Open Science
- Dat shares versioned data through a decentralized network, getting faster as more users use it. + We promote the sharing of data, code and research environments to enable reproducibility and archiving of experiments.
-
Intelligent Storage
+
Open Government
- Dat deduplicates data between versions, reducing bandwidth costs and improving speed. + We want to help unlock the potential of open data programs by making the data easier to access, fork and contribute to.
-
Use it anywhere
-
It works on the web, there’s a command-line tool, a javascript client library, and a desktop application.
-
-
-
- -
-
- -
-
-
-
Recent Talks
-
Get up-to-date with Dat. - -
-
-
-
-
- -

Designing Dat 1.0 for ROpenSci Community Call

-
Dec 2015
-
-
-
-
- -

Dat Demo at the Decentralized Web Summit

-
June 2016
+
Open Journalism
+
We want to empower journalists by letting them more effectively use data to drive their reporting and inform the public.
@@ -124,9 +50,9 @@

Dat Demo at the Decentralized Web Summit

Sponsors and Supporters
- - - + + +
diff --git a/templates/team.html b/templates/team.html index b421964..4617cda 100644 --- a/templates/team.html +++ b/templates/team.html @@ -1,34 +1,35 @@
-
Development Team
+
Team
-
+
Max Ogden
+
Director/Board President
- Programmer based in Portland, OR. Max works on or has worked on things like CSVConf, Code for America, JavaScript for Cats, and Voxel.js. + Former Code for America fellow who has worked with a number of U.S. city governments to build systems that make open data available to the public. Recently he has also been focusing on access to and preservation of scientific research outputs through his work on the Dat Project.
-
+
-
Mathias Buus
+
Karissa McKelvey
- Programmer based in Copenhagen, Denmark. Co-creator of node-modules.com and co-founder of ge.tt. open mouth, open source. + Former social science academic experienced in building interactive data collaboration tools. Formerly with Google and other data analytics companies, she is an accomplished speaker and software developer and facilitates speaking and training engagements.
-
+
-
Karissa McKelvey
+
Mathias Buus
- Programmer and data scientist based in Oakland, CA. Former academic experienced in building interactive data visualization and collaboration tools. + Works on systems for sharing large datasets over the internet. He has worked in the software industry at file sharing and financial companies, and is active in the web software and data sharing communities hosting hands-on workshops.
@@ -38,7 +39,7 @@
Julian Gruber
- Programmer traveling the world. Contributor to projects like Node.js and LevelDB. Has a strong drive to rid humanity of redundant work and empower everyone to think big. + Contributor to projects like Node.js and LevelDB. He is skilled in creating web and desktop applications and interfaces using tools like the Electron framework, and has consulted on a variety of data analysis and visualization products.
@@ -48,7 +49,7 @@
Lauren Garcia
- Code monkey based in San Francisco. Using the internet to level the playing field for others. Creator of LevelNews.org. Open web enthusiast. + Creator of LevelNews.org and an open web enthusiast; interested in using the internet to level the playing field for others. She has worked for a number of large software companies and non-profit initiatives.
@@ -58,7 +59,7 @@
Chia-liang Kao
- Developer and civic hacker based in Taipei, Taiwan. Co-founder of g0v.tw. + Chia-liang is active in the open government community and organizes community and government civic tech events. He brings lots of experience building data backed web applications to the team and works on various use cases sharing data in government and science.
@@ -68,7 +69,7 @@
Joe Hand
- Programmer and open data enthusiast based in Portland, OR. Joe previously built tools for communities in informal settlements worldwide to collect data. + Built tools for the Santa Fe Institute Cities and Urbanization initiative collecting world wide data about informal settlements and slums. He is now focused on scientific reproducibility and works to understand the needs of academic researchers who wish to publish their data more easily on the web. Joe attends scientific conferences and facilitates workshops and trainings.
@@ -78,7 +79,7 @@
Kristina Schneider
- Designer based in Berlin, Germany. Kriesse organizes community events like CSSconf EU, CSSclasses and upfront.ug. + Organizes events for the design community and has consulted previously for a variety of software companies in Germany and the U.S. She is skilled in improving the user experience of software and making things easy to use and well designed.
@@ -90,115 +91,41 @@ --> -
Advisors
+
Board
-
-
-
-
Jeremy Freeman
-
Group Leader, Jenelia Research Campus. -
-
-
-
-
+
-
Waldo Jaquith
-
Director of U.S. Open Data and a Shuttleworth Foundation Fellow. +
Keith Chreston
+
Secretary-Treasurer
+
Over 30 years experience as a senior financial executive and consultant with several businesses and non-profit organizations. He is a CPA (inactive) and former auditor with Ernst & Young.
-
-
-
-
Richard Smith-Unna
-
A biologist, hacker, and PhD student in Plant Sciences in the Hibberd Lab at the University of Cambridge. A Mozilla Fellow for Science for 2015-16. -
-
-
-
-
-
-
-
Kaitlin Thaney
-
- Director, Mozilla Science Lab (@MozillaScience). Using data for good at @datakindUK, frequent flyer, and other general geekery. -
-
-
-
- -
Alumni
-
-
-
-
-
-
-
Melanie Cebula
-
- Computer Science major at UC Berkeley, software engineer, Hackers@Berkeley officer, open source contributor, makeup artist, swing dancer, huge foodie, feminist, and classically trained musician! -
-
-
-
-
-
-
-
Portia Burton
-
- Programmer based in Portland, OR. Founder of PLB Analytics, and author of O'Reilly's upcoming 'Data Science in Python' video. Worked on Dat CLI tools. -
-
-
-
-
-
-
-
Bruno Vieira
-
- Bioinformatics PhD student at Queen Mary University of London and Node.JS Web Developer. Working on bionode.io and yeban/afra. -
-
-
-
-
-
-
-
Yuhong Wang
-
- Programmer in the bay area. Worked on Dat special use cases! -
-
-
-
-
+
-
Juan Batiz-Benet
-
- Juan is a computer scientist, engineer, and entrepreneur. He is obsessed with knowledge and studied Computer Science at Stanford University +
Jeremy Freeman
+
Director
+
Neuroscientist using computation to understand the brain and group leader at HHMI Janelia Research Campus. He is active in developing data sharing and analysis tools.
-
+
-
Finn Pauls
-
- Computer Science student at Free University Berlin, Open Source developer, Organizer of NodeSchool Berlin, Contributor to the NDJSON spec. +
Waldo Jaquith
+
Director
+
Director of U.S. Open Data and a Shuttleworth Foundation Fellow.
-
-