@gogolang

Страница 1201 из 1630
RenegatumSoul
02.07.2018
16:30:42
мб баг просто

Андрэ
02.07.2018
16:31:17
удялял его, естественно не работало. открывал новый терминал по 100 раз - все так же

RenegatumSoul
02.07.2018
16:32:04
можешь в личку env кинуть?

Вячеслав
02.07.2018
16:33:49
скажите, а обязательно тут передавать структуру? можно ли просто маппинг передать ? t, _ := template.ParseFiles("index.html") t.Execute(w, &page{Title: "Just page", Msg: "Hello World"})

Google
Вячеслав
02.07.2018
16:34:10
птом что для каждой страницы делать отдельную структуру... не понимаю зачем такое нужно

RenegatumSoul
02.07.2018
16:36:56
мб попробуеш ручками перебить го path?
а попробуй ради интереса export GOPATH=$PWD

Андрэ
02.07.2018
16:38:36
ну это не решение же

RenegatumSoul
02.07.2018
16:39:38
ну это не решение же
если заработает можно двигаться дальше чтоб решить

ну это не решение же
просто скорми ему по такой сылке путь до go

Alfred
02.07.2018
20:30:50
прием как указать свою маску подсети для расчета

package main import ( "fmt" "net" ) func main() { ip := net.ParseIP("172.24.1.1") mask := ip.DefaultMask() # тут хочется указать свою маску подсети но не знаю как network := ip.Mask(mask) fmt.Println(network.String()) }

необходимо из 172.24.1.1 255.255.255.0 получить 172.24.1.0/24

Nazary
02.07.2018
21:16:18
@Amplitudo здравствуйте, всё вышло, но у меня нет buf.Flush()

а buf.Reset() что то не особо радует

вообще точнее

https://play.golang.org/p/jbEJMDLgOUl

Google
Vasily Romanov
02.07.2018
21:18:11
https://play.golang.org/p/jbEJMDLgOUl
defer file.Close() в цикле не надо делать, он у вас бесконечный

Nazary
02.07.2018
21:18:35
так файл же типа каждый раз другой

нет?

Nurzhan
02.07.2018
21:19:13
Defer будет выполняться только после завершения функции

Nazary
02.07.2018
21:19:30
ааа

извиняюсь



вот так оно

буфер не стирается

Vasily Romanov
02.07.2018
21:24:37
буфер не стирается
https://golang.org/pkg/io/#CopyN https://golang.org/pkg/io/#LimitedReader там хитрее надо может что-то из этого подойдёт лучше

Nazary
02.07.2018
21:25:29
так по времени нужно (

а не по размеру

Vasily Romanov
02.07.2018
21:25:35
https://habr.com/post/306914/

Nazary
02.07.2018
21:25:44
не всегда выйдет узнать сколько нужно байтов для n секунд

Vasily Romanov
02.07.2018
21:26:22
100%-й точности я сходу не скажу как добиться примерной - можно

типа читать каждый раз по Х. засекать скорость, если на следующий Х не хватит - дампить и сбрасывать таймер

Nazary
02.07.2018
21:27:46
а куда читать? bytes.Buffer?)

и как его сбрасивать?)

вот что я делаю не так...

Reset resets the buffer to be empty, but it retains the underlying storage for use by future writes.

Google
Vasily Romanov
02.07.2018
21:29:26
да, в буфер сброс таймера смотрите в доке

вы в отдельной горутине это делаете

Nazary
02.07.2018
21:30:15
да

Vasily Romanov
02.07.2018
21:30:30
а в соседеней у вас бесконечное чтение туда, я хз что там получается, может треш

оно не горнутино безопасно там внутри

Антон
02.07.2018
21:33:01
оно не горнутино безопасно там внутри
Ах, если бы только можно было бы заранее узнать, какие конструкции являются потокобезопасными, не компилируя программу. Но это только мечты...

Антон
02.07.2018
21:34:12
Эх, щас бы в 2к18 исходники читать для определения потокобезопасности

Vasily Romanov
02.07.2018
21:36:55
https://golang.org/src/bytes/buffer.go ctrl+f вводим sync не находим

Nazary
02.07.2018
21:48:31
вот бляха

что же делать то...

Alexander
02.07.2018
21:55:56
https://stackoverflow.com/q/19646717

Тут есть неплохой пример как сделать потокобезопасным, и не все функции вам нужны, но хз подойдёт ли такое

Nazary
02.07.2018
22:09:18
а как мне буфер очищать?

Google
Nazary
02.07.2018
22:09:47
оно походу и в правду не работает

из за того что в горутине

Alexander
02.07.2018
22:14:35
Так и очищать как в примере, обернуть в враппер и использовать мьютексы

Либо не используйте readFrom, и сами читайте в цикле

Тут вам поможет конструкция select case default

Nazary
02.07.2018
22:37:01
t := time.Now() ticker := 1 out, _ := os.Create("test0.ts") defer out.Close() for { io.CopyN(out, resp.Body, 1000) if time.Since(t)-time.Second*6 >= time.Second { t = time.Now() out, _ = os.Create("test" + strconv.Itoa(ticker) + ".ts") log.Println("Ss") ticker++ } }

Admin
ERROR: S client not available

Nazary
02.07.2018
22:37:05
это вообще гавно?

Alexander
02.07.2018
22:37:06
Case слушает тик, пишет в файл и очищает буфет

А default читает из поток по N байт, так же как это делает readfrom

И тогда reset будет работать

Сейчас reset не работает, потому что буфет используется двумя потоками, первый внутри readfrom, второй горутина

Nazary
02.07.2018
22:45:39
А что значит по н байт?

Это сколько?

func (b *Buffer) ReadFrom(r io.Reader) (n int64, err error) { b.lastRead = opInvalid for { i := b.grow(MinRead) m, e := r.Read(b.buf[i:cap(b.buf)]) if m < 0 { panic(errNegativeRead) } b.buf = b.buf[:i+m] n += int64(m) if e == io.EOF { return n, nil // e is EOF, so return nil explicitly } if e != nil { return n, e } } } не конца вдупляю

Alexander
02.07.2018
22:51:32
Для ReadFrom это MinRead

У вас может быть что-то другое, меньше, больше

Nazary
02.07.2018
23:30:28
а подскажите на сколько это плохой варик? Просто работает идеально func dumpTS2HLS(url string, name string) error { resp, err := http.Get(url) if err != nil { return err } defer resp.Body.Close() t := time.Now() ticker := 1 out, _ := os.Create(name + "0.ts") defer out.Close() for { io.CopyN(out, resp.Body, 512) if time.Since(t)-time.Second*6 >= time.Second { READY++ log.Println(name + " ready: " + strconv.Itoa(READY)) t = time.Now() out, _ = os.Create(name + strconv.Itoa(ticker) + ".ts") ticker++ } } }

Zaur
02.07.2018
23:37:15
то есть io.Copy(out, resp.Body) но нужно out менять на лету
https://play.golang.org/p/WTTEZSvvYMx как-то так должно работать

Наверно

Google
Nazary
02.07.2018
23:41:56
ООО

блин

пишет пустые файлы

Zaur
02.07.2018
23:43:52
Ээ

Nazary
02.07.2018
23:46:06
в принципе

вроде понял

в чем ошибка

мб выйдет даже пофиксить

очень благодарен

это выглядит уже адекватно

Zaur
02.07.2018
23:48:38
я сам новичок, так что пардон за нерабочий код, так и не понял в чём ошибка ?

Nazary
02.07.2018
23:50:18
о

вот

добавил перед io.Copy out.UpdateFile("test" + strconv.Itoa(0) + ".ts")

)

и тикер изначално 1

по сути там нет файла же в начале

Страница 1201 из 1630