
corpix
29.04.2017
21:48:48
Уууу, прикольно, джаббер fs)))

LexsZero
29.04.2017
21:48:55
https://github.com/lexszero/hatexmpp2/blob/master/config.go#L8-L19 - вот тут просто включаем в структурку srv.File и она автомагически экспортится одной строчкой с геттерами-сеттерами для всех полей
там каша правда и надо бы это вынести в отдельную либу, но мне лень :]
и помимо srv.File есть другие типы, например файл реализующий блокирующийся буфер для истории, что-то вроде вебсокета на уровне файловой системы.

Google

corpix
29.04.2017
22:00:31
Интересная концепция. Довольно гибко кмк

LexsZero
29.04.2017
22:39:46
можно сделать например generic-пуши
я вообще мечтаю минимизировать необходимость думать о чем-то помимо задания модели в терминах предметной области, чтоб вся служебная ерунда типа апишек генерилась из модели

Sergey
30.04.2017
00:17:53
Но это походу не про го

corpix
30.04.2017
00:23:37
Ну почему? Рефлексия конечно воняет дичайше, но с её помощью можно многое делать. Даже такие декларативные штуки для описания бизнес логики, в этом месте конечно есть некоторый предел выразительности, за который выйти не получится, но всёже, до этого предела это вполне возможно

Aleksey
30.04.2017
01:21:44
Здравствуйте, подскажите, как с помощью go поставить какой-нибудь пакет из консоли, например sudo apt-get install nginx ?

corpix
30.04.2017
01:25:53

Aleksey
30.04.2017
03:06:26
Спасибо. А с помощью какого стандартного го пакета можно запускать, например, установленную в систему либу типо FFmpeg, такой онлайн мини сервис по конвертации файлов?

Lev
30.04.2017
06:48:41
того же exec

.
30.04.2017
07:02:32

Lev
30.04.2017
08:58:00
Продублирую свой вчерашний вопрос, вся инфа в одном гисте: https://gist.github.com/leominov/b07f5393ab70fe6fbc0bc6b2568277ff Может я все-таки что-то упустил из виду? Почему с версии 1.6.2 приходит тело в deflate, хотя запрашиваю gzip?

Peter
30.04.2017
09:03:58

Sander
30.04.2017
10:02:39
когда я использую в go sync, там есть такое свойство mutex, которое можно использовать.
---
я правильно понял что mutex это как семафор, нужны для того чтоб в этом окружении где мы использует mutex (Lock, Unlock) все работало в одно пототке,
чтоб одновременно читать, записывать с одной переменной, файла, памяти нельзя было.
---
правильно ли я понимаю?

Google

Combot
30.04.2017
10:02:57
combot.org/chat/-1001046001048
combot.org/chat/-1001046001048

m
30.04.2017
10:34:58
Да, правильно

LexsZero
30.04.2017
10:35:19

Sander
30.04.2017
10:38:28
угу
@LexsZero а atomic, я что-то смотрел так и не понял в чем соль его.
@taooka спасибо

m
30.04.2017
10:39:31
есть мьютексы, работающие на нескольких машинах по сети: taooka.com, например. ?

LexsZero
30.04.2017
10:41:34
@LexsZero а atomic, я что-то смотрел так и не понял в чем соль его.
ну смотри, если ты делаешь обычный инкремент x++ из двух тредов параллельно, может случиться херня
изначально x == 0
тред1 - прочитал 0 из памяти в регистр
тред2 - прочитал 0 из памяти в регистр
тред1 - увеличил свое значение
тред2 - увеличил свое значение
тред1 - записал 1 в регистр
тред2 - записал 1 в регистр
упс.
атомики нужны чтоб такой херни не было

Sander
30.04.2017
10:44:03
@LexsZero прости но что-то не понял, какая именно херня может случиться с инкрементом если в два потока

DreamingKitten
30.04.2017
10:48:30
из за того что оба инкремента не атомарны

Sander
30.04.2017
10:50:28
просто в чем разница использовать mutex и atomic,
или atomic больше для инкремента и подсчетов

LexsZero
30.04.2017
10:52:02
это разные вещи
атомики в целом быстрее, так что если задача решается атомиком - надо брать атомики. а мьютекс обычно вешается для управления доступом к некоторой структуре. но это все равно не гоъ-вей
гоъ-вей - это когда каждым объектом владеет ровно одна горутина, а все взаимодействие с этим объектом ведется через общение сообщениями через каналы с этой горутиной.

Sander
30.04.2017
10:56:36
каналы вот только начинаю читать
надо разобраться четко мне потом, когда atomic, когда mutex и когда chanel использовать

m
30.04.2017
11:00:53
Можно даже получить не 1, а 121.

Google

m
30.04.2017
11:01:24
значение переменной, изменяемой конкурентно, не определено
каналы и мьютексы написаны на атомиках. так что атомики быстрее и того и другого.
главное не надо впадать в крайности, вроде всё на каналах делать. По началу этим многие страдают.
каналы для обмена данными между горутинами. мьютексы для ограничения доступа к разделяемым данным. атомики чаще всего для счётчиков.

Denis
30.04.2017
11:05:45
Мьютекс не написан на атомике
Но это не точно
Это объект ядра. Внутри там все хитрее атомика.

m
30.04.2017
11:22:23
Денис, посмотрите исходный код: https://golang.org/src/sync/mutex.go?s=1186:1208#L36

Sander
30.04.2017
11:23:46
@nullblock

Denis
30.04.2017
12:07:14
Ну да, там есть атомики
Но основной вызов там спинлок и семафор
Причём непонятно оправдан ли вызов спинлока, насколько я знаю мьютекс сам внутри вызывает спинлок

Denis
30.04.2017
12:08:23
Хз

corpix
30.04.2017
12:25:55

m
30.04.2017
12:47:46
Жаль тут лайки нельзя ставить.

Igor
30.04.2017
12:48:22
ну вообще можно..

m
30.04.2017
12:50:56
как это сделать?

Igor
30.04.2017
12:51:15
c'mon, инлайн бот
https://telegram.org/blog/inline-bots

.
30.04.2017
13:08:23
bson:"a",json:"b,omitempty" это законно?

Google

corpix
30.04.2017
13:20:39

Denis
30.04.2017
14:09:59
Ее они пилят хоть? А то в гите перекати поле было
там и сейчас перекати поле, да и в крупных проектах не вижу смысла его юзать, слишком узкие кейсы применения, скорее возьмут брокер сообщений по типу кафки, чтобы не смешивать domain events с событиями бд

Lev
30.04.2017
19:20:52
Продублирую свой вчерашний вопрос, вся инфа в одном гисте: https://gist.github.com/leominov/b07f5393ab70fe6fbc0bc6b2568277ff Может я все-таки что-то упустил из виду? Почему с версии 1.6.2 приходит тело в deflate, хотя запрашиваю gzip?

Вячеслав
30.04.2017
19:50:37
Это и есть сжатие

Admin
ERROR: S client not available

Roman
30.04.2017
20:22:56

Alexey
30.04.2017
20:28:18
Но вообще есть люди, которые даже свой DSL написали, и генерируют код в больших количествах.

corpix
30.04.2017
20:41:40

Alexey
30.04.2017
20:44:14
Для го и питона. Не, не могу, там всё внутри компании. Я просто в ФБ читал товарища, который писал: https://www.facebook.com/oleg.i.tsarev/posts/10211498818695935

Roman
30.04.2017
23:00:57
Народ! В курсе что для Android есть эмулятор терминала и линуксового окружения с поддержкой apt ?
И в репозитории есть go даже версии 1.8.1
https://termux.com

hamper ?
30.04.2017
23:08:54
Да он давно уж как существует, штука прикольная, но я не придумал для себя применения ему.

Vladimir
30.04.2017
23:15:21
кажется что раньше (года 4-5 как) то же самое делалось терминальным эмулятором и чрутом в дебиан

Lev
01.05.2017
04:41:13
Я не спрашивал, сжатие это или нет, я спрашивал почему клиент поддерживает одно сжатие, а приходит другое
Это и есть сжатие

LexsZero
01.05.2017
04:48:39

Google

Vladimir
01.05.2017
05:17:44
Это и есть сжатие
хинт - у телеграма есть кнопочка "Reply", рядом с "forward". Тыкай ее, а то нельзя перейти в контекст на который ты ответил.

Lev
01.05.2017
05:18:27
а, ок

Vladimir
01.05.2017
05:19:35
вот :)
ага, так понятнее. Но в общем если хочется докопаться до сути - можешь попробовать сделать bisect
и найти коммит который поменял поведение
@leominov тут проблема в том что кроме твиттера я с ходу не нашел ни один крупный сайт который вообще дает тебе сжатие по https

Lev
01.05.2017
05:25:01
Скажем так, из 2 сотен ссылок, проблема у меня только с этой)

Vladimir
01.05.2017
05:25:38

Lev
01.05.2017
05:27:14
я не отрицаю, но затрагивает это все версии го с 1.6.2, даже если в разнобой запускать, собственно, код тот же, а поведение другое

Vladimir
01.05.2017
05:27:47
ты знаеш что в 1.6.1 не было, в 1.6.2 появилось, коммитов между ними мало

Lev
01.05.2017
05:28:53
ну да, но дифф между релизами по пакету net/http ничего не дал

Vladimir
01.05.2017
05:29:57
https://github.com/golang/go/compare/go1.6.1...go1.6.2
чекаутишь го, говоришь бисекту что тэг go1.6.1 good, go.1.6.2 - bad