AI Art Studio

AI Art Studio — independent reviews, comparisons, pricing and step-by-step guides on Aizhi.

  • Pandemonium architecture

    Pandemonium architecture

    Pandemonium architecture is a theory in cognitive science that describes how visual images are processed by the brain. It has applications in artificial intelligence and pattern recognition. The theory was introduced by the artificial intelligence pioneer Oliver Selfridge in his 1959 paper "Pandemonium - A Paradigm for Learning". It describes the process of object recognition as the exchange of signals within a hierarchical system of detection and association, the elements of which Selfridge metaphorically termed "demons". This model is now recognized as the basis of visual perception in cognitive science. Pandemonium architecture arose in response to the inability of template matching theories to offer a biologically plausible explanation of the image constancy phenomenon. Contemporary researchers praise this architecture for its elegancy and creativity; that the idea of having multiple independent systems (e.g., feature detectors) working in parallel to address the image constancy phenomena of pattern recognition is powerful yet simple. The basic idea of the pandemonium architecture is that a pattern is first perceived in its parts before the "whole". Pandemonium architecture was one of the first computational models in pattern recognition. Although not perfect, the pandemonium architecture influenced the development of modern connectionist, artificial intelligence, and word recognition models. == History == Most research in perception has been focused on the visual system, investigating the mechanisms of how we see and understand objects. A critical function of our visual system is its ability to recognize patterns, but the mechanism by which this is achieved is unclear. The earliest theory that attempted to explain how we recognize patterns is the template matching model. According to this model, we compare all external stimuli against an internal mental representation. If there is "sufficient" overlap between the perceived stimulus and the internal representation, we will "recognize" the stimulus. Although some machines follow a template matching model (e.g., bank machines verifying signatures and accounting numbers), the theory is critically flawed in explaining the phenomena of image constancy: we can easily recognize a stimulus regardless of the changes in its form of presentation (e.g., T and T are both easily recognized as the letter T). It is highly unlikely that we have a stored template for all of the variations of every single pattern. As a result of the biological plausibility criticism of the template matching model, feature detection models began to rise. In a feature detection model, the image is first perceived in its basic individual elements before it is recognized as a whole object. For example, when we are presented with the letter A, we would first see a short horizontal line and two slanted long diagonal lines. Then we would combine the features to complete the perception of A. Each unique pattern consists of different combination of features, which means those that are formed with the same features will generate the same recognition. That is, regardless of how we rotate the letter A, is still perceived as the letter A. It is easy for this sort of architecture to account for the image constancy phenomena because you only need to "match" at the basic featural level, which is presumed to be limited and finite, thus biologically plausible. The best known feature detection model is called the pandemonium architecture. == Pandemonium architecture == The pandemonium architecture was originally developed by Oliver Selfridge in the late 1950s. The architecture is composed of different groups of "demons" working independently to process the visual stimulus. Each group of demons is assigned to a specific stage in recognition, and within each group, the demons work in parallel. There are four major groups of demons in the original architecture. The concept of feature demons, that there are specific neurons dedicated to perform specialized processing is supported by research in neuroscience. Hubel and Wiesel found there were specific cells in a cat's brain that responded to specific lengths and orientations of a line. Similar findings were discovered in frogs, octopuses and a variety of other animals. Octopuses were discovered to be only sensitive to verticality of lines, whereas frogs demonstrated a wider range of sensitivity. These animal experiments demonstrate that feature detectors seem to be a very primitive development. That is, it did not result from the higher cognitive development of humans. Not surprisingly, there is also evidence that the human brain possesses these elementary feature detectors as well. Moreover, this architecture is capable of learning, similar to a back-propagation styled neural network. The weight between the cognitive and feature demons can be adjusted in proportion to the difference between the correct pattern and the activation from the cognitive demons. To continue with our previous example, when we first learned the letter R, we know is composed of a curved, long straight, and a short angled line. Thus when we perceive those features, we perceive R. However, the letter P consists of very similar features, so during the beginning stages of learning, it is likely for this architecture to mistakenly identify R as P. But through constant exposure of confirming R's features to be identified as R, the weights of R's features to P are adjusted so the P response becomes inhibited (e.g., learning to inhibit the P response when a short angled line is detected). In principle, a pandemonium architecture can recognize any pattern. As mentioned earlier, this architecture makes error predictions based on the amount of overlapping features. Such as, the most likely error for R should be P. Thus, in order to show this architecture represents the human pattern recognition system we must put these predictions into test. Researchers have constructed scenarios where various letters are presented in situations that make them difficult to identify; then types of errors were observed, which was used to generate confusion matrices: where all of the errors for each letter are recorded. Generally, the results from these experiments matched the error predictions from the pandemonium architecture. Also as a result of these experiments, some researchers have proposed models that attempted to list all of the basic features in the Roman alphabet. == Criticism == A major criticism of the pandemonium architecture is that it adopts a completely bottom-up processing: recognition is entirely driven by the physical characteristics of the targeted stimulus. This means that it is unable to account for any top-down processing effects, such as context effects (e.g., pareidolia), where contextual cues can facilitate (e.g., word superiority effect: it is relatively easier to identify a letter when it is part of a word than in isolation) processing. However, this is not a fatal criticism to the overall architecture, because is relatively easy to add a group of contextual demons to work along with the cognitive demons to account for these context effects. Although the pandemonium architecture is built on the fact that it can account for the image constancy phenomena, some researchers have argued otherwise; and pointed out that the pandemonium architecture might share the same flaws from the template matching models. For example, the letter H is composed of 2 long vertical lines and a short horizontal line; but if we rotate the H 90 degrees in either direction, it is now composed of 2 long horizontal lines and a short vertical line. In order to recognize the rotated H as H, we would need a rotated H cognitive demon. Thus we might end up with a system that requires a large number of cognitive demons in order to produce accurate recognition, which would lead to the same biological plausibility criticism of the template matching models. However, it is rather difficult to judge the validity of this criticism because the pandemonium architecture does not specify how and what features are extracted from incoming sensory information, it simply outlines the possible stages of pattern recognition. But of course that raises its own questions, to which it is almost impossible to criticize such a model if it does not include specific parameters. Also, the theory appears to be rather incomplete without defining how and what features are extracted, which proves to be especially problematic with complex patterns (e.g., extracting the weight and features of a dog). Some researchers have also pointed out that the evidence supporting the pandemonium architecture has been very narrow in its methodology. Majority of the research that supports this architecture has often referred to its ability to recognize simple schematic drawings that are selected from a small finite set (e.g., letters in the Roman alphabet). Evidence from these types of exper

    Read more →
  • Mini-STX

    Mini-STX

    Mini-STX (mSTX, Mini Socket Technology EXtended, originally "Intel 5x5") is a computer motherboard form factor that was released by Intel in 2015 (as "Intel 5x5"). These motherboards measure 147mm by 140mm (5.8" x 5.5"), making them larger than "4x4" NUC (102x102mm / 4.01" x 4.01" inches) and Nano-ITX (120x120mm / 4.7" x 4.7") boards, but notably smaller than the more common Mini-ITX (170x170mm / 6.7" x 6.7") boards. Unlike these standards, which use a square shape, the Mini-STX form factor is 7mm longer from front-to-rear, making it slightly rectangular. == Mini-STX design elements == The Mini-STX design suggests (but does not require) support for: Socketed processors (e.g. LGA or PGA CPUs) Onboard power regulation circuitry, enabling direct DC power input IO ports embedded on the front and rear of the motherboard (akin to NUC, but unlike typical motherboards which often use headers instead to connect built-in ports on enclosures) == Adoption by manufacturers == This motherboard form factor is still not in particularly common use with consumer-PC manufacturers, although there are a few offerings: ASRock offers both DeskMini kits (that use mini-STX boards) and standalone motherboards, Asus offer VivoMini kits (that use mini-STX boards) and standalone motherboards, Gigabyte offers a few motherboards, and industrial PC suppliers (e.g. Kontron, Iesy, ASRock Industrial) also provide some options for mini-STX equipment. == Derivatives == ASRock developed a derivative of mini-STX, dubbed micro-STX, for their 'DeskMini GTX/RX' small form-factor PCs and industrial motherboards. Micro-STX adds an MXM slot which allows the use of special PCI Express expansion cards, including graphics or machine learning accelerators, but increases the width of the board to be extended two inches, resulting in measurements of 147 x 188 mm (5.8" x 7.4")

    Read more →
  • GlTF

    GlTF

    glTF (Graphics Library Transmission Format or GL Transmission Format and formerly known as WebGL Transmissions Format or WebGL TF) is a standard file format for three-dimensional scenes and models. A glTF file uses one of two possible file extensions: .gltf (JSON/ASCII) or .glb (binary). Both .gltf and .glb files may reference external binary and texture resources. Alternatively, both formats may be self-contained by directly embedding binary data buffers (as base64-encoded strings in .gltf files or as raw byte arrays in .glb files). An open standard developed and maintained by the Khronos Group, it supports 3D model geometry, appearance, scene graph hierarchy, and animation. It is intended to be a streamlined, interoperable format for the delivery of 3D assets, while minimizing file size and runtime processing by apps. As such, its creators have described it as the "JPEG of 3D". == Overview == The glTF format stores data primarily in JSON. The JSON may also contain blobs of binary data known as buffers, and refer to external files, for storing mesh data, images, etc. The binary .glb format also contains JSON text, but serialized with binary chunk headers to allow blobs to be directly appended to the file. The fundamental building blocks of a glTF scene are nodes. Nodes are organized into a hierarchy, such that a node may have other nodes defined as children. Nodes may have transforms relative to their parent. Nodes may refer to resources, such as meshes, skins, and cameras. Meshes may refer to materials, which refer to textures, which refer to images. Scenes are defined using an array of root nodes. Most of the top-level glTF properties use a flat hierarchy for storage. Nodes are saved in an array and are referred to by index, including by other nodes. A glTF scene refers to its root nodes by index. Furthermore, nodes refer to meshes by index, which refer to materials by index, which refer to textures by index, which refer to images by index. All glTF data structures support being extended using a JSON property, allowing arbitrary JSON data to be added. == Releases == === glTF 1.0 === Members of the COLLADA working group conceived the file format in 2012. At SIGGRAPH 2012, Khronos presented a demo of glTF, which was then called WebGL Transmissions Format (WebGL TF). On October 19, 2015, Khronos released the glTF 1.0 specification. ==== Adoption of glTF 1.0 ==== At SIGGRAPH 2016, Oculus announced their adoption of glTF citing the similarities to their ovrscene format. In October 2016, Microsoft joined the 3D Formats working group at Khronos to collaborate on glTF. === glTF 2.0 === The second version, glTF 2.0, was released in June 2017, and is a complete overhaul of the file format from version 1.0, with most tools adopting the 2.0 version. Based on a proposal by Fraunhofer originally presented at SIGGRAPH 2016, physically based rendering (PBR) was added, replacing WebGL shaders used in glTF 1.0. glTF 2.0 added the GLB binary format into the base specification. Other upgrades include sparse accessors and morph targets for techniques such as facial animation, and schema tweaks and breaking changes for corner cases or performance such as replacing top-level glTF object properties with arrays for faster index-based access. There is ongoing work towards import and export in Unity and an integrated multi-engine viewer and validator. ==== Adoption of glTF 2.0 ==== On March 3, 2017, Microsoft announced that they would be using glTF 2.0 as the 3D asset format across their product line, including Paint 3D, 3D Viewer, Remix 3D, Babylon.js, and Microsoft Office. Sketchfab also announced support for glTF 2.0. The glTF and GLB formats are used on and supported by companies including DGG, UX3D, Sketchfab, Facebook, Microsoft, Meta, Google, Adobe, Box, TurboSquid, Unreal Engine, Unity, and Qt Quick 3D. The format has been noted as an important standard for augmented reality, integrating with modeling software such as Autodesk Maya, Autodesk 3ds Max, and Poly. In February 2020, the Smithsonian Institution launched their Open Access Initiative, releasing approximately 2.8 million 2D images and 3D models into the public domain, using glTF for the 3D models. In July 2022, glTF 2.0 was released as the ISO/IEC 12113:2022 International Standard. Khronos stated they would make regular submissions to bring updates and new widely adopted glTF functionality into refreshed versions of ISO/IEC 12113 to ensure that there is no long-term divergence between the ISO/IEC and Khronos specifications. The open-source game engine Godot supports importing glTF 2.0 files since version 3.0 and export since version 4.0. === Extensions === The glTF format can be extended with arbitrary JSON to add new data and functionality. Extensions can be placed on any part of a glTF, including nodes, animations, materials, textures, and on the entire document. Khronos keeps a non-comprehensive registry of glTF extensions on GitHub, including all official Khronos extensions and a few third-party extensions. PBR extensions model the physical appearance of real-world objects, allowing developers to create realistic 3D assets that have the correct appearance. As new PBR extensions are released, they continue to expand PBR capabilities within the glTF framework, allowing a wider range of scenes and objects to be realistically rendered as 3D assets. The KTX 2.0 extension for universal texture compression enables 3D models in the glTF format to be highly compressed and to use natively supported texture formats, reducing file size and boosting rendering speed. Draco is a glTF extension for mesh compression, to compress and decompress 3D meshes, to help reduce the size of 3D files. It compresses vertex attributes, normals, colors, and texture coordinates. Various glTF extensions for game engine interoperability have been developed by OMI group. This includes extensions for physics shapes, physics bodies, physics joints, audio playback, seats, spawn points, and more. The VRM consortium has developed glTF extensions for advanced humanoid 3D avatars including dynamic spring bones and toon materials. == Derivative formats == 3D Tiles, an OGC Community Standard, builds on glTF to add a spatial data structure, metadata, and declarative styling for streaming massive heterogeneous 3D geospatial datasets. VRM, a model format for VR, is built on the .glb format. It is a 3D humanoid avatar specification and file format. == Software ecosystem == Khronos maintains the glTF Sample Viewer for viewing glTF assets. Khronos also maintains the glTF Validator for validating if 3D models conform to the glTF specification. Khronos maintains a glTF Compressor tool to interactively optimize and fine-tune compression settings for glTF assets using KTX 2.0 textures. glTF loaders are in open-source WebGL engines including PlayCanvas, Three.js, Babylon.js, Cesium, PEX, xeogl, and A-Frame. The Godot game engine supports and recommends the glTF format, with both import and export support. Open-source glTF converters are available from COLLADA, FBX, and OBJ. Assimp can import and export glTF. glTF files can also be directly exported from a variety of 3D editors, such as Blender, Unity (using the glTFast importer/exporter), Freecad, Vectary, Autodesk 3ds Max (natively or using Verge3D exporter), Autodesk Maya (using babylon.js exporter), Autodesk Inventor, Modo, Houdini, Paint 3D, Godot, and Substance Painter. Open-source glTF utility libraries are available for programming languages including JavaScript, Node.js, C++, C#, Python, Haskell, Java, Go, Rust, Haxe, Ada, and TypeScript. Khronos keeps a list of these libraries and other related applications on their ecosystem site. The Khronos 3D Commerce Working Group released Asset Creation Guidelines in 2020 outlining best practices for use of the glTF file format in 3D Commerce. In 2025, the Working Group launched Asset Creation Guidelines 2.0, a continuously updated resource with additional guidance for geometry, mesh optimization, UV maps, textures, materials/PBR performance, and web optimization. The Khronos PBR Neutral Tone Mappers specification is a tone mapper designed to faithfully reproduce an object's base color, hue, and saturation when using PBR rendering under grayscale lighting, supporting brand- and product-accurate color representation. Khronos maintains the glTF Asset Auditor to allow retailers and advertising technology platforms to validate 3D assets against either a default Audit Profile modelled on the 2020 3D Commerce Asset Creation Guidelines or a custom profile defined by the target application.

    Read more →
  • Groundswell (book)

    Groundswell (book)

    Groundswell is a book by Forrester Research executives Charlene Li and Josh Bernoff that focuses on how companies can take advantage of emerging social technologies. It was published in 2008 by Harvard Business Press. A revised edition was published in 2011. The book attempts to explain a shift in the relationship between customers and companies, in which companies are no longer able to control customers' attitudes through market research, customer service, and advertising. Instead, customers are controlling the conversation by using new media to communicate about products and companies. == Synopsis == The groundswell is characterized by several tactics that guide companies into using social technologies strategically and effectively. Listening: Businesses should listen to their customers to understand what the market is looking for in their products. In order to do this, a company needs to find out if their customers are using social technologies and how they are using them. Talking: Instead of advertising to customers, marketing departments should find creative ways to connect with users about their experience with a product and their feelings about the brand. One common method is participation in social networks. Energizing: Enthusiastic customers are part of the groundswell, and companies can recognize and appreciate these customers by creating online communities and social platforms where they can connect with the brand and provide reviews. Supporting: Businesses can harness the support of their own employees by creating internal social applications for them to connect with the brand, also known as enterprise social software. == Groundswell in action == === Examples === Some companies distinguish their product through the use of social technologies. Tom Dickson successfully marketed his Blendtec line of blenders through the viral marketing campaign Will It Blend? The groundswell spread marketing messages through Digg and YouTube with a small budget and little marketing experience. Other companies have been able to listen to and talk with the groundswell by building their own online communities. Procter & Gamble created beinggirl.com Archived 2016-04-10 at the Wayback Machine to introduce girls to P&G feminine care products. The community approach worked because the company could reach girls with information that might seem embarrassing or sensitive in a traditional marketing campaign. === Risks === Features of particular industries or companies can make direct customer engagement more difficult. For instance, some companies must work within industry regulations, national or multinational corporations must balance corporate and local engagement, and other companies must find ways to engage with customers on time-sensitive issues. == Reception == Kevin Allison of the Financial Times praised the book for its focus on Web analytics: "[Groundswell] is not so much a manifesto or a dissection of online culture as it is a how-to manual for executives and mid-level managers trying to navigate this fast-changing and often confusing environment." The book won the American Marketing Association Foundation’s Berry-AMA Book Prize for best marketing book of 2009. It was also listed by: Amazon, as one of the Top 10 Business & Investing Books of 2008 CIO Insight, as one of the Top 10 Business-Tech Books of 2008 and one of 10 Insightful Web 2.0 Books Fortune as Magazine as one of the 3 best Web books of 2008 Advertising Age as number 3 of 10 Books You Should Have Read BusinessWeek as one of the Best Innovation & Design Books of 2008 "strategy+business" as one of the Best Business Books 2008 and “Top Shelf” in Marketing

    Read more →
  • Confusion matrix

    Confusion matrix

    In machine learning, a confusion matrix, also known as error matrix, is a specific table layout that allows visualization of the performance of an algorithm, typically a supervised learning one. In unsupervised learning it is usually called a matching matrix. The term is used specifically in the problem of statistical classification. Each row of the matrix represents the instances in an actual class while each column represents the instances in a predicted class, or vice versa – both variants are found in the literature. The diagonal of the matrix therefore represents all instances that are correctly predicted. The name stems from the fact that it makes it easy to identify whether the system is confusing two classes (i.e., commonly mislabeling one class as another). The confusion matrix has its origins in human perceptual studies of auditory stimuli. It was adapted for machine learning studies and used by Frank Rosenblatt, among other early researchers, to compare human and machine classifications of visual (and later auditory) stimuli. It is a special kind of contingency table, with two dimensions ("actual" and "predicted"), and identical sets of "classes" in both dimensions (each combination of dimension and class is a variable in the contingency table). == Example == Given a sample of 12 individuals, 8 that have been diagnosed with cancer and 4 that are cancer-free, where individuals with cancer belong to class 1 (positive) and non-cancer individuals belong to class 0 (negative), we can display that data as follows: Assume that we have a classifier that distinguishes between individuals with and without cancer in some way, we can take the 12 individuals and run them through the classifier. The classifier then makes 9 accurate predictions and misses 3: 2 individuals with cancer wrongly predicted as being cancer-free (sample 1 and 2), and 1 person without cancer that is wrongly predicted to have cancer (sample 9). Notice, that if we compare the actual classification set to the predicted classification set, there are 4 different outcomes that could result in any particular column: The actual classification is positive and the predicted classification is positive (1,1). This is called a true positive result because the positive sample was correctly identified by the classifier. The actual classification is positive and the predicted classification is negative (1,0). This is called a false negative result because the positive sample is incorrectly identified by the classifier as being negative. The actual classification is negative and the predicted classification is positive (0,1). This is called a false positive result because the negative sample is incorrectly identified by the classifier as being positive. The actual classification is negative and the predicted classification is negative (0,0). This is called a true negative result because the negative sample gets correctly identified by the classifier. We can then perform the comparison between actual and predicted classifications and add this information to the table, making correct results appear in green so they are more easily identifiable. The template for any binary confusion matrix uses the four kinds of results discussed above (true positives, false negatives, false positives, and true negatives) along with the positive and negative classifications. The four outcomes can be formulated in a 2×2 confusion matrix, as follows: The color convention of the three data tables above were picked to match this confusion matrix, in order to easily differentiate the data. Now, we can simply total up each type of result, substitute into the template, and create a confusion matrix that will concisely summarize the results of testing the classifier: In this confusion matrix, of the 8 samples with cancer, the system judged that 2 were cancer-free, and of the 4 samples without cancer, it predicted that 1 did have cancer. All correct predictions are located in the diagonal of the table (highlighted in green), so it is easy to visually inspect the table for prediction errors, as values outside the diagonal will represent them. By summing up the 2 rows of the confusion matrix, one can also deduce the total number of positive (P) and negative (N) samples in the original dataset, i.e. P = T P + F N {\displaystyle P=TP+FN} and N = F P + T N {\displaystyle N=FP+TN} . == Table of confusion == In predictive analytics, a table of confusion (sometimes also called a confusion matrix) is a table with two rows and two columns that reports the number of true positives, false negatives, false positives, and true negatives. This allows more detailed analysis than simply observing the proportion of correct classifications (accuracy). Accuracy will yield misleading results if the data set is unbalanced; that is, when the numbers of observations in different classes vary greatly. For example, if there were 95 cancer samples and only 5 non-cancer samples in the data, a particular classifier might classify all the observations as having cancer. The overall accuracy would be 95%, but in more detail the classifier would have a 100% recognition rate (sensitivity) for the cancer class but a 0% recognition rate for the non-cancer class. F1 score is even more unreliable in such cases, and here would yield over 97.4%, whereas informedness removes such bias and yields 0 as the probability of an informed decision for any form of guessing (here always guessing cancer). According to Davide Chicco and Giuseppe Jurman, the most informative metric to evaluate a confusion matrix is the Matthews correlation coefficient (MCC). Other metrics can be included in a confusion matrix, each of them having their significance and use. Some researchers have argued that the confusion matrix, and the metrics derived from it, do not truly reflect a model's knowledge. In particular, the confusion matrix cannot show whether correct predictions were reached through sound reasoning or merely by chance (a problem known in philosophy as epistemic luck). It also does not capture situations where the facts used to make a prediction later change or turn out to be wrong (defeasibility). This means that while the confusion matrix is a useful tool for measuring classification performance, it may give an incomplete picture of a model’s true reliability. == Confusion matrices with more than two categories == Confusion matrix is not limited to binary classification and can be used in multi-class classifiers as well. The confusion matrices discussed above have only two conditions: positive and negative. For example, the table below summarizes communication of a whistled language between two speakers, with zero values omitted for clarity. == Confusion matrices in multi-label and soft-label classification == Confusion matrices are not limited to single-label classification (where only one class is present) or hard-label settings (where classes are either fully present, 1, or absent, 0). They can also be extended to Multi-label classification (where multiple classes can be predicted at once) and soft-label classification (where classes can be partially present). One such extension is the Transport-based Confusion Matrix (TCM), which builds on the theory of optimal transport and the principle of maximum entropy. TCM applies to single-label, multi-label, and soft-label settings. It retains the familiar structure of the standard confusion matrix: a square matrix sized by the number of classes, with diagonal entries indicating correct predictions and off-diagonal entries indicating confusion. In the single-label case, TCM is identical to the standard confusion matrix. TCM follows the same reasoning as the standard confusion matrix: if class A is overestimated (its predicted value is greater than its label value) and class B is underestimated (its predicted value is less than its label value), A is considered confused with B, and the entry (B, A) is increased. If a class is both predicted and present, it is correctly identified, and the diagonal entry (A, A) increases. Optimal transport and maximum entropy are used to determine the extent to which these entries are updated. TCM enables clearer comparison between predictions and labels in complex classification tasks, while maintaining a consistent matrix format across settings.

    Read more →
  • Bootstrap (front-end framework)

    Bootstrap (front-end framework)

    Bootstrap (formerly Twitter Bootstrap) is a free and open-source CSS framework directed at responsive, mobile-first front-end web development. It contains HTML, CSS and (optionally) JavaScript-based design templates for typography, forms, buttons, navigation, and other interface components. As of May 2023, Bootstrap is the 17th most starred project (4th most starred library) on GitHub, with over 164,000 stars. According to W3Techs, Bootstrap is used by 19.2% of all websites. == Features == Bootstrap is an HTML, CSS and JS library that focuses on simplifying the development of informative web pages (as opposed to web applications). The primary purpose of adding it to a web project is to apply Bootstrap's choices of color, size, font and layout to that project. As such, the primary factor is whether the developers in charge find those choices to their liking. Once added to a project, Bootstrap provides basic style definitions for all HTML elements. The result is a uniform appearance for prose, tables and form elements across web browsers. In addition, developers can take advantage of CSS classes defined in Bootstrap to further customize the appearance of their contents. For example, Bootstrap has provisioned for light- and dark-colored tables, page headings, more prominent pull quotes, and text with a highlight. Bootstrap also comes with several JavaScript components which do not require other libraries like jQuery. They provide additional user interface elements such as dialog boxes, tooltips, progress bars, navigation drop-downs, and carousels. Each Bootstrap component consists of an HTML structure, CSS declarations, and in some cases accompanying JavaScript code. They also extend the functionality of some existing interface elements, including for example an auto-complete function for input fields. The most prominent components of Bootstrap are its layout components, as they affect an entire web page. The basic layout component is called "Container", as every other element in the page is placed in it. Developers can choose between a fixed-width container and a fluid-width container. While the latter always fills the width with the web page, the former uses one of the five predefined fixed widths, depending on the size of the screen showing the page: Smaller than 576 pixels 576–768 pixels 768–992 pixels 992–1200 pixels 1200–1400 pixels Larger than 1400 pixels Once a container is in place, other Bootstrap layout components implement a CSS Flexbox layout through defining rows and columns. A precompiled version of Bootstrap is available in the form of one CSS file and three JavaScript files that can be readily added to any project. The raw form of Bootstrap, however, enables developers to implement further customization and size optimizations. This raw form is modular, meaning that the developer can remove unneeded components, apply a theme and modify the uncompiled Sass files. == History == === Early beginnings === Bootstrap, originally named Twitter Blueprint, was developed by Mark Otto and Jacob Thornton at Twitter in 2010 as a framework to encourage consistency across internal tools. Before Bootstrap, various libraries were used for interface development, which led to inconsistencies and a high maintenance burden. According to Otto: A super small group of developers and I got together to design and build a new internal tool and saw an opportunity to do something more. Through that process, we saw ourselves build something much more substantial than another internal tool. Months later, we ended up with an early version of Bootstrap as a way to document and share common design patterns and assets within the company. After a few months of development by a small group, many developers at Twitter began to contribute to the project as a part of Hack Week, a hackathon-style week for the Twitter development team. It was renamed from Twitter Blueprint to Twitter Bootstrap and released as an open-source project on August 19, 2011. It has continued to be maintained by Otto, Thornton, a small group of core developers, and a large community of contributors. === Bootstrap 2 === On January 31, 2012, Bootstrap 2 was released, which added built-in support for Glyphicons, several new components, as well as changes to many of the existing components. This version supports responsive web design, meaning the layout of web pages adjusts dynamically, taking into account the characteristics of the device used (whether desktop, tablet, mobile phone). Shortly before the release of Bootstrap 2.1.2, Otto and Thornton left Twitter, but committed to continue to work on Bootstrap as an independent project. === Bootstrap 3 === On August 19, 2013, Bootstrap 3 was released. It redesigned components to use flat design and a mobile first approach. Bootstrap 3 features new plugin system with namespaced events. Bootstrap 3 dropped Internet Explorer 7 and Firefox 3.6 support, but there is an optional polyfill for these browsers. Bootstrap 3 was also the first version released under the twbs organization on GitHub instead of the Twitter one. === Bootstrap 4 === Otto announced Bootstrap 4 on October 29, 2014. The first alpha version of Bootstrap 4 was released on August 19, 2015. The first beta version was released on August 10, 2017. Otto suspended work on Bootstrap 3 on September 6, 2016, to free up time to work on Bootstrap 4. Bootstrap 4 was finalized on January 18, 2018. Significant changes include: Major rewrite of the code Replacing Less with Sass Addition of Reboot, a collection of element-specific CSS changes in a single file, based on Normalize Dropping support for IE8, IE9, and iOS 6 CSS Flexible Box support Adding navigation customization options Adding responsive spacing and sizing utilities Switching from the pixels unit in CSS to root ems Increasing global font size from 14px to 16px for enhanced readability Dropping the panel, thumbnail, pager, and well components Dropping the Glyphicons icon font Huge number of utility classes Improved form styling, buttons, drop-down menus, media objects and image classes Bootstrap 4 supports the latest versions of Google Chrome, Firefox, Internet Explorer, Opera, and Safari (except on Windows). It additionally supports back to IE10 and the latest Firefox Extended Support Release (ESR). === Bootstrap 5 === Bootstrap 5 was officially released on May 5, 2021. Major changes include: New offcanvas menu component Removing dependence on jQuery in favor of vanilla JavaScript Rewriting the grid to support responsive gutters and columns placed outside of rows Migrating the documentation from Jekyll to Hugo Dropping support for Internet Explorer Moving testing infrastructure from QUnit to Jasmine Adding custom set of SVG icons Adding CSS custom properties Improved API Enhanced grid system Improved customizing docs Updated forms RTL support Built in darkmode support

    Read more →
  • Timeline of operating systems

    Timeline of operating systems

    This article presents a timeline of events in the history of computer operating systems from 1951 to the current day. For a narrative explaining the overall developments, see the History of operating systems. == 20th Century == == 1940s == 1949 EDSAC was considered the first operating system developed by Maurice Wilkes and manufactured by the University of Cambridge == 1950s == 1951 LEO I 'Lyons Electronic Office' was the commercial development of EDSAC computing platform, supported by British firm J. Lyons and Co. 1953 DYSEAC - an early machine capable of distributing computing 1955 General Motors Operating System made for IBM 701 MIT's Tape Director operating system made for UNIVAC 1103 1956 GM-NAA I/O for IBM 704, based on General Motors Operating System 1957 Atlas Supervisor (Manchester University) (Atlas computer project start) BESYS (Bell Labs), for IBM 704, later IBM 7090 and IBM 7094 1958 University of Michigan Executive System (UMES), for IBM 704, 709, and 7090 1959 SHARE Operating System (SOS), based on GM-NAA I/O == 1960s == 1960 IBSYS (IBM for its 7090 and 7094) 1961 CTSS demonstration (MIT's Compatible Time-Sharing System for the IBM 7094) MCP (Burroughs Master Control Program) for B5000 1962 Atlas Supervisor (Manchester University) (Atlas computer commissioned) BBN Time-Sharing System GCOS (GE's General Comprehensive Operating System, originally GECOS, General Electric Comprehensive Operating Supervisor) 1963 ADMIRAL AN/FSQ-32, another early time-sharing system begun CTSS becomes operational (MIT's Compatible Time-Sharing System for the IBM 7094) JOSS, an interactive time-shared system that did not distinguish between operating system and language Titan Supervisor, early time-sharing system begun 1964 Berkeley Timesharing System (for Scientific Data Systems' SDS 940) Chippewa Operating System (for CDC 6600 supercomputer) Dartmouth Time-Sharing System (Dartmouth College's DTSS for GE computers) EXEC 8 (UNIVAC) KDF9 Timesharing Director (English Electric) – an early, fully hardware secured, fully pre-emptive process switching, multi-programming operating system for KDF9 (originally announced in 1960) OS/360 (IBM's primary OS for its S/360 series) (announced) PDP-6 Monitor (DEC) descendant renamed TOPS-10 in 1970 SCOPE (CDC 3000 series) 1965 BOS/360 (IBM's Basic Operating System) DECsys TOS/360 (IBM's Tape Operating System) Livermore Time Sharing System (LTSS) Multics (MIT, GE, Bell Labs for the GE-645) (announced) Pick operating system SIPROS 66 (Simultaneous Processing Operating System) THE multiprogramming system (Technische Hogeschool Eindhoven) development TSOS (later VMOS) (RCA) 1966 DOS/360 (IBM's Disk Operating System) GEORGE 1 & 2 for ICT 1900 series Mod 1 Mod 2 Mod 8 MS/8 (Richard F. Lary's DEC PDP-8 system) MSOS (Mass Storage Operating System) OS/360 (IBM's primary OS for its S/360 series) PCP and MFT (shipped) RAX Remote Users of Shared Hardware (RUSH), a time-sharing system developed by Allen-Babcock for the IBM 360/50 SODA for Elwro's Odra 1204 Universal Time-Sharing System (XDS Sigma series) 1967 CP-40, predecessor to CP-67 on modified IBM System/360 Model 40 CP-67 (IBM, also known as CP/CMS) Conversational Programming System (CPS), an IBM time-sharing system under OS/360 Michigan Terminal System (MTS) (time-sharing system for the IBM S/360-67 and successors) ITS (MIT's Incompatible Timesharing System for the DEC PDP-6 and PDP-10) OS/360 MVT ORVYL (Stanford University's time-sharing system for the IBM S/360-67) TSS/360 (IBM's Time-sharing System for the S/360-67, never officially released, canceled in 1969 and again in 1971) WAITS (SAIL, Stanford Artificial Intelligence Laboratory, time-sharing system for DEC PDP-6 and PDP-10, later TOPS-10) 1968 Airline Control Program (ACP) (IBM) B1 (NCR Century series) CALL/360, an IBM time-sharing system for System/360 HP Real-Time Executive (HP RTE) – Hewlett-Packard HP Time-Shared BASIC (HP TSB) – Hewlett-Packard (time-sharing system for the HP 2000) THE multiprogramming system (Eindhoven University of Technology) publication TSS/8 (DEC for the PDP-8) VP/CSS 1969 B2 (NCR Century series) B3 (NCR Century series) GEORGE 3 For ICL 1900 series MINIMOP Multics (MIT, GE, Bell Labs for the GE-645 and later the Honeywell 6180) (opened for paying customers in October) RC 4000 Multiprogramming System (RC) TENEX (Bolt, Beranek and Newman for DEC systems, later TOPS-20) Unics (later Unix) (AT&T, initially on DEC computers) Xerox Operating System == 1970s == 1970 DOS-11 (PDP-11) 1971 EMAS Kronos RSTS-11 2A-19 (First released version; PDP-11) RSX-15 OS/8 1972 B4 (NCR Century series) COS-300 Data General RDOS Edos MUSIC/SP OS/4 OS 1100 OS/2000 (Honeywell 2000-series) Operating System/Virtual Storage 1 (OS/VS1) Operating System/Virtual Storage 2 R1 (OS/VS2 SVS) PRIMOS (written in FORTRAN IV, that didn't have pointers, while later versions, around version 18, written in a version of PL/I, called PL/P) Virtual Machine/Basic System Extensions Program Product (BSEPP or VM/SE) Virtual Machine/System Extensions Program Product (SEPP or VM/BSE) Virtual Machine Facility/370 (VM/370), sometimes known as VM/CMS 1973 Эльбрус-1 (Elbrus-1) – Soviet computer – created using high-level language uЭль-76 (AL-76/ALGOL 68) Alto OS CP-V (Control Program V) RSX-11D RT-11 VME – implementation language S3 (ALGOL 68) 1974 ACOS-2 (NEC) ACOS-4 ACOS-6 CP/M DOS-11 V09-20C (Last stable release, June 1974) Hydra – capability-based, multiprocessing OS kernel MONECS Multi-Programming Executive (MPE) – Hewlett-Packard Operating System/Virtual Storage 2 R2 (MVS) OS/7 OS/16 OS/32 Sintran III 1975 BS2000 V2.0 (First released version) COS-350 ISIS NOS (Control Data Corporation) OS/3 (Univac) VS/9 (formerly RCA's TSOS, later named VMOS) Version 6 Unix XVM/DOS XVM/RSX 1976 Cambridge CAP computer – all operating system procedures written in ALGOL 68C, with some closely associated protected procedures in BCPL Cray Operating System DX10 FLEX TOPS-20 TX990/TXDS Tandem Nonstop OS v1 Thoth 1977 1BSD AMOS KERNAL OASIS operating system OS68 OS4000 RMX-80 System 88 (Exec) System Support Program (IBM System/34 and System/36) TRSDOS Virtual Memory System (VMS) V1.0 (Initial commercial release, October 25) VRX (Virtual Resource eXecutive) VS Virtual Memory Operating System 1978 2BSD Apple DOS Control Program Facility (IBM System/38) Cray Time Sharing System (CTSS) DPCX (IBM) DPPX (IBM) HDOS KSOS – secure OS design from Ford Aerospace KVM/370 – security retro-fit of IBM VM/370 Lisp machine (CADR) MVS/System Extensions (MVS/SE) OS4 (Naked Mini 4) PTDOS TRIPOS UCSD p-System (First released version) Z80-RIO 1979 Atari DOS 3BSD CP-6 Idris MP/M MVS/System Extensions R2 (MVS/SE2) NLTSS POS Sinclair BASIC Transaction Processing Facility (TPF) (IBM) UCLA Secure UNIX – an early secure UNIX OS based on security kernel UNIX/32V DOS/VSE Version 7 Unix == 1980s == 1980 86-DOS AOS/VS (Data General) Business Operating System CTOS DOSPLUS (TRS-80) MVS/System Product (MVS/SP) V1 NewDos/80 OS-9 RMX-86 RS-DOS SOS Virtual Machine/System Product (VM/SP) Xenix 1981 Acorn MOS Aegis SR1 (First Apollo/DOMAIN systems shipped on March 27) CP/M-86 DRX (Distributed Resource Executive) iMAX – OS for Intel's iAPX 432 capability machine MCS (Multi-user Control System) MS-DOS PC DOS Pilot (Xerox Star operating system) UNOS UTS V VERSAdos VRTX VSOS (Virtual Storage Operating System) Xinu first release 1982 Commodore DOS LDOS (By Logical Systems, Inc. – for the Radio Shack TRS-80 Models I, II & III) PCOS (Olivetti M20) pSOS QNX Stratus VOS Sun UNIX (later SunOS) 0.7 Ultrix Unix System III VAXELN 1983 Coherent DNIX EOS GNU (project start) Lisa Office System 7/7 LOCUS – UNIX compatible, high reliability, distributed OS MVS/System Product V2 (MVS/Extended Architecture, MVS/XA) Novell NetWare (S-Net) PERPOS ProDOS RTU (Real-Time Unix) STOP – TCSEC A1-class, secure OS for SCOMP hardware SunOS 1.0 VSE/System Package (VSE/SP) Version 1 1984 AMSDOS CTIX (Unix variant) DYNIX Mac OS (System 1.0) MSX-DOS NOS/VE PANOS PC/IX ROS Sinclair QDOS SINIX UNICOS Venix 2.0 Virtual Machine/Extended Architecture Migration Assistance (VM/XA MA) 1985 AmigaOS Atari TOS DG/UX DOS Plus Graphics Environment Manager Harmony MacOS 2 MIPS RISC/os Oberon – written in Oberon SunOS 2.0 Version 8 Unix Virtual Machine/Extended Architecture System Facility (VM/XA SF) Windows 1.0 Windows 1.01 Xenix 2.0 1986 AIX 1.0 Cronus distributed OS FlexOS GEMSOS – TCSEC A1-class, secure kernel for BLACKER VPN & GTNP GEOS Genera 7.0 HP-UX MacOS 3 SunOS 3.0 TR-DOS TRIX Version 9 Unix 1987 Arthur (much improved version came in 1989 under the name RISC OS) BS2000 V9.0 IRIX (3.0 is first SGI version) MacOS 4 MacOS 5 MDOS MINIX 1.0 OS/2 (1.0) PC-MOS/386 Topaz – semi-distributed OS for DEC Firefly workstation written in Modula-2+ and garbage collected VxWorks Windows 2.0 1988 A/UX (Apple Computer) AOS/VS II (Data General) CP/M rebranded as DR-DOS Flex machine – tagged, capability machine with OS and other software written

    Read more →
  • Distributed operating system

    Distributed operating system

    A distributed operating system is system software over a collection of independent software, networked, communicating, and physically separate computational nodes. They handle jobs which are serviced by multiple CPUs. Each individual node holds a specific software subset of the global aggregate operating system. Each subset is a composite of two distinct service provisioners. The first is a ubiquitous minimal kernel, or microkernel, that directly controls that node's hardware. Second is a higher-level collection of system management components that coordinate the node's individual and collaborative activities. These components abstract microkernel functions and support user applications. The microkernel and the management components collection work together. They support the system's goal of integrating multiple resources and processing functionality into an efficient and stable system. This seamless integration of individual nodes into a global system is referred to as transparency, or single system image; describing the illusion provided to users of the global system's appearance as a single computational entity. == Description == A distributed OS provides the essential services and functionality required of an OS but adds attributes and particular configurations to allow it to support additional requirements such as increased scale and availability. To a user, a distributed OS works in a manner similar to a single-node, monolithic operating system. That is, although it consists of multiple nodes, it appears to users and applications as a single-node. Separating minimal system-level functionality from additional user-level modular services provides a "separation of mechanism and policy". Mechanism and policy can be simply interpreted as "what something is done" versus "how something is done," respectively. This separation increases flexibility and scalability. == Overview == === The kernel === At each locale (typically a node), the kernel provides a minimally complete set of node-level utilities necessary for operating a node's underlying hardware and resources. These mechanisms include allocation, management, and disposition of a node's resources, processes, communication, and input/output management support functions. Within the kernel, the communications sub-system is of foremost importance for a distributed OS. In a distributed OS, the kernel often supports a minimal set of functions, including low-level address space management, thread management, and inter-process communication (IPC). A kernel of this design is referred to as a microkernel. Its modular nature enhances reliability and security, essential features for a distributed OS. === System management === System management components are software processes that define the node's policies. These components are the part of the OS outside the kernel. These components provide higher-level communication, process and resource management, reliability, performance and security. The components match the functions of a single-entity system, adding the transparency required in a distributed environment. The distributed nature of the OS requires additional services to support a node's responsibilities to the global system. In addition, the system management components accept the "defensive" responsibilities of reliability, availability, and persistence. These responsibilities can conflict with each other. A consistent approach, balanced perspective, and a deep understanding of the overall system can assist in identifying diminishing returns. Separation of policy and mechanism mitigates such conflicts. === Working together as an operating system === The architecture and design of a distributed operating system must realize both individual node and global system goals. Architecture and design must be approached in a manner consistent with separating policy and mechanism. In doing so, a distributed operating system attempts to provide an efficient and reliable distributed computing framework allowing for an absolute minimal user awareness of the underlying command and control efforts. The multi-level collaboration between a kernel and the system management components, and in turn between the distinct nodes in a distributed operating system is the functional challenge of the distributed operating system. This is the point in the system that must maintain a perfect harmony of purpose, and simultaneously maintain a complete disconnect of intent from implementation. This challenge is the distributed operating system's opportunity to produce the foundation and framework for a reliable, efficient, available, robust, extensible, and scalable system. However, this opportunity comes at a very high cost in complexity. === The price of complexity === In a distributed operating system, the exceptional degree of inherent complexity could easily render the entire system an anathema to any user. As such, the logical price of realizing a distributed operation system must be calculated in terms of overcoming vast amounts of complexity in many areas, and on many levels. This calculation includes the depth, breadth, and range of design investment and architectural planning required in achieving even the most modest implementation. These design and development considerations are critical and unforgiving. For instance, a deep understanding of a distributed operating system's overall architectural and design detail is required at an exceptionally early point. An exhausting array of design considerations are inherent in the development of a distributed operating system. Each of these design considerations can potentially affect many of the others to a significant degree. This leads to a massive effort in balanced approach, in terms of the individual design considerations, and many of their permutations. As an aid in this effort, most rely on documented experience and research in distributed computing power. == History == Research and experimentation efforts began in earnest in the 1970s and continued through the 1990s, with focused interest peaking in the late 1980s. A number of distributed operating systems were introduced during this period; however, very few of these implementations achieved even modest commercial success. Fundamental and pioneering implementations of primitive distributed operating system component concepts date to the early 1950s. Some of these individual steps were not focused directly on distributed computing, and at the time, many may not have realized their important impact. These pioneering efforts laid important groundwork, and inspired continued research in areas related to distributed computing. In the mid-1970s, research produced important advances in distributed computing. These breakthroughs provided a solid, stable foundation for efforts that continued through the 1990s. The accelerating proliferation of multi-processor and multi-core processor systems research led to a resurgence of the distributed OS concept. === The DYSEAC === One of the first efforts was the DYSEAC, a general-purpose synchronous computer. In one of the earliest publications of the Association for Computing Machinery, in April 1954, a researcher at the National Bureau of Standards – now the National Institute of Standards and Technology (NIST) – presented a detailed specification of the DYSEAC. The introduction focused upon the requirements of the intended applications, including flexible communications, but also mentioned other computers: Finally, the external devices could even include other full-scale computers employing the same digital language as the DYSEAC. For example, the SEAC or other computers similar to it could be harnessed to the DYSEAC and by use of coordinated programs could be made to work together in mutual cooperation on a common task… Consequently[,] the computer can be used to coordinate the diverse activities of all the external devices into an effective ensemble operation. The specification discussed the architecture of multi-computer systems, preferring peer-to-peer rather than master-slave. Each member of such an interconnected group of separate computers is free at any time to initiate and dispatch special control orders to any of its partners in the system. As a consequence, the supervisory control over the common task may initially be loosely distributed throughout the system and then temporarily concentrated in one computer, or even passed rapidly from one machine to the other as the need arises. …the various interruption facilities which have been described are based on mutual cooperation between the computer and the external devices subsidiary to it, and do not reflect merely a simple master-slave relationship. This is one of the earliest examples of a computer with distributed control. The Dept. of the Army reports certified it reliable and that it passed all acceptance tests in April 1954. It was completed and delivered on time, in May 1954. This was a "portable comput

    Read more →
  • Memory color effect

    Memory color effect

    The memory color effect is the phenomenon that the canonical hue of a type of object acquired through experience (e.g. the sky, a leaf, or a strawberry) can directly modulate the appearance of the actual colors of objects. Human observers acquire memory colors through their experiences with instances of that type. For example, most human observers know that an apple typically has a reddish hue; this knowledge about the canonical color which is represented in memory constitutes a memory color. As an example of the effect, normal human trichromats, when presented with a gray banana, often perceive the gray banana as being yellow - the banana's memory color. In light of this, subjects typically adjust the color of the banana towards the color blue - the opponent color of yellow - when asked to adjust its surface to gray to cancel the subtle activation of banana's memory color. Subsequent empirical studies have also shown the memory color effect on man-made objects (e.g. smurfs, German mailboxes), the effect being especially pronounced for blue and yellow objects. To explain this, researchers have argued that because natural daylight shifts from short wavelengths of light (i.e., bluish hues) towards light of longer wavelengths (i.e., yellowish-orange hues) during the day, the memory colors for blue and yellow objects are recruited by the visual system to a higher degree to compensate for this fluctuation in illumination, thereby providing a stronger memory color effect. == Form identification == Memory color plays a role when detecting an object. In a study where participants were given objects, such as an apple, with two alternate forms for each, a crooked apple and a circular apple, researchers changed the colors of the alternate forms and asked if they could identify them. Most of the participants answered "unsure," suggesting that we use memory color when identifying an object. The research redefined memory color as a phenomenon when "a form's identity affects the phenomenal hue of that form." == Color effect on memorization == Memory color effect can be derived from the human instinct to memorize objects better. Comparing the effect of recognizing gray-scaled images and colored images, results showed that people were able to recall colored images 5% higher compared to gray-scaled images. An important factor was that higher level of contrast between the object and background color influences memory. In a specific study related to this, participants reported that colors were 5% to 10% easier to recognize compared to black and white. == Color constancy and memory color effect == Color constancy is the phenomenon where a surface to appear to be of the same color under a wide rage of illumination. A study tested two hypotheses with regards to color memory; the photoreceptor hypothesis and the surface reflectance hypothesis. The test color was surround either by various color patches forming a complex pattern or a uniform “grey” field at the same chromaticity as that of the illuminant. The test color was presented on a dark background for the control group. It was observed that complex surround results where in line with the surface-reflectance hypothesis and not the photoreceptor hypothesis, showing that the accuracy and precision of color memory are fundamentals to understanding the phenomenon of color constancy. == Significance to the evolution of trichromacy == While objects that possess canonical hues make up a small percentage of the objects which populate humans’ visual experience, the human visual system evolved in an environment populated with objects that possess canonical hues. This suggests that the memory color effect is related to the emergence of trichromacy because it has been argued that trichromacy evolved to optimize the ability to detect ripe fruits—objects that appear in canonical hues. == In perception research == In perception research, the memory color effect is cited as evidence for the opponent color theory, which states that four basic colors can be paired with its opponent color: red—green, blue—yellow. This explains why participants adjust the ripe banana color to a blueish tone to make its memory color yellow as gray. Researchers have also found empirical evidence that suggests memory color is recruited by the visual system to achieve color constancy. For example, participants had a lower percentage of color constancy when looking at a color incongruent scene, such as a purple banana, compared to a color diagnostical scene, a yellow banana. This suggests that color constancy is influenced by the color of objects that we are familiar with, which the memory color effect takes part.

    Read more →
  • T.38

    T.38

    T.38 is an ITU recommendation for allowing transmission of fax over IP networks (FoIP) in real time. == History == The T.38 fax relay standard was devised in 1998 as a way to transport faxes across IP networks between existing Group 3 (G3) fax terminals. T.4 and related fax standards were published by the ITU in 1980, before the rise of the Internet. In the late 1990s, VoIP, or voice over IP, began to gain ground as an alternative to the conventional public switched telephone network (PSTN). However, because most VoIP systems are optimized (through their use of aggressive lossy bandwidth-saving compression) for voice rather than data calls, conventional fax machines worked poorly or not at all on them due to the network impairments such as delay, jitter, packet loss, and so on. Thus, some way of transmitting fax over IP was needed. == Overview == In practical scenarios, a T.38 fax call has at least part of the call being carried over PSTN, although this is not required by the T.38 definition, and two T.38 devices can send faxes to each other. This particular type of device is called Internet-Aware Fax device, or IAF, and it is capable of initiating or completing a fax call towards the IP network. The typical scenario where T.38 is used is – T.38 fax relay – where a T.30 fax device sends a fax over PSTN to a T.38 fax gateway which converts or encapsulates the T.30 protocol into a T.38 data stream. This is then sent either to a T.38-enabled end point such as fax machine or fax server or another T.38 gateway that converts it back to a PSTN PCM or analog signal and terminates the fax on a T.30 device. The T.38 recommendation defines the use of both TCP and UDP to transport T.38 packets. Implementations tend to use UDP, due to TCP's requirement for acknowledgement packets and resulting retransmission during packet loss, which introduces delays. When using UDP, T.38 copes with packet loss by using redundant data packets. T.38 is not a call setup protocol, thus the T.38 devices need to use standard call setup protocols to negotiate the T.38 call, e.g. H.323, SIP & MGCP. == Operation == There are two primary ways that fax transactions are conveyed across packet networks. The T.37 standard specifies how a fax image is encapsulated in e-mail and transported, ultimately, to the recipient using a store-and-forward process through intermediary entities. T.38, however, defines a protocol that supports the use of the T.30 protocol in both the sender and recipient terminals. (See diagram above.) T.38 lets one transmit a fax across an IP network in real time, just as the original G3 fax standards did for the traditional (time-division multiplexed (TDM)) network, also called the public switched telephone network or PSTN. A special protocol is needed for real-time fax over IP (Internet Protocol) since existing fax terminals only supported PSTN connections, where the information flow was generally smooth and uninterrupted, as opposed to the jittery arrival of IP packets. The trick was to come up with a protocol that makes the IP network “invisible” to the endpoint fax terminals, which would mean the user of a legacy fax terminal need not know that the fax call was traversing an IP network. The network interconnections supported by T.38 are shown above. The two fax terminals on either side of the figure communicate using the T.30 fax protocol published by the ITU in 1980. Interconnection of the PSTN with the IP packet network requires a “gateway” between the PSTN and IP networks. PSTN-IP Gateways support TDM voice on the PSTN side and VoIP and FoIP on the packet side. For voice sessions, the gateway will take in voice packets on the IP side, accumulate a few packets to ensure a smooth flow of TDM data upon their release, and then meter them out over TDM where they eventually are heard by a human or stored on a computer for later playback. The gateway employs packet-management techniques to enhance the quality of the speech in the presence of network errors by taking advantage of the natural ability of a listener to not really hear the occasional missing or repeated packet. But facsimile data are transmitted by modems, which aren't as forgiving as the human ear is for speech. Missing packets will often cause a fax session to fail at worst or create one or more image lines in error at best. So the job of T.38 is to “fool” the terminal into “thinking” that it's communicating directly with another T.30 terminal. It will also correct for network delays with so-called spoofing techniques, and missing or delayed packets with fax-aware buffer-management techniques. Spoofing refers to the logic implemented in the protocol engine of a T.38 relay that modifies the protocol commands and responses on the TDM side to keep network delays on the IP side from causing the transaction to fail. This is done, for example, by padding image lines or deliberately causing a message to be re-transmitted to render network delays transparent to the sending/receiving fax terminals. Networks that do not have packet loss or excessive delay can exhibit acceptable fax performance without T.38, provided the PCM clocks in all gateways are of very high accuracy (explained below). T.38 not only removes the effect of PCM clocks not being synchronized, but also reduces the required network bandwidth by a factor of 10, while it corrects for packet loss and delay. === Bandwidth reduction === As shown in the diagram below, a T.38 gateway is composed of two primary elements: the fax modems and the T.38 subsystem. The fax modems modulate and demodulate the PCM samples of the analog data, turning the sampled-data representation of the fax terminal's analog signal to its binary translation, and vice versa. The PSTN network samples the analog signal of a voice or modem signal (it doesn't know the difference) 8,000 times per second (SPS), and encodes them as 8-bit data bytes. This means 8000 samples-per-second times 8-bits per sample, or 64,000 bits per second (bit/s) to represent the modem (or voice) data in one direction. For both directions the modem transaction consumes 128,000 bits of network bandwidth. However, the typical modem in a fax terminal transmits the image data at 33,600 bit/s, so if the analog data are first converted to the digital content they represent, only 33,600 bits (plus network overhead of a few bytes) are needed. And since T.30 fax is a half-duplex protocol, the network is only needed for one direction at a time. Refer to RFC 3261 === PCM clock synchronization === In the diagram above, there is a sample-rate clock in the fax terminal and one in the gateway's modems that is used to trigger the sampling of the analog line 8,000 times per second. These clocks are usually quite accurate, but in some low-cost terminal adapters (a one or two-line gateway) the PCM clock can be surprisingly inaccurate. If the terminal is sending data to the gateway, and the gateway's clock is too slow, the buffers (jitter buffers) in the gateway will eventually overflow, causing the transaction to fail. Since the difference is often quite small, this problem occurs on long, detailed fax images giving the clocks more time to cause the jitter buffer in gateway to either underflow or overflow, which is just the same as missing or duplicated packets. === Packet loss === T.38 provides facilities to eliminate the effects of packet loss through data redundancy. When a packet is sent, either zero, one, two, three, or even more of the previously sent packets are repeated. (The specification does not impose a limit.) This increases the network bandwidth required (it's still much less than not using T.38) but it allows the receiving gateway to reconstruct the complete packet sequence, even with a fairly high level of packet loss. == Related standards == T.4 is the umbrella specification for fax. It specifies the standard image sizes, two forms of image-data compression (encoding), the image-data format, and references, T.30 and the various modem standards. T.6 specifies a compression scheme that reduces the time required to transmit an image by roughly 50-percent. T.30 specifies the procedures that a sending and receiving terminal use to set up a fax call, determine the image size, encoding, and transfer speed, the demarcation between pages, and the termination of the call. T.30 also references the various modem standards. V.21, V.27ter, V.29, V.17, V.34: ITU modem standards used in facsimile. The first three were ratified prior to 1980, and were specified in the original T.4 and T.30 standards. V.34 was published for fax in 1994. T.37 The ITU standard for sending a fax-image file via e-mail to the intended recipient of a fax. G.711 pass through - this is where the T.30 fax call is carried in a VoIP call encoded as audio. This is sensitive to network packet loss, jitter and clock synchronization. When using voice high-compression encoding techniques such as, but not limited to, G.729, some fax tonal signa

    Read more →
  • Digital artifactual value

    Digital artifactual value

    Digital artifactual value, a preservation term, is the intrinsic value of a digital object, rather than the informational content of the object. Though standards are lacking, born-digital objects and digital representations of physical objects may have a value attributed to them as artifacts. == Intrinsic value in analog materials == With respect to analog or non-digital materials, artifacts are determined to have singular research or archival value if they possess qualities and characteristics that make them the only acceptable form for long-term preservation. These qualities and characteristics are commonly referred to as the item's intrinsic value and form the basis upon which digital artifactual value is currently evaluated. Artifactual value based on this idea is predicated upon the artifact's originality, faithfulness, fixity, and stability. The intrinsic value of a particular object, as interpreted by archival professionals, largely determines the selection process for archives. The National Archives and Records Administration Committee on Intrinsic Value in "Intrinsic Value in Archival Material" classified an analog object as having intrinsic value if it possessed one or more of the follow qualities: Physical form that may be the subject for study if the records provide meaningful documentation or significant examples of the form. Aesthetic or artistic quality. Unique or curious physical features. Age that provides a quality of uniqueness. Value for use in exhibits. Questionable authenticity, date, author, or other characteristic that is significant and ascertainable by physical examination. General and substantial public interest because of direct association with famous or historically significant people, places, things, issues or events. Significance as documentation of the establishment or continuing legal basis of an agency or institution. Significance as documentation of the formulation of policy at the highest executive levels when the policy has significance and broad effect throughout or beyond the agency or institution. Other archival professionals such as Lynn Westney have written that the characteristics of materials exhibiting intrinsic value include age, content, usage, particularities of creation, signatures, and attached seals. Westney and others have stated that paper-based artifacts can be thought to have evidentiary value, or significant contextual markings, insofar that the original manifestation of the artifact can attest to the originality, faithfulness or authenticity, fixity, and stability of the content. For other analog materials, properly articulating intrinsic value remains essential for determining artifactual value. Similar to paper-based objects in many respects, artifactual value for images typically takes into account artistic value, age, authorial prestige, significant provenance, and institutional priorities. Analog audio preservation is based upon similar factors, including the cultural value of the item, its historical uniqueness, the estimated longevity of the medium, the current condition of the item, and the state of playback equipment, among other things. == Analog conventions in a digital realm == The standard definition of artifactual value, as it has applied to analog or non-digital materials in the twentieth century, is based upon a set of conventions which do not ordinarily apply to digital objects in toto. The Council on Library and Information Resources (CLIR) has stated that printed texts and other paper-based manuscripts, when considered as objects, are imbued with meaning distilled from a general set of understandings inherent to these conventions: The object is of a fixed and stable composition/form. Authorship and intellectual property are a recognizable concept. Duplication is possible. Fungibility of informational content (or, in other words, the ability to be replaced by another identical object). These conventions are important to consider because they help to describe the physical and even metaphysical relationship between a document's content and its physical manifestation. The underpinnings of this relationship are not identical and do not apply with the same degree of clarity to an immaterial digital realm. The idea of fixity with regard to printed materials, for example, is largely predicated on the notion that an object has been recorded on a relatively stable medium. The physical presence of a print text serves as proof of its authenticity as an object or artifact, as well as its scarcity and uniqueness in relation to other print materials. Variations in the chemical properties and storage conditions of print-based materials, as well as other cultural variables, certainly impact the fixity or stability of print materials, but there is little controversy about determining its fundamental existence or originality. However, uniqueness in the physical, paper-based sense does not translate to a digital realm in which immaterial objects are subject to theoretically infinite levels of reproduction and dissemination. Born-digital and digital surrogates may or may not look any different from each other on a server, and alterations can be made without explicit notice to the user. These alterations are normally called migration events, or actions taken on the digital object that change the original object's composition. They can enact subtle but fundamental alterations to the original document, thereby compromising its existence as an original object. Furthermore, because the tools used to generate and access digital objects have historically evolved quite rapidly, issues of playback obsolescence, incapability, data loss, and broken pathways to information have changed traditional ideas of fixity and stability. Therefore, artifactual value in a digital realm requires a modified set of generalized standards for determining artifactual originality. Michael J. Giarlo and Ronald Jantz, only two of many, have posited a list of methods for establishing digital intrinsic value by way of careful metadata generation and records maintenance. In their report, a digital original possesses three key characteristics that distinguishes it from identical copies. These include continuous verification and re-verification of the document's digital signature starting from the date of creation; retaining versions and recordings of all changes to the object in an audit trail; and having the archival master contain the creation date of the digital object. They also reported that originality in digital sources could be verified or produced by the following techniques: Digital object is given a date-time stamp that's automatically inserted into the METS-XML header upon creation. Date-time is inserted into archival metadata. Encapsulation. Digital signatures. == The role of digital surrogates == Digital surrogates are considered a utility for aiding in the preservation and increased access of certain artifacts. However, digital surrogates can have different utilities for objects depending on the nature of the original artifact and the condition the artifact is in. In 2001 the Council on Library and Information Resources (CLIR) published a report on the artifact in library collections. The CLIR states that the utility of the digital surrogate can be determined by dividing the original material (artifact) into two different categories, artifacts that are rare and those that are not. These two categories can be further divided by two categories, artifacts that are frequently used and those that are not. === Materials that are frequently used and not rare === According to the CLIR "it is not obvious that digital surrogates provide all the functionality, all the information, or all the aesthetic value of originals. Therefore, while it may be sensible to recommend that digital surrogates be used to reduce the cost and increase the availability of library holdings that circulate frequently, the decision to deaccession a physical object in library collections and replace it with a digital surrogate should be based on a careful assessment of the way in which library patrons use the original object or objects of its kind." === Materials that are infrequently used and not rare === Keeping the original is always the best solution for libraries and especially archives but in the case of libraries where an artifact is not rare or used infrequently there must be a barometer that is developed to help "balance functionality with actual use in order to help decide when digital surrogates that provide most of the functionality of originals are acceptable." === Materials that are rare and frequently used === A professional in the field of Library and Information Science (LIS) would almost certainly not argue that a digital surrogate could replace a rare object. However, in the case of a rare object that is falling into poor shape due to heavy use a digital surrogate could be extremely useful in reducing the wear a

    Read more →
  • Media Block

    Media Block

    A Media Block or Integrated Media Block (IMB) is a component in a digital cinema projection system. Its purpose is to convert the Digital Cinema Package (DCP) content into data that ultimately produces picture and sound in a theater in compliance with DCI anti-piracy encryption requirements. == Terminology == DCI specification allows for two different security system architectures. In the first the Media Block is outside of the projector. This design is simply referred to as a "Media Block" and is typically a device attached directly to the motherboard of a Digital Cinema server. The media block is usually connected to the projector by dual-link SDI cables. Such media block is limited to processing 2K output, downscaling 4K DCPs if necessary. The second architecture describes an "Integrated Media Block". This refers to a device attached and integrated directly into the projector, which receives image data from the server, usually via a cat6 Ethernet connection. They can process 2K and 4K output. Some hardware implementations integrate the entire server on a single board and are able to work both as a MB as well as an IMB. == Security features == All security functions are contained within a Secure Processing Block (SPB), a tamper-proof physical device. Upon ingestion into a DCP server, Key Delivery Messages (KDM) are stored on flash memory in the media block or IMB. A KDM is written to enable the playback of a specific DCP during a specific time window and on a specific media block or IMB, identified by its serial number during the authoring process. Media blocks and IMBs also contain a secure clock that is set in the factory cannot be altered by the end user, which the DCP servers to which they are attached use to determine showtimes. The secure clock prevents theaters from showing encrypted movies outside the times authorized by the KDM (e.g. after it has expired) by simply changing the date and time in the server's BIOS. Media blocks and IMBs also typically include anti-tamper devices, designed to self-destruct the unit if unauthorized modification of its hardware, software or secure clock is attempted.

    Read more →
  • Evaluation of binary classifiers

    Evaluation of binary classifiers

    Evaluation of a binary classifier typically assigns a numerical value, or values, to a classifier that represent its accuracy. An example is error rate, which measures how frequently the classifier makes a mistake. There are many metrics that can be used; different fields have different preferences. For example, in medicine sensitivity and specificity are often used, while in computer science precision and recall are preferred. An important distinction is between metrics that are independent of the prevalence or skew (how often each class occurs in the population), and metrics that depend on the prevalence – both types are useful, but they have very different properties. Often, evaluation is used to compare two methods of classification, so that one can be adopted and the other discarded. Such comparisons are more directly achieved by a form of evaluation that results in a single unitary metric rather than a pair of metrics. == Contingency table == Given a data set, a classification (the output of a classifier on that set) gives two numbers: the number of positives and the number of negatives, which add up to the total size of the set. To evaluate a classifier, one compares its output to another reference classification – ideally a perfect classification, but in practice the output of another gold standard test – and cross tabulates the data into a 2×2 contingency table, comparing the two classifications. One then evaluates the classifier relative to the gold standard by computing summary statistics of these 4 numbers. Generally these statistics will be scale invariant (scaling all the numbers by the same factor does not change the output), to make them independent of population size, which is achieved by using ratios of homogeneous functions, most simply homogeneous linear or homogeneous quadratic functions. Say we test some people for the presence of a disease. Some of these people have the disease, and our test correctly says they are positive. They are called true positives (TP). Some have the disease, but the test incorrectly claims they don't. They are called false negatives (FN). Some don't have the disease, and the test says they don't – true negatives (TN). Finally, there might be healthy people who have a positive test result – false positives (FP). These can be arranged into a 2×2 contingency table (confusion matrix), conventionally with the test result on the vertical axis and the actual condition on the horizontal axis. These numbers can then be totaled, yielding both a grand total and marginal totals. Totaling the entire table, the number of true positives, false negatives, true negatives, and false positives add up to 100% of the set. Totaling the columns (adding vertically) the number of true positives and false positives add up to 100% of the test positives, and likewise for negatives. Totaling the rows (adding horizontally), the number of true positives and false negatives add up to 100% of the condition positives (conversely for negatives). The basic marginal ratio statistics are obtained by dividing the 2×2=4 values in the table by the marginal totals (either rows or columns), yielding 2 auxiliary 2×2 tables, for a total of 8 ratios. These ratios come in 4 complementary pairs, each pair summing to 1, and so each of these derived 2×2 tables can be summarized as a pair of 2 numbers, together with their complements. Further statistics can be obtained by taking ratios of these ratios, ratios of ratios, or more complicated functions. The contingency table and the most common derived ratios are summarized below; see sequel for details. Note that the rows correspond to the condition actually being positive or negative (or classified as such by the gold standard), as indicated by the color-coding, and the associated statistics are prevalence-independent, while the columns correspond to the test being positive or negative, and the associated statistics are prevalence-dependent. There are analogous likelihood ratios for prediction values, but these are less commonly used, and not depicted above. == Pairs of metrics == Often accuracy is evaluated with a pair of metrics composed in a standard pattern. === Sensitivity and specificity === The fundamental prevalence-independent statistics are sensitivity and specificity. Sensitivity or True Positive Rate (TPR), also known as recall, is the proportion of people that tested positive and are positive (True Positive, TP) of all the people that actually are positive (Condition Positive, CP = TP + FN). It can be seen as the probability that the test is positive given that the patient is sick. With higher sensitivity, fewer actual cases of disease go undetected (or, in the case of the factory quality control, fewer faulty products go to the market). Specificity (SPC) or True Negative Rate (TNR) is the proportion of people that tested negative and are negative (True Negative, TN) of all the people that actually are negative (Condition Negative, CN = TN + FP). As with sensitivity, it can be looked at as the probability that the test result is negative given that the patient is not sick. With higher specificity, fewer healthy people are labeled as sick (or, in the factory case, fewer good products are discarded). The relationship between sensitivity and specificity, as well as the performance of the classifier, can be visualized and studied using the Receiver Operating Characteristic (ROC) curve. In theory, sensitivity and specificity are independent in the sense that it is possible to achieve 100% in both (such as in the red/blue ball example given above). In more practical, less contrived instances, however, there is usually a trade-off, such that they are inversely proportional to one another to some extent. This is because we rarely measure the actual thing we would like to classify; rather, we generally measure an indicator of the thing we would like to classify, referred to as a surrogate marker. The reason why 100% is achievable in the ball example is because redness and blueness is determined by directly detecting redness and blueness. However, indicators are sometimes compromised, such as when non-indicators mimic indicators or when indicators are time-dependent, only becoming evident after a certain lag time. The following example of a pregnancy test will make use of such an indicator. Modern pregnancy tests do not use the pregnancy itself to determine pregnancy status; rather, human chorionic gonadotropin is used, or hCG, present in the urine of gravid females, as a surrogate marker to indicate that a woman is pregnant. Because hCG can also be produced by a tumor, the specificity of modern pregnancy tests cannot be 100% (because false positives are possible). Also, because hCG is present in the urine in such small concentrations after fertilization and early embryogenesis, the sensitivity of modern pregnancy tests cannot be 100% (because false negatives are possible). === Positive and negative predictive values === In addition to sensitivity and specificity, the performance of a binary classification test can be measured with positive predictive value (PPV), also known as precision, and negative predictive value (NPV). The positive prediction value answers the question "If the test result is positive, how well does that predict an actual presence of disease?". It is calculated as TP/(TP + FP); that is, it is the proportion of true positives out of all positive results. The negative prediction value is the same, but for negatives, naturally. ==== Impact of prevalence on predictive values ==== Prevalence has a significant impact on prediction values. As an example, suppose there is a test for a disease with 99% sensitivity and 99% specificity. If 2000 people are tested and the prevalence (in the sample) is 50%, 1000 of them are sick and 1000 of them are healthy. Thus about 990 true positives and 990 true negatives are likely, with 10 false positives and 10 false negatives. The positive and negative prediction values would be 99%, so there can be high confidence in the result. However, if the prevalence is only 5%, so of the 2000 people only 100 are really sick, then the prediction values change significantly. The likely result is 99 true positives, 1 false negative, 1881 true negatives and 19 false positives. Of the 19+99 people tested positive, only 99 really have the disease – that means, intuitively, that given that a patient's test result is positive, there is only 84% chance that they really have the disease. On the other hand, given that the patient's test result is negative, there is only 1 chance in 1882, or 0.05% probability, that the patient has the disease despite the test result. === Precision and recall === Precision and recall can be interpreted as (estimated) conditional probabilities: Precision is given by P ( C = P | C ^ = P ) {\displaystyle P(C=P|{\hat {C}}=P)} while recall is given by P ( C ^ = P | C = P ) {\displaystyle P({\hat {C}}=P|C=P)} , where C ^ {\

    Read more →
  • List of UPnP AV media servers and clients

    List of UPnP AV media servers and clients

    This is a list of UPnP AV media servers and client application or hard appliances. == UPnP AV media servers == === Software === === Cross-platform === Allonis myServer, a multi-faceted media player/organizer with a DLNA/UPnP server, controller, and renderer, including conversion. Runs on Microsoft Windows. Supports most all HTML5 devices as remote controls. Asset UPnP (DLNA compatible) from Illustrate. An audio specific UPnP/DLNA server for Windows, QNAP, macOS and Linux. Features audio WAVE/LPCM transcoding from a range of audio codecs, ReplayGain and playlists. FreeMi UPnP Media Server, very simple server, historically used to stream to the STB Freebox, based on .net/mono. Home Media Server, a free media server/player/controller for Windows, Linux, macOS, individual device settings, transcoding, external and internal subtitles, restricted device access to folders, uploading files, Internet-Radio, Internet-Television, Digital Video Broadcasting (DVB), DMR-control and "Play To", Music (Visualization), Photo (Slideshow), support for 3D-subtitles, support for BitTorrent files, Web-navigation with HTML5 player, Digital Media Renderer (DMR) emulation for AirPlay and Google Cast devices. Jellyfin, a free and open-source suite of multimedia applications designed to organize, manage, and share digital media files to networked devices. JRiver Media Center, a multi-faceted media player/organizer with a DLNA/UPnP server, controller, and renderer, including conversion. Supports Microsoft Windows, macOS and Linux. Kodi (previously XBMC), a cross platform open source software media-player/media center for Android, Apple TV, Linux, macOS and Windows. LimboMedia, a free cross platform home- and UPnP/DLNA mediaserver with android app and WebM transcoding for browser playback (build with java and FFmpeg). MinimServer, a Java-based highly configurable uPnP/DNLA music server with additional consideration given to Classical Music, supports transcoding with MinimStreamer, supports Microsoft Windows, macOS, Linux, and various NAS devices. Neutron Music Player, acts as a cross platform UPnP/DLNA Media Renderer server available for Android, iOS, BlackBerry 10 & PlayBook platforms. Supports gapless playback and has possibility to output rendered audio further to the high-resolution internal DAC or external USB DAC or another UPnP/DLNA Media Renderer with all supported DSP effects applied. Plex, a cross-platform and closed source software media player and entertainment hub for digital media, available for macOS, Microsoft Windows, Linux, as well as mobile clients for iOS (including Apple TV (2nd generation) onwards), Android, Windows Phone, and many devices such as Xbox. Supports on-the-fly transcoding of video and music. PonoMusic World. Based on the JRiver Media Center software, includes similar features along with a store for purchasing HD audio tracks. PS3 Media Server, a free cross platform Java based UPnP DLNA server especially good for AVC and other current HD media codecs with on-the-fly transcoding. Serviio, is available with a free and a pro license. It can stream media files (music, video or images) to renderer devices (e.g. a TV set, Blu-ray player, games console or mobile phone) on a local area network. TVMOBiLi, a cross platform, high performance UPnP/DLNA Media Server for Windows, macOS and Linux. TwonkyMedia server, a cross-platform multimedia server and entertainment hub for digital media, available for Android, Apple TV, iOS, Linux, macOS, Microsoft Windows, Windows Phone, and Xbox 360. Universal Media Server, a free (open source) DLNA-compliant UPnP Media Server for Windows, macOS and Linux (originally based on the PS3 Media Server). It is able to stream videos, audio and images to any DLNA-capable device. It contains more features than most paid UPnP/DLNA Media Servers. It streams to many devices including TVs (Samsung, Sony, Panasonic, LG, Philips and more.), PS3, Xbox(One/360), smartphones, Blu-ray players and more. vGet Cast, a simple, cross platform (Chrome App) DLNA server and controller for single, local video files. Vuze, an open-source Java-based BitTorrent client which contains MediaServer plugin. Wild Media Server, a media server/player/controller for Windows, Linux, macOS, individual device settings, transcoding, external and internal subtitles, restricted device access to folders, uploading files, Internet-Radio, Internet-Television, Digital Video Broadcasting (DVB), DMR-control and "Play To", Music (Visualization), Photo (Slideshow), support for 3D-subtitles, support for BitTorrent files, Web-navigation with HTML5 player, Digital Media Renderer (DMR) emulation for AirPlay and Google Cast devices. === Android === BubbleUPnP Android UPnP/DLNA server, player, controller and renderer CastLab Android UPnP/DLNA server. Pixel Media Server, Android UPnP/DLNA Media Server. Supports all popular Video and Audio files. It also support external subtitle file (SRT) Plato is an Android UPnP client app that can play videos and audio. Toaster Cast Android UPnP/DLNA server, controller and renderer vGet, Android App that can play videos embedded in websites on DLNA renderers. Media Cast UPnP, Android UPnP client app that can play videos/Audio. Media Server Pro is a DLNA server that allows individual file selections for sharing. Slick UPnP A minimal and intuitive open-source Android UPnP client app that can play video/audio. (It is not DMS) YAACC Open source UPnP controller, renderer and server app === Linux === === Microsoft Windows === Sundtek Streamingserver a native Windows TV Server providing DVB, ATSC and ISDB-T via UPnP/DLNA, it also supports streaming media files (it only supports TV devices from Sundtek). Stream What You Hear, a Windows application that streams the sound of your computer (i.e.: “what you hear”) to UPnP/DLNA device such as TVs, amps, network receivers, game consoles, etc... TVersity Media Server, a Windows application that streams multimedia content from a personal computer to UPnP, DLNA and mobile devices (Chromecast is also supported). It was the first media server to offer real-time transcoding (back in 2005). TVersity Screen Server, a Windows application that mirrors the screen of a personal computer to UPnP, DLNA and mobile devices. DVBViewer, a Windows application, mainly for TV/Radio recording/playback, but with the ability to stream live TV/radio as well as multimedia files via UPnP/DLNA. DivX, a Windows application, mainly for video encoding into DivX format, but has the ability to stream multimedia files via DLNA. foobar2000, a freeware audio player for Windows. Highly customizable, audio only. Download of dlna-extension from the developers' webpage necessary. Home Media Center, a free and open source media server compatible with DLNA. Includes web interface for streaming content to web browser (Android, iOS, ...), subtitles integration and Windows desktop streaming. This server is easy to use. KooRaRoo Media, a commercial DLNA media server and organizer for Windows. Includes on-the-fly transcoding, per-file and per-folder parental controls, powerful organizing features with dynamic playlists, Internet radio streaming, "Play To" functionality and remote device control, burned-in and external subtitles, extensive format support including RAW photo formats. Streams all files to all devices. Media Go, media player and tagger MediaMonkey, a free media player/tagger/editor with an UPnP/DLNA client and server for Microsoft Windows MusicBee, an audio player, supports UPnP via a plugin. Mezzmo, a commercial software package. Mezzmo streams music, movies, photos and subtitles to the UPnP and DLNA-enabled devices. It automatically finds and organizes music, movies and photos, imports multimedia files from iPad, iPhone, iPod, Audio CDs, iTunes, Windows Media Player and WinAmp. DLNA server supports all popular media file formats with real time transcoding to meet the device specifications. PlayOn, a commercial UPnP/DLNA media server for Windows, includes a transcoder for streaming web video. TVble, a cloud connected (Rotten tomatoes/TMDB etc.), Torrent streaming, DLNA enabled media server. Allows single file or playlist downloads. Windows Media Connect from Microsoft, a free UPnP AV MediaServer and control point (server and client) for Microsoft Windows WMC version 2.0 can be installed for usage with Windows Media Player 10 for Windows XP WMC version 3.0 can be installed for usage with Windows Media Player 11 for Windows XP WMC version 4.0 comes pre-installed on Windows Vista with its Windows Media Player 11 WMC can also refer to Windows Media Center. From the Windows Media Center entry in Wikipedia: In May 2015, Microsoft announced that Windows Media Center would be discontinued on Windows 10, and that it would be uninstalled when upgrading; but stated that those upgrading from a version of Windows that included the Media Center application would receive the paid Windows DVD Player app to maintain DVD playback functio

    Read more →
  • Flat-panel display

    Flat-panel display

    A flat-panel display (FPD) is an electronic display used to display visual content such as text or images. It is present in consumer, medical, transportation, and industrial equipment. Flat-panel displays are thin, lightweight, provide better linearity and are capable of higher resolution and contrast than typical consumer-grade TVs from earlier eras. They are usually less than 10 centimetres (3.9 in) thick. While the highest resolution for consumer-grade CRT televisions is 1080i, many interactive flat panels in the 2020s are capable of 1080p and 4K resolution. In the 2010s, portable consumer electronics such as laptops, mobile phones, and portable cameras have used flat-panel displays since they consume less power and are lightweight. As of 2016, flat-panel displays have almost completely replaced CRT displays. Most 2010s-era flat-panel displays use LCD or light-emitting diode (LED) technologies, sometimes combined. Most LCD screens are back-lit with color filters used to display colors. In many cases, flat-panel displays are combined with touch screen technology, which allows the user to interact with the display in a natural manner. For example, modern smartphone displays often use OLED panels, with capacitive touch screens. Flat-panel displays can be divided into two display device categories: volatile and static. The former requires that pixels be periodically electronically refreshed to retain their state (e.g. liquid-crystal displays (LCD)), and can only show an image when it has power. On the other hand, static flat-panel displays rely on materials whose color states are bistable, such as displays that make use of e-ink technology, and as such retain content even when power is removed. == History == The first engineering proposal for a flat-panel TV was by General Electric in 1954 as a result of its work on radar monitors. The publication of their findings gave all the basics of future flat-panel TVs and monitors. But GE did not continue with the R&D required and never built a working flat panel at that time. The first production flat-panel display was the Aiken tube, developed in the early 1950s and produced in limited numbers in 1958. This saw some use in military systems as a heads up display and as an oscilloscope monitor, but conventional technologies overtook its development. Attempts to commercialize the system for home television use ran into continued problems and the system was never released commercially. Dennis Gabor, better known as the inventor of holography, patented a flat-screen CRT in 1958. This was substantially similar to Aiken's concept, and led to a years-long patent battle. By the time the lawsuits were complete, with Aiken's patent applying in the US and Gabor's in the UK, the commercial aspects had long lapsed, and the two became friends. Around this time, Clive Sinclair came across Gabor's work and began an ultimately unsuccessful decade-long effort to commercialize it. The Philco Predicta featured a relatively flat (for its day) cathode-ray tube setup and would be the first commercially released "flat panel" upon its launch in 1958; the Predicta was a commercial failure. The plasma display panel was invented in 1964 at the University of Illinois, according to The History of Plasma Display Panels. === Liquid-crystal displays (LC displays, or LCDs) === The MOSFET (metal–oxide–semiconductor field-effect transistor, or MOS transistor) was invented by Mohamed M. Atalla and Dawon Kahng at Bell Labs in 1959, and presented in 1960. Building on their work, Paul K. Weimer at RCA developed the thin-film transistor (TFT) in 1962. It was a type of MOSFET distinct from the standard bulk MOSFET. The idea of a TFT-based LCD was conceived by Bernard J. Lechner of RCA Laboratories in 1968. B.J. Lechner, F.J. Marlowe, E.O. Nester and J. Tults demonstrated the concept in 1968 with a dynamic scattering LCD that used standard discrete MOSFETs. The first active-matrix addressed electroluminescent display was made using TFTs by T. Peter Brody's Thin-Film Devices department at Westinghouse Electric Corporation in 1968. In 1973, Brody, J. A. Asars and G. D. Dixon at Westinghouse Research Laboratories demonstrated the first thin-film-transistor liquid-crystal display. Brody and Fang-Chen Luo demonstrated the first flat active-matrix liquid-crystal display (AM LCD) using TFTs in 1974. By 1982, pocket LCD TVs based on LCD technology were developed in Japan. The 2.1-inch Epson ET-10 Epson Elf was the first color LCD pocket TV, released in 1984. In 1988, a Sharp research team led by engineer T. Nagayasu demonstrated a 14-inch full-color LCD, which convinced the electronics industry that LCD would eventually replace CRTs as the standard television display technology. As of 2013, all modern high-resolution and high-quality electronic visual display devices use TFT-based active-matrix displays. === LED displays === The first usable LED display was developed by Hewlett-Packard (HP) and introduced in 1968. It was the result of research and development (R&D) on practical LED technology between 1962 and 1968, by a research team under Howard C. Borden, Gerald P. Pighini, and Mohamed M. Atalla, at HP Associates and HP Labs. In February 1969, they introduced the HP Model 5082-7000 Numeric Indicator. It was the first alphanumeric LED display, and was a revolution in digital display technology, replacing the Nixie tube for numeric displays and becoming the basis for later LED displays. In 1977, James P Mitchell prototyped and later demonstrated what was perhaps the earliest monochromatic flat-panel LED television display. Ching W. Tang and Steven Van Slyke at Eastman Kodak built the first practical organic LED (OLED) device in 1987. In 2003, Hynix produced an organic EL driver capable of lighting in 4,096 colors. In 2004, the Sony Qualia 005 was the first LED-backlit LCD. The Sony XEL-1, released in 2007, was the first OLED television. == Common types == === Liquid-crystal display (LCD) === Field-effect LCDs are lightweight, compact, portable, cheap, more reliable, and easier on the eyes than CRT screens. LCD screens use a thin layer of liquid crystal, a liquid that exhibits crystalline properties. It is sandwiched between two glass plates carrying transparent electrodes. Two polarizing films are placed at each side of the LCD. By generating a controlled electric field between electrodes, various segments or pixels of the liquid crystal can be activated, causing changes in their polarizing properties. These polarizing properties depend on the alignment of the liquid-crystal layer and the specific field-effect used, being either twisted nematic (TN), in-plane switching (IPS) or vertical alignment (VA). Color is produced by applying appropriate color filters (red, green and blue) to the individual subpixels. LC displays are used in various electronics like watches, calculators, mobile phones, TVs, computer monitors and laptops screens etc. === LED-LCD === Most earlier large LCD screens were back-lit using a number of CCFL (cold-cathode fluorescent lamps). However, small pocket size devices almost always used LEDs as their illumination source. With the improvement of LEDs, almost all new displays are now equipped with LED backlight technology. The image is still generated by the LCD layer. === Plasma panel === A plasma display consists of two glass plates separated by a thin gap filled with a gas such as neon. Each of these plates has several parallel electrodes running across it. The electrodes on the two plates are at right angles to each other. A voltage applied between the two electrodes one on each plate causes a small segment of gas at the two electrodes to glow. The glow of gas segments is maintained by a lower voltage that is continuously applied to all electrodes. By 2010, consumer plasma displays had been discontinued by numerous manufacturers. === Electroluminescent panel === In an electroluminescent display, the image is created by applying electrical signals to the plates which make the phosphor glow. === Organic light-emitting diode === An OLED (organic light-emitting diode) is a light-emitting diode (LED) in which the emissive electroluminescent layer is a film of organic compound which emits light in response to an electric current. This layer of organic semiconductor is situated between two electrodes; typically, at least one of these electrodes is transparent. OLEDs are used to create digital displays in devices such as television screens, computer monitors, portable systems such as mobile phones, handheld game consoles and PDAs. === Quantum-dot light-emitting diode === QLED or quantum dot LED is a flat panel display technology introduced by Samsung under this trademark. Other television set manufacturers such as Sony have used the same technology to enhance the backlighting of LCD TVs already in 2013. Quantum dots create their own unique light when illuminated by a light source of shorter wavelength such as blue LEDs. Th

    Read more →