Size: a a a

Clojure — русскоговорящее сообщество

2020 February 19

AB

Alex Bubnov in Clojure — русскоговорящее сообщество
а вообще - нет никакого "общего решения". если это постоянно растущая append-only таблица - будет одно, если это обновляющиеся данные с интересными выборками из них - другое.
источник

ВП

Владислав Петров in Clojure — русскоговорящее сообщество
programmist ⌨️
вот так читабельнее
Эмм...pivot, не?
источник

AB

Alex Bubnov in Clojure — русскоговорящее сообщество
Alex Bubnov
а вообще - нет никакого "общего решения". если это постоянно растущая append-only таблица - будет одно, если это обновляющиеся данные с интересными выборками из них - другое.
в конце концов, никто же не мешает смешивать подходы - от json через широкую таблицу до eav
источник

KC

Kirill Chernyshov in Clojure — русскоговорящее сообщество
а есть тут кто использует или использовал парсер гененраторы типа instaparse?
интересен опыт - что понравилось, что нет и чем в итоге пользуетесь (если пользуетесь)
источник

p

programmist ⌨️ in Clojure — русскоговорящее сообщество
Владислав Петров
Эмм...pivot, не?
В смысле CROSSTAB? Pivot в SQL Server. Не, он чудес не сделает, и план будет плохой.
источник

AZ

Andrew Zhurov in Clojure — русскоговорящее сообщество
Kirill Chernyshov
а есть тут кто использует или использовал парсер гененраторы типа instaparse?
интересен опыт - что понравилось, что нет и чем в итоге пользуетесь (если пользуетесь)
источник

V0

Vlad 0xcd55d8db in Clojure — русскоговорящее сообщество
Kirill Chernyshov
а есть тут кто использует или использовал парсер гененраторы типа instaparse?
интересен опыт - что понравилось, что нет и чем в итоге пользуетесь (если пользуетесь)
да, было https://github.com/lunatic-cat/iproute

понравилось - грамматики можно фигачить в естественном виде abnf/ebnf, а потом манипулировать правилами как хешами
непонравилось - https://github.com/Engelberg/instaparse/issues/188 & https://github.com/Engelberg/instaparse/issues/187 автор в целом норм про это но совместимость важнее. ну и оно субъективно казалось довольно медленным для не самой сложной грамматики 😕  

но мне было достаточно. если грамматики LL(1) то советую смотреть на https://github.com/prepor/kern cc @prepor
а еще выше по чату был срач с полгода назад, искать по “antlr”
источник

KC

Kirill Chernyshov in Clojure — русскоговорящее сообщество
смотрел на kern, там не все так гладко с cljs, так что он отпал. из-за этого antlr так же отпадает
пишу сейчас свою приблуду и как раз с этой целью интересуюсь
источник

KC

Kirill Chernyshov in Clojure — русскоговорящее сообщество
за ссылки спасибо, посмотрю
источник

AS

Anton Strukov in Clojure — русскоговорящее сообщество
фолкс, а как мне показать  результат C-x C-e или cider-eval-last-expression не рядом а в окне где REPL?
источник

AS

Anton Strukov in Clojure — русскоговорящее сообщество
а то там есть то что мне надо, но данных очень много, и не показывает что хочу увидеть
источник
2020 February 20

KC

Kirill Chernyshov in Clojure — русскоговорящее сообщество
cider-inspect-last-result может быть?
источник

MP

Maxim Penzin in Clojure — русскоговорящее сообщество
Vlad 💩
все пихать в джсон я считаю плохой практикой, если можно нормализовать нужно нормализовывать и использовать реляционную бд, запихнуть все в джсон всегда можно только вот наоборот не всегда
наоборот - из сырых данных можно сделать нормализованные, то есть исключить избыточность
источник

MP

Maxim Penzin in Clojure — русскоговорящее сообщество
Vlad Lisovsky
нормализация / деградация, как фронту удобно, так пусть и запрашивает
ага, и здравствуйте джины на вложенных циклах
источник

MP

Maxim Penzin in Clojure — русскоговорящее сообщество
Vlad 💩
ну если взять монгу, то может получиться свалка данных если за этим не следить в ручную (рекорды которые ссылаются на несуществующие записи) которые потом будет невозможно или очень тяжело запихнуть в тотже постгрес. ну а смысла следить в ручную не вижу если любая реляционная бд делает это атоматически
если взять монгу, то над структурой сложных данных придется подумать, а особенно над методами работы с ними.
Но в случае с реляционной моделью там тоже не все здорово, так как констрейнты совсем не бесплатны с точки зрения ресурсов. А иногда просто неприменимы.
источник

MP

Maxim Penzin in Clojure — русскоговорящее сообщество
programmist ⌨️
SELECT *
FROM users u
WHERE (u.details->'site_activitity'->>'last_login')::DATE>='2020-02-18'::DATE;

UPDATE users SET details = COALESCE(details,'{}')::JSONB || ('{"site_activity": {"last_visit": "'||Now()::TEXT||'"}}')::JSONB where id=11111;
ну да, вот я про что и говорю.
источник

VL

Vladimir Legkunets in Clojure — русскоговорящее сообщество
Vlad 💩
они вам помогут если вы ожидали такой джсон

title: длина хобота
value: 20
unit: cm

а пришел без unit? потому что кто-то забыл его добавить или посчитал не нужным
А если просто схему валидировать прежде чем в банку положить?
источник

D

Dos in Clojure — русскоговорящее сообщество
Интересно, сравнил свои решения flatten-seq(4clojure) с разницей примерно в 3 года:
источник

V💩

Vlad 💩 in Clojure — русскоговорящее сообщество
Maxim Penzin
наоборот - из сырых данных можно сделать нормализованные, то есть исключить избыточность
Если у вас нарушенна целостность даных (удаляли как попало) как вы их поместите в постгрес?
источник

T

The2lb3oz4dr10½grOfHedgehogs in Clojure — русскоговорящее сообщество
Dos
Интересно, сравнил свои решения flatten-seq(4clojure) с разницей примерно в 3 года:
Да)) примерно так же было
Сначала все на лупах и форах лепишь, потом понимаешь, где их можно было заменить на редьюс, а где на мап
источник