Skip to content

Instantly share code, notes, and snippets.

View unanoc's full-sized avatar
💜
the best code is the code that doesn't exist

daniel unanoc

💜
the best code is the code that doesn't exist
View GitHub Profile
@unanoc
unanoc / cycled_buffer.go
Created January 24, 2021 18:00
Cycled buffer implementation
package main
import "fmt"
// Object is an interface for cache value elements.
type Object interface{}
// CycledBuffer is a buffer for storing cache objects.
type CycledBuffer struct {
buff []Object
@unanoc
unanoc / mount.md
Last active May 29, 2019 15:15
Работа с удаленным хостингом на MacOS

Устанавливаем утилиты osxfuse и sshfs

brew cask install osxfuse
brew install sshfs

Подключаемся

sshfs user@host:/path/on/remote/server /local/work/directory

Дополнительные параметры

@unanoc
unanoc / modeling.py
Last active May 27, 2019 06:49
reverbation signals
import numpy as np
import matplotlib.pyplot as plt
import pyaudio
import random
FREQUENCY = 20000 # частота сигнала
AMP = 1 # амплитуда сигнала
N = 88200 # количество точек для расчета (частота дескретизации)
TIME_MAX = 1 # промежуток времени, на котором будет проводится исследование (в секундах)
D_TIME = TIME_MAX/N # дельта времени, на которую разбивается интервал исследования
package main
import (
"fmt"
"os"
"os/signal"
"runtime"
"strings"
"sync"
"syscall"
@unanoc
unanoc / empty_interfaces.go
Last active October 8, 2018 14:15
К примеру, нужно написать панель мониторинга, на которой выводите какие-то данные, и данные эти из одного источника приходят в виде float64 значений, а из другого в виде строк ("failed", "success" и т.п.). Как вы реализуете функцию, которая получает значения по каналу и выводит их на экран?
package main
import (
"fmt"
)
type Renderer interface {
Render()
}
@unanoc
unanoc / context_cancel.go
Created October 7, 2018 20:36
Using context cancel.
package main
import (
"context"
"fmt"
"math/rand"
"time"
)
func worker(ctx context.Context, workerID int, result chan<- int) {
@unanoc
unanoc / bench&pprof.txt
Created July 20, 2018 13:05
bench&pprof
// запуск bench тестов с флагом -benchmem (memory)
go test -bench . -benchmem
// запуск bench тестов + создаем cpu.out, mem.out для работы с pprof
go test -bench . -benchmem -cpuprofile=cpu.out -memprofile=mem.out -memprofilerate=1 main_test.go
// pprof
1. go tool pprof [nameOfProfject].test cpu.out
@unanoc
unanoc / goroutinesLimit.go
Created July 9, 2018 12:53
Ограничение горутин по ресурсам. А именно, чтобы в одно время работало не больше определенного количества горутин.
package main
import (
"fmt"
"runtime"
"strings"
"sync"
"time"
)
@unanoc
unanoc / workerPool.go
Last active July 4, 2018 23:24
Worker Pool
package main
import (
"fmt"
"runtime"
"strings"
"time"
)
const goroutinesNum = 3
@unanoc
unanoc / docker.md
Last active September 15, 2018 21:23
docker commands

Образы (Images)

Скачать образ image с тегом latest

    docker pull image

Скачать образ image с явным указанием версии

    docker pull image:version