PeepSo 1.10.2 Release

New Release: PeepSo 1.10.2

Every once in a while we need to take a step back and get perspective on how our product performs as a whole. This release focuses on the general performance of the PeepSo suite, with special attention to Chat, AJAX and various tasks that PeepSo performs in the background. We also improved control over user registrations and added some new features to the GDPR compliance mode.

Upgrades

For a quick and hassle-free upgrade:

  1. Go to the backend of your site > Dashboard > Updates (go here, instead of > Dashboard > Plugins, trust me)
  2. Select all PeepSo plugins that need to be updated
  3. Click ‘Update Plugins’ (note: this will deactivate all of the add-on plugins), don’t worry, they’ll come right back on during Step 6 promise!
  4. Update PeepSo Core
  5. Go to the backend > Plugins
  6. Reactivate all PeepSo plugins

The whole operation doesn’t take more than 3 minutes. Should you have any issues or questions, please do contact usALSO IMPORTANT. We release all plugins at the same time. Sometimes, it can take some time for all available updates to show in the backend of your site. If some plugins’ updates don’t show, wait. Just Wait. Don’t upgrade just some of them. Drink some coffee and wait. Your site needs to catch up to show them all. If you feel like it’s taking too long, contact us. We’re here to help!

Alternatively, if you feel you can’t take the wait, you can go to your account, download the latest versions and do the following: Backup everything. Deactivate all PeepSo plugins from your site. Install the new versions from the zip files, just like on the first installation.

Chapter One – Performance

AJAX & Chat

With big communities, the amount of background calls required can grow quite a bit, especially if your users are using Chat a lot. Based on some reports and research based on them, we implemented more granular control over the intensity of these calls.

The Advanced Config tab was expanded with a new group called AJAX call intensity.  There you can control how often an AJAX call is allowed to run when it’s active (for example people are typing in a chat window or there are new messages).

The old setting “AJAX Call Intensity” is now used to define how often a call can run when it’s idle (no new messages or any other activity). It also still controls the generic notification query (checking for new notifications, friend requests etc.).

The third setting is a multiplier and it defines how quickly (or how slowly) the script should switch between active and idle intensity if there is no activity.

PeepSo AJAX Call Intensity settings
Granular control over how often AJAX calls are allowed to run.

Sounds complicated? Perhaps. But the bottom line is: lower number in any of these 3 settings means more “instant” experience for the users but also means higher server load. So if you feel like your site is underperforming and/or your host complains a lot about PeepSo AJAX calls, you might want to play with these settings: essentially, raise them gradually, especially the active one.

These three settings control what we call the smart timing and for now it was only implemented in the Chat windows. In this version we also made sure the “I am typing” feature does  not flood the server and respects the aforementioned settings. Next version will include smart timing in the legacy single message view.

Maintenance scripts

Various PeepSo plugins have used page loads in order to run their maintenance tasks. For example, Hashtags would rebuild a few tags/posts once in a while, Friends would make sure the followers table is up to date etc. These maintenance tasks were spread across multiple plugins and fired on their own discretion. It all worked great until really big communities showed up, with lots of posts and users to digest. Since we do need these scripts to run, we redesigned the way they are called.

This needed some major under-the-hood changes. Now everything that is connected to maintaining, cleaning up, recounting, etc. is centralized in one master PeepSo Maintenance event.  The event is hooked to a WordPress cron, so by default it will still fire upon a page load for some users. But  just like with the MailQueue, if the WordPress cron starts to slow down page loads, the administrator can now completely disable it and instead use an external cron job to perform the maintenance tasks.

PeepSo Maintenance Cron
All maintenance tasks were centralized into a single event with each sub-task separately benchmarked for faster bottleneck identification.

This should lower the recourses usage and limit the impact these scripts have on perceived loading times. On top of that, each little script’s performance is separately measured, so in case of resource usage spikes we will be able to step in and quickly debug without the need of digging through QueryMonitor outputs.

Chapter Two – User Flow

These improvements are based on many requests, questions and suggestions made by our customers. We give you even more control over the user registration and activation and make sure a process of registering via another plugin is also clean and flexible.

Disable PeepSo Registration

In case you wish the user registrations to be handled by another plugin (for example WooCommerce, LearnDash, EDD, PMP etc.) you now have the option to completely disable PeepSo registration. This option will make sure all of PeepSo registration (links, forms, etc.) \ becomes fully invisible to the user. This will also work for completely closed communities that don’t want any registrations at all such as intranets, small family-only websites etc.

Username cleanup & changes

Since some of the third party plugins create users with their e-mails set as usernames, you run into a risk of exposing the email in PeepSo profile URLs, eg profile/?example@example.com/photos/. This is why there is a new setting: clean up third party registrations. When enabled, PeepSo will step in during any registration process and make sure to clean up usernames that look like emails. In this scenario, the username example@example.com would be automatically changed to “example” and in case it’s taken, a number will be added until a free username is found (eg example3). This setting is not retroactive, so it will not touch the old accounts – only new ones.

On top of that, the admin can also allow username changes – just to make sure everyone has a profile URL they like.

Other improvements

The admin can now define an activation redirect in addition to the log-in and log-out redirects. We are also not displaying the “resend activation” link until the user actually needs it (i.e. tries to log in without confirming their e-mail address).

We fixed a bug where under some circumstances two activation codes would be resent if user requested it and/or sometimes the link would be wrong or expired.

Both “forgot password” and “resend activation” forms are now also secured by ReCaptcha.

Everything else

Users can now delete their GDPR export in order to request a new one. Old exports are automatically deleted after a week in order to free up disk space. We are also shipping some minor improvements and fixes. You can see the full changelog here.

Brought to you by PeepSo Team Matt Jaworski
I am a professional nerd with **over fifteen years of experience** in the field of Open Source web development. Before [PeepSo](https://PeepSo.com) I was a contractor and have helped build successful businesses around the world, including USA, UK, Germany, Indonesia, and Malaysia. A couple of years leading up to founding PeepSo, I was involved with JomSocial - a social networking extension for Joomla. Stepping up from the role of a contractor to a business owner, I became [PeepSo](https://PeepSo.com) founder and Chief Technology Officer. I strive to build beautiful, fast, and functional software that **empowers users to build their own digital tribes with full autonomy and freedom** often not available on mainstream social networking media. In 2022 I launched [EmeraldWP](https://EmeraldWP.com) which acts as an umbrella for my other projects such as ListoWP, Widget Shortcode Pro, and MomentsWP.

Reactions & comments

Join Our Community!
Join us to discuss PeepSo's features, connect with the development team and give suggestions.

Comments

@peepso_user_13663(username Mi)
Concretely, where can the admin change members username, while the user is not allowed ?
June 11, 2018 11:52 am
@peepso_user_13663(username Mi)
Thank you. Otherwise, what such plugin for changing username in Core Wordpress would you use ?
June 11, 2018 12:03 pm
@peepso_user_10(Matt Jaworski)
@peepso_user_13663(username Mi) https://wordpress.org/plugins/username-changer/
@peepso_user_5436(Jaswanth Ch)
Wow guys 🙂
You are rocking with these improvements. Do you guys recommend any settings for Chat to make it work faster,
We are on a VPS which never touches 5% of CPU usage, and we would change [ chat settings if we see it is slowing the website ] once we see more people on the platform.
I know we could tinker a bit and test for ourselves, but I would like to hear from the makers of all awesomeness 😉
@peepso_user_7(Eric Tracz)
@peepso_user_5436(Jaswanth) well the rule of thumb is, the less ajax calls the less strain on the server. Each community is different so tinkering would be the way to go.

I wish it were as easy as just picking the best settings by us and boom! Done! But, unfortunately, that's not how the world works, so god... I mean @peepso_user_10(Matt) and the team, gage us all the config settings 😉