Ask John: Caching, Linux vs. Windows, and Cookies

SocialEngine - Community Software

You all gave us great questions for our ASK JOHN feature.


Could you explain the benefits to using the various caching options in SocialEngine (File-Based, Memcache, APC, and Xcache)?
Data caching stores data that is used often but changed infrequently in memory so that it is readily available to the application. Bytecode caching (APC, Xcache) reduces processing power used by interpreting the PHP scripts by only interpreting the PHP file when it’s changed. Both will speed up PHP applications by quite a bit. Memcache caching (if available) will use memory (RAM) which is not as abundant as disk space, however it will be faster than file-based caching when performing read/write operations. If you’d like to learn more about caching, check out this in-depth documentation.

Linux vs. Windows

What is the preferred server Linux or Windows- which flavor of Linux to use from: RedHat and CentOS, and Ubuntu?

The code is optimized for what’s available in Linux, not Windows.
Any linux distro should work fine, but Ubuntu is the easiest to install dependencies. I recommend Ubuntu because it’s reasonably up-to-date and relatively easy to install missing dependencies. Matt has written an excellent blog about how to select a server for your community


Are cookies used by Social Engine in accordance with the current UK and EU Cookie Law?

Cookies used in SocialEngine should be compliant with these laws because everything that members signup for in SocialEngine requires them to give permission and access. Here are the following cookies that SocialEngine uses:

SocialEngine Core

PHPSESSID – used to track login state
en4_install – used to track login state for the package manager
en4_language – stores the language chosen
en4_locale – stores the locale chosen
en4_maint_code – stores the admin maintenance passcode
theme – stores the chosen site theme

SocialEngine Chat

n4_chat_room_last – stores the identifier of the last chat room the user joined, used to rejoin the same chat on return
en4_chat_whispers_active – stores a list of active conversation identifiers, used to persist maximize/minimize state of IM conversations across page loads
en4_chat_imstate – stores the last chosen active state (Available, Busy, Away) to preserve the setting across page loads
en4_whispers_unread_* – stores whether or not the user has read the latest message in a particular conversation, used to preserve state across page loads
Please note that this list only includes the cookies created by our software. This does not include cookies created by any third-party plugins or services.
That’s all for now! As mentioned before, we plan to run this feature every few weeks, so post any questions you have below, and we’ll select some to ask John. Don’t be shy about letting us know if this is too technical, not technical enough, or exactly what you’d hoped for!

Leave a Reply