# CloudNative.nz bootstrapping of [CloudNative.Amsterdam](https://cloudnative.amsterdam)
# People
## Saskia Vermeer-Ooms <saskia.vermeerooms@gmail.com>
Secretaris Devoxx4Kids Nederland
## Jay Tihema <jt@ii.coop>
Head of School and Economic Development with New Zealand Maori Organization
## Arun Gupta <arun.gupta@intel.com>
Vice President and General Manager, Open Ecosystems
Register for Open Ecosystem Summit, Feb 28-Mar 2 (goto/oes)
## Ed Vielmetti <ed@equinix.com>
CNCF Community Infrastructure Lab manager for Equinix
Offering us use of Equinix Datacenters in Amsterdam: https://www.equinix.com/data-centers/europe-colocation/netherlands-colocation/amsterdam-data-centers
>these are all in the "AM" metro. Latency should be good. From our looking glass at https://metal.equinix.com/developers/looking-glass/ pick AM6 and then an IP address at your venue, if you know it.
## Hippie Hacker <hh@ii.coop>
Cooperative Coding and Instant Infrastructure Advocate
# Organizations
## Littil.org
Devoxx4Kids LITTIL NL Lutulistate 41 6716 NT EDE
### Goal / Target Audience
From [https://www-littil-org.translate.goog/devoxx4kids/](https://www-littil-org.translate.goog/devoxx4kids/?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en&_x_tr_pto=wapp)
> Goal : The aim of the foundation is to create awareness and to inspire children in a fun way and to introduce them to programming.
> Target Audience : The events that are organized under the banner of Devoxx4kidsNL are aimed at children of upper primary school and lower secondary education (approximately 10-14 years).
> The workshops are mainly held during weekends and/or school holidays and are, in principle, free of charge. Companies provide volunteers who teach the children in a professional manner and guide them through the assignments.
> For companies, this is an opportunity to introduce children and parents to their company by hosting an event. It is also an opportunity for companies to offer their employees something extra by volunteering at an event.
### About
From [https://www-littil-org.translate.goog/about-us/](https://www-littil-org.translate.goog/about-us/?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en&_x_tr_pto=wapp)
> Scrum Team Schools : Hans Lieben is Scrum Master within Scrum Team Schools. He ensures that his team obtains information from schools and teachers. Think of what schools need to find a match within our list of guest lecturers.
> Scrum Team Guest Lecturers : Jasper Sprengers is Scrum Master within Scrum Team Guest Lecturers. He makes sure that his team gets information from future guest lecturers. Think about which lessons they want to teach and in which region.
> Scrum team Within Scrum Team Markerting / Market Research Eddy Vos is Scrum Master. He ensures that his team investigates possible partners who can strengthen this platform. Think of sponsors who would like to link their company name to this initiative. Or to other organizations that provide teaching modules but do not have teachers.
## DevOxx4Kids
- http://www.devoxx4kids.org/nederland/
- [English Translation](https://www-devoxx4kids-org.translate.goog/nederland/?_x_tr_sch=http&_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en&_x_tr_pto=wapp)
### April 1st Event
- [ApelDoorn](https://www-devoxx4kids-org.translate.goog/nederland/nieuws/devoxx4kids-op-1-april-2023-in-apeldoorn/?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en&_x_tr_pto=wapp&_x_tr_sch=http)
## April 15th Event
I don't think this is the same event as KubeCon Kids day.
- [Nieuwegein](https://www-devoxx4kids-org.translate.goog/nederland/nieuws/devoxx4kids-op-15-april-2023-in-nieuwegein/?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en&_x_tr_pto=wapp&_x_tr_sch=http)
## Open Web
Not sure wheer they fit in... maybe they are the hosts?
https://www-openweb-nl.translate.goog/over-ons?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en&_x_tr_pto=wapp
# Workshop Software
## Minecraft
From [nedelrand/material/minecraft](https://www-devoxx4kids-org.translate.goog/nederland/materiaal/minecraft/?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en&_x_tr_pto=wapp&_x_tr_sch=http) :
- http://www.devoxx4kids.org/nederland/wp-content/uploads/sites/9/2015/06/Devoxx4KidsNL-Opdrachten-Minecraft.pdf
## Scratch
From [nederland/materials/scratch](https://www-devoxx4kids-org.translate.goog/nederland/materiaal/scratch/?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en&_x_tr_pto=wapp&_x_tr_sch=http)
- https://github.com/bertjan/jpoint-devoxx4kids/tree/master/scratch-leapmotion/projects
- Above includes 7 Assignment pptx slide decks in Dutch:
- 01, 02, BalootPop, Basketball, Bongo, and Diver
### Sonic Pi
From [nederland/materiaal/sonic-pi](https://www-devoxx4kids-org.translate.goog/nederland/materiaal/sonic-pi/?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en&_x_tr_pto=wapp&_x_tr_sch=http)
- [Install Instructions](http://www.devoxx4kids.org/nederland/wp-content/uploads/sites/9/2018/10/Sonic-PI-Workshop_nl-installatie-instructies.pdf?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en&_x_tr_pto=wapp&_x_tr_sch=http)
- [Reference Card](http://www.devoxx4kids.org/nederland/wp-content/uploads/sites/9/2018/10/Sonic-PI-Workshop_nl-referentiekaart.pdf?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en&_x_tr_pto=wapp&_x_tr_sch=http)
- [Handout](https://github.com/devoxx4kids/materials/blob/master/workshops/sonicpi/nl/Sonic%20PI%20Workshop_nl%20-%20handout.pdf)
# Alex's Notes
## From the Start
Abby successfully got Minecraft running following these steps.
On a Linux machine (we're running Ubuntu Jammy JellyFish) make sure Java and Javac are installed.
If they're not:
```
java -version
```
```
javac -version
```
Copy the command that appears to install openjdk-8 if a suitable version is not installed (this is important as forge versions only work with 8,9,10vs)
Add javac to the path as it needs to be a JDK extension
```
export JAVA_HOME="path that you found"
export PATH=$JAVA_HOME/bin:$PATH
```
Changed jdk-8 to jdk-17 to match the newer version of gradle.
```
sudo apt install open jdk-17-jdk-headless
```
Create new empty folder called MinecraftForge (Or whatever you like) wherever you like to put the dependencies .
Go to: files.minecraftforge.net and on version 1.17.1. click MDK (Minecraft Development Kit).
Extract contents of zipped folder into the folder we just made.
Open readme from extracted file and it will show you the commands you'll need to use.
Run:
```
./gradlew genEclipseRuns
```
If "build successful", open Eclipse and choose the folder we created earlier.
Inside that folder create an empty folder named Workspace and select open that folder in the Eclipse IDE.
Launch.
Next, select Import Projects and select Gradle --> existing cradle project.
For project root folder select Mods folder (the MDK we downloaded earlier).
Once Eclipse opens, navigate to the Gradle tasks bar and select "forgegradleRuns" menu, follwed by "runClient".
Minecraft should now run!
Now we're going to Tunnel using novac to a container containing this file.
Below is how to make sure you've got Go and curl running.
```
tmux -L ii new -d
```
```
ttyd -p 54321 tmux -L ii at
```
#### Docker Commmand to Run Novac
`docker run -p 8000:80 -p 6079:6079 -v /dev/shm:/dev/shm dorowu/ubuntu-desktop-lxde-vnc`
`docker run -p 8000:80 -p 6079:6079 -v /dev/shm:/dev/shm dorowu/ubuntu-desktop-lxde-vnc`
##### Misc command
`export PATH=$HOME/go/bin:/usr/local/go/bin:$PATH`
Link for Modding Minecraft Info
https://github.com/devoxx4kids/materials/blob/master/workshops/minecraft/readme.asciidoc
##### Step by step from dutch translation.
All files in links are stored in this google drive link:https://drive.google.com/drive/folders/1mHDKJesctJabOzyIw4GlMiDYXrHrdgLn?usp=sharing
Go to:
https://www.oracle.com/java/technologies/downloads/#java8
Download file from drive link below and install java.
To install java:
`tar xvfz ./FILE.tar
mv jdk-8u361-linux-x64/* $HOME/java
export PATH=$HOME/java/bin:$PATH`
Next go to: http://www.eclipse.org/downloads/
Download file from this link:
http://files.minecraftforge.net/maven/net/minecraftforge/forge/1.8-11.14.1.1341/forge-1.8-11.14.1.1341-src.zip
cd to folder (drag and drop file in cli) and run ./gradlew setupDecompWorkspace eclipse
Open eclipse
## Setting up a Windows machine from scratch to run Ubuntu with WSL
Install WSL2 windows subsystem for linux. We're using Ubuntu 22.04 as the standard.
Run:
```
wsl --install
```
And reboot once completed.
On reboot, an Ubuntu CLI will appear prompting user to create an Ubuntu profile.
Enter desired username and password.
#### Link to docs for WSL
https://learn.microsoft.com/en-us/windows/wsl/basic-commands
**Make sure Windwos Power Shell (WPS) is set as default CLI**
To do this open windows power shell, open settings and change default terminal application.

Now we're going to follow this: https://github.com/ii/matey
Open WPS and select the Ubuntu profile.
In my case Ctrl + Shift + 6 keyboard shortcut.

In Ubuntu window type:
``
iimatey
`` - This will prepare your tunnel.
``
iimatey start
`` - This will generate a URL which can be shared to anyone and will mirror your Ubuntu window in the browser.
On Windows, Ctrl + Click the link and it will open in a browser.
(You may need to press the "q" key to get the browser working).

Type `logout` to end session.
Go to :https://github.com/settings/ssh/new to add new ssh key.
## 24/03/23
Following Abbys directiong and the notes at the start of Alex's section, open and run Minecraft Forge.
Use Rhians link to learn how to crate mods: https://github.com/devoxx4kids/materials/blob/master/workshops/minecraft/readme-forge.asciidoc
Try and get this running on Mac.
## Creating a Dockerfile
Dockerfile to locally run a tiny NGINX website in a container is on my github.
So clone the repository however you usually do.
Using CLI:
```
git clone -b master https://github.com/ttothewiggy/Ubuntu-Dockerfile.git
```
Check docker is running ny running
```
docker info
```
Navigate in the CLI to the folder from github "Ubuntu-Dockerfile" and run:
```
docker build .
```
Once built, you should be able to see the image without a name usinf:
```
docker images
```
If you want to name the image run:
```
dockerbuild -t <image-name> .
```
Execute the image to create the container by running:
```
docker run -d -p 80:80 051bcf7b3c09
```
(The last set of numbers starting "051" is the image ID you take from the image when you run the "docker images" command.)
Using
```
docker ps
```
we should see the container running.
To get running on Mac, I used this command to specify the build.
```
docker buildx build --platform linux/arm64 -t my-image .
```
```
docker stop <image_name>
```
Stops the container
# Abby's notes
## Running a Tunnel
Assumes Go and Curl is already installed and added to path
```
tmux -L ii new -d
```
```
ttyd -p 54321 tmux -L ii at
```
```
export TUNNEL_WIREGUARD_KEY=$(wg genkey)
export TUNNEL_API_URL=http://try.ii.nz
~/go/bin/tunnel localhost:54321
```
### Changed this to ii-matey
```
curl -fsSL https://raw.githubusercontent.com/ii/matey/canon/iimatey-setup.sh | bash
```
## Accessing Coder
```
coder server
coder login <url>
```
Remote connect to docker workspace
```
ssh coder.Docker1.main
```
#### Install Java & Javac:
```javac -version ```
copy the command to install openjdk-17 if a suitable version is not installed
Add javac to the path as it needs to be a JDK extension
```
export JAVA_HOME="path that you found"
export PATH=$JAVA_HOME/bin:$PATH
```
Useful command to change JAVA_HOME if multiple java installed
```
sudo update-alternatives --config java
```
## Minecraft Forge
>Download Minecraft forge MDK vs 1.17.1
>https://files.minecraftforge.net/net/minecraftforge/forge/index_1.17.1.html
Create a folder, within that folder create two more: Mods and Workspace (name irrelevent)
Install Java JRE and JAVAC JDK vs 17
>This build uses Gradle vs 7.1 which is pre-compiled in the MDK - makesure that is says gradle 7.1 or 8 when you run the ./gradlew commands.
Make sure the minecraft version in gradle.build is:
```
minecraft 'net.minecraftforge:forge:1.19.4-45.0.23'
```
Succesfully builds and installs MinecraftForge on linux
```
./gradlew genEclipseRuns
```
If there's errors in eclipse, right click on parent directory > gradle > refresh gradle
makesure to update dependencies when re-running the ./gradlew command with ``` --refresh-dependencies```
## Running MC Client
>Open Eclipse
>Choose Workspace folder created in the main directory
>Import existing gradle project
>Choose Mods folder from Directory
>Under Gradle tasks find the Run Client to open minecraft
## Github
Downloads and clones repo
```git clone <repo link >```
pulls updated repo if changes
```
git pull
```
check out branch from cloned repo
```
git checkout <branch>
```
## Documentation for noVNC Minecraft
# Hippie's Notes
## coder
### build for linux_amd64 only
```
make build/coder_0.17.4-devel+efd41a91_linux_amd64
```
#### Needs sqlc / let's find it
```
sudo apt-get install apt-file
sudo apt-file update
```