https://k4cg.org/api.php?action=feedcontributions&user=Noqqe&feedformat=atom
k4cg.org - Benutzerbeiträge [de]
2024-03-29T08:54:57Z
Benutzerbeiträge
MediaWiki 1.39.4
https://k4cg.org/index.php?title=Projekt:Matomat-Service&diff=19893
Projekt:Matomat-Service
2023-12-06T07:51:30Z
<p>Noqqe: /* Matomat Requirements */</p>
<hr />
<div>{{Infobox<br />
| maintainer = [[User:dagonC|dagonC]]<br />
| machine = [[Host:matomat.intern.k4cg.org|matomat.intern.k4cg.org]]<br />
| jahr = 2019<br />
| url = https://github.com/k4cg/matomat-service<br />
}}<br />
<br />
== Allgemeines ==<br />
<br />
Matomat-Service ist ein in Go geschriebenes Verwaltungsbackend für unsere Getränkeverwaltung und somit der Nachfolger von [[Projekt:Matomat]]. <br />
<br />
== Funktionsweise ==<br />
<br />
Auf dem [[Host:matomat.intern.k4cg.org|matomat.intern.k4cg.org]] gibt es einen user "maas", in dem das Golang Enviornment konfiguriert ist. <br />
<br />
Der Gestartete Prozess verwaltet Daten in einer SQLITE Datenbank, bindet einen Port und hört dann auf HTTP REST Requests um Getränke zu buchen, login, Geld einzuzahlen usw. <br />
<br />
== Matomat Requirements==<br />
<br />
===Terminal Anwendung===<br />
<br />
* Max 16 Farben<br />
* Tolles matomat ascii logo<br />
* Soll auch erscheinen, wenn man ssh matomat@matomat macht.<br />
<br />
=== Login===<br />
<br />
* Anmeldung mit username + password<br />
* Oder RFID<br />
<br />
=== Bedienung===<br />
<br />
* Mate buchen<br />
* Bier buchen<br />
* Kontostand auffüllen<br />
* Kontostand anzeigen (im Banner)<br />
<br />
===Datenbank===<br />
<br />
Folgende Informationen brauchen wir<br />
<br />
* username<br />
* user created<br />
* current credits<br />
* user active<br />
* password<br />
<br />
Wenn jemand ein bier kauft, wäre es schön wenn wir Transaktionen sehen können<br />
<br />
* Getränk<br />
* date<br />
* price<br />
<br />
===Administration===<br />
<br />
* Neuen User hinzufügen<br />
* User löschen<br />
* Preise ändern<br />
* Kontostand ändern<br />
<br />
=== Stats===<br />
<br />
Wenn wir irgendwie stats anzeigen koennen, waer geil. Mehr stats, mehr gut.<br />
<br />
== Installation ==<br />
<br />
<pre><br />
adduser maas<br />
apt install golang<br />
go get -v github.com/k4cg/matomat-service<br />
</pre><br />
<br />
Und einen Systemd Serivce<br />
<br />
<pre><br />
[Unit]<br />
Description=Matomat as a Service<br />
<br />
[Service]<br />
Type=simple<br />
ExecStart=/home/maas/go/bin/maas-server<br />
Restart=on-failure<br />
User=maas<br />
WorkingDirectory=/home/maas<br />
<br />
[Install]<br />
WantedBy=multi-user.target<br />
</pre><br />
<br />
und natürlich ein bisschen '''Konfiguration die im Repo beschrieben ist'''.<br />
<br />
== Update == <br />
<br />
Das Update ist relativ straight forward. <br />
<br />
<pre><br />
su maas<br />
cd ~/go/src/github.com/k4cg/matomat-service/<br />
git pull origin master<br />
go get -v ./...<br />
exit<br />
systemctl restart maas<br />
</pre><br />
<br />
== Development ==<br />
<br />
Bitte dem Repo (siehe Infobox) entnehmen!</div>
Noqqe
https://k4cg.org/index.php?title=Projekt:Matomat-Service&diff=19892
Projekt:Matomat-Service
2023-12-06T07:49:18Z
<p>Noqqe: /* Funktionsweise */</p>
<hr />
<div>{{Infobox<br />
| maintainer = [[User:dagonC|dagonC]]<br />
| machine = [[Host:matomat.intern.k4cg.org|matomat.intern.k4cg.org]]<br />
| jahr = 2019<br />
| url = https://github.com/k4cg/matomat-service<br />
}}<br />
<br />
== Allgemeines ==<br />
<br />
Matomat-Service ist ein in Go geschriebenes Verwaltungsbackend für unsere Getränkeverwaltung und somit der Nachfolger von [[Projekt:Matomat]]. <br />
<br />
== Funktionsweise ==<br />
<br />
Auf dem [[Host:matomat.intern.k4cg.org|matomat.intern.k4cg.org]] gibt es einen user "maas", in dem das Golang Enviornment konfiguriert ist. <br />
<br />
Der Gestartete Prozess verwaltet Daten in einer SQLITE Datenbank, bindet einen Port und hört dann auf HTTP REST Requests um Getränke zu buchen, login, Geld einzuzahlen usw. <br />
<br />
== Matomat Requirements==<br />
<br />
===Terminal Anwendung===<br />
<br />
- Max 16 Farben<br />
- Tolles matomat ascii logo<br />
- Soll auch erscheinen, wenn man ssh matomat@matomat macht.<br />
<br />
=== Login===<br />
<br />
- Anmeldung mit username + password<br />
- Oder RFID<br />
<br />
=== Bedienung===<br />
<br />
- Mate buchen<br />
- Bier buchen<br />
- Kontostand auffüllen<br />
- Kontostand anzeigen (im Banner)<br />
<br />
===Datenbank===<br />
<br />
Folgende Informationen brauchen wir<br />
<br />
- username<br />
- user created<br />
- current credits<br />
- user active<br />
- password<br />
<br />
Wenn jemand ein bier kauft, wäre es schön wenn wir Transaktionen sehen können<br />
<br />
- Getränk<br />
- date<br />
- price<br />
<br />
===Administration===<br />
<br />
- Neuen User hinzufügen<br />
- User löschen<br />
- Preise ändern<br />
- Kontostand ändern<br />
<br />
=== Stats===<br />
<br />
Wenn wir irgendwie stats anzeigen koennen, waer geil. Mehr stats, mehr gut.<br />
<br />
== Installation ==<br />
<br />
<pre><br />
adduser maas<br />
apt install golang<br />
go get -v github.com/k4cg/matomat-service<br />
</pre><br />
<br />
Und einen Systemd Serivce<br />
<br />
<pre><br />
[Unit]<br />
Description=Matomat as a Service<br />
<br />
[Service]<br />
Type=simple<br />
ExecStart=/home/maas/go/bin/maas-server<br />
Restart=on-failure<br />
User=maas<br />
WorkingDirectory=/home/maas<br />
<br />
[Install]<br />
WantedBy=multi-user.target<br />
</pre><br />
<br />
und natürlich ein bisschen '''Konfiguration die im Repo beschrieben ist'''.<br />
<br />
== Update == <br />
<br />
Das Update ist relativ straight forward. <br />
<br />
<pre><br />
su maas<br />
cd ~/go/src/github.com/k4cg/matomat-service/<br />
git pull origin master<br />
go get -v ./...<br />
exit<br />
systemctl restart maas<br />
</pre><br />
<br />
== Development ==<br />
<br />
Bitte dem Repo (siehe Infobox) entnehmen!</div>
Noqqe
https://k4cg.org/index.php?title=Projekt:Matomat-Service&diff=19891
Projekt:Matomat-Service
2023-12-06T07:49:01Z
<p>Noqqe: </p>
<hr />
<div>{{Infobox<br />
| maintainer = [[User:dagonC|dagonC]]<br />
| machine = [[Host:matomat.intern.k4cg.org|matomat.intern.k4cg.org]]<br />
| jahr = 2019<br />
| url = https://github.com/k4cg/matomat-service<br />
}}<br />
<br />
== Allgemeines ==<br />
<br />
Matomat-Service ist ein in Go geschriebenes Verwaltungsbackend für unsere Getränkeverwaltung und somit der Nachfolger von [[Projekt:Matomat]]. <br />
<br />
== Funktionsweise ==<br />
<br />
Auf dem [[Host:matomat.intern.k4cg.org|matomat.intern.k4cg.org]] gibt es einen user "maas", in dem das Golang Enviornment konfiguriert ist. <br />
<br />
Der Gestartete Prozess verwaltet Daten in einer SQLITE Datenbank, bindet einen Port und hört dann auf HTTP REST Requests um Getränke zu buchen, login, Geld einzuzahlen usw. <br />
<br />
== Matomat Requirements<br />
<br />
===Terminal Anwendung<br />
<br />
- Max 16 Farben<br />
- Tolles matomat ascii logo<br />
- Soll auch erscheinen, wenn man ssh matomat@matomat macht.<br />
<br />
=== Login<br />
<br />
- Anmeldung mit username + password<br />
- Oder RFID<br />
<br />
=== Bedienung===<br />
<br />
- Mate buchen<br />
- Bier buchen<br />
- Kontostand auffüllen<br />
- Kontostand anzeigen (im Banner)<br />
<br />
===Datenbank===<br />
<br />
Folgende Informationen brauchen wir<br />
<br />
- username<br />
- user created<br />
- current credits<br />
- user active<br />
- password<br />
<br />
Wenn jemand ein bier kauft, wäre es schön wenn wir Transaktionen sehen können<br />
<br />
- Getränk<br />
- date<br />
- price<br />
<br />
===Administration===<br />
<br />
- Neuen User hinzufügen<br />
- User löschen<br />
- Preise ändern<br />
- Kontostand ändern<br />
<br />
=== Stats===<br />
<br />
Wenn wir irgendwie stats anzeigen koennen, waer geil. Mehr stats, mehr gut.<br />
<br />
== Installation ==<br />
<br />
<pre><br />
adduser maas<br />
apt install golang<br />
go get -v github.com/k4cg/matomat-service<br />
</pre><br />
<br />
Und einen Systemd Serivce<br />
<br />
<pre><br />
[Unit]<br />
Description=Matomat as a Service<br />
<br />
[Service]<br />
Type=simple<br />
ExecStart=/home/maas/go/bin/maas-server<br />
Restart=on-failure<br />
User=maas<br />
WorkingDirectory=/home/maas<br />
<br />
[Install]<br />
WantedBy=multi-user.target<br />
</pre><br />
<br />
und natürlich ein bisschen '''Konfiguration die im Repo beschrieben ist'''.<br />
<br />
== Update == <br />
<br />
Das Update ist relativ straight forward. <br />
<br />
<pre><br />
su maas<br />
cd ~/go/src/github.com/k4cg/matomat-service/<br />
git pull origin master<br />
go get -v ./...<br />
exit<br />
systemctl restart maas<br />
</pre><br />
<br />
== Development ==<br />
<br />
Bitte dem Repo (siehe Infobox) entnehmen!</div>
Noqqe
https://k4cg.org/index.php?title=Event:2018/03/19_Vortrag_R&diff=19890
Event:2018/03/19 Vortrag R
2023-12-06T07:47:06Z
<p>Noqqe: </p>
<hr />
<div>'''Datum:''' 19. Maerz 2018<br />
<br />
'''Beginn:''' 19 Uhr<br />
<br />
'''Vortragender:''' noqqe<br />
<br />
Inhalt wird die Programmiersprache [https://www.r-project.org/ R] sein. Was macht sie aus, warum gibt es sie und wer benutzt R eigentlich?<br />
<br />
= Folien = <br />
<br />
[[Datei:R-Talk.pdf]]<br />
<br />
= Notizen =<br />
<br />
<br />
<br />
== Scope dieses kleinen Talks==<br />
<br />
Soll eine kurze Einführung in R werden ohne gross in krasse Programmierung einzutauchen<br />
<br />
==Was ist R==<br />
<br />
R ist eine Programmiersprache um mit Daten zu hantieren. Statistische Auswertung Excel für Akademiker<br />
<br />
==Geschichte von R==<br />
<br />
1992 als Nachfolger von S S war von Bell Labs und hatte nicht wirklich eine freie Lizenz R ist in C, Fortran (heute noch) und R geschrieben.<br />
<br />
==Bedienung==<br />
<br />
Interactive Mode<br />
<br />
oder eben als File (`gewinn.R`)<br />
<br />
<pre><br />
#!/usr/bin/Rscripteuro <- function(x){ y = format(x, digits=10, nsmall=2, decimal.mark=",", big.mark=".") paste(c(y), "EUR")}s = rev(read.table('~/foo.txt'))income = rev(s$V2)# Print some informationseuro(sum(income))euro(mean(income))# Graph cars using blue points overlayed by a lineplot(income, type="o", col="blue")# Create a title with a red, bold/italic fonttitle(main="Gewinn", col.main="red", font.main=4)<br />
</pre><br />
<br />
== Datentypen==<br />
<br />
- Integer<br />
- String<br />
- Vector<br />
- List<br />
- matrix<br />
- data.frame<br />
<br />
== Integer==<br />
<br />
<pre><br />
> y<br />
[1] 15<br />
</pre><br />
<br />
== String==<br />
<br />
<pre><br />
> y<br />
[1] "cccc"<br />
</pre><br />
<br />
== Vector==<br />
<br />
Beste Sache in ganz R<br />
<br />
<pre><br />
> x <- c(1,4,6,7)<br />
> x<br />
[1] 1 4 6 7<br />
</pre><br />
<br />
==Warum sind Vektoren jetzt so geil?==<br />
<br />
==List==<br />
<br />
<pre><br />
> a <- c("foo", "bar", "baz")<br />
> b <- c("alice", "bob")<br />
> x <- list(a,b)<br />
> x<br />
[[1]]<br />
[1] "foo" "bar" "baz"<br />
<br />
[[2]]<br />
[1] "alice" "bob"<br />
</pre><br />
<br />
==Matrix==<br />
<br />
<pre><br />
> x <- matrix( c(2, 4, 3, 1, 5, 7), nrow=3, ncol=2 )<br />
> x<br />
[,1] [,2]<br />
[1,] 2 1<br />
[2,] 4 5<br />
[3,] 3 7<br />
</pre><br />
<br />
== Data Frame==<br />
<br />
<pre><br />
> d <- data.frame(drinks=c("Mate","Coffee"),consumption=c(23,42))<br />
> d<br />
drinks consumption<br />
1 Mate 23<br />
2 Coffee 42<br />
</pre><br />
<br />
Auch etwas worin R sehr gut ist. Daten auf dem Terminal Formattieren.<br />
<br />
<pre><br />
people = data.frame (<br />
age = c(32,34,12,41,18,23,43,22,19,24),<br />
height = c(177,166,165,174,156,184,191,179,182,180),<br />
sex = c('M','F','M','M','F','M','F','F','M','F'))<br />
<br />
> people<br />
age height sex<br />
1 32 177 M<br />
2 34 166 F<br />
3 12 165 M<br />
4 41 174 M<br />
5 18 156 F<br />
6 23 184 M<br />
7 43 191 F<br />
8 22 179 F<br />
9 19 182 M<br />
10 24 180 F<br />
</pre><br />
<br />
==Funktionen==<br />
<br />
<pre><br />
> a <- c(1,2,3)<br />
> oddcount <- function(x) {<br />
k <- 0<br />
for (n in x) {<br />
if (n %% 2 == 1 ) k <- k+1<br />
}<br />
return(k)<br />
}<br />
<br />
> oddcount(a)<br />
[1] 2<br />
</pre><br />
<br />
== Builtin Funktionen (Exploration)==<br />
<br />
<pre><br />
rnorm(100) ## Random Normal Distribution<br />
mean(x) ## Durchschnitt<br />
sd(x) ## Standard Abweichung<br />
seq(100) ## zähle bis 100<br />
rep(98,4) ## wiederholt werte (repeat)<br />
all(x > 8) ## Makro für IF Conditions, wenn ALLE dann<br />
any(x > 8) ## wenn IRGENDEINS dann<br />
sqrt(9) ## Wurzel ziehen<br />
round(12.2) ## Runden auf nächsten Wert<br />
head(x) ## einfach wie in Unix<br />
tail(x) ## same here<br />
subset(x,x > 5) ## Filtern innerhalb Vectoren nach Conditions<br />
which(x,x > 5) ## Selbes, gibt aber die relativen positionen der Werte aus.<br />
diff(x) ## berechnet die unterschiede innerhalb nummerischer Vektoren<br />
sign(x) ## "begradigt" negative und positive werte<br />
length(x) ## länge von vectoren abfragen<br />
sort(x)<br />
order(x) ## sortieren mit realtiven index angaben als return<br />
str(x) ## welche Struktur hat der Vector?<br />
mode(x) ## was für eine Struktur liegt vor?<br />
summary(x) ## erzähl mir alles was so geht über x?<br />
print(x) ## gib mir die print methode für den jeweiligen Datentypen<br />
class(x) ## zeigt die Class an zb. "data.frame"<br />
apply(x,y,z) ## funktion für jeden Wert in vecotr ausführen<br />
lapply(x,y,z) ## selbes für liste<br />
sapply(x,y) ## für liste, aber rückgabe als vector<br />
cbind(matrix,vector) ## column an matrix binden<br />
rbind(matrix,vector) ## row an matrix binden<br />
dim(matrix) ## columns und rows anzahl einer matrix ausgeben<br />
nrow(x) ## nur rows<br />
ncol(x) ## nur columns<br />
attributes(x) ## attribute einer klasse abfragen (zb. dim bei matrix)<br />
as.matrix<br />
as.numeric<br />
as.character<br />
as.factor<br />
colnames(matrix) ## columns namen geben (von matrix)<br />
rownames(matrix) ## für rows<br />
names(j) ## beschreibungen ausgeben bei listen<br />
unlist(j) ## liste zu vector konvertieren<br />
unname(j) ## alle namen entfernen<br />
</pre><br />
<br />
==sapply==<br />
<br />
<pre><br />
> t <- function(x) {<br />
y <- x + 1<br />
return(y)<br />
}<br />
<br />
> o <- c(1,4,56,8,12)<br />
> sapply(o,t)<br />
[1] 2 5 57 9 13<br />
</pre><br />
<br />
==lapply==<br />
<br />
<pre><br />
> o <- c(1,4,56,8,12)<br />
> p <- c(12,42,23,1337)<br />
> q <- list(p,o)<br />
<br />
> q<br />
[[1]]<br />
[1] 12 42 23 1337<br />
<br />
[[2]]<br />
[1] 1 4 56 8 12<br />
<br />
> lapply(q,mean)<br />
[[1]]<br />
[1] 353.5<br />
<br />
[[2]]<br />
[1] 16.2<br />
<br />
> lapply(q,max)<br />
[[1]]<br />
[1] 1337<br />
<br />
[[2]]<br />
[1] 56<br />
</pre><br />
<br />
== apply==<br />
<br />
<pre><br />
m<-matrix(1:100,nrow=10,ncol=10)<br />
<br />
> m<br />
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]<br />
[1,] 1 11 21 31 41 51 61 71 81 91<br />
[2,] 2 12 22 32 42 52 62 72 82 92<br />
[3,] 3 13 23 33 43 53 63 73 83 93<br />
[4,] 4 14 24 34 44 54 64 74 84 94<br />
[5,] 5 15 25 35 45 55 65 75 85 95<br />
[6,] 6 16 26 36 46 56 66 76 86 96<br />
[7,] 7 17 27 37 47 57 67 77 87 97<br />
[8,] 8 18 28 38 48 58 68 78 88 98<br />
[9,] 9 19 29 39 49 59 69 79 89 99<br />
[10,] 10 20 30 40 50 60 70 80 90 100<br />
<br />
> apply(m,1,mean)<br />
[1] 46 47 48 49 50 51 52 53 54 55<br />
<br />
> apply(m,2,mean)<br />
[1] 5.5 15.5 25.5 35.5 45.5 55.5 65.5 75.5 85.5 95.5<br />
<br />
> apply(m,1,function(x) x * 10)<br />
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]<br />
[1,] 10 20 30 40 50 60 70 80 90 100<br />
[2,] 110 120 130 140 150 160 170 180 190 200<br />
[3,] 210 220 230 240 250 260 270 280 290 300<br />
[4,] 310 320 330 340 350 360 370 380 390 400<br />
[5,] 410 420 430 440 450 460 470 480 490 500<br />
[6,] 510 520 530 540 550 560 570 580 590 600<br />
[7,] 610 620 630 640 650 660 670 680 690 700<br />
[8,] 710 720 730 740 750 760 770 780 790 800<br />
[9,] 810 820 830 840 850 860 870 880 890 900<br />
[10,] 910 920 930 940 950 960 970 980 990 1000<br />
```<br />
<br />
==Daten einlesen==<br />
<br />
```<br />
read.table("bla.csv",header=FALSE) ## Import von CSV Dateien<br />
> x <- read.csv("Downloads/hurricanes.csv", header=TRUE)<br />
> x<br />
Month Average X2005 X2006 X2007 X2008 X2009 X2010 X2011 X2012 X2013 X2014<br />
1 May 0.1 0 0 1 1 0 0 0 2 0 0<br />
2 Jun 0.5 2 1 1 0 0 1 1 2 2 0<br />
3 Jul 0.7 5 1 1 2 0 1 3 0 2 2<br />
4 Aug 2.3 6 3 2 4 4 4 7 8 2 2<br />
5 Sep 3.5 6 4 7 4 2 8 5 2 5 2<br />
6 Oct 2.0 8 0 1 3 2 5 1 5 2 3<br />
7 Nov 0.5 3 0 0 1 1 0 1 0 1 0<br />
8 Dec 0.0 1 0 1 0 0 0 0 0 0 0<br />
<br />
scan(tf,"") ## import von textdateien<br />
</pre><br />
<br />
== Visualisierungen==<br />
<br />
Builtin Visualisierung mittels `plot` und `lines`<br />
<br />
<pre><br />
> a <- c(1,2,3)<br />
> plot(a)<br />
</pre><br />
<br />
<br />
Heutzutage benutzt man aber `ggplot`, was ein externe Library ist.<br />
<br />
==Was mach ich mit R?==<br />
<br />
Im Grunde kann man damit alles machen was man will, weil Turing Complete.<br />
<br />
## Was macht die Industrie mit R<br />
<br />
Marktforschern (Data Scientists) benutzt um Modelle zu bauen Sobald Modelle sich als valide erweisen werden sie dann von Programmierern in anderen besser skalierbareren Sprachen implementiert und auf den ganzen Datenbestand angewendet. Zum Beispiel mit Scala oder MapReduce/Yarn Stack von Hadoop<br />
<br />
== Was kann ich mit R alles machen? ==<br />
<br />
R und ich haben so eine Art Hopon-Hopoff Beziehung. Seit 2012 bastel ich immer mal wieder Phasenweise mehr und mal weniger damit herum.<br />
<br />
* GPX Karte malen ([Visualize gpx tracks from a folder on a picture from google maps. · GitHub](https://gist.github.com/noqqe/5a780a2132b781a01bb0debed7765ab9))<br />
* Kontoführung<br />
* Fahrrad Stats (Distanz, Herzrate, Geschwindigkeitsentwicklung)<br />
<br />
<br />
== Wie Entwickelt ich R ?==<br />
<br />
<pre><br />
* Commandline Interaktiv<br />
* Vim<br />
* R-Studio (IDE)<br />
</pre><br />
<br />
== Das R-Universum ==<br />
<br />
* Grosser Frauenanteil ([About us – R-Ladies Global](https://rladies.org/about-us/))<br />
* Packages (CRAN) [The Comprehensive R Archive Network](https://cran.r-project.org/)<br />
* Diverse Bücher<br />
* Data Scientist is der heisse Scheiss.<br />
<br />
<br />
== Schwächen von R==<br />
<br />
RAM. Sobald deine Daten nicht mehr in deinen RAM passen ist es vorbei. Workaround: Wir haben riesige Maschinen bei Amazon hochgefahren, brauchen sie aber meistens nicht weil die Data Scientists eh nur mit kleinen Datenmengen modellieren.</div>
Noqqe
https://k4cg.org/index.php?title=Event:2018/03/19_Vortrag_R&diff=19889
Event:2018/03/19 Vortrag R
2023-12-06T07:44:27Z
<p>Noqqe: </p>
<hr />
<div>'''Datum:''' 19. Maerz 2018<br />
<br />
'''Beginn:''' 19 Uhr<br />
<br />
'''Vortragender:''' noqqe<br />
<br />
Inhalt wird die Programmiersprache [https://www.r-project.org/ R] sein. Was macht sie aus, warum gibt es sie und wer benutzt R eigentlich?<br />
<br />
= Folien = <br />
<br />
[[Datei:R-Talk.pdf]]<br />
<br />
= Notizen =<br />
<br />
<br />
<br />
== Scope dieses kleinen Talks==<br />
<br />
Soll eine kurze Einführung in R werden ohne gross in krasse Programmierung einzutauchen<br />
<br />
==Was ist R==<br />
<br />
R ist eine Programmiersprache um mit Daten zu hantieren. Statistische Auswertung Excel für Akademiker<br />
<br />
==Geschichte von R==<br />
<br />
1992 als Nachfolger von S S war von Bell Labs und hatte nicht wirklich eine freie Lizenz R ist in C, Fortran (heute noch) und R geschrieben.<br />
<br />
==Bedienung==<br />
<br />
Interactive Mode<br />
<br />
oder eben als File (`gewinn.R`)<br />
<br />
```<br />
#!/usr/bin/Rscripteuro <- function(x){ y = format(x, digits=10, nsmall=2, decimal.mark=",", big.mark=".") paste(c(y), "EUR")}s = rev(read.table('~/foo.txt'))income = rev(s$V2)# Print some informationseuro(sum(income))euro(mean(income))# Graph cars using blue points overlayed by a lineplot(income, type="o", col="blue")# Create a title with a red, bold/italic fonttitle(main="Gewinn", col.main="red", font.main=4)<br />
```<br />
<br />
== Datentypen==<br />
<br />
- Integer<br />
- String<br />
- Vector<br />
- List<br />
- matrix<br />
- data.frame<br />
<br />
== Integer==<br />
<br />
```<br />
> y<br />
[1] 15<br />
```<br />
<br />
== String==<br />
<br />
```<br />
> y<br />
[1] "cccc"<br />
```<br />
<br />
== Vector==<br />
<br />
Beste Sache in ganz R<br />
<br />
```<br />
> x <- c(1,4,6,7)<br />
> x<br />
[1] 1 4 6 7<br />
```<br />
<br />
==Warum sind Vektoren jetzt so geil?==<br />
<br />
==List==<br />
<br />
```<br />
> a <- c("foo", "bar", "baz")<br />
> b <- c("alice", "bob")<br />
> x <- list(a,b)<br />
> x<br />
[[1]]<br />
[1] "foo" "bar" "baz"<br />
<br />
[[2]]<br />
[1] "alice" "bob"<br />
```<br />
<br />
==Matrix==<br />
<br />
```<br />
> x <- matrix( c(2, 4, 3, 1, 5, 7), nrow=3, ncol=2 )<br />
> x<br />
[,1] [,2]<br />
[1,] 2 1<br />
[2,] 4 5<br />
[3,] 3 7<br />
```<br />
<br />
== Data Frame==<br />
<br />
```<br />
> d <- data.frame(drinks=c("Mate","Coffee"),consumption=c(23,42))<br />
> d<br />
drinks consumption<br />
1 Mate 23<br />
2 Coffee 42<br />
```<br />
<br />
Auch etwas worin R sehr gut ist. Daten auf dem Terminal Formattieren.<br />
<br />
```<br />
people = data.frame (<br />
age = c(32,34,12,41,18,23,43,22,19,24),<br />
height = c(177,166,165,174,156,184,191,179,182,180),<br />
sex = c('M','F','M','M','F','M','F','F','M','F'))<br />
<br />
> people<br />
age height sex<br />
1 32 177 M<br />
2 34 166 F<br />
3 12 165 M<br />
4 41 174 M<br />
5 18 156 F<br />
6 23 184 M<br />
7 43 191 F<br />
8 22 179 F<br />
9 19 182 M<br />
10 24 180 F<br />
```<br />
<br />
==Funktionen==<br />
<br />
```<br />
> a <- c(1,2,3)<br />
> oddcount <- function(x) {<br />
k <- 0<br />
for (n in x) {<br />
if (n %% 2 == 1 ) k <- k+1<br />
}<br />
return(k)<br />
}<br />
<br />
> oddcount(a)<br />
[1] 2<br />
```<br />
<br />
== Builtin Funktionen (Exploration)==<br />
<br />
```<br />
rnorm(100) ## Random Normal Distribution<br />
mean(x) ## Durchschnitt<br />
sd(x) ## Standard Abweichung<br />
seq(100) ## zähle bis 100<br />
rep(98,4) ## wiederholt werte (repeat)<br />
all(x > 8) ## Makro für IF Conditions, wenn ALLE dann<br />
any(x > 8) ## wenn IRGENDEINS dann<br />
sqrt(9) ## Wurzel ziehen<br />
round(12.2) ## Runden auf nächsten Wert<br />
head(x) ## einfach wie in Unix<br />
tail(x) ## same here<br />
subset(x,x > 5) ## Filtern innerhalb Vectoren nach Conditions<br />
which(x,x > 5) ## Selbes, gibt aber die relativen positionen der Werte aus.<br />
diff(x) ## berechnet die unterschiede innerhalb nummerischer Vektoren<br />
sign(x) ## "begradigt" negative und positive werte<br />
length(x) ## länge von vectoren abfragen<br />
sort(x)<br />
order(x) ## sortieren mit realtiven index angaben als return<br />
str(x) ## welche Struktur hat der Vector?<br />
mode(x) ## was für eine Struktur liegt vor?<br />
summary(x) ## erzähl mir alles was so geht über x?<br />
print(x) ## gib mir die print methode für den jeweiligen Datentypen<br />
class(x) ## zeigt die Class an zb. "data.frame"<br />
apply(x,y,z) ## funktion für jeden Wert in vecotr ausführen<br />
lapply(x,y,z) ## selbes für liste<br />
sapply(x,y) ## für liste, aber rückgabe als vector<br />
cbind(matrix,vector) ## column an matrix binden<br />
rbind(matrix,vector) ## row an matrix binden<br />
dim(matrix) ## columns und rows anzahl einer matrix ausgeben<br />
nrow(x) ## nur rows<br />
ncol(x) ## nur columns<br />
attributes(x) ## attribute einer klasse abfragen (zb. dim bei matrix)<br />
as.matrix<br />
as.numeric<br />
as.character<br />
as.factor<br />
colnames(matrix) ## columns namen geben (von matrix)<br />
rownames(matrix) ## für rows<br />
names(j) ## beschreibungen ausgeben bei listen<br />
unlist(j) ## liste zu vector konvertieren<br />
unname(j) ## alle namen entfernen<br />
```<br />
<br />
==sapply==<br />
<br />
```<br />
> t <- function(x) {<br />
y <- x + 1<br />
return(y)<br />
}<br />
<br />
> o <- c(1,4,56,8,12)<br />
> sapply(o,t)<br />
[1] 2 5 57 9 13<br />
```<br />
<br />
==lapply==<br />
<br />
```<br />
> o <- c(1,4,56,8,12)<br />
> p <- c(12,42,23,1337)<br />
> q <- list(p,o)<br />
<br />
> q<br />
[[1]]<br />
[1] 12 42 23 1337<br />
<br />
[[2]]<br />
[1] 1 4 56 8 12<br />
<br />
> lapply(q,mean)<br />
[[1]]<br />
[1] 353.5<br />
<br />
[[2]]<br />
[1] 16.2<br />
<br />
> lapply(q,max)<br />
[[1]]<br />
[1] 1337<br />
<br />
[[2]]<br />
[1] 56<br />
```<br />
<br />
== apply==<br />
<br />
```<br />
m<-matrix(1:100,nrow=10,ncol=10)<br />
<br />
> m<br />
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]<br />
[1,] 1 11 21 31 41 51 61 71 81 91<br />
[2,] 2 12 22 32 42 52 62 72 82 92<br />
[3,] 3 13 23 33 43 53 63 73 83 93<br />
[4,] 4 14 24 34 44 54 64 74 84 94<br />
[5,] 5 15 25 35 45 55 65 75 85 95<br />
[6,] 6 16 26 36 46 56 66 76 86 96<br />
[7,] 7 17 27 37 47 57 67 77 87 97<br />
[8,] 8 18 28 38 48 58 68 78 88 98<br />
[9,] 9 19 29 39 49 59 69 79 89 99<br />
[10,] 10 20 30 40 50 60 70 80 90 100<br />
<br />
> apply(m,1,mean)<br />
[1] 46 47 48 49 50 51 52 53 54 55<br />
<br />
> apply(m,2,mean)<br />
[1] 5.5 15.5 25.5 35.5 45.5 55.5 65.5 75.5 85.5 95.5<br />
<br />
> apply(m,1,function(x) x * 10)<br />
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]<br />
[1,] 10 20 30 40 50 60 70 80 90 100<br />
[2,] 110 120 130 140 150 160 170 180 190 200<br />
[3,] 210 220 230 240 250 260 270 280 290 300<br />
[4,] 310 320 330 340 350 360 370 380 390 400<br />
[5,] 410 420 430 440 450 460 470 480 490 500<br />
[6,] 510 520 530 540 550 560 570 580 590 600<br />
[7,] 610 620 630 640 650 660 670 680 690 700<br />
[8,] 710 720 730 740 750 760 770 780 790 800<br />
[9,] 810 820 830 840 850 860 870 880 890 900<br />
[10,] 910 920 930 940 950 960 970 980 990 1000<br />
```<br />
<br />
==Daten einlesen==<br />
<br />
```<br />
read.table("bla.csv",header=FALSE) ## Import von CSV Dateien<br />
> x <- read.csv("Downloads/hurricanes.csv", header=TRUE)<br />
> x<br />
Month Average X2005 X2006 X2007 X2008 X2009 X2010 X2011 X2012 X2013 X2014<br />
1 May 0.1 0 0 1 1 0 0 0 2 0 0<br />
2 Jun 0.5 2 1 1 0 0 1 1 2 2 0<br />
3 Jul 0.7 5 1 1 2 0 1 3 0 2 2<br />
4 Aug 2.3 6 3 2 4 4 4 7 8 2 2<br />
5 Sep 3.5 6 4 7 4 2 8 5 2 5 2<br />
6 Oct 2.0 8 0 1 3 2 5 1 5 2 3<br />
7 Nov 0.5 3 0 0 1 1 0 1 0 1 0<br />
8 Dec 0.0 1 0 1 0 0 0 0 0 0 0<br />
<br />
scan(tf,"") ## import von textdateien<br />
```<br />
<br />
== Visualisierungen==<br />
<br />
Builtin Visualisierung mittels `plot` und `lines`<br />
<br />
```<br />
> a <- c(1,2,3)<br />
> plot(a)<br />
```<br />
<br />
<br />
Heutzutage benutzt man aber `ggplot`, was ein externe Library ist.<br />
<br />
==Was mach ich mit R?==<br />
<br />
Im Grunde kann man damit alles machen was man will, weil Turing Complete.<br />
<br />
## Was macht die Industrie mit R<br />
<br />
Marktforschern (Data Scientists) benutzt um Modelle zu bauen Sobald Modelle sich als valide erweisen werden sie dann von Programmierern in anderen besser skalierbareren Sprachen implementiert und auf den ganzen Datenbestand angewendet. Zum Beispiel mit Scala oder MapReduce/Yarn Stack von Hadoop<br />
<br />
== Was kann ich mit R alles machen? ==<br />
<br />
R und ich haben so eine Art Hopon-Hopoff Beziehung. Seit 2012 bastel ich immer mal wieder Phasenweise mehr und mal weniger damit herum.<br />
<br />
```<br />
* GPX Karte malen ([Visualize gpx tracks from a folder on a picture from google maps. · GitHub](https://gist.github.com/noqqe/5a780a2132b781a01bb0debed7765ab9))<br />
```<br />
<br />
```<br />
* Kontoführung<br />
* Fahrrad Stats (Distanz, Herzrate, Geschwindigkeitsentwicklung)<br />
```<br />
<br />
== Wie Entwickelt ich R ?==<br />
<br />
```<br />
* Commandline Interaktiv<br />
* Vim<br />
* R-Studio (IDE)<br />
```<br />
<br />
== Das R-Universum ==<br />
<br />
```<br />
* Grosser Frauenanteil ([About us – R-Ladies Global](https://rladies.org/about-us/))<br />
* Packages (CRAN) [The Comprehensive R Archive Network](https://cran.r-project.org/)<br />
* Diverse Bücher<br />
* Data Scientist is der heisse Scheiss.<br />
```<br />
<br />
== Schwächen von R==<br />
<br />
RAM. Sobald deine Daten nicht mehr in deinen RAM passen ist es vorbei. Workaround: Wir haben riesige Maschinen bei Amazon hochgefahren, brauchen sie aber meistens nicht weil die Data Scientists eh nur mit kleinen Datenmengen modellieren.</div>
Noqqe
https://k4cg.org/index.php?title=Event:2018/03/19_Vortrag_R&diff=19888
Event:2018/03/19 Vortrag R
2023-12-06T07:44:22Z
<p>Noqqe: </p>
<hr />
<div>'''Datum:''' 19. Maerz 2018<br />
<br />
'''Beginn:''' 19 Uhr<br />
<br />
'''Vortragender:''' noqqe<br />
<br />
Inhalt wird die Programmiersprache [https://www.r-project.org/ R] sein. Was macht sie aus, warum gibt es sie und wer benutzt R eigentlich?<br />
<br />
= Folien = <br />
<br />
[[Datei:R-Talk.pdf]]<br />
<br />
== Notizen ==<br />
<br />
<br />
<br />
== Scope dieses kleinen Talks==<br />
<br />
Soll eine kurze Einführung in R werden ohne gross in krasse Programmierung einzutauchen<br />
<br />
==Was ist R==<br />
<br />
R ist eine Programmiersprache um mit Daten zu hantieren. Statistische Auswertung Excel für Akademiker<br />
<br />
==Geschichte von R==<br />
<br />
1992 als Nachfolger von S S war von Bell Labs und hatte nicht wirklich eine freie Lizenz R ist in C, Fortran (heute noch) und R geschrieben.<br />
<br />
==Bedienung==<br />
<br />
Interactive Mode<br />
<br />
oder eben als File (`gewinn.R`)<br />
<br />
```<br />
#!/usr/bin/Rscripteuro <- function(x){ y = format(x, digits=10, nsmall=2, decimal.mark=",", big.mark=".") paste(c(y), "EUR")}s = rev(read.table('~/foo.txt'))income = rev(s$V2)# Print some informationseuro(sum(income))euro(mean(income))# Graph cars using blue points overlayed by a lineplot(income, type="o", col="blue")# Create a title with a red, bold/italic fonttitle(main="Gewinn", col.main="red", font.main=4)<br />
```<br />
<br />
== Datentypen==<br />
<br />
- Integer<br />
- String<br />
- Vector<br />
- List<br />
- matrix<br />
- data.frame<br />
<br />
== Integer==<br />
<br />
```<br />
> y<br />
[1] 15<br />
```<br />
<br />
== String==<br />
<br />
```<br />
> y<br />
[1] "cccc"<br />
```<br />
<br />
== Vector==<br />
<br />
Beste Sache in ganz R<br />
<br />
```<br />
> x <- c(1,4,6,7)<br />
> x<br />
[1] 1 4 6 7<br />
```<br />
<br />
==Warum sind Vektoren jetzt so geil?==<br />
<br />
==List==<br />
<br />
```<br />
> a <- c("foo", "bar", "baz")<br />
> b <- c("alice", "bob")<br />
> x <- list(a,b)<br />
> x<br />
[[1]]<br />
[1] "foo" "bar" "baz"<br />
<br />
[[2]]<br />
[1] "alice" "bob"<br />
```<br />
<br />
==Matrix==<br />
<br />
```<br />
> x <- matrix( c(2, 4, 3, 1, 5, 7), nrow=3, ncol=2 )<br />
> x<br />
[,1] [,2]<br />
[1,] 2 1<br />
[2,] 4 5<br />
[3,] 3 7<br />
```<br />
<br />
== Data Frame==<br />
<br />
```<br />
> d <- data.frame(drinks=c("Mate","Coffee"),consumption=c(23,42))<br />
> d<br />
drinks consumption<br />
1 Mate 23<br />
2 Coffee 42<br />
```<br />
<br />
Auch etwas worin R sehr gut ist. Daten auf dem Terminal Formattieren.<br />
<br />
```<br />
people = data.frame (<br />
age = c(32,34,12,41,18,23,43,22,19,24),<br />
height = c(177,166,165,174,156,184,191,179,182,180),<br />
sex = c('M','F','M','M','F','M','F','F','M','F'))<br />
<br />
> people<br />
age height sex<br />
1 32 177 M<br />
2 34 166 F<br />
3 12 165 M<br />
4 41 174 M<br />
5 18 156 F<br />
6 23 184 M<br />
7 43 191 F<br />
8 22 179 F<br />
9 19 182 M<br />
10 24 180 F<br />
```<br />
<br />
==Funktionen==<br />
<br />
```<br />
> a <- c(1,2,3)<br />
> oddcount <- function(x) {<br />
k <- 0<br />
for (n in x) {<br />
if (n %% 2 == 1 ) k <- k+1<br />
}<br />
return(k)<br />
}<br />
<br />
> oddcount(a)<br />
[1] 2<br />
```<br />
<br />
== Builtin Funktionen (Exploration)==<br />
<br />
```<br />
rnorm(100) ## Random Normal Distribution<br />
mean(x) ## Durchschnitt<br />
sd(x) ## Standard Abweichung<br />
seq(100) ## zähle bis 100<br />
rep(98,4) ## wiederholt werte (repeat)<br />
all(x > 8) ## Makro für IF Conditions, wenn ALLE dann<br />
any(x > 8) ## wenn IRGENDEINS dann<br />
sqrt(9) ## Wurzel ziehen<br />
round(12.2) ## Runden auf nächsten Wert<br />
head(x) ## einfach wie in Unix<br />
tail(x) ## same here<br />
subset(x,x > 5) ## Filtern innerhalb Vectoren nach Conditions<br />
which(x,x > 5) ## Selbes, gibt aber die relativen positionen der Werte aus.<br />
diff(x) ## berechnet die unterschiede innerhalb nummerischer Vektoren<br />
sign(x) ## "begradigt" negative und positive werte<br />
length(x) ## länge von vectoren abfragen<br />
sort(x)<br />
order(x) ## sortieren mit realtiven index angaben als return<br />
str(x) ## welche Struktur hat der Vector?<br />
mode(x) ## was für eine Struktur liegt vor?<br />
summary(x) ## erzähl mir alles was so geht über x?<br />
print(x) ## gib mir die print methode für den jeweiligen Datentypen<br />
class(x) ## zeigt die Class an zb. "data.frame"<br />
apply(x,y,z) ## funktion für jeden Wert in vecotr ausführen<br />
lapply(x,y,z) ## selbes für liste<br />
sapply(x,y) ## für liste, aber rückgabe als vector<br />
cbind(matrix,vector) ## column an matrix binden<br />
rbind(matrix,vector) ## row an matrix binden<br />
dim(matrix) ## columns und rows anzahl einer matrix ausgeben<br />
nrow(x) ## nur rows<br />
ncol(x) ## nur columns<br />
attributes(x) ## attribute einer klasse abfragen (zb. dim bei matrix)<br />
as.matrix<br />
as.numeric<br />
as.character<br />
as.factor<br />
colnames(matrix) ## columns namen geben (von matrix)<br />
rownames(matrix) ## für rows<br />
names(j) ## beschreibungen ausgeben bei listen<br />
unlist(j) ## liste zu vector konvertieren<br />
unname(j) ## alle namen entfernen<br />
```<br />
<br />
==sapply==<br />
<br />
```<br />
> t <- function(x) {<br />
y <- x + 1<br />
return(y)<br />
}<br />
<br />
> o <- c(1,4,56,8,12)<br />
> sapply(o,t)<br />
[1] 2 5 57 9 13<br />
```<br />
<br />
==lapply==<br />
<br />
```<br />
> o <- c(1,4,56,8,12)<br />
> p <- c(12,42,23,1337)<br />
> q <- list(p,o)<br />
<br />
> q<br />
[[1]]<br />
[1] 12 42 23 1337<br />
<br />
[[2]]<br />
[1] 1 4 56 8 12<br />
<br />
> lapply(q,mean)<br />
[[1]]<br />
[1] 353.5<br />
<br />
[[2]]<br />
[1] 16.2<br />
<br />
> lapply(q,max)<br />
[[1]]<br />
[1] 1337<br />
<br />
[[2]]<br />
[1] 56<br />
```<br />
<br />
== apply==<br />
<br />
```<br />
m<-matrix(1:100,nrow=10,ncol=10)<br />
<br />
> m<br />
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]<br />
[1,] 1 11 21 31 41 51 61 71 81 91<br />
[2,] 2 12 22 32 42 52 62 72 82 92<br />
[3,] 3 13 23 33 43 53 63 73 83 93<br />
[4,] 4 14 24 34 44 54 64 74 84 94<br />
[5,] 5 15 25 35 45 55 65 75 85 95<br />
[6,] 6 16 26 36 46 56 66 76 86 96<br />
[7,] 7 17 27 37 47 57 67 77 87 97<br />
[8,] 8 18 28 38 48 58 68 78 88 98<br />
[9,] 9 19 29 39 49 59 69 79 89 99<br />
[10,] 10 20 30 40 50 60 70 80 90 100<br />
<br />
> apply(m,1,mean)<br />
[1] 46 47 48 49 50 51 52 53 54 55<br />
<br />
> apply(m,2,mean)<br />
[1] 5.5 15.5 25.5 35.5 45.5 55.5 65.5 75.5 85.5 95.5<br />
<br />
> apply(m,1,function(x) x * 10)<br />
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]<br />
[1,] 10 20 30 40 50 60 70 80 90 100<br />
[2,] 110 120 130 140 150 160 170 180 190 200<br />
[3,] 210 220 230 240 250 260 270 280 290 300<br />
[4,] 310 320 330 340 350 360 370 380 390 400<br />
[5,] 410 420 430 440 450 460 470 480 490 500<br />
[6,] 510 520 530 540 550 560 570 580 590 600<br />
[7,] 610 620 630 640 650 660 670 680 690 700<br />
[8,] 710 720 730 740 750 760 770 780 790 800<br />
[9,] 810 820 830 840 850 860 870 880 890 900<br />
[10,] 910 920 930 940 950 960 970 980 990 1000<br />
```<br />
<br />
==Daten einlesen==<br />
<br />
```<br />
read.table("bla.csv",header=FALSE) ## Import von CSV Dateien<br />
> x <- read.csv("Downloads/hurricanes.csv", header=TRUE)<br />
> x<br />
Month Average X2005 X2006 X2007 X2008 X2009 X2010 X2011 X2012 X2013 X2014<br />
1 May 0.1 0 0 1 1 0 0 0 2 0 0<br />
2 Jun 0.5 2 1 1 0 0 1 1 2 2 0<br />
3 Jul 0.7 5 1 1 2 0 1 3 0 2 2<br />
4 Aug 2.3 6 3 2 4 4 4 7 8 2 2<br />
5 Sep 3.5 6 4 7 4 2 8 5 2 5 2<br />
6 Oct 2.0 8 0 1 3 2 5 1 5 2 3<br />
7 Nov 0.5 3 0 0 1 1 0 1 0 1 0<br />
8 Dec 0.0 1 0 1 0 0 0 0 0 0 0<br />
<br />
scan(tf,"") ## import von textdateien<br />
```<br />
<br />
== Visualisierungen==<br />
<br />
Builtin Visualisierung mittels `plot` und `lines`<br />
<br />
```<br />
> a <- c(1,2,3)<br />
> plot(a)<br />
```<br />
<br />
<br />
Heutzutage benutzt man aber `ggplot`, was ein externe Library ist.<br />
<br />
==Was mach ich mit R?==<br />
<br />
Im Grunde kann man damit alles machen was man will, weil Turing Complete.<br />
<br />
## Was macht die Industrie mit R<br />
<br />
Marktforschern (Data Scientists) benutzt um Modelle zu bauen Sobald Modelle sich als valide erweisen werden sie dann von Programmierern in anderen besser skalierbareren Sprachen implementiert und auf den ganzen Datenbestand angewendet. Zum Beispiel mit Scala oder MapReduce/Yarn Stack von Hadoop<br />
<br />
== Was kann ich mit R alles machen? ==<br />
<br />
R und ich haben so eine Art Hopon-Hopoff Beziehung. Seit 2012 bastel ich immer mal wieder Phasenweise mehr und mal weniger damit herum.<br />
<br />
```<br />
* GPX Karte malen ([Visualize gpx tracks from a folder on a picture from google maps. · GitHub](https://gist.github.com/noqqe/5a780a2132b781a01bb0debed7765ab9))<br />
```<br />
<br />
```<br />
* Kontoführung<br />
* Fahrrad Stats (Distanz, Herzrate, Geschwindigkeitsentwicklung)<br />
```<br />
<br />
== Wie Entwickelt ich R ?==<br />
<br />
```<br />
* Commandline Interaktiv<br />
* Vim<br />
* R-Studio (IDE)<br />
```<br />
<br />
== Das R-Universum ==<br />
<br />
```<br />
* Grosser Frauenanteil ([About us – R-Ladies Global](https://rladies.org/about-us/))<br />
* Packages (CRAN) [The Comprehensive R Archive Network](https://cran.r-project.org/)<br />
* Diverse Bücher<br />
* Data Scientist is der heisse Scheiss.<br />
```<br />
<br />
== Schwächen von R==<br />
<br />
RAM. Sobald deine Daten nicht mehr in deinen RAM passen ist es vorbei. Workaround: Wir haben riesige Maschinen bei Amazon hochgefahren, brauchen sie aber meistens nicht weil die Data Scientists eh nur mit kleinen Datenmengen modellieren.</div>
Noqqe
https://k4cg.org/index.php?title=Projekt:Heiko&diff=19887
Projekt:Heiko
2023-12-06T07:41:20Z
<p>Noqqe: </p>
<hr />
<div>{{Infobox<br />
| maintainer = [[User:noqqe|noqqe]]<br />
| machine = [[Host:matomat.intern.k4cg.org|matomat.intern.k4cg.org]]<br />
| jahr = 2019<br />
| url = https://github.com/k4cg/heiko<br />
}}<br />
<br />
== Allgemeines ==<br />
<br />
Dieser Eintrag beschreibt die Funktionsweise und das Setup von Heiko auf dem Matomat Laptop<br />
<br />
== Funktionsweise ==<br />
<br />
Heiko ist ein Python Programm das eine interaktive Kommandozeilen Eingabe bereitstellt und via REST HTTP mit dem in Go geschriebenen Backend [[Projekt:Matomat-Service]] kommuniziert.<br />
Es öffnet sich wenn man sich als User "heiko" auf dem Matomat einloggt automatisch (TTY2).<br />
<br />
== SSH Buchung ==<br />
<br />
<pre><br />
ssh heiko@matomat <br />
</pre><br />
<br />
Pw ist das gleiche wie der User<br />
<br />
== Installation ==<br />
<br />
Auf [[Host:matomat.intern.k4cg.org|matomat.intern.k4cg.org]] ist ein user <code>heiko</code> eingerichtet. Dort liegen die Config, das Backup der alten Matomat Instanz und die <code>user_greetings</code><br />
<br />
In der <code>/etc/passwd</code> muss die Login Shell auf <code>/usr/local/bin/heiko</code> umgesetzt werden und das Passwort in <code>/etc/shadow</code> geleert sein.<br />
<br />
== Update == <br />
<br />
<pre><br />
$ sudo -s<br />
# pip3 install --upgrade heiko<br />
</pre><br />
<br />
== Setup auf TTY1 ==<br />
<br />
Der Systemuser <code>heiko</code> hat in seinem Home den Source, Config und die Sounddateien vom Matomat Frontend.<br />
<br />
Details siehe [[Projekt:Heiko]]<br />
<br />
Das Commandline Matomat Interface läuft auf TTY1 <br />
<br />
<pre><br />
# cat /etc/systemd/system/getty@tty1.service.d/override.conf<br />
[Service]<br />
Type=simple<br />
ExecStart=<br />
ExecStart=-/sbin/agetty --autologin heiko --noclear %I 38400 linux<br />
</pre><br />
<br />
<br />
== RFID Login == <br />
<br />
Leute wollen sich am Matomat mit RFID anmelden, weil war schon immer so.<br />
<br />
Wir haben 1 Reader und mehrere Karten<br />
<br />
=== Aus dem matomat-service ===<br />
<br />
> What about RFID/NFC chip based “login”<br />
> <br />
> <br />
> This functionality has to be implemented by the client. The client would have to offer a eneroll functionality during which the user enters her credentials. Then a very high token validity time is chosen by the client application (months?) and a login operation - resulting in a JWT token - is performed against the service. The received token is then stored on the RFID/NFC chip. For subsequent “logins” the client only needs to read the token from the RFID/NFC chip and use it to authenticate its calls to the service.<br />
> <br />
<br />
=== Implementierungsidee ===<br />
<br />
Heiko hat eine tinydb in der daten abgelegt werden, da wir nur einen Readonly Reader haben. Im Endeffekt wird der Kartenhash mit dem JWT und dem Username zusammen in ein JSON gelegt.<br />
<br />
User -> Karte mit ID 023421337 TTY1 ist der USB Card reader und der Leser gibt sich als Keyboard aus JWT ist das Login Token fürs Backend<br />
<br />
Login: 1. User hält karte hin 2. Heiko liesst karte via TTY1 3. Heiko sieht 023421337 4. Heiko Hashed das 023421337 (mit argon2[1]) 5. Heiko schaut in tinydb[2] ob hash da iwo liegt. 6. Heiko entschlüsselt mit 023421337 das JWT Token 7. Heiko loggt den user mit JWT ein der zum hash passt 8. User kann mate buchen<br />
<br />
Registirering<br />
<br />
1. User loggt sich mit password ein<br />
2. User waehlt option X zum registrieren einer RFID karte<br />
3. Heiko sagt: leg deine Karte auf den Leser<br />
4. User tut<br />
5. Heiko liesst TTY1 aus und findet nummer 023421337<br />
6. Heiko sagt danke und hashed die Kartennummer mit argon2<br />
7. Heiko speichert das mit 023421337 verschlüsselte JWT in tinydb<br />
8. Zurück zum Menü<br />
<br />
Datenstruktur<br />
<br />
```<br />
[<br />
{<br />
user: bernd<br />
rfid: argon2(rfid)<br />
jwt: encrypt_with_rfid(jwt)<br />
},<br />
{<br />
[...]<br />
},<br />
]<br />
```<br />
<br />
Links<br />
<br />
[1] [GitHub - P-H-C/phc-winner-argon2: The password hash Argon2, winner of PHC](https://github.com/P-H-C/phc-winner-argon2) [2] [Welcome to TinyDB! — TinyDB 3.12.2 documentation](https://tinydb.readthedocs.io/en/latest/)</div>
Noqqe
https://k4cg.org/index.php?title=Projekt:Heiko&diff=19886
Projekt:Heiko
2023-12-06T07:41:12Z
<p>Noqqe: /* RFID Login */</p>
<hr />
<div>{{Infobox<br />
| maintainer = [[User:noqqe|noqqe]]<br />
| machine = [[Host:matomat.intern.k4cg.org|matomat.intern.k4cg.org]]<br />
| jahr = 2019<br />
| url = https://github.com/k4cg/heiko<br />
}}<br />
<br />
== Allgemeines ==<br />
<br />
Dieser Eintrag beschreibt die Funktionsweise und das Setup von Heiko auf dem Matomat Laptop<br />
<br />
== Funktionsweise ==<br />
<br />
Heiko ist ein Python Programm das eine interaktive Kommandozeilen Eingabe bereitstellt und via REST HTTP mit dem in Go geschriebenen Backend [[Projekt:Matomat-Service]] kommuniziert.<br />
Es öffnet sich wenn man sich als User "heiko" auf dem Matomat einloggt automatisch (TTY2).<br />
<br />
== SSH Buchung ==<br />
<br />
<pre><br />
ssh heiko@matomat <br />
</pre><br />
<br />
Pw ist das gleiche wie der User<br />
<br />
== Installation ==<br />
<br />
Auf [[Host:matomat.intern.k4cg.org|matomat.intern.k4cg.org]] ist ein user <code>heiko</code> eingerichtet. Dort liegen die Config, das Backup der alten Matomat Instanz und die <code>user_greetings</code><br />
<br />
In der <code>/etc/passwd</code> muss die Login Shell auf <code>/usr/local/bin/heiko</code> umgesetzt werden und das Passwort in <code>/etc/shadow</code> geleert sein.<br />
<br />
== Update == <br />
<br />
<pre><br />
$ sudo -s<br />
# pip3 install --upgrade heiko<br />
</pre><br />
<br />
== Setup auf TTY1 ==<br />
<br />
Der Systemuser <code>heiko</code> hat in seinem Home den Source, Config und die Sounddateien vom Matomat Frontend.<br />
<br />
Details siehe [[Projekt:Heiko]]<br />
<br />
Das Commandline Matomat Interface läuft auf TTY1 <br />
<br />
<pre><br />
# cat /etc/systemd/system/getty@tty1.service.d/override.conf<br />
[Service]<br />
Type=simple<br />
ExecStart=<br />
ExecStart=-/sbin/agetty --autologin heiko --noclear %I 38400 linux<br />
</pre></div>
Noqqe
https://k4cg.org/index.php?title=Projekt:Heiko&diff=19885
Projekt:Heiko
2023-12-06T07:40:52Z
<p>Noqqe: </p>
<hr />
<div>{{Infobox<br />
| maintainer = [[User:noqqe|noqqe]]<br />
| machine = [[Host:matomat.intern.k4cg.org|matomat.intern.k4cg.org]]<br />
| jahr = 2019<br />
| url = https://github.com/k4cg/heiko<br />
}}<br />
<br />
== Allgemeines ==<br />
<br />
Dieser Eintrag beschreibt die Funktionsweise und das Setup von Heiko auf dem Matomat Laptop<br />
<br />
== Funktionsweise ==<br />
<br />
Heiko ist ein Python Programm das eine interaktive Kommandozeilen Eingabe bereitstellt und via REST HTTP mit dem in Go geschriebenen Backend [[Projekt:Matomat-Service]] kommuniziert.<br />
Es öffnet sich wenn man sich als User "heiko" auf dem Matomat einloggt automatisch (TTY2).<br />
<br />
== SSH Buchung ==<br />
<br />
<pre><br />
ssh heiko@matomat <br />
</pre><br />
<br />
Pw ist das gleiche wie der User<br />
<br />
== RFID Login == <br />
n<br />
<br />
Leute wollen sich am Matomat mit RFID anmelden, weil war schon immer so.<br />
<br />
Wir haben 1 Reader und mehrere Karten<br />
<br />
=== Aus dem matomat-service ===<br />
<br />
> What about RFID/NFC chip based “login”<br />
> <br />
> <br />
> This functionality has to be implemented by the client. The client would have to offer a eneroll functionality during which the user enters her credentials. Then a very high token validity time is chosen by the client application (months?) and a login operation - resulting in a JWT token - is performed against the service. The received token is then stored on the RFID/NFC chip. For subsequent “logins” the client only needs to read the token from the RFID/NFC chip and use it to authenticate its calls to the service.<br />
> <br />
<br />
=== Implementierungsidee ===<br />
<br />
Heiko hat eine tinydb in der daten abgelegt werden, da wir nur einen Readonly Reader haben. Im Endeffekt wird der Kartenhash mit dem JWT und dem Username zusammen in ein JSON gelegt.<br />
<br />
User -> Karte mit ID 023421337 TTY1 ist der USB Card reader und der Leser gibt sich als Keyboard aus JWT ist das Login Token fürs Backend<br />
<br />
Login: 1. User hält karte hin 2. Heiko liesst karte via TTY1 3. Heiko sieht 023421337 4. Heiko Hashed das 023421337 (mit argon2[1]) 5. Heiko schaut in tinydb[2] ob hash da iwo liegt. 6. Heiko entschlüsselt mit 023421337 das JWT Token 7. Heiko loggt den user mit JWT ein der zum hash passt 8. User kann mate buchen<br />
<br />
Registirering<br />
<br />
1. User loggt sich mit password ein<br />
2. User waehlt option X zum registrieren einer RFID karte<br />
3. Heiko sagt: leg deine Karte auf den Leser<br />
4. User tut<br />
5. Heiko liesst TTY1 aus und findet nummer 023421337<br />
6. Heiko sagt danke und hashed die Kartennummer mit argon2<br />
7. Heiko speichert das mit 023421337 verschlüsselte JWT in tinydb<br />
8. Zurück zum Menü<br />
<br />
Datenstruktur<br />
<br />
```<br />
[<br />
{<br />
user: bernd<br />
rfid: argon2(rfid)<br />
jwt: encrypt_with_rfid(jwt)<br />
},<br />
{<br />
[...]<br />
},<br />
]<br />
```<br />
<br />
Links<br />
<br />
[1] [GitHub - P-H-C/phc-winner-argon2: The password hash Argon2, winner of PHC](https://github.com/P-H-C/phc-winner-argon2) [2] [Welcome to TinyDB! — TinyDB 3.12.2 documentation](https://tinydb.readthedocs.io/en/latest/)<br />
<br />
<br />
<br />
== Installation ==<br />
<br />
Auf [[Host:matomat.intern.k4cg.org|matomat.intern.k4cg.org]] ist ein user <code>heiko</code> eingerichtet. Dort liegen die Config, das Backup der alten Matomat Instanz und die <code>user_greetings</code><br />
<br />
In der <code>/etc/passwd</code> muss die Login Shell auf <code>/usr/local/bin/heiko</code> umgesetzt werden und das Passwort in <code>/etc/shadow</code> geleert sein.<br />
<br />
== Update == <br />
<br />
<pre><br />
$ sudo -s<br />
# pip3 install --upgrade heiko<br />
</pre><br />
<br />
== Setup auf TTY1 ==<br />
<br />
Der Systemuser <code>heiko</code> hat in seinem Home den Source, Config und die Sounddateien vom Matomat Frontend.<br />
<br />
Details siehe [[Projekt:Heiko]]<br />
<br />
Das Commandline Matomat Interface läuft auf TTY1 <br />
<br />
<pre><br />
# cat /etc/systemd/system/getty@tty1.service.d/override.conf<br />
[Service]<br />
Type=simple<br />
ExecStart=<br />
ExecStart=-/sbin/agetty --autologin heiko --noclear %I 38400 linux<br />
</pre></div>
Noqqe
https://k4cg.org/index.php?title=Projekt:Chaostreff&diff=19884
Projekt:Chaostreff
2023-12-06T07:39:51Z
<p>Noqqe: /* Historie */</p>
<hr />
<div>{{Infobox<br />
| maintainer = [[User:noqqe|noqqe]]<br />
| jahr = 2018<br />
| url = https://github.com/k4cg/chaostreff-nuernberg<br />
}}<br />
<br />
== Generelles == <br />
<br />
Wir wollten die K4CG gerne zu einem [https://www.ccc.de/de/club/chaostreffs Chaostreff] machen und haben dies nun getan. <br />
<br />
Unter https://chaostreff-nuernberg.de findet sich nun die Tabelle mittels welcher man herausfinden kann wann und wo der nächste Chaostreff stattfindet.<br />
<br />
== Website Verwaltung ==<br />
<br />
Findet über Github https://github.com/k4cg/chaostreff-nuernberg statt. <br />
Bei Änderungen einfach einen PR stellen und los gehts.<br />
<br />
== Website Hosting ==<br />
<br />
Die oben beschriebene Website https://chaostreff-nuernberg.de ist auf [[Host:rumpl.k4cg.org]] gehostet<br />
<br />
Dort gibt es einen Cronjob der jede Stunde das Repo auscheckt.<br />
<br />
== Mailadresse ==<br />
<br />
Wir hatten an orga@ gedacht, jedoch fehlt im Moment noch der MX Record auf rumpl.<br />
<br />
== IRC ==<br />
<br />
Kommunikation findet über IRC statt.<br />
<br />
Server: HackInt <br />
<br />
Channel: #chaosnuernberg<br />
<br />
== CCC Website ==<br />
<br />
Unter https://www.ccc.de/de/club/chaostreffs sammelt der CCC die Chaostreffs und dort müssen Änderungen struktureller Natur auch wieder bekannt gegeben werden. <br />
<br />
== Historie ==<br />
<br />
* Recherche in lists.ccc.de (2018-01)<br />
* Mail an Fablab<br />
* Treffen im Fablab mit deren Vorstand<br />
* Beschluss über Zeitraum/Frequenz getroffen<br />
* Gesprächsprotokoll an Fablab Vorstand geschickt<br />
* "Design" der Website angestossen und auf Github gestellt<br />
* Hosting der Website<br />
* Kommunikation an den CCC (2018-03)<br />
<br />
<br />
== Protokoll vom Treffen im Fablab ==<br />
<br />
Wir haben uns am 07.03.2018 auf ein nettes Gespräch mit dem Fablab getroffen und folgendes beschlossen:<br />
<br />
Der Chaostreff Nürnberg wird monatlich abwechselnd im Fablab und der K4CG stattfinden.<br />
<br />
Jeden 2. Donnerstag im Monat. Monatlich abwechselnd. Gerade Monate sind im Fablab. 19:00 - 22:00<br />
<br />
chaostreff-nuernberg.de wird mit einer Seite versehen welche die Termine + Location enthält. Wir (K4CG) basteln eben diese kleine HTML Seite.<br />
<br />
Sobald diese Seite online ist, schreibt Rolf wieder dem CCC um den Text des Chaostreffs Nürnberg entsprechend anzupassen.</div>
Noqqe
https://k4cg.org/index.php?title=N%C3%BCrnberger_Hackspace_K4CG&diff=19877
Nürnberger Hackspace K4CG
2023-09-05T12:49:26Z
<p>Noqqe: /* Achtung Umzug! */</p>
<hr />
<div>__NOTOC__<br />
<gallery widths=250px heights=200px mode="packed-hover"><br />
P5_1.jpg|alt=Raumansicht mit Blick auf die Werkbank<br />
p5front2.jpg|alt=Hauseingang der Peuntgasse 5<br />
DSC04290.jpg|alt=Raumansicht mit Blick auf die Leinwand<br />
</gallery><br />
<br />
<!-- <br />
== Tag des offenen Hackspace ==<br />
<br />
Wir nehmen am Tag des offenen Hackspace teil! Wir haben [[Projekt:Tag_des_offenen_Hackspace_2023|weitere Informationen]] für dich zusammengefasst!<br />
--><br />
<br />
== Achtung Umzug! ==<br />
<br />
Wir ziehen gerade um. Daher findet momentan kein regulärer Betrieb statt. Vermutlich haben wir ab Oktober wieder normal geöffnet. Schau einfach ab und zu hier vorbei 😊<br />
<br />
== Wer sind wir? == <br />
<br />
Die K4 Computergruppe (K4CG) ist Teil der [https://www.kunstkulturquartier.de/kuenstlerhaus/programm/werkstaetten Offenen Werkstätten] (Fotolabor, Siebdruck, Schmiede, Glas, Fahrrad, Keramik, Steinmetz, Holz, Porträt, Pixelwerkstatt) im Künstlerhaus Nürnberg und ist allen zugänglich. Aktuell sind wir in der Peuntgasse 5 im 2. OG untergebracht. Nach der Generalsanierung des Künstlerhauses zieht die Computergruppe wieder in die Königstraße 93 zurück (voraussichtlich Mitte 2023).<br />
<br />
Uns sind alle Menschen willkommen, die sich für Technik interessieren. Egal ob Du Linux/*BSD/macOS/Windows Nutzerinnen und Nutzer suchst, Tipps und Hilfe beim Programmieren, Löten, 3D-Drucken brauchst, ein Bier bzw. eine Club Mate mit Nerds trinken magst oder einfach nur mal wissen willst, was eigentlich dieses "Internet" ist.<br />
<br />
{{#ev:vimeo|338831095|1001}}<br />
<br />
== Wann treffen wir uns? == <br />
<br />
* Wegen Umzug vorübergehend geschlossen.<br />
* <s>Regelbetrieb: '''donnerstags ab 19:30 Uhr'''</s><br />
* <s>In unseren Räumen findet auch regelmäßig ein [https://www.ccc.de/de/club/chaostreffs Chaostreff] statt: https://chaostreff-nuernberg.de/</s><br />
* <s>Vortagstermin: Wir versuchen jeden 3. Montag im Monat etwas interessantes zu erzählen. Termine siehe [[Vorträge]].</s><br />
* Wenn du dir unsicher bist, kannst du uns jederzeit per Mail, auf Mastodon <del>oder im IRC</del> erreichen.<br />
<br />
== Wo treffen wir uns? ==<br />
<br />
[[Datei:Aerial Nuremberg Kuenstlerhaus-Nuernberg.jpg|200px|right|alt=Luftaufnahme von Nürnberg mit Pfeil auf die Peuntgasse 5]]<br />
* <s>Peuntgasse 5, 90402 Nürnberg</s><br />
* <s>Es sollte offen sein, wir haben aber auch eine Klingel</s><br />
* <s>[https://www.openstreetmap.org/node/5332891104 Auf Karte anzeigen]</s><br />
* [[Wegbeschreibung]]<br />
* Latitude: 49.44906<br />
* Longitude: 11.08069<br />
<br />
== Kontakt ==<br />
<br />
[[Datei:Puffy mit Laptop.jpg|200px|right|alt=Puffy sitzt auf einem Sessel und schielt an seinem MacBook vorbei]]<br />
* Offizielle Mail: info@k4cg.org<br />
* Mastodon: [https://chaos.social/@k4cg @k4cg@chaos.social]<br />
* IRC: Libera.chat, Channel: #k4cg ([https://web.libera.chat/#k4cg Webchat])<br />
* [[Kontakt|Mailingliste]]<br />
* Weiteres findet ihr unter [[Kontakt]]</div>
Noqqe
https://k4cg.org/index.php?title=Galerie&diff=19876
Galerie
2023-08-07T08:05:57Z
<p>Noqqe: /* K4CG (2016-2023) */</p>
<hr />
<div>== K4CG (seit 2023) == <br />
<br />
Der Einzug <br />
<br />
<gallery widths=300px heights=300px mode="packed-hover"><br />
Einzug1.jpg<br />
Einzug2.jpg<br />
Einzug3.jpg<br />
Einzug4.jpg<br />
Einzug5.jpg<br />
Einzug6.jpg<br />
</gallery><br />
<br />
== K4CG (2017-2023) ==<br />
<br />
Peuntgasse 5.<br />
<br />
<gallery widths=300px heights=300px mode="packed-hover"><br />
P5_1.jpg|Werkbank Blick vom Arbeitstisch<br />
DSC04290.jpg|Blick von der Tür<br />
p5front1.jpg<br />
p5front2.jpg<br />
p5front3.jpg<br />
foto1.jpeg<br />
foto2.jpeg<br />
foto3.jpeg<br />
foto4.jpeg<br />
</gallery><br />
<br />
Auzug <br />
<br />
<gallery widths=300px heights=300px mode="packed-hover"><br />
Auszug1.jpg<br />
Auszug2.jpg<br />
Auszug3.jpg<br />
</gallery><br />
<br />
== K4CG (1999-2017) == <br />
<br />
Königsstr. 93 - Im Turm 3. OG<br />
<br />
<gallery widths=300px heights=300px mode="packed-hover"><br />
Panorama3.jpg|Panorama<br />
K4_1.jpg|Beamer mit nichtparasoup<br />
K4_2.jpg|Beamer aus<br />
K4_3.jpg|k4cg<br />
K4_4.jpg|Unser Raum mit Projekt FreedomLight<br />
K4_5.jpg|k4cg<br />
K4_6.jpg|k4cg<br />
K4_7.jpg|k4cg<br />
</gallery><br />
<br />
== Anderes ==<br />
<br />
<gallery widths=300px heights=300px mode="packed-hover"><br />
NN-Artikel.jpg|Artikel in den Nürnberger Nachrichten<br />
Panorama.jpeg|Panorama<br />
</gallery></div>
Noqqe
https://k4cg.org/index.php?title=Galerie&diff=19875
Galerie
2023-08-07T08:05:46Z
<p>Noqqe: /* K4CG (1999-2015) */</p>
<hr />
<div>== K4CG (seit 2023) == <br />
<br />
Der Einzug <br />
<br />
<gallery widths=300px heights=300px mode="packed-hover"><br />
Einzug1.jpg<br />
Einzug2.jpg<br />
Einzug3.jpg<br />
Einzug4.jpg<br />
Einzug5.jpg<br />
Einzug6.jpg<br />
</gallery><br />
<br />
== K4CG (2016-2023) ==<br />
<br />
Peuntgasse 5.<br />
<br />
<gallery widths=300px heights=300px mode="packed-hover"><br />
P5_1.jpg|Werkbank Blick vom Arbeitstisch<br />
DSC04290.jpg|Blick von der Tür<br />
p5front1.jpg<br />
p5front2.jpg<br />
p5front3.jpg<br />
foto1.jpeg<br />
foto2.jpeg<br />
foto3.jpeg<br />
foto4.jpeg<br />
</gallery><br />
<br />
Auzug <br />
<br />
<gallery widths=300px heights=300px mode="packed-hover"><br />
Auszug1.jpg<br />
Auszug2.jpg<br />
Auszug3.jpg<br />
</gallery><br />
<br />
<br />
== K4CG (1999-2017) == <br />
<br />
Königsstr. 93 - Im Turm 3. OG<br />
<br />
<gallery widths=300px heights=300px mode="packed-hover"><br />
Panorama3.jpg|Panorama<br />
K4_1.jpg|Beamer mit nichtparasoup<br />
K4_2.jpg|Beamer aus<br />
K4_3.jpg|k4cg<br />
K4_4.jpg|Unser Raum mit Projekt FreedomLight<br />
K4_5.jpg|k4cg<br />
K4_6.jpg|k4cg<br />
K4_7.jpg|k4cg<br />
</gallery><br />
<br />
== Anderes ==<br />
<br />
<gallery widths=300px heights=300px mode="packed-hover"><br />
NN-Artikel.jpg|Artikel in den Nürnberger Nachrichten<br />
Panorama.jpeg|Panorama<br />
</gallery></div>
Noqqe
https://k4cg.org/index.php?title=Galerie&diff=19874
Galerie
2023-08-07T08:01:03Z
<p>Noqqe: </p>
<hr />
<div>== K4CG (seit 2023) == <br />
<br />
Der Einzug <br />
<br />
<gallery widths=300px heights=300px mode="packed-hover"><br />
Einzug1.jpg<br />
Einzug2.jpg<br />
Einzug3.jpg<br />
Einzug4.jpg<br />
Einzug5.jpg<br />
Einzug6.jpg<br />
</gallery><br />
<br />
== K4CG (2016-2023) ==<br />
<br />
Peuntgasse 5.<br />
<br />
<gallery widths=300px heights=300px mode="packed-hover"><br />
P5_1.jpg|Werkbank Blick vom Arbeitstisch<br />
DSC04290.jpg|Blick von der Tür<br />
p5front1.jpg<br />
p5front2.jpg<br />
p5front3.jpg<br />
foto1.jpeg<br />
foto2.jpeg<br />
foto3.jpeg<br />
foto4.jpeg<br />
</gallery><br />
<br />
Auzug <br />
<br />
<gallery widths=300px heights=300px mode="packed-hover"><br />
Auszug1.jpg<br />
Auszug2.jpg<br />
Auszug3.jpg<br />
</gallery><br />
<br />
<br />
== K4CG (1999-2015) == <br />
<br />
Königsstr. 93 - Im Turm 3. OG<br />
<br />
<gallery widths=300px heights=300px mode="packed-hover"><br />
Panorama3.jpg|Panorama<br />
K4_1.jpg|Beamer mit nichtparasoup<br />
K4_2.jpg|Beamer aus<br />
K4_3.jpg|k4cg<br />
K4_4.jpg|Unser Raum mit Projekt FreedomLight<br />
K4_5.jpg|k4cg<br />
K4_6.jpg|k4cg<br />
K4_7.jpg|k4cg<br />
</gallery><br />
<br />
== Anderes ==<br />
<br />
<gallery widths=300px heights=300px mode="packed-hover"><br />
NN-Artikel.jpg|Artikel in den Nürnberger Nachrichten<br />
Panorama.jpeg|Panorama<br />
</gallery></div>
Noqqe
https://k4cg.org/index.php?title=Datei:Einzug2.jpg&diff=19873
Datei:Einzug2.jpg
2023-08-07T07:59:25Z
<p>Noqqe: </p>
<hr />
<div></div>
Noqqe
https://k4cg.org/index.php?title=Galerie&diff=19872
Galerie
2023-08-07T07:59:08Z
<p>Noqqe: </p>
<hr />
<div>== K4CG (seit 2023) == <br />
<br />
Der Einzug <br />
<br />
<gallery widths=300px heights=300px mode="packed-hover"><br />
Einzug1.jpg<br />
Einzug2.jpg<br />
Einzug3.jpg<br />
Einzug4.jpg<br />
Einzug5.jpg<br />
Einzug6.jpg<br />
</gallery><br />
<br />
== K4CG (2016-2023) ==<br />
<br />
Peuntgasse 5.<br />
<br />
<gallery widths=300px heights=300px mode="packed-hover"><br />
P5_1.jpg|Werkbank Blick vom Arbeitstisch<br />
DSC04290.jpg|Blick von der Tür<br />
p5front1.jpg<br />
p5front2.jpg<br />
p5front3.jpg<br />
foto1.jpeg<br />
foto2.jpeg<br />
foto3.jpeg<br />
foto4.jpeg<br />
</gallery><br />
<br />
Auzug <br />
<br />
<gallery widths=300px heights=300px mode="packed-hover"><br />
Auszug1.jpg<br />
Auszug2.jpg<br />
Auszug3.jpg<br />
</gallery><br />
<br />
<br />
== K4CG (bis 2015) == <br />
<br />
Königsstr. 93 - Im Turm 3. OG<br />
<br />
<gallery widths=300px heights=300px mode="packed-hover"><br />
Panorama3.jpg|Panorama<br />
K4_1.jpg|Beamer mit nichtparasoup<br />
K4_2.jpg|Beamer aus<br />
K4_3.jpg|k4cg<br />
K4_4.jpg|Unser Raum mit Projekt FreedomLight<br />
K4_5.jpg|k4cg<br />
K4_6.jpg|k4cg<br />
K4_7.jpg|k4cg<br />
</gallery><br />
<br />
== Anderes ==<br />
<br />
<gallery widths=300px heights=300px mode="packed-hover"><br />
NN-Artikel.jpg|Artikel in den Nürnberger Nachrichten<br />
Panorama.jpeg|Panorama<br />
</gallery></div>
Noqqe
https://k4cg.org/index.php?title=Datei:Einzug6.jpg&diff=19871
Datei:Einzug6.jpg
2023-08-07T07:57:58Z
<p>Noqqe: </p>
<hr />
<div></div>
Noqqe
https://k4cg.org/index.php?title=Datei:Einzug5.jpg&diff=19870
Datei:Einzug5.jpg
2023-08-07T07:57:49Z
<p>Noqqe: </p>
<hr />
<div></div>
Noqqe
https://k4cg.org/index.php?title=Datei:Einzug4.jpg&diff=19869
Datei:Einzug4.jpg
2023-08-07T07:57:42Z
<p>Noqqe: </p>
<hr />
<div></div>
Noqqe
https://k4cg.org/index.php?title=Datei:Einzug3.jpg&diff=19868
Datei:Einzug3.jpg
2023-08-07T07:57:34Z
<p>Noqqe: </p>
<hr />
<div></div>
Noqqe
https://k4cg.org/index.php?title=Datei:Einzug1.jpg&diff=19867
Datei:Einzug1.jpg
2023-08-07T07:57:17Z
<p>Noqqe: </p>
<hr />
<div></div>
Noqqe
https://k4cg.org/index.php?title=Datei:Auszug3.jpg&diff=19866
Datei:Auszug3.jpg
2023-08-07T07:57:06Z
<p>Noqqe: </p>
<hr />
<div></div>
Noqqe
https://k4cg.org/index.php?title=Datei:Auszug2.jpg&diff=19865
Datei:Auszug2.jpg
2023-08-07T07:56:57Z
<p>Noqqe: </p>
<hr />
<div></div>
Noqqe
https://k4cg.org/index.php?title=Datei:Auszug1.jpg&diff=19864
Datei:Auszug1.jpg
2023-08-07T07:56:29Z
<p>Noqqe: </p>
<hr />
<div></div>
Noqqe
https://k4cg.org/index.php?title=Galerie&diff=19863
Galerie
2023-08-07T07:50:50Z
<p>Noqqe: </p>
<hr />
<div>== K4CG (seit 2023) == <br />
<br />
<gallery widths=300px heights=300px mode="packed-hover"><br />
P5_1.jpg|Werkbank Blick vom Arbeitstisch<br />
DSC04290.jpg|Blick von der Tür<br />
p5front1.jpg<br />
p5front2.jpg<br />
p5front3.jpg<br />
foto1.jpeg<br />
foto2.jpeg<br />
foto3.jpeg<br />
foto4.jpeg<br />
</gallery><br />
<br />
== K4CG (2016-2023) ==<br />
<br />
Peuntgasse 5.<br />
<br />
<gallery widths=300px heights=300px mode="packed-hover"><br />
P5_1.jpg|Werkbank Blick vom Arbeitstisch<br />
DSC04290.jpg|Blick von der Tür<br />
p5front1.jpg<br />
p5front2.jpg<br />
p5front3.jpg<br />
foto1.jpeg<br />
foto2.jpeg<br />
foto3.jpeg<br />
foto4.jpeg<br />
</gallery><br />
<br />
== K4CG (bis 2015) == <br />
<br />
Königsstr. 93 - Im Turm 3. OG<br />
<br />
<gallery widths=300px heights=300px mode="packed-hover"><br />
Panorama3.jpg|Panorama<br />
K4_1.jpg|Beamer mit nichtparasoup<br />
K4_2.jpg|Beamer aus<br />
K4_3.jpg|k4cg<br />
K4_4.jpg|Unser Raum mit Projekt FreedomLight<br />
K4_5.jpg|k4cg<br />
K4_6.jpg|k4cg<br />
K4_7.jpg|k4cg<br />
</gallery><br />
<br />
== Anderes ==<br />
<br />
<gallery widths=300px heights=300px mode="packed-hover"><br />
NN-Artikel.jpg|Artikel in den Nürnberger Nachrichten<br />
Panorama.jpeg|Panorama<br />
</gallery></div>
Noqqe
https://k4cg.org/index.php?title=Kontakt&diff=19861
Kontakt
2023-08-01T07:19:27Z
<p>Noqqe: /* Weitere Accounts */</p>
<hr />
<div>== Wie kann man uns erreichen ==<br />
<br />
Die beste Möglichkeit uns zu erreichen habt ihr hier<br />
<br />
* '''Offizielle Mail''': info@k4cg.org<br />
* '''Mastodon''': [https://chaos.social/@k4cg @k4cg@chaos.social]<br />
<br />
== Kanäle ==<br />
<br />
Desweiteren nutzen wir folgende Kanäle<br />
* '''IRC''': Libera.chat, Channel: #k4cg ([https://web.libera.chat/#k4cg Webchat])<br />
* '''Mailingliste''': k4cg@k4cg.org<br />
**Anmelden per Mail an k4cg+subscribe@k4cg.org <br />
**Abmelden per Mail an k4cg+unsubscribe@k4cg.org<br />
<br />
== Weitere Accounts ==<br />
<br />
Diese sind zwar vorhanden aber nicht mehr gepflegt<br />
<br />
* Facebook [https://www.facebook.com/k4cgnuernberg/]<br />
* Twitter: [https://twitter.com/k4cg @k4cg]</div>
Noqqe
https://k4cg.org/index.php?title=Kontakt&diff=19860
Kontakt
2023-08-01T07:18:24Z
<p>Noqqe: </p>
<hr />
<div>== Wie kann man uns erreichen ==<br />
<br />
Die beste Möglichkeit uns zu erreichen habt ihr hier<br />
<br />
* '''Offizielle Mail''': info@k4cg.org<br />
* '''Mastodon''': [https://chaos.social/@k4cg @k4cg@chaos.social]<br />
<br />
== Kanäle ==<br />
<br />
Desweiteren nutzen wir folgende Kanäle<br />
* '''IRC''': Libera.chat, Channel: #k4cg ([https://web.libera.chat/#k4cg Webchat])<br />
* '''Mailingliste''': k4cg@k4cg.org<br />
**Anmelden per Mail an k4cg+subscribe@k4cg.org <br />
**Abmelden per Mail an k4cg+unsubscribe@k4cg.org<br />
<br />
== Weitere Accounts ==<br />
<br />
Diese sind zwar vorhanden aber evtl. noch nicht bzw. nicht mehr aktiv gepflegt<br />
<br />
* Facebook [https://www.facebook.com/k4cgnuernberg/]</div>
Noqqe
https://k4cg.org/index.php?title=N%C3%BCrnberger_Hackspace_K4CG&diff=19859
Nürnberger Hackspace K4CG
2023-08-01T07:18:02Z
<p>Noqqe: /* Kontakt */</p>
<hr />
<div>__NOTOC__<br />
<gallery widths=250px heights=200px mode="packed-hover"><br />
P5_1.jpg|alt=Raumansicht mit Blick auf die Werkbank<br />
p5front2.jpg|alt=Hauseingang der Peuntgasse 5<br />
DSC04290.jpg|alt=Raumansicht mit Blick auf die Leinwand<br />
</gallery><br />
<br />
<!-- <br />
== Tag des offenen Hackspace ==<br />
<br />
Wir nehmen am Tag des offenen Hackspace teil! Wir haben [[Projekt:Tag_des_offenen_Hackspace_2023|weitere Informationen]] für dich zusammengefasst!<br />
--><br />
<br />
== Wer sind wir? == <br />
<br />
Die K4 Computergruppe (K4CG) ist Teil der [https://www.kunstkulturquartier.de/kuenstlerhaus/programm/werkstaetten Offenen Werkstätten] (Fotolabor, Siebdruck, Schmiede, Glas, Fahrrad, Keramik, Steinmetz, Holz, Porträt, Pixelwerkstatt) im Künstlerhaus Nürnberg und ist allen zugänglich. Aktuell sind wir in der Peuntgasse 5 im 2. OG untergebracht. Nach der Generalsanierung des Künstlerhauses zieht die Computergruppe wieder in die Königstraße 93 zurück (voraussichtlich Mitte 2023).<br />
<br />
Uns sind alle Menschen willkommen, die sich für Technik interessieren. Egal ob Du Linux/*BSD/macOS/Windows Nutzerinnen und Nutzer suchst, Tipps und Hilfe beim Programmieren, Löten, 3D-Drucken brauchst, ein Bier bzw. eine Club Mate mit Nerds trinken magst oder einfach nur mal wissen willst, was eigentlich dieses "Internet" ist.<br />
<br />
{{#ev:vimeo|338831095|1001}}<br />
<br />
== Wann treffen wir uns? == <br />
<br />
* Regelbetrieb: '''donnerstags ab 19:30 Uhr'''<br />
* In unseren Räumen findet auch regelmäßig ein [https://www.ccc.de/de/club/chaostreffs Chaostreff] statt: https://chaostreff-nuernberg.de/<br />
* Vortagstermin: Wir versuchen jeden 3. Montag im Monat etwas interessantes zu erzählen. Termine siehe [[Vorträge]].<br />
* Wenn du dir unsicher bist, kannst du uns jederzeit per Mail, auf Twitter, auf Mastodon <del>oder im IRC</del> erreichen.<br />
<br />
== Wo treffen wir uns? ==<br />
<br />
[[Datei:Aerial Nuremberg Kuenstlerhaus-Nuernberg.jpg|200px|right|alt=Luftaufnahme von Nürnberg mit Pfeil auf die Peuntgasse 5]]<br />
* Peuntgasse 5, 90402 Nürnberg<br />
* Es sollte offen sein, wir haben aber auch eine Klingel<br />
* [https://www.openstreetmap.org/node/5332891104 Auf Karte anzeigen] <br />
* [[Wegbeschreibung]]<br />
* Latitude: 49.44906<br />
* Longitude: 11.08069<br />
<br />
== Kontakt ==<br />
<br />
[[Datei:Puffy mit Laptop.jpg|200px|right|alt=Puffy sitzt auf einem Sessel und schielt an seinem MacBook vorbei]]<br />
* Offizielle Mail: info@k4cg.org<br />
* Mastodon: [https://chaos.social/@k4cg @k4cg@chaos.social]<br />
* IRC: Libera.chat, Channel: #k4cg ([https://web.libera.chat/#k4cg Webchat])<br />
* [[Kontakt|Mailingliste]]<br />
* Weiteres findet ihr unter [[Kontakt]]</div>
Noqqe
https://k4cg.org/index.php?title=Hosts&diff=19785
Hosts
2022-08-11T18:08:35Z
<p>Noqqe: proxmox beschreibung angepasst</p>
<hr />
<div><br />
{| class="wikitable"<br />
|-<br />
! Hostname (VM name) !! IP !! [[Projekt:VPN|VPN]] IP !!Services<br />
|-<br />
| [[Host:rumpl.k4cg.org|rumpl.k4cg.org]] || 213.95.154.150 || 192.168.42.1 || wiki, mailingliste, irc bouncer, stats, irc bot, tor<br />
|-<br />
| [[Host:suppe.k4cg.org|suppe.k4cg.org]] || 213.95.154.222 || - || nichtparasoup<br />
|-<br />
| [[Host:router.intern.k4cg.org|router]] || 192.168.5.1 || || "the internet" (DHCP: 192.168.5.100 - 200; Lease: 10 Tage)<br />
|-<br />
| [[Host:scotty.intern.k4cg.org|scotty.intern.k4cg.org]] || 192.168.5.3|| || Beamer-Rechner<br />
|-<br />
| [[Host:hue.intern.k4cg.org|hue.intern.k4cg.org]] || 192.168.5.4|| || Philips Hue Bridge (API Endpoint)<br />
|-<br />
| printer.intern.k4cg.org || 192.168.5.5|| || Der Drucker der mit Windows, Linux und Mac geht<br />
|-<br />
| printerserver.intern.k4cg.org || 192.168.5.6|| || Printerserver für Drucken auf dem printer mit Linux<br />
|-<br />
| [[Host:octopi.intern.k4cg.org|octopi.intern.k4cg.org]] || 192.168.5.7|| || Raspi mit installiertem OctoPi um einfacher den 3D-Drucker zu füttern<br />
|-<br />
| [[Host:qnap.intern.k4cg.org|qnap.intern.k4cg.org]] || 192.168.5.8|| || QNAP (FTP, Media Server)<br />
|-<br />
| [[Host:tuerstatus.intern.k4cg.org|tuerstatus.intern.k4cg.org]] || 192.168.5.9|| || ESP für Türstatus<br />
|-<br />
| [[Host:beehive.intern.k4cg.org|beehive.intern.k4cg.org]] || 192.168.5.10|| 192.168.42.3 || Debian mit Proxmox VE als VM Host<br />
|-<br />
| [[Netzwerk#Switch1|switch1.intern.k4cg.org]] || 192.168.5.11|| || Switch hinter der [[Host:heimat.intern.k4cg.org|Heimat]]<br />
|-<br />
| [[Netzwerk#Switch2|switch2.intern.k4cg.org]] || 192.168.5.12|| || Switch unter der Werkbank<br />
|-<br />
| [[Netzwerk#Switch3|switch3.intern.k4cg.org]] || 192.168.5.13|| || Switch bei der Couch<br />
|-<br />
| [[Host:nixnoqqe.intern.k4cg.org|nixnoqqe.intern.k4cg.org]] (noqqe-NIXOS01) || 192.168.5.14|| || Privates nixos von [[Benutzer:Noqqe|Noqqe]] <br />
|-<br />
| [[Host:kadsenglo.intern.k4cg.org|kadsenglo.intern.k4cg.org]] || 192.168.5.15|| || ESP-Steckdose für Kadse<br />
|-<br />
| [[Host:master-don.intern.k4cg.org|master-don.intern.k4cg.org]] (k4cg-DEBIAN01) || 192.168.5.19|| || Twitter to Mastodon Skript Host<br />
|-<br />
| [[Host:mqtt.intern.k4cg.org|mqtt.intern.k4cg.org]] (k4cg-NIXOS01) || 192.168.5.20|| 192.168.42.2 || MQTT Server<br />
|-<br />
| [[Host:tennis.intern.k4cg.org|tennis.intern.k4cg.org]] || 192.168.5.21|| || Tischtennis Sensor Raspberry PI <br />
|-<br />
| [[Host:sebastian.intern.k4cg.org|sebastian.intern.k4cg.org]] (k4cg-NIXOS02) || 192.168.5.23|| || Bastion Host<br />
|-<br />
| [[Host:switcher.intern.k4cg.org|switcher.intern.k4cg.org]] || 192.168.5.26|| || raspberry pi der dinge schalten kann<br />
|-<br />
| [[Host:matomat.fritz.box|matomat.fritz.box]] || 192.168.5.27|| || [[Projekt:Matomat]]<br />
|-<br />
| [[Host:infoscreen.intern.k4cg.org|infoscreen.intern.k4cg.org]] || 192.168.5.30|| || Hostet [[Projekt:infoscreen]]<br />
|-<br />
| [[Host:proxmox.intern.k4cg.org|proxmox.intern.k4cg.org]] || 192.168.5.31|| || Hostet Proxmox für Homeassi<br />
|-<br />
| [[Host:chrisc-deb.intern.k4cg.org|chrisc-deb.intern.k4cg.org]] || 192.168.5.33|| || Debian VM [[Benutzer:ChrisC|ChrisC]]<br />
|-<br />
| [[Host:homeassi.intern.k4cg.org|homeassi.intern.k4cg.org]] || 192.168.5.34|| 192.168.42.5 || Debian VM mit [https://www.home-assistant.io/ homeassi]<br />
|-<br />
| DHCP || 192.168.5.100 - 200|| || Bitte keine IPs in diesem Bereich vergeben! Lease: 10 Tage<br />
|}<br />
<br />
Die oben genannten Hosts wurden per Hand im neuen Netz (192.168.5.0/24) registriert und die Konfiguration ggf. per Hand geändert.<br />
<br />
== Unportierte Hosts (altes Netz 192.168.178.0/24) ==<br />
<br />
{| class="wikitable"<br />
|-<br />
! Hostname (VM name) !! IP !! [[Projekt:VPN|VPN]] IP !!Services<br />
|-<br />
| laseraccess || 192.168.178.2 || || Wifi: SSID "k4cg-intern"<br />
|-<br />
| paparoach.intern.k4cg.org || 192.168.178.6|| || Raspberry Pi (as in "last resort if [[Host:beehive.intern.k4cg.org|beehive]] is down)<br />
|-<br />
| sniperaccess || 192.168.178.19|| || Wifi: SSID "k4cg-devices" (hidden)<br />
|-<br />
| rifleaccess || 192.168.178.25|| 192.168.42.4 || tp-link 1043nd mit openWRT; SSIDS: k4cg-intern, k4cg-devices<br />
|-<br />
| localhorst.intern.k4cg.org (ckeen-DEBIAN01) || 192.168.178.29|| || debian von [[Benutzer:Ckeen|C-Keen]]<br />
|}</div>
Noqqe
https://k4cg.org/index.php?title=Host:infoscreen.intern.k4cg.org&diff=19784
Host:infoscreen.intern.k4cg.org
2022-06-09T19:47:38Z
<p>Noqqe: </p>
<hr />
<div>{{Hostbox<br />
| hostname = infoscreen.intern.k4cg.org<br />
| ipv4 = 192.168.5.30<br />
| network = 255.255.255.0<br />
| gateway = 192.168.5.1<br />
| DNS = 192.168.5.1<br />
| OS = Raspbian<br />
| location = K4CG<br />
| users = pi<br />
| maintainer = [[Benutzer:Ckeen]]<br />
}}<br />
<br />
Standard Raspbian image mit info-beamer-pi</div>
Noqqe
https://k4cg.org/index.php?title=Host:beehive.intern.k4cg.org&diff=19783
Host:beehive.intern.k4cg.org
2022-06-09T18:59:32Z
<p>Noqqe: ip fix</p>
<hr />
<div>{{Hostbox<br />
| hostname = beehive<br />
| ipv4 = 192.168.5.10<br />
| network = 255.255.255.0<br />
| gateway = 192.168.5.1<br />
| DNS = 192.168.5.1<br />
| OS = Debian GNU/Linux 10 (buster)<br />
| location = K4CG<br />
}}<br />
[[Kategorie:Dokumentationen]]<br />
[[Kategorie:Hosts]]<br />
<br />
=Virtualisierungs-Host=<br />
<br />
==System==<br />
Debian GNU/Linux 10 (buster) mit Proxmox VE<br />
* 120 GB SSD mit OS<br />
* 1 TB Raid1 mit LVM und Thinpool für VMs<br />
* 300 GB Backup alte VMs<br />
* NFS4 für Backup auf qnap:/proxmoxbackup<br />
<br />
==Verwaltung==<br />
<br />
Auch tunnelbar von aussen über die FritzBox<br />
<br />
https://192.168.5.10:8006/#v1:0:18:4::::::<br />
<br />
==VMs==<br />
TODO<br />
<br />
==geplante Aufgaben==<br />
TODO<br />
<br />
=Doku alter Beehive (Win 10 Hyper-V)=<br />
<br />
==VMs==<br />
{| class="wikitable sortable"<br />
|-<br />
! Name !! State !! Nested !! CPUs !! RAM (MB) !! HDD (GB)<br />
|-<br />
| ckeen-DEBIAN01 || Running || False || 1 || 512 || 20<br />
|-<br />
| k4cg-NIXOS01 || Running || False || 1 || 1024 || 10<br />
|-<br />
| k4cg-NIXOS02 || Running || False || 1 || 1024 || 40<br />
|-<br />
| noqqe-NIXOS01 || Running || False || 2 || 1024 || 40<br />
|}</div>
Noqqe
https://k4cg.org/index.php?title=Host:router.intern.k4cg.org&diff=19762
Host:router.intern.k4cg.org
2021-11-04T20:49:18Z
<p>Noqqe: </p>
<hr />
<div><br />
== Generell<br />
<br />
Komisches Setup mit OpenWRT<br />
<br />
WAN Settings unter Interfaces und "Edit" auf PPPOE Interace 6<br />
<br />
== Modem<br />
<br />
also es ist ein OpenWRT unter dem ein Modem liegt. <br />
<br />
https://www.zyxel.com/de/de/uploads/images/VMG1312-B30A_QSG_German_v100_Ed1_2012-01-17_de_Re-layout_Final.pdf</div>
Noqqe
https://k4cg.org/index.php?title=Hosts&diff=19761
Hosts
2021-11-04T20:48:05Z
<p>Noqqe: sdf</p>
<hr />
<div><br />
{| class="wikitable"<br />
|-<br />
! Hostname (VM name) !! IP !! [[Projekt:VPN|VPN]] IP !!Services<br />
|-<br />
| [[Host:rumpl.k4cg.org|rumpl.k4cg.org]] || 213.95.154.150 || 192.168.42.1 || wiki, mailingliste, irc bouncer, stats, irc bot, tor<br />
|-<br />
| [[Host:suppe.k4cg.org|suppe.k4cg.org]] || 213.95.154.222 || - || nichtparasoup<br />
|-<br />
| [[Host:router.intern.k4cg.org|router]] || 192.168.5.1 || || "the internet" (DHCP: 192.168.5.100 - 200; Lease: 10 Tage)<br />
|-<br />
| [[Host:scotty.intern.k4cg.org|scotty.intern.k4cg.org]] || 192.168.5.3|| || Beamer-Rechner<br />
|-<br />
| [[Host:hue.intern.k4cg.org|hue.intern.k4cg.org]] || 192.168.5.4|| || Philips Hue Bridge (API Endpoint)<br />
|-<br />
| printer.intern.k4cg.org || 192.168.5.5|| || Der Drucker der mit Windows, Linux und Mac geht<br />
|-<br />
| printerserver.intern.k4cg.org || 192.168.5.6|| || Printerserver für Drucken auf dem printer mit Linux<br />
|-<br />
| [[Host:octopi.intern.k4cg.org|octopi.intern.k4cg.org]] || 192.168.5.7|| || Raspi mit installiertem OctoPi um einfacher den 3D-Drucker zu füttern<br />
|-<br />
| [[Host:qnap.intern.k4cg.org|qnap.intern.k4cg.org]] || 192.168.5.8|| || QNAP (FTP, Media Server)<br />
|-<br />
| [[Host:tuerstatus.intern.k4cg.org|tuerstatus.intern.k4cg.org]] || 192.168.5.9|| || ESP für Türstatus<br />
|-<br />
| [[Host:beehive.intern.k4cg.org|beehive.intern.k4cg.org]] || 192.168.5.10|| 192.168.42.3 || Debian mit Proxmox VE als VM Host<br />
|-<br />
| [[Netzwerk#Switch1|switch1.intern.k4cg.org]] || 192.168.5.11|| || Switch hinter der [[Host:heimat.intern.k4cg.org|Heimat]]<br />
|-<br />
| [[Netzwerk#Switch2|switch2.intern.k4cg.org]] || 192.168.5.12|| || Switch unter der Werkbank<br />
|-<br />
| [[Netzwerk#Switch3|switch3.intern.k4cg.org]] || 192.168.5.13|| || Switch bei der Couch<br />
|-<br />
| [[Host:nixnoqqe.intern.k4cg.org|nixnoqqe.intern.k4cg.org]] (noqqe-NIXOS01) || 192.168.5.14|| || Privates nixos von [[Benutzer:Noqqe|Noqqe]] <br />
|-<br />
| [[Host:kadsenglo.intern.k4cg.org|kadsenglo.intern.k4cg.org]] || 192.168.5.15|| || ESP-Steckdose für Kadse<br />
|-<br />
| [[Host:master-don.intern.k4cg.org|master-don.intern.k4cg.org]] (k4cg-DEBIAN01) || 192.168.5.19|| || Twitter to Mastodon Skript Host<br />
|-<br />
| [[Host:mqtt.intern.k4cg.org|mqtt.intern.k4cg.org]] (k4cg-NIXOS01) || 192.168.5.20|| 192.168.42.2 || MQTT Server<br />
|-<br />
| [[Host:tennis.intern.k4cg.org|tennis.intern.k4cg.org]] || 192.168.5.21|| || Tischtennis Sensor Raspberry PI <br />
|-<br />
| [[Host:sebastian.intern.k4cg.org|sebastian.intern.k4cg.org]] (k4cg-NIXOS02) || 192.168.5.23|| || Bastion Host<br />
|-<br />
| [[Host:switcher.intern.k4cg.org|switcher.intern.k4cg.org]] || 192.168.5.26|| || raspberry pi der dinge schalten kann<br />
|-<br />
| [[Host:matomat.fritz.box|matomat.fritz.box]] || 192.168.5.27|| || [[Projekt:Matomat]]<br />
|-<br />
| [[Host:infoscreen.intern.k4cg.org|infoscreen.intern.k4cg.org]] || 192.168.5.30|| || Hostet [[Projekt:infoscreen]]<br />
|-<br />
| [[Host:proxmox.intern.k4cg.org|proxmox.intern.k4cg.org]] || 192.168.5.31|| || Hostet [[Projekt:Proxmox]]<br />
|-<br />
| [[Host:chrisc-deb.intern.k4cg.org|chrisc-deb.intern.k4cg.org]] || 192.168.5.33|| || Debian VM [[Benutzer:ChrisC|ChrisC]]<br />
|-<br />
| [[Host:homeassi.intern.k4cg.org|homeassi.intern.k4cg.org]] || 192.168.5.34|| 192.168.42.5 || Debian VM mit [https://www.home-assistant.io/ homeassi]<br />
|-<br />
| DHCP || 192.168.5.100 - 200|| || Bitte keine IPs in diesem Bereich vergeben! Lease: 10 Tage<br />
|}<br />
<br />
Die oben genannten Hosts wurden per Hand im neuen Netz (192.168.5.0/24) registriert und die Konfiguration ggf. per Hand geändert.<br />
<br />
== Unportierte Hosts (altes Netz 192.168.178.0/24) ==<br />
<br />
{| class="wikitable"<br />
|-<br />
! Hostname (VM name) !! IP !! [[Projekt:VPN|VPN]] IP !!Services<br />
|-<br />
| laseraccess || 192.168.178.2 || || Wifi: SSID "k4cg-intern"<br />
|-<br />
| paparoach.intern.k4cg.org || 192.168.178.6|| || Raspberry Pi (as in "last resort if [[Host:beehive.intern.k4cg.org|beehive]] is down)<br />
|-<br />
| sniperaccess || 192.168.178.19|| || Wifi: SSID "k4cg-devices" (hidden)<br />
|-<br />
| rifleaccess || 192.168.178.25|| 192.168.42.4 || tp-link 1043nd mit openWRT; SSIDS: k4cg-intern, k4cg-devices<br />
|-<br />
| localhorst.intern.k4cg.org (ckeen-DEBIAN01) || 192.168.178.29|| || debian von [[Benutzer:Ckeen|C-Keen]]<br />
|}</div>
Noqqe
https://k4cg.org/index.php?title=Host:router.intern.k4cg.org&diff=19760
Host:router.intern.k4cg.org
2021-11-04T20:47:31Z
<p>Noqqe: Die Seite wurde neu angelegt: „ ## Generell Komisches Setup ## Modem also es ist ein OpenWRT unter dem ein Modem liegt. https://www.zyxel.com/de/de/uploads/images/VMG1312-B30A_QSG_Germa…“</p>
<hr />
<div><br />
## Generell<br />
<br />
Komisches Setup<br />
<br />
## Modem<br />
<br />
also es ist ein OpenWRT unter dem ein Modem liegt. <br />
<br />
https://www.zyxel.com/de/de/uploads/images/VMG1312-B30A_QSG_German_v100_Ed1_2012-01-17_de_Re-layout_Final.pdf</div>
Noqqe
https://k4cg.org/index.php?title=Event:2020/02/17_Terraform_%26_AWS&diff=19740
Event:2020/02/17 Terraform & AWS
2021-08-03T07:37:34Z
<p>Noqqe: Die Seite wurde neu angelegt: „Wenn ich die Folien nochmal finde, lade ich sie hoch. :) Derweil kann man verschiedene Quellen empfehlen: https://learn.hashicorp.com/terraform Meine Cheat…“</p>
<hr />
<div>Wenn ich die Folien nochmal finde, lade ich sie hoch. :) <br />
<br />
Derweil kann man verschiedene Quellen empfehlen:<br />
<br />
https://learn.hashicorp.com/terraform<br />
<br />
Meine Cheatsheets:<br />
<br />
https://noqqe.de/sammelsurium/terraform/</div>
Noqqe
https://k4cg.org/index.php?title=Host:suppe.k4cg.org&diff=19727
Host:suppe.k4cg.org
2021-01-27T10:22:43Z
<p>Noqqe: </p>
<hr />
<div>{{Hostbox<br />
| hostname = suppe.k4cg.org<br />
| ipv4 = 213.95.154.222<br />
| network = 255.255.255.0<br />
| gateway = 192.168.178.1<br />
| DNS = 192.168.178.1<br />
| OS = NixOS<br />
| location = noris network AG<br />
| users = noqqe<br />
| maintainer = [[Benutzer:noqqe]]<br />
}}<br />
<br />
[[Kategorie:Dokumentationen]]<br />
[[Kategorie:Hosts]]<br />
<br />
=== General ===<br />
<br />
Hostet:<br />
<br />
* nichtparasoup ( https://nicht.parasoup.de / https://nichtparasoup.de ) <br />
<br />
=== Hardware Umfeld ===<br />
<br />
* CPU: 2<br />
* RAM: 2GB<br />
* SSD: 20GB (performance storage)<br />
<br />
Bei noris Network - OpenStack unter [noris.cloud].<br />
<br />
Dort haben wir 2000 Cloud Credits erhalten die wir mittels eines Excel Sheets ausgeben können. <br />
<br />
Zugang zur Plattform steht in <code>pass</code><br />
<br />
=== OS ===<br />
<br />
Wir betreiben hier ein NixOS.<br />
<br />
Alle Konfigurationen finden also in <code>/etc/nixos/configuration.nix</code> statt.<br />
<br />
Das sieht am Anfang verwirrend aus, aber wenn man sich auf der [https://nixos.org NixOS] Site unter Options umsieht, findet sich zu jedem Punkt der gesamten Optionen eine Erklärung.<br />
<br />
=== IPv6 ===<br />
<br />
Leider unterstützt die noris.cloud Plattform noch kein IPv6 :( <br />
<br />
=== nichtparasoup ===<br />
<br />
==== Setup ==== <br />
<br />
Wir benutzen zum Hosting der Hackspace Entertainment Systems Podman in Docker Containern<br />
<br />
In /etc/nixos/containers.nix<br />
<br />
<pre><br />
virtualisation.oci-containers = {<br />
backend = "podman";<br />
containers = {<br />
<br />
nichtparasoupsfw = {<br />
image = "noqqe/nichtparasoup:0.0.2";<br />
volumes = [<br />
"/data/nichtparasoup/sfw.yml:/app/config.yml"<br />
];<br />
extraOptions = [<br />
"--ip=10.88.10.11"<br />
];<br />
};<br />
};<br />
};<br />
</pre><br />
<br />
Von diesen Instanzen gibt es insgesamt 4 Stück. Da der Traffic aber auf verschiedenen Kontexten (/sfw/, /kadsen/) aufgeteilt wird brauchen wir einen kleinen Ingress-Controller. <br />
<br />
Das macht in unserem Fall '''caddy''', Ebenfalls ein Container. Caddy übernimmt außerdem vollautomatisch die Verwaltung der Lets Encrypt Zertifikate für HTTPS<br />
<br />
<pre><br />
# Ingress traffic<br />
ingress = {<br />
image = "library/caddy:2.2.1";<br />
ports = [<br />
"80:80"<br />
"443:443"<br />
];<br />
volumes = [<br />
"/data/ingress/Caddyfile:/etc/caddy/Caddyfile"<br />
"/data/ingress/data:/data"<br />
"/data/ingress/config:/config"<br />
"/data/nichtparasoup/htdocs:/var/www"<br />
];<br />
};<br />
</pre><br />
<br />
Die Configuration von Caddy liegt hier: /data/ingress/Caddyfile<br />
<br />
==== Operations ====<br />
<br />
Laufen die Nichtparasoup Instanzen noch?<br />
<pre><br />
# podman ps<br />
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES<br />
6507d9d407fc docker.io/library/caddy:2.2.1 caddy run --confi... 26 minutes ago Up 26 minutes ago 0.0.0.0:80->80/tcp ingress<br />
0d4ab24decbc docker.io/noqqe/nichtparasoup:0.0.2 nichtparasoup run... 22 hours ago Up 22 hours ago nichtparasoupkadsen<br />
28d4d60e1e67 docker.io/noqqe/nichtparasoup:0.0.2 nichtparasoup run... 22 hours ago Up 22 hours ago nichtparasoupsfw<br />
865c11a9efbd docker.io/noqqe/nichtparasoup:0.0.2 nichtparasoup run... 22 hours ago Up 22 hours ago nichtparasouppr0<br />
fb07a61f9171 docker.io/noqqe/nichtparasoup:0.0.2 nichtparasoup run... 22 hours ago Up 22 hours ago nichtparasoupdemo<br />
</pre><br />
<br />
Logs einer nichtparasoup Instanz anzeigen<br />
<br />
<pre><br />
# systemctl status podman-nichtparasoupsfw.service<br />
● podman-nichtparasoupsfw.service<br />
Loaded: loaded (/nix/store/9zsm52g15mkdyn5ylfj1mfq3ndx0yc7l-unit-podman-nichtparasoupsfw.service/podman-nichtparasoupsfw.service; enabled; vendor preset: enabled)<br />
Active: active (running) since Tue 2021-01-26 13:00:10 CET; 22h ago<br />
</pre><br />
<br />
Eine nichtparasoup Instanz neustarten<br />
<br />
<pre><br />
systemctl restart podman-nichtparasoupsfw.service<br />
</pre><br />
<br />
Iwas ist komisch und / oder Kaputt<br />
<br />
NixOS to the rescue! Wenn irgendwas komisch ist, sollte <br />
<br />
<pre><br />
nixos-rebuild switch<br />
</pre><br />
<br />
reichen damit alles wieder schön ist. Die Vorteile eines deklarativen Systems <3<br />
<br />
=== Backup ===<br />
<br />
Im moment noch keines (Januar 2021). Daten sind tatsächlicherweise keine auf der Maschine, nur die Config wäre wichtig. <br />
Wird wie bei [[Host:rumpl.k4cg.org]] per Restic auf unser NAS eingerichtet.</div>
Noqqe
https://k4cg.org/index.php?title=Host:suppe.k4cg.org&diff=19726
Host:suppe.k4cg.org
2021-01-27T10:22:30Z
<p>Noqqe: </p>
<hr />
<div>{{Hostbox<br />
| hostname = suppe.k4cg.org<br />
| ipv4 = 213.95.154.222<br />
| network = 255.255.255.0<br />
| gateway = 192.168.178.1<br />
| DNS = 192.168.178.1<br />
| OS = NixOS<br />
| location = noris network AG<br />
| users = noqqe<br />
| maintainer = [[Benutzer:noqqe]]<br />
}}<br />
<br />
[[Kategorie:Dokumentationen]]<br />
[[Kategorie:Hosts]]<br />
<br />
=== General ===<br />
<br />
Hostet:<br />
<br />
* nichtparasoup ( https://nicht.parasoup.de / https://nichtparasoup.de ) <br />
<br />
=== Hardware Umfeld ===<br />
<br />
* CPU: 2<br />
* RAM: 2GB<br />
* SSD: 20GB (performance storage)<br />
<br />
Bei noris Network - OpenStack unter [noris.cloud].<br />
<br />
Dort haben wir 2000 Cloud Credits erhalten die wir mittels eines Excel Sheets ausgeben können. <br />
<br />
Zugang zur Plattform steht in <code>pass</code><br />
<br />
=== OS ===<br />
<br />
Wir betreiben hier ein NixOS.<br />
<br />
Alle Konfigurationen finden also in <code>/etc/nixos/configuration.nix</code> statt.<br />
<br />
Das sieht am Anfang verwirrend aus, aber wenn man sich auf der [https://nixos.org NixOS] Site unter Options umsieht, findet sich zu jedem Punkt der gesamten Optionen eine Erklärung.<br />
<br />
=== IPv6 ===<br />
<br />
Leider unterstützt die noris.cloud Plattform noch kein IPv6 :( <br />
<br />
=== nichtparasoup ===<br />
<br />
=== Setup === <br />
<br />
Wir benutzen zum Hosting der Hackspace Entertainment Systems Podman in Docker Containern<br />
<br />
In /etc/nixos/containers.nix<br />
<br />
<pre><br />
virtualisation.oci-containers = {<br />
backend = "podman";<br />
containers = {<br />
<br />
nichtparasoupsfw = {<br />
image = "noqqe/nichtparasoup:0.0.2";<br />
volumes = [<br />
"/data/nichtparasoup/sfw.yml:/app/config.yml"<br />
];<br />
extraOptions = [<br />
"--ip=10.88.10.11"<br />
];<br />
};<br />
};<br />
};<br />
</pre><br />
<br />
Von diesen Instanzen gibt es insgesamt 4 Stück. Da der Traffic aber auf verschiedenen Kontexten (/sfw/, /kadsen/) aufgeteilt wird brauchen wir einen kleinen Ingress-Controller. <br />
<br />
Das macht in unserem Fall '''caddy''', Ebenfalls ein Container. Caddy übernimmt außerdem vollautomatisch die Verwaltung der Lets Encrypt Zertifikate für HTTPS<br />
<br />
<pre><br />
# Ingress traffic<br />
ingress = {<br />
image = "library/caddy:2.2.1";<br />
ports = [<br />
"80:80"<br />
"443:443"<br />
];<br />
volumes = [<br />
"/data/ingress/Caddyfile:/etc/caddy/Caddyfile"<br />
"/data/ingress/data:/data"<br />
"/data/ingress/config:/config"<br />
"/data/nichtparasoup/htdocs:/var/www"<br />
];<br />
};<br />
</pre><br />
<br />
Die Configuration von Caddy liegt hier: /data/ingress/Caddyfile<br />
<br />
==== Operations ====<br />
<br />
Laufen die Nichtparasoup Instanzen noch?<br />
<pre><br />
# podman ps<br />
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES<br />
6507d9d407fc docker.io/library/caddy:2.2.1 caddy run --confi... 26 minutes ago Up 26 minutes ago 0.0.0.0:80->80/tcp ingress<br />
0d4ab24decbc docker.io/noqqe/nichtparasoup:0.0.2 nichtparasoup run... 22 hours ago Up 22 hours ago nichtparasoupkadsen<br />
28d4d60e1e67 docker.io/noqqe/nichtparasoup:0.0.2 nichtparasoup run... 22 hours ago Up 22 hours ago nichtparasoupsfw<br />
865c11a9efbd docker.io/noqqe/nichtparasoup:0.0.2 nichtparasoup run... 22 hours ago Up 22 hours ago nichtparasouppr0<br />
fb07a61f9171 docker.io/noqqe/nichtparasoup:0.0.2 nichtparasoup run... 22 hours ago Up 22 hours ago nichtparasoupdemo<br />
</pre><br />
<br />
Logs einer nichtparasoup Instanz anzeigen<br />
<br />
<pre><br />
# systemctl status podman-nichtparasoupsfw.service<br />
● podman-nichtparasoupsfw.service<br />
Loaded: loaded (/nix/store/9zsm52g15mkdyn5ylfj1mfq3ndx0yc7l-unit-podman-nichtparasoupsfw.service/podman-nichtparasoupsfw.service; enabled; vendor preset: enabled)<br />
Active: active (running) since Tue 2021-01-26 13:00:10 CET; 22h ago<br />
</pre><br />
<br />
Eine nichtparasoup Instanz neustarten<br />
<br />
<pre><br />
systemctl restart podman-nichtparasoupsfw.service<br />
</pre><br />
<br />
Iwas ist komisch und / oder Kaputt<br />
<br />
NixOS to the rescue! Wenn irgendwas komisch ist, sollte <br />
<br />
<pre><br />
nixos-rebuild switch<br />
</pre><br />
<br />
reichen damit alles wieder schön ist. Die Vorteile eines deklarativen Systems <3<br />
<br />
=== Backup ===<br />
<br />
Im moment noch keines (Januar 2021). Daten sind tatsächlicherweise keine auf der Maschine, nur die Config wäre wichtig. <br />
Wird wie bei [[Host:rumpl.k4cg.org]] per Restic auf unser NAS eingerichtet.</div>
Noqqe
https://k4cg.org/index.php?title=Host:suppe.k4cg.org&diff=19725
Host:suppe.k4cg.org
2021-01-27T10:22:15Z
<p>Noqqe: Operations Sektion eingefuugt</p>
<hr />
<div>{{Hostbox<br />
| hostname = suppe.k4cg.org<br />
| ipv4 = 213.95.154.222<br />
| network = 255.255.255.0<br />
| gateway = 192.168.178.1<br />
| DNS = 192.168.178.1<br />
| OS = NixOS<br />
| location = noris network AG<br />
| users = noqqe<br />
| maintainer = [[Benutzer:noqqe]]<br />
}}<br />
<br />
[[Kategorie:Dokumentationen]]<br />
[[Kategorie:Hosts]]<br />
<br />
=== General ===<br />
<br />
Hostet:<br />
<br />
* nichtparasoup ( https://nicht.parasoup.de / https://nichtparasoup.de ) <br />
<br />
=== Hardware Umfeld ===<br />
<br />
* CPU: 2<br />
* RAM: 2GB<br />
* SSD: 20GB (performance storage)<br />
<br />
Bei noris Network - OpenStack unter [noris.cloud].<br />
<br />
Dort haben wir 2000 Cloud Credits erhalten die wir mittels eines Excel Sheets ausgeben können. <br />
<br />
Zugang zur Plattform steht in <code>pass</code><br />
<br />
=== OS ===<br />
<br />
Wir betreiben hier ein NixOS.<br />
<br />
Alle Konfigurationen finden also in <code>/etc/nixos/configuration.nix</code> statt.<br />
<br />
Das sieht am Anfang verwirrend aus, aber wenn man sich auf der [https://nixos.org NixOS] Site unter Options umsieht, findet sich zu jedem Punkt der gesamten Optionen eine Erklärung.<br />
<br />
=== IPv6 ===<br />
<br />
Leider unterstützt die noris.cloud Plattform noch kein IPv6 :( <br />
<br />
=== nichtparasoup ===<br />
<br />
=== Setup === <br />
<br />
Wir benutzen zum Hosting der Hackspace Entertainment Systems Podman in Docker Containern<br />
<br />
In /etc/nixos/containers.nix<br />
<br />
<pre><br />
virtualisation.oci-containers = {<br />
backend = "podman";<br />
containers = {<br />
<br />
nichtparasoupsfw = {<br />
image = "noqqe/nichtparasoup:0.0.2";<br />
volumes = [<br />
"/data/nichtparasoup/sfw.yml:/app/config.yml"<br />
];<br />
extraOptions = [<br />
"--ip=10.88.10.11"<br />
];<br />
};<br />
};<br />
};<br />
</pre><br />
<br />
Von diesen Instanzen gibt es insgesamt 4 Stück. Da der Traffic aber auf verschiedenen Kontexten (/sfw/, /kadsen/) aufgeteilt wird brauchen wir einen kleinen Ingress-Controller. <br />
<br />
Das macht in unserem Fall '''caddy''', Ebenfalls ein Container. Caddy übernimmt außerdem vollautomatisch die Verwaltung der Lets Encrypt Zertifikate für HTTPS<br />
<br />
<pre><br />
# Ingress traffic<br />
ingress = {<br />
image = "library/caddy:2.2.1";<br />
ports = [<br />
"80:80"<br />
"443:443"<br />
];<br />
volumes = [<br />
"/data/ingress/Caddyfile:/etc/caddy/Caddyfile"<br />
"/data/ingress/data:/data"<br />
"/data/ingress/config:/config"<br />
"/data/nichtparasoup/htdocs:/var/www"<br />
];<br />
};<br />
</pre><br />
<br />
Die Configuration von Caddy liegt hier: /data/ingress/Caddyfile<br />
<br />
==== Operations ===<br />
<br />
Laufen die Nichtparasoup Instanzen noch?<br />
<pre><br />
# podman ps<br />
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES<br />
6507d9d407fc docker.io/library/caddy:2.2.1 caddy run --confi... 26 minutes ago Up 26 minutes ago 0.0.0.0:80->80/tcp ingress<br />
0d4ab24decbc docker.io/noqqe/nichtparasoup:0.0.2 nichtparasoup run... 22 hours ago Up 22 hours ago nichtparasoupkadsen<br />
28d4d60e1e67 docker.io/noqqe/nichtparasoup:0.0.2 nichtparasoup run... 22 hours ago Up 22 hours ago nichtparasoupsfw<br />
865c11a9efbd docker.io/noqqe/nichtparasoup:0.0.2 nichtparasoup run... 22 hours ago Up 22 hours ago nichtparasouppr0<br />
fb07a61f9171 docker.io/noqqe/nichtparasoup:0.0.2 nichtparasoup run... 22 hours ago Up 22 hours ago nichtparasoupdemo<br />
</pre><br />
<br />
Logs einer nichtparasoup Instanz anzeigen<br />
<br />
<pre><br />
# systemctl status podman-nichtparasoupsfw.service<br />
● podman-nichtparasoupsfw.service<br />
Loaded: loaded (/nix/store/9zsm52g15mkdyn5ylfj1mfq3ndx0yc7l-unit-podman-nichtparasoupsfw.service/podman-nichtparasoupsfw.service; enabled; vendor preset: enabled)<br />
Active: active (running) since Tue 2021-01-26 13:00:10 CET; 22h ago<br />
</pre><br />
<br />
Eine nichtparasoup Instanz neustarten<br />
<br />
<pre><br />
systemctl restart podman-nichtparasoupsfw.service<br />
</pre><br />
<br />
Iwas ist komisch und / oder Kaputt<br />
<br />
NixOS to the rescue! Wenn irgendwas komisch ist, sollte <br />
<br />
<pre><br />
nixos-rebuild switch<br />
</pre><br />
<br />
reichen damit alles wieder schön ist. Die Vorteile eines deklarativen Systems <3 <br />
<br />
=== Backup ===<br />
<br />
Im moment noch keines (Januar 2021). Daten sind tatsächlicherweise keine auf der Maschine, nur die Config wäre wichtig. <br />
Wird wie bei [[Host:rumpl.k4cg.org]] per Restic auf unser NAS eingerichtet.</div>
Noqqe
https://k4cg.org/index.php?title=Host:suppe.k4cg.org&diff=19724
Host:suppe.k4cg.org
2021-01-27T10:16:55Z
<p>Noqqe: /* Hardware Umfeld */</p>
<hr />
<div>{{Hostbox<br />
| hostname = suppe.k4cg.org<br />
| ipv4 = 213.95.154.222<br />
| network = 255.255.255.0<br />
| gateway = 192.168.178.1<br />
| DNS = 192.168.178.1<br />
| OS = NixOS<br />
| location = noris network AG<br />
| users = noqqe<br />
| maintainer = [[Benutzer:noqqe]]<br />
}}<br />
<br />
[[Kategorie:Dokumentationen]]<br />
[[Kategorie:Hosts]]<br />
<br />
=== General ===<br />
<br />
Hostet:<br />
<br />
* nichtparasoup ( https://nicht.parasoup.de / https://nichtparasoup.de ) <br />
<br />
=== Hardware Umfeld ===<br />
<br />
* CPU: 2<br />
* RAM: 2GB<br />
* SSD: 20GB (performance storage)<br />
<br />
Bei noris Network - OpenStack unter [noris.cloud].<br />
<br />
Dort haben wir 2000 Cloud Credits erhalten die wir mittels eines Excel Sheets ausgeben können. <br />
<br />
Zugang zur Plattform steht in <code>pass</code><br />
<br />
=== OS ===<br />
<br />
Wir betreiben hier ein NixOS.<br />
<br />
Alle Konfigurationen finden also in <code>/etc/nixos/configuration.nix</code> statt.<br />
<br />
Das sieht am Anfang verwirrend aus, aber wenn man sich auf der [https://nixos.org NixOS] Site unter Options umsieht, findet sich zu jedem Punkt der gesamten Optionen eine Erklärung.<br />
<br />
=== IPv6 ===<br />
<br />
Leider unterstützt die noris.cloud Plattform noch kein IPv6 :( <br />
<br />
=== nichtparasoup ===<br />
<br />
Wir benutzen zum Hosting der Hackspace Entertainment Systems Podman in Docker Containern<br />
<br />
In /etc/nixos/containers.nix<br />
<br />
<pre><br />
virtualisation.oci-containers = {<br />
backend = "podman";<br />
containers = {<br />
<br />
nichtparasoupsfw = {<br />
image = "noqqe/nichtparasoup:0.0.2";<br />
volumes = [<br />
"/data/nichtparasoup/sfw.yml:/app/config.yml"<br />
];<br />
extraOptions = [<br />
"--ip=10.88.10.11"<br />
];<br />
};<br />
};<br />
};<br />
</pre><br />
<br />
Von diesen Instanzen gibt es insgesamt 4 Stück. Da der Traffic aber auf verschiedenen Kontexten (/sfw/, /kadsen/) aufgeteilt wird brauchen wir einen kleinen Ingress-Controller. <br />
<br />
Das macht in unserem Fall '''caddy''', Ebenfalls ein Container. Caddy übernimmt außerdem vollautomatisch die Verwaltung der Lets Encrypt Zertifikate für HTTPS<br />
<br />
<pre><br />
<br />
# Ingress traffic<br />
ingress = {<br />
image = "library/caddy:2.2.1";<br />
ports = [<br />
"80:80"<br />
"443:443"<br />
];<br />
volumes = [<br />
"/data/ingress/Caddyfile:/etc/caddy/Caddyfile"<br />
"/data/ingress/data:/data"<br />
"/data/ingress/config:/config"<br />
"/data/nichtparasoup/htdocs:/var/www"<br />
];<br />
};<br />
</pre><br />
<br />
Die Configuration von Caddy liegt hier: /data/ingress/Caddyfile<br />
<br />
=== Backup ===<br />
<br />
Im moment noch keines (Januar 2021). Daten sind tatsächlicherweise keine auf der Maschine, nur die Config wäre wichtig. <br />
Wird wie bei [[Host:rumpl.k4cg.org]] per Restic auf unser NAS eingerichtet.</div>
Noqqe
https://k4cg.org/index.php?title=Host:suppe.k4cg.org&diff=19723
Host:suppe.k4cg.org
2021-01-27T10:16:43Z
<p>Noqqe: </p>
<hr />
<div>{{Hostbox<br />
| hostname = suppe.k4cg.org<br />
| ipv4 = 213.95.154.222<br />
| network = 255.255.255.0<br />
| gateway = 192.168.178.1<br />
| DNS = 192.168.178.1<br />
| OS = NixOS<br />
| location = noris network AG<br />
| users = noqqe<br />
| maintainer = [[Benutzer:noqqe]]<br />
}}<br />
<br />
[[Kategorie:Dokumentationen]]<br />
[[Kategorie:Hosts]]<br />
<br />
=== General ===<br />
<br />
Hostet:<br />
<br />
* nichtparasoup ( https://nicht.parasoup.de / https://nichtparasoup.de ) <br />
<br />
=== Hardware Umfeld ===<br />
<br />
CPU: 2<br />
RAM: 2GB<br />
SSD: 20GB (performance storage)<br />
<br />
Bei noris Network - OpenStack unter [noris.cloud].<br />
<br />
Dort haben wir 2000 Cloud Credits erhalten die wir mittels eines Excel Sheets ausgeben können. <br />
<br />
Zugang zur Plattform steht in <code>pass</code><br />
<br />
<br />
=== OS ===<br />
<br />
Wir betreiben hier ein NixOS.<br />
<br />
Alle Konfigurationen finden also in <code>/etc/nixos/configuration.nix</code> statt.<br />
<br />
Das sieht am Anfang verwirrend aus, aber wenn man sich auf der [https://nixos.org NixOS] Site unter Options umsieht, findet sich zu jedem Punkt der gesamten Optionen eine Erklärung.<br />
<br />
=== IPv6 ===<br />
<br />
Leider unterstützt die noris.cloud Plattform noch kein IPv6 :( <br />
<br />
=== nichtparasoup ===<br />
<br />
Wir benutzen zum Hosting der Hackspace Entertainment Systems Podman in Docker Containern<br />
<br />
In /etc/nixos/containers.nix<br />
<br />
<pre><br />
virtualisation.oci-containers = {<br />
backend = "podman";<br />
containers = {<br />
<br />
nichtparasoupsfw = {<br />
image = "noqqe/nichtparasoup:0.0.2";<br />
volumes = [<br />
"/data/nichtparasoup/sfw.yml:/app/config.yml"<br />
];<br />
extraOptions = [<br />
"--ip=10.88.10.11"<br />
];<br />
};<br />
};<br />
};<br />
</pre><br />
<br />
Von diesen Instanzen gibt es insgesamt 4 Stück. Da der Traffic aber auf verschiedenen Kontexten (/sfw/, /kadsen/) aufgeteilt wird brauchen wir einen kleinen Ingress-Controller. <br />
<br />
Das macht in unserem Fall '''caddy''', Ebenfalls ein Container. Caddy übernimmt außerdem vollautomatisch die Verwaltung der Lets Encrypt Zertifikate für HTTPS<br />
<br />
<pre><br />
<br />
# Ingress traffic<br />
ingress = {<br />
image = "library/caddy:2.2.1";<br />
ports = [<br />
"80:80"<br />
"443:443"<br />
];<br />
volumes = [<br />
"/data/ingress/Caddyfile:/etc/caddy/Caddyfile"<br />
"/data/ingress/data:/data"<br />
"/data/ingress/config:/config"<br />
"/data/nichtparasoup/htdocs:/var/www"<br />
];<br />
};<br />
</pre><br />
<br />
Die Configuration von Caddy liegt hier: /data/ingress/Caddyfile<br />
<br />
=== Backup ===<br />
<br />
Im moment noch keines (Januar 2021). Daten sind tatsächlicherweise keine auf der Maschine, nur die Config wäre wichtig. <br />
Wird wie bei [[Host:rumpl.k4cg.org]] per Restic auf unser NAS eingerichtet.</div>
Noqqe
https://k4cg.org/index.php?title=Host:suppe.k4cg.org&diff=19722
Host:suppe.k4cg.org
2021-01-27T10:15:31Z
<p>Noqqe: </p>
<hr />
<div>{{Hostbox<br />
| hostname = suppe.k4cg.org<br />
| ipv4 = 213.95.154.222<br />
| network = 255.255.255.0<br />
| gateway = 192.168.178.1<br />
| DNS = 192.168.178.1<br />
| OS = NixOS<br />
| location = noris network AG<br />
| users = noqqe<br />
| maintainer = [[Benutzer:noqqe]]<br />
}}<br />
<br />
[[Kategorie:Dokumentationen]]<br />
[[Kategorie:Hosts]]<br />
<br />
=== General ===<br />
<br />
Hostet:<br />
<br />
* nichtparasoup ( https://nicht.parasoup.de / https://nichtparasoup.de ) <br />
<br />
=== Hardware Umfeld ===<br />
<br />
Bei noris Network - OpenStack unter [noris.cloud].<br />
<br />
Dort haben wir 2000 Cloud Credits erhalten die wir mittels eines Excel Sheets ausgeben können. <br />
<br />
Zugang zur Plattform steht in <code>pass</code><br />
<br />
=== OS ===<br />
<br />
Wir betreiben hier ein NixOS.<br />
<br />
Alle Konfigurationen finden also in <code>/etc/nixos/configuration.nix</code> statt.<br />
<br />
Das sieht am Anfang verwirrend aus, aber wenn man sich auf der [https://nixos.org NixOS] Site unter Options umsieht, findet sich zu jedem Punkt der gesamten Optionen eine Erklärung.<br />
<br />
=== IPv6 ===<br />
<br />
Leider unterstützt die noris.cloud Plattform noch kein IPv6 :( <br />
<br />
=== nichtparasoup ===<br />
<br />
Wir benutzen zum Hosting der Hackspace Entertainment Systems Podman in Docker Containern<br />
<br />
In /etc/nixos/containers.nix<br />
<br />
<pre><br />
virtualisation.oci-containers = {<br />
backend = "podman";<br />
containers = {<br />
<br />
nichtparasoupsfw = {<br />
image = "noqqe/nichtparasoup:0.0.2";<br />
volumes = [<br />
"/data/nichtparasoup/sfw.yml:/app/config.yml"<br />
];<br />
extraOptions = [<br />
"--ip=10.88.10.11"<br />
];<br />
};<br />
};<br />
};<br />
</pre><br />
<br />
Von diesen Instanzen gibt es insgesamt 4 Stück. Da der Traffic aber auf verschiedenen Kontexten (/sfw/, /kadsen/) aufgeteilt wird brauchen wir einen kleinen Ingress-Controller. <br />
<br />
Das macht in unserem Fall '''caddy''', Ebenfalls ein Container. Caddy übernimmt außerdem vollautomatisch die Verwaltung der Lets Encrypt Zertifikate für HTTPS<br />
<br />
<pre><br />
<br />
# Ingress traffic<br />
ingress = {<br />
image = "library/caddy:2.2.1";<br />
ports = [<br />
"80:80"<br />
"443:443"<br />
];<br />
volumes = [<br />
"/data/ingress/Caddyfile:/etc/caddy/Caddyfile"<br />
"/data/ingress/data:/data"<br />
"/data/ingress/config:/config"<br />
"/data/nichtparasoup/htdocs:/var/www"<br />
];<br />
};<br />
</pre><br />
<br />
Die Configuration von Caddy liegt hier: /data/ingress/Caddyfile<br />
<br />
=== Backup ===<br />
<br />
Im moment noch keines (Januar 2021). Daten sind tatsächlicherweise keine auf der Maschine, nur die Config wäre wichtig. <br />
Wird wie bei [[Host:rumpl.k4cg.org]] per Restic auf unser NAS eingerichtet.</div>
Noqqe
https://k4cg.org/index.php?title=Hosts&diff=19721
Hosts
2021-01-27T10:13:54Z
<p>Noqqe: suppe</p>
<hr />
<div><br />
{| class="wikitable"<br />
|-<br />
! Hostname (VM name) !! IP !! [[Projekt:VPN|VPN]] IP !!Services<br />
|-<br />
| [[Host:rumpl.k4cg.org|rumpl.k4cg.org]] || 213.95.154.150 || 192.168.42.1 || wiki, mailingliste, irc bouncer, stats, irc bot, tor<br />
|-<br />
| [[Host:suppe.k4cg.org|suppe.k4cg.org]] || 213.95.154.222 || - || nichtparasoup<br />
|-<br />
| router || 192.168.5.1 || || "the internet" (DHCP: 192.168.5.100 - 200; Lease: 10 Tage)<br />
|-<br />
| [[Host:scotty.intern.k4cg.org|scotty.intern.k4cg.org]] || 192.168.5.3|| || Beamer-Rechner<br />
|-<br />
| [[Host:hue.intern.k4cg.org|hue.intern.k4cg.org]] || 192.168.5.4|| || Philips Hue Bridge (API Endpoint)<br />
|-<br />
| printer.intern.k4cg.org || 192.168.5.5|| || Der Drucker der mit Windows, Linux und Mac geht<br />
|-<br />
| printerserver.intern.k4cg.org || 192.168.5.6|| || Printerserver für Drucken auf dem printer mit Linux<br />
|-<br />
| [[Host:octopi.intern.k4cg.org|octopi.intern.k4cg.org]] || 192.168.5.7|| || Raspi mit installiertem OctoPi um einfacher den 3D-Drucker zu füttern<br />
|-<br />
| [[Host:qnap.intern.k4cg.org|qnap.intern.k4cg.org]] || 192.168.5.8|| || QNAP (FTP, Media Server)<br />
|-<br />
| [[Host:tuerstatus.intern.k4cg.org|tuerstatus.intern.k4cg.org]] || 192.168.5.9|| || ESP für Türstatus<br />
|-<br />
| [[Host:beehive.intern.k4cg.org|beehive.intern.k4cg.org]] || 192.168.5.10|| 192.168.42.3 || Debian mit Proxmox VE als VM Host<br />
|-<br />
| [[Netzwerk#Switch1|switch1.intern.k4cg.org]] || 192.168.5.11|| || Switch hinter der [[Host:heimat.intern.k4cg.org|Heimat]]<br />
|-<br />
| [[Netzwerk#Switch2|switch2.intern.k4cg.org]] || 192.168.5.12|| || Switch unter der Werkbank<br />
|-<br />
| [[Netzwerk#Switch3|switch3.intern.k4cg.org]] || 192.168.5.13|| || Switch bei der Couch<br />
|-<br />
| [[Host:nixnoqqe.intern.k4cg.org|nixnoqqe.intern.k4cg.org]] (noqqe-NIXOS01) || 192.168.5.14|| || Privates nixos von [[Benutzer:Noqqe|Noqqe]] <br />
|-<br />
| [[Host:kadsenglo.intern.k4cg.org|kadsenglo.intern.k4cg.org]] || 192.168.5.15|| || ESP-Steckdose für Kadse<br />
|-<br />
| [[Host:master-don.intern.k4cg.org|master-don.intern.k4cg.org]] (k4cg-DEBIAN01) || 192.168.5.19|| || Twitter to Mastodon Skript Host<br />
|-<br />
| [[Host:mqtt.intern.k4cg.org|mqtt.intern.k4cg.org]] (k4cg-NIXOS01) || 192.168.5.20|| 192.168.42.2 || MQTT Server<br />
|-<br />
| [[Host:tennis.intern.k4cg.org|tennis.intern.k4cg.org]] || 192.168.5.21|| || Tischtennis Sensor Raspberry PI <br />
|-<br />
| [[Host:sebastian.intern.k4cg.org|sebastian.intern.k4cg.org]] (k4cg-NIXOS02) || 192.168.5.23|| || Bastion Host<br />
|-<br />
| [[Host:switcher.intern.k4cg.org|switcher.intern.k4cg.org]] || 192.168.5.26|| || raspberry pi der dinge schalten kann<br />
|-<br />
| [[Host:matomat.fritz.box|matomat.fritz.box]] || 192.168.5.27|| || [[Projekt:Matomat]]<br />
|-<br />
| [[Host:infoscreen.intern.k4cg.org|infoscreen.intern.k4cg.org]] || 192.168.5.30|| || Hostet [[Projekt:infoscreen]]<br />
|-<br />
| [[Host:proxmox.intern.k4cg.org|proxmox.intern.k4cg.org]] || 192.168.5.31|| || Hostet [[Projekt:Proxmox]]<br />
|-<br />
| [[Host:chrisc-deb.intern.k4cg.org|chrisc-deb.intern.k4cg.org]] || 192.168.5.33|| || Debian VM [[Benutzer:ChrisC|ChrisC]]<br />
|-<br />
| [[Host:homeassi.intern.k4cg.org|homeassi.intern.k4cg.org]] || 192.168.5.34|| 192.168.42.5 || Debian VM mit [https://www.home-assistant.io/ homeassi]<br />
|-<br />
| DHCP || 192.168.5.100 - 200|| || Bitte keine IPs in diesem Bereich vergeben! Lease: 10 Tage<br />
|}<br />
<br />
Die oben genannten Hosts wurden per Hand im neuen Netz (192.168.5.0/24) registriert und die Konfiguration ggf. per Hand geändert.<br />
<br />
== Unportierte Hosts (altes Netz 192.168.178.0/24) ==<br />
<br />
{| class="wikitable"<br />
|-<br />
! Hostname (VM name) !! IP !! [[Projekt:VPN|VPN]] IP !!Services<br />
|-<br />
| laseraccess || 192.168.178.2 || || Wifi: SSID "k4cg-intern"<br />
|-<br />
| paparoach.intern.k4cg.org || 192.168.178.6|| || Raspberry Pi (as in "last resort if [[Host:beehive.intern.k4cg.org|beehive]] is down)<br />
|-<br />
| sniperaccess || 192.168.178.19|| || Wifi: SSID "k4cg-devices" (hidden)<br />
|-<br />
| rifleaccess || 192.168.178.25|| 192.168.42.4 || tp-link 1043nd mit openWRT; SSIDS: k4cg-intern, k4cg-devices<br />
|-<br />
| localhorst.intern.k4cg.org (ckeen-DEBIAN01) || 192.168.178.29|| || debian von [[Benutzer:Ckeen|C-Keen]]<br />
|}</div>
Noqqe
https://k4cg.org/index.php?title=Host:suppe.k4cg.org&diff=19720
Host:suppe.k4cg.org
2021-01-27T10:07:50Z
<p>Noqqe: Die Seite wurde neu angelegt: „{{Hostbox | hostname = suppe.k4cg.org | ipv4 = 213.95.154.222 | network = 255.255.255.0 | gateway = 192.168.178.1 | DNS = 192.168.178.1 | OS = NixOS | location…“</p>
<hr />
<div>{{Hostbox<br />
| hostname = suppe.k4cg.org<br />
| ipv4 = 213.95.154.222<br />
| network = 255.255.255.0<br />
| gateway = 192.168.178.1<br />
| DNS = 192.168.178.1<br />
| OS = NixOS<br />
| location = noris network AG<br />
| users = noqqe<br />
| maintainer = [[Benutzer:noqqe]]<br />
}}<br />
<br />
[[Kategorie:Dokumentationen]]<br />
[[Kategorie:Hosts]]<br />
<br />
=== General ===<br />
<br />
Hostet:<br />
<br />
* nichtparasoup<br />
<br />
=== Hardware Umfeld ===<br />
<br />
Bei noris Network - OpenStack unter [noris.cloud].<br />
<br />
Dort haben wir 2000 Cloud Credits erhalten die wir mittels eines Excel Sheets ausgeben können. <br />
<br />
Zugang zur Plattform steht in <code>pass</code><br />
<br />
=== OS ===<br />
<br />
Wir betreiben hier ein NixOS.<br />
<br />
Alle Konfigurationen finden also in <code>/etc/nixos/configuration.nix</code> statt.<br />
<br />
Das sieht am Anfang verwirrend aus, aber wenn man sich auf der [https://nixos.org NixOS] Site unter Options umsieht, findet sich zu jedem Punkt der gesamten Optionen eine Erklärung.<br />
<br />
=== IPv6 ===<br />
<br />
Leider unterstützt die noris.cloud Plattform noch kein IPv6 :( <br />
<br />
=== nichtparasoup ===<br />
<br />
Wir benutzen zum Hosting der Hackspace Entertainment Systems Podman in Docker Containern<br />
<br />
In /etc/nixos/containers.nix<br />
<br />
<pre><br />
virtualisation.oci-containers = {<br />
backend = "podman";<br />
containers = {<br />
<br />
nichtparasoupsfw = {<br />
image = "noqqe/nichtparasoup:0.0.2";<br />
volumes = [<br />
"/data/nichtparasoup/sfw.yml:/app/config.yml"<br />
];<br />
extraOptions = [<br />
"--ip=10.88.10.11"<br />
];<br />
};<br />
};<br />
};<br />
</pre><br />
<br />
Von diesen Instanzen gibt es insgesamt 4 Stück. Da der Traffic aber auf verschiedenen Kontexten (/sfw/, /kadsen/) aufgeteilt wird brauchen wir einen kleinen Ingress-Controller. <br />
<br />
Das macht in unserem Fall '''caddy''', Ebenfalls ein Container. Caddy übernimmt außerdem vollautomatisch die Verwaltung der Lets Encrypt Zertifikate für HTTPS<br />
<br />
<pre><br />
<br />
# Ingress traffic<br />
ingress = {<br />
image = "library/caddy:2.2.1";<br />
ports = [<br />
"80:80"<br />
"443:443"<br />
];<br />
volumes = [<br />
"/data/ingress/Caddyfile:/etc/caddy/Caddyfile"<br />
"/data/ingress/data:/data"<br />
"/data/ingress/config:/config"<br />
"/data/nichtparasoup/htdocs:/var/www"<br />
];<br />
};<br />
</pre><br />
<br />
Die Configuration von Caddy liegt hier: /data/ingress/Caddyfile<br />
<br />
=== Backup ===<br />
<br />
Im moment noch keines (Januar 2021). Daten sind tatsächlicherweise keine auf der Maschine, nur die Config wäre wichtig. <br />
Wird wie bei [[Host:rumpl.k4cg.org]] per Restic auf unser NAS eingerichtet.</div>
Noqqe
https://k4cg.org/index.php?title=N%C3%BCrnberger_Hackspace_K4CG&diff=19719
Nürnberger Hackspace K4CG
2021-01-25T08:35:07Z
<p>Noqqe: </p>
<hr />
<div>__NOTOC__<br />
<br />
== Aktuelle Info ==<br />
<br />
=== Die Computergruppe bleibt geschlossen. Bleibt daheim, bleibt gesund. Wir treffen uns online, siehe unten! #FlattenTheCurve ===<br />
<br />
<gallery widths=250px heights=200px mode="packed-hover"><br />
P5_1.jpg|alt=Raumansicht mit Blick auf die Werkbank<br />
p5front2.jpg|alt=Hauseingang der Peuntgasse 5<br />
DSC04290.jpg|alt=Raumansicht mit Blick auf die Leinwand<br />
</gallery><br />
<br />
== Wer sind wir? == <br />
<br />
Die K4 Computergruppe (K4CG) ist Teil der [https://www.kunstkulturquartier.de/haeuser/kuenstlerhaus-1 Offenen Werkstätten] (Fotolabor, Siebdruck, Schmiede, Glas, Fahrrad, Keramik, Steinmetz, Holz, Porträt, Pixelwerkstatt) im Künstlerhaus Nürnberg und ist allen zugänglich. Aktuell sind wir in der Peuntgasse 5 im 2. OG untergebracht. Nach der Generalsanierung des Künstlerhauses zieht die Computergruppe wieder in die Königstraße 93 zurück (voraussichtlich 2021).<br />
<br />
Uns sind alle Menschen willkommen, die sich für Technik interessieren. Egal ob Du Linux/*BSD/macOS/Windows Nutzerinnen und Nutzer suchst, Tipps und Hilfe beim Programmieren, Löten, 3D-Drucken brauchst, ein Bier bzw. eine Club Mate mit Nerds trinken magst oder einfach nur mal wissen willst, was eigentlich dieses "Internet" ist.<br />
<br />
{{#ev:vimeo|338831095|1001}}<br />
<br />
== Wann treffen wir uns? == <br />
=== Bis auf weiteres ===<br />
* Wir treffen uns '''donnerstags ab etwa 20 Uhr''' online.<br />
* Es kommen mal mehr, mal weniger Leute. Schaut einfach mal vorbei, vielleicht trefft ihr jemanden!<br />
* Dazu nutzen wir eine [https://rooms.cmesh.de/ selbstgehostete leicht gemoddete Instanz von Jitsi Meet]<br />
<br />
=== Normalerweise ===<br />
* Regelbetrieb: '''donnerstags ab 19:30 Uhr'''<br />
* In unseren Räumen findet regelmässig ein [https://www.ccc.de/de/club/chaostreffs Chaostreff] statt: https://chaostreff-nuernberg.de/<br />
* Vortagstermin: Wir versuchen jeden 3. Montag im Monat etwas interessantes zu erzählen. Termine siehe [[Vorträge]].<br />
* Wenn du dir unsicher bist, kannst du uns jederzeit per Mail, auf Twitter oder im IRC erreichen.<br />
<br />
== Wo treffen wir uns? ==<br />
<br />
[[Datei:Aerial Nuremberg Kuenstlerhaus-Nuernberg.jpg|200px|right|alt=Luftaufnahme von Nürnberg mit Pfeil auf die Peuntgasse 5]]<br />
* Peuntgasse 5, 90402 Nürnberg<br />
* [https://www.openstreetmap.org/node/5332891104 Auf Karte anzeigen] <br />
* [[Wegbeschreibung]]<br />
* Latitude: 49.44906<br />
* Longitude: 11.08069<br />
<br />
== Kontakt ==<br />
<br />
[[Datei:Puffy mit Laptop.jpg|200px|right|alt=Puffy sitzt auf einem Sessel und schielt an seinem MacBook vorbei]]<br />
* Offizielle Mail: info@k4cg.org<br />
* Twitter: [https://twitter.com/k4cg @k4cg]<br />
* IRC: Freenode, Channel: #k4cg ([https://webchat.freenode.net/?channels=k4cg Webchat])<br />
* [[Kontakt|Mailingliste]]<br />
* Weiteres findet ihr unter [[Kontakt]]</div>
Noqqe
https://k4cg.org/index.php?title=Projekt:rc3Assembly&diff=19687
Projekt:rc3Assembly
2021-01-02T10:13:35Z
<p>Noqqe: angabe des jahres wegen in 10 jahren</p>
<hr />
<div>Der CCCongress 2020 viel aus, aber es gab die remote Chaos experience an der wir teilnahmen.<br />
<br />
Dazu haben wir zusammen mit dem [https://nerdberg.de|nerdberg] eine gemeinsame 2d Welt geschaffen, in der man sich bewegen und miteinander chatten konnte. Dazu gab es eine kleine Ausstellung über Adele Goldberg, zwei Irrgärten und einen Rätsel Keller, sowie eine Disco, die von [http://Twitch.tv/nbgsubculture|Nbg subculture] bespielt wurde.<br />
<br />
== 2d Welt ==<br />
<br />
* Die Karte ist in unserem [https://github.com/k4cg/rC3-assembly|github repository] abgelegt<br />
* Autoren waren: mateJo, Anna, Poschi, Chris_C, Londrik, Joo, MikeTsenatek und C-Keen<br />
* Die Karte hat ein Sternchen bekommen als Auszeichnung für eine schöne Karte :D<br />
<br />
<br />
== Workshops ==<br />
<br />
Chris_C hat einen [https://kicad.org/|KiCad] workshop gehalten, der mit 20 Teilnehmenden Personen gut besucht war. Eine Aufzeichnung findet ihr hier.</div>
Noqqe
https://k4cg.org/index.php?title=Host:beehive.intern.k4cg.org&diff=19644
Host:beehive.intern.k4cg.org
2020-06-22T12:07:56Z
<p>Noqqe: </p>
<hr />
<div>{{Hostbox<br />
| hostname = beehive<br />
| ipv4 = 192.168.178.10<br />
| network = 255.255.255.0<br />
| gateway = 192.168.178.1<br />
| DNS = 192.168.178.1<br />
| OS = Debian GNU/Linux 10 (buster)<br />
| location = K4CG<br />
}}<br />
[[Kategorie:Dokumentationen]]<br />
[[Kategorie:Hosts]]<br />
<br />
=Virtualisierungs-Host=<br />
<br />
==System==<br />
Debian GNU/Linux 10 (buster) mit Proxmox VE<br />
* 120 GB SSD mit OS<br />
* 1 TB Raid1 mit LVM und Thinpool für VMs<br />
* 300 GB Backup alte VMs<br />
* NFS4 für Backup auf qnap:/proxmoxbackup<br />
<br />
==Verwaltung==<br />
<br />
Auch tunnelbar von aussen über die FritzBox<br />
<br />
https://192.168.5.10:8006/#v1:0:18:4::::::<br />
<br />
==VMs==<br />
TODO<br />
<br />
==geplante Aufgaben==<br />
TODO<br />
<br />
=Doku alter Beehive (Win 10 Hyper-V)=<br />
<br />
==VMs==<br />
{| class="wikitable sortable"<br />
|-<br />
! Name !! State !! Nested !! CPUs !! RAM (MB) !! HDD (GB)<br />
|-<br />
| ckeen-DEBIAN01 || Running || False || 1 || 512 || 20<br />
|-<br />
| k4cg-NIXOS01 || Running || False || 1 || 1024 || 10<br />
|-<br />
| k4cg-NIXOS02 || Running || False || 1 || 1024 || 40<br />
|-<br />
| noqqe-NIXOS01 || Running || False || 2 || 1024 || 40<br />
|}</div>
Noqqe
https://k4cg.org/index.php?title=Host:sebastian.intern.k4cg.org&diff=19605
Host:sebastian.intern.k4cg.org
2020-02-13T19:26:29Z
<p>Noqqe: Verbindungsdetails hinzugefuegt</p>
<hr />
<div>{{Hostbox<br />
| hostname = sebastian.intern.k4cg.org<br />
| ipv4 = 192.168.178.23<br />
| network = 255.255.255.0<br />
| gateway = 192.168.178.1<br />
| DNS = 192.168.178.1<br />
| OS = NixOS<br />
| location = K4CG<br />
| maintainer = [[Benutzer:noqqe]]<br />
}}<br />
<br />
Dieser Host dient als Jumphost vom Internet in die K4CG.<br />
<br />
== Wie kann ich mich auf Sebastian verbinden ==<br />
<br />
<pre><br />
ssh k4cgrouter.duckdns.org -p22220 -l <user><br />
</pre><br />
<br />
== Wie bekomme ich einen User ==<br />
<br />
Bitte melde dich hierfür bei [[Benutzer:noqqe]]</div>
Noqqe
https://k4cg.org/index.php?title=Galerie&diff=19587
Galerie
2020-02-04T20:36:56Z
<p>Noqqe: /* Aktuelle K4CG */</p>
<hr />
<div><br />
== Aktuelle K4CG ==<br />
<br />
Peuntgasse 5.<br />
<br />
<gallery widths=300px heights=300px mode="packed-hover"><br />
P5_1.jpg|Werkbank Blick vom Arbeitstisch<br />
DSC04290.jpg|Blick von der Tür<br />
p5front1.jpg<br />
p5front2.jpg<br />
p5front3.jpg<br />
foto1.jpeg<br />
foto2.jpeg<br />
foto3.jpeg<br />
foto4.jpeg<br />
</gallery><br />
<br />
== Die alte K4CG == <br />
<br />
Königsstr. 93<br />
<br />
<gallery widths=300px heights=300px mode="packed-hover"><br />
Panorama3.jpg|Panorama<br />
K4_1.jpg|Beamer mit nichtparasoup<br />
K4_2.jpg|Beamer aus<br />
K4_3.jpg|k4cg<br />
K4_4.jpg|Unser Raum mit Projekt FreedomLight<br />
K4_5.jpg|k4cg<br />
K4_6.jpg|k4cg<br />
K4_7.jpg|k4cg<br />
</gallery><br />
<br />
== Anderes ==<br />
<br />
<gallery widths=300px heights=300px mode="packed-hover"><br />
NN-Artikel.jpg|Artikel in den Nürnberger Nachrichten<br />
Panorama.jpeg|Panorama<br />
</gallery></div>
Noqqe
https://k4cg.org/index.php?title=Datei:Foto4.jpeg&diff=19586
Datei:Foto4.jpeg
2020-02-04T20:36:04Z
<p>Noqqe: </p>
<hr />
<div></div>
Noqqe
https://k4cg.org/index.php?title=Datei:Foto3.jpeg&diff=19585
Datei:Foto3.jpeg
2020-02-04T20:35:43Z
<p>Noqqe: </p>
<hr />
<div></div>
Noqqe