A vintage computer is an older computer system that is largely regarded as obsolete. The personal computer has been around since around 1971, and in that time technological advancement means existing models get replaced every few years. Nevertheless, these otherwise useless computers have spawned a sub-culture of vintage computer collectors who often spend large sums for the rarest examples, not only to display but functionally restore. This involves active software development and adaptation to modern uses. This often includes homebrew developers and hackers who add on, update and create hybrid composites from new and old computers for uses they were otherwise never intended. Ethernet interfaces have been designed for many vintage 8-bit machines to allow limited connectivity to the Internet, where users can access discussion groups, bulletin boards, and software databases. Most of this hobby centers on computers made after 1960, though some collectors also specialize in older computers. The Vintage Computer Festival, an event held by the Vintage Computer Federation for the exhibition and celebration of vintage computers, has been held annually since 1997 and has expanded internationally. == By platform == === MITS Inc. === Micro Instrumentation and Telemetry Systems (MITS) produced the Altair 8800 in 1975. According to Harry Garland, the Altair 8800 was the product that catalyzed the microcomputer revolution of the 1970s. === IMSAI === The IMSAI 8080 is a clone of the Altair 8800. It was introduced in 1975, first as a kit, and later as an assembled system. The list price was $591 (equivalent to $3,584 in 2025) for a kit, and $931 (equivalent to $5,570 in 2025) assembled. === Processor Technology === Processor Technology produced the Sol-20. This was one of the first machines to have a case that included a keyboard; a design feature copied by many of later "home computers". === SWTPC === Southwest Technical Products Corporation (SWTPC) produced the 8-bit SWTPC 6800 and later the 16-bit SWTPC 6809 kits that employed the Motorola 68xx series microprocessors. === Apple Inc. === The earliest Apple Inc. personal computers, using the MOS Technology 6502 processors, are among some of the most collectible. They are relatively easy to maintain in an operational state thanks to Apple's use of readily available off-the-shelf parts. Apple I (1976): The Apple-1 was Apple's first product and has brought some of the highest prices ever paid for a microcomputer at auction. Apple II (1977): The Apple II series of computers are some of the easiest to adapt, thanks to the original expansion architecture designed for them. New peripheral cards are still being designed by an avid thriving community, thanks to the longevity of this platform, manufactured from 1977 through 1993. Numerous websites exist to support not only legacy users but new adopters who weren't even born when the Apple II was discontinued by Apple. Macintosh (1984): The original Macintosh used a 32-bit Motorola 68000 processor running at 7.8336 MHz and came with 128 KB of RAM. The list price was $2495 (equivalent to $7,732 in 2025).Perhaps because of its friendly design and first commercially successful graphical user interface as well as its enduring Finder application that persists on the most current Macs, the Macintosh is one of the most collected and used vintage computers. With dozens of websites around the world, old Macintosh hardware and software are input into daily use. The Macintosh had a strong presence in many early computer labs, creating a nostalgia factor for former students who recall their first computing experiences. === RCA === The COSMAC Elf in 1976 was an inexpensive (about $100) single-board computer that was easily built by hobbyists. Many people who could not afford an Altair could afford an ELF, which was based on the RCA 1802 chip. Because the chips are still available from other sources, modern recreations of the ELF are fairly common and there are several fan websites. === IBM === The IBM 1130 (1965) was a desk-sized small computer. It was the often the first computer used by many college students, still has a following of interested users. Most of the remaining 1130 systems in 2023 are in museums, but an emulator is available for users who don't have access to a physical 1130. The 5100 also has an avid collector and fan base. The PC series (5150 PC, 5155 Portable PC, 5160 PC/XT, 5170 PC/AT) has become very popular in recent years, with the earliest models (PC) being considered the most collectible. === Acorn BBC & Archimedes === The Acorn BBC Micro was a very popular British computer in the 1980s with home and educational users and enjoyed near-universal usage in British schools into the mid-1990s. It was possible to use 100K 5+1⁄4-inch disks, and it had many expansion ports. The Archimedes series – the de facto successor to the BBC Micro – has also enjoyed a following in recent years, thanks to its status as the first computer to be based around ARM's RISC microprocessor. === Tandy/Radio Shack === The Tandy/RadioShack Model 100 is still widely collected and used as one of the earliest examples of a truly portable computer. Other Tandy offerings, such as the TRS-80 line, are also very popular, and early systems, like the Model I, in good condition can command premium prices on the vintage computer market. === Sinclair === The Sinclair ZX81 and ZX Spectrum series were the most popular British home computers of the early 1980s, with a wide choice of emulators available for both platforms. The Spectrum in particular enjoys a cult following due to its popularity as a games platform, with new games titles still being developed even today. Original "rubber key" Spectrums fetch the highest prices on the second-hand market, with the later Amstrad-built models attracting less of a following. The earlier ZX81 is not as popular in original hardware form due to its monochrome display and limited abilities next to the Spectrum, but still unassembled ZX81 kits still appear on eBay occasionally. === MSX === Although nearly nonexistent in the United States, the MSX architecture has strong communities of fans and hobbyists worldwide, particularly in Japan (where the standard was conceived and developed), South Korea (the only country that had an MSX-based game console, Zemmix), Netherlands, Spain, Brazil, Argentina, Russia, Chile, the Middle East, and others. New hardware and software are being actively developed to this day as well. One of the latest fundamental (from hardware and software perspectives) revivals of the MSX is the GR8BIT. === Robotron === The Robotron Z1013 was an East German home computer produced by VEB Robotron. It had a U880 processor, 16 KB RAM, and a membrane keyboard. The KC 85 series of computers was a modular 8-bit computer system used in East German schools. === Commodore === VIC-20 Commodore 64 Commodore PET Amiga === Xerox === The Xerox Alto, designed and manufactured by Xerox PARC and released in 1973, was the first personal computer equipped with a graphic user interface. In 1979, Steve Jobs of Apple Inc. arranged for his engineers to visit Xerox in order to see the Alto. The design concepts of the Alto soon appeared in the Apple Lisa and Macintosh systems. The Xerox Star, also known as the 8010/40, was made available in 1981. It followed on the Alto. Like the Alto, this machine was expensive and was only intended for corporate office usage. Therefore, being out of the price range of the average user, this product had little market penetration. === Silicon Graphics === The SGI Indy, built in 1993 for Silicon Graphics has a history of usage in the development of the Nintendo 64 as well as various CGI projects throughout the 1990s and early 2000s. The Indy and other machines in the SGI lineup have remained cult classics.
Inpainting
Inpainting is a conservation process where damaged, deteriorated, or missing parts of an artwork are filled in to present a complete image. This process is commonly used in image restoration. It can be applied to both physical and digital art mediums such as oil or acrylic paintings, chemical photographic prints, sculptures, or digital images and video. With its roots in physical artwork, such as painting and sculpture, traditional inpainting is performed by a trained art conservator who has carefully studied the artwork to determine the mediums and techniques used in the piece, potential risks of treatments, and ethical appropriateness of treatment. == History == The modern use of inpainting can be traced back to Pietro Edwards (1744–1821), Director of the Restoration of the Public Pictures in Venice, Italy. Using a scientific approach, Edwards focused his restoration efforts on the intentions of the artist. It was during the 1930 International Conference for the Study of Scientific Methods for the Examination and Preservation of Works of Art, that the modern approach to inpainting was established. Helmut Ruhemann (1891–1973), a German restorer and conservator, led the discussions on the use of inpainting in conservation. Helmut Ruhemann was a leading figure in modernizing restoration and conservation. His greatest contribution to the field of conservation "was his insistence on following the methods of the original painter exactly, and on understanding the painter's artistic intention". After his career of over 40 years as a conservator, Ruhemann published his treatise The Cleaning of Paintings: Problems & Potentialities in 1968. In describing his method, Ruhemann states that "The surface [of the fill] should be slightly lower than that of the surrounding paint to allow for the thickness of the inpainting...Inpainting medium should look and behave like the original medium, but must not darken with age." Cesare Brandi (1906–1988) developed the teoria del restauro, the inpainting approach combining aesthetics and psychology. However, this approach was used primarily by Italian restorers and conservators, with the terminology becoming widespread in the 1990s. Technological advancements led to new applications of inpainting. Widespread use of digital techniques range from entirely automatic computerized inpainting to tools used to simulate the process manually. Since the mid-1990s, the process of inpainting has evolved to include digital media. More commonly known as image or video interpolation, a form of estimation, digital inpainting includes the use of computer software that relies on sophisticated algorithms to replace lost or corrupted parts of the image data. == Ethics == In order to preserve the integrity of an original artwork, any inpainting technique or treatment applied to physical or digital work should be reversible or distinguishable from the original content of the artwork. Prior to any treatments, conservators proceed according to the American Institute of Conservation of Historical and Artistic Works. There are several ethic considerations before Inpainting can be justified. Various deliberation decisions over the ethical appropriateness of the amount and type of inpainting done, resides on many factors. As most conservation treatments, inpainting's ethical questions rest mainly with authenticity, reversibility and documentation.Any intervention to compensate for loss should be documented in treatment records and reports and should be detectable by common examination methods. Such compensation should be reversible and should not falsely modify the known aesthetic, conceptual, and physical characteristics of the cultural property, especially by removing or obscuring original material.New technologies and the aesthetic demand for perfect images without imperfections challenge conservators' ethical practices to protect the integrity of originals. == Methods == Inpainting methods and techniques depend on the desired goal and type of image being treated. Treatments to fill in the gaps are different between physical and digital art. In inpainting, detailed records of the initial state of the images can help with the treatment and replicate the original closer. === Physical inpainting === Inpainting is rooted in the conservation and restoration of paintings. Inpainting can aim to make a visual improvement to the artwork as a whole by repairing missing or damaged parts using methods and materials equivalent to the original artist's work. ==== Application techniques ==== By studying the painting methods of various artists and the composition of paints used historically, conservators are able to restore works very closely to their original visual appearance. The picture as a whole determines how to fill in the gap. Helmut Ruhemann's inpainting techniques by Jessell have procedures to "preserve" the quality of oil and tempera paintings. === Digital inpainting === Many programs are able to reconstruct missing or damaged areas of digital photographs and videos. Most widely known for use with digital images is Adobe Photoshop. Given the various abilities of the digital camera and the digitization of old photos, inpainting has become an automatic process that can be performed on digital images. The inpainting techniques can be applied to object removal, text removal, and other automatic modifications of images and videos. In video special effects, inpainting is usually performed after video matting. They can also be observed in applications like image compression and super-resolution. In photography and cinema, it is used for film restoration to reverse, repair, or mitigate deterioration (e.g., physical damage such as cracks in photographs, scratches and dust spots in film, or chemical damage resulting in image loss; performed infrared cleaning). It can also be used for removing red-eye, the stamped date from photographs, and objects for creative effect. This technique can be used to replace any lost blocks in the coding and transmission of images, for example, in a streaming video. It can also be used to remove logos or watermarks in videos. Deep learning neural network-based inpainting can be used for decensoring images. Deep image prior-based techniques can be used for digital image inpainting, where a trained deep learning model is either unavailable or infeasible. Deep models for visual content generation, like text-to-image or text-to-video, learn complex priors over the distribution of visual content, and can be used to inpaint missing parts. For example, videos can be separated into layers, using a technique called omnimatte, which either pretrain an omnimatte model or without any training using an omnimatte-zero model. Three main groups of 2D image-inpainting algorithms can be found in the literature. The first one to be noted is structural (or geometric) inpainting, the second one is texture inpainting, the last one is a combination of these two techniques. They use the information of the known or non-destroyed image areas in order to fill the gap, similar to how physical images are restored. ==== Structural ==== Structural or geometric inpainting is used for smooth images that have strong, defined borders. There are many different approaches to geometric inpainting, but they all come from the idea that geometry can be recovered from similar areas or domains. Bertalmio proposed a method of structural inpainting that mimics how conservators address painting restoration. Bertalmio proposed that by progressively transferring similar information from the borders of an inpainting domain inwards, the gap can be filled. ==== Textural ==== While structural/geometric inpainting works to repair smooth images, textural inpainting works best with images that are heavily textured. Texture has a repetitive pattern which means that a missing portion cannot be restored by continuing the level lines into the gap; level lines provide a complete, stable representation of an image. To repair texture in an image, one can combine frequency and spatial domain information to fill in a selected area with a desired texture. This method, while the most simple and very effective, works well when selecting a texture to be in-painted. For a texture that covers a wider area or a larger frame one would have to go through the image segmenting the areas to be in-painted and selecting the corresponding textures from throughout the image; there are programs that can help find the corresponding areas that work in a similar way as 'find and replace' works in a word processor. ==== Combined structural and textural ==== Combined structural and textural inpainting approaches simultaneously try to perform texture- and structure-filling in regions of missing image information. Most parts of an image consist of texture and structure and the boundaries between image regions contain a large amount of structural information. This is the result when blending differ
Data plan
A data plan is a subscription plan from a cellular or other mobile service provider to provide internet data and connectivity. == Formatting == Data plans are usually created by a contract between the telecommunications carrier and the user of their service. This contract outlines a maximum amount of usable data, usually highlighted in either megabytes or gigabytes, allotted per month for the user. In most cases companies will allow a user to surpass the amount of data allowed in the contract, however, will have to pay a per-gigabyte fee, ranging anywhere from five to fifteen U.S. dollars. === Popularization of unlimited plans === Unlimited data plans have seen a large increase in usage by consumers since their initial introduction by U.S. network T-Mobile. These plans, instead of setting an overall maximum for the user, have an amount set-up that, when surpassed, will slow the speed of the network for that user. Unlimited plans typically cost significantly more than the traditional shared data plans, which is a major reason that carriers have set large boundaries and fees. The limits imposed on unlimited plans are designed to fight against attempts to misuse the network, such as a DDoS attack, but are more commonly reasoned as a method to increase the number of people that can use one tower simultaneously. === Data speed changes === When a network is near reaching peak capacity data speeds may be slowed down by carriers as part of most major telecom contracts. This, as stated previously, allows for more people to be utilizing one tower, reducing needed capital for the company. Since speed changes are allowed at the company's will, the user has no official guarantee of speed on most major networks. === Costs brought upon by additional data === In many cases both the user and carrier have to incur additional costs when a user utilizes more of a given data package, which has helped in the proliferation of data caps and other forms of shared data plans. Most of the charges that the carrier has to incur for additional data usage is partially or fully given to the user of the network. ==== Users ==== Users are required to pay flat-rate additional fees that occur when they go above the amount of data given to them in their contract, utility, or prepaid plan. The cost per gigabyte of this fee is usually higher than what the contract itself offers, which discourages users from over-utilizing data and incurring a charge for the carrier. Certain contracts, which do not offer paying additional fees for an increase in data, may result in a shutdown of service, or in extremely rare cases, termination of the service as a whole. ==== Carriers ==== Carriers incur costs for additional data usage, as it limits the number of customers, and associated contracts, that they can handle on one network. Creating more cell phone towers in a given area would be costly, and largely useless until particular spikes in traffic. When the peak usable amount of one tower is reached, it may cause negative public relations towards the reliability of the corporation as a whole.
Hydration (web development)
In web development, hydration or rehydration is a technique in which client-side JavaScript converts a web page that is static from the perspective of the web browser, delivered either through static rendering or server-side rendering, into a dynamic web page by attaching event handlers to the HTML elements in the DOM. Because the HTML is pre-rendered on a server, this allows for a fast "first contentful paint" (when useful data is first displayed to the user), but there is a period of time afterward where the page appears to be fully loaded and interactive, but is not until the client-side JavaScript is executed and event handlers have been attached. Frameworks that use hydration include Next.js and Nuxt. React v16.0 introduced a "hydrate" function, which hydrates an element, in its API. == Variations == === Streaming server-side rendering === Streaming server-side rendering allows one to send HTML in chunks that the browser can progressively render as it is received. This can provide a fast first paint and first contentful paint as HTML markup arrives to users faster. === Progressive rehydration === In progressive rehydration, individual pieces of a server-rendered application are “booted up” over time, rather than the current common approach of initializing the entire application at once. This can help reduce the amount of JavaScript required to make pages interactive, since client-side upgrading of low priority parts of the page can be deferred to prevent blocking the main thread. It can also help avoid one of the most common server-side rendering rehydration pitfalls, where a server-rendered DOM tree gets destroyed and then immediately rebuilt – most often because the initial synchronous client-side render required data that wasn't quite ready, perhaps awaiting Promise resolution. === Partial rehydration === Partial rehydration has proven difficult to implement. This approach is an extension of the idea of progressive rehydration, where the individual pieces (components/views/trees) to be progressively rehydrated are analyzed and those with little interactivity or no reactivity are identified. For each of these mostly-static parts, the corresponding JavaScript code is then transformed into inert references and decorative functionality, reducing their client-side footprint to near-zero. The partial hydration approach comes with its own issues and compromises. It poses some interesting challenges for caching, and client-side navigation means it cannot be assumed that server-rendered HTML for inert parts of the application will be available without a full page load. One framework that supports partial rehydration is Elder.js, which is based on Svelte. === Trisomorphic rendering === Trisomorphic rendering is a technique which uses streaming server-side rendering for initial/non-JavaScript navigations, and then uses service workers to take on rendering of HTML for navigations after it has been installed. This can keep cached components and templates up to date and enables SPA-style navigations for rendering new views in the same session. This approach works best when one can share the same templating and routing code between the server, client page, and service worker.
Open Mashup Alliance
The Open Mashup Alliance (OMA) is a non-profit consortium that promotes the adoption of mashup solutions in the enterprise through the evolution of enterprise mashup standards like EMML. The initial members of the OMA include some large technology companies such as Adobe Systems, Hewlett-Packard, and Intel and some major technology users such as Bank of America and Capgemini. According to Dion Hinchcliffe, "Ultimately, the OMA creates a standardized approach to enterprise mashups that creates an open and vibrant market for competing runtimes, mashups, and an array of important aftermarket services such as development/testing tools, management and administration appliances, governance frameworks, education, professional services, and so on." == Specification development == The initial focus of the OMA is developing EMML, which is a declarative mashup domain-specific language (DSL) aimed at creating enterprise mashups. The EMML language provides a comprehensive set of high-level mashup-domain vocabulary to consume and mash a variety of web data sources. EMML provides a uniform syntax to invoke heterogeneous service styles: REST, WSDL, RSS/ATOM, RDBMS, and POJO. EMML also provides the ability to mix and match diverse data formats: XML, JSON, JDBC, JavaObjects, and primitive types. The OMA website provides the EMML specification, the EMML schema, a reference runtime implementation capable of running EMML scripts, sample EMML mashup scripts, and technical documentation. The OMA is developing EMML under a Creative Commons Attribution No Derivatives license. The eventual objective of the OMA is to submit the EMML specification and any other OMA specifications to a recognized industry standards body.
Security type system
In computer science, a type system can be described as a syntactic framework which contains a set of rules that are used to assign a type property (int, boolean, char etc.) to various components of a computer program, such as variables or functions. A security type system works in a similar way, only with a main focus on the security of the computer program, through information flow control. Thus, the various components of the program are assigned security types, or labels. The aim of a such system is to ultimately be able to verify that a given program conforms to the type system rules and satisfies non-interference. Security type systems is one of many security techniques used in the field of language-based security, and is tightly connected to information flow and information flow policies. In simple terms, a security type system can be used to detect if there exists any kind of violation of confidentiality or integrity in a program, i.e. the programmer wants to detect if the program is in line with the information flow policy or not. == A simple information flow policy == Suppose there are two users, A and B. In a program, the following security classes (SC) are introduced: SC = {∅, {A}, {B}, {A,B}}, where ∅ is the empty set. The information flow policy should define the direction that information is allowed to flow, which is dependent on whether the policy allows read or write operations. This example considers read operations (confidentiality). The following flows are allowed: → = {({A}, {A}), ({B}, {B}), ({A,B}, {A,B}), ({A,B}, {A}), ({A,B}, {B}), ({A}, ∅), ({B}, ∅), ({A,B}, ∅)} This can also be described as a superset (⊇). In words: information is allowed to flow towards stricter levels of confidentiality. The combination operator (⊕) can express how security classes can perform read operations with respect to other security classes. For example: {A} ⊕ {A,B} = {A} — the only security class that can read from both {A} and {A,B} is {A}. {A} ⊕ {B} = ∅ — neither {A} nor {B} are allowed to read from both {A} and {B}. This can also be described as an intersection (∩) between security classes. An information flow policy can be illustrated as a Hasse diagram. The policy should also be a lattice, that is, it has a greatest lower-bound and least upper-bound (there always exists a combination between security classes). In the case of integrity, information will flow in the opposite direction, thus the policy will be inverted. == Information flow policy in security type systems == Once the policy is in place, the software developer can apply the security classes to the program components. Use of a security type system is usually combined with a compiler that can perform the verification of the information flow according to the type system rules. For the sake of simplicity, a very simple computer program, together with the information flow policy as described in the previous section, can be used as a demonstration. The simple program is given in the following pseudocode: if y{A} = 1 then x{A,B} := 0 else x{A,B} := 1 Here, an equality check is made on a variable y that is assigned the security class {A}. A variable x with a lower security class ({A,B}) is influenced by this check. This means that information is leaking from class {A} to class {A,B}, which is a violation of the confidentiality policy. This leak should be detected by the security type system. === Example === Designing a security type system requires a function (also known as a security environment) that creates a mapping from variables to security types, or classes. This function can be called Γ, such that Γ(x) = τ, where x is a variable and τ is the security class, or type. Security classes are assigned (also called "judgement") to program components, using the following notation: Types are assigned to read operations by: Γ ⊢ e : τ. Types are assigned to write operations by: Γ ⊢ S : τ cmd. Constants can be assigned any type. The following bottom-up notation can be used to decompose the program: assumption1 ... assumptionn/conclusion. Once the program is decomposed into trivial judgements, by which the type can easily be determined, the types for the less trivial parts of the program can be derived. Each "numerator" is considered in isolation, looking at the type of each statement to see if an allowed type can be derived for the "denominator", based on the defined type system "rules". ==== Rules ==== The main part of the security type system is the rules. They say how the program should be decomposed and how type verification should be performed. This toy program consists of a conditional test and two possible variable assignments. Rules for these two events are defined as follows: Applying this to the simple program introduced above yields: The type system detects the policy violation in line 2, where a read operation of security class {A} is performed, followed by two write operations of a less strict security class {A,B}. In more formalized terms, {A} ⋢ {A,B}, {A,B} (from the rule of the conditional test). Thus, the program is classified as "not typeable". === Soundness === The soundness of a security type system can be informally defined as: If program P is well typed, P satisfies non-interference. Volpano, Smith and Irvine were the first to prove soundness of a security type system for a deterministic imperative programming language with a standard (non-instrumented) semantics using the notion of non-interference.
International Webmasters Association
The International Webmasters Association (IWA) is a non-profit association for education and certification of web professionals founded in 1996. It provides a Certified Web Professional certification. One of its objectives is to build a World Wide Web that is a true global community. According to the IWA, as of 2025 it has more than 100 official chapters with over 300,000 individual members in 106 countries. In 2001, the IWA merged with the HTML Writers Guild (HWG) and joined the World Wide Web Consortium (W3C). IWA's accomplishments include the publishing of the industry's first guidelines for ethical and professional standards, web certification and education programs, specialized employment resources, and technical assistance to individuals and businesses. IWA members participate to the activities of W3C WCAG Working Group, ATAG Working Group, and the XHTML Working Group. They have also participated in other initiatives such as the Multimodal Interaction Working Group which developed EMMA, the Extensible MultiModal Annotation markup language.