AI Art Quora

AI Art Quora — independent reviews, comparisons, pricing and step-by-step guides on Aizhi.

  • Onshape

    Onshape

    Onshape is a computer-aided design (CAD) software system, delivered over the Internet via a software as a service (SaaS) model. It makes extensive use of cloud computing, with compute-intensive processing and rendering performed on Internet-based servers, and users are able to interact with the system via a web browser or the iOS and Android apps. As a SaaS system, Onshape upgrades are released directly to the web interface, and the software does not require maintenance by the user. Onshape allows teams to collaborate on a single shared design, the same way multiple writers can work together editing a shared document via cloud services. It is primarily focused on mechanical CAD (MCAD) and is used for product and machinery design across many industries, including consumer electronics, mechanical machinery, medical devices, 3D printing, machine parts, and industrial equipment. As of 2025, Onshape is popularly used as a CAD suite for the FIRST Robotics Competition (FRC) alongside the MKCad application available in the Onshape App Store. == Company history == Onshape was developed by a company with the same name. Founded in 2012, Onshape was based in Cambridge, Massachusetts (USA), with offices in Singapore and Pune, India. Its leadership team includes several engineers and executives who originated from SolidWorks, a popular 3D CAD program that runs on Microsoft Windows. Onshape’s co-founders include two former SolidWorks CEOs, Jon Hirschtick and John McEleney. In November 2012, former SolidWorks CEOs Jon Hirschtick and John McEleney led six co-founders launching Belmont Technology, a placeholder name that was later changed to Onshape. The company’s first round of funding was $9 million from North Bridge Venture Partners and Commonwealth Capital. In March 2015, Onshape released the public beta version of its cloud CAD software, after pre-production testing with more than a thousand CAD professionals in 52 countries. Included in the beta launch was Onshape for iPhone. In August 2015, the company released its Onshape for Android app. In December 2015, Onshape launched its full commercial release. The company also launched the Onshape App Store, offering CAM, simulation, rendering and other cloud-based engineering tools. The Onshape App Store was launched with 24 developer partners. In April 2016, Onshape introduced its Education Plan, with a free version of Onshape Professional geared for college students and educators. In May 2016, Onshape released FeatureScript, a new open source (MIT licensed) programming language for creating and customizing CAD features. In October 2019, Onshape agreed to be acquired by PTC. The acquisition closed in November 2019 for $470 million. In February 2024, Onshape released iOS support for the Apple Vision Pro, allowing for real world applications of CAD models and prototypes. In January 2025, Onshape released the CAM studio, allowing users to generate G-code for up to 5-axis Simultaneous milling. == Funding == Onshape was a venture-backed company with investments from firms including Andreessen Horowitz, Commonwealth Capital Ventures, New Enterprise Associates (NEA) and North Bridge Venture Partners. Total venture funding amounted to $169 million. == Supported file formats == === Modelling === ==== Importing ==== As of May 2025, Onshape supported importing (opening) the following common CAD file formats: Parasolid X_T (Preferred) STEP (ISO 10303) ISO JT (ISO 14306) ACIS IGES CATIA v4, v5, v6 Autodesk Inventor Part (.IPT) Assembly (.IAM) Presentation (.IPN) Drawing (.IDW) Pro/ENGINEER, Creo Rhinoceros 3D: .3dm .STL .OBJ SolidWorks file formats Siemens NX file formats Drawings (.DXF/.DWG) ==== Exporting ==== Onshape supports exporting to the following formats: STEP (ISO 10303) Parasolid XT ACIS IGES SolidWorks file formats .STL Rhinoceros 3D: .3dm Collada XML-spec based textual file === Drawing === Ordinary engineering or technical drawing can be exported as .PDF file. === Other Formats === In addition to CAD file formats, Onshape supports importing some Non-CAD file formats for viewing and referencing. === Assembly === Assemblies can be imported and exported to: STEP (ISO 10303) Parasolid XT ACIS Pro/ENGINEER, Creo ISO JT Rhinoceros 3D: .3dm Siemens NX file formats SolidWorks Pack and Go zip file File formats that assemblies can be only-exported to, are: IGES .STL Collada XML-spec based textual file

    Read more →
  • Open Sound Control

    Open Sound Control

    Open Sound Control (OSC) is a protocol for networking sound synthesizers, computers, and other multimedia devices for purposes such as musical performance or show control. OSC's advantages include interoperability, accuracy, flexibility and enhanced organization and documentation. Its disadvantages include higher bandwidth requirements, increased load on embedded processors, and lack of standardized messages/interoperability. The first specification was released in March 2002. == Motivation == OSC is a content format developed at CNMAT by Adrian Freed and Matt Wright comparable to XML, WDDX, or JSON. It was originally intended for sharing music performance data (gestures, parameters and note sequences) between musical instruments (especially electronic musical instruments such as synthesizers), computers, and other multimedia devices. OSC is sometimes used as an alternative to the 1983 MIDI standard, when higher resolution and a richer parameter space is desired. OSC messages are transported across the internet and within local subnets using UDP/IP and Ethernet. OSC messages between gestural controllers are usually transmitted over serial endpoints of USB wrapped in the SLIP protocol. == Features == OSC's main features, compared to MIDI, include: Open-ended, dynamic, URI-style symbolic naming scheme Symbolic and high-resolution numeric data Pattern matching language to specify multiple recipients of a single message High resolution time tags "Bundles" of messages whose effects must occur simultaneously == Applications == There are dozens of OSC applications, including real-time sound and media processing environments, web interactivity tools, software synthesizers, programming languages and hardware devices. OSC has achieved wide use in fields including musical expression, robotics, video performance interfaces, distributed music systems and inter-process communication. The TUIO community standard for tangible interfaces such as multitouch is built on top of OSC. Similarly the GDIF system for representing gestures integrates OSC. OSC is used extensively in experimental musical controllers, and has been built into several open source and commercial products. The Open Sound World (OSW) music programming language is designed around OSC messaging. OSC is the heart of the DSSI plugin API, an evolution of the LADSPA API, in order to make the eventual GUI interact with the core of the plugin via messaging the plugin host. LADSPA and DSSI are APIs dedicated to audio effects and synthesizers. In 2007, a standardized namespace within OSC called SYN, for communication between controllers, synthesizers and hosts, was proposed. == Design == OSC messages consist of an address pattern (such as /oscillator/4/frequency), a type tag string (such as ,fi for a float32 argument followed by an int32 argument), and the arguments themselves (which may include a time tag). Address patterns form a hierarchical name space, reminiscent of a Unix filesystem path, or a URL, and refer to "Methods" inside the server, which are invoked with the attached arguments. Type tag strings are a compact string representation of the argument types. Arguments are represented in binary form with four-byte alignment. The core types supported are 32-bit two's complement signed integers 32-bit IEEE floating point numbers Null-terminated arrays of eight-bit encoded data (C-style strings) arbitrary sized blob (e.g. audio data, or a video frame) An example message is included in the spec (with null padding bytes represented by ␀): /oscillator/4/frequency␀,f␀␀, Followed by the 4-byte float32 representation of 440.0: 0x43dc0000. Messages may be combined into bundles, which themselves may be combined into bundles, etc. Each bundle contains a timestamp, which determines whether the server should respond immediately or at some point in the future. Applications commonly employ extensions to this core set. More recently some of these extensions such as a compact Boolean type were integrated into the required core types of OSC 1.1. The advantages of OSC over MIDI are primarily internet connectivity; data type resolution; and the comparative ease of specifying a symbolic path, as opposed to specifying all connections as seven-bit numbers with seven-bit or fourteen-bit data types. This human-readability has the disadvantage of being inefficient to transmit and more difficult to parse by embedded firmware, however. The spec does not define any particular OSC Methods or OSC Containers. All messages are implementation-defined and vary from server to server.

    Read more →
  • Flapit

    Flapit

    Flapit is a split-flap display that reveals real-time social media statistics such as Twitter followers or Yelp ratings. The product is designed to show off a bricks-and-mortar company's online community and increase its online presence by letting offline customers interact with the connected counter. The idea came from a product launched by the retailer C&A called the Fashion Like. The device can be customised via a web app and API to display any promotional messages, internal stats or discounts. It has 7 digits including numbers, letters and currency symbols Special messages such as Thank You or Like Us can be displayed on the first flap and are translated into Italian, German, French, Chinese, Japanese, Russian, Portuguese, Spanish and English. The Flapit counter was officially presented to the press at the CES Las Vegas 2015 and received favorable reviews from major specialised press

    Read more →
  • Outline of electronics

    Outline of electronics

    The following outline is provided as an overview of and topical guide to electronics: Electronics – branch of physics, engineering and technology dealing with electrical circuits that involve active semiconductor components and associated passive interconnection technologies. == Branches == === Classical electronics === Analog electronics Digital electronics Electronic instrumentation Electronic engineering Microelectronics Optoelectronics Power electronics Printed electronics Semiconductor technology Schematic capture Thermal management Automation Electronics === Advanced topics === Atomtronics Bioelectronics Failure modes of electronics Flexible electronics Low-power electronics Microelectromechanical systems (MEMS) Molecular electronics Nanoelectronics Organic electronics Photonics Piezotronics Quantum electronics Spintronics === History of electronics === History of electronic engineering History of radar History of radio History of television == General concepts == === Data converters === Analog-to-digital converters (ADC) Aliasing Successive approximation ADC Dual-slope ADC Quantization Sensor resolution Sampling Delta-sigma ADC Digital-to-analog converters (DAC) Digital potentiometer Binary weighted resistor converter Charge distribution DAC Pulse width modulator Reconstruction filter The R2R ladder === Digital electronics === Binary decision diagrams Boolean algebra Combinational logic Counters (digital) De Morgan's laws Digital circuit Formal verification Karnaugh maps Logic families Logic gate Logic minimization Logic simulation Logic synthesis Registers Sequential logic State machines Truth tables Transparent latch === Electrical element/discretes === Passive elements: Capacitor Inductor Memristor Resistor Transformer Active elements: Diode Zener diode Light-emitting diode PIN diode Schottky diode Avalanche diode Laser diode Microcontroller Operational amplifier Thyristor DIAC TRIAC IGBT Transistor Bipolar transistor (BJT) Field effect transistor (FET) Darlington transistor Other components Aural devices Battery (electricity) Crystal oscillator Electromechanical devices Sensors Surface acoustic wave (SAW) === Electronics analysis === Electronic packaging Electronic circuit simulation Electronic design automation Electronic noise Mathematical methods in electronics Thermal management of electronic devices and systems === Electronic circuits === Amplifiers Differential amplifiers Feedback amplifiers Power amplifiers Comparators Converters Filters Active filters Passive filters Digital filters Oscillators Phase-locked loops Timers === Electronic equipment === Air conditioner Breathalyzer Central heating Clothes dryer Computer/Notebook Dishwasher Freezer Home robot Home entertainment system Information technologies Cooker Microwave oven Refrigerator Robotic vacuum cleaner Tablet Telephone Water heater Washing machine === Television === Analog television History of television Television show Television broadcaster Timeline of the introduction of television in countries Mechanical television Color television Digital television Digital television transition Smart television Streaming television Internet Protocol television 3D television Terrestrial television ==== Television broadcasting ==== === Electronic instrumentation === Ammeter Capacitance meter Distortionmeter Electric energy meter LCR meter Microwave power meter Multimeter Network analyzer Ohmmeter Oscilloscope Psophometer Q meter Signal analyzer Signal generator Spectrum analyzer Transistor tester Tube tester Wattmeter Vectorscope Video signal generator Voltmeter VU meter === Memory technology === Flash memory Hard drive systems Optical storage Probe Storage Programmable read-only memory Read-only memory Solid-state drive (SSD) Volatile memory === Microcontrollers === Features Analog-to-digital converter Central processing unit (CPU) Clock generator (Quartz timing crystal, resonator or RC circuit) Debugging support Digital-to-analog converters Discrete input and output bits In-circuit programming Non-volatile memory (ROM, EPROM, EEPROM or Flash) Peripherals (Timers, event counters, PWM generators, and watchdog) Serial interface (Input/output such as serial ports (UARTs)) Serial communications (I²C, Serial Peripheral Interface and Controller Area Network) Volatile memory (RAM) 8-bit microcontroller families: AVR - PIC - COP8 - MCS-48 - MCS-51 - Z8 - eZ80 - HC08 - HC11 - H8 - PSoC Some notable suppliers: ARM Atmel Cypress Semiconductor Freescale Intel MIPS Microchip Technology NXP Semiconductors Parallax Propeller PowerPC Rabbit 2000 Renesas RX, V850 Silicon Laboratories STMicroelectronics Texas Instruments Toshiba TLCS === Optoelectronics === Optical fiber Optical properties Optical receivers Optical system design Optical transmitters === Physical laws === Ampère's law Coulomb's law Faraday's law of induction/Faraday-Lenz law Gauss's law Kirchhoff's circuit laws Current law Voltage law Maxwell's equations Gauss's law Faraday's law of induction Ampère's law Ohm's law === Power electronics === Power Devices Gate turn-off thyristor MOS-controlled thyristor (MCT) Power BJT/MOSFET Static induction devices Electric power conversion DC to DC DC to DC converter Voltage stabiliser Linear regulator AC to DC Rectifier Mains power supply unit (PSU) Switched-mode power supply DC to AC Inverter AC to AC Cycloconverter Transformer Variable frequency transformer Voltage converter Voltage regulator Power applications Automotive applications Capacitor charging applications Electronic ballasts Energy harvesting technologies Flexible AC transmission systems (FACTS) High frequency inverters HVDC transmission Motor controller Photovoltaic system Conversion Power factor correction circuits Power supply Renewable energy sources Switching power converters Uninterruptible power supply Wind power === Programmable devices === Application-specific integrated circuit (ASIC) Complex programmable logic device (CPLD) Erasable programmable logic device (EPLD) Simple programmable logic device (SPLD) Macrocell array Programmable array logic (PAL) Programmable logic array (PLA) Programmable logic device (PLD) Field-programmable gate array (FPGA) VHSIC Hardware Description Language (VHDL) Verilog Hardware Description Language Some notable suppliers: Altera - Atmel - Cypress Semiconductor - Lattice Semiconductor - Xilinx === Semiconductors theory === Properties Bipolar junction transistors Capacitance voltage profiling Charge carrier Charge-transfer complex Deep-level transient spectroscopy Depletion region Density of states Diode modelling Direct band gap Electronic band structure Energy level Exciton Field-effect transistors Metal–semiconductor junction MOSFETs N-type semiconductor Organic semiconductors P–n junction P-type semiconductor Photoelectric effect Quantum tunneling Semiconductor chip Semiconductor detector Solar cell Transistor model Thin film Tight-binding model Device Fabrication Semiconductor device fabrication Semiconductor industry Semiconductor consolidation == Applications == Audio electronics Automotive electronics Avionics Control Systems Consumer electronics Data acquisition E-health Electronic book Electronics industry Electronic warfare Embedded systems Home automation Integrated circuits Marine electronics Microwave technology Military electronics Multimedia Nuclear electronics Open hardware Radar and Radionavigation Radio electronics Terahertz technology Video hardware Wired and Wireless Communications

    Read more →
  • Film-out

    Film-out

    Film-out is the process in the computer graphics, video production and filmmaking disciplines of transferring images or animation from videotape or digital files to a traditional film print. Film-out is a broad term that encompasses the conversion of frame rates, color correction, as well as the actual printing, also called scannior recording. The film-out process is different depending on the regional standard of the master videotape in question – NTSC, PAL, or SECAM – or likewise on the several emerging region-independent formats of high definition video (HD video); thus each type is covered separately, taking into account regional film-out industries, methods and technical considerations. == Live action video == Many modern documentaries and low-budget films are shot on videotape or other digital video media, instead of film stock, and completed as digital video. Video production means substantially lower costs than 16 mm or 35 mm film production on all levels. Until recently, the relatively low cost of video ended when the issue of a theatrical presentation was raised, which required a print for film projection. With the growing presence of digital projection, this is becoming less of a factor. === Standard definition (SD) video === Film-out of standard-definition video – or any source that has an incompatible frame rate – is the up-conversion of video media to film for theatrical viewing. The video-to-film conversion process consists of two major steps: first, the conversion of video into digital film frames which are then stored on a computer or on HD videotape; and secondly, the printing of these digital film frames onto actual film. To understand these two steps, it is important to understand how video and film differ. Film (sound film, at least) has remained unchanged for almost a century and creates the illusion of moving images through the rapid projection of still images, frames, upon a screen, typically 24 per second. Traditional interlaced SD video has no real frame rate, (though the term frame is applied to video, it has a different meaning). Instead, video consists of a very fast succession of horizontal lines that continually cascade down the television screen – streaming top to bottom, before jumping back to the top and then streaming down to the bottom again, repeatedly, almost 60 alternating screen-fulls every second for NTSC, or exactly 50 such screen-fulls per second for PAL and SECAM. Since visual movement in video is infused in this continuous cascade of scan lines, there is no discrete image or real frame that can be identified at any one time. Therefore, when transferring video to film, it is necessary to invent individual film frames, 24 for every second of elapsed time. The bulk of the work done by a film-out company is this first step, creating film frames out of the stream of interlaced video. Each company employs its own (often proprietary) technology for turning interlaced video into high-resolution digital video files of 24 discrete images every second, called 24 progressive video or 24p. The technology must filter out all the visually unappealing artifacting that results from the inherent mismatch between video and film movement. Moreover, the conversion process usually requires human intervention at every edit point of a video program, so that each type of scene can be calibrated for maximum visual quality. The use of archival footage in video especially calls for extra attention. Step two, the scanning to film, is the rote part of the process. This is the mechanical step where lasers print each of the newly created frames of the 24p video, stored on computer files or HD videotape, onto rolls of film. Most companies that do film-out, do all the stages of the process themselves for a lump sum. The job includes converting interlaced video into 24p and often a color correction session – (calibrating the image for theatrical projection), before scanning to physical film, (possibly followed by color correction of the film print made from the digital intermediary) – is offered. At the very least, film-out can be understood as the process of converting interlaced video to 24p and then scanning it to film. ==== NTSC video ==== NTSC is the most challenging of the formats when it comes to standards conversion and, specifically, converting to film prints. NTSC runs at the approximate rate of 29.97 video frames (consisting of two interlaced screen-fulls of scan lines, called fields, per frame) per second. In this way, NTSC resolves actual live action movement at almost – but not quite – 60 alternating half-resolution images every second. Because of this 29.97 rate, no direct correlation to film frames at 24 frames per second can be achieved. NTSC is hardest to reconcile with film, thus motivating its own unique processes. ==== PAL and SECAM video ==== PAL and SECAM run at 25 interlaced video frames per second, which can be slowed down or frame-dropped, then deinterlaced, to correlate frame for frame with film running at 24 actual frames per second. PAL and SECAM are less complex and demanding than NTSC for film-out. PAL and SECAM conversions do agitate, though, with the unpleasant choice between slowing down video (and audio pitch, noticeably) by four percent, from 25 to 24 frames per second, in order to maintain a 1:1 frame match, slightly changing the rhythm and feel of the program; or maintaining original speed by periodically dropping frames, thereby creating jerkiness and possible loss of vital detail in fast-moving action or precise edits. === High definition (HD) digital video === High definition digital video can be shot at a variety of frame rates, including 29.97 interlaced (like NTSC) or progressive; or 25 interlaced (like PAL) or progressive; or even 24-progressive (just like film). HD, if shot in 24-progressive, scans nearly perfectly to film without the need for a frame or field conversion process. Other issues remain though, based on the different resolutions, color spaces, and compression schemes that exist in the high-definition video world. == Computer graphics and animation == Artists working with CGI-Computer-generated imagery animation computers create pictures frame by frame. Once the finished product is done, the frames are outputted, normally in a DPX file. These picture data files can then be put on to film using a film recorder for film out. SGI computers started the high-end CGI-Computer-generated imagery animation systems, but with faster computers and the growth of Linux-based systems, many others are on the market now. Movies fully rendered and animated in CGI such as Toy Story, and Antz utilize the film-out method to produce 35mm copies for archival and release prints. Most CGI work is done in 2K Display resolution files (about the size of QXGA) and then output to the Film-out device for creation of 35 mm elements. With 4K Display resolution digital intermediates on the rise, newer types of film-out recorders are being developed to accept 4k resolution files. A 2K movie requires a Storage Area Network storage several terabytes in size to be properly stored and played out. Computer graphics files are handled the same way but in single frames and may use DPX, TIFF or other file formats. == Digital intermediates == Film-out-recording is the last step of digital intermediate workflow. DPX files that were scanned on a motion picture film scanner are stored on a storage area network (often abbreviated as SAN). The scanned DPX footage is edited and composited-FX on workstations, then mastered back on film. Film restoration is also done this way. A "film intermediate" is an analog variation of a digital intermediate, where a project shot on digital video is printed onto film stock and transferred back to digital video to emulate film. The term was coined after it was used on the Oscar-winning 2012 short film "Curfew". The process was also used on the films Dune (2021) and The Batman (2022). == Images for graphic design and print industries == The days of newspapers and magazines shooting 35mm film are almost gone. Digital cameras can now shoot all the images needed, storing them as files (e.g. JPEG, DPX or another format) that are readily edited prior to use. Once the final copy is approved, it can be filmed out for publishing. Digital stills are not the only way to get pictures used in the graphic design and print industries. Film scanners and computer graphics programs are also common sources for graphic design and print industries. == Types of devices == The following devices are used in film-out processes: CRT recorder. Camera and a special TV display Kinescope – early type Electronic Video Recording or EVR – early type EBR Electron Beam Film Recorder 16 mm by 3M Laser film recorder, like Kodak's high-end Lightning II recorder and Arri's Arrilaser. DLP Film recorder, like Cinevation's real-time Cinevator. == History == Lately it has become possible to transfer video images, inclu

    Read more →
  • HTTP cookie

    HTTP cookie

    An HTTP cookie (also called web cookie, Internet cookie, browser cookie, or simply cookie) is a small block of data created by a web server while a user is browsing a website and placed on the user's computer or other device by the user's web browser. Cookies are placed on the device used to access a website, and more than one cookie may be placed on a user's device during a session. Cookies serve useful and sometimes essential functions on the web. They enable web servers to store stateful information (such as items added in the shopping cart in an online store) on the user's device or to track the user's browsing activity (including clicking particular buttons, logging in, or recording which pages were visited in the past). They can also be used to save information that the user previously entered into form fields, such as names, addresses, passwords, and payment card numbers for subsequent use. Authentication cookies are commonly used by web servers to authenticate that a user is logged in, and with which account they are logged in. Without the cookie, users would need to authenticate themselves by logging in on each page containing sensitive information that they wish to access. The security of an authentication cookie generally depends on the security of the issuing website and the user's web browser, and on whether the cookie data is encrypted. Security vulnerabilities may allow a cookie's data to be read by an attacker, used to gain access to user data, or used to gain access (with the user's credentials) to the website to which the cookie belongs (see cross-site scripting and cross-site request forgery for examples). Tracking cookies, and especially third-party tracking cookies, are commonly used as ways to compile long-term records of individuals' browsing histories — a potential privacy concern that prompted European and U.S. lawmakers to take action in 2011. European law requires that all websites targeting European Union member states gain "informed consent" from users before storing non-essential cookies on their device. == Background == === Origin of the name === The term cookie was coined by web-browser programmer Lou Montulli. It was derived from the term magic cookie, which is a packet of data a program receives and sends back unchanged, used by Unix programmers. === History === Magic cookies were already used in computing when computer programmer Lou Montulli had the idea of using them in web communications in June 1994. At the time, he was an employee of Netscape Communications, which was developing an e-commerce application for MCI. Vint Cerf and John Klensin represented MCI in technical discussions with Netscape Communications. MCI did not want its servers to have to retain partial transaction states, which led them to ask Netscape to find a way to store that state in each user's computer instead. Cookies provided a solution to the problem of reliably implementing a virtual shopping cart. Together with John Giannandrea, Montulli wrote the initial Netscape cookie specification the same year. Version 0.9beta of Mosaic Netscape, released on 13 October 1994, supported cookies. The first use of cookies (out of the labs) was checking whether visitors to the Netscape website had already visited the site. Montulli applied for a patent for the cookie technology in 1995, which was granted in 1998. Support for cookies was integrated with Internet Explorer in version 2, released in October 1995. The introduction of cookies was not widely known to the public at the time. In particular, cookies were accepted by default, and users were not notified of their presence. The public learned about cookies after the Financial Times published an article about them on 12 February 1996. In the same year, cookies received a lot of media attention, especially because of potential privacy implications. Cookies were discussed in two U.S. Federal Trade Commission hearings in 1996 and 1997. The development of the formal cookie specifications was already ongoing. In particular, the first discussions about a formal specification started in April 1995 on the www-talk mailing list. A special working group within the Internet Engineering Task Force (IETF) was formed. Two alternative proposals for introducing state in HTTP transactions had been proposed by Brian Behlendorf and David Kristol respectively. But the group, headed by Kristol himself and Lou Montulli, soon decided to use the Netscape specification as a starting point. In February 1996, the working group identified third-party cookies as a considerable privacy threat. The specification produced by the group was eventually published as RFC 2109 in February 1997. It specifies that third-party cookies were either not allowed at all, or at least not enabled by default. At this time, advertising companies were already using third-party cookies. The recommendation about third-party cookies of RFC 2109 was not followed by Netscape and Internet Explorer. RFC 2109 was superseded by RFC 2965 in October 2000. RFC 2965 added a Set-Cookie2 header field, which informally came to be called "RFC 2965-style cookies" as opposed to the original Set-Cookie header field which was called "Netscape-style cookies". Set-Cookie2 was seldom used, however, and was deprecated in RFC 6265 in April 2011 which was written as a definitive specification for cookies as used in the real world. No modern browser recognizes the Set-Cookie2 header field. == Terminology == === Session cookie === A session cookie (also known as an in-memory cookie, transient cookie or non-persistent cookie) exists only in temporary memory while the user navigates a website. Session cookies expire or are deleted when the user closes the web browser. Session cookies are identified by the browser by the absence of an expiration date assigned to them. === Persistent cookie === A persistent cookie expires at a specific date or after a specific length of time. For the persistent cookie's lifespan set by its creator, its information will be transmitted to the server every time the user visits the website that it belongs to, or every time the user views a resource belonging to that website from another website (such as an advertisement). For this reason, persistent cookies are sometimes referred to as tracking cookies because they can be used by advertisers to record information about a user's web browsing habits over an extended period of time. Persistent cookies are also used for reasons such as keeping users logged into their accounts on websites, to avoid re-entering login credentials at every visit. (See § Uses, below.) === Secure cookie === A secure cookie can only be transmitted over an encrypted connection (i.e. HTTPS). They cannot be transmitted over unencrypted connections (i.e. HTTP). This makes the cookie less likely to be exposed to cookie theft via eavesdropping. A cookie is made secure by adding the Secure flag to the cookie. === Http-only cookie === An http-only cookie cannot be accessed by client-side APIs, such as JavaScript. This restriction eliminates the threat of cookie theft via cross-site scripting (XSS). However, the cookie remains vulnerable to cross-site tracing (XST) and cross-site request forgery (CSRF) attacks. A cookie is given this characteristic by adding the HttpOnly flag to the cookie. === Same-site cookie === In 2016 Google Chrome version 51 introduced a new kind of cookie with attribute SameSite with possible values of Strict, Lax or None. With attribute SameSite=Strict, the browsers would only send cookies to a target domain that is the same as the origin domain. This would effectively mitigate cross-site request forgery (CSRF) attacks. With SameSite=Lax, browsers would send cookies with requests to a target domain even it is different from the origin domain, but only for safe requests such as GET (POST is unsafe) and not third-party cookies (inside iframe). Attribute SameSite=None would allow third-party (cross-site) cookies, however, most browsers require secure attribute on SameSite=None cookies. The Same-site cookie is incorporated into a new RFC draft for "Cookies: HTTP State Management Mechanism" to update RFC 6265 (if approved). Chrome, Firefox, and Edge started to support Same-site cookies. The key of rollout is the treatment of existing cookies without the SameSite attribute defined, Chrome has been treating those existing cookies as if SameSite=None, this would let all website/applications run as before. Google intended to change that default to SameSite=Lax in Chrome 80 planned to be released in February 2020, but due to potential for breakage of those applications/websites that rely on third-party/cross-site cookies and COVID-19 circumstances, Google postponed this change to Chrome 84. === Supercookie === A supercookie is a cookie with an origin of a top-level domain (such as .com) or a public suffix (such as .co.uk). Ordinary cookies, by contrast, have an origin of a specific domain name, such as ex

    Read more →
  • Front-end web development

    Front-end web development

    Front-end web development is the development of the graphical user interface of a website through the use of HTML, CSS, and JavaScript so users can view and interact with that website. == Tools used for front-end development == There are several tools and platforms, such as WordPress, Joomla, and Drupal, available that can be used to develop the front end of a website. === HyperText Markup Language === HyperText Markup Language (HTML) is the modern standard for displaying and structuring web content across the internet. HTML defines what elements will be displayed on a website, and how they will be arranged. All major web browsers are designed to interpret HTML, and most modern websites serve HTML to the user. Hypertext is text displayed on a computer with references to other text, these references (or links,) are termed "hyperlinks." When an internet user interacts with a hyperlinked item, the website serves the user the linked data. This data can be another HTML web-page, JavaScript, or anything else. The latest major release of HTML is HTML5, originally published on October 28, 2014 as a W3C recommendation. A web page may be developed to include many markup tags. For each pair of markup tag normally starts with a Start tag and ends with a matching end tag. The text in between the Start tag and the End tag is called an HTML Element. [1] === Cascading Style Sheets === Cascading Style Sheets (CSS) control the presentation and style of a website. CSS uses a cascading system to resolve style conflicts by applying style rules based on specificity, inheritance, and importance. Media queries allow for adjustments to the site's layout and appearance depending on factors such as screen size and resolution. CSS can be applied in three ways: external stylesheets linked in an HTML file, internal