Konstantin
Картинка получается так: resp, err := http.Get(media.MediaURL) if err != nil { log.Fatal(err) } defer resp.Body.Close() file, err := os.Create(settings.PhotoFile) if err != nil { log.Fatal(err) } _, err = io.Copy(file, resp.Body) if err != nil { log.Fatal(err) } file.Close() Вот и думал вместо сохранения просто считывать из resp.Body массив байтов, но фигушки
Mikalai
Ой, точнее в fileWriter наверное
Мерль
у меня есть в плане их тестировать пачкой, 13 штук
А ты смотрел вот эту штуку? https://github.com/asdine/storm
engelbart
С кодировками как страдать рекомендуется? У меня есть база sqlite с которой надо достать данные и перезаписать их в bolt. Там база неизвестно кем заполнялась, и записали win1251 какие то покореженные данные как utf. Как бы мне их обратно выправить? dec := charmap.Windows1251.NewDecoder() newBody := make([]byte, len(str)*2) n, _, _ := dec.Transform(newBody, []byte(str), false) сделал только хуже
Konstantin
Ой, точнее в fileWriter наверное
Да, пробовал, не получается так
Anonymous
ребят, а кто-нибудь работал с IPFS?
Mikalai
Да, пробовал, не получается так
Имя файла в CreateFormFile в любом случае нужно
Mikalai
CreateFormField не прокатит, если я все правильно понял
Konstantin
То есть без сохранения файла на диск никак получается
Mikalai
Нет, почему
Mikalai
Оно же writer возвращает
Mikalai
Туда и копируешь из resp.Body
Konstantin
я выше написал. не тормози
результат тот же, что и ручками прочитать и записать.
Konstantin
Туда и копируешь из resp.Body
К сожалению все равно не пашет
Konstantin
Aleksandr
абстрактно
Aleksandr
у меня пашет
Мерль
ребят, а кто-нибудь работал с IPFS?
Я чуть-чуть игрался, а что?
Anonymous
Я чуть-чуть игрался, а что?
да посмотреть бы на то, что с ним вообще делают, а то не совсем понимаю как и что вот сделал я ipfs init через ipfs add положил файлик какой-нибудь запустил демона и что теперь? теперь я могу кому-нибудь дать хэш и он через ipfs cat сможет этот файлик получить?
Anonymous
По идее да
QmSXvG7iwveWQAiPR3pMPV3KGTS8omcyzD1qwBVU5PTJaP - вот эту штуку уже может получить любой?
Мерль
QmSXvG7iwveWQAiPR3pMPV3KGTS8omcyzD1qwBVU5PTJaP - вот эту штуку уже может получить любой?
Емнип, в некоторых клиентах нужно явно указывать
Chuvi
Bolt - key -> value SQLite - Реляционка.
Chuvi
Из болта ты получаешь данные по ключу и только их. Если нужны данные из нескольких ячеек, надо запрашивать их каждый раз. Из SQLite ты получаешь данные в результате SQL запроса. Данные могут собираться из разных ячеек в одном запросе. Это если очень кратко.
Anatoly
k/v vs relational, если кратко, остальное - длинно
Mike
Is sqlite faster than bolt?
Chuvi
Konstantin
Нормальная ли практика забацать переменную DEBUG и по коду раскидать if DEBUG { log.Println("Logloglog") }
Konstantin
Или есть варианты получше из коробки?
Daniel
лучше взять логгер с поддержкой уровней
Daniel
logrus или structlog
Daniel
я пользуюсь structlog
Constantine️
я пользуюсь structlog
что за структлог? найти не могу )
Konstantin
лучше взять логгер с поддержкой уровней
да тут утилитка пока на коленке, нужно просто в консоли следить что происходит, поэтому проще так пока.
Daniel
не проще
Konstantin
а зачем тогда спрашивал про практику? :)
Надеялся, что кто нибудь скажет, что в стандартном логере есть уровни)
Ivan
Надеялся, что кто нибудь скажет, что в стандартном логере есть уровни)
"в стандартном логгере есть уровни". Легче стало? :)
Konstantin
Да
Ivan
Да
рад помочь. Обращайся еще :)
Anonymous
QmSXvG7iwveWQAiPR3pMPV3KGTS8omcyzD1qwBVU5PTJaP - вот эту штуку уже может получить любой?
Если ты будешь держать демона запущенным, то любой. Сейчас не получается скачать. Видимо, ты остановил демон или удалил файл.
Oleksii
Для кросскомпиляции надо при билде добавлять env variables GOARCH и GOOS
Oleksii
Oleksii
Да
分解物質
если не стоят переменные окружения GOOS и GOARCH, то дефолт не текущюю платформу
Roman
т.е. я на маке могу собрать exe файлик?
Vladimir
Есть некоторые сложности с кросс сборкой того что трогает cgo
Roman
понял, спасибо
Slach
всем привет, а кто нибудь занимался sampling profiling в golang ?? кроме go-torch и pprof встроенного в бинарник. ничего такого нет??? можно ли обычный linux perf юзать с golang бинарниками?
Anonymous
я просто спал в это время еще
Теперь я проспал. Сейчас не качает, видать ты опять выключил.
Nikita
Всем здрасти, я хочу попробовать go, просто так. Сам я js фронт. Прохожу сейчас go tour. Сложные (невыполнимые) упражнения попадаются, есть место где можно посмотреть ответ? Сейчас попробовал фиббоначи решить, то тоже провал
Nikita
func fibonacci() func() int { var number = 0 return func() int { if number < 2 { result := number; number += 1; return result } result := (number - 1) + (number - 2) number += 1; return result; } }
Nikita
почему?
nikita
Nikita
Реализуйте функцию fibonacci, которая возвращает функцию (замыкание), которая возвращает последовательные числа Фибоначчи (0, 1, 1, 2, 3, 5, ...).
Oleg
Потому Фибоначчи не так считается
Oleg
Для вычисления следующего числа Фибоначчи надо знать два предыдущих
Nikita
ну мне там сложное условие какое-то поставили
Nikita
и у меня такое ощущение, что в го нельзя обращаться рекурсивно к функции
Nikita
const fib = (number) => { if (number < 2) { return number } return fib(number - 1) + fib(number - 2) } fib(10)
Nikita
ибо в js это норм заходит
Nikita
а точно, там же я должен уменьшать
Nikita
не, я хз как выполнить данную задачи не передавая в функцию число
Oleg
Фибоначчи можно вычислить не только рекурсивно. Го тут ни при чем :)
Nikita
ох
Nikita
ну тогда я не умею)
Nikita
я один способ узнал и все, упражнение на замыкание, я думал значит нужна рекурсия
Oleg
Напиши рекурсивно?)