A datasource or DataSource is a name given to the connection set up to a database from a server. The name is commonly used when creating a query to the database. The data source name (DSN) need not be the same as the filename for the database. For example, a database file named friends.mdb could be set up with a DSN of school. Then DSN school would be used to refer to the database when performing a query. == Sun's version of DataSource [1] == A factory for connections to the physical data source that this DataSource object represents. An alternative to the DriverManager facility, a DataSource object is the preferred means of getting a connection. An object that implements the DataSource interface will typically be registered with a naming service based on the Java Naming and Directory Interface (JNDI) API. The DataSource interface is implemented by a driver vendor. There are three types of implementations: Basic implementation — produces a standard Connection object Connection pooling implementation — produces a Connection object that will automatically participate in connection pooling. This implementation works with a middle-tier connection pooling manager. Distributed transaction implementation — produces a Connection object that may be used for distributed transactions and almost always participates in connection pooling. This implementation works with a middle-tier transaction manager and almost always with a connection pooling manager. A DataSource object has properties that can be modified when necessary. For example, if the data source is moved to a different server, the property for the server can be changed. The benefit is that because the data source's properties can be changed, any code accessing that data source does not need to be changed. A driver that is accessed via a DataSource object does not register itself with the DriverManager. Rather, a DataSource object is retrieved through a lookup operation and then used to create a Connection object. With a basic implementation, the connection obtained through a DataSource object is identical to a connection obtained through the DriverManager facility. == Sun's DataSource Overview [2] == A DataSource object is the representation of a data source in the Java programming language. In basic terms, a data source is a facility for storing data. It can be as sophisticated as a complex database for a large corporation or as simple as a file with rows and columns. A data source can reside on a remote server, or it can be on a local desktop machine. Applications access a data source using a connection, and a DataSource object can be thought of as a factory for connections to the particular data source that the DataSource instance represents. The DataSource interface provides two methods for establishing a connection with a data source. Using a DataSource object is the preferred alternative to using the DriverManager for establishing a connection to a data source. They are similar to the extent that the DriverManager class and DataSource interface both have methods for creating a connection, methods for getting and setting a timeout limit for making a connection, and methods for getting and setting a stream for logging. Their differences are more significant than their similarities, however. Unlike the DriverManager, a DataSource object has properties that identify and describe the data source it represents. Also, a DataSource object works with a Java Naming and Directory Interface (JNDI) naming service and can be created, deployed, and managed separately from the applications that use it. A driver vendor will provide a class that is a basic implementation of the DataSource interface as part of its Java Database Connectivity (JDBC) 2.0 or 3.0 driver product. What a system administrator does to register a DataSource object with a JNDI naming service and what an application does to get a connection to a data source using a DataSource object registered with a JNDI naming service are described later in this chapter. Being registered with a JNDI naming service gives a DataSource object two major advantages over the DriverManager. First, an application does not need to hardcode driver information, as it does with the DriverManager. A programmer can choose a logical name for the data source and register the logical name with a JNDI naming service. The application uses the logical name, and the JNDI naming service will supply the DataSource object associated with the logical name. The DataSource object can then be used to create a connection to the data source it represents. The second major advantage is that the DataSource facility allows developers to implement a DataSource class to take advantage of features like connection pooling and distributed transactions. Connection pooling can increase performance dramatically by reusing connections rather than creating a new physical connection each time a connection is requested. The ability to use distributed transactions enables an application to do the heavy duty database work of large enterprises. Although an application may use either the DriverManager or a DataSource object to get a connection, using a DataSource object offers significant advantages and is the recommended way to establish a connection. Since 1.4 Since Java EE 6 a JNDI-bound DataSource can alternatively be configured in a declarative way directly from within the application. This alternative is particularly useful for self-sufficient applications or for transparently using an embedded database. == Yahoo's version of DataSource [3] == A DataSource is an abstract representation of a live set of data that presents a common predictable API for other objects to interact with. The nature of your data, its quantity, its complexity, and the logic for returning query results all play a role in determining your type of DataSource. For small amounts of simple textual data, a JavaScript array is a good choice. If your data has a small footprint but requires a simple computational or transformational filter before being displayed, a JavaScript function may be the right approach. For very large datasets—for example, a robust relational database—or to access a third-party webservice you'll certainly need to leverage the power of a Script Node or XHR DataSource.
IT baseline protection
The IT baseline protection (German: IT-Grundschutz) approach from the German Federal Office for Information Security (BSI) is a methodology to identify and implement computer security measures in an organization. The aim is the achievement of an adequate and appropriate level of security for IT systems. To reach this goal the BSI recommends "well-proven technical, organizational, personnel, and infrastructural safeguards". Organizations and federal agencies show their systematic approach to secure their IT systems (e.g. Information Security Management System) by obtaining an ISO/IEC 27001 Certificate on the basis of IT-Grundschutz. == Overview baseline security == The term baseline security signifies standard security measures for typical IT systems. It is used in various contexts with somewhat different meanings. For example: Microsoft Baseline Security Analyzer: Software tool focused on Microsoft operating system and services security Cisco security baseline: Vendor recommendation focused on network and network device security controls Nortel baseline security: Set of requirements and best practices with a focus on network operators ISO/IEC 13335-3 defines a baseline approach to risk management. This standard has been replaced by ISO/IEC 27005, but the baseline approach was not taken over yet into the 2700x series. There are numerous internal baseline security policies for organizations, The German BSI has a comprehensive baseline security standard, that is compliant with the ISO/IEC 27000-series == BSI IT baseline protection == The foundation of an IT baseline protection concept is initially not a detailed risk analysis. It proceeds from overall hazards. Consequently, sophisticated classification according to damage extent and probability of occurrence is ignored. Three protection needs categories are established. With their help, the protection needs of the object under investigation can be determined. Based on these, appropriate personnel, technical, organizational and infrastructural security measures are selected from the IT Baseline Protection Catalogs. The Federal Office for Security in Information Technology's IT Baseline Protection Catalogs offer a "cookbook recipe" for a normal level of protection. Besides probability of occurrence and potential damage extents, implementation costs are also considered. By using the Baseline Protection Catalogs, costly security analyses requiring expert knowledge are dispensed with, since overall hazards are worked with in the beginning. It is possible for the relative layman to identify measures to be taken and to implement them in cooperation with professionals. The BSI grants a baseline protection certificate as confirmation for the successful implementation of baseline protection. In stages 1 and 2, this is based on self declaration. In stage 3, an independent, BSI-licensed auditor completes an audit. Certification process internationalization has been possible since 2006. ISO/IEC 27001 certification can occur simultaneously with IT baseline protection certification. (The ISO/IEC 27001 standard is the successor of BS 7799-2). This process is based on the new BSI security standards. This process carries a development price which has prevailed for some time. Corporations having themselves certified under the BS 7799-2 standard are obliged to carry out a risk assessment. To make it more comfortable, most deviate from the protection needs analysis pursuant to the IT Baseline Protection Catalogs. The advantage is not only conformity with the strict BSI, but also attainment of BS 7799-2 certification. Beyond this, the BSI offers a few help aids like the policy template and the GSTOOL. One data protection component is available, which was produced in cooperation with the German Federal Commissioner for Data Protection and Freedom of Information and the state data protection authorities and integrated into the IT Baseline Protection Catalog. This component is not considered, however, in the certification process. == Baseline protection process == The following steps are taken pursuant to the baseline protection process during structure analysis and protection needs analysis: The IT network is defined. IT structure analysis is carried out. Protection needs determination is carried out. A baseline security check is carried out. IT baseline protection measures are implemented. Creation occurs in the following steps: IT structure analysis (survey) Assessment of protection needs Selection of actions Running comparison of nominal and actual. === IT structure analysis === An IT network includes the totality of infrastructural, organizational, personnel, and technical components serving the fulfillment of a task in a particular information processing application area. An IT network can thereby encompass the entire IT character of an institution or individual division, which is partitioned by organizational structures as, for example, a departmental network, or as shared IT applications, for example, a personnel information system. It is necessary to analyze and document the information technological structure in question to generate an IT security concept and especially to apply the IT Baseline Protection Catalogs. Due to today's usually heavily networked IT systems, a network topology plan offers a starting point for the analysis. The following aspects must be taken into consideration: The available infrastructure, The organizational and personnel framework for the IT network, Networked and non-networked IT systems employed in the IT network. The communications connections between IT systems and externally, IT applications run within the IT network. === Protection needs determination === The purpose of the protection needs determination is to investigate what protection is sufficient and appropriate for the information and information technology in use. In this connection, the damage to each application and the processed information, which could result from a breach of confidentiality, integrity or availability, is considered. Important in this context is a realistic assessment of the possible follow-on damages. A division into the three protection needs categories "low to medium", "high" and "very high" has proved itself of value. "Public", "internal" and "secret" are often used for confidentiality. === Modelling === Heavily networked IT systems typically characterize information technology in government and business these days. As a rule, therefore, it is advantageous to consider the entire IT system and not just individual systems within the scope of an IT security analysis and concept. To be able to manage this task, it makes sense to logically partition the entire IT system into parts and to separately consider each part or even an IT network. Detailed documentation about its structure is prerequisite for the use of the IT Baseline Protection Catalogs on an IT network. This can be achieved, for example, via the IT structure analysis described above. The IT Baseline Protection Catalogs' components must ultimately be mapped onto the components of the IT network in question in a modelling step. === Baseline security check === The baseline security check is an organisational instrument offering a quick overview of the prevailing IT security level. With the help of interviews, the status quo of an existing IT network (as modelled by IT baseline protection) relative to the number of security measures implemented from the IT Baseline Protection Catalogs are investigated. The result is a catalog in which the implementation status "dispensable", "yes", "partly", or "no" is entered for each relevant measure. By identifying not yet, or only partially, implemented measures, improvement options for the security of the information technology in question are highlighted. The baseline security check gives information about measures, which are still missing (nominal vs. actual comparison). From this follows what remains to be done to achieve baseline protection through security. Not all measures suggested by this baseline check need to be implemented. Peculiarities are to be taken into account! It could be that several more or less unimportant applications are running on a server, which have lesser protection needs. In their totality, however, these applications are to be provided with a higher level of protection. This is called the (cumulation effect). The applications running on a server determine its need for protection. Several IT applications can run on an IT system. When this occurs, the application with the greatest need for protection determines the IT systems protection category. Conversely, it is conceivable that an IT application with great protection needs does not automatically transfer this to the IT system. This may happen because the IT system is configured redundantly, or because only an inconsequential part is running on it. This is called the (distribution effect). This is the case, fo
AI Customer-support Bots: Free vs Paid (2026)
Curious about the best AI customer-support bot? An AI customer-support bot is software that uses machine learning to help you get more done — it combines speed, accuracy, and an interface that just works. Hands-on testing shows real-world results vary, so a short free trial is the smartest way to decide. Whether you are a beginner or a pro, the right AI customer-support bot 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.
Top 10 AI Voice Assistants Compared (2026)
Comparing the best AI voice assistant? An AI voice assistant is software that uses machine learning to help you get more done — it lowers the barrier so anyone can produce professional output. Privacy matters too: check whether your data trains the model and whether a no-log or enterprise tier is available. Whether you are a beginner or a pro, the right AI voice assistant slots into your workflow and pays for itself fast. Below we compare features, pricing, and real output so you can choose with confidence.
Kristian Kersting
Kristian Kersting (born November 28, 1973, in Cuxhaven, Germany) is a German computer scientist. He is Professor of Artificial intelligence and Machine Learning at the Department of Computer Science at the Technische Universität Darmstadt, Head of the Artificial Intelligence and Machine Learning Lab (AIML) and Co-Director of hessian.AI, the Hessian Center for Artificial Intelligence. He is known for his research on statistical relational artificial intelligence, probabilistic programming, and deep probabilistic learning. == Life == Kersting studied computer science at the University of Freiburg, where he received his Ph.D. in 2006. At the university he attended a course on artificial intelligence given by Bernhard Nebel and became interested in the topic. He was a visiting postdoctoral researcher at the KU Leuven and a postdoctoral associate at the Massachusetts Institute of Technology (MIT). His advisor at MIT was Leslie Pack Kaelbling. From 2008 to 2012, he led a research group at the Fraunhofer Institute for Intelligent Analysis and Information Systems (IAIS). He then became a Juniorprofessor at the University of Bonn and associate Professor at the computer science department of the Technical University of Dortmund. From 2017 to 2019, he was professor of machine Learning and since 2019 professor of artificial intelligence and machine learning at the department of computer science of the Technische Universität Darmstadt. He is also a researcher at ATHENE, the largest research institute for IT security in Europe and leads a research department at the German Research Centre for Artificial Intelligence (DFKI). Kristian Kersting is the co-spokesperson of Cluster of Excellence "Reasonable Artificial Intelligence", RAI (2026-32). == Awards == In 2006, he received the AI Dissertation Award of the European Association for Artificial Intelligence. In 2008, he received the Fraunhofer Attract research grant with a budget of 2.5 million euros over five years. He was appointed Fellow of the European Association for Artificial Intelligence (EurAI) and Fellow of the European Laboratory for Learning and Intelligent Systems (ELLIS) in 2019. In 2019 he received the "Deutscher KI-Preis" ("German AI Award"), endowed with 100,000 euros, for his outstanding scientific achievements in the field of artificial intelligence. He was elected an AAAI Fellow in 2024. == Publications == De Raedt L., Kersting K. (2008) Probabilistic Inductive Logic Programming. In: De Raedt L., Frasconi P., Kersting K., Muggleton S. (eds) Probabilistic Inductive Logic Programming. Lecture Notes in Computer Science, vol 4911. Springer, Berlin, Heidelberg. ISBN 978-3-540-78651-1 Luc De Raedt, Kristian Kersting, Sriraam Natarajan and David Poole, "Statistical Relational Artificial Intelligence: Logic, Probability, and Computation", Synthesis Lectures on Artificial Intelligence and Machine Learning" Morgan & Claypool, March 2016 ISBN 9781627058414.
LemonStand
LemonStand was a Canadian e-commerce company headquartered in Vancouver, British Columbia, that developed cloud-based computer software for online retailers. LemonStand was shut down on June 5, 2019. == History == LemonStand Version 1 was launched on July 28, 2001. It is written in the PHP programming language. Version 1 was released as an on-premises proprietary licensed software, and the commercial license was not free. However, there was a free trial license available. June 2012, LemonStand raised seed funding from the BDC Venture Capital, and a group of angel investors. December 20, 2013, a cloud-based SaaS version of the LemonStand eCommerce platform was released publicly. May 9, 2014, LemonStand and Payfirma, a payments processing company, partnered to provide integrated services for online retailers. May 3, 2016, LemonStand raised funding from BDC Venture Capital and Silicon Valley–based angel investors. March 5, 2019, LemonStand announced their intention to shut down on June 5, 2019. LemonStand was quietly acquired by Mailchimp at the end of February. == Pricing == LemonStand offered three levels of service plans. LemonStand did not charge any transaction fees.
IBM optical mark and character readers
IBM designed, manufactured and sold optical mark and character readers from 1960 until 1984. The IBM 1287 is notable as being the first commercially sold scanner capable of reading handwritten numbers. == Initial development work == IBM Poughkeepsie studied machine character recognition from 1950 till 1954, developing an experimental machine that used a cathode-ray-tube attached an IBM 701 which performed the character analysis. They pursued a technique known as lakes and bays which examined different areas of dark and light where the lakes were white areas enclosed by black and the bays were partially enclosed areas. Their machine and mission was moved to IBM Endicott in 1954, where research continued. From 1955 to 1956 they then worked on the VIDOR (Visual Document Reader) program, but they could not get agreement on acceptable reject rate. The developers felt 80% recognition was acceptable (meaning 20% of documents would need to be manually processed), while product planners and IBM Marketing felt that compared to punched card, the reject rate was unacceptably high. This led to no new products being released. In 1956 the American Bankers Association chose to use Magnetic Ink Character Recognition (MICR) to automate check handling, rejecting a proposed solution generated by an IBM Poughkeepsie banking project that used optical characters formed by vertical bars and digits. IBM developed a magnetic read head to handle the new standard, releasing the IBM 1210 MICR reader/sorter in 1959. The development work for this product both with read heads and document handling, helped move optical character recognition forward, with development focusing on reading one or two lines of print from a paper document larger than an IBM punched card. The first product to be released was the IBM 1418. == IBM 123x Optical Mark Readers == The IBM 1230, IBM 1231, and IBM 1232 were optical mark readers used to input the contents of data sources such as questionnaires, test results, surveys as well as historical data that could be easily entered as marks on sheets. Educational institutes used them to score test results and they were effectively a replacement for the IBM 805 Test Scoring Machine that used electrical resistance and a mark sense pencil to score a test, rather than optical mark detection. They were developed and manufactured by IBM Rochester. They have the following features: A pneumatic input hopper that can hold approximately 600 sheets Two output stackers: the normal stacker that holds 600 sheets and the select (or reject) stacker which holds 50 sheets. Pluggable SMS printed circuit cards They can read positional marks made by a lead pencil using an optical read head that consists of photovoltaic(solar) cells and lamps The 1230 has 21 photovoltaic cells, 20 for reading the pencil marks and one to read timing marks on the right hand border of the sheet. The 1231 and 1232 have 22 photovoltaic cells, 20 to read data, one to read timing marks and one to read a special feature called a master mark. Input size is a 8+1⁄2 in × 11 in (22 cm × 28 cm) sheet called a data sheet that can have up to 1000 marked or printed positions per side. Uses electromechanical devices known as sonic delay lines to store results. === IBM 1230 Optical Mark Scoring Reader === The IBM 1230 is an offline optical mark scoring machine announced on 2 November 1962 that was designed to read and scores 1,200 answer sheets per hour. Scored results are printed via a wire matrix printer on the right margin of each answer sheet as it is processed. Two master sheets are required for the process: one that encoded the correct answers and one for the machine to record run information. Output could be sent to an IBM 534 Model 3 Card Punch as an option, which limits throughput to 750 sheets per hour when punching 80 columns of data. === IBM 1231 Optical Mark Page Reader === The IBM 1231 is an online optical mark reader that was designed to read and score 2000 test answer sheets per hour, depending on downstream operations. The correct answers for the test can either be entered using a master sheet (like the 1230) or sent to the 1231 using the optional master-mark special feature. === IBM 1232 Optical Mark Page Reader === The IBM 1232 is an offline optical mark reader that was designed to read up to 2000 marked sheets per hour. Documents can be read at up to 2000 sheets per hour, but this depends on the number of characters that need to be punched from each sheet. The IBM 1232 reads the marks and then punches them into cards using a IBM 534 Model 3 Card Punch. Together they can read up to 64,000 characters per hour or 800 fully punched cards. === Example customers === The California Test Bureau (CTB) that provided standardised achievement tests for educational institutes across the USA, began replacing their IBM 805s with IBM 1230s in 1963. They then installed two IBM 1232s in 1964. Being able to use a full 8+1⁄2 in × 11 in (22 cm × 28 cm) answer sheet rather than a 7+3⁄8 in × 3+1⁄4 in (18.7 cm × 8.3 cm) mark sense card, eliminated the need to use multiple answer cards per test per student, as well as dramatically increased the marking speed for test answers. Credit Bureau Services of Dallas used an IBM 1232 in 1966 as part of their first computerisation project. They marked credit history data onto optical scanning sheets that were fed into their IBM 1232. The attached IBM 534 then punched this data onto punched cards, which were then fed into their IBM System/360 Model 30. In 1968 the US Army Corps of Engineers Coastal Engineering Research Center (CERC) began using special log books for their coastal surveyors to record coastal survey data, which was then converted to punched cards by an IBM 1232. == IBM 2956 Optical Mark/Hole Reader == The IBM 2956 Models 2 and 3 are custom build optical mark/hole readers designed to be attached to an IBM 2740 Communications Terminal. The IBM 2956-2 can read cards that have either been hand or machine marked or that have been punched. The cards can be fed by hand or from the 400 card hopper. It has a 400 card stacker. The 2956-2 could be ordered by request for price quotation (RPQ) 843086. The IBM 2956-3 can read cards that have either been hand or machine marked or that have been punched. It can also read marked sheets up to 9 in × 14 in (230 mm × 360 mm) in size, although only a 3+1⁄4 in (83 mm) band along the side of the sheet can be read (the width of a punched card). It does not have a hopper or a stacker, so each card or sheet must be manually fed into the machine. The 2956-3 could be ordered by request for price quotation (RPQ) 843106. The 2956-3 could be attached to an IBM 3276 or IBM 3278 display station with RPQ UB9001. One use case for the IBM 2956 is to grade school tests. On completion of a learning module a student can use an optical scan-type card to record answers to up to 27 questions, with up to 5 choices per question. They are scanned by the reader and the results are then transmitted to an IBM System/360 in remote job entry mode and can also be printed on the IBM 2740. The reader can also be attached to an IBM 3735 which transmits results to an IBM System/370 and which prints results on an IBM 3286 printer. They can also be attached to an IBM System/3. Note that the IBM 2956 Model 5 (2956-5) was a banking reader/sorter. == IBM 1282 Optical Reader Card Punch == The IBM 1282 is an offline optical reader that is used to read embossed credit card receipts, a mark read field or machine printed characters in three different fonts. It then outputs this data onto a punched card. It was developed and manufactured by IBM Endicott. It proved popular and within two years of announcement 100 machines were installed or on order. === Example customer === The New York Department of Motor Vehicles reported that from 1964 until 1968 they were using an IBM 1282 to read machine printed license renewal slips that had been mailed back as part of the renewal process. They would scan the slip and then process the resulting punched card. This worked well until the DMV decided to request renewals include the drivers Social Security Number (SSN), which meant a handwritten number needed to be either manually keyed or a new scanning device procured. They switched to the IBM 1287 in 1968. == IBM 1285 Optical Reader == The IBM 1285 is an online optical reader that is used to read printed paper tapes from cash registers or adding machines. It was developed by IBM Endicott and manufactured by IBM Rochester. The IBM 1285 attaches to an IBM 1401, 1440, 1460 or System/360. It has a small round screen to display characters being read and it has a keyboard to enter header information and to optionally enter character corrections for rejected characters. It can read a 200 ft (61 m) roll or paper tape in three-and-a half minutes, reading data at speeds of up to 3000 lines per minute. It can mark the tape with a dot to indicate unreadable characters, so they can be r