
Anton
19.03.2018
08:23:10
И на касандре проект делали, тоже АМ не было
Где-то было научное сравнение? Лол

Alex
19.03.2018
08:23:41
Там весь фреймворк завязан на AM подобный интерфейс

Google

Alex
19.03.2018
08:23:44
те же вьюшки

Anton
19.03.2018
08:24:02
Если я сделаю что-то с интерфейсом АМ - оно будет работать
Так же и с AJ адаптерами

Alex
19.03.2018
08:24:59
Это не называется выкинуть его, это мимикрия.

Anton
19.03.2018
08:25:27

Alex
19.03.2018
08:25:39
Я не сказал что такого нет. Просто это по сути AM
я же не говорю что это прям через ActiveModel классы делается (хотя может)

Anton
19.03.2018
08:25:53
Есть, правда там возникают проблемы с экосистемой, но такое

Vasiliy
19.03.2018
08:46:15
парни, телеграм ботов же писал кто-нибудь, там нет метода чтобы перед публикацией в мардауне проверить допустимость сообщения?
—fixed--

Aleksey
19.03.2018
08:47:40
допустимость это что?

Vasiliy
19.03.2018
08:49:22
ну типа если через бота отправляешь с пробелами в конце, он ошибку выдаёт что текст с ошибкой, или например в маркдауне ссылку на пользователя чей ник не существует - тоже ошибку выдаёт

Google

Aleksey
19.03.2018
08:51:54
я просто не понимаю чем сообщение боту отличается от любого другого инпута

Vasiliy
19.03.2018
08:52:22
в принципе если сразу же отправлять, то можно исключение отловить и показать пользователю что текст не валиден, но у нас по расписанию отправка

Alex
19.03.2018
09:33:32
про сложность продажи монад это прям ключевое слово

Aleksey
19.03.2018
09:40:06
прочитал в пепеграмминг про монады и все равно не “купил”. в упор не вижу никакой прикладной пользы от них. автор привел пример с кучей вложенных ифов, “опустил” пример с guard clause как “ненаглядный” - ну конечно, надо же взять самый уродский способ для примера, чтобы нечитаемые монады на его фоне выглядели нормально

Anton
19.03.2018
09:40:32
я сейчас покажу с гардами пример
response = http.get(url, params)
return unless response[:status] == :success
validation_result = validator.call(response[:body])
return validation_result.errors unless validation_result.valid?
if user = user_repository.create(response[:body])
NotificationWorker.perform_async(user.id)
end
не скажу, что этот способ мне нравится больше в данном примере

Aleksey
19.03.2018
09:41:20
а по-моему более чем

Anton
19.03.2018
09:41:25
вкусовщина
поэтому и написал так
польза тупо в чейне данных, если зашли dry-transactions, то это просто гибкий способ делать то же самое
(почти)

Aleksey
19.03.2018
09:42:25
плюс никто не мешает каждый шаг в собственный метод обернуть. и не придется каждому новому програмисту на проекте сначала объяснять что это за fmap’ы, а потом бороться с тем, чтобы он их и не начал переписывать на общепринятый стиль без монад
не. где-то внутри закрытых гемов, которые пишет 2-3 человека - норм, если оно помогает сделать код красивее
я согласен
а вот на проектах не не не и фу фу фу

Anton
19.03.2018
09:42:53
да и в проекте это работает
у нас 6 бэкендеров, считая меня, каждому объяснил что это

Google

Anton
19.03.2018
09:43:18
сейчас все пишут и все довольны
хотя основной юз кейс у нас - result object для операций
т.е. по сути - это все вкусовщина
но знать о том, что есть еще и такой способ - полезно, так как развивает кругозор

Aleksey
19.03.2018
09:44:27
тут спорить не буду ?

Anton
19.03.2018
09:46:44
мне на самом деле интереснее другое, стоит дальше майнд мапы делать или нет

Vasiliy
19.03.2018
09:46:51
сегодня ты тащишь монады в руби, а завтра переписываешь всё на хаскель

Anton
19.03.2018
09:47:18
да в куче языков есть из коробки подобное
https://doc.rust-lang.org/std/result/
пример result монады в кор расте
в джаве помню было похожее и с#, но могу ошибаться

Daniel
19.03.2018
09:51:04
еще можно инкапсулировать вычисления разного рода, так как интерфейс один и тот же. мне может прийти task или either, и мне все равно, синхронное там вычисление, или нет

Anton
19.03.2018
09:51:18
да
и в этом прикол

Daniel
19.03.2018
09:51:34
в джаве есть maybe https://docs.oracle.com/javase/8/docs/api/java/util/Optional.html

Anton
19.03.2018
09:51:54
а, тем более

Daniel
19.03.2018
09:53:11
скала так вообще чуть ли не полностью из них состоит

Anton
19.03.2018
10:04:33
и используете ли вы их или нет вообще

Daniel
19.03.2018
10:13:48
кстати, юзаю dry-transaction, и вроде все хорошо, но часто бывает так, что для разных операций в транзакции нужен общий контекст. если операции чейнить так, чтобы output одной шел сразу в input другой, нужно прокидывать контекст по операциям через return value. но тогда операция привязывается к контексту, и теряет независимость. так и не придумал, как решить это в dry-transaction, поэтому немного отхожу от них. может есть рецепты, как это хендлить?

Google

Anton
19.03.2018
10:14:13
кстати, юзаю dry-transaction, и вроде все хорошо, но часто бывает так, что для разных операций в транзакции нужен общий контекст. если операции чейнить так, чтобы output одной шел сразу в input другой, нужно прокидывать контекст по операциям через return value. но тогда операция привязывается к контексту, и теряет независимость. так и не придумал, как решить это в dry-transaction, поэтому немного отхожу от них. может есть рецепты, как это хендлить?
посмотри на ду нотации в монадах
я даже не шучу
переписываю все транзакции на эту штуку
сейчас скину
https://github.com/dry-rb/dry-monads/pull/50

Daniel
19.03.2018
10:17:49

Anton
19.03.2018
10:18:08
и главное то, что из шага в шаг контекст не надо пробрасывать

Lavrushchik
19.03.2018
10:45:55
вопрос. есть ransack и globalize.
есть search_form_for @q, и там есть селект а-ля <%= f.select :translations_operation_type_eq, options_for_select bla-bla-bla %>
впихиваю js-код на просто алерт, когда изменяется значение в select - ничего не происходит
хотя id-селекта этого правильно указан

Dmitry
19.03.2018
10:47:54
Покажи js

Lavrushchik
19.03.2018
10:49:12
$("#q_translations_operation_type_eq").change(function(){
alert('123');
})

Black
19.03.2018
10:54:55

Lavrushchik
19.03.2018
10:57:35
а что мне фидл даст, если search_form_for под ransack заточен

Black
19.03.2018
10:58:25
Это не причем. Или хотя бы через консоль бразузера посмотри на id этого select!
Или возможно у ransack свой метод на этот id-шник, поэтому его принимает. Попробуй свой класс приписать и к нему прикрепить событие

Subb98
19.03.2018
11:38:49
Доброго дня. Подскажите, с чем может быть связано такое поведение? Контроллер есть, вьюха тоже. Я пробовал менять даже уже созданные контроллеры, но на любое моё изменение он кидает 404 код.

Alex
19.03.2018
11:41:49
смотри логи, может что то принудительно вызывает 404

Google

Mikhail
19.03.2018
11:42:07
localhost:3000 ?

Subb98
19.03.2018
11:46:46
Не локалка, тестовый сервер
Я там даже консоль не могу открыть

Максим
19.03.2018
11:47:15
но как то же ты смотришь роуты
или ты локально меняешь
а ожидаешь что изменения будут уже на сервере?

Subb98
19.03.2018
11:47:39
Именно. Гоняю файлы через sftp и перезагружаю рельсы.

rekero
19.03.2018
11:49:27
Разверни локально и посмотри

Felix
19.03.2018
11:50:05

Subb98
19.03.2018
11:50:57

Felix
19.03.2018
11:51:16
ssh доступен?

Subb98
19.03.2018
11:51:20
Да.

Felix
19.03.2018
11:52:01
ну так запусти сервак ручками, не как демон

rekero
19.03.2018
11:52:06
Да.
А чего тогда говоришь, что консоль открыть не можешь

Subb98
19.03.2018
11:52:34
Я имею ввиду консоль рельсов.

rekero
19.03.2018
11:52:58
Я тоже

kolas
19.03.2018
11:53:46
сделай там RAILS_ENV development, тогда легче будет дебажить )
еще web-console можно приделать

Twelfth
19.03.2018
11:57:27
здравствуйте. Подскажите пожалуйста, есть ли возможность установки Ruby и gem'ов в определённую директорию? Т.е. некий аналог virtualenv для python

Subb98
19.03.2018
11:59:17
rvm
гемсеты ещё. Не знаю, используются ли сейчас, знакомый говорил, что, вроде, не актуально.