
ojab
17.03.2017
17:35:15
А что есть корректная сортировка при сравнении строки и nil?
если падает с undefined method []' for nil:NilClass` — есть Hash#dig для таких случаев

Valentin
17.03.2017
17:37:02

Google

Vasiliy
17.03.2017
17:42:38
Хэш.диг только в 2.4 же

Dmitry
17.03.2017
17:43:00
Ребята, кто нибудь использовал Cell + Slim в rails? Как ему вьюшки с html.slim скармливать?

ojab
17.03.2017
17:43:13

Vasiliy
17.03.2017
17:43:58
Да, сорян, ну т.е. я имел ввиду что версию надо учитывать

Alexander
17.03.2017
18:39:06
Может кто сталкивался: есть три таблицы (ну и модели соотвественно) categories, subcategories, dishes. Мне надо выбрать все categories с subcategories и dishes. В контроллере все просто categories.includes(:subcategories, :dishes) - и оно работает!. Но выполянется очень долго ~ 3 секнуд для 5000 записей. Смотрю sql запрос, там старный join: LEFT OUTER JOIN "subcategories" "subcategories_categories_join" ON "subcategories_categories_join"."category_id" = "categories"."id" - у меня нет такой таблицы, wtf? Это какая-то временная таблица создается?

ojab
17.03.2017
18:42:06
А полный запрос как выглядит?
ну и 5000 записей — это Category.count? С join'aми будет больше.

Alexander
17.03.2017
18:46:38
https://gist.github.com/kunashir/d22181e658e0abefab8545d9b3a372b1

ojab
17.03.2017
18:47:51
ну собственно в третьей снизу строке объявлена временная таблица "subcategories_categories_join", да

Alexander
17.03.2017
18:48:20
а нахрена она нужно, без какбы быстрей получается

ojab
17.03.2017
18:49:11
чтобы заджойнить subcategories и dishes, очевидно

Alexander
17.03.2017
18:50:45
а почему просто нельзя LEFT OUTER JOIN "dishes" ON "dishes"."subcategory_id" = "subcategories"."id"

ojab
17.03.2017
18:52:30
прозреваю что у тебя с ассоциациями что-то не то и/или ты хочешь categories.includes(subcategories: :dishes)

Google

Alexander
17.03.2017
18:52:50
видимо потому-то в категория есть:
has_many :subcategories, -> { order(:position) }, dependent: :destroy
has_many :dishes, class_name: '::Dish', through: :subcategories

ojab
17.03.2017
18:54:09
Ещё, вероятно, -> { order(:position) } всё тормозит и без него будет сильно быстрее
если хочешь чтобы по-умолчанию был order — лучше его перенести в default_scope, например, чтобы при джойнах его не было

Alexander
17.03.2017
19:02:43
Убрал пряму связь и все стало намного быстрей!

ojab
17.03.2017
19:06:13
не надо её убирать, надо делать categories.includes(subcategories: :dishes)

Alexander
17.03.2017
19:07:32
угу... в таком виде она не мешает
спс!

Aldar
17.03.2017
19:35:30
https://www.youtube.com/watch?v=CQ4YpkeG3mQ

Антон
18.03.2017
09:32:13
зачем это здесь?

Eugene
18.03.2017
09:36:08
Та не понятно

ojab
18.03.2017
09:36:31
Я тоже задавался этим вопросом.

Aldar
18.03.2017
09:44:24
ну окей, удалите раз мешает

Demyan
18.03.2017
10:18:23
вдруг кто-то решил заняться программированием но сидит на окошках
ок
для не совсем умных :D
или лучше, для особенных :D

Денис
18.03.2017
11:00:53
а подскажите
чем оповещать, если сокет за nginx упал и не работает
но сервак пингуется
то есть приложение не запустилось, по сути

Google

Александр
18.03.2017
11:01:55
так 502я будет

Денис
18.03.2017
11:02:09
ну это пользователи увидят
а я то не узнаю об этом

Александр
18.03.2017
11:02:18
а надо какой результат?
ааа

Денис
18.03.2017
11:02:31
чтобы на почту оповещение пришло
newrelic умеет пинговать и о рейте ошибок, а вот нерабочесть заметить не может

Александр
18.03.2017
11:03:02
про мониторинг можно часами общаться
могу тее предложить самый быстрый и бесплатный вариант - https://uptimerobot.com/
а там уже сам определишься насколько оперативно и детально ты хочешь узнавать о проблеме
любой мониторинг может

Денис
18.03.2017
11:03:44
вот спасибо, а он там статус код может проверять?

focusshifter
18.03.2017
11:03:48
Да

Александр
18.03.2017
11:03:51
обращаешься на главную страницу, если не 200, то уведомляет
да, аптаймробот статус проверяет

Денис
18.03.2017
11:04:19
во, то что надо, спасибо большое

Александр
18.03.2017
11:05:59
а платным я пользуюсь serverdensity.io
там 10 баксов за сервер/сервис
графики красивые ну и минималистично всё и понятно для клиентов
а для рубистов есть https://airbrake.io/
вот такой сервис

Google

I
18.03.2017
11:07:37
да, мы часто им пользуемся
но там ограничения есть на дешевых акках вроде

Денис
18.03.2017
11:08:32
спасибо)

Dmitry
18.03.2017
16:13:18
кстати если мне не изменяет память вроде yandex метрика умеет присылать уведомление на почту если сайт лежит
ну если она вдруг на сайте интегрирована

Александр
18.03.2017
16:15:01
она умеет, но обычно присылает позже всех и неточно время простоя меряет

Admin
ERROR: S client not available

Dmitry
18.03.2017
16:21:16
как там говориться, лево руля ;)

Demyan
18.03.2017
17:07:01
Если мне не изменяет память это можно сделать при помощи заббикс
Заббикс лучшее средство мониторинга серверов, проверьте я много уже разворачивал

Александр
18.03.2017
17:08:00
а с чем вы сравнивали?

Demyan
18.03.2017
17:08:09
И вроде с рельсой можно
Ну например нагиос
Нетхмс
Какти

Александр
18.03.2017
17:09:30
опять же, если у человека сайты на сервере, то заббикс надо разворачивать на отдельном, чтобы знать о проблемах со связью

Demyan
18.03.2017
17:09:39
Ну конечно
Либо на резервном канале
У меня тестовый стенд с заббиксом на малине крутится

Александр
18.03.2017
17:10:46
предлагаю попробовать prometheus + grafana, лично у меня в разы быстрее получилось развернуть чем заббикс

Google

Александр
18.03.2017
17:10:59
ну и настраивать и смотреть потом приятнее визуализацию

Demyan
18.03.2017
17:11:29
Заббикс несложный
Там и доки норм

Александр
18.03.2017
17:12:26
заббикс у меня был, но коллеги не хотели им пользоваться из-за неудобного интерфейса, а когда мы туда вгружали наши сотни сайтов коллега больше дня потратил
доки там приличные - факт

Demyan
18.03.2017
17:12:45
Хотя зависит от скилла
Коллеги

Александр
18.03.2017
17:13:11
кстати, расширять заббикс просто как нагиос, мне что запомнилось

Demyan
18.03.2017
17:13:29
У нагиоса свои минусы

Александр
18.03.2017
17:13:34
но если человек не понимает вообще как мониторить на базовом уровне, мне кажется заббикс сложновато зайдёт

Demyan
18.03.2017
17:14:04
Ну да
Заббикс быстрее
Просто
И все из коробки работает здраво
Широкий спектр выбора бд, легко плагины сделать, ну и он на пацанском си написан
Как у прометея с нетфлоу?

Александр
18.03.2017
17:23:00
ну это совсем редкая задача =)
я не пробовал, но какие-то решения есть https://github.com/paihu/netflow_exporter
я много лет назад чтобы траффик анализировать вообще такую штуку использовал - http://www.ntop.org/
выяснили много интересного про трафик в сети и нагрузку раз в 10 снизили во всём холдинге (там много офисов было)