AI Coding Scaffold

AI Coding Scaffold — independent reviews, comparisons, pricing and step-by-step guides on Aizhi.

  • 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 →
  • Procedural reasoning system

    Procedural reasoning system

    In artificial intelligence, a procedural reasoning system (PRS) is a framework for constructing real-time reasoning systems that can perform complex tasks in dynamic environments. It is based on the notion of a rational agent or intelligent agent using the belief–desire–intention software model. A user application is predominately defined, and provided to a PRS system is a set of knowledge areas. Each knowledge area is a piece of procedural knowledge that specifies how to do something, e.g., how to navigate down a corridor, or how to plan a path (in contrast with robotic architectures where the programmer just provides a model of what the states of the world are and how the agent's primitive actions affect them). Such a program, together with a PRS interpreter, is used to control the agent. The interpreter is responsible for maintaining beliefs about the world state, choosing which goals to attempt to achieve next, and choosing which knowledge area to apply in the current situation. How exactly these operations are performed might depend on domain-specific meta-level knowledge areas. Unlike traditional AI planning systems that generate a complete plan at the beginning, and replan if unexpected things happen, PRS interleaves planning and doing actions in the world. At any point, the system might only have a partially specified plan for the future. PRS is based on the BDI or belief–desire–intention framework for intelligent agents. Beliefs consist of what the agent believes to be true about the current state of the world, desires consist of the agent's goals, and intentions consist of the agent's current plans for achieving those goals. Furthermore, each of these three components is typically explicitly represented somewhere within the memory of the PRS agent at runtime, which is in contrast to purely reactive systems, such as the subsumption architecture. == History == The PRS concept was developed by the Artificial Intelligence Center at SRI International during the 1980s, by many workers including Michael Georgeff, Amy L. Lansky, and François Félix Ingrand. Their framework was responsible for exploiting and popularizing the BDI model in software for control of an intelligent agent. The seminal application of the framework was a fault detection system for the reaction control system of the NASA Space Shuttle Discovery. Development on this PRS continued at the Australian Artificial Intelligence Institute through to the late 1990s, which led to the development of a C++ implementation and extension called dMARS. == Architecture == The system architecture of SRI's PRS includes the following components: Database for beliefs about the world, represented using first order predicate calculus. Goals to be realized by the system as conditions over an interval of time on internal and external state descriptions (desires). Knowledge areas (KAs) or plans that define sequences of low-level actions toward achieving a goal in specific situations. Intentions that include those KAs that have been selected for current and eventual execution. Interpreter or inference mechanism that manages the system. == Features == SRI's PRS was developed for embedded application in dynamic and real-time environments. As such it specifically addressed the limitations of other contemporary control and reasoning architectures like expert systems and the blackboard system. The following define the general requirements for the development of their PRS: asynchronous event handling guaranteed reaction and response types procedural representation of knowledge handling of multiple problems reactive and goal-directed behavior focus of attention reflective reasoning capabilities continuous embedded operation handling of incomplete or inaccurate data handling of transients modeling delayed feedback operator control == Applications == The seminal application of SRI's PRS was a monitoring and fault detection system for the reaction control system (RCS) on the NASA space shuttle. The RCS provides propulsive forces from a collection of jet thrusters and controls altitude of the space shuttle. A PRS-based fault diagnostic system was developed and tested using a simulator. It included over 100 KAs and over 25 meta level KAs. RCS specific KAs were written by space shuttle mission controllers. It was implemented on the Symbolics 3600 Series LISP machine and used multiple communicating instances of PRS. The system maintained over 1000 facts about the RCS, over 650 facts for the forward RCS alone and half of which are updated continuously during the mission. A version of the PRS was used to monitor the reaction control system on the Space Shuttle Discovery. PRS was tested on Shakey the robot including navigational and simulated jet malfunction scenarios based on the space shuttle. Later applications included a network management monitor called the Interactive Real-time Telecommunications Network Management System (IRTNMS) for Telecom Australia. == Extensions == The following list the major implementations and extensions of the PRS architecture. UM-PRS OpenPRS (formerly C-PRS and Propice) AgentSpeak Distributed multi-agent reasoning system (dMARS) GORITE JAM JACK Intelligent Agents SRI Procedural Agent Realization Kit (SPARK) PRS-CL

    Read more →
  • Transparency in Frontier Artificial Intelligence Act

    Transparency in Frontier Artificial Intelligence Act

    The Transparency in Frontier Artificial Intelligence Act, also referred to as SB-53, is a 2025 California law which mandates increased transparency for companies building artificial intelligence. SB-53 is primarily focused on assessing and reducing potential catastrophic risks from AI, and is the first bill addressing such risks to be passed into law in America. The bill requires companies to create publicly accessible documents assessing potential "catastrophic risk[s]" from their AI models, as well as publishing documentation on how the model incorporates national and international safety standards. SB-53 also sets up whistleblower protections and procedures for alerting the government to a "critical safety incident". == History == SB-53 was preceded in 2024 by the unsuccessful Safe and Secure Innovation for Frontier Artificial Intelligence Models Act ("SB-1047"), a proposed bill authored by Senator Scott Wiener which was vetoed by Governor Gavin Newsom. Afterwords, Newsom created a "Joint California AI Policy Working Group" to provide recommendations for AI regulation, which guided the drafting of SB-53. Senator Scott Wiener introduced the bill on January 7, 2025, and after a series of amendments, SB-53 passed the Senate 29-8 on September 13. Governor Gavin Newsom approved the bill on September 25, passing it into law. == Provisions == SB-53 applies primarily to companies making at least $500 million in yearly gross revenue. It defines a “frontier model” as any AI trained with over 1026 FLOPS (including fine-tuning), including unreleased internal models. Both the financial and computational thresholds must be met before most of the law is applied, although the threshold can be lowered or otherwise updated by the California Department of Technology in an annual review starting in 2027. Most of the bill's provisions are focused on "catastrophic risks" from AI, which are defined as incidents in which a model contributes to more than 50 deaths or serious injuries, or causes more than one billion dollars ($1,000,000,000) in economic damage from AI-assisted acts (such as cyberattacks or the creation of biological weapons). The bill requires companies to provide publicly accessible safety frameworks for frontier AI models, describing how the company tests for catastrophic risk from its AI, and how it implements protections against such risks. This includes addressing the possibility that the AI may attempt to circumvent internal guardrails or oversight mechanisms. (Certain safety incidents, such as dangerously deceptive model behavior, physical injury, or death, must be reported to California Office of Emergency Services (OES) within 15 days, unless the incident poses imminent physical risk, in which case it must be reported immediately.) The company must follow its published framework, and if any changes are made, the framework should be updated within 30 days, and justification for said changes must also be made public. Additionally, all frontier companies are required to publish basic information about newly released frontier models (such as terms of service, supported languages, and intended use), although only large companies (making over $500 million annually) need to publish full safety frameworks. SB-53 also establishes various whistleblower protections for covered employees. Large companies must have anonymous whistleblowing channels in place which protect employees from retaliation from reporting risks to state or federal authorities if they have reasonable cause to believe that their employer is substantially risking public health and safety.

    Read more →
  • Korean Decimal Classification

    Korean Decimal Classification

    The Korean Decimal Classification (KDC) is a system of library classification used in South Korea. The structure and main level classes of the KDC are based on the Dewey Decimal Classification. The KDC is maintained and published by the Classification Committee of the Korean Library Association. The first edition of the classification was published in 1964; the most recent edition is the sixth edition published in 2013. Almost all school and public libraries in South Korea use the KDC to organize their collections, as well as the National Library of Korea and some university libraries. == History == Multiple library classification systems had been developed for Korean libraries before the publication of the KDC. These included the Railway Bureau Library Classification(1920), the Korean Decimal Classification edited by Bong-Suk Park(known as KDCP, 1947), the Han-Un Decimal Classification(1954), and the Kuk-Yeon Decimal Classification(1958). After the disappearance of editor Bong-Suk Park in the 1950s, the KDCP system decreased in use. Korean librarians considered adopting the Dewey Decimal Classification (DDC), especially after it was implemented at Yonsei University in 1957, but struggled to apply it to East Asian and Korean-focused works in their collections. In February 1963, members of the Korean Library Association's Classification were appointed to create a national classification; they decided to make revisions to the order of the main classes of the DDC, for example bringing together the class Language(700) together with the class for Literature(800). Committee members prepared draft classes and indexes and the first edition of the KDC was published in May 1964. Both the text and the index were written in Korean Hangul characters and Chinese characters. The second edition was published just two years later, in 1966, correcting errors and omissions found in the first edition. The third edition was published in 1980, maintaining the basic framework of the previous editions while expanding significantly. The fourth edition, published in 1996, made considerable changes, including increasing the number of representatives on the Classification Committee. The committee sought feedback from the library community and implemented revisions included in the recently published edition 20 of the DDC and edition 9 of the Nippon Decimal Classification. New policies applied to the fourth edition included principles suggesting the main classes should remain as static as possible, with focus shown to expanding classes devoted to technology and science. Likewise, many subject specialists were consulted for the publication of the fifth edition in 2009. The publication of the 23rd edition of the DDC in 2011 provided opportunity for a new revision of the KDC, and the sixth edition was published in July 2013. Greater numbers of classes provided number building capacity in the sixth edition, allowing for more specificity. == Description == The KDC classifies resources primarily by discipline, though some classes are collocated by subject. There are eight auxiliary mnemonic tables used to expand class numbers. The main classes of the KDC are the same as the main classes of the Dewey Decimal Classification, but four of those main classes are in a different order: Natural sciences (400), Technology and engineering (500), Arts (600), and Language 700. Though the structure is heavily influenced by the DDC, aspects of multiple library classifications have been invoked in the creation of the KDC, including the Library of Congress Classification for the arrangement of the social sciences (300), the Universal Decimal Classification for medical sciences (510), the KDCP for Korean and Oriental subjects, the Nippon Decimal Classification for those of Japan and Oriental subjects. === Classes of the KDC 6th edition === 000 General works 000 General works 010 Books, Bibliography 020 Library & information science 030 General encyclopedias 040 General collected essays 050 General serial publications 060 General societies 070 Newspapers, journalism 080 General collected works 090 Materials of province 100 Philosophy 100 Philosophy 110 Metaphysics 120 Epistemology, etc. 130 Systems of philosophy 140 Chinese classics 150 Oriental philosophy and thought 160 Western philosophy 170 Logic 180 Psychology 190 Ethics, moral philosophy 200 Religion 200 Religion 210 Comparative religion 220 Buddhism 230 Christian religion 240 Taoism 250 Chondoism 260 [Unassigned] 270 Hinduism, Brahmanism 280 Islam, Mohammedianism 290 Other religions 300 Social sciences 300 Social sciences 310 Statistics 320 Economics 330 Sociology and social problems 340 Political sciences 350 Public administration 360 Law 370 Education 380 Customs, Etiquette, Folklore 390 Military science 400 Natural sciences 400 Natural sciences 410 Mathematics 420 Physics 430 Chemistry 440 Astronomy 450 Earth science 460 Mineralogy 470 Life science 480 Botany 490 Zoological science 500 Technology 500 Technology 510 Medical science 520 Agriculture 530 Engineering, technology, etc. 540 Construction and architecture 550 Mechanical engineering 560 Electrical, comm. & electric engineering 570 Chemical engineering 580 Manufactures 590 Human ecology 600 Arts 600 Arts 610 [Unassigned] 620 Sculpture, plastic art 630 Crafts 640 Calligraphy 650 Painting, design 660 Photography 670 Music 680 Stage performance, museum arts 690 Amusements, sports & physical training 700 Language 700 Language 710 Korean language 720 Chinese language 730 Japanese & other Asian languages 740 English 750 German 760 French languages 770 Spanish languages & Portuguese language 780 Italian languages 790 Other languages 800 Literature 800 Literature 810 Korean literature 820 Chinese literature 830 Japanese & other Asian literature 840 English & American literature 850 German literature 860 French literature 870 Spanish & Portuguese literature 880 Italian literature 890 Other literatures 900 History 900 History 910 Asia 920 Europe 930 Africa 940 North America 950 South America 960 Oceania and Polar regions 970 [Unassigned] 980 Geography 990 Biography === Expansion tables === Table 1. Standard subdivisions Table 2. Geographic Areas Table 3. Korean geographic areas Table 4. Korean historical period Table 5. Languages Table 6. Subdivisions of individual languages Table 7. Subdivisions of individual literatures Table 8. Subdivisions of individual religions == Usage == KDC is used by a wide range of libraries within Korea, including by the National Library of Korea and most school and public libraries in the country, along with some university libraries, such as the one at Keimyung University.

    Read more →
  • Apache Hama

    Apache Hama

    Apache Hama is a distributed computing framework based on bulk synchronous parallel computing techniques for massive scientific computations e.g., matrix, graph and network algorithms. Originally a sub-project of Hadoop, it became an Apache Software Foundation top level project in 2012. It was created by Edward J. Yoon, who named it (short for "Hadoop Matrix Algebra"), and Hama also means hippopotamus in Yoon's native Korean language (하마), following the trend of naming Apache projects after animals and zoology (such as Apache Pig). Hama was inspired by Google's Pregel large-scale graph computing framework described in 2010. When executing graph algorithms, Hama showed a fifty-fold performance increase relative to Hadoop. Retired in April 2020, project resources are made available as part of the Apache Attic. Yoon cited issues of installation, scalability, and a difficult programming model for its lack of adoption. == Architecture == Hama consists of three major components: BSPMaster, GroomServers and Zookeeper. === BSPMaster === BSPMaster is responsible for: Maintaining groom server status Controlling super steps in a cluster Maintaining job progress information Scheduling jobs and assigning tasks to groom servers Disseminating execution class across groom servers Controlling fault Providing users with the cluster control interface. A BSP Master and multiple grooms are started by the script. Then, the bsp master starts up with a RPC server for groom servers. Groom servers starts up with a BSPPeer instance and a RPC proxy to contact the bsp master. After started, each groom periodically sends a heartbeat message that encloses its groom server status, including maximum task capacity, unused memory, and so on. Each time the BSP master receives a heartbeat message, it brings the groom server status up-to-date. The bsp master makes use of groom servers' status in order to assign tasks to idle groom servers - and returns a heartbeat response containing assigned tasks and others actions for a groom server to do. Currently BSP master has a FIFO job scheduler and simple task assignment algorithms. === GroomServer === A groom server (shortly referred to as groom) is a process that performs BSP tasks assigned by BSPMaster. Each groom contacts the BSPMaster, and it takes assigned tasks and reports its status by means of periodical piggybacks with BSPMaster. Each groom is designed to run with HDFS or other distributed storages. Basically, a groom server and a data node should be run on one physical node. === Zookeeper === A Zookeeper is used to manage the efficient barrier synchronisation of the BSPPeers.

    Read more →
  • Retrieval-based Voice Conversion

    Retrieval-based Voice Conversion

    Retrieval-based Voice Conversion (RVC) is an open source voice conversion AI algorithm that enables realistic speech-to-speech transformations, accurately preserving the intonation and audio characteristics of the original speaker. == Overview == In contrast to text-to-speech systems such as ElevenLabs, RVC differs by providing speech-to-speech outputs instead. It maintains the modulation, timbre and vocal attributes of the original speaker, making it suitable for applications where emotional tone is crucial. The algorithm enables both pre-processed and real-time voice conversion with low latency. This real-time capability marks a significant advancement over previous AI voice conversion technologies, such as So-vits SVC. Its speed and accuracy have led many to note that its generated voices sound near-indistinguishable from "real life", provided that sufficient computational specifications and resources (e.g., a powerful GPU and ample RAM) are available when running it locally and that a high-quality voice model is used. == Technical foundation == Retrieval-based Voice Conversion (RVC) utilizes a hybrid approach that integrates feature extraction with retrieval-based synthesis. Instead of directly mapping source speaker features to the target speaker using statistical models, RVC retrieves relevant segments from a target speech database, aiming to enhance the naturalness and speaker fidelity of the converted speech. At a high level, the RVC system typically comprises three main components: (1) a content feature extractor, such as a phonetic posteriorgram (PPG) encoder or self-supervised models like HuBERT; (2) a vector retrieval module that searches a target voice database for the most similar speech units; and (3) a vocoder or neural decoder that synthesizes waveform output from the retrieved representations. The retrieval-based paradigm aims to mitigate the oversmoothing effect commonly observed in fully neural sequence-to-sequence models, potentially leading to more expressive and natural-sounding speech. Furthermore, with the incorporation of high-dimensional embeddings and k-nearest-neighbor search algorithms, the model can perform efficient matching across large-scale databases without significant computational overhead. Recent RVC frameworks have incorporated adversarial learning strategies and GAN-based vocoders, such as HiFi-GAN, to enhance synthesis quality. These integrations have been shown to produce clearer harmonics and reduce reconstruction errors. == Research developments == Research on RVC has recently explored the use of self-supervised learning (SSL) encoders such as wav2vec 2.0 and HuBERT to replace hand-engineered features like MFCCs. These encoders improve content preservation, especially when source and target speakers have dissimilar speaking styles or accents. Moreover, modern RVC models leverage vector quantization methods to discretize the acoustic space, improving both synthesis accuracy and generalization across unseen speakers. For example, retrieval-augmented VQ models can condition the synthesis stage on quantized speech tokens, which enhances controllability and style transfer. Despite its strengths, RVC still faces limitations related to database coverage, especially in real-time or few-shot settings. Inadequate diversity in the target voice corpus may lead to suboptimal retrieval or unnatural prosody. These advances demonstrate the viability of RVC as a strong alternative to conventional deep learning VC systems, balancing both flexibility and efficiency in diverse voice synthesis applications. == Training process == The training pipeline for retrieval-based voice conversion typically includes a preprocessing step where the target speaker's dataset is segmented and normalized. A pitch extractor such as librosa or DDSP-DDC may be used to obtain fundamental frequency (F0) features. During training, the model learns to map content features from the source speaker to the acoustic representation of the target speaker while maintaining pitch and prosody. The training objective often combines reconstruction loss with feature consistency loss across intermediate layers, and may incorporate cycle consistency loss to preserve speaker identity. Fine-tuning on small datasets is feasible due to the use of pre-trained models, particularly for the SSL encoder and content extractor components. This approach allows transfer learning to be applied effectively, enabling the model to converge faster and generalize better to unseen inputs. Most open implementations support batch training, gradient accumulation, and mixed-precision acceleration (e.g., FP16), especially when utilizing NVIDIA CUDA-enabled GPUs. == Real-time deployment == RVC systems can be deployed in real-time scenarios through WebUI interfaces and streaming audio frameworks. Optimizations include converting the inference graph to ONNX or TensorRT formats, reducing latency. Audio buffers are typically processed in chunks of 0.2–0.5 seconds to ensure minimal delay and seamless conversion. Cross-platform compatibility with tools such as OBS Studio and Voicemeeter enables integration into live streaming, video production, or virtual avatar environments. == Applications and concerns == The technology enables voice changing and mimicry, allowing users to create accurate models of others using only a negligible amount of minutes of clear audio samples. These voice models can be saved as .pth (PyTorch) files. While this capability facilitates numerous creative applications, it has also raised concerns about potential misuse as deepfake software for identity theft and malicious impersonation through voice calls. == Ethical and legal considerations == As with other deep generative models, the rise of RVC technology has led to increasing debate about copyright, consent, and authorship. While some jurisdictions may allow parody or fair use in creative contexts, impersonating living individuals without permission may infringe upon privacy and likeness rights. As a result, some platforms have begun issuing takedown notices against AI-generated voice content that closely mimics celebrities or musicians. === In pop culture === RVC inference has been used to create realistic depictions of song covers, such as replacing original vocals with characters like Twilight Sparkle and Mordecai to have them sing duets of popular music like "Airplanes" and "Somebody That I Used to Know." These AI-generated covers, which can sound strikingly similar to the voice imitated, have gained popularity on platforms like YouTube as humorous memes.

    Read more →
  • Leela Zero

    Leela Zero

    Leela Zero is a free and open-source computer Go program released on 25 October 2017. It is developed by Belgian programmer Gian-Carlo Pascutto, the author of chess engine Sjeng and Go engine Leela. Leela Zero's algorithm is based on DeepMind's 2017 paper about AlphaGo Zero. Unlike the original Leela, which has a lot of human knowledge and heuristics programmed into it, the program code in Leela Zero only knows the basic rules and nothing more. The knowledge that makes Leela Zero a strong player is contained in a neural network, which is trained based on the results of previous games that the program played. Leela Zero is trained by a distributed effort, which is coordinated at the Leela Zero website. Members of the community provide computing resources by running the client, which generates self-play games and submits them to the server. The self-play games are used to train newer networks. Generally, over 500 clients have connected to the server to contribute resources. The community has provided high quality code contributions as well. == Version history == Leela Zero finished third at the BerryGenomics Cup World AI Go Tournament in Fuzhou, Fujian, China on 28 April 2018. The New Yorker at the end of 2018 characterized Leela and Leela Zero as "the world’s most successful open-source Go engines". In early 2018, another team branched Leela Chess Zero from the same code base, also to verify the methods in the AlphaZero paper as applied to the game of chess. AlphaZero's use of Google TPUs was replaced by a crowd-sourcing infrastructure and the ability to use graphics card GPUs via the OpenCL library. Even so, it is expected to take a year of crowd-sourced training to make up for the dozen hours that AlphaZero was allowed to train for its chess match in the paper. The distributed training server was shut down on 2021-02-15, marking the end of Leela Zero project. The page now directs visitors to KataGo and SAI. The model sizes increased steadily over time. The first released model has hash name d645af97, size 1x8 (1 layer, 8 channels), and released at 2017-11-10 13:04. The last released model has hash name 0e9ea880, size 40x256, and was released at 2021-02-15 09:04. == Technology == Leela Zero is an (almost) exact replication of AlphaGo Zero in both training process and architecture. The training process is Monte-Carlo Tree Search with self-play, exactly the same as AlphaGo Zero. The architecture is the same as AlphaGo Zero (with one difference). Consider the last released model, 0e9ea880. It has 47 million parameters, and the following architecture: The stem of the network takes as input a 18x19x19 tensor representation of the Go board. 8 channels are the positions of the current player's stones from the last eight time steps. (1 if there is a stone, 0 otherwise. If the time step go before the beginning of the game, then 0 in all positions.) 8 channels are the positions of the other player's stones from the last eight time steps. 1 channel is all 1 if black is to move, and 0 otherwise. 1 channel is all 1 if white is to move, and 0 otherwise. (This channel is not present in the original AlphaGo Zero) The body is a ResNet with 40 residual blocks and 256 channels. There are two heads, a policy head and a value head. Policy head outputs a logit array of size 19 × 19 + 1 {\displaystyle 19\times 19+1} , representing the logit of making a move in one of the points, plus the logit of passing. Value head outputs a number in the range ( − 1 , + 1 ) {\displaystyle (-1,+1)} , representing the expected score for the current player. -1 represents current player losing, and +1 winning.

    Read more →
  • Planner (programming language)

    Planner (programming language)

    Planner (often seen in publications as "PLANNER" although it is not an acronym) is a programming language designed by Carl Hewitt at MIT, and first published in 1969. First, subsets such as Micro-Planner and Pico-Planner were implemented, and then essentially the whole language was implemented as Popler by Julian Davies at the University of Edinburgh in the POP-2 programming language. Derivations such as QA4, Conniver, QLISP and Ether (see scientific community metaphor) were important tools in artificial intelligence research in the 1970s, which influenced commercial developments such as Knowledge Engineering Environment (KEE) and Automated Reasoning Tool (ART). == Procedural approach versus logical approach == The two major paradigms for constructing semantic software systems were procedural and logical. The procedural paradigm was epitomized by Lisp which featured recursive procedures that operated on list structures. The logical paradigm was epitomized by uniform proof procedure resolution-based derivation (proof) finders. According to the logical paradigm it was “cheating” to incorporate procedural knowledge. == Procedural embedding of knowledge == Planner was invented for the purposes of the procedural embedding of knowledge and was a rejection of the resolution uniform proof procedure paradigm, which Converted everything to clausal form. Converting all information to clausal form is problematic because it hides the underlying structure of the information. Then used resolution to attempt to obtain a proof by contradiction by adding the clausal form of the negation of the theorem to be proved. Using only resolution as the rule of inference is problematical because it hides the underlying structure of proofs. Also, using proof by contradiction is problematical because the axiomatizations of all practical domains of knowledge are inconsistent in practice. Planner was a kind of hybrid between the procedural and logical paradigms because it combined programmability with logical reasoning. Planner featured a procedural interpretation of logical sentences where an implication of the form (P implies Q) can be procedurally interpreted in the following ways using pattern-directed invocation: Forward chaining (antecedently): If assert P, assert Q If assert not Q, assert not P Backward chaining (consequently) If goal Q, goal P If goal not P, goal not Q In this respect, the development of Planner was influenced by natural deductive logical systems (especially the one by Frederic Fitch [1952]). == Micro-planner implementation == A subset called Micro-Planner was implemented by Gerry Sussman, Eugene Charniak and Terry Winograd and was used in Winograd's natural-language understanding program SHRDLU, Eugene Charniak's story understanding work, Thorne McCarty's work on legal reasoning, and some other projects. This generated a great deal of excitement in the field of AI. It also generated controversy because it proposed an alternative to the logic approach that had been one of the mainstay paradigms for AI. At SRI International, Jeff Rulifson, Jan Derksen, and Richard Waldinger developed QA4 which built on the constructs in Planner and introduced a context mechanism to provide modularity for expressions in the database. Earl Sacerdoti and Rene Reboh developed QLISP, an extension of QA4 embedded in INTERLISP, providing Planner-like reasoning embedded in a procedural language and developed in its rich programming environment. QLISP was used by Richard Waldinger and Karl Levitt for program verification, by Earl Sacerdoti for planning and execution monitoring, by Jean-Claude Latombe for computer-aided design, by Nachum Dershowitz for program synthesis, by Richard Fikes for deductive retrieval, and by Steven Coles for an early expert system that guided use of an econometric model. Computers were expensive. They had only a single slow processor and their memories were very small by comparison with today. So Planner adopted some efficiency expedients including the following: Backtracking was adopted to economize on the use of time and storage by working on and storing only one possibility at a time in exploring alternatives. A unique name assumption was adopted to save space and time by assuming that different names referred to different objects. For example, names like Peking (previous PRC capital name) and Beijing (current PRC capital transliteration) were assumed to refer to different objects. A closed-world assumption could be implemented by conditionally testing whether an attempt to prove a goal exhaustively failed. Later this capability was given the misleading name "negation as failure" because for a goal G it was possible to say: "if attempting to achieve G exhaustively fails then assert (Not G)." == The genesis of Prolog == Gerry Sussman, Eugene Charniak, Seymour Papert and Terry Winograd visited the University of Edinburgh in 1971, spreading the news about Micro-Planner and SHRDLU and casting doubt on the resolution uniform proof procedure approach that had been the mainstay of the Edinburgh Logicists. At the University of Edinburgh, Bruce Anderson implemented a subset of Micro-Planner called PICO-PLANNER, and Julian Davies (1973) implemented essentially all of Planner. According to Donald MacKenzie, Pat Hayes recalled the impact of a visit from Papert to Edinburgh, which had become the "heart of artificial intelligence's Logicland," according to Papert's MIT colleague, Carl Hewitt. Papert eloquently voiced his critique of the resolution approach dominant at Edinburgh "…and at least one person upped sticks and left because of Papert." The above developments generated tension among the Logicists at Edinburgh. These tensions were exacerbated when the UK Science Research Council commissioned Sir James Lighthill to write a report on the AI research situation in the UK. The resulting report [Lighthill 1973; McCarthy 1973] was highly critical although SHRDLU was favorably mentioned. Pat Hayes visited Stanford where he learned about Planner. When he returned to Edinburgh, he tried to influence his friend Bob Kowalski to take Planner into account in their joint work on automated theorem proving. "Resolution theorem-proving was demoted from a hot topic to a relic of the misguided past. Bob Kowalski doggedly stuck to his faith in the potential of resolution theorem proving. He carefully studied Planner.”. Kowalski [1988] states "I can recall trying to convince Hewitt that Planner was similar to SL-resolution." But Planner was invented for the purposes of the procedural embedding of knowledge and was a rejection of the resolution uniform proof procedure paradigm. Colmerauer and Roussel recalled their reaction to learning about Planner in the following way: "While attending an IJCAI convention in September ‘71 with Jean Trudel, we met Robert Kowalski again and heard a lecture by Terry Winograd on natural language processing. The fact that he did not use a unified formalism left us puzzled. It was at this time that we learned of the existence of Carl Hewitt’s programming language, Planner. The lack of formalization of this language, our ignorance of Lisp and, above all, the fact that we were absolutely devoted to logic meant that this work had little influence on our later research." In the fall of 1972, Philippe Roussel implemented a language called Prolog (an abbreviation for PROgrammation en LOGique – French for "programming in logic"). Prolog programs are generically of the following form (which is a special case of the backward-chaining in Planner): When goal Q, goal P1 and ... and goal Pn Prolog duplicated the following aspects of Micro-Planner: Pattern directed invocation of procedures from goals (i.e. backward chaining) An indexed data base of pattern-directed procedures and ground sentences. Giving up on the completeness paradigm that had characterized previous work on theorem proving and replacing it with the programming language procedural embedding of knowledge paradigm. Prolog also duplicated the following capabilities of Micro-Planner which were pragmatically useful for the computers of the era because they saved space and time: Backtracking control structure Unique Name Assumption by which different names are assumed to refer to distinct entities, e.g., Peking and Beijing are assumed to be different. Reification of Failure. The way that Planner established that something was provable was to successfully attempt it as a goal and the way that it establish that something was unprovable was to attempt it as a goal and explicitly fail. Of course the other possibility is that the attempt to prove the goal runs forever and never returns any value. Planner also had a (not expression) construct which succeeded if expression failed, which gave rise to the “Negation as Failure” terminology in Planner. Use of the Unique Name Assumption and Negation as Failure became more questionable when attention turned to Open Systems. The following capabiliti

    Read more →
  • Software diagnosis

    Software diagnosis

    Software diagnosis (also: software diagnostics) refers to concepts, techniques, and tools that allow for obtaining findings, conclusions, and evaluations about software systems and their implementation, composition, behaviour, and evolution. It serves as means to monitor, steer, observe and optimize software development, software maintenance, and software re-engineering in the sense of a business intelligence approach specific to software systems. It is generally based on the automatic extraction, analysis, and visualization of corresponding information sources of the software system. It can also be manually done and not automatic. == Applications == Software diagnosis supports all branches of software engineering, in particular project management, quality management, risk management as well as implementation and test. Its main strength is to support all stakeholders of software projects (in particular during software maintenance and for software re-engineering tasks) and to provide effective communication means for software development projects. For example, software diagnosis facilitates "bridging an essential information gap between management and development, improve awareness, and serve as early risk detection instrument". Software diagnosis includes assessment methods for "perfective maintenance" that, for example, apply "visual analysis techniques to combine multiple indicators for low maintainability, including code complexity and entanglement with other parts of the system, and recent changes applied to the code". == Characteristics == In contrast to manifold approaches and techniques in software engineering, software diagnosis does not depend on programming languages, modeling techniques, software development processes or the specific techniques used in the various stages of the software development process. Instead, software diagnosis aims at analyzing and evaluating the software system in its as-is state and based on system-generated information to bypass any subjective or potentially outdated information sources (e.g., initial software models). For it, software diagnosis combines and relates sources of information that are typically not directly linked. Examples: Source-code metrics are related with software developer activity to gain insight into developer-specific effects on software code quality. System structure and run-time execution traces are correlated to facilitate program comprehension through dynamic analysis in software maintenance tasks. == Principles == The core principle of software diagnosis is to automatically extract information from all available information sources of a given software projects such as source code base, project repository, code metrics, execution traces, test results, etc. To combine information, software-specific data mining, analysis, and visualization techniques are applied. Its strength results, among various reasons, from integrating decoupled information spaces in the scope of a typical software project, for example development and developer activities (recorded by the repository) and code and quality metrics (derived by analyzing source code) or key performance indicators (KPIs). == Examples == Examples of software diagnosis tools include software maps and software metrics. == Critics == Software diagnosis—in contrast to many approaches in software engineering—does not assume that developer capabilities, development methods, programming or modeling languages are right or wrong (or better or worse compared to each other): Software diagnosis aims at giving insight into a given software system and its status regardless of the methods, languages, or models used to create and maintain the system. === Related subjects === Cost estimation in software engineering Programming productivity Rapid application development Software design Software development Software documentation Software map Software release life cycle Systems design Systems Development Life Cycle

    Read more →
  • JaCoP (solver)

    JaCoP (solver)

    JaCoP is a constraint solver for constraint satisfaction problems. It is written in Java and it is provided as a Java library. JaCoP has an interface to the MiniZinc and AMPL modeling languages. Its main focus is on ease of use, modeling power, as well as efficiency. It has a large collection of global constraints implemented to facilitate problem modeling. JaCoP is actively developed since year 2001. Krzysztof Kuchcinski and Radoslaw Szymanek are the core developers of this Java library. There are number of people who have contributed to JaCoP development in addition to core developers. JaCoP development has been influenced by more than 20 research articles from Constraint Programming community. It has been used as a tool in more than 30 research articles. There are many different examples provided so it is easier to learn how to use JaCoP. The JaCoP project contains a wrapper for the Scala programming language, and a wrapper for Clojure is maintained as a separate project CloCoP.

    Read more →
  • Sarvam AI

    Sarvam AI

    Sarvam AI is an Indian artificial intelligence company headquartered in Bengaluru, Karnataka. Founded in 2023, the company develops large language models (LLMs) and multimodal AI systems with a focus on Indian languages and region-specific use cases. The company has received venture capital backing and has participated in government-supported AI initiatives, including India's sovereign large language model programme under the IndiaAI Mission. == History == Sarvam AI was founded in August 2023 by Vivek Raghavan and Pratyush Kumar, who were previously associated with AI4Bharat at the Indian Institute of Technology Madras. In December 2023, the company announced a combined seed and Series A funding round of approximately US$41 million. The round was led by Lightspeed Venture Partners, with participation from Peak XV Partners and Khosla Ventures. In April 2025, the Ministry of Electronics and Information Technology (MeitY) selected Sarvam AI as one of the companies to develop an indigenous foundational model under the IndiaAI Mission. As part of the initiative, the company received access to government-supported computing infrastructure, including GPUs allocated for model training over a specified period. In February 2026, Sarvam AI introduced two large language models at the AI Impact Summit held at Bharat Mandapam, New Delhi. == Products and technology == Sarvam AI develops language models trained on datasets that include multiple Indian languages and code-mixed text. The company uses mixture-of-experts (MoE) architectures in some of its models. === Foundational language models === On 18 February 2026, the company announced the release of two foundational models: Sarvam-30B – A 30-billion parameter model based on a mixture-of-experts design. According to company disclosures reported by the media, the model activates approximately 1 billion parameters per token and supports a 32,000-token context window. Sarvam-105B – A 105-billion parameter model activating approximately 9 billion parameters per token, with a 128,000-token context window. The model is positioned for complex reasoning and enterprise applications. On 20th February 2026, the company released a beta version of the Sarvam-105B model which is named Indus. It is available on the Apple App Store, Google Play Store and the web. === Speech and vision systems === Sarvam AI has also developed multimodal systems including speech-to-text and vision-language models. Its speech model, referred to as Saaras V3 in company materials, supports multiple Indian languages. The company has also introduced a vision-language model known as Sarvam Vision, intended for document understanding and optical character recognition (OCR) in Indian scripts. === Devices === 'Sarvam Kaze' is an indigenous AI-powered wearable glass that listens, understands, and captures what users see the world through their eyes in real time. The device supports more than 10 Indian languages, enabling voice-based interaction and potentially real-time translation. The company plans to launch the device in May 2026. == Startup support == In March 2026, Sarvam AI launched the Sarvam Startup Program, an initiative providing selected early-stage companies with 6–12 months of API credits scaled to their needs, priority engineering support, and access to production infrastructure for developing multilingual AI applications in areas such as speech, translation, and large language models. == Open-source release == In February 2026, Sarvam AI announced and open-sourced two large language models: Sarvam 30B (30 billion parameters) and Sarvam 105B (105 billion parameters, using a Mixture-of-Experts architecture with 10.3 billion active parameters). Both models were trained from scratch on datasets focused on Indian languages and support advanced reasoning, multilingual tasks, mathematics, and coding. The models are hosted on Hugging Face under the Apache License and are intended for enterprise and developer applications in Indian languages. The models were subsequently released as open source under the Apache License 2.0, with model weights made available on Hugging Face (sarvamai/sarvam-30b and sarvamai/sarvam-105b) and AIKosh in early March 2026. == Government and institutional collaborations == In 2025, Sarvam AI was selected to contribute to India's sovereign AI model initiative under the IndiaAI Mission. The initiative aims to support domestic AI infrastructure and model development. In March 2025, the Unique Identification Authority of India (UIDAI) announced a collaboration with Sarvam AI to integrate AI-based voice interactions and multilingual support into Aadhaar-related services. Sarvam AI has also worked with AI4Bharat and academic institutions on language datasets and speech research projects. == Industry participation == Sarvam AI presented its foundational models at the India AI Impact Summit 2026 in New Delhi. The company has also been listed among Indian members of the AI Alliance, a consortium focused on open-source artificial intelligence initiatives. == List of models ==

    Read more →
  • Microelectronics and Computer Technology Corporation

    Microelectronics and Computer Technology Corporation

    Microelectronics and Computer Technology Corporation, originally the Microelectronics and Computer Consortium and widely seen by the acronym MCC, was the first, and at one time one of the largest, computer industry research and development consortia in the United States. MCC ceased operations in 2000 and was formally dissolved in 2004. == Divisions == MCC did research and development in the following areas: [1] System Architecture and Design (optimise hardware and software design, provide for scalability and interoperability, allow rapid prototyping for improved time-to-market, and support the re-engineering of existing systems for open systems). Advanced Microelectronics Packaging and Interconnection (smaller, faster, more powerful, and cost-competitive). Hardware Systems Engineering (tools and methodologies for cost-efficient, up-front design of advanced electronic systems, including modelling and design-for-test techniques to improve cost, yield, quality, and time-to-market). Environmentally Conscious Technologies (process control and optimisation tools, information management and analysis capabilities, and non-hazardous material alternatives supporting cost-efficient production, waste minimisation, and reduced environmental impact). Distributed Information Technology (managing and maintaining physically distributed corporate information resources on different platforms, building blocks for the national information infrastructure, networking tools and services for integration within and between companies, and electronic commerce). Intelligent Systems (systems that "intelligently" support business processes and enhance performance, including decision support, data management, forecasting and prediction). == History == The MCC was a response to the announcement of Japan's Fifth Generation Project, a large Japanese research project launched in 1982 aimed at producing a new kind of computer by 1991. The Japanese had formed similar industrial research consortia as early as 1956.[2] Many European and American computer companies saw this new Japanese initiative as an attempt to take full control of the world's high-end computer market, and MCC was created, in part, as a defensive move against that threat. In late 1982, several major computer and semiconductor manufacturers in the United States banded together and founded MCC under the leadership of Admiral Bobby Ray Inman, whose previous positions had been Director of the National Security Agency and deputy director of the Central Intelligence Agency. Such formations were illegal in the United States until the 1984 Congressional passage of the "National Cooperative Research Act". Several sites with relevant universities were considered, including Atlanta, Georgia (Georgia Tech), the Research Triangle, N.C. (UNC), the Washington, D.C. area (George Mason), Stanford University and Austin, Texas (UT) which was the final selection. The University of Texas offered land upon which they would construct a new building specifically designed for the MCC within their Austin campus. Ross Perot also offered the use of his private plane for 2 years for staff recruitment. Austin was selected as the site for MCC in 1983. Despite this purpose and the background of Inman and his senior staff, MCC accepted no government funding for many years and was a refuge for some avoiding work on Strategic Defense Initiative projects. MCC was part of the Artificial Intelligence boom of the 1980s, reportedly the single largest customer of both Symbolics and Lisp Machines, Inc. (and like Symbolics, was one of the first companies to register a .com domain). In the 1980s its major programs were packaging, software engineering, CAD, and advanced computer architectures. The latter comprised artificial intelligence, human interface, database, and parallel processing, the latter two merging in the late 1980s. Many of the early shareholder companies were mainframe computer companies under stress in the 1980s. Over the years, MCC's membership diversified to include a broad range of high-profile corporations involved in information technology products, as well as government research and development agencies and leading universities. In June, 2000 the MCC Board of Directors voted to dissolve the consortium, and the few remaining employees held a wake at Scholz's Beer Garden in Austin on October 25. Formal dissolution papers were reportedly not filed until 2004. == Spinoffs == While multiple technologies were transferred to member companies and government agencies in the final years, fourteen companies were spun out of MCC. Those spinoffs include: TeraVicta Technologies, Austin's first MEMS company; its focus was to develop microscopic switch technology for fiber optic switching and radiofrequency switching in mobile phones specifically to dynamically switch between the future 3G-4GLTE-future5G wireless communication frequencies and ensure mobile phones were communicating over the strongest wireless signal to reduce dropped calls. Robert Miracky was the founding CEO who spun out the first commercial metal micromachining technology developed by MCC researchers Brent Lunceford, Jason Reed, Richard Nelson, K.Hu, and C. Hilbert in a collaborative development program with IBM in a novel implementation and operational paradigm for solid-state integrated circuit coolers integrated with conductive MEMS switches. TeraVicta was liquidated under Chapter 7 bankruptcy proceedings in 2015. The Austin region subsequently built up a MEMS & Sensors value chain in the billions of dollars comprising companies such as 3M, Cypress Semiconductor, NXP Semiconductor, Cirrus Logic, Silicon Labs, and the Austin division of the now-defunct Silicon Valley Technology Center. Portelligent, a company that provides reverse engineering teardown services. At the time, Portelligent was the first company to commercialize such services; they had been provided by MCC to its member companies. Today, there are at least twelve companies worldwide that sell reports known as "reverse engineering teardown reports." Modern day teardown reports provide detailed information about technology products such as the bill of materials, microchip, and printed circuit board design specifics, manufacturing details including manufacturing location details for the entire value chain responsible for making electronics, including the iPhone and Samsung Galaxy smartphones. Portelligent was acquired by CMP Technology in 2007. Evolutionary Technologies International, a company focused on developing database tools and data warehousing. It was spun off from MCC in 1990.

    Read more →
  • Cloud printing

    Cloud printing

    There are, in essence, three kinds of Cloud printing. == Benefits == 76% of IT teams have moved, or plan to move, their print workflows to the cloud due to its simplicity. Consumers can print easily to any printer from their PC, tablet or smartphone, while the Cloud print service monitors the supplies level. Many printer vendors such as Lexmark propose an automatic supplies shipment based on the real-time analysis of the printer supplies and user behavior to ensure printing will always be possible. For IT department, Cloud Printing eliminates the need for print servers and represents the only way to print from Cloud virtual desktops and servers. For consumers, cloud ready printers eliminate the need for PC connections and print drivers, enabling them to print from mobile devices. As for publishers and content owners, cloud printing allows them to "avoid the cost and complexity of buying and managing the underlying hardware, software and processes" required for the production of professional print products. Leveraging cloud print for print on demand also allows businesses to cut down on the costs associated with mass production. Moreover, cloud printing can be considered more eco-friendly, as it significantly reduces the amount of paper used (13% reduction in print jobs yearly) and lowers carbon emissions from transportation. As many companies move their IT to the Cloud, some adopting the Windows 365 and Azure Virtual Desktop services from Microsoft, the connection from the Cloud environment to the on-premise printers become an issue as opening ports for incoming print flow traffic is not an option. In 2020, at the exact same time Google discontinued its Google Print offer, Microsoft has announced its Universal Print service offer, aimed at making printing compatible with Cloud Desktop environments, making printing driver-free and simple with no client to install on PC. With Universal Print Microsoft has built a disrupting architecture with a value proposition commodifying printers, removing print servers and drivers, allowing to move printers to VLAN for security purpose and printing from anywhere. Clients are free to use any printer from any model as they all work the same, clients are not tied anymore to any printer brand and that gave a significant boost to the Cloud print market. That Microsoft Universal Print architecture provides APIs to third-party developers who can develop add-ons such as Celiveo 365 to extend Microsoft Cloud Print with added features such as access control on printers and copiers, follow-me pull print, data encryption, advanced usage reporting or charge back. == Providers of Consumer Cloud Printing Solutions == Before 2020 only a handful of providers used to work towards a professional cloud print solution, operating in their own niche or focus on mobile devices. In 2020 Microsoft has boosted that market by announcing its Universal Print Cloud printing service and since then many publishers have started to propose solutions for that growing market. The Covid pandemic also created the need for employees to be able to print at home when using the corporate IT software. Closed VPN often prevent accessing home network printers from corporate laptops and Full Public Cloud solutions are meant to be a solution to that problem. After the decision by Google to terminate Google Cloud Print service on 31 December 2020, most printer vendors released their own mobile cloud solution to fill the gap, while Hewlett-Packard implemented its own cloud print with their ePrint solution. Those solutions are often proprietary, only working on printers proposed by the vendor. Google has decided to let third-party developers develop Cloud Print solutions and to limit its scope to certifying the best Print Management offers compatible with its Chrome Enterprise Cloud ecosystem. == Providers of Corporate Cloud Printing solutions == While many print solutions claim to be "Cloud Printing", there are actually three categories: full Private Cloud, full Public Cloud, and Hybrid Cloud. Their differences are real and have an impact on the overall TCO as the more software there is on-site, the more hidden cost there are. In the Full Public Cloud category, independent SaaS vendors like Celiveo, ezeep , Printix , and Y Soft support a wide range of printer brands and models, allowing clients to buy the best printer without being locked on any brand. They are leveraging cloud computing technology to offer cloud-based print infrastructure and cloud-based printing software as a Service (SaaS). These solutions have integrations to cloud enabled printers or provide embedded printer agents. They feature allow users to print to any printer in any network, isolated network or not, even if that printer is otherwise not reachable from the user's computer. This also allows IT departments to move printers to VLAN for maximum security, like what they are doing with IP phones. Google Chrome Enterprise Cloud ecosystem has its own technical particularities and Google certifies Print Management solutions, ensuring they comply with Google technical requirement, yet letting each solution differentiate from others with specific features or security. Many of solutions for Chrome Enterprise are Hybrid, a few are Full Public Cloud. Industry experts believe that as these services become more popular, users will no longer consider printers as necessary assets but rather as devices that they can access on demand when the need to generate a printed page presents itself. == Caveats of Cloud Printing == == Security == Print jobs flow through Public Internet. It is therefore important to verify no Man-in-the-Middle attack can be performed. The only technical solution is to ensure each printer and PC uses a non-self-generated cryptographic token or certificate allowing TLS mutual authentication and specific data encryption. Self-generated printer certificates are unknown from the Cloud and prevent trusted authentication. Microsoft has implemented its Zero Trust Access security in its Universal Print service, it generates a unique certificate on printers compatible with its service. Other Cloud Printing SaaS providers have followed Microsoft on that High Security path. Print jobs data stored on the Cloud is sensitive as it contains user information as well as all information appearing on pages. Good practices require such data is encrypted at rest and in motion, using asymmetric PKI keys instead of fixed encryption keys. Some solutions require to open incoming traffic ports on the firewall to let Cloud services communicate with printers attached behind that firewall (most of the time for IPP/IPPS flows), some other solutions use a pull model where the communication is always initiated by the printer and no firewall port needs to be open. In terms of security the later is to be preferred.

    Read more →
  • New Classification Scheme for Chinese Libraries

    New Classification Scheme for Chinese Libraries

    The New Classification Scheme for Chinese Libraries is a system of library classification developed by Lai Yung-hsiang since 1956. It is modified from "A System of Book Classification for Chinese Libraries" of Liu Guojun, which is based on the Dewey Decimal System. The scheme is developed for Chinese books and commonly used in Taiwan, Hong Kong and Macau. == Main classes == 000 Generalities 100 Philosophy 200 Religion 300 Sciences 400 Applied sciences 500 Social sciences 600 History of China and Geography of China 700 World history and Geography 800 Linguistics and Literature 900 Arts == Outline of the classification tables == 000 Generalities 000 Special collections 010 Bibliography; Literacy (Documentation) 020 Library and information science; Archive management 030 Sinology 040 General encyclopedia 050 Serial publications; Periodicals 060 General organization; Museology 070 General collected essays 080 General series 090 Collected Chinese classics 100 Philosophy 100 Philosophy: general 110 Thought; Learning 120 Chinese philosophy 130 Oriental philosophy 140 Western philosophy 150 Logic 160 Metaphysics 170 Psychology 180 Esthetics (Aesthetics) 190 Ethics 200 Religion 200 Religion: general 210 Science of religion 220 Buddhism 230 Taoism 240 Christianity 250 Islam (Mohammedanism) 260 Judaism 270 Other religions 280 Mythology 290 Astrology; Superstition 300 Sciences 300 Sciences: general 310 Mathematics 320 Astronomy 330 Physics 340 Chemistry 350 Earth science; Geology 360 Biological science 370 Botany 380 Zoology 390 Anthropology 400 Applied sciences 400 Applied sciences: general 410 Medical sciences 420 Home economics 430 Agriculture 440 Engineering 450 Mining and metallurgy 460 Chemical engineering 470 Manufacture 480 Commerce: various business 490 Commerce: administration and management 500 Social sciences 500 Social sciences: general 510 Statistics 520 Education 530 Rite and custom 540 Sociology 550 Economy 560 Finance 570 Political science 580 Law; Jurisprudence 590 Military science 600-700 History and geography 600 History and geography: General History and geography of China 610 General history of China 620 Chinese history by period 630 History of Chinese civilization 640 Diplomatic history of China 650 Historical sources 660 Geography of China 670 Local history 680 Topical topography 690 Chinese travels World history and geography 710 World: general history and geography 720 Oceans and seas 730 Asia: history and geography 740 Europe: history and geography 750 America: history and geography 760 Africa: history and geography 770 Oceania: history and geography 780 Biography 790 Antiquities and archaeology 800 Linguistics and literature 800 Linguistics: general 810 Literature: general 820 Chinese literature 830 Chinese literature: general collections 840 Chinese literature: individual works 850 Various Chinese literature 860 Oriental literature 870 Western literature 880 Other countries literatures 890 Journalism 900 Arts 900 Arts: general 910 Music 920 Architecture 930 Sculpture 940 Drawing and painting; Calligraphy 950 Photography; Computer art 960 Decorative arts 970 Arts and Crafts movement 980 Theatre 990 Recreation and leisure

    Read more →
  • Kinect

    Kinect

    Kinect is a discontinued line of motion sensing input devices produced by Microsoft and first released in 2010. The devices generally contain RGB cameras, and infrared projectors and detectors that map depth through either structured light or time of flight calculations, which can in turn be used to perform real-time gesture recognition and body skeletal detection, among other capabilities. They also contain microphones that can be used for speech recognition and voice control. Kinect was originally developed as a motion controller peripheral for Xbox video game consoles, distinguished from competitors (such as Nintendo's Wii Remote and Sony's PlayStation Move) by not requiring physical controllers. The first-generation Kinect was based on technology from Israeli company PrimeSense, and unveiled at E3 2009 as a peripheral for Xbox 360 codenamed "Project Natal". It was first released on November 4, 2010, and would go on to sell eight million units in its first 60 days of availability. The majority of the games developed for Kinect were casual, family-oriented titles, which helped to attract new audiences to Xbox 360, but did not result in wide adoption by the console's existing, overall userbase. As part of the 2013 unveiling of Xbox 360's successor, Xbox One, Microsoft unveiled a second-generation version of Kinect with improved tracking capabilities. Microsoft also announced that Kinect would be a required component of the console, and that it would not function unless the peripheral is connected. The requirement proved controversial among users and critics due to privacy concerns, prompting Microsoft to backtrack on the decision. However, Microsoft still bundled the new Kinect with Xbox One consoles upon their launch in November 2013. A market for Kinect-based games still did not emerge after the Xbox One's launch; Microsoft would later offer Xbox One hardware bundles without Kinect included, and later revisions of the console removed the dedicated ports used to connect it (requiring a powered USB adapter instead). Microsoft ended production of Kinect for Xbox One in October 2017. Kinect has also been used as part of non-game applications in academic and commercial environments, as it was cheaper and more robust than other depth-sensing technologies at the time. While Microsoft initially objected to such applications, it later released software development kits (SDKs) for the development of Microsoft Windows applications that use Kinect. In 2020, Microsoft released Azure Kinect as a continuation of the technology integrated with the Microsoft Azure cloud computing platform. Part of the Kinect technology was also used within Microsoft's HoloLens project. Microsoft discontinued the Azure Kinect developer kits in October 2023. == History == === Development === The origins of the Kinect started around 2005, at a point where technology vendors were starting to develop depth-sensing cameras. Microsoft had been interested in a 3D camera for the Xbox line earlier but because the technology had not been refined, had placed it in the "Boneyard", a collection of possible technology they could not immediately work on. In 2005, Israeli company PrimeSense was founded by mathematicians and engineers to develop the "next big thing" for video games, incorporating cameras that were capable of mapping a human body in front of them and sensing hand motions. They showed off their system at the 2006 Game Developers Conference, where Microsoft's Alex Kipman, the general manager of hardware incubation, saw the potential in PrimeSense's technology for the Xbox system. Microsoft began discussions with PrimeSense about what would need to be done to make their product more consumer-friendly: not only improvements in the capabilities of depth-sensing cameras, but a reduction in size and cost, and a means to manufacture the units at scale was required. PrimeSense spent the next few years working at these improvements. Nintendo released the Wii in November 2006. The Wii's central feature was the Wii Remote, a handheld device that was detected by the Wii through a motion sensor bar mounted onto a television screen to enable motion controlled games. Microsoft felt pressure from the Wii, and began looking into depth-sensing in more detail with PrimeSense's hardware, but could not get to the level of motion tracking they desired. While they could determine hand gestures, and sense the general shape of a body, they could not do skeletal tracking. A separate path within Microsoft looked to create an equivalent of the Wii Remote, considering that this type of unit may become standardized similar to how two-thumbstick controllers became a standard feature. However, it was still ultimately Microsoft's goal to remove any device between the player and the Xbox. Kudo Tsunoda and Darren Bennett joined Microsoft in 2008, and began working with Kipman on a new approach to depth-sensing aided by machine learning to improve skeletal tracking. They internally demonstrated this and established where they believed the technology could be in a few years, which led to the strong interest to fund further development of the technology; this has also occurred at a time that Microsoft executives wanted to abandon the Wii-like motion tracking approach, and favored the depth-sensing solution to present a product that went beyond the Wii's capabilities. The project was greenlit by late 2008 with work started in 2009. The project was codenamed "Project Natal" after the Brazilian city Natal, Kipman's birthplace. Additionally, Kipman recognized the Latin origins of the word "natal" to mean "to be born", reflecting the new types of audiences they hoped to draw with the technology. Much of the initial work was related to ethnographic research to see how video game players' home environments were laid out, lit, and how those with Wiis used the system to plan how Kinect units would be used. The Microsoft team discovered from this research that the up-and-down angle of the depth-sensing camera would either need to be adjusted manually, or would require an expensive motor to move automatically. Upper management at Microsoft opted to include the motor despite the increased cost to avoid breaking game immersion. Kinect project work also involved packaging the system for mass production and optimizing its performance. Hardware development took around 22 months. During hardware development, Microsoft engaged with software developers to use Kinect. Microsoft wanted to make games that would be playable by families since Kinect could sense multiple bodies in front of it. One of the first internal titles developed for the device was the pack-in game Kinect Adventures developed by Good Science Studio that was part of Microsoft Studios. One of the game modes of Kinect Adventures was "Reflex Ridge", based on the Japanese Brain Wall game where players attempt to contort their bodies in a short time to match cutouts of a wall moving at them. This type of game was a key example of the type of interactivity they wanted with Kinect, and its development helped feed into the hardware improvements. Another development was Project Milo, a prototype game developed by Lionhead Studios led by Peter Molyneux where the player could interact with a virtual avatar through motion controls and voice recognition. Lionhead had developed the project based on original capabilities of the Kinect, but according to Molyneux, Microsoft had found that a consumer-grade version of the Kinect would cost thousands of dollars, so they scaled back the device and refocused the role of games for the Kinect to be more casual games as seen on the Wii. As a result, Project Milo no longer fit Microsoft's portfolio and was cancelled. Nearing the planned release, there was a problem of widespread testing of Kinect in various room types and different bodies accounting for age, gender, and race among other factors, while keeping the details of the unit confidential. Microsoft engaged in a company-wide program offering employees to take home Kinect units to test them. Microsoft also brought other non-gaming divisions, including its Microsoft Research, Microsoft Windows, and Bing teams to help complete the system. Microsoft established its own large-scale manufacturing facility to bulk product Kinect units and test them. === Introduction === Kinect was first announced to the public as "Project Natal" on June 1, 2009, during Microsoft's press conference at E3 2009; film director Steven Spielberg joined Microsoft's Don Mattrick to introduce the technology and its potential. Three demos were presented during the conference—Microsoft's Ricochet and Paint Party, and Lionhead Studios' Milo & Kate created by Peter Molyneux—while a Project Natal-enabled version of Criterion Games' Burnout Paradise was shown during the E3 exhibition. By E3 2009, the skeletal mapping technology was capable of simultaneously tracking four people, with a feature extraction of 4

    Read more →