Cover Image

RethinkDB #2 - Count

Wie schon in meinem letzten Beitrag zum Thema RethinkDB RethinkDB #1 — Update, hier Teil #2. Diesmal zähle ich Datensätze, die ein bestimmtes Kriterium erfüllen. Wieder in Go, wieder auf einer RethinkDB, wieder hatte ich keine Ahnung. Die Datenstruktur { "Id": "fe049091-2287-4949-bb22-1a9eca6838b7", "Users": [ { "uuid": "f7740b68-2989-4e77-b551-d44e774ac2bb", "username": "yolo", "voting": 0 }, { "uuid": "a3bb02fb-c340-4615-bd6a-006b7aace39e", "username": "marci", "voting": 0 }, { "uuid": "a03d5fd7-3c8b-460a-a65a-eeed21ce13fb", "username": "QA", "voting": 0 }, { "uuid": "f7740b68-2989-4e77-b551-d44e774ac2bb", "username": "yolo", "voting": 0 } ] } Daran hat sich zum letzten Mal nichts geändert....

August 27, 2020 · 2 min · marcel
Cover Image

RethinkDB #1 - Update

Aktuell entwickle ich eine Webanwendung, die über Websockets mit dem Backend kommuniziert. Auf der Suche nach einer passenden Datenbank dafür, bin ich neben den üblichen Verdächtigen wie MongoDB, CouchDB, … über RethinkDB gestolpert. Die Marketing-Texte laßen sich gut, einen passenden Go-Treiber gabs auch. Ich war überzeugt davon, das die neue Datenbank mal auszuprobieren. Eine nette Web-UI frei Haus und die einfache Möglichkeit, das Ding im Cluster zu betreiben waren schöne Goodies....

August 26, 2020 · 2 min · marcel
Cover Image

Zwei-dimensionale Arrays mischen

Heute stand ich vor der Aufgabe ein zwei-dimensionales Array, gefüllt mit Strings, zu mischen. Hintergrund: in dem Array stecken Fragen, die bei jedem Request in anderer Reihenfolge zurückgegeben werden sollten. Nach kurzer Recherche fand ich einen passenden Algorithmus: den Fisher-Yates Shuffle. In erster Ausbaustufe eher für eindimensionale Arrays gedacht, habe ich es aber schnell adaptieren können. Natürlich in Go für meine kleine Go-API. func (a *App) shuffle(bingo *[4][4]string) *[4][4]string { for i := len(bingo) - 1; i > 0; i-- { for j := len(bingo[i]) - 1; j > 0; j-- { m := rand....

July 29, 2020 · 1 min · marcel
Cover Image

Today I Learned #2 - StringBuilder in Go

Ab und zu gerät man in die Bredoullie, einen laaaangen String aus mehreren Substrings zu konkatinieren. Das kann man entweder durch Addition machen.. oder mit einem StringBuilder. Wie auch in anderen Highlevel-Sprachen wie C# oder Java, gibt es auch in Go einen StringBuilder der das Zusammensetzen und anschließende Ausgeben einer langen Zeichenkette unterstützt. Wie das geht sieht man hier: sb := string.Builder{} sb.WriteString("Langer") sb.WriteString("String") println(sb.String()) Zu erst erzeugt man sich eine neue Instanz des StringBuilders aus dem strings-Package....

December 4, 2019 · 1 min · marcel
Cover Image

Architektur einer Golang API

Long time no hear. Heute melde ich mich mit einem Thema zurück, dass mir immer mal wieder Kopfschmerzen bereitet. Kurzzeitgedächtnis sei dank. Kurzzeit-was? Aber genau dafür dient mir ja dieser Blog: als Dev Journal. Also, heute geht es um Go. Genauer gesagt, um das kleine 1x1 der Architektur einer API, bzw. eines kleinen Services, der eine API darstellen soll. Der Use Case Das ist relativ simpel: ein Proxy, der mit der Todoist-API telefoniert und mir meine Projekte, Tasks, Dues etc....

July 2, 2019 · 4 min · marcel