@gogolang

Страница 1525 из 1630
Vladimir
10.10.2018
02:08:18
Alexander
10.10.2018
02:17:29
Roman
10.10.2018
02:23:17
Так структуры ведь так же преспокойненько копируются. Хватит изобретать велосипед. Возьмите растовскую систему, она предельно проста и даёт профитов ровно столько, сколько нужно.
1. структуры не скаляры. При копировании структур возможен pointer aliasing, поэтому только скаляры могут копироваться без последствий 2. просто взять и встроить растовскую систему в Go это значит сделать из Go - Rust, а этого мы не хотим. Rust это отсутствие GC, это trait-based Generics, это долгая компиляция, это Ownership & Borrowing, и т.д. и т.п.

Google
Alexander
10.10.2018
02:24:54
1. структуры не скаляры. При копировании структур возможен pointer aliasing, поэтому только скаляры могут копироваться без последствий 2. просто взять и встроить растовскую систему в Go это значит сделать из Go - Rust, а этого мы не хотим. Rust это отсутствие GC, это trait-based Generics, это долгая компиляция, это Ownership & Borrowing, и т.д. и т.п.
Нет. Совершенно необязательно. Не нужно ни ownership'а, ни borrowing'а, если вы не собираетесь статически доказывать, что в один момент времени на одну и ту же память может быть либо одна мутабельная ссылка, либо множество иммутабельных.

В расте система мутабельности/иммутабельности как у вас в пропосале, только без лишних путающих фич.

Alexander
10.10.2018
02:27:19
каких например?
1. иммутабельные поля в структурах 2. мутабельная/иммутабельная передача не указателя в функцию

Roman
10.10.2018
02:28:36
1. иммутабельные поля в структурах 2. мутабельная/иммутабельная передача не указателя в функцию
речь в моём пропосале не о полях, не о аргументах, не о возвратных значениях и не о receiver'ах речь об иммутабельных типах и mixed-mutability типах.

not mut var a int = 42, but var a mut int = 42

not mut var t *T = &T{} but var t mut *T = &T{} which can also be mixed: var t * mut T = &T{}

а типы эти вы можете использовать где угодно, хоть поля, хоть аргументы, хоть глоб. переменные

Алекс
10.10.2018
04:10:31
Olzhas
10.10.2018
04:57:20
@onokonem спасибо за fileb0x

классная штука

Нави
10.10.2018
05:14:25
а в го иммутабельные переменные никак не сделать, только константы, не умеющие получать значения из вычисления выражений?

Alexey
10.10.2018
05:14:54
как максимально кроссплатформенно демонизировать программу? и как вообще происходит дальнейшее управление такой программой? кто во что гаразд? или есть какой-то общепринятый протокол поверх, скажем юникс сокета? в линупсах systemd есть, но насколько он распространен?
https://github.com/takama/daemon https://github.com/kardianos/service Я когда-то, когда не было библиотек, сам демонизировался: https://github.com/Supme/gonder/blob/master/cmd/cmd.go#L177 Но не красиво, а переделать руки не доходят, но демонизируется независимо, но управление не нативное. Можно посмотреть как в телеграфе сделано, там под все платформы тоже инсталируется как сервис.

Google
Alexander
10.10.2018
05:17:42
в 2.0 обещают вроде
Ага, Роман лично обещает

Vladimir
10.10.2018
05:20:35
И че?
в группе GO врядли будет спец по асму, иде и исполняемым форматам линковки! В статье же лишь первые шаги которые никак не говорят о структурах рутин и каналов , а без них это детский лепет IDA-шника что он и тут может! Вопрос же стоял в декомпилирование то есть бинари в GO!?

Zver
10.10.2018
05:32:20
в 2.0 обещают вроде
Ничего этого не будет, скорее всего.

Vladimir
10.10.2018
05:36:00
шкаф из Perl, кресло из Phyton , стол из Rust , cтул из Java ! Ну вот теперь мы в новом языке GO?

Vladimir
10.10.2018
05:37:57
Ну так а нахрен тогда браться за декомпиляцию, если ты не можешь в асм?
декомпилирование -воссоздание исходного кода источника то есть Golang (ни асм ни ИДА не при чем)

Алекс
10.10.2018
05:38:52
Vladimir
10.10.2018
05:39:48
Ида может в псевдокод, напиши плагин для го и будет тебе щасте
сначала пусть ИДОВЦЫ откроют тайну рутин-каналов-Гарбадж коллектора а мы уж за ними! А найти название функций и точку входа это даже не кракнуть со смыслом а так себе

Нави
10.10.2018
05:42:17
а го разве не опенсорс?

Vladimir
10.10.2018
05:42:59
а го разве не опенсорс?
разговор о продукте написанном на GO , там все на борту!

Alexey
10.10.2018
05:58:01
спасибо, а есть best practices по этому вопросу? у меня приложение на расте, так что по всей видимости придется пилить самому
В простейшем случае запускаем дочерний процесс, записываем в файл его идентификатор и успешно выходим, оставляя ребёнка одного, он становится одиноким демоном. Чтоб его остановить, читаем из файлика идентификатор процесса и посылаем ему сигнал завершения, ждём что он завершился и выходим.

Tux
10.10.2018
05:59:20
а если родитель завершается, разве спауны не завершатся?

Alexey
10.10.2018
05:59:43
Если успешно, то нет

Tux
10.10.2018
06:00:08
оу, а если с кодом != 0?

Alexey
10.10.2018
06:01:06
Там как-бы не ребёнок, а запуск другой/себя программы

Tux
10.10.2018
06:01:18
форк?

Google
Alexey
10.10.2018
06:01:29
Но запускатор уходит

Tux
10.10.2018
06:01:55
я понял, паходу форкнуть нужно.

Alexey
10.10.2018
06:02:48
Там в моём ужасе, что по последней ссылке, должно быть понятно

Alexander
10.10.2018
06:03:55
why?
какая польза от такого исследования, кроме обеспечения работой нескольких научных сотрудников?

Vladimir
10.10.2018
06:06:24
Привет! Вопрос такой - как добавить к литералу тега в структурах еще одно поле? Пример - структура type Test struct { test URL string json:"test" } , мне нужно туда добавить для redis тэг, возможно ли?

redis:"test"

Vladimir
10.10.2018
06:07:32
т.е. `json:"test" redis:"test"`

Alexey
10.10.2018
06:10:23
Да

Daniel
10.10.2018
06:42:56
Так структуры ведь так же преспокойненько копируются. Хватит изобретать велосипед. Возьмите растовскую систему, она предельно проста и даёт профитов ровно столько, сколько нужно.
Коллега, вы тут регулярно раст пропагандируете. Но как-то без подробностей. Расскажите нам, пожалуйста, в чем состоит растовская система, и почему вы думаете, что она подойдет

Александр
10.10.2018
06:43:12
оффтоп же будет

Daniel
10.10.2018
06:43:20
Почему?

Александр
10.10.2018
06:43:36
канал то про гоу

Daniel
10.10.2018
06:43:44
Оффтоп - это раст ругать тут

Alexander
10.10.2018
06:44:16
Или хвалить без конкретики

Daniel
10.10.2018
06:44:23
Не больше оффтоп, чем пропозал Романа

Alexander
10.10.2018
06:44:29
Я бы тоже послушал, интересно же

Alexander
10.10.2018
06:50:39
Коллега, вы тут регулярно раст пропагандируете. Но как-то без подробностей. Расскажите нам, пожалуйста, в чем состоит растовская система, и почему вы думаете, что она подойдет
В общем-то вся суть в том, не существует мутабельных/иммутабельных типов. Существуют только указатели с мутабельным/иммутабельным доступом и мутабельные/иммутабельные связывания. Связывание — это когда когда каким-то данным даётся какое-то имя (объявление переменной). Всё просто и путаться совершенно негде.

Google
Daniel
10.10.2018
06:52:16
А почему вы называете эту систему растовой? Разве в c++ не так же?

Alexander
10.10.2018
06:53:33
А почему вы называете эту систему растовой? Разве в c++ не так же?
По идее так же. Но я не большой знаток плюсов, ибо интересовался ими только в универе и то до тех пор, пока не понял, что они совершенно не подходят для написания хоть чего-то.

И да, я люблю гиперболы.

Alexander
10.10.2018
07:13:11
Реально?
https://t.me/gogolang/152459

Admin
ERROR: S client not available

JASWGO
10.10.2018
08:38:27
Всем привет. Кто делал In app purchase на iOS?

Как передать "рецепт" по API этой библиотеке? И из чего состоит "рецепт"?https://github.com/awa/go-iap

Илья
10.10.2018
08:44:13
эрланг - про байтики повозить с минимумом бизнес логики же

Artem
10.10.2018
08:45:43
эрланг - про байтики повозить с минимумом бизнес логики же
ну распределенно параллельно повозить да. С бизнес логикой боль(

в эликсире получше вроде

Илья
10.10.2018
08:46:04
эликсир - это же другой язык, который на эрланговой vm катается, что с ним? хаскель вон тоже на jvm натягивают

у него свой путь, он даже работает, не пониланг какой-нибудь, но я на нем не игрался пока

Artem
10.10.2018
08:46:41
с ним все хорошо. Развивается и становится популярным. Получше чем с ерлангом

Marlik
10.10.2018
09:02:05
Есть что-нибудь для записи логов в определённый файл, без лишних телодвижений на сервере?

Google
many-faced
10.10.2018
09:08:05
Ребята, пособите советом Как сделать функцию, которая будет инсертить в postgres строку с различным количеством параметров? Функция примерно такая: func insert(data ...interface{}) error {...} таблица такая: c1,c2,c3 все могут быть NULL соответственно, нужно какое-то тело функции, которое бы вставляло в таблицу разное количество параметров от 1 до 3, которые подаются аргументами в функцию. Не понимаю как именно можно написать тело, т.к. в INSERT мы же явно указываем количество столбцов

Daniel
10.10.2018
09:08:45
надо динамически формировать запрос

и я рекоммендую для этого взять squirrel

для начала - логи должен писать супервизор, а не приложение

many-faced
10.10.2018
09:09:58
и я рекоммендую для этого взять squirrel
чем лучше чем свитч с тремя вариантами? Быстрее?

Ilia
10.10.2018
09:10:01
Есть что-нибудь для записи логов в определённый файл, без лишних телодвижений на сервере?
Ну можно же просто редиректить stdout и stderr в файл. Или нужно что-то более сложное?

Daniel
10.10.2018
09:10:03
потом - logrus и zap умеют писать в файл

Marlik
10.10.2018
09:10:26
для начала - логи должен писать супервизор, а не приложение
Понимаю, то есть всё равно лезть на сервак и ручками настраивать?

Daniel
10.10.2018
09:11:06
чем лучше чем свитч с тремя вариантами? Быстрее?
свитч лучше, конечно. если число вариантов известно но тогда и функций должно быть три, а не одна с переменным числом параметров

Ilya
10.10.2018
09:11:31
А оно конечно

Marlik
10.10.2018
09:11:48
many-faced
10.10.2018
09:11:58
свитч лучше, конечно. если число вариантов известно но тогда и функций должно быть три, а не одна с переменным числом параметров
Число вариантов известно, оно равно числу столбцов в таблице. почему три функции?.. можно же сделать одну со свиьчем внутри.

Daniel
10.10.2018
09:12:32
потому, что чем меньше у вас проверок и ветвления в рантайме - тем лучше

many-faced
10.10.2018
09:13:16
согласен. Тогда лучше просто написать три идентичные функции, которые будут отличаться количеством вставляемых параметров?

Ilya
10.10.2018
09:15:31
Так а что мешает передавать одинаковое количество параметров в постгрес, оставляя некоторые NULL?

Тут и ветвления никакого не нужно

many-faced
10.10.2018
09:16:07
кстати да = )

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