Streamlining Matomo with CRON Scheduling

It does not appear like much now, but Grammar Captive has made its first successful Composer installation on its host server at Lunarpages.

Peppe Occhi’s CRON Scheduler software and required dependencies including SwiftMailer and the PHP intl extension will facilitate a more effective rendering of Matomo data.

Eventually, we are not there yet, the requisite Matomo data will be downloaded at regular intervals and stored in a format that will provide visitors with immediate access to Matomo data.  In this way the long delays necessitated by Matomo’s overhead will not be directly experienced by the average visitor.

Still looking for a way to raise money for new office space and a stable environment suitable for regular podcast production.  It is only a matter of time before a solution is found.  Certainly there is no shortage of other projects that can be undertaken in the interim.


Dynamic Cubes – Building a Highrise on a Webpage

What is so cool about the newly created dynamic cubes — now fully functional — is that they not only provide eye-candy to the visitor, but they also multiply the amount of advertising space available to sponsors  by a factor of six!

Where before one could view one of the seven gates in each of the seven spaces , one can now view six of the seven gates in each space.

Sponsors will be able to rent an entire cube or multiple cubes, or any number of facets of a single cube that they share with other sponsors.

For the moment I have made the selection of cubes and their faces completely random.  Every 1000 milliseconds three cubes are randomly selected and each randomly rotated to show a different side.  With the current setting  I am able to control the

  1. the number of cubes rotated,
  2. the frequency of their rotation, and
  3. the time to complete a single rotation.

With minor modifications of the code, the randomness of the selection can be turned off and the rotation of sides can be made to order according to a sponsor’s need.

Further, I am able to replace any of the rotated sides with images, words, and even links to the sponsor’s website.

How is this for cool?  Was it worth waiting for?

Now, if I could only find a reliable place for podcasting and the means to afford it!  This task is still under way.


Randomly Selected Rotating Gates

It has been very slow in coming and is not yet complete, but the most difficult task has been accomplished.  The single gate images on the Grammar Captive podcast homepage are now randomly selected 3D rotating objects.

In the end it was accomplished without GreenSock (GSAP) — a long story in itself.

I still have not found a location for podcast production, but the effort is on-going.  Please do not give up hope.


In order to podcast and produce quality webinars I must find a professional sound room that I know will always be there when I need it and does not depend on my precarious living situation.  This can be achieved only through additional expense.

In order to raise the money to pay for such a place I have decided to make Grammar Captive more available to University of Washington students.  To this end I have created a subdomain with a direct link to the GC Tutor panel of the Grammar Captive mainpage.

It took a not so brilliant change in the Seattle weather to provide the brilliant inspiration for the webpage!

The next step is to advertise on campus with fliers posted everywhere where it is permitted.


Something Very Good Around the Corner

There is something very good around the corner, but it is not podcasts — well, at least, not yet.  I have spent the entire week learning the ins and outs of the Greenstock AP, and I am very excited about incorporating it into Grammar Captive’s Podcast Hostpage and elsewhere.  It has been good to get away from Matomo for a while.

I still have not found an appropriate place to podcast, but I am following a step-by-step process in an effort to find something secure and lasting.


Rarely As Expected!

An important part of entrepreneurship is embracing the unexpected, because things rarely go as planned in unchartered territory.

In short, I fear that my situation will once again compel me to postpone the production of Grammar Captive’s first completed podcast for still another month or even a full academic term.

In order to deal with the unexpected, the entrepreneur cannot sit idly by and allow the decisions of others to get in his way.  He must remain flexible and endure each and every hardship as it occurs.  Fortunately, I have little shortage of endurance, and long turn-around times from my host server has taught me the art of multi-tasking.  Here is the new agenda until I better know, if podcasting can begin as planned:

  1. Write a PHP class factory for PHPMailer that will allow me to use the same code for all email communication with “grammar captives”  including newsletter subscription email, newsletter delivery email, webinar sign-up and notification email, authorization email, confirmation email, password renewal email, and the like.
  2. Create a timed depository for data obtained from Grammar Captive’s custom Matomo server in an effort to speed up the rendering of graphs and data.  User’s simply have to wait too long to see what they want with the current set-up.
  3. Convert the images of the seven gates on the Grammar Captive podcast homepage into rotating blocks for the purpose of affiliate and sponsor advertisements.
  4. Implement the MeCab parser to enable Japanese the same ability to search the Grammar Captive archives in Japanese in the same way that others can search the archives in French, German, or English.

Headway in all of these tasks has already begun, and some are on the verge of completion.

Be on the look out for good things ahead despite any and all further postponements in production



Fanciful and Effective Code – the Difference

There is a lot of free code on the internet;  some of it is poorly written, some of it is well written, and some of it appears to be what it is not.

What I believed to be a problem of variable selection was, indeed, a problem of the code that was used to remove duplicates after the variables were selected.

Ironically, I probably would have not caught the discrepancy between serverDate and serverDatePretty had it not been for the miscoded removeDuplicates() function.

Fortunately, both discrepancies have now been addressed, and Grammar Captive’s first multi-variable graph is robust and working across all variables.


Replaced Troublesome Localized Timetable

The troubled Time Schedule option in the Availability menu has been removed and replaced with something much simpler and likely more effective due to its simplicity and cross-device and platform flexibility.

Localization was an important priority when the site first began, but I have come to realize that it will only truly be effective when the entire website is localized in all its aspects — a milestone on a still very distant mountain.


Accuracy and Elegance

Sometimes the need to celebrate is so great that we finish by celebrating too soon.  Indeed, a careful second look at the old graph revealed inconsistency in the two sets of data that were being compared.

It turns out that Matomo’s serverDate parameter was the wrong parameter for tracking visitor data.  So, I  switched parameters and reformatted the chart label so that it now appears even more elegant than before!  But, I will not celebrating again for a while, as there remains so much more to do.



A Little Celebration

It was no easy task producing Grammar Captive’s first graphical display, so I thought I would celebrate the occasion by adding a little technical sophistication to the graph.

Once again, look for the menu option Graphs & Charts under Visitor Profile menu in the navigation bar on the Grammar Captive mainpage.