User Tools

Site Tools


Sidebar

      • Contactplugin-autotooltip__default plugin-autotooltip_bigContact

        If you have a burning desire to contact me, use the discussion form below. Anything you say remains private between you and me.
      • Cookie Policy & GDPRplugin-autotooltip__default plugin-autotooltip_bigCookie Policy & GDPR

        There are NO tracking cookies on this site!

        The Cookie policy is straightforward. This site only uses cookies that are required to make your experience of using this site better, and only uses session cookies (see exceptions below). Session cookies are deleted when you close your browser.
      • Daily Mars Weather Reportsplugin-autotooltip__default plugin-autotooltip_bigDaily Mars Weather Reports

        These reports are provided by NASA's InSight lander in the south-west corner of Elysium Planitia.

        This page updates when it is refreshed. Daily readings are usually a couple of days behind reality (it takes time for the lander to transmit its data back to Earth).
      • Downloadsplugin-autotooltip__default plugin-autotooltip_bigDownloads

        Orbital Calculator Current Version This is a portable application, meaning there is no installer. Just unzip into a folder and run the executable. Since it is portable, it can be run from a USB stick.

        A full description and a list of the features are available
      • Rules on Reviewingplugin-autotooltip__default plugin-autotooltip_bigRules on Reviewing

        First off, you should know I only have a limited amount of time, so I can't review a hundred novels at once. Sorry, but that's basic physics for you. If I agree to review your novel, you may have to wait a while for me to get around to it, and then I'll need time to read it. I only review hard copies.
        • A Keen Interest In Marsplugin-autotooltip__default plugin-autotooltip_bigA Keen Interest In Mars

          [MOLA globe of Mars]You may have noticed from pages such as the Mars Weather Report page, that I have a keen interest in Mars, Martian weather, and the InSight lander.

          Mars itself, and the incredible science we are doing there is of course a fascination in and of itself. However, my interest goes deeper than that. My latest novel (at the time this article was written - March 2019) is about the exploration of Mars. NASA have provided a wealth of data and information for …
        • A New Siteplugin-autotooltip__default plugin-autotooltip_bigA New Site

          Yup, the old site was as ugly as sin and to find a blog entry you had to scroll through the feed or take your chances with the search option.

          This new site is just as easy to maintain, has extensive search capabilities, and both orders and structures the entries. Not only does this make it easier for you to find stuff, it encourages you to browse around. It's not as ugly either.
        • How do I Calculate Distance from Period?plugin-autotooltip__default plugin-autotooltip_bigHow do I Calculate Distance from Period?

          I've been asked how Orbital Calculator can calculate the distance an object is from a gravitational mass, using just its period (the time it takes to complete an orbit). The technique is relatively simple, so I'll explain it.
        • Martian Spring Weirdnessplugin-autotooltip__default plugin-autotooltip_bigMartian Spring Weirdness

          [Mars (northern hemisphere)]Spring in the northern hemisphere of Mars is odd to say the least. The further the season moves away from winter, the warmer we should expect things to get, but this is not the case. It gets colder. By examining why, we can see why Earth is pretty much a special case, and begin to be able to predict weather patterns on other planets.
        • NASA Boarding Passplugin-autotooltip__default plugin-autotooltip_bigNASA Boarding Pass

          I took the plunge and got my NASA boarding pass for the Mars 2020 Rover mission.

          [NASA Boarding pass for Mars 2020 Mission]

          Get yours here: NASA Website SEND YOUR NAME TO MARS
        • NASA Receives 2 Emmy Awardsplugin-autotooltip__default plugin-autotooltip_bigNASA Receives 2 Emmy Awards

          NASA recently won (14th-15th Sept 2019) two Emmy's for interactive content. Aside from the obvious achievements of winning the awards, there is something else going on here that should be recognised and encouraged. Awards, of course, are intended to recognise, encourage and promote excellence, but I'm talking about NASA not only reaching out to the public, but interactively engaging them.
        • Orbital Calculator v1.0.0.5 Updateplugin-autotooltip__default plugin-autotooltip_bigOrbital Calculator v1.0.0.5 Update

          You can now calculate distance from a gravitational mass using the orbital period. The image above shows a calculation for Mars which has a 687 day year.

          I've allowed the use of tokens to identify time components to make it easy to use. The examples shown in the image should explain how it works.
        • Orbital Shenanigansplugin-autotooltip__default plugin-autotooltip_bigOrbital Shenanigans

          [MOLA map of Mars coloured by elevation]

          Edited: 2019-03-14

          Sometimes when you do some research – actually, quite often – you find out some really interesting stuff and end up changing your mind. In my story, I had some people on the ground on Mars, and wanted a spacecraft in a geostationary orbit above them to give them communications between them at all times. Just for info, when talking about geostationary orbits, the accepted term for Mars is aerostationary. I’ll use g…
        • Mars Solar Conjunctionplugin-autotooltip__default plugin-autotooltip_bigMars Solar Conjunction

          This page is currently inactive for 2019 conjunction (until next conjunction in 2021)

          Mars is heading for a solar conjunction, which in layman's terms means it's on the opposite side of the sun from the Earth. For a short period, no commands will be sent to the Mars spacecraft (which includes landers and rovers) since the sun's corona could corrupt those commands and result in unintended actions, disablement of the spacecraft or worse.
        • Orbital Calculator 2.0.3 Releaseplugin-autotooltip__default plugin-autotooltip_bigOrbital Calculator 2.0.3 Release

          This is a minor enhancement to improve the efficiency and accuracy of the Two-Body calculations.

          The “Two-Body” calculations try to take into consideration the effects of other bodies in the system, with a fallback to simple Newtonian/Keplerian mechanics. Deciding when to use the fallback algorithms and when not to is difficult, but the new code reflects statistical probability, which in turn increases accuracy.
        • Orbital Calculator for Linuxplugin-autotooltip__default plugin-autotooltip_bigOrbital Calculator for Linux

          The portable version for Linux has been released and is now available on the Downloads page. There are also instructions and sample files to setup a desktop icon/launcher in case you want that too.

          The application comes in both 32-bit and 64-bit variations.
        • Orbital Calculator v2.0.2.2634 Releasedplugin-autotooltip__default plugin-autotooltip_bigOrbital Calculator v2.0.2.2634 Released

          [Mars] A bugfix and a new function has been added. Details are on the Release Notes page.

          In addition, an import file is also available on the Downloads page that contains 669 exoplanets with confirmed size and mass, culled from a NASA archive.
        • Real-time Martian Clockplugin-autotooltip__default plugin-autotooltip_bigReal-time Martian Clock

          I had a momentary lapse last night - or was it inspiration? Anyway, I've added a real-time clock that shows the current time on Mars using the Martian clock (the seconds are a bit longer) for the location of the InSight lander.
        • This Article Has Movedplugin-autotooltip__default plugin-autotooltip_bigThis Article Has Moved

          This article has moved to Self-Publishing Traps
          • SmartSuitplugin-autotooltip__default plugin-autotooltip_bigSmartSuit

            SmartSuit: A Hybrid, Intelligent, and Highly Mobile EVA Spacesuit for Next Generation Exploration Missions

            Developer: Texas A&M Engineering Experiment Station

            I think the title says it all, but just in case it wasn't crystal clear, this is what they have to say about it:
          • THE MOST Space Telescopeplugin-autotooltip__default plugin-autotooltip_bigTHE MOST Space Telescope

            Few telescopes can honestly say they've reinvented the concept, yet THE MOST certainly has. It works on a surprisingly old principle, by passing light through two prisms. As Isaac Newton demonstrated, this first splits light into its constituent components, then recombines it back again.
        • Dragonfly to Explore Titanplugin-autotooltip__default plugin-autotooltip_bigDragonfly to Explore Titan

          Credits: NASA/JHU-APL Few worlds excite exoplanetary chemists like Titan, Saturn's enigmatic and largest moon. It is the second-largest moon in the solar system, and the only one known to have a dense atmosphere. As such, it is seen as an analogue to the early Earth, and therefore important in understanding how life might have evolved on our homeworld.
        • How Big Is The Universe?plugin-autotooltip__default plugin-autotooltip_bigHow Big Is The Universe?

          [Hubble deep Field Image]

          I recently came across a youtube video explaining a method for multiplication that was quite different from long multiplication. To explain why this was so interesting, let’s first talk about long multiplication and what’s wrong with it, and then we'll calculate the size of the visible universe in centimeters.
        • Landing the Mars 2020 Rover Safelyplugin-autotooltip__default plugin-autotooltip_bigLanding the Mars 2020 Rover Safely

          Autonomous landings are always fraught with danger. One of the most dangerous terrains any landing might occur on is a boulder field. Not only would the impact of the landing on these hard objects be a threat, but the boulders are likely to be jagged too. Another threat are the steep cliffs of the crater - not falling off them (although that's a possibility), but crashing into them.
        • Magnetic Field Lines on a Galactic Scaleplugin-autotooltip__default plugin-autotooltip_bigMagnetic Field Lines on a Galactic Scale

          [Powerful magnetic fields are visible]

          The Cigar galaxy (M82) is already famous for the speed at which it creates new stars. The composite image shows the powerful magnetic field lines on a truly epic scale, wrapping around the entire galaxy. NASA's SOFIA observatory (Stratospheric Observatory for Infrared Astronomy - a converted Boeing 747) has shed light on what is happening.
        • Mysterious Starplugin-autotooltip__default plugin-autotooltip_bigMysterious Star

          Back in 2016, Tabetha Boyajian gave a TED talk about a star with nifty little name KIC 8462852. The Kepler space telescope had studied it and lots of other stars over the course of four years, but this one stood out.

          Also known as Tabby's Star, it is a main-sequence F-type star located in the constellation Cygnus, about 1,480 light-years from Earth. Its claim to fame of course, is that it was suggested that alien megastructures would explain the weird data that Kepler had recor…
        • NASA Got it Wrong - Oops!plugin-autotooltip__default plugin-autotooltip_bigNASA Got it Wrong - Oops!

          It's not every day you get the chance to tell NASA they screwed up.

          I was reviewing the data I'd collected from NASA's Mars Weather page, and I noticed that the graphs they generated didn't match the summary data.

          For example, the summary data for Sol 169 shows the maximum temperature peaking at -17.6°C, while the graph for the same day showed the temperature never rising above -25°C.
        • To the Moon and Marsplugin-autotooltip__default plugin-autotooltip_bigTo the Moon and Mars

          [The Moon - watch out, here we come (again)!]NASA has outlined an aggressive timetable for an equally aggressive return to the Moon, with a view to making the Moon a waystation for trips to Mars. This requires the development of a whole slew of new technologies, as well as ramping up existing technologies and capabilities to whole new levels.
        • Calculate your Age and Weight on the Planetsplugin-autotooltip__default plugin-autotooltip_bigCalculate your Age and Weight on the Planets

          This little calculator allows you to calculate how old you would be on each of the planets in the solar system, and what your weight would be. If you have weight issues, don't look at the result for Jupiter!
        • DLCounter Pluginplugin-autotooltip__default plugin-autotooltip_bigDLCounter Plugin

          [screenshot]

          This download-counter plugin for DokuWiki enables you to keep track of the number of downloads of media files such as zip, gzip, tarballs and pdf's (your choice of media formats). This plugin has been developed and tested on “Greebo
        • DLCounter Plugin Bugtrackerplugin-autotooltip__default plugin-autotooltip_bigDLCounter Plugin Bugtracker

          If you have any issues with the plugin, leave a comment here.
        • Orbital Calculatorplugin-autotooltip__default plugin-autotooltip_bigOrbital Calculator

          Orbital Calculator is the result of satisfying a need. There are online calculators for working out the orbital characteristics for satellites and spacecraft orbiting Earth, and they’re pretty cool gadgets as far as that goes, but quite limiting.
        • Orbital Calculator 2.0 Releasedplugin-autotooltip__default plugin-autotooltip_bigOrbital Calculator 2.0 Released

          It's been a while in coming but it's finally here, with a packed feature list. It has increased precision and is generally a lot easier to use.

          You can now perform two-body orbital calculations, so the masses of both a star and planet (or planet and moon) are taken into consideration. Time dilation can now be calculated either as a function of the speed of light or (in a much more mundane and realistic way) from an orbit. Orbital time-dilation takes into conside…
        • Orbital Calculator v2.x Release Notesplugin-autotooltip__default plugin-autotooltip_bigOrbital Calculator v2.x Release Notes

          This lists the important notes on each new release, explaining what has changed and what's new.

          See the Downloads page to download Orbital Calculator for various platforms. A full description of the product is available on the
        • Surface Gravity Calculatorplugin-autotooltip__default plugin-autotooltip_bigSurface Gravity Calculator

          Want to know what the surface gravity is on any celestial object? You just need to know it's mass in terms of Earth masses (e.g. Earth = 1, Venus = 0.815, Mars = 0.107 etc.) and it's radius. This calculator will do the rest.
      • Description or Teaser?plugin-autotooltip__default plugin-autotooltip_bigDescription or Teaser?

        When you write the blurb that goes on the back of the book, should you write a description or a teaser? This article explores that question, explaining why each of them work and what their effects are, and why sometimes one is a better choice than the other.
      • Proper Paragraph Spacing and Indenting on Web Pagesplugin-autotooltip__default plugin-autotooltip_bigProper Paragraph Spacing and Indenting on Web Pages

        This is a short article on how to setup the correct CSS in order to replicate the paragraph spacing and indenting displayed in a book on your web pages. It will also enlarge and embolden the first character in the scene.
      • Self-Publishing Trapsplugin-autotooltip__default plugin-autotooltip_bigSelf-Publishing Traps

        Sometimes it's a while before I post a new book review. Usually this is because I've read some self-published novels that I don't want to review. When I post a review, I'm telling readers about a book I'd recommend. This is good for readers, and it's good for the authors who get the recommendation. I'm not out to harm someone's writing career - which can always be turned around in the future - and I'm certainly not the sort of pompous umm, donkey, that simply lets my mouth…
      • Smart but Dumb Aliensplugin-autotooltip__default plugin-autotooltip_bigSmart but Dumb Aliens

        We all know the problem, especially from video games and movies, where the super-smart aliens turn out to be really dumb. This is usually because the creator hasn't put much thought into it.

        So, you're creating a super-intelligent alien or species or civilisation for your short story or novel or whatever. How do you avoid the pitfalls of dumbing them down?
      • Story Structure (Hero's Journey)plugin-autotooltip__default plugin-autotooltip_bigStory Structure (Hero's Journey)

        The Hero's Journey is an overlay for the 4-part story structure. See how they work in conjunction with the character arc.

        ----------

        Click on this image to review it, then click it again to see it full size

        You might also want to investigate these structures:
      • Voices in the Darkplugin-autotooltip__default plugin-autotooltip_bigVoices in the Dark

        A scene that is all dialogue and no action creates the dreaded “voices in the dark”. Perhaps they're at a conference table, or standing around talking things through before making a decision that will propel the story into its next phase.
          • Beyond Falcon's Reachplugin-autotooltip__default plugin-autotooltip_bigBeyond Falcon's Reach

            Beyond Falcon's Reach by Jay Northearn, is a mish-mash of high fantasy, gothic-horror, steampunk and electropunk, with a dash of semi-intelligent machine-learning AI's thrown-in to boot. Yet for all of this, the world Northearn has created is homogenous and holistic - two watchwords I'll bang on about until the cows come home, to anyone who'll listen. Giving everything in your world a place and a reason for being there is something that every writer should always keep in m…
          • Creation Machineplugin-autotooltip__default plugin-autotooltip_bigCreation Machine

            Andrew Bannister’s “Creation Machine” is the best novel I’ve read this year – and that’s saying something, I’ve read some of the best sci-fi novels from the last five years in the last ten months.

            The breadth and depth of his imagination is incredible. He’s created an entire artificial galaxy, given it character and taken us on a tour that is as exciting as it is varied.
          • Iron Godsplugin-autotooltip__default plugin-autotooltip_bigIron Gods

            Another novel of The Spin, and following on from Creation Machine, Iron Gods continues in much the same vein. There are intriguing and plausible characters, a spaceship AI that has had its lobotomy reversed, strange worlds and even stranger economic forces.
          • Stone Clockplugin-autotooltip__default plugin-autotooltip_bigStone Clock

            The third outing in The Spin series from acclaimed author Andrew Bannister, Stone Clock, has a dark edge to it. Already an accomplished writer, Bannister has taken things up a notch.

            His usual mélange of lucid and slightly demented imagination is in full force, and the array of modes of humour are all present and permeate the pages as if they’d been dipped in the stuff.
blog:articles:software:doku_dlcounter

DLCounter Plugin

screenshot

Last updated 2019-05-15
Provides Syntax, Action
Author Phil Ide

This download-counter plugin for DokuWiki enables you to keep track of the number of downloads of media files such as zip, gzip, tarballs and pdf's (your choice of media formats). This plugin has been developed and tested on “Greebo”, it may not work with older versions of DokuWiki.

This page is the documentation for this plugin, describing configuration, the syntax for displaying the data (or parts of it) and the on-disk format of the data-store and how to access it from your own (possibly inline) code should you need to.

The data is stored in a folder named 'counts' off the data folder, so it gets backed up when you backup your data folder (you do do that, don't you?).

Installation

Search and install the plugin using the Extension Manager. Refer to Plugins on how to install plugins manually.

For manual installation, the latest version of the package can be downloaded hereplugin-autotooltip__default plugin-autotooltip_bigDownloads

Orbital Calculator Current Version This is a portable application, meaning there is no installer. Just unzip into a folder and run the executable. Since it is portable, it can be run from a USB stick.

A full description and a list of the features are available
.

Configuration

Configure the plugin in the admin screen. It's pretty much a doozy, just make a comma-separated list of the file extensions you want to capture download information for. The default is zip,gzip,tar, but you might want to add pdf and possibly a few others. Be careful not to include images and other media that get delivered as part of your web pages, else you'll end up gathering data on a whole bunch of stuff you never intended to.

The extensions should be named without a preceding period, so zip is correct, .zip will be an epic failure.

The plugin only collects information on files delivered from the media library. Super-user rights may be needed to upload large files into the media library. If you are unaware, the primary Admin for the wiki can usually ignore the 2Mb limit on uploads.

Syntax

Collecting all this data isn't much good if you can't use it. You can display the data in a number of ways.

Displaying a counter for a single file

If you just want to display the counter for a single file:

{{dlcounter>file?snow.zip}}

Command: file
Parameter: the name of the file you need data for

This returns a number (which could be zero if it hasn't gathered any data for the file yet). This allows you to bracket the data anyhow you like. The filename should include the list of namespaces, so you might want to check where it is stored in the media manager.

{{dlcounter>file?aardvark:mongoose:chainsaw:snow.zip}}

An example in a more realistic use-case:

..blah blah blah widget.zip (**{{dlcounter>file?software:downloads:widget.zip}}** downloads).

which might output:

..blah blah blah widget.zip (15 downloads).

Note that if you request data for a file that doesn't exist, the plugin returns zero and not an error. It only knows about files that have been downloaded since the plugin was installed, so assumes everything else hasn't been downloaded yet, whether it is a real file or you've typed the name incorrectly or provided the wrong path.

Displaying in Tables

You can also display the data in a table. For this, the command can either be name or count. There are a number of optional parameters to this command which affect the output:

SORTING
sort  => orders the data in ascending order
rsort => orders the data in descending order

FILENAME DISPLAY
left   => left-align the filenames
center => center the names
right  => right-align the filenames

strip => strip the path information to leave just the filename
nobold => do not highlight the filename

COUNTER DISPLAY
minwidth => minimum width of the column
cpad     => left-pad the column with spaces

HEADER DISPLAY
hleft   => left-align the header
hcenter => center the header
hright  => right-align the header

noheader => do not display a header
htext    => set alternate text for header

defaults:
sorting is in natural order (and may therefore change and is unpredictable)
alignment for filenames is right-justified
full path information is displayed
filename is emboldened (to help it stand out from path information)
header is displayed
header is centered
header text is Downloads
minwidth is 0 (meaning it is ignored)
cpad is 1

Note that if you use the strip parameter to remove path information, the filename will still be emboldened unless you use the nobold option.

Sorting is performed on the column named in the command, e.g. if you specify name?sort, the filenames will be sorted, and count?sort will result in the counters being sorted. Sorting on names uses the filename first and the path as a subsort.

Parameters should be separated from each other by a space.

{{dlcounter>name?sort}}        // sort by filename
{{dlcounter>count?rsort}}      // sort by counter in descending order
{{dlcounter>name?strip left}}  // natural order, no path info, left justified
{{dlcounter>name?rsort strip}} // names in descending order, no path info

If you specify contradicting parameters, the rightmost will take precedence. e.g.

{{dlcounter>name?sort rsort}}

…the list will be sorted in reverse alphanumeric order.

When displaying the data in natural order, it doesn't make any difference whether you specify name or count as the command.

An example of table output:

{{dlcounter>count?rsort strip left hleft}}

results in:

Downloads
widget.zip3
exoplanetdata.zip1
archive.zip1

Setting the width of the counter column

For aesthetic reasons, you may wish to set the minimum size of the counter column. To do this, use this syntax:

{{dlcounter>name?minwidth=3}}

It doesn't matter which command you use (name or count).

You can also use the cpad option to adjust the width of the column. Where minwidth only comes into force if no number is as large as minwidth, the cpad option always left-pads the column. Semantically, these two options are the same as:

<td style='min-width: 1em; padding-left: 1em;'>

…where the 1em would be replaced by the values you specify. The numbers are expressed in em, which equates to a full-width character.

To understand how these work together, imagine you have a counter with the value 99, and you have set minwidth=3 and cpad=2. The number is 2 characters wide, therefore minwidth will add a full-width blank space in front of the number. Since cpad is always enforced, it will add two more full-width spaces. This means the cell will in fact be 5 characters wide.

If the number was 1000, minwidth would be ignored, cpad would add two spaces and the cell would be 6 characters wide.

Changing the header text

To specify a different header, use the following syntax:

{{dlcounter>name?htext="This is the new text"}}

You must use double-quotes, not single-quotes, to encapsulate the new header text. There should be no spaces between htext and =, or between = and the text. Quotes are required, even when the new text is a single word.

Accessing Raw Data

If you want to format the data to your own liking, you can fetch the data from the file data/counts/download_counts.json off the root of the DokuWiki installation. You should use file_get_contents() to open, read and close the file as quickly as possible.

$fname = DOKU_INC."data/counts/download_counts.json";
$assoc = json_decode( file_get_contents($fname), TRUE ); // fetch data as an associative array
$json  = json_decode( file_get_contents($fname) );       // fetch the data as a json object

The data is stored in simple key/value pairs with (surprise!) the filename being the key. The filename includes the path information in colon-separated format: path:to:filename.zip

Caveats

Note the plugin can't actually tell if a file was downloaded. If someone clicks the link to download a file, and then clicks cancel on the Save As… dialog, the plugin will never know. All it can do is register the click that initiates the download (no event is generated for successful delivery).

This actually makes it easy to test. Click a link to download and cancel on the Save As dialog, and repeat this a few times to generate some stats for yourself. When you're done testing, navigate to the counts folder as outlined above and delete the download_counts.json file to reset.

Additional Information

The plugin will automatically create the data/counts folder if it doesn't exist. It sets the folder permissions to 0755 for operating systems that support it. If you want other permissions, you can either create the folder ahead of installing the plugin, or change the permissions using your favourite tool after it has been created. Just make sure you don't deny DokuWiki access or read/write permission to it, else there will be tears.

The folder is created when it is needed, so won't be created until someone downloads something.

This website uses cookies to improve the user experience. By using the website, you agree with storing the cookies on your computer. More information
blog/articles/software/doku_dlcounter.txt · Last modified: 2019/05/20 15:55 by Phil Ide

  • Mars Weatherplugin-autotooltip__default plugin-autotooltip_bigDaily Mars Weather Reports

    These reports are provided by NASA's InSight lander in the south-west corner of Elysium Planitia.

    This page updates when it is refreshed. Daily readings are usually a couple of days behind reality (it takes time for the lander to transmit its data back to Earth).
  • Downloadsplugin-autotooltip__default plugin-autotooltip_bigDownloads

    Orbital Calculator Current Version This is a portable application, meaning there is no installer. Just unzip into a folder and run the executable. Since it is portable, it can be run from a USB stick.

    A full description and a list of the features are available
  • Orbital Calculatorplugin-autotooltip__default plugin-autotooltip_bigOrbital Calculator

    Orbital Calculator is the result of satisfying a need. There are online calculators for working out the orbital characteristics for satellites and spacecraft orbiting Earth, and they’re pretty cool gadgets as far as that goes, but quite limiting.
  • Cookie Policy & GDPRplugin-autotooltip__default plugin-autotooltip_bigCookie Policy & GDPR

    There are NO tracking cookies on this site!

    The Cookie policy is straightforward. This site only uses cookies that are required to make your experience of using this site better, and only uses session cookies (see exceptions below). Session cookies are deleted when you close your browser.
  • Book Reviewsplugin-autotooltip__default plugin-autotooltip_bigBook Reviews

    Here you can find all the book reviews, broken down by genre, and further subdivided by author. If you want me to review your novel, please read my Rules on Reviewing.

    * Science-Fiction * Fantasy
  • Contactplugin-autotooltip__default plugin-autotooltip_bigContact

    If you have a burning desire to contact me, use the discussion form below. Anything you say remains private between you and me.