AI Chat Programs

AI Chat Programs — independent reviews, comparisons, pricing and step-by-step guides on Aizhi.

  • ObjectVision

    ObjectVision

    ObjectVision was a forms-based programming language and environment for Windows 3.x developed by Borland. The latest version, 2.1, was released in 1992. An ObjectVision application is composed by forms designed in a graphic way that contains objects and events to provide interactivity. Forms are connected together with logic in the form of decision trees. ObjectVision applications also can interact with databases using multiple engines, like Paradox and dBase. A finished project is saved as an OVD file, that is executed by an interpreted runtime that can be freely distributed. ObjectVision was not used broadly except in some niche segments, but the visual programming ideas were the basis for Borland Delphi.

    Read more →
  • List of operating systems

    List of operating systems

    This is a list of operating systems. Computer operating systems can be categorized by technology, ownership, licensing, working state, usage, and by many other characteristics. In practice, many of these groupings may overlap. Criteria for inclusion is notability, as shown either through an existing Wikipedia article or citation to a reliable source. == Proprietary == === Acorn Computers === Arthur ARX MOS RISC iX RISC OS === Amazon === Fire OS === Amiga Inc. === AmigaOS AmigaOS 1.0-3.9 (Motorola 68000) AmigaOS 4 (PowerPC) Amiga Unix (a.k.a. Amix) === Amstrad === AMSDOS Contiki CP/M 2.2 CP/M Plus SymbOS === Apple === Apple II Apple DOS Apple Pascal ProDOS GS/OS GNO/ME Contiki Apple III Apple SOS Apple Lisa Mac Classic Mac OS A/UX (UNIX System V with BSD extensions) Copland MkLinux Pink Rhapsody macOS (formerly Mac OS X and OS X) macOS Server (formerly Mac OS X Server and OS X Server) Apple Network Server IBM AIX (Apple-customized) Apple MessagePad Newton OS iPhone and iPod Touch iOS (formerly iPhone OS) iPad iPadOS Apple Watch watchOS Apple TV tvOS Embedded operating systems bridgeOS Apple Vision Pro visionOS Embedded operating systems A/ROSE iPod software (unnamed embedded OS for iPod) Unnamed NetBSD variant for Airport Extreme and Time Capsule === Apollo Computer, Hewlett-Packard === Domain/OS – One of the first network-based systems. Run on Apollo/Domain hardware. Later bought by Hewlett-Packard. === Atari === Atari DOS (for 8-bit computers) Atari TOS Atari MultiTOS Contiki (for 8-bit, ST, Portfolio) === BAE Systems === XTS-400 === Be Inc. === BeOS BeIA BeOS r5.1d0 magnussoft ZETA (based on BeOS r5.1d0 source code, developed by yellowTAB) === Bell Labs === Unix ("Ken's new system," for its creator (Ken Thompson), officially Unics and then Unix, the prototypic operating system created in Bell Labs in 1969 that formed the basis for the Unix family of operating systems) UNIX Time-Sharing System v1 UNIX Time-Sharing System v2 UNIX Time-Sharing System v3 UNIX Time-Sharing System v4 UNIX Time-Sharing System v5 UNIX Time-Sharing System v6 MINI-UNIX PWB/UNIX USG CB Unix UNIX Time-Sharing System v7 (It is from Version 7 Unix (and, to an extent, its descendants listed below) that almost all Unix-based and Unix-like operating systems descend.) Unix System III Unix System IV Unix System V Unix System V Releases 2.0, 3.0, 3.2, 4.0, and 4.2 UNIX Time-Sharing System v8 UNIX Time-Sharing System v9 UNIX Time-Sharing System v10 Non-Unix Operating Systems: BESYS Plan 9 from Bell Labs Inferno === Burroughs Corporation, Unisys === Burroughs MCP === CII === Siris 8 === Commodore International === GEOS AmigaOS AROS Research Operating System === Control Data Corporation === ==== Lower 3000 series ==== SCOPE (Supervisory Control Of Program Execution) ==== Upper 3000 series ==== SCOPE (Supervisory Control Of Program Execution) Drum SCOPE ==== 6x00 and related Cyber ==== Chippewa Operating System (COS) MACE (Mansfield and Cahlander Executive) Kronos (Kronographic OS) NOS (Network Operating System) NOS/VE (NOS Virtual Environment) SCOPE (Supervisory Control Of Program Execution) NOS/BE NOS Batch Environment SIPROS (Simultaneous Processing Operating System) ==== Star-100 ==== Multiple Console Time Sharing System (MCTS), from General Motors Research === CloudMosa === Puffin OS === Convergent Technologies === Convergent Technologies Operating System (CTOS) – later acquired by Unisys === Cromemco === Cromemco DOS (CDOS) – a Disk Operating system compatible with CP/M Cromix – a multitasking, multi-user, Unix-like OS for Cromemco microcomputers with Z80A and/or 68000 CPU === Data General === AOS for 16-bit Data General Eclipse computers and AOS/VS for 32-bit (MV series) Eclipses, MP/AOS for microNOVA-based computers DG/UX RDOS Real-time Disk Operating System, with variants: RTOS and DOS (not related to PC DOS, MS-DOS etc.) === Datapoint === CTOS Cassette Tape Operating System for the Datapoint 2200 DOS Disk Operating System for the Datapoint 2200, 5500, and 1100 === DDC-I, Inc. === Deos – Time & Space Partitioned RTOS, Certified to DO-178B, Level A since 1998 HeartOS – POSIX-based Hard Real-Time Operating System === Digital Research, Inc. === CP/M CP/M CP/M for Intel 8080/8085 and Zilog Z80 Personal CP/M, a refinement of CP/M CP/M Plus with BDOS 3.0 CP/M-68K CP/M for Motorola 68000 CP/M-8000 CP/M for Zilog Z8000 CP/M-86 CP/M for Intel 8088/8086 CP/M-86 Plus Personal CP/M-86 MP/M Multi-user version of CP/M-80 MP/M II MP/M-86 Multi-user version of CP/M-86 MP/M 8-16, a dual-processor variant of MP/M for 8086 and 8080 CPUs. Concurrent CP/M, the successor of CP/M-80 and MP/M-80 Concurrent CP/M-86, the successor of CP/M-86 and MP/M-86 Concurrent CP/M 8-16, a dual-processor variant of Concurrent CP/M for 8086 and 8080 CPUs. Concurrent CP/M-68K, a variant for the 68000 DOS Concurrent DOS, the successor of Concurrent CP/M-86 with PC-MODE Concurrent PC DOS, a Concurrent DOS variant for IBM compatible PCs Concurrent DOS 8-16, a dual-processor variant of Concurrent DOS for 8086 and 8080 CPUs Concurrent DOS 286 Concurrent DOS XM, a real-mode variant of Concurrent DOS with EEMS support Concurrent DOS 386 Concurrent DOS 386/MGE, a Concurrent DOS 386 variant with advanced graphics terminal capabilities Concurrent DOS 68K, a port of Concurrent DOS to Motorola 68000 CPUs with DOS source code portability capabilities FlexOS 1.0 – 2.34, a derivative of Concurrent DOS 286 FlexOS 186, a variant of FlexOS for terminals FlexOS 286, a variant of FlexOS for hosts Siemens S5-DOS/MT, an industrial control system based on FlexOS IBM 4680 OS, a POS operating system based on FlexOS IBM 4690 OS, a POS operating system based on FlexOS Toshiba 4690 OS, a POS operating system based on IBM 4690 OS and FlexOS FlexOS 386, a later variant of FlexOS for hosts IBM 4690 OS, a POS operating system based on FlexOS Toshiba 4690 OS, a POS operating system based on IBM 4690 OS and FlexOS FlexOS 68K, a derivative of Concurrent DOS 68K Multiuser DOS, the successor of Concurrent DOS 386 CCI Multiuser DOS Datapac Multiuser DOS Datapac System Manager, a derivative of Datapac Multiuser DOS IMS Multiuser DOS IMS REAL/32, a derivative of Multiuser DOS IMS REAL/NG, the successor of REAL/32 DOS Plus 1.1 – 2.1, a single-user, multi-tasking system derived from Concurrent DOS 4.1 – 5.0 DR-DOS 3.31 – 6.0, a single-user, single-tasking native DOS derived from Concurrent DOS 6.0 Novell PalmDOS 1.0 Novell "Star Trek" Novell DOS 7, a single-user, multi-tasking system derived from DR DOS Caldera OpenDOS 7.01 Caldera DR-DOS 7.02 and higher === Digital Equipment Corporation, Compaq, Hewlett-Packard, Hewlett Packard Enterprise === Batch-11/DOS-11 OS/8 RSTS/E – multi-user time-sharing OS for PDP-11s RSX-11 – multiuser, multitasking OS for PDP-11s RT-11 – single user OS for PDP-11 TOPS-10 – for the PDP-10 TENEX – an ancestor of TOPS-20 from BBN, for the PDP-10 TOPS-20 – for the PDP-10 DEC MICA – for the DEC PRISM Digital UNIX – derived from OSF/1, became HP's Tru64 UNIX Ultrix VMS – originally by DEC (now by VMS Software Inc.) for the VAX mini-computer range; later renamed OpenVMS and ported to Alpha, and subsequently ported to Intel Itanium and then to x86-64 WAITS – for the PDP-6 and PDP-10 === ENEA AB === OSE – Flexible, small footprint, high-performance RTOS for control processors === Fujitsu === Towns OS XSP OS/IV MSP MSP-EX === GEC Computers === COS DOS OS4000 === General Electric, Honeywell, Bull === Real-Time Multiprogramming Operating System GCOS Multics === Google === ChromiumOS is an open source operating system development version of ChromeOS. Both operating systems are based on the Linux kernel. ChromeOS is designed to work exclusively with web applications, though has been updated to run Android apps with full support for Google Play Store. Announced on July 7, 2009, ChromeOS is currently publicly available and was released summer 2011. The ChromeOS source code was released on November 19, 2009, under the BSD license as ChromiumOS. Container-Optimized OS (COS) is an operating system that is optimized for running Docker containers, based on ChromiumOS. Android is an operating system for mobile devices. It consists of Android Runtime (userland) with Linux (kernel), with its Linux kernel modified to add drivers for mobile device hardware and to remove unused Vanilla Linux drivers. gLinux, a Linux distribution that Google uses internally Fuchsia is a capability-based real-time operating system (RTOS) scalable to universal devices, in early development, from the tiniest embedded hardware, wristwatches, tablets to the largest personal computers. Unlike ChromeOS and Android, it is not based on the Linux kernel, but instead began on a new microkernel called "Zircon", derived from "Little Kernel". Wear OS a version of Google's Android operating system designed for smartwatches and other wearables. === Green Hills Software === INTEGRITY – Reliable Operating system INTEGRITY-178B – A DO-178B certified version of INTEGRITY. μ-

    Read more →
  • Packard Bell Statesman

    Packard Bell Statesman

    The Packard Bell Statesman was an economy line of notebook-sized laptops introduced in 1993 by Packard Bell. They were slower in performance and lacked features compared to most competitor products, but they were lower in price. It was created in a collaboration between Packard Bell and Zenith Data Systems. The Statesman series was essentially a rebrand of Zenith Data Systems Z-Star 433 series, with the only notable difference of the logo in the middle and text on the front bezel. == History == In June 1993 Zenith Data Systems announced an alliance with Packard Bell. Zenith acquired about 20% of Packard Bell and they would both now work together to design and build PC's. Zenith would also provide Packard Bell with private-label versions of their portable PC's. The Packard Bell Statesman was a rebrand of the Zenith Z-Star notebook computer series. While the Statesman was being advertised by Packard Bell, the Z-Star series was also still being sold by Zenith. The Statesman was first introduced on October 4, 1993. Prices started at $1,500 for a monochrome or color DSTN model with a 33 MHz Cyrix Cx486SLC, 4 MB of RAM, 200 MB hard disk drive, internal 1.44 MB floppy disk drive, and MS-DOS 6.0 with Windows 3.1 for the included software. A "J mouse" pointing device was included, similar to the TrackPoint. The Statesman was expected to begin shipping within the next few weeks. == Specifications == === Hardware === CPU The first two models, the 200M and 200C, used the Cyrix Cx486SLC. This was Cyrix's first processor, which was a 386SX pin-compatible chip with on-board L1 cache and 486 instructions, being known as a "hybrid chip". The processor was clocked at 33 MHz and had 1 KB of L1 cache. It was a 16-bit processor and was pin compatible with the Intel 80386SX. On the bottom of the unit, the motherboard had an empty socket for a Cyrix FasMath co-processor, which could improve floating-point math performance. The 200M and 200C plus models had a Cyrix Cx486SLC2 clocked at 50 MHz, which was 50% faster than the original 486SLC. The SLC2 similarly had 1 KB of on-board cache and was pin compatible with the previous model. Graphics & Display For video all models used three versions of the Chips & Technologies 655xx, the CT65520, 65525, and 65530. The 65520 was first introduced in early 1992 as the first controller with Super VGA resolution. It supported resolutions up to 1024x768 in 16 colors or shades of gray. If in 800x600 resolution, it can display up to 256 colors. All 3 chips were the same, with the CT65525 identifying as a CT65530. The CT65530 had an ability of 5V and 3.3V mixed operation and linear video memory addressing. All models used a 9.5in 800x600 resolution DSTN LCD. The 200M and 200M Plus had a monochrome display, while the 200C and 200C Plus had a color display. Audio All models had only basic audio available, with just a piezo speaker soldered onto the motherboard and no sound controller. Memory Standard RAM included was 4-8 MB of EDO RAM. The RAM was on a proprietary SIPP package that could only be upgraded to 12 MB maximum if the user had compatible modules. Storage For storage all models used a hard drive with a size of 100 or 200 MB, and all models had an internal 1.44 MB floppy disk drive located on the side of the unit. The maximum capacity hard drive compatible if the user wanted to upgrade was 500 MB.Ports & Expansion For ports all models had 1x serial, 1x parallel, 1x VGA output, and 1x PS/2 keyboard/mouse input. For expansion all models only had one PCMCIA type II slot. Keyboard & Mouse All models used a small-scale keyboard with control keys. One interesting feature of the keyboard is that the J key also acted as a mouse, working similar to IBM's ThinkPad TrackPoint. On some models additional keys such as S, D, F, G and space let you do other mouse actions such as right click, left click, double click, and middle mouse click. === Software === The series shipped with MS-DOS and Windows 3.1 as the included operating system. == Model Comparison == Statesman 200M — The first Statesman model, it came with a DSTN monochrome screen, and a Nickel-cadmium battery pack which could last up to 4 hours. It weighed 7.4 lb and was $1500. Statesman 200C — The second Statesman model, it was the same as the 200M with the only notable differences of a DSTN color display rather than monochrome and a slightly decreased battery life of about 3 hours. It cost $700 more than the 200M at $2200. Statesman 200M/200C Plus — The 200M/200C Plus were both identical to their previous base models, with the only difference of them having a Cx486SLC2 running at 50 MHz. In 1994 it cost around $2,295 for the 200C plus with 4 MB of ram, with 8 MB costing an extra $400. == Reception == The Statesman received fair reception, with most reviewers giving positivity for the low price and high battery life, but mainly criticizing the performance and screen quality of the model line. A review by PC World writer Rex Farrance and Owen Linderholm said the 200M had a good price, being only $1500, and a good battery life which lasted about 4 hours. In benchmarks however, the 200M performed "noticeably below the average". It was noted that the 200M's worst feature was its monochrome display, being "cloudy and a bit dim for our tastes". The J mouse was considered a decent choice, and was said to be "highly usable" after some practice. The 200M was listed as number 3 on PC World's top 20 budget PC list. PC World also reviewed the 200C, saying the color display is only a "marginal, although an improvement on the monochrome version". The 200C placed 9 on the PC World top 20 budget PC list. Compute! Magazine reviewed the 200C Plus in September 1994 stating it "lagged far behind the others, especially the DXs, but then speed isn't everything". It was given pros for low cost and good display, but criticized for its low performance, not having a trackball, and poor external monitor support.

    Read more →
  • RadioVIS

    RadioVIS

    RadioVIS is a protocol for sideband signalling of images and text messages for a broadcast audio service to provide a richer visual experience. It is an application and sub-project of RadioDNS, which allows radio consumption devices to look up an IP-based service based on the parameters of the currently tuned broadcast station. In January 2015, the functionality of RadioVIS was integrated to Visual Slideshow (ETSI TS 101 499 v3.1.1). The original RVIS01 document is now deprecated. == Details == The protocol enables either Streaming Text Oriented Messaging Protocol (STOMP) or Comet to deliver text and image URLs to a client, with the images being acquired over a HTTP connection. The technology is currently implemented by a number of broadcasters across the world, including Global Radio, Bauer Radio in the UK, RTÉ in the Republic Of Ireland, Südwestrundfunk in Germany and a number of Australian media groups amongst others. A number of software clients exist to show the protocol, as well as hardware devices such as the Pure Sensia from Pure Digital, and the Colourstream from Roberts Radio.

    Read more →
  • Thunderspy

    Thunderspy

    Thunderspy is a type of security vulnerability, based on the Intel Thunderbolt 3 port, first reported publicly on 10 May 2020, that can result in an evil maid (i.e., attacker of an unattended device) attack gaining full access to a computer's information in about five minutes, and may affect millions of Apple, Linux and Windows computers, as well as any computers manufactured before 2019, and some after that. According to Björn Ruytenberg, the discoverer of the vulnerability, "All the evil maid needs to do is unscrew the backplate, attach a device momentarily, reprogram the firmware, reattach the backplate, and the evil maid gets full access to the laptop. All of this can be done in under five minutes." The malicious firmware is used to clone device identities which makes classical DMA attack possible. == History == The Thunderspy security vulnerabilities were first publicly reported by Björn Ruytenberg of Eindhoven University of Technology in the Netherlands on 10 May 2020. Thunderspy is similar to Thunderclap, another security vulnerability, reported in 2019, that also involves access to computer files through the Thunderbolt port. == Impact == The security vulnerability affects millions of Apple, Linux and Windows computers, as well as all computers manufactured before 2019, and some after that. However, this impact is restricted mainly to how precise a bad actor would have to be to execute the attack. Physical access to a machine with a vulnerable Thunderbolt controller is necessary, as well as a writable ROM chip for the Thunderbolt controller's firmware. Additionally, part of Thunderspy, specifically the portion involving re-writing the firmware of the controller, requires the device to be in sleep, or at least in some sort of powered-on state, to be effective. Machines that force power-off when the case is open may assist in resisting this attack to the extent that the feature (switch) itself resists tampering. Due to the nature of attacks that require extended physical access to hardware, it's unlikely the attack will affect users outside of a business or government environment. == Mitigation == The researchers claim there is no easy software solution, and may only be mitigated by disabling the Thunderbolt port altogether. However, the impacts of this attack (reading kernel level memory without the machine needing to be powered off) are largely mitigated by anti-intrusion features provided by many business machines. Intel claims enabling such features would substantially restrict the effectiveness of the attack. Microsoft's official security recommendations recommend disabling sleep mode while using BitLocker. Using hibernation in place of sleep mode turns the device off, mitigating potential risks of attack on encrypted data.

    Read more →
  • Digital data

    Digital data

    Digital data or digital information, in information theory and information systems, is data or information represented as a string of discrete symbols, each of which can take on one of only a finite number of values from some alphabet, such as letters or digits. An example is a text document, which consists of a string of alphanumeric characters. The most common form of digital data in modern information systems is binary data, which is represented by a string of binary digits (bits) each of which can have one of two values, either 0 or 1. Digital data can be contrasted with analog data, which is represented by a value from a continuous range of real numbers. Analog data is transmitted by an analog signal, which not only takes on continuous values but can vary continuously with time, a continuous real-valued function of time. An example is the air pressure variation in a sound wave. Data requires interpretation to become information. In modern (post-1960) computer systems, all data is digital. The word digital comes from the same source as the words digit and digitus (the Latin word for finger), as fingers are often used for counting. Mathematician George Stibitz of Bell Telephone Laboratories used the word digital in reference to the fast electric pulses emitted by a device designed to aim and fire anti-aircraft guns in 1942. The term is most commonly used in computing and electronics, especially where real-world information is converted to binary numeric form as in digital audio and digital photography. == Symbol to digital conversion == Since symbols (for example, alphanumeric characters) are not continuous, representing symbols digitally is rather simpler than conversion of continuous or analog information to digital. Instead of sampling and quantization as in analog-to-digital conversion, such techniques as polling and encoding are used. A symbol input device usually consists of a group of switches that are polled at regular intervals to see which switches are switched. Data will be lost if, within a single polling interval, two switches are pressed, or a switch is pressed, released, and pressed again. This polling can be done by a specialized processor in the device to prevent burdening the main CPU. When a new symbol has been entered, the device typically sends an interrupt, in a specialized format, so that the CPU can read it. For devices with only a few switches (such as the buttons on a joystick), the status of each can be encoded as bits (usually 0 for released and 1 for pressed) in a single word. This is useful when combinations of key presses are meaningful, and is sometimes used for passing the status of modifier keys on a keyboard (such as shift and control). But it does not scale to support more keys than the number of bits in a single byte or word. Devices with many switches (such as a computer keyboard) usually arrange these switches in a scan matrix, with the individual switches on the intersections of x and y lines. When a switch is pressed, it connects the corresponding x and y lines together. Polling (often called scanning in this case) is done by activating each x line in sequence and detecting which y lines then have a signal, thus which keys are pressed. When the keyboard processor detects that a key has changed state, it sends a signal to the CPU indicating the scan code of the key and its new state. The symbol is then encoded or converted into a number based on the status of modifier keys and the desired character encoding. A custom encoding can be used for a specific application with no loss of data. However, using a standard encoding such as ASCII is problematic if a symbol such as 'ß' needs to be converted but is not in the standard. It is estimated that in the year 1986, less than 1% of the world's technological capacity to store information was digital and in 2007 it was already 94%. The year 2002 is assumed to be the year when humankind was able to store more information in digital than in analog format (the "beginning of the digital age"). == States == Digital data come in these three states: data at rest, data in transit, and data in use. The confidentiality, integrity, and availability have to be managed during the entire lifecycle from 'birth' to the destruction of the data. === Data at rest === Data at rest in information technology means data that is housed physically on computer data storage in any digital form (e.g. cloud storage, file hosting services, databases, data warehouses, spreadsheets, archives, tapes, off-site or cloud backups, mobile devices etc.). Data at rest includes both structured and unstructured data. This type of data is subject to threats from hackers and other malicious threats to gain access to the data digitally or physical theft of the data storage media. To prevent this data from being accessed, modified or stolen, organizations will often employ security protection measures such as password protection, data encryption, or a combination of both. The security options used for this type of data are broadly referred to as data-at-rest protection (DARP). Definitions include: "...all data in computer storage while excluding data that is traversing a network or temporarily residing in computer memory to be read or updated." "...all data in storage but excludes any data that frequently traverses the network or that which resides in temporary memory. Data at rest includes but is not limited to archived data, data which is not accessed or changed frequently, files stored on hard drives, USB thumb drives, files stored on backup tape and disks, and also files stored off-site or on a storage area network (SAN)." While it is generally accepted that archive data (i.e. which never changes), regardless of its storage medium, is data at rest and active data subject to constant or frequent change is data in use. “Inactive data” could be taken to mean data which may change, but infrequently. The imprecise nature of terms such as “constant” and “frequent” means that some stored data cannot be comprehensively defined as either data at rest or in use. These definitions could be taken to assume that Data at Rest is a superset of data in use; however, data in use, subject to frequent change, has distinct processing requirements from data at rest, whether completely static or subject to occasional change. ==== Security ==== Because of its nature data at rest is of increasing concern to businesses, government agencies and other institutions. Mobile devices are often subject to specific security protocols to protect data at rest from unauthorized access when lost or stolen and there is an increasing recognition that database management systems and file servers should also be considered as at risk; the longer data is left unused in storage, the more likely it might be retrieved by unauthorized individuals outside the network. Data encryption, which prevents data visibility in the event of its unauthorized access or theft, is commonly used to protect data in motion and increasingly promoted for protecting data at rest. The encryption of data at rest should only include strong encryption methods such as AES or RSA. Encrypted data should remain encrypted when access controls such as usernames and password fail. Increasing encryption on multiple levels is recommended. Cryptography can be implemented on the database housing the data and on the physical storage where the databases are stored. Data encryption keys should be updated on a regular basis. Encryption keys should be stored separately from the data. Encryption also enables crypto-shredding at the end of the data or hardware lifecycle. Periodic auditing of sensitive data should be part of policy and should occur on scheduled occurrences. Finally, only store the minimum possible amount of sensitive data. Tokenization is a non-mathematical approach to protecting data at rest that replaces sensitive data with non-sensitive substitutes, referred to as tokens, which have no extrinsic or exploitable meaning or value. This process does not alter the type or length of data, which means it can be processed by legacy systems such as databases that may be sensitive to data length and type. Tokens require significantly less computational resources to process and less storage space in databases than traditionally encrypted data. This is achieved by keeping specific data fully or partially visible for processing and analytics while sensitive information is kept hidden. Lower processing and storage requirements makes tokenization an ideal method of securing data at rest in systems that manage large volumes of data. A further method of preventing unwanted access to data at rest is the use of data federation especially when data is distributed globally (e.g. in off-shore archives). An example of this would be a European organisation which stores its archived data off-site in the US. Under the terms of the USA PATRIOT Act the American authorities can demand

    Read more →
  • W3C Device Description Working Group

    W3C Device Description Working Group

    The W3C Device Description Working Group (DDWG), operating as part of the World Wide Web Consortium (W3C) Mobile Web Initiative (MWI), was chartered to "foster the provision and access to device descriptions that can be used in support of Web-enabled applications that provide an appropriate user experience on mobile devices." Mobile devices exhibit the greatest diversity of capabilities, and therefore present the greatest challenge to content adaptation technologies. The group published several documents, including a list of requirements for an interface to a Device Description Repository (DDR) and a standard interface meeting those requirements. The group was rechartered in 2006 to work in public towards the development of the Application Programming Interface (API) for a DDR. Early in 2007, the group launched a wiki and a blog to add to the public mailing list. The group subsequently published a formal vocabulary of core device properties, and an API called the DDR Simple API, which became a W3C Recommendation in December 2008. The group closed at the end of 2008, but with the intention of maintaining the Web pages, blog and wiki through W3C volunteer effort. == Publications == The DDWG published several W3C Working Group Notes and one W3C Recommendation. A W3C WG Note that articulates what the W3C and other organizations are doing or have already done with regard to device information. This document suggests an environment in which these technologies work together to meet the goals of content adaptation. The completed document was published on 31 October 2007. A W3C WG Note describing the ecosystem surrounding creation, maintenance and use of device descriptions. The completed document was published on 31 October 2007. A W3C WG Note describing a set of requirements for a reference repository of device descriptions. The completed document was published on 17 December 2007. A W3C WG Note describing a process to manage contributions to an initial core vocabulary, identification of key device properties, a formal initial core vocabulary and the identification of a maintainer for the core vocabulary. The details were contained in the Working Group Note describing the DDWG Core Vocabulary published on 14 April 2008. A W3C WG Note defining useful grouping and structure patterns in device descriptions. The Device Description Structures document was published as a Working Draft on 5 December 2008. The intention is that this document will be future input to other W3C groups. A W3C Recommendation defining a language-neutral programming interface to a Device Description Repository. The DDR Simple API was published on 5 December 2008. There is the possibility of future publications on the DDWG wiki describing implementations of the API in various languages, including Java, IDL, WSDL, C# etc. Much of the DDWG's material was developed in public via the DDWG Wiki and through their public mailing lists.

    Read more →
  • Distributed operating system

    Distributed operating system

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

    Read more →
  • Euratlas

    Euratlas

    Euratlas is a Switzerland-based software company dedicated to elaborate digital history maps of Europe. Founded in 2001, Euratlas has created a collection of history maps of Europe from year 1 AD to year 2000 AD that present the evolution of every country from the Roman Empire to present times. The evolution includes sovereign states and their administrative subdivisions, but also unorganized peoples and dependent territories. The maps show European country borders at regular intervals of 100 years, but not year by year. This leaves out many important turning points in history. Euratlas is considered a digital humanities company, and a scholar research software used in the field of historic cartography. It is broadly known among American and European universities, who mainly use Euratlas as a research tool and as a digital library atlas. == Sequential mapping policy == This concept was first designed by the German scholar Christian Kruse (1753–1827). Kruse, well aware that historical accounts are often biased for geographical, philosophical or political reasons, created a set of sequential maps in order to give a global vision of the successive political situations. Nowadays, the majority of atlases don't use this approach, but are event-based, like the well-known Penguin Atlas of History. The sequential approach intends to make the sequence of maps more neutral and suitable for students, historians and professionals of several fields. Although, this approach has been discussed as it leaves out many important history events that are not reflected on any of the maps because of the century interval. == Geo-referenced historical data == Initially, the European maps by century were developed as vector maps. From 2006 on, they have been converted to a geographic information system (GIS) database, enabling geo-referenced data capabilities. The map information is distributed in several layers: physical (geography information layer); political information layer (supranational entities, sovereign states, administrative divisions, dependent states and autonomous peoples); and special layers for cities and uncertain borders. The software database also contains much non-geographical information about political relationships between the various kinds of territories. == Map projection == Euratlas History Maps uses a Mercator projection, with the center in Europe. The maps include the North-African coast and the Near-East, offering a complete view of the Mediterranean Basin. The European Russia plains are shown, but not Scandinavia, specially Finland, which is cropped off the map view.

    Read more →
  • Artificial Intelligence for Digital Response

    Artificial Intelligence for Digital Response

    Artificial Intelligence for Digital Response (AIDR) is a free and open source platform to filter and classify social media messages related to emergencies, disasters, and humanitarian crises. It has been developed by the Qatar Computing Research Institute and awarded the Grand Prize for the 2015 Open Source Software World Challenge. Muhammad Imran stated that he and his team "have developed novel computational techniques and technologies, which can help gain insightful and actionable information from online sources to enable rapid decision-making" - according to him the system "combines human intelligence with machine learning techniques, to solve many real-world challenges during mass emergencies and health issues". == How to use == It can be used by logging in with ones Twitter credentials and by collecting tweets by specifying keywords or hashtags, like #ChileEarthquake, and possibly a geographical region as well. == Use == It has been deployed in conjunction with UNICEF in Zambia to classify short messages related to AIDS/HIV received through the U-Report platform. AIDR was used for the first time during the 2010 Pakistan floods. The first real test of AIDR took place during the 2014 Iquique earthquake in Chile. == Related talks and events == Muhammad Imran delivered a keynote talk on the science behind the AIDR system at the International Conference on Information Systems for Crisis Response And Management (ISCRAM). Abdelkader Lattab and Ji Lucas also presented the system at the 2016 QCRI-IBM Data Science Connect event.

    Read more →
  • UCSD Pascal

    UCSD Pascal

    UCSD Pascal is a Pascal programming language system that runs on the UCSD p-System, a portable, highly machine-independent operating system. UCSD Pascal was first released in 1977. It was developed at the University of California, San Diego (UCSD). == The p-System == In 1977, the University of California, San Diego (UCSD) Institute for Information Systems developed UCSD Pascal to provide students with a common environment that could run on any of the then available microcomputers as well as campus DEC PDP-11 minicomputers. The operating system became known as UCSD p-System. There were three operating systems that IBM offered for its original IBM PC: the UCSD p-System, CP/M-86, and IBM PC DOS. Vendor SofTech Microsystems emphasized p-System's application portability, with virtual machines for 20 CPUs as of the IBM PC's release. It predicted that users would be able to use applications they purchased on future computers running p-System; advertisements called it "the Universal Operating System". PC Magazine denounced UCSD p-System on the IBM PC, stating in a review of Context MBA, written in the language, that it "simply does not produce good code". The p-System did not sell very well for the IBM PC, because of a lack of applications and because it was more expensive than the other choices. Previously, IBM had offered the UCSD p-System as an option for IBM Displaywriter, an 8086-based dedicated word processing machine. (The Displaywriter's native operating system had been developed completely internally and was not opened for end-user programming.) Notable extensions to standard Pascal include separately compilable Units and a String type. Some intrinsics were provided to accelerate string processing (e.g. scanning in an array for a particular search pattern); other language extensions were provided to allow the UCSD p-System to be self-compiling and self-hosted. UCSD Pascal was based on a p-code machine architecture. Its contribution to these early virtual machines was to extend p-code away from its roots as a compiler intermediate language into a full execution environment. The UCSD Pascal p-Machine was optimized for the new small microcomputers with addressing restricted to 16-bit (only 64 KB of memory). James Gosling cites UCSD Pascal as a key influence (along with the Smalltalk virtual machine) on the design of the Java virtual machine. UCSD p-System achieved machine independence by defining a virtual machine, called the p-Machine (or pseudo-machine, which many users began to call the "Pascal-machine" like the OS—although UCSD documentation always used "pseudo-machine") with its own instruction set called p-code (or pseudo-code). Urs Ammann, a student of Niklaus Wirth, originally presented a p-code in his PhD thesis, from which the UCSD implementation was derived, the Zurich Pascal-P implementation. The UCSD implementation changed the Zurich implementation to be "byte oriented". The UCSD p-code was optimized for execution of the Pascal programming language. Each hardware platform then only needed a p-code interpreter program written for it to port the entire p-System and all the tools to run on it. Later versions also included additional languages that compiled to the p-code base. For example, Apple Computer offered a Fortran Compiler (written by Silicon Valley Software, Sunnyvale California) producing p-code that ran on the Apple version of the p-system. Later, TeleSoft (also located in San Diego) offered an early Ada development environment that used p-code and was therefore able to run on a number of hardware platforms including the Motorola 68000, the System/370, and the Pascal MicroEngine. UCSD p-System shares some concepts with the later Java platform. Both use a virtual machine to hide operating system and hardware differences, and both use programs written to that virtual machine to provide cross-platform support. Likewise both systems allow the virtual machine to be used either as the complete operating system of the target computer or to run in a "box" under another operating system. The UCSD Pascal compiler was distributed as part of a portable operating system, the p-System. == History == UCSD p-System began around 1974 as the idea of UCSD's Kenneth Bowles, who believed that the number of new computing platforms coming out at the time would make it difficult for new programming languages to gain acceptance. He based UCSD Pascal on the Pascal-P2 release of the portable compiler from Zurich. He was particularly interested in Pascal as a language to teach programming. UCSD introduced two features that were important improvements on the original Pascal: variable length strings, and "units" of independently compiled code (an idea included into the then-evolving Ada (programming language)). Niklaus Wirth credits the p-System, and UCSD Pascal in particular, with popularizing Pascal. It was not until the release of Turbo Pascal that UCSD's version started to slip from first place among Pascal users. The Pascal dialect of UCSD Pascal came from the subset of Pascal implemented in Pascal-P2, which was not designed to be a full implementation of the language, but rather "the minimum subset that would self-compile", to fit its function as a bootstrap kit for Pascal compilers. UCSD added strings from BASIC, and several other implementation dependent features. Although UCSD Pascal later obtained many of the other features of the full Pascal language, the Pascal-P2 subset persisted in other dialects, notably Borland Pascal, which copied much of the UCSD dialect. == Versions == There were four versions of UCSD p-code engine, each with several revisions of the p-System and UCSD Pascal. A revision of the p-code engine (i.e., the p-Machine) meant a change to the p-code language, and therefore compiled code is not portable between different p-Machine versions. Each revision was represented with a leading Roman Numeral, while operating system revisions were enumerated as the "dot" number following the p-code Roman Numeral. For example, II.3 represented the third revision of the p-System running on the second revision of the p-Machine. === Version I === Original version, never officially distributed outside of the University of California, San Diego. However, the Pascal sources for both Versions I.3 and I.5 were freely exchanged between interested users. Specifically, the patch revision I.5a was known to be one of the most stable. === Version II === Widely distributed, available on many early microcomputers. Numerous versions included Apple II ultimately Apple Pascal, DEC PDP-11, Intel 8080, Zilog Z80, and MOS 6502 based machines, Motorola 68000 and the IBM PC (Version II on the PC was restricted to one 64K code segment and one 64K stack/heap data segment; Version IV removed the code segment limit but cost a lot more). Project members from this era include Dr Kenneth L Bowles, Mark Allen, Richard Gleaves, Richard Kaufmann, Pete Lawrence, Joel McCormack, Mark Overgaard, Keith Shillington, Roger Sumner, and John Van Zandt. === Version III === Custom version written for Western Digital to run on their Pascal MicroEngine microcomputer. Included support for parallel processes for the first time. === Version IV === Commercial version, developed and sold by SofTech. Based on Version II; did not include changes from Version III. Did not sell well due to combination of their pricing structure, performance problems due to p-code interpreter, and competition with native operating systems (on top of which it often ran). After SofTech dropped the product, it was picked up by Pecan Systems, a relatively small company formed of p-System users and fans. Sales revived somewhat, due mostly to Pecan's reasonable pricing structure, but the p-System and UCSD Pascal gradually lost the market to native operating systems and compilers. Available for the TI-99/4A equipped with p-code card, Commodore CBM 8096, Sage II/IV, HP 9000, and BBC Micro with 6502 second processor. == Further use == The Corvus Systems computer used UCSD Pascal for all its user software. The "innovative concept" of the Constellation OS was to run Pascal (interpretively or compiled) and include all common software in the manual, so users could modify as needed.

    Read more →
  • Problematic social media use

    Problematic social media use

    Excessive use of social media can lead to problems including impaired functioning and a reduction in overall wellbeing, for both users and those around them. Such usage is associated with a risk of mental health problems, sleep problems, academic struggles, and daytime fatigue. Psychological or behavioural dependence on social media platforms can result in significant negative functions in peoples daily lives. The risk of problems is also related to the type of platform of social media or online community being used. People of different ages and genders may be affected in different ways by problematic social media use. == Signs and symptoms == Signs of social media addiction or excessive use of social media include many behaviours similar to substance use disorders, including mood modification, salience, tolerance, stress withdrawal symptoms, psychological distress, anxiety and depression, conflict, and relapse, and low self esteem. People with problematic social media habits are at risk of being addicted and may require more time on social media as time passes. Frequent social media use may also be associated with self-reported symptoms of attention deficit hyperactivity disorder. Social anxiety (or fear of missing out) is another potential symptom. Social anxiety is defined as having intense anxiety or fear of being judged, negatively evaluated, or rejected in a social or performance situation. The fear of missing out can contribute to excessive usage due to frequent checking the media constantly throughout the day to check in and see what others are doing instead of doing other activities. Common signs include displacement, or replacing meaningful other activities with social media, and loneliness. == Causes and mechanisms == There are many theories for the mechanism or cause behind a person having problematic social media use. The transition from normal to problematic social media use occurs when a person relies on it to relieve stress, loneliness, depression, or provide continuous rewards. Cognitive-behavioral model – People increase their use of social media when they are in unfamiliar environments or awkward situations; Social skill model – People pull out their phones and use social media when they prefer virtual communication as opposed to face-to-face interactions because they lack self-presentation skills; Socio-cognitive model – This person uses social media because they love the feeling of people liking and commenting on their photos and tagging them in pictures. They are attracted to the positive outcomes they receive on social media. There are parallels to the gambling industry inherent to the design of various social media sites, with "'ludic loops' or repeated cycles of uncertainty, anticipation and feedback" potentially contributing to problematic social media use. Another factor directly facilitating the development of addiction to social media is the implicit attitude toward the IT artifact. Social media use may also stimulate the reward pathway in the brain. There is also a theory that social media addiction fulfills a basic evolutionary drives in the wake of mass urbanization worldwide. The basic psychological needs of "secure, predictable community life that evolved over millions of years" remain unchanged, leading some to find online communities to cope with the new individualized way of life in some modern societies. The "Evolutionary Mismatch" hypothesis holds that modern digital platforms amplify social competition and comparison in ways our ancestors never faced, possibly triggering maladaptive patterns such as anxiety, depression, or compulsive use. Similarly, some scholars compare social media to "junk food": The approach taken to develop social media platforms may contribute to problematic social media use. The ability to scroll and stream content endlessly and how app developers distort time by affecting the 'flow' of content when scrolling, potentially resulting in the Zeigarnik effect (the human brain will continue to pursue an unfinished task until a satisfying closure. Autoplay modes, the personalized nature of the content results in emotional attachment (the user values this above its actual value, which is referred to as the endowment effect), and the exposure effect (repeated exposure to a distinct stimulus by the user can condition the user into an enhanced or improved attitude toward it). The interactive nature of the platforms, including the ability to "like" content has also been linked. Even though social media can satisfy personal communication needs, those who use it at higher rates are shown to have higher levels of psychological distress. == Diagnosis == While there is no official diagnostic term or measurement, problematic social media use is conceptualized as a non-substance-related disorder, resulting in preoccupation and compulsion to engage excessively in social media platforms despite negative consequences. No diagnosis exists for problematic social media use in either the ICD-11 or DSM-5. Excessive use of an activity, like social media, does not directly equate with addiction. There are other factors that could lead to someone's social media addiction including personality traits and pre-existing tendencies. While the extent of social media use and addiction are positively correlated, it is erroneous to employ use (the degree to which one makes use of the site's features, the effort exerted during use sessions, access frequency, etc.) as a proxy for addiction. Indicators of a potential dependence on social media include: Mood swings: a person uses social media to regulate his or her mood, or as a means of escaping real world conflicts. Relevance: social media starts to dominate a person's thoughts at the expense of other activities. Salience: social media becomes the most important part of someone's life. Tolerance: a person increases their time spent on social media to experience previously associated feelings they had while using social media. Withdrawal: when a person can not access social media their sleeping or eating habits change or signs of depression or anxiety can become present. Conflicts in real life: when social media is used excessively, it can affect real-life relationships with family and friends. Relapse: the tendency for previously affected individuals to revert to previous patterns of excessive social media use. There have been several scales developed and validated that help to understand the issues regarding problematic social media use. There is not one single scale that is being used by all researchers. == Treatment == Screen time recommendations for children and families have been developed by the American Academy of Pediatrics. Possible therapeutic interventions published include: Self-help interventions, including application-specific timers; Cognitive behavioural therapy; and Organisational and schooling support. Medications have not been shown to be effective in randomized, controlled trials for the related conditions of Internet addiction disorder or gaming disorder. == Prevention == Prevention approaches include screen time monitoring apps and other tech-based approaches to improve efficiency and decrease screen time and tools to help with addiction to online platform products. Parents' methods for monitoring, regulating, and understanding their children's social media use are referred to as parental mediation. Parental mediation strategies include active, restrictive, and co-using methods. Active mediation involves direct parent-child conversations that are intended to educate children on social media norms and safety, as well as the variety and purposes of online content. Restrictive mediation entails the implementation of rules, expectations, and limitations regarding children's social media use and interactions. Co-use is when parents jointly use social media alongside their children, and is most effective when parents are actively participating (like asking questions, making inquisitive/supportive comments) versus being passive about it. Active mediation is the most common strategy used by parents, though the key to success for any mediation strategy is consistency/reliability. When parents reinforce rules inconsistently, have no mediation strategy, or use highly restrictive strategies for monitoring their children's social media use, there is an observable increase in children's aggressive behaviours. When parents openly express that they are supportive of their child's autonomy and provide clear, consistent rules for media use, problematic usage and aggression decreases. Knowing that consistent, autonomy-supportive mediation has more positive outcomes than inconsistent, controlling mediation, parents can consciously foster more direct, involved, and genuine dialogue with their children. This can help prevent or reduce problematic social media use in children and teenagers. == Outcomes == === Adolescents and teens === Increased social medi

    Read more →
  • List of chatbots

    List of chatbots

    A chatbot is a software application or web interface that is designed to mimic human conversation through text or voice interactions. Modern chatbots are typically online and use generative artificial intelligence systems that are capable of maintaining a conversation with a user in natural language and simulating the way a human would behave as a conversational partner. Such chatbots often use large language models (LLMs) and natural language processing, but simpler chatbots have existed for decades. == LLM chatbots == == General chatbots == == Historical chatbots ==

    Read more →
  • Librem

    Librem

    Librem is a line of computers manufactured by Purism, SPC featuring free (libre) software. The laptop line is designed to protect privacy and freedom by omitting non-free (proprietary) software in their operating system and kernel, avoiding the Intel Active Management Technology, and gradually freeing and securing firmware. Librem laptops feature hardware kill switches for the microphone, webcam, Bluetooth and Wi-Fi. == Models == === Laptops === ==== Librem 13, Librem 15 and Librem 14 ==== In 2014, Purism launched a crowdfunding campaign on Crowd Supply to fund the creation and production of the Librem 15 laptop, conceived as a modern alternative to existing open-source hardware laptops, all of which used older hardware. The 15 in the name refers to its 15-inch screen size. The campaign succeeded after extending the original campaign, and the laptops were shipped to backers. In a second revision of the laptop, hardware kill switches for the camera, microphone, Wi-Fi, and Bluetooth were added. After the successful launch of the Librem 15, Purism created another campaign on Crowd Supply for a 13-inch laptop named Librem 13, which also came with hardware kill switches similar to those on the Librem 15v2. The campaign was again successful and the laptops were shipped to customers. Purism announced in December 2016 that it would start shipping from inventory rather than building to order with the new batches of Librem 15 and 13. As of January 2023, Purism has one laptop model in production, the Librem 14. ==== Comparison of laptops ==== === Librem Mini === The Librem Mini is a small form factor desktop computer, which began shipping in June 2020. === Librem 5 === On August 24, 2017, Purism began a crowdfunding campaign for the Librem 5, a smartphone aimed to run 100% free software, which would "[focus] on security by design and privacy protection by default". Purism claimed that the phone would become "the world's first ever IP-native mobile handset, using end-to-end encrypted decentralized communication." Purism cooperated with KDE and GNOME in its development of Librem 5. Security features of the Librem 5 include separation of the CPU from the baseband processor, which, according to Linux Magazine, makes the Librem 5 unique in comparison to other mobile phones. The Librem 5 also features hardware kill switches for Wi-Fi and Bluetooth communication and the phone's camera, microphone, and baseband processor. The default operating system for the Librem 5 is Purism's PureOS, a Debian derivative. The operating system uses a new user interface named Phosh, based on Wayland, wlroots, GTK and GNOME middleware. It is planned that Phosh/Plasma Mobile, Ubuntu Touch, and postmarketOS can also be installed on the phone. The release of the Librem 5 has been postponed several times. In September 2018, Purism announced that the launch date of Librem 5 would be moved from January to April 2019, because of two hardware bugs and the holiday season in Europe and North America. The Librem 5's DevKits for software developers were shipped in December 2018. The launch date was later postponed to the third quarter because of the necessity of further CPU tests. On September 24, 2019, Purism announced that the first batch of Librem 5 phones had begun shipping. The finished version of the Librem 5, known as "Evergreen", was finally shipped on November 18, 2020. === Librem Server === The Librem server is a rack mounted server, released to the public in December 2019. === Librem Key === Announced on 20 September 2018, the Librem Key is a hardware USB security token with multiple features, including integration with a tamper-evident Heads BIOS, which ensures that the Librem laptop Basic Input/Output System (BIOS) was not maliciously altered since the last laptop launch. The Librem Key also features one-time password storage with 3x HMAC-based One-time Password algorithm (HOTP) (RFC 4226) and 15 x Time-based One-time Password algorithm (TOTP) (RFC 6238) and an integrated password manager (16 entries), 40 kbit/s true random number generator, and a tamper-resistant smart card. The key supports type A USB 2.0, has dimensions of 48 x 19 x 7 mm, and weighs 6 g. == Operating system == Initially planning to preload its Librem laptops with the Trisquel operating system, Purism eventually moved off the Trisquel platform to Debian for the 2.0 release of its PureOS Linux operating system. As an alternative to PureOS, Librem laptops are purchasable with Qubes OS preinstalled. In December 2017, the Free Software Foundation added PureOS to its list of endorsed GNU/Linux distributions. == BIOS == In 2015, Purism began research to port the Librem 13 to coreboot but the effort was initially stalled. By the end of the year, a coreboot developer completed an initial port of the Librem 13 and submitted it for review. In December 2016, hardware enablement developer Youness Alaoui joined Purism and was tasked to complete the coreboot port for the original Librem 13 and prepare a port for the second revision of the device. Since summer 2017, new Librem laptops are shipped with coreboot as their standard BIOS, and updates are available for all older models. Purism calls a collection of these six components, involved in the boot process, as PureBoot: Neutralized and disabled Intel Management Engine coreboot A Trusted Platform Module (TPM) chip Heads, which has tamper-evident features to detect if the BIOS or important boot files have been modified Librem Key, Purism's USB security token Multi-factor authentication that unlocks disk encryption using the Librem Key PureBoot protects the users from various attacks like theft, BIOS malware and kernel rootkits, vulnerabilities and malicious code in the Intel Management Engine, and interdiction.

    Read more →
  • Blend4Web

    Blend4Web

    Blend4Web is a free and open source framework for creating and displaying interactive 3D computer graphics in web browsers. == Overview == The Blend4Web framework leverages Blender to edit 3D scenes. Content rendering relies on WebGL, Web Audio, WebVR, and other web standards, without the use of plug-ins. It is dual-licensed. The framework is distributed under the free and open source GPLv3 and, a non-free license - with the source code being hosted on GitHub. A 3D scene can be prepared in Blender and then exported as a pair of JSON and binary files to load in a web application. It can also be exported as a single, self-contained HTML file, in which exported data, the web player GUI, and the engine itself are packed. The HTML option is considered to be the simplest way. The resulting file, which has a minimum size of 1 MB, can be embedded in a web page using a standard iframe HTML element. Blend4Web-powered web applications can be deployed on social networking websites such as Facebook. The Blend4Web toolchain consists of JavaScript libraries, the Blender add-on, and a set of tools for tweaking 3D scene parameters, debugging, and optimization. Developed by Moscow-based company Triumph in 2010, Blend4Web was publicly released on March 28, 2014. At the end of 2017, the project founders Yuri and Alex Kovelenov quit Triumph to start the development of a new WebGL framework Verge3D. In October 2019, an "Absolutely new Blend4Web" was announced, planned to make developing 3D apps easier and to add a new marketplace where people can offer their 3D models. == Features == The framework has a number of components typically found in game engines, including a positional audio system, physics engine (a fork of Bullet ported to JavaScript), animation system, and an abstraction layer for game logic programming. Up to 8 different types of animations can be assigned to a single object, including skeletal and per-vertex animation. The speed and the direction of animation (forward/backward play), as well as particle system parameters (size, initial velocity, and count), can be changed through the API. Among other supported features are: scene data dynamic loading and unloading, subsurface scattering simulation, and image-based lighting. Some out-of-box options exist for rendering extended outdoor environments, including foliage-wind interaction, water, atmosphere, and sunlight simulation. One example demonstrating these effects is "The Farm" tech demo, which also features multiple animated NPCs and the ability to walk, interact with objects and drive a vehicle in first-person mode. Being based on the cross-browser WebGL API, Blend4Web runs in the majority of web browsers, including mobile ones. There are some caveats for browsers with experimental WebGL support, such as Internet Explorer. There are also applications developed to run on Tizen-powered devices such as the Samsung Gear S2 smartwatch. Other features include: draw call batching, hidden surface determination, threaded physics simulation and ocean simulation. In version 14.09, Blend4Web introduced the possibility of adding interactivity to 3D scenes using a visual programming tool. The tool is reminiscent of the BGE's logic editor as it uses logic blocks that are placed inside Blender. It plays back animation tracks authored by an artist when the user interacts with predefined 3D objects. Since version 15.03, Blend4Web has supported attaching HTML elements (such as information windows) to 3D objects ("annotations") and copying objects in run time ("instancing"). The following post-processing effects are supported: glow, bloom, depth of field, crepuscular rays, motion blur, and screen space ambient occlusion. == Virtual reality and augmented reality == Virtual reality devices have been supported since the end of 2015. Specifically, Oculus Rift head-mounted display works over experimental WebVR API. The software also now includes preliminary support for gamepads, based on the Gamepad API. In 2017, the option to author augmented reality content was added. The system is based on the open-source tracking library ARToolKit and uses the WebRTC protocols. Starting from version 17.08, finger tracking is supported through the Leap Motion device. == Blender integration == The Blender add-on is written in Python and C and can be compiled for the Linux x86/x64, OS X x64, and MS Windows x86/x64 platforms. A Blend4Web-specific profile can be activated in the add-on settings. When switching to this profile, the Blender interface changes so that it only reveals settings relevant to Blend4Web. Blend4Web supports a set of Blender-specific features such as the node material editor (a tool for visual shader programming) and the particle system. There is basic support for Blender's non-linear animation (NLA) editor for creating simple scenarios. Blend4Web is based on Blender's real-time GLSL rendering engine, which users are recommended to use in order to enable WYSIWYG editing. == Notable uses == NASA developed an interactive web application called Experience Curiosity to celebrate the 3rd anniversary of the Curiosity rover landing on Mars. This Blend4Web-based app makes it possible to operate the rover, control its cameras and the robotic arm, and reproduce some of the prominent events of the Mars Science Laboratory mission. The application got presented at the beginning of the WebGL section at SIGGRAPH 2015. Experience Curiosity was ported to Verge3D for Blender in 2018 with several performance improvements and bug fixes. A General Motors authorized dealer in the United Arab Emirates has placed a functional Chevrolet Camaro 3D configurator on its website. Greenpeace created interactive 3D infographics to back Greenpeace's Detox campaign in Russia. Tallink featured an interactive 3D presentation of its MS Megastar vessel to allow visitors to browse details of the ship.

    Read more →