Add Dev Container Configuration Files (#7)
This commit is contained in:
parent
4f7ab0ac1b
commit
931b138bb1
68
.devcontainer/Julia.Dockerfile
Normal file
68
.devcontainer/Julia.Dockerfile
Normal file
@ -0,0 +1,68 @@
|
|||||||
|
ARG BUILD_ON_IMAGE=glcr.b-data.ch/julia/base
|
||||||
|
ARG JULIA_VERSION=latest
|
||||||
|
|
||||||
|
FROM ${BUILD_ON_IMAGE}:${JULIA_VERSION} as files
|
||||||
|
|
||||||
|
ARG DEBIAN_FRONTEND=noninteractive
|
||||||
|
|
||||||
|
SHELL ["/bin/bash", "-o", "pipefail", "-c"]
|
||||||
|
|
||||||
|
RUN mkdir /files
|
||||||
|
|
||||||
|
COPY julia-base/conf/user /files
|
||||||
|
COPY julia-base/scripts /files
|
||||||
|
|
||||||
|
## Ensure file modes are correct when using CI
|
||||||
|
## Otherwise set to 777 in the target image
|
||||||
|
RUN find /files -type d -exec chmod 755 {} \; \
|
||||||
|
&& find /files -type f -exec chmod 644 {} \; \
|
||||||
|
&& find /files/usr/local/bin -type f -exec chmod 755 {} \;
|
||||||
|
|
||||||
|
FROM ${BUILD_ON_IMAGE}:${JULIA_VERSION}
|
||||||
|
|
||||||
|
ARG DEBIAN_FRONTEND=noninteractive
|
||||||
|
|
||||||
|
## Update environment
|
||||||
|
ARG USE_ZSH_FOR_ROOT
|
||||||
|
ARG SET_LANG
|
||||||
|
ARG SET_TZ
|
||||||
|
|
||||||
|
ENV LANG=${SET_LANG:-$LANG} \
|
||||||
|
TZ=${SET_TZ:-$TZ} \
|
||||||
|
PARENT_IMAGE_BUILD_DATE=${BUILD_DATE}
|
||||||
|
|
||||||
|
SHELL ["/bin/bash", "-o", "pipefail", "-c"]
|
||||||
|
|
||||||
|
## Change root's shell to ZSH
|
||||||
|
RUN if [ ! -z "$USE_ZSH_FOR_ROOT" ]; then \
|
||||||
|
chsh -s /bin/zsh; \
|
||||||
|
fi \
|
||||||
|
## Update timezone if needed
|
||||||
|
&& if [ "$TZ" != "Etc/UTC" ]; then \
|
||||||
|
echo "Setting TZ to $TZ"; \
|
||||||
|
ln -snf /usr/share/zoneinfo/$TZ /etc/localtime \
|
||||||
|
&& echo $TZ > /etc/timezone; \
|
||||||
|
fi \
|
||||||
|
## Add/Update locale if needed
|
||||||
|
&& if [ "$LANG" != "en_US.UTF-8" ]; then \
|
||||||
|
sed -i "s/# $LANG/$LANG/g" /etc/locale.gen; \
|
||||||
|
locale-gen; \
|
||||||
|
echo "Setting LANG to $LANG"; \
|
||||||
|
update-locale --reset LANG=$LANG; \
|
||||||
|
fi \
|
||||||
|
## Allow updating pre-installed Julia packages
|
||||||
|
## Make sure $JULIA_PATH/local/share/julia/registries/* is deleted
|
||||||
|
&& rm -rf ${JULIA_PATH}/local/share/julia/registries/*
|
||||||
|
|
||||||
|
## Pip: Install to the Python user install directory (1) or not (0)
|
||||||
|
ARG PIP_USER=1
|
||||||
|
|
||||||
|
ENV PIP_USER=${PIP_USER}
|
||||||
|
|
||||||
|
## Copy files as late as possible to avoid cache busting
|
||||||
|
COPY --from=files /files /
|
||||||
|
|
||||||
|
## Reset environment variable BUILD_DATE
|
||||||
|
ARG BUILD_START
|
||||||
|
|
||||||
|
ENV BUILD_DATE=${BUILD_START}
|
70
.devcontainer/devcontainer.json
Normal file
70
.devcontainer/devcontainer.json
Normal file
@ -0,0 +1,70 @@
|
|||||||
|
{
|
||||||
|
"name": "Julia base",
|
||||||
|
"build": {
|
||||||
|
"dockerfile": "./Julia.Dockerfile",
|
||||||
|
"context": ".",
|
||||||
|
"args": {
|
||||||
|
"BUILD_ON_IMAGE": "glcr.b-data.ch/julia/base",
|
||||||
|
"JULIA_VERSION": "1.7.3",
|
||||||
|
"USE_ZSH_FOR_ROOT": "unset-to-use-bash",
|
||||||
|
"SET_LANG": "en_US.UTF-8",
|
||||||
|
"SET_TZ": "Etc/UTC"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
"postStartCommand": {
|
||||||
|
"julia": "postStartCommand.sh"
|
||||||
|
},
|
||||||
|
|
||||||
|
"features": {
|
||||||
|
"ghcr.io/devcontainers/features/common-utils:2": {
|
||||||
|
"configureZshAsDefaultShell": true,
|
||||||
|
"upgradePackages": false,
|
||||||
|
"username": "vscode",
|
||||||
|
"userUid": "automatic",
|
||||||
|
"userGid": "automatic"
|
||||||
|
},
|
||||||
|
"ghcr.io/devcontainers/features/docker-outside-of-docker:1": {
|
||||||
|
"moby": false
|
||||||
|
},
|
||||||
|
// A comma separated list of packages to install
|
||||||
|
"ghcr.io/rocker-org/devcontainer-features/apt-packages:1": {
|
||||||
|
"packages": ""
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
"customizations": {
|
||||||
|
"vscode": {
|
||||||
|
"extensions": [
|
||||||
|
"editorconfig.editorconfig",
|
||||||
|
"ms-python.python",
|
||||||
|
"mutantdino.resourcemonitor",
|
||||||
|
"julialang.language-julia",
|
||||||
|
"dbaeumer.vscode-eslint",
|
||||||
|
"esbenp.prettier-vscode",
|
||||||
|
"ms-python.black-formatter",
|
||||||
|
"ms-azuretools.vscode-docker"
|
||||||
|
],
|
||||||
|
"settings": {
|
||||||
|
"julia.enableCrashReporter": false,
|
||||||
|
"julia.enableTelemetry": false,
|
||||||
|
"resmon.show.battery": false,
|
||||||
|
"resmon.show.cpufreq": false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
// Set 'remoteUser' to 'root' to connect as root instead.
|
||||||
|
"remoteUser": "vscode",
|
||||||
|
|
||||||
|
// "remoteUser": "root",
|
||||||
|
|
||||||
|
// By default,
|
||||||
|
// - Julia starts up with a single thread of execution.
|
||||||
|
// - BLAS/OpenMP will use as many threads as possible.
|
||||||
|
// Set the following environment variables to control the exact number to use.
|
||||||
|
"remoteEnv": {
|
||||||
|
// "JULIA_NUM_THREADS": "1",
|
||||||
|
// "OMP_NUM_THREADS": "1"
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,45 @@
|
|||||||
|
println("Executing user-specific startup file (", @__FILE__, ")...")
|
||||||
|
|
||||||
|
# https://github.com/julia-vscode/julia-vscode/issues/3304
|
||||||
|
project = (Base.JLOptions().project != C_NULL ?
|
||||||
|
unsafe_string(Base.JLOptions().project) :
|
||||||
|
get(ENV, "JULIA_PROJECT", nothing))
|
||||||
|
if !isnothing(project)
|
||||||
|
Pkg.activate(; io=devnull)
|
||||||
|
end
|
||||||
|
|
||||||
|
try
|
||||||
|
using Revise
|
||||||
|
println("Revise started")
|
||||||
|
catch e
|
||||||
|
@warn "Error initializing Revise" exception=(e, catch_backtrace())
|
||||||
|
end
|
||||||
|
|
||||||
|
if !isnothing(project) &&
|
||||||
|
# https://github.com/julia-vscode/julia-vscode/issues/3304
|
||||||
|
!startswith(Base.load_path_expand(Base.LOAD_PATH[end]), project)
|
||||||
|
|
||||||
|
if startswith(project, "@")
|
||||||
|
if startswith(project, "@.")
|
||||||
|
if isnothing(Base.current_project())
|
||||||
|
Pkg.activate(joinpath("$(ENV["HOME"])", ".julia",
|
||||||
|
"environments", "v$(VERSION.major).$(VERSION.minor)"))
|
||||||
|
else
|
||||||
|
Pkg.activate(Base.current_project(); io=devnull)
|
||||||
|
end
|
||||||
|
else
|
||||||
|
Pkg.activate(Base.load_path_expand(project); io=devnull)
|
||||||
|
end
|
||||||
|
else
|
||||||
|
Pkg.activate(abspath(expanduser(project)); io=devnull)
|
||||||
|
end
|
||||||
|
else
|
||||||
|
if isfile(joinpath(pwd(), "Project.toml")) &&
|
||||||
|
isfile(joinpath(pwd(), "Manifest.toml"))
|
||||||
|
|
||||||
|
Pkg.activate(pwd())
|
||||||
|
else
|
||||||
|
Pkg.activate(joinpath("$(ENV["HOME"])", ".julia", "environments",
|
||||||
|
"v$(VERSION.major).$(VERSION.minor)"))
|
||||||
|
end
|
||||||
|
end
|
@ -0,0 +1,3 @@
|
|||||||
|
if !in(MIME("application/pdf"), IJulia.ijulia_mime_types)
|
||||||
|
IJulia.register_mime(MIME("application/pdf"))
|
||||||
|
end
|
17
.devcontainer/julia-base/scripts/usr/local/bin/postStartCommand.sh
Executable file
17
.devcontainer/julia-base/scripts/usr/local/bin/postStartCommand.sh
Executable file
@ -0,0 +1,17 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
# Copyright (c) 2023 b-data GmbH.
|
||||||
|
# Distributed under the terms of the MIT License.
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
mkdir -p "${HOME}/.julia/config"
|
||||||
|
|
||||||
|
# Copy user-specific startup files if home directory is bind mounted
|
||||||
|
if [ ! -f "${HOME}/.julia/config/startup_ijulia.jl" ]; then
|
||||||
|
cp -a /etc/skel/.julia/config/startup_ijulia.jl \
|
||||||
|
"${HOME}/.julia/config"
|
||||||
|
fi
|
||||||
|
if [ ! -f "${HOME}/.julia/config/startup.jl" ]; then
|
||||||
|
cp -a /etc/skel/.julia/config/startup.jl \
|
||||||
|
"${HOME}/.julia/config"
|
||||||
|
fi
|
72
.devcontainer/julia-pubtools/devcontainer.json
Normal file
72
.devcontainer/julia-pubtools/devcontainer.json
Normal file
@ -0,0 +1,72 @@
|
|||||||
|
{
|
||||||
|
"name": "Julia pubtools",
|
||||||
|
"build": {
|
||||||
|
"dockerfile": "../Julia.Dockerfile",
|
||||||
|
"context": "..",
|
||||||
|
"args": {
|
||||||
|
"BUILD_ON_IMAGE": "glcr.b-data.ch/julia/pubtools",
|
||||||
|
"JULIA_VERSION": "1.7.3",
|
||||||
|
"USE_ZSH_FOR_ROOT": "unset-to-use-bash",
|
||||||
|
"SET_LANG": "en_US.UTF-8",
|
||||||
|
"SET_TZ": "Etc/UTC"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
"postStartCommand": {
|
||||||
|
"julia": "postStartCommand.sh"
|
||||||
|
},
|
||||||
|
|
||||||
|
"features": {
|
||||||
|
"ghcr.io/devcontainers/features/common-utils:2": {
|
||||||
|
"configureZshAsDefaultShell": true,
|
||||||
|
"upgradePackages": false,
|
||||||
|
"username": "vscode",
|
||||||
|
"userUid": "automatic",
|
||||||
|
"userGid": "automatic"
|
||||||
|
},
|
||||||
|
"ghcr.io/devcontainers/features/docker-outside-of-docker:1": {
|
||||||
|
"moby": false
|
||||||
|
},
|
||||||
|
// A comma separated list of packages to install
|
||||||
|
"ghcr.io/rocker-org/devcontainer-features/apt-packages:1": {
|
||||||
|
"packages": ""
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
"customizations": {
|
||||||
|
"vscode": {
|
||||||
|
"extensions": [
|
||||||
|
"editorconfig.editorconfig",
|
||||||
|
"ms-python.python",
|
||||||
|
"mutantdino.resourcemonitor",
|
||||||
|
"julialang.language-julia",
|
||||||
|
"James-Yu.latex-workshop",
|
||||||
|
"quarto.quarto",
|
||||||
|
"dbaeumer.vscode-eslint",
|
||||||
|
"esbenp.prettier-vscode",
|
||||||
|
"ms-python.black-formatter",
|
||||||
|
"ms-azuretools.vscode-docker"
|
||||||
|
],
|
||||||
|
"settings": {
|
||||||
|
"julia.enableCrashReporter": false,
|
||||||
|
"julia.enableTelemetry": false,
|
||||||
|
"resmon.show.battery": false,
|
||||||
|
"resmon.show.cpufreq": false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
// Set 'remoteUser' to 'root' to connect as root instead.
|
||||||
|
"remoteUser": "vscode",
|
||||||
|
|
||||||
|
// "remoteUser": "root",
|
||||||
|
|
||||||
|
// By default,
|
||||||
|
// - Julia starts up with a single thread of execution.
|
||||||
|
// - BLAS/OpenMP will use as many threads as possible.
|
||||||
|
// Set the following environment variables to control the exact number to use.
|
||||||
|
"remoteEnv": {
|
||||||
|
// "JULIA_NUM_THREADS": "1",
|
||||||
|
// "OMP_NUM_THREADS": "1"
|
||||||
|
}
|
||||||
|
}
|
12
README.md
12
README.md
@ -10,6 +10,7 @@ book that has been written by Bogumił Kamiński and has been published by [Mann
|
|||||||
* [Setting up your environment](#setting-up-your-environment)
|
* [Setting up your environment](#setting-up-your-environment)
|
||||||
* [General instructions](#general-instructions)
|
* [General instructions](#general-instructions)
|
||||||
* [Note for Linux users](#note-for-linux-users)
|
* [Note for Linux users](#note-for-linux-users)
|
||||||
|
* [Dev Containers](#dev-containers)
|
||||||
* [Organization of the code](#organization-of-the-code)
|
* [Organization of the code](#organization-of-the-code)
|
||||||
* [Running the example codes](#running-the-example-codes)
|
* [Running the example codes](#running-the-example-codes)
|
||||||
* [Accompanying materials](#accompanying-materials)
|
* [Accompanying materials](#accompanying-materials)
|
||||||
@ -91,6 +92,17 @@ export PATH="$PATH:/opt/julia-1.7.2/bin"
|
|||||||
|
|
||||||
line (assuming you have downloaded Julia 1.7.2 and extracted it to `/opt` folder).
|
line (assuming you have downloaded Julia 1.7.2 and extracted it to `/opt` folder).
|
||||||
|
|
||||||
|
### Dev Containers
|
||||||
|
|
||||||
|
Folder `/.devcontainer` contains configuration files for
|
||||||
|
[Dev Containers](https://containers.dev).
|
||||||
|
|
||||||
|
* For use with Github Codespaces, please follow the instruction at
|
||||||
|
[Creating a codespace for a repository](https://docs.github.com/en/codespaces/developing-in-codespaces/creating-a-codespace-for-a-repository#creating-a-codespace-for-a-repository).
|
||||||
|
* For local/'remote host' usage with Visual Studio Code, please follow the
|
||||||
|
instructions at
|
||||||
|
[Developing inside a Container](https://code.visualstudio.com/docs/devcontainers/containers).
|
||||||
|
|
||||||
## Organization of the code
|
## Organization of the code
|
||||||
|
|
||||||
The codes for each chapter are stored in files named *chXX.jl*, where *XX* is
|
The codes for each chapter are stored in files named *chXX.jl*, where *XX* is
|
||||||
|
@ -28,6 +28,17 @@
|
|||||||
"### Comparison of execution speed of Julia, Java, Python, and C"
|
"### Comparison of execution speed of Julia, Java, Python, and C"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "code",
|
||||||
|
"execution_count": null,
|
||||||
|
"id": "99c45eb6",
|
||||||
|
"metadata": {},
|
||||||
|
"outputs": [],
|
||||||
|
"source": [
|
||||||
|
"using Pkg\n",
|
||||||
|
"Pkg.activate(Base.current_project())"
|
||||||
|
]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
"execution_count": 1,
|
"execution_count": 1,
|
||||||
|
@ -35,6 +35,17 @@
|
|||||||
"## Representing values"
|
"## Representing values"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "code",
|
||||||
|
"execution_count": null,
|
||||||
|
"id": "2338b85b",
|
||||||
|
"metadata": {},
|
||||||
|
"outputs": [],
|
||||||
|
"source": [
|
||||||
|
"using Pkg\n",
|
||||||
|
"Pkg.activate(Base.current_project())"
|
||||||
|
]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
"execution_count": 1,
|
"execution_count": 1,
|
||||||
|
@ -34,6 +34,17 @@
|
|||||||
"### A single function can have multiple methods"
|
"### A single function can have multiple methods"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "code",
|
||||||
|
"execution_count": null,
|
||||||
|
"id": "b1f7359c",
|
||||||
|
"metadata": {},
|
||||||
|
"outputs": [],
|
||||||
|
"source": [
|
||||||
|
"using Pkg\n",
|
||||||
|
"Pkg.activate(Base.current_project())"
|
||||||
|
]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
"execution_count": 1,
|
"execution_count": 1,
|
||||||
|
@ -63,6 +63,17 @@
|
|||||||
"### Getting the data into a matrix"
|
"### Getting the data into a matrix"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "code",
|
||||||
|
"execution_count": null,
|
||||||
|
"id": "5e16f874",
|
||||||
|
"metadata": {},
|
||||||
|
"outputs": [],
|
||||||
|
"source": [
|
||||||
|
"using Pkg\n",
|
||||||
|
"Pkg.activate(Base.current_project())"
|
||||||
|
]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
"execution_count": 1,
|
"execution_count": 1,
|
||||||
|
@ -34,6 +34,17 @@
|
|||||||
"### Syntax and meaning of broadcasting in Julia"
|
"### Syntax and meaning of broadcasting in Julia"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "code",
|
||||||
|
"execution_count": null,
|
||||||
|
"id": "1d9574f4",
|
||||||
|
"metadata": {},
|
||||||
|
"outputs": [],
|
||||||
|
"source": [
|
||||||
|
"using Pkg\n",
|
||||||
|
"Pkg.activate(Base.current_project())"
|
||||||
|
]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
"execution_count": 1,
|
"execution_count": 1,
|
||||||
|
@ -34,6 +34,17 @@
|
|||||||
"### Downloading data from the web"
|
"### Downloading data from the web"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "code",
|
||||||
|
"execution_count": null,
|
||||||
|
"id": "10d11474",
|
||||||
|
"metadata": {},
|
||||||
|
"outputs": [],
|
||||||
|
"source": [
|
||||||
|
"using Pkg\n",
|
||||||
|
"Pkg.activate(Base.current_project())"
|
||||||
|
]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
"execution_count": 1,
|
"execution_count": 1,
|
||||||
|
@ -34,6 +34,17 @@
|
|||||||
"### Standard process of parsing JSON response"
|
"### Standard process of parsing JSON response"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "code",
|
||||||
|
"execution_count": null,
|
||||||
|
"id": "a179627e",
|
||||||
|
"metadata": {},
|
||||||
|
"outputs": [],
|
||||||
|
"source": [
|
||||||
|
"using Pkg\n",
|
||||||
|
"Pkg.activate(Base.current_project())"
|
||||||
|
]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
"execution_count": 1,
|
"execution_count": 1,
|
||||||
|
@ -26,6 +26,17 @@
|
|||||||
"## Fetching, unpacking, and inspecting the Lichess data"
|
"## Fetching, unpacking, and inspecting the Lichess data"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "code",
|
||||||
|
"execution_count": null,
|
||||||
|
"id": "d2ade007",
|
||||||
|
"metadata": {},
|
||||||
|
"outputs": [],
|
||||||
|
"source": [
|
||||||
|
"using Pkg\n",
|
||||||
|
"Pkg.activate(Base.current_project())"
|
||||||
|
]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
"execution_count": 1,
|
"execution_count": 1,
|
||||||
|
@ -42,6 +42,17 @@
|
|||||||
"## Advanced data frame indexing"
|
"## Advanced data frame indexing"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "code",
|
||||||
|
"execution_count": null,
|
||||||
|
"id": "65b9f2cc",
|
||||||
|
"metadata": {},
|
||||||
|
"outputs": [],
|
||||||
|
"source": [
|
||||||
|
"using Pkg\n",
|
||||||
|
"Pkg.activate(Base.current_project())"
|
||||||
|
]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
"execution_count": 1,
|
"execution_count": 1,
|
||||||
|
@ -34,6 +34,17 @@
|
|||||||
"## Review of most important ways of creating a data frame"
|
"## Review of most important ways of creating a data frame"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "code",
|
||||||
|
"execution_count": null,
|
||||||
|
"id": "b94d80ed",
|
||||||
|
"metadata": {},
|
||||||
|
"outputs": [],
|
||||||
|
"source": [
|
||||||
|
"using Pkg\n",
|
||||||
|
"Pkg.activate(Base.current_project())"
|
||||||
|
]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
"execution_count": 1,
|
"execution_count": 1,
|
||||||
|
@ -26,6 +26,17 @@
|
|||||||
"## Converting a data frame to other value types"
|
"## Converting a data frame to other value types"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "code",
|
||||||
|
"execution_count": null,
|
||||||
|
"id": "6408a31f",
|
||||||
|
"metadata": {},
|
||||||
|
"outputs": [],
|
||||||
|
"source": [
|
||||||
|
"using Pkg\n",
|
||||||
|
"Pkg.activate(Base.current_project())"
|
||||||
|
]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
"execution_count": 1,
|
"execution_count": 1,
|
||||||
|
@ -34,6 +34,17 @@
|
|||||||
"### Fetching GitHub developer data from the web"
|
"### Fetching GitHub developer data from the web"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "code",
|
||||||
|
"execution_count": null,
|
||||||
|
"id": "b3a42231",
|
||||||
|
"metadata": {},
|
||||||
|
"outputs": [],
|
||||||
|
"source": [
|
||||||
|
"using Pkg\n",
|
||||||
|
"Pkg.activate(Base.current_project())"
|
||||||
|
]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
"execution_count": 1,
|
"execution_count": 1,
|
||||||
|
@ -34,6 +34,17 @@
|
|||||||
"### Loading all required packages"
|
"### Loading all required packages"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "code",
|
||||||
|
"execution_count": null,
|
||||||
|
"id": "f8c7f637",
|
||||||
|
"metadata": {},
|
||||||
|
"outputs": [],
|
||||||
|
"source": [
|
||||||
|
"using Pkg\n",
|
||||||
|
"Pkg.activate(Base.current_project())"
|
||||||
|
]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
"execution_count": 1,
|
"execution_count": 1,
|
||||||
|
@ -34,6 +34,17 @@
|
|||||||
"### Calculation of asian option payoff"
|
"### Calculation of asian option payoff"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "code",
|
||||||
|
"execution_count": null,
|
||||||
|
"id": "da189a22",
|
||||||
|
"metadata": {},
|
||||||
|
"outputs": [],
|
||||||
|
"source": [
|
||||||
|
"using Pkg\n",
|
||||||
|
"Pkg.activate(Base.current_project())"
|
||||||
|
]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
"execution_count": 1,
|
"execution_count": 1,
|
||||||
|
Loading…
Reference in New Issue
Block a user