go-learning

module
v0.0.0-...-2add1d7 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 7, 2025 License: Apache-2.0

README

My golang training repository

A collection of all my different training exercises from day 1.

About

Most of the exercises should be documented in the code telling what the code is for and how it work. But a few might be added a little bit to hasty, and lack good documentation.

TODO

Check that all projects are well documented.

Directories

Path Synopsis
autocert
01 command
bash
03-go-shebang command
benchmarking
01-iteratingString command
Check for the occurence of a string inside another string.
Check for the occurence of a string inside another string.
02 command
binary
01-binary-write command
04-convert-slice-of-bools-to-uint8 command
Turn a slice of 8 boolean values into a byte (uint8).
Turn a slice of 8 boolean values into a byte (uint8).
05-use-portion-of-a-byte-to-check-map-values command
Example for picking out only the value of the 4 least significant bits of a byte, use that value to lookup the map.
Example for picking out only the value of the 4 least significant bits of a byte, use that value to lookup the map.
06-invert-bits command
Invert the bits in an uint32.
Invert the bits in an uint32.
07-get-network-and-hosts-of-an-ip-address command
Calculates the Prefix, and the address range for that prefix.
Calculates the Prefix, and the address range for that prefix.
11-bitShiftingUint64ToInt command
The gimmick here is that, unique among go's arithmetic-ish operators, << does not require that its parameters have the same type.
The gimmick here is that, unique among go's arithmetic-ish operators, << does not require that its parameters have the same type.
blueprints
01.7-tracer command
blueprints2
01chat/chat command
02chat/chat command
bok
ch1/dup1 command
Dup1 prints the text of each line that appears more than once in the standard input, preceded by its count.
Dup1 prints the text of each line that appears more than once in the standard input, preceded by its count.
ch1/dup2 command
Dup2 prints the count and text of lines that appear more than once in the input.
Dup2 prints the count and text of lines that appear more than once in the input.
ch1/dup3 command
Dup3 prints the count and text of lines that appear more than once in the named input files.
Dup3 prints the count and text of lines that appear more than once in the named input files.
ch1/echo1 command
Echo1 prints its command-line arguments.
Echo1 prints its command-line arguments.
ch1/echo2 command
Echo2 prints its command-line arguments.
Echo2 prints its command-line arguments.
ch1/echo3 command
Echo3 prints its command-line arguments.
Echo3 prints its command-line arguments.
ch1/fetch command
Fetch prints the content found at each specified URL.
Fetch prints the content found at each specified URL.
ch1/fetchall command
Fetchall fetches URLs in parallel and reports their times and sizes.
Fetchall fetches URLs in parallel and reports their times and sizes.
ch1/helloworld command
Helloworld is our first Go program.
Helloworld is our first Go program.
ch1/lissajous command
Lissajous generates GIF animations of random Lissajous figures.
Lissajous generates GIF animations of random Lissajous figures.
ch1/server1 command
Server1 is a minimal "echo" server.
Server1 is a minimal "echo" server.
ch1/server2 command
Server2 is a minimal "echo" and counter server.
Server2 is a minimal "echo" and counter server.
ch1/server3 command
Server3 is an "echo" server that displays request parameters.
Server3 is an "echo" server that displays request parameters.
ch10/cross command
The cross command prints the values of GOOS and GOARCH for this target.
The cross command prints the values of GOOS and GOARCH for this target.
ch10/jpeg command
The jpeg command reads a PNG image from the standard input and writes it as a JPEG image to the standard output.
The jpeg command reads a PNG image from the standard input and writes it as a JPEG image to the standard output.
ch11/echo command
Echo prints its command-line arguments.
Echo prints its command-line arguments.
ch11/storage1
Package storage is part of a hypothetical cloud storage server.
Package storage is part of a hypothetical cloud storage server.
ch11/storage2
Package storage is part of a hypothetical cloud storage server.
Package storage is part of a hypothetical cloud storage server.
ch11/word1
Package word provides utilities for word games.
Package word provides utilities for word games.
ch11/word2
Package word provides utilities for word games.
Package word provides utilities for word games.
ch12/display
Package display provides a means to display structured data.
Package display provides a means to display structured data.
ch12/format
Package format provides an Any function that can format any value.
Package format provides an Any function that can format any value.
ch12/methods
Package methods provides a function to print the methods of any value.
Package methods provides a function to print the methods of any value.
ch12/params
Package params provides a reflection-based parser for URL parameters.
Package params provides a reflection-based parser for URL parameters.
ch12/search command
Search is a demo of the params.Unpack function.
Search is a demo of the params.Unpack function.
ch12/sexpr
Package sexpr provides a means for converting Go objects to and from S-expressions.
Package sexpr provides a means for converting Go objects to and from S-expressions.
ch13/bzip
Package bzip provides a writer that uses bzip2 compression (bzip.org).
Package bzip provides a writer that uses bzip2 compression (bzip.org).
ch13/bzip-print
Package bzip provides a writer that uses bzip2 compression (bzip.org).
Package bzip provides a writer that uses bzip2 compression (bzip.org).
ch13/bzipper command
Bzipper reads input, bzip2-compresses it, and writes it out.
Bzipper reads input, bzip2-compresses it, and writes it out.
ch13/equal
Package equal provides a deep equivalence relation for arbitrary values.
Package equal provides a deep equivalence relation for arbitrary values.
ch13/unsafeptr command
Package unsafeptr demonstrates basic use of unsafe.Pointer.
Package unsafeptr demonstrates basic use of unsafe.Pointer.
ch2/boiling command
Boiling prints the boiling point of water.
Boiling prints the boiling point of water.
ch2/cf command
Cf converts its numeric argument to Celsius and Fahrenheit.
Cf converts its numeric argument to Celsius and Fahrenheit.
ch2/echo4 command
Echo4 prints its command-line arguments.
Echo4 prints its command-line arguments.
ch2/ftoc command
Ftoc prints two Fahrenheit-to-Celsius conversions.
Ftoc prints two Fahrenheit-to-Celsius conversions.
ch2/popcount
(Package doc comment intentionally malformed to demonstrate golint.) !+
(Package doc comment intentionally malformed to demonstrate golint.) !+
ch2/tempconv
Package tempconv performs Celsius and Fahrenheit conversions.
Package tempconv performs Celsius and Fahrenheit conversions.
ch2/tempconv0
Package tempconv performs Celsius and Fahrenheit temperature computations.
Package tempconv performs Celsius and Fahrenheit temperature computations.
ch3/basename1 command
Basename1 reads file names from stdin and prints the base name of each one.
Basename1 reads file names from stdin and prints the base name of each one.
ch3/basename2 command
Basename2 reads file names from stdin and prints the base name of each one.
Basename2 reads file names from stdin and prints the base name of each one.
ch3/comma command
Comma prints its argument numbers with a comma at each power of 1000.
Comma prints its argument numbers with a comma at each power of 1000.
ch3/mandelbrot command
Mandelbrot emits a PNG image of the Mandelbrot fractal.
Mandelbrot emits a PNG image of the Mandelbrot fractal.
ch3/netflag command
Netflag demonstrates an integer type used as a bit field.
Netflag demonstrates an integer type used as a bit field.
ch3/printints command
Printints demonstrates the use of bytes.Buffer to format a string.
Printints demonstrates the use of bytes.Buffer to format a string.
ch3/surface command
Surface computes an SVG rendering of a 3-D surface function.
Surface computes an SVG rendering of a 3-D surface function.
ch4/append command
Append illustrates the behavior of the built-in append function.
Append illustrates the behavior of the built-in append function.
ch4/autoescape command
Autoescape demonstrates automatic HTML escaping in html/template.
Autoescape demonstrates automatic HTML escaping in html/template.
ch4/charcount command
Charcount computes counts of Unicode characters.
Charcount computes counts of Unicode characters.
ch4/dedup command
Dedup prints only one instance of each line; duplicates are removed.
Dedup prints only one instance of each line; duplicates are removed.
ch4/embed command
Embed demonstrates basic struct embedding.
Embed demonstrates basic struct embedding.
ch4/github
Package github provides a Go API for the GitHub issue tracker.
Package github provides a Go API for the GitHub issue tracker.
ch4/graph command
Graph shows how to use a map of maps to represent a directed graph.
Graph shows how to use a map of maps to represent a directed graph.
ch4/issues command
Issues prints a table of GitHub issues matching the search terms.
Issues prints a table of GitHub issues matching the search terms.
ch4/issueshtml command
Issueshtml prints an HTML table of issues matching the search terms.
Issueshtml prints an HTML table of issues matching the search terms.
ch4/issuesreport command
Issuesreport prints a report of issues matching the search terms.
Issuesreport prints a report of issues matching the search terms.
ch4/movie command
Movie prints Movies as JSON.
Movie prints Movies as JSON.
ch4/nonempty command
Nonempty is an example of an in-place slice algorithm.
Nonempty is an example of an in-place slice algorithm.
ch4/rev command
Rev reverses a slice.
Rev reverses a slice.
ch4/sha256 command
The sha256 command computes the SHA256 hash (an array) of a string.
The sha256 command computes the SHA256 hash (an array) of a string.
ch4/treesort
Package treesort provides insertion sort using an unbalanced binary tree.
Package treesort provides insertion sort using an unbalanced binary tree.
ch5/defer1 command
Defer1 demonstrates a deferred call being invoked during a panic.
Defer1 demonstrates a deferred call being invoked during a panic.
ch5/defer2 command
Defer2 demonstrates a deferred call to runtime.Stack during a panic.
Defer2 demonstrates a deferred call to runtime.Stack during a panic.
ch5/fetch command
Fetch saves the contents of a URL into a local file.
Fetch saves the contents of a URL into a local file.
ch5/findlinks1 command
Findlinks1 prints the links in an HTML document read from standard input.
Findlinks1 prints the links in an HTML document read from standard input.
ch5/findlinks2 command
Findlinks2 does an HTTP GET on each URL, parses the result as HTML, and prints the links within it.
Findlinks2 does an HTTP GET on each URL, parses the result as HTML, and prints the links within it.
ch5/findlinks3 command
Findlinks3 crawls the web, starting with the URLs on the command line.
Findlinks3 crawls the web, starting with the URLs on the command line.
ch5/links
Package links provides a link-extraction function.
Package links provides a link-extraction function.
ch5/outline command
Outline prints the outline of an HTML document tree.
Outline prints the outline of an HTML document tree.
ch5/outline2 command
Outline prints the outline of an HTML document tree.
Outline prints the outline of an HTML document tree.
ch5/squares command
The squares program demonstrates a function value with state.
The squares program demonstrates a function value with state.
ch5/sum command
The sum program demonstrates a variadic function.
The sum program demonstrates a variadic function.
ch5/title1 command
Title1 prints the title of an HTML document specified by a URL.
Title1 prints the title of an HTML document specified by a URL.
ch5/title2 command
Title2 prints the title of an HTML document specified by a URL.
Title2 prints the title of an HTML document specified by a URL.
ch5/title3 command
Title3 prints the title of an HTML document specified by a URL.
Title3 prints the title of an HTML document specified by a URL.
ch5/toposort command
The toposort program prints the nodes of a DAG in topological order.
The toposort program prints the nodes of a DAG in topological order.
ch5/trace command
The trace program uses defer to add entry/exit diagnostics to a function.
The trace program uses defer to add entry/exit diagnostics to a function.
ch5/wait command
The wait program waits for an HTTP server to start responding.
The wait program waits for an HTTP server to start responding.
ch6/coloredpoint command
Coloredpoint demonstrates struct embedding.
Coloredpoint demonstrates struct embedding.
ch6/geometry
Package geometry defines simple types for plane geometry.
Package geometry defines simple types for plane geometry.
ch6/intset
Package intset provides a set of integers based on a bit vector.
Package intset provides a set of integers based on a bit vector.
ch6/urlvalues command
The urlvalues command demonstrates a map type with methods.
The urlvalues command demonstrates a map type with methods.
ch7/bytecounter command
Bytecounter demonstrates an implementation of io.Writer that counts bytes.
Bytecounter demonstrates an implementation of io.Writer that counts bytes.
ch7/eval
Package eval provides an expression evaluator.
Package eval provides an expression evaluator.
ch7/http1 command
Http1 is a rudimentary e-commerce server.
Http1 is a rudimentary e-commerce server.
ch7/http2 command
Http2 is an e-commerce server with /list and /price endpoints.
Http2 is an e-commerce server with /list and /price endpoints.
ch7/http3 command
Http3 is an e-commerce server that registers the /list and /price endpoints by calling (*http.ServeMux).Handle.
Http3 is an e-commerce server that registers the /list and /price endpoints by calling (*http.ServeMux).Handle.
ch7/http3a command
Http3a is an e-commerce server that registers the /list and /price endpoints by calling (*http.ServeMux).HandleFunc.
Http3a is an e-commerce server that registers the /list and /price endpoints by calling (*http.ServeMux).HandleFunc.
ch7/http4 command
Http4 is an e-commerce server that registers the /list and /price endpoint by calling http.HandleFunc.
Http4 is an e-commerce server that registers the /list and /price endpoint by calling http.HandleFunc.
ch7/sleep command
The sleep program sleeps for a specified period of time.
The sleep program sleeps for a specified period of time.
ch7/sorting command
Sorting sorts a music playlist into a variety of orders.
Sorting sorts a music playlist into a variety of orders.
ch7/surface command
The surface program plots the 3-D surface of a user-provided function.
The surface program plots the 3-D surface of a user-provided function.
ch7/tempconv
Package tempconv performs Celsius and Fahrenheit temperature computations.
Package tempconv performs Celsius and Fahrenheit temperature computations.
ch7/tempflag command
Tempflag prints the value of its -temp (temperature) flag.
Tempflag prints the value of its -temp (temperature) flag.
ch7/xmlselect command
Xmlselect prints the text of selected elements of an XML document.
Xmlselect prints the text of selected elements of an XML document.
ch8/cake
Package cake provides a simulation of a concurrent cake shop with numerous parameters.
Package cake provides a simulation of a concurrent cake shop with numerous parameters.
ch8/chat command
Chat is a server that lets clients chat with each other.
Chat is a server that lets clients chat with each other.
ch8/clock1 command
Clock1 is a TCP server that periodically writes the time.
Clock1 is a TCP server that periodically writes the time.
ch8/clock2 command
Clock is a TCP server that periodically writes the time.
Clock is a TCP server that periodically writes the time.
ch8/countdown1 command
Countdown implements the countdown for a rocket launch.
Countdown implements the countdown for a rocket launch.
ch8/countdown2 command
Countdown implements the countdown for a rocket launch.
Countdown implements the countdown for a rocket launch.
ch8/countdown3 command
Countdown implements the countdown for a rocket launch.
Countdown implements the countdown for a rocket launch.
ch8/crawl1 command
Crawl1 crawls web links starting with the command-line arguments.
Crawl1 crawls web links starting with the command-line arguments.
ch8/crawl2 command
Crawl2 crawls web links starting with the command-line arguments.
Crawl2 crawls web links starting with the command-line arguments.
ch8/crawl3 command
Crawl3 crawls web links starting with the command-line arguments.
Crawl3 crawls web links starting with the command-line arguments.
ch8/du1 command
The du1 command computes the disk usage of the files in a directory.
The du1 command computes the disk usage of the files in a directory.
ch8/du2 command
The du2 command computes the disk usage of the files in a directory.
The du2 command computes the disk usage of the files in a directory.
ch8/du3 command
The du3 command computes the disk usage of the files in a directory.
The du3 command computes the disk usage of the files in a directory.
ch8/du4 command
The du4 command computes the disk usage of the files in a directory.
The du4 command computes the disk usage of the files in a directory.
ch8/netcat1 command
Netcat1 is a read-only TCP client.
Netcat1 is a read-only TCP client.
ch8/netcat2 command
Netcat is a simple read/write client for TCP servers.
Netcat is a simple read/write client for TCP servers.
ch8/netcat3 command
Netcat is a simple read/write client for TCP servers.
Netcat is a simple read/write client for TCP servers.
ch8/pipeline1 command
Pipeline1 demonstrates an infinite 3-stage pipeline.
Pipeline1 demonstrates an infinite 3-stage pipeline.
ch8/pipeline2 command
Pipeline2 demonstrates a finite 3-stage pipeline.
Pipeline2 demonstrates a finite 3-stage pipeline.
ch8/pipeline3 command
Pipeline3 demonstrates a finite 3-stage pipeline with range, close, and unidirectional channel types.
Pipeline3 demonstrates a finite 3-stage pipeline with range, close, and unidirectional channel types.
ch8/reverb1 command
Reverb1 is a TCP server that simulates an echo.
Reverb1 is a TCP server that simulates an echo.
ch8/reverb2 command
Reverb2 is a TCP server that simulates an echo.
Reverb2 is a TCP server that simulates an echo.
ch8/spinner command
Spinner displays an animation while computing the 45th Fibonacci number.
Spinner displays an animation while computing the 45th Fibonacci number.
ch8/thumbnail
The thumbnail package produces thumbnail-size images from larger images.
The thumbnail package produces thumbnail-size images from larger images.
ch9/bank1
Package bank provides a concurrency-safe bank with one account.
Package bank provides a concurrency-safe bank with one account.
ch9/bank2
Package bank provides a concurrency-safe bank with one account.
Package bank provides a concurrency-safe bank with one account.
ch9/bank3
Package bank provides a concurrency-safe single-account bank.
Package bank provides a concurrency-safe single-account bank.
ch9/memo1
Package memo provides a concurrency-unsafe memoization of a function of type Func.
Package memo provides a concurrency-unsafe memoization of a function of type Func.
ch9/memo2
Package memo provides a concurrency-safe memoization a function of type Func.
Package memo provides a concurrency-safe memoization a function of type Func.
ch9/memo3
Package memo provides a concurrency-safe memoization a function of type Func.
Package memo provides a concurrency-safe memoization a function of type Func.
ch9/memo4
Package memo provides a concurrency-safe memoization a function of a function.
Package memo provides a concurrency-safe memoization a function of a function.
ch9/memo5
Package memo provides a concurrency-safe non-blocking memoization of a function.
Package memo provides a concurrency-safe non-blocking memoization of a function.
ch9/memotest
Package memotest provides common functions for testing various designs of the memo package.
Package memotest provides common functions for testing various designs of the memo package.
bufio
builtin
01-copy command
certificates
04-make-csr command
cli
manifoldco/02 command
compression
concepts
concurrency
02-mutex command
04-sending-and-receiving-on-a-channel-2-go-routines-with-range-on-channel-with-waitGroup command
This example is the same as 04, just that the checking of data is done with a range loop instead of checking if the loop is closed or not.
This example is the same as 04, just that the checking of data is done with a range loop instead of checking if the loop is closed or not.
05-read-and-write-file-testing command
testing file reading in one go routine and sending whats read to other goroutine
testing file reading in one go routine and sending whats read to other goroutine
09.2-sending-pointer-to-struct-over-channel command
Test how to pass pointers to array via a channel, change it, and check if the change is reflected in the Go routine where the array was created.
Test how to pass pointers to array via a channel, change it, and check if the change is reflected in the Go routine where the array was created.
12channel-drop-pattern command
The idea here is to create buffer, and if the buffer is saturated, then drop the request.
The idea here is to create buffer, and if the buffer is saturated, then drop the request.
14-timeout command
16-spawnMany-ReadWithSingle command
Spawn up a bunch of goroutines who want to put a single nr.
Spawn up a bunch of goroutines who want to put a single nr.
17-slice-buffer-reading-from-channel
Make a buffered reader of channel.
Make a buffered reader of channel.
17.1-slice-buffer-using-empty-interface
Make a buffered reader of channel.
Make a buffered reader of channel.
18-checking-if-a-channel-is-closed command
Example for checking if a channel is closed.
Example for checking if a channel is closed.
22-chan-Empty-Struct command
chan struct{} are used for signaling.
chan struct{} are used for signaling.
23-chanWithChanOfEmptyStruct_usedForSignaling command
Testing the concept of channels who contains another channel of struct{} for signaling.
Testing the concept of channels who contains another channel of struct{} for signaling.
24-chanWithChanOfEmptyStructUsedForSignalingAndSerialization command
Testing the concept of channels who contains another channel of struct{} for signaling.
Testing the concept of channels who contains another channel of struct{} for signaling.
27-cancel_httpResponses command
The purpose of this test is to learn more on context and cancelation of http request and responses.
The purpose of this test is to learn more on context and cancelation of http request and responses.
28-nilChannels command
Example is for testing out setting channels to nil.
Example is for testing out setting channels to nil.
41-actor-idea command
42-errgroup command
constants
01 command
crypto
01-sha256 command
04-ed25519 command
05-ed25519 command
06-ed25519 command
csv
01-testing command
database
sql/01-sqliteTest command
DOC: https://golang.org/pkg/database/sql/
DOC: https://golang.org/pkg/database/sql/
decoupling
div
001httpGet command
01.1 command
01httpGet command
02-guess-number command
03- command
05-loan-calc command
06.1-file-test command
07-webTest command
The purpose of this exercise is to understand the differences between : handle, handler, handlefunc, handlerfunc.
The purpose of this exercise is to understand the differences between : handle, handler, handlefunc, handlerfunc.
10-stack command
The idea is to make a push/pop stack, where you push and pop elements to the end of a stack with append.
The idea is to make a push/pop stack, where you push and pop elements to the end of a stack with append.
dns
dns/01 command
dns/02 command
drone-IdeasTesting
100- command
22-mapOfCommandsToMethodsForDrone command
The UDP stream received from the drone specifying what command to use will look like this: []byte{1, 4, 6, 0, 66, 170, 134, 60, 21, 152, 181, 189, 131, 170, 224, 191} where the first 3 values {1,4,06} is a reference to what this command is, and the following bytes are the payload (arguments) for that command.
The UDP stream received from the drone specifying what command to use will look like this: []byte{1, 4, 6, 0, 66, 170, 134, 60, 21, 152, 181, 189, 131, 170, 224, 191} where the first 3 values {1,4,06} is a reference to what this command is, and the following bytes are the payload (arguments) for that command.
conceptTesting/decoding-proj-class-command command
The UDP stream received from the drone specifying what command to use will look like this: []byte{1, 4, 6, 0, 66, 170, 134, 60, 21, 152, 181, 189, 131, 170, 224, 191} where the first 3 values {1,4,06} is a reference to what this command is, and the following bytes are the payload (arguments) for that command.
The UDP stream received from the drone specifying what command to use will look like this: []byte{1, 4, 6, 0, 66, 170, 134, 60, 21, 152, 181, 189, 131, 170, 224, 191} where the first 3 values {1,4,06} is a reference to what this command is, and the following bytes are the payload (arguments) for that command.
embedding
01-embedding-types-to-inherit-methods command
Test out embedding an existing type, and inherit all the methods that the original type have.
Test out embedding an existing type, and inherit all the methods that the original type have.
encoding
gob/01-firstGOBTest command
encoding/gob testing Encode a struct into gob, put it on a buffer of type bytes.Buffer, then decode it.
encoding/gob testing Encode a struct into gob, put it on a buffer of type bytes.Buffer, then decode it.
json/02- command
xml/02 command
xml/04-copy-of-template-parse
Package parse builds parse trees for templates as defined by text/template and html/template.
Package parse builds parse trees for templates as defined by text/template and html/template.
xml/05-read-more-if-end-tag-missing command
Reading an xml file, and if there are multiple lines that belong together we add them together so lexing them later will be easir.
Reading an xml file, and if there are multiple lines that belong together we add them together so lexing them later will be easir.
xml/05.1-read-more-if-end-tag-missing--TESTING-INIT command
Reading an xml file, and if there are multiple lines that belong together we add them together so lexing them later will be easir.
Reading an xml file, and if there are multiple lines that belong together we add them together so lexing them later will be easir.
xml/06-read-more-if-end-tag-missing--WithChannels command
Working but the peek function with a fixed nr is not optimal
Working but the peek function with a fixed nr is not optimal
error
03-errorVariables command
An example that makes no sense, but to test out using error variables.
An example that makes no sense, but to test out using error variables.
08-wrap command
flag
00-example-from-golang-doc command
These examples demonstrate more intricate uses of the flag package.
These examples demonstrate more intricate uses of the flag package.
01-flagSlice command
03-args command
04 command
04.1 command
05 command
06-bttest command
fmt
03-moreStringer command
fsnotify
01-example command
function
12-send-functions-over-channel command
The idea here is to test out sending functions as values over a channel.
The idea here is to test out sending functions as values over a channel.
13-functions-returning-functions-statemachine command
The idea here is to test out having a function returning another function to be executed next.
The idea here is to test out having a function returning another function to be executed next.
15-construct-functions command
The purpose of this exercise is to test how to compose a function based on what input you give to the function composer.
The purpose of this exercise is to test how to compose a function based on what input you give to the function composer.
19-functionChainingByReturningStructFromMethods command
Testing out chaining functions on a struct by returning a pointer to the structure from each method.
Testing out chaining functions on a struct by returning a pointer to the structure from each method.
20-functionChainingByReturningInterface command
Same as test nr 19 for testing chaining functions on a struct, but this one returns an interface from the methods instead of a pointer to the structs, so we only make the methods available and not the types of the structs while chaining.
Same as test nr 19 for testing chaining functions on a struct, but this one returns an interface from the methods instead of a pointer to the structs, so we only make the methods available and not the types of the structs while chaining.
26-recursion command
27-recursion command
Higher order functions.
32-moreWrapping command
fyne
01-initial command
gaard
bygg command
havre command
generics
01 command
02 command
03 command
07 command
gioui
01 command
02 command
03-button command
goexpect
graph
01 command
02 command
03 command
grpc
gui
fyne/01 command
http
01-webtest command
02-webTest command
1.
18-put-a-ServeHTTP-method-on-a-struct-to-turn-it-into-a-http.Handle-sync.Once command
Want to test creating a method to a struct that satisfies the http.Handler interface
Want to test creating a method to a struct that satisfies the http.Handler interface
24-handle_handlers_handleFunc_handlerFunc command
The purpose of this exercise is to understand the differences between : handle, handler, handlefunc, handlerfunc.
The purpose of this exercise is to understand the differences between : handle, handler, handlefunc, handlerfunc.
25-HandlerFuncs command
31-websockets-commands-using-templates-via-websocket command
Test loading templates, and use them to be drawn via a websocket to the browser.
Test loading templates, and use them to be drawn via a websocket to the browser.
35-middleware-with-handler command
Using wrapper/middleware with Handler instead of HandlerFunc
Using wrapper/middleware with Handler instead of HandlerFunc
36-middlewareAuthentication command
Testing wrapping an authenticatin Handler around a normal HandlerFunc.
Testing wrapping an authenticatin Handler around a normal HandlerFunc.
37-staticPagesServingADirectory command
Example will create an http server and server all files found in that directory.
Example will create an http server and server all files found in that directory.
38-WrappingHandlerFuncsWithCastingToHandlerFunc command
Test, converting a function with a handler signature into a HandlerFunc type.
Test, converting a function with a handler signature into a HandlerFunc type.
40-reverseProxy command
Simple reverse proxy
Simple reverse proxy
41-reverseProxyXForwarder command
Simple reverse proxy
Simple reverse proxy
42-reverseProxyEyer.io command
Simple reverse proxy
Simple reverse proxy
46-barebonesFramework command
Test of the Barebones html/css framework.
Test of the Barebones html/css framework.
49-startHttpServerWith_net.Listen command
Testing out net.Listen and http.Serve, and making a web server that will run for 10 seconds, and then shut down.
Testing out net.Listen and http.Serve, and making a web server that will run for 10 seconds, and then shut down.
50-httptest command
54-jwt-example command
55-reverseShell command
image
02-jpgResize command
interfaces
02-interfaces command
03-interfaces command
04-interfaces command
06-interfaces command
08-interfaces command
14-stringer command
21-tracer command
22-mapOfCommandsToMethodsForDrone command
The UDP stream received from the drone specifying what command to use will look like this: []byte{1, 4, 6, 0, 66, 170, 134, 60, 21, 152, 181, 189, 131, 170, 224, 191} where the first 3 values {1,4,06} is a reference to what this command is, and the following bytes are the payload (arguments) for that command.
The UDP stream received from the drone specifying what command to use will look like this: []byte{1, 4, 6, 0, 66, 170, 134, 60, 21, 152, 181, 189, 131, 170, 224, 191} where the first 3 values {1,4,06} is a reference to what this command is, and the following bytes are the payload (arguments) for that command.
io
01-io.copy_WrapperAroundStdinStdout command
Example for using io.Copy to copy directly from STDIN which is an io.Reader to STDOUT which is an io.Writer.
Example for using io.Copy to copy directly from STDIN which is an io.Reader to STDOUT which is an io.Writer.
bufio/01- command
bytes/01-bytes command
pipe/01 command
reader/01-reading-a-file-in-chuncks-of-a-bytes command
io.Reader is an interface of type Reader, that is defined within the io package.
io.Reader is an interface of type Reader, that is defined within the io package.
reader/04-creating-my-first-Read-Method command
The purpose of this program is to create a new type called storage, which can hold some data of type string The storage type shall have a read method, to read the content of the storage into a variable.
The purpose of this program is to create a new type called storage, which can hold some data of type string The storage type shall have a read method, to read the content of the storage into a variable.
reader/04.2-creating-my-first-Read-Method-with-func-accepting-io.Reader command
The purpose of this program is to test creating a Read Method who follows the rule for Read methods, by taking a []byte as input, and returning n characters read, and an error telling when done or failed.
The purpose of this program is to test creating a Read Method who follows the rule for Read methods, by taking a []byte as input, and returning n characters read, and an error telling when done or failed.
reader/06 command
utils/02-ReadAll command
ioutil testing ioutil is a package with some functions to make file reading and writing easier.
ioutil testing ioutil is a package with some functions to make file reading and writing easier.
iot
amqp/01/receive command
docker run -it --rm --name rabbitmq -p 5672:5672 -p 15672:15672 rabbitmq:3-management
docker run -it --rm --name rabbitmq -p 5672:5672 -p 15672:15672 rabbitmq:3-management
amqp/01/send command
docker run -it --rm --name rabbitmq -p 5672:5672 -p 15672:15672 rabbitmq:3-management
docker run -it --rm --name rabbitmq -p 5672:5672 -p 15672:15672 rabbitmq:3-management
js
01 command
99-starfield command
lexing
02-check-for-characters-after-position command
Check for the occurence of a string inside anothe string.
Check for the occurence of a string inside anothe string.
03-concept-of-lexer-as-package command
The idea here is to learn and test out the concept of having local variables and methods in a package (lexml), and only expose what we want to the caller (main.go).
The idea here is to learn and test out the concept of having local variables and methods in a package (lexml), and only expose what we want to the caller (main.go).
03-concept-of-lexer-as-package/lexml
lexml is a package that will take a file, lex it line by line, and return each line back to the caller on a channel.
lexml is a package that will take a file, lex it line by line, and return each line back to the caller on a channel.
log
03-log-logger command
map
02-mapOfStruct command
04-mapOfMaps1 command
05-mapOfSlices1 command
07-mapOfMaps2 command
08-mapOfSlice command
09-comma-ok command
14-occurence-of-unique-numbers command
A litte practise with maps to count the occurence of numbers.
A litte practise with maps to count the occurence of numbers.
17-mapWithFunctionValues command
Using functions as map values with and without predefined values.
Using functions as map values with and without predefined values.
18-mapOfMaps command
methods
01-methods command
mqtt
mqtt-concept1 command
mqtt-concept1.1 command
nats
05-test command
16-js-kv command
tmp command
net
08-do-some-action-on-input command
Starts a tcp listener on localhost port 9000, for testing net.Conn, and do something based on the input
Starts a tcp listener on localhost port 9000, for testing net.Conn, and do something based on the input
13-mtls command
gopacket/01-example-from-google command
The pcapdump binary implements a tcpdump-like command line tool with gopacket using pcap as a backend data collection mechanism.
The pcapdump binary implements a tcpdump-like command line tool with gopacket using pcap as a backend data collection mechanism.
rpc/01-rpcTest/server command
Test for learning RPC.
Test for learning RPC.
snmp/01 command
This program demonstrates BulkWalk.
This program demonstrates BulkWalk.
oauth2
01 command
02-basicExample command
03-basicExample command
os
01-open-browser command
02signal command
05-readSTDIN command
06 command
07-exec_CommandContext_using_channels_for_sub_shell command
When using exec.CommandContext and executing a command with "bash -c" it seems that the timeout of of the context do not cancel the command with the godoc example by just defering the cancel.
When using exec.CommandContext and executing a command with "bash -c" it seems that the timeout of of the context do not cancel the command with the godoc example by just defering the cancel.
package
01-test command
02-usingInterface command
Package printsome for testing package interface boundary.
Package printsome for testing package interface boundary.
02-usingInterface/printsome
Package printsome for testing package interface boundary.
Package printsome for testing package interface boundary.
pdf
01 command
pixel
05 command
06openStreetMap command
pointers
04-structs command
05-slices command
profiling
prometheus
02 command
03-gaugeVector command
04-gaugeVector command
05-registry command
protocolBuffers
pty
01-create-pty command
02 command
reflect
01-simple-test command
02-simple-test command
05 command
Testing example from https://www.youtube.com/watch?v=vq_LnLViCjY
Testing example from https://www.youtube.com/watch?v=vq_LnLViCjY
12 command
regex
01-numbers command
01-someTesting command
serial
slice
02-sliceTest command
07-slice-buffer-reading-from-channel command
Make a buffered reader of channel.
Make a buffered reader of channel.
sort
strings
01-trim-newline command
02-split command
03-unquote command
04-unquote command
04-unquote/tmp command
05-getGitName command
struct
04-structTest command
svg
switch
sync
01-sync.Once command
Using sync.Once to make sure a function is only run once.
Using sync.Once to make sure a function is only run once.
syscall
02-mkdev command
template
testing
01- command
02- command
04basictest command
09-valid-json command
10-fuzz command
time
01-duration command
02-duration command
tmp
01 command
Simple reverse proxy
Simple reverse proxy
02 command
03.1 command
03.2 command
04 command
08-buffered-reading-test command
Idea for creating a buffer.
Idea for creating a buffer.
09-ringbuffer command
http1 command
revproxy command
sftp command
sftp2 command
sftp3 command
sftp6-auth command
stewardwriter command
stewardwriter.2 command
type
01-typeAssertion command
Example who shows how to do type checking with a switch statement.
Example who shows how to do type checking with a switch statement.
02 command
type-and-methods-and-interfaces
ultimate
unsafe
01-Sizeof command
04-moveContentOfOneTypeToAnother command
https://golang.org/pkg/unsafe/#Pointer
https://golang.org/pkg/unsafe/#Pointer
05-uintptr command
https://golang.org/pkg/unsafe/#Pointer
https://golang.org/pkg/unsafe/#Pointer
06-uintptrToSetTheValueOfAnArray command
https://golang.org/pkg/unsafe/#Pointer
https://golang.org/pkg/unsafe/#Pointer
11 command
usb
01-lsusb command
lsusb lists attached USB devices.
lsusb lists attached USB devices.
02-lsb-btmod command
lsusb lists attached USB devices.
lsusb lists attached USB devices.
03-test command
validator
wf
01-wf command
02-wf command
yaegi

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL