Skip to content

Instantly share code, notes, and snippets.

@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 / gist:248507844bdc2705c74af31223b47a38
Created September 1, 2016 10:39
Booting Ubuntu from UEFI Shell
FS0:\EFI\ubuntu\shimx64.efi
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)
}
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) 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