Rose debug info
---------------

Позднее Ctrl + ↑

OpenCart: как добавить фильтр по артикулу в админке

В стандартном фильтре в админке нельзя «фильтровать» товары по артикулу. Когда у вас тысячи товаров, такой фильтр в разы ускоряет поиск конкретного товара.

Что делать

  1. Открываем сайт/admin/controller/catalog/product.php
  1. Находим код (~227 строка):
protected function getList() {
  1. После фигурной скобки вставляем:
if (isset($this->request->get['filter_sku'])) {
	$filter_sku = $this->request->get['filter_sku'];
} else {
	$filter_sku = '';
}
$data['filter_sku'] = $filter_sku;
  1. В том же файле находим (~276 строка):
$url = ''
  1. После вставляем:
if (isset($this->request->get['filter_sku'])) {
	$url .= '&filter_sku=' . $this->request->get['filter_sku'];
}
  1. В том же файле находим (~324 строка):
$filter_data = array(
  1. После скобки вставляем:
'filter_sku' => isset($filter_sku) ? $filter_sku : '',
  1. Сохраняем, обновляеем кэш.
  1. Открываем сайт/admin/model/catalog/product.php
  1. Находим код (~361 строка):
if (!empty($data['filter_name'])) {
	$sql .= " AND pd.name LIKE '" . $this->db->escape($data['filter_name']) . "%'";
}
  1. После него вставляем:
if (isset($this->request->get['filter_sku']) && !empty($data['filter_sku'])) {
	$sql .= " AND p.sku = '" . $this->db->escape($data['filter_sku']) . "'";
}
  1. Сохраняем, обновляем кэш.
  1. Открываем сайт/admin/view/template/catalog/product_list.twig
  1. Находим код (~68 строка):
<div class="form-group">
	<label class="control-label" for="input-quantity">{{ entry_quantity }}</label>
	<input type="text" name="filter_quantity" value="{{ filter_quantity }}" id="input-quantity" class="form-control" />
</div>
  1. После него вставляем:
<div class="form-group">
	<label class="control-label" for="input-sku">Артикул</label>
	<input type="text" name="filter_sku" value="{{ filter_sku }}" id="input-sku" class="form-control" />
</div>
  1. В том же файле находим (~227 строка):
var filter_status = $('select[name=\'filter_status\']').val();
  1. После него вставляем:
var filter_sku = $('input[name=\'filter_sku\']').val();

if (filter_sku) {
	url += '&filter_sku=' + encodeURIComponent(filter_sku);
}
  1. Сохраняем, обновляем кэш.
  1. Готово.
 1279   2020   OpenCart 3   работа

OpenCart: как отключить кнопку покупки, когда товара нет в наличии

Когда товара нет в наличии, его, по умолчанию, можно добавить в корзину. В таком сценарии нет необходимости.

Что делать

  1. Открываем сайт/catalog/controller/product/product.php
  1. Находим код (~251 строка):
if ($product_info['quantity'] <= 0) {
	$data['stock'] = $product_info['stock_status'];
} elseif ($this->config->get('config_stock_display')) {
	$data['stock'] = $product_info['quantity'];
} else {
	$data['stock'] = $this->language->get('text_instock');
}
  1. Перед ним добавляем:
$data['stock_quantity'] = $product_info['quantity'];
$data['text_out_of_stock'] = $product_info['stock_status'];
  1. В том же файле находим (~436 строка):
$data['products'][] = array(
…
);
  1. После скобки добавляем:
'quantity' => $result['quantity'],
'text_out_of_stock' => $result['stock_status'],
  1. Сохраняем, обновляем кэш.
  1. Открываем сайт/catalog/theme/тема/template/product/product.twig
  1. Находим код:
<button type="button" id="button-cart" data-loading-text="{{ text_loading }}" class="btn button-cart">{{ button_cart }}</button>
  • В завимости от темы, код может отличаться, но button-cart остаётся константой.
  1. Заменяем его на:
{% if stock_quantity < 1 %} 
    <button type="button" id="button-outstock" disabled="disabled" data-loading-text="{{ text_loading }}" class="btn button-cart"><i class="fa fa-exclamation-triangle"></i> {{ text_out_of_stock }}</button>
{% else %}
    <button type="button" id="button-cart" data-loading-text="{{ text_loading }}" class="btn button-cart">{{ button_cart }}</button>
{% endif %}
  1. В том же файле находим:
<input type="text" name="quantity" value="{{ minimum }}" size="2" id="input-quantity" class="form-control" />
  1. Заменяем его на:
{% if stock_quantity > 1 %} 
    <input type="text" name="quantity" value="{{ minimum }}" size="2" id="input-quantity" class="form-control" />
{% endif %}
  1. В том же файле находим:
<label class="control-label" for="input-quantity">{{ entry_qty }}</label>
  1. Заменяем его на:
{% if stock_quantity > 1 %} 
    <label class="control-label" for="input-quantity">{{ entry_qty }}</label>
{% endif %}
  1. Сохраняем, обновляем кэш.
  1. Готово. На странице товара, когда его не будет в наличии, кнопка «Купить» станет неактивной.

Возникает вопрос. Вот мы отключили кнопку на странице товара. Славно. Но как быть, если кнопка есть ещё и в категориях, поиске, страницах производителей?

Всё зависит от конкретной темы. Но шаги остаются теми же, — меняются только редактируемые файлы. Например, category.php, manufacturer.php, search.php и пр.

 2844   2020   OpenCart 3   работа

Книга Д. Фрайда и Д. Х. Хенссона «Не сходите с ума на работе»

За последние три года я проработал в двух компаниях, философия которых мало чем отличалась от типичных историй из книг про успех: не останавливаемся ни на секунду, двигаемся вперёд, добиваемся максимальных результатов, включаем режим 24/7, 12 недель в году и вот это всё. Добились результатов? Хорошо. Но этого недостаточно! Двигаемся дальше.

Больше я не сторонник такого подхода. Книга об этом — перестать гнаться за успешным успехом и трудогольничать, успокоиться, начать спокойно работать и наладить жизнь.

Законспектировал, что больше всего откликнулось. А именно — рабочую философию.

Про спокойствие

  • Спокойствие экономит время и способствует сосредоточенности.
  • Спокойствие — это 40 рабочих часов в неделю.
  • Спокойствие — это разумные ожидания.
  • Спокойствие — это масса свободного времени.
  • Спокойствие — это тишина.
  • Спокойствие — это ясный горизонт.
  • Спокойствие — это встречи только в случае крайней необходимости.
  • Спокойствие — это приоритет индивидуальному планированию, а не общению в реальном времени.
  • Спокойствие — это больше независимости и меньше взаимных притязаний.
  • Спокойствие — это стабильные долгосрочные методы.
  • Спокойствие — это прибыль.

Про амбиции

Нам, людям, всегда мало. Нам недостаточно заработать долю рынка, мы хотим захватить весь рынок. Мы боремся. Стремимся к доминированию. Хотим «раздавить» конкурентов.

«Какова наша доля рынка? Да какая разница! Достаточно ли у нас клиентов, чтобы покрыть издержки и получить прибыль? Да. Растёт ли ежегодно их число? Да. И нам этого достаточно. Ничего не зависит от доли рынка, будь она два процента, четыре или 75. Важно, что у нас здоровый бизнес с крепкой экономикой, который нас полностью устраивает. Издержки под контролем, продажи прибыльные»

Чтобы получить своё, необязательно отнимать чужое. Противоположность завоеванию — это не поражение, а участие. Быть одним из многих вариантов на рынке значит действительно давать потребителям выбор.

Про цели

Цели — квартальные, годовые, стратегические — фикция, почти всегда надуманные показатели ради самих показателей. Это выглядит как замкнутый круг: ставим цели → входим в стресс → пытаемся их достичь или аннулинируем → выбираем новые цели → входим в стресс.

«Хотим ли мы зарабатывать больше? Да. Увеличить доход? Да. Повысить эффективность? Да. Сделать продукт проще, быстрее и удобнее? Да. Сделать клиентов и сотрудников счастливее? Конечно, да. Любим ли мы усовершенствования? О, да! Стремимся ли мы делать лучше? Да, всегда. Но хотим ли мы поднимать планку „лучше“ в постоянной погоне за целью? Нет»

Чтобы хорошо работать, не нужно ничего выдумывать. Если без цели никак, пусть это будет «удержаться на рынке». Или «качественно обслуживать клиентов». Или «создать идеальную рабочую обстановку». Такие цели не измеряются числами, но от этого они не менее важны.

Про планы

Нет нужды строить планы на годы вперёд. Достаточно смотреть на то, что происходит сейчас, а не фантазировать о будущем.

«Примерно каждые шесть недель мы определяем направление дальнейшей работы. Это наш единственный план. Всё за пределами этого периода входит в категорию „там видно будет“»

Лучше корректировать курс корабля, поворачивая штурвал тысячу раз по чуть-чуть, чем как следует крутанув его единожды.

Про зону комфорта

Быть в зоне комфорта — это нормально.

«Испытывать дискомфорт, а тем более страдать ради прогресса — занятие, лишённое всякой логики. […] Конечно, иногда, на пороге прорыва, несколько последних шагов могут принести вре́менные неудобства и бывают выстраданными. Но это исключение, а не правило»

Деятельность, не доставляющая неудобств, свидетельствует о недостаточном старании. Да что вы говорите?

Про рабочие часы

По мнению авторов, 40 часов в неделю хватит, чтобы хорошо поработать, создать конкурентный продукт и сделать всё самое важное. Никаких сверхурочных допоздна и по выходным, никаких «У нас аврал, поэтому на этой неделе работаем 70-80 часов».

«Если за сорокачасовую рабочую неделю вы не успеваете сделать всё, что считаете нужным, учитесь фильтровать дела, а не сидите над ними до ночи. […] После отказа от всего лишнего останется самое необходимое. И на это как раз достаточно восьми часов в день пять раз в неделю»

Большинство людей работают не восемь часов в день, а примерно два. Остальное время съедают отвлекающие факторы.

Про эффект «присутствия»

Неважно, сколько человек работает, где находится и что делает. Главное — результат.

«„Как быть уверенным, что люди работают, если их не видишь?“ Ответ такой же, как и на другой вопрос: „А как быть уверенным, что люди работают, если их видишь?“ Никак. Единственный способ — это посмотреть на результат, в чём, собственно, и заключаются обязанности руководителя. Если результата нет, пусть сотрудник ищет другое место»

Пусть у всех будет такой статус: я занят работой, пожалуйста, уважайте моё время и не отвлекайте зря.

Про «семью» в компании

Нет никакой семьи в компании. Коллеги — да. И это не означает равнодушие друг к другу. Но это не семья.

«Basecamp — не „наше детище“. Это наш продукт. Мы хотим сделать его как можно лучше, но не пойдём за него в огонь и в воду. И вам не советуем.

Мы не пудрим мозги ни себе, ни другим. Мы вместе работаем над продуктом. И гордимся этим. Этого достаточно.

Если руководитель говорит, что ваш коллектив как одна семья — держите ухо востро. Обычно это утверждение не подразумевает, что компания будет вас любить и встанет на вашу сторону, что бы ни случилось, как положено между родственниками. Скорее вы должны будете принести единоличную жертву на корпоративный „семейный“ алтарь»

Хорошая компания — не семья. Это помощник семьи и её союзник.

Что ещё понравилось

  • Баланс — это когда здравомыслящие люди делают разумный выбор. Тогда и компания будет вменяемая.
  • Гораздо приятнее развить чей-то потенциал, чем заполучить уже состоявшегося специалиста. Большинство сотрудников в Бэйскампе наняли не за то, какими они были, а за то, какими они могли бы стать.
  • Сотрудники в Бэйскампе на одинаковых должностях и на одном уровне получают равные деньги. Одна и та же работа — одна и та же зарплата.
  • Новая схема распределения прибыли: если общий доход за год вырос, 25% распределяется между сотрудниками независимо от должности и личной эффективности. Это не комиссионное вознаграждение. Свою долю получает каждый или никто.
  • В офисах с открытой планировкой невозможна нормальная творческая деятельность, потому что для создания достойных продуктов профессионалы нуждаются в покое, тишине и уединении.
  • Если не объяснять причины увольнения, люди сами их придумают. Чтобы этого избежать, достаточно честно и внятно озвучить всем, что произошло. Даже если это трудно. Поэтому, когда кто-то уходит из Бэйскампа, всем рассылают прощальное письмо.
  • Дедлайны строгие, но фиксированные и разумные. Дата не сдвигается ни вперёд, ни назад. Меняться может только объём работы — но лишь в меньшую сторону. Нельзя устанавливать дедлайн, а потом увеличивать объём.
  • Команды действуют автономно друг от друга, а не шагают в ногу. Одно подгоняется к другому, а не приклеивается. Клиенты получают результат, как только он оказывается готовым, без оглядки на состояние других процессов.
  • Слово предоставляют каждому, кто желает предложить свои идеи и обосновать их, но решение остаётся за кем-то одним. В ситуациях «несогласия и принятия» главное, чтобы мотивы принятия итогового решения всем чётко разъяснили. Не «решили — и вперёд», а «решили, разъяснили — и вперёд».
  • «Нормально» — идеальный результат для основной части выполняемой работы. А скрупулезность лучше приберечь для выполнения действительно важных задач.
  • Почти вся работа по продукту в Бэйскампе выполняется командами в составе трёх человек. Это достаточно сильная команда, чтобы многое построить, и достаточно слабая, чтобы что-то не сломать. Проблема четверых в том, что им почти всегда нужен пятый — руководитель. А проблема пяти в том, что их слишком много.
  • Ответив сейчас «нет», позже всегда можно сказать «да». Сразу согласившись, потом труднее отказаться. Лучше знать, от чего отказаться, чем на что согласиться.
  • Чтобы создать спокойную компанию, надо решить, кто вы, кому будете служить и с кем не хотите иметь дела. Надо знать, ради чего работаешь. Единственно правильного выбора нет, нерешительность или отсутствие выбора — вот что неправильно.
  • Начинать легко — трудно удержаться на плаву. Обеспечить шоу долгую популярность сложнее, чем впервые выйти на сцену.
  • Спокойная компания — это вопрос выбора.

Вместо заключения

Этот конспект больше про философию управления компанией, про образ мысли руководителя. Но книга этим не ограничивается. Лучше читать её целиком.

А ещё, если не читали, рекомендую почитать две другие книги этих же авторов — «Rework. Бизнес без предрассудков» и «Remote. Офис не обязателен».

Про ответственность

Не понимаю людей, которые берут на себя какую-либо ответственность, а затем уворачиваются от неё. Зачем тогда браться?

На этот счёт у меня есть простой принцип:

Если что-то пообещал, сказал или взял на себя какое-либо обязательство — делаю это. Если не хочу делать — ничего не обещаю, не говорю и не беру.

Бывает и по-другому, — когда есть уважительная причина, когда ты открыто об этом говоришь и не уходишь от обязательств, а пытаешься решить вопрос. Да, при таком раскладе что-то пойдёт не по плану, но, в итоге, дело будет сделано.

 405   2020   жизнь   принципы

Как получать удовольствие от чтения

Вот что нужно запомнить.

  1. Необязательно читать книги от корки до корки.
  2. Необязательно читать с самого начала. Можно начать с любого места.
  3. Не хочется читать «воду», истории, отдельные страницы или главы — не читать.
  4. Не нравится книга — перестать читать, отложить и не париться.
  5. Хочется перечитать книгу — надо перечитать.
  6. Хочется читать тридцать книг одновременно — нет проблем, надо читать.
  7. Захотелось почитать глубокой ночью или в любое другое время — вперёд.
  8. Необязательно читать книги одинаково. Одни мы читаем, тщательно перерабатываем, анализируем, обсуждаем. Другие просто «проглатываем» и забываем. Это нормально.

В общем, вывод такой:

Читать — что хочется, сколько хочется, как хочется и когда хочется.

 1127   2020   книги   принципы   чтение

OpenCart: как скрыть товары, которых нет в наличии

Чтобы были доступны и по ссылке, и в поисковиках.

В чём проблема

Представим, что у нас много тысяч товаров на сайте. Многих уже нет в наличии. Но они по-прежнему отображаются и в поиске сайта, и в категориях, и на страницах производителей. А мы знаем, что их больше не будет и они просто так «висят».

Что делать

  1. Открыть сайт/catalog/model/catalog/product.php
  1. Открыть поиск и найти все условия:
AND p.status = '1'
  • Это условие отвечает за показ товара, когда он включён.
  1. Заменить все найденные условия (кроме одного ↓) на:
AND p.status = '1' AND p.stock_status_id != '5'
  • Это условие, при котором товар не будет отображаться: включён и нет в наличии.
  1. Не заменять условие в самом начале файла:
public function getProduct($product_id) {
…
}
  1. Сохранить, обновить кэш.
  1. Готово. Товары, которых нет в наличии, не отображаются, но доступны по прямой ссылке и отображаются в поисковиках.

Другой вариант

Допустим, что товара нет в наличии временно. И нам нужно, чтобы его видели на сайте. Тогда можно всё немного переиграть.

Что делать

  1. В том же файле открыть поиск и найти те же условия.
  1. Заменить их (также, кроме одного) на:
AND p.status = '1' AND p.minimum != '0'
  1. Сохранить, обновить кэш.
  1. Готово. Товары, которых нет в наличии, будут отображаться как обычно. Но товары, у которых минимальное количество будет равно нулю, отображаться не будут. Для них можно создать и отдельный статус, например «Снят с производства».
 2949   2020   OpenCart 3   работа

OpenCart: автогенерация сопутствующих товаров

Все сопутствующие товары, по умолчанию, добавляются вручную. Когда на сайте тысячи товаров, это становится проблемой.

Что делать

  1. Открываем сайт/catalog/model/catalog/product.php
  1. Находим код (~392 строка):
$query = $this->db->query("SELECT * FROM " . DB_PREFIX . "product_related pr LEFT JOIN " . DB_PREFIX . "product p ON (pr.related_id = p.product_id) LEFT JOIN " . DB_PREFIX . "product_to_store p2s ON (p.product_id = p2s.product_id) WHERE pr.product_id = '" . (int)$product_id . "' AND p.status = '1' AND p.date_available <= NOW() AND p2s.store_id = '" . (int)$this->config->get('config_store_id') . "'");
  1. Заменяем его на:
$query = $this->db->query("SELECT *, (p.product_id) AS related_id FROM
  " . DB_PREFIX . "product_to_category p2c 
    LEFT JOIN " . DB_PREFIX . "product p ON (p2c.product_id = p.product_id)
    LEFT JOIN " . DB_PREFIX . "product_to_store p2s ON (p.product_id = p2s.product_id)
  WHERE 
    p2c.category_id IN (SELECT p2c2.category_id FROM " . DB_PREFIX . "product_to_category p2c2 WHERE p2c2.product_id = " . (int) $product_id . ")
      AND p.product_id <> " . (int) $product_id . "
      AND p.status = '1'
      AND p.stock_status_id != '5'
      AND p.date_available <= NOW()
      AND p2s.store_id = '" . (int)$this->config->get('config_store_id') . "'
    ORDER BY RAND() ASC
  LIMIT 0,8");
  1. Сохраняем, обновляем кэш.
  1. Готово.

Сопутствующие товары начнут генерироваться случайным образом — из подкатегорий родительской категории. И только те, которые есть в наличии.

 1512   2020   OpenCart 3   работа

OpenCart: как защитить админку

Админка, по умолчанию, находится по адресу сайт.ру/admin. Это проблема.

Что делать

  1. Открываем сайт/admin/controller/common/login.php
  1. Находим код:
$this->load->language('common/login');
  1. После него вставляем:
$pass = null;
if (!isset($_GET[PASS_KEY]) || $_GET[PASS_KEY] != PASS) {
    $this->response->redirect('http://'.$_SERVER['HTTP_HOST']."/");
}
else {
    $pass = '&'.PASS_KEY.'='.PASS;
}
  1. Находим код:
$data['action'] = $this->url->link('common/login', '', true);
  1. Заменяем его на:
$data['action'] = $this->url->link('common/login', '', true).$pass;
  1. Открываем сайт/admin/config.php
  1. После тега <?php, на новой строке, вставляем:
define('PASS_KEY', 'ключ');
define('PASS', 'пароль');
  1. Заменяем ключ, например, на access, а пароль на hellohacker.
  1. Сохраняем, обновляем кэш.
  1. Готово.
  1. Админка будет находиться по адресу сайт.ру/admin?access=hellohacker.
  1. Если адрес ввести неверно, произойдёт переадресация на главную страницу.

Книга Остина Клеона «Кради как художник»

Книга с философской ноткой: о жизни, творчестве, вдохновении. Помогает справиться с синдромом самозванца.

Отметил то, что понравилось.

  1. Нет ничего оригинального. Если мы считаем что-то «оригинальным», то в 9 случаях из 10 мы просто не вычислили первоисточник.

Всё, что должно быть сказано, уже сказано. Но посколько этого никто не услышал, можно всё что угодно сказать ещё раз.

  1. Когда мы не стремимся к абсолютной оригинальности, мы прекращаем попытки создать что-то из ничего.

«Крадите всё, что вступает в резонанс с вашим воображением или подпитывает его. Жадно поглощайте все впечатления и явления: старые и новые фильмы, музыку, книги, картины, фотографии, стихи, сны, случайные разговоры, архитектуру, мосты, уличные указатели, деревья, облака, потоки воды, свет и тени. И крадите лишь то, что находит живой отклик в вашей душе. Если делать так, ваша работа — ваша кража — будет оригинальной»

Лучше взять то, что вам не принадлежит, чем оставить это валяться безо всякой пользы.

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

Мастера, которые уже умерли или просто живут очень далеко, не станут возражать, если вы будете у них учиться. Учиться, чему захотите. Все учебные планы они оставили нам в своих работах.

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

Заведите папку для украденного. Видите нечто достойное заимствования? Отправялйте его в папку для украденного. Требуется вдохновение? Открывайте папку для украденного.

  1. Чтобы понять собственную природу, понять кто мы и кем хотим быть, нужно начать что-то делать, выполнять какую-то работу, — вместо самокопания. Да, это может быть страшно. Это нормально. Часто наше бездействие связано с тем, что мы страдаем «синдромом самозванца».

«Синдром самозванца — психологическое явление, при котором человек неспособен принять собственные достижения. Это значит, что вы чувствуете себя мошенником, думаете, что действуете экспромтом, и не имеете ни малейшего понятия о цели своих действий.

Знаете что? Все чувствуют это. Спросите любого, кто создал хоть что-то действительно креативное, и он вам честно ответит, что не представляет, откуда приходят правильные решения. Он просто делает своё дело. Каждый день»

  1. Мы не рождаемся с точным знанием о том, кто мы есть. Вначале мы учимся походить на своих героев. Учимся, копируя.

«Речь идёт о практике. Это не плагиат, не попытка выдать чужую работу за свою. Копирование скорее похоже на реконструкцию. Вспомните, ведь механик разбирает автомобить на части для того, чтобы понять, как он работает.

Мы учимся писать, копируя алфавит. Музыканты учатся, играя гаммы. Художники учатся, копируя шедевры живописи. Даже „Битлз“ начинали с каверов»

Начинайте копировать то, что вам нравится. Копируйте. Копируйте. Копируйте. Копируйте. И найдёте себя.

  1. Необходимо красть не у одного из своих героев, а у всех сразу.

Копируя одного автора, вы занимаетесь плагиатом, копируя многих — проводите исследование.

  1. Мы не должны выглядеть как наши герои, нам нужно видеть как они. Перенять их способ смотреть на мир. Понять их образ мыслей.

Если вы просто скользите по поверхности чужого творчества без понимания его истоков, ваши работы всегда будут просто подделками.

  1. Ценностью становится трансформация работ наших героев в нечто присущее только нам. Так и происходит наша эволюция.
  1. Когда закончатся идеи — помыть посуду. Отправиться в долгую прогулку. Гулять по незнакомым местам. Бродить просто так. Хорошо не знать, куда приведёт дорога. Не жалеть времени на безделье.

То, что вы делаете от безделья, возможно должно быть главным делом вашей жизни.

  1. Не искать одобрения окружающих, а просто делать то, что нравится.
  1. Чтобы преодолеть творческий ступор, нужно ограничить самого себя.

«Это может прозвучать парадоксально, но, когда речь идёт о творчестве, ограничение означает свободу. Напишите песню за время обеда. Нарисуйте картину всего одним цветом. Начните бизнес с минимальным капиталом. Снимите фильм при помощи айфона и нескольких друзей. Соберите машину из запчастей. Не оправдывайтесь тем, что это не сработает, создавайте вещи, используя все ресурсы — время, пространство, материалы, — которые у вас есть, прямо сейчас»

Вместо заключения

Манифест Остина Клеона:

Рисуйте картины, которые сами хотели бы увидеть; начинайте бизнес, которым хотели бы управлять; играйте музыку, которую хотели бы услышать; пишите книгу, которую хотели бы прочитать; придумывайте товары, которыми хотели бы пользоваться.

Книга Клэр Норт «Пятнадцать жизней Гарри Огаста»

Изначально я искал книги про день сурка, путешествие во времени и вот это всё, а нашёл её. И с таким сюжетом я прежде не сталкивался. Книга про жизнь сурка.

Главный герой — Гарри Огаст. Человек, у которого есть способность перерождаться после смерти снова и снова. С одним только «но» — он рождается в то же время, в том же месте, и проживает одну и ту же жизнь. Кроме этого, он помнит все свои предыдущие жизни, чем активно пользуется по ходу сюжета.

Сам сюжет крутится вокруг клуба «Хронос» — «хранителей» истории и/или времени; борьбы между теми, кто хочет сохранить историю и теми, кто хочет её переписать; скорого конца света.

Гарри Огаст

Гарри был особенным — мнемоником. Человеком, который помнил события предыдущих жизней во всех подробностях. В то время как у других подобных ему людей, со временем, воспоминания стирались.

Родился в Англии, в первый день 1919 года. Он был внебрачным ребёнком и жил в приёмной семье.

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

Со временем, в следующих жизнях, Гарри, в попытках разобраться кто он, а позже и в желании помочь спасти мир, будет много учиться. Он будет и врачом, и учёным, и профессором, и журналистом, и криминальным авторитетом, и даже религиозным последователем.

Клуб «Хронос»

Это закрытое, тайное общество, в которое входят люди, имеющие способность к перерождению. Клуб остаётся в тени и не вмешивается в ход истории. Его участники скапливают богатсва, помогают себе подобным и организуют фонды для потомков.

Достоврено неизвестно, кто его основал, но почти наверняка он возник в древнем Вавилоне в 3000 году до нашей эры. Это известно, потому что основатели клуба, в память об этом событии, на протяжении веков строят обелиск в пустыне. На обелиске они пишут свои имена и часто оставляют послание следующим поколениям членов клуба

Однако, как ни парадаксально, возможно, его основал человек из 18 века.

Со временем, клуб стал разрастаться: его члены активно разыскивали других — тех, кто ещё ничего про себя не понял. За несколько циклов рождений и смертей, клуб не только разросся в численности, но и во времени — его члены обнаруживались и в 20 веке, и в средневековье, и в более глубоком прошлом.

Конец света

Главное правило клуба — не вмешиваться в ход истории. Но были и те, кто не мог устоять перед соблазном. Первый случай, который, в итоге, привёл к концу света, произошёл в 1642 году в Париже. Его вызвал скромный, непритязательный человек по имени Виктор Хенесс.

Виктор был летописцем и в течение нескольких жизней снабжал клуб достоверными историческими фактами. В какой-то момент он начал вести переписку с людьми, которые родились в более поздние эпохи.

«Вопрос, сформулированный, скажем, в 19 или в начале 20 века, передавался назад, в более раннее время, — от человека, который был ребёнком, например, в 1850 году, к тому, кто к этому времени успел состариться, но в 1780 году был ещё совсем мальчишкой. Тот, в свою очередь, передавал послание человеку, пребывавшему на склоне лет в 1710 году, и так далее — пока наконец член клуба, живший в одно время с Хенессом, не получал возможность задать вопрос лично ему»

Узнав о будущем, он, завоевав доверие французского короля, начал менять мир. Понимая, что времени у него не много, он начал искать последователей в клубе, которые могли бы продолжить его дело после смерти.

«Виктор, не имея более или менее ясных представлений о грядущем техническом прогрессе и его достижениях, породил процесс, который должен был изменить лицо планеты до неузнаваемости. В 1693 году испытательный пробег от Парижа до Версаля совершил первый поезд, движимый паровым локомотивом. В 1701 году бронированный военный корабль, стреляя из мощных орудий, всего за два часа уничтожил целый пиратский флот у берегов Алжира. В 1768 году Эдо подвергся атакам самолётов-бомбардировщиков»

Виктор не увидел, чем всё закончилось. Конец света наступил, когда 18 ноября 1937 года группа боевиков захватила пусковые установки шахтного базирования и запустила три ядерные ракеты, вызвав серию ответных ударов. Затем последовала ядерная зима. К 1953 году жизнь на планете Земля прекратилась.

А потом всё началось сначала.

Другие детали сюжета

  1. Случай с Виктором — не единичный. В 20 веке всё обстояло много хуже: тот, кто активно менял ход истории, начал истреблять участников клуба, чтобы никто не смог его остановить. В итоге, внутри клуба, началась «гражданская» война. В цепи этих событий, Гарри был ключевым звеном, чтобы попытаться спасти мир.
  1. Формально, есть три вида смерти: смерть и перерождение, забвение и смерть без перерождения (то есть — окончательная).
  • Забвение — это стирание памяти. Фактически, это осознанное умертвление сознания: в следующей жизни — полное беспамятство, «чистый» лист.
  • Смерть без перерождения — это убийство в чистом виде. Убийца узнаёт дату и место рождения жертвы, находит мать и убивает её, — либо до беременности, либо во время. Это значит, что убийца может быть только членом клуба «Хронос».
  1. У Гарри было три весомых преимущества: будучи мнемоником, на него не действовала процедура забвения; так как он жил в приёмной семье, шансы на то, чтобы вычислить его происхождение и убить — были невелики.
  1. Финал — открытый. В конце Гарри умирает, но не окончательно. А значит, родится заново. В шестнадцатой жизни.

Открытые вопросы

  1. Даже если Виктор и нашёл последователей, то после смерти он всё равно рождается заново. Выходит, что конец света был уже в другой реальности, в другой временной линии.
  1. И получается, что каждое новое перерождение любого из участников клуба — это тоже создание новой реальности. Но парадокс в том, что эти реальности связаны между собой — потому что участники клуба помнят друг друга и связаны общей историей.
  1. Каждому из участников клуба отведён свой временной промежуток. Возникает вопрос: как появляются потомки? Ведь после смерти, всё начинается сначала. Значит, они появляются независимо от этого. А это значит, что они появляются на свет уже в другой реальности.
  1. Главная мысль в том, что эти реальности связаны между собой, но при этом они параллельны, и при этом независимы от «общей» истории — потому что время не перезапускается после смерти, а течёт дальше. Тем самым создавая новую реальность, которая всё равно связана с другими. Тем самым, можно подумать, что все реальности существуют одновременно и параллельно: и в прошлом, и в будущем, и в настоящем.

В заключении

Книгу прочитал за один присест. Мне, в целом, настолько понравилось, что я впервые решил написать об этом. Она стоит того, чтобы прочитать её целиком. Но, много фантазируя и пытаясь разобраться в деталях, можно голову сломать…

Ранее Ctrl + ↓