Oleg
да тут полно уникумов я смотрю
Olzhas
Olzhas
Olzhas
Я хоть знаю как авторизацию сделать
Oleg
уверен?
Olzhas
уверен?
Ну да, берешь пароль, сохраняешь его хэш мд5...
Olzhas
Zver
Olzhas
О, мой любимый вопрос - есть пакет на го асн1 с поддержкой всех тегов?
Anonymous
Всем привет. С чего начать чтобы писать бэкенд на GO? Подскажите. Я так понял для того чтобы написать бэкенд, надо GO связать с БД и написать API? Так? Это основные задачи?
Alexander
как и почти любого бэкенда, не смотря на язык разработки
Anonymous
Anonymous
ну это естественно!
Anonymous
Потом написать несколько своих роутеров... и ты готов)
Anonymous
Anonymous
Aleksandr
можно
Kirill
Разрешаем, конечно
Kirill
🤣
Aleksandr
https://goo.gl/9W16QB
Stepan
Срочно нужна помощь
Stepan
Как удалить историю комитов с гитхаба
Tigran
да не, скорее всего креденшиалы запалил
Tigran
😱
Vladimir 👀
git commit --amend
git push -f
Aleksandr
это ты искал ответ на вопрос
Dmytro
go func(prefix string) {
defer wg.Done()
q := &storage.Query{Versions:false, Delimiter:"/", Prefix: prefix}
it = scl.Bucket(bucketName).Objects(ctx, q)
for {
attrs, err := it.Next()
if err == iterator.Done {
break
}
fmt.Println(attrs.Prefix)
}
}(prefix)
не могу понять почему мне возвращает
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x58 pc=0x142e6a5]
Dmytro
(((
Slava
это на какой строчке?
Slava
подозревая что в fmt.Println(attrs.Prefix)
Dmytro
это если внутри рутини у меня for отрабатывает
Dmytro
for {
attrs, err := it.Next()
if err == iterator.Done {
break
}
Slava
ошибка на какой строчке возникает?
Dmytro
стектрейс говорит что в it.Next
Dmytro
возможно гугловский иттератор не умеет работать с рутинами (
Aid
Может проверку done выше двинуть?
Slava
горутины тут вообще не причём
Slava
ошибка у вас возникает потому что вы пытаетесь разыменовывать nil
Slava
если на строке it.Next(), значит it у вас nil
Slava
проверьте что у вас в it
Dmytro
добро. спасибо.
Dmytro
идея просто каждый элемент слайса в рутину запустить. может коряво написал
Dmytro
for _, prefix := range prefixes {
wg.Add(1)
go func(prefix string) {
defer wg.Done()
q := &storage.Query{Versions:false, Delimiter:"/", Prefix: prefix}
it = scl.Bucket(bucketName).Objects(ctx, q)
fmt.Println(prefix)
fmt.Println(it)
for {
attrs, err := it.Next()
if err == iterator.Done {
break
}
fmt.Println(attrs.Prefix)
}
}(prefix)
}
Dmytro
идея так была сделать
Altay unstppbl
Кстати кто еще сталкивался с причудами итерации над массивом и передачи поинтера на элемент в горутину?
Anton
всем 👋🏼 может кто сталкивался: указываю тэг json:"name,omitempty" для вложенного struct'а (важная часть — omitempty), этому вложенному стракту переопределяю метод MarshalJSON и этот метод иногда возвращает пустую строку. и в результате omitempty игнорируется, как-то так:
type Something struct {
Name TranslatedString `json:"name,omitempty"`
}
type TranslatedString struct {
lang string
Ru string `json:"ru,omitempty"`
En string `json:"en,omitempty"`
Cn string `json:"cn,omitempty"`
}
func (s *TranslatedString) MarshalJSON() ([]byte, error) {
var str string
switch s.lang {
case "ru":
str = s.Ru
case "cn":
str = s.Cn
}
if str == "" {
str = s.En
}
return json.Marshal(str)
}
Anton
в результате в json'е пустая строка (вместо отсутствия поля вообще):
{
"name": ""
}
Aleksandr
type Something struct {
Name *TranslatedString `json:"name,omitempty"`
}
Aleksandr
если так переделать, то Name будет nil, и name опустится из json
Anton
Anton
@zelenin я правда переделал уже, потому что понял, что будет сложно при работе с API (клиентам надо показать просто строку, а админам json со всеми полями). вот такой нормальный подход к "переопределению" полей для разных вариантов представления одних и тех же структур? https://gist.github.com/egorovli/41c1e94c370667f96321f12c65424783
Aleksandr
вроде норм
Anton
ок, спс 👍
Danylo
Здравствуйте, кто может подсказать где и какими способами можно хранить большие объемы данных кроме БД. Есть боты примерно несколько тысяч/десятков тысяч, нужно хранить данные, комманды и т.д причем данные обновляются каждый день по несколько раз, а БД на более чем 200 ГБ ооочень дорогие.
Kirill
Igor
Danylo
бинарные файлы?
Не, обычный текст, данные о диске, проце, видюхе и т.д
Igor
Kirill
Aleksandr
ботовод-любитель
Aleksandr
готовит апокалипсис, а пока собирает данные с компов из сетки
Kirill
орно звучит
Kirill
не хочешь БД - храни на диске
Kirill
но потом всё равно родишь БД
Kirill
когда соберешь все грабли в округе
Aleksandr
мне представляется, что человек с тысячами ботов на руках, может найти пару тысяч в месяц на сервак с парой ТБ на борту
Aleksandr
иначе зачем оно все нужно?
Kirill
дык я и говорю
Kirill
берешь диски
Kirill
хранишь на них данные
Kirill
профит
Aleksandr
угу