December 2018 work summary

Here’s a summary of the work done for clients in December 2018. It was definitely busier in December compared to November, with peaks and valleys.

For 2018, revenues were up considerably, more than I estimated: 27% more in fact. Looking over 2018, I did a total of 126 individual jobs, many of them multiple jobs for the same clients. Since I started the business in 2006, I have done 991 jobs in total for 356 distinct clients. As always, unless a client chooses to reveal themselves in a comment, I keep information about the client confidential in these work summaries.

  • Tested upgrade from phpBB 3.2.1 to 3.2.4 on development forum. Style is inherited from prosilver and had many changes. Compared prosilver changes since 3.2.1 to see what additional template changes were needed. Applied them. Customer tested, made a few changes. Proceeded to a production upgrade. Issues trying to backup files and database. Had to sort through credential and SSH issues. Updated two extensions: Pages and Stop Forum Spam. Chose not to upgrade PHP to version 7. Provided suggestions on performance issues. Implemented 3.2.4 bug fix. Installed Posting template extension. Fixed a style complaint with Your Posts, the page number buttons were aligned toward the top. Commented out the CSS in the local style. First I performed a test upgrade from phpBB 3.2.1 to 3.2.4 on development forum. The user’s style was inherited from prosilver and had many changes. I compared prosilver style changes since phpBB 3.2.1 to see what additional template changes were needed, then applied them all. Customer tested, made a few changes. I then proceeded to a production upgrade. There were issues trying to backup files and database. I had to sort through credential and SSH issues. I updated two extensions: Pages and Stop Forum Spam. Client chose not to upgrade PHP to version 7 at this time. I provided suggestions on performance issues. I implemented some phpBB 3.2.4 bug fixes. I then installed Posting template extension. I fixed a style complaint with Your Posts: the page number buttons were aligned toward the top. Commented out the CSS in the local style.
  • Upgrade from phpBB 3.0.10 to 3.2.4. Applied patches to 3.2.4. Installed prosilver SE style, widened it to 80% max width. Installed mChat extension. Had to create a table to complete the upgrade. Disabled contact form. Configured reCaptcha. Placed logo. There was a big issue. Could not get into ACP, complained about being unable to convert UTF-8 to UTF-16BE. Found the code and made it lie so rather than fail it returned true. Then I was able to get into the ACP and finish the work. To install mChat, had to remove a module and some migrations. I upgraded a forum from phpBB 3.0.10 to 3.2.4. I applied patches to phpBB 3.2.4. I installed prosilver SE style, widened it to 80% max width. I installed the mChat extension. I had to create a table to complete the upgrade. I disabled contact form, then configured reCaptcha and placed the logo. There was a big issue. I could not get into Administration Control Panel. A PHP library in phpBB’s vendor folder complained about being unable to convert UTF-8 to UTF-16BE. I looked on phpbb.com and there was nothing quite like this issue reported. This is probably some obscure table or column encoding or collation issue in the converted database. I found the code that triggered the error and made it so rather than fail it returned true. Then I was able to get into the ACP and finish the work. To install mChat, had to remove a module and some migrations.
  • This was probably the big, hairy job of the month. I upgraded 1M post, 900K user forum from phpBB 3.0.10 to 3.2.4. Upgrading forum took about 12 hours. Could not upgrade with CLI, tried three times. Continued manually with many timeouts. Meanwhile, moved the database to my machine and converted it there as a backup process. Very tedious. Had to create two tables: config_text and oauth_states. Eventually finished and was eventually able to use CLI. Incorrectly applied patch resulted in topics not being seen correctly. Installed Latte style. Applied logo. A new style is in development. This is temporary. Disabled contact form. Installed American English language pack. Set up reCaptcha V2 spambot countermeasure. Set up Home link on navigation bar. 12/9 – 12/11: Back and forth on styling issues. Solved by user supplying a new style that I enabled. Some issues with the upgrade were noted. Provided feedback. One issues with header errors in ACP > System > General tasks looks like a phpBB bug. Reverting PHP from 7.2 to 7.1 would solve the issue.
  • Client tried to update phpBB 3.2.2 himself to the latest and a HTTP 500 error occurred. Wasn’t sure the update was complete. Spent a lot of time trying to figure it out. Eventually determined extensions were not disabled first and that an old version of the Board rules extension triggered errors in the error log. Uploaded a new version, cleared the cache and the 500 error went away. Earlier ran the update program and after completing it successfully and going to any URL the error occurred. Lots of extensions were out of date so I also updated: pages, stop forum spam, user merge and mchat.
  • Continuation of work after several months. Upgraded forum from 3.2.2 to 3.2.4. Moved over latest code from mailing list extension on asoprsforum.org. Created a Subscribers user group (group_id = 8). Edited mailing list code to use this group_id and to remove condition for a column that does not exist on this host. Changed the logo to use similar font size and font face for site name and site description. Tested new version of mailing list extension. Works fine but may have issues with larger group sizes. Changed attachment.html on prosilver to replicate changes there. Increase since of content to 1200 pixels to make embedded videos look better. Installed Digests 3.2.10 and tested manually and automated. Set client up for a daily digest as requested. I finished a project I had been working on with a professional association that I began in August for a new forum on a new domain. Basically I replicated the work I did for them on another domain to make it work the same. This included some unique functionality. For example, phpBB cannot play web ready videos natively, so I hacked attachments_body.html to natively play .mp4, .m4v and .ogg videos natively. phpBB requires these videos play using a Quicktime plugin. Tested on a variety of devices including smartphones to make sure it worked on all devices. Some devices seem to require a Chrome browser. Since I started it in August with a prototype, phpBB has evolved. So I upgraded the forum from phpBB 3.2.2 to 3.2.4. I moved over latest code with my changes from the mailing list extension on the other domain and tailored it to work on the new domain. I created a Subscribers user group used to send notification emails of new topics and posts (with full texts) and placed all registered users in that group. I changed the logo to use similar font size and font face for site name and site description, and eventually installed a total of five styles that the user could change on the navigation bar. I tested new version of mailing list extension. I installed Digests 3.2.10 and tested manually and via a cron. I set it up for a daily digest as requested, but disabled the user control panel interface as requested. The client is the only one getting the digests. Also with the ACP Add User extension enabled, I added a few dozen members to set up their accounts. The forum is hidden from the public.
  • Troubleshooting. Client reported 403 (forbidden) error messages. Hosts did something to fix it, said it was an issue with app.php. Changed four folders to use 777 permissions, were 755. Looked at error log. There was a deny all line at the top of the .htaccess file. Removed that and the forum came up. No obvious problems with the board. Later, updated phpBB 3.2.2 to 3.2.4. No issues with update.
  • Upgraded phpBB from 3.2.2 to 3.2.4. Applied patches to 3.2.4. Upgraded Cleantalk extension to the latest version. Updated latest American English language pack. Made sure all changes to prosilver were applied: ads are supposed to show in the header. I upgraded phpBB from version 3.2.2 to 3.2.4. I applied the needed patches to version 3.2.4. I upgraded the Cleantalk extension to the latest version. I updated the forum to the latest American English language pack. I made sure that all changes to prosilver were applied: ads are supposed to show in the header.
  • Upgraded phpBB from version 3.1.11 to 3.2.4 with patches applied. Upgraded Cleantalk extension. Tried to install upgraded Custom Code extension but it requires PHP 7 not yet enabled. When enabled, the extension should be enabled. Updated Google Analytics extension by mistake. Disabled Auto DB backup extension and email list extension (version 3.1 base). Installed American English language pack. Reinstalled logo and adjusted display size in CSS.
  • Client complained that old embedded images hosted on other websites were showing blank spaces instead. When this happens, it’s because the image no longer exists on the external web server. However, there was another thornier issue. The client did not want users to use the [img] BBCode, but did want admins to be able to use it in posts. The general problem was that user forum permissions were being granted to admins, instead of adding users to appropriate administrator’s group and giving this permission to anyone in the admin group. Those user forum permissions had the Never permission set for using the [img] BBCode. I changed the forum permissions for registered users for this privilege from Never to No. When set to never, since admins were in the registered users group, this would also keep them from using the [img] BBCode. However these user forum permissions for these admins were set to Never and overrode this change. It was hard to tell how many users were affected since admins were not actually in the administrators users group. Having their user status set to founder allowed them to get into the ACP but the privilege to place others in the administrator’s users group returned an error. Using the database, I determined that likely no more than four people had this issue. So I changed their permissions for this privilege set to Yes from Never for all forums, which was time consuming because there are many forums. I provided advice on how to allow posts to be edited for up to six hours (30 minutes was the default) on the post settings page.

November 2018 work summary

This was a slow month for my business. It wasn’t a problem. I made my goal for the year at the end of October and was also teaching a class. Good to have some downtime. It allowed me to get out a new version of my digests extension.

But I did do some scattershot work here and there in November, updates mostly, including this work:

  • Upgraded a forum from phpBB 3.2.1 to 3.2.3. Initially I could not login to the Administration Control Panel. Changed cache folder permissions to make everything writeable and eventually was successful. I had to copy all the files from a version 3.2.3 reference to get the updater to work due to TWIG library errors that occurred when I tried to update the database. I reapplied the forum’s style changes for the logo and a PayPal button. I updated the Advanced BBCode extension from version 3.1.3. to 3.2.1. Changed all tables to use the InnoDB storage engine instead of the old MyISAM storage engine. There was an issue with the topics table. I had to remove a MyISAM full index before I could change its storage engine.
  • Additional work for a client I mentioned last month. Last month I completed a long upgrade of their forum from phpBB 3.0 with many modifications. In this latest work I changed the mailing list extension to use a new “Subscribers” group I created instead of Registered Users for sending topic and post notifications. This made it easier to opt out people who did not want these emails by simply removing them from the group. I created the new group then populated it with a SQL query by adding everyone in the Registers Users group to it. I provided instructions on how to remove people from this group. I noticed an inconsistency in phpbb_user_group table, removed lots of bogus rows where the user_id in the table did not exist in the phpbb_users table. I manually removed a bunch of people who did not want these notifications from the new group. A few days later, I refined the query to also filter out those where a column I created called user_email_all_posts was set to 0. I used this approach when a similar functionality was done on phpBB 3.0. All the notification issues seem to be fixed now and no latency has been reported due to emailing when creating new posts. Phew!
  • Troubleshooting. A catchable fatal error occurred on a client’s forum. It took a while to get access to the web host control panel due to the client’s illness. Once I had it, I manually purged the cache. This generated a different error. I changed PHP from 5.6 to 7.0 though made it go away. I changed permissions on the cache folder too. Later I updated the forum from phpBB 3.2.1 to 3.2.4. When I tried to run the update it said phpBB was not yet installed! I searched through the phpBB source code to see what triggered the error, eventually discovering it was because a .lock file was present in the cache folder. I removed it and the update was successful.
  • Updated forum from phpBB 3.2.3 to 3.2.4. No issues. Later, I installed the mChat extension on the forum.
  • Updated forum from phpBB 3.2.1 to 3.2.4. Updated the AllanStyle-SUBSILVER style that was the primary style, putting back the old logo. I removed the old security certificate, and installed a free Let’s Encrypt certificate. I changed the forum’s .htaccess file to redirect HTTP traffic to HTTPS. I discovered one issue on the index: insecure content was being served. This was due to http:// being in the user_avatar column of the phpbb_users table to serve avatar images. Used MySQL REPLACE to make these avatars to be served securely. In some cases there may be a blank space now because the server did not support HTTPS. I changed PHP from 5.6 to 7.2. This work inspired this blog post.
  • Updated a forum from phpBB 3.2.2 to 3.2.4. Upgraded the Cleantalk extension to the latest version. I changed config.php to use mysqli. This allowed the forum to work with PHP 7.1 (it was on PHP 5.5).