- Award ID(s):
- 1826064
- PAR ID:
- 10389138
- Date Published:
- Journal Name:
- Journal of the European Ceramic Society
- ISSN:
- 0955-2219
- Format(s):
- Medium: X
- Sponsoring Org:
- National Science Foundation
More Like this
-
Binder is a publicly accessible online service for executing interactive notebooks based on Git repositories. Binder dynamically builds and deploys containers following a recipe stored in the repository, then gives the user a browser-based notebook interface. The Binder group periodically releases a log of container launches from the public Binder service. Archives of launch records are available here. These records do not include identifiable information like IP addresses, but do give the source repo being launched along with some other metadata. The main content of this dataset is in the
binder.sqlite
file. This SQLite database includes launch records from 2018-11-03 to 2021-06-06 in theevents
table, which has the following schema.CREATE TABLE events( version INTEGER, timestamp TEXT, provider TEXT, spec TEXT, origin TEXT, ref TEXT, guessed_ref TEXT ); CREATE INDEX idx_timestamp ON events(timestamp);
version
indicates the version of the record as assigned by Binder. Theorigin
field became available with version 3, and theref
field with version 4. Older records where this information was not recorded will have the corresponding fields set to null.timestamp
is the ISO timestamp of the launchprovider
gives the type of source repo being launched ("GitHub" is by far the most common). The rest of the explanations assume GitHub, other providers may differ.spec
gives the particular branch/release/commit being built. It consists of<github-id>/<repo>/<branch>
.origin
indicates which backend was used. Each has its own storage, compute, etc. so this info might be important for evaluating caching and performance. Note that only recent records include this field. May be null.ref
specifies the git commit that was actually used, rather than the named branch referenced byspec
. Note that this was not recorded from the beginning, so only the more recent entries include it. May be null.- For records where
ref
is not available, we attempted to clone the named reference given byspec
rather than the specific commit (see below). Theguessed_ref
field records the commit found at the time of cloning. If the branch was updated since the container was launched, this will not be the exact version that was used, and instead will refer to whatever was available at the time (early 2021). Depending on the application, this might still be useful information. Selecting only records with version 4 (or non-nullref
) will exclude these guessed commits. May be null.
The Binder launch dataset identifies the source repos that were used, but doesn't give any indication of their contents. We crawled GitHub to get the actual specification files in the repos which were fed into repo2docker when preparing the notebook environments, as well as filesystem metadata of the repos. Some repos were deleted/made private at some point, and were thus skipped. This is indicated by the absence of any row for the given commit (or absence of both
ref
andguessed_ref
in theevents
table). The schema is as follows.CREATE TABLE spec_files ( ref TEXT NOT NULL PRIMARY KEY, ls TEXT, runtime BLOB, apt BLOB, conda BLOB, pip BLOB, pipfile BLOB, julia BLOB, r BLOB, nix BLOB, docker BLOB, setup BLOB, postbuild BLOB, start BLOB );
Here
ref
corresponds toref
and/orguessed_ref
from theevents
table. For each repo, we collected spec files into the following fields (see the repo2docker docs for details on what these are). The records in the database are simply the verbatim file contents, with no parsing or further processing performed.runtime
:runtime.txt
apt
:apt.txt
conda
:environment.yml
pip
:requirements.txt
pipfile
:Pipfile.lock
orPipfile
julia
:Project.toml
orREQUIRE
r
:install.R
nix
:default.nix
docker
:Dockerfile
setup
:setup.py
postbuild
:postBuild
start
:start
The
ls
field gives a metadata listing of the repo contents (excluding the.git
directory). This field is JSON encoded with the following structure based on JSON types:- Object: filesystem directory. Keys are file names within it. Values are the contents, which can be regular files, symlinks, or subdirectories.
- String: symlink. The string value gives the link target.
- Number: regular file. The number value gives the file size in bytes.
CREATE TABLE clean_specs ( ref TEXT NOT NULL PRIMARY KEY, conda_channels TEXT, conda_packages TEXT, pip_packages TEXT, apt_packages TEXT );
The
clean_specs
table provides parsed and validated specifications for some of the specification files (currently Pip, Conda, and APT packages). Each column gives either a JSON encoded list of package requirements, or null. APT packages have been validated using a regex adapted from the repo2docker source. Pip packages have been parsed and normalized using the Requirement class from the pkg_resources package of setuptools. Conda packages have been parsed and normalized using theconda.models.match_spec.MatchSpec
class included with the library form of Conda (distinct from the command line tool). Users might want to use these parsers when working with the package data, as the specifications can become fairly complex.The
missing
table gives the repos that were not accessible, andevent_logs
records which log files have already been added. These tables are used for updating the dataset and should not be of interest to users. -
null (Ed.)Binder jet 3D printing combined with post-deposition sintering is a non-beam additive manufacturing (AM) method for the creation of complex metallic structures. Binder saturation and particle morphology are two important factors affecting the quality of printed parts. Here, we investigated the effects of binder saturation on dimension accuracy, porosity, microstructure and microhardness of nickel-based alloy 625 samples made of differently atomized powders. Argon gas atomized (GA) and water atomized (WA) nickel-based alloy 625 powders were used to binder jet samples for a detailed comparative study. The optimal binder saturation for WA system is 60% to 70%, whereas for GA system the optimal is about 80%. Generally, GA samples achieved better overall quality than WA samples in terms of packing density, dimensional accuracy, sintered density, and microhardness. This difference is attributed mainly to the particle morphology including sphericity and roundness. The critical threshold for visible binder bleeding phenomenon in WA and GA systems is determined to be 120% and 140% binder saturation, respectively. Mechanisms for binder bleeding phenomenon at different saturation levels for WA and GA systems are discussed in detail. A pore evolution model is proposed to better understand the printing and sintering processes.more » « less
-
Binder jetting additive manufacturing (AM) is an innovative form of 3D printing that generates complex and advanced structures of various materials by jetting binder drops onto a powder bed. The drops on the bed cure the powder to form structures in a quick and efficient manner. However, the method suffers several flaws including manufacturing inconsistencies and coarse resolution of structures. These flaws may be explained by complex interactions between the binder drop and the powder during the printing process. Therefore, a better understanding of these interactions will be instrumental in the development of binder jetting for fabricating multipurpose, higher quality functional structures. In this study, these complex interactions are analyzed during the impact and subsequent processes. The impact dynamics of binder drops on a powder surface were examined by using a custom impingement rig under various test conditions (i.e., different impact velocities and binder viscosities). A high-speed imaging system was used to capture the transient details of the drop-powder interactions. This study concludes that an increase in drop impact velocity results in a greater range of particle ejection. A lower drop viscosity results in a higher dry spread of particles while a higher drop viscosity results in a greater number of binder-encapsulated particles. Across all cases, binder drops absorb particle granules at a rate inverse to their viscosity.more » « less