AI Face Swap App

AI Face Swap App — independent reviews, comparisons, pricing and step-by-step guides on Aizhi.

  • Ontology learning

    Ontology learning

    Ontology learning (ontology extraction, ontology augmentation generation, ontology generation, or ontology acquisition) is the automatic or semi-automatic creation of ontologies, including extracting the corresponding domain's terms and the relationships between the concepts that these terms represent from a corpus of natural language text, and encoding them with an ontology language for easy retrieval. As building ontologies manually is extremely labor-intensive and time-consuming, there is great motivation to automate the process. Typically, the process starts by extracting terms and concepts or noun phrases from plain text using linguistic processors such as part-of-speech tagging and phrase chunking. Then statistical or symbolic techniques are used to extract relation signatures, often based on pattern-based or definition-based hypernym extraction techniques. == Procedure == Ontology learning (OL) is used to (semi-)automatically extract whole ontologies from natural language text. The process is usually split into the following eight tasks, which are not all necessarily applied in every ontology learning system. === Domain terminology extraction === During the domain terminology extraction step, domain-specific terms are extracted, which are used in the following step (concept discovery) to derive concepts. Relevant terms can be determined, e.g., by calculation of the TF/IDF values or by application of the C-value / NC-value method. The resulting list of terms has to be filtered by a domain expert. In the subsequent step, similarly to coreference resolution in information extraction, the OL system determines synonyms, because they share the same meaning and therefore correspond to the same concept. The most common methods therefore are clustering and the application of statistical similarity measures. === Concept discovery === In the concept discovery step, terms are grouped to meaning bearing units, which correspond to an abstraction of the world and therefore to concepts. The grouped terms are these domain-specific terms and their synonyms, which were identified in the domain terminology extraction step. === Concept hierarchy derivation === In the concept hierarchy derivation step, the OL system tries to arrange the extracted concepts in a taxonomic structure. This is mostly achieved with unsupervised hierarchical clustering methods. Because the result of such methods is often noisy, a supervision step, e.g., user evaluation, is added. A further method for the derivation of a concept hierarchy exists in the usage of several patterns that should indicate a sub- or supersumption relationship. Patterns like “X, that is a Y” or “X is a Y” indicate that X is a subclass of Y. Such pattern can be analyzed efficiently, but they often occur too infrequently to extract enough sub- or supersumption relationships. Instead, bootstrapping methods are developed, which learn these patterns automatically and therefore ensure broader coverage. === Learning of non-taxonomic relations === In the learning of non-taxonomic relations step, relationships are extracted that do not express any sub- or supersumption. Such relationships are, e.g., works-for or located-in. There are two common approaches to solve this subtask. The first is based upon the extraction of anonymous associations, which are named appropriately in a second step. The second approach extracts verbs, which indicate a relationship between entities, represented by the surrounding words. The result of both approaches need to be evaluated by an ontologist to ensure accuracy. === Rule discovery === During rule discovery, axioms (formal description of concepts) are generated for the extracted concepts. This can be achieved, e.g., by analyzing the syntactic structure of a natural language definition and the application of transformation rules on the resulting dependency tree. The result of this process is a list of axioms, which, afterwards, is comprehended to a concept description. This output is then evaluated by an ontologist. === Ontology population === At this step, the ontology is augmented with instances of concepts and properties. For the augmentation with instances of concepts, methods based on the matching of lexico-syntactic patterns are used. Instances of properties are added through the application of bootstrapping methods, which collect relation tuples. === Concept hierarchy extension === In this step, the OL system tries to extend the taxonomic structure of an existing ontology with further concepts. This can be performed in a supervised manner with a trained classifier or in an unsupervised manner via the application of similarity measures. === Frame and Event detection === During frame/event detection, the OL system tries to extract complex relationships from text, e.g., who departed from where to what place and when. Approaches range from applying SVM with kernel methods to semantic role labeling (SRL) to deep semantic parsing techniques. == Tools == Dog4Dag (Dresden Ontology Generator for Directed Acyclic Graphs) is an ontology generation plugin for Protégé 4.1 and OBOEdit 2.1. It allows for term generation, sibling generation, definition generation, and relationship induction. Integrated into Protégé 4.1 and OBO-Edit 2.1, DOG4DAG allows ontology extension for all common ontology formats (e.g., OWL and OBO). Limited largely to EBI and Bio Portal lookup service extensions.

    Read more →
  • Problematic social media use

    Problematic social media use

    Excessive use of social media can lead to problems including impaired functioning and a reduction in overall wellbeing, for both users and those around them. Such usage is associated with a risk of mental health problems, sleep problems, academic struggles, and daytime fatigue. Psychological or behavioural dependence on social media platforms can result in significant negative functions in peoples daily lives. The risk of problems is also related to the type of platform of social media or online community being used. People of different ages and genders may be affected in different ways by problematic social media use. == Signs and symptoms == Signs of social media addiction or excessive use of social media include many behaviours similar to substance use disorders, including mood modification, salience, tolerance, stress withdrawal symptoms, psychological distress, anxiety and depression, conflict, and relapse, and low self esteem. People with problematic social media habits are at risk of being addicted and may require more time on social media as time passes. Frequent social media use may also be associated with self-reported symptoms of attention deficit hyperactivity disorder. Social anxiety (or fear of missing out) is another potential symptom. Social anxiety is defined as having intense anxiety or fear of being judged, negatively evaluated, or rejected in a social or performance situation. The fear of missing out can contribute to excessive usage due to frequent checking the media constantly throughout the day to check in and see what others are doing instead of doing other activities. Common signs include displacement, or replacing meaningful other activities with social media, and loneliness. == Causes and mechanisms == There are many theories for the mechanism or cause behind a person having problematic social media use. The transition from normal to problematic social media use occurs when a person relies on it to relieve stress, loneliness, depression, or provide continuous rewards. Cognitive-behavioral model – People increase their use of social media when they are in unfamiliar environments or awkward situations; Social skill model – People pull out their phones and use social media when they prefer virtual communication as opposed to face-to-face interactions because they lack self-presentation skills; Socio-cognitive model – This person uses social media because they love the feeling of people liking and commenting on their photos and tagging them in pictures. They are attracted to the positive outcomes they receive on social media. There are parallels to the gambling industry inherent to the design of various social media sites, with "'ludic loops' or repeated cycles of uncertainty, anticipation and feedback" potentially contributing to problematic social media use. Another factor directly facilitating the development of addiction to social media is the implicit attitude toward the IT artifact. Social media use may also stimulate the reward pathway in the brain. There is also a theory that social media addiction fulfills a basic evolutionary drives in the wake of mass urbanization worldwide. The basic psychological needs of "secure, predictable community life that evolved over millions of years" remain unchanged, leading some to find online communities to cope with the new individualized way of life in some modern societies. The "Evolutionary Mismatch" hypothesis holds that modern digital platforms amplify social competition and comparison in ways our ancestors never faced, possibly triggering maladaptive patterns such as anxiety, depression, or compulsive use. Similarly, some scholars compare social media to "junk food": The approach taken to develop social media platforms may contribute to problematic social media use. The ability to scroll and stream content endlessly and how app developers distort time by affecting the 'flow' of content when scrolling, potentially resulting in the Zeigarnik effect (the human brain will continue to pursue an unfinished task until a satisfying closure. Autoplay modes, the personalized nature of the content results in emotional attachment (the user values this above its actual value, which is referred to as the endowment effect), and the exposure effect (repeated exposure to a distinct stimulus by the user can condition the user into an enhanced or improved attitude toward it). The interactive nature of the platforms, including the ability to "like" content has also been linked. Even though social media can satisfy personal communication needs, those who use it at higher rates are shown to have higher levels of psychological distress. == Diagnosis == While there is no official diagnostic term or measurement, problematic social media use is conceptualized as a non-substance-related disorder, resulting in preoccupation and compulsion to engage excessively in social media platforms despite negative consequences. No diagnosis exists for problematic social media use in either the ICD-11 or DSM-5. Excessive use of an activity, like social media, does not directly equate with addiction. There are other factors that could lead to someone's social media addiction including personality traits and pre-existing tendencies. While the extent of social media use and addiction are positively correlated, it is erroneous to employ use (the degree to which one makes use of the site's features, the effort exerted during use sessions, access frequency, etc.) as a proxy for addiction. Indicators of a potential dependence on social media include: Mood swings: a person uses social media to regulate his or her mood, or as a means of escaping real world conflicts. Relevance: social media starts to dominate a person's thoughts at the expense of other activities. Salience: social media becomes the most important part of someone's life. Tolerance: a person increases their time spent on social media to experience previously associated feelings they had while using social media. Withdrawal: when a person can not access social media their sleeping or eating habits change or signs of depression or anxiety can become present. Conflicts in real life: when social media is used excessively, it can affect real-life relationships with family and friends. Relapse: the tendency for previously affected individuals to revert to previous patterns of excessive social media use. There have been several scales developed and validated that help to understand the issues regarding problematic social media use. There is not one single scale that is being used by all researchers. == Treatment == Screen time recommendations for children and families have been developed by the American Academy of Pediatrics. Possible therapeutic interventions published include: Self-help interventions, including application-specific timers; Cognitive behavioural therapy; and Organisational and schooling support. Medications have not been shown to be effective in randomized, controlled trials for the related conditions of Internet addiction disorder or gaming disorder. == Prevention == Prevention approaches include screen time monitoring apps and other tech-based approaches to improve efficiency and decrease screen time and tools to help with addiction to online platform products. Parents' methods for monitoring, regulating, and understanding their children's social media use are referred to as parental mediation. Parental mediation strategies include active, restrictive, and co-using methods. Active mediation involves direct parent-child conversations that are intended to educate children on social media norms and safety, as well as the variety and purposes of online content. Restrictive mediation entails the implementation of rules, expectations, and limitations regarding children's social media use and interactions. Co-use is when parents jointly use social media alongside their children, and is most effective when parents are actively participating (like asking questions, making inquisitive/supportive comments) versus being passive about it. Active mediation is the most common strategy used by parents, though the key to success for any mediation strategy is consistency/reliability. When parents reinforce rules inconsistently, have no mediation strategy, or use highly restrictive strategies for monitoring their children's social media use, there is an observable increase in children's aggressive behaviours. When parents openly express that they are supportive of their child's autonomy and provide clear, consistent rules for media use, problematic usage and aggression decreases. Knowing that consistent, autonomy-supportive mediation has more positive outcomes than inconsistent, controlling mediation, parents can consciously foster more direct, involved, and genuine dialogue with their children. This can help prevent or reduce problematic social media use in children and teenagers. == Outcomes == === Adolescents and teens === Increased social medi

    Read more →
  • Fingerprint scanner

    Fingerprint scanner

    Fingerprint scanners are a type of biometric security device that identify an individual by identifying the structure of their fingerprints. They are used in police stations, security industries, smartphones, and other mobile devices. == Fingerprints == People have patterns of friction ridges on their fingers, these patterns are called the fingerprints. Fingerprints are uniquely detailed, durable over an individual's lifetime, and difficult to alter. Due to the unique combinations, fingerprints have become an ideal means of identification. == Types of fingerprint scanners == There are four types of fingerprint scanners: Optical scanners take a visual image of the fingerprint using a digital camera. Capacitive or CMOS scanners use capacitors and thus electric current to form an image of the fingerprint. This type of scanner tends to excel in terms of precision. Ultrasonic fingerprint scanners use high frequency sound waves to penetrate the epidermal (outer) layer of the skin. Thermal scanners sense the temperature differences on the contact surface, in between fingerprint ridges and valleys. All fingerprint scanners are susceptible to spoofing through fingerprints replicated using photographs and 3D printing. == Construction forms == Each type of fingerprint sensor can take two basic forms: the stagnant and the moving fingerprint scanner. Stagnant: The scanning module is mounted statically, and the user is required to swipe their fingers across it. This is cheaper but also less reliable than the moving form. Imaging can be less than ideal if the finger is not dragged over the scanning area at constant speed. Moving: The scanning module is mounted on a movable surface, while the user's finger can remain static. Because this layout allows the scanning module to pass the fingerprint at a constant speed, this method is generally more reliable. == Form factors == === Peripherals === Add-on fingerprint readers for PCs initially appeared in the late 1990's in the form of PCMCIA modules. Microsoft released a model in its IntelliMouse line with an integrated fingerprint reader in 2005. === Integrated readers === Laptops with built-in readers emerged around the same time as peripheral readers with devices such as NECs MC/R730F. IBM produced laptops with integrated readers starting in 2004. Apple introduced fingerprint scanners to their devices under the name Touch ID in 2013. These were initially released on the iPhone 5S, with the technology remaining exclusive to iPhones until the release of the 2016 MacBook Pro. On both laptops and smartphones, the fingerprint sensor usually uses a USB or I2C interface internally.

    Read more →
  • Redshift (theory)

    Redshift (theory)

    Redshift is a techno-economic theory suggesting hypersegmentation of information technology markets based on whether individual computing needs are over or under-served by Moore's law, which predicts the doubling of computing transistors (and therefore roughly computing power) every two years. The theory, proposed and named by New Enterprise Associates partner and former Sun Microsystems CTO Greg Papadopoulos, categorized a series of high growth markets (redshifting) while predicting slower GDP-driven growth in traditional computing markets (blueshifting). Papadopoulos predicted the result will be a fundamental redesign of components comprising computing systems. == Hypergrowth market segments (redshifting) == According to the Redshift theory, applications "redshift" when they grow dramatically faster than Moore's Law allows, growing quickly in their absolute number of systems. In these markets, customers are running out of datacenter real-estate, power and cooling infrastructure. According to Dell Senior Vice President Brad Anderson, “Businesses requiring hyperscale computing environments – where infrastructure deployments are measured by up to millions of servers, storage and networking equipment – are changing the way they approach IT.” While various Redshift proponents offer minor alterations on the original presentation, “Redshifting” generally includes: === ΣBW (Sum-of-Bandwidth) === These are companies that drive heavy Internet traffic. This includes popular web-portals like Google, Yahoo, AOL and MSN. It also includes telecoms, multimedia, television over IP, online games like World of Warcraft and others. This segment has been enabled by widespread availability of high-bandwidth Internet connections to consumers through a DSL or cable modem. A simple way to understand this market is that for every byte of content served to a PC, mobile phone or other device over a network, there must exist computing systems to send it over the network. === High performance computing (HPC) === These are companies that do complex simulations that involve (for example) weather, stock markets or drug-design simulations. This is a generally elastic market because businesses frequently spend every "available" dollar budgeted for IT. A common anecdote claims that cutting the cost of computing by half causes customers in this segment to buy at least twice as much, because each marginal IT dollar spent contributes to business advantage. === prise (or "Star-prise") === These are companies that aggregate traditional computing applications and offer them as services, typically in the form of Software as a Service (SaaS). For example, companies that deploy CRM are over-served by Moore's Law, but companies that aggregate CRM functions and offer them as a service, such as Salesforce.com, grow faster than Moore's Law. === The eBay crisis === A prime example of redshift was a crisis at eBay. In 1999 eBay suffered a database crisis when a single Oracle Database running on the fastest Sun machine available (these tracking Moore's law in this period) was not enough to cope with eBay's growth. The solution was to massively parallelise their system architecture. == Traditional computing markets (blueshifting) == Redshift theory suggests that traditional computing markets, such as those serving enterprise resource planning or customer relationship management applications, have reached relative saturation in industrialized nations. Thereafter, proponents argued further market growth will closely follow gross domestic product growth, which typically remains under 10% for most countries annually. Given that Moore's Law continues to predict accurately the rate of computing transistor growth, which roughly translates into computing power doubling every two years, the Redshift theory suggests that traditional computing markets will ultimately contract as a percentage of computing expenditures over time. Functionally, this means “Blueshifting” customers can satisfy computing requirement growth by swapping in faster processors without increasing the absolute number of computing systems. == Consequences and industry commentary == Papadopoulos argued that while traditional computing markets remain the dominant source of revenue through the late 2000s, a shift to hypergrowth markets will inevitably occur. When that shift occurs, he argued computing (but not computers) will become a utility, and differentiation in the IT market will be based upon a company's ability to deliver computing at massive scale, efficiently and with predictable service levels, much like electricity at that time. If computing is to be delivered as a utility, Nicholas Carr suggested Papadopoulos' vision compares with Microsoft researcher Jim Hamilton, who both agree that computing is most efficiently generated in shipping containers. Industry analysts are also beginning to quantify Redshifting and Blueshifting markets. According to International Data Corporation vice president Matthew Eastwood, "IDC believes that the IT market is in a period of hyper segmentation... This a class of customers that is Moore's law driven and as price performance gains continue, IDC believes that these organizations will accelerate their consumption of IT infrastructure.” == History and nomenclature == Key portions of Papadopoulos' theory were first presented by Sun Microsystems CEO Jonathan Schwartz in late 2006. Papadopoulos later gave a full presentation on Redshift to Sun's annual Analyst Summit in February 2007. The term Redshift refers to what happens when electromagnetic radiation, usually visible light, moves away from an observer. Papadopoulos chose this term to reflect growth markets because redshift helped cosmologists explain the expansion of the universe. Papadopoulos originally depicted traditional IT markets as green to represent their revenue base, but later changed them to “blueshift,” which occurs when a light source moves toward an observer, similar to what would happen during a contraction of the universe.

    Read more →
  • Mobile cloud computing

    Mobile cloud computing

    Mobile Cloud Computing (MCC) is the combination of cloud computing and mobile computing to bring rich computational resources to mobile users, network operators, as well as cloud computing providers. The ultimate goal of MCC is to enable execution of rich mobile applications on a plethora of mobile devices, with a rich user experience. MCC provides business opportunities for mobile network operators as well as cloud providers. More comprehensively, MCC can be defined as "a rich mobile computing technology that leverages unified elastic resources of varied clouds and network technologies toward unrestricted functionality, storage, and mobility to serve a multitude of mobile devices anywhere, anytime through the channel of Ethernet or Internet regardless of heterogeneous environments and platforms based on the pay-as-you-use principle." == Architecture == MCC uses computational augmentation approaches (computations are executed remotely instead of on the device) by which resource-constraint mobile devices can utilize computational resources of varied cloud-based resources. In MCC, there are four types of cloud-based resources, namely distant immobile clouds, proximate immobile computing entities, proximate mobile computing entities, and hybrid (combination of the other three model). Giant clouds such as Amazon EC2 are in the distant immobile groups whereas cloudlet or surrogates are member of proximate immobile computing entities. Smartphones, tablets, handheld devices, and wearable computing devices are part of the third group of cloud-based resources which is proximate mobile computing entities. Vodafone, Orange and Verizon have started to offer cloud computing services for companies. == Challenges == In the MCC landscape, an amalgam of mobile computing, cloud computing, and communication networks (to augment smartphones) creates several complex challenges such as Mobile Computation Offloading, Seamless Connectivity, Long WAN Latency, Mobility Management, Context-Processing, Energy Constraint, Vendor/data Lock-in, Security and Privacy, Elasticity that hinder MCC success and adoption. === Open research issues === Although significant research and development in MCC is available in the literature, efforts in the following domains is still lacking: Architectural issues: A reference architecture for heterogeneous MCC environment is a crucial requirement for unleashing the power of mobile computing towards unrestricted ubiquitous computing. Energy-efficient transmission: MCC requires frequent transmissions between cloud platform and mobile devices, due to the stochastic nature of wireless networks, the transmission protocol should be carefully designed. Context-awareness issues: Context-aware and socially-aware computing are inseparable traits of contemporary handheld computers. To achieve the vision of mobile computing among heterogeneous converged networks and computing devices, designing resource-efficient environment-aware applications is an essential need. Live VM migration issues: Executing resource-intensive mobile application via Virtual Machine (VM) migration-based application offloading involves encapsulation of application in VM instance and migrating it to the cloud, which is a challenging task due to additional overhead of deploying and managing VM on mobile devices. Mobile communication congestion issues: Mobile data traffic is tremendously hiking by ever increasing mobile user demands for exploiting cloud resources which impact on mobile network operators and demand future efforts to enable smooth communication between mobile and cloud endpoints. Trust, security, and privacy issues: Trust is an essential factor for the success of the burgeoning MCC paradigm. It is because the data along with code/component/application/complete VM is offloaded to the cloud for execution. Moreover, just like software and mobile application piracy, the MCC application development models are also affected by the piracy issue. Pirax is known to be the first specialized framework for controlling application piracy in MCC requirements == MCC research groups and activities == Several academic and industrial research groups in MCC have been emerging since last few years. Some of the MCC research groups in academia with large number of researchers and publications include: MDC, Mobile and Distributed Computing research group is at Faculty of Computer and Information Science, King Saud University. MDC research group focuses on architectures, platforms, and protocols for mobile and distributed computing. The group has developed algorithms, tools, and technologies which offer energy efficient, fault tolerant, scalable, secure, and high performance computing on mobile devices. MobCC lab, Faculty of Computer Science and Information Technology, University Malaya. The lab was established in 2010 under the High Impact Research Grant, Ministry of Higher Education, Malaysia. It has 17 researchers and has track of 22 published articles in international conference and peer-reviewed CS journals. ICCLAB, Zürich University of Applied Sciences has a segment working on MCC. The InIT Cloud Computing Lab is a research lab within the Institute of Applied Information Technology (InIT) of Zürich University of Applied Sciences (ZHAW). It covers topic areas across the entire cloud computing technology stack. Mobile & Cloud Lab, Institute of Computer Science, University of Tartu. Mobile & Cloud Lab conducts research and teaching in the mobile computing and cloud computing domains. The research topics of the group include cloud computing, mobile application development, mobile cloud, mobile web services and migrating scientific computing and enterprise applications to the cloud. SmartLab, Data Management Systems Laboratory, Department of Computer Science, University of Cyprus. SmartLab is a first-of-a-kind open cloud of smartphones that enables a new line of systems-oriented mobile computing research. Mobile Cloud Networking: Mobile Cloud Networking (MCN) was an EU FP7 Large-scale Integrating Project (IP, 15m Euro) funded by the European Commission. The MCN project was launched in November 2012 for the period of 36 month. The project was coordinated by SAP Research and the ICCLab at the Zurich University of Applied Science. In total 19 partners from industry and academia established the first vision of Mobile Cloud Computing. The project was primarily motivated by an ongoing transformation that drives the convergence between the Mobile Communications and Cloud Computing industry enabled by the Internet and is considered the first pioneer in the area of Network Function Virtualization.

    Read more →
  • Bookmarklet

    Bookmarklet

    A bookmarklet is a bookmark stored in a web browser that contains JavaScript commands that add new features to the browser. They are stored as the URL of a bookmark in a web browser or as a hyperlink on a web page. Bookmarklets are usually small snippets of JavaScript executed when a user clicks on them. When clicked, bookmarklets can perform a wide variety of operations, such as running a search query from selected text or extracting data from a table. Another name for bookmarklet is favelet or favlet, derived from favorites (synonym of bookmark). == History == Steve Kangas of bookmarklets.com coined the word bookmarklet when he started to create short scripts based on a suggestion in Netscape's JavaScript guide. Before that, Tantek Çelik called these scripts favelets and used that word as early as on 6 September 2001 (personal email). Brendan Eich, who developed JavaScript at Netscape, gave this account of the origin of bookmarklets: They were a deliberate feature in this sense: I invented the javascript: URL along with JavaScript in 1995, and intended that javascript: URLs could be used as any other kind of URL, including being bookmark-able. In particular, I made it possible to generate a new document by loading, e.g. javascript:'hello, world', but also (key for bookmarklets) to run arbitrary script against the DOM of the current document, e.g. javascript:alert(document.links[0].href). The difference is that the latter kind of URL uses an expression that evaluates to the undefined type in JS. I added the void operator to JS before Netscape 2 shipped to make it easy to discard any non-undefined value in a javascript: URL. The increased implementation of Content Security Policy (CSP) in websites has caused problems with bookmarklet execution and usage (2013–2015), with some suggesting that this hails the end or death of bookmarklets. William Donnelly created a work-around solution for this problem (in the specific instance of loading, referencing and using JavaScript library code) in early 2015 using a Greasemonkey userscript (Firefox / Pale Moon browser add-on extension) and a simple bookmarklet-userscript communication protocol. It allows (library-based) bookmarklets to be executed on any and all websites, including those using CSP and having an https:// URI scheme. However, if/when browsers support disabling/disallowing inline script execution using CSP, and if/when websites begin to implement that feature, it will "break" this "fix". == Concept == Web browsers use URIs for the href attribute of the tag and for bookmarks. The URI scheme, such as http or ftp, and which generally specifies the protocol, determines the format of the rest of the string. Browsers also implement javascript: URIs that to a parser is just like any other URI. The browser recognizes the specified javascript scheme and treats the rest of the string as a JavaScript program which is then executed. The expression result, if any, is treated as the HTML source code for a new page displayed in place of the original. The executing script has access to the current page, which it may inspect and change. If the script returns an undefined type (rather than, for example, a string), the browser will not load a new page, with the result that the script simply runs against the current page content. This permits changes such as in-place font size and color changes without a page reload. An immediately invoked function that returns no value or an expression preceded by the void operator will prevent the browser from attempting to parse the result of the evaluation as a snippet of HTML markup: == Usage == Bookmarklets are saved and used as normal bookmarks. As such, they are simple "one-click" tools which add functionality to the browser. For example, they can: Modify the appearance of a web page within the browser (e.g., change font size, background color, etc.) Extract data from a web page (e.g., hyperlinks, images, text, etc.) Remove redirects from (e.g. Google) search results, to show the actual target URL Submit the current page to a blogging service such as Posterous, link-shortening service such as bit.ly, or bookmarking service such as Delicious Query a search engine or online encyclopedia with highlighted text or by a dialog box Submit the current page to a link validation service or translation service Set commonly chosen configuration options when the page itself provides no way to do this Control HTML5 audio and video playback parameters such as speed, position, toggling looping, and showing/hiding playback controls, the first of which can be adjusted beyond HTML5 players' typical range setting. Installing a bookmarklet follows the same process as adding a normal bookmark; the only difference is that in place of the URL destination field is JavaScript code preceded by javascript:. Once created, bookmarklets can be run by clicking on them.

    Read more →
  • Digital content

    Digital content

    Digital content is any content that exists in the form of digital data. Digital content is stored on digital media or analog storage in specific formats. Forms of digital content include information that is digitally broadcast, streamed, or contained in computer files. Viewed narrowly, digital content includes popular media types, while a broader approach considers any type of digital information (e. g. digitally updated weather forecasts, GPS maps, and so on) as digital content. Digital content has increased as more households have accessed the Internet. Expanded access has made it easier for people to receive their news and watch TV online, challenging the popularity of traditional platforms. Increased access to the Internet has also led to the mass publication of digital content through individuals in the form of eBooks, blog posts, and even Facebook posts. == History == At the beginning of the Digital Revolution, computers facilitated the discovery, retrieval, and creation of new information in every field of human knowledge. As information became increasingly more accessible, the Digital Revolution also facilitated the creation of digital content. Despite an evolution to digital technology, which occurred somewhere between the late 1970s, distribution of digital content did not begin until the late 1990s with the rise in popularity of the Internet. In the past, digital content was primarily distributed through computers and the Internet. Methods of distribution are rapidly changing as the Digital Revolution brings new channels, such as mobile apps and eBooks. These new technologies will create challenges for content creators, as they determine the best channel to bring content to their consumers. Despite the benefits, new technologies have created new intellectual property issues. Users can easily share, modify, and redistribute content outside of the creator's control. While new technologies have made digital content available to large audiences, managing copyright and limiting content movement will continue to be an issue that digital content creators face in the future. == Types of digital content == Examples include: Video – Types of video content include home videos, music videos, TV shows, and movies. Many of these can be viewed on websites such as YouTube, Hulu, Paramount+, Disney+, HBO Max, and so on, in which people and companies alike can post content. However, many movies and television shows are not available for free legally, but rather can be purchased from sites such as iTunes and Amazon. Audio – Music is the most common form of audio. Spotify has emerged as a popular way for people to listen to music either over the Internet or from their computer desktop. Digital content in the form of music is also available through Pandora and last.fm, both of which allow listeners to listen to music online for no charge. Images – Photo and image sharing is another example of digital content. Popular sites used for this type of digital content includes Imgur, where people share self-created pictures, Flickr, where people share their photo albums, and DeviantArt, where people share their artwork. Popular apps that are used for images include Instagram and Snapchat. Visual Stories - Stories are a new type of digital content that got introduced by Snapchat. Since then, stories as a format has been introduced in a couple of other platforms such as Facebook and Linkedin. In 2018, Google introduced their AMP Stories, which provides content publishers with a mobile-focused format for delivering news and information as visually rich, tap-through stories. Text - Type of digital content which is available in text or written format. Blog websites which store data in form of textual format. === Paid digital content === In order to have access to more premium digital goods, consumers usually have to pay an upfront charge for digital content, or a subscription based fee. Video – Many licensed videos, such as movies and television shows, require money in order to be viewed or downloaded. Popular services used by many include streaming giant Netflix and Amazon's streaming service, as well as recent notice put forth by the online video platform YouTube. Audio – While songs can be streamed for free, generally in order to download most licensed music, consumers need to purchase songs from web stores, such as the popular iTunes. However, Spotify Premium is emerging as a new model for purchasing digital content on the web: consumers pay a monthly fee to unlimited streaming and downloading from Spotify's music library. According to a report done by IHS Inc. in 2013, the global consumer spending on digital content grew to over $57 billion in 2013, which was up almost 30% from $44 billion in 2012. In past years, the US has always been a leader in consumer expenditure on digital content, but as of 2013, many countries have emerged with great consumer expenditure. South Korea's overall digital spend per capita is now greater than the US. ==== Consolidation ==== According to research firm Ampere Analysis, in 2024, a small group of six media conglomerates; Disney, Comcast, Google, Warner Bros. Discovery, Netflix, and Paramount Global—are poised to dominate the global content market. These companies are projected to account for 51% of all global spending on content, a significant increase from 47% in 2020. Disney, in particular, is a major player, with an estimated $35.8 billion investment in television and film content, representing 14% of global spending. This significant increase, fueled by Disney's full ownership of Hulu, highlights the company's strategic focus on streaming services. A substantial portion of the projected $126 billion global content spending is allocated to streaming platforms. === Non-purchasable digital content === Not all digital content is purchasable, and is simply anything published digitally. This would include: News – in recent years newspapers have attempted to expand their readership by creating access to their newspapers digitally. As of 2012, 39% of readers learned about news from online formats, making news a prevalent form of digital content. Advertisements – as media consumers increasingly use digital formats to watch TV, check the weather, and search for content, advertisements have shifted to digital forms to keep up with their viewership. Advertisements are now being made digitally and placed on sites ranging from Facebook to YouTube. Question and Answer sites – these sites are a type of Internet forum where people can post questions they want answered, or provide responses to previous inquiries. With millions of questions posted each day, anyone has the ability to create content on these sites, so the information provided may not be 100% reliable or accurate. Popular sites include Yahoo! Answers, WikiAnswers and Quora. Web mapping – sites such as MapQuest and Google Maps provide users with map content. These sites give people the ability to quickly look up the location of a landmark and create routes to a destination. Online maps are a form of free content provided by companies such as Google and AOL, serving as much more efficient alternatives to the traditional Thomas Guide. == Business implications == === Digital companies === Digital content businesses can include news, information, and entertainment distributed over the Internet and consumed digitally by both consumers and businesses. Based on revenue, the leading digital businesses are ranked Google, China Mobile, Bloomberg, Reed Elsevier, and Apple. The 50 companies with the highest revenue are split between those offering free and paid digital content, but these top 50 companies combined generate revenue of $150 billion. === Educational opportunities === Programs such as CUNY's Macaulay Honors College in their New Media Lab, run by industry professional Robert Small, is set up to train and introduce students to the various disciplines within the digital content industry. The goal is to offer information and access to professional work opportunities. They also explore within an incubator how to create businesses and start ups within the world of digital content. There are many educational events in support of choosing digital content as a career. === Government support === The Irish government adopted a "Strategy for the Digital Content Industry in Ireland" in 2002.

    Read more →
  • Europa-Lehrmittel

    Europa-Lehrmittel

    The Verlag Europa-Lehrmittel Nourney, Vollmer GmbH & Co. KG (English: European educational media), based in Haan (district Gruiten) near Düsseldorf, Germany, develops educational media for vocational training and further education as used in vocational schools, universities, companies and further education institutions for industrial-technical, business, social, health as well as gastronomic professions. The contents are delivered in print as well as in digital formats, including offered as apps, simulations, software and through an exam preparation portal. The publisher has its own digital learning platform, the Europathek. General partner is Nourney, Vollmer & Co. GmbH, a school and specialist book publisher. == History == The publishing house was founded in Wuppertal in 1948, when the first books were published. In Eislingen/Fils a construction office was set up to create the technical drawings for the textbooks - today the drawing office of the publisher in Ostfildern. A little over 40 years later, in 1989, a new company building was built in Haan-Gruiten. In 1997, Europa-Lehrmittel acquired the Fachbuchverlag Pfanneberg with its program aimed at gastronomic professions. Further program expansions in vocational training were realized by adding titles of the publishing houses Lau, Gerber, Pluspunkt, parts of the Verlag Handwerk und Technik program and that of the Gildebuchverlag. In 2013, the scientific and technical university titles of Verlag Harri Deutsch were taken over, including the bestselling "Handbook of Mathematics" by Ilya Nikolaevich Bronstein and Konstantin Adolfovic Semendyayev. In addition, Europa-Lehrmittel's first exam apps appeared. In 2017, the publisher introduced its own digital learning platform named Europathek. The Prüfungsdoc (English: Examination Doc) platform, which enables targeted online preparation for exams, went online the same year. In 2018, the titles of the Düsseldorf publishing house SOL for self-organized learning were incorporated into Europa-Lehrmittel's program. == Program == The program meanwhile includes well over 2000 print and digital publications, including specialist titles on metal technology, automotive and electrical engineering (like "Tabellenbuch Metall" (English: Metal Book of Tables)), on business administration, as well as works for the gastronomic profession (e.g. "Der junge Koch" (English: The Young Cook)). Many titles also appear as licensed editions in over 20 different languages on all continents. All contents are presented in an annual catalog, on the website, in schools, in companies, and at trade fairs and congresses. The publisher is a member of the Deutscher Hauswirtschaftsrat. == Digital educational media == Europathek: In addition to digital books, Europathek also provides media packages, additional materials and e-learning contents. The online contents of the 'media shelf' can be used per web browser. There are also software versions and apps for offline use, with the help of which the obtained titles can be viewed after downloading. Prüfungsdoc (English: Examination Doc): Prüfungsdoc offers web-based learning, practice and repetition to prepare for the intermediate and final examinations. This includes simulations of the exams with direct evaluation of the results.

    Read more →
  • Euratlas

    Euratlas

    Euratlas is a Switzerland-based software company dedicated to elaborate digital history maps of Europe. Founded in 2001, Euratlas has created a collection of history maps of Europe from year 1 AD to year 2000 AD that present the evolution of every country from the Roman Empire to present times. The evolution includes sovereign states and their administrative subdivisions, but also unorganized peoples and dependent territories. The maps show European country borders at regular intervals of 100 years, but not year by year. This leaves out many important turning points in history. Euratlas is considered a digital humanities company, and a scholar research software used in the field of historic cartography. It is broadly known among American and European universities, who mainly use Euratlas as a research tool and as a digital library atlas. == Sequential mapping policy == This concept was first designed by the German scholar Christian Kruse (1753–1827). Kruse, well aware that historical accounts are often biased for geographical, philosophical or political reasons, created a set of sequential maps in order to give a global vision of the successive political situations. Nowadays, the majority of atlases don't use this approach, but are event-based, like the well-known Penguin Atlas of History. The sequential approach intends to make the sequence of maps more neutral and suitable for students, historians and professionals of several fields. Although, this approach has been discussed as it leaves out many important history events that are not reflected on any of the maps because of the century interval. == Geo-referenced historical data == Initially, the European maps by century were developed as vector maps. From 2006 on, they have been converted to a geographic information system (GIS) database, enabling geo-referenced data capabilities. The map information is distributed in several layers: physical (geography information layer); political information layer (supranational entities, sovereign states, administrative divisions, dependent states and autonomous peoples); and special layers for cities and uncertain borders. The software database also contains much non-geographical information about political relationships between the various kinds of territories. == Map projection == Euratlas History Maps uses a Mercator projection, with the center in Europe. The maps include the North-African coast and the Near-East, offering a complete view of the Mediterranean Basin. The European Russia plains are shown, but not Scandinavia, specially Finland, which is cropped off the map view.

    Read more →
  • Far-Play

    Far-Play

    Far-Play (stylized fAR-Play, from augmented reality) was a software platform developed at the University of Alberta, for creating location-based, scavenger-hunt style games which use the GPS and web-connectivity features of a player's smartphone. According to the development team, "our long-term objective is to develop a general framework that supports the implementation of AARGs that are fun to play and also educational". It utilizes Layar, an augmented reality smartphone application, QR codes located at particular real-world sites, or a phone's web browser, to facilitate games which require players to be in close physical proximity to predefined "nodes". A node, referred to by the developers as a Virtual Point of Interest (vPOI), is a point in space defined by a set of map coordinates; fAR-Play uses the GPS function of a player's smartphone — or, for indoor games, which are not easily tracked by GPS satellites, specially-created QR codes— to confirm that they are adequately near a given node. Once a player is within a node's proximity, Layar's various augmented reality features can be utilized to display a range of extra content overlaid upon the physical play-space or launch another application for extra functionality. == Development and features == fAR-Play began development in 2008, emerging from a collaborative project undertaken by a group of University of Alberta students from the Computer Science and Humanities Computing departments. fAR-Play is still under development, but a beta version is available for testing by request. fAR-Play's development is managed by a team of interdisciplinary professors and students at the University of Alberta. Currently, the developing team's roster includes Supervising Professors Geoffrey Rockwell and Eleni Stroulia, Developers Lucio Gutierrez and Matthew Delaney, and Website Developers Calen Henry and Garry Wong. === Technology === fAR-Play relies on a number of open- and closed-source web technologies as tools to create, and enhance the users' experience. Layar is the recommended client-side frontend for delivering game content to the player; it is available on Android and iOS, which covers over 91% of smartphones. While Layar is not a requirement to play fAR-Play games, the application does supply additional augmented reality functionality; Layar also includes a built-in QR scanner. Depending on the design of the particular game, the player may instead use a dedicated QR code scanner; the developers recommend BeeTagg, but any such application will do. Layar or a QR code scanner are the maximum software requirements to play a fAR-Play game, making implementation of games on a wide variety of platforms relatively straightforward. fAR-Play games can also be designed for play strictly within a mobile phone's web browser. On the server side, fAR-Play's engine is composed of an Apache server which manages the system's web interface, including the mobile and desktop versions of the fAR-Play website, and a Java-based REST framework for managing the database of nodes. === Features === As a platform for designing AR games, as opposed to an AR game itself, fAR-Play offers little in the way of explicit shapes or patterns for games to take; instead, these elements are left to the game designer or players to develop. However, the nonspecific nature of nodes, the many options they offer for content delivery, and the open design of the platform are such that these elements can be developed extensively. Functionally, fAR-Play is a tool for tracking arbitrary points in space and a given player's proximity to them; what it does beyond that is up to the developers' and players' discretion. However, the fAR-Play website contains a leaderboard which tracks registered user's total scores. Players are assigned levels based on their total score, ranging from Novice — Super Player. Player profiles will display nodes that the player has recently caught, and any achievements the player has gained. Additionally, players can share their adventure progress, achievements, and the capture of vPOIs on Facebook. == How to play == In order to participate in the locative aspects of fAR-Play games, users must have an Android or iOS mobile device and access to wireless internet. Players can participate in fAR-Play anonymously, or create and sign into a fAR-Play account. Those who choose to play anonymously will lose the ability to track their progress across multiple games. When signed in, the player is presented with a list of games that are currently available for play. Each game includes a brief description and the various "adventures" available to the player. Once the game has been started, the player has three different methods for capturing nodes: they may scan a QR in the physical space, discover a node through the Layar camera virtual view, or receive a link in their device's web browser. === QR codes and Layar === QR codes can only be used as a method for capturing nodes and initiating games when there is a physical code present. In order to scan a QR code, players are required to have an application which can capture and recognize QR codes. If the player is utilizing a QR scanning application that has a built in browser, they will be required to log into fAR-Play through the app. Layar is a free to download augmented reality app, containing a built in QR code scanner, which enables its users to participate in fAR-Play games. === Capturing nodes === Layar permits the player to see nodes on their mobile device, guiding the player to their goal. Using this application, the player is able to navigate to their objective with map provided by Google Maps' API or by using their camera — Layar overlays a virtual image onto the real-world scene presented by the camera. The representations on screen expand in size as the player approaches the node destination, simulating relative distance. If the player taps any of the nodes that are presented on the screen, they will be provided additional information about that node, including the node's name and a brief description. Nodes can be captured by tapping the "capture" button. === Playing on browsers === The player can also play fAR-Play games within their mobile device's browser. By visiting https://archive.today/20131123223038/http://farplay.ualberta.ca/far-play/ on a mobile device, players will be presented with a fully realized user interface, permitting full interaction with the games. The player can capture the in game vPOIs through their browser by tapping the "nodes" button. This will bring up a list of all the accessible nodes, complete with a brief description for each location. By clicking on one of the nodes, the player is shown to a screen with a mapped location of the vPOI, an in-depth description of it, and hints. At the top of the page, the player can tap "CAPTURE THIS NODE" and advance in the game. When attempting to capture a node, the developer may or may not associate a challenge with the node. For example, in the game "Zombies ate my Campus", when players are attempting to capture a node, they're presented with a multiple choice question associated with the current node. === Game types === Players complete an adventure when they have captured all of the nodes within it. fAR-Play provides two game modes: in a Virtual Scavenger Hunt, nodes must be captured in a specific order; in a Virtual Treasure Hunt, the order is unimportant. == Existing fAR-Play games == Games currently available through fAR-Play include: Giselle Ever After Thought Hub Comics Arts Capture Challenge Pioneering Edmonton The Intelliphone Challenge A Tour of Atwater Zombies ate my Campus == For developers == fAR-Play's ultimate goal is to provide a simple, effective platform for the creation of locative augmented reality games, but the developer tools are still under active development and not openly available to the public. Access can be granted on a case-by-case basis, however, and a developer's manual is available. Users with development privileges can create new games or edit their existing games, in addition to playing their own or others' games. === Adventures === Games that are developed with fAR-Play are segmented into components called "Adventures". To progress through each game adventure, the player must reach and capture virtual points of interest, referred to in the game as vPOIs. In order to capture a vPOI, the player must travel to a physical location that is set by the developer. It is the developer's choice to include a challenge question to capture the vPOI, though it is not mandatory. A deduction of points can be implemented if the player submits an incorrect answer to a challenge question. === Points and achievements === Each of the nodes will reward the player with a predetermined number of points once they have been captured by the player. These points are added to the player's total points. Each of the adventures that are created require a predetermined number of vPOIs

    Read more →
  • Bluelight (web forum)

    Bluelight (web forum)

    Bluelight is a web-forum, research portal, online community, and non-profit organisation dedicated to harm reduction in drug use. Its userbase includes current and former substance users, academic researchers, drug policy activists, and mental health advocates. It is believed to be the largest online international drug discussion website in the world. As of November 2025, the website claims over 475,900 registered members, the Discord community claims over 11,900 members, and additional members utilise other platforms such as Telegram. Bluelight has been utilised by academic researchers as a primary source of data in numerous publications. Researchers also utilise the site to advertise research studies, recruit study participants, and better understand the world of substance use. Research groups and organisations that have partnered with Bluelight to recruit study participants include Imperial College London, Johns Hopkins University, Health Canada, Karlstad University, Curtin University, Macquarie University, Columbia University, University of Pennsylvania, University of Michigan, Toronto Metropolitan University (then known as Ryerson University), and MAPS. Researchers have found that the most common reasons for substance users to visit Bluelight.org and similar online communities are to learn "how to use drugs safely" and "how to help others use drugs safely." Bluelight neither condemns or condones drug use, instead advocating for the principle of responsible drug use; educating and allowing individuals to make informed decisions regarding their drug use, providing information on local drug misuse services, and providing them with other drug harm reduction resources and public safety notices. == History == Bluelight.org was originally formed in 1997 as a message board on bluelight.net called the MDMA Clearinghouse. The board was created as a side project by the owner of West Palm Beach design company Bluelight Designs. 200–300 users joined the site between 1998 and 1999, but the site's servers were heavily limited and could only store a few threads at a time; this led to the creation of 'The New Bluelight' forum in May 1999 and the registration of the bluelight.nu domain in June 1999. The site began to explode in popularity in the early 2000s with the rise of MDMA in the club scene, amassing nearly 7,000 members by the year 2000 and 59,000 by the start of 2006. The site switched to the bluelight.ru domain in October 2005, and switched again to bluelight.org in January 2014. In early 2024, Bluelight was re-structured and the forum became a subsidiary of the newly formed Australian non-profit organisation & registered charity Bluelight Communities Ltd. == Partnerships == In the early 2000s, Bluelight worked with reagent test supplier EZ-Test to promote the sale of drug checking kits. In 2007, Bluelight partnered with the Multidisciplinary Association for Psychedelic Studies (MAPS), a non-profit organisation working to raise awareness and understanding of psychedelic drugs through education, clinical research, and advocacy. MAPS utilised Bluelight to recruit participants for its first MDMA-assisted psychotherapy trial for PTSD. In 2013, the official MAPS forums were migrated to Bluelight. Bluelight's other partners include Erowid, a non-profit organisation dedicated to education surrounding psychoactive drugs; TripSit, a harm reduction education website; Pill Reports, a web-based database for drug checking results that was initially formed as an offshoot of the site; and the Global Drug Survey, an independent research organisation focused on collecting data about substance use. == Notable users == Alan Woods – funded the site's maintenance costs from 1999 until his death in 2008 Hamilton Morris John McAfee – created an infamous series of troll posts about the stimulant MDPV

    Read more →
  • Plug compatibility

    Plug compatibility

    Plug compatibility is a characteristic of computer hardware that performs exactly like that of another vendor. Manufacturers who made replacements for IBM peripherals were referred to as plug-compatible manufacturers (PCMs). Later plug-compatible mainframe (also PCM) referred to IBM-compatible mainframe computers. PCM can also mean plug-compatible machine or plug-compatible module. == Plug compatibility and peripherals == Before the rise of the plug-compatible peripheral industry, computing systems were either configured with peripherals designed and built by the CPU vendor or designed to use vendor-selected rebadged devices. The first examples of plug-compatible IBM subsystems were tape drives and controls offered by Telex beginning 1965. Memorex in 1968 was first to enter the IBM plug-compatible disk market, followed shortly thereafter by a number of suppliers such as CDC, Itel, and Storage Technology Corporation. This was boosted by the world's largest user of computing equipment, the US General Services Administration, buying plug-compatible equipment. Eventually there were third-party plug-compatible alternatives to most first-party peripherals and first-party system main memory. == Plug compatibility and computer systems == A plug-compatible machine is one that is backward compatible with a prior machine. In particular, a new computer system that is plug-compatible has not only the same connectors and protocol interfaces to peripherals, but also binary-code compatibility—it runs the same software as the old system. A plug compatible manufacturer, or PCM, is a company that makes such products. One recurring theme in plug-compatible systems is the ability to be bug compatible as well. That is, if the forerunner system had software or interface problems, then the successor must have (or simulate) the same problems. Otherwise, the new system may generate unpredictable results, defeating the objective of full compatibility. Thus, it is important for customers to understand the difference between a bug and a feature, where the latter is defined as an intentional modification to the previous system (e.g. higher speed, lighter weight, smaller package, better operator controls, etc.). === Plug compatibility and IBM mainframes === The original example of plug-compatible mainframes was the Amdahl 470 mainframe computer which was plug-compatible with the IBM System 360 and 370, costing millions of dollars to develop. Similar systems were available from Comparex, Fujitsu, and Hitachi. Not all were large systems. Most of these system vendors eventually left the PCM market. In late 1981, there were eight PCM companies, and collectively they had 36 IBM-compatible models. == Non-computer usage of plug compatibility == Plug compatibility may also be used to describe replacement criteria for other components available from multiple sources. For example, a plug-compatible cooling fan may need to have not only the same physical size and shape, but also similar capability, run from the same voltage, use similar power, attach with a standard electrical connector, and have similar mounting arrangements. Some non-conforming units may be re-packaged or modified to meet plug-compatible requirements, as where an adapter plate is provided for mounting, or a different tool and instructions are supplied for installation, and these modifications would be reflected in the bill of materials for such components. Similar issues arise for computer system interfaces when competitors wish to offer an easy upgrade path. In general, plug-compatible systems are designed where industry or de facto standards have rigorously defined the environment, and there is a large installed population of machines that can benefit from third-party enhancements. Plug compatible does not mean identical. However, nothing prevents a company from developing follow-on products that are backward-compatible with its own early products.

    Read more →
  • ROCm

    ROCm

    ROCm is an Advanced Micro Devices (AMD) software stack for graphics processing unit (GPU) programming. ROCm spans several domains, including general-purpose computing on graphics processing units (GPGPU), high performance computing (HPC), and heterogeneous computing. It offers several programming models: HIP (GPU-kernel-based programming), OpenMP (directive-based programming), and OpenCL. ROCm is free, libre and open-source software (except the GPU firmware blobs), and it is distributed under various licenses. The name initially stood for Radeon Open Compute platform; however, due to Open Compute being a registered trademark, the name no longer functions as an acronym. == Background == The first GPGPU software stack from ATI/AMD was Close to Metal, which became Stream. ROCm was launched around 2016 with the Boltzmann Initiative. ROCm stack builds upon previous AMD GPU stacks; some tools trace back to GPUOpen and others to the Heterogeneous System Architecture (HSA). === Heterogeneous System Architecture Intermediate Language === HSAIL was aimed at producing a middle-level, hardware-agnostic intermediate representation that could be JIT-compiled to the eventual hardware (GPU, FPGA...) using the appropriate finalizer. This approach was dropped for ROCm: now it builds only GPU code, using LLVM, and its AMDGPU backend that was upstreamed, although there is still research on such enhanced modularity with LLVM MLIR. == Programming abilities == ROCm as a stack ranges from the kernel driver to the end-user applications. AMD has introductory videos about AMD GCN hardware, and ROCm programming via its learning portal. One of the best technical introductions about the stack and ROCm/HIP programming, remains, to date, to be found on Reddit. == Hardware support == ROCm is primarily targeted at discrete professional GPUs, but consumer GPUs and APUs of the same architecture as a supported professional GPU are known to work with ROCm. For example, all professional GPUs of the RDNA 2 architecture are officially supported by ROCm 5.x; users report that Consumer RDNA2 units such as the Radeon 6800M APU and the Radeon 6700XT GPU also work. === Professional-grade GPUs === === Consumer-grade GPUs === == Software ecosystem == === Machine learning === Various deep learning frameworks have a ROCm backend: PyTorch TensorFlow ONNX MXNet CuPy MIOpen Caffe Iree (which uses LLVM Multi-Level Intermediate Representation (MLIR)) llama.cpp === Supercomputing === ROCm is gaining significant traction in the top 500. ROCm is used with the Exascale supercomputers El Capitan and Frontier. Some related software is to be found at AMD Infinity hub. === Other acceleration & graphics interoperation === As of version 3.0, Blender can now use HIP compute kernels for its renderer cycles. === Other languages === ==== Julia ==== Julia has the AMDGPU.jl package, which integrates with LLVM and selects components of the ROCm stack. Instead of compiling code through HIP, AMDGPU.jl uses Julia's compiler to generate LLVM IR directly, which is later consumed by LLVM to generate native device code. AMDGPU.jl uses ROCr's HSA implementation to upload native code onto the device and execute it, similar to how HIP loads its own generated device code. AMDGPU.jl also supports integration with ROCm's rocBLAS (for BLAS), rocRAND (for random number generation), and rocFFT (for FFTs). Future integration with rocALUTION, rocSOLVER, MIOpen, and certain other ROCm libraries is planned. === Software distribution === ==== Official ==== Installation instructions are provided for Linux and Windows in the official AMD ROCm documentation. ROCm software is currently spread across several public GitHub repositories. Within the main public meta-repository, there is an XML manifest for each official release: using git-repo, a version control tool built on top of Git, is the recommended way to synchronize with the stack locally. AMD starts distributing containerized applications for ROCm, notably scientific research applications gathered under AMD Infinity Hub. AMD distributes itself packages tailored to various Linux distributions. ==== Third-party ==== There is a growing third-party ecosystem packaging ROCm. Linux distributions are officially packaging (natively) ROCm, with various degrees of advancement: Arch Linux, Gentoo, Debian, Fedora , GNU Guix, and NixOS. There are Spack packages. == Components == There is one kernel-space component, ROCk, and the rest - there is roughly a hundred components in the stack - is made of user-space modules. The unofficial typographic policy is to use: uppercase ROC lowercase following for low-level libraries, i.e. ROCt, and the contrary for user-facing libraries, i.e. rocBLAS. AMD is active developing with the LLVM community, but upstreaming is not instantaneous, and as of January 2022, is still lagging. AMD still officially packages various LLVM forks for parts that are not yet upstreamed – compiler optimizations destined to remain proprietary, debug support, OpenMP offloading, etc. === Low-level === ==== ROCk – Kernel driver ==== ==== ROCm – Device libraries ==== Support libraries implemented as LLVM bitcode. These provide various utilities and functions for math operations, atomics, queries for launch parameters, on-device kernel launch, etc. ==== ROCt – Thunk ==== The thunk is responsible for all the thinking and queuing that goes into the stack. ==== ROCr – Runtime ==== The ROC runtime is a set of APIs/libraries that allows the launch of compute kernels by host applications. It is AMD's implementation of the HSA runtime API. It is different from the ROC Common Language Runtime. ==== ROCm – CompilerSupport ==== ROCm code object manager is in charge of interacting with LLVM intermediate representation. === Mid-level === ==== ROCclr Common Language Runtime ==== The common language runtime is an indirection layer adapting calls to ROCr on Linux and PAL on windows. It used to be able to route between different compilers, like the HSAIL-compiler. It is now being absorbed by the upper indirection layers (HIP and OpenCL). ==== OpenCL ==== ROCm ships its installable client driver (ICD) loader and an OpenCL implementation bundled together. As of January 2022, ROCm 4.5.2 ships OpenCL 2.2, and is lagging behind competition. ==== HIP – Heterogeneous Interface for Portability ==== The AMD implementation for its GPUs is called HIPAMD. There is also a CPU implementation mostly for demonstration purposes. ==== HIPCC ==== HIP builds a `HIPCC` compiler that either wraps Clang and compiles with LLVM open AMDGPU backend, or redirects to the NVIDIA compiler. ==== HIPIFY ==== HIPIFY is a source-to-source compiling tool. It translates CUDA to HIP and reverse, either using a Clang-based tool, or a sed-like Perl script. ==== GPUFORT ==== Like HIPIFY, GPUFORT is a tool compiling source code into other third-generation-language sources, allowing users to migrate from CUDA Fortran to HIP Fortran. It is also in the repertoire of research projects, even more so. === High-level === ROCm high-level libraries are usually consumed directly by application software, such as machine learning frameworks. Most of the following libraries are in the General Matrix Multiply (GEMM) category, which GPU architecture excels at. The majority of these user-facing libraries comes in dual-form: hip for the indirection layer that can route to Nvidia hardware, and roc for the AMD implementation. ==== rocBLAS / hipBLAS ==== rocBLAS and hipBLAS are central in high-level libraries, it is the AMD implementation for Basic Linear Algebra Subprograms. It uses the library Tensile privately. ==== rocSOLVER / hipSOLVER ==== This pair of libraries constitutes the LAPACK implementation for ROCm and is strongly coupled to rocBLAS. === Utilities === ROCm developer tools: Debug, tracer, profiler, System Management Interface, Validation suite, Cluster management. GPUOpen tools: GPU analyzer, memory visualizer... External tools: radeontop (TUI overview) == Comparison with competitors == ROCm competes with other GPU computing stacks: Nvidia CUDA and Intel OneAPI. === Nvidia CUDA === Nvidia's CUDA is closed-source, whereas AMD ROCm is open source. There is open-source software built on top of the closed-source CUDA, for instance RAPIDS. CUDA is able to run on consumer GPUs, whereas ROCm support is mostly offered for professional hardware such as AMD Instinct and AMD Radeon Pro. Nvidia provides a C/C++-centered frontend and its Parallel Thread Execution (PTX) LLVM GPU backend as the Nvidia CUDA Compiler (NVCC). === Intel OneAPI === All the oneAPI corresponding libraries are published on its GitHub Page. ==== Unified Acceleration Foundation (UXL) ==== Unified Acceleration Foundation (UXL) is a new technology consortium that are working on the continuation of the OneAPI initiative, with the goal to create a new open standard accelerator software ecosystem, related open standards and specification projects through Working Groups and Specia

    Read more →
  • Plug compatibility

    Plug compatibility

    Plug compatibility is a characteristic of computer hardware that performs exactly like that of another vendor. Manufacturers who made replacements for IBM peripherals were referred to as plug-compatible manufacturers (PCMs). Later plug-compatible mainframe (also PCM) referred to IBM-compatible mainframe computers. PCM can also mean plug-compatible machine or plug-compatible module. == Plug compatibility and peripherals == Before the rise of the plug-compatible peripheral industry, computing systems were either configured with peripherals designed and built by the CPU vendor or designed to use vendor-selected rebadged devices. The first examples of plug-compatible IBM subsystems were tape drives and controls offered by Telex beginning 1965. Memorex in 1968 was first to enter the IBM plug-compatible disk market, followed shortly thereafter by a number of suppliers such as CDC, Itel, and Storage Technology Corporation. This was boosted by the world's largest user of computing equipment, the US General Services Administration, buying plug-compatible equipment. Eventually there were third-party plug-compatible alternatives to most first-party peripherals and first-party system main memory. == Plug compatibility and computer systems == A plug-compatible machine is one that is backward compatible with a prior machine. In particular, a new computer system that is plug-compatible has not only the same connectors and protocol interfaces to peripherals, but also binary-code compatibility—it runs the same software as the old system. A plug compatible manufacturer, or PCM, is a company that makes such products. One recurring theme in plug-compatible systems is the ability to be bug compatible as well. That is, if the forerunner system had software or interface problems, then the successor must have (or simulate) the same problems. Otherwise, the new system may generate unpredictable results, defeating the objective of full compatibility. Thus, it is important for customers to understand the difference between a bug and a feature, where the latter is defined as an intentional modification to the previous system (e.g. higher speed, lighter weight, smaller package, better operator controls, etc.). === Plug compatibility and IBM mainframes === The original example of plug-compatible mainframes was the Amdahl 470 mainframe computer which was plug-compatible with the IBM System 360 and 370, costing millions of dollars to develop. Similar systems were available from Comparex, Fujitsu, and Hitachi. Not all were large systems. Most of these system vendors eventually left the PCM market. In late 1981, there were eight PCM companies, and collectively they had 36 IBM-compatible models. == Non-computer usage of plug compatibility == Plug compatibility may also be used to describe replacement criteria for other components available from multiple sources. For example, a plug-compatible cooling fan may need to have not only the same physical size and shape, but also similar capability, run from the same voltage, use similar power, attach with a standard electrical connector, and have similar mounting arrangements. Some non-conforming units may be re-packaged or modified to meet plug-compatible requirements, as where an adapter plate is provided for mounting, or a different tool and instructions are supplied for installation, and these modifications would be reflected in the bill of materials for such components. Similar issues arise for computer system interfaces when competitors wish to offer an easy upgrade path. In general, plug-compatible systems are designed where industry or de facto standards have rigorously defined the environment, and there is a large installed population of machines that can benefit from third-party enhancements. Plug compatible does not mean identical. However, nothing prevents a company from developing follow-on products that are backward-compatible with its own early products.

    Read more →
  • HTTP cookie

    HTTP cookie

    An HTTP cookie (also called web cookie, Internet cookie, browser cookie, or simply cookie) is a small block of data created by a web server while a user is browsing a website and placed on the user's computer or other device by the user's web browser. Cookies are placed on the device used to access a website, and more than one cookie may be placed on a user's device during a session. Cookies serve useful and sometimes essential functions on the web. They enable web servers to store stateful information (such as items added in the shopping cart in an online store) on the user's device or to track the user's browsing activity (including clicking particular buttons, logging in, or recording which pages were visited in the past). They can also be used to save information that the user previously entered into form fields, such as names, addresses, passwords, and payment card numbers for subsequent use. Authentication cookies are commonly used by web servers to authenticate that a user is logged in, and with which account they are logged in. Without the cookie, users would need to authenticate themselves by logging in on each page containing sensitive information that they wish to access. The security of an authentication cookie generally depends on the security of the issuing website and the user's web browser, and on whether the cookie data is encrypted. Security vulnerabilities may allow a cookie's data to be read by an attacker, used to gain access to user data, or used to gain access (with the user's credentials) to the website to which the cookie belongs (see cross-site scripting and cross-site request forgery for examples). Tracking cookies, and especially third-party tracking cookies, are commonly used as ways to compile long-term records of individuals' browsing histories — a potential privacy concern that prompted European and U.S. lawmakers to take action in 2011. European law requires that all websites targeting European Union member states gain "informed consent" from users before storing non-essential cookies on their device. == Background == === Origin of the name === The term cookie was coined by web-browser programmer Lou Montulli. It was derived from the term magic cookie, which is a packet of data a program receives and sends back unchanged, used by Unix programmers. === History === Magic cookies were already used in computing when computer programmer Lou Montulli had the idea of using them in web communications in June 1994. At the time, he was an employee of Netscape Communications, which was developing an e-commerce application for MCI. Vint Cerf and John Klensin represented MCI in technical discussions with Netscape Communications. MCI did not want its servers to have to retain partial transaction states, which led them to ask Netscape to find a way to store that state in each user's computer instead. Cookies provided a solution to the problem of reliably implementing a virtual shopping cart. Together with John Giannandrea, Montulli wrote the initial Netscape cookie specification the same year. Version 0.9beta of Mosaic Netscape, released on 13 October 1994, supported cookies. The first use of cookies (out of the labs) was checking whether visitors to the Netscape website had already visited the site. Montulli applied for a patent for the cookie technology in 1995, which was granted in 1998. Support for cookies was integrated with Internet Explorer in version 2, released in October 1995. The introduction of cookies was not widely known to the public at the time. In particular, cookies were accepted by default, and users were not notified of their presence. The public learned about cookies after the Financial Times published an article about them on 12 February 1996. In the same year, cookies received a lot of media attention, especially because of potential privacy implications. Cookies were discussed in two U.S. Federal Trade Commission hearings in 1996 and 1997. The development of the formal cookie specifications was already ongoing. In particular, the first discussions about a formal specification started in April 1995 on the www-talk mailing list. A special working group within the Internet Engineering Task Force (IETF) was formed. Two alternative proposals for introducing state in HTTP transactions had been proposed by Brian Behlendorf and David Kristol respectively. But the group, headed by Kristol himself and Lou Montulli, soon decided to use the Netscape specification as a starting point. In February 1996, the working group identified third-party cookies as a considerable privacy threat. The specification produced by the group was eventually published as RFC 2109 in February 1997. It specifies that third-party cookies were either not allowed at all, or at least not enabled by default. At this time, advertising companies were already using third-party cookies. The recommendation about third-party cookies of RFC 2109 was not followed by Netscape and Internet Explorer. RFC 2109 was superseded by RFC 2965 in October 2000. RFC 2965 added a Set-Cookie2 header field, which informally came to be called "RFC 2965-style cookies" as opposed to the original Set-Cookie header field which was called "Netscape-style cookies". Set-Cookie2 was seldom used, however, and was deprecated in RFC 6265 in April 2011 which was written as a definitive specification for cookies as used in the real world. No modern browser recognizes the Set-Cookie2 header field. == Terminology == === Session cookie === A session cookie (also known as an in-memory cookie, transient cookie or non-persistent cookie) exists only in temporary memory while the user navigates a website. Session cookies expire or are deleted when the user closes the web browser. Session cookies are identified by the browser by the absence of an expiration date assigned to them. === Persistent cookie === A persistent cookie expires at a specific date or after a specific length of time. For the persistent cookie's lifespan set by its creator, its information will be transmitted to the server every time the user visits the website that it belongs to, or every time the user views a resource belonging to that website from another website (such as an advertisement). For this reason, persistent cookies are sometimes referred to as tracking cookies because they can be used by advertisers to record information about a user's web browsing habits over an extended period of time. Persistent cookies are also used for reasons such as keeping users logged into their accounts on websites, to avoid re-entering login credentials at every visit. (See § Uses, below.) === Secure cookie === A secure cookie can only be transmitted over an encrypted connection (i.e. HTTPS). They cannot be transmitted over unencrypted connections (i.e. HTTP). This makes the cookie less likely to be exposed to cookie theft via eavesdropping. A cookie is made secure by adding the Secure flag to the cookie. === Http-only cookie === An http-only cookie cannot be accessed by client-side APIs, such as JavaScript. This restriction eliminates the threat of cookie theft via cross-site scripting (XSS). However, the cookie remains vulnerable to cross-site tracing (XST) and cross-site request forgery (CSRF) attacks. A cookie is given this characteristic by adding the HttpOnly flag to the cookie. === Same-site cookie === In 2016 Google Chrome version 51 introduced a new kind of cookie with attribute SameSite with possible values of Strict, Lax or None. With attribute SameSite=Strict, the browsers would only send cookies to a target domain that is the same as the origin domain. This would effectively mitigate cross-site request forgery (CSRF) attacks. With SameSite=Lax, browsers would send cookies with requests to a target domain even it is different from the origin domain, but only for safe requests such as GET (POST is unsafe) and not third-party cookies (inside iframe). Attribute SameSite=None would allow third-party (cross-site) cookies, however, most browsers require secure attribute on SameSite=None cookies. The Same-site cookie is incorporated into a new RFC draft for "Cookies: HTTP State Management Mechanism" to update RFC 6265 (if approved). Chrome, Firefox, and Edge started to support Same-site cookies. The key of rollout is the treatment of existing cookies without the SameSite attribute defined, Chrome has been treating those existing cookies as if SameSite=None, this would let all website/applications run as before. Google intended to change that default to SameSite=Lax in Chrome 80 planned to be released in February 2020, but due to potential for breakage of those applications/websites that rely on third-party/cross-site cookies and COVID-19 circumstances, Google postponed this change to Chrome 84. === Supercookie === A supercookie is a cookie with an origin of a top-level domain (such as .com) or a public suffix (such as .co.uk). Ordinary cookies, by contrast, have an origin of a specific domain name, such as ex

    Read more →