Skip to content

Instantly share code, notes, and snippets.

func (bt *BlinkyTape) animation(p Pattern, repeat int, delay time.Duration) {
bt.status = Running
innerLoop := func() bool {
select {
case <-bt.stop:
return false
default:
go bt.playPattern(p, delay)
<-bt.next
func (bt *BlinkyTape) animation(p Pattern, repeat int, delay time.Duration) {
bt.status = Running
L:
for i := 0; repeat < 0 || i < repeat; i++ {
select {
case <-bt.stop:
break L
default:
go bt.playPattern(p, delay)
func (bt *BlinkyTape) playPattern(p Pattern, delay time.Duration) {
bt.clear()
L:
for _, frame := range p {
bt.setFrame(frame)
if err := bt.render(); err != nil {
log.Fatalf("render error: %s\n", err)
}
@asukakenji
asukakenji / gist:248507844bdc2705c74af31223b47a38
Created September 1, 2016 10:39
Booting Ubuntu from UEFI Shell
FS0:\EFI\ubuntu\shimx64.efi
@asukakenji
asukakenji / try_shiny.go
Created July 31, 2017 17:18
Shortest GUI program written in Golang. It displays a window and exits after 5 seconds.
// Shortest GUI program written in Golang.
// It displays a window and exits after 5 seconds.
package main
import (
"time"
"golang.org/x/exp/shiny/driver"
"golang.org/x/exp/shiny/screen"
)
@asukakenji
asukakenji / try_shiny_2.go
Last active February 17, 2020 01:19
Shortest GUI program written in Golang. It displays a window and exits when the "close" button of the window is clicked.
// Shortest GUI program written in Golang.
// It displays a window and exits when the "close" button of the window is clicked.
package main
import (
"golang.org/x/exp/shiny/driver"
"golang.org/x/exp/shiny/screen"
// Despite that the package names have a "mobile" prefix,
// these packages works on desktop.
@asukakenji
asukakenji / 0-go-os-arch.md
Last active April 24, 2024 06:51
Go (Golang) GOOS and GOARCH

Go (Golang) GOOS and GOARCH

All of the following information is based on go version go1.17.1 darwin/amd64.

GOOS Values

GOOS Out of the Box
aix
android
@asukakenji
asukakenji / go-stdlib-interface-selected.md
Last active May 5, 2024 04:26
Go (Golang) Standard Library Interfaces (Selected)

Go (Golang) Standard Library Interfaces (Selected)

This is not an exhaustive list of all interfaces in Go's standard library. I only list those I think are important. Interfaces defined in frequently used packages (like io, fmt) are included. Interfaces that have significant importance are also included.

All of the following information is based on go version go1.8.3 darwin/amd64.

@asukakenji
asukakenji / docker-pull-golang.sh
Last active November 23, 2018 08:27
Pulling (downloading) all official releases (versions) of Go (Golang) images from Docker Hub
#!/bin/bash
# The first release available is golang:1.2.0
major=1
minor=2
patch=0
while true
do
while true
@asukakenji
asukakenji / main.swift
Created November 29, 2018 11:31
Minimal Swift 4.2 GUI Application without Xcode
import AppKit
let app = NSApplication.shared
app.setActivationPolicy(.regular)
let window = NSWindow(
contentRect: NSMakeRect(0, 0, 640, 480),
styleMask: [.titled, .closable],
backing: .buffered,
defer: true