
Александр
22.06.2018
17:30:23
// Buffer large enough for 10 USB packets from endpoint 6.
buf := make([]byte, epIn.Desc.MaxPacketSize)
// Repeat the read/write cycle 10 times.
for i := 0; i < 10; i++ {
log.Print("Read!")
// readBytes might be smaller than the buffer size. readBytes might be greater than zero even if err is not nil.
readBytes, err := epIn.Read(buf)
if err != nil {
fmt.Println("Read returned an error:", err)
}
if readBytes == 0 {
log.Fatalf("IN endpoint 6 returned 0 bytes of data.")
}
}
строго по ману вроде
если девайс выключить, то упадет в "og.Fatalf("IN endpoint 6 returned 0 bytes of data.")"

Roman
22.06.2018
17:30:52

Google

Daniel
22.06.2018
17:31:09
ну вот проксики
все

Мерлин
22.06.2018
17:31:46


Александр
22.06.2018
17:32:00
лазерная
2018/06/22 20:29:42 020.027 10c4:ea60 CP210x UART Bridge / myAVR mySmartUSB light (Cygnal Integrated Products, Inc.)
2018/06/22 20:29:42 Protocol: (Defined at Interface level)
2018/06/22 20:29:42 Configuration 1:
2018/06/22 20:29:42 --------------
2018/06/22 20:29:42 Interface 0 alternate setting 0 (available endpoints: [0x02(2,OUT) 0x81(1,IN)])
2018/06/22 20:29:42 Vendor Specific Class
2018/06/22 20:29:42 ep #1 IN (address 0x81) bulk [64 bytes]
2018/06/22 20:29:42 ep #2 OUT (address 0x02) bulk [64 bytes]
2018/06/22 20:29:42 --------------
соотвественно делаю
cfg, err := dev.Config(1)
if err != nil {
log.Fatalf("%s.Config: %v", dev, err)
}
defer cfg.Close()
intf, err := cfg.Interface(0, 0)
if err != nil {
log.Fatalf("%s.Interface: %v", cfg, err)
}
defer intf.Close()
epIn, err := intf.InEndpoint(0x81)
if err != nil {
log.Fatalf("%s.InEndpoint: %v", intf, err)
}

Roman
22.06.2018
17:34:56

Daniel
22.06.2018
17:36:44
я в курсе, зачем splice :)
он у меня ровно в двух местах.
при этом на тех же местах есть tls handshake, так что пока (до перехода на ec) мне вообще пофиг, что делает весь мой код. важно только насколько быстро вычисляется rsa ключ

22.06.2018
17:38:26
допустим есть структура Person struct { Money int }
у нее есть функция func (p *Person)work() { for { p.Money++ } }
если я запущу эту функцию в горутине, а потом объект Person приравняю к nil
в горутине будет паника?

Daniel
22.06.2018
17:38:58
объект ты никак к nil не приравняешь

Google

Daniel
22.06.2018
17:39:25
с указателем делай что хочешь - в методе уже его копия

22.06.2018
17:39:38
аа

Daniel
22.06.2018
17:40:04
а вот если ты полезешь менять то, на что указатель - возможны варианты, но паника врядли

22.06.2018
17:40:56
я имел в виду это
keks := Person { Money: 228 }
go keks.Work()
keks = nil

Zaur
22.06.2018
17:41:28
Так не получится сделать же

Мерлин
22.06.2018
17:41:45

Zaur
22.06.2018
17:42:05

Мерлин
22.06.2018
17:42:12

Александр
22.06.2018
17:42:58
да вот документации к ней не шло
просто вручили две железки и привет ?

Zaur
22.06.2018
17:43:31
Если сделаешь keks:= &Person{} то сможешь сделать. Но это не сотрёт выделенную память, которая используется методом

Александр
22.06.2018
17:43:33
но вроде бы как без всякой иницилизации как то ее запускали на прослушку

22.06.2018
17:43:35
а, я тупанул, извините ??

Александр
22.06.2018
17:43:45
она даже в консоль как то отдавала

Мерлин
22.06.2018
17:44:11

Александр
22.06.2018
17:44:25
а она не отдает управление
0 байт я бы еще понял
оно буфер читает и читает
цикл 1 итерацию закончить не может
пока девайс не отключишь

Google

Мерлин
22.06.2018
17:45:48

Александр
22.06.2018
17:46:07
меня смушает вот приписка на 1 интерфейсе...
CDC Data (Unused)

Kirill
22.06.2018
17:46:26
для одного такого поля

Vadim
22.06.2018
17:56:04

Dmitry
22.06.2018
18:01:22
есть бенч тесты и просто тестирование класса - есть какие то правило как называть если они в отдельных файлах? т.е. файл с кодом chain , файлы с тестами chain_test, а файл с бенчами chain_bench_test.go ?

Александр
22.06.2018
18:10:01
больше ничего вкусного не нашел

Мерлин
22.06.2018
18:18:34

22.06.2018
18:35:11

Kirill
22.06.2018
18:36:01

22.06.2018
18:36:05
я поставил в структуру ctx и таймер
таймер при срабатывании по таймауту вызывает context.CancelFunc
а потоки ее мониторят

Kirill
22.06.2018
18:37:07
Там реально инкремент?

22.06.2018
18:37:32

Kirill
22.06.2018
18:37:47

22.06.2018
18:38:07

Kirill
22.06.2018
18:38:18
Угу

22.06.2018
18:38:23
Нет
Это просто пример

Google

22.06.2018
18:38:58
Мне нужен был нормальный способ убивать горутины
Вот заюзал context с таймером

Alex
22.06.2018
18:40:03
Й

Никита
22.06.2018
18:40:57
Почему порядок полей структуры влияет на производительность?

Kirill
22.06.2018
18:41:06

Никита
22.06.2018
18:41:13
Лень

Kirill
22.06.2018
18:41:40
Лень
Ну а всем лень объяснять дважды два каждому по отдельности

Kaspar
22.06.2018
18:42:19

Kirill
22.06.2018
18:42:34
Обычно да

Admin
ERROR: S client not available

Никита
22.06.2018
18:42:53

Kirill
22.06.2018
18:42:58
Когда человеку нужна такая производительность, он обычно уже и так это знает

Kaspar
22.06.2018
18:42:59
Особенно в ущерб читабельности

Kirill
22.06.2018
18:43:08

Никита
22.06.2018
18:43:25
Кстати, о какой производительности идёт речь?

Kaspar
22.06.2018
18:43:32

Kirill
22.06.2018
18:44:18

Никита
22.06.2018
18:46:16

Google

Kirill
22.06.2018
18:47:28
Тем, кто должен выжать десятки гигабит в секунду на слабом железе и ему уже нечего оптимизировать
В общем, почти что никому
И тому, кто делает имплементацию по живому стандарту

Никита
22.06.2018
18:50:38
Понял
Спасибо

Max
22.06.2018
19:25:00
друзья кто работал с github.com/google/jsonapi
известная проблема что нельзя unmarshall в структуруу в которой есть атрибуты - которые объекты
но я не могу найти никакого workaround вообще
кто может подсказатб?
https://github.com/google/jsonapi/issues/74
тут детали

Dmitry
22.06.2018
19:31:07
как в одну строчку сделать чтобы при пустом массиве выдавалась пустая строка ? return c.keys[r.rnd.Intn(len(c.keys))]

Kirill
22.06.2018
19:33:17

Alexander
22.06.2018
19:35:46
или юзать if на этом

Мерлин
22.06.2018
19:36:34

Dmitry
22.06.2018
19:39:27

Мерлин
22.06.2018
19:39:38

Dmitry
22.06.2018
19:40:18
тогда никак
ну про пустую строку я загнул. нужно чтобы nil возвращало

Александр
22.06.2018
19:40:38
вы чего, проверьте на len

Мерлин
22.06.2018
19:40:40

Dmitry
22.06.2018
19:41:18

Мерлин
22.06.2018
19:41:48