
Vitaly
16.01.2018
12:49:38
Только админы могут пинить сообщения? Дайджест потерялся.

Sergey
16.01.2018
12:52:50
заново сделаю че
https://habrahabr.ru/company/zfort/blog/346642/

Sergey
16.01.2018
12:53:06
https://habrahabr.ru/users/pronskiy/

Google

Sergey
16.01.2018
12:53:12
ты можешь просто подписаться на чувака)
в том числе и на твиттер

Viktar
16.01.2018
16:33:51
/link@yetanotherstatsbot

Yet Another Stats
16.01.2018
16:33:51
https://b.yasb.exileed.com/telegram/chat/1001042383571

Nick
16.01.2018
17:01:32
какой тулзой(краулером?) можно пройти по всем урлам на сайте, чтобы отыскать потенциальные 500е ?

Shmaltorhbooks
16.01.2018
17:04:33
wget

Nick
16.01.2018
17:06:31
ага, рекурсивным вгетом. Просто думал, может для тестировщиков есть какие-то такие тулзы уже готовые с красивым отчётом в экселе и тп :)

Maksim
16.01.2018
17:09:15
Сами напишут) не биг дил)

Sergey
16.01.2018
17:17:41
но будет работать только для публичных ссылок
сам понимаешь)

Andrew
16.01.2018
17:21:29

Sergey
16.01.2018
17:22:39
https://www.npmjs.com/package/js-crawler

Google

Sergey
16.01.2018
17:22:46
вот можешь этим попробовать потестить
там есть хуки, так что "в теории" можно и авторизацию захэндлить
но полностью автоматом пожалуй только что-то простое выйдет

Nick
16.01.2018
17:25:47
пока остановился на этом варианте
https://wummel.github.io/linkchecker/
если не зайдёт, то придётся самому что-то костылить
спасибо?

Art
16.01.2018
19:50:10
Провайдер vps пишет что они переходят на другие сервера, на более крутые с новыми плюшками и за ту же цену и предлогают перенести или пересоздать серв. В случае переноса данных они мне создадут мою эко систему с настройками fail2ban letsencrypt SSL nginx apache php mysql и прочее чтобы все так же взаимодействовало по типу как у образов wmvare, но как я понял там разные системы виртуализации


M
16.01.2018
20:27:36
Привет, кто работал с eav model, какие есть "за" вместо того чтобы использовать no-sql решения?
Для примера давайте возьмём авито, каждое объявление в зависимости от категории имеет разный набор свойств, если бы я писал клон, то мне видится решение в eav model + single table inheritance.
Но это белый взгляд чисто "пальцем в небо".
Может у кого есть юз кейсы, делитесь.
Из преимуществ eav model:
× Динамические свойства сущности (ещё бы, это основная цель).
× Остаёмся в реляционной модели, не плодим технологии.
Недостатки :
× В случае необходимости "сырой" записи (например импорт товаров из csv) без использования обёртки придётся поплясать с бубном над конвертером.
× Без кеша запросы довольно тяжёлые(я про выборку по значениям атрибутов).
× Потенциальные проблемы на хайлоаде(я не спец в хайлоаде, но думаю имеет место быть проблемам с партиционированием).
× Порог входа выше.
Альтернативы:
× Eav "на запись", elasticsearch "на чтение".
× No-sql хранилища, например mongodb.
× Использовать json типы, например jsonb для postgres


Sergey
16.01.2018
20:29:06
Привет, кто работал с eav model, какие есть "за" вместо того чтобы использовать no-sql решения?
Для примера давайте возьмём авито, каждое объявление в зависимости от категории имеет разный набор свойств, если бы я писал клон, то мне видится решение в eav model + single table inheritance.
Но это белый взгляд чисто "пальцем в небо".
Может у кого есть юз кейсы, делитесь.
Из преимуществ eav model:
× Динамические свойства сущности (ещё бы, это основная цель).
× Остаёмся в реляционной модели, не плодим технологии.
Недостатки :
× В случае необходимости "сырой" записи (например импорт товаров из csv) без использования обёртки придётся поплясать с бубном над конвертером.
× Без кеша запросы довольно тяжёлые(я про выборку по значениям атрибутов).
× Потенциальные проблемы на хайлоаде(я не спец в хайлоаде, но думаю имеет место быть проблемам с партиционированием).
× Порог входа выше.
Альтернативы:
× Eav "на запись", elasticsearch "на чтение".
× No-sql хранилища, например mongodb.
× Использовать json типы, например jsonb для postgres
почему реляционная модель у тебя в плюсах?
> Использовать json типы, например jsonb для postgres
все сильно упирается в то, что требуется от данных


M
16.01.2018
20:30:15

Sergey
16.01.2018
20:31:53
в документноориентированных как раз таки схему ты можешь определить
ACID - если ты изменяешь один документ - у тебя это изменение атомарно

Maksim
16.01.2018
20:32:25
eav на большом объёме данных всё равно сведётся к созданию представлений и запихиванию их в тот же nosql

Sergey
16.01.2018
20:32:52
то есть все преимущества реляционки у тебя сводятся к неумению работать с другими представлениями данных на запись))
это не то что бы плохо - надо работать с тем что умеешь готовить
но.... это не значит что это плюс

M
16.01.2018
20:35:36

Maksim
16.01.2018
20:35:55
сам по себе еав живёт, работает...) и вполне успешно временами

Google

M
16.01.2018
20:40:18

Sergey
16.01.2018
20:41:22
лет 10 назад выбора особо небыло
сейчас есть
мне тут очень рекламировали для подобного orientdb
гибрид графовой и документноориентированной базы

M
16.01.2018
20:42:17

Sergey
16.01.2018
20:42:41
документная модель для этого удобнее но легко накосячить с тем как ты все приготовишь
вот штуки типа orientdb предлагают определенный компромис в подходах (связи)

M
16.01.2018
20:43:59

Sergey
16.01.2018
20:44:21

Sergey
16.01.2018
20:44:28
(ну и мускуль)
дальше весь вопрос в том, хватит ли тебе jsonb или у тебя более сложные запросы
ну и еще могут быть всякие мелкие требования по связанным значениям и т.д.

M
16.01.2018
20:46:28

Sergey
16.01.2018
20:47:37
p.s. я не знаю как в mysql а в постгрессе с этим все отлично

Maksim
16.01.2018
20:48:09
а в мускуле jsonb разве есть?

Google

Maksim
16.01.2018
20:48:20
когда в последний раз его трогал, не было

Sergey
16.01.2018
20:48:50
в 5.7 вроде бы появился
но хз как оно, не юзаю
https://www.arangodb.com/
http://orientdb.com/orientdb/
вот еще наброшу варианты для поковырять вечерком

Bogdan
16.01.2018
20:53:32
привет. Мне тут проект с yii migrator попал. Задача изменить тип столбца в постгресе, в ней уже есть данные. Можно в нем как-то взять, данные, изменить столбец, вставить данные? Чтоб одной миграцией и без дополнительных столбцов

Dmitry
16.01.2018
20:56:04
ALTER TABLE nnn ALTER COLUMN xxx TYPE newtype USING expression

Admin
ERROR: S client not available

Dmitry
16.01.2018
20:56:55
expression - выражение что тебе делать с данными старого столбца, что бы получился тип нового

M
16.01.2018
21:00:19
ты о фильтрации?
Да там много ошибок сделал. Фильтрации все же заставляли jsonb операторы использовать, что заставило писать сырых запросов, а в эластик я тогда не умел.

Sergey
16.01.2018
21:00:49

M
16.01.2018
21:09:21

Sergey
16.01.2018
21:20:07
> В случае с эластиком есть хорошая обьектная обёртка с приятным быстровникаемым апи.
это потому что эластика юзает json в качетсве языка запросов

Anton
16.01.2018
21:20:47

Sergey
16.01.2018
21:20:49
ну то есть объектые обертки очень быстро становятся не такими удобными)
как только у тебя запросы начинают быть.... сложнее чем то что выдает тебе оператор ->> в постгре

Anton
16.01.2018
21:22:29

Sergey
16.01.2018
21:23:01
вообще блин, что может быть удобнее просто json-ки юзать

Google

Sergey
16.01.2018
21:23:14
там и композицию мутить можно при надобности
и не нужно писать километровых DSL поверх (котоыре всеравно рано или поздно тебя повдедут)

Anton
16.01.2018
21:23:32

Sergey
16.01.2018
21:23:58
если кто-то думает что "объектная обертка" всегда все делает проще - увы и ах

Maksim
16.01.2018
21:24:25
Elastica - ок)

Sergey
16.01.2018
21:24:45
так же если мы будем всегда судить категориями "В фреймворке что использую на повседнев для работы с бд используется паттерн ActiveRecord " - то не стоит подпускать тогда таких людей к проектам где все "не так просто"

Maksim
16.01.2018
21:25:12
без активрекорда хайлодов бы не было)

Sergey
16.01.2018
21:25:20
самое смешное что выше идет рассуждение о плюсах и минусах подхода и при этом следом идет догматы

Anton
16.01.2018
21:25:45
Я сегодня кресло прожигал: https://github.com/ruflin/Elastica/blob/master/lib/Elastica/Index.php#L196

Sergey
16.01.2018
21:25:47

Maksim
16.01.2018
21:26:07
ну там оптимальное использование АР, все дела)

Sergey
16.01.2018
21:26:33
p.s. я доктриной обмазываюсь на полную что бы меня никто не обвинил в желании "пооптимизировать"

Anton
16.01.2018
21:31:00
$index1 = $client->getIndex('aaa');
$index2 = $client->getIndex('bbbb');
$docs = $index1->search($query)->getDocuments();
$index2->deleteDocuments($docs);
// Good debug bros!
$client->updateDocuments($dosc);
ОО-design хуле

Sergey
16.01.2018
21:33:31
мутируй стэйт, испытывай сайд эффекты, грабь караваны

Anton
16.01.2018
21:34:45

Sergey
16.01.2018
21:35:05

Anton
16.01.2018
21:35:37
Не оно понятно в моей голове

Sergey
16.01.2018
21:35:41
пусть почитают "GOTO considered harmful: retrospective"
там в целом неплохо об этом)