
Vlad
12.10.2017
19:53:38
Ребят, нубский вопрос. Есть к примеру файл ruby.rb
Как мне внутри него обработать вот такое в консоли
$ ruby ruby.rb 1234
не пойму, как запрос гуглу сделать по этой инфе

Alex
12.10.2017
19:54:58
парсинг входных параметров
или cli приложения на ruby
гугли это

Google

Alex
12.10.2017
19:55:11
command line ruby
https://ru.code-maven.com/argv-the-command-line-arguments-in-ruby

Vlad
12.10.2017
19:56:56
спасибо большое

Антон
12.10.2017
21:15:26

spartakusQ
12.10.2017
21:16:39

Антон
12.10.2017
21:17:47
Ну мы же не только отдыхать, мы работать и пережидать холода))
А что с ним случилось?

Ro
12.10.2017
21:17:56
у меня там кореш 7 лет живет, может больше уже
2 детей там родилось

Антон
12.10.2017
21:19:18
Не, так долго я не хочу

spartakusQ
12.10.2017
21:19:48

Антон
12.10.2017
21:20:01
Ого

Konstantin
12.10.2017
21:20:27
Как у вас дела, бандиты?)
Давно не заходил :3

Google

spartakusQ
12.10.2017
21:21:16
блин, а если завтыкал и поставил не ту базу данных
как то сменить можно на лету
mysql на postgresql

Ro
12.10.2017
21:22:16

Konstantin
12.10.2017
21:24:13
*расчехляет_своего_питона*
А я отзыв-то писал на сайт?
Мне наконец стали давать задачи сложнее "ну завайтлисть мп3 в аплоадере"
сегодня активно изучал факторигёрл на практике, написал пару фактори и ломался об tdd
emarsys меня поборол

Lainera
12.10.2017
21:39:04
Достопочтенные сэры и леди - в оптимизацию бд кто умеет?
есть csv в 45 миллионов строк, залил в psql, но как-то ебловато, минуты 4 думает над запросом. А если бд станет больше в несколько раз, то вообще звездой всё накроется.
Есть советы чё почитать интересного, чтоб прям вот откровение на откровении?

Ro
12.10.2017
22:21:47
нужно делать индексы
т.е. правильный индекс обычно все решает
какие именно индексы - зависит от запроса
(и от данных)
45 миллионов строк - не особо много о чем говорит. Ну т.е. количество большое, но при наличии индекса запрос может обрабатываться миллисекунды

Lainera
13.10.2017
03:12:50

Ro
13.10.2017
03:23:05
можно, если в данных его нет
ну точнее таблицу правильно создать
при вставке он будет сам создаваться

Lainera
13.10.2017
03:25:42
@ro31337
табличка в 4 колонки - /таймстамп/айдишникюзера(не уникальный один и тот же юзер может заходить 10 раз за месяц а может один раз зайти)/айдишник платформы/айдишник операционки/

Google

Lainera
13.10.2017
03:29:34
ну точнее таблицу правильно создать
ну т.е. при создании таблички сделать свой праймари ключ по возрастающему айдишнику, индексануть по нему же. Есть смысл делать индексы для всех остальных колонок с повторяющимися значениями?

Ro
13.10.2017
03:30:51
да, в сети должны быть примеры с автоинкрементным id для твоей БД
для всех остальных - это уже тебе решать
смотря какие ты запросы делаешь
может есть смысл сделать 1 ключ по двум полям, например
чем больше ключей - тем дольше вставка данных
так что надо делать достаточно
сделал бы 1 по нужному полю для начала

Lainera
13.10.2017
03:42:04
смотря какие ты запросы делаешь
запрос на самом деле достаточно простой, апишку написать на экспрессе, которая должна показывать уникальных юзеров/лояльных юзеров (10< посещений в месяц) и принимать опциональные хэдеры тип покажи всех лоял юзеров с платформой (0, 1 и 6 например) и/или операционками (0, 4)
оно есть и работает, но около 4 минут запрос просчитывает, потому что проверяет каждый ряд видимо

Ro
13.10.2017
03:43:40
ну все простое всегда сложно) покажи sql запрос глянуть, может подскажу что
тока не все сразу, с одного давай начнем, с самого простого

Lainera
13.10.2017
04:05:11
SELECT FROM ${table_name} GROUP BY user_id HAVING COUNT (user_id) > ${loyalty_counter}
в первом случае возвращаю непосредственно значения, во втором rowCount
соответственно если нужно кастомно чёт посмотреть добавляю WHERE os IN (${os}) AND device IN (${device})
я знаю что where считается до group by, но т.к. я считаю ряды ничего не возвращая, то psql ругается если использовать HAVING

Ro
13.10.2017
04:18:45
ну вот для начала надо индекс по user_id
ну а далее 1 индекс по os + device наверное

Lainera
13.10.2017
04:21:20

Google

Lainera
13.10.2017
04:21:31
разницы никакой - 4 минуты минимум
сча попробую прикрутить PRIMARY KEY
before optimization > 4:34-5:20
after > 7:52
это успех ящитаю)))
может ну его этот постгрес?

Ro
13.10.2017
04:53:26
одного primary key недостаточно
оно ничего не дает
brin индекс надо попробовать по user_id
create index blabla_brin_2 on blabla using brin(user_id) with (pages_per_range=2);

Admin
ERROR: S client not available

Lainera
13.10.2017
04:56:53

Ro
13.10.2017
04:57:20
b-tree думаю займет много места
blabla - название твоей таблицы

Lainera
13.10.2017
04:59:23
О спс, сча попробую дропнуть б-три

Andrey
13.10.2017
06:31:12
Вообще надо explain смотреть . Там будет яснее где начинать индексы делать

Vlad
13.10.2017
07:31:08
Ищу кого то начинающего, кто ещё до рельс не добрался и изучает сам Ruby. Для совместного изучения так сказать, разбора кода друг друга, обсуждений каких то мелочей. Чтобы не спамить лишний раз в общий чат.

Fedor
13.10.2017
07:32:51
Лол, лучше кого-крутого поищи, что бы тебе сразу объясняли, что не надо так писать )))

Антон
13.10.2017
07:36:05
Год уже пользуюсь гитом, и для меня стало открытием, что веток-то на самом деле в нем нет)) есть только коммиты, а название бранчи- это свойство коммита, чтобы удобнее искать было ))

Vlad
13.10.2017
07:55:08

Fedor
13.10.2017
07:56:39
ну соберитесь группой в несколько человек, и найдите ментора в складчину
просто реально обмениваться опытом с теми у кого нет опыта, то еще удовольствие )

Google

Marina
13.10.2017
08:00:45
или все-таки не стесняться спамить в руби чаты

Fedor
13.10.2017
08:02:09
ну да)
в рубишных чатах, кстати очень хорошее сообщество

Vlad
13.10.2017
08:02:25
Спамить то одно, а второе просить ревью кода. Все таки дать ответ можно быстро на вопрос, а читать и вникать это долго же

Fedor
13.10.2017
08:02:45
по крайней мере, по сравнению с js народ больше стремится объяснять, чем поливать грязью

Marat
13.10.2017
08:03:44

Александр
13.10.2017
08:04:38
opensource говорят еще надо участвовать

Vlad
13.10.2017
08:06:19
Пока три недели как с руби, поэтому до рельс ещё не мало, по всей видимости. А opensourse ещё дальше

Marina
13.10.2017
08:06:44

Nikolay
13.10.2017
08:07:11
Лайвхак )

Fedor
13.10.2017
08:07:13
ну или взять книжку Хартла, там хочень хороший стить описан
следовать ему достаточно что бы быть начинающим рельсовиком
а дальше просто идешь в контору с сильным отделом разработки и набираешься опыта

Vlad
13.10.2017
08:08:44
Принял советы, сообщения схоронил себе

Nikolay
13.10.2017
09:08:23
Подскажите пожалуйста, как примерно работает процесс загрузки файлов. Вот есть контроллер на который шлется post, есть uploader. Как происходит вызов аплоадера найти не могу, или это "магия рельс"?

Fedor
13.10.2017
09:09:21
смотря что ты используешь

Nikolay
13.10.2017
09:09:57
CarrierWave

Fedor
13.10.2017
09:10:46
ну ты там делаешь mount_uploader
который создает тебе кучу колбэков, которые этим занимаются