
Den
11.12.2017
18:55:15
а, ну ок, спасибо

Dmitry
11.12.2017
21:05:32
Ищем толкового backend-разработчика на GO (GoLang).
З/П почасовая: от $15/час (по результатам испыт.срока - 1 мес).
Обязанности:
• разработка бэкенда для мобильного приложения (мессенджер), поддержка и расширение функционала
• написание тестов на свой код, оперативное исправление багов, составление документации на API
• оптимизация производительности системы
Требования и условия:
• у вас есть портфолио и резюме
• у вас НИЗКАЯ ЗАГРУЖЕННОСТЬ на основной работе или по другим проектам, для нас критично все делать быстро
• у вас продолжительный опыт программирования на различных языках от 3 лет, на Go от 1 года
• ОБЯЗАТЕЛЬНО работа не менее 2-3 часов в день - 20 часов в неделю
• умение ставить задачи "на себя", самостоятельность
• понимание серверной архитектуры, работа с кэшем, очередями, сокетами, Redis, докер, Posrgres
• взаимодействие с удаленными сотрудниками через Slack, Telegram и Bitbucket
Пишите в личку!


Slayer
12.12.2017
07:19:09
&BaseStruct{ DB: db,} подскажите, что за конструкция такая? Полю DB структуры базы, присваивается значение db?

Vladimir
12.12.2017
07:19:26

Google

Slayer
12.12.2017
07:20:06
спасибо

Lucky
12.12.2017
13:35:20
r.Header.Get("Some")
Подскажите, как отловить ошибку если Some не задан при отправке?

Александр
12.12.2017
13:36:05
проверить на ""?
там внутри пустая строка или значение

Lucky
12.12.2017
13:38:30
да я и так проверяю, но сервер выдаёт панику
Сейчас скрин дам
Паника на строке с ифом, да

Aleksandr
12.12.2017
13:48:02
ругается что?
я не вижу такой ошибки в коде go

Lucky
12.12.2017
13:48:33
panic: inconsistent label cardinality

Aleksandr
12.12.2017
13:49:12
я не вижу такой ошибки в коде go

Google

Aleksandr
12.12.2017
13:50:04
но она гуглится в контексте с прометеусом

Александр
12.12.2017
13:50:14
да там прометеус что-то чудит

Lucky
12.12.2017
13:50:17
Велп, да.

Vany
12.12.2017
17:58:40
type ⦃⦄ map[string]interface{}
type 〚〛 []interface{}
json.Marshal(⦃⦄{
"f1":〚〛[1,2,3]
})
?

Alex
12.12.2017
18:26:22
Товарищи, подскажите либу для генерации XLSX файлов? А то тут покдлючили одну, а она 2 гига жрет оперативы на генерацию файла в 2500 строчек и 100 столбцов (* 10 страниц). Или это норма?

Lev
12.12.2017
18:28:27
https://cs5.pikabu.ru/images/previews_comm/2015-11_1/144674206415989250.jpg

Andrew
12.12.2017
18:40:47
https://github.com/tealeg/xlsx
это использовал для генерации, но отчеты сами по себе небольшие были @JWo1F

m2k
12.12.2017
18:41:06
эй
Юз кейс такой: есть игровой сервер, который жжет мейн луп со скоростью 20 тиков в секунду. Задача минимизировать случайные всплески от гц/хуй пойми чего
поняли о чём я?
надеялся что вы поймёте собрата

Alex
12.12.2017
18:49:08
Ой, посчитал, у меня 4000000 ячеек суммарно. Это если по 512 байт выделить на ячейку, то получается 1.9ГБ :)
Видимо, это норма.

ultranoise ?
12.12.2017
18:53:19
тик это 1 шаг процессорного времени вы чоо
или это я уже путаюсь?

asterisk
12.12.2017
19:09:23
да

m2k
12.12.2017
19:38:10
20 тиков/сек – так много для Go, что надо срочно профилирование делать?

Hexwell
12.12.2017
19:41:22

Nikolay
12.12.2017
20:39:54
Уже есть juju

Google

yuriy
13.12.2017
01:59:03

Andrew
13.12.2017
05:23:54

Alexander
13.12.2017
05:47:37

Andrew
13.12.2017
05:49:19

Alexander
13.12.2017
05:49:39
потом запаковать обратно и сохранить

Andrew
13.12.2017
05:50:36
ну тут смысл чтобы памяти меньше жрало, поэтому в память распаковывать не поможет

Alexander
13.12.2017
05:51:05
все равно через память распаковка (минимальный буфер все равно будет)

Alex
13.12.2017
07:47:54
Ну у меня файл на выходе 10мб макс. Так что его в память распаковать можно. Если это поможет избавиться от пожирания 2ГБ оперативы, то это круто. Только один момент - раскурить, как этот XLSX работает - тяжко. А чтобы он работал во всем зоопарке офисов еще тяжелее.

Alexander
13.12.2017
08:01:14

Alex
13.12.2017
08:03:05
А еще, как понимаю, придется отказаться от анмаршала XML и писать все ручками. Ибо он тоже память жрет будь здоров.

Alexander
13.12.2017
08:05:10

Alexander
13.12.2017
08:05:54
но есть нюанс по xml, goне может генерить то что хочет видеть ms office
там теги с :
проше либу сишную заюзать)
с всем необходимым

Alex
13.12.2017
08:16:17
лол
можно анмаршал сразу в io.Writer
не, мне нельзя вообще в памяти держать всю структуру. Хотел для каждой ячейки просто дописывать что-то в файл, который в оперативе. Без разноса по структурам и типам.

Alexander
13.12.2017
08:18:55

Alex
13.12.2017
08:19:29
но это изврат какой-то :)
легче оперативы докупить ?

Google

ultranoise ?
13.12.2017
09:14:37
господа а есть чат для новичков?

Alexey
13.12.2017
09:19:57

ultranoise ?
13.12.2017
09:20:25
)))
мне нужно struct из байтов, [байтов] и уинтов записать в байтстринг
{ 0 0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00}
вот эту хрень в байтстринг

Admin
ERROR: S client not available

Alexey
13.12.2017
09:20:55
В крайнем случае в golang tour пошлют:)

ultranoise ?
13.12.2017
09:21:09
какой модуль мне покурить?

Alexey
13.12.2017
09:21:22

ultranoise ?
13.12.2017
09:21:34
чтобы было \0x00\0x01и тд — такого рода запись

Alexey
13.12.2017
09:21:50
fmt ещё

ultranoise ?
13.12.2017
09:22:06
fmt с такими аргументами посылает подальше)
мне кажется я вообще пока сильно не вкуриваю в то как в голанге устроены структуры данных
что все очень просто должно быть, а я тупо не шарю

Alexey
13.12.2017
09:25:30
Ну всю структуру никак не сделать так. Надо каждый элемент её по очереди так записывать. А потом сложить всё.
А вообще, зачем такое могло понадобиться?

ultranoise ?
13.12.2017
09:31:26
каждая структура это имплементация бинарного протокола, записываем туда значение каждого поля и потом посылаем на удаленный сокет
удаленный сокет ждет строчку с байтами, разбирает ее по-своему, по своим слайсам

Alexey
13.12.2017
09:35:24
А удаленный сокет нельзя поправить?) Слать строки с номерами байтов немножко странно.

ultranoise ?
13.12.2017
09:35:32
увы, низя
нужно именно что сделать строчку байт и поэскейпать ее чтобы \0x нотация соблюдалась

Google

Alexey
13.12.2017
09:39:35

ultranoise ?
13.12.2017
09:41:06
type myFancyProto struct {
HD byte
TL byte
DATA uint8
}
допустим значения: 0, 1, 15

Alexey
13.12.2017
09:42:30
Т.е. "\0x00\0x01\0x15" ?
А если слайс байтов, то как его длину указывать?)

ultranoise ?
13.12.2017
09:45:50
не, на той стороне уже не мой код и я соблюдаю спецификацию
а как там реализовано —- хз, мож там вообще даже на другом языке все
но наверное форматирование с "0x" не выход :D

?
13.12.2017
09:49:40
Language Health- Programming language health over time
https://www.languagehealth.com/#Go,Java,PHP,Python

Alexey
13.12.2017
09:58:41

ultranoise ?
13.12.2017
09:58:54
ну, попробую)
я чет боюсь что щас когда напихаю живых данных ебнеца все
ну там тогда и разговор другой будет)

Subbotin
13.12.2017
10:08:53
это называется сериализация. пишешь сериализатор.
func (data *DataS1) Marshal() []byte {
var b = make([]byte, DataS1Length)
binary.BigEndian.PutUint64(b[:8], data.ID)
}
ну одиночные байты можно пихать через b[номер байта] = data.TL

ultranoise ?
13.12.2017
10:27:42
думал об этом кстати
спасибо