Pawel
ээ.... она не умеет во флоат! https://play.golang.org/p/6xSwv2CFR2K
Alexander
Fixed point можно, если пары знаков после запятой хватает
Pawel
Это что имеется ввиду?
Alexander
передавать int равный флоату умноженному на 100. При получении обратно делить
Pawel
а, не. Тогда уже проще упаковать флоат в массив байтов. Вообще хотелось бы избежать переписывания исходных структур данных, ибо лень
Nafania
Pawel
о! это ближе к теме. спсб
Aleksandr
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
https://blog.jetbrains.com/go/2018/01/22/welcome-goland-2018-1-eap-better-inspections-completion-performance-and-more/
Slava
крутой релиз
Slach
Народ, объясните как правильно делать теги для yaml ?
prog.go:7:53: syntax error: unexpected literal yaml:"anomalies_definition" after top level declaration
https://play.golang.org/p/I2YTywherV-
почему тут ругается?
Slach
хочу распарсить yaml
anomalies_defintion:
test_anomaly1:
table: test_table1
test_anomaly2:
table: test_table1
Roman
что нового в 1.9.3?
Alexey
https://github.com/golang/go/issues?q=milestone%3AGo1.9.3
Anonymous
Anonymous
John
а можно как то у map кроме kv еще и индекс доставать? знаю map не сортированный, но может есть какая-то "особая" конструкция for k,v,index := range map разумеется не работает. кроме как конечно свой счетчик инициализировать
Мерль
Anonymous
Daniel
Alexander
и чем плох собственный счетчик?
John
John
а что такое индекс в мапе?
Ну у мапы есть длина, я хочу интегрировать через ключи и знать какой это ключ по счету, тут определение индекса скорее не очень подходит
Anonymous
Natalya
Привет всем! Подскажите, пожалуйста, возможно ли размещать в чате вакансии (по сабжу, естественно)?
Timur
Для этого есть другой чат
Anonymous
Видел как тутошние админы разрешали постить вакансии тут с указанием какого-то столового прибора (вилки вроде)
Daniel
Natalya
спасибо большое за ответы! С вашего позволения закину вакансию с вилкой :) Вдруг кому приглянется ;)
Anonymous
Блокчейн захватывает мир. Скоро можно будет в вакансиях по умолчанию считать, что будет использоваться блокчейн. ))
Anatoly
Daniel
вообще, CRDT распределенная DBMS вещь перспективная. это если о самом блокчейне говорить. но, конечно, применимость ее сильно поуже, чем сейчас представляется хайпанутым...
Slach
Anonymous
=) да уж вообще сильно поуже
Это не мешает "хайпанутым" васянам создавать криптовалюту своего имени и майнить что ни попадя на холодильниках ))
Anonymous
Anonymous
Блекджек добавят, баги исправят - и будет конфетка ))
Anonymous
Не нужен там блэкджек, там все и так прекрасно и уникально. Что бы кто то запилил распределенное хранилище не назвав это криптой и без ICO и пресейла... они там святые!)
Grisha
Подскажите плиз по 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
dep init забыт
Grisha
там есть уже созданные с локали Gopkg.lock и Gopkg.toml
Alexander
Вместо git clone сделай go get git@bitbucket.org:account/reponame.git
Alexander
или после git clone запусти go get ./... в папке проекта
Vladislav
Grisha
Отлично, помогло, спасибо!
Anonymous
Привет! Подскажите, это приемлимый код? Вообще есть какое то соглашение по написанию кода? Или пиши как хочешь, главное качественно?
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
я бы советовал начать с прогона по коду go fmt и gometalint
Anonymous
ну go fmt есть
Anonymous
Это может в телеге так отображается
Anonymous
в ide норм
Anonymous
Отступы в четыре пробела
Daniel
а я не читал код же
ainu
ainu
В Go красивый код - это металинт.
В Go правильный код - это go fmt
ainu
(есть конечно еще вычислительная сложность, логические ошибки, но это совсем другая история)
Anonymous
ainu
go vet ещё
Anonymous
Я про логику и говорю
Anonymous
Остальное выглядит эстетично
Anonymous
Просто телега так отображает
Anonymous
В IDE по другому
ainu
металинтер не только про отступы
Anonymous
ainu
а почему brute не показан? Может быть там ад и израиль
ainu
go get -u github.com/alecthomas/gometalinter
gometalinter --install
Anonymous
Anonymous
Просто привычка что в python есть pep, есть негласные вещи для написания хорошего и понятного кода, а в го как бы я не написал и как бы не реализовывал, всем все понятно и никто не говорит, что например в таком то месте можно было сократить кол-во строк, в таком-то было бы удобней так и так)
Anonymous
А в питоне это нередкость, новички постоянно интересуются как было бы правильней
Anonymous
Непривычно как то, хотя от go балдею ваще)
ainu
По количеству строк в металинтере есть (15 емнип на функцию)
ainu
Вообще, если поставить vs code, он сам подчеркивает где что не так, очень удобно
Anonymous
Ну вот самая большая main, остальные по принципу "разделяй и влавствуй"
Anonymous
Ну у меня и так vs code
Anonymous
Вот у примеру функция сканирования
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
}