
Ilya
19.01.2018
13:37:29
с назначением переменных

Александр
19.01.2018
13:38:20
сокр. кода до добр. не довед.

Ilya
19.01.2018
13:39:52
понял

Alexander
19.01.2018
14:11:31
Кто-нибудь кодил на go для гугловского firebase? Есть задача слушать эвенты, оф поддержки в Go-клиенте их нет. Думаю есть ли смысл делать это Go? (альтернатива в виде ноды не очень возбуждает)

Google

Andrei
19.01.2018
14:19:31

Alexander
19.01.2018
14:20:32
спасибо. Еще они в своей оф доке советуют старый форк этой либы https://github.com/zabawaba99/firego

Timur
19.01.2018
14:20:58

Alexander
19.01.2018
14:21:04
но мне не нравятся там ишью трекер и активность последние полгода

Timur
19.01.2018
14:28:24

Alexander
19.01.2018
14:52:05
мдо, ну я попробую что есть, если неполетит есть нода ?
но вроде официальная go-либа шевелится, может сделают за год чего

John
19.01.2018
14:54:49

Alexander
19.01.2018
14:55:49
сами писали? или на ноде всё делали?

John
19.01.2018
14:56:16
Просто ушли на parse-server и ноду :))

Антон
19.01.2018
14:56:28
Привет, может кто помочь с примерами для https://github.com/go-cmd/cmd ?

John
19.01.2018
14:56:32
т.к. свой сервак таки рулит

Google

Alexander
19.01.2018
14:58:31

John
19.01.2018
14:59:29

Alexander
19.01.2018
15:03:20

John
19.01.2018
15:04:00

Alexander
19.01.2018
15:04:53
а ну да, а какое валью парз добавляет по сравнению с тем же экспрессом?

John
19.01.2018
15:05:31
мм... не понял вопроса. Что именно ты имеешь ввиду ?

Alexander
19.01.2018
15:06:55
ну это ж просто бекенд сервер, или что? :)

John
19.01.2018
15:08:28
Да, сервер с базой (монгой) и логикой на js :)

Alexander
19.01.2018
15:09:17
о вижу там есть подписка на вебсокетные стримы и какой-то свой язык запросов
что-то развесистое вобщем :)

John
19.01.2018
15:10:37
ну, умеет многое. Мы же используем только БД и свою логику в cloudcode

Alexander
19.01.2018
15:10:55
аа, теперь мейк сенс
но ща фаербейз тоже становится развесистым, короче мы в него идём, посмотрим чем это кончится :)

Vitaliy
19.01.2018
15:43:28

John
19.01.2018
15:43:58
* правда, стоит добавить, что у нас на уровне nginx'a разнесено выполнение "тяжелых" функций на другой сервер :)

Vasiliy
19.01.2018
20:06:15
Подскажите как строку в кириллице в uppercase перевести

Anatoly
19.01.2018
20:09:53

Google

Vasiliy
19.01.2018
20:10:35
не так не работает вроде

Alexei
19.01.2018
20:10:42
работает

Vasiliy
19.01.2018
20:11:02
сек
вроде пробовал

Alexei
19.01.2018
20:11:16
https://play.golang.org/p/LscBxXtvJZo
это ж юникод

Vasiliy
19.01.2018
20:13:50
блин , тут работает действительно, походу проблема в другом, спасибо https://play.golang.org/
https://play.golang.org/p/9I3NmsWBSkT

vasily
19.01.2018
22:09:19
подскажите нубу , пользуется ли сейчас кто-то GVM для переключения между версиями го?

in favor
19.01.2018
22:09:50
А зачем вообще переключаться между версиями го ?

Mykyta
19.01.2018
22:14:44

vasily
19.01.2018
22:15:26
Компилять разные проекты написанные под разные версии?

Mykyta
19.01.2018
22:15:44
И вообще, го устанавливается путем двух переменных среды, имей у себя хоть стопяцот версий го.

vasily
19.01.2018
22:16:55
Есть же nvm для нода virtual env для питона.

Mykyta
19.01.2018
22:17:20
А зачем они для го, если все обратно совместимо?

vasily
19.01.2018
22:17:30
Хм. Спасибо, посмотрю на переменные

Constantine
20.01.2018
05:29:28
https://freelansim.ru/tasks/189825
ух ?
@m0sth8 не хочешь подработку?)))

Google

Constantine
20.01.2018
05:29:51
обоснуй почему его код не очень ?

Dmitry
20.01.2018
05:51:43
Тысячи этих либ. И все так себе.
В этом чате кто-то давно грозится релизнуть свою апи, с блекджеком и актуальными обновлениями.

Slava
20.01.2018
06:41:40
У @olebedev актуальная

Ilya
20.01.2018
08:08:58
есть какой-нибудь встроенный стринг форматтер с индексами типа format("$1, $2, $1", 1, 2) -> "1, 2, 1"?

Vasily Romanov
20.01.2018
08:12:09
fmt.Sprintf("%[1]d %[2]d %[1]d", 1, 2)

Ilya
20.01.2018
08:12:32

Zver
20.01.2018
09:45:07
Почему не завели банальный интерфейс Init какой-нибудь. Чтобы все unmarshaler-ы его вызывали при инициализации переменных.

Aleksandr
20.01.2018
09:45:49

Zver
20.01.2018
09:45:51
Да и вообще отсутствие сонструктора все же доставляет неудобства.

Aleksandr
20.01.2018
09:46:15
понял

Zver
20.01.2018
09:47:34
Бывет нужно инициализировать поля по умолчанию не нулевыми значениями, при том же анмаршалинге, а вот хрен это сделаешь.

Hamidumi
20.01.2018
09:59:25
можно написать конструктор, который будет возвращать подготовленную структуру и туда уже анмаршалить

Zver
20.01.2018
10:07:36

Mykyta
20.01.2018
10:08:50

Zver
20.01.2018
10:11:06

Mykyta
20.01.2018
10:12:00

Zver
20.01.2018
10:19:34
Попробуй тоже самое для анмаршалинга, будешь удивлен
Чему удивлен? Вот есть у меня, к примеру, Структура, в ней слайс или мап с указателями на другие структуры. Писать для этих вложенных структур анмаршалер? А если я решу изменить получение данных с JSON на какой-нибудь другой формат? Писать еще один анмаршалер? А вот был бы интерфейс Init, который считался бы стандартом, то было бы меньше проблем. Хотя конечно это конечно банальное последствие отсутствия обычного конструктора.

Mykyta
20.01.2018
10:21:39

Zver
20.01.2018
10:22:10
Говна не надо, его и так достаточно. )

Mykyta
20.01.2018
10:54:43

Google


Slach
20.01.2018
11:10:39
народ, чего то я не понимаю
объясните как работают интерфейсы в Go?
вот есть метод SetLogger в библиотеке
// Logger is an interface that can be implemented to provide custom log output.
type Logger interface {
Printf(string, ...interface{})
}
// SetLogger sets the logger to be used for printing errors.
// Logger is an interface provided by this package.
func (c *Conn) SetLogger(l Logger) {
c.logger = l
}
пытаюсь подсунуть экземпляр структуры из Zerolog , который объявлен так
package log
// Logger is the global logger.
var Logger = zerolog.New(os.Stderr).With().Timestamp().Logger()
log.Logger возвращает структуру с типом zerolog.Logger
которая конечно не интерфейс, но имеет нужный метод по сигнатуре
type Logger struct {
//... тут всякие поля
}
// Printf sends a log event using debug level and no extra field.
// Arguments are handled in the manner of fmt.Printf.
func (l *Logger) Printf(format string, v ...interface{}) {
if e := l.Debug(); e.Enabled() {
e.Msg(fmt.Sprintf(format, v...))
}
}
делаю так
package mypackage
import (
"github.com/rs/zerolog/log"
"github.com/samuel/go-zookeeper/zk"
)
func myFunc() {
zkConn, _, err := zk.Connect(config.Zookeeper.Hosts, time.Second*3)
zkConn.SetLogger(log.Logger)
}
получаю ошибку
unused struct field invalid operation: log.Logger (variable of type github.com/rs/zerolog.Logger) is not an interface
почему??? как кастануть суко интерфейс то?
ну либы не очень то мои, от того что я локально поменяю уберу указатель а вместо него захочу функцию, что мне делать?
а я не понимаю, в чем разница???
если есть имплементация интерфейса
и она вроде как по структуре совпадает
что именно мне надо в SetLogger передать то? чтобы оно вкурило что мне надо?


Илья
20.01.2018
11:22:23

Oleh
20.01.2018
11:22:42
как сделать что бы http клиент нечего не кешировал?
мне нужно скачать html код многих сайтов
после того как на ночь поставил прога в памяти 2 гб сожрала

Илья
20.01.2018
11:23:45
снимай профиль, смотри где накодил мусора, клиент не кеширует данные