ojab
20.03.2018
17:09:58
и возможны всякие казусы в других местах
Lavrushchik
20.03.2018
19:07:03
почему шрифты кастомные в продакшене могут не работать?
s
20.03.2018
19:10:22
Из-за cors, если они загружаются с другого домена
Но «могут не работать» очень абстрактное определение
Google
David
20.03.2018
19:12:53
Lavrushchik
20.03.2018
19:13:47
это как?(
David
20.03.2018
19:14:31
В браузере открыть консоль разработчика и посмотреть что красным будет написано
Artem
20.03.2018
19:30:45
Rails 5.2.0 RC2: Active Storage, Redis Cache Store, HTTP/2 Early Hints, CSP, Credentials
and Webpacker 3.0
http://weblog.rubyonrails.org/2018/3/20/Rails-5-2-RC2/
Lavrushchik
20.03.2018
19:40:18
но блин, в деве же норм работает
v
20.03.2018
19:45:39
а ты посмотри логи сервера
не пишет ли он про отсутствие прав доступа к файлу?
Lavrushchik
20.03.2018
19:51:33
в логах сервера ничего
партиалы рендаряться, инфа с бд грузится
нашёл проблему
в скомпиленных ассетах к названиям шрифтов добавляется что-то типо соли MuseoSansLight-ef8689b99568cbf1af648f286a76e56e6b82acf42b3db4891779d253c4d1905c
Кстать, вопрос - от этой псевдосоли можно как-нибудь при компиле ассетов избавиться?
Google
Dmitry
20.03.2018
20:05:40
Это не "псевдо соли", а хэш файла. Почитай про asset pipeline
Lavrushchik
20.03.2018
20:07:43
ну у меня в css-файле вот такое:
@font-face{
font-family: 'MuseoSansLight';
src: url("fonts/MuseoSans/MuseoSansLight/MuseoSansLight.ttf");
}
а папка fonts лежит в stylesheets.
у меня препроцессоры css не юзаются
Denis
20.03.2018
20:25:07
Ребят, какими тайм трекерами у вас в командах пользуются?
TimeDoctor все больше разочарует. И мириться с его лагами все сложнее.
Vasiliy
20.03.2018
20:34:06
Toggl для себя
Есть toptal tracker, не пробовал т.к. тогла хватает за глаза
Denis
20.03.2018
22:14:37
Ну как я вижу у них нет интеграции с jira, а это кртичино
Александр
20.03.2018
22:31:08
Александр
21.03.2018
06:59:47
Кто-нибудь знает, как сделать UNION без костылей?
ojab
21.03.2018
07:00:30
Arel считается костылём?
Александр
21.03.2018
07:04:25
Не сталкивался с ним) хотелось бы что-нибудь нативное, built-in решение в AR) очень странно, что такая фича отсутствует
Вот, что точно хак)
module UnionHack
def union(relations, opts={})
query = 'SELECT '+ (opts[:distinct] ? 'DISTINCT ' : '' ) +'* FROM ((' + relations.map { |r| r.ast.to_sql }.join(') UNION (') + ')) AS t'
query << " ORDER BY #{opts[:order]}" if opts[:order]
query << " LIMIT #{opts[:limit]}" if opts[:limit]
find_by_sql(query)
end
end
ojab
21.03.2018
07:08:12
(базово — см. Model.where().union(Model.where()), получить из него sql можно через .to_sql)
ну и добавить order/distinct/whatever можно как-то так: Arel::SelectManager.new(Model.where(id: 1).union(Model.where(id: 2))).order(:id).distinct
Александр
21.03.2018
07:18:42
Ну так union при объединении distinct делает, вроде
А результат будет типа Arel::Nodes::*, так?
А что, если мне нужно получить на выходе список [class User]
ojab
21.03.2018
07:21:33
в этом плане ничего не меняется, тот же find_by_sql или .where(arel_query)
Google
Александр
21.03.2018
07:22:31
Хорошо, спасибо! Сейчас попробую)
Мне тут нашептали, что union это сам по себе костыль, есть мнение по этому поводу?)
ojab
21.03.2018
07:24:27
да, лучше не юзать без необходимости (или хотя бы юзать union all, если возможно и нужен именно union)
No
21.03.2018
14:16:23
Memory
If there is one resource that you will run out of first, it will likely be memory. Sorting and aggregations can both be memory hungry, so enough heap space to accommodate these is important. Even when the heap is comparatively small, extra memory can be given to the OS filesystem cache. Because many data structures used by Lucene are disk-based formats, Elasticsearch leverages the OS cache to great effect.
A machine with 64 GB of RAM is the ideal sweet spot, but 32 GB and 16 GB machines are also common. Less than 8 GB tends to be counterproductive (you end up needing many, many small machines), and greater than 64 GB has problems that we will discuss in Heap: Sizing and Swapping.
Ребята, тут такой вопрос возник. Штука выше - с официального гайда Elastic-а по требованиям к ресурсам инстанса на продакшене.
А, вопрос забыл. У кого есть опыт - он действительно такой прожорливый по RAM?
ojab
21.03.2018
14:27:35
смотря сколько данных, очевидно
No
21.03.2018
14:29:03
Окей, то есть я правильно понимаю, что узнать можно только поэксперементировав?
Или кто-то может подсказать, на что рассчитывать с тремя индексами где-то на лям записей в сумме?
Хм, подумал о своей формулировке вопроса
Забейте, я прошу абстрактные советы в вакууме походу )
Sergei
21.03.2018
14:36:13
Если на амазоне будешь разворачивать, то стоит еще учитывать интенсивность записи данных. Я например при постоянной записи в небольшой кластер, часто сталкивался с тем, что кластер переодически падал, из-за амазоновской отсечки в CPU, там у них фильтр, стоял, что если нагрузка CPU достигает скольки-то процентов и держится, они вырубают кластер. Решается это как правило расширением кластера
D
21.03.2018
14:37:22
Подскажите как к request.path_info прицепить параметры в рельсе?
Alexander
21.03.2018
14:37:48
Подними готовый докер образ и напуляй туда своих записей. Заодно и нам расскажешь. А вообще да, никто не знает размер твоих записей, вопрос в вакууме)
Это я про еластик
Mikhail
21.03.2018
14:38:37
Sergei это именно так работают instance-ы типа t2, а не весь амазон в целом, на других типах нет CPU credits + при создании t2 можно указать что если идет оверхед по доступным CPU кредитам просто списывать больше денег а не урезать CPU до нуля :)
D
21.03.2018
14:38:57
Sergei
21.03.2018
14:39:55
No
21.03.2018
14:41:02
Nikita
21.03.2018
14:47:28
гайз подскажите по dry-validation, такой кейс, есть кастомная валидация, в которой выполняется проверка, и еще фильтрация по данным которые не прошли проверку(хэш, выкидывается в виде массива ключей не прошедших хэш), и мне в сообщение с ошибкой нужно пропихнуть этот хэш, как нибудь можно это сделать? dry-validation дает использовать в сообщениях только те ключи которые ты прокинул в валидацию, nested schema нельзя использовать, потому что я незнаю названия параметров которые приходят в этом хэше, и не знаю нужно ли их валидировать, пока не чекну для этого в базе
Google
Anton
21.03.2018
14:49:03
можешь просто сделать что-то в духе
result.errors + (payload - result.errors)
потому что это не логика dry-v, если задуматься
Nikita
21.03.2018
14:51:17
вот я тоже к этому прихожу, что пытаюсь натянуть мягкое на гладкое и нужно не через dry-v это делать
Александр
21.03.2018
16:00:02
добрый день. Я к вам с вопросом. Есть два ActiveRelations одной таблицы, можно ли как-нибудь между ними сделать операцию and или xor?
Mikhail
21.03.2018
16:08:21
Александр
21.03.2018
16:09:13
No
21.03.2018
16:11:50
Не вопрос, просто интересное наблюдение. Grape Entity.
expose :likes_count, as: :likesCount
Не работает.
expose :likesCount do |entity|
entity.likes_count
end
Работает.
Если кто-то знает, почему это может происходить, ткните конечно мордой
Но думаю, что это бага интересная какая-то
В каком-то конкретном магическом кейсе )
Michael
21.03.2018
16:29:27
Добрый вечер,
подскажите пожалуйста кто как решает задачу?
есть рельсовое приложение, есть почтовый ящик
при получении нового письма, приложение сразу же должно забрать это письмо с ящика и обработать
сейчас у меня поднят mailman который запускается демоном и мониторит почту, но очень часто сбоит, может отвалиться, потерять письмо и.д.
может есть еще какие-то хорошие инструменты???
Vadim
21.03.2018
16:29:43
а в руби аналог есть этому?
if __name__ == "__main__"
#some code
end
ну типо чтобы при запуске конкретно этого класса я мог просмотреть тот или иной код
Дмитрий
21.03.2018
16:31:06
Vadim
21.03.2018
16:34:02
@double_mmr типо такоко?
File == $0
bank = Bank.new("test", "City", "Moldova", 23, 32)
puts bank.interest_rate
end
не уверен что сработала так как надо)
No
21.03.2018
16:36:19
Хм, гайзы. Очень интересный вопрос есть, сегодня прям день интересных вопросов
В каких случаях respond_to?(:method_name, true) может возвращать false, но при этом send(:method_name) вызывает нужный метод?
ну и прямой вызов метода тоже работает
в начале подумал про #method_missing, но нет, respond_to? уже проверяет method_missing
Дмитрий
21.03.2018
16:38:37
Google
No
21.03.2018
16:41:33
Дополнение к вышесказаному
public_methods возвращает необходимый метод в списке
но respond_to? по прежнему false
Vadim
21.03.2018
16:45:37
@double_mmr да, вы правы, но пока есть трудности с заданием поиска в гугл))))
ojab
21.03.2018
16:51:44
Vadim
21.03.2018
16:52:13
$0 это и есть типо имя класса
точнее имя файла
Артур
21.03.2018
18:41:01
Dmitry
21.03.2018
18:42:47
Тут вроде несколько человек из Молдовы)
Артур
21.03.2018
19:17:39
Shamil
21.03.2018
19:18:13
знаю что рейтинг ничего не значит, но всё же https://tproger.ru/news/tiobe-march-2018/
Dmitry
21.03.2018
19:25:30
Тот рейтинг вообще крайне странный)
Alex
21.03.2018
19:28:50
Кто как со спамом в формах борется?
https://github.com/markets/invisible_captcha
вот эта штука помогает?
гугл капчу не хочу вешать, многих отпугивает
Aleksey
21.03.2018
19:29:52
рекаптча тоже невидимая есть
https://developers.google.com/recaptcha/docs/invisible
Alex
21.03.2018
19:30:39
ставил её, у меня на 8 заполнений форм 3 сработки