Updates to my youtube-dl wrapper

I messed with my youtube-dl wrapper again, to be a bit more robust and handling concurrent downloads. It reads the path to binaries and download directories from a configuration file now too. Here are two screenshots from the running application: (Original anzeigen) (Original anzeigen) The application is split into different files (and has some tests, but I will omit them for this article). It’s not pretty, it’s not the cleanest code - but it works and I have a good reason to learn more about Go....

28. Dezember 2020 Â· Carsten

Rewriting my youtube-dl wrapper in Go

Recently I started using my WD MyCloud EX2 network drive to download youtube videos to watch them via Plex. The first iteration of this was a hacky PHP script to download the video, now I’ve rewritten the script as a Go application. The code is still hacky, it will only work without any concurrent requests - but it still works for me and maybe you are interested to have a starting point for your own adventures....

23. Dezember 2020 Â· Carsten

Learning Golang #4, oder FizzBuzz Kata

Heute habe ich mir eine Kata vorgenommen, und zwar FizzBuzz. Ich schreibe mein Golang immer noch extrem kurz und unleserlich. Solche Dinge wie r[v] = list[v] lösen ein schlechtes Gewissen bei mir aus, aber trotzdem bekommt ihr hier den Sourcecode ohne irgendwelche Verschönerungen. Wie bei einer Kata üblich kommt erst der Test, dann der Code: fizzbuzz_test.go package fizzbuzz import ( "testing" ) func TestAnswer(t *testing.T) { actual := Answer([]int{1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,60}) expected := []interface{}{1,2,"fizz",4,"buzz","fizz",7,8,"fizz","buzz",11,"fizz",13,14,"fizzbuzz","fizzbuzz"} for a := range(actual) { if actual[a] !...

08. März 2010 Â· Carsten

Learning Golang #3, oder Wie hänge ich ein Element an eine Map?

Es mag offensichtlich sein, aber ich will es hier doch noch festhalten: Um ein Element an eine map anzuhängen, genügt eine Zuweisung. package main import ( "fmt" ) func main() { var m = map[string]string{"1":"eins"} m["2"] ="zwei" fmt.Println(m) } Diese kleine Programm gibt folgende Ausgabe: map[1:eins 2:zwei] Daraufhin habe ich diese kleine Testanwendung geschrieben, die eine map[string]string nimmt, ein Argument hinzufügt und anschliessend einen String ausgibt, in dem alle Inhalte der map sortiert enthalten sind....

07. März 2010 Â· Carsten

Learning Golang #1, oder Wie sortiere ich eine map?

Gestern habe ich weiter an meiner ersten Applikation in golang gearbeitet und dabei stellte sich mir die Frage, wie man eine map[string]string sortiert. Stackoverflow hat (wie immer) weiter geholfen nachdem ich ein paar Versuche selbst unternommen hatte. Ich denke, die folgende Lösung ist nicht das schickste. Sicherlich gibt es eine nette Möglichkeit, eine map auch mit Channels zu sortieren. Ein BubbleSort sollte damit schnell erstellt sein. Das werde ich beim nächsten Mal ausprobieren....

04. März 2010 Â· Carsten

Learning Golang #2, oder Wie erstelle ich eine MD5-Hashsumme?

Weiter geht’s. Diesmal mit der Erstellung einer MD5-Hashsumme. Diese Funktion brauchte ich für die Validierung einer API-Anfrage. Dort sollte neben der Argumentliste auch eine Hashsumme der Argumente plus einem geheimen Schlüssel übermittelt werden. Nach ein paar erfolglosen Versuchen, aus der Package Documentation schlau zu werden, half mir (wieder einmal) Stackoverflow weiter. Das ist übrigens auch der schwierigste Teil von Golang bis jetzt: Herausfinden, welche Funktion man aus einem Package gerade benötigt und vor allem wie man sie aufruft....

04. März 2010 Â· Carsten

golang: Erste Schritte

Ich bin in den letzten Tagen wieder öfter auf Go gestossen, Googles neue Programmiersprache. Und jetzt habe ich beschlossen, das ganze auch auszuprobieren – obwohl mir die Syntax erstmal nicht gefällt. Zu nah an C, zu viele Pointer… Aber trotzdem bin ich an neuen Inputs in Sachen Softwareentwicklung interessiert und gerade die Ausrichtung auf Mehrprozessorsysteme und message-basierte Anwendungen hat eine große Anziehungskraft. Also richte ich mir eine kleine Linux-VM ein und installiere alle notwendigen Pakete für Go (und ab jetzt werde ich mit golang auf die Sprache verweisen, denn 2 Buchstaben sind einfach zu wenig für eine Suchmaschine…)....

02. März 2010 Â· Carsten