
The
08.08.2018
08:51:40
когда решил запостить вакансию и получил "фидбек"

Kirill
08.08.2018
08:51:47
Ладно, хорош рофлить, а то обидятся)

James
08.08.2018
08:52:07
мощная тетка, сама встала

Roman
08.08.2018
08:58:53

Google

The
08.08.2018
09:03:16
Привет! В уютный стартап про умную рекламу Трамплин Медиа (trmpln.ru) ищем middle golang developer. Наш стек: Golang/Python, Docker/Kubernetes/Ansible, Postgresql/Clickhouse/Redis.
Амбициозные задачи, никакого legacy, свежий офис в Москва Сити (башня Империя), кофе, печенки.
Вилка: 150-200к (белая зп, дмс).
Пишите в личку или на alexander.davydov@trmpln.ru
кстати, только сейчас заметил что там не печен**ь**ки, а печенки, т.е. печень.

Kirill
08.08.2018
09:03:50

Alexander
08.08.2018
09:10:38

Hokusai
08.08.2018
09:34:18
ребят, подскажите пожалуйста, у меня есть дюжина докер контейнеров к каждому из которых обращаюсь через апи, по сути там один post запрос, и получаю результаты. Вот, с кубернетисом и прочими оркестрационными системами не знаком ещё, мне надо организовать это всё, с чего начать? Короче я нуб в работе с контейнерами и системами оркестрации

Aleksandr
08.08.2018
09:35:49
организовать что?

Hokusai
08.08.2018
09:36:23
надо сделать развертывание и балансировщик нагрузки что ли, ну и бд прикрутить

The
08.08.2018
09:36:42
можно docker-swarm использовать
дока есть на сайте у них

Sergey
08.08.2018
09:37:16
сворм наверное от упоминания в могиле перевернулся

The
08.08.2018
09:37:28
тут сами выбирайте k8s или docker swarm использовать

Hokusai
08.08.2018
09:38:55
я посмотрел пару видео про k8s, вся соль получается просто в создании yaml файла конфигурации?

Kirill
08.08.2018
09:39:29

Zaur
08.08.2018
09:43:10
Слышал что внедрение кубернетса это работа не для одного человека?

Google

Kirill
08.08.2018
09:44:03
По хорошему — да
А если сильно нужно - то и в одно рыло можно справиться


Belova
08.08.2018
09:54:09
Москва?Требуется в команду Backend developer.
На полную занятость.
О нашем приложении:
Финансовое приложение, которое открывает доступ ко всем необходимым финансовым услугам с фиатными деньгами и криптовалютами. Это мультивалютные счета, быстрые трансграничные переводы, P2P кредиты, покупка крипты за фиат и прочее.
Твоя задача:
Разрабатывать различные микросервисы на языке Go, участвовать в проектировки архитектуры приложения и баз данных.
Что ты должен знать/уметь?
- Опыт backend разработки от 4 лет
- Опыт работы с RPC-API
- Опыт разработки на Go от года
- Умение и желание работать в терминале
- Опыт построения Rest/GraphQl Api
- Опыт работы с SQL базами данных - PostgreSql, MySql
- Опыт работы с NoSql базами данных - Redis, MongoDb
- Опыт работы от 2 лет в смешанной команде разработчиков по методологии Agile/SCRUM
- Опыт (и желание) регулярной работы с Git, Jira, Confluence
- Желание и умение быть частью команды, терпеливость, ответственность, дружелюбие, умение помогать
- Умение оценивать сроки реализации задач и укладываться в них
- Знание английского и чтение профессиональной документации.
Будет плюсом:
- Знание и опыт работы с UNIX подобными системами
- Знание и опыт работы с технологией blockchain
- Знание основ криптографии
- Глубокое понимание теории блокчейнов: PoW, PoS, TaPoS, DPoS, других консенсусных алгоритмов
- Опыт реализации отдачи данных в реальном времении посредством websocket
- Опыт работы с финансовыми проектами/платежными системами
- Понимание информационной безопасности, структур данных и клиент-серверного взаимодействия
- Большим преимуществом будет участие в проекте, связанном с блокчейн и криптовалютой
Какие условия работы в нашей команде?
- Оплачиваемые обеды
- Время прихода с 8.00 до 11.00, далее 8-ми часовой рабочий день +1 час перерыв на обед, время ухода с 17.00 до 21.00
- Комфортный, светлый офис с панорамными окнами на м. Проспект мира
- До метро 500 метров - 5 минут пешком
- Тестовое задание!
Вилка широкая - 100к - 200к рублей на руки. Мы готовы расмотреть как специалистов различного уровня, и конечная заработная плата будет определяться по результатам собеседования.
a.belova@zam.me


Igor
08.08.2018
09:54:53

Alexey
08.08.2018
09:56:01
Есть раздумья на тему коннекта базы к приложению, не стандартно, в обратную сторону. Думается можно реализовать типа своего приложения выглядящего базой снаружи, типа ODBC протокол реализовать.
Вопрос: никто не видел на Go реализацию ODBC?

Kirill
08.08.2018
10:27:57

GoodMoodDealler
08.08.2018
11:39:04
У меня вопрос немного не по го. Какой утилитой можно визуализировать связи в бд?
Желательно консольной

Sergey
08.08.2018
11:42:18
https://github.com/rm-hull/sql_graphviz

The
08.08.2018
11:50:02
или, например, MySQL Workbench, если не обязательно консольной.

Максим
08.08.2018
13:48:18
Dbeaver

Evgeniy
08.08.2018
13:49:07
Dbeaver +1

Lesha
08.08.2018
14:34:31
Гайз, посоветуйте чем вы json в структуру парсите. Стандартная библиотека слишком медленная для нас.
Раньше использовал fastjson, но там нет поддержки аннотаций. Я где-то над ним видел обертку с аннотациями, но не могу найти

Aleksandr
08.08.2018
14:35:56
устраивает, что теги сами по себе не быстры?
кажется, все, что парсится в структуру на лету, будет медленным из-за рефлексии. Быстро - это генерить парсеры под каждую структуру

Lesha
08.08.2018
14:40:29
т.е. какой-нибудь https://github.com/pquerna/ffjson будет неплохим вариантом-альтернативой

Aleksandr
08.08.2018
14:41:59
да

Pawel
08.08.2018
14:48:06
2500 - это зарплата лида или мидла?

Vasily Romanov
08.08.2018
14:48:25

Pawel
08.08.2018
14:49:27

Google

Alexander
08.08.2018
14:50:30

Pawel
08.08.2018
14:51:02
Ну сорян тогда. А то я чет аш прифигел

Oleh
08.08.2018
15:41:39
%4.3f это формат для флоат, а как под знак место выделить?

Aleksandr
08.08.2018
15:42:56
%+4.3f
так что ли. но вообще это справочная информация

Oleh
08.08.2018
16:11:09

08.08.2018
16:22:13
у меня вопрос по protobuf
сгенерил компилятором код
и в нем есть такая штука
func Descriptor() ([]byte, []int) {
return fileDescriptor_messages_10e0aa9ce76acfa5, []int{6}
}
как я понял это дескриптор пакета
как его достать из пришедшего массива байт?

Hokusai
08.08.2018
16:27:49

Кирилл
08.08.2018
16:50:16
Есть вопрос.
Функция может возвращать несколько значений, тогда оно используется как
var1, var2 = func()
А в некоторых примерах, типа чтения файлов или циклов, я вижу переменную`_` , что оно значит?

Aleksandr
08.08.2018
16:50:59
подавление переменной. в смысле не присваивают

Кирилл
08.08.2018
16:51:19
Спасибо

08.08.2018
18:33:23
Кто нибудь знает как правильно анмаршалить сообщения protobuf? Везде примеры типа
test := &example.Test{}
data, err := proto.Marshal(test)
newTest := &example.Test{}
err = proto.Unmarshal(data, newTest)
А если у меня открыто tcp соединение в которое я кидаю разные сообщения protobuf, как детектить какое сообщение пришло?
Если в первый байт пакета писать его идентификатор, и на принимающей стороне его считывать
получается что-то типа
switch(recvBytes[0]){
case 0:
msg := &pbMessage1{}
if proto.Unmarshal(recvBytes[1:], msg) != nil{
return
}
case 1:
msg := &pbMessage2{}
if proto.Unmarshal(recvBytes[1:], msg) != nil{
return
}
case 2:
msg := &pbMessage3{}
if proto.Unmarshal(recvBytes[1:], msg) != nil{
return
}
}
Отправка сообщений - аналогичный свич, который пишет в первый байт id пакета
Это просто ужастно, глаза текут от такой фигни
Как сделать по нормальному?
???


Aleksandr
08.08.2018
18:40:44
протобаф для того и сделан, чтобы не детектить что пришло
протокол сам все детектит, сгенеренный код сам анмаршаллит

Google

08.08.2018
18:43:56
как это сделать

Aleksandr
08.08.2018
18:44:07
что?

08.08.2018
18:44:25
"анмаршальнуть"
можешь дать пример кода?
пушта метод proto.Unmarshal требует в аргумент тип pb Message

Aleksandr
08.08.2018
18:58:10
https://developers.google.com/protocol-buffers/docs/techniques#streaming

Admin
ERROR: S client not available

Aleksandr
08.08.2018
18:58:16
это навреное
ну и погуглить как это делается
https://www.google.com/search?client=ubuntu&hs=AZW&channel=fs&biw=1920&bih=926&ei=hD1rW4-yOYTksAeYmLuwBA&q=golang+protobuf+dynamic+messages&oq=golang+protobuf+dynamic+messages&gs_l=psy-ab.3..0i19k1.23620.30384.0.30529.29.21.3.5.6.0.194.2295.12j9.21.0....0...1c.1.64.psy-ab..2.26.2047...0j0i22i30k1j0i13k1j0i13i30k1j0i13i5i30k1.0.udL7uH0hYtI

08.08.2018
19:06:25

Aleksandr
08.08.2018
19:09:41
я не совсем понял задачу изначально


Daniel
08.08.2018
19:21:47
Кто нибудь знает как правильно анмаршалить сообщения protobuf? Везде примеры типа
test := &example.Test{}
data, err := proto.Marshal(test)
newTest := &example.Test{}
err = proto.Unmarshal(data, newTest)
А если у меня открыто tcp соединение в которое я кидаю разные сообщения protobuf, как детектить какое сообщение пришло?
Если в первый байт пакета писать его идентификатор, и на принимающей стороне его считывать
получается что-то типа
switch(recvBytes[0]){
case 0:
msg := &pbMessage1{}
if proto.Unmarshal(recvBytes[1:], msg) != nil{
return
}
case 1:
msg := &pbMessage2{}
if proto.Unmarshal(recvBytes[1:], msg) != nil{
return
}
case 2:
msg := &pbMessage3{}
if proto.Unmarshal(recvBytes[1:], msg) != nil{
return
}
}
Отправка сообщений - аналогичный свич, который пишет в первый байт id пакета
Это просто ужастно, глаза текут от такой фигни
Как сделать по нормальному?
мы тут в личке поговорили, и пришли к выводу, что надо просто взять grpc


Slava
08.08.2018
19:41:43
всё через протобаф, без всяких волшебных байтиков

Alexandr
08.08.2018
22:05:37
как запустить команду и закрыть программу не дожидаясь её завершения?
(я делаю обновление. качаю файл, и запускаю его, а он уже будет делать что надо)

Zaur
08.08.2018
22:13:07

Alexandr
08.08.2018
22:15:41
не, screen и jobs, это, конечно, святое, но как это сделать силами golang?

Aleksandr
08.08.2018
22:20:40
но зачем?

Wingman
08.08.2018
22:22:22

Google

Zaur
08.08.2018
22:23:05

Wingman
08.08.2018
22:23:30
но зачем?
Меня тоже вымораживает невозможность штатно daemonize'иться (

Aleksandr
08.08.2018
22:25:58
в линуксе есть systemd и иже с ним.

Zaur
08.08.2018
22:29:56
Есть готовые либы

Nik
08.08.2018
22:30:50
а че, нельзя сделать exec.Command("nohup", "./mycoolapp&") и потом застрелиться? Мимокродил

Alexandr
08.08.2018
22:32:05
да помню, что в java и в дельфях я обновления пилил так:
качаем файл, запускаем и сразу завершаем данный процесс, а программа обновления распаковывает с заменой файлов и снова запускает мою программу
как раз и хочу вывернуться так, чтобы запустить обновлялку и дать ей возможность перезаписать файл, из которого она была запущена

Zaur
08.08.2018
22:38:12
+ к вопросу, как это делается?
Мне кажется текущий вариант немного неправильный, потому что в случае ошибки и старый завершится и новый не будет запущен.

Aleksandr
08.08.2018
22:48:04
у телеграма на десктопе например отдельный апдейтер

German
09.08.2018
06:48:41
Всем доброго дня,
кто-нибудь пользует в проде /valyala/fasthttp? Сильно ли он лучше нынешней стандартной либы?

Vadim
09.08.2018
06:51:52

Kirill
09.08.2018
06:54:12
Всё работает шустрее и очевиднее

German
09.08.2018
06:55:48

Kirill
09.08.2018
06:57:24