Skip to content

Instantly share code, notes, and snippets.

View betandr's full-sized avatar
🦄
Vague, but exciting...

Beth Anderson betandr

🦄
Vague, but exciting...
View GitHub Profile
@betandr
betandr / gist:09e044a979a66a76893df950d823bd2e
Created August 8, 2019 13:01
ffmpeg downsample for Twitter
ffmpeg -i test.mov \
-pix_fmt yuv420p \
-vcodec libx264 \
-vf scale=640:-1 \
-acodec aac \
-vb 1024k \
-minrate 1024k \
-maxrate 1024k \
-bufsize 1024k \
-ar 44100 \
@betandr
betandr / interface.go
Created July 31, 2019 21:45
Encapsulation with an interface
package account
import (
"errors"
)
type CheckingAccount struct {
balance int
}
@betandr
betandr / primes.go
Created July 25, 2019 17:16
Primes generator using filters and pipes pattern
package main
import (
"fmt"
)
func main() {
// runtime.GOMAXPROCS(2)
ch := make(chan int)
@betandr
betandr / distance.go
Created July 24, 2019 16:19
Ambiguous struct embedding resolution
package main
import (
"fmt"
"os"
"strconv"
)
type Cycle struct{}
@betandr
betandr / message.go
Created July 24, 2019 15:45
Message-passing with channels.
package main
import "fmt"
type Greeter struct{}
func (p *Greeter) greet(s string) {
fmt.Printf("Hello, %s!\n", s)
}
@betandr
betandr / camel_to_title.go
Created July 23, 2019 13:30
Expand a CamelCase string to a Title string
package main
import (
"fmt"
"unicode"
)
// expandTitle turns a string like NewYork into New York by finding a capital
// letter and inserting a space.
func camelToTitle(name string) string {
@betandr
betandr / main.go
Last active July 18, 2019 11:36
Pass by reference and value example
package main
import "fmt"
type T struct{ X int }
func inc1(t *T) {
t.X++
}
@betandr
betandr / BUILD
Created June 21, 2019 15:13
Sample Bazel BUILD file for Java
java_binary(
name = "ProjectRunner",
srcs = glob([
"src/main/java/foo/bar/baz/*.java",
"src/main/java/foo/bar/baz/domain/*.java"
]),
deps = [
"@javax_json_javax_json_api//jar",
"@org_glassfish_javax_json//jar",
],
@betandr
betandr / sort.go
Created March 1, 2019 07:33
sort.Interface sort by title, artist
type byTitleArtist []*Track
func (t byTitleArtist) Len() int { return len(t) }
func (t byTitleArtist) Swap(i, j int) { t[i], t[j] = t[j], t[i] }
func (t byTitleArtist) Less(i, j int) bool {
if toL(t[i].Title) < toL(t[j].Title) {
return true
}
if toL(t[i].Title) > toL(t[j].Title) {
return false
@betandr
betandr / tracks.go
Created February 27, 2019 11:29
A Go tracks slice containing Go tracks.
var tracks = []*Track{
{Title: "Ready To Go", Artist: "Republica", Album: "Republica", Year: 1996, Length: length("5m01s")},
{Title: "Go", Artist: "Lizzo", Album: "Lizzobangers", Year: 2014, Length: length("3m45s")},
{Title: "Go Get It", Artist: "Slowdive", Album: "Slowdive", Year: 2017, Length: length("6m09s")},
{Title: "You Gotta Go!", Artist: "The Mighty Mighty Bosstones", Album: "A Jackknife to a Swan", Year: 2002, Length: length("2m43s")},
{Title: "Go Out", Artist: "Blur", Album: "The Magic Whip", Year: 2015, Length: length("4m41s")},
{Title: "Just Let Go", Artist: "Fischerspooner", Album: "Odyssey", Year: 2005, Length: length("4m15s")},
{Title: "Go It Alone", Artist: "Beck", Album: "Guero", Year: 2005, Length: length("4m09s")},
{Title: "I Let Go", Artist: "Eighteen Visions", Album: "Obsession", Year: 2004, Length: length("3m23s")},