@gogolang

Страница 881 из 1630
Slava
03.03.2018
06:58:40
Те если мускул сам по себе зависнет, то тоже побьет данные?
всё зависит от настроек мускуля, если журнал пишется на каждую транзакцию - то данные восстановятся

Andrey
03.03.2018
06:59:16
есть SRE -это их работа, а более или менее крупный проект без них сегодня я не вижу
Значит ли это, что пользоваться докером и CI может только более-менее крупный проект с отдельной ролью SRE?

Artem
03.03.2018
07:00:56
Значит ли это, что пользоваться докером и CI может только более-менее крупный проект с отдельной ролью SRE?
это начит только то, что нужно понимать инструмент, которым пользуешься :) Докер -это не долгоиграющая пластинка, обычное его использование -это поднял > выдал результат > убил

Andrey
03.03.2018
07:01:09
ой

Google
Andrey
03.03.2018
07:01:13
пхп запахло

Michael ?
03.03.2018
07:01:47
Значит ли это, что пользоваться докером и CI может только более-менее крупный проект с отдельной ролью SRE?
Хз, в моей прошлой компании все бекендеры умели докер настраивать и развёртывать

Andrey
03.03.2018
07:02:18
Это был риторический вопрос. =)

Artem
03.03.2018
07:03:50
пхп запахло
дело не в пхп или ограниченности использования а в понимании процесса и оценке стоимости рисков. Безусловно есть контейнеры, которые живут долго, но их использование не ограничивается стартом и ожиданием коннекта. Обычно восстановление предусмотренно

Andrey
03.03.2018
07:04:34
Ладно, опять же повторюсь. Докер - прекрасное изобретение. Мы с ним не справились. Возможно, при повторной необходимости оркестрировать больше, чем тремя серверами, мы к нему вернемся. Пока отложили в долгий ящик.

Artem
03.03.2018
07:07:52
Ладно, опять же повторюсь. Докер - прекрасное изобретение. Мы с ним не справились. Возможно, при повторной необходимости оркестрировать больше, чем тремя серверами, мы к нему вернемся. Пока отложили в долгий ящик.
прежде чем внедрять инструменты вроде докера нужно понять потребности и возможности. Оценить требуемую доступность и сравнить с тем, что реально предоставить. Падение докера в том числе легко решается простейшим балансировщиком благо стоимость ничтожная. Но опять же если это три сервера т зачем вам оркестрация? когда речь пойдет о сотне серверов у вас просто может не быть выбора, хотя и тут он есть.

m
03.03.2018
07:17:29
Доброе утро. Есть вот такая функция https://golang.org/pkg/os/#StartProcess . Она позволяет через https://golang.org/pkg/os/#ProcAttr наследовать запускаемому процессу несколько открытых файлов. Как запускаемой программе понять, какой из переданных файлов какой?

m
03.03.2018
07:21:10
в attr.Files посмотреть
А как запускаемой программе в них посмотреть, если они задаются в запускающей программе?

Artem
03.03.2018
07:22:49
Google
m
03.03.2018
07:24:07
я пробовал класть дескрипторы. Но это не прокатыват. Они перемешиваются и дублируются при запуске программы: user@debian:~$ sudo ls -l /proc/1107/fd [sudo] пароль для user: итого 0 lrwx------ 1 user user 64 мар 3 10:04 0 -> /dev/pts/1 lrwx------ 1 user user 64 мар 3 10:04 1 -> /dev/pts/1 lrwx------ 1 user user 64 мар 3 10:04 2 -> /dev/pts/1 lrwx------ 1 user user 64 мар 3 10:04 3 -> socket:[15955] lrwx------ 1 user user 64 мар 3 10:04 4 -> anon_inode:[eventpoll] lrwx------ 1 user user 64 мар 3 10:04 5 -> socket:[15956] lrwx------ 1 user user 64 мар 3 10:04 6 -> socket:[15957] lrwx------ 1 user user 64 мар 3 10:04 7 -> socket:[15958] user@debian:~$ sudo ls -l /proc/1114/fd итого 0 lrwx------ 1 user user 64 мар 3 10:04 0 -> /dev/pts/1 lrwx------ 1 user user 64 мар 3 10:04 1 -> /dev/pts/1 lrwx------ 1 user user 64 мар 3 10:04 2 -> /dev/pts/1 lrwx------ 1 user user 64 мар 3 10:04 3 -> socket:[15957] lrwx------ 1 user user 64 мар 3 10:04 4 -> socket:[15956] lrwx------ 1 user user 64 мар 3 10:04 5 -> socket:[15958] lrwx------ 1 user user 64 мар 3 10:04 6 -> socket:[15958] lrwx------ 1 user user 64 мар 3 10:04 8 -> socket:[15955] lrwx------ 1 user user 64 мар 3 10:04 9 -> anon_inode:[eventpoll] user@debian:~$

сверху запускатель, снизу - запущенная.

Artem
03.03.2018
07:28:30
ну так там есть же имена и pid, а зачем они дублируются фиг его знает, но это скорее всего логика пользовательская

m
03.03.2018
07:31:11
А как ко всему этому из Go достучаться?

Aleksandr
03.03.2018
07:31:42
всем привет, подскажите пожалуйста, кто как балк инсерт разруливает? у меня постгрес, выяснилось что gorm не поддерживает балки (пока), что печально (учитывая то что среди гошных орм она самая популярная). лепите свои raw SQL или можно как-то красиво это сделать? у меня к raw SQL отвращение после django

Artem
03.03.2018
07:32:47
А как ко всему этому из Go достучаться?
скорее всего только через рефлексию, если вообще можно, может лучше использовать обычный exec?

Artem
03.03.2018
07:42:59
Вы наверное думаете, что помогаете, но это не так.
на сколько я понимаю у вас файлы заменяют Stdin, Stdout и Stderror ну и остальное в зависимости от ОС (я хз че там быть должно) Вот именно в том порядке в котором вы их передаете они и идут, т.е. вы можете прямо os.Stdout и остальные использовать и это будут эти файлы ну и передавая в качестве одного из файлов nil -вы говорите что файл закрыт

m
03.03.2018
07:45:23
я передаю 4 сокета. в примере выше их видно. первые три это стдин, аут и ерр. потом мои 4 сокета. приходят они перемешавшись и дублируясь, что тоже видно в ls -l выше.

и проблема в том, что я не могу их никак использовать из-за этого.

ибо не ясно, какой сокет какой.

Artem
03.03.2018
07:47:15
я передаю 4 сокета. в примере выше их видно. первые три это стдин, аут и ерр. потом мои 4 сокета. приходят они перемешавшись и дублируясь, что тоже видно в ls -l выше.
ну так там так и написанно "An implementation may support additional entries, depending on the underlying operating system" значит просто операционная система их не воспринимает и просто создает случайные потоки в случайном порядке

m
03.03.2018
07:48:02
всё она воспринимает нормально. просто в удобном ей порядке.

Artem
03.03.2018
07:49:01
всё она воспринимает нормально. просто в удобном ей порядке.
ну так на поведение ос вы не повлияете никак, можно какие то внутренние средства наверно использовать, но наверно лучше поискать другой путь.

всё она воспринимает нормально. просто в удобном ей порядке.
попробуйте из процесса по pid получить что то через SysUsage, но не факт, что там что то полезное будет. Он должен системные вызовы вернуть

m
03.03.2018
07:53:09
там нет нужной информации: https://golang.org/pkg/syscall/#Rusage

Artem
03.03.2018
07:54:00
там нет нужной информации: https://golang.org/pkg/syscall/#Rusage
в теории можно через pfiles/pfile по pid получить файлы и уже как то на этом логику строить. Но это опять же в рантайме, т.е. через рефлексию

Nikolay
03.03.2018
08:19:30
Коллеги, кто использовал btcsuite/btcd? Подскажите, пожалуйста, беру транзакцию по хэшу с помощью GetRawTransactionVerbose, в ответе приходят Vin, Vout. Cо вторым все предельно ясно, а вот с Vin как-то не идёт, не могу понять как правильно индекс входа взять, чтобы считать выход предшествующей транзакции

Google
Hokusai
03.03.2018
10:59:51
Народ, подскажите как выполнять plpgsql процедуры, и сохранять результат в переменную

написал процедуру, выполняю её через db.Exec("SELECT procedure_name($1)", "some value"), возвращается структура с поинтером на какой-то адрес и 0

Alexey
03.03.2018
11:01:27
Надо через QueryRow

Exec возвращает sql.Result

Hokusai
03.03.2018
11:06:05
Надо через QueryRow
спасибо, сделал ??

Wingman
03.03.2018
12:23:42
кто в регекспах шарит? какую альтернативу можно применить в гошке для positive lookahead? (не поддерживается =\)

Wingman
03.03.2018
12:25:15
я там уже полдня экспериментирую, и? :)

Aleksey
03.03.2018
12:30:50
я там уже полдня экспериментирую, и? :)
там вменяемая дока и генератор кода на го

Wingman
03.03.2018
12:31:11
в доках сказано только, что "лукахеда нет, извиняйте" :)

тут не дока, а скорее рецепт нужен

на всяких stackoverflow при overlapping lookaheaad советуют половину логики в коде реализовывать

Wingman
03.03.2018
12:34:10
дико не хочется =\

где мои pcre, хнык

Aleksey
03.03.2018
12:36:25
os.Exec(perl) :))

Mars
03.03.2018
12:37:41
где мои pcre, хнык
Есть биндинг к реализации на C

Еще есть биндинг к реализации на Rust

Wingman
03.03.2018
12:38:02
о, спасибо

пошел гуглить

Google
Mars
03.03.2018
13:06:54
Спасибо

Wingman
03.03.2018
13:20:35
туплю

Vasily Romanov
03.03.2018
13:25:50
где мои pcre, хнык
есть биндинги к pcre через cgo можно использовать если очень надо

Wingman
03.03.2018
13:26:31
да, уже нагуглил, пытаюсь...

‎‎‎‎
03.03.2018
13:48:19
В go есть аналог StreamReader с шарпа? Чтобы не грузил ОЗУ при чтении больших файлов

Admin
ERROR: S client not available

Илья
03.03.2018
13:54:01
bufio

‎‎‎‎
03.03.2018
14:13:58
Виктор
03.03.2018
14:55:26
?
Просто большинство наследует базовый интерфейс ридера а он подразумевает потоковое чтение :)

Pawel
03.03.2018
16:07:28
кто в регекспах шарит? какую альтернативу можно применить в гошке для positive lookahead? (не поддерживается =\)
если на регэкспах нет тупого решения в лоб, выкидывай их нафиг и используй парсеры-комбинаторы

Wingman
03.03.2018
16:16:54
решение в лоб-то есть, но только на pcre

Pawel
03.03.2018
16:18:55
универсальное решение - https://github.com/prataprc/goparsec

Wingman
03.03.2018
16:19:31
м

спасибо, погляжу

Pawel
03.03.2018
16:25:25
это лучшее что я вынес из хаскеля, простите мой французсский

Aleksandr
03.03.2018
17:37:13
А что в го является аналогом decimal для работы с деньгами?

Google
Aleksandr
03.03.2018
17:38:06
Писать свою структуру? Или какой популярный проект?

Pawel
03.03.2018
17:38:54
big.Rat

Aleksandr
03.03.2018
17:40:42
Спс посмотрю

Wingman
03.03.2018
19:11:13
Народ, а посоветуйте плз - может, есть готовое решение для хранения переменных/объектов/структур в памяти, типа мап, но при этом с возможностью индексирования и поиска не только по основному ключу, но и, например, по значениям переменных в хранимых структурах? Ну или там, с ручным заданием нескольких ключей для индексирования и поиска Для чего нужно: есть большушая куча объектов в бд, сложных, со связями между собой, с которыми постоянно необходимо что-то делать (через опр.промежутки времени) Постоянно терзать бд для их выбора - неоптимально, можно ведь держать все в памяти и дергать базу только ддя обновлений и, например, периодических синхронтзаций Но хочется делать это удобно :)

Никита
03.03.2018
19:18:33
Кто нибудь может обьяснить, почему UPDATE SQL-запросы такие медленные? Даже самые простые.

Daniel
03.03.2018
19:19:50
при чем тут go?

Никита
03.03.2018
19:19:57
Не при чем

просто вопрос

Wingman
03.03.2018
19:27:02
Особенно заметно, если данных много

+ лок/анлок

Slava
03.03.2018
19:36:12
Кто нибудь может обьяснить, почему UPDATE SQL-запросы такие медленные? Даже самые простые.
не все медленные, всё зависит от 1) как вы настроили и какие индексы используете 2) настроек самой субд, включен ли там лог и как часто он синхронизруется, 3) от настроек репликации, нужен ли кворум или всё асинхронное. 4) от нагрузки бд, возможно данные очень часто обновляются и у вас лок контеншен высокий 5) возможно у вас проблемы с железом/настройками ос итд

вообщем много всего

Pawel
03.03.2018
20:04:57
Народ, а посоветуйте плз - может, есть готовое решение для хранения переменных/объектов/структур в памяти, типа мап, но при этом с возможностью индексирования и поиска не только по основному ключу, но и, например, по значениям переменных в хранимых структурах? Ну или там, с ручным заданием нескольких ключей для индексирования и поиска Для чего нужно: есть большушая куча объектов в бд, сложных, со связями между собой, с которыми постоянно необходимо что-то делать (через опр.промежутки времени) Постоянно терзать бд для их выбора - неоптимально, можно ведь держать все в памяти и дергать базу только ддя обновлений и, например, периодических синхронтзаций Но хочется делать это удобно :)
здесь нечего особо советовать, кроме как держать в одном объекте несколько мапов с разными ключами и указателями на одни и те же сущности.

другой вариант, более разумный в 99% описанных случаев, - не извращаться с мапами, держать всё в одном массиве, и выполнять по нему линейный поиск

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