A software component is a modular unit of software that encapsulates specific functionality. The desired characteristics of a component are reusability and maintainability. == Value == Components allow software developers to assemble software with reliable parts rather than writing code for every aspect. It makes implementation more like factory assembly than custom building. == Attributes == Desirable attributes of a component include but are not limited to: Cohesive – encapsulates related functionality Reusable Robust Substitutable – can be replaced by another component with the same interface Documented Tested == Third-party == Some components are built in-house by the same organization or team building the software system. Some are third-party, developed elsewhere and assembled into the software system. == Component-based software engineering == For large-scale systems, component-based development encourages a disciplined process to manage complexity. == Framework == Some components conform to a framework technology that allows them to be consumed in a well-known way. Examples include: CORBA, COM, Enterprise JavaBeans, and the .NET Framework. == Modeling == Component design is often modeled visually. In Unified Modeling Language (UML) 2.0 a component is shown as a rectangle, and an interface is shown as a lollipop to indicate a provided interface and as a socket to indicate consumption of an interface. == History == The idea of reusable software components was promoted by Douglas McIlroy in his presentation at the NATO Software Engineering Conference of 1968. (One goal of that conference was to resolve the so-called software crisis of the time.) In the 1970s, McIlroy put this idea into practice with the addition of the pipeline feature to the Unix operating system. Brad Cox refined the concept of a software component in the 1980s. He attempted to create an infrastructure and market for reusable third-party components by inventing the Objective-C programming language. IBM introduced System Object Model (SOM) in the early 1990s. Microsoft introduced Component Object Model (COM) in the early 1990s. Microsoft built many domain-specific component technologies on COM, including Distributed Component Object Model (DCOM), Object Linking and Embedding (OLE), and ActiveX.
Situated
In artificial intelligence and cognitive science, the term situated refers to an agent which is embedded in an environment. The term situated is commonly used to refer to robots, but some researchers argue that software agents can also be situated if: they exist in a dynamic (rapidly changing) environment, which they can manipulate or change through their actions, and which they can sense or perceive. Examples might include web-based agents, which can alter data or trigger processes (such as purchases) over the internet, or virtual-reality bots which inhabit and change virtual worlds, such as Second Life. Being situated is generally considered to be part of being embodied, but it is useful to consider each perspective individually. The situated perspective emphasizes that intelligent behaviour derives from the environment and the agent's interactions with it. The nature of these interactions are defined by an agent's embodiment.
GPU switching
GPU switching is a mechanism used on computers with multiple graphic controllers. This mechanism allows the user to either maximize the graphic performance or prolong battery life by switching between the graphic cards. It is mostly used on gaming laptops which usually have an integrated graphic device and a discrete video card. == Basic components == Most computers using this feature contain integrated graphics processors and dedicated graphics cards that applies to the following categories. === Integrated graphics === Also known as: Integrated graphics, shared graphics solutions, integrated graphics processors (IGP) or unified memory architecture (UMA). This kind of graphics processors usually have much fewer processing units and share the same memory with the CPU. Sometimes the graphics processors are integrated onto a motherboard. It is commonly known as: on-board graphics. A motherboard with on-board graphics processors doesn't require a discrete graphics card or a CPU with graphics processors to operate. === Dedicated graphics cards === Also known as: discrete graphics cards. Unlike integrated graphics, dedicated graphics cards have much more processing units and have its own RAM with much higher memory bandwidth. In some cases, a dedicated graphics chip can be integrated onto the motherboards, B150-GP104 for example. Regardless of the fact that the graphics chip is integrated, it is still counted as a dedicated graphics cards system because the graphics chip is integrated with its own memory. == Theory == Most Personal Computers have a motherboard that uses a Southbridge and Northbridge structure. === Northbridge control === The Northbridge is one of the core logic chipset that handles communications between the CPU, GPU, RAM and the Southbridge. The discrete graphics card is usually installed onto the graphics card slot such as PCI-Express and the integrated graphics is integrated onto the CPU itself or occasionally onto the Northbridge. The Northbridge is the most responsible for switching between GPUs. The way how it works usually has the following process (refer to the Figure 1. on the right): The Northbridge receives input from Southbridge through the internal bus. The Northbridge signals to CPU through the Front-side bus. The CPU runs the task assignment application (usually the graphics card driver) to determine which GPU core to use. The CPU passes down the command to the Northbridge. The Northbridge passes down the command to the according GPU core. The GPU core processes the command and returns the rendered data back to the Northbridge. The Northbridge sends the rendered data back to Southbridge. === Southbridge control === The Southbridge is a set of integrated circuits such Intel's I/O Controller Hub (ICH). It handles all of a computer's I/O functions, such as receiving the keyboard input and outputting the data onto the screen. The way how it usually works usually has two steps: Take in the user input and pass it down to the Northbridge. (Optional) Receive the rendered data from the Northbridge and output it. The reason why the second step can be optional is that sometimes the rendered the data is outputted directly from the discrete graphics card which is located on the graphics card slot so there is no need to output the data through the Southbridge. == Main purpose == GPU switching is mostly used for saving energy by switching between graphic cards. The dedicated graphics cards consume much more power than integrated graphics but also provides higher 3D performances, which is needed for a better gaming and CAD experience. Following is a list of the TDPs of the most popular CPU with integrated graphics and dedicated graphics cards. The dedicated graphics cards exhibit much higher power consumption than the integrated graphics on both platforms. Disabling them when no heavy graphics processing is needed can significantly lower the power consumption. == Technologies == === Nvidia Optimus === Nvidia Optimus™ is a computer GPU switching technology created by Nvidia that can dynamically and seamlessly switch between two graphic cards based on running programs. === AMD Enduro === AMD Enduro™ is a collective brand developed by AMD that features many new technologies that can significantly save power. It was previously named as: PowerXpress and Dynamic Switchable Graphics (DSG). This technology implements a sophisticated system to predict the potential usage need for graphics cards and switch between graphics cards based on predicted need. This technology also introduces a new power control plan that allows the discrete graphics cards consume no energy when idling. == Manufacturers == === Integrated graphics === In personal computers, the IGP (integrated graphics processors) are mostly manufactured by Intel and AMD and are integrated onto their CPUs. They are commonly known as: Intel HD and Iris Graphics - also called HD series and Iris series AMD Accelerated Processing Unit (APU) - also formerly known as: fusion === Dedicated graphics cards === The most popular dedicated graphics cards are manufactured by AMD and Nvidia. They are commonly known as: AMD Radeon Nvidia GeForce == Drivers and OS support == Most common operating systems have built-in support for this feature. However, the users may download the updated drivers from Nvidia or AMD for better experience. === Windows support === Windows 7 has built-in support for this feature. The system automatically switches between GPUs depending on the program that's running. However, the user may switch the GPUs manually through device manager or power manager. === Linux === Modern Linux systems handle hybrid graphics in two parts: power/control for the inactive GPU, and optional render offloading for individual applications. vga_switcheroo (in the kernel since 2.6.34) coordinates power and mux control on systems with multiple GPUs. It was designed primarily for muxed designs (hardware display switch), and on muxless laptops it is typically used only for power control. A display server restart is no longer required for offloading on muxless systems. DRI PRIME (Mesa) enables per-process render offload on muxless systems: an app renders on the discrete GPU and the integrated GPU presents the result. Users can opt in via the DRI_PRIME environment variable (e.g., DRI_PRIME=1) or desktop integration. On GNOME, the switcheroo-control service exposes the discrete GPU to the shell, adding a “Launch using Discrete Graphics Card” entry to app menus on supported systems (Wayland or Xorg), which invokes render offload under the hood. With the proprietary Nvidia driver, render offload is provided as PRIME Render Offload (supported since driver 435.xx). Distributions commonly ship a helper like prime-run or desktop menu entries that set the required environment for offloading. ==== Notes and limitations (Linux) ==== On muxless systems the internal display is hard-wired to the integrated GPU; the discrete GPU cannot directly drive that panel and instead renders offscreen for composition by the iGPU. External displays connected to the dGPU may allow direct output depending on the laptop’s wiring. Power-saving behavior varies by driver and distro defaults. Some setups need explicit configuration to power down the inactive GPU when idle. Desktop integrations (e.g., GNOME's menu item) simply opt an app into offload; they do not "auto-switch" the whole session. Users can still launch apps on either GPU as needed.
Vue.js
Vue.js (commonly referred to as Vue; pronounced "view") is an open-source model–view–viewmodel front end JavaScript framework for building user interfaces and single-page applications. It was created by Evan You and is maintained by him and the rest of the active core team members. == Overview == Vue.js features an incrementally adaptable architecture that focuses on declarative rendering and component composition. The core library is focused on the view layer only. Advanced features required for complex applications such as routing, state management and build tooling are offered via officially maintained supporting libraries and packages. Vue.js allows for extending HTML with HTML attributes called directives. The directives offer functionality to HTML applications, and come as either built-in or user defined directives. == History == Vue was created by Evan You after working for Google using AngularJS in several projects. He later summed up his thought process: "I figured, what if I could just extract the part that I really liked about Angular and build something really lightweight." The first source code commit to the project was dated July 2013, at which time it was originally named "Seed". Vue was first publicly announced the following February, in 2014. Version names are often derived from manga and anime series, with the first letters arranged in alphabetical order. === Versions === When a new major is released i.e. v3.y.z, the last minor i.e. 2.x.y will become a LTS release for 18 months (bug fixes and security patches) and for the following 18 months will be in maintenance mode (security patches only). Vue 3 was officially released in September 2020. According to the State of Vue.js Report 2025, 96% of surveyed developers reported having used Vue 3.x. However, 35% also indicated that they used Vue 2.7.x in the past year, reflecting continued reliance on Vue 2 despite its end of support. The report also noted that more than a quarter of respondents encountered challenges when migrating from Vue 2 to Vue 3. === State management evolution === 2015 - Vuex introduced as official state management solution 2021 - Pinia development begins as Vuex 5 experiment 2022 - Pinia becomes officially recommended for new projects 2023 - Vue team announces Vuex maintenance mode transition According to the State of Vue.js Report 2025, the Vue's core team recommendation is reflected in developer adoption–over 80% of surveyed developers reported using Pinia while Vuex still had 38.4% usage, indicating ongoing reliance on the older library. == Features == === Components === Vue components extend basic HTML elements to encapsulate reusable code. At a high level, components are custom elements to which the Vue's compiler attaches behavior. In Vue, a component is essentially a Vue instance with pre-defined options. The code snippet below contains an example of a Vue component. The component presents a button and prints the number of times the button is clicked: === Templates === Vue uses an HTML-based template syntax that allows binding the rendered DOM to the underlying Vue instance's data. All Vue templates are valid HTML that can be parsed by specification-compliant browsers and HTML parsers. Vue compiles the templates into virtual DOM render functions. A virtual Document Object Model (or "DOM") allows Vue to render components in its memory before updating the browser. Combined with the reactivity system, Vue can calculate the minimal number of components to re-render and apply the minimal amount of DOM manipulations when the app state changes. Vue users can use template syntax or choose to directly write render functions using hyperscript either through function calls or JSX. Render functions allow applications to be built from software components. === Reactivity === Vue features a reactivity system that uses plain JavaScript objects and optimized re-rendering. Each component keeps track of its reactive dependencies during its render, so the system knows precisely when to re-render, and which components to re-render. === Transitions === Vue provides a variety of ways to apply transition effects when items are inserted, updated, or removed from the DOM. This includes tools to: Automatically apply classes for CSS transitions and animations Integrate third-party CSS animation libraries, such as Animate.css Use JavaScript to directly manipulate the DOM during transition hooks Integrate third-party JavaScript animation libraries, such as Velocity.js When an element wrapped in a transition component is inserted or removed, this is what happens: Vue will automatically sniff whether the target element has CSS transitions or animations applied. If it does, CSS transition classes will be added/removed at appropriate timings. If the transition component provided JavaScript hooks, these hooks will be called at appropriate timings. If no CSS transitions/animations are detected and no JavaScript hooks are provided, the DOM operations for insertion and/or removal will be executed immediately on next frame. === Routing === A traditional disadvantage of single-page applications (SPAs) is the inability to share links to the exact "sub" page within a specific web page. Because SPAs serve their users only one URL-based response from the server (it typically serves index.html or index.vue), bookmarking certain screens or sharing links to specific sections is normally difficult if not impossible. To solve this problem, many client-side routers delimit their dynamic URLs with a "hashbang" (#!), e.g. page.com/#!/. However, with HTML5 most modern browsers support routing without hashbangs. Vue provides an interface to change what is displayed on the page based on the current URL path – regardless of how it was changed (whether by emailed link, refresh, or in-page links). Additionally, using a front-end router allows for the intentional transition of the browser path when certain browser events (i.e. clicks) occur on buttons or links. Vue itself doesn't come with front-end hashed routing. But the open-source "vue-router" package provides an API to update the application's URL, supports the back button (navigating history), and email password resets or email verification links with authentication URL parameters. It supports mapping nested routes to nested components and offers fine-grained transition control. With Vue, developers are already composing applications with small building blocks building larger components. With vue-router added to the mix, components must merely be mapped to the routes they belong to, and parent/root routes must indicate where children should render. The code above: Sets a front-end route at websitename.com/user/
NexDock
NexDock is a series of lapdock devices (containing a laptop screen, keyboard, trackpad, and battery connected to a phone or other device) sold by Nex Computer LLC. The product can be used with mobile desktop environments, including Samsung DeX and the former Windows Continuum. Critical reception for the series has been mixed, with reviewers praising the concept's utility for mobile productivity while noting hardware limitations and its niche appeal. == History == The first NexDock was introduced in 2016 through a successful Indiegogo campaign. Its development coincided with interest in smartphone-powered desktop interfaces, and it was marketed as a companion for Windows 10 Mobile's Continuum feature. Subsequent models, often launched via Kickstarter, added features like higher-resolution displays, touchscreens, and convertible hinges to adapt to the growing capabilities of smartphones. == Models == === NexDock (Original, 2016) === The first model featured a 14.1-inch 1366x768 display and connected primarily via a mini HDMI port. === NexDock 2 (2019) === This model introduced a 13.3-inch 1080p IPS display and a USB-C port, improvements aimed at better supporting platforms like Samsung DeX. === NexDock Touch (2020) === A touchscreen was added to the 13.3-inch display, allowing for more direct interaction with the connected device's operating system. === NexDock 360 (2021) === This version incorporated a 360-degree hinge, allowing the device to be used in laptop, tablet, tent, or stand modes. === NexDock Wireless (2023) === Wireless display connectivity was the key feature of this model, offering a cable-free connection to compatible phones and computers. === NexDock XL (2023) === The screen size was increased to 15.6 inches. It retained the 360-degree hinge and also offered a version with wireless charging for a connected phone. == Reception == Reviews of NexDock products have been mixed, generally praising the concept while pointing out execution flaws. The devices are often lauded for their utility with Samsung DeX, turning a high-end Samsung phone into a viable portable workstation. A review of the NexDock 2 from ZDNet concluded it was a "great companion for the modern road warrior," and Digital Trends called the original a "no-brainer shell" for expanding a phone's capability. However, reviewers have consistently highlighted hardware limitations. In its review of the NexDock Touch, TechRadar stated that while it was a "compelling package for a very specific niche," the "trackpad and keyboard are a bit of a letdown and the screen could be brighter." This sentiment was echoed in other reviews, with criticism often aimed at the trackpad's performance and feel. A review of the NexDock 2 from Android Authority described the experience as being "janky at times," concluding that the device "delivers on its promise — sort of." A common point across many reviews is that the overall performance is entirely dependent on the power of the connected phone, and the experience is often best suited for light productivity tasks rather than replacing a dedicated laptop.
List of large language models
A large language model (LLM) is a type of machine learning model designed for natural language processing tasks such as language generation. LLMs are language models with many parameters, and are trained with self-supervised learning on a vast amount of text. == List == For the training cost column, 1 petaFLOP-day equals 1 petaFLOP/sec × 1 day, or 8.64×1019 FLOP (floating point operations). Only the cost of the largest model is shown. The number of parameters is measured in billions, and the training cost is measured in petaFLOP-days. === 2018 === === 2019 === === 2020 === === 2021 === === 2022 === === 2023 === === 2024 === === 2025 === === 2026 ===
Flat-panel display
A flat-panel display (FPD) is an electronic display used to display visual content such as text or images. It is present in consumer, medical, transportation, and industrial equipment. Flat-panel displays are thin, lightweight, provide better linearity and are capable of higher resolution and contrast than typical consumer-grade TVs from earlier eras. They are usually less than 10 centimetres (3.9 in) thick. While the highest resolution for consumer-grade CRT televisions is 1080i, many interactive flat panels in the 2020s are capable of 1080p and 4K resolution. In the 2010s, portable consumer electronics such as laptops, mobile phones, and portable cameras have used flat-panel displays since they consume less power and are lightweight. As of 2016, flat-panel displays have almost completely replaced CRT displays. Most 2010s-era flat-panel displays use LCD or light-emitting diode (LED) technologies, sometimes combined. Most LCD screens are back-lit with color filters used to display colors. In many cases, flat-panel displays are combined with touch screen technology, which allows the user to interact with the display in a natural manner. For example, modern smartphone displays often use OLED panels, with capacitive touch screens. Flat-panel displays can be divided into two display device categories: volatile and static. The former requires that pixels be periodically electronically refreshed to retain their state (e.g. liquid-crystal displays (LCD)), and can only show an image when it has power. On the other hand, static flat-panel displays rely on materials whose color states are bistable, such as displays that make use of e-ink technology, and as such retain content even when power is removed. == History == The first engineering proposal for a flat-panel TV was by General Electric in 1954 as a result of its work on radar monitors. The publication of their findings gave all the basics of future flat-panel TVs and monitors. But GE did not continue with the R&D required and never built a working flat panel at that time. The first production flat-panel display was the Aiken tube, developed in the early 1950s and produced in limited numbers in 1958. This saw some use in military systems as a heads up display and as an oscilloscope monitor, but conventional technologies overtook its development. Attempts to commercialize the system for home television use ran into continued problems and the system was never released commercially. Dennis Gabor, better known as the inventor of holography, patented a flat-screen CRT in 1958. This was substantially similar to Aiken's concept, and led to a years-long patent battle. By the time the lawsuits were complete, with Aiken's patent applying in the US and Gabor's in the UK, the commercial aspects had long lapsed, and the two became friends. Around this time, Clive Sinclair came across Gabor's work and began an ultimately unsuccessful decade-long effort to commercialize it. The Philco Predicta featured a relatively flat (for its day) cathode-ray tube setup and would be the first commercially released "flat panel" upon its launch in 1958; the Predicta was a commercial failure. The plasma display panel was invented in 1964 at the University of Illinois, according to The History of Plasma Display Panels. === Liquid-crystal displays (LC displays, or LCDs) === The MOSFET (metal–oxide–semiconductor field-effect transistor, or MOS transistor) was invented by Mohamed M. Atalla and Dawon Kahng at Bell Labs in 1959, and presented in 1960. Building on their work, Paul K. Weimer at RCA developed the thin-film transistor (TFT) in 1962. It was a type of MOSFET distinct from the standard bulk MOSFET. The idea of a TFT-based LCD was conceived by Bernard J. Lechner of RCA Laboratories in 1968. B.J. Lechner, F.J. Marlowe, E.O. Nester and J. Tults demonstrated the concept in 1968 with a dynamic scattering LCD that used standard discrete MOSFETs. The first active-matrix addressed electroluminescent display was made using TFTs by T. Peter Brody's Thin-Film Devices department at Westinghouse Electric Corporation in 1968. In 1973, Brody, J. A. Asars and G. D. Dixon at Westinghouse Research Laboratories demonstrated the first thin-film-transistor liquid-crystal display. Brody and Fang-Chen Luo demonstrated the first flat active-matrix liquid-crystal display (AM LCD) using TFTs in 1974. By 1982, pocket LCD TVs based on LCD technology were developed in Japan. The 2.1-inch Epson ET-10 Epson Elf was the first color LCD pocket TV, released in 1984. In 1988, a Sharp research team led by engineer T. Nagayasu demonstrated a 14-inch full-color LCD, which convinced the electronics industry that LCD would eventually replace CRTs as the standard television display technology. As of 2013, all modern high-resolution and high-quality electronic visual display devices use TFT-based active-matrix displays. === LED displays === The first usable LED display was developed by Hewlett-Packard (HP) and introduced in 1968. It was the result of research and development (R&D) on practical LED technology between 1962 and 1968, by a research team under Howard C. Borden, Gerald P. Pighini, and Mohamed M. Atalla, at HP Associates and HP Labs. In February 1969, they introduced the HP Model 5082-7000 Numeric Indicator. It was the first alphanumeric LED display, and was a revolution in digital display technology, replacing the Nixie tube for numeric displays and becoming the basis for later LED displays. In 1977, James P Mitchell prototyped and later demonstrated what was perhaps the earliest monochromatic flat-panel LED television display. Ching W. Tang and Steven Van Slyke at Eastman Kodak built the first practical organic LED (OLED) device in 1987. In 2003, Hynix produced an organic EL driver capable of lighting in 4,096 colors. In 2004, the Sony Qualia 005 was the first LED-backlit LCD. The Sony XEL-1, released in 2007, was the first OLED television. == Common types == === Liquid-crystal display (LCD) === Field-effect LCDs are lightweight, compact, portable, cheap, more reliable, and easier on the eyes than CRT screens. LCD screens use a thin layer of liquid crystal, a liquid that exhibits crystalline properties. It is sandwiched between two glass plates carrying transparent electrodes. Two polarizing films are placed at each side of the LCD. By generating a controlled electric field between electrodes, various segments or pixels of the liquid crystal can be activated, causing changes in their polarizing properties. These polarizing properties depend on the alignment of the liquid-crystal layer and the specific field-effect used, being either twisted nematic (TN), in-plane switching (IPS) or vertical alignment (VA). Color is produced by applying appropriate color filters (red, green and blue) to the individual subpixels. LC displays are used in various electronics like watches, calculators, mobile phones, TVs, computer monitors and laptops screens etc. === LED-LCD === Most earlier large LCD screens were back-lit using a number of CCFL (cold-cathode fluorescent lamps). However, small pocket size devices almost always used LEDs as their illumination source. With the improvement of LEDs, almost all new displays are now equipped with LED backlight technology. The image is still generated by the LCD layer. === Plasma panel === A plasma display consists of two glass plates separated by a thin gap filled with a gas such as neon. Each of these plates has several parallel electrodes running across it. The electrodes on the two plates are at right angles to each other. A voltage applied between the two electrodes one on each plate causes a small segment of gas at the two electrodes to glow. The glow of gas segments is maintained by a lower voltage that is continuously applied to all electrodes. By 2010, consumer plasma displays had been discontinued by numerous manufacturers. === Electroluminescent panel === In an electroluminescent display, the image is created by applying electrical signals to the plates which make the phosphor glow. === Organic light-emitting diode === An OLED (organic light-emitting diode) is a light-emitting diode (LED) in which the emissive electroluminescent layer is a film of organic compound which emits light in response to an electric current. This layer of organic semiconductor is situated between two electrodes; typically, at least one of these electrodes is transparent. OLEDs are used to create digital displays in devices such as television screens, computer monitors, portable systems such as mobile phones, handheld game consoles and PDAs. === Quantum-dot light-emitting diode === QLED or quantum dot LED is a flat panel display technology introduced by Samsung under this trademark. Other television set manufacturers such as Sony have used the same technology to enhance the backlighting of LCD TVs already in 2013. Quantum dots create their own unique light when illuminated by a light source of shorter wavelength such as blue LEDs. Th