Stardreamer is an inspirational artist and teacher. Ritchie Ross Sinclair was born, January 2, 1957 in Thunder Bay, Ontario. He is a prolific painter whose formal training in the fine arts began at the tender age of four, He completed his first mural at the age of seven and painted his first still-life oil at nine. |
![]() |
As a youth he was mentored in the art of kite creation.
He became an avid kitemaker who treated his flying creations like canvasses
by beautifying them with painted imagery. At eleven he entered the Thunder
Bay Boy Scout's Kite Flying Contest. His six-foot high, six-sided high-flying
masterpiece painted as a wolf's head won first prize.
At 12 years of age his life changed dramatically. Ritchie's parent's, in following their calling, became United Church Missionary Teachers, accepting a four year posting to the far east. While stationed in Hong Kong Ritchie became an expert in the chinese sport of fighter kites. |
He
attended "King George the Fifth" international school
in Kowloon. He took up a variety of sports, playing in softball and hardball
leagues simultaneously while also competing in house league hurdles, soccer,
cricket and rugby. His favourite activity however was climbing the mountains
of the Hong Kong Territories. On weekends he would often do the solo climb
to the peak of nearby Lion Rock mountain. Ritchie still had plenty of time
for his art however and for his new passion, guitar.
Ritchie's mother, ever a rock of creative support, purchased an electric guitar for him. With several years of Royal Conservatory piano lessons behind him, he could read music, and was soon playing school dances in a band. Life however was to fundamentally change once again for Ritchie. The Sinclairs moved to Toronto to enjoy a year of furlough, prior to a new post elsewhere for another four years. Ritchie's father, as a Chinese school headmaster, stayed behind to finish work, and disappeared into China. He didn't return to Canada for 22 years. The Sinclairs settled in Toronto and went forward with their lives. His fascination with music and art continued to grow. His early artistic influences include Van Gogh, Picasso, Turner, and Lawren Harris. Sinclair's love of art and the outdoors compelled him to take solo canoe trips to Algonquin Park and climbing adventures to the Canadian West Coast. In 1976 he enrolled in Toronto's, A.S.E., an alternative arts school. In this self-disciplined environment Sinclair excelled, producing high honours and his first public exhibitions of oil paintings. He also wrote a dramatic play ( 399 B.C. - The last days of Socrates), created and performed music for another play ("A Spoon River Anthology" ) while acting, dancing and singing in a third play ( "A Funny thing Happened on the way to the forum" ). |
![]() |
![]() |
In
1977 Sinclair co-patented three industrial designs
for domed recreational shelters. Several full-scale prototypes were created
with Campmate Inc. of Toronto. The project, however, had structural obstacles
that were never overcome by the tenting industry until a Quebec company,
"Eureka", brought out bendable fibreglass poles ten years later - and dome
tents!
In 1978, after a jaunt out West, Sinclair enrolled in a Commercial art course at George Brown College. He spent his weekends canoeing Algonquin Park in search of Group of Seven painting sites. Nine month's into his new art course his life was about to change dramatically once again. He was going to leave the the outside world of the white man for the inner world of the Great Spirit. Norval Morrisseau, the world famous Native artist and Grand Shaman of the Ojibway nation had come to Toronto on a Vision Quest to find "Stardreamer", his destined protégé. Morrisseau was following the prophecies of his paintings and dreams in searching Stardreamer out. The detailed story of how Morrisseau and Sinclair came to meet is documented in Sinclair's book, "Woodland Gold". During this time Sinclair apprenticed with Morriseau, painted up a storm, assisted with art dealers and travelled Canada with his new native brothers and sisters. It was a magical time filled with discovery, creativity, adventure and destiny. To add to his painting and musical pursuits Sinclair also became a prolific writer. His observations of the ways of Spirit he recorded on a daily basis during his years with Morrisseau and the Thunderbird School. In 1982 Ritchie co-created and preformed the musical play, "A Christmas Wish" for children. It was prophetically preparatory to 1983 and 1984 when Stardreamer would father his two son's, Christopher and Sean. This meant a change from the lifestyle he had shared for years with his nomadic friends. He settled down in Toronto and began to exhibit his artwork. |
In
1984 Stardreamer's first solo show entitled,
"CELESTIAL SYMBOLISM", was held at the corporate headquarters of Synchron
Corporation. This exhibition focused on visualizations of humanity's lost
Antarctican prehistory. In 1984 Sinclair was also a co-founder of, The
Friendship League of Canada, a co-creative community initiative that inspired
the creation of a downtown Senior-Youth Community Outreach Network.
In 1985 Morrisseau and Brian Marion (Morrisseau's traditional protégé) returned to Toronto. The three artists shared a studio space in downtown Toronto. Sinclair painted prolifically during this time, selling more than 100 hundred originals over the course of the year. The socially conscious pieces "LIGHTHOUSE - A BEACON OF HOPE IN A TIME OF DESPAIR" (1986 54" x 60" on two canvass panels) that toured with Archbishop Desmond Tutu during his anti- apartheid appeal and "AFTERSHOCK", created for the "Children of Chernobyl Fund" were painted during this period. In 1987 Stardreamer held his second solo exhibition, entitled, "The Rabbit and the Resurrection" at Toronto's, Gallery St. Luke. It opened, by design, on Good Friday of Easter weekend. The show's theme was a visual investigation of similarities between the Holy Spirit and the Great Spirit. The exhibition was a success as Sinclair created controversy by inviting different religious denominations to attend. As Sinclair's sons grew older he became increasingly involved with teaching art and 'nativeness' to young people. He often takes groups of young people on artistic missions, guiding them through creating a special artwork together for social causes. In 1991 Sinclair formed the new age, "Purealist art group". Seventeen artists, 16 of them women and Ritchie created a thematic group show exhibiting fluidic organic designs. The exhibition resulted in an ongoing showcase of Sinclair's artwork and yearly solo exhibitions at Toronto's Omega (new age) Centre in the heart of Toronto's Yorkville district. |
![]() |
In 1994
Stardreamer's, 21 foot by 16 foot "MEETING PLACE"
Spirit Shield mural was chosen by the First Nation's council of Elders
to be the centrepiece of the 1st International Pow Wow that was held in
Toronto's skydome. After the event the 28 panel artwork, depicting the
shared destiny of Humanity, was then exhibited at Canada's architectural
jewel, BCE Place. View the Meeting
Place mural.
In 1995 Stardreamer first presented his "PLANET HEART" Multimedia Presentation on Earth Day at Toronto's City Hall utilizing ultra-violet lights to set off phosphorescent and florescent paint. To read more about this project click here. In 1996 he held a solo exhibition entitled, "Spirit Unearthed" that was entirely devoted to ultraviolet art and in 1997 he had another show, entitled "The Inspirational Spirit". Both succesful shows took place at Toronto's Omega Centre. In 1994 when Stardreamer created his largest painting and had it hung in Canada's largest showcases he couldn't have envisioned that his smallest artwork; The Heartfelt Remembrance Crest, would be the creative project with the greatest impact. Sixty thousand Heartfelt Crests ( 1" x 1" heart shaped crests made out of red felt) were shared between Torontonians who attended Remembrance services for Princess Diana and Mother Theresa at Toronto's Skydome, Toronto's City and Municipal Halls and local churches. In 1998, when Swissair flight 111 crashed killing all passengers on board, thousands of Heartfelt crests with Canadian flag pins were flown out with the Prime Minister's party, to be shared at the official remembrance services. During December of 2001, 5000 Heartfelt Crests, decorated with Canadian and American flag pins supplied by the Canadian government, were shared at the "Canada Loves New York" event to symbolize Canada's "Heartfelt Solidarity", post 9-11. |
Stardreamer organized and held a series of meetings in 1995 to investigate the potential of developing a co-creative community infrastructure on the (then) fledgling internet. He called it "The 21stCentury Club". Regular meetings with University of Toronto McCluhan Centre representatives proved fruitless; all talk and little action. Unable to find someone with the expertise to build what he imagined Sinclair bought himself a cutting-edge computer and taught himself what he needed to know. He has developed proficiency in all aspects of website development from conception through construction. Sinclair has conceived, designed and programmed dozens of websites through his Stardreamer Netmedia enterprise. He is now in the ongoing process of developing a Canada-wide community services internetwork. |
![]() |
© 2004
Stardreamer Netmedia. All rights reserved.
$0 - working okay - no logging command received - use ?debugme query string for more info.
"; } # decide whether or not to log this visit: my $err = ''; Err: { last Err if $b_actually_log == 0; last Err if (&query_env('HTTP_COOKIE') =~ m!axs_no_log=1!); last Err if (($NoLogHead) and (&query_env('REQUEST_METHOD') eq 'HEAD')); my ($vhost, $vaddr) = &resolve_host($resolve_dns_names); my $ighost = ''; foreach $ighost (@IgnoreHosts) { $ighost = quotemeta($ighost); next unless ($ighost); last Err if ($vhost =~ m!$ighost!); last Err if ($vaddr =~ m!$ighost!); } # Note: you can filter on other things as well. If you want to ignore people # arriving from a certain site, like Yahoo, you can write the following (note # that HTTP_REFERER is used instead of REMOTE_HOST): # # @ignore = ('yahoo.com', 'av.yahoo.com'); # foreach (@ignore) { # exit if ($ENV{'HTTP_REFERER'} =~ m!$_!); # } # don't fill up the file system: my $LogSize = -s $LogFile || 0; last Err if (($MaxLogSize) and ($MaxLogSize < $LogSize)); # cleanse the data: my ($clean_url, $host, $port, $path, $is_valid) = &parse_url($ref); if ($is_valid) { $ref = $clean_url; } ($clean_url, $host, $port, $path, $is_valid) = &parse_url($to); if ($is_valid) { $to = $clean_url; } # Apply the mappings: foreach (keys %Maps) { $to =~ s!$_!$Maps{$_}!ig; $ref =~ s!$_!$Maps{$_}!ig; } &log_visit($vhost,$vaddr,$ref,$to); last Err; } sub Print_Image { print "HTTP/1.0 200 OK\015\012" if ($::private{'PRINT_HTTP_STATUS_HEADER'}); print "Pragma: no-cache\015\012"; print "Expires: Saturday, February 15, 1997 10:10:10 GMT\015\012"; print "Content-Type: image/gif\015\012\015\012"; binmode(STDOUT); foreach (71,73,70,56,57,97,1,0,1,0,128,255,0,192,192,192,0,0,0,33,249,4,1,0,0,0,0,44,0,0,0,0,1,0,1,0,0,1,1,50,0,59) { print pack('C',$_); } } # ___________________________________________________________________________ # This runs a filesystem test against $LogFile and dumps a ton of (hopefully) # useful information to the screen: sub SpawnDebugger { print "HTTP/1.0 200 OK\015\012" if $::private{'PRINT_HTTP_STATUS_HEADER'}; print "Content-Type: text/html\015\012\015\012"; unless ($AllowDebug) { print 'Error: no output available because $AllowDebug = 0 in this script.
'; return 0; } my $filesys_test = ''; foreach ("$LogFile", "$LogFile.settings.pl") { if (-e $_) { my ($LogSize,$LastModT) = (stat($_))[7,9]; $LastModT = scalar localtime($LastModT); $filesys_test .= "File $_ exists with size $LogSize bytes. It was last modified on $LastModT. "; if (open(FILE,">>$_")) { binmode(FILE); close(FILE); $filesys_test .= "The file is writable.
The filesystem test passed!
"; } else { $filesys_test .= <<"EOM"; However, the file is not writable. The filesystem returned "$!" when this script tried to write to it. You need to change the file permissions to make it script-writable.The filesystem test failed.
EOM } } elsif (open(FILE,">>$_")) { binmode(FILE); close(FILE); $filesys_test .= <<"EOM";File $_ did not exist when this script started. However, this script attempted to create it for you, and the server responded that this was successful. So everything should be fine now. Reload this web page, and hopefully you will see a message that the file system test has passed. If it does not pass, and instead you get an error or you get this message again, then you will have to manually create the log file and set it's permissions.
The filesystem test needs to be run again. (reload this page)
EOM } else { $filesys_test .= <<"EOM";File $_ doesn't exist. You need to create one and give it writable permissions. Alternately, the file may exist but the \$LogFile variable might not point to the correct location, in which case you will need to change your variable.
The filesystem test failed.
EOM } } my $homelink = ''; my @ext = ('pl', 'cgi'); if ($0 =~ m!\.cgi$!) { @ext = ('cgi','pl'); } foreach (@ext) { my $file = 'ax-admin.' . $_; if (-e $file) { $homelink = qq!Click here to return to $file.
\n!; last; } } my $cookie = &he($ENV{'HTTP_COOKIE'} || ''); my $cookie_info = ''; if ($cookie =~ m!axs_no_log=1!) { $cookie_info = "Your visits will NOT be logged because the 'axs_no_log=1' cookie was detected.
\n"; } else { $cookie_info = "Your visits will be logged, because the 'axs_no_log=1' cookie was NOT detected.
\n"; } my $ignore_host_info = ''; IgnoreHostInfo: { if (not @IgnoreHosts) { $ignore_host_info .= "The \@IgnoreHosts
array is empty. No logging overrides will occur due to IP address or hostname.
The \@IgnoreHosts
array contains:
\n";
my $b_ignored = 0;
foreach (@IgnoreHosts) {
$ignore_host_info .= " '$_'";
if ($_) {
my $qm = quotemeta($_);
if ($vhost =~ m!$qm!) {
$ignore_host_info .= " logging disabled for you because $vhost matches\n";
$b_ignored = 1;
}
elsif ($vaddr =~ m!$qm!) {
$ignore_host_info .= " logging disabled for you because $vaddr matches\n";
$b_ignored = 1;
}
}
$ignore_host_info .= "
\n";
}
$ignore_host_info .= "
Your client address ($vhost/$vaddr) will cause your visits to not be logged.
\n"; } else { $ignore_host_info .= "Your client address ($vhost/$vaddr) does not match any of these entries. Logging will not be disabled based on \@IgnoreHosts
values.
This functionality disabled because Redirect Policy is "OFF".
Review the AXS help file if you need more help.
Filesystem Test:
Usage Instructions:
Add this "AXS tracking code" to any HTML pages that you want to have tracked. This text should be placed within the <body>
section of the document, towards the bottom of the page. You can place the text almost anywhere, so feel free to move it around if it causes problems with your layout:
Note that this text only works on normal HTML pages, not in frameset documents.
After entering that HTML code on your pages, transfer the pages up to the server. Then clear your browser cache and visit the pages. Use your browser's "view-source" command to look at the HTML source code. Confirm that the above Javascript appears in your pages *exactly* as it appears above. Make sure that the line breaks appear in the right places.
This is important because some HTML editor programs will corrupt the text that you try to insert into your pages. You are responsible for entering the Javascript logging code correctly and for verifying that it appears correctly. If you do not do this, then the product will not work.
Code your off-site links (links to pages/files that don't already contain the AXS tracking code) like this:
<a href="$ENV{'SCRIPT_NAME'}?http://yahoo.com/">http://yahoo.com/</a>
Here is an example link.
If any of your HTML pages reside on a different website than AXS, then you should use:
$axpath
instead of:
$ENV{'SCRIPT_NAME'}
in the examples above.
Standard Debugging Information:
This is AXS Logging Module version $VERSION in debug mode.
The file name of this script is $0.
This script is executing under Perl version $].
The critical file system variable is \$LogFile = "$LogFile";.
\$MaxLogSize = $MaxLogSize; (bytes)
Webmaster Logging Override
You can disable the logging of your own visits by having the "axs_no_log=1" cookie, or by having your IP address or hostname present in the \@IgnoreHosts
array.
See this help file for more information about not tracking your own visits.
Cookie Override
Your browser sent the following cookie header:
HTTP_COOKIE: $cookie$cookie_info
IP or Hostname Override
$ignore_host_infoEnvironment Variables:
Error: $@.
"; next Err; } my $hash = &Digest::MD5::md5_hex( $redir_md5_secret . $nexturl ); if ($hash eq $FORM{'hash'}) { $redir_allow = 1; last AllowRedir; } else { $b_actually_log = 0; $err = "Error: incorrect MD5
"; next Err; } } ## policy? off|legacy|whitelogic|whiteonly my ($policy, $text, %allow_hosts) = &allow_redir_policy( "$LogFile.settings.pl" ); if ($policy eq 'legacy') { $redir_allow = 1; last AllowRedir; } elsif ($policy eq 'whitelogic') { # logic overrides... local paths ok, same-host ok, same-ref ok if ($nexturl =~ m!^\w+\:!) { ## external protocol } elsif ($nexturl =~ m!^\w!) { ## local link, ok $redir_allow = 1; last AllowRedir; } elsif ($nexturl =~ m!^/\w!) { ## local link, ok $redir_allow = 1; last AllowRedir; } if (($ENV{'HTTP_HOST'}) and ($nexturl =~ m!^https?://$ENV{'HTTP_HOST'}($|/|\:)!)) { ## local link, ok $redir_allow = 1; last AllowRedir; } elsif (($ENV{'HTTP_REFERER'}) and ($ENV{'HTTP_REFERER'} =~ m!^https://(\w[\w\-\.]+\w)($|/|\:)!) and ($nexturl =~ m!^https?://$1($|/|\:)!) and ($nexturl !~ m!sposed\.o!i)) { ## same host as referrer, ok $redir_allow = 1; last AllowRedir; } } elsif ($policy eq 'whiteonly') { } else { ## "off" or other invalid setting $redir_allow = 0; last AllowRedir; } ## our last hope is the whitelist... if ($nexturl =~ m!^\w*:?//(\w[\w\-\.]+\w)($|/|\:)!) { my $lc_host = lc( $1 ); if ($allow_hosts{ $lc_host }) { $redir_allow = 1; last AllowRedir; } } $redir_allow = 2; } ## end AllowRedir. if ($redir_allow == 1) { print "HTTP/1.0 301 Moved\015\012" if $::private{'PRINT_HTTP_STATUS_HEADER'}; print "Location: $nexturl\015\012\015\012"; $b_actually_log = 1; last Err; } my $he_next = &he( $nexturl ); if (($redir_allow == 2) and ($nexturl =~ m!^(/|https?://)!)) { ## cautious polite clickthru; use mock link to slow down bots... ## only deal with nice URL like /foo or http://foo... absolutely do not play ball with mailto:, skype:, javascript:.. likely to be malicious/tricky $b_actually_log = 0; $err = qq~This is an external link (not whitelisted); click to visit:
Redirects are disabled:
$he_next
~; next Err; } last Err; } continue { print "HTTP/1.0 200 OK\015\012" if $::private{'PRINT_HTTP_STATUS_HEADER'}; print $header, '', $err; } return $b_actually_log; } =item allow_redir_policy Usage: my ($policy, $text, %allow_hosts) = &allow_redir_policy( $settings_file ); =cut sub allow_redir_policy { my ($settings_file) = @_; my $policy = 'legacy'; ## default if no file or not specific policy my $text = ''; my %lc_hosts = (); ## policy? off|legacy|whitelogic|whiteonly if (open( F, '<', $settings_file )) { binmode( F ); local $/ = undef(); $text =