
Marsel
14.07.2017
13:39:54
самому генерировать случайный, и класть в базу
при логауте удалять

Nikolay
14.07.2017
13:41:10
это старый-добрый способ, да...можно в редисе хранить, допустим их
но так ты потеряешь stateless твоей auth механики

Google

Nikolay
14.07.2017
13:42:19
ещё, кстати, есть способ как бороться с токенами, которые при логауте остаются "живыми"
завести "black list"
и помещать туда все логаут токены

Marsel
14.07.2017
13:43:14
интересно
а потом со временем истекшие выявлять c verify?

Nikolay
14.07.2017
13:44:51
нуда, и удалять
или опять же запихать их в редис, и сделать ttl == expires_in твоих токенов
т.е. редис сам за тебя будет чистить этот список
но я так не делал, я чисто предполагаю, что так можно))

Marsel
14.07.2017
13:45:38
ага, спасибо за мысль

Aleksandr
14.07.2017
14:34:30
а как это спасет, если кто-то перехватил токен?

Nikolay
14.07.2017
14:36:51
спасёт, если ты спалишь это)

Aleksandr
14.07.2017
14:38:04
да, я не догнал сразу, что его надо уметь протухать)

Google

Nikolay
15.07.2017
08:36:46
https://image.prntscr.com/image/cs8rsJu0SWOHPUrAks9NLQ.png
раз 10ый на это натыкаюсь и каждый раз пригорает не по детски

Dmitry
15.07.2017
08:37:50
По-моему логично

Nikolay
15.07.2017
08:38:16
но не удобно же пздц

Dmitry
15.07.2017
08:41:34
Что именно не удобно?
Я наверное туплю

Nikolay
15.07.2017
08:45:37
https://image.prntscr.com/image/Q_-5SRhCSpGdOVwXjSQQhQ.png
вот так хочу :)

Dmitry
15.07.2017
08:47:58
Для этого есть гварды

Nikolay
15.07.2017
08:54:16
ну так у меня и припекает оттого что нет на уровне parse guard'a на is_integer
имхо, это вполне ожидаемое поведение

Александр
15.07.2017
13:35:52
привет, тут вопрос конечно в том, откуда получаются данные
откуда они беруться?
если нужен костыль, то можно конечно делать и так:
String.to_integer(to_string(5))
String.to_integer(to_string("5"))
и в руби, если непонятно откуда беруться данные, тоже приходиться приводить типы, через .to_s
в эликсире реально это легче (и понятнее) контролировать через гвардов

Dmitry
15.07.2017
14:23:25
Надо с архитектурной точки зрения максимально быстро разобраться с понимаем "что за данные"
И причесывать их сразу под один гребень
Поэтому я не очень понимаю как в середине пайплайна можно получить значение, которое толи число толи строка
А в начале пайплайна - гвард и вперёд

Nikolay
15.07.2017
14:25:11
разумеется это внешние данные

Google

Nikolay
15.07.2017
14:25:45
разбор request параметров из запроса...раньше присылались get'ом, потом стали post'ом - строками
в условных руби ничего б не случилось даже
а тут всё развалилось
при чём по тексту ошибки вообще ниче не понятно :(

Dmitry
15.07.2017
14:26:35
Зато в эликсире эксплисит
А в гипотетическом жс одно изменение прошло, второе прошло, а третье - полная жопа
И кстати можно с помощью чейнджсета обрабатывать данные из запроса, не привязывась к бд
И они будут кастоваться правильно
В нужный тип
Но это только для профи феникса

Nikolay
15.07.2017
14:29:02
типа форм обжекта на чейнджсетах?
у меня есть 1 такой в проекте

Nikolay
15.07.2017
14:29:42
через embedded_schema
но он 1, т.к. я так и не понял насколько оно полезно)

Dmitry
15.07.2017
14:33:16
Сделал бы на все action по схеме - не получил бы беды при смене get на post
Впрочем, еси затеешь такой большой рефакторинг - подумай о переезде на graphql. Он вообще строготипизированный, там накосячить не получится

Александр
15.07.2017
15:11:17

Nikolay
15.07.2017
15:15:13
get'ом то integer... от того и сломалось

Vasiliy
16.07.2017
00:48:46
кто пользует stackdriver – как вы шлете туда логи?

Dmitry
17.07.2017
05:56:25
Вот может написать спамера и спамить спамеров?

Google

Dmitry
17.07.2017
05:56:56
Я уверен, что мой ddos убьёт их хреновые пхпшные или питоновские скрипты
Если они есть конечно...

Vladimir
17.07.2017
06:10:55
стать спамером чтобы спамить спамеров. :)

Александр
17.07.2017
06:11:48
спамят, кстати, бодрые чуваки обычно
у меня сервер однажды подломили через WP сайты (для спама как раз), там чувак на нескольких языках программирования скрипты в реальном времени правил, пока я его с сервака выгонял

Dmitry
17.07.2017
06:13:51
Я тоже занимался спамерством
В Израиле как раз

Admin
ERROR: S client not available

Dmitry
17.07.2017
06:14:36
Полгода жёсткие скрипты на selenium лупил чтобы засрамить квору
И веб интерфейс ко всему этому добру
Но надеюсь больше не заниматься этим для сервисов без апи

Александр
17.07.2017
06:20:56
а каких спамеров-то спамить хочешь?

Dmitry
17.07.2017
06:33:07
Которые спамят сюда

Knock
17.07.2017
07:57:24

Александр
17.07.2017
08:05:02
есть кто на примете?

Константин
17.07.2017
08:28:59
Привет всем, кто в регулярках силен? Надо в строке искать слово, но без вхождения в другие слова
Например: намочу мочу самочувствие.
Найти надо только "мочу". Причем если оно в конце предложения и с точкой - тоже надо находить)
Чет сижу и туплю)
Вот есть такой момент, (?<![\w\d])мочу(?![\w\d])
но он точку не берет

Google

Константин
17.07.2017
08:31:34
Все, гоню.. оно работает

Александр
17.07.2017
08:35:25
/\bмочу\b/

Anton
17.07.2017
08:44:02

Константин
17.07.2017
08:45:32
я пробовал, но не получалось.. надо было юникод включать

Aldar
17.07.2017
12:19:56
https://blog.discordapp.com/scaling-elixir-f9b8e1e7c29b

Aleksey
17.07.2017
12:50:55
уже присылали

Vasiliy
17.07.2017
15:17:51
как это нормально записать в ecto?
query =
from l in __MODULE__,
where: fragment("coordinates <@ circle '((?, ?), ?)'", ^lat, ^lon, ^radius),
limit: @limit
Repo.all(query)
не интерполировать же в строку это %)
query = """
SELECT * FROM locations
WHERE
coordinates <@ circle '((#{lat}, #{lon}), #{radius})'
LIMIT #{@limit}
"""
result = Ecto.Adapters.SQL.query!(Repo, query)

Nikolay
17.07.2017
15:19:18
это postgis же?
там dsl либа есть для ecto для postgis
не смотрел в её сторону?

Vasiliy
17.07.2017
15:19:52
ой, не видел её, а как называется?
https://github.com/bryanjos/geo ?
она? ^

Nikolay
17.07.2017
15:20:57
угу)
там нет наворотов, но для моих кейсов я находил там готовые решения)

Vasiliy
17.07.2017
15:22:00
ага, звездочка стоит, значит видел, просто забыл, спасибо