
Aleksandr
30.01.2018
12:39:38
в гугл почему ошибку не вбиваешь?
https://marcesher.com/2014/10/13/go-working-effectively-with-database-nulls/

Marlik
30.01.2018
12:40:06

Aleksey
30.01.2018
12:58:17
Что лучше использовать для работы с файлами os или ioutil? Нужны чтение и запись байтовых массивов

Google

Sergey
30.01.2018
12:58:54

Aleksandr
30.01.2018
12:59:49

Vladimir
30.01.2018
13:00:54

Aleksandr
30.01.2018
13:01:14
точнее половина обертки над os, половина над вообще io и в частности над os. А в целом это просто обертки. что выбирать - зависит от заачи

Aleksey
30.01.2018
13:05:34
Спасибо

Slach
30.01.2018
14:01:20
всем привет
есть простой код
//ConnectDB open database connection
func ConnectDB(config *cfg.ConfigType) {
var err error
InitDBLoggers(config)
if dsn, err = dburl.Parse(config.Chatbot.DbDSN); err == nil {
db, err = sql.Open(dsn.Driver, dsn.DSN)
if err == nil {
log.Debug().Msg("dbPing init")
go func() {
if pingErr := db.Ping(); pingErr != nil {
log.Fatal().Err(pingErr).
Interface("dsn", dsn).
Interface("db", db).
Msg("ping database error")
}
log.Debug().Msg("dbPing done")
time.Sleep(10 * time.Second)
}()
}
}
if err != nil {
log.Fatal().Err(err).
Str("config.Chatbot.DbDSN", config.Chatbot.DbDSN).
Msg("ConnectDB error")
}
}
я не понимаю почему не стартует горутина с замыканием =(((
dbPing init
выводится нормально
как такое вообще может быть?
каналов каких то там нет вообще

John
30.01.2018
14:06:59

Slach
30.01.2018
14:11:14
не, не завершает =) я затупил в горутине вечный цикл должен был быть она просто один раз срабатывает и все

Aleksey
30.01.2018
14:11:44
Можете подсказать, есть в го что-то вроде питоновского Counter и most_common, или любой удобный инструментарий, чтобы посчитать частотность слов и получить в отсортированном виде?

Евгений
30.01.2018
14:14:37

Aleksey
30.01.2018
14:15:18

Google

John
30.01.2018
14:16:04
т.к. python для всякой аналитики таки крут :)

Aleksey
30.01.2018
14:16:38

Marlik
30.01.2018
14:20:46
Люди, подскажите как сформировать строку включающую в себя значения переменных и занести это в другую переменную? В другом языке так писал:
my $var = 123
my $str = "Значение переменной var: $var\n";
Пустяшный вопрос))))

Aleksandr
30.01.2018
14:21:59
str := "text" . var . "\n"

Вячеслав
30.01.2018
14:22:34
Может + ?

Aleksey
30.01.2018
14:22:34
str := fmt.Sprintf("Значение переменной var: %v\n”, var)

Вячеслав
30.01.2018
14:22:37
А не точка

Marlik
30.01.2018
14:22:53

John
30.01.2018
14:23:16

Aleksandr
30.01.2018
14:25:09

Marlik
30.01.2018
14:26:24

Aleksey
30.01.2018
15:05:40
Чятик, а тут никто не прикручивал golint к bazel? Хочу реализовать у себя, не могу сходу убедиться, что готового решения нет

Sergey
30.01.2018
15:47:09
Кто для чего использует голанг? Что удобно писать?

Человек
30.01.2018
15:53:47
Серверные приложения/Backend, сетевые приложения, да все что в голову взбредет то и пиши как говориться :)

Demuz
30.01.2018
16:00:04

The
30.01.2018
16:00:45
Быстрые сайты делаю

Google

John
30.01.2018
16:01:12
Я бы добавил, что аналитика/анализ данных на гоу ... не стоит, это боль :)

Demuz
30.01.2018
16:01:13
Удобно, написал, собрал, запустил где захотел.

John
30.01.2018
16:02:14

Demuz
30.01.2018
16:03:01
Например, анализ текстов
Незнаю. Такое ещё не приходилось писать. Сейчас пишу стример, рестример с популярных сервисов и тд.
Сервер mpeg dash, hls, rtmp. А у клиента go+web интерфейс. Стримит либо свой экран на серв, либо видео, либо просто рестримит с сервиса на свой сервер или удаленный сервер. Типа того.
Это так, в свободное время тренинг.
Хотел поинтересоваться, если я пишу клиентское приложение на го+веб интерфейс на локалхосте, если ли какая нибудь возможность целенаправленно заблокировать запросы извне? Немного зная сети, вроде такую систему можно обмануть подделкой хедера, либо маскированием ip адреса.

John
30.01.2018
16:08:58

Demuz
30.01.2018
16:09:32
Да я сделал. Но я сам если честно в одном софте обманул систему. Там не сложно. Вот думаю решение теперь.

John
30.01.2018
16:10:18

Demuz
30.01.2018
16:11:19
Ошибаетесь. Ещё как можно. Есть либо форвард через веб сервер, либо простое изменение входящего запроса на адрес локалхоста. Сейчас покажу.

Demuz
30.01.2018
16:12:49
Короче насчёт винды не пробовал, но на линуксе есть такая вещь, секунду.

John
30.01.2018
16:13:41

Demuz
30.01.2018
16:16:41

John
30.01.2018
16:17:32
ну дык, Я же и говорю, если специально ничего не ломать, то все будет только внутри localhost

Demuz
30.01.2018
16:18:14
Вот правило. По русски так - все входящие соединения на внешний IP такой то, порты такие то, перенаправить на интерфейс с IP 127.0.0.1 и на его внутренние порты. И действительно в дальнейшем все запросы будут по локалхосту ходить. И сама конечная точка будет думать что запрос прям со 127.0.0.1 приходит )))
Есть просто один софт, который запрещал соединения извне. Решил таким образом.

Yury
30.01.2018
16:19:42
Ты сам себя ломаешь чтоли?)))

Google

Demuz
30.01.2018
16:19:50
Да и сами веб серверы форвардят как нефиг делать, знаете же.

Admin
ERROR: S client not available

John
30.01.2018
16:19:51

Demuz
30.01.2018
16:20:05

John
30.01.2018
16:20:51

Demuz
30.01.2018
16:21:05

Yury
30.01.2018
16:21:39
Если у софтины root права, то она че угодно может сделать

Demuz
30.01.2018
16:21:41
Может реально, какой нибудь auth middleware сделать, всё равно софт работает, когда подключен нэт. Хотя всё сломают помоему. Вон даже гиганты типа JetBrains Не могут продукты защитить от взлома. Паблик сервы лицензий блин.

John
30.01.2018
16:24:28

Alexey
30.01.2018
16:27:47


Demuz
31.01.2018
06:21:00
Утро доброе, Голаговцы! Как можно реализовать закрытие подпроцесса системы, запуск которого был осуществлен из вашего го приложения, после закрытия самого приложения? Если дело касается винды, например пользователь нажимает просто крестик вверху справа, приложение закрывается, но вот системный процесс, запущенный из него, не закрывается. Я могу отловить ивент закрытия окошка на винде, к примеру, или как вобще такие вещи реализовываются?
Верней даже так, немного перепутал, подпроцесс нормально закрывается, после закрытия основного приложения, но вот если оно паниковало, то подпроцесс остается запущенным. В итоге, временное решение - сейчас банально завершается ранее запущенный процесс, только при повторном запуске программы.

Aleksandr
31.01.2018
06:34:20

Demuz
31.01.2018
06:35:06
Можно. Но вот думаю, вдруг будет ситуация, где паника не будет перехвачена и получается у юзера останется висеть процесс )

Aleksandr
31.01.2018
06:36:20
ну если даже паника не будет перехвачена, то из основого приложения ты уже никак не закроешь

Demuz
31.01.2018
06:36:32
А можно системный процесс запускать как бы внутри го? Или это бред?

Aleksandr
31.01.2018
06:37:38
exec.Run если я правильно тебя понял

Demuz
31.01.2018
06:38:17
Запускает. Но он как бы параллельновыполняющийся в системе получается и независимый от основного. Хотя, нука проверю сейчас.

Google

Demuz
31.01.2018
06:42:48
Вроде закрывается вместе с закрытием приложения. Ладно, спасибо.

Александр
31.01.2018
12:47:21
всем хай
а я вот подумал, а почему бы вместо структуры в моделях не использовать map
а чорд ? мету теряем

Aleksandr
31.01.2018
12:48:35
ну вот. над проблемой не подумал, а уже выкидываешь для обсуждения)

Sander
31.01.2018
13:13:51
Привет,
есть кто работал с "Wsse" "WS-Security"?

Aleksey
31.01.2018
13:15:19

Arch
31.01.2018
13:15:24
Народ, в go есть что-то queue подобное? с логикой первым пришел, первым ушел, которое усмеет динамически расширяться