Skip to content

Instantly share code, notes, and snippets.

View crgimenes's full-sized avatar
🏠
Working from home

Cesar Gimenes crgimenes

🏠
Working from home
View GitHub Profile
@crgimenes
crgimenes / README.md
Last active July 12, 2023 09:42
Example of pagination using PostgreSQL, Golang and SQLx

Configure environment variable

export DATABASE_URL=postgres://postgres@localhost/dbname?sslmode=disable 

Run in CLI

go run main.go -page 1
@crgimenes
crgimenes / tempFileName.go
Created August 3, 2018 19:54
Filename for temp files
func newFileName() string {
buff := make([]byte, 6)
rand.Read(buff)
return fmt.Sprintf("%v-%X\n", time.Now().UTC().Format("2006-01-02T150405"), buff)
}
@crgimenes
crgimenes / draftFilesystem.go
Created July 13, 2018 00:38
simple filesystem example
package main
import (
"context"
"flag"
"fmt"
"io"
"os"
"syscall"
@crgimenes
crgimenes / closer.go
Created June 14, 2018 19:11
closer and tests
package helper
// closer close descriptor and log error
func closer(f io.Closer) {
err := f.Close()
if err != nil {
log.Errorln("closing ", err)
}
}
@crgimenes
crgimenes / execHelper.go
Created April 20, 2018 12:45
simple exec example
func execHelper(path, name string, arg ...string) (err error) {
cmd := exec.Command(name, arg...)
cmd.Dir = path
cmd.Stdout = os.Stdout
cmd.Stderr = os.Stderr
err = cmd.Run()
return
}
@crgimenes
crgimenes / SeekingBuffer.go
Created April 13, 2018 00:56
SeekingBuffer example
// https://play.golang.org/p/8SjYn-cisj
package main
import (
"bytes"
"fmt"
"io"
"os"
)
@crgimenes
crgimenes / closer.go
Created February 28, 2018 21:10
function to close descriptor using defer without ignore error
func closer(body io.Closer) {
err := body.Close()
if err != nil {
log.Errorln(err)
}
}
// defer closer(fileDescriptor)
@crgimenes
crgimenes / TestHTTPHandler.go
Created February 22, 2018 13:17
test httphandler example
func TestHTTPHandler(t *testing.T) {
w := httptest.NewRecorder()
expected := "{\n\t\"error\": \"test error\"\n}\n"
HTTPHandler(w, nil)
b := w.Body.Bytes()
if string(b) != expected {
t.Errorf("expected %q, want %q", expected, string(b))
@crgimenes
crgimenes / stringToReaderCloser.go
Last active April 11, 2024 15:41
string to io.ReadCloser
package main
import (
"bytes"
"fmt"
"io"
"os"
"strings"
)
@crgimenes
crgimenes / memoizedFibonacci.go
Created February 4, 2018 14:05
Memoized fibonacci from `Learning Functional Programming in Go`
package fibonacci
type Memoized func(int) int
var fibMem = Memoize(fib)
func Memoize(mf Memoized) Memoized {
cache := make(map[int]int)
return func(key int) int {
if val, found := cache[key]; found {
return val