The author's name is enough. You don't even have to question if it's a good book. You already know. There are certain classic authors. In astrology it's Robert Hand and Steven Forrest, the Wiccan, Shamanic and Magical worlds had Scott Cunningham and DJ Conway. Sadly, DJ passed on to Summerland in Feb. of 2019. but her books live on. She was a prolific writer whose works include classics like Dancing With Dragons and Celtic Magick. This is another one.

Comprehensive doesn't even come close to describing this tasty treat of a book. Actually, it's more like meat and potatoes. It's a reference book, par excellence! Thorough, precise, detailed, you never have to guess if there's anything more to be said or added to what she gives you. If you can name it,, she's already thought of it.

As the title says, this is about the four elements and the elementals that go along with them. Every element has a corresponding power animal, entity, herb, stone, oil, incense, incantation and spell, candle color, time of year, direction and not-so-nice entity. The list goes on and on. Most people are familiar with the four elements of fire, earth, air and water and Conway describes their characteristics and lists the corresponding items and animals, a spell along with the magical uses of the energy and a meditation. Conway also introduces the element of spirit and its elemental spirits along with the archangels of the five elements. Another new concept is crop circles and the elementals.

As author Gabriela Herstik says in her foreword, "Whether you want to meditate with the sylphs, work with fire elementals for spiritual growth, or break karmic ties, there is something for every magician, mystic,alchemist or Shaman in this book. This book is the yellow brick road."

~review by Judy Blackstone

Author: DJ Conway
Weiser Books/Red Wheel Weiser, 2020
226 pp., $16.95

32.503MBMemory Usage878msRequest Duration
Joomla! Version4.4.8
PHP Version8.3.21
Identityguest
Response200
Templatert_ambrosia
Database
Server
mysql
Version
10.6.22-MariaDB
Collation
latin1_swedish_ci
Conn Collation
utf8mb4_general_ci
$_GET
[]
$_POST
[]
$_SESSION
array:1 [ "joomla" => "***redacted***" ]
$_COOKIE
[]
$_SERVER
array:49 [ "USER" => "facingnorth" "HOME" => "/home/facingnorth" "SCRIPT_NAME" => "/index.php"...
session
array:3 [ "counter" => 1 "timer" => array:3 [ "start" => 1747664565 "last" => 1747664565...
registry
array:3 [ "data" => [] "initialized" => false "separator" => "." ]
user
array:18 [ "id" => 0 "name" => null "username" => null "email" => null "password" => "***r...
  • afterLoad (458.66KB) (3.9ms)
  • afterInitialise (809.8KB) (19.16ms)
  • afterRoute (544.33KB) (13.17ms)
  • beforeRenderComponent com_content (34.19KB) (1.58ms)
  • Before Access::preloadComponents (all components) (33.47KB) (800μs)
  • After Access::preloadComponents (all components) (107.34KB) (1.09ms)
  • Before Access::preloadPermissions (com_content) (1.57KB) (38μs)
  • After Access::preloadPermissions (com_content) (2MB) (7.6ms)
  • Before Access::getAssetRules (id:3376 name:com_content.article.2488) (66.65KB) (217μs)
  • After Access::getAssetRules (id:3376 name:com_content.article.2488) (8.72KB) (128μs)
  • afterRenderComponent com_content (255.2KB) (15.16ms)
  • afterDispatch (2.28KB) (126μs)
  • beforeRenderRawModule mod_finder (Search Module) (1.52MB) (23.58ms)
  • afterRenderRawModule mod_finder (Search Module) (278.92KB) (5.71ms)
  • beforeRenderModule mod_finder (Search Module) (720B) (12μs)
  • afterRenderModule mod_finder (Search Module) (1.28KB) (138μs)
  • afterRender (9.79MB) (785ms)
  • 1 x afterRender (9.79MB) (89.32%)
    784.62ms
    1 x beforeRenderRawModule mod_finder (Search Module) (1.52MB) (2.68%)
    23.58ms
    1 x afterInitialise (809.8KB) (2.18%)
    19.16ms
    1 x afterRenderComponent com_content (255.2KB) (1.73%)
    15.16ms
    1 x afterRoute (544.33KB) (1.5%)
    13.17ms
    1 x After Access::preloadPermissions (com_content) (2MB) (0.86%)
    7.60ms
    1 x afterRenderRawModule mod_finder (Search Module) (278.92KB) (0.65%)
    5.71ms
    1 x afterLoad (458.66KB) (0.44%)
    3.90ms
    1 x beforeRenderComponent com_content (34.19KB) (0.18%)
    1.58ms
    1 x After Access::preloadComponents (all components) (107.34KB) (0.12%)
    1.09ms
    1 x Before Access::preloadComponents (all components) (33.47KB) (0.09%)
    800μs
    1 x Before Access::getAssetRules (id:3376 name:com_content.article.2488) (66.65KB) (0.02%)
    217μs
    1 x afterRenderModule mod_finder (Search Module) (1.28KB) (0.02%)
    138μs
    1 x After Access::getAssetRules (id:3376 name:com_content.article.2488) (8.72KB) (0.01%)
    128μs
    1 x afterDispatch (2.28KB) (0.01%)
    126μs
    1 x Before Access::preloadPermissions (com_content) (1.57KB) (0%)
    38μs
    1 x beforeRenderModule mod_finder (Search Module) (720B) (0%)
    12μs
32 statements were executed, 3 of which were duplicates, 29 unique21.07ms380.05KB
  • SELECT @@SESSION.sql_mode;155μs968B/libraries/vendor/joomla/database/src/Mysqli/MysqliDriver.php:334Copy
  • SELECT `data` FROM `facv2_session` WHERE `session_id` = ?186μs1008BParams/libraries/vendor/joomla/session/src/Handler/DatabaseHandler.php:261Copy
  • SELECT `session_id` FROM `facv2_session` WHERE `session_id` = :session_id LIMIT 1146μs1.3KBParams/libraries/src/Session/MetadataManager.php:187Copy
  • INSERT INTO `facv2_session` (`session_id`,`guest`,`time`,`userid`,`username`,`client_id`) VALUES (:session_id, :guest, :time, :user_id, :username, :client_id)3.48ms944BParams/libraries/src/Session/MetadataManager.php:260Copy
  • SELECT `extension_id` AS `id`,`element` AS `option`,`params`,`enabled` FROM `facv2_extensions` WHERE `type` = 'component' AND `state` = 0 AND `enabled` = 1322μs1.61KB/libraries/src/Component/ComponentHelper.php:399Copy
  • SELECT `id`,`rules` FROM `facv2_viewlevels`117μs656B/libraries/src/Access/Access.php:955Copy
  • SELECT `b`.`id` FROM `facv2_usergroups` AS `a` LEFT JOIN `facv2_usergroups` AS `b` ON `b`.`lft` <= `a`.`lft` AND `b`.`rgt` >= `a`.`rgt` WHERE `a`.`id` = :guest166μs1.33KBParams/libraries/src/Access/Access.php:868Copy
  • SELECT `folder` AS `type`,`element` AS `name`,`params` AS `params`,`extension_id` AS `id` FROM `facv2_extensions` WHERE `enabled` = 1 AND `type` = 'plugin' AND `state` IN (0,1) AND `access` IN (:preparedArray1,:preparedArray2) ORDER BY `ordering`566μs3.48KBParams/libraries/src/Plugin/PluginHelper.php:294Copy
  • SELECT `m`.`id`,`m`.`menutype`,`m`.`title`,`m`.`alias`,`m`.`note`,`m`.`link`,`m`.`type`,`m`.`level`,`m`.`language`,`m`.`browserNav`,`m`.`access`,`m`.`params`,`m`.`home`,`m`.`img`,`m`.`template_style_id`,`m`.`component_id`,`m`.`parent_id`,`m`.`path` AS `route`,`e`.`element` AS `component` FROM `facv2_menu` AS `m` LEFT JOIN `facv2_extensions` AS `e` ON `m`.`component_id` = `e`.`extension_id` WHERE ( (`m`.`published` = 1 AND `m`.`parent_id` > 0 AND `m`.`client_id` = 0) AND (`m`.`publish_up` IS NULL OR `m`.`publish_up` <= :currentDate1)) AND (`m`.`publish_down` IS NULL OR `m`.`publish_down` >= :currentDate2) ORDER BY `m`.`lft`1.01ms133.17KBParams/libraries/src/Menu/SiteMenu.php:166Copy
  • SELECT `c`.`id`,`c`.`asset_id`,`c`.`access`,`c`.`alias`,`c`.`checked_out`,`c`.`checked_out_time`,`c`.`created_time`,`c`.`created_user_id`,`c`.`description`,`c`.`extension`,`c`.`hits`,`c`.`language`,`c`.`level`,`c`.`lft`,`c`.`metadata`,`c`.`metadesc`,`c`.`metakey`,`c`.`modified_time`,`c`.`note`,`c`.`params`,`c`.`parent_id`,`c`.`path`,`c`.`published`,`c`.`rgt`,`c`.`title`,`c`.`modified_user_id`,`c`.`version`, CASE WHEN CHAR_LENGTH(`c`.`alias`) != 0 THEN CONCAT_WS(':', `c`.`id`, `c`.`alias`) ELSE `c`.`id` END as `slug` FROM `facv2_categories` AS `s` INNER JOIN `facv2_categories` AS `c` ON (`s`.`lft` <= `c`.`lft` AND `c`.`lft` < `s`.`rgt`) OR (`c`.`lft` < `s`.`lft` AND `s`.`rgt` < `c`.`rgt`) WHERE (`c`.`extension` = :extension OR `c`.`extension` = 'system') AND `c`.`published` = 1 AND `s`.`id` = :id ORDER BY `c`.`lft`439μs3.88KBParams/libraries/src/Categories/Categories.php:375Copy
  • SELECT `id` FROM `facv2_content` WHERE `alias` = :alias AND `catid` = :catid187μs1.34KBParams/components/com_content/src/Service/Router.php:263Copy
  • SELECT `id`,`home`,`template`,`s`.`params`,`inheritable`,`parent` FROM `facv2_template_styles` AS `s` LEFT JOIN `facv2_extensions` AS `e` ON `e`.`element` = `s`.`template` AND `e`.`type` = 'template' AND `e`.`client_id` = `s`.`client_id` WHERE `s`.`client_id` = 0 AND `e`.`enabled` = 1359μs880B/administrator/components/com_templates/src/Model/StyleModel.php:773Copy
  • SELECT s.id, s.template, s.home, s.title AS long_title, s.params FROM facv2_template_styles AS s WHERE s.client_id = 0 AND s.template = 'rt_ambrosia' ORDER BY s.id201μs800B/libraries/gantry5/src/classes/Gantry/Joomla/StyleHelper.php:69Copy
  • SELECT * FROM `facv2_languages` WHERE `published` = 1 ORDER BY `ordering` ASC205μs1.59KB/libraries/src/Language/LanguageHelper.php:142Copy
  • SELECT `id`,`name`,`rules`,`parent_id` FROM `facv2_assets` WHERE `name` IN (:preparedArray1,:preparedArray2,:preparedArray3,:preparedArray4,:preparedArray5,:preparedArray6,:preparedArray7,:preparedArray8,:preparedArray9,:preparedArray10,:preparedArray11,:preparedArray12,:preparedArray13,:preparedArray14,:preparedArray15,:preparedArray16,:preparedArray17,:preparedArray18,:preparedArray19,:preparedArray20,:preparedArray21,:preparedArray22,:preparedArray23,:preparedArray24,:preparedArray25,:preparedArray26,:preparedArray27,:preparedArray28,:preparedArray29,:preparedArray30,:preparedArray31,:preparedArray32,:preparedArray33,:preparedArray34,:preparedArray35,:preparedArray36,:preparedArray37,:preparedArray38,:preparedArray39)565μs7.44KBParams/libraries/src/Access/Access.php:357Copy
  • SELECT `id`,`name`,`rules`,`parent_id` FROM `facv2_assets` WHERE `name` LIKE :asset OR `name` = :extension OR `parent_id` = 02.93ms181.48KBParams/libraries/src/Access/Access.php:301Copy
  • SHOW FULL COLUMNS FROM `facv2_content`568μs3.02KB/libraries/vendor/joomla/database/src/Mysqli/MysqliDriver.php:625Copy
  • UPDATE `facv2_content` SET `hits` = (`hits` + 1) WHERE `id` = '2488'1.56ms48B/libraries/src/Table/Table.php:1325Copy
  • SELECT `a`.`id`,`a`.`asset_id`,`a`.`title`,`a`.`alias`,`a`.`introtext`,`a`.`fulltext`,`a`.`state`,`a`.`catid`,`a`.`created`,`a`.`created_by`,`a`.`created_by_alias`,`a`.`modified`,`a`.`modified_by`,`a`.`checked_out`,`a`.`checked_out_time`,`a`.`publish_up`,`a`.`publish_down`,`a`.`images`,`a`.`urls`,`a`.`attribs`,`a`.`version`,`a`.`ordering`,`a`.`metakey`,`a`.`metadesc`,`a`.`access`,`a`.`hits`,`a`.`metadata`,`a`.`featured`,`a`.`language`,`fp`.`featured_up`,`fp`.`featured_down`,`c`.`title` AS `category_title`,`c`.`alias` AS `category_alias`,`c`.`access` AS `category_access`,`c`.`language` AS `category_language`,`fp`.`ordering`,`u`.`name` AS `author`,`parent`.`title` AS `parent_title`,`parent`.`id` AS `parent_id`,`parent`.`path` AS `parent_route`,`parent`.`alias` AS `parent_alias`,`parent`.`language` AS `parent_language`,ROUND(`v`.`rating_sum` / `v`.`rating_count`, 1) AS `rating`,`v`.`rating_count` AS `rating_count` FROM `facv2_content` AS `a` INNER JOIN `facv2_categories` AS `c` ON `c`.`id` = `a`.`catid` LEFT JOIN `facv2_content_frontpage` AS `fp` ON `fp`.`content_id` = `a`.`id` LEFT JOIN `facv2_users` AS `u` ON `u`.`id` = `a`.`created_by` LEFT JOIN `facv2_categories` AS `parent` ON `parent`.`id` = `c`.`parent_id` LEFT JOIN `facv2_content_rating` AS `v` ON `a`.`id` = `v`.`content_id` WHERE ( (`a`.`id` = :pk AND `c`.`published` > 0) AND (`a`.`publish_up` IS NULL OR `a`.`publish_up` <= :publishUp)) AND (`a`.`publish_down` IS NULL OR `a`.`publish_down` >= :publishDown) AND `a`.`state` IN (:preparedArray1,:preparedArray2)615μs6.12KBParams/components/com_content/src/Model/ArticleModel.php:215Copy
  • SELECT `c`.`id`,`c`.`asset_id`,`c`.`access`,`c`.`alias`,`c`.`checked_out`,`c`.`checked_out_time`,`c`.`created_time`,`c`.`created_user_id`,`c`.`description`,`c`.`extension`,`c`.`hits`,`c`.`language`,`c`.`level`,`c`.`lft`,`c`.`metadata`,`c`.`metadesc`,`c`.`metakey`,`c`.`modified_time`,`c`.`note`,`c`.`params`,`c`.`parent_id`,`c`.`path`,`c`.`published`,`c`.`rgt`,`c`.`title`,`c`.`modified_user_id`,`c`.`version`, CASE WHEN CHAR_LENGTH(`c`.`alias`) != 0 THEN CONCAT_WS(':', `c`.`id`, `c`.`alias`) ELSE `c`.`id` END as `slug` FROM `facv2_categories` AS `s` INNER JOIN `facv2_categories` AS `c` ON (`s`.`lft` <= `c`.`lft` AND `c`.`lft` < `s`.`rgt`) OR (`c`.`lft` < `s`.`lft` AND `s`.`rgt` < `c`.`rgt`) WHERE (`c`.`extension` = :extension OR `c`.`extension` = 'system') AND `c`.`access` IN (:preparedArray1,:preparedArray2) AND `c`.`published` = 1 AND `s`.`id` = :id ORDER BY `c`.`lft`512μs3.92KBParams/libraries/src/Categories/Categories.php:375Copy
  • SELECT `m`.`tag_id`,`t`.* FROM `facv2_contentitem_tag_map` AS `m` INNER JOIN `facv2_tags` AS `t` ON `m`.`tag_id` = `t`.`id` WHERE `m`.`type_alias` = :contentType AND `m`.`content_item_id` = :id AND `t`.`published` = 1 AND `t`.`access` IN (:preparedArray1,:preparedArray2)304μs3.97KBParams/libraries/src/Helper/TagsHelper.php:388Copy
  • SELECT `c`.`id`,`c`.`asset_id`,`c`.`access`,`c`.`alias`,`c`.`checked_out`,`c`.`checked_out_time`,`c`.`created_time`,`c`.`created_user_id`,`c`.`description`,`c`.`extension`,`c`.`hits`,`c`.`language`,`c`.`level`,`c`.`lft`,`c`.`metadata`,`c`.`metadesc`,`c`.`metakey`,`c`.`modified_time`,`c`.`note`,`c`.`params`,`c`.`parent_id`,`c`.`path`,`c`.`published`,`c`.`rgt`,`c`.`title`,`c`.`modified_user_id`,`c`.`version`, CASE WHEN CHAR_LENGTH(`c`.`alias`) != 0 THEN CONCAT_WS(':', `c`.`id`, `c`.`alias`) ELSE `c`.`id` END as `slug` FROM `facv2_categories` AS `s` INNER JOIN `facv2_categories` AS `c` ON (`s`.`lft` <= `c`.`lft` AND `c`.`lft` < `s`.`rgt`) OR (`c`.`lft` < `s`.`lft` AND `s`.`rgt` < `c`.`rgt`) WHERE (`c`.`extension` = :extension OR `c`.`extension` = 'system') AND `c`.`access` IN (:preparedArray1,:preparedArray2) AND `c`.`published` = 1 AND `s`.`id` = :id ORDER BY `c`.`lft`592μs3.92KBParams/libraries/src/Categories/Categories.php:375Copy
  • SELECT DISTINCT a.id, a.title, a.name, a.checked_out, a.checked_out_time, a.note, a.state, a.access, a.created_time, a.created_user_id, a.ordering, a.language, a.fieldparams, a.params, a.type, a.default_value, a.context, a.group_id, a.label, a.description, a.required, a.only_use_in_subform,l.title AS language_title, l.image AS language_image,uc.name AS editor,ag.title AS access_level,ua.name AS author_name,g.title AS group_title, g.access as group_access, g.state AS group_state, g.note as group_note FROM facv2_fields AS a LEFT JOIN `facv2_languages` AS l ON l.lang_code = a.language LEFT JOIN facv2_users AS uc ON uc.id=a.checked_out LEFT JOIN facv2_viewlevels AS ag ON ag.id = a.access LEFT JOIN facv2_users AS ua ON ua.id = a.created_user_id LEFT JOIN facv2_fields_groups AS g ON g.id = a.group_id LEFT JOIN `facv2_fields_categories` AS fc ON fc.field_id = a.id WHERE ( (`a`.`context` = :context AND (`fc`.`category_id` IS NULL OR `fc`.`category_id` IN (:preparedArray1,:preparedArray2,:preparedArray3)) AND `a`.`access` IN (:preparedArray4,:preparedArray5)) AND (`a`.`group_id` = 0 OR `g`.`access` IN (:preparedArray6,:preparedArray7)) AND `a`.`state` = :state) AND (`a`.`group_id` = 0 OR `g`.`state` = :gstate) AND `a`.`only_use_in_subform` = :only_use_in_subform ORDER BY a.ordering ASC1.04ms4.81KBParams/libraries/src/MVC/Model/BaseDatabaseModel.php:166Copy
  • SELECT `c`.`id`,`c`.`asset_id`,`c`.`access`,`c`.`alias`,`c`.`checked_out`,`c`.`checked_out_time`,`c`.`created_time`,`c`.`created_user_id`,`c`.`description`,`c`.`extension`,`c`.`hits`,`c`.`language`,`c`.`level`,`c`.`lft`,`c`.`metadata`,`c`.`metadesc`,`c`.`metakey`,`c`.`modified_time`,`c`.`note`,`c`.`params`,`c`.`parent_id`,`c`.`path`,`c`.`published`,`c`.`rgt`,`c`.`title`,`c`.`modified_user_id`,`c`.`version`, CASE WHEN CHAR_LENGTH(`c`.`alias`) != 0 THEN CONCAT_WS(':', `c`.`id`, `c`.`alias`) ELSE `c`.`id` END as `slug` FROM `facv2_categories` AS `s` INNER JOIN `facv2_categories` AS `c` ON (`s`.`lft` <= `c`.`lft` AND `c`.`lft` < `s`.`rgt`) OR (`c`.`lft` < `s`.`lft` AND `s`.`rgt` < `c`.`rgt`) WHERE (`c`.`extension` = :extension OR `c`.`extension` = 'system') AND `c`.`access` IN (:preparedArray1,:preparedArray2) AND `c`.`published` = 1 AND `s`.`id` = :id ORDER BY `c`.`lft`442μs3.92KBParams/libraries/src/Categories/Categories.php:375Copy
  • SELECT `a`.`menutype`,`a`.`title` FROM `facv2_menu_types` AS `a` WHERE `a`.`client_id` = 0152μs608B/libraries/gantry5/src/classes/Gantry/Framework/Menu.php:138Copy
  • SELECT m.id, m.alias, m.path AS route, m.level, m.parent_id FROM facv2_menu AS m WHERE m.menutype = 'mainmenu' AND m.parent_id > 0 AND m.client_id = 0 AND m.published >= 0 ORDER BY m.lft610μs1.98KB/libraries/gantry5/src/classes/Gantry/Framework/Menu.php:791Copy
  • SELECT `m`.`id`,`m`.`title`,`m`.`module`,`m`.`position`,`m`.`content`,`m`.`showtitle`,`m`.`params`,`mm`.`menuid` FROM `facv2_modules` AS `m` LEFT JOIN `facv2_modules_menu` AS `mm` ON `mm`.`moduleid` = `m`.`id` LEFT JOIN `facv2_extensions` AS `e` ON `e`.`element` = `m`.`module` AND `e`.`client_id` = `m`.`client_id` WHERE ( ( (`m`.`published` = 1 AND `e`.`enabled` = 1 AND `m`.`client_id` = :clientId AND `m`.`access` IN (:preparedArray1,:preparedArray2)) AND (`m`.`publish_up` IS NULL OR `m`.`publish_up` <= :publishUp)) AND (`m`.`publish_down` IS NULL OR `m`.`publish_down` >= :publishDown)) AND (`mm`.`menuid` = :itemId OR `mm`.`menuid` <= 0) ORDER BY `m`.`position`,`m`.`ordering`728μs1.83KBParams/libraries/src/Cache/Controller/CallbackController.php:51Copy
  • SELECT `name`,`element` FROM `facv2_extensions` WHERE `type` = 'plugin' AND `folder` = 'finder' AND `enabled` = 1376μs656B/administrator/components/com_finder/src/Helper/LanguageHelper.php:135Copy
  • SELECT `title` FROM `facv2_finder_taxonomy` WHERE `parent_id` = 1 AND `state` = 1 AND `access` IN (1,5)222μs584B/administrator/components/com_finder/src/Indexer/Taxonomy.php:314Copy
  • SELECT SUM(CASE WHEN `a`.`next_execution` <= :now THEN 1 ELSE 0 END) AS due_count,SUM(CASE WHEN `a`.`locked` IS NULL THEN 0 ELSE 1 END) AS locked_count FROM `facv2_scheduler_tasks` AS `a` WHERE `a`.`state` = 1291μs1.37KBParams/administrator/components/com_scheduler/src/Model/TasksModel.php:466Copy
  • SELECT `session_id` FROM `facv2_session` WHERE `session_id` = ?176μs1KBParams/libraries/vendor/joomla/session/src/Handler/DatabaseHandler.php:291Copy
  • UPDATE `facv2_session` SET `data` = ? , `time` = ? WHERE `session_id` = ?1.84ms592BParams/libraries/vendor/joomla/session/src/Handler/DatabaseHandler.php:318Copy