https://www.gravatar.com/avatar/2a389171c064e3f0739eea781acea0f4?s=240&d=mp

Welcome

Kennwörter in Go verschlĂŒsseln

Go hat von vorne herein bereits viele hilfreiche Pakete. Eines davon ist das Paket bcrypt mit dem sich z.B. Kennwörter sicher verschlĂŒsseln lassen: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 package main import ( "fmt" "golang.org/x/crypto/bcrypt" ) func main() { pw := "SecretPassword" bs, err := bcrypt.GenerateFromPassword([]byte(pw), 2) //let's look at the encrypted password fmt.Printf("encryption result: %s\n", string(bs)) err = bcrypt.

Go routinen und Fehlerbehandlung

Bei einem kleinen Projekt an dem ich gerade arbeite habe ich gerade mit dem Thema Fehlerbeahndlung in Verbindung mit Goroutinen zu tun. Ich habe hier eine Library geschrieben, welche verschiedene Methoden fĂŒr eine Bestellung anbietet. NatĂŒrlich habe ich brav darauf geachtet, dass im Fall der FĂ€lle ein Fehler zurĂŒckgegeben wird. Aber wie ist das wenn ich nun eine Methode als Goroutine starte. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 package main import ( "fmt" ) type order struct { id string } func (o *order) create(id string) error { //do something useful with the order if id == "OD-002" { err := fmt.

RegulĂ€re AusdrĂŒcke - Wenn sie nur nicht so praktisch wĂ€ren

Ich habe lange einen Bogen um regulĂ€re AusdrĂŒcke gemacht. Jedes Mal wenn ich es mit dem Thema zu tun bekam war die instinktive Reaktion die Flucht. Ich habe mich immer mal wieder versucht diesem Thema zu nĂ€hern. Die ganzen schlauen Menschen, die regulĂ€re AusdrĂŒcke beherrschen, können ja nicht ganz falsch liegen. Ich habe allen Mut zusammen genommen und mich durchgekĂ€mpft. Ich muss ganz ehrlich zugeben ich bin immer noch nicht der allergrĂ¶ĂŸte Fan regulĂ€rer AusdrĂŒcke.

Pointer in Go

Ein Pointer in Go, oder auch Zeiger verweist auf die Speicheradresse an der ein Wert gesichert ist. Um die Speicheradresse fĂŒr eine Variable auszugeben verwendet man das & Zeichen: 1 2 3 4 5 6 7 8 func main() { x := 10 fmt.Println(x) fmt.Println(&x) fmt.Printf("%T\n", x) fmt.Printf("%T\n", &x) } Gibt man Typ der Speicheradresse ausgeben, so ist er *int. Da * ist der Operator fĂŒr einen Pointer, dass heißt, die Speicheradresse ist ein Pointer zu einem int.

Einmal E-Mail Hölle und zurĂŒck

UPDATE August 2020 Der folgende Artikel ist zwar fĂŒr den einen oder anderen interessant, spiegelt aber mittlerweile nicht mehr meinen aktuellen Ansatz zum Thema E-Mail wieder. Ich habe mich mittlerweile von allen genannten Tools getrennt und habe stattdessen seit Juni einen HEY. Ich werde hierzu noch einen Beitrag schreiben 😊 |||||||||||||||||||||||||| Kennt Ihr das? Ihr bekommt gefĂŒhlt tausende Benachrichtigungen, Status Updates, BestellbestĂ€tigungen und vieles mehr? Man bekommt so viel Zeug im Laufe des Tages und das meiste davon ist es einfach nicht wert auch nur geöffnet zu werden.

Datenstrukturen in Go

Ein Struct ist eine Datenstruktur, die es uns erlaubt Werte verschiedener Datentypen zu Feldern zusammenzufassen. Jedes Feld hat eine Bezeichnung und einen Typ. Im Prinzip erstellt man sich mit einem Struct einen eigenen Typ. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 type person struct { vorname string nachname string alter int } func main() { person1 := person{ vorname: "Peter", nachname: "MĂŒller", alter: 28, } person2 := person{ vorname: "Maria", nachname: "Maier", alter: 21, } fmt.