2022-12-31 19:19:15 +01:00
|
|
|
--------------------------------------------------------------------------------
|
|
|
|
Diese Shownotes wurden automatisiert aus <https://pads.ccc.de/C3D2-Pentaradio>
|
|
|
|
extrahiert, siehe <https://gitea.c3d2.de/xyrill/pentaradio-historic-shownotes>.
|
|
|
|
--------------------------------------------------------------------------------
|
|
|
|
|
2022-12-31 18:54:02 +01:00
|
|
|
## Juni 2015
|
|
|
|
|
|
|
|
Ankündigung:
|
|
|
|
|
|
|
|
Das 21. Jahrhundert liefert neue Herausforderungen für Programmierer:
|
|
|
|
Multicore-Prozessoren, immer komplexer werdende Software, verteilte
|
|
|
|
Systeme.
|
|
|
|
Die Entwickler der Programmiersprache Go verfolgen den Ansatz, es
|
|
|
|
einfach zu machen, sichere und effiziente Software zu schreiben. In
|
|
|
|
dieser Sendung wollen wir euch die Programmiersprache näher
|
|
|
|
vorstellen.
|
|
|
|
|
|
|
|
Shownotes:
|
|
|
|
|
|
|
|
Drogenkartell benutzt 39 Straßenkameras
|
|
|
|
<http://fusion.net/story/139838/this-drug-cartel-used-39-street-cameras-to-spy-on-everyone/>
|
|
|
|
Avast gibt Nutzungsdaten an Analysefimren
|
|
|
|
<http://www.heise.de/newsticker/meldung/Avast-gibt-Nutzungsdaten-an-Analysefirma-weiter-2677838.html>
|
|
|
|
UN-Beauftragter wirbt für Verschlüsselung
|
|
|
|
<http://www.heise.de/newsticker/meldung/UN-Beauftragter-wirbt-fuer-Verschluesselung-und-Anonymitaet-2672561.html>
|
|
|
|
<http://www.heise.de/-2678065>
|
|
|
|
SSH-Keys auf Github ausgewertet
|
|
|
|
<http://www.golem.de/news/ssh-sechs-jahre-alter-bug-bedroht-github-repositories-1506-114449.html>
|
|
|
|
Trojaner-Angriff auf den Bundestag
|
|
|
|
<http://www.heise.de/newsticker/meldung/Nach-Trojaner-Angriff-Bundestag-soll-neues-Computer-Netzwerk-benoetigen-2687521.html>
|
|
|
|
Edward Snowden Platz in Dresden <http://edward-snowden-platz.de/>
|
|
|
|
200. Datenbankstammtisch:
|
|
|
|
<https://www.htw-dresden.de/index.php?id=23853&vid=240>
|
|
|
|
Bibliotheken in Go: <http://awesome-go.com/>
|
|
|
|
Gopher Team bei Google <http://www.wired.com/2013/07/gopher/>
|
|
|
|
Go-Race Detector: <http://blog.golang.org/race-detector>
|
|
|
|
Go 1.5: Go in Go geschrieben
|
|
|
|
<http://talks.golang.org/2015/gogo.slide#2>
|
|
|
|
Projekte in Go: <http://blog.golang.org/4years>
|
|
|
|
|
|
|
|
News
|
|
|
|
|
|
|
|
<http://fusion.net/story/139838/this-drug-cartel-used-39-street-cameras-to-spy-on-everyone/>
|
|
|
|
<http://www.heise.de/newsticker/meldung/Avast-gibt-Nutzungsdaten-an-Analysefirma-weiter-2677838.html>
|
|
|
|
<http://www.heise.de/newsticker/meldung/Britische-Polizei-ersucht-alle-zwei-Minuten-um-gespeicherte-Vorratsdaten-2677844.html>
|
|
|
|
<http://www.heise.de/newsticker/meldung/UN-Beauftragter-wirbt-fuer-Verschluesselung-und-Anonymitaet-2672561.html>
|
|
|
|
<http://www.heise.de/-2678065>
|
|
|
|
<http://www.heise.de/newsticker/meldung/Computex-Smarte-Windel-DiaperPie-2678100.html>
|
|
|
|
<http://www.golem.de/news/ssh-sechs-jahre-alter-bug-bedroht-github-repositories-1506-114449.html>
|
|
|
|
<http://www.heise.de/newsticker/meldung/Nach-Trojaner-Angriff-Bundestag-soll-neues-Computer-Netzwerk-benoetigen-2687521.html>
|
|
|
|
(BSI) sei zu dem Ergebnis gekommen, dass das Netz nicht mehr gegen den
|
|
|
|
Angriff verteidigt werden könne und aufgegeben werden müsse.
|
|
|
|
<http://www.heise.de/newsticker/meldung/Buchhandel-Jugendgefaehrdende-E-Books-duerfen-nur-nachts-verkauft-werden-2717530.html>
|
|
|
|
2015-06-30T23:59:60
|
|
|
|
\* am 17.06. war 200. Datenbankstammtisch, vorgestellt wurden
|
|
|
|
Datenbankerweiterungen in ad-hoc vernetzter Hardware. Künftig werden
|
|
|
|
Datenbank also nicht nur schon im Hauptspeicher residieren, sondern
|
|
|
|
auch schneller rechnen
|
|
|
|
\* <http://edward-snowden-platz.de/> Edward Snowden Platz in Dresden,
|
|
|
|
auch mit Freifunk
|
|
|
|
|
|
|
|
### Go
|
|
|
|
|
|
|
|
- 2007 by Robert Griesemer (V8 Code generation, Java Hotspot),
|
|
|
|
Rob Pike (UTF-8, Unix, Plan 9, Limbo), and Ken Thompson (B, Regular
|
|
|
|
Expression, ed, UTF-8 encoding, Plan 9) in Google
|
|
|
|
-\> generft von C++ (Systemsprache bei Google)
|
|
|
|
- Kompilierte, Statisch typisierte Programmiersprache
|
|
|
|
-\> statisch gelinkt, keine Libc-Abhängigkeit, nur Syscalls
|
|
|
|
- Garbage Collection (parallel/stop the world, mark-and-sweep)
|
|
|
|
- Typinterference -\> foo := "string";
|
|
|
|
- Objektorientierung durch Interfaces (virtual inheritance) und Types
|
|
|
|
- Typen können Methoden haben:
|
|
|
|
type ip4addr uint32
|
|
|
|
func (ip4addr a) String() {
|
|
|
|
....
|
|
|
|
}
|
|
|
|
- Mixins -\> Objektorientierung?
|
|
|
|
- Interface conversions and type assertions (Reflexion)
|
|
|
|
type Stringer interface { String() string }
|
|
|
|
var value interface{} // Value provided by caller.
|
|
|
|
switch str := value.(type) {
|
|
|
|
case string:
|
|
|
|
return str
|
|
|
|
case Stringer:
|
|
|
|
return str.String()
|
|
|
|
}
|
|
|
|
- Lambdas
|
|
|
|
- Error as Value -\> Methoden mit mehreren Rückgabewerten
|
|
|
|
- Slices, Maps
|
|
|
|
- string === UTF-8 Strings (Rob Pike hat UTF-8 mit geprägt)
|
|
|
|
- binary data? -\> \[\]byte
|
|
|
|
- explizite Typenkonvertierung (int32 -\> int)
|
|
|
|
- Goroutinen (Greenthreads)
|
|
|
|
- Channels -\> Warteschlange
|
|
|
|
kanal := make(chan string)
|
|
|
|
go func{ fmt.Print(\<-kanal) }
|
|
|
|
kanal \<- "Hallo"
|
|
|
|
- Share by communicating
|
|
|
|
- Defer
|
|
|
|
- Modulekonzept -\> package main
|
|
|
|
Methoden/Variablen mit beginnt Großbuchstaben -\> nach außen
|
|
|
|
sichtbare Methode
|
|
|
|
|
|
|
|
- Eingebauter C-Compiler -\> Einbinden in C-Header Files + Linker Flags
|
|
|
|
in
|
|
|
|
Go-Kommentar
|
|
|
|
// \#include \<stdio.h\>
|
|
|
|
...
|
|
|
|
C.printf
|
|
|
|
- Plattformabhängiger Code in eignen Dateien -\> (keine \#ifdef Hölle)
|
|
|
|
// +build linux,386 darwin,!cgo
|
|
|
|
\<name\>\[\_GOOS\]\[\_GOARCH\].go -\> taskbar_windows.go
|
|
|
|
|
|
|
|
#### Packetmanagement
|
|
|
|
|
|
|
|
export GOPATH=\~/go
|
|
|
|
\~/go
|
|
|
|
├── bin
|
|
|
|
│ ├── gore
|
|
|
|
├── pkg
|
|
|
|
│ └── linux_amd64
|
|
|
|
│ └── github.com
|
|
|
|
│ ├── Mic92
|
|
|
|
│ │ └── lock
|
|
|
|
│ │ ├── filter.a
|
|
|
|
│ │ └── flag.a
|
|
|
|
└── src
|
|
|
|
├── github.com
|
|
|
|
│ ├── Mic92
|
|
|
|
│ │ ├── lock
|
|
|
|
|
|
|
|
go get github.com/\<User\>/\<Project -\> import
|
|
|
|
"github.com.\<User\>.\<Projekt\>
|
|
|
|
|
|
|
|
### Coole Bibliotheken
|
|
|
|
|
|
|
|
- Batteries included:
|
|
|
|
-\> Webserver, json, xml, template engine, ssl, kompression,
|
|
|
|
http/smtp/json rpc
|
|
|
|
-\> testing, syscalls, bildformate
|
|
|
|
- Standartbibliothek gut lesbar (kurze Methoden, wenige
|
|
|
|
Verschachtelungen, verlinkt von der Dokumentation) \<-\> glibc
|
|
|
|
- häufig reine Go-Biblioteken (keine C-Wrapper) -\> tls
|
|
|
|
- Seit 1.5: Go in Go (<http://talks.golang.org/2015/gogo.slide#2)>
|
|
|
|
-\> C verbannt
|
|
|
|
|
|
|
|
- webanwendungen? -\> Ähnlich Express.js/sinatra/Flask, kleine Modulare
|
|
|
|
Frameworks
|
|
|
|
|
|
|
|
#### Triva
|
|
|
|
|
|
|
|
- Gopher Team bei Google <http://www.wired.com/2013/07/gopher/>
|
|
|
|
- Subject von \#go auf freenode.net: Go, the game (not the silly
|
|
|
|
language) -\> \#go-nuts
|
|
|
|
- golang als Stichwort in Suchmaschinen
|
|
|
|
- keine Stackoverflows -\> continous/resizeable stack
|
|
|
|
|
|
|
|
Tooling:
|
|
|
|
AST-Parser in stdlib + einfache Syntax -\>
|
|
|
|
|
|
|
|
eingebaut:
|
|
|
|
- gofmt -\> Codeformatierung
|
|
|
|
- pprof -\> profiler mit Webansicht (CPU, Speicher, Goroutinen Locks
|
|
|
|
(- gofix -\> Apirefactoring)
|
|
|
|
- gdb -\> debugger
|
|
|
|
- godoc -\> Dokumentationsserver, Dokumentation in Kommentaren
|
|
|
|
- go test
|
|
|
|
- go generate:
|
|
|
|
//go:generate stringer -type=Pill
|
|
|
|
|
|
|
|
- go race detector: <http://blog.golang.org/race-detector>
|
|
|
|
(Speicherzugriffe)
|
|
|
|
- gocode -\> Codevervollständigung
|
|
|
|
- go oracle
|
|
|
|
- vet/lint -\> Statische Codeanalyse
|
|
|
|
- gorename -\> Refactoring
|
|
|
|
- goxc -\> Cross-Compiler + statische gelinkte Standartbibliothek
|
|
|
|
-\> einfaches Deployen auf mehreren Plattformen
|
|
|
|
- vim-go
|
|
|
|
|
|
|
|
Projekte in Go:
|
|
|
|
|
|
|
|
- play.golang.org - Ausführbare Codesnippets
|
|
|
|
- <http://blog.golang.org/4years>
|
|
|
|
- <https://code.google.com/p/go-wiki/wiki/Projects>
|
|
|
|
- <http://imposm.org/>
|
|
|
|
- CloudFlare built their distributed DNS service entirely with Go
|
|
|
|
- gern für Kommandozeilenprogramme (heroku, hub, direnv) -\> schneller
|
|
|
|
Start/wenig Laufzeitabhängigkeiten
|
|
|
|
- für Serveranwendungen (Backend) -\> einfach zu Deployen
|
|
|
|
- SoundCloud is an audio distribution service that has "dozens of
|
|
|
|
systems in Go
|
|
|
|
- docker
|
|
|
|
- The raft package provides an implementation of the Raft distributed
|
|
|
|
consensus protocol. It is the basis of Go projects like etcd and
|
|
|
|
SkyDNS.
|
|
|
|
- Packer is a tool for automating the creation of machine images for
|
|
|
|
deployment to virtual machines or cloud services.
|
|
|
|
- Bitly's NSQ is a realtime distributed messaging platform designed
|
|
|
|
for fault-tolerance and high-availability, and is used in production
|
|
|
|
at bitly and a bunch of other companies.
|
|
|
|
- Canonical's JuJu infrastructure automation system was rewritten in
|
|
|
|
Go.
|
|
|
|
|
|
|
|
unterstützte Plattformen:
|
|
|
|
Linux, Mac OS X, FreeBSD, NetBSD, OpenBSD, Plan 9, and Microsoft
|
|
|
|
Windows
|
|
|
|
Architekturen:
|
|
|
|
i386, amd64, ARM and IBM POWER
|
|
|
|
|
|
|
|
(android und ios)
|
|
|
|
|
|
|
|
### Termine
|
|
|
|
|
|
|
|
Krypto-Gewinnspiel mit PGP für Anfänger
|
|
|
|
<https://wiki.fsfw-dresden.de/doku.php?id=doku:pm_gewinnspiel2015>
|
|
|
|
MORGEN
|
|
|
|
|
|
|
|
- Kryptoparty an der TU Dresden, in der Fakultät für Informatik - mehr
|
|
|
|
auf ifsr.de -\> <https://www.ifsr.de/fsr:news:cryptoparty_am_24._juni>
|
|
|
|
- Orga-Meeting Datenspuren
|
|
|
|
|
|
|
|
26-28. Jardin Entropique in Rennes
|
|
|
|
03.07. Lange Nacht der Wissenschaften
|
|
|
|
10.07. Staat 2.0 an der TU Leipzig: Interdisziplinäres Gespräch: Der
|
|
|
|
Staat und seine Bürger im digitalen Zeitalter
|
|
|
|
|