What Am I Working On?

Feels like a good time to let everyone know my current active project and what to upcoming releases to expect. Currently CB Activity is the active project. This means that's the project being focused on outside of bug fixes since we will of course interrupt any active project to fix bugs. In addition to this Joomla 4 compatibility testing and fixing is still being done as issues are discovered. We've addressed the majority of Joomla 4 issues already in latest build release of CB. More details about CB Activity development below.

CB Activity 6.0.0 will be a significant rewrite. It will only migrate from CB Activity 5.0.0 so please be sure your install is up to date. CB Activity is undergoing massive performance improvements and structure changes to move it towards scaleability. CB Activity 6.0.0 has been performance tested against 5 MILLION unique activity entries and clocks in at a blazing fast 2ms (milliseconds!). This means you'll be able to put your trust into CB Activity to deliver high performance activity streams looong into the future for your site!

All the database queries have been touched.  All costly _users and _comprofiler table joins have been removed. This means posts belonging to deleted user, banned users, or blocked users are allowed. By default deleted user posts will also be deleted, banned users posts will stop linking to their profile, and blocked users posts will become unpublished. This significantly helps optimize the query away from doing these costly joins. Next all ordering has been changed to no longer be date based. This means all posts will display in the order they were created. So you may notice some posts out of order, but that's normal. This leads us into cursor based pagination. Currently CB Activity is using offset pagination. This basically fails after 30+ pages with a database of 1 million activity. This is due to how the database has to go through previous pages to reach the desired page and gets slower with each page. The cursor based pagination completely eliminates this. That means whether page 1 or page 100 you get the same performance and makes infinite scroll actually pleasant to use.

Global posts have been removed. These were always out of context and were used as a strange means of making site wide announcements that showed on every stream out of context. If you need global posts I suggest instead making a custom stream for those global posts (e.g. set its asset to "global") then add that streams asset to any stream you want those global posts shown on.

Pinned posts have been removed. This pulled a post out of its database order and pushed it to the top. This is awful on the query optimization and constantly caused expensive filesorts. There are no plans for an alternative or workaround for pinned post removal. It's officially a deprecated and removed feature.

First page paging limit has been removed. This allowed you supply a different limit for the first page of a stream (e.g. first page shows 5 for first page then 10 for next page). This was removed due to the difficulty of detecting first page during cursor based paging and hurt query caching.

Stored streams are coming. A stored stream is a preconfigured stream object that can be reused. Currently streams are dynamically generated, stored in user session, and rebuilt on each page load. This is slow, prevents linking to activity, and prevents cross-stream rebuilding (e.g. a post from Stream A shown on Stream B will display based off Stream B parameters instead of Stream A parameters). This will bring significantly improved support for UNLIMITED streams.

Likes, Follows, and Notifications "streams" will be replaced with static APIs. It never made sense for likes/follows to be their own streams. These will be changed to a generic set of FAST APIs for liking/following things. Notifications never made sense to allow different notification streams. Notifications will be reduced down purely to be profile notifications (as they are by default) and remove support for making custom notification streams.

A LOT of new features are planned that would just turn this into an even longer wall of text so I highly recommend checking out our forge below to see what's coming.

https://forge.joomlapolis.com/projects/cb-activity/issues?query_id=85

There isn't a timeline for this at this time, but it's currently under development as we speak and on its way. The primary goal of this release is optimization more than anything, but some great new things will absolutely be coming!



krileon's Avatar
krileon replied the topic: #327299 3 days 8 hours ago
Like Types are a lot more customizable now. You can choose between several different methods for rendering the icon and several different methods for coloring the text. This will allow for robust configuration of like types. The old twimoji (twitter emoji) like types are also now replaced with unicode emoji.



Similar icon/color behavior will be extended to other usages that have icon selection as well.
krileon's Avatar
krileon replied the topic: #327267 4 days 8 hours ago
Ok, Likes display behavior has been drastically improved. Comment footer actions has been redone. Comment likes display has been redone. Comments can now detect if it's a reaction. A reaction is an emoji, sticker, or gif. When it detects it's a reaction it suppresses the background display and enlarges the text to 300%. This allows large emoji reactions. Check it out below!



The like buttons and links will also respond to the type of like you've performed. They also will change their color based off that. This means Like Types configuration has gotten a lot more robust to allow for configuring a types primary color which is used to adjust the text color.

You'll also notice the timestamp behavior for comments now uses a shorter display.

Also forgot to mention almost all the margin spacing between elements has been and is being removed. They are all being converted to flex or grid CSS styles. This allows the usage of the "gap" CSS rule to easily customize the spacing, direction, and order of elements. One example is comments direction in activity is reversed. The default order for comments to top down, but with 1 simple CSS rule it's reversed to fit activity discussion flow.
krileon's Avatar
krileon replied the topic: #327146 2 weeks 1 day ago
The new emoji selector is almost entirely complete. It comes with all 13.1 standardized unicode emoji. All are categorized for easy navigation. It includes local storage history of the most recent 5 emoji so you can quickly add your most favorite emoji to your posts. Below is a comparison of the old selector to the new.

OLD
NEW

The old emoji behavior with database stored emoji will be transformed into a new Sticker usage. The Sticker feature will allow you to create custom emoji, gifs, images, etc.. for users to quickly insert. So that great feature is not going away, but being improved further as well!
krileon's Avatar
krileon replied the topic: #326858 1 month 6 days ago
Just another progress update. Being 100% transparent I am likely months behind at this point. Development has stopped multiple times to fix issues in CB and other plugins. However progress is still being made. Below is a progress update of the redesigned activity display.



This is still subject to change and is absolutely not done yet, but you'll notice the new design becoming a bit more familiar.
krileon's Avatar
krileon replied the topic: #326656 1 month 3 weeks ago
Unfortunately I'm very far behind. Development was stopped for over a week to address bugs in other products. CB Redirect Bot for example needed a 100% rewrite to be J4 compatible as was causing fatal errors. CB Replacer Bot also needs to be rewritten and we've a few other serious migrations to handle for old Joomla repeatable fields into subforms.

With that said there has been some progress. The new Likes modal window is nearly 100% complete. It features filtering functionality, infinite scroll, and more. Below is a nice preview of what's to come.

krileon's Avatar
krileon replied the topic: #326448 2 months 1 week ago
Been awhile so feels like it's time for a update. The rewrite is going very well. So far performance has been improved 300% (seams insane, but true!). The performance improvements can be felt throughout CB Activity. Interactions are faster, load times are faster, less server resources are used and more. Likes simplification is almost complete which has made using Likes instant instead of having a much longer HTTP request delay.

Currently my plan is in 3 weeks to hopefully have CB Activity 6.0.0 Beta 1 ready. This time we'll be starting with a Beta release to guarantee feedback and make further improvements where needed. Note the 3 weeks is just a guesstimate. It could take more or less time and will post another update in 3 weeks to see where things stand. This is a SIGNIFICANT rewrite. It prepares CB Activity for becoming a standalone Joomla extension and modernizes its entire codebase so it is substantial and needs to be done right.

Facebook Twitter LinkedIn