First and foremost… Yaay! We are finally able to release PeepSo 1.7.4. Yes, it took a bit longer than we anticipated, but there were things we just couldn’t ignore. In the middle of the development process we started getting reports suggesting that the performance could be improved. We finished up the Group Categories, and got right onto it.
Performance Improvements
We built PeepSo to be as light and fast as possible. As we added more plugins though, it started to slow down. Customers told us they were feeling it so we set ourselves a goal to “Make PeepSo Fast Again!” Our developers have spent countless hours improving the performance in this release, and we’ve planned further improvements in the next release. It’s great now… and it’s just going to get even better. One of those improvements was to adjust the PeepSo Notifications Ajax to 30 second calls instead of 10 second calls to reduce the load on servers. More on the topic of performance below.
Cutting Queries By 75 Percent!
Each new PeepSoUser() class call generated massive amounts of database queries. A singleton approach has let us slash the number of queries performed. On some pages we’ve seen a drop from 400 to 100 queries on vanilla WP + PeepSo Core suite. Everything now loads much faster with less load on your database.
The Merge – MsgSo And ChatSo
Merging MsgSo and ChatSo plugins has also added to the performance improvements. Now all you need is the MsgSo plugin. To avoid any issues, MsgSo 1.7.4 will not allow you to enable ChatSo 1.7.3. It’s fine though… Chat is still there 🙂 Feel free to delete ChatSo 1.7.3.
Chat Smart Timing
Our improvements targeted logic that decays (or decreases if you will) the frequency of the chat ajax calls if there has been no recent activity. If chat isn’t used, it should send fewer calls to the server. So we instituted Smart Timing. After reaching the max delay time, requests are now sent every 20 seconds instead of every 5 seconds. This is how it works:
If a user receives a message immediately after logging in, the lag is 1 second. If a user receives a message after a minute of browsing, the initial lag is 20 seconds. The request then runs faster but decays as activity falls. The counter resets with activity on chat so it will always feel “real time.”
Smart Timing reduces the load significantly on the server. Hard coding the function in the code means that it doesn’t have to be ‘asked’ about one more setting. We can just run a simple call to check if there are new messages, ensuring maximum performance.
Three variables are used for the logic:
- Delay Min – How often (most frequent) the ajax calls can run.
- Delay Max – How rarely (least frequent) the ajax calls can run.
- Delay Multiplayer – How fast does the decay occurs.
- Handicap – an average request load time. Calls are sent after previous calls have been completed.
You can tweak the settings if you want to, but that’s done directly in the code so you’ll have to re-apply the tweak with every upgrade:
Open peepso-core-messages/peepsomessages.php
Around line 113, you’ll find:
- $delay_min = 1000;
- $delay_max = 20000;
- $delay_multiplier = 1.5;
These values are given in milliseconds: 1s = 1000ms.
All such tweaks are to be performed ONLY by advanced users who have coding experience.
Group Categories
Having a lot of groups can get a bit messy, so we’ve created Group Categories. You can create as many categories as you want, name them as you want, and order them as you want.
The options are simple. Categories are ON/OFF. Groups can be assigned to single categories or multiple categories. You can also hide empty categories on the frontend so that they don’t clutter the view if there’s nothing relevant to show.
To organize existing groups, just head to the group’s About page and edit the category. It’s simple. With categories enabled, the frontend will show the categories view. However, you can always go back to the groups listing to search and filter by categories.
The groups listing has also been given category information. Click ‘more’ on a groups listing and it shows in which category or categories the group is in.
Notifications in WPAdminBar
We’ve had a notification solution custom-built that puts the notifications right in the WordPress admin bar. You’ll see the notifications while you’re in the backend / admin of WordPress but to make sure that you don’t get taken away from an edit when you click a notification, all notifications in the backend will open in a new browser tab.
Other Improvements
Profile Completion
We’ve added Force Profile Completion information to the user profiles. Some users were confused that they couldn’t leave an incomplete profile when force profile completion was enabled. The message is now clear, and should help to avoid any confusion.
Translation Files
We have changed the .POT file names in PeepSo, TagSo, MoodSo and LocSo so please be informed that if you’re using translations you’ll need to rename the translation files to the following:
- PeepSo – peepso-core.po
- PeepSo – peepso-core.mo
- MoodSo – peepso-moods.po
- MoodSo – peepso-moods.mo
- TagSo – peepso-tags.po
- TagSo – peepso-tags.mo
- LocSo – peepso-location.po
- LocSo – peepso-location.mo
Our much valued and appreciated translators have been informed about the change.
New Default Values
We’ve made changes to default values on the activity stream. This applies only to new installations and won’t affect upgrades.
- Backend > PeepSo > Config > Activity > General: Number of Posts changed default from: 20 to 6
- Backend > PeepSo > Config > Activity > Comments: Number of Comments to display changed default from: 5 to 2
- Backend > PeepSo > Config > Activity > Comments: Show X more comments changed default from: 20 to 5
That will also improve performance so we recommend that you set these changes on your existing community as well.
Bug Fixes
This release killed lots of bugs that we either found ourselves or were brought to our attention by users. Bugs like ajax calls still executed for not logged in users or in every WordPress page even if there was no part of PeepSo, neither the plugin nor widgets, installed. Localization has also been improved in a few plugins and some strings that couldn’t be translated are now added to the .pot files so that you can translate those phrases as well. See the full changelog for all the other bugfixes and improvements.
A Big Thank You!
I’d like to personally thank all of our users who have helped us make PeepSo better. I’ve reached out on our community to a few people who were beta testing the Chat Smart Timing. Your input was and still is highly appreciated. Also, if you’ve reported problems and bugs, please by all means, keep in touch. Your feedback is really important to us and we’d love to keep killing those bugs, improving PeepSo and generally give you the ultimate community experience! Don’t be a stranger! 🙂
Upgrade PeepSo Now
Automatic updates let you move quickly to the latest version—and you can do it all in the backend of your site.
Remember to update plugins in this sequence: all PeepSo child plugins like MsgSo, GroupSo etc. Core PeepSo plugin should be updated last. Here’s documentation that explains how to upgrade. You can see the full changelog here. If you’d like to see what’s coming up next, check out our roadmap here.
Comments? Questions?
Please leave them below.