
V
10.07.2018
17:22:46
CI в контейнере или просто линух сервак?

Daniel
10.07.2018
17:23:13
тогда давайте подробности!

Anton
10.07.2018
17:26:57
CI в контейнере или просто линух сервак?
И так и так, но я без ci собираю. В контейнере пару раз попробовали-работает, ну и забили. Подключаем cgo только для продакшена, так все тестовые билды у нас без защиты ?

V
10.07.2018
17:27:19
ого, спасибо

Google

V
10.07.2018
17:27:42
значит надо пробовать, а то у нас разработчик неделю исследует и страдает
говорит никак и никогда и все плохо

Daniel
10.07.2018
17:29:32

Anton
10.07.2018
17:29:42
тогда давайте подробности!
Да какие там подробности могут быть, у нас компиляция порешалась методом тыка доп параметров типа СС, CGO или CXX что там. Щас не за компом, как смогу напишу. Все оч почтой у нас было, а у вас может быть не так

Daniel
10.07.2018
17:30:28
ок, спасибо!

Tom
10.07.2018
18:46:07

Olzhas
10.07.2018
19:00:35

Tom
10.07.2018
19:08:13
-buildmode=c-shared кмк

Anton
10.07.2018
19:42:49
описал небольшой алгоритм, как у нас все заработало. Повторюсь, что возможно у нас был слишком простая задача, мы просто подключили, описали всякие обертки и сразу начали пользоваться. В интернетах можно всякого найти на тему cgo.
https://gitlab.com/snippets/1731857

V
10.07.2018
19:55:10
Спасибо

Daniel
10.07.2018
20:15:19
надо, наверное, отдельным абзацем, тогда оно не враппит строку

Google

Vadim
10.07.2018
22:29:29
Привет, заранее извиняюсь за флуд. Мне нужно в приложение написаное на джаве загнать большую картинку. Он мне выдает ошибку, что не получается выполнить запрос на алоцирование. Можно ли это как-то системно пофиксить или придется читать код?

Andrey
10.07.2018
22:31:52
Думаю, можно поиграться с настройками jvm xmx
Ну и сходить в магазин за допплашкой

/dev/null
11.07.2018
01:03:58
for _, file := range f {
go func(quit chan bool) {
…
Это плохая идея?
Внутри рутины
mutex.Lock()
xmlFile, err := os.Open(filepath.Join(file.pathUnzipFile))
if err != nil {
fmt.Printf("[ERROR] невозможно открыть файл %e \n", err)
}
mutex.Unlock()
defer xmlFile.Close()
И работаю с этим файлом… в одном потоке работает нормально, а вот при запуске в го рутинах не корректно

Александр
11.07.2018
04:14:32
Добрый день! переписываю библиототеку которая мне нужна. однако с СИ дел не имел. Ребята подскажите как получить размер структуры в го.(может я что то не правильно понял, ссылка на куски кода : https://play.golang.org/p/mFojhE_JXPe)

Slava
11.07.2018
04:18:53
а что ты хочешь с этой структурой делать?
если ты хочешь читать бинарное представление сишной - то не выйдет
тебе нужно наверное cgo заиспользовать

Daniel
11.07.2018
04:20:37
почему нет
если только структура упакованная - тогда мимо

Александр
11.07.2018
04:21:16
как я понял sizeof получает размер структуры

Daniel
11.07.2018
04:21:38
да, но в go его нет
я бы, правда, советовал не читать структуру как есть, а воспользоваться пакетом binary
и прочитать ее поле за полем

Zver
11.07.2018
04:23:20

Александр
11.07.2018
04:25:21
спасибо. буду думать как обойти проблема

Slava
11.07.2018
04:25:47
а ты можешь проблему описать? а то мы щас будем гадать с ответами
ну то есть с размером понятно, но зачем он тебе вообще?

Google

Александр
11.07.2018
04:27:47
я переписываю библиотеку эмуляции клавиатуры и мыши на go https://github.com/oblitum/Interception
как я понял в ней есть состояния допустим нажата кнопка или её уже отпустили...

/dev/null
11.07.2018
04:32:03

Александр
11.07.2018
04:36:41
странно.. посмотрел реализацию этой юиюлиотеки на питоне там просто структуру умножают на 1
InterceptionStroke = InterceptionMouseStroke * 1

Den
11.07.2018
05:41:09
Привет. Есть вопрос про многопоточность. Я могу разными горутинами обращаться к разнвм элементам мапы мап без мьютекса?
Т.е. например массив 10 элементов. Я могу сделать что 10 горутин будут изменчть каждая свою ячейку единовременно и делать жто без мьютекса. Могу повторить тоже самое но с мапой мап в голанге?
Или создать мьютекс но не на всю мапу а на один элемент мапы мап
Слишком много мап...?

Stanislav
11.07.2018
05:54:21

Den
11.07.2018
05:55:30
Это указатели. Одна мапа и горутины работают через указатель с памятью
Получается что мапа это ассоциативный массив и все должно завестись, но на СоФ пишут что мапы не тред-сейф

Stanislav
11.07.2018
05:56:51
если ты обращаешься к мапе чтобы получить указатель - то да, нельзя, не тредсейф

Stanislav
11.07.2018
05:57:20
если ты первично получил из мапы указатель и работаешь с ним, без постоянных итераций по мапе - то нормально будет
иначе использую мьютексы

V
11.07.2018
05:58:37
Или sync.Map
Если многопоточность, то лучше сразу делать максимально надёжно. Сейчас вот такой юзкейс, потом кто-то немного допилит и все падать начнет - оно надо?

Александр
11.07.2018
06:51:41
народ а что с гитхабом произошло?

Александр
11.07.2018
06:52:27

Александр
11.07.2018
06:52:48
у меня только главная страница грузиться все репозитории ошибка
мол проверьте статус гитхаба

Google

Admin
ERROR: S client not available

Александр
11.07.2018
06:53:27
у меня все норм, все работает
на репы тож норм заходит
тебе там сис. адм ничего не блоконул?))

Александр
11.07.2018
06:55:21
да нет все работало отлично

Александр
11.07.2018
06:55:48
попробуй пинги проверить

Никита
11.07.2018
06:56:05
Зайди с другой сети и просмотри

Александр
11.07.2018
06:56:07
у меня главная страница открывается
сек впн попробую

Никита
11.07.2018
06:56:23
Есть ещё и сайтик для проверки состояния сайта

Александр
11.07.2018
06:58:22
через впн работает

Кирилл
11.07.2018
07:04:11
https://github.com/status
https://status.github.com/messages

Roman
11.07.2018
08:16:25
Есть что-нибудь попроще чем RabitMQ? Нам нужна очень небольшая очередь до 500 заданий.

Alexei
11.07.2018
08:20:34

Vladislav
11.07.2018
08:23:06

Constantine
11.07.2018
08:23:37
в субд своей (мускуль или посгря) заведите табличку и все
для 500 заданий
а так, да, редис

Roman
11.07.2018
08:36:06
Ок, благодарю. DB там не нужна, а Redis уже есть.

Andrey
11.07.2018
08:37:27
очередь без гарантии доставки)

Google

Roman
11.07.2018
08:39:47
всмысле нет Callback?


The
11.07.2018
08:41:54
Ребятки, подскажите, есть некая структура, которая должна быть заблокирована от изменений в том месте, где она создана.
Т.е., создаю структуру, блокирую её, передаю разным функциям, функции работают с ней как с иммутабельной.
Вопрос такой: как это реализовать?
Структуры в разных пакетах, и на месте создания я не могу получить доступ к закрытым методам.
Если чуть детальнее, есть репозиторий, есть коллекция. Допустим, мне нужно коллекция на чтение, но репозиторий должен как-то записать в эту коллекцию, он создает коллекцию, пишет в неё, и блочит, все последующие вызовы Push(), Pop() у коллекции возвращают ошибку, что объект иммутабельный.
Была идея на месте создавать ссылку на структуру, и как-то по адресу этой ссылки блокировать, т.е. есть методы Lock() и Unlock(), я передаю в Lock(locker), и затем коллекцию передаю дальше кому нужно, так как она заблокирована, и чтобы её разблочить, нужен адрес этой ссылки, но он есть только у создателя самой коллекции.


Zaur
11.07.2018
08:49:04
Лучше напиши небольшой пример на play.golang.org
Немного непонятно просто

Александр
11.07.2018
08:51:11
Если чуть детальнее, есть репозиторий, есть коллекция. Допустим, мне нужно коллекция на чтение, но репозиторий должен как-то записать в эту коллекцию, он создает коллекцию, пишет в неё, и блочит, все последующие вызовы Push(), Pop() у коллекции возвращают ошибку, что объект иммутабельный.
все свойства приватные, приватная структура, пишешь первый раз через фабрику
значение возвращаешь через функцию