Nazar
И как лучше всего запускать под продакшен build и init.d скрипт?
Anonymous
systemd?
Danila
Есть ли удобная библиотека для форматирования строк в Go?
Alexander
strings?
Danila
Не
Anonymous
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
Так просто другой синтаксис
Ivahaev
Есть еще text/template
Danila
Что-то вроде этого
heavycharged
ради любимого {} можно и на Rust уйти.
Алексей
добрый вечер
Алексей
ребят мне надо преобразовать из 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
Anonymous
Дмитрий
Dmitry
а много счас проектов на голанге в россии? и какого плана ( бэкенд)? есть у когонить статистика? или голанг в россии остается хобби-языком пока еще а не промышленным ?
Anonymous
Anonymous
Anonymous
А не будет переполнения какого-то?)
Anonymous
Там 2^256
Дмитрий
Дмитрий
Anonymous
Ааа, ну я не мерял линейкой ))
Dmitry
можно Bigint использовать пакет
Anonymous
Принял, спасибо
Anonymous
Я думал есть какой-то хитрый побайтовый сдвиг или типа того)
Anonymous
У меня есть от 0 до 2^256 значения и нужно фрагменты из этого диапазона доставать, так чтобы они были уникальны, и доставать в случайном порядке.
Dmitry
guid изобрел ?
Anonymous
Типа майнингового пула
Daniel
а?!
Dmitry
Anonymous
Ну как вариант кстати
Anonymous
Спасибо)
Michail
подскажите если app на базе Gin + MongoDb - какой то готовый базовый контейнер есть ?
Danila
Как можно записать переменную (шаблон, содержащий переносы строк, ренедрится с помощью pongo2) в файл?
Danila
Т.е. предварительно создать файл и потом записать туда содержимое
Anonymous
heavycharged
или https://golang.org/pkg/io/ioutil/#WriteFile
Slava
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)
вот так получилось
Nurzhan
Мерль
Вот вы все ржёте над @bertolu4i, а ведь он из тех, кто может захватить Польшу, устроить трудовые лагеря для не-гоферов (interface{} махт фрай)
Голанг убер алес и так далее
Altay unstppbl
:D
Pawel
так уже устроил локально, чехословакия в планах есть
Alexander
В Польшу в основном жабистов гребут. Люксофт для всевозможных банков, переписывать индусские поделия. Видимо программисты из России обошли индусов по цена/качество
Alexander
Или просто по цене :D
Roman
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)
Отдаст тебе копию твоего объекта. Это нужно делать когда ты НЕ меняешь данные
hypnopumpia
heavycharged
все, понял, спасибо. Почему-то нельзя паравозы строить если ресивер ссылочный.
heavycharged
это ок
cities = cities.Limit(50)
err := cities.SearchByName(city)
а это - не ок
err := cities.Limit(50).SearchByName(city)
heavycharged
хотя в лимит возвращается не указатель, а именно значение.