Nazar
И как лучше всего запускать под продакшен build и init.d скрипт?
Anonymous
systemd?
Danila
Есть ли удобная библиотека для форматирования строк в Go?
Alexander
strings?
Danila
Не
Danila
Я про форматирование, как в python 3/3.6
Danila
My name is {}. I'm {} years old
Danila
Без %s, %d и прочего
Alexander
fmt.Sprintf(«my name is %v», smth)
Ivahaev
Так просто другой синтаксис
Anonymous
My name is {}. I'm {} years old
{} заменяешь на %v - эффект тот же.
Ivahaev
Есть еще text/template
Danila
Есть еще text/template
https://github.com/hahnicity/go-stringit
Danila
Что-то вроде этого
Anonymous
https://github.com/hahnicity/go-stringit
На что люди готовы, чтобы не писать %v вместо любимого {}.
heavycharged
ради любимого {} можно и на Rust уйти.
Антон
https://github.com/hahnicity/go-stringit
> The following types are supported: ... lol no generics
Алексей
добрый вечер
Алексей
ребят мне надо преобразовать из png в jpeg я это сделал!но мне надо с инверсией цвета!package main import ( "image" "image/color" "image/draw" "image/jpeg" "image/png" "log" "os" ) func main() { backgroundColor := color.RGBA{0x7f, 0x00, 0x00, 0xff} srcFile, err := os.Open("download.png") if err != nil { log.Fatal(err) } defer srcFile.Close() src, err := png.Decode(srcFile) if err != nil { log.Fatal(err) } dst := image.NewRGBA(src.Bounds()) draw.Draw(dst, dst.Bounds(), image.NewUniform(backgroundColor), image.Point{}, draw.Src) draw.Draw(dst, dst.Bounds(), src, src.Bounds().Min, draw.Over) dstFile, err := os.Create("out.jpeg") if err != nil { log.Fatal(err) } defer dstFile.Close() err = jpeg.Encode(dstFile, dst, nil) if err != nil { log.Fatal(err) } }
Anonymous
Друзья подскажите как можно проверить входит ли число в диапазон от b5475eb5820f83cc0fcabc87cc1f1a227faae7e0f0ee788a1fbf694f0f687a52 до b5475eb5820f83cc0fcabc87cc1f1a227faae7e0f0ee788a1fbf694f0f900000
Michail
привет а есть телеграм-чат по Docker / Kubernetes ?
Anton
есть
Anton
https://github.com/goq/telegram-list
Anton
Dmitry
а много счас проектов на голанге в россии? и какого плана ( бэкенд)? есть у когонить статистика? или голанг в россии остается хобби-языком пока еще а не промышленным ?
Anonymous
Anonymous
А не будет переполнения какого-то?)
Anonymous
Там 2^256
Дмитрий
А не будет переполнения какого-то?)
имхо проще всего посимвольно
Anonymous
Ааа, ну я не мерял линейкой ))
Dmitry
можно Bigint использовать пакет
Anonymous
Принял, спасибо
Антон
можно Bigint использовать пакет
Но не нужно, если стоит задача просто два числа сравнить
Anonymous
Я думал есть какой-то хитрый побайтовый сдвиг или типа того)
Dmitry
Но не нужно, если стоит задача просто два числа сравнить
особено просто если эти числа не помещаются в int64 . изи.
Anonymous
У меня есть от 0 до 2^256 значения и нужно фрагменты из этого диапазона доставать, так чтобы они были уникальны, и доставать в случайном порядке.
Dmitry
guid изобрел ?
Anonymous
Типа майнингового пула
Daniel
а?!
Dmitry
У меня есть от 0 до 2^256 значения и нужно фрагменты из этого диапазона доставать, так чтобы они были уникальны, и доставать в случайном порядке.
есть еще один вариант - сделать свой класс с 4 -мя int64 внутри и пользоваться обычными операциями.
Anonymous
Ну как вариант кстати
Anonymous
Спасибо)
Michail
подскажите если app на базе Gin + MongoDb - какой то готовый базовый контейнер есть ?
Danila
Как можно записать переменную (шаблон, содержащий переносы строк, ренедрится с помощью pongo2) в файл?
Danila
Т.е. предварительно создать файл и потом записать туда содержимое
heavycharged
или https://golang.org/pkg/io/ioutil/#WriteFile
Anonymous
Да куда не плюнь, все уже пишут на го
Эээ, все проекты на Go уже заплевали!
Pawel
Эээ, все проекты на Go уже заплевали!
оплёвывать - это компеНсация собственной неполноценности по фрейду
Danila
func PullFile(string locpath, string contpath) {} почему-то не удаётся задать 2 строковых аргумента для функции
Pawel
Эээ, все проекты на Go уже заплевали!
Вот тут хорошо объясняется, почему любители всяческих динамических опередений подняли головы и набрасывают на Go: http://npf.io/2014/10/why-everyone-hates-go/
Danila
func PullFile(locpath string, contpath string) вот так получилось
Anonymous
Вот тут хорошо объясняется, почему любители всяческих динамических опередений подняли головы и набрасывают на Go: http://npf.io/2014/10/why-everyone-hates-go/
И почему же? Он вроде бы сказал хейтерс гонна хейт и всё. Ну да, много людей его используют, вот только получается неповоротливый треш, либо нетипизированная неотлаживаемая сгенеренная каша
Nurzhan
func PullFile(locpath string, contpath string) вот так получилось
Можно вообще: func PullFile(locpath, contpath string)
Pawel
И почему же? Он вроде бы сказал хейтерс гонна хейт и всё. Ну да, много людей его используют, вот только получается неповоротливый треш, либо нетипизированная неотлаживаемая сгенеренная каша
потому что на Го взял и сделал, а хейтерам надо осилить теорию категорий, sbt или ещё какую бесмысленнную хрень, чтобы только хелуворд написать полчается то что получается. нечего на зеркало пенять коли рожа крива
Мерль
Вот вы все ржёте над @bertolu4i, а ведь он из тех, кто может захватить Польшу, устроить трудовые лагеря для не-гоферов (interface{} махт фрай) Голанг убер алес и так далее
Altay unstppbl
:D
Pawel
так уже устроил локально, чехословакия в планах есть
Alexander
В Польшу в основном жабистов гребут. Люксофт для всевозможных банков, переписывать индусские поделия. Видимо программисты из России обошли индусов по цена/качество
Alexander
Или просто по цене :D
Anonymous
Ребят, стоил ли читать «Go на практике», если уже прочитал «язык программирования go» керниган?
Pawel
смотря как читал. такие книги читать сто ́ит не только лишь всем
heavycharged
господа, а если у нас есть структура а в ней слайс, может ли так произойти, что в методе этой структуры с не ссылочным ресивером, мы аппендим в слайс, а оттуда откуда вызвали метод, получаем пустой слайс.. Пример такой: type Values struct { values []value } func (v Values) Load() error { for _, value := range source { // псевдокод v.values = append(v.values, value) } return nil } func (v Values) Get() []value { return v.values; } ... vals := NewValues() // конструктор с инициализацией слайса vals.Load() vals.Get() // тут получаю пустой слайс... :[
Васильев Виктор
func (v Values) Load() error { for _, value := range source { // псевдокод v.values = append(v.values, value) } return nil }
Васильев Виктор
не по ссылке передаешь а по значению
Васильев Виктор
ты копии добавляешь
Васильев Виктор
а не тому объекту которому хочешь
Васильев Виктор
нужно func (v * Values)
Васильев Виктор
func (v Values) Отдаст тебе копию твоего объекта. Это нужно делать когда ты НЕ меняешь данные
heavycharged
все, понял, спасибо. Почему-то нельзя паравозы строить если ресивер ссылочный.
heavycharged
это ок cities = cities.Limit(50) err := cities.SearchByName(city) а это - не ок err := cities.Limit(50).SearchByName(city)
heavycharged
хотя в лимит возвращается не указатель, а именно значение.