Никита
30.05.2018
12:59:24
корявое решение могу предложить - периодически удалять файлы, которые не сохранены в базе)
Alex
30.05.2018
13:02:14
выгребать preload - ом все картинки юзера перед его удалением, потом удалять юзера и если все оk, то теперь картинки
Никита
30.05.2018
13:02:48
вот тоже, да. в функцию удаления юзера засунуть функцию удаления связанных картинок
Dmitriy
30.05.2018
13:22:26
а в Ecto запросе можно в elixir-функцию передавать поле запроса?
Пример:
Repo.all(
from m in Message
select: %{id: m.id, body: m.body, attachment_url: ^attachment_url(m.id)}
в запросе моя функция attachment_url, но ругается на аргумент
undefined function m/0
что-то подобное можно в ecto?
Google
Денис
30.05.2018
13:22:28
ну вот я об этом тоже думал да, но как то это некрасиво, но наверное так пока и сделаю
Dmitriy
30.05.2018
13:22:54
не работает пока
это или после запроса проходить по коллекции и вставлять attachment_url, но не охота так. Хочу в запросе
Alex
30.05.2018
13:34:53
Fey
30.05.2018
13:38:17
on_delete: :delete_all перехватить нельзя, потому что оно на уровне бд делается. поддерживаю идею @Nekifirus: в функции удаления юзера предварительно вынуть все пути до картинок, удалить юзера и если всё ок, то запустить асинхронный таск, который зачистит картинки на диске
Никита
30.05.2018
13:39:04
ну эт не только моя идея, но это самый правильный путь
Dmitriy
30.05.2018
13:47:57
Alex
30.05.2018
14:09:28
Почему бы просто не хранить картинки images/user_id/***.png
После удаления юзера и его images, просто rm -rf images/user_id
Fey
30.05.2018
14:56:49
если так можно хранить, то конечно, так лучше
Raman
30.05.2018
15:47:36
Check out @erlang_org’s Tweet: https://twitter.com/erlang_org/status/1001742971543355392?s=09
Dmitry
30.05.2018
22:08:52
О, класс, хотят диалайзер проверку встроить в Elixir.... Очень хорошая идея.
Dmitriy
31.05.2018
07:39:14
Привет! Можете посоветовать либу на Objective-C для работы с каналами феникса?
эта не хочет работать:
https://github.com/RokkinCat/phoenix-objc
Google
Dmitriy
31.05.2018
07:43:15
чтобы можно было подключаться к каналам, слушать их и пушить
на java для андроид тоже оказывается не удалось найти либы для работы со свежим фениксом
Vasily
31.05.2018
07:50:15
https://github.com/davidstump/SwiftPhoenixClient
а ежели уж не свифт, то что-то такое https://github.com/acmacalister/jetfire
Alexey
31.05.2018
07:52:55
Dmitry
31.05.2018
07:54:14
@ne1ro https://www.youtube.com/watch?v=l4ISqxmZQtE - вот здесь об этом говорится.
Alexey
31.05.2018
07:54:35
Dmitriy
31.05.2018
08:09:28
Dmitry
31.05.2018
08:26:58
mix test --slowest 5 - прикольная функциональность, не знал о её существовании (или видимо пропустил).
Артем
31.05.2018
09:25:30
посоны, кто-то решал задачу верификации телефонных номеров сброшенным звонком? типа, потом просить ввести юзера последние цифры номера?
вот думаю сервис юзать, или что-то наговнякать от себя с сип клиентом
Alexey
31.05.2018
10:18:24
ха. бесплатно получается
Alexey
31.05.2018
10:45:47
Артем
31.05.2018
10:51:16
Alexey
31.05.2018
10:52:31
@artem_pankov Обычно же ты поднимаешь трубку, и женщина, с приятным акцентом, диктует циферки )
Артем
31.05.2018
10:53:36
нам это не нужно
Alex
31.05.2018
11:05:37
А вообще, зачем именно звонок? Чем смс не смс?
Артем
31.05.2018
11:08:06
дораха
совет супер, но интересует практический опыт, может кто реализовывал уже
Google
Mikhail
31.05.2018
11:12:38
смс обычно денег стоит, а дозвон бесплатный
Kioshimafx
31.05.2018
11:15:10
SIP оператор должен поддерживать эти статусы дозвона что-бы можно было понять прошел он или нет. Насколько я помню это не у всех есть.
А так ничего сложного в этом нет, на элике не писал такого.
Артем
31.05.2018
11:19:31
Kioshimafx
31.05.2018
11:29:37
а что ему быть против? вы же абон плату платите и линию не занимаете
и вам хорошо и им
просто у вас фикс прайс, не за минуты
Лучше всего к операторам с прямым вопросам обратиться по мылу, а там кто быстрее ответит и лучше предложит, скрывать точно нет смысла. С операторами надо дружить, что-бы ночью хорошо спать :)
Alexey
31.05.2018
12:02:16
по идее, sip операторы еще позволяют произвольный номер телефона звонящего подставлять
Evgeny
31.05.2018
12:49:26
Народ, есть ли возможность получить список названий всех модулей доступных в приложении?
Yury
31.05.2018
12:52:23
типа такого Application.spec :app, :modules ?
Evgeny
31.05.2018
12:56:13
Kioshimafx
31.05.2018
13:05:25
MrFlorius
31.05.2018
16:49:44
Evgeny
31.05.2018
16:51:35
Buka
01.06.2018
08:09:13
Добрый день, подскажите как можно склеить два списка в один, таким образом что первый элемент первого списка склеивается с первым элементом второго. И там и там строки. Я не прошу решение готовое, просто название метода который подошел бы в этом случае. Спасибо.
Dmitry
01.06.2018
08:11:35
Enum.zip, но склеенные элементы будут туплом
Buka
01.06.2018
08:21:26
Максим
01.06.2018
08:30:51
Привет! Не могу найти описание и структуру файла cache_manifest.json
где про него почитать?
Google
Dmitry
01.06.2018
09:11:24
@igorfilippov3
Stream.zip(["1", "2"], ["a", "b"]) |> Enum.map(fn({str1, str2}) -> str1 <> str2 end)
Buka
01.06.2018
09:12:28
Dmitry
01.06.2018
09:12:45
Соединяет 2 строки, если нужно соединить строки.
["1a", "2b"]
Buckler
01.06.2018
12:27:59
Hello, hanie!
Please, calculate:
24+68=...
If you don't answer - you'll get banned from the channel...
Good luck!
Buka
02.06.2018
11:38:28
Ivik
02.06.2018
12:22:05
всем, привет
Кто может порекомендовать книгу / ресурс
чтоб на Эликсире норм писать ?
Перехожу с Руби
и вижу, что у вас свой подход (
типа распределение логики по предложениям, например)
Это специфика языка или специфика функционального программирования ?
Никита
02.06.2018
12:27:08
Programming Phoenix читай
Ivik
02.06.2018
12:30:18
Никита
02.06.2018
12:32:42
а про разделение - ну если можно разделить - почему бы и нет. упрощает переиспользование. Сделал, например, свой рассыльщик мыл - и юзай его во всех дальнейших проектах и тд. В руби это гемами вроде как называется.
ну и здесь все привычные из руби гемы будешь писать сам)))
Ivik
02.06.2018
12:36:34
я немного не про это
вот напрмер из введения
defmodule ListDrop do
def falls(list) do
falls(list, [])
end
def falls([], results) do
Enum.reverse(results)
end
def falls([head|tail], results) do
falls(tail, [Drop.fall_velocity(head) | results])
end
end
Вызов Enum.reverse/1 можно также вставить в функцию falls/1, играющую роль точки входа. В любом случае будет получен правильный результат, однако мы предпочли бы вернуть правильный результат из falls/2.
Никита
02.06.2018
12:38:18
А, ну это патерн-матчинг. Без него вообще непонятно как жить))) Это фича
Ivik
02.06.2018
12:39:26
понимаю, что это может быть субъективно
но хочется найти объяснение и "правила" если они есть
Никита
02.06.2018
12:41:07
никто не заставляет тебя это юзать. можешь делать case или даже if. Со временем поймешь прелесть и уже не остановишься. какие тут объяснения могут быть - кроме как "это удобно и эффективно"
Ivik
02.06.2018
12:42:36
ок,
наверное, еще не распробовал
спасибо
Buka
02.06.2018
13:19:15
Google
Dmitry
02.06.2018
13:25:12
Azat
02.06.2018
15:41:33
Я например начинал учить эликсир с книжки Learn you some erlang
Потом официальный туториал по эликсиру и фениксу
Artem
03.06.2018
03:50:12
helpfull
https://github.com/whatyouhide/stream_data
на Crystal
https://www.mint-lang.com/
mardybm
03.06.2018
04:37:48
https://elixirforum.com/t/programming-phoenix-1-4-release-date-update-beta-out-now/2469/59
люди уже читают бетку Programming Phoenix 1.4
ни у кого нет этой книжки?
Vitaly
03.06.2018
05:35:36
у меня есть
Dmitry
03.06.2018
05:40:44
Переводить не собираются?
Vitaly
03.06.2018
06:49:09
пока переведут, то elixir 2, а то и 3 выйдет
если переведут