February 2022 work summary

February was a bit like January: plenty to do at the start and end of the month with not so much in the middle of the month. So during the middle of the month I released new versions of three of my extensions: Digests, Spam Remover and SCSS compiler.

I thought my development work for a major commercial client was done but a few new minor tasks were discovered. These tasks included:

  • Replicating a kill user feature that was overlooked. It gives an admin a one button press to remove a spam user and all their posts.
  • Changed an extension I wrote that emails to a mailing list all admin log entries to also send the list critical error log entries.

Other work for clients in February included:

  • WordPress work. Updated an old WordPress instance from WordPress5.3 to 5.9. I got errors after logging in and solved them by going into the database and changing the row in the wp_options table that enabled all the plugins. Installed a default theme. Moved a number of posts and pages into the trash. Rearranged the menu and added some pages. Then demonstrated how to add PDFs to the Media Library and how to use the Gallery extension, which I had to reinstall, but a gallery of smilie fingerprints was already set up. I just had to add the correct shortcode to the page so it would render. Set up another gallery for a set of other kinds of images and demonstrated uploading some of these. The client may be able to take it from here.
  • Installed the Topic Tags extension using a 3.3 version I found on a client’s test website. Client tried it out and had me install it in production.
  • Upgraded a board from phpBB 3.0.14 to 3.3.5. Tried to use Support Toolkit but had errors manifested by syntax errors in language pack files but eventually decided to give up on it. Set everyone to use the British English language pack. There were dozens of language packs installed. Three database errors had to be fixed to complete the upgrade. I stayed with default prosilver style. I disabled the contact page and set up reCaptcha V3 spambot countermeasure. I set up a home page link and installed the Advertisement management extension and placed sample ad.
  • Rehosting and conversion. This was a conversion from phpBB 2.0.16. I moved the files and database to temporary hosting for a subdomain. The board had 354,000 posts. I had to split extract of phpbb_post_text table into two extracts to get under the 50mb upload limit, as well as not carry over the search tables. Converted using phpBB 3.3.4 to avoid conversion bug, then updated to 3.3.5. I tried to install SiteSplat style but didn’t show an ad, so used ProLight style, then created a custom style based on it. The style needed to incorporate the site’s WordPress headers and footers, which took two hours of time. Installed the Advertisement Management, Site Map and Google Analytics extensions. I placed sample ad. User tested it then let me move it into place, which was a folder inside their new WordPress site done by someone else.
  • I was asked to check emailing from the board. No problems were found, but I couldn’t get to work with SMTP. I created an admin email address for domain and changed email address default for board to that. Provided guidance on subscribing to forums and topics. Later, attempted to integrate simpler WordPress theme HTML provided by their contractor but couldn’t get it to work. I moved over both the the files and database. The board came up without an issue after changes to config.php.
  • Upgraded a board from phpBB 3.2.9 to 3.3.5. I deactivated and removed a number of styles and made prosilver the default style for everyone. Upgraded the Pages extension from version 2.0.4 to 2.0.5. Originally I figured out that the reason the board did not come up was because BlueHost changed PHP to 8.0. Temporarily reverted the domain to PHP 7.3, then later after upgraded the board I enabled PHP 8.0 again.
  • Updated board from phpBB 3.3.4 to 3.3.5. Create a custom style inheriting from prosilver to simply updates next time. Since the Board3 Portal extension was installed, I changed the .htaccess file to load the portal page by default.

January 2022 work summary

Client work was busy at the start of the month and at the end of the month, but there was a weird two-week quiet period in the middle. During that time I mostly worked on extensions. I’m working on an update to my popular digests extension but it’s not quite ready to go, but contains new reporting features. I’m also working on a notify admin on error extension, which is getting me into phpBB’s notification system. The point of this extension is to send administrators notifications if new entries occur in phpBB’s error log. It’s surprising this isn’t built in. It needs to be.

My large commercial client still has not moved into a formal testing phase for all the changes we made over the last two years. However, I was asked to move this along by writing a test plan which I did over the last two days of January.

Other work in January included:

  • Cashing a nice holiday bonus from my large commercial client. They let me defer receiving payment until the new year, which works for tax purposes.
  • Provided guidance for another established commercial client for deleting and setting up new forums with the correct forum permissions. For the same client, I upgraded their board from phpBB 3.3.1 to 3.3.5. I also updated the Board rules, Digests, Tapatalk and Quick style extensions to their latest versions. I replaced Artodia SCSS compiler with my own SCSS compiler extension. I updated 12 language packs. I also updated all five styles and reapplied their customizations to them. I found and fixed bug in the Forum language extension.
  • Earlier in the month I went through a messy test phpBB 2.0.15 to 3.3.5 conversion. There were lots of issues. The main one turned out to be a bug in the phpBB 3.3.5 conversion software recently introduced where serialized config values were incorrectly escaped, causing a connection to the old database to fail. When I couldn’t get it to work on the client’s server, I moved a 4GB database and 60GB of files to my machine to do it there and encountered the same issue, leading me to figure out eventually where the problem lay. A conversion on my machine eventually worked after correcting the incorrect configuration values. It took about eight hours. There were some duplicate posts and HTML conversion errors, and it failed near the end when importing attachment types and attachment groups. I moved the database to the client’s server and it came up but there were a number of inconsistencies we had to work through, like missing or incorrectly placed avatars and smilies.
  • Later in the month I did a “for real” migration for the same client. The workaround is to install phpBB 3.3.4 and use its convertor program. I tried to run conversion on his web space but it didn’t work with phpBB 3.3.4 and returned a HTTP 500 error with nothing in the error log. So again I had to download the database and files to my machine and convert it there. The conversion was straightforward except for an issue at the end relating to attachments that I hacked but didn’t affect anything. Smilies, avatars and attachments all converted correctly this time. I then updated the software to phpBB 3.3.5. I then added the logo and installed the Advertisement Management extension and placed a sample ad. I was able to upload the database after moving it into an archive, but when I tried to make an archive of the files I found that I didn’t have enough space to create it! So this involved uploading about 335,000 files individually instead of uploading one large archive, a process that took at least 18 hours. I brought up board but first fixed a few directory permission issues. I started to create search index but stopped it when I realized it would take 16 hours. Board was placed in a temporary domain. Client pointed the domain to the new hosting space and re-created the search index.
  • I converted a board from phpBB 2.0.23 to phpBB 3.3.5. Due to bug in the conversion software discussed above, I installed phpBB 3.3.4 and afterward upgraded to phpBB 3.3.5, using lessons learned from last job. It all went fast and spiffy with no issues. About 400,000 posts were converted. I rebuilt the search index, disabled contact page, and set up a reCaptcha v3 spambot countermeasure.
  • Fixed a number of issues related to moving a board to GoDaddy. Reloading the modules table from reference phpBB 3.3.5 installation allowed me to get to the ACP forums tab. It also addressed an issue when registering. Three extensions needed to be updated: Google Analytics, Board Announcements and Stop Forum Spam. I changed spambot countermeasure to Q&A after reCaptcha V3 didn’t work because the host didn’t allow queries to other servers. I disabled the contact form. I installed the proflat style and integrated the customer’s logo. I had to manually add the modules for some active extensions as they got overwritten when I replaced the modules table with a reference. I tested the registration issue to make sure it was fixed. I was asked to hide some of the forums. I gave the unwanted forums the no access role for Anonymous user and registered users group to fix this issue.
  • I upgraded a board from phpBB 3.2.9 to 3.3.5. I installed the Nosebleed style and the American English pack plus the Cleantalk extension. I removed the site logo from Nosebleed style and integrated a new background image that fit the space exactly and was created by the client. I set the home page link and setup the reCaptcha V3 spambot countermeasure. I also removed some dead modules. Set up a redirect rule to redirect http traffic to https for the board and provided guidance on favicon usage. Collaboration on setting up forums and categories to come.

Pricing update January 2022

I’m changing my pricing, which was last revised in a major way in February 2018. It’s been overdue for quite a while.

As I do more of this work, I’ve realized that that the pricing of certain work (generally the more complex work, such as large upgrades or conversions) doesn’t come close to reflecting the actual effort required, at least at my nominal hourly labor rate.

But also prices have been up in general the last four years, and inflation in particular has gone up in the last year or so. So I need to account for that.

I still offer both commercial and noncommercial pricing. Noncommercial pricing is discounted to 50% of the commercial rate. My base labor rate is now $70/hour commercial, $35/hour noncommercial.

One price was lowered: the cost of adding additional extensions, language packs, emoticon packs and rank images packs, at least if you want me to do three or more of these in the same job. These went from $30 to $15 each commercial, and $15 to $7.50 each noncommercial. That’s because when you do these in bulk, they don’t take much time. Most of the time is in finding the right versions. Uploading and installing them is generally simple.

Overall, prices were raised about 16%. For the more complex tasks like large upgrades and conversions, the pricing change is about 60%. This is because these tasks are time consuming and challenging, and typically involve a lot of close work with the client. There are usually plentiful questions and answers required, and careful attention to detail to satisfy the client. This results in a lot of time, so my pricing should reflect that. It may be that this time is still not fully captured in my pricing. I’ll reassess this in a year.

You can see my updated pricing summary here.

December 2021 work summary

I didn’t do much work this month because about half of it was planned vacation. We were on a cruise ship in the West Indies enjoying ourselves and, fortunately, didn’t contract anything on the cruise. It certainly helped that they checked and double-checked our shots, boosters and recent tests before letting anyone board. It also helped almost everyone was my age or older and we wore masks indoors except when in our cabins or eating. It was a good mental break and it was good to be on the sea again and see some exotic islands.

During my absence though a queue of work accumulated and happily all were nice enough to wait until I returned home. As for my large commercial project, I didn’t do any work for them at all in December, but they gave me a nice holiday bonus. I expect that project will enter a testing phase this month.

2021 was a record year again for this business. I think it’s kind of gauche to disclose exactly how much I earned but you can get a sense from this revenue graph for my business since I started it in 2006. I keep all these details in a Google spreadsheet.

phpBB Services revenues per year through 2021

I don’t expect this trend to continue in 2022, unless I can replace the work I did for my large commercial client with another such company. The money inspired me to purchase a new computer, which I can write off as a business expense. I currently use a late 2013 edition iMac, which was later upgraded to 16GB memory and a 1TB solid state drive. It will be replaced by a Mac Mini with 8GB memory and a 512GB solid state drive. This model has the new Apple M1 chips that use a RISC architecture, so it’s likely to be super fast. Also on order is a HD display monitor and a web cam. It will take about a week it all to arrive and get configured.

During December, I also released version 3.3.12 of my digests extension and a release candidate version of a SCSS compiler extension. A few days ago I also completed a revision of my book. When business slows down, it’s nice to spend some time giving back to the community with unpaid work.

Other work in December:

  • Earned a DreamHost commission
  • Updated a board from phpBB 3.3.4 to phpBB 3.3.5. No extensions or styles needed updating.
  • Updated board from phpBB 3.3.1 to phpBB 3.3.5. I updated the prosilver_se style from version 3.3.0 to 3.3.5 and the Tapatalk extension from version 2.1.8 to 2.2.0. Updated the Danish language pack to version 3.3.5. I reapplied the logo and changed reCaptcha V2 to V3.
  • Upgraded a board from phpBB 3.3.3 to phpBB 3.3.5. I also changed reCaptcha from V2 to V3.
  • Upgraded a board from phpBB 3.3.4 to phpBB 3.3.5. I also updated the Cleantalk extension from version 5.7.3 to 5.7.4. The client reported that he wasn’t receiving notification emails for new registrations. I found the domain on an email blacklist. It looked like BlueHost was blocking outgoing emails. I recommended that he resolve it by talking with them and to appeal to the blacklist to remove his domain from their list.
  • Upgraded board from phpBB 3.3.2 to phpBB 3.3.5, my digests extension from version 3.3.3 to 3.3.11 and the Cleantalk extension from version 5.7.3 to 5.7.4. No issues were noted.
  • Client’s flaky VPS server, ran out of space (there were 20 GB of images and attachments). The symptom was that phpBB reported an error saying that the phpbb_moderator_cache table didn’t exist. Eventually I was able to SSH in, drop the table explicitly (although it showed in the list of tables, it couldn’t be queried) and re-created it. That allowed the board to come up again. This probably occurred because he simply hit the storage limit and that corrupted his MySQL database. I also re-created the board’s database user and assigned privilege to the database that didn’t seem to exist.
  • Converted a board from phpBB 2.0.23 to phpBB 3.3.5. Some posts had too large a font size. I created a new database to hold tables for the converted board. I disabled the contact page and set up a reCaptcha V3 spambot countermeasure. I also created a home link. I suggested creating an email address and testing emailing. Otherwise, it was a straightforward conversion.

New edition of my book is available. Covers through phpBB 3.3.5

I’ve updated my book, Mastering phpBB Administration! This is the first revision since the July 2021 edition. This edition covers phpBB administration through phpBB 3.3.5. Both a paper version ($19.99 USD) and an eBook version ($9.99 USD) are available. The paper book is 373 pages and 88,000 words long. Both have numerous illustrations.

Mastering phpBB Administration eBook
Mastering phpBB Administration eBook cover

With every version, I re-edit the whole thing. Of course, it has additions and corrections as appropriate. Every edition attempts to refine the content both as a source of quality information, but as a written work too. Hopefully this book, now nearly two years old, will just get better and more useful with time.

I find turning it into an eBook challenging. I use Calibre to make the eBook, and it imports the Word document source easily enough. But there are some illustrations that are out of place, font sizes to fix and I have to re-link all the items in the table of contents to make it quick to jump to areas of interest. So far, I haven’t found an easier way to do this.

If you own an earlier edition of the book but don’t feel like paying for the newest version, email me your Amazon receipt and I am happy to send you the current PDF version.

Links to the book are above, below and in the sidebar.

November 2021 work summary

I’ve completed a nearly two-week vacation, so this report of my work in November is a bit late. I did a fair amount of work in November, mostly miscellaneous stuff. One big event was finally quashing my digests extension bug that reported bogus container issues, which was in the place I least expected: an event handler designed to intelligently shut things down if a lack of resources occurred. In addition, I wrote a draft of a SCSS compiler extension.

For my large commercial client, work is definitely ebbing as development is complete and we are moving into a testing phase. We went through a trial upgrade using a copy of their production board running phpBB 3.0.11, which was designed to be a smoke test. The copious notes I took when I did it last year when I did it helped a lot. There were a few bugs in our custom extensions that needed to be fixed. But overall the smoke test went pretty well. While I was on vacation, the client hoped to do a second smoke test using Ansible.

Other work done in November:

  • My client did most of the moving of files and database for his board for this rehosting to Siteground. I changed the domain and I placed the board into a subdomain. The client provided a refreshed database that I reloaded somewhat tediously. It took four attempts with timeouts to import it all. The site used a Sitesplat style and a ton of Sitesplat extension, neither were really needed as the site was purchased, the extensions weren’t actually used and the style was proprietary. After moving database and putting it in a subdomain, I upgraded board from phpBB 3.2.8 to 3.3.5. I removed most of the Sitesplat stuff and the unused Sitesplat extensions. I kept the Share On extension (no upgrade available) and updated the phpBB Media Embed extension. I installed and tweaked proflat style to match colors on main site. Later, I moved board from the subdomain into a folder to address client’s SEO concerns.
  • I upgraded phpBB from version 3.2.7 to 3.3.5 and PHP from 7.2 to 7.4. I updated the Metrolike style and reapplied template and theme changes. I upgraded nine extensions too.
  • Client’s board reported PHP version could not be used. It was configured to use PHP 7.0 due to some sort of incorrect GoDaddy change that was applied in mass to lots of its servers. I waited more than an hour on the phone to talk to GoDaddy to eventually learn that this was an enterprise problem. It was subsequently fixed by GoDaddy.
  • I updated phpBB from 3.3.4 to 3.3.5. I updated the board’s Italian language pack to a phpBB 3.3.5 version. There is an upgrade to the advertisement management extension I did not do.
  • Solved the long issue with digests not running correctly that I mentioned above and applied it to a suffering client who had been dealing with it for a while. I installed version 3.3.11 of digests with an unsubscribe link patch, set up a new system cron and tested it and it appears to be working okay. Charged for two hours of my time to address numerous questions on web hosting that they asked.
  • I updated a board from phpBB 3.3.1 to 3.3.5. I also updated my digests extension from 3.3.2 to 3.3.11 and the stop forum spam extension from 1.3.10 to 1.4.0.
  • Made modifications to david63’s user details extension (which david63 is apparently not supporting) to make it work as a cron. It had already been modified by the client to change CSV to tab-delimited output. Getting it to work as a cron required a lot of tedious debugging and testing as crons are hard to test, and the code was a bit hard to read.

DreamHost Black Friday and Cyber Monday sale runs November 22 – 30

I currently host my site on DreamHost. If you are considering rehosting or just want to buy some domains (or renew them) at some great prices, consider taking DreamHost up on their sale and saving some money too. You would also be doing me a favor by using my affiliate link, which would allow me to generate some income too.

Rehosting is obviously a time consuming and can be an expensive endeavor. DreamHost may not be appropriate for your particular needs either. See my review of DreamHost and make sure to contact their sales department to make sure it meets your requirements. But if you decide to use them, please use my affiliate link.

I could help you move your board to DreamHost if you need help, for a fee of course. Also please note that I will be on vacation November 30 – December 12 and won’t be providing any services during that time.

Here are some details from DreamHost on their sale:

Domains:

.xyz – $0.89
.online – $0.99
.store – $0.99
.com – $5.99
.io – $29.99
.art – $1.99
.shop $0.99

Hosting:

$2.95/mo for a year plan, over 79% savings and a free domain

Pro Services:

(Applies to both New and Current Customers)
20% off all Web Design Plans
20% off 1-time Site Services:
Site Optimization, Site Migrations, Site Update, Hacked Site Repair, Custom Web Development

Again, use my affiliate link if you want to take advantage of this sale.

October 2021 work summary

October was a slow month, work-wise. This was principally due to ending development on a long term project for a major client. We have been working on it since March 2020. The next phase for this work is testing, and that requires cloud resources and configuring a bunch of servers which is not in my skillset, so it was left to the client. The client though is used to farming out the work to me, but can’t for this phase, and wants it to be all automated using Ansible. That and that because of his skill level he is highly multitasked just meant that he had a hard time working on it. It’s likely though that in November testing will start in earnest. We’ve got a whole list of steps necessary to do and we need to do a lot of them together so he can learn the complex process for upgrading phpBB. We hope to meet tomorrow to resume work on this project, otherwise it’s been four weeks of me waiting on events as one planned meeting after another got delayed as he got waylaid on other tasks.

The other work that came in was slow too. To keep busy, I released new versions of my digests and spam remover extensions. I think I fixed a persistent issue with the digests extension. Working with a client I was able to test the spam remover extension against a real case study on a board with about 70,000 posts. This let me find lots of bugs and lead me to change the logic so that the remove spam function happens iteratively.

Otherwise, just four commercial jobs in October:

  • This was the project that involved removing spam that took more than a week to complete that I mentioned above. The client mentioned off hand that she wanted me to get rid of the spam, but this turned out to be the major task, not the upgrade and rehosting that occurred too. I tried my spam remover extension, but version 1.0.2 (which is approved!) wasn’t up to snuff due to the size of the spam in the database. So I spent a couple of days adding functionality to the extension to remove spam in batches, and used the client’s site as test. I tried to move the database first, but I couldn’t import it because the spam context in the post text column was too big, resulting in database timeouts, even on my local machine. So I had to do it in a phpBB 3.2 board on the client’s host. Eventually I got my extension to remove the spam, but some spam was left over in a few topics that Akismet did not get flag, and there was some old false spam I reported as ham. Then there were issues with testing on the new host (DreamHost). My usual trick for testing by editing my hosts file would not work, requiring technical support and some back and forth that further delayed things. I was finally able to do the phpBB upgrade, which was done very quickly. But trying to install the old custom style didn’t work, so I applied changes to the we_universal style on which it was based. I removed 17,000 bogus users in the database manually and removed some spam topics manually too that Akismet missed. I had to reinstall the Tapatalk extension and find a recent Beta version of the reIMG extension to install. Emailing worked at first, then didn’t. The issue was using a forwarder instead of authenticating with an email inbox … thought I had it doing both. Then DreamHost moved their staging site to production, removing the board’s files but leaving the phpBB database unaltered. So I had to upload phpBB’s files again, reinstall the extensions and re-tweak the style. I tested emailing again and there was no error now that an email inbox is created, but later had to get it to work with an external SMTP provider. DreamHost limits shared hosting to 100 per hour, which was unacceptable to the client.
  • A client’s Siteground database quota exceeded the 1GB quota by a lot! The main problem was that the phpbb_log table was huge, so I truncated that but also the phpbb_spam_found table and that brought database size down to 376MB. I also disabled logging for the filter by country extension.
  • I had an initial conference call to discuss requirements for extension with a potential client. I subsequently iterated on the requirements in a Google Doc and did an analysis in a Google sheet. The nearly $2000 estimated price though was more than the client wanted to pay, so he paid me for my time.
  • Upgraded a total of three boards from phpBB 3.2.7 to 3.3.5. Added Polish language pack on one forum. Changed PHP on another forum from 5.6 to 7.3.23. Later, I did the third forum was similar but I had to update the OneAll Social extension and change PHP from 7.1 to 7.3.23.