
Roman
29.12.2016
07:27:24
Кроссплатформенное же?
Или в винде винапи
В линуксе посканить кто есть

Givi
29.12.2016
07:28:18
да нет зачем такие сложности, os/exec

Google

Roman
29.12.2016
07:29:19
Ок интересный вариант, надо потыкать

Mars
29.12.2016
07:29:47

Roman
29.12.2016
07:30:05
Ага тыкал вчера

Mars
29.12.2016
07:30:21
Все плохо?

Roman
29.12.2016
07:30:34
Такое чувство что сдк не совпадает с враппером

Givi
29.12.2016
07:30:38

Roman
29.12.2016
07:30:40
Паникует
Простейшие примеры работают
А чтото сложное с коллбеками падает
Они кстати тоже rice используют

Мерлин
29.12.2016
08:57:02
Где то видел генератор веб морд из конфигов grpc
Ненависть, но очень удобно

Slava
29.12.2016
14:40:33
привет. подскажите, пожалуйста, кто работал с NATS, правильно ли я понимаю, что если я паблишу сообщение и нет ни одного подписчика, то сообщение теряется?

Google

?
29.12.2016
14:48:23
Подскажите плиз, можно ли в go как-то сравнить, что 2 функции одинаковые? нужно в тестах проверить, что возвращаемая функция соответствует

Daniel
29.12.2016
14:48:40
а?!
что значит - одинаковые функции?

?
29.12.2016
14:51:55
func Foo() { return true }
func Bar() { return Foo }
Bar() == Foo

Daniel
29.12.2016
14:52:48
а что в них одинакового?

?
29.12.2016
14:53:31
тело функции

Daniel
29.12.2016
14:53:45
так разное же

?
29.12.2016
14:54:05
Bar() возвращает Foo
ну т.е. логически Bar() == Foo, потому что Bar возвращает Foo
но go так сравнивать не может, а нужно как-то убедиться, что они равны

Daniel
29.12.2016
14:56:44
так они не тождественны
они эквивалентны

Vasily
29.12.2016
14:56:54
Логичнее результат сравнивать же

Daniel
29.12.2016
14:56:57
но как об этом узнать-то?
эквивалентность вообще штука тонкая
в терминах go невыразимая, насколько я понимаю

?
29.12.2016
14:58:41
Vasily, результат выполнения Foo? он может быть одинаковым, хотя логика в функциях может быть разной
Daniel, я правильно понимаю, что в go невозможно убедиться, что Bar() возвращает функцию Foo ?

Daniel
29.12.2016
15:00:16
отрефлексировать это невозможно
насколько я знаю

?
29.12.2016
15:04:02
можно как-то альтернативно проверить в тестах?

Google

Daniel
29.12.2016
15:19:04
так а что проверить-то?
вы можете формализовать?

Никита
29.12.2016
15:21:51
если функции принимают int32, то прогнать их на интервале [-2147483648, 2147483647]
?

?
29.12.2016
15:30:13
функция сложная, с зависимостями, в тестах как раз надо исключить зависимости
спасибо за ответы)
вроде нашел решение:
runtime.FuncForPC(reflect.ValueOf(fn).Pointer()).Name()
возвращает путь до функции
если вместо fn подставить соответственно Bar() и Foo, то работает

Daniel
29.12.2016
16:25:01
а!
вот видите, если условие формализовать - всегда найдется ответ

Max
29.12.2016
22:10:37
Как-то недавно кто-то упоминал решение для открытия страниц с js
Курл не даёт контента который подгружается js
Можете напомнить плиз как называется инструмент ю
?

Constantine
29.12.2016
22:13:29
фантом
силениум
зомби

Peter
29.12.2016
22:14:49

Max
29.12.2016
22:15:30
Спасибо

Peter
29.12.2016
22:24:34
эх, спят все ?

Slava
29.12.2016
22:28:01
никто не спит вроде
я тут щас beego смотрю, а что в нём было такого плохого, напомните?

Google

Мерлин
30.12.2016
08:06:55

Slach
30.12.2016
08:36:45
Народ, а вот эту либу https://github.com/moovweb/rubex
кто то реально использует??
насколько оно быстрое???
у меня в целом очень простое сравнение
мне надо проверять что строка соответсвует шаблону cd[0-9]+
ну вот и вопрос, а надо ли мне regexp тащить такой жирный в проект? или нет?
может это как то можно без regexp ?

Мерлин
30.12.2016
08:39:24

Admin
ERROR: S client not available

Мерлин
30.12.2016
08:39:46

Slach
30.12.2016
08:39:46
потому что там под капотом Cишная либа, которую надо тянуть как зависимость

Мерлин
30.12.2016
08:40:31
Будет очень быстро

i
30.12.2016
08:40:45
если только одна простая проверка, то регэкспы медленее посимвольной проверки строки

Slach
30.12.2016
08:40:51
даже на стандартном пакете regexp ?

i
30.12.2016
08:41:35
сначала regexp должен скомпилиться и так же посимвольно всё проверить

Slach
30.12.2016
08:41:37

Мерлин
30.12.2016
08:41:48

i
30.12.2016
08:43:17
Вызовы из сишных либ тоже добавляют большие задержки, для лёгких функций они не эффективны

Slach
30.12.2016
09:00:55
Можно вообще без него
ну вот как??
в смысле посимвольная процерка как правильнее реализовать?
ну чето у меня не получается =)
все время пытаюсь питонячий код смастырить
Хотя наверное вот так будет лучше всего
https://play.golang.org/p/Z-i6PPCVKQ
спасибо
а вот еще поясните за package
я првильно понимаю
что
для готовых бинарников использую
package main
и внутри
func main()
но при этом если мне надо часть кода вынести в отдельный файл и подключить его?
как это делать?
тоже указать package main
но просто не указывать func main ?
ну не городить же "отдельную либу" на github???
или надо все таки сделать
"подкаталог"
с другим package ??
и туда вынести библиотечный код?

Daniel
30.12.2016
09:13:48
Оба варианта валидны
И используются для разного

Google

Daniel
30.12.2016
09:15:27
Но простейший случай - другой файл, package main, без функции main - она уже определена в первом файле

Slach
30.12.2016
09:16:36
ну у меня цель
сделать
некий демон на http
с минимальным кол-вом зависимостей
т.е. код который пишу я не предполагает быть потом "библиотечным"
мне просто хочется его как то разбить код на составляющие
на несколько файлов
но при этом хочется чтобы при чтении кода мне не надо было думать
" откуда взялась эта переменная в main.go ?"
хотя конечно IDE помогает и нормально резолвит это дело до определения

Constantine
30.12.2016
12:07:50
ты по голангу готур хотя бы прошёл?

Roman
30.12.2016
12:09:02

Slach
30.12.2016
12:09:11
gotour прошел
вот повторно пытаюсь для себя все по полочкам разложить
вот поясните пожалуйста мне за slice и map ??
какую структуру лучше всего использовать если есть некоторое динамическое множество элементов и хочется быстро проверить вхождение значения в это множество?
при этом хочется также обойти это множество в порядке добавления новых элементов множества
у меня в голове почему то рисуется две структуры
[]string
и
map[string]bool
первая через append добавляет элементы
и потом по ней можно через range пройтись
вторая просто через := true
позволяет быстро проверить вхождение в множество
if _, is_exists := my_map[key]; is_exists {
// тут код
}
я в првильном направлении мыслю?
или есть уже какие то библиотеки которые аналог Ptyhon Lists или Python OrderedDict реализовли? если да то какие порекомендуете?

Roman
30.12.2016
12:24:24
if val, ok := dict["foo"]; ok {
//do something here
}
c мапами можно так
мапы быстрее массивов

Slava
30.12.2016
12:25:12
смотря на каком масштабе =)

Roman
30.12.2016
12:25:53
разве?
время доступа к мапе же O(1)

Slach
30.12.2016
12:26:37
ну я понимаю что for по слайсу медленнее чем достать элемент из мапы
но мапа не упорядоченная
а мне надо чтобы и упорядочено было
и чтобы проверка на вхождение в множество была быстрая
у меня масштаб небольшой, 40-50 элементов

Slava
30.12.2016
12:26:42
это амартизированное время на больших объёмах данных