@gogolang

Страница 231 из 1630
Олег
17.04.2017
17:53:50
Олег
17.04.2017
17:55:29
Ighar
17.04.2017
17:56:25
изврат=)
все как ты и любишь же, нет? :)

Konstantine
17.04.2017
18:02:34
Может у кого будут идеи как реализовать это иначе?) https://github.com/SolidlSnake/easyvk-go/blob/master/easyvk/account.go#L78 Функция getAppPerm

Google
Олег
17.04.2017
18:12:35
Как вариант: не нужно разбирать каждый бит в отдельное поле. Лучше положи битовую карту в отдельный тип (вроде type PermissionBits uint) и для каждого бита пропиши метод: func (b PermissionBits) Notify() bool { return b&notifyBit != 0 }

Или даже лучше, чтобы не множить методы: const ( PermNotify = 1 PermFriends = 2 ... ) func (b PermissionBits) Can(perm uint) bool { return b&perm != 0 }

Konstantine
17.04.2017
18:15:09
Да, это красиво будет, спасибо, но проблему кучи ифов не решает :(

Slava
17.04.2017
18:18:17
const notifyBit = 1 const friendsBit = 2 const photosBit = 4 const audioBit = 8 const videoBit = 16 const pagesBit = 128 const statusBit = 1024 const notesBit = 2048 const messagesBit = 4096 const wallBit = 8192 const adsBit = 32768 const offlineBit = 65536 const docsBit = 131072 const groupsBit = 262144 const notificationsBit = 524288 const statsBit = 1048576 const emailBit = 4194304 const marketBit = 134217728

кажется тут красивее будет не в десятичной системе

я бы смещениями сделал к примеру

Konstantine
17.04.2017
18:20:20
кажется тут красивее будет не в десятичной системе
А каким образом это реализуется? Можно как-то задать двоичное число?

Slava
17.04.2017
18:25:02
https://play.golang.org/p/rn_2NIEYm2

как-то так

Олег
17.04.2017
18:30:36
https://play.golang.org/p/rn_2NIEYm2
Если это битовая карта от внешнего API, то использовать йоту небезопасно имхо

Slava
17.04.2017
18:31:27
не используй, смещай как захочешь

Monday Begins on Saturday
17.04.2017
20:13:51
Этический вопрос. Я взял у чувака библиотеку с MIT лицензией. Переписал её под себя. Лицензия тоже MIT. Мне надо ссылаться на этого чувака?

Google
Мерлин
17.04.2017
20:40:17
Построчный разбор лицензии MIT / Хабрахабр https://m.habrahabr.ru/post/310976/

Aleksandr
17.04.2017
20:42:13
коллеги, читаю json, в структуре поле float64, из json значение 20.0 корректно анмаршаллится во float64, но при маршаллинге записывается как 20, что не хочет читать клиентская софтина - ругается что инт пихаю вместо флоата. Есть мысли кроме регуляркой менять реплейсить (это уже пройденный этап)?

Олег
17.04.2017
20:46:57
Может быть, реализовать json.Marshaler на типе поверх флоата?

Aleksandr
17.04.2017
20:57:44
Max
17.04.2017
21:26:02
как зафорсировать gorm делать hard delete когда используешь gorm.Model ?

hamper ?
17.04.2017
21:28:52
WTFPL — самая нормальная лицензия.

Konstantine
17.04.2017
22:38:12
При использовании iota нельзя использовать сторонние функции? Мне вот надо сделать степени двойки, math.Pow не пускают, говорят экстримизм

Slava
17.04.2017
22:40:53
константные выражения вычисляются при компиляции

нельзя использовать runtime функции

Konstantine
17.04.2017
22:41:53
И оператора возведения в степень, конечно же, нет. Один питон няшка, блин)

Konstantine
17.04.2017
22:50:43
1 « iota
да, тут в другом чатике подсказали) все равно спасибо)

Sergey
17.04.2017
22:50:51
@SolidlSnake вот же сразу ответили

А каким образом это реализуется? Можно как-то задать двоичное число?

https://play.golang.org/p/rn_2NIEYm2

Konstantine
17.04.2017
22:51:28
@SolidlSnake вот же сразу ответили
Я на тот момент не знал, что такое iota, думал речь о ней и просто как пример привели)

Sergey
17.04.2017
22:53:02
Ок, плюс в доках и блоге golang подробно объясняют с примерами

Slava
17.04.2017
23:16:54
=) << это информатика 5 класс

Konstantine
17.04.2017
23:20:10
=) << это информатика 5 класс
Классно, не помню точно была ли у нас в 5 классе информатика, но если и была, то дальше пайнта мы не выбирались :)

Google
Slava
17.04.2017
23:22:02
обычно на первых уроках проходят двоичную систему и сдвиги битовые

по крайне мере у нас так было

Кто-нибудь поедет на gophercon в этом году?

Konstantine
17.04.2017
23:38:52
обычно на первых уроках проходят двоичную систему и сдвиги битовые
Самое сильное, что у нас было это основы верстки)

Max
18.04.2017
03:28:42
как зафорсировать gorm делать hard delete когда используешь gorm.Model ?

scmp
18.04.2017
06:22:48
hi all

Ok

Мерлин
18.04.2017
06:26:51
Go: многопоточная запись в файл CSV Иногда при разработке приложений на Go бывает необходимость записи в файл CSV из нескольких горутин, при этом встроенный CSV Writer непотокобезопасен. ... https://tehnojam.pro/category/development/go-mnogopotochnaja-zapis-v-fajl-csv.html

Vladislav
18.04.2017
09:40:26
Какое-то совсем неэлегантное решение.

Мерлин
18.04.2017
09:40:29
Но вообще адок какой-то, имхо

Vladislav
18.04.2017
09:43:16
В принципе есть и другие варианты. Например, сделать актор, который только записывает байтики в файл. И принимать их через канал. Будет ли оно лучше работать неясно.

Коллега говорит, что так все же лучше, чем мьютексы.

Daniel
18.04.2017
10:07:01
так идеоматичнее

но однозначно медленнее

(потому, что в канале больше одного мутекса)

Roman
18.04.2017
11:16:16
Вообще не будет медленнее

Google
Roman
18.04.2017
11:17:31
Просто потому, что это запись в файл

ainu
18.04.2017
11:21:58
Смотрите. У меня есть некая самописная база данных в памяти. С индексом. Несколько мап. Диск есть, но в качестве скажем так, бекапа. Индекс не на диске, данные в памяти и диске, при чтении диск не используется, только при записи и при старте. Клиенты могут делать в неё запись. Пересчет индекса быстрый, но не мгновенный. Вариант первый - клиент ставит мьютекс, записывает, разлочивает. Вариант второй - клиент в channel записывает что хочет записать, отдельна горутина слушает его и перестраивает индекс. Внимание вопрос - что быстрее?

Daniel
18.04.2017
11:22:04
Просто потому, что это запись в файл
а это от потока и буферизации зависит

ainu
18.04.2017
11:29:27
Клиент итак не будет ждать. Клиент получит мгновенно "ок, сделаем". дальше запускается горутина котора делает мьютекс или пишет задание в channel.

Но идея с одним потоком для записи хороша и понятна

ainu
18.04.2017
11:31:03
Ну такая идея. В случае ошибки записи клиент в дураках, да.

Dmitriy
18.04.2017
11:31:09
Если памяти много, можно поддерживать реплику основной бд, которая и будет лочиться при дампе на диск, а основная всегда работать в штатном режиме

ainu
18.04.2017
11:31:11
Ничего страшного в моем случае.

дамп на диск тоже не страшно. Его можно не сразу а раз в пять минут например.

Самое главное индекс пересчитать.

А индекс использует мапы, а в мапы параллельно писать нельзя

Ок, допустим клиент получает отмашку "{status: 'OK'}". Вопрос что быстрее - мьютексы или чанел

Ivahaev
18.04.2017
11:34:08
В канале внутри мутекс. Вывод напрашивается сам.

Daniel
18.04.2017
11:34:13
два

но - канал бывает буферизованный

Google
ainu
18.04.2017
11:34:25
два
хех. Вопросов больше не имею.

Roman
18.04.2017
11:34:42
Тут очень много случаев race condition может быть. Данные записались не в том порядке или что то не так пошло. Думаю, не зря in-memory DB часто однопоточны

Daniel
18.04.2017
11:34:49
так что в реальности буферизованный канал может оказаться быстрее

ainu
18.04.2017
11:34:55
но - канал бывает буферизованный
если буфер лимитированный то я могу не париться и массив сделать и в него писать. и отдельно разгребать.

Ivahaev
18.04.2017
11:35:14
Канал, в добавок, нагляднее будет.

Daniel
18.04.2017
11:35:21
но это как раз и будет буферизованный канал, по факту

ainu
18.04.2017
11:36:30
еще вопрос. после того как начал писать в map и до того как закончил писать в map - читать из него безопасно? для читателей надо делать лок пока не запишут?

Daniel
18.04.2017
11:53:22
надо делать лок

поэтому надо пользовать rwmutex

Kirill
18.04.2017
12:08:59
https://github.com/avelino/awesome-go/pull/1371/files#diff-04c6e90faac2675aa89e2176d2eec7d8R815

поэтому надо пользовать rwmutex
но он, грубо говоря, блочит мир.

Daniel
18.04.2017
12:29:18
что ты имеешь в виду?

Kirill
18.04.2017
12:30:12
https://github.com/golang/go/issues/17973

Anton
18.04.2017
13:42:23
добрый день. Есть такая задачка. Нужно накалякать rest server. Есть кучка сущностей, которые могут возвращаться в ответах. Само тело ответа состоит из {metadata: {...}, response: {......}} В зависимости от запроса нужно подменять в поле response данные на эти сущности. Как сие заделать есть идеи? куды копать? желательно пользовать echo

Страница 231 из 1630