
Max
14.06.2017
12:24:30

Taras ?
14.06.2017
12:24:34
:rand.uniform?
нет
у меня сейчас не эликсир а эрланг,
вот код —
random_bytes(Length) ->
crypto:strong_rand_bytes(Length).
random_unsigned_int(A, B) ->
Size = erlang:byte_size(binary:encode_unsigned(B)),
Rand_value = crypto:bytes_to_integer(?MODULE:random_bytes(Size)),
Result = A + (Rand_value rem (B - A + 1)),
if Result > B ->
?MODULE:random_unsigned_int(A, B);
true ->
Result
end.
random_latin_int_string(Length) ->
random_latin_int_string(Length, <<"">>).
random_latin_int_string(Length, Result) ->
Str = <<"0123456789abcdefghijklmnopqrstuvwxyz">>,
if erlang:byte_size(Result) < Length ->
Rand_place = ?MODULE:random_unsigned_int(0,35),
Result1 = binary:part(Str,{Rand_place,1}),
Result2 = <<Result/binary, Result1/binary>>,
?MODULE:random_latin_int_string(Length, Result2);
true ->
Result
end.

Max
14.06.2017
12:24:45
(ну не всегда, а когда random:uniform не то стал возвращать)
блэт

Google

Max
14.06.2017
12:24:57
зачем так?

Taras ?
14.06.2017
12:25:09
чтобы реальный рандом

Andrey
14.06.2017
12:25:10
> This random number generator is not cryptographically strong. If a strong cryptographic random number generator is needed, use one of functions in the crypto module, for example, crypto:strong_rand_bytes/1.
это в доке про rand
(эрланговской)

Taras ?
14.06.2017
12:25:27

Max
14.06.2017
12:25:33
а чем :crypto.rand_uniform(1, 1000) не то?

Alexander
14.06.2017
12:25:33

Andrey
14.06.2017
12:25:59
а часто ли нужно криптографически ранодомное значение? если по честному?
чем rand.uniform не устраивает, то?

Taras ?
14.06.2017
12:26:16

Max
14.06.2017
12:26:16
ну мне в данном случае не нужно
rand.uniform значит и буду использовать

Google

Taras ?
14.06.2017
12:28:11
еще возможно эту функцию добавили попозже, в последнее время,а год назад ее небыло

Alexander
14.06.2017
12:28:30
у меня прохладная история подоспела
делал я не так давно парсер реестра лексредств, положил все у себя в бд и дал доступ 1сникам, мол налетайте. Вообщем они уже неделю пытаются подружить 1с и юникод. Т.к значок градуса к примеру кладет 1с ;))
2017 год.
юникод не завезли

Max
14.06.2017
12:36:55

Alexey
14.06.2017
12:39:05
не знал )

abc
14.06.2017
13:38:17
кстати @noma4i все хотел спросить и забывал. как ваш стартап ? просто интересно

Александр
14.06.2017
15:32:51
Парни, привет, что-то меня озадачила работа с датами через mariaex
он возвращает даты нестандартного формата вида {{2016, 12, 11}, {14, 30, 22, 0}}
то есть даже не эрланговский
как с ним работать-то?

Max
14.06.2017
15:33:51
что это такое?

Александр
14.06.2017
15:34:32
mariaex это адаптер для подключения к MySQL используется в Ecto
где конвертируются даты и как в Ecto я пока не нашёл, если запрашивать через Ecto то всё нормально работает, а вот у меня есть несколько больших запросов которые я напрямую через SQL выполняю
вот там проблема с датами вылезла
конвертануть то несложно, но как-то стрёмно это
нашёл у ecto
https://github.com/elixir-ecto/ecto/blob/master/lib/ecto/type.ex#L791
тупо жрут всё что им дадут

Google

Александр
14.06.2017
15:48:09
ну ок
написал создателю mariaex посмотрим что он ответит

Can
14.06.2017
16:34:27
Пацаны
Го Краулера по чатам напишем
И по хитрому алгоритму какому нибудь поисковик по чатам замутим
Со ссылками

Denis
14.06.2017
19:09:30
Добрый вечер, может кто знает есть ли поддержка hstore в Ecto 2 без написания кастомного типа?

Alexander
14.06.2017
21:00:40
https://hexdocs.pm/elixir/NaiveDateTime.html вот есть from_erl

Александр
14.06.2017
21:01:59
не, в том-то и интрига
:calendar.local_time
{{2017, 6, 15}, {1, 1, 41}}
эрганговские даты без микросекунд 4м параметром во втором кортеже

Александр
14.06.2017
21:03:19
.from_erl не работает на такую структуру неправильную (с микросекундами)

Kazakbay
15.06.2017
08:03:07
Привет ребята, А есть ли в эликсире что то на подобии cron, ну чтобы через определенное время или в указанное время выполнялся какой то код?

Marsel
15.06.2017
08:05:01
через определенное время - я делал по этому примеру https://stackoverflow.com/questions/32085258/how-to-run-some-code-every-few-hours-in-phoenix-framework

Dmitry
15.06.2017
08:05:41
есть quantum

Kazakbay
15.06.2017
08:07:38

Ivan
15.06.2017
09:59:21
Привет всем
Тут вопрос возник не по эликсиру, а общий скорее

Google

Ivan
15.06.2017
09:59:52
как в бд можно хранить приватную инфу, но которая может понадобиться для использования в открытом виде
ну типо приватный ключ для работы с аккаунтом в соцсети
тоесть чтобы если уведут базу, то все равно ничего не поняли
пока только одна идея, у юзера есть пароль зашифрованный

Alexey
15.06.2017
10:01:33
пользуй 1С! ))) там БД вообще нипанятная

Ivan
15.06.2017
10:01:37
и приватный ключ при добавлении присаливать паролем его, и потом перед каждым использованием ПК просить у него пароль
кхкх

Admin
ERROR: S client not available

Dmitry
15.06.2017
10:02:19
Ты делаешь десктопный софт?

Ivan
15.06.2017
10:02:20
тоесть в качестве ключа шифрования использовать его же пароль
найн
Веб
базка условно ПГ

Dmitry
15.06.2017
10:02:44
Тогда я не понимаю что значит уведут базу

Ivan
15.06.2017
10:03:08
окей, зачем тогда хранят шифрованные пароли в БД?
а не в открытом виде

Dmitry
15.06.2017
10:04:04
Для того чтобы хозяин базы не мог увести пароль

Ivan
15.06.2017
10:04:12
окей
тогда считаем, что тут такая же история
но я почему то думал что это плюсом защита, что если бд уведут, то никто ниче не поймет все равно

Marat
15.06.2017
10:05:27

Google

Ivan
15.06.2017
10:05:40
Тогда я не понимаю что значит уведут базу

Marat
15.06.2017
10:06:03

Dmitry
15.06.2017
10:06:03
Просто для этого у oauth есть токен и app id
Если у тебя увели базу - ты инвалидируешь приложение
И все токены сразу не валидны

Ivan
15.06.2017
10:06:45
ну речь то не про oauth
а впринципе про любую приватную инфу

Dmitry
15.06.2017
10:09:31
У тебя в базе хранится зашифрованный пароль
Поэтому при добавлении ключа ты можешь его шифровать только зашифрованным паролем
А его будут знать, когда уведут базу

Ivan
15.06.2017
10:11:00
можно при добавлении ключа
просить ввести свой пароль

Dmitry
15.06.2017
10:11:37
А потом при использовании?

Ivan
15.06.2017
10:11:45
да
тоже просить

Dmitry
15.06.2017
10:12:09
Такой себе юзер экспириенс. Но конечно зависит от архитектуры

Ivan
15.06.2017
10:12:22
ну я вот только такой вариант и надумал
потому и спрашиваю, может кто что лучше знает?

Dmitry
15.06.2017
10:13:17
Я к тому что скорее всего это придёт к тому, что какой нибудь джун на твоём проекте засунет нешифрованный пароль в сессию, в оттуда она пойдёт в куку, и короче будет даже хуже чем не шифровать токены