Anonymous
https://play.golang.com/p/TdCPo9VDfBw
Снова мимо. Покажи прототип, откуда ты вызываешь errors.Wrap
Karey
А зачем ты делаешь так, зачем тебе вообще здесь такая обработка?
Alexander
после return делать os.Exit странно - этот код никогда не будет выполнен. Кроме того return должен соответствовать объявленному возвращаемому значению функции. У тебя main не должна возвращать ничего
🎉
Снова мимо. Покажи прототип, откуда ты вызываешь errors.Wrap
Ну так даже вот из доки, так тоже не работает. Может я пакет непрально установил? package errors import "github.com/pkg/errors" Package errors provides simple error handling primitives. The traditional error handling idiom in Go is roughly akin to if err != nil { return err }
Alexander
func someOtherFunc() (*data, error) { file, err := os.Open("config.json") if err != nil { return nil, errors.Wrap(err, "Read Config failed") } defer file.Close() // define dataValue value here return dataValue, nil }
Karey
Примерно вот так должно быть - https://play.golang.org/p/AcEkuuPczak
🎉
Мдя, и снова мимо :) Ты понимаешь что такое "прототип функции" ? Если нет, то тут тебе вряди помогут :)
Я понимаю, мне исходники показать пакета всего сюда, что-бы обсудить? )))) Меня больше интересовало, пакет вообще рабочий или нет? Кто-то ведь с ним работает. Спасибо за помощь.
🎉
Всем спасибо, пойду смотреть.
Karey
Пакет рабочий
Anonymous
Я понимаю, мне исходники показать пакета всего сюда, что-бы обсудить? )))) Меня больше интересовало, пакет вообще рабочий или нет? Кто-то ведь с ним работает. Спасибо за помощь.
Всего пакета - нет. Достаточно было лишь той одной единственной функции, где ты вызваешь errors.Wrap() но за N сообщений ты этого так и не сделал
🎉
Пакет рабочий
Спасибо, значит гдет я туплю.
Slach
Народ, а кто нибудь gramework тут кроме Кирила Даншина пользует???
Kirill
Привет, кто-то использует Amazon s3 для хранения файлов пользователей?
Kirill
подскажите как можно организовать авторизованный доступ к ним?
Slach
I do
а как правильно сервить статические файлы? делаю так anomaliesDir, _ := os.cwd() anomaliesDir = path.Join(anomaliesDir,'anomalies') staticHandler := web.ServeDirCustom( anomaliesDir, 0, false, false, []string{"index.html", "index.htm"}, ) web.GET("/anomalies/*any", staticHandler) не открывает нифига =(( http://78623ba9.ngrok.io/anomalies/test.html ls -la anomalies/ показывае что все ок с правами в debug логе ничего не вижу в логах только registering GET /anomalies/*any как то можно это отладить ? проверить что оно вообще хоть как то срабатывает?
Slach
может middleware есть какой нибудь отладочный?
🎉
может middleware есть какой нибудь отладочный?
А это не ошибка? []string{"index.html", "index.htm"},
Daniel
нет
Daniel
что не так?
Slach
в gramework_test.go есть вот такое app.GET("/sdncc_static/dist/*static", app.ServeDirNoCacheCustom("./", 0, false, false, []string{})) так что не думаю
Alexander
а если попробовать *any на конкретный путь поменять и посмотреть сматчит или нет?
Karey
А разве GET не дожен принимать хэндлер? А вы передаете контекст
Slach
А разве GET не дожен принимать хэндлер? А вы передаете контекст
я передаю не контект а хендлер иначе оно бы ругнулось на этапе компиляции ServeDirCustom возвращает func (*Context)
Karey
Он там интерфейс принимает, так не ругнулся бы
Karey
Но я не знаю этот фреймворк)
Michael
web.GET("/anomalies/*any", staticHandler) anomalies лишнее
Michael
насколько я понимаю)
Michael
anomaliesDir, _ := os.cwd() и тут с путями точно всё ок?
Slach
web.GET("/anomalies/*any", staticHandler) anomalies лишнее
а как оно определяет что надо именно подкаталог мапить??? вот так нормально сработало файл показало =( web.ServeFile("/anomalies/test.html", "./anomalies/test.html") в gramework_test.go есть вот такое app.GET("/sdncc_static/dist/*static", app.ServeDirNoCacheCustom("./", 0, false, false, []string{}))
Slach
anomaliesDir, _ := os.cwd() и тут с путями точно всё ок?
первым делом проверил собственно os.cwd() по этой причине и появился сначала да, действительно кривой путь был когда поправил все равно не заработало =(
Irina
а вы не посоветуете чат где можно задавать нубские вопросы по кубернетесу?
Andrey
https://t.me/kubernetes_ru
Irina
Anonymous
Интересно, а есть ли в Go аналог сишного container_of() ...
Anonymous
нужно при парсинге конфига иметь доступ к соседу, но контекста нет вообще никакого ... %)
Anonymous
Проще перечислить то, что в Go есть, чем то, чего в нём нет :)
Anonymous
та да :)
Anonymous
переформулирую вопрос: можно ли из дочернего объекта как-то получить указатель на родителя ? Например есть: type Bar struct { ... } type Foo struct { bar Bar } Вот Я хочу из метода bar получить родителя Foo ? :)
Anonymous
Может, есть еще что-то ... %)
Anonymous
Это самый легкий способ ))
В go лёгкий способ обычно единственно возможный 😃
Anonymous
В go лёгкий способ обычно единственно возможный 😃
В сишке для такого кейса есть container_of() который посчитает тебе нужный указатель по смещениям ... %)
Slach
э.. а что должно быть в ответ? вижу страницу со словом Test
это сейчас потому что я прописал полный путь до файла вот так web.ServeFile("/anomalies/test.html", "./anomalies/test.html") а мне надо чтобы весь каталог сервился, чтобы URL вида /anomalies/something.jpg резолвился в статический локальный файл anomaliesDir + '/something.jpg' я туда собираюсь данные генерировать и я не понимаю почему не работает вот сейчас обратно поставил http://78623ba9.ngrok.io/anomalies/test.html и теперь ошибку выдает =(
Pawel
Господа ,посоветуйте продакшен рэди либу для рисования графиков. сразу скажу, что вот эта https://github.com/wcharczuk/go-chart - уёбищная. Интерсуют именно опробованные в бою
Andrey
https://github.com/sbinet/go-gnuplot
Andrey
но это биндинги
Slach
а чем она не понравилась конкретно? и с чем сравнивали?
Alexander
а у вас веб-приложение ? может взять d3.js и пусть фронтендер с графиками парится ?
Pawel
а эту пробовали? https://github.com/gonum/plot сразу же ужаснула тем, что не масштабирует оси координат. Вот просто тупо обрезает график. Видимо границы осей координат можно как-то задать - но это фигня полная, делать такие вычисления руками
Pawel
сейчас делаю графики через жопу - кидаю данные в дельфёвое приложение через сокет, там рендрю, и возвращаюю отрендренное через сокет обратно
Andrey
https://github.com/gonum/plot/wiki/Example-plots
Pawel
https://github.com/gonum/plot/wiki/Example-plots
эту я не пробовал, моя критика относится к другой либе, у которой около 1500 звёзд
Салтыдык
обычно из го ходят в кубернетес, а не наоборот)
Logan
у нас взаимопроникновение
G72K
У меня бывает неконтролируемая ненависть к Го, хорошо, что есть 1363 человека всегда готовых услышать ее
Aliaksandr
В сишке для такого кейса есть container_of() который посчитает тебе нужный указатель по смещениям ... %)
В гошке такое тоже можно сделать через пакет unsafe. См. https://golang.org/pkg/unsafe/#Offsetof
Logan
го относится к первой группе
Artem
а питон к какой группе относится?)
Logan
тоже к первой. У питона есть весьма интересные особенности поведения
Logan
вторая группа – это, к примеру, haskell, io, erlang
Anonymous
а C#?
Logan
какие?
как там GIL поживает? :)
Chrome
в ассемблере все предсказуемо!
Slach
какие?
мутабельные типы не явно заданы =)
Logan
в ассемблере все предсказуемо!
еще бы и сам ассемблер был предсказуемым, ага :)
Logan
на самом деле я очень люблю питон.
Anonymous
В гошке такое тоже можно сделать через пакет unsafe. См. https://golang.org/pkg/unsafe/#Offsetof
таки добавил просто еще один указатель, что бы unsafe не трогать