In automata theory, a finite-state machine is called a deterministic finite automaton (DFA), if each of its transitions is uniquely determined by its source state and input symbol, and reading an input symbol is required for each state transition. A nondeterministic finite automaton (NFA), or nondeterministic finite-state machine, does not need to obey these restrictions. In particular, every DFA is also an NFA. Sometimes the term NFA is used in a narrower sense, referring to an NFA that is not a DFA, but not in this article. Using the subset construction algorithm, each NFA can be translated to an equivalent DFA; i.e., a DFA recognizing the same formal language. Like DFAs, NFAs only recognize regular languages. NFAs were introduced in 1959 by Michael O. Rabin and Dana Scott, who also showed their equivalence to DFAs. NFAs are used in the implementation of regular expressions: Thompson's construction is an algorithm for compiling a regular expression to an NFA that can efficiently perform pattern matching on strings. Conversely, Kleene's algorithm can be used to convert an NFA into a regular expression (whose size is generally exponential in the input automaton). NFAs have been generalized in multiple ways, e.g., nondeterministic finite automata with ε-moves, finite-state transducers, pushdown automata, alternating automata, ω-automata, and probabilistic automata. Besides the DFAs, other known special cases of NFAs are unambiguous finite automata (UFA) and self-verifying finite automata (SVFA). == Informal introduction == There are at least two equivalent ways to describe the behavior of an NFA. The first way makes use of the nondeterminism in the name of an NFA. For each input symbol, the NFA transitions to a new state until all input symbols have been consumed. In each step, the automaton nondeterministically "chooses" one of the applicable transitions. If there exists at least one "lucky run", i.e. some sequence of choices leading to an accepting state after completely consuming the input, it is accepted. Otherwise, i.e. if no choice sequence at all can consume all the input and lead to an accepting state, the input is rejected. In the second way, the NFA consumes a string of input symbols, one by one. In each step, whenever two or more transitions are applicable, it "clones" itself into appropriately many copies, each one following a different transition. If no transition is applicable, the current copy is in a dead end, and it "dies". If, after consuming the complete input, any of the copies is in an accept state, the input is accepted, else, it is rejected. == Formal definition == For a more elementary introduction of the formal definition, see automata theory. === Automaton === An NFA is represented formally by a 5-tuple, ( Q , Σ , δ , q 0 , F ) {\displaystyle (Q,\Sigma ,\delta ,q_{0},F)} , consisting of a finite set of states Q {\displaystyle Q} , a finite set of input symbols called the alphabet Σ {\displaystyle \Sigma } , a transition function δ {\displaystyle \delta } : Q × Σ → P ( Q ) {\displaystyle Q\times \Sigma \rightarrow {\mathcal {P}}(Q)} , an initial (or start) state q 0 ∈ Q {\displaystyle q_{0}\in Q} , and a set of accepting (or final) states F ⊆ Q {\displaystyle F\subseteq Q} . Here, P ( Q ) {\displaystyle {\mathcal {P}}(Q)} denotes the power set of Q {\displaystyle Q} . === Recognized language === Given an NFA M = ( Q , Σ , δ , q 0 , F ) {\displaystyle M=(Q,\Sigma ,\delta ,q_{0},F)} , its recognized language is denoted by L ( M ) {\displaystyle L(M)} , and is defined as the set of all strings over the alphabet Σ {\displaystyle \Sigma } that are accepted by M {\displaystyle M} . Loosely corresponding to the above informal explanations, there are several equivalent formal definitions of a string w = a 1 a 2 . . . a n {\displaystyle w=a_{1}a_{2}...a_{n}} being accepted by M {\displaystyle M} : w {\displaystyle w} is accepted if a sequence of states, r 0 , r 1 , . . . , r n {\displaystyle r_{0},r_{1},...,r_{n}} , exists in Q {\displaystyle Q} such that: r 0 = q 0 {\displaystyle r_{0}=q_{0}} r i + 1 ∈ δ ( r i , a i + 1 ) {\displaystyle r_{i+1}\in \delta (r_{i},a_{i+1})} , for i = 0 , … , n − 1 {\displaystyle i=0,\ldots ,n-1} r n ∈ F {\displaystyle r_{n}\in F} . In words, the first condition says that the machine starts in the start state q 0 {\displaystyle q_{0}} . The second condition says that given each character of string w {\displaystyle w} , the machine will transition from state to state according to the transition function δ {\displaystyle \delta } . The last condition says that the machine accepts w {\displaystyle w} if the last input of w {\displaystyle w} causes the machine to halt in one of the accepting states. In order for w {\displaystyle w} to be accepted by M {\displaystyle M} , it is not required that every state sequence ends in an accepting state, it is sufficient if one does. Otherwise, i.e. if it is impossible at all to get from q 0 {\displaystyle q_{0}} to a state from F {\displaystyle F} by following w {\displaystyle w} , it is said that the automaton rejects the string. The set of strings M {\displaystyle M} accepts is the language recognized by M {\displaystyle M} and this language is denoted by L ( M ) {\displaystyle L(M)} . Alternatively, w {\displaystyle w} is accepted if δ ∗ ( q 0 , w ) ∩ F ≠ ∅ {\displaystyle \delta ^{}(q_{0},w)\cap F\not =\emptyset } , where δ ∗ : Q × Σ ∗ → P ( Q ) {\displaystyle \delta ^{}:Q\times \Sigma ^{}\rightarrow {\mathcal {P}}(Q)} is defined recursively by: δ ∗ ( r , ε ) = { r } {\displaystyle \delta ^{}(r,\varepsilon )=\{r\}} where ε {\displaystyle \varepsilon } is the empty string, and δ ∗ ( r , x a ) = ⋃ r ′ ∈ δ ∗ ( r , x ) δ ( r ′ , a ) {\displaystyle \delta ^{}(r,xa)=\bigcup _{r'\in \delta ^{}(r,x)}\delta (r',a)} for all x ∈ Σ ∗ , a ∈ Σ {\displaystyle x\in \Sigma ^{},a\in \Sigma } . In words, δ ∗ ( r , x ) {\displaystyle \delta ^{}(r,x)} is the set of all states reachable from state r {\displaystyle r} by consuming the string x {\displaystyle x} . The string w {\displaystyle w} is accepted if some accepting state in F {\displaystyle F} can be reached from the start state q 0 {\displaystyle q_{0}} by consuming w {\displaystyle w} . === Initial state === The above automaton definition uses a single initial state, which is not necessary. Sometimes, NFAs are defined with a set of initial states. There is an easy construction that translates an NFA with multiple initial states to an NFA with a single initial state, which provides a convenient notation. == Example == The following automaton M, with a binary alphabet, determines if the input ends with a 1. Let M = ( { p , q } , { 0 , 1 } , δ , p , { q } ) {\displaystyle M=(\{p,q\},\{0,1\},\delta ,p,\{q\})} where the transition function δ {\displaystyle \delta } can be defined by this state transition table (cf. upper left picture): State Input 0 1 p { p } { p , q } q ∅ ∅ {\displaystyle {\begin{array}{|c|cc|}{\bcancel {{}_{\text{State}}\quad {}^{\text{Input}}}}&0&1\\\hline p&\{p\}&\{p,q\}\\q&\emptyset &\emptyset \end{array}}} Since the set δ ( p , 1 ) {\displaystyle \delta (p,1)} contains more than one state, M is nondeterministic. The language of M can be described by the regular language given by the regular expression (0|1)1. All possible state sequences for the input string "1011" are shown in the lower picture. The string is accepted by M since one state sequence satisfies the above definition; it does not matter that other sequences fail to do so. The picture can be interpreted in a couple of ways: In terms of the above "lucky-run" explanation, each path in the picture denotes a sequence of choices of M. In terms of the "cloning" explanation, each vertical column shows all clones of M at a given point in time, multiple arrows emanating from a node indicate cloning, a node without emanating arrows indicating the "death" of a clone. The feasibility to read the same picture in two ways also indicates the equivalence of both above explanations. Considering the first of the above formal definitions, "1011" is accepted since when reading it M may traverse the state sequence ⟨ r 0 , r 1 , r 2 , r 3 , r 4 ⟩ = ⟨ p , p , p , p , q ⟩ {\displaystyle \langle r_{0},r_{1},r_{2},r_{3},r_{4}\rangle =\langle p,p,p,p,q\rangle } , which satisfies conditions 1 to 3. Concerning the second formal definition, bottom-up computation shows that δ ∗ ( p , ε ) = { p } {\displaystyle \delta ^{}(p,\varepsilon )=\{p\}} , hence δ ∗ ( p , 1 ) = δ ( p , 1 ) = { p , q } {\displaystyle \delta ^{}(p,1)=\delta (p,1)=\{p,q\}} , hence δ ∗ ( p , 10 ) = δ ( p , 0 ) ∪ δ ( q , 0 ) = { p } ∪ { } {\displaystyle \delta ^{}(p,10)=\delta (p,0)\cup \delta (q,0)=\{p\}\cup \{\}} , hence δ ∗ ( p , 101 ) = δ ( p , 1 ) = { p , q } {\displaystyle \delta ^{}(p,101)=\delta (p,1)=\{p,q\}} , and hence δ ∗ ( p , 1011 ) = δ ( p , 1 ) ∪ δ ( q , 1 ) = { p , q } ∪ { } {\displaystyle \delta ^{}(p,1011)=\delta (p,1)\cup \delta (q,1)=\{p,q\}\cup \{\}} ; since that set is
Something Big Is Happening
"Something Big Is Happening" is an essay by Matt Shumer, an AI entrepreneur, about the impact of artificial intelligence, published in February 2026, that has since been reportedly viewed more than 80 million times and widely discussed. Shumer noted that the technology has crossed an important threshold, where AI has become capable of creating self-improving systems. Referring to one the most recent AI models, he wrote: "It was making intelligent decisions. It had something that felt, for the first time, like judgment. Like taste." Speaking to CNBC's Power Lunch, Shumer said that his "core message" is "people in the workforce should start to use and experiment with AI tools so they can understand what’s coming". Even as the essay was widely shared and discussed, the essay also elicited criticism. Paulo Carvao, in an essay published by the Forbes Magazine stated that some of his advice is sound, but added: "It reads at times like a sales pitch. He urges readers to subscribe to the most advanced AI tools. He implies that those with access to premium models will outpace those without. He frames paid AI subscriptions as a form of insurance against obsolescence." Writing in The Guardian, Dan Milmo and Aisha Down mentioned Shumer as having a history of AI hype and stated, "He previously excited the internet by announcing the release of the world's "top open-source model", which it was not". Many workers in the technology sector criticized the article in blog posts shared on Hacker News; Edward Zitron commented that "while coding LLMs can test products, or scan/fix some bugs, this suggests they A) do this autonomously without human input, B) they do this correctly every time (or ever!)." In an article alluding to Shumer's original post, Ari Colaprete wrote "the LLM is fundamentally a writing machine, it does everything via text, and if you make it produce writing that exists purely to serve some sort of mechanical function, and you train it to succeed in that task, then it will tend to do so, even with vast intricacy."
Index locking
In databases an index is a data structure, part of the database, used by a database system to efficiently navigate access to user data. Index data are system data distinct from user data, and consist primarily of pointers. Changes in a database (by insert, delete, or modify operations), may require indexes to be updated to maintain accurate user data accesses. Index locking is a technique used to maintain index integrity. A portion of an index is locked during a database transaction when this portion is being accessed by the transaction as a result of attempt to access related user data. Additionally, special database system transactions (not user-invoked transactions) may be invoked to maintain and modify an index, as part of a system's self-maintenance activities. When a portion of an index is locked by a transaction, other transactions may be blocked from accessing this index portion (blocked from modifying, and even from reading it, depending on lock type and needed operation). Index Locking Protocol guarantees that phantom read phenomenon won't occur. Index locking protocol states: Every relation must have at least one index. A transaction can access tuples only after finding them through one or more indices on the relation A transaction Ti that performs a lookup must lock all the index leaf nodes that it accesses, in S-mode, even if the leaf node does not contain any tuple satisfying the index lookup (e.g. for a range query, no tuple in a leaf is in the range) A transaction Ti that inserts, updates or deletes a tuple ti in a relation r must update all indices to r and it must obtain exclusive locks on all index leaf nodes affected by the insert/update/delete The rules of the two-phase locking protocol must be observed. Specialized concurrency control techniques exist for accessing indexes. These techniques depend on the index type, and take advantage of its structure. They are typically much more effective than applying to indexes common concurrency control methods applied to user data. Notable and widely researched are specialized techniques for B-trees (B-Tree concurrency control) which are regularly used as database indexes. Index locks are used to coordinate threads accessing indexes concurrently, and typically shorter-lived than the common transaction locks on user data. In professional literature, they are often called latches.
Moj
Moj is an Indian short-form video-sharing social networking service owned by Mohalla Tech Pvt Ltd, the parent company of ShareChat. Launched on 29 June 2020, shortly after the Government of India banned TikTok and several other Chinese apps, Moj quickly gained popularity as one of the leading domestic alternatives for short-form video content in India. == History == Moj was introduced by Mohalla Tech, the Bengaluru-based parent company of ShareChat, within days of the TikTok ban in India in June 2020. The app targeted the growing demand for short-form video platforms in the country. By early 2021, Moj had amassed over 100 million downloads on the Google Play Store. In February 2021, Mohalla Tech raised significant funding from investors like Tiger Global, Snapchat, and others, which supported both Moj and ShareChat’s growth. In 2022, Moj partnered with several music labels to expand its licensed music library, competing directly with global platforms such as Instagram Reels and YouTube Shorts. == Features == Short Videos: Users can create and watch videos up to 15–60 seconds. Filters & Effects: The platform provides AR filters, editing tools, stickers, and music integration. Regional Language Support: Moj supports more than 15 Indian languages including Hindi, Bengali, Tamil, Telugu, Kannada, and Marathi. Music Integration: Users can add music tracks to their videos from licensed Indian and international music libraries. Creator Program: Moj launched initiatives to support influencers and creators, offering training, monetization, and promotional opportunities. == Popularity == By mid-2021, Moj reported over 160 million monthly active users. According to reports, Moj consistently ranked among the top social media apps in India in terms of downloads. The app gained traction in Tier-2 and Tier-3 cities due to its multilingual support and focus on local content. == Competitors == Moj competes with several other short video platforms in India, including: Instagram Reels (Meta) YouTube Shorts (Google) Josh (Dailyhunt/VerSe Innovation) Roposo (InMobi) MX TakaTak (later merged with Moj in 2022) RedPost (an emerging Indian social networking platform) == Merger with MX TakaTak == In February 2022, Mohalla Tech announced that Moj would merge with MX TakaTak, another leading short video app owned by Times Internet. The merger created one of the largest short-video ecosystems in India, with a combined user base of over 300 million monthly active users.
Visualization (graphics)
Visualization (or visualisation in Commonwealth English; see spelling differences), also known as graphics visualization, is any technique for creating images, diagrams, or animations to communicate a message. Visualization through visual imagery has been an effective way to communicate both abstract and concrete ideas since the dawn of humanity. Examples from history include cave paintings, Egyptian hieroglyphs, Greek geometry, and Leonardo da Vinci's revolutionary methods of technical drawing for engineering purposes that actively involve scientific requirements. Visualization today has ever-expanding applications in science, education, engineering (e.g., product visualization), interactive multimedia, medicine, etc. Typical of a visualization application is the field of computer graphics. The invention of computer graphics (and 3D computer graphics) may be the most important development in visualization since the invention of central perspective in the Renaissance period. The development of animation also helped advance visualization. == Overview == The use of visualization to present information is not a new phenomenon. It has been used in maps, scientific drawings, and data plots for over a thousand years. Examples from cartography include Ptolemy's Geographia (2nd century AD), a map of China (1137 AD), and Minard's map (1861) of Napoleon's invasion of Russia a century and a half ago. Most of the concepts learned in devising these images carry over in a straightforward manner to computer visualization. Edward Tufte has written three critically acclaimed books that explain many of these principles. Computer graphics has from its beginning been used to study scientific problems. However, in its early days the lack of graphics power often limited its usefulness. The recent emphasis on visualization started in 1987 with the publication of Visualization in Scientific Computing, a special issue of Computer Graphics. Since then, there have been several conferences and workshops, co-sponsored by the IEEE Computer Society and ACM SIGGRAPH, devoted to the general topic, and special areas in the field, for example volume visualization. Most people are familiar with the digital animations produced to present meteorological data during weather reports on television, though few can distinguish between those models of reality and the satellite photos that are also shown on such programs. TV also offers scientific visualizations when it shows computer drawn and animated reconstructions of road or airplane accidents. Some of the most popular examples of scientific visualizations are computer-generated images that show real spacecraft in action, out in the void far beyond Earth, or on other planets. Dynamic forms of visualization, such as educational animation or timelines, have the potential to enhance learning about systems that change over time. Apart from the distinction between interactive visualizations and animation, the most useful categorization is probably between abstract and model-based scientific visualizations. The abstract visualizations show completely conceptual constructs in 2D or 3D. These generated shapes are completely arbitrary. The model-based visualizations either place overlays of data on real or digitally constructed images of reality or make a digital construction of a real object directly from the scientific data. Scientific visualization is usually done with specialized software, though there are a few exceptions, noted below. Some of these specialized programs have been released as open source software, having very often its origins in universities, within an academic environment where sharing software tools and giving access to the source code is common. There are also many proprietary software packages of scientific visualization tools. Models and frameworks for building visualizations include the data flow models popularized by systems such as AVS, IRIS Explorer, and VTK toolkit, and data state models in spreadsheet systems such as the Spreadsheet for Visualization and Spreadsheet for Images. == Applications == === Scientific visualization === As a subject in computer science, scientific visualization is the use of interactive, sensory representations, typically visual, of abstract data to reinforce cognition, hypothesis building, and reasoning. Scientific visualization is the transformation, selection, or representation of data from simulations or experiments, with an implicit or explicit geometric structure, to allow the exploration, analysis, and understanding of the data. Scientific visualization focuses and emphasizes the representation of higher order data using primarily graphics and animation techniques. It is a very important part of visualization and maybe the first one, as the visualization of experiments and phenomena is as old as science itself. Traditional areas of scientific visualization are flow visualization, medical visualization, astrophysical visualization, and chemical visualization. There are several different techniques to visualize scientific data, with isosurface reconstruction and direct volume rendering being the more common. === Data and information visualization === Data visualization is a related subcategory of visualization dealing with statistical graphics and geospatial data (as in thematic cartography) that is abstracted in schematic form. Information visualization concentrates on the use of computer-supported tools to explore large amount of abstract data. The term "information visualization" was originally coined by the User Interface Research Group at Xerox PARC and included Jock Mackinlay. Practical application of information visualization in computer programs involves selecting, transforming, and representing abstract data in a form that facilitates human interaction for exploration and understanding. Important aspects of information visualization are dynamics of visual representation and the interactivity. Strong techniques enable the user to modify the visualization in real-time, thus affording unparalleled perception of patterns and structural relations in the abstract data in question. === Educational visualization === Educational visualization is using a simulation to create an image of something so it can be taught about. This is very useful when teaching about a topic that is difficult to otherwise see, for example, atomic structure, because atoms are far too small to be studied easily without expensive and difficult to use scientific equipment. === Knowledge visualization === The use of visual representations to transfer knowledge between at least two persons aims to improve the transfer of knowledge by using computer and non-computer-based visualization methods complementarily. Thus properly designed visualization is an important part of not only data analysis but knowledge transfer process, too. Knowledge transfer may be significantly improved using hybrid designs as it enhances information density but may decrease clarity as well. For example, visualization of a 3D scalar field may be implemented using iso-surfaces for field distribution and textures for the gradient of the field. Examples of such visual formats are sketches, diagrams, images, objects, interactive visualizations, information visualization applications, and imaginary visualizations as in stories. While information visualization concentrates on the use of computer-supported tools to derive new insights, knowledge visualization focuses on transferring insights and creating new knowledge in groups. Beyond the mere transfer of facts, knowledge visualization aims to further transfer insights, experiences, attitudes, values, expectations, perspectives, opinions, and estimates in different fields by using various complementary visualizations. See also: picture dictionary, visual dictionary === Product visualization === Product visualization involves visualization software technology for the viewing and manipulation of 3D models, technical drawing and other related documentation of manufactured components and large assemblies of products. It is a key part of product lifecycle management. Product visualization software typically provides high levels of photorealism so that a product can be viewed before it is actually manufactured. This supports functions ranging from design and styling to sales and marketing. Technical visualization is an important aspect of product development. Originally technical drawings were made by hand, but with the rise of advanced computer graphics the drawing board has been replaced by computer-aided design (CAD). CAD-drawings and models have several advantages over hand-made drawings such as the possibility of 3-D modeling, rapid prototyping, and simulation. 3D product visualization promises more interactive experiences for online shoppers, but also challenges retailers to overcome hurdles in the production of 3D content, as large-scale 3D content production can be extremel
Imaging phantom
An imaging phantom, or simply phantom (less commonly spelled fantom), is a specially designed object that is scanned or imaged in the field of medical imaging to evaluate, analyze, and tune the performance of various imaging devices. A phantom is more readily available and provides more consistent results than the use of a living subject or cadaver, while also avoiding direct risks to living subjects. Phantoms were originally employed in 2D x-ray–based imaging techniques such as radiography or fluoroscopy, but more recently phantoms with desired imaging characteristics have been developed for 3D techniques such as SPECT, MRI, CT, ultrasound, PET, and other imaging modalities. == Design == A phantom used to evaluate an imaging device should respond in a similar manner to how human tissues and organs would act in that specific imaging modality. For instance, phantoms made for 2D radiography may hold various quantities of x-ray contrast agents with similar x-ray absorbing properties (such as the attenuation coefficient) to normal tissue to tune the contrast of the imaging device or modulate the patient's exposure to radiation. In such a case, the radiography phantom would not necessarily need to have similar textures and mechanical properties since these are not relevant in x-ray imaging modalities. However, in the case of ultrasonography, a phantom with similar rheological and ultrasound scattering properties to real tissue would be essential, but x-ray absorbing properties would not be relevant. The term "phantom" describes an object that is designed to resemble human tissue and can be evaluated, analyzed or manipulated to study the performance of a medical device. Phantoms are created using a digital file that is rendered through magnetic resonance imaging (MRI) or computer-aided design (CAD). The digital files allow for quick modifications that are read by the 3D printer. The 3D printer will create the product in successive layers using polymeric materials. There are several types of phantoms including tissue-mimicking, radiological phantoms, dental phantoms, BOMABs (used to calibrate whole-body counters), and more.
MyChild App
MyChild App is an Android app that helps parents screen developmental disorders in their children between the age of 1 and 24 months. The app contains information for parents about the different stages of a child's development. == Background == Launched in 2015 on Google PlayStore, the app is a consumer product of the parent company, Time Ahead, Inc. Its office is based in Bhopal, Madhya Pradesh, India. As of August 2016, the app had been downloaded by 11,000+ users in 140+ countries and is a part of fbstart case study. == Funding == In 2015, MyChild App raised a seed round of $100k led by 500 Startups, followed by angel investors Samir Bangara, Anisha Mittal, Pallav Nadhani, Deobrat Singh, Lalit Mangal, Arihant Patni, Amit Gupta, Dr. Ritesh Malik, Saurab Paruthi, and Singapore Angel Network.