Website




Technical aspects

The website's primary color is blue as Zuckerberg is red–green colorblind, a realization that occurred after a test undertaken around 2007. Facebook is built in PHP, compiled with HipHop for PHP, a "source code transformer" built by Facebook engineers that turns PHP into C++. The deployment of HipHop reportedly reduced average CPU consumption on Facebook servers by 50%.

2012 architecture

Facebook is developed as one monolithic application. According to an interview in 2012 with Facebook build engineer Chuck Rossi, Facebook compiles into a 1.5 GB binary blob which is then distributed to the servers using a custom BitTorrent-based release system. Rossi stated that it takes about 15 minutes to build and 15 minutes to release to the servers. The build and release process has zero downtime. Changes to Facebook are rolled out daily.

Facebook used a combination platform based on HBase to store data across distributed machines. Using a tailing architecture, events are stored in log files, and the logs are tailed. The system rolls these events up and writes them to storage. The user interface then pulls the data out and displays it to users. Facebook handles requests as AJAX behavior. These requests are written to a log file using Scribe (developed by Facebook).

Data is read from these log files using Ptail, an internally built tool to aggregate data from multiple Scribe stores. It tails the log files and pulls data out. Ptail data are separated into three streams and sent to clusters in different data centers (Plugin impression, News feed impressions, Actions (plugin + news feed)). Puma is used to manage periods of high data flow (Input/Output or IO). Data is processed in batches to lessen the number of times needed to read and write under high demand periods (A hot article generates many impressions and news feed impressions that cause huge data skews). Batches are taken every 1.5 seconds, limited by memory used when creating a hash table.

Data is then output in PHP format. The backend is written in Java. Thrift is used as the messaging format so PHP programs can query Java services. Caching solutions display pages more quickly. The data is then sent to MapReduce servers where it is queried via Hive. This serves as a backup as the data can be recovered from Hive.

Content delivery network (CDN)

Facebook uses a CDN or 'edge network' under the domain fbcdn.net for serving static data. Until the mid 2010s, Facebook also relied on akamai as the CDN service provider.

Hack

On March 20, 2014, Facebook announced a new open-source programming language called Hack. Before public release, a large portion of Facebook was already running and "battle tested" using the new language.

History

On July 20, 2008, Facebook introduced "Facebook Beta", a significant redesign of its user interface on selected networks. The Mini-Feed and Wall were consolidated, profiles were separated into tabbed sections, and an effort was made to create a cleaner look. Facebook began migrating users to the new version in September 2008.

User profile/personal timeline

Each registered user on Facebook has a personal profile that shows their posts and content. The format of individual user pages was revamped in September 2011 and became known as "Timeline", a chronological feed of a user's stories, including status updates, photos, interactions with apps and events. The layout let users add a "cover photo". Users were given more privacy settings. In 2007, Facebook launched Facebook Pages for brands and celebrities to interact with their fanbase. 100,000 Pages launched in November. In June 2009, Facebook introduced a "Usernames" feature, allowing users to choose a unique nickname used in the URL for their personal profile, for easier sharing.

In February 2014, Facebook expanded the gender setting, adding a custom input field that allows users to choose from a wide range of gender identities. Users can also set which set of gender-specific pronoun should be used in reference to them throughout the site. In May 2014, Facebook introduced a feature to allow users to ask for information not disclosed by other users on their profiles. If a user does not provide key information, such as location, hometown, or relationship status, other users can use a new "ask" button to send a message asking about that item to the user in a single click.

News Feed

News Feed appears on every user's homepage and highlights information including profile changes, upcoming events and friends' birthdays. This enabled spammers and other users to manipulate these features by creating illegitimate events or posting fake birthdays to attract attention to their profile or cause. Initially, the News Feed caused dissatisfaction among Facebook users; some complained it was too cluttered and full of undesired information, others were concerned that it made it too easy for others to track individual activities (such as relationship status changes, events, and conversations with other users). Zuckerberg apologized for the site's failure to include appropriate privacy features. Users then gained control over what types of information are shared automatically with friends. Users are now able to prevent user-set categories of friends from seeing updates about certain types of activities, including profile changes, Wall posts and newly added friends.

On February 23, 2010, Facebook was granted a patent on certain aspects of its News Feed. The patent covers News Feeds in which links are provided so that one user can participate in the activity of another user. The sorting and display of stories in a user's News Feed is governed by the EdgeRank algorithm.

The Photos application allows users to upload albums and photos. Each album can contain 200 photos. Privacy settings apply to individual albums. Users can "tag", or label, friends in a photo. The friend receives a notification about the tag with a link to the photo. This photo tagging feature was developed by Aaron Sittig, now a Design Strategy Lead at Facebook, and former Facebook engineer Scott Marlette back in 2006 and was only granted a patent in 2011.

On June 7, 2012, Facebook launched its App Center to help users find games and other applications.

On May 13, 2015, Facebook in association with major news portals launched "Instant Articles" to provide news on the Facebook news feed without leaving the site.

In January 2017, Facebook launched Facebook Stories for iOS and Android in Ireland. The feature, following the format of Snapchat and Instagram stories, allows users to upload photos and videos that appear above friends' and followers' News Feeds and disappear after 24 hours.

On October 11, 2017, Facebook introduced the 3D Posts feature to allow for uploading interactive 3D assets. On January 11, 2018, Facebook announced that it would change News Feed to prioritize friends/family content and de-emphasize content from media companies.

Like button

The "like" button, stylized as a "thumbs up" icon, was first enabled on February 9, 2009, and enables users to easily interact with status updates, comments, photos and videos, links shared by friends, and advertisements. Once clicked by a user, the designated content is more likely to appear in friends' News Feeds. The button displays the number of other users who have liked the content. The like button was extended to comments in June 2010. In February 2016, Facebook expanded Like into "Reactions", choosing among five pre-defined emotions, including "Love", "Haha", "Wow", "Sad", or "Angry". In late April 2020, during the coronavirus pandemic, a new "Care" reaction was added.

Instant messaging

Facebook Messenger is an instant messaging service and software application. It began as Facebook Chat in 2008, was revamped in 2010 and eventually became a standalone mobile app in August 2011, while remaining part of the user page on browsers.

Complementing regular conversations, Messenger lets users make one-to-one and group voice and video calls. Its Android app has integrated support for SMS and "Chat Heads", which are round profile photo icons appearing on-screen regardless of what app is open, while both apps support multiple accounts, conversations with optional end-to-end encryption and "Instant Games". Some features, including sending money and requesting transportation, are limited to the United States. In 2017, Facebook added "Messenger Day", a feature that lets users share photos and videos in a story-format with all their friends with the content disappearing after 24 hours; Reactions, which lets users tap and hold a message to add a reaction through an emoji; and Mentions, which lets users in group conversations type @ to give a particular user a notification.

Businesses and users can interact through Messenger with features such as tracking purchases and receiving notifications, and interacting with customer service representatives. Third-party developers can integrate apps into Messenger, letting users enter an app while inside Messenger and optionally share details from the app into a chat. Developers can build chatbots into Messenger, for uses such as news publishers building bots to distribute news. The M virtual assistant (U.S.) scans chats for keywords and suggests relevant actions, such as its payments system for users mentioning money. Group chatbots appear in Messenger as "Chat Extensions". A "Discovery" tab allows finding bots, and enabling special, branded QR codes that, when scanned, take the user to a specific bot.

Following

Users can "Follow" content posted by other users without needing to friend them. Accounts can be "verified", confirming a user's identity.

Privacy controls

Facebook enables users to control access to individual posts and their profile through privacy settings. The user's name and profile picture (if applicable) are public. Facebook's revenue depends on targeted advertising, which involves analyzing user data (from the site and the broader internet) to inform the targeting. These facilities have changed repeatedly since the service's debut, amid a series of controversies covering everything from how well it secures user data, to what extent it allows users to control access, to the kinds of access given to third parties, including businesses, political campaigns and governments. These facilities vary according to country, as some nations require the company to make data available (and limit access to services), while the European Union's GDPR regulation mandates additional privacy protections.

Facebook Bug Bounty Program

On July 29, 2011, Facebook announced its Bug Bounty Program that paid security researchers a minimum of $500 for reporting security holes. The company promised not to pursue "white hat" hackers who identified such problems. This led researchers in many countries to participate, particularly in India and Russia.

Comments

Popular posts from this blog

Criticisms and controversies

History

Facebook