AI Email Id

AI Email Id — independent reviews, comparisons, pricing and step-by-step guides on Aizhi.

  • Datasource

    Datasource

    A datasource or DataSource is a name given to the connection set up to a database from a server. The name is commonly used when creating a query to the database. The data source name (DSN) need not be the same as the filename for the database. For example, a database file named friends.mdb could be set up with a DSN of school. Then DSN school would be used to refer to the database when performing a query. == Sun's version of DataSource [1] == A factory for connections to the physical data source that this DataSource object represents. An alternative to the DriverManager facility, a DataSource object is the preferred means of getting a connection. An object that implements the DataSource interface will typically be registered with a naming service based on the Java Naming and Directory Interface (JNDI) API. The DataSource interface is implemented by a driver vendor. There are three types of implementations: Basic implementation — produces a standard Connection object Connection pooling implementation — produces a Connection object that will automatically participate in connection pooling. This implementation works with a middle-tier connection pooling manager. Distributed transaction implementation — produces a Connection object that may be used for distributed transactions and almost always participates in connection pooling. This implementation works with a middle-tier transaction manager and almost always with a connection pooling manager. A DataSource object has properties that can be modified when necessary. For example, if the data source is moved to a different server, the property for the server can be changed. The benefit is that because the data source's properties can be changed, any code accessing that data source does not need to be changed. A driver that is accessed via a DataSource object does not register itself with the DriverManager. Rather, a DataSource object is retrieved through a lookup operation and then used to create a Connection object. With a basic implementation, the connection obtained through a DataSource object is identical to a connection obtained through the DriverManager facility. == Sun's DataSource Overview [2] == A DataSource object is the representation of a data source in the Java programming language. In basic terms, a data source is a facility for storing data. It can be as sophisticated as a complex database for a large corporation or as simple as a file with rows and columns. A data source can reside on a remote server, or it can be on a local desktop machine. Applications access a data source using a connection, and a DataSource object can be thought of as a factory for connections to the particular data source that the DataSource instance represents. The DataSource interface provides two methods for establishing a connection with a data source. Using a DataSource object is the preferred alternative to using the DriverManager for establishing a connection to a data source. They are similar to the extent that the DriverManager class and DataSource interface both have methods for creating a connection, methods for getting and setting a timeout limit for making a connection, and methods for getting and setting a stream for logging. Their differences are more significant than their similarities, however. Unlike the DriverManager, a DataSource object has properties that identify and describe the data source it represents. Also, a DataSource object works with a Java Naming and Directory Interface (JNDI) naming service and can be created, deployed, and managed separately from the applications that use it. A driver vendor will provide a class that is a basic implementation of the DataSource interface as part of its Java Database Connectivity (JDBC) 2.0 or 3.0 driver product. What a system administrator does to register a DataSource object with a JNDI naming service and what an application does to get a connection to a data source using a DataSource object registered with a JNDI naming service are described later in this chapter. Being registered with a JNDI naming service gives a DataSource object two major advantages over the DriverManager. First, an application does not need to hardcode driver information, as it does with the DriverManager. A programmer can choose a logical name for the data source and register the logical name with a JNDI naming service. The application uses the logical name, and the JNDI naming service will supply the DataSource object associated with the logical name. The DataSource object can then be used to create a connection to the data source it represents. The second major advantage is that the DataSource facility allows developers to implement a DataSource class to take advantage of features like connection pooling and distributed transactions. Connection pooling can increase performance dramatically by reusing connections rather than creating a new physical connection each time a connection is requested. The ability to use distributed transactions enables an application to do the heavy duty database work of large enterprises. Although an application may use either the DriverManager or a DataSource object to get a connection, using a DataSource object offers significant advantages and is the recommended way to establish a connection. Since 1.4 Since Java EE 6 a JNDI-bound DataSource can alternatively be configured in a declarative way directly from within the application. This alternative is particularly useful for self-sufficient applications or for transparently using an embedded database. == Yahoo's version of DataSource [3] == A DataSource is an abstract representation of a live set of data that presents a common predictable API for other objects to interact with. The nature of your data, its quantity, its complexity, and the logic for returning query results all play a role in determining your type of DataSource. For small amounts of simple textual data, a JavaScript array is a good choice. If your data has a small footprint but requires a simple computational or transformational filter before being displayed, a JavaScript function may be the right approach. For very large datasets—for example, a robust relational database—or to access a third-party webservice you'll certainly need to leverage the power of a Script Node or XHR DataSource.

    Read more →
  • InteLex Past Masters

    InteLex Past Masters

    InteLex Past Masters is a collection of full-text web-based scholarly editions of classic works in the humanities. InteLex Corporation was founded in 1989 by its current chief executive officer, Mark Rooks, to produce electronic versions of the works of the great philosophers, based on existing scholarly editions. The company is located in Charlottesville, Virginia. Its databases are marketed to academic institutions, with pricing based on the individual collections purchased. Content is provided in XML and searchable image format and is accessed through the InteLex Corporation website. In addition to philosophy, subject coverage includes religious studies, English literature, women's writing, social science, and history of science. InteLex databases are found in institutions in over 65 countries around the world.

    Read more →
  • Mike Little

    Mike Little

    Mike Little (born 12 May 1962) is an English web developer and writer. He is the co-founder of the free and open source web publishing software WordPress. == Biography == Mike Little was born in Manchester, England in 1962 to a Nigerian father, who was a mathematics lecturer and musician, and an English mother who worked as a primary school teacher. Little was placed into foster care when he was four months of age, and was later adopted by the same family. He grew up on a council estate in Brinnington, Stockport, and was educated at Stockport School. In 2003, Little and Matt Mullenweg started working on a project in which they built on b2/cafelog and later named it WordPress, releasing the first version on 27 May 2003. Little states that, despite not being invited to join his co-founder's for-profit business Automattic, he and Mullenweg remain on good terms. He clarified: "I don’t want it to sound like he cheated me out of something or ripped me off in some way. He didn’t." In June 2013, Little was awarded the SAScon's "Outstanding Contribution to Digital" award for his part in co-founding and developing WordPress. Little has been described as "modest" and living in "virtual anonymity". He has one daughter. He identifies as a follower of Stoicism and a humanist, and in 2021, he became a patron of charity Humanists UK.

    Read more →
  • Librem

    Librem

    Librem is a line of computers manufactured by Purism, SPC featuring free (libre) software. The laptop line is designed to protect privacy and freedom by omitting non-free (proprietary) software in their operating system and kernel, avoiding the Intel Active Management Technology, and gradually freeing and securing firmware. Librem laptops feature hardware kill switches for the microphone, webcam, Bluetooth and Wi-Fi. == Models == === Laptops === ==== Librem 13, Librem 15 and Librem 14 ==== In 2014, Purism launched a crowdfunding campaign on Crowd Supply to fund the creation and production of the Librem 15 laptop, conceived as a modern alternative to existing open-source hardware laptops, all of which used older hardware. The 15 in the name refers to its 15-inch screen size. The campaign succeeded after extending the original campaign, and the laptops were shipped to backers. In a second revision of the laptop, hardware kill switches for the camera, microphone, Wi-Fi, and Bluetooth were added. After the successful launch of the Librem 15, Purism created another campaign on Crowd Supply for a 13-inch laptop named Librem 13, which also came with hardware kill switches similar to those on the Librem 15v2. The campaign was again successful and the laptops were shipped to customers. Purism announced in December 2016 that it would start shipping from inventory rather than building to order with the new batches of Librem 15 and 13. As of January 2023, Purism has one laptop model in production, the Librem 14. ==== Comparison of laptops ==== === Librem Mini === The Librem Mini is a small form factor desktop computer, which began shipping in June 2020. === Librem 5 === On August 24, 2017, Purism began a crowdfunding campaign for the Librem 5, a smartphone aimed to run 100% free software, which would "[focus] on security by design and privacy protection by default". Purism claimed that the phone would become "the world's first ever IP-native mobile handset, using end-to-end encrypted decentralized communication." Purism cooperated with KDE and GNOME in its development of Librem 5. Security features of the Librem 5 include separation of the CPU from the baseband processor, which, according to Linux Magazine, makes the Librem 5 unique in comparison to other mobile phones. The Librem 5 also features hardware kill switches for Wi-Fi and Bluetooth communication and the phone's camera, microphone, and baseband processor. The default operating system for the Librem 5 is Purism's PureOS, a Debian derivative. The operating system uses a new user interface named Phosh, based on Wayland, wlroots, GTK and GNOME middleware. It is planned that Phosh/Plasma Mobile, Ubuntu Touch, and postmarketOS can also be installed on the phone. The release of the Librem 5 has been postponed several times. In September 2018, Purism announced that the launch date of Librem 5 would be moved from January to April 2019, because of two hardware bugs and the holiday season in Europe and North America. The Librem 5's DevKits for software developers were shipped in December 2018. The launch date was later postponed to the third quarter because of the necessity of further CPU tests. On September 24, 2019, Purism announced that the first batch of Librem 5 phones had begun shipping. The finished version of the Librem 5, known as "Evergreen", was finally shipped on November 18, 2020. === Librem Server === The Librem server is a rack mounted server, released to the public in December 2019. === Librem Key === Announced on 20 September 2018, the Librem Key is a hardware USB security token with multiple features, including integration with a tamper-evident Heads BIOS, which ensures that the Librem laptop Basic Input/Output System (BIOS) was not maliciously altered since the last laptop launch. The Librem Key also features one-time password storage with 3x HMAC-based One-time Password algorithm (HOTP) (RFC 4226) and 15 x Time-based One-time Password algorithm (TOTP) (RFC 6238) and an integrated password manager (16 entries), 40 kbit/s true random number generator, and a tamper-resistant smart card. The key supports type A USB 2.0, has dimensions of 48 x 19 x 7 mm, and weighs 6 g. == Operating system == Initially planning to preload its Librem laptops with the Trisquel operating system, Purism eventually moved off the Trisquel platform to Debian for the 2.0 release of its PureOS Linux operating system. As an alternative to PureOS, Librem laptops are purchasable with Qubes OS preinstalled. In December 2017, the Free Software Foundation added PureOS to its list of endorsed GNU/Linux distributions. == BIOS == In 2015, Purism began research to port the Librem 13 to coreboot but the effort was initially stalled. By the end of the year, a coreboot developer completed an initial port of the Librem 13 and submitted it for review. In December 2016, hardware enablement developer Youness Alaoui joined Purism and was tasked to complete the coreboot port for the original Librem 13 and prepare a port for the second revision of the device. Since summer 2017, new Librem laptops are shipped with coreboot as their standard BIOS, and updates are available for all older models. Purism calls a collection of these six components, involved in the boot process, as PureBoot: Neutralized and disabled Intel Management Engine coreboot A Trusted Platform Module (TPM) chip Heads, which has tamper-evident features to detect if the BIOS or important boot files have been modified Librem Key, Purism's USB security token Multi-factor authentication that unlocks disk encryption using the Librem Key PureBoot protects the users from various attacks like theft, BIOS malware and kernel rootkits, vulnerabilities and malicious code in the Intel Management Engine, and interdiction.

    Read more →
  • Gemini Enterprise Agent Platform

    Gemini Enterprise Agent Platform

    Gemini Enterprise Agent Platform (formerly known as Vertex AI) is a managed machine learning (ML) and artificial intelligence (AI) platform developed by Google Cloud. It provides a unified environment for building, training, deploying, and scaling ML models and generative AI applications. The platform integrates tools for the full ML lifecycle, including data preparation, model training, evaluation, deployment, and monitoring, under a single API and user interface. Vertex AI was announced at Google I/O and released as a generally available product on May 18, 2021. At launch, Google described Vertex AI as unifying its AutoML offerings with its prior Cloud AI Platform capabilities, and as adding operational features intended to help teams move models from experimentation into production use. On April 22, 2026, Google announced Gemini Enterprise Agent Platform as the replacement evolution of Vertex AI. == History == Google Cloud announced the general availability of Vertex AI on May 18, 2021, at the Google I/O developer conference. The platform was designed to consolidate Google Cloud's previously separate ML offerings, including AutoML and the legacy AI Platform, into a single system. At launch, Google claimed that Vertex AI required roughly 80% fewer lines of code to train a model compared to competing platforms. In June 2023, Google made generative AI support in Vertex AI generally available, giving developers access to foundation models including PaLM 2, Imagen, and Codey through the platform's Model Garden and the newly launched Generative AI Studio. At the time of this launch, Model Garden included over 60 models from Google and its partners. In August 2023, at the Google Cloud Next conference, Google announced further updates to Vertex AI, including the addition of third-party models such as Claude 2 from Anthropic and Llama 2 from Meta to the Model Garden, as well as new tools called Vertex AI Extensions for connecting models to APIs for real-time data retrieval. At the same event, Vertex AI Search and Conversation were made generally available, providing enterprise search and chatbot capabilities powered by foundation models. In April 2024, at Google Cloud Next, the company introduced Vertex AI Agent Builder, a no-code tool for creating AI-powered conversational agents built on top of Gemini large language models. This brought together the existing Vertex AI Search and Conversation products with new developer tools for building generative AI experiences. == Features == === Model training === Vertex AI supports both AutoML, which enables code-free model training on tabular, image, text, or video data, and custom training, which gives users full control over the ML framework, training code, and hyperparameter tuning. The platform provides serverless training as well as dedicated training clusters with GPU and TPU accelerators. Vertex AI Vizier handles automatic hyperparameter tuning, and Vertex AI Experiments allows comparison and tracking of training runs. === Model Garden === The Vertex AI Model Garden is a curated catalog of over 200 enterprise-ready models, including Google's own foundation models (such as Gemini, Imagen, and Veo), third-party models (such as Anthropic's Claude and Mistral AI models), and popular open-source models (such as Llama and Gemma). Models are accessible as fully managed model-as-a-service APIs. === Pipelines (workflow orchestration) === Vertex AI Pipelines provides managed orchestration of ML workflows and supports pipelines built with the Kubeflow Pipelines SDK, among other options described in Google Cloud documentation. === Vertex AI Studio === Vertex AI Studio provides tools for prompt design, testing, and model management, allowing developers to prototype and build generative AI applications using natural language, code, images, or video. === Agent Builder and Agent Engine === Vertex AI Agent Builder is a suite of products for building, deploying, and governing AI agents in production environments. It supports development with the open-source Agent Development Kit (ADK) and other frameworks. Vertex AI Agent Engine provides the underlying infrastructure for deploying and scaling agents, with support for enterprise security features including HIPAA compliance, customer-managed encryption keys (CMEK), and VPC Service Controls. === Generative AI tooling and model access === Google markets Vertex AI as providing access to Google foundation models (including the Gemini family) and developer tools such as Vertex AI Studio, along with a model catalog that includes Google and selected open source models (marketed as "Model Garden"). Google has also offered products within Vertex AI aimed at building generative search and conversational applications, including offerings named "Vertex AI Search" and "Vertex AI Conversation" as reported in 2023 coverage of platform updates. === MLOps tools === The platform includes a range of MLOps capabilities: Vertex AI Pipelines for orchestrating and automating ML workflows as reusable pipelines. Vertex AI Feature Store for serving, sharing, and reusing ML features across projects. Vertex AI Model Registry for storing, versioning, and managing trained models. Vertex AI Model Monitoring for detecting training-serving skew and inference drift in deployed models. Vertex Explainable AI for interpreting model predictions. Vertex AI Workbench for managed JupyterLab notebook environments integrated with Google Cloud Storage and BigQuery. == Industry recognition == Google was named a Leader for the fifth consecutive year in the 2024 Gartner Magic Quadrant for Cloud AI Developer Services, a recognition that encompasses Vertex AI and its related offerings. Google was also recognized as a Leader in the 2024 Gartner Magic Quadrant for Data Science and Machine Learning Platforms and was named a Leader in the Forrester Wave for AI/ML Platforms, Q3 2024. In October 2025, Google was also named a Leader in the 2025 IDC (International Data Corporation) MarketScape for Worldwide GenAI Life-Cycle Foundation Model Software. == Pricing == Vertex AI uses a pay-as-you-go pricing model, with costs determined by the specific services consumed, including model training, prediction serving, and data storage. For generative AI tasks, pricing is based on a per-token model, with rates varying depending on the specific model used and whether tokens are input or output. Google offers a free tier for new users, which includes limited custom training hours and online prediction usage, along with an introductory US$300 in Google Cloud credits valid for 90 days. == Adoption == In the year following its 2021 launch, Google reported that usage of Vertex AI and BigQuery had driven 2.5 times more machine learning predictions compared to the prior year, and that active customers of Vertex AI Workbench had grown 25-fold over a six-month period. Early enterprise adopters included Ford, Wayfair, and Seagate, among others. Wayfair reported that it was able to run large model training jobs 5 to 10 times faster using the platform.

    Read more →
  • Electronic game

    Electronic game

    An electronic game is a game that uses electronics to create an interactive system with which a player can play. Video games are the most common form today, and for this reason the two terms are often used interchangeably. There are other common forms of electronic games, including handheld electronic games, standalone arcade game systems (e.g. pinball, slot machines), and exclusively non-visual products (e.g. audio games). == Arcade games == === Arcade video games === Electronic video arcade games make extensive use of solid state electronics and integrated circuits. In the past coin-operated arcade video games generally used custom per-game hardware often with multiple CPUs, highly specialized sound and graphics chips and/or boards, and the latest in computer graphics display technology. Recent arcade game hardware is often based on modified video game console hardware or high end pc components. Arcade games may feature specialized ambiance or control accessories, including fully enclosed dynamic cabinets with force feedback controls, dedicated lightguns, rear-projection displays, reproductions of car or plane cockpits and even motorcycle or horse-shaped controllers, or even highly dedicated controllers such as dancing mats and fishing rods. These accessories are usually what set modern arcade games apart from PC or console games, and they provide an experience that some gamers consider more immersive and realistic. Examples of arcade video games include: Galaxy Game (1971) Pong (1972) Space Invaders (1978) Galaxian (1979) Pac-Man (1980) Battlezone (1980) Donkey Kong (1981) Street Fighter II (1991) Mortal Kombat (1992) Fatal Fury (1992) Killer Instinct (1994) King of Fighters (1994–2005) Time Crisis (1995) Dance Dance Revolution (1998) DrumMania (1999) House of the Dead (1998) === Pinball and pachinko machines === Since the introduction of electromechanics to the pinball machine in 1933's Contact, pinball has become increasingly dependent on electronics as a means to keep score on the backglass and to provide quick impulses on the playfield (as with bumpers and flippers) for exciting gameplay. Unlike games with electronic visual displays, pinball has retained a physical display that is viewed on a table through glass. Similar games such as pachinko have also become increasingly dependent on electronics in modern times. Examples of pinball games include: The Addams Family (1991) Indiana Jones: The Pinball Adventure (1993) Star Trek: The Next Generation (1993) List of pinball machines === Redemption games and merchandisers === Redemption games such as Skee-Ball have been around since the days of the carnival game - well earlier than the development of the electronic game, however with modern advances many of these games have been re-worked to employ electronic scoring and other game mechanics. The use of electronic scoring mechanisms has allowed carnival or arcade attendants to take a more passive role, simply exchanging prizes for electronically dispensed coupons and occasionally emptying out the coin boxes or banknote acceptors of the more popular games. Merchandisers such as the Claw Crane are more recent electronic games in which the player must accomplish a seemingly simple task (e.g. remotely controlling a mechanical arm) with sufficient ability to earn a reward. Examples of redemption games include: Whac-A-Mole (1976) Skee-Ball - modern electric versions Examples of merchandisers include: Claw crane (1980) === Slot machines === The slot machine is a casino gambling machine with three or more reels which spin when a button is pushed. Though slot machines were originally operated mechanically by a lever on the side of the machine (the one arm) instead of an electronic button on the front panel as used on today's models, many modern machines still have a "legacy lever" in addition to the button on the front. Slot machines include a currency detector that validates the coin or money inserted to play. The machine pays off based on patterns of symbols visible on the front of the machine when it stops. Modern computer technology has resulted in many variations on the slot machine concept. == Audio games == An audio game is a game played on an electronic device such as—but not limited to—a personal computer. It is similar to a video game save that the only feedback device is audible rather than visual. Audio games originally started out as 'blind accessible'-games, but recent interest in audio games has come from sound artists, game accessibility researchers, mobile game developers, and mainstream video gamers. Most audio games run on a computer platform, although there are a few audio games for handhelds and video game consoles. Audio games feature the same variety of genres as video games, such as adventure games, racing games, etc. Examples of audio games include: Real Sound: Kaze no Regret (1997) Chillingham (2004) BBBeat (2005) === Tabletop games === A tabletop audio game is an audio game that is designed to be played on a table rather than a handheld game. Examples of tabletop audio games include: Brain Shift (1998) Who Wants to be a Millionaire? (2000) Electronic Battleship (1977) (Milton Bradley) Electronic battleship is a portable game with the objective of marking all enemy ships. When an enemy ship is marked, an electronic battleship makes an explosion sound. Milton Bradley created the Electronic battleship game in 1977 and was later acquired by Hasbro in 1984. Modern day electronic battleship features an interactive missile launching platform and advanced mode that features custom special attack pegs. Tabletop non-audio games include: Electronic Chess Boards (DGT) DGT is a line of electronic chess boards that are commonly used in FIDE chess tournaments and national tournaments such as USCF. Electronic Chess boards can be used to broadcast games live. == Electronic handhelds == The earliest form of dedicated console, handheld electronic games are characterized by their size and portability. Used to play interactive games, handheld electronic games are often miniaturized versions of video games. The controls, display and speakers are all part of a single unit, and rather than a general-purpose screen made up of a grid of small pixels, they usually have custom displays designed to play one game. This simplicity means they can be made as small as a digital watch, which they sometimes are. The visual output of these games can range from a few small light bulbs or LED lights to calculator-like alphanumerical screens; later these were mostly displaced by liquid crystal and Vacuum fluorescent display screens with detailed images and in the case of VFD games, color. Handhelds were at their most popular from the late 1970s into the early 1990s. They are both the predecessors to and inexpensive alternatives to the handheld game console. Examples of handheld electronic games include: Mattel Auto Race (1976) Simon (1978) Merlin (1978) Game & Watch (1980) MB Omni (1980) Bandai LCD Solarpower (1982) Entex Adventure Vision (1982) Lights Out (1995) == Home video games == A video game is a game that involves interaction with a user interface to generate visual feedback on a video device. The word video in video game traditionally referred to a raster display device. However, with the popular use of the term "video game", it now implies any type of display device. Term "digital game" has been offered by some in academia as an alternative term. === Computer games === A personal computer video game (also known as a computer game or simply PC game) is a video game played on a personal computer. This is opposed to video game consoles or arcade machines, which are not considered personal computers. Computer games became a form of video games, and since the earliest days of the medium, visual displays such as the cathode-ray tube have been used to relay game information. === Console games === A console game is a form of interactive multimedia used for entertainment. The game consists of manipulable images (and usually sounds) generated by a video game console, and displayed on a television or similar audio-video system. The game itself is usually controlled and manipulated using a handheld device connected to the console called a controller. The controller generally contains a number of buttons and directional controls (such as analog joysticks) each of which has been assigned a purpose for interacting with and controlling the images on the screen. The display, speakers, console, and controls of a console can also be incorporated into one small object known as a handheld game console. Console games are most frequently differentiated between by their compatibility with consoles belonging in the following categories: Traditional console, also called "home console" - A multi-game system that uses the screen of a television to produce graphics. Handheld game console - A multi-game system the screen and controls of which are compacted into a singl

    Read more →
  • 1tik

    1tik

    1tik, pronounced Antik (Arabic: أنتيك; lit. "Everything is going well") is a fully Algerian instant messaging, social media and mobile payment app. designed, developed and built locally by the Algerian start-up, INTAJ Digital, with backing from the state-owned company ATM Mobilis (who's the company's main sponsor). It is described as Algeria's first super-app that is entirely designed and built by local developers. == Etymology == The name "1tik" (Arabic: أنتيك) is drawn from the popular Algerian vernacular (Antik), the neologism, which appeared several years ago, means "everything is going well" or "it's all good". == History == 1tik was officially launched and announced the 20th December 2025 by INTAJ Digital's founder Youcef Toulaib and a team of 50 employees, making it the first ever Algerian instant messaging, social media and mobile payment app, rivaling with the growing influence of Yassir in Algeria. it grew in popularity after the presidency of Algeria and several other state-owned companies, medias, and ministries opened official accounts on the app.

    Read more →
  • Virtual DOM

    Virtual DOM

    A virtual DOM is a lightweight JavaScript representation of the Document Object Model (DOM) used in declarative web frameworks such as React, Vue.js, and Elm. Since generating a virtual DOM is relatively fast, any given framework is free to rerender the virtual DOM as many times as needed relatively cheaply. The framework can then find the differences between the previous virtual DOM and the current one (diffing), and only makes the necessary changes to the actual DOM (reconciliation). While technically slower than using just vanilla JavaScript, the pattern makes it much easier to write websites with a lot of dynamic content, since markup is directly coupled with state. Similar techniques include Ember.js' Glimmer and Angular's incremental DOM. == History == The JavaScript DOM API has historically been inconsistent across browsers, clunky to use, and difficult to scale for large projects. While libraries like jQuery aimed to improve the overall consistency and ergonomics of interacting with HTML, it too was prone to repetitive code that didn't describe the nature of the changes being made well and decoupled logic from markup. The release of AngularJS in 2010 provided a major paradigm shift in the interaction between JavaScript and HTML with the idea of dirty checking. Instead of imperatively declaring and destroying event listeners and modifying individual DOM nodes, changes in variables were tracked and sections of the DOM were invalidated and rerendered when a variable in their scope changed. This digest cycle provided a framework to write more declarative code that coupled logic and markup in a more logical way. While AngularJS aimed to provide a more declarative experience, it still required data to be explicitly bound to and watched by the DOM, and performance concerns were cited over the expensive process of dirty checking hundreds of variables. To alleviate these issues, React was the first major library to adopt a virtual DOM in 2013, which removed both the performance bottlenecks (since diffing and reconciling the DOM was relatively cheap) and the difficulty of binding data (since components were effectively just objects). Other benefits of a virtual DOM included improved security since XSS was effectively impossible and better extensibility since a component's state was entirely encapsulated. Its release also came with the advent of JSX, which further coupled HTML and JavaScript with an XML-like syntax extension. Following React's success, many other web frameworks copied the general idea of an ideal DOM representation in memory, such as Vue.js in 2014, which used a template compiler instead of JSX and had fine-grained reactivity built as part of the framework. In recent times, the virtual DOM has been criticized for being slow due to the additional time required for diffing and reconciling DOM nodes. This has led to the development of frameworks without a virtual DOM, such as Svelte, and frameworks that edit the DOM in-place such as Angular 2. == Implementations == === React === React pioneered the use of a virtual DOM to make components declaratively. Virtual DOM nodes are constructed using the createElement() function, but are often transpiled from JSX to make writing components more ergonomic. In class-based React, virtual DOM nodes are returned from the render() function, while in functional hook-based components, the return value of the function itself serves as the page markup. === Vue.js === Vue.js uses a virtual DOM to handle state changes, but is usually not directly interacted with; instead, a compiler is used to transform HTML templates into virtual DOM nodes as an implementation detail. While Vue supports writing JSX and custom render functions, it's more typical to use the template compiler since a build step isn't required that way. === Svelte === Svelte does not have a virtual DOM, with its creator Rich Harris calling the virtual DOM "pure overhead". Instead of diffing and reconciling DOM nodes at runtime, Svelte uses compile-time reactivity to analyze markup and generate JavaScript code that directly manipulates the DOM, drastically increasing performance.

    Read more →
  • Database application

    Database application

    A database application is a computer program whose primary purpose is retrieving information from a computerized database. From here, information can be inserted, modified or deleted which is subsequently conveyed back into the database. Early examples of database applications were accounting systems and airline reservations systems, such as SABRE, developed starting in 1957. A characteristic of modern database applications is that they facilitate simultaneous updates and queries from multiple users. Systems in the 1970s might have accomplished this by having each user in front of a 3270 terminal to a mainframe computer. By the mid-1980s it was becoming more common to give each user a personal computer and have a program running on that PC that is connected to a database server. Information would be pulled from the database, transmitted over a network, and then arranged, graphed, or otherwise formatted by the program running on the PC. Starting in the mid-1990s it became more common to build database applications with a Web interface. Rather than develop custom software to run on a user's PC, the user would use the same Web browser program for every application. A database application with a Web interface had the advantage that it could be used on devices of different sizes, with different hardware, and with different operating systems. Examples of early database applications with Web interfaces include amazon.com, which used the Oracle relational database management system, the photo.net online community, whose implementation on top of Oracle was described in the book Database-Backed Web Sites (Ziff-Davis Press; May 1997), and eBay, also running Oracle. Electronic medical records are referred to on emrexperts.com, in December 2010, as "a software database application". A 2005 O'Reilly book uses the term in its title: Database Applications and the Web. Some of the most complex database applications remain accounting systems, such as SAP, which may contain thousands of tables in only a single module. Many of today's most widely used computer systems are database applications, for example, Facebook, which was built on top of MySQL. The etymology of the phrase "database application" comes from the practice of dividing computer software into systems programs, such as the operating system, compilers, the file system, and tools such as the database management system, and application programs, such as a payroll check processor. On a standard PC running Microsoft Windows, for example, the Windows operating system contains all of the systems programs while games, word processors, spreadsheet programs, photo editing programs, etc. would be application programs. As "application" is short for "application program", "database application" is short for "database application program". Not every program that uses a database would typically be considered a "database application". For example, many physics experiments, e.g., the Large Hadron Collider, generate massive data sets that programs subsequently analyze. The data sets constitute a "database", though they are not typically managed with a standard relational database management system. The computer programs that analyze the data are primarily developed to answer hypotheses, not to put information back into the database and therefore the overall program would not be called a "database application". == Examples of database applications == Amazon Student Data CNN eBay Facebook Fandango Filemaker (Mac OS) LibreOffice Base Microsoft Access Oracle relational database SAP (Systems, Applications & Products in Data Processing) Ticketmaster Wikipedia Yelp YouTube Google MySQL

    Read more →
  • Blue check

    Blue check

    A blue check is used on social media platforms, notably X (formerly known as Twitter), to indicate the authenticity of an account. Since November 2022, Twitter users whose accounts are at least 90 days old and have a verified phone number receive verification upon subscribing to X Premium or Verified Organizations; this status persists as long as the subscription remains active. When introduced in June 2009, the system provided the site's readers with a means to distinguish genuine notable account holders, such as celebrities and organizations, from impostors or parodies. Until November 2022, a blue checkmark displayed against an account name indicated that Twitter had taken steps to ensure that the account was actually owned by the person or organization whom it claimed to represent. The checkmark does not imply endorsement from Twitter, and does not mean that tweets from a verified account are necessarily accurate or truthful in any way. People with verified accounts on Twitter are often colloquially referred to as "blue checks" on social media and by reporters. In November 2022, the verification program was modified heavily by new owner Elon Musk, extending verification to any account with a verified phone number and an active subscription to an eligible X Premium (formerly Twitter Blue) plan. These changes faced criticism from users and the media, who believed that the changes would ease impersonation, and allow accounts spreading misleading information to feign credibility. In a related change, Twitter introduced additional gold and gray checkmarks, used by Verified Organizations and government-affiliated accounts, respectively. Twitter claims that the changes to verification are required to "reduce fraudulent accounts and bots". Twitter users who had been verified through the previous system were known as "legacy verified" accounts; legacy verification was deprecated in April 2023, and stripped from accounts who do not meet the new payment requirements. Musk later implied that he had been personally paying for the X Premium subscriptions of several notable celebrities. == Until November 2022 == In June 2009, after being criticized by Kanye West and sued by Tony La Russa over unauthorized accounts run by impersonators, the company launched their "Verified Accounts" program. Twitter stated that an account with a "blue tick" verification badge indicates "we've been in contact with the person or entity the account is representing and verified that it is approved". After the beta period, the company stated in their FAQ that it "proactively verifies accounts on an ongoing basis to make it easier for users to find who they're looking for" and that they "do not accept requests for verification from the general public". Originally, Twitter took on the responsibility of reaching out to celebrities and other notable people to confirm their identities in order to establish a verified account. In July 2016, Twitter announced a public application process to grant verified status to an account "if it is determined to be of public interest" and that verification "does not imply an endorsement". In 2016, the company began accepting requests for verification, but it was discontinued the same year. Twitter explained that the volume of requests for verified accounts had exceeded its ability to cope; rather, Twitter determines on its own whom to approach about verified accounts, limiting verification to accounts which are "authentic, notable, and active". In November 2020, Twitter announced a relaunch of its verification system in 2021. According to the new policy, Twitter verifies six different types of accounts; for three of them (companies, brands, and influential individuals like activists), the existence of a Wikipedia page will be one criterion for showing that the account has "Off Twitter Notability". === Controversy === On June 21, 2014, actor William Shatner raised an issue with several Engadget editorial staff and their verification status on Twitter. Besides the site's social media editor, John Colucci, Shatner also targeted several junior members of the staff for being "nobodies", unlike some of his actor colleagues who did not bear such distinction. Shatner claimed Colucci and the team were bullying him when giving a text interview to Mashable. Over a month later, Shatner continued to discuss the issue on his Tumblr page, to which Engadget replied by defending its team and discussing the controversy surrounding the social media verification. Twitter's practice and process for verifying accounts came under scrutiny again in 2017 after the company verified the account of white supremacist and far-right political activist, Jason Kessler. Many who criticized Twitter's decision to verify Kessler's account saw this as a political act on the company's behalf. In response, Twitter put its verification process on hold. The company tweeted, "Verification was meant to authenticate identity & voice but it is interpreted as an endorsement or an indicator of importance. We recognize that we have created this confusion and need to resolve it. We have paused all general verifications while we work and will report back soon." As of November 2017, Twitter continued to deny verification of Julian Assange's account following his requests. In November 2019, Dalit activists of India alleged that higher-caste people get Twitter verification easily and trended hashtags #CancelAllBlueTicksInIndia and #CasteistTwitter. Critics have said that the company's verification process is not transparent and causes digital marginalisation of already marginalised communities. Twitter India rejected the allegations, calling them "impartial" and working on a "case-by-case" policy. == Since November 2022 == On April 20, 2023, Twitter (known as X since July 2023) began removing verification status for users of public interest, causing a controversy among Twitter users. The website's system was altered, allowing any individual to receive verification for a monthly fee, an act which saw significant criticism. Following the acquisition of Twitter by Elon Musk on October 28, 2022, Musk told Twitter employees to introduce paid verification by November 7 through Twitter Blue. The Verge reported that the updated Blue subscription would cost $19.99 per month, and users would lose their verification status if they did not join within 90 days. Following backlash, Musk tweeted, in response to author Stephen King, a lowered $8 price on November 1, 2022. Twitter confirmed the new price of $7.99 per month on November 5, 2022. The new verification system began rollout on November 9, 2022, a day after the 2022 United States elections. The decision to delay its rollout was to address concerns about users potentially spreading misinformation about voting results by posing as news outlets and lawmakers. At the same time, Twitter introduced a secondary gray "Official" label on some high-profile accounts, but removed them hours after launch. Less than 48 hours later, Twitter reinstated the gray "Official" label, after multiple users were suspended for deliberately impersonating reporters and high-profile athletes like LeBron James. A viral tweet from an account purporting to be the pharmaceutical company Eli Lilly and Company caused the company's stock to fall after announcing "insulin is free now". As a result, Twitter disabled new Blue subscriptions on November 11, 2022. === Announcement === In October 2022, Casey Newton of Platformer reported that executives at Twitter began discussing the possibility of users being forced to pay for Twitter Blue in order to keep their verification status. Musk publicly announced that verification was "being revamped right now" after Newton's article; according to The Verge, Twitter planned to increase the price of Twitter Blue from US$4.99 per month to US$19.99 per month. Users would have had 90 days to subscribe or face losing their verification status, and employees were told to implement paid verification by November 9 or risk getting fired. Upon the news that Twitter Blue would cost US$19.99 per month, author Stephen King expressed displeasure towards Twitter and stated that he would leave. Musk, replying to King's tweet, proposed that the service should cost US$7.99 instead. In a separate tweet, Musk wrote that Twitter Blue subscribers would receive priority in replies, mentions, and search, fewer advertisements, and longer audio and video. Although paid verification was expected to be launched by November 7, the reintroduction of Twitter Blue was delayed until after the 2022 United States elections on November 9, according to a memo obtained by The New York Times. The announcement of paid verification resulted in several accounts facetiously impersonating Musk, such as those of comedians Kathy Griffin and Sarah Silverman, being suspended. In response, Musk announced that impersonators using Twitter Blue "will be permanently suspended". An "official

    Read more →
  • Conversion path

    Conversion path

    A conversion path is a description of the steps taken by a user of a website towards a desired end from the standpoint of the website operator or marketer. The typical conversion path begins with a user arriving at a landing page or a product page and proceeding through a series of page transitions until reaching a final state, either positive (e.g. purchase) or negative (e.g. abandoned session). In practice, the study of the dynamics of this process by the interested party has evolved into a sophisticated field, where various statistical methods are being applied to the optimization of outcomes. This includes real-time adjustment of presented content, in which a website operator tries to provide deliberate incentives to increase the odds of conversion based on various sources of information, including demographic traits, search history, and browsing events. In practice, this reflects in different content presented to users arriving from online advertising versus search engines, and similarly, different content is presented depending on their demographic segments. The fundamental metric describing this process in the aggregate is known as conversion rate.

    Read more →
  • Feature detection (web development)

    Feature detection (web development)

    Feature detection (also feature testing) is a technique used in web development for handling differences between runtime environments (typically web browsers or user agents), by programmatically testing for clues that the environment may or may not offer certain functionality. This information is then used to make the application adapt in some way to suit the environment: to make use of certain APIs, or tailor for a better user experience. Its proponents claim it is more reliable and future-proof than other techniques like user agent sniffing and browser-specific CSS hacks. == Techniques == A feature test can take many forms. It is essentially any snippet of code which gives some level of confidence that a required feature is indeed supported. However, in contrast to other techniques, feature detection usually focuses on performing actions which directly relate to the feature to be detected, rather than heuristics. === JavaScript === JavaScript feature detection can inspect the DOM and the local JavaScript environment to test whether browser features or APIs are supported. The simplest technique is to check for the existence of a relevant object or property. For example, the Geolocation API (used for accessing the device's knowledge of its geographical location, possibly obtained from a GPS navigation device) exposes a geolocation property on the navigator object in the DOM; the presence of which implies the Geolocation API is supported: if ('geolocation' in navigator) { // Geolocation API is supported } For a higher level of confidence, some feature tests will attempt to invoke the feature then look for clues that it behaved properly. For example, a test for support for cookies might attempt to set a value as a cookie and then verify it can be read back. === CSS === In CSS, the at-rule @supports introduced in 2015 allows to test if a given feature is supported. For instance the following code activates the declarations only if the user agent supports display: flex: == Undetectables == Some browser features are considered undetectable, because no clues are known to give sufficient confidence that a feature is supported. These are often because of limited information available to the JavaScript environment in the browser; generally features must be exposed via the DOM in some way in order to be detectable using JavaScript. When undetectables are encountered, it is common to turn to user agent sniffing as an alternative mechanism, or to employ defensive coding to minimise the impact if the feature turns out not to be supported. The Modernizr project maintains a record of known undetectables on their wiki.

    Read more →
  • CEITON

    CEITON

    CEITON is a web-based software system for facilitating and automating business processes such as planning, scheduling, and payroll using workflow technologies. The system is used by several media companies such as MDR, Yle, RAI and Red Bull Media House. In December 2018, the first CEITON User Group Meeting took place in Leipzig, Germany. == Architecture == The software runs on a server (on premises) or in the cloud and is scalable on parallel servers. Data security is warranted by role-based access control (RBAC). The software is used via web-browsers and not dependent on particular system software. == Structure and Features == CEITON combines the two classical approaches of production planning and control and workflow management. === Project Management === The scheduling system plans, manages, bills, and analyzes projects or tasks. It manages human and technical resources, material, and locations on a single GUI. The system uses a gantt chart to assign tasks to be done to available and eligible resources (i.e. staff), automatically or by drag-and-drop. The scheduling module includes material management, resource management/ human resource management, integration of freelancers, clients and suppliers, long-term budget planning, time-tracking, shift scheduling, quality management, delivery and logistics, document management, archive, analysis and controlling, business reporting, as well as all accounting and documentation processes. === Workflow === The workflow management system module coordinates business processes. Processes are defined once as a workflow and then repeatedly executed. Human resources are automatically assigned to steps (tasks) and integrated in workflow forms. Systems are integrated with an EAI/SOAP module, allowing data exchange with arbitrary external systems which are also involved in the business process. It also features a 3-D workflow overview in which the status of each project step can be determined by its color in the overview. === Process Management === For project and order processing management, business processes are designed as workflows, and coordinate communication automatically. Different user interfaces for staff, customers or suppliers can be created so each gets only relevant information. Different workflow forms are associated with different log-ins. The main application for the system is knowledge-based business processes, in which many people are involved and virtual results are produced, e.g. in research, or development of media products, such as TV and movies. Broadcasters and media companies such as MDR and Yle use CEITON to control their production processes for products and services and coordinate complex workflows with all kinds of resources. === Integrations === An integrated EAI module allows CEITON to integrate every external system in any business process without programming, using SOAP and similar technologies. Aspera and FileCatalyst were integrated for faster data transfer, yet complex ERP systems and numerous SAP modules have also been integrated, for example, to extract working times to payroll. === Mobile Working === Since Version 7, released in 2015, CEITON includes a time-tracking module allowing employees to enter their times from mobile devices such as tablets running Android, iPhones etc. == History == Ceiton Technologies (SME tech firm), the company developing CEITON, was founded in Leipzig, Germany in 2000, staffing solutions for the Bureau of Internal Revenue in Manila, Philippines, were implemented in 2000 together with the Deutsche Gesellschaft für Technische Zusammenarbeit of the German government. The first version (1.0) of the software was released in July 2001. The product was originally developed for German broadcasting companies. CEITON is named after the Japanese concept Seiton, one of the principles of Japanese workplace design methodology known as 5S. Since version 7, released in 2015, CEITON includes a time-tracking module allowing employees to enter their times from mobile devices such as tablets running Android, iPhones etc. In May 2005 CEITON won the IQ innovation award, sponsored by Siemens, in the category Excellent innovation in the IT-sector. Since 2007, CEITON has been present at the broadcast trade fairs NAB in Las Vegas and IBC in Amsterdam. In 2020, the company celebrated its 20th anniversary.

    Read more →
  • Watcher Entertainment

    Watcher Entertainment

    Watcher Entertainment is an American digital media and entertainment company, founded by Steven Lim, Shane Madej, and Ryan Bergara. The channel features a variety of comedy, paranormal, gaming, cooking, and educational shows – typically hosted by Madej and Bergara. The Watcher main channel has over 400 million views and 2.9 million subscribers. The company launched their own streaming service, WatcherTV, in 2024. == History == === Buzzfeed and the creation of Watcher Entertainment (2019) === Madej, Bergara, and Lim met while working at the digital media company BuzzFeed. Madej and Bergara were co-hosts of the popular true crime and paranormal series Buzzfeed Unsolved and Lim was the creator and co-host of the popular internet food series Worth It. Both shows generated a combined 2 billion views with 15 billion minutes watched, making them two of the most successful shows on Buzzfeed. In 2019, Madej, Bergara, and Lim quit Buzzfeed as full-time employees. They each stayed on as contracted employees to complete their respective shows. The trio credited their departure to their desire to found a company with more "creative opportunities" and the ability to have "actual ownership of the content" made. The company is majority-owned by the trio. They received funding from Neuro, a caffeinated energy gum company; Boba Guys, a bubble-milk tea chain; and Steve Chen, a YouTube co-founder. Watcher Entertainment gained its name from the infamous true crime case of The Westfield Watcher, which Madej and Bergara had covered in a Buzzfeed Unsolved episode. The trio began the company as co-CEOs; however, Bergara and Madej stepped down from the role in 2023 to focus on content creation. === Watcher Entertainment (2020–present) === Watcher Entertainment was launched in January 2020. The company debuted with seven series and a weekly interactive talk show: Homemade, Grocery Run, Weird Wonderful World, Puppet History, Tourist Trapped, Top 5 Beatdown, Spooky Small Talk, and Watcher Weekly. The channel reached over 300,000 subscribers within the first month of launching. They were signed by talent agency CAA in the same year. Puppet History, a comedy educational game show, quickly became a success and gained a significant audience. The show, which stars Madej as a fluffy blue puppet, has spanned seven seasons and led to the creation of a variety of merchandise. It has featured a variety of guest stars on every episode, including other former Buzzfeed employees. The company premiered its first horror series in July 2020 with Are You Scared?. Following the end of Buzzfeed Unsolved: Supernatural in 2021, the studio premiered its highly anticipated successor, Ghost Files, just months after. The show followed a similar format, with Bergara and Madej investigating reportedly haunted locations and attempting to find evidence of the paranormal. The show had significant success, with critics noting the improved production value and design from its predecessor. In 2023, Bergara and Madej went on a tour across the United States to premiere episodes of the second season. The series was renewed for a third season, which they premiered with a United Kingdom tour in 2024. That year, Watcher premiered a light-hearted successor to the graphic Buzzfeed Unsolved: True Crime, with Mystery Files. In this rendition, Bergara or Madej present unusual crime or supernatural mysteries with a collection of theoretical solutions. The show was met with great success by audiences and was quickly renewed for a second season. Watcher launched a second channel, 'WatcherPodcasts,' in October 2023. The channel features podcasts hosted by Lim, Bergara, and Madej. On April 19, 2024, the company launched its Watcher streaming service. Going forward, all of their content would be released exclusively on the service and the company planned to transition away from YouTube. This announcement was met with overwhelmingly negative reactions from their fans, with many calling for the company to reverse the decision. Additionally, their YouTube channel lost over 50,000 subscribers in the day following the announcement. On April 22, 2024, the company issued an apology and changed their decision, stating that episodes would instead be released on the streaming service a month before their premiere on YouTube. In May 2025, the channel 'Andrew, Steven, and Adam' was launched as a subsidiary of Watcher with the release of the second season of Travel Season. Travel Season is a spiritual successor to Worth It with the same cast of Lim, Andrew Ilnyckyj, and Adam Bianchi. The channel focuses on food reviews and the behind of the scenes of making it. The main channel is now set to be focused primarily on horror, creepy, and paranormal content. == Channels and shows == === Watcher === ==== Current shows ==== Puppet History (2020–present) A whimsical puppet host walks through history's wildest tales as two guests compete for the title of history wizard. Making Watcher (2020–present) What happens when 3 creators with no business experience decide to make their own company? A multi-series documentary on the journey of creating Watcher Entertainment. Weird Wonderful World (2020–present) Curious pals Madej and Bergara explore lesser-known destinations and the fascinating subcultures within them. Too Many Spirits (2020–present) Bergara and Madej read and rate audience-submitted ghost stories, while getting progressively more tipsy drinking cocktails prepared by Steven and Ricky Wang. Top 5 Beatdown (2020–present) Bergara and Madej compare asinine top 5 lists with a topical expert, inspiring surprisingly heated debate. Are You Scared? (2020–2022, 2024–present) Bergara reads the internet's scariest stories (some true, some false) to his pal Madej as they try to figure out if the story is experienced or imagined. Ghost Files (2021–present) Bergara and Madej investigate haunted locations to discover whether something paranormal really lies within. Mystery Files (2023–present) Bergara and Madej present unusual crime or supernatural mysteries with a collection of theoretical solutions. Survival Mode (2023–present) Bergara and Madej play a variety of horror games and give a spooky review. ==== Former shows ==== Grocery Run (2020) Madej interviews a celeb on their typical grocery run, before returning to their home to help prepare their signature dish. Homemade (2020) Lim examines popular food by comparing an elevated restaurant experience vs. a home-cooked experience. Spooky Small Talk (2020) Bergara interviews celebs in a haunted house, exposing their fears and if they can manage it, a little about themselves too. Social Distancing D&D (2020) Socially Distance along with the motley gang of Watchers as they embark on a great quest of Dungeons and Dragons! Tourist Trapped (2020) Begara and Madej battle for tour guide supremacy, highlighting the two sides of a city, tourist attractions and hidden gems. Watcher Weekly (2020–2021) Lim, Bergara, and Madej chat the week's content and answer questions, with the occasional musical guest! Dish Granted (2021–2022) A show where host and amateur home cook Lim attempts to create the most extravagant dishes for his friends. Pretty Historic (2022) Selorm and guests explore beauty and fashion trends from history, try them, and decide whether the trends should remain in the past or come to the present. Worth a Shot (2022–2023) Take a seat at a Master Mixologist's bar as pro Ricky Wang crafts the unbelievable into a digestible drink for his guests. === Watcher Podcast === ==== Current shows ==== Get Scared with Shane, Ryan, and Steven (2023–2025) Previously named 'Pod Watcher' Madej, Bergara, and Lim host a weekly podcasts, exploring a variety of topics and answering viewer questions. Guests occasionally appear to replace one host. Matt Real serves as the producer and a fourth voice for the podcast. For Your Amusement (2023–present) Bergara explores a variety of topics surrounding theme parks. === Andrew, Steven, and Adam === Travel Season (2024–present) Lim reunites with Worth It costars Andrew Ilnyckyj and Adam Bianchi in a new food review show. == Awards and nominations ==

    Read more →
  • Browser sniffing

    Browser sniffing

    Browser sniffing (also known as User agent sniffing and browser detection) is a set of techniques used in websites and web applications in order to determine the web browser a visitor is using, and to serve browser-appropriate content to the visitor. It is also used to detect mobile browsers and send them mobile-optimized websites. This practice is sometimes used to circumvent incompatibilities between browsers due to misinterpretation of HTML, Cascading Style Sheets (CSS), or the Document Object Model (DOM). While the World Wide Web Consortium maintains up-to-date central versions of some of the most important Web standards in the form of recommendations, in practice no software developer has designed a browser which adheres exactly to these standards; implementation of other standards and protocols, such as SVG and XMLHttpRequest, varies as well. As a result, different browsers display the same page differently, and so browser sniffing was developed to detect the web browser in order to help ensure consistent display of content. == Sniffer methods == === Client-side sniffing === Web pages can use programming languages such as JavaScript which are interpreted by the user agent, with results sent to the web server. For example: This code is run by the client computer, and the results are used by other code to make necessary adjustments on client-side. In this example, the client computer is asked to determine whether the browser can use a feature called ActiveX. Since this feature was proprietary to Microsoft, a positive result will indicate that the client may be running Microsoft's Internet Explorer. This is no longer a reliable indicator since Microsoft's open-source release of the ActiveX code, however, meaning that it can be used by any browser. === Standard Browser detection method === The web server communicates with the client using a communication protocol known as HTTP, or Hypertext Transfer Protocol, which specifies that the client send the server information about the browser being used to view the website in a User-Agent header. === Server-side sniffing === Extensive browser techniques enable persistent user tracking even if users try to stay anonymous. See device fingerprint for more details on browser fingerprinting. == Issues and standards == Many websites use browser sniffing to determine whether a visitor's browser is unable to use certain features (such as JavaScript, DHTML, ActiveX, or cascading style sheets), and display an error page if a certain browser is not used. However, it is virtually impossible to account for the tremendous variety of browsers available to users. Generally, a web designer using browser sniffing to determine what kind of page to present will test for the three or four most popular browsers, and provide content tailored to each of these. If a user is employing a user agent not tested for, there is no guarantee that a usable page will be served; thus, the user may be forced either to change browsers or to avoid the page. The World Wide Web Consortium, which sets standards for the construction of web pages, recommends that web sites be designed in accordance with its standards, and be arranged to "fail gracefully" when presented to a browser which cannot deal with a particular standard. Browser sniffing increases maintenance needed. Websites treating some browsers differently should provide an alternative version for other browsers. Use of user agent strings are error-prone because the developer must check for the appropriate part, such as "Gecko" instead of "Firefox". They must also ensure that future versions are supported. Furthermore, some browsers allow changing the user agent string, making the technique useless.

    Read more →