Skip to content

Commit c435c26

Browse files
committed
Some more Docker updates
1 parent c1aa177 commit c435c26

File tree

3 files changed

+97
-1
lines changed

3 files changed

+97
-1
lines changed

content/architecture/modelum.md

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
title=Modelum
2+
tags=architecture, model-driven, tool, place
3+
summary=The Modelum Group has been working on Model-Driven Software Engineering (MDE) since 2005.
4+
~~~~~~
5+
6+
[Website](https://modelum.github.io/) | [Publications](https://modelum.github.io/publications.html)
7+
8+
In the first ten years, our work focused on MDE foundations and model-driven software modernization, some of the main results of this period are listed [here](https://dblp.org/pid/78/4516.html). Since 2014 our main research line is model-driven NoSQL data engineering. We tried to take advantage of our experience in MDE to build tools that support NoSQL developers in tasks of schema visualization, code generation, reverse engineering, and design, among others.
9+
10+
## Tools
11+
12+
* [U-Schema](https://github.com/modelum/uschema): U-Schema is a unified logical model that integrates the concepts and rules of both the relational model and the four most common NoSQL data models: columnar, document, graph, and key–value. It includes the basic concepts traditionally used to create logical schemas, which are part of well-known formalisms such as Entity-Relationship (ER) and UML Class Models: entity type, simple and multivalued attributes, key attribute, and three kinds of relationships between entity types: aggregation, reference, and inheritance. Also, U-Schema incorporates some additional concepts, such as relationship types, and structural variations of entity and relationship types.
13+
* [USchema-Engineering](https://github.com/modelum/uschema-engineering):
14+
15+
* Athena: Athena (Abstract Schema Definition Language) is a textual DSL aimed to define abstract schemas in a platform-independent way. For doing so Athena reunites concepts of all NoSQL paradigms, based on the U-Schema metamodel. Athena has been designed using Xtext and the Eclipse Modeling Framework. Examples of Athena schemas may be found on the models folder.
16+
* Orion: Orion (Operations defined over Athena Schemas) is a textual DSL aimed to specify operations to be executed over an Athena schema in order to update (evolve) it along with the associated data. Orion has been designed using Xtext and the Eclipse Modeling Framework. It is distributed with an extension to handle code update by generating CodeQL queries.
17+
* Deimos: Deimos (Data Generation and Mapping Operations) is a declarative textual language aimed to generate synthetic data.
18+
* Eirene: Eirene (Entity Inheritance Discoverer in Document Stores) is a tool aimed to discover entity inheritance relationships in which a parent entity type is specialized in one or more child entity types. This tool is based on the U-Schema metamodel and its algorithm identifies existing subtypes based on feature dependencies.
19+
* SkiQL: SkiQL is a tool that allows developers to query U-Schema models in a platform-independent way. SkiQL provides two constructs: schema-query and relationship-query. The former allows to obtain information of entity or relationship types, and the latter that of the aggregations or references (relations among types).
20+
21+
* [U-Schema Inference Projects](https://github.com/modelum/uschema-inference): These projects allow users to extract the schema of a running database and create a corresponding U-Schema model from it. If the database holds an explicit schema definition then this schema is traversed to create the model. On the other hand, if the schema is only implicit in the data then the process traverses such data, inferring the schema by processing each entry stored. Currently, the following databases are supported: MySQL, MongoDB, Cassandra, Neo4j, and Redis.
22+
23+
## Publications
24+
25+
* Carlos Javier Fernández Candel, Jesús García Molina, Diego Sevilla Ruiz, [A Unified Data Metamodel for Relational and NoSQL databases: Schema Extraction and Query](http://hdl.handle.net/10201/122133). PhD Thesis. Faculty of Informatics, University of Murcia, Murcia, Spain.
26+
* [A unified metamodel for NoSQL and relational databases](https://www.sciencedirect.com/science/article/pii/S0306437921001149): "The Database field is undergoing significant changes. Although relational systems are still predominant, the interest in NoSQL systems is continuously increasing. In this scenario, polyglot persistence is envisioned as the database architecture to be prevalent in the future. Therefore, database tools and systems are evolving to support several data models.
27+
"Multi-model database tools normally use a generic or unified metamodel to represent schemas of the data model that they support. Such metamodels facilitate developing database utilities, as they can be built on a common representation. Also, the number of mappings required to migrate databases from a data model to another is reduced, and integrability is favored.
28+
"In this paper, we present the U-Schema unified metamodel able to represent logical schemas for the four most popular NoSQL paradigms (columnar, document, key–value, and graph) as well as relational schemas. We will formally define the mappings between U-Schema and the data model defined for each database paradigm. How these mappings have been implemented and validated will be discussed, and some applications of U-Schema will be shown.
29+
"To achieve flexibility to respond to data changes, most of NoSQL systems are “schema-on-read,” and the declaration of schemas is not required. Such an absence of schema declaration makes structural variability possible, i.e., stored data of the same entity type can have different structure. Moreover, data relationships supported by each data model are different; For example, document stores have aggregate objects but not relationship types, whereas graph stores offer the opposite. Through the paper, we will show how all these issues have been tackled in our approach.
30+
"As far as we know, no proposal exists in the literature of a unified metamodel for relational and the NoSQL paradigms which describes how each individual data model is integrated and mapped. Our metamodel goes beyond the existing proposals by distinguishing entity types and relationship types, representing aggregation and reference relationships, and including the notion of structural variability. Our contributions also include developing schema extraction strategies for schemaless systems of each NoSQL data model, and tackling performance and scalability in the implementation for each store."
31+
32+
* [SkiQL: A Unified Schema Query Language](https://arxiv.org/pdf/2204.06670): "We present the SkiQL language designed on U-Schema to achieve a platform-independent schema query service. SkiQL provides two constructs: schema-query and relationship-query. The former allows to obtain information of entity or relationship types, and the latter that of the aggregations or references (relations among types). We will show how SkiQL was evaluated by calculating well-known metrics for languages as well as using a survey with developers with experience in NoSQL."
33+

content/containers/docker/development.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,12 @@ tags=container, development
33
summary=Links and notes
44
~~~~~~
55
6+
Dev container Dockerfile
7+
8+
```
9+
10+
```
11+
612
## Reading
713
814
* [Docker-first local development](https://brandon-hoffman.is-a.dev/posts/docker-first-local-development/)

content/containers/docker/index.md

Lines changed: 58 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,66 @@ summary=Virtualization tool for containerizing code, configuration, and sometime
55
66
[Website](https://docker.com/) | [Docker Hub](https://hub.docker.com/) | [Getting Started](https://docs.docker.com/get-started/)
77
8+
## Installation
9+
10+
### [Ubuntu](https://docs.docker.com/engine/install/ubuntu/) (incl. Pop!OS)
11+
12+
#### Option 1: Use apt-get
13+
14+
Set up `apt`:
15+
```
16+
# Add Docker's official GPG key:
17+
sudo apt-get update
18+
sudo apt-get install ca-certificates curl
19+
sudo install -m 0755 -d /etc/apt/keyrings
20+
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
21+
sudo chmod a+r /etc/apt/keyrings/docker.asc
22+
23+
# Add the repository to Apt sources:
24+
echo \
25+
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
26+
$(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}") stable" | \
27+
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
28+
sudo apt-get update
29+
```
30+
31+
Run apt install:
32+
```
33+
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
34+
```
35+
36+
#### Option 2: Use the convenience script
37+
38+
```
39+
curl -fsSL https://get.docker.com -o get-docker.sh
40+
sudo sh ./get-docker.sh
41+
```
42+
43+
Use `--dry-run` on the script if there's concerns.
44+
45+
#### Run Docker as non-privileged user
46+
47+
```
48+
sudo sh -eux <<EOF
49+
apt-get install -y uidmap
50+
EOF
51+
```
52+
53+
Then
54+
55+
```
56+
dockerd-rootless-setuptool.sh install
57+
```
58+
59+
#### Test docker
60+
61+
```
62+
docker run hello-world
63+
```
64+
865
## Reading
966
10-
## Articles
67+
### Articles
1168
1269
* [CI/CD for Monorepos: Effectively building, testing, and deploying code with monorepos](https://github.com/semaphoreci/book-monorepo-cicd) - Pablo Tomas Fernandez Zavalia, Marko Anastasov, SemaphoreCI (PDF, EPUB, Kindle)
1370
* [CI/CD with Docker and Kubernetes Book](https://github.com/semaphoreci/book-cicd-docker-kubernetes) - Marko Anastasov, Jérôme Petazzoni, Pablo Tom F. Zavalia, SemaphoreCI (PDF, EPUB, Kindle)

0 commit comments

Comments
 (0)