
Ilia
20.06.2018
20:36:11

Dmitry
20.06.2018
20:38:19
как в хероке мониторить приложение на го если оно использует стандартный лог?
я просто не пойму - пытается оно стартануть или нет.
procfile содержит: bot xrich_telebot

Google

Dmitry
20.06.2018
20:40:03
деплой прошел успешно , в бине валяются исполняемые файлы, но где логи от запуска?

undiabler
20.06.2018
21:49:35
heroku logs выводит все логи из контейнера в котором приложение стартует
Если пишет с stdout то все логи там
Но я у себя через logrus + papertrail логирую. Все кроме паников отлично логируется

DMITRY
21.06.2018
02:43:10
вот отчего может быть так:
$ go env
GOARCH="amd64"
GOBIN="/usr/lib/go-1.10/bin"
GOEXE=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOOS="linux"
GOPATH="/home/captain/go"
GORACE=""
GOROOT="/usr/lib/go-1.10"
GOTOOLDIR="/usr/lib/go-1.10/pkg/tool/linux_amd64"
GO15VENDOREXPERIMENT="1"
CC="gcc"
GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0"
CXX="g++"
CGO_ENABLED="1"
$ go version
go version go1.6.3 linux/amd64
понятно почему which go
/usr/bin/go
ln -s /usr/lib/go-1.10/bin/go /usr/bin/go - наше все
надо закоментить 1.6 обновление с репозитариев,каждый раз ломает


Zarif
21.06.2018
02:57:38
Нужен совет. Назрел у меня архитектурный вопрос:
Решил я биллинг в отдельный микросервис вынести. Но не знаю что делать c http API частью.
вариант 1) http API остается в микросервисе отвечающем за общение с клиентом(браузером), а он в свою очередь дергает биллинг.
вариант 2) http API относящийся к биллингу тоже выносим в этот микросервис и дергаем его напрямую из браузера.
Хотелось бы услышать best practices по такому разделению. Спасибо
могу поделиться своим опытом:
у меня крупный биллинг интернет провайдера на оракле. основная логика на PL/SQL, но если кто знаком с этим пропрератным языком знает "радость" работы с ним, но уйти от него полностью сразу нелья.
поэтому был создан вначале внутренний апи на го, к которому оракл через своего http клиента обращался для вызова каких либо сервисов.
получилось даже удобнее, в оракле обращаешься к той же функции, и ждешь результата, а она не на pl/sql его считает, отдает сразу в апи, эдакий интерфейс, удобный для постепенной миграции.
внутренний апи на го только доступен ораклу.
после делалась админка, это отдельный веб сервер на го, запущенный на другом порту, куда nginx просто проксирует, кстати говоря админка на vuejs. прямого доступа к внутреннему апи на го у админки нет, хотя это одно и тоже приложение в плане кодовой базы с внутренним апи, просто со своими методами, где своя проверка доступов присущая для админки.
также запущен внешний апи на го для внешних приложений, тоже самое - тот же веб сервер на го, но с др портом и с другой проверкой на доступы. и если например есть метод внутреннего апи, который юзает всеми, то просто он немного разный для админки и внешнего апи, с дополнительной защитой для каждого, для админки это проверка есть ли доступ для оператора, для внешнего апи - есть ли доступ у приложения и тд.


Igor
21.06.2018
04:10:36

DMITRY
21.06.2018
04:48:27
Подскажите в чем могут быть отличия, если запускаю go run main.go и смотрю за потреблением памяти все ОК не растет
Если go build main.go && ./main.go смотрю что после каждого запроса память растет и не совобождается.

Daniel
21.06.2018
04:56:16
А как долго вы меряли?

Google

DMITRY
21.06.2018
04:56:51
где-то 5-ть минут
я генерю запросы большие и смотрю

Daniel
21.06.2018
04:58:54
Посмотрите дольше

DMITRY
21.06.2018
04:59:21
ОК
со временем растет

Daniel
21.06.2018
06:38:04
странно мне это

DMITRY
21.06.2018
06:40:28
причем запускаю тот же код через go run .. и память стоит как вкопанная
причем вкатил даже debug.FreeOSMemory() и все равно пофигу
что может быть печального в таком куске ? https://play.golang.org/p/HJIyvPrEV5o

Olzhas
21.06.2018
06:51:07
что твориться с golang jobs?

Daniel
21.06.2018
06:51:21
херня

Olzhas
21.06.2018
06:51:21
почему там то мьютят, то банят фиг пойми за что

Daniel
21.06.2018
06:51:49
ну - мы попробуем выяснить

Olzhas
21.06.2018
06:52:54
я там пишу то раз в день в лучшем случае, большую часть времени читаю чатик и получаю мьют за обсуждение зарплат или бан за сам не знаю что

Artem
21.06.2018
07:32:02
Как вы управляете приложением на го? Ну типа если запущено оно а надо там дебаггинг включить или там метрики выключить или еще какое-либо поведение поменять не останавливая

Alexander
21.06.2018
07:42:53
ты же там ведешь себя не как скромная овечка на интервью?

Olzhas
21.06.2018
07:44:53
ну перед мьютом я сказал что 600 баксов это мечта а не зарплата
а перед баном обсуждал хохлосрач с @onokonem
в принципе, это все что я делал в том чатике на этой неделе

Google

Alexander
21.06.2018
07:46:01
а ты все еще хочешь найти у HR-щиков какую-то логику действий? Не хоти! Они все - великие писхологи, по их мнению, и лучше тебя знают, что хорошо и плохо


Foxcool
21.06.2018
07:47:43
Слушайте, а ведь это какая-то ошибка проектирования в go-swagger или я неправильно использую его?
Проблема такая: если не помечать параметры запроса как required, то они в генерированном коде определяются не как указатели, а как обычные поля string, например.
Если делаешь поле обязательным, то и генерируется он как *string.
Хотя по логике же наоборот бы. Если поля обязательное, ему не обязатльно на выходе быть nulleble. Он обязателен к указанию, или будет ошибка отдаваться еще на этапе валидации.
А вот если поле необязательное, то нам нужно, например как-то отличать что игнорированное поле, от попытки задать нулевое значение. Например от текущего состояния возникает неприятное поведение, когда редактирующий PUT запрос перетирает существующие поля, которые не были отправлены. ПРиходится их все делать обязательными и функциональность теряется.
UPD:
https://github.com/go-swagger/go-swagger/labels/nullable
да, рука мудака
UPD2: таки мохоже сделали x-nullable опцию для поля. Тогда остается необязательным и становится указателем.


Kirill
21.06.2018
09:20:14
можно ссылку на канал с вакансиями плз?

Andrey
21.06.2018
09:20:24
Всем привет! Продублирую вопрос - кто-нибудь нарезал mp3 через go? Именно средствами языка/библиотеки) через ffmpeg умею)

Olzhas
21.06.2018
09:22:22
нужно было знать битрейт
и без всяких ффмпегов

Andrey
21.06.2018
09:23:36
Битрейт всегда один. Чё, тупо смещение считать побайтово и резать кусок?

Olzhas
21.06.2018
09:23:40
тупо бралось время в секундах, умножалось на битрейт и вырезался кусок нужного размера из файла

Andrey
21.06.2018
09:23:56

Andrey
21.06.2018
09:24:02
А всяких хедеров и всего такого нет?

Olzhas
21.06.2018
09:24:14
я уже не помню
мне за тот скрипт 1500 рублей заплатили
я в 8 класс только перешел
не думаю что на го сложнее чем на пхп будет

Roman
21.06.2018
09:41:13
https://go101.org/article/unsafe.html

Alexey
21.06.2018
09:55:00
Всем привет! На конференции не всем хватило сувениров, но теперь это поправимо! ?
Милейшие плюшевые гоферы и фирменные футболки ждут своих хозяев вот тут: http://gopher-stuff.tilda.ws

Vadim
21.06.2018
09:59:56
Golang Market Store – GolangMarket Gopher Store
https://gopher.golangmarket.com/

Google

Vadim
21.06.2018
10:00:13

Andrey
21.06.2018
12:49:16
Чем лучше на го пдф генерить? gofpdf не поддерживает юникод. Хотя русские шрифты там етсь

?
21.06.2018
12:53:33

Andrey
21.06.2018
12:55:05
цена дороговата

Admin
ERROR: S client not available

?
21.06.2018
12:55:51
цена дороговата
Free to use when releasing your code as open source under AGPL v3. Commercial license available for closed source products and other code not released under AGPL.
$3000
?

Andrey
21.06.2018
12:57:21

?
21.06.2018
12:57:52
заюзай, никто и не узнает?

Andrey
21.06.2018
12:57:53
лучше я в html заэти деньги генерить буду

undiabler
21.06.2018
13:02:13
а в чем проблема генерить любой другой консольной либой и вызывать ее из go?
а все зависимости можно один раз упаковать в докер
2018 же вроде =)

Andrey
21.06.2018
13:07:18

undiabler
21.06.2018
13:10:14
ну не так сложно на самом деле как может показаться
вот готовый проект: https://wkhtmltopdf.org/
вот биндинги на go под него: https://github.com/SebastiaanKlippert/go-wkhtmltopdf

Andrey
21.06.2018
13:11:13

Robert
21.06.2018
13:31:07
я этим пользуюсь
"github.com/jung-kurt/gofpdf"

Roman
21.06.2018
13:37:52
пусть лучше 1 команда отвечает за общение с внешним миром, нежели каждая отдельно сама по себе

Google

Kaspar
21.06.2018
13:39:52
+ rate limiting, авторизация, etc.

Kirill
21.06.2018
13:40:01

Artem
21.06.2018
13:40:31
как все серьезно

Andrey
21.06.2018
13:44:04
/voteban
Это же шутка была с его стороны. Зачем так?

Kirill
21.06.2018
13:45:06

Александр
21.06.2018
13:55:57
народ, мне тут пистолеты выдали на работе. Кто работал c ними? может какую либу посоветуете (гуглить умею, спрашиваю за опыт)

Olzhas
21.06.2018
13:57:43

Александр
21.06.2018
13:58:06

Olzhas
21.06.2018
13:59:02

tony
21.06.2018
13:59:20
Если они USB, то работают как клавиатурный ввод

Александр
21.06.2018
14:04:20
ну походу не все

meehalkoff✪
21.06.2018
14:08:34
Подскажите полное руководство по golang templates. Устал уже обрывками гуглить

Stanislav
21.06.2018
14:14:04