Kirill
Daniel
Kirill
ну - я давно считаю, что софт нужно писать с защитой от долбо—ов в какой-то степени
Vladimir
Vladimir
Там авторизации нет
Vladimir
Поэтому если я ее запилю у себя, то не раньше чем решу остальные проблемы)
Vladimir
Но кажется это общая беда систем мониторинга, там почти везде безопасность очень эфимерная
Anonymous
Подскажите, пожалуйста, по семантике выражения for range := someSlice. Если я правильно понимаю, итерация производится по копии первоначального слайса, и соответственно изменение первоначального слайса в ходе итерации не должно сказываться на итерации. Т.е, например, если я буду добавлять новые элементы к t1 в ходе итерации, цикл остановится после первых 4-х итераций, так длина копии слайса равна 4. Почему в данном случае не печатаются элементы копии первоначального слайса, т.е 10, 11, 12, 13?
`t1 := []int{10, 11, 12, 13}
for index, value := range t1 {
log.Print(value)
t1[0], t1[1], t1[2], t1[3] = index, index, index, index
}`
2018/07/23 12:44:37 10
2018/07/23 12:44:37 0
2018/07/23 12:44:37 1
2018/07/23 12:44:37 2
heavycharged
потому что вы index а не value передаете
heavycharged
и слайс меняется. слайс это ссылочный тип.
Anonymous
Тогда я не понимаю, почему в данном случае нет бесконечного цикла. Ведь если меняется, он должен постоянно увеличиваться и цикл должен продолжаться
'ex2 := []int{0, 1, 2, 3}
for index := range ex2 {
ex2 = append(ex2, index)
log.Printf("%p, %v", ex2, ex2)
}'
несмотря на увеличение слайса цикл остановится после первых 4-х итераций:
2018/07/23 12:41:30 0xc420018100, [0 1 2 3 0]
2018/07/23 12:41:30 0xc420018100, [0 1 2 3 0 1]
2018/07/23 12:41:30 0xc420018100, [0 1 2 3 0 1 2]
2018/07/23 12:41:30 0xc420018100, [0 1 2 3 0 1 2 3]
Vladislav
Тогда я не понимаю, почему в данном случае нет бесконечного цикла. Ведь если меняется, он должен постоянно увеличиваться и цикл должен продолжаться
'ex2 := []int{0, 1, 2, 3}
for index := range ex2 {
ex2 = append(ex2, index)
log.Printf("%p, %v", ex2, ex2)
}'
несмотря на увеличение слайса цикл остановится после первых 4-х итераций:
2018/07/23 12:41:30 0xc420018100, [0 1 2 3 0]
2018/07/23 12:41:30 0xc420018100, [0 1 2 3 0 1]
2018/07/23 12:41:30 0xc420018100, [0 1 2 3 0 1 2]
2018/07/23 12:41:30 0xc420018100, [0 1 2 3 0 1 2 3]
Слайс состоит из 3 элементов. Ссылки на участок памяти, длины и вместимости. Когда вы модифицируете элемент - это модификация участка памяти на который ссылается слайс. При range копируются только вот этот указатель, длина и вместимость. Сам участок памяти с элементами не копируется.
Vladislav
Поэтому вы не можете поменять ссылку на участок длину и вместимость, которую использует range, но можете элементы слайса поменять.
Anonymous
heavycharged
Спасибо!
https://blog.golang.org/go-slices-usage-and-internals
вот тут можете почитать про устройство слайсов
Anonymous
Slava
S̴e͘r͝gei̢
Добрый день, господа!
Подскажите, пожалуйста, когда я делаю dep init && dep ensure, dep скачитвает только исходники нужных версий пакетов, билдить/устанавливать мне их отдельно надо?
Daniel
коллега, вам надо выяснить, как работает вендоринг в go
Daniel
если коротко, то да, только исходники и нет, билдить/устанавливать не надо
Vladimir
S̴e͘r͝gei̢
Благодарю вас, господа.
S̴e͘r͝gei̢
heavycharged
подскажите, как дождаться запуска процесса, если запускаю через cmd.Start()?
Daniel
что значит - дождаться запуска?
heavycharged
я запускаю хром в режиме хедлесс, с дебаг портом, мне нужно дождаться, пока хром запуститься и начне слушать на порту.
heavycharged
делать в цикле коннект к порту?
Daniel
ну так проверяйте порт
heavycharged
спасибо
Daniel
не за что
Vladislav
Илья
в Makefile
S̴e͘r͝gei̢
Ага, понял, спасибо
S̴e͘r͝gei̢
Именно деп даже вырезает то что не импортируется тобой, типа тестов и ненужных pkg из репы
а не подскажешь, как-то можно избежать этого поведения?
У меня часть того, что не импортируется, используется для кодогенерации и, получается, что этих файлов нет в итоге.
Я нашёл required в deps, но у меня в итоге падает dep ensure с ошибкой:
Solving failure: No versions of github.com/grpc-ecosystem/grpc-gateway met constraints:
v1.4.1: Could not introduce github.com/grpc-ecosystem/grpc-gateway@v1.4.1, as its subpackage github.com/grpc-ecosystem/grpc-gateway does not contain usable Go code (*build.NoGoError).. (Package is required by (root).)
Vladimir
S̴e͘r͝gei̢
понял, спасибо.
S̴e͘r͝gei̢
Btw, а кто-то использует deps в продакшене? Смущает, что написано, что это official experiment.
Zver
Aleksandr
Anonymous
S̴e͘r͝gei̢
о.о
Zver
Kirill
о.о
да, надо будет своего бота сделать
Kirill
S̴e͘r͝gei̢
S̴e͘r͝gei̢
Pawel
https://github.com/therecipe/qt этот?
Не работает. Биндинг Qt на хер не нужен. И вообще писать гуйню на голанге в 90% случаев крайне херовая идея. Это я про десктоп. Веб и рубироид на голанге - в 100% ах случаев херня
Daniel
S̴e͘r͝gei̢
Daniel
потому, что вендоринг - это для зависимостей конкретного пакета, а не для общих бинарников
S̴e͘r͝gei̢
Oleh
Vladimir
@szobov правила хорошего тона говорят что репа с Гошным кодом вообще самодостаточная - склонил, сделал go build - получил бинарь
Vladimir
то есть кодогенерация должна быть уже закомиченна внутрь
Pawel
У какие 10 проц когда не херовая?
Примитивные обёртки над win32 lxn/walk или соответственно не менее примитивные над posix xwindow . Примитивные - это едитбокс, лэйбл, листвью, кнопка, комбобокс, чекбокс что там ещё подобное. Иногда у меня от подобных фак аппов бывает профит чем нежели писать это на сишечке. Qt лучше сразу писать на qt и не ипать мозги биндингами
Pawel
Или внезапно на питоне, там как раз биндинг хорош
Daniel
коллега, это же пофиг триста раз
Daniel
и я вот думаю, что имеет смысл писать гуй на qml
Pawel
Имеет
Pawel
Ну не все же задачи на нём решаются
Pawel
Вот ежели бы qml умел в компорт, сокеты, канвас и sqlite, вопросов бы не было.
Daniel
в это все умеет гошечка
Мерль
Приложение keybase написано на go+electron
Kirill
И электрон достойный вариант, стоит признать
Pawel
Pawel
Pawel
Надо будет глянуть что именно там на Го
Kirill
Pawel
Хромиум же
Pawel
Тормозит оно. Больше джавы
Kirill
Какой инстанс оси?
Kirill
Тебе хромось никто не предлагал запускать
Pawel
Так электрон разве не в нём пашет?
Pawel
Не суть. Всё равно тормозной он. И веб с реактами опостылел уже
Pawel
Слишком дорого на на нём сделать что бы не совсем гэ