
Никита
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 выйдет
если переведут