
Alexander
21.06.2018
08:49:28
не известно, но думаю легко сделать PR и "отрефакторить"
func appendBulkString(buf []byte, s string) []byte {
buf = append(buf, '$')
buf = append(buf, strconv.FormatInt(int64(len(s)), 10)...)
buf = append(buf, '\r', '\n')
buf = append(buf, s...)
buf = append(buf, '\r', '\n')
return buf
}
// writeSetTo writes an item as a single SET record to the a bufio Writer.
func (dbi *dbItem) writeSetTo(buf []byte) []byte {
if dbi.opts != nil && dbi.opts.ex {
ex := dbi.opts.exat.Sub(time.Now()) / time.Second
buf = appendArray(buf, 5)
buf = appendBulkString(buf, "set")
buf = appendBulkString(buf, dbi.key)
buf = appendBulkString(buf, dbi.val)
buf = appendBulkString(buf, "ex")
buf = appendBulkString(buf, strconv.FormatUint(uint64(ex), 10))
} else {
buf = appendArray(buf, 3)
buf = appendBulkString(buf, "set")
buf = appendBulkString(buf, dbi.key)
buf = appendBulkString(buf, dbi.val)
}
return buf
}
чет большая порятнка получилась, соре


Vadim
21.06.2018
08:57:41
А что у бунта по скорости записи, ибо b деревья, как я слышал не очень быстрые.

Alexander
21.06.2018
08:59:18
хранится я понял просто WAL, поэтому супербыстро

Google

Alexander
21.06.2018
08:59:23
просто append в конец

Andrey
21.06.2018
09:19:09
Всем привет! Кто-нибудь нарезал mp3 через go? Именно средствами языка/библиотеки) через ffmpeg умею)

Vladimir
21.06.2018
09:34:49
Присоеденяюсь к вопросу

Kirill
21.06.2018
09:38:22
Ты кому? :)

Petr
21.06.2018
09:38:31
уже никому )

Jack
21.06.2018
09:38:40
опять эти горутины не дают мне покоя

Petr
21.06.2018
09:38:41
тоже удалю )

Kirill
21.06.2018
09:39:17
Призрачные горутины)

Jack
21.06.2018
09:39:57
хотя нет, не они, смтп кривой
net/smtp.(*Client).Close(0x0, 0x621ee0, 0xc4202f1b30)
/usr/lib/go-1.10/src/net/smtp/smtp.go:76 +0x22
github.com/badoux/checkmail.ValidateHost(0xc4203782a0, 0x15, 0x6223e0, 0xc42037a1d0)
/home/iwex/GO/src/github.com/badoux/checkmail/checkmail.go:57 +0x441
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x0 pc=0x582792]
как такое можно отсеять без паники? рекавер?

Roman
21.06.2018
09:41:07
https://go101.org/article/unsafe.html

Google

Jack
21.06.2018
09:42:29
либа то не моя

Kirill
21.06.2018
09:43:46

Jack
21.06.2018
09:44:35
во во

Maksim (Ellrion)
21.06.2018
09:48:36
а пока форк сделай и юзай его

Roman
21.06.2018
09:50:40

Kirill
21.06.2018
09:51:43

Roman
21.06.2018
09:52:25

Alexey
21.06.2018
09:55:00
Всем привет! На конференции не всем хватило сувениров, но теперь это поправимо! ?
Милейшие плюшевые гоферы и фирменные футболки ждут своих хозяев вот тут: http://gopher-stuff.tilda.ws

Jack
21.06.2018
09:55:19
:D map[string]<T>

Kirill
21.06.2018
10:04:22
map[interface{}]interface{}

Roman
21.06.2018
10:05:26

Alexander
21.06.2018
10:06:24

Виктор
21.06.2018
10:07:20
Я сделанного вручную гофера купил за 1700 с доставкой
а тут 2300

Иван
21.06.2018
10:10:05
Да прифигели совсем такие цены устанавливать

Zae
21.06.2018
10:10:42
1800 за майку

Google

Alexey
21.06.2018
10:11:43
Выступающим на митапах в Москве – бесплатно!

Виктор
21.06.2018
10:12:08
Принт на майке можно купить рублей за 900 вместе с майкой о_о
А в некоторых местах и дешевле

Alexey
21.06.2018
10:13:03
Можно. Покупайте ? Но кто-то предпочтёт купить время
А мы собираем на следующий GopherCon

Kirill
21.06.2018
10:14:55

Виктор
21.06.2018
10:15:03
Да не сказал бы
Уже покупал и все хорошо

Kirill
21.06.2018
10:15:40
А дороже покупал для сравнения?

Виктор
21.06.2018
10:15:44
Естественно

Zae
21.06.2018
10:15:59

Виктор
21.06.2018
10:16:28
Моя самая дорогая майка за 3к. Да не дорого но просто не видел смысла покупать дороже

Виктор
21.06.2018
10:16:54
Я не против сбора денег на другой кон
он был шикарен
но эт чет странное

Alexey
21.06.2018
10:17:59
Время на поиск дизайна, ткани, места, заказа и доставки.

Alexander
21.06.2018
10:18:57
? да хорош, парни, это называется мерч. когда вы покупаете не просто какую-то вещь, а вещь в поддержку кого-то. нормальное явление, что она продается дороже себестоимости

Alexey
21.06.2018
10:19:37
Оно, конечно, дороже себестоимости, потому что мы компенсируем _своё_ время ?

Виктор
21.06.2018
10:21:02
Ну эм...не знаю чейчас полно сервисов котоыре делают все вышесказанное за тебя

Google

Виктор
21.06.2018
10:21:28
а вот эти картинки на дизайне на сколкьо я помню в открытом доступе. Или я не прав?
В общем у меня претензий нет на счет сбора средств\
я толкьо за
просто как то слишком много получилось. Можно было снизить цену и взять количеством

Alexey
21.06.2018
10:21:59
Ты не прав. Эти дизайны мы не выкладывали для всеобщего пользования

Admin
ERROR: S client not available

Alexey
21.06.2018
10:22:55
Мы и так взяли большим количеством. Это то, что осталось от второй партии

Виктор
21.06.2018
10:23:05
Хорошо я не прав. Конкретно этот дизайн не найти

Alexandr
21.06.2018
10:41:37
коллеги, подскажите, как правильнее всего - всмысле, эффективнее-выстрее сделать инсерт в mysql файла с огромным количеством даных?
Мой запрос для импорта одной строки таков:
INSERT t1 (с1, с2, с3, с4, с5) values (?,?,?,?,?) on duplicate key upс1 с4 = с4 + values(с4), с5 = с5 + values(с5);
сейчас я делаю просто построчный импорт циклом. Медленно выходит.

Alexey
21.06.2018
10:42:16
https://dev.mysql.com/doc/refman/5.7/en/load-data.html
https://github.com/go-sql-driver/mysql#load-data-local-infile-support

Илья
21.06.2018
10:44:13
перконовские?

Alexey
21.06.2018
10:44:41
Нет, это не мы контрибьютили

Alexandr
21.06.2018
10:49:02
https://github.com/go-sql-driver/mysql#load-data-local-infile-support
дык я вроде так и делаю.
db, _ = sql.Open("mysql", "root:123@/test")
stmtIns, _ = db.Prepare("INSERT t1 (с1, с2, с3, с4, с5) values (?,?,?,?,?) on duplicate key upс1 с4 = с4 + values(с4), с5 = с5 + values(с5);")
а потом читаю циклом файл построчно и делаю
stmtIns.Exec(c1,c2,c3,c4,c5)

Alexey
21.06.2018
10:49:43
Эта ссылка на конкретный раздел LOAD DATA LOCAL INFILE
А предыдущая описывает что это

Alexandr
21.06.2018
10:50:51
ааа.. вот оно как.. я не то делаю.

Jentry
21.06.2018
10:50:52
дык я вроде так и делаю.
db, _ = sql.Open("mysql", "root:123@/test")
stmtIns, _ = db.Prepare("INSERT t1 (с1, с2, с3, с4, с5) values (?,?,?,?,?) on duplicate key upс1 с4 = с4 + values(с4), с5 = с5 + values(с5);")
а потом читаю циклом файл построчно и делаю
stmtIns.Exec(c1,c2,c3,c4,c5)
как минимум нужно batch, если это нужно в приложении постоянно, а так файлом как предлагают, если единоразово

Vadim
21.06.2018
11:58:56
Я тоже самое сделал после 10 минут в go flood.

Google

Vadim
21.06.2018
12:04:20
Там начали говорить про хрыча, а потом начали гробить какого-то человека. Мне не понравилось.
Может быть я зашёл не в тот чат.

Petr
21.06.2018
12:05:14
Какого? Или тебе Хрыч не понравился? )

Michael
21.06.2018
12:06:31
и правда какого лешего об этом тут

GoodMoodDealler
21.06.2018
12:10:02
Можете пожалуйста объяснить разницу между
x := structName{} и x := &structName{}
Я понимаю что такое указатели и как они работают

Petr
21.06.2018
12:10:58
Это в туториале есть

GoodMoodDealler
21.06.2018
12:11:04
Меня интересует в каких случаях может быть нужен 1й вариант

Petr
21.06.2018
12:11:05
с примером

GoodMoodDealler
21.06.2018
12:11:33
Почему мы не можем всегда ссылаться на адрес структуры
с примером
Я возможно невнимательно смотрел, это в указателях?

Jentry
21.06.2018
12:12:29

GoodMoodDealler
21.06.2018
12:13:17

Jentry
21.06.2018
12:13:35
стек работает быстрее кучи

GoodMoodDealler
21.06.2018
12:14:06