Operational database management systems (also referred to as OLTP databases or online transaction processing databases), are used to update data in real-time. These types of databases allow users to do more than simply view archived data. Operational databases allow you to modify that data (add, change or delete data), doing it in real-time. OLTP databases provide transactions as main abstraction to guarantee data consistency that guarantee the so-called ACID properties. Basically, the consistency of the data is guaranteed in the case of failures and/or concurrent access to the data. == History == Since the early 1990s, the operational database software market has been largely taken over by SQL engines. In 2014, the operational DBMS market (formerly OLTP) was evolving dramatically, with new, innovative entrants and incumbents supporting the growing use of unstructured data and NoSQL DBMS engines, as well as XML databases and NewSQL databases. NoSQL databases typically have focused on scalability and have renounced to data consistency by not providing transactions as OLTP system do. Operational databases are increasingly supporting distributed database architecture that can leverage distribution to provide high availability and fault tolerance through replication and scale out ability. The growing role of operational databases in the IT industry is moving fast from legacy databases to real-time operational databases capable to handle distributed web and mobile demand and to address Big data challenges. Recognizing this, Gartner started to publish the Magic Quadrant for Operational Database Management Systems in October 2013. == List of operational databases == Notable operational databases include: == Use in business == Operational databases are used to store, manage and track real-time business information. For example, a company might have an operational database used to track warehouse/stock quantities. As customers order products from an online web store, an operational database can be used to keep track of how many items have been sold and when the company will need to reorder stock. An operational database stores information about the activities of an organization, for example customer relationship management transactions or financial operations, in a computer database. Operational databases allow a business to enter, gather, and retrieve large quantities of specific information, such as company legal data, financial data, call data records, personal employee information, sales data, customer data, data on assets and many other information. An important feature of storing information in an operational database is the ability to share information across the company and over the Internet. Operational databases can be used to manage mission-critical business data, to monitor activities, to audit suspicious transactions, or to review the history of dealings with a particular customer. They can also be part of the actual process of making and fulfilling a purchase, for example in e-commerce. == Data warehouse terminology == In data warehousing, the term is even more specific: the operational database is the one which is accessed by an operational system (for example a customer-facing website or the application used by the customer service department) to carry out regular operations of an organization. Operational databases usually use an online transaction processing database which is optimized for faster transaction processing (create, read, update and delete operations). An operational database is the source for a data warehouse. Data from an operational database can be loaded into an operational data store at a data warehouse before the data is processed into the data warehouse.
Tabletopia
Tabletopia is an online portal for users to play and create virtual tabletop games. The platform is developed by Tabletopia Inc and initially was released as a web browser based service after a successful crowdfunding campaign in August 2015. In December 2016 Tabletopia was released on Steam, and later in 2018 became available in AppStore and Google Play. == Gameplay == Tabletopia is a sandbox system for running any game. That means no AI or rules enforcement. Participating players will have to know how to play the game. Nevertheless, the platform has some automated actions available, like card-shuffling and dealing, dice-rolling, magnetic placement of components in special zones, hand management, and some others. Tabletopia also features ready game setups for various player numbers to facilitate gameplay. It also has customisable camera controls which let players save camera positions and switch between them using hot keys. People can use the Game Designer mode to design and create their own board games using the component library. They can then monetise the games with a 70/30 split to the game designer. == Development == Tabletopia was created in early 2014, by Tim Bokarev and his partners Artem Zinoviev and Dmitry Sergeev. These co-founders already had experience in the video and board games industry. Their other projects include Promo Interactive, an internet advertising agency, Playtox, a mobile MMORPG, Igrology, a game studio, and Tesera.ru, the main Russian-speaking board gaming portal. By Spring 2014, Artem, Dmitry and Tim created Tabletopia Inc. USA and started development. Tabletopia is a multinational crew that includes professionals from USA, Ukraine, Australia, Ireland, and Germany. The Kickstarter campaign in August 2015 earned $133,721 by 2,545 backers. Tabletopia received Green Light on Steam in September 2015 and was released on Steam in March 2016. The platform remained in Early Access until December 2016, when it was officially released on Steam and on the web. In February 2018 it was released as a stand-alone app for iOS tablets, and in September 2018 for Android tablets.
The Best Free AI Art Generator for Beginners
Trying to pick the best AI art generator? An AI art generator is software that uses machine learning to help you get more done — it scales effortlessly from a single task to thousands. The best picks balance beginner-friendly simplicity with the depth power users need, and they ship updates often. Whether you are a beginner or a pro, the right AI art generator slots into your workflow and pays for itself fast. This guide breaks down the top picks, their pros and cons, and who each one is best for.
Samer Hassan
Samer Hassan is a computer scientist, social scientist, activist and researcher, focused on the study of the collaborative economy, online communities and decentralized technologies. He is an associate professor at Universidad Complutense de Madrid (Spain) and Faculty Associate at the Berkman Klein Center for Internet & Society at Harvard University. He is the recipient of an ERC Grant of 1.5M€ with the P2P Models project, to research blockchain-based decentralized autonomous organizations for the collaborative economy. == Education and career == Hassan is a Spanish/Lebanese scholar with an interdisciplinary background, which combines computer sciences with social sciences and activism. He received a degree in Computer Science and MSc in Artificial Intelligence from the Universidad Complutense de Madrid (UCM) in Spain. He also studied three years of Political Science at the distance learning university UNED. He then pursued a PhD in Social Simulation at the department of Software Engineering and Artificial Intelligence of UCM, supervised by the computer scientist Juan Pavón and the sociologist Millán Arroyo-Menéndez. He has been researching in several institutions, funded by several scholarships and awards, most notably Harvard's Real Colegio Complutense, and the Spanish postdoctoral grants Juan de la Cierva and José Castillejo. Thus, he was a visiting researcher at the Centre for Research in Social Simulation, in the Department of Sociology at the University of Surrey in the UK, working under the supervision of Nigel Gilbert (2007-2008), and a lecturer at the American University of Science and Technology in Lebanon (2010–11). He was selected as Fellow at the Berkman Klein Center for Internet & Society at Harvard University (2015-2017) and is presently a Faculty Associate at the same structure. Starting in 2024, he joined, as affiliate faculty, the Institute for Digital Cooperative Economy (The New School), part of the Platform Cooperativism Consortium. == Activism and social engagement == As an activist, Hassan has been engaged in both offline (La Tabacalera de Lavapiés, Medialab-Prado) and online (Ourproject.org, Barrapunto, Wikipedia) initiatives. He was accredited as a grassroots facilitator by the Altekio Cooperative. He co-founded the Comunes Nonprofit in 2009 and the Move Commons webtool project in 2010. He has co-organized practitioner-oriented workshops on platform co-ops and free/open source decentralized tools for communities, and has presented his work in non-academic conferences of Mozilla, the Internet Archive, and others. As a privacy advocate, he co-created a course on cyber-ethics which has been teaching since 2013 (as of 2021). He was co-founder of the Sci-Fdi Spanish science-fiction magazine. His gender is non-binary and uses he/they pronouns. == Work == Hassan's interdisciplinary research spans multiple fields, including online communities, online governance, online collaboration, decentralized technologies, blockchain-based decentralized autonomous organizations, free/libre/open source software, Commons-based peer production, agent-based social simulation, social movements and cyberethics. He has published more than 60 works in these fields. Hassan's PhD thesis focused on the methodological challenges for building data-driven social simulation models. The main model built simulated the transition from modern values to postmodern values in Spain. His methodological work also explored the combination of different artificial intelligence technologies, i.e. software agents with fuzzy logic, data mining, natural language processing, and microsimulation. In his postdoctoral period, he focused on experimenting with multiple software systems to facilitate the collaborative economy, e.g. semantic-web labelling for commons-based initiatives, distribution of value in peer production communities, agent-supported online assemblies, decentralized real-time collaborative software, decentralized blockchain based reputation, or blockchain-enabled commons governance. Hassan was Principal Investigator of the UCM partner in the EU-funded P2Pvalue project on building decentralized web-tools for collaborative communities. As such, he led the team that created SwellRT, a federated backend-as-a-service focused to ease development of apps featuring real-time collaboration. Intellectual Property of this project was transferred to the Apache Software Foundation in 2017. As part of this research line, Hassan's team also develop two SwellRT-based apps, "Teem" for management of social collectives and Jetpad, a federated real time editor. He presented the innovations concerning these software at Harvard's Berkman Klein Center and Harvard's Center for Research on Computation and Society. Other research lines offered outcomes beyond publications. "Wikichron", coled by Javier Arroyo, is a web tool to visualize MediaWiki community metrics, currently in production and available for third-parties. "Decentralized Science", led by Hassan's PhD student Ámbar Tenorio-Fornés, is a framework to facilitate decentralized infrastructure and open peer review in the scientific publication process, which has been selected by the European Commission to receive funding as a spin-off social enterprise. His research on blockchain and crowdfunding models awarded him with a commission from Triple Canopy. His team pushed forward a mapping of the ecosystem of blockchain for social good, led by the Joint Research Centre and published by the European Commission. As part of his ERC project P2P Models, Hassan and his team –including Silvia Semenzin– are investigating whether blockchain technology and Decentralized Autonomous Organizations could contribute to improving the governance of commons-oriented communities, both online and offline. Their work has been showcased for tackling the impact of blockchain on governance, proposing alternatives to the current sharing economy, emerging forms of techno-social systems like NFTs or prediction markets, or giving relevance to gender issues in the field. Hassan was invited to present the project achievements in Harvard Kennedy School, MIT Media Lab, Harvard's Data Privacy Lab, Harvard's Center for Research on Computation and Society, and Harvard's SEAS EconCS. British MP and Opposition Leader Ed Miliband showcased his research and its potential impact on policy. The project made public its way of organizing and its core values. In particular, it has shown a commitment to diversity as a core value in hiring, or choosing case studies. == Selected works == Arroyo, Javier; Davó, David; Martínez-Vicente, Elena; Faqir-Rhazoui, Youssef; Hassan, Samer (8 November 2022). "DAO-Analyzer: Exploring Activity and Participation in Blockchain Organizations" (PDF). Companion Publication of the 2022 Conference on Computer Supported Cooperative Work and Social Computing. CSCW'22 Companion. New York, NY, USA: Association for Computing Machinery. pp. 193–196. doi:10.1145/3500868.3559707. ISBN 978-1-4503-9190-0. Rozas, David; Tenorio-Fornés, Antonio; Díaz-Molina, Silvia; Hassan, Samer (2021). "When Ostrom Meets Blockchain: Exploring the Potentials of Blockchain for Commons Governance". SAGE Open. 11 (1): 215824402110025. doi:10.1177/21582440211002526. ISSN 2158-2440. Faqir-Rhazoui, Youssef; Ariza-Garzón, Miller-Janny; Arroyo, Javier; Hassan, Samer (8 May 2021). "Effect of the Gas Price Surges on User Activity in the DAOs of the Ethereum Blockchain" (PDF). Extended Abstracts of the 2021 CHI Conference on Human Factors in Computing Systems. CHI EA '21. New York, NY, USA: Association for Computing Machinery. pp. 1–7. doi:10.1145/3411763.3451755. ISBN 978-1-4503-8095-9. Hassan, Samer; Filippi, Primavera De (20 April 2021). "Decentralized Autonomous Organization". Internet Policy Review. 10 (2). doi:10.14763/2021.2.1556. hdl:10419/235960. ISSN 2197-6775. Joint Research Centre (European Commission); Hassan, Samer; Hakami, Anna; Brekke, Jaya Klara; De Filippi, Primavera; Lopéz Morales, Genoveva; Pólvora, Alexandre; Orgaz Alonso, Christian; Bodó, Balázs (2020). Scanning the European ecosystem of distributed ledger technologies for social and public good: what, why, where, how, and ways to move forward. LU: Publications Office of the European Union. doi:10.2760/300796. ISBN 978-92-76-21578-3. Filippi, Primavera De; Hassan, Samer (14 November 2016). "Blockchain technology as a regulatory technology: From code is law to law is code". First Monday. arXiv:1801.02507. doi:10.5210/fm.v21i12.7113. ISSN 1396-0466.
Google matrix
A Google matrix is a particular stochastic matrix that is used by Google's PageRank algorithm. The matrix represents a graph with edges representing links between pages. The PageRank of each page can then be generated iteratively from the Google matrix using the power method. However, in order for the power method to converge, the matrix must be stochastic, irreducible and aperiodic. == Adjacency matrix A and Markov matrix S == In order to generate the Google matrix G, we must first generate an adjacency matrix A which represents the relations between pages or nodes. Assuming there are N pages, we can fill out A by doing the following: A matrix element A i , j {\displaystyle A_{i,j}} is filled with 1 if node j {\displaystyle j} has a link to node i {\displaystyle i} , and 0 otherwise; this is the adjacency matrix of links. A related matrix S corresponding to the transitions in a Markov chain of given network is constructed from A by dividing the elements of column "j" by a number of k j = Σ i = 1 N A i , j {\displaystyle k_{j}=\Sigma _{i=1}^{N}A_{i,j}} where k j {\displaystyle k_{j}} is the total number of outgoing links from node j to all other nodes. The columns having zero matrix elements, corresponding to dangling nodes, are replaced by a constant value 1/N. Such a procedure adds a link from every sink, dangling state a {\displaystyle a} to every other node. Now by the construction the sum of all elements in any column of matrix S is equal to unity. In this way the matrix S is mathematically well defined and it belongs to the class of Markov chains and the class of Perron-Frobenius operators. That makes S suitable for the PageRank algorithm. == Construction of Google matrix G == Then the final Google matrix G can be expressed via S as: G i j = α S i j + ( 1 − α ) 1 N ( 1 ) {\displaystyle G_{ij}=\alpha S_{ij}+(1-\alpha ){\frac {1}{N}}\;\;\;\;\;\;\;\;\;\;\;(1)} By the construction the sum of all non-negative elements inside each matrix column is equal to unity. The numerical coefficient α {\displaystyle \alpha } is known as a damping factor. Usually S is a sparse matrix and for modern directed networks it has only about ten nonzero elements in a line or column, thus only about 10N multiplications are needed to multiply a vector by matrix G. == Examples of Google matrix == An example of the matrix S {\displaystyle S} construction via Eq.(1) within a simple network is given in the article CheiRank. For the actual matrix, Google uses a damping factor α {\displaystyle \alpha } around 0.85. The term ( 1 − α ) {\displaystyle (1-\alpha )} gives a surfer probability to jump randomly on any page. The matrix G {\displaystyle G} belongs to the class of Perron-Frobenius operators of Markov chains. The examples of Google matrix structure are shown in Fig.1 for Wikipedia articles hyperlink network in 2009 at small scale and in Fig.2 for University of Cambridge network in 2006 at large scale. == Spectrum and eigenstates of G matrix == For 0 < α < 1 {\displaystyle 0<\alpha <1} there is only one maximal eigenvalue λ = 1 {\displaystyle \lambda =1} with the corresponding right eigenvector which has non-negative elements P i {\displaystyle P_{i}} which can be viewed as stationary probability distribution. These probabilities ordered by their decreasing values give the PageRank vector P i {\displaystyle P_{i}} with the PageRank K i {\displaystyle K_{i}} used by Google search to rank webpages. Usually one has for the World Wide Web that P ∝ 1 / K β {\displaystyle P\propto 1/K^{\beta }} with β ≈ 0.9 {\displaystyle \beta \approx 0.9} . The number of nodes with a given PageRank value scales as N P ∝ 1 / P ν {\displaystyle N_{P}\propto 1/P^{\nu }} with the exponent ν = 1 + 1 / β ≈ 2.1 {\displaystyle \nu =1+1/\beta \approx 2.1} . The left eigenvector at λ = 1 {\displaystyle \lambda =1} has constant matrix elements. With 0 < α {\displaystyle 0<\alpha } all eigenvalues move as λ i → α λ i {\displaystyle \lambda _{i}\rightarrow \alpha \lambda _{i}} except the maximal eigenvalue λ = 1 {\displaystyle \lambda =1} , which remains unchanged. The PageRank vector varies with α {\displaystyle \alpha } but other eigenvectors with λ i < 1 {\displaystyle \lambda _{i}<1} remain unchanged due to their orthogonality to the constant left vector at λ = 1 {\displaystyle \lambda =1} . The gap between λ = 1 {\displaystyle \lambda =1} and other eigenvalue being 1 − α ≈ 0.15 {\displaystyle 1-\alpha \approx 0.15} gives a rapid convergence of a random initial vector to the PageRank approximately after 50 multiplications on G {\displaystyle G} matrix. At α = 1 {\displaystyle \alpha =1} the matrix G {\displaystyle G} has generally many degenerate eigenvalues λ = 1 {\displaystyle \lambda =1} (see e.g. [6]). Examples of the eigenvalue spectrum of the Google matrix of various directed networks is shown in Fig.3 from and Fig.4 from. The Google matrix can be also constructed for the Ulam networks generated by the Ulam method [8] for dynamical maps. The spectral properties of such matrices are discussed in [9,10,11,12,13,15]. In a number of cases the spectrum is described by the fractal Weyl law [10,12]. The Google matrix can be constructed also for other directed networks, e.g. for the procedure call network of the Linux Kernel software introduced in [15]. In this case the spectrum of λ {\displaystyle \lambda } is described by the fractal Weyl law with the fractal dimension d ≈ 1.3 {\displaystyle d\approx 1.3} (see Fig.5 from ). Numerical analysis shows that the eigenstates of matrix G {\displaystyle G} are localized (see Fig.6 from ). Arnoldi iteration method allows to compute many eigenvalues and eigenvectors for matrices of rather large size [13]. Other examples of G {\displaystyle G} matrix include the Google matrix of brain [17] and business process management [18], see also. Applications of Google matrix analysis to DNA sequences is described in [20]. Such a Google matrix approach allows also to analyze entanglement of cultures via ranking of multilingual Wikipedia articles abouts persons [21] == Historical notes == The Google matrix with damping factor was described by Sergey Brin and Larry Page in 1998 [22], see also articles on PageRank history [23], [24].
G'MIC
G'MIC (GREYC's Magic for Image Computing) is a free and open-source framework for image processing. It defines a script language that allows the creation of complex macros. Originally usable only through a command line interface, it is currently mostly popular as a GIMP plugin, and is also included in Krita. G'MIC is dual-licensed under CECILL-2.1 or CECILL-C. == Features == G'MIC's graphical interface is notable for its noise removal filters, which came from an earlier project called GREYCstoration by the same authors. G'MIC offers many built-in commands for image processing, including basic mathematical manipulations, look up tables, and filtering operations. More complex macros and pipelines built out of those commands are defined in its library files. == Interpreters == === Command line === G'MIC is primarily a script language callable from a shell. For example, to display an image: This command displays the image contained in the file image.jpg and allows zooming in to examine values. Several filters can be applied in succession. For example, to crop and resize an image: === Graphical interface === G'MIC comes with a Qt-based graphical interface, which may be integrated as a Gimp or Krita plugin. It contains several hundred filters written in the G'MIC language, dynamically updated through an internet feed. The interface provides a preview and setting sliders for each filter. G'MIC is one of the most popular Gimp plugins. === G'MIC Online === Most of the filters available for the graphical interface are also available online. === ZArt === ZArt is a graphical interface for real-time manipulation of webcam images. === libgmic === Libgmic is a C++ library that can be linked to third-party applications. It sees integration in Flowblade and Veejay.
Thompson's construction
In computer science, Thompson's construction algorithm, also called the McNaughton–Yamada–Thompson algorithm, is a method of transforming a regular expression into an equivalent nondeterministic finite automaton (NFA). This NFA can be used to match strings against the regular expression. This algorithm is credited to Ken Thompson. Regular expressions and nondeterministic finite automata are two representations of formal languages. For instance, text processing utilities use regular expressions to describe advanced search patterns, but NFAs are better suited for execution on a computer. Hence, this algorithm is of practical interest, since it can compile regular expressions into NFAs. From a theoretical point of view, this algorithm is a part of the proof that they both accept exactly the same languages, that is, the regular languages. An NFA can be made deterministic by the powerset construction and then be minimized to get an optimal automaton corresponding to the given regular expression. However, an NFA may also be interpreted directly. To decide whether two given regular expressions describe the same language, each can be converted into an equivalent minimal deterministic finite automaton via Thompson's construction, powerset construction, and DFA minimization. If, and only if, the resulting automata agree up to renaming of states, the regular expressions' languages agree. == The algorithm == The algorithm works recursively by splitting an expression into its constituent subexpressions, from which the NFA will be constructed using a set of rules. More precisely, from a regular expression E, the obtained automaton A with the transition function Δ respects the following properties: A has exactly one initial state q0, which is not accessible from any other state. That is, for any state q and any letter a, Δ ( q , a ) {\displaystyle \Delta (q,a)} does not contain q0. A has exactly one final state qf, which is not co-accessible from any other state. That is, for any letter a, Δ ( q f , a ) = ∅ {\displaystyle \Delta (q_{f},a)=\emptyset } . Let c be the number of concatenation of the regular expression E and let s be the number of symbols apart from parentheses — that is, |, , a and ε. Then, the number of states of A is 2s − c (linear in the size of E). The number of transitions leaving any state is at most two. Since an NFA of m states and at most e transitions from each state can match a string of length n in time O(emn), a Thompson NFA can do pattern matching in linear time, assuming a fixed-size alphabet. === Rules === The following rules are depicted according to Aho et al. (2007), p. 122. In what follows, N(s) and N(t) are the NFA of the subexpressions s and t, respectively. The empty-expression ε is converted to A symbol a of the input alphabet is converted to The union expression s|t is converted to State q goes via ε either to the initial state of N(s) or N(t). Their final states become intermediate states of the whole NFA and merge via two ε-transitions into the final state of the NFA. The concatenation expression st is converted to The initial state of N(s) is the initial state of the whole NFA. The final state of N(s) becomes the initial state of N(t). The final state of N(t) is the final state of the whole NFA. The Kleene star expression s is converted to An ε-transition connects initial and final state of the NFA with the sub-NFA N(s) in between. Another ε-transition from the inner final to the inner initial state of N(s) allows for repetition of expression s according to the star operator. The parenthesized expression (s) is converted to N(s) itself. With these rules, using the empty expression and symbol rules as base cases, it is possible to prove with structural induction that any regular expression may be converted into an equivalent NFA. == Example == Two examples are now given, a small informal one with the result, and a bigger with a step by step application of the algorithm. === Small Example === The picture below shows the result of Thompson's construction on (ε|ab). The purple oval corresponds to a, the teal oval corresponds to a, the green oval corresponds to b, the orange oval corresponds to ab, and the blue oval corresponds to ε. === Application of the algorithm === As an example, the picture shows the result of Thompson's construction algorithm on the regular expression (0|(1(01(00)0)1)) that denotes the set of binary numbers that are multiples of 3: { ε, "0", "00", "11", "000", "011", "110", "0000", "0011", "0110", "1001", "1100", "1111", "00000", ... }. The upper right part shows the logical structure (syntax tree) of the expression, with "." denoting concatenation (assumed to have variable arity); subexpressions are named a-q for reference purposes. The left part shows the nondeterministic finite automaton resulting from Thompson's algorithm, with the entry and exit state of each subexpression colored in magenta and cyan, respectively. An ε as transition label is omitted for clarity — unlabelled transitions are in fact ε transitions. The entry and exit state corresponding to the root expression q is the start and accept state of the automaton, respectively. The algorithm's steps are as follows: An equivalent minimal deterministic automaton is shown below. == Relation to other algorithms == Thompson's is one of several algorithms for constructing NFAs from regular expressions; an earlier algorithm was given by McNaughton and Yamada. Converse to Thompson's construction, Kleene's algorithm transforms a finite automaton into a regular expression. Glushkov's construction algorithm is similar to Thompson's construction, once the ε-transitions are removed. == Use in string pattern matching == Regular expressions are often used to specify patterns that software is then asked to match. Generating an NFA by Thompson's construction, and using an appropriate algorithm to simulate it, it is possible to create pattern-matching software with performance that is O ( m n ) {\displaystyle O(mn)} , where m is the length of the regular expression and n is the length of the string being matched. This is much better than is achieved by many popular programming-language implementations; however, it is restricted to purely regular expressions and does not support patterns for non-regular languages like backreferences.