Size: a a a

2020 April 30

SS

Sergey Shishkin in pro.elixir
phx.new это создание нового проекта. зачем это на готовом проекте решительно не понятно.
источник

D

Dk in pro.elixir
Sergey Shishkin
phx.new это создание нового проекта. зачем это на готовом проекте решительно не понятно.
Но ведь не вся структура проекта сохраняется в github. Или вся?
источник

D

Dk in pro.elixir
Можно тогда по шагам: что делать, когда я сделал git clone?
источник

D

Dk in pro.elixir
mix deps.get, setup и погнали?
источник

D

Dk in pro.elixir
Ещё какие-то новые зависимости подтянулись:
PubSub и Telemetry. Встроились в проект и работают.
Надо завтра почитать что это такое.
источник

VS

Vladimir Sekisov in pro.elixir
Lama Lover
Сгенерирует список и двигается слева направо по всей строке и ещё нужно не [string, zeroes], а [string | zeroes], тогда как String.trim_trailing двигается справа налево по хвосту из нулей и возвращает строку
неа,
- я применил :string, а не String и он не работает, так
как вы написали
- в вопросе нужно дойти до
 нулей, а не отбросить
хвост
- и это вообще binary, так
что никаких поисков по  графемам, нужно сразу использовать :binary модуль,
где split/trim нифы
источник

AU

Alexander Uljev in pro.elixir
Привет. Как считаете, если писать статью на английском, то где лучше публиковаться?
источник

LL

Lama Lover in pro.elixir
Alexander Uljev
Привет. Как считаете, если писать статью на английском, то где лучше публиковаться?
medium
И скинуть нам ссылку, конечно же
источник

LL

Lama Lover in pro.elixir
Vladimir Sekisov
неа,
- я применил :string, а не String и он не работает, так
как вы написали
- в вопросе нужно дойти до
 нулей, а не отбросить
хвост
- и это вообще binary, так
что никаких поисков по  графемам, нужно сразу использовать :binary модуль,
где split/trim нифы
Да, :string.split тут вообще не верный вариант. А вот в тот же binary.split работает за всю длину строки, пока String.trim_trailing только за длину хвоста из нулей
Грубо говоря, если длина строки = длина головы (n) + длина хвоста (m), то :binary,split работает за O(n + m), а String.trim_trailing работает за O(m) что быстрее
И это не говоря про то, что :binary.split() сделает O(m) перекопирований строк (если старая версия будет использоваться)
источник

V

V in pro.elixir
Dk
mix deps.get, setup и погнали?
setup или ecto.migrate, смотря что у тебя
источник

VS

Vladimir Sekisov in pro.elixir
Lama Lover
Да, :string.split тут вообще не верный вариант. А вот в тот же binary.split работает за всю длину строки, пока String.trim_trailing только за длину хвоста из нулей
Грубо говоря, если длина строки = длина головы (n) + длина хвоста (m), то :binary,split работает за O(n + m), а String.trim_trailing работает за O(m) что быстрее
И это не говоря про то, что :binary.split() сделает O(m) перекопирований строк (если старая версия будет использоваться)
вы как-то странно сравниваете `String.trim_trailing`, делающий n копирований binary, где n - число совпадений шаблона в конце строки
и NIF, делающий один`memcpy` в данном случае.
Я не гордый - посмотрел исходники.
источник

AU

Alexander Uljev in pro.elixir
Lama Lover
medium
И скинуть нам ссылку, конечно же
Медиум с людей денег просит
источник

AU

Alexander Uljev in pro.elixir
Как насчёт dev.to или reddit?
источник

KA

Kanat Amren in pro.elixir
Alexander Uljev
Привет. Как считаете, если писать статью на английском, то где лучше публиковаться?
источник

AM

Azat Murtazin in pro.elixir
Alexander Uljev
Медиум с людей денег просит
Вот, да. 5 бачей в месяц за никуя
источник

V

V in pro.elixir
Dk
mix deps.get, setup и погнали?
В целом да, при первом развёртывании на проде так. Нужно только помнить, что требуется само наличие базы; маппинг портов, если это nginx; сертификаты для феникса если он запускается с https; secret_key_base; настройка куда будут падать логи если они есть. Дальше запускаешь сервер феникса и погнали.

При апдейте делаешь не setup а ecto.migrate, можешь дропнуть _build, нужно удалить неиспользуемые либы в deps (mix deps.clean --unused) либо грохнуть все и снова установить. Может быть нужно почистить скомпилированные файлы вебпака. Останавливаешь старый инстанс приложения, чистишь, мигрируешь, запускаешь новый.
источник

IK

Ihor Katkov in pro.elixir
Boris Beginin
Ребят испытваю сложности с строками и атомами, какой просто способ научить функцию работать с обееми типами?
По хорошему, в твоем контроллере, ты должен валидировать то, что приходит. Для этого мы переиспользовали ecto схемы с ченджсетами. На вход мапа со ключами строками, на выходе структура с ключами атомами. К примеру
defmodule OrkestroWeb.Params.CreateDelivery do
 @moduledoc false
 use Ecto.Schema
 import Ecto.Changeset

 use Params.Schema

 alias Orkestro.Core.Enums.DeliveryCreationReason.Ecto, as: DeliveryCreationReason
 alias Orkestro.Orders.{Address, DeliverySchedule, Note, Parcel}

 @required ~w(order_id reason schedule parcel pickup dropoff)a

 embedded_schema do
   field(:order_id, :string)
   field(:source_delivery_id, :string)
   field(:reason, DeliveryCreationReason)
   embeds_one(:schedule, DeliverySchedule)
   embeds_one(:parcel, Parcel)
   embeds_one(:pickup, Address)
   embeds_one(:dropoff, Address)
   embeds_many(:notes, Note)
 end

 def to_valid_attrs(%{} = params) do
   params
   |> from()
   |> to_map()
 end

 @spec to_map(Ecto.Changeset.t()) :: {:ok, map()} | {:error, Ecto.Changeset.t()}
 defp to_map(%Ecto.Changeset{valid?: true} = params), do: {:ok, Params.to_map(params)}
 defp to_map(%Ecto.Changeset{} = changeset), do: {:error, changeset}
end
источник

LL

Lama Lover in pro.elixir
Vladimir Sekisov
вы как-то странно сравниваете `String.trim_trailing`, делающий n копирований binary, где n - число совпадений шаблона в конце строки
и NIF, делающий один`memcpy` в данном случае.
Я не гордый - посмотрел исходники.
В том-то и дело, что String.trim_trailing не копирует каждый раз, потому что рекурсия хвостовая, а бинарь - это аргумент. Там просто меняется значение длины бинаря. Так что тут копируется один раз
В случае с :binary.split копирование и правда будет один раз и тут он будет быстрее. Я запутался, потому что сначала вы написали String.split
источник

IK

Ihor Katkov in pro.elixir
источник

IK

Ihor Katkov in pro.elixir
перенесли в онлайн. Бум
источник