@gogolang

Страница 1007 из 1630
Alexander
16.04.2018
15:45:51


И чет как-то все равно не совсем понял)

искажает/портит - но как?

Andrey
16.04.2018
15:51:50
нолики на единички меняет. и наоборот

Google
Daniel
16.04.2018
15:54:08
болт довольно тормозной на запись, и, действительно, портит данные, если приложение неудачно упадет

Alexander
16.04.2018
15:55:38
badger вот такой еще нагуглился

Mush
16.04.2018
15:57:09
badger это последователь leveldb

Alexander
16.04.2018
16:05:22
Что бы вы посоветовали выбрать по опыту? вроде как оба стораджа подходят в целом для изучения

Мерлин
16.04.2018
16:24:57
бунд поверх WAL построен, поэтому довольно быстр на запись

Alexander
16.04.2018
16:30:24
Спасибо!

Мерлин
16.04.2018
16:40:03
Спасибо!
есть один нюанс: надо понимать что все embedded решения не масштабируются от слова совсем

Alexander
16.04.2018
16:41:49
Это ок, для этой задачи подходит

А в rabbitmq mnesia вроде как хранилище?

Илья
16.04.2018
16:46:23
mnesia - это ж otp фреймворк

Maxim
16.04.2018
16:46:39
привет эрланг)))

Alexander
16.04.2018
16:47:41
Разве это Фреймворк? Помнится storage, но с Erlang очень давно работал

Google
Илья
16.04.2018
16:48:49
это кусок open telecom platform

Max
16.04.2018
17:03:22
друзья, как правильно организовать масштабируемый апликейшин внтури которого выполняются воркеры по планировщику? что бы они не выполнялись одновременно на более чем 1 ноде?

пример каждый 10 минут проверять что-то - надо что бы это выполнялось только один раз

а не одновременно на всех нодах который запущены

как правильно это с архитектурной точки зрения сделать/?

Maksim (Ellrion)
16.04.2018
17:08:49
а не одновременно на всех нодах который запущены
Встречал реализацию такого через редис мьютекс (редис соответственно доступен всем нодам)

vktr
16.04.2018
17:11:19
Немного теоретический топик хочу поднять: как тестировать grpc сервисы? 1. Сервер 1.1. Unary Тут все достаточно просто, даже моков не надо, просто func (s *Svc)Method(ctx context.Context, args...) (ret, error) 1.2. streaming Тут все менее красиво: мокать * StreamServer. И получаются разные вещи: возможные конфликты по импортам с vendor, если пользовать gomock, свои велосипеды-моки на стрим, и потенциально другое. И вот вопрос, как бы такой метод тестабильно написать и потестить: func (s *Svc) Stream(args *proto.StreamReq, stream proto.Svc_GetStreamServer) error { b, err := s.httpClient.Get(third-party-api) if err != nil { return err } data, err := unmarshal(b, s.SomeOpts) if err != nil { return err } for _, record := range data { result,err := s.doSmth(record) if err != nil { return err } err := stream.Send(result) if err != nil { return err } } return nil }

Можно написать или сгенерить мок на стрим, тогда тесты на этот метод получаются не очень красивые, ибо много лапши на сетап. А тестить надо по сути third party API

Vladislav
16.04.2018
17:15:44
как правильно это с архитектурной точки зрения сделать/?
Я такое решал с помощью etcd. Там есть специализированный механизм для этого.

Maksim (Ellrion)
16.04.2018
17:17:19
Mykyta
16.04.2018
17:26:56
Mykyta
16.04.2018
17:33:16
как масштабировать сервис планировщик?
Зависит откуда будут браться задачи и как он будут храниться

tsov
16.04.2018
17:38:32
пример каждый 10 минут проверять что-то - надо что бы это выполнялось только один раз
шли воркерам задачи через канал, при этом шли через time.Ticker

Aleksandr
16.04.2018
17:46:22
ркн почти 2млн ip-адресов закинул, чтобы нас отсюда выкурить

Alexei
16.04.2018
17:49:24
Marlik
16.04.2018
17:51:14
ркн почти 2млн ip-адресов закинул, чтобы нас отсюда выкурить
Ахренеть, я про 655 352 айпишнегов слышал...

Vladislav
16.04.2018
17:51:41
Ахренеть, я про 655 352 айпишнегов слышал...
https://2018.schors.spb.ru/ наслаждайся

Aleksandr
16.04.2018
17:51:51
вполне вероятно что утром мы будем о 5 млн говорить)

Constantine
16.04.2018
17:51:58
надо идти спать

Google
Constantine
16.04.2018
17:52:01
завтра новый день

)))

Aleksandr
16.04.2018
17:52:06
все за ваши деньги, господа)

Constantine
16.04.2018
17:52:07
пол интернета работать не будет

чего переживать

Marlik
16.04.2018
17:52:41
В принципе я уже в i2p вылез, тут тоже мона сайтик сваять, форум.

Тут точно не достанут.

Aleksandr
16.04.2018
17:54:12
кстати, апдейты дата-центров через пуш-уведомления у телеграма была еще в 2015. может раньше. Итого мы имеем приложение, которое невозможно заблокировать, кроме как заблокировать пуш-сервера гугла/эппла либо взять измором, перебанив пол-интернета

Marlik
16.04.2018
17:55:12
Рушного интернета, остальные не заметят.

Aleksandr
16.04.2018
17:55:29
https://2018.schors.spb.ru/ наслаждайся
это же наш Фил Кулин делает

@schors

Marlik
16.04.2018
17:58:36
Не понял, россиян блочат жи... остальных-то как они осилят?

Aleksandr
16.04.2018
17:59:15
слушай, я не знаю с какой стороны ты. но с моей блочат не россиян, а для россиян

Marlik
16.04.2018
17:59:48
Ну да.

Aleksandr
16.04.2018
17:59:51
> взять измором, перебанив пол-интернета для россиян.

Marlik
16.04.2018
18:00:39
Дурову нуно было децентрализованный мессенджер писать... меньше гемора было-бы...

Pawel
16.04.2018
18:02:14
Борьба с мифическим международным терроризмом - прикрытие банальной борьбы за пользователей Телеграма. Для холопов есть усмановский Там-Там, а нравится он вам или нет - да кого это волнует?

Marlik
16.04.2018
18:02:23
Исходники i2p есть, правда на Java... Щас даже айтупи для андроида и йоса есть... но это просто роутер, а вот как мессенджер было бы круть...

Google
Pawel
16.04.2018
18:07:57


Marlik
16.04.2018
18:12:04
расскажи как это сделать)
Ну дык, скрестить мессенджер с i2p, знал бы как в подробностях, рассказал бы.))))

Nick
16.04.2018
18:12:37
i2p тоже не полностью децентрализованный

Aleksandr
16.04.2018
18:13:02
Павел Дуров пообещал, что с 22 апреля новая версия Телеграма начнет обходить блокировки по технологии domain-fronting. "Клиенты для всех платформ смогут соединяться с доменами clients4.google.com и graph.facebook.com и проксировать соединение дальше. Согласие Гугла и Фейсбука нами уже получено" - написал Дуров в своем твиттере.

Slava
16.04.2018
18:16:17
будет как в китае

ничего недоступно, только внутренние, разрешённые ресурсы =)

Ivan
16.04.2018
18:17:44
подскажите, как избавится от такой конструкции User, _ := c.Get("User") User_ := User.(model.User) что бы User сразу был как .(model.User)

Lev
16.04.2018
18:19:25
может он в директ написал)

Aleksandr
16.04.2018
18:19:25
Времена постправды

Возможно фейк. Вероятно. Слишком сладко казалось

Max
16.04.2018
18:26:27
Я делал редис лок. Для либы редиго была либа готовая, название не помню
хм а без редиса никак? не хочется поднимать для этого редис

Алексей
16.04.2018
18:49:25
Добрейший вечерок господа ,ребят где найти инфу по написанию функциональных тестов при помощи библиотек json, и go-resty!может кто то где то встречал ?кроме официальных ссылок на эти библиотеки! спасибо заранее

Илья
16.04.2018
18:49:31
Да хоть майсиквель, хоть зукипер, любой distributed lock подойдёт

Mykyta
16.04.2018
18:59:16
подскажите, как избавится от такой конструкции User, _ := c.Get("User") User_ := User.(model.User) что бы User сразу был как .(model.User)
Специально заложено, чтобы так не делали. Если юзера нет, тогда на второй строчке паника будет, а так как ты собственно-ручно ее замолчал — ССЗБ

Алексей
16.04.2018
19:03:41
Добрейший вечерок господа , где найти инфу по написанию функциональных тестов при помощи библиотек json, и go-resty!может кто то где то встречал ?кроме официальных ссылок на эти библиотеки! спасибо заранее

Google
Vladislav
16.04.2018
19:10:42
т.е. я правильно сделал?
нужно проверять 2 результат

Mykyta
16.04.2018
19:10:51
т.е. я правильно сделал?
Нет, надо смотреть, что Get() возвращает во втором значении

Ivan
16.04.2018
19:11:40
там exist - т.е. существует ли переменная, я понял, ее надо проверить, а то что я это использую User_ := User.(model.User) это нормально?

Mykyta
16.04.2018
19:14:41
там exist - т.е. существует ли переменная, я понял, ее надо проверить, а то что я это использую User_ := User.(model.User) это нормально?
Ну во-первых, ты не проверяешь в касте ситуацию, если значение таки не model.User, во-вторых, название переменной должно отражать суть данных, которую содержит. Потому User_ настоятельно рекомендую переименовать в data или value (сарказм)

The
16.04.2018
21:18:22
господа, xml умеет паковать и распаковывать map[string]interface{}? есть структура, и к ней в догонку нужно паковать всякий мусор в эту мапу. все это потом сохраняется как xml файл. нужно, чтобы и эти данные сохранялись. я тут прикуралесил уже xml.Marshaler, и все ок. А вот с распаковкой траблы, там и слайсы, и мапы, и булевы значения. Вот собственно вопрос возникает, можно ли это все не ручками декодить? Если XML это как-то запаковал, то может он умеет сам распаковывать?

<Data> <values> <string>abc</string> <slice>hello</slice> <slice>world</slice> <number>1</number> <float>1.23</float> <bool>true</bool> <nestedMap> <nestedKey>nestedValue</nestedKey> </nestedMap> </values> </Data>

Yevhen Nakonechnyi
16.04.2018
21:56:10
xml.Unmarshal. А в чем собсна проблема? Передал xml и структуру и все распакуется

The
16.04.2018
21:59:21
xml.Unmarshal. А в чем собсна проблема? Передал xml и структуру и все распакуется
А вы пробовали просто взять, и передать map[string]interface{} в xml.Marshal?

Yevhen Nakonechnyi
16.04.2018
22:05:47
А, нужно interface{} распаковать? Ну тогда ручками. Я подумал что есть struct, которий нужно паковать/распаковать. Недопонял. Можно поискать какую нибуть либу для етого.

The
16.04.2018
22:10:16
я думал, может в json запаковать, а потом в base64.

Finch
16.04.2018
22:15:10
Когда стоит использовать ГО вместо node js?

Ivan
16.04.2018
22:18:56
Finch
16.04.2018
22:29:46
Когда пишешь сервис
Я сервис и на ноде могу написать. Можно подробнее с примером, когда по вашему стоит использовать ГО а когда году?

Ноду

Zaur
16.04.2018
22:54:38
Знаешь го, не знаешь ноду, пишешь на го Знаешь ноду, но не знаешь го, пишешь на ноде

Знаешь ноду и го, пишешь на чём по кайфу

Но советчик из меня хреновый ?

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