System error

error:  Can't call method "prepare" on an undefined value at /usr/local/lib/site_perl/SJG/Configuration/DB.pm line 117.
context: 
... 
113:  my $self = shift(@_);
114:  my $query_nickname = shift(@_);
115:  my $query = shift(@_);
116: 
117:  $self->{"queries"}->{$query_nickname} = $self->{"db"}->prepare($query);
118: 
119:  return 1;
120:  }
121: 
... 
code stack:  /usr/local/lib/site_perl/SJG/Configuration/DB.pm:117
/usr/local/lib/site_perl/SJG/Configuration/DB.pm:89
/home/www/secure/ill/comps/illcal.mas:131
/home/www/secure/ill/ill.html:150
/home/www/secure/ill/index.html:4
/home/www/secure/ill/archive/dhandler:3
raw error






























Can't call method "prepare" on an undefined value at /usr/local/lib/site_perl/SJG/Configuration/DB.pm line 117.


Trace begun at /usr/local/share/perl/5.14.2/HTML/Mason/Exceptions.pm line 125
HTML::Mason::Exceptions::rethrow_exception('Can\'t call method "prepare" on an undefined value at /usr/local/lib/site_perl/SJG/Configuration/DB.pm line 117.^J') called at /usr/local/lib/site_perl/SJG/Configuration/DB.pm line 117
SJG::Configuration::DB::prepare('SJG::Configuration::DB=HASH(0x7ffb65a78210)', 'RESERVED', 'select name from qdata where qname=? and upload_date=?') called at /usr/local/lib/site_perl/SJG/Configuration/DB.pm line 89
SJG::Configuration::DB::sql('SJG::Configuration::DB=HASH(0x7ffb65a78210)', 'select name from qdata where qname=? and upload_date=?', 'illq', '2023-07-01') called at /home/www/secure/ill/comps/illcal.mas line 131
HTML::Mason::Commands::__ANON__('sqldate', '2023-07-18') called at /usr/local/share/perl/5.14.2/HTML/Mason/Component.pm line 135
HTML::Mason::Component::run('HTML::Mason::Component::FileBased=HASH(0x7ffb65a827b0)', 'sqldate', '2023-07-18') called at /usr/local/share/perl/5.14.2/HTML/Mason/Request.pm line 1302
eval {...} at /usr/local/share/perl/5.14.2/HTML/Mason/Request.pm line 1292
HTML::Mason::Request::comp(undef, undef, 'sqldate', '2023-07-18') called at /home/www/secure/ill/ill.html line 150
HTML::Mason::Commands::__ANON__('sqldate', '2023-07-18', 'illuminator', '^J^I^I^I<h1>July 18, 2023: Bug Your Players!</h1>^J^I^I^I<p>^M^J^II&#39;ve been a fan of roleplaying games for decades. However, I suffer from a curse that I suspect afflicts many gamers: I&#39;m a GM who loves the rich tapestry of in-depth campaigns and detailed developments, but I&#39;m also really lazy when it comes to taking notes. However, I&#39;ve found a possible solution that might be useful for your gaming table, depending on your talents and inclinations: Record your players!</p>^M^J<p>^M^J^IWith a portable recording device (such as, for me, my trusty iPad) and maybe a microphone (depending on the proximity of the group and how sensitive the recorder is), I can record all the activity at the table. This greatly obviates the need to take copious notes, since I can be reasonably certain I caught the action in the moment. Then, after the session, I can use audio software to skip to different points, listen at double speed to catch the highlights, and search for important bits. (I&#39;m a fan of <a href="https://www.felttip.com/ss/">Sound Studio for my Mac</a>, but there are great free options out there as well.)</p>^M^J<p>^M^J^IIf the recordings are good enough, I could even use snippets to reintroduce important bits from past sessions &ndash; the tabletop version of &quot;Previously on . . .&quot; If you&#39;re a GM who likes to use different on-the-fly voices or mannerisms for NPCs, it can also be a great way to remind you how certain NPCs sound.</p>^M^J<p>^M^J^IOf course, only record the group with their permission! If you make the recordings available to <i>them</i> as well, you&#39;ll help them refresh their memories of past sessions or interactions quickly and more accurately.</p>^M^J<p>^M^J^IIf you go this route, you may still want to jot down <i>really</i> important notes during the session. These notes can serve as a backup in case the recording fails, and can also provide an &quot;outline&quot; to make searching the audio file easier.</p>^M^J<p>^M^J^IIf you use this technique &ndash; in your <a href="http://www.sjgames.com/gurps/"><i><b>GURPS</b></i></a> game or otherwise &ndash; I&#39;d love to <a href="mailto:smarsh@sjgames.com">hear about your experience</a>!</p>^M^J<p>^M^J^I-- <a href="mailto:smarsh@sjgames.com">Steven Marsh</a></p>^M^J^J^I^I^I<br clear="all">^J^I^I^I^J^I^I^I<p id="discussForum" style="float: right;"><a href="http://forums.sjgames.com/forumdisplay.php?f=92"><img src="http://www.sjgames.com/img/discuss-on-forums.png" alt="Discuss this post on the forums!" /></a></p>^J^I        ^J<!-- addthis -->^J^J<b><span style="float:left; padding:0 1%;">Share this post!</span></b>^J<div class="addthis_toolbox addthis_default_style" style="float:left;">^J    <a class="addthis_button_facebook" addthis:url="http://secure.sjgames.com/ill/archive/July_18_2023/Bug_Your_Players" addthis:title="Daily Illuminator: Bug Your Players!"></a>^J    <a class="addthis_button_twitter" addthis:url="http://secure.sjgames.com/ill/archive/July_18_2023/Bug_Your_Players" addthis:title="Daily Illuminator: Bug Your Players!"></a>^J    <a class="addthis_button_reddit" addthis:url="http://secure.sjgames.com/ill/archive/July_18_2023/Bug_Your_Players" addthis:title="Daily Illuminator: Bug Your Players!"></a>^J    <a class="addthis_button_tumblr" addthis:url="http://secure.sjgames.com/ill/archive/July_18_2023/Bug_Your_Players" addthis:title="Daily Illuminator: Bug Your Players!"></a>^J    <a class="addthis_button_email" addthis:url="http://secure.sjgames.com/ill/archive/July_18_2023/Bug_Your_Players" addthis:title="Daily Illuminator: Bug Your Players!"></a>^J    <span class="addthis_separator">|</span>^J    <a class="addthis_button_expanded" addthis:url="http://secure.sjgames.com/ill/archive/July_18_2023/Bug_Your_Players" addthis:title="Daily Illuminator: Bug Your Players!">More</a>^J</div>^J^J<div style="margin: 5px 0; clear: left;">^J    <a href="http://secure.sjgames.com/ill/archive/July_18_2023/Bug_Your_Players" class="small">Permalink</a> &bull;^J    <a href="/ill/archive/" class="small">Archive</a> &bull;^J    <a href="/ill/illsotw/" class="small">Illuminated&nbsp;Site&nbsp;of&nbsp;the&nbsp;Week</a>^J</div>^J', 'pagetitle', 'Daily Illuminator: Bug Your Players!', 'mobile', 0, 'description', 'I&#39;ve been a fan of roleplaying games for decades. However, I suffer from a curse that I suspect afflicts many gamers: I&#39;m a GM who loves the rich tapestry of in-depth campaigns and detailed developments, but I&#39;m also really lazy when it comes to taking notes . . .') called at /usr/local/share/perl/5.14.2/HTML/Mason/Component.pm line 135
HTML::Mason::Component::run('HTML::Mason::Component::FileBased=HASH(0x7ffb65a448b8)', 'sqldate', '2023-07-18', 'illuminator', '^J^I^I^I<h1>July 18, 2023: Bug Your Players!</h1>^J^I^I^I<p>^M^J^II&#39;ve been a fan of roleplaying games for decades. However, I suffer from a curse that I suspect afflicts many gamers: I&#39;m a GM who loves the rich tapestry of in-depth campaigns and detailed developments, but I&#39;m also really lazy when it comes to taking notes. However, I&#39;ve found a possible solution that might be useful for your gaming table, depending on your talents and inclinations: Record your players!</p>^M^J<p>^M^J^IWith a portable recording device (such as, for me, my trusty iPad) and maybe a microphone (depending on the proximity of the group and how sensitive the recorder is), I can record all the activity at the table. This greatly obviates the need to take copious notes, since I can be reasonably certain I caught the action in the moment. Then, after the session, I can use audio software to skip to different points, listen at double speed to catch the highlights, and search for important bits. (I&#39;m a fan of <a href="https://www.felttip.com/ss/">Sound Studio for my Mac</a>, but there are great free options out there as well.)</p>^M^J<p>^M^J^IIf the recordings are good enough, I could even use snippets to reintroduce important bits from past sessions &ndash; the tabletop version of &quot;Previously on . . .&quot; If you&#39;re a GM who likes to use different on-the-fly voices or mannerisms for NPCs, it can also be a great way to remind you how certain NPCs sound.</p>^M^J<p>^M^J^IOf course, only record the group with their permission! If you make the recordings available to <i>them</i> as well, you&#39;ll help them refresh their memories of past sessions or interactions quickly and more accurately.</p>^M^J<p>^M^J^IIf you go this route, you may still want to jot down <i>really</i> important notes during the session. These notes can serve as a backup in case the recording fails, and can also provide an &quot;outline&quot; to make searching the audio file easier.</p>^M^J<p>^M^J^IIf you use this technique &ndash; in your <a href="http://www.sjgames.com/gurps/"><i><b>GURPS</b></i></a> game or otherwise &ndash; I&#39;d love to <a href="mailto:smarsh@sjgames.com">hear about your experience</a>!</p>^M^J<p>^M^J^I-- <a href="mailto:smarsh@sjgames.com">Steven Marsh</a></p>^M^J^J^I^I^I<br clear="all">^J^I^I^I^J^I^I^I<p id="discussForum" style="float: right;"><a href="http://forums.sjgames.com/forumdisplay.php?f=92"><img src="http://www.sjgames.com/img/discuss-on-forums.png" alt="Discuss this post on the forums!" /></a></p>^J^I        ^J<!-- addthis -->^J^J<b><span style="float:left; padding:0 1%;">Share this post!</span></b>^J<div class="addthis_toolbox addthis_default_style" style="float:left;">^J    <a class="addthis_button_facebook" addthis:url="http://secure.sjgames.com/ill/archive/July_18_2023/Bug_Your_Players" addthis:title="Daily Illuminator: Bug Your Players!"></a>^J    <a class="addthis_button_twitter" addthis:url="http://secure.sjgames.com/ill/archive/July_18_2023/Bug_Your_Players" addthis:title="Daily Illuminator: Bug Your Players!"></a>^J    <a class="addthis_button_reddit" addthis:url="http://secure.sjgames.com/ill/archive/July_18_2023/Bug_Your_Players" addthis:title="Daily Illuminator: Bug Your Players!"></a>^J    <a class="addthis_button_tumblr" addthis:url="http://secure.sjgames.com/ill/archive/July_18_2023/Bug_Your_Players" addthis:title="Daily Illuminator: Bug Your Players!"></a>^J    <a class="addthis_button_email" addthis:url="http://secure.sjgames.com/ill/archive/July_18_2023/Bug_Your_Players" addthis:title="Daily Illuminator: Bug Your Players!"></a>^J    <span class="addthis_separator">|</span>^J    <a class="addthis_button_expanded" addthis:url="http://secure.sjgames.com/ill/archive/July_18_2023/Bug_Your_Players" addthis:title="Daily Illuminator: Bug Your Players!">More</a>^J</div>^J^J<div style="margin: 5px 0; clear: left;">^J    <a href="http://secure.sjgames.com/ill/archive/July_18_2023/Bug_Your_Players" class="small">Permalink</a> &bull;^J    <a href="/ill/archive/" class="small">Archive</a> &bull;^J    <a href="/ill/illsotw/" class="small">Illuminated&nbsp;Site&nbsp;of&nbsp;the&nbsp;Week</a>^J</div>^J', 'pagetitle', 'Daily Illuminator: Bug Your Players!', 'mobile', 0, 'description', 'I&#39;ve been a fan of roleplaying games for decades. However, I suffer from a curse that I suspect afflicts many gamers: I&#39;m a GM who loves the rich tapestry of in-depth campaigns and detailed developments, but I&#39;m also really lazy when it comes to taking notes . . .') called at /usr/local/share/perl/5.14.2/HTML/Mason/Request.pm line 1302
eval {...} at /usr/local/share/perl/5.14.2/HTML/Mason/Request.pm line 1292
HTML::Mason::Request::comp(undef, undef, 'sqldate', '2023-07-18', 'illuminator', '^J^I^I^I<h1>July 18, 2023: Bug Your Players!</h1>^J^I^I^I<p>^M^J^II&#39;ve been a fan of roleplaying games for decades. However, I suffer from a curse that I suspect afflicts many gamers: I&#39;m a GM who loves the rich tapestry of in-depth campaigns and detailed developments, but I&#39;m also really lazy when it comes to taking notes. However, I&#39;ve found a possible solution that might be useful for your gaming table, depending on your talents and inclinations: Record your players!</p>^M^J<p>^M^J^IWith a portable recording device (such as, for me, my trusty iPad) and maybe a microphone (depending on the proximity of the group and how sensitive the recorder is), I can record all the activity at the table. This greatly obviates the need to take copious notes, since I can be reasonably certain I caught the action in the moment. Then, after the session, I can use audio software to skip to different points, listen at double speed to catch the highlights, and search for important bits. (I&#39;m a fan of <a href="https://www.felttip.com/ss/">Sound Studio for my Mac</a>, but there are great free options out there as well.)</p>^M^J<p>^M^J^IIf the recordings are good enough, I could even use snippets to reintroduce important bits from past sessions &ndash; the tabletop version of &quot;Previously on . . .&quot; If you&#39;re a GM who likes to use different on-the-fly voices or mannerisms for NPCs, it can also be a great way to remind you how certain NPCs sound.</p>^M^J<p>^M^J^IOf course, only record the group with their permission! If you make the recordings available to <i>them</i> as well, you&#39;ll help them refresh their memories of past sessions or interactions quickly and more accurately.</p>^M^J<p>^M^J^IIf you go this route, you may still want to jot down <i>really</i> important notes during the session. These notes can serve as a backup in case the recording fails, and can also provide an &quot;outline&quot; to make searching the audio file easier.</p>^M^J<p>^M^J^IIf you use this technique &ndash; in your <a href="http://www.sjgames.com/gurps/"><i><b>GURPS</b></i></a> game or otherwise &ndash; I&#39;d love to <a href="mailto:smarsh@sjgames.com">hear about your experience</a>!</p>^M^J<p>^M^J^I-- <a href="mailto:smarsh@sjgames.com">Steven Marsh</a></p>^M^J^J^I^I^I<br clear="all">^J^I^I^I^J^I^I^I<p id="discussForum" style="float: right;"><a href="http://forums.sjgames.com/forumdisplay.php?f=92"><img src="http://www.sjgames.com/img/discuss-on-forums.png" alt="Discuss this post on the forums!" /></a></p>^J^I        ^J<!-- addthis -->^J^J<b><span style="float:left; padding:0 1%;">Share this post!</span></b>^J<div class="addthis_toolbox addthis_default_style" style="float:left;">^J    <a class="addthis_button_facebook" addthis:url="http://secure.sjgames.com/ill/archive/July_18_2023/Bug_Your_Players" addthis:title="Daily Illuminator: Bug Your Players!"></a>^J    <a class="addthis_button_twitter" addthis:url="http://secure.sjgames.com/ill/archive/July_18_2023/Bug_Your_Players" addthis:title="Daily Illuminator: Bug Your Players!"></a>^J    <a class="addthis_button_reddit" addthis:url="http://secure.sjgames.com/ill/archive/July_18_2023/Bug_Your_Players" addthis:title="Daily Illuminator: Bug Your Players!"></a>^J    <a class="addthis_button_tumblr" addthis:url="http://secure.sjgames.com/ill/archive/July_18_2023/Bug_Your_Players" addthis:title="Daily Illuminator: Bug Your Players!"></a>^J    <a class="addthis_button_email" addthis:url="http://secure.sjgames.com/ill/archive/July_18_2023/Bug_Your_Players" addthis:title="Daily Illuminator: Bug Your Players!"></a>^J    <span class="addthis_separator">|</span>^J    <a class="addthis_button_expanded" addthis:url="http://secure.sjgames.com/ill/archive/July_18_2023/Bug_Your_Players" addthis:title="Daily Illuminator: Bug Your Players!">More</a>^J</div>^J^J<div style="margin: 5px 0; clear: left;">^J    <a href="http://secure.sjgames.com/ill/archive/July_18_2023/Bug_Your_Players" class="small">Permalink</a> &bull;^J    <a href="/ill/archive/" class="small">Archive</a> &bull;^J    <a href="/ill/illsotw/" class="small">Illuminated&nbsp;Site&nbsp;of&nbsp;the&nbsp;Week</a>^J</div>^J', 'pagetitle', 'Daily Illuminator: Bug Your Players!', 'mobile', 0, 'description', 'I&#39;ve been a fan of roleplaying games for decades. However, I suffer from a curse that I suspect afflicts many gamers: I&#39;m a GM who loves the rich tapestry of in-depth campaigns and detailed developments, but I&#39;m also really lazy when it comes to taking notes . . .') called at /home/www/secure/ill/index.html line 4
HTML::Mason::Commands::__ANON__('month', 'July', 'day', 18, 'year', 2023, 'u', 'Bug_Your_Players.html') called at /usr/local/share/perl/5.14.2/HTML/Mason/Component.pm line 135
HTML::Mason::Component::run('HTML::Mason::Component::FileBased=HASH(0x7ffb659f4e78)', 'month', 'July', 'day', 18, 'year', 2023, 'u', 'Bug_Your_Players.html') called at /usr/local/share/perl/5.14.2/HTML/Mason/Request.pm line 1302
eval {...} at /usr/local/share/perl/5.14.2/HTML/Mason/Request.pm line 1292
HTML::Mason::Request::comp(undef, undef, 'month', 'July', 'day', 18, 'year', 2023, 'u', 'Bug_Your_Players.html') called at /home/www/secure/ill/archive/dhandler line 3
HTML::Mason::Commands::__ANON__('u', 'Bug_Your_Players.html') called at /usr/local/share/perl/5.14.2/HTML/Mason/Component.pm line 135
HTML::Mason::Component::run('HTML::Mason::Component::FileBased=HASH(0x7ffb6422d358)', 'u', 'Bug_Your_Players.html') called at /usr/local/share/perl/5.14.2/HTML/Mason/Request.pm line 1297
eval {...} at /usr/local/share/perl/5.14.2/HTML/Mason/Request.pm line 1292
HTML::Mason::Request::comp(undef, undef, undef, 'u', 'Bug_Your_Players.html') called at /usr/local/share/perl/5.14.2/HTML/Mason/Request.pm line 481
eval {...} at /usr/local/share/perl/5.14.2/HTML/Mason/Request.pm line 481
eval {...} at /usr/local/share/perl/5.14.2/HTML/Mason/Request.pm line 433
HTML::Mason::Request::exec('HTML::Mason::Request::ApacheHandler=HASH(0x7ffb659e4e28)') called at /usr/local/share/perl/5.14.2/HTML/Mason/ApacheHandler.pm line 168
HTML::Mason::Request::ApacheHandler::exec('HTML::Mason::Request::ApacheHandler=HASH(0x7ffb659e4e28)') called at /usr/local/share/perl/5.14.2/HTML/Mason/ApacheHandler.pm line 825
HTML::Mason::ApacheHandler::handle_request('HTML::Mason::ApacheHandler=HASH(0x7ffb659f1470)', 'Apache2::RequestRec=SCALAR(0x7ffb64044af8)') called at (eval 29) line 8
HTML::Mason::ApacheHandler::handler('HTML::Mason::ApacheHandler', 'Apache2::RequestRec=SCALAR(0x7ffb64044af8)') called at -e line 0
eval {...} at -e line 0