Whenever you log into Facebook, there are millions of posts the platform could show you. The key to its business model is the use of algorithms, driven by individual user data, to show you stuff you’re more likely to react to. Wikipedia defines an algorithm as “a set of rules that precisely defines a sequence of operations.” Algorithms appear value neutral, but the platforms’ algorithms are actually designed with a specific value in mind: maximum share of attention, which optimizes profits. They do this by sucking up and analyzing your data, using it to predict what will cause you to react most strongly, and then giving you more of that. Algorithms that maximize attention give an advantage to negative messages. People tend to react more to inputs that land low on the brainstem. Fear and anger produce a lot more engagement and sharing than joy. The result is that the algorithms favor sensational content over substance. Of course, this has always been true for media; hence the old news adage “If it bleeds, it leads.” But for mass media, this was constrained by one-size-fits-all content and by the limitations of delivery platforms. Not so for internet platforms on smartphones. They have created billions of individual channels, each of which can be pushed further into negativity and extremism without the risk of alienating other audience members. To the contrary: the platforms help people self-segregate into like-minded filter bubbles, reducing the risk of exposure to challenging ideas. — Roger McNamee from How to Fix Facebook Before It Fixes Us

## Logging in to the wiki with Facebook account

In installed the facebook extension so that users can use their Facebook account to login to the wiki. This requires some database tables to be set up first by running the update.php maintenance script.

• The Facebook SQL filenames needed to be prepending with the database table prefix before running the maintenance script.
• I had to make all the permissions on the wiki open so that the extension could create an account.
• See info about the extension configuration here.
• Sometimes during testing and deleting apps and users etc, a user becomes corrupted and can't login properly anymore. To fix this, delete everything in the Facebook database table with delete * from wiki_user_fbconnect;

## Posting wiki changes to the users wall

I started with wall posts with the facebook PHP SDK, which I got working ok, except for one difference which is that the siteURL is now set from the "website" section of "Select how your app integrates with Facebook" in the "edit App" screen.

Here's the post that my test script did:

I got that working with the following settings:

$wgDefaultUserOptions['rememberpassword'] = true; //$wgFbDisableLogin = true;
$wgFbUseRealName = true;$wgFbEnablePushToFacebook = true;
$wgEnableArticleCommentsExt = true;$wgFbPushEventClasses[] = 'FBPush_OnArticleComment';
include("$IP/extensions/Facebook/FacebookPushEvent.php"); include("$IP/extensions/Facebook/pushEvents/FBPush_OnArticleComment.php");

But there seems to be something wrong with the preferences and I had to comment out a condition in FacebookPushEvent.php on line 169:

if( !$wgUser->getOption( self::$PREF_TO_DISABLE_ALL ) ) {
//      if( $wgUser->getOption($prefName ) ) {
\$pushObj->init();
//      }
}

Further investigation shows that the problem is due to the up_properties field of the user_properties table is of type varbinary(32) so is truncated to 32 characters.

## Embedding the wiki in the Facebook Canvas

I've got the wiki to embed in the canvas using the Facebook application settings shown below, but for some reason many of the links such as RecentChanges or editing a page return a blank screen while others work ok. Since October 1st the embedded application must be an HTTPS connection, but a self-signed certificate is accepted so this is not a big problem.