Skip to content

Instantly share code, notes, and snippets.

@zgiber
zgiber / cbrt.go
Last active December 10, 2015 16:48
A Tour of Go. Advanced Exercise: Complex cube roots.
package main
import (
"fmt"
"math"
)
func Cbrt(x complex128) complex128 {
next := func(z complex128) (complex128, float64) { //takes the result of the last iteration, and returns new result and difference
newz := z - (((z * z * z) - x) / (3 * (z * z)))
@zgiber
zgiber / tcpserver.go
Created April 16, 2014 09:00
TCP server example. (For better small little servers out there.)
package main
import (
"io"
"log"
"net"
"time"
)
func main() {
@zgiber
zgiber / timeout.go
Created May 15, 2014 15:50
Golang timeout goroutine with channels
package main
import (
"fmt"
"time"
)
func main() {
fmt.Println("Hello, playground")
receiverTimeout := time.Duration(5 * time.Second)
@zgiber
zgiber / inherit.go
Last active August 29, 2015 14:04
go "inheritance" syntax reminder
package main
import (
"fmt"
)
type car struct {
wheels int
}
@zgiber
zgiber / rgswap.go
Last active August 29, 2015 14:06
convert normal map to blender's format (swap Red-Green channels)
package main
import (
"flag"
"fmt"
"image"
"image/color"
"image/png"
"os"
)
@zgiber
zgiber / read.me
Created September 19, 2014 09:43
GoSublime appengine autocomplete
gosublime settings:
{
"installsuffix": "appengine",
"env": {
"GOPATH": "/home/zoltan/Dev/go:/home/zoltan/Dev/go_appengine/goroot"
}
}
symlink:
@zgiber
zgiber / reflect_struct.go
Created November 14, 2014 13:29
Reflection assign field values on a struct
package main
import "fmt"
import "reflect"
func main() {
type Cat struct {
Color string
Name string
@zgiber
zgiber / iterate_struct.go
Created November 21, 2014 19:06
Iterate struct fields using reflect in Go
package main
import "fmt"
import "reflect"
type Person struct {
Name string
Age int
Email string
}
@zgiber
zgiber / gist:6adf46b565cd0099e24b
Created January 16, 2015 21:39
Filter a slice of struct based on a map with properties and values
package slicefilter
import "reflect"
import "fmt"
func Filter(src interface{}, filter map[string]interface{}, dst interface{}) error {
srcRV := reflect.ValueOf(src)
dstRV := reflect.ValueOf(dst)
if srcRV.Kind() != reflect.Slice {
package main
import "fmt"
func main() {
var i interface{}
i = 3.456
fmt.Println("Hello, playground", i == 3.456)