Сергей Шлоков

Сергей Шлоков

С нами с 31 января 2013; Место в рейтинге пользователей: #3
Сергей Шлоков
25 марта 2016, 13:24
+2
Надо решать вопросы по мере их поступления. Волков бояться и т.д.
На modx.com около 700 дополнений. Много там повторяющихся дополнений, развивающихся одновременно. А там люди со всего мира. Неужели мы у себя на modx.pro не сможем решить данный вопрос (при желании сторон конечно). Нас тут не так много. Но главное, у modstore есть правила. Он следит за их соблюдением. А иначе никак. Ведь анархия — это палка о двух концах. Сегодня ты нарушил, завтра против тебя нарушат. Как Турция — снабжала и поддерживала террористов, а теперь сама хлебает полной ложкой.
Сергей Шлоков
25 марта 2016, 13:10
0
«Вопрос только в уважении разработчиков друг к другу.» — а к пользователям?
Этика только по отношению к разработчикам? Не абсурд ли?
Так дополнения делаются для пользователя и ради пользователя. Какие могут быть вопросы. Это не обсуждается.
Кстати, я отвечаю на все вопросы по любым дополнениям — и платным и бесплатным. И багфиксы делаю ко всем дополнениям. А вот развиваю только то, что интересно и на что хватает времени. А у меня сейчас даже на свой сайт нет времени. Много основной работы.
Но… мне поступил запрос в техподдержку о неправильном подсчете статистики по сравнению с Яндексом. Для того, чтобы разобраться базового функционала не хватает, поэтому я добавил 3 поля — ip, userAgent и referer. Появится в новой версии. Так что ждать осталось недолго.
Сергей Шлоков
25 марта 2016, 13:01
+1
Михаил, вопрос поставлен так
Ведь дело тут совсем не в цене, а в том, что компонент платный.
На что я ответил, что ваши тоже платные. И дело тут не в причинах, это твоего сотрудника не интересует. Он даже не понял почему я сделал его платным, а другие нет. И это после подробных объяснений.
У меня тоже немало запросов в поддержку по сайтстатистик. Может тогда это объяснение для него подойдет.
У меня к тебе нет претензий. Я об этом писал выше. Приятно найти единомышленника. Так что лучше говорить о полезном, чем разводить тут флуд на радость молодым идеалистам. :)
Сергей Шлоков
25 марта 2016, 12:26
-3
Ты не задумывался, почему я более крутые дополнения делаю бесплатно, а сайтстатистик за деньги?
Видимо всё-таки не задумался.

Я для себя решил, что вклад в open source это главное.
Почему тогда ваши дополнения платные?

Ведь дело тут совсем не в цене, а в том, что компонент платный.
Ваши дополнения платные!!!

Предлагаю закончить на этом разборки. Я вас молодых всё равно не перегоню в агрессивности и хамстве.
Сергей Шлоков
25 марта 2016, 11:58
0
Если ты про ошибку в окне привязки периодов к объектам, то обновись еще раз. )

П.С. Прошу прощения у автора за оффтоп.
Сергей Шлоков
25 марта 2016, 11:49
-4
мой стаж программирования не позволяет мне похвастаться крупными вкладами в open source проекты, но я за бесплатное ПО и за улучшение его качества.
Это и есть ответ на вопрос. Вот когда сделаешь что-то большое, значимое для себя, вот тогда и решишь для себя как реагировать, когда какой-нибудь новичок в приступе борьбы за все хорошее будет копировать твое творение. Если ты найдешь и выпустишь много элементарных вещей за 190 руб. никто в обиде не будет. Главное найти хотя бы одну такую вещь.

Ещё раз повторю, дело не в деньгах. Ты не задумывался, почему я более крутые дополнения делаю бесплатно, а сайтстатистик за деньги? Только из соображений «внутренней» порядочности и из уважения к Валентину из АртДевю. Я сделал свое позже. А мой доход позволяет мне покупать новую Ауди А4 каждый месяц и ещё немного останется. Мне эти 300 руб. вообще никуда не упирались. Вопрос только в уважении разработчиков друг к другу. Ваше отношение с Гвоздем к уважению ясно, но Михаил проявил себя вполне достойно. Настоящий мужик. Уважаю.

Лично я готов сделать свое дополнение бесплатным хоть сейчас. Уверен Валентин не будет против.
Сергей Шлоков
25 марта 2016, 11:21
0
Да, pdoFetch решает проблему со скоростью. По-моему, Василий писал, что оптимизировал вызов getChunk() в цикле — т.е. он зачитывает его в кеш при первом обращении и потом достает его при повторном запросе. Т.е.
foreach ($rows as $row) {
	...
	// Первый запрос в базу, остальные в кэш
	$output .= $pdo->getChunk('name', $row);
}
Но мой кусок кода будет чуть-чуть быстрее только из-за многочисленных проверок методов класса pdoFetch, сделанных для универсальности и проверки разных условий.

П.С. Кстати, ты проверил годовые периоды?

П.П.С. И еще хотел сказал про феном, но Василий уже ответил.
Сергей Шлоков
25 марта 2016, 08:53
-5
И не поймешь до поры до времени. Перечитай мой последний комментарий.
Исходя из этого, у меня получается лишь один вывод:
Не получается. Разговор только о нашем тесном сообществе, где многие разработчики друг друга знают уже давно.

У меня стоит задача сделать себе на сайт промокоды. Вот я сделаю его и выложу здесь, чтобы послушать аплодисменты. А потом чуть допилю и сделаю купонатор. Тоже для аплодисментов. Ни строчки кода не скопирую с твоих компонентов. А чё, здоровая конкуренция. И тогда логика тебе в руки, а эмоции заверни в газету и убери на чердак.

Никого не хочу обидеть. Ответ чисто гипотетический, если бы вдруг меня об этом спросили.
Сергей Шлоков
25 марта 2016, 07:33
0
У меня опечатка в коде. В первой строчке должно быть так
$rows = $modx->getCollection('modResource', $q); // Про это я говорил заменить на newQuery.
Вот поправленный вариант
// Если использовать pdoTools
$where = array(); // Указать необходимое условие
$rows = $pdo->getCollection('modResource', $where); // Второй параметр: или id, или JSON, или массив
$output = '';
// Нужно указать название чанка
$chunk= $modx->getChunk('чанк');
foreach ($rows as $row) {
	// В чанке плейсхолдеры должны совпадать с именами ключей массива $row
	$modx->setPlaceholders($row);
	$modx->getParser()->processElementTags('', $chunk, false, false, '[[', ']]', array(), 10);
	$modx->getParser()->processElementTags('', $chunk, true, true, '[[', ']]', array(), 10);
	$output .= $chunk;
	$modx->unsetPlaceholders($row);
}
Сергей Шлоков
25 марта 2016, 07:23
0
Какой проблемы?
Сергей Шлоков
24 марта 2016, 20:05
-4
Михаил, не надо меня убеждать, что мои эмоции неправильные. Почему Василий обиделся на Володю за копирование небольшой части офиса (пользовательских контроллеров)? Ты сможешь это понять, когда будешь в такой же ситуации.
Я сделал сайтстатистик, чтобы заменить у себя HitsPage. И сделал его платным только из-за того, что считаю неправильно отбивать у них пользователей. Поэтому сделал выбор для пользователя — бесплатно меньше функций, платно больше. И ребятам из АртДевю не обидно. А чтобы пользователь чувствовал вес платного варианта, добавил ещё usersOnline, который вы и дарите тут.
Вопрос не в деньгах, а в солидарности разработчиков и уважении друг друга. Представь, что я сделаю свой бесплатный компонент, который копирует твой бесплатный. Т.е. ты ничего не потеряешь, но какие получишь эмоции?
Сергей Шлоков
24 марта 2016, 19:00
-3
Я разделил с тобой радость копирования функционала моего дополнения.
Сергей Шлоков
24 марта 2016, 18:57
0
Михаил, я имел ввиду свое дополнение.
Сергей Шлоков
24 марта 2016, 18:28
0
Да, стоит. Точно, плагин проверяет. Вот какое хорошее дополнение, поставил и проблемы сами решаются.
Ещё разделяю твою «радость» когда кто-то дарит функционал твоего платного дополнения.
Сергей Шлоков
24 марта 2016, 18:01
0
Еще одна встречающаяся проблема — после блокировки пользователь может делать на сайте все, что угодно, пока жива его сессия.
Вроде уже нет такой проблемы.
Сергей Шлоков
24 марта 2016, 08:43
0
Забыл сказать, ещё и папку админки не светишь.
Сергей Шлоков
24 марта 2016, 08:17
0
С токенами есть в AdminTools — вводишь логин и на почту получаешь ссылку для входа. Никакие переборы не страшны. Можно выпилить.
Сергей Шлоков
22 марта 2016, 20:06
1
-1
На вскидку.
...
// Я бы заменил getCollection() на newQuery(). Быстрее и меньше памяти жрет.
$rows = $pdo->getCollection('modResource', $q);
$output = '';
// Нужно указать название чанка
$chunk= $modx->getChunk('чанк');
foreach ($rows as $row) {
	// В чанке плейсхолдеры должны совпадать с именами ключей массива $row
	$modx->setPlaceholders($row);
	$modx->getParser()->processElementTags('', $chunk, false, false, '[[', ']]', array(), 10);
	$modx->getParser()->processElementTags('', $chunk, true, true, '[[', ']]', array(), 10);
	$output .= $chunk;
	$modx->unsetPlaceholders($row);
}
На 30 объектах время сократится раза в 2.
Сергей Шлоков
22 марта 2016, 18:01
0
Самый простой вариант оптимизации — это вынести getChunk из цикла. Т.е. вызывать его один раз, а не 30.
Сергей Шлоков
21 марта 2016, 08:24
0
Не в ногу вы идете с Росстатом. У них инфляция доли процента в месяц, а вы сразу на 20 поднимаете.
Ещё стоимость садика подняли на 25%. Придется выбирать — или сайт содержать или детей в садик водить. :))