go-learning

module
v0.0.0-...-9882766 Latest Latest
Warning

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

Go to latest
Published: Nov 26, 2022 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
bash
benchmarking
01-iteratingString
Check for the occurence of a string inside another string.
Check for the occurence of a string inside another string.
02
binary
04-convert-slice-of-bools-to-uint8
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
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
Invert the bits in an uint32.
Invert the bits in an uint32.
07-get-network-and-hosts-of-an-ip-address
Calculates the Prefix, and the address range for that prefix.
Calculates the Prefix, and the address range for that prefix.
11-bitShiftingUint64ToInt
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
blueprints2
bok
ch1/dup1
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
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
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
Echo1 prints its command-line arguments.
Echo1 prints its command-line arguments.
ch1/echo2
Echo2 prints its command-line arguments.
Echo2 prints its command-line arguments.
ch1/echo3
Echo3 prints its command-line arguments.
Echo3 prints its command-line arguments.
ch1/fetch
Fetch prints the content found at each specified URL.
Fetch prints the content found at each specified URL.
ch1/fetchall
Fetchall fetches URLs in parallel and reports their times and sizes.
Fetchall fetches URLs in parallel and reports their times and sizes.
ch1/helloworld
Helloworld is our first Go program.
Helloworld is our first Go program.
ch1/lissajous
Lissajous generates GIF animations of random Lissajous figures.
Lissajous generates GIF animations of random Lissajous figures.
ch1/server1
Server1 is a minimal "echo" server.
Server1 is a minimal "echo" server.
ch1/server2
Server2 is a minimal "echo" and counter server.
Server2 is a minimal "echo" and counter server.
ch1/server3
Server3 is an "echo" server that displays request parameters.
Server3 is an "echo" server that displays request parameters.
ch10/cross
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
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
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
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
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
Package unsafeptr demonstrates basic use of unsafe.Pointer.
Package unsafeptr demonstrates basic use of unsafe.Pointer.
ch2/boiling
Boiling prints the boiling point of water.
Boiling prints the boiling point of water.
ch2/cf
Cf converts its numeric argument to Celsius and Fahrenheit.
Cf converts its numeric argument to Celsius and Fahrenheit.
ch2/echo4
Echo4 prints its command-line arguments.
Echo4 prints its command-line arguments.
ch2/ftoc
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
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
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
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
Mandelbrot emits a PNG image of the Mandelbrot fractal.
Mandelbrot emits a PNG image of the Mandelbrot fractal.
ch3/netflag
Netflag demonstrates an integer type used as a bit field.
Netflag demonstrates an integer type used as a bit field.
ch3/printints
Printints demonstrates the use of bytes.Buffer to format a string.
Printints demonstrates the use of bytes.Buffer to format a string.
ch3/surface
Surface computes an SVG rendering of a 3-D surface function.
Surface computes an SVG rendering of a 3-D surface function.
ch4/append
Append illustrates the behavior of the built-in append function.
Append illustrates the behavior of the built-in append function.
ch4/autoescape
Autoescape demonstrates automatic HTML escaping in html/template.
Autoescape demonstrates automatic HTML escaping in html/template.
ch4/charcount
Charcount computes counts of Unicode characters.
Charcount computes counts of Unicode characters.
ch4/dedup
Dedup prints only one instance of each line; duplicates are removed.
Dedup prints only one instance of each line; duplicates are removed.
ch4/embed
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
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
Issues prints a table of GitHub issues matching the search terms.
Issues prints a table of GitHub issues matching the search terms.
ch4/issueshtml
Issueshtml prints an HTML table of issues matching the search terms.
Issueshtml prints an HTML table of issues matching the search terms.
ch4/issuesreport
Issuesreport prints a report of issues matching the search terms.
Issuesreport prints a report of issues matching the search terms.
ch4/movie
Movie prints Movies as JSON.
Movie prints Movies as JSON.
ch4/nonempty
Nonempty is an example of an in-place slice algorithm.
Nonempty is an example of an in-place slice algorithm.
ch4/rev
Rev reverses a slice.
Rev reverses a slice.
ch4/sha256
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
Defer1 demonstrates a deferred call being invoked during a panic.
Defer1 demonstrates a deferred call being invoked during a panic.
ch5/defer2
Defer2 demonstrates a deferred call to runtime.Stack during a panic.
Defer2 demonstrates a deferred call to runtime.Stack during a panic.
ch5/fetch
Fetch saves the contents of a URL into a local file.
Fetch saves the contents of a URL into a local file.
ch5/findlinks1
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
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
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
Outline prints the outline of an HTML document tree.
Outline prints the outline of an HTML document tree.
ch5/outline2
Outline prints the outline of an HTML document tree.
Outline prints the outline of an HTML document tree.
ch5/squares
The squares program demonstrates a function value with state.
The squares program demonstrates a function value with state.
ch5/sum
The sum program demonstrates a variadic function.
The sum program demonstrates a variadic function.
ch5/title1
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
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
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
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
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
The wait program waits for an HTTP server to start responding.
The wait program waits for an HTTP server to start responding.
ch6/coloredpoint
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
The urlvalues command demonstrates a map type with methods.
The urlvalues command demonstrates a map type with methods.
ch7/bytecounter
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
Http1 is a rudimentary e-commerce server.
Http1 is a rudimentary e-commerce server.
ch7/http2
Http2 is an e-commerce server with /list and /price endpoints.
Http2 is an e-commerce server with /list and /price endpoints.
ch7/http3
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
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
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
The sleep program sleeps for a specified period of time.
The sleep program sleeps for a specified period of time.
ch7/sorting
Sorting sorts a music playlist into a variety of orders.
Sorting sorts a music playlist into a variety of orders.
ch7/surface
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
Tempflag prints the value of its -temp (temperature) flag.
Tempflag prints the value of its -temp (temperature) flag.
ch7/xmlselect
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
Chat is a server that lets clients chat with each other.
Chat is a server that lets clients chat with each other.
ch8/clock1
Clock1 is a TCP server that periodically writes the time.
Clock1 is a TCP server that periodically writes the time.
ch8/clock2
Clock is a TCP server that periodically writes the time.
Clock is a TCP server that periodically writes the time.
ch8/countdown1
Countdown implements the countdown for a rocket launch.
Countdown implements the countdown for a rocket launch.
ch8/countdown2
Countdown implements the countdown for a rocket launch.
Countdown implements the countdown for a rocket launch.
ch8/countdown3
Countdown implements the countdown for a rocket launch.
Countdown implements the countdown for a rocket launch.
ch8/crawl1
Crawl1 crawls web links starting with the command-line arguments.
Crawl1 crawls web links starting with the command-line arguments.
ch8/crawl2
Crawl2 crawls web links starting with the command-line arguments.
Crawl2 crawls web links starting with the command-line arguments.
ch8/crawl3
Crawl3 crawls web links starting with the command-line arguments.
Crawl3 crawls web links starting with the command-line arguments.
ch8/du1
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
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
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
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
Netcat1 is a read-only TCP client.
Netcat1 is a read-only TCP client.
ch8/netcat2
Netcat is a simple read/write client for TCP servers.
Netcat is a simple read/write client for TCP servers.
ch8/netcat3
Netcat is a simple read/write client for TCP servers.
Netcat is a simple read/write client for TCP servers.
ch8/pipeline1
Pipeline1 demonstrates an infinite 3-stage pipeline.
Pipeline1 demonstrates an infinite 3-stage pipeline.
ch8/pipeline2
Pipeline2 demonstrates a finite 3-stage pipeline.
Pipeline2 demonstrates a finite 3-stage pipeline.
ch8/pipeline3
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
Reverb1 is a TCP server that simulates an echo.
Reverb1 is a TCP server that simulates an echo.
ch8/reverb2
Reverb2 is a TCP server that simulates an echo.
Reverb2 is a TCP server that simulates an echo.
ch8/spinner
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
certificates
cli
compression
concepts
concurrency
04-sending-and-receiving-on-a-channel-2-go-routines-with-range-on-channel-with-waitGroup
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
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
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
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.
16-spawnMany-ReadWithSingle
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
Example for checking if a channel is closed.
Example for checking if a channel is closed.
22-chan-Empty-Struct
chan struct{} are used for signaling.
chan struct{} are used for signaling.
23-chanWithChanOfEmptyStruct_usedForSignaling
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
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
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
Example is for testing out setting channels to nil.
Example is for testing out setting channels to nil.
constants
01
crypto
csv
database
sql/01-sqliteTest
DOC: https://golang.org/pkg/database/sql/
DOC: https://golang.org/pkg/database/sql/
decoupling
div
03-
07-webTest
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
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
drone-IdeasTesting
22-mapOfCommandsToMethodsForDrone
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
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
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
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.
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
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
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
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
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.
flag
fmt
fsnotify
function
12-send-functions-over-channel
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
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
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
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
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.
Higher order functions.
fyne
gaard
generics
01
02
03
07
gioui
01
02
goexpect
graph
01
02
03
grpc
gui
http
1.
18-put-a-ServeHTTP-method-on-a-struct-to-turn-it-into-a-http.Handle-sync.Once
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
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.
31-websockets-commands-using-templates-via-websocket
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
Using wrapper/middleware with Handler instead of HandlerFunc
Using wrapper/middleware with Handler instead of HandlerFunc
36-middlewareAuthentication
Testing wrapping an authenticatin Handler around a normal HandlerFunc.
Testing wrapping an authenticatin Handler around a normal HandlerFunc.
37-staticPagesServingADirectory
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
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
Simple reverse proxy
Simple reverse proxy
41-reverseProxyXForwarder
Simple reverse proxy
Simple reverse proxy
42-reverseProxyEyer.io
Simple reverse proxy
Simple reverse proxy
46-barebonesFramework
Test of the Barebones html/css framework.
Test of the Barebones html/css framework.
49-startHttpServerWith_net.Listen
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.
image
interfaces
22-mapOfCommandsToMethodsForDrone
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
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.
reader/01-reading-a-file-in-chuncks-of-a-bytes
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
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
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.
utils/02-ReadAll
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
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
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
lexing
02-check-for-characters-after-position
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
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
map
14-occurence-of-unique-numbers
A litte practise with maps to count the occurence of numbers.
A litte practise with maps to count the occurence of numbers.
17-mapWithFunctionValues
Using functions as map values with and without predefined values.
Using functions as map values with and without predefined values.
methods
mqtt
nats
net
08-do-some-action-on-input
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
gopacket/01-example-from-google
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
Test for learning RPC.
Test for learning RPC.
snmp/01
This program demonstrates BulkWalk.
This program demonstrates BulkWalk.
oauth2
01
os
06
07-exec_CommandContext_using_channels_for_sub_shell
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
02-usingInterface
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
pixel
05
pointers
profiling
prometheus
02
protocolBuffers
pty
02
reflect
05
Testing example from https://www.youtube.com/watch?v=vq_LnLViCjY
Testing example from https://www.youtube.com/watch?v=vq_LnLViCjY
12
regex
serial
slice
07-slice-buffer-reading-from-channel
Make a buffered reader of channel.
Make a buffered reader of channel.
sort
strings
struct
svg
switch
sync
01-sync.Once
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
template
testing
01-
02-
time
tmp
01
Simple reverse proxy
Simple reverse proxy
02
04
08-buffered-reading-test
Idea for creating a buffer.
Idea for creating a buffer.
type
01-typeAssertion
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
type-and-methods-and-interfaces
ultimate
unsafe
04-moveContentOfOneTypeToAnother
https://golang.org/pkg/unsafe/#Pointer
https://golang.org/pkg/unsafe/#Pointer
05-uintptr
https://golang.org/pkg/unsafe/#Pointer
https://golang.org/pkg/unsafe/#Pointer
06-uintptrToSetTheValueOfAnArray
https://golang.org/pkg/unsafe/#Pointer
https://golang.org/pkg/unsafe/#Pointer
11
usb
01-lsusb
lsusb lists attached USB devices.
lsusb lists attached USB devices.
02-lsb-btmod
lsusb lists attached USB devices.
lsusb lists attached USB devices.
validator
wf
yaegi

Jump to

Keyboard shortcuts

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