По идее, должна совпадать со всеми AVR Tiny у которых распиновка аналогичная ATtiny13
Драйвер для программатора CH341A: https://disk.yandex.ru/d/0JH8izggFdrOGw
Софт для программатора CH341A: https://disk.yandex.ru/d/0GNVg43idNh3Dg
По идее, должна совпадать со всеми AVR Tiny у которых распиновка аналогичная ATtiny13
Драйвер для программатора CH341A: https://disk.yandex.ru/d/0JH8izggFdrOGw
Софт для программатора CH341A: https://disk.yandex.ru/d/0GNVg43idNh3Dg
| # Здесь лежать команды для быстрого запуска нужного контейнера, который уже будет настроен для работы с ним | |
| # RabbitMQ ------------------------------------------------------------------------------------- | |
| # Web GUI: http://localhost:15672 (test:test) | |
| # Подключиться на localhost:5672 | |
| docker run -p 5672:5672 -p 15672:15672 -d --hostname my-rabbit --name rabbitmq -e RABBITMQ_DEFAULT_USER=test -e RABBITMQ_DEFAULT_PASS=test --restart unless-stopped rabbitmq:3-management | |
| # Jaeger ------------------------------------------------------------------------------------- | |
| # Web GUI: http://localhost:16686 | |
| # Слать запросы на: | 
| req, _ := http.NewRequest(http.MethodGet, "https://host.com", nil) | |
| req.URL.Path = "/method/" | |
| q := req.URL.Query() | |
| q.Add("key_1", "val_1") | |
| q.Add("key_2", "val_2") | |
| req.URL.RawQuery = q.Encode() | 
| // GetRxParams - Get all regexp params from string with provided regular expression | |
| func GetRxParams(rx *regexp.Regexp, str string) (pm map[string]string) { | |
| if !rx.MatchString(str) { | |
| return nil | |
| } | |
| p := rx.FindStringSubmatch(str) | |
| n := rx.SubexpNames() | |
| pm = map[string]string{} | |
| for i := range n { | |
| if i == 0 { | 
| package main | |
| import "fmt" | |
| type Queue []interface{} | |
| func (self *Queue) Push(x interface{}) { | |
| *self = append(*self, x) | |
| } | 
| type BasicAuthData struct { | |
| Username string | |
| Password string | |
| } | |
| // You can specify diferent path with different auth data | |
| var pathAuth = map[string]*BasicAuthData{ | |
| "/path1/sub_path": &BasicAuthData{"Login1", "Pass1"}, | |
| "/path1": &BasicAuthData{"Login2", "Pass2"}, | |
| } | 
| package main | |
| import ( | |
| "fmt" | |
| "math" | |
| ) | |
| const ( | |
| packSize = 7 | |
| ) | 
| // LeftIndexRunes - возвращает индекс первого вхождения подстроки substr в строку s | |
| // (В отличие от strings.Index возвращает номер символа, а не номер байта) | |
| func LeftIndexRunes(sR []rune, substrR []rune) int { | |
| for i := range sR { | |
| if sR[i] == substrR[0] { | |
| if contains := func(sample1 []rune, sample2 []rune) bool { | |
| for i := range sample1 { | |
| if sample1[i] != sample2[i] { | |
| return false | |
| } | 
| import ( | |
| "fmt" | |
| "strconv" | |
| ) | |
| //sqlQueryWithArray - create sql query with array in it. | |
| func sqlQueryWithArray(template, symbol string, valuesCount int) (output string) { | |
| temp := "" | |
| for i := 0; i < valuesCount; i++ { | |
| temp += symbol + (strconv.Itoa(i + 1)) + ", " |