
Max
22.01.2018
18:58:16
Слушай probobuf родился в google и гугл им активно пользуется) Думаю такая компания все хорошо продумала
На сервер протокол буффера храниться в отдельном файле или заинлайнен. После того, как сервер подыметься он все равно вычитает этот протокол. И да, возможно вы не верно поняли protobuffer это не delta inter-message сжатие, он просто хранит все ключи в протоколе, а ссобщение выстраивается в нужном порядке следуя декларативному описанию в нем

Антон
22.01.2018
19:03:29
воот. Просто из вашей переписки выше можно сделать вывод что протобуф зависит от контекста

Pawel
22.01.2018
19:05:51

Google

Pawel
22.01.2018
19:06:05
таки да, это лучше

Антон
22.01.2018
20:35:24
DER

Pawel
22.01.2018
20:35:42
Посмотрел protobuff и FlatBuffers и прифигел - дрочбы в присядку там не мало однако. Почему нельзя взять структуру Го и сгенерить весь необходимый бойлерплейт - не понятно

Антон
22.01.2018
20:38:22
Этим мне нравится дока го, она точно описывает, что собственно реализует модуль

Pawel
22.01.2018
20:40:53
DER
лично меня это более чем исчерпывающе устраивает
ээ.... она не умеет во флоат! https://play.golang.org/p/6xSwv2CFR2K

Alexander
22.01.2018
20:57:54
Fixed point можно, если пары знаков после запятой хватает

Pawel
22.01.2018
20:59:01
Это что имеется ввиду?

Alexander
22.01.2018
21:00:27
передавать int равный флоату умноженному на 100. При получении обратно делить

Pawel
22.01.2018
21:02:26
а, не. Тогда уже проще упаковать флоат в массив байтов. Вообще хотелось бы избежать переписывания исходных структур данных, ибо лень

Nafania
22.01.2018
21:02:47

Google

Pawel
22.01.2018
21:03:08
о! это ближе к теме. спсб

Aleksandr
22.01.2018
21:59:17
We have just released Go version 1.9.3, a minor point release.
This release includes fixes to the compiler, runtime, and the database/sql,
math/big, net/http, and net/url packages.
View the release notes for more information:
https://golang.org/doc/devel/release.html#go1.9.minor

Slava
22.01.2018
22:05:22
https://blog.jetbrains.com/go/2018/01/22/welcome-goland-2018-1-eap-better-inspections-completion-performance-and-more/
крутой релиз

Slach
23.01.2018
05:51:29
Народ, объясните как правильно делать теги для yaml ?
prog.go:7:53: syntax error: unexpected literal yaml:"anomalies_definition" after top level declaration
https://play.golang.org/p/I2YTywherV-
почему тут ругается?
хочу распарсить yaml
anomalies_defintion:
test_anomaly1:
table: test_table1
test_anomaly2:
table: test_table1

tsov
23.01.2018
05:57:30
что нового в 1.9.3?

Alexey
23.01.2018
06:08:36
https://github.com/golang/go/issues?q=milestone%3AGo1.9.3

Andrew
23.01.2018
06:16:46

Aleksandr
23.01.2018
10:23:06
а можно как то у map кроме kv еще и индекс доставать? знаю map не сортированный, но может есть какая-то "особая" конструкция for k,v,index := range map разумеется не работает. кроме как конечно свой счетчик инициализировать

Мерлин
23.01.2018
10:25:21

Andrew
23.01.2018
10:27:46

Daniel
23.01.2018
10:28:23

Alexander
23.01.2018
10:40:02
и чем плох собственный счетчик?

Aleksandr
23.01.2018
10:48:40
а что такое индекс в мапе?
Ну у мапы есть длина, я хочу интегрировать через ключи и знать какой это ключ по счету, тут определение индекса скорее не очень подходит

Daniel
23.01.2018
10:52:51

Andrew
23.01.2018
10:55:36

Google

Natalya
23.01.2018
11:01:28
Привет всем! Подскажите, пожалуйста, возможно ли размещать в чате вакансии (по сабжу, естественно)?

Timur
23.01.2018
11:02:14
Для этого есть другой чат

Andrew
23.01.2018
11:03:03
Видел как тутошние админы разрешали постить вакансии тут с указанием какого-то столового прибора (вилки вроде)

Daniel
23.01.2018
11:03:45


Natalya
23.01.2018
11:04:25
спасибо большое за ответы! С вашего позволения закину вакансию с вилкой :) Вдруг кому приглянется ;)
#вакансия #санкт_петербург #спб #питер #golang #fulltime #office #финтех #blockchain
Город: Санкт-Петербург
Метро: Черная речка/Старая деревня
Позиция:
Senior Go Developer
Вилка: от 170к
Офис, полный день, гибкое начало рабочего дня
Один из партнеров группы компаний i-Free запускает новый международный финансовый сервис на самом горячем рынке блокчейна и ищет в свою команду единомышленников и профессионалов на позицию Senior Go Developer.
Обязанности:
- Разработка с нуля собственного бэкэнда для Highload проекта;
- Интеграция сложных API;
- Написание прозрачного и качественного кода;
- Активное взаимодействие с бэк-энд и фронт-энд разработкой;
- Реализация новых микросервисов;
- Написание тестов.
Что ждем от кандидата:
- Опыт коммерческой разработки на Go (Golang);
- Опыт разработки на С/С++ от 2-х лет;
- Техническое высшее образование;
- Опыт работы с SQL/NoSQL;
- Готовность к личной ответственности и фундаментальный подход к решению задач. Мы создаем финансовый инструмент и ожидаем должного уровня ответственности ежесекундно;
- Твердые знания алгоритмов и структур данных;
- Опыт работы с Agile-практиками и готовность к изменению требований в процессе разработки.
Будут значительным плюсом:
- Вы - адепт Linux/BSD;
- Ваш опыт разработки высоконагруженных сервисов.
Мы готовы предложить вам:
- Пространство для реализации ваших собственных идей в новом проекте на глобальном рынке;
- Место в уникальной команде с подтвержденными компетенциями в отрасли;
- Стабильную и конкурентоспособную заработную плату;
- Гибкий график;
- Большой и просторный офис в БЦ класса А с панорамным видом на Финский залив;
- Кофе/китайские чаи/овощи/фрукты/орехи в офисе;
- Оплачиваемые больничные, отпуск 28 календарных дней.
Вопросы можно адресовать в личку или на почту natalya.langepas@gmail.com


Andrew
23.01.2018
11:12:12
Блокчейн захватывает мир. Скоро можно будет в вакансиях по умолчанию считать, что будет использоваться блокчейн. ))

Anatoly
23.01.2018
11:14:58

Daniel
23.01.2018
11:16:23
вообще, CRDT распределенная DBMS вещь перспективная. это если о самом блокчейне говорить. но, конечно, применимость ее сильно поуже, чем сейчас представляется хайпанутым...

Slach
23.01.2018
11:16:31

Andrew
23.01.2018
11:21:16
=) да уж вообще сильно поуже
Это не мешает "хайпанутым" васянам создавать криптовалюту своего имени и майнить что ни попадя на холодильниках ))

Max
23.01.2018
11:46:46

Andrew
23.01.2018
11:55:25
Блекджек добавят, баги исправят - и будет конфетка ))

Max
23.01.2018
11:59:36
Не нужен там блэкджек, там все и так прекрасно и уникально. Что бы кто то запилил распределенное хранилище не назвав это криптой и без ICO и пресейла... они там святые!)

Гриша
23.01.2018
13:30:12
Подскажите плиз по dep, готовлю так:
1.) mkdir /var/www/go
2.) cd /var/www/go
3.) export GOPATH=/var/www/go/
4.) mkdir src
5.) git clone git@bitbucket.org:account/reponame.git
6.) cd reponame
7.) dep ensure
8.) go build -o bin/gorpc gorpc.go
copydom/copydom.go:8:2: cannot find package "_/var/www/go/src/reponame/vendor/github.com/PuerkitoBio/goquery" in any of:
/usr/lib/go-1.9/src/_/var/www/go/src/reponame/vendor/github.com/PuerkitoBio/goquery (from $GOROOT)
ЧЯДНТ? Как правильно деплоить?

Daniel
23.01.2018
13:32:07
dep init забыт

Гриша
23.01.2018
13:33:12
там есть уже созданные с локали Gopkg.lock и Gopkg.toml

Google

Alexander
23.01.2018
13:33:25
Вместо git clone сделай go get git@bitbucket.org:account/reponame.git
или после git clone запусти go get ./... в папке проекта

Vladislav
23.01.2018
13:46:39

Гриша
23.01.2018
13:54:17
Отлично, помогло, спасибо!

Admin
ERROR: S client not available

Alexey
23.01.2018
14:03:59
Привет! Подскажите, это приемлимый код? Вообще есть какое то соглашение по написанию кода? Или пиши как хочешь, главное качественно?
func main() {
elapsed := time.Now()
flag.Parse()
hosts, err := ssh.GenerateHosts(*cidr)
if err != nil {
log.Fatalf("%v\n", err)
}
jobs := make(chan string)
for i := 1; i <= *threads; i++ {
wg.Add(1)
go brute(jobs)
}
for _, host := range hosts {
jobs <- host
}
close(jobs)
wg.Wait()
ops = atomic.LoadUint64(&ops)
fmt.Printf("[INFO] Elapsed: %.2f sec.\n", time.Since(elapsed).Seconds())
fmt.Printf("[INFO] Total hosts: %d\n", ops)
}

Daniel
23.01.2018
14:06:02
я бы советовал начать с прогона по коду go fmt и gometalint

Alexey
23.01.2018
14:06:24
ну go fmt есть
Это может в телеге так отображается
в ide норм
Отступы в четыре пробела

Daniel
23.01.2018
14:07:32
а я не читал код же

ainu
23.01.2018
14:07:46
В Go красивый код - это металинт.
В Go правильный код - это go fmt
(есть конечно еще вычислительная сложность, логические ошибки, но это совсем другая история)

Alexey
23.01.2018
14:08:47

ainu
23.01.2018
14:08:49
go vet ещё

Alexey
23.01.2018
14:09:12
Я про логику и говорю
Остальное выглядит эстетично
Просто телега так отображает

Google

Alexey
23.01.2018
14:09:39
В IDE по другому

ainu
23.01.2018
14:09:52
металинтер не только про отступы

Alexey
23.01.2018
14:10:15

ainu
23.01.2018
14:10:16
а почему brute не показан? Может быть там ад и израиль
go get -u github.com/alecthomas/gometalinter
gometalinter --install

Alexey
23.01.2018
14:11:20
Просто привычка что в python есть pep, есть негласные вещи для написания хорошего и понятного кода, а в го как бы я не написал и как бы не реализовывал, всем все понятно и никто не говорит, что например в таком то месте можно было сократить кол-во строк, в таком-то было бы удобней так и так)
А в питоне это нередкость, новички постоянно интересуются как было бы правильней
Непривычно как то, хотя от go балдею ваще)

ainu
23.01.2018
14:27:36
По количеству строк в металинтере есть (15 емнип на функцию)
Вообще, если поставить vs code, он сам подчеркивает где что не так, очень удобно

Alexey
23.01.2018
14:28:52
Ну вот самая большая main, остальные по принципу "разделяй и влавствуй"
Ну у меня и так vs code
Вот у примеру функция сканирования
func scan(host string) (net.Conn, error) {
c, err := net.DialTimeout("tcp", host+":22", 5*time.Second)
if err != nil {
return nil, err
}
return c, nil
}