Skip to content

Instantly share code, notes, and snippets.

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

Vadim Filin filinvadim

🏠
Working from home
View GitHub Profile
@filinvadim
filinvadim / socket.go
Created March 13, 2018 15:13
Reading very long data from socket
func (c *IPCSocket) Listen() {
buffer := bytes.Buffer{}
for {
reader := bufio.NewReader(c.Connect)
line, prefix, err := reader.ReadLine()
if err != nil {
fmt.Printf("error: can't read form socket:", err)
log.Fatal(err)
}
buffer.Write(line)
@filinvadim
filinvadim / gethIPCsocket.go
Last active April 5, 2018 13:41
Acces to Go-Ethereum IPC socket
var defaultPaths = []string {
"/.ethereum/geth.ipc", //unix
"/Library/Ethereum/geth.ipc", //macos
"\\\\.\\pipe\\geth.ipc", //win
}
type SocketResolver interface {
GetSocket() string
Connect()
@filinvadim
filinvadim / elastic.go
Created July 29, 2018 11:12
golang elastic channel
// Copyright (c) 2014, Nick Patavalis ([email protected]).
// All rights reserved.
// Use of this source code is governed by a BSD-style license that can
// be found in the LICENSE file.
// Package elastic demonstrates a simple implementation of elastic
// (growable) buffers for channels. See:
// https://github.com/npat-efault/musings/wiki/Elastic-channels
const (
CREATE TABLE user_friend (
id BIGSERIAL NOT NULL,
user_id BIGINT NOT NULL,
friend_id BIGINT NOT NULL,
created_at TIMESTAMP(0) NOT NULL DEFAULT now(),
CONSTRAINT pk_user_friend_id PRIMARY KEY (id),
CONSTRAINT fk_user_friend_user_id FOREIGN KEY (user_id) REFERENCES "user" (id) ON DELETE CASCADE,
UNIQUE(user_id, friend_id),
@filinvadim
filinvadim / epoll
Created October 24, 2018 21:09
epoll
func serve() {
ep, err := netpoll.EpollCreate(epollConfig())
if err != nil {
log.Fatal(err)
}
// Create listener on port 4444.
ln, err := listen(4444)
if err != nil {
@filinvadim
filinvadim / epoll2
Created October 24, 2018 21:48
epoll2
package main
import (
"fmt"
"net"
"os"
"syscall"
)
const (
@filinvadim
filinvadim / tokens.md
Created March 2, 2019 12:27 — forked from zmts/tokens.md
Про токены, JSON Web Tokens (JWT), аутентификацию и авторизацию. Token-Based Authentication

Про токены, JSON Web Tokens (JWT), аутентификацию и авторизацию. Token-Based Authentication

Основы:

Аутентификация(authentication, от греч. αὐθεντικός [authentikos] – реальный, подлинный; от αὐθέντης [authentes] – автор) - это процесс проверки учётных данных пользователя (логин/пароль). Проверка подлинности пользователя путём сравнения введённого им логина/пароля с данными сохранёнными в базе данных.

Авторизация(authorization — разрешение, уполномочивание) - это проверка прав пользователя на доступ к определенным ресурсам.

Например после аутентификации юзер sasha получает право обращатся и получать от ресурса "super.com/vip" некие данные. Во время обращения юзера sasha к ресурсу vip система авторизации проверит имеет ли право юзер обращатся к этому ресурсу (проще говоря переходить по неким разрешенным ссылкам)

@filinvadim
filinvadim / main.go
Last active April 8, 2020 14:45
lru cache
package main
import (
"fmt"
)
const (
oldestRecordIndex = 0
)
openapi: '3.0.2'
info:
title: Binance SPOT Public API
description: |-
The swagger file of Binance Public API
API documents:
- [https://github.com/binance-exchange/binance-official-api-docs](https://github.com/binance-exchange/binance-official-api-docs)
- [https://binance-docs.github.io/apidocs/spot/en](https://binance-docs.github.io/apidocs/spot/en)
version: '1.0'
Crosscompiling for Windows
GOARCH=amd64 CGO_ENABLED=1 CC=x86_64-w64-mingw32-gcc CXX=x86_64-w64-mingw32-g++ go build -o button_windows.exe cmd/delcom/panicbutton/main.go