AI Coding Tools

Explore the best AI Coding Tools — independent reviews, comparisons, pricing and step-by-step how-to guides, curated by Aizhi.

  • Local-first software

    Local-first software

    Local-first software is a software engineering approach in which an application stores its data primarily on the user's own device rather than on remote servers. Users can read and write data without an Internet connection, and changes are synchronized across devices in the background when connectivity is available. The approach differs from conventional cloud-based applications, where the server holds the authoritative copy of user data and the client acts as a thin client. The term was coined in a 2019 paper published by researchers at Ink & Switch, an independent research lab, and presented at the Onward! conference at ACM SIGPLAN. The paper, sometimes referred to as a manifesto, was authored by Martin Kleppmann, Adam Wiggins, Peter van Hardenberg, and Mark McGranaghan. == Background == Before the widespread adoption of Internet-connected software in the 2000s, most desktop applications stored data as files on the user's local disk. Users had direct access to their files and could copy, back up, or delete them at will. The rise of software as a service (SaaS) and cloud-based applications like Google Docs shifted data storage to centralized servers. While cloud applications made real-time collaboration across devices straightforward, they introduced a dependency on the service provider: if the provider discontinued the service or experienced an outage, users could lose access to their data. A related concept, "offline-first," emerged in the early 2010s and focused on making web applications resilient to network interruptions. The local-first approach built on these earlier efforts while placing greater emphasis on long-term data ownership and end-to-end encryption. == Origins == === Ink & Switch manifesto === Ink & Switch is an industrial research lab co-founded by Adam Wiggins, who had earlier co-founded Heroku. Martin Kleppmann, an associate professor in the Department of Computer Science and Technology at the University of Cambridge, was a co-author of the 2019 paper. The manifesto proposed seven "ideals" for local-first software: Fast — Operations respond without network round-trips. Multi-device — Data synchronizes across a user's devices. Offline — Users can read and write data without a network connection. Collaboration — Multiple users can work on the same data concurrently. Longevity — Data remains accessible even if the software vendor ceases operation. Privacy — End-to-end encryption protects user data. User control — The vendor cannot restrict how users access or use their data. The paper surveyed existing approaches to data storage and collaboration — ranging from email attachments and Dropbox-style file synchronization to web applications and mobile backends — and argued that none of them satisfied all seven ideals simultaneously. === Role of CRDTs === The manifesto identified conflict-free replicated data types (CRDTs) as a promising technical foundation for local-first applications. CRDTs are data structures that allow multiple replicas to be edited independently and then merged without conflicts, a property first formalized in research by Marc Shapiro and colleagues around 2011. Kleppmann and collaborators at Ink & Switch developed Automerge, an open-source CRDT library for JSON documents, to make these algorithms available to application developers. == Adoption and community == Developer interest in the local-first approach grew after the 2019 paper spread on Hacker News and at developer conferences In August 2023, Wired published a feature article on the movement, describing it as an effort to reduce reliance on large cloud providers. The first Local-First Conf took place on 30 May 2024 in Berlin, with talks by Kleppmann and developers from companies including Linear and Anytype. The community has continued to expand, with regular "LoFi" meetups, a podcast (localfirst.fm), and a third edition of the conference planned for Berlin in July 2026. == Criticisms and limitations == Developers and commentators have pointed out practical difficulties with the local-first approach. Synchronizing data between multiple devices that may be offline for extended periods introduces complexity that cloud-based architectures avoid. Conflict resolution, even with CRDTs, can produce results that are technically consistent but semantically unexpected to users. Schema migrations across thousands of client devices running different application versions pose another difficulty that does not arise with server-side databases. Web browsers impose storage limits and may evict locally stored data. Safari, for instance, has been reported to clear IndexedDB data after seven days of inactivity on a given site, which undermines the assumption that local data is persistent. There is also disagreement within the local-first community about whether a fully decentralized architecture is required. The original manifesto described decentralization as the "logical end goal," but a number of products that identify as local-first still depend on centralized servers for authentication, backup, or synchronization. In a talk at Local-First Conf 2024, Kleppmann said the seven ideals are better understood as a "gradient" rather than a strict checklist.

    Read more →
  • Magnetoquasistatic field

    Magnetoquasistatic field

    A magnetoquasistatic field is a class of electromagnetic field in which a slowly oscillating magnetic field is dominant. A magnetoquasistatic field is typically generated by low-frequency induction from a magnetic dipole or a current loop. The magnetic near-field of such an emitter behaves differently from the more commonly used far-field electromagnetic radiation. At low frequencies the rate of change of the instantaneous field strength with each cycle is relatively slow, giving rise to the name "magneto-quasistatic". The near field or quasistatic region typically extends no more than a wavelength from the antenna, and within this region the electric and magnetic fields are approximately decoupled. Weakly conducting non-magnetic bodies, including the human body and many mineral rocks, are effectively transparent to magnetoquasistatic fields, allowing for the transmission and reception of signals through such obstacles. Also, long-wavelength (i.e. low-frequency) signals are better able to propagate round corners than shorter-wave signals. Communication therefore need not be line-of-sight. The communication range of such signals depends on both the wavelength and the electromagnetic properties of the intervening medium at the chosen frequency, and is typically limited to a few tens of meters. == Physical principles == The laws of primary interest are Ampère's circuital law (with the displacement current density neglected) and the magnetic flux continuity law. These laws have associated with them continuity conditions at interfaces. In the absence of magnetizable materials, these laws determine the magnetic field intensity H given its source, the current density J. H is not everywhere irrotational. However, it is solenoidal everywhere. == Equipment design == A typical antenna comprises a 50-turn coil around a polyoxymethylene tube with diameter 16.5 cm, driven by a class E oscillator circuit. Such a device is readily portable when powered by batteries. Similarly, a typical receiver consist of an active receiving loop with diameter of one meter, an ultra-low-noise amplifier, and a band-pass filter. In operation the oscillator drives current through the transmitting loop to create an oscillating magnetic field. This field induces a voltage in the receiving loop, which is then amplified. Because the quasistatic region is defined within one wavelength of the electromagnetic source, emitters are limited to a frequency range between about 1 kHz and 1 MHz. Reducing the oscillating frequency increases the wavelength and hence the range of the quasistatic region, but reduces the induced voltage in the receiving loops which worsens the signal-to-noise ratio. In experiments carried out by the Carnegie Institute of Technology, the maximum range reported by was 50 meters. == Applications == === Resonant inductive coupling === In resonant coupling, the source and receiver are tuned to resonate at the same frequency and are given similar impedances. This allows power as well as information to flow from the source to the receiver. Such coupling via the magnetoquasistatic field is called resonant inductive coupling and can be used for wireless energy transfer. Applications include induction cooking, induction charging of batteries and some kinds of RFID tag. === Communications === Conventional electromagnetic communication signals cannot pass through the ground. Most mineral rock is neither electrically conducting nor magnetic, allowing magnetic fields to penetrate. Magnetoquasistatic systems have been successfully used for underground wireless communication, both surface-to-underground and between underground parties. At extremely low frequencies, below about 1 kHz, the wavelength is long enough for long-distance communication, although at a slow data rate. Such systems have been installed in submarines, with the local antenna comprising a wire up to several kilometers in length and trailed behind the vessel when at or near the surface. === Position and orientation tracking === Wireless position tracking is being increasingly used in applications such as navigation, security, and asset tracking. Conventional position tracking devices use high frequencies or microwaves, including global positioning systems (GPS), ultra-wide band (UWB) systems, and radio frequency identification systems (RFID), but these systems can easily be blocked by obstacles in their path. Magnetoquasistatic positioning takes advantage of the fact that the fields are largely undisturbed when in the presence of human beings and physical structures, and can be used for both position and orientation tracking for ranges up to 50 meters. To accurately determine the orientation and position of a dipole/emitter, allowance must be made not only for the field pattern generated by the emitter, but also for the eddy-currents they induce in the earth, which create secondary fields detectable by the receivers. By using complex image theory to correct this field generation from earth, and by using frequencies on the order of a few hundred kilohertz to obtain the required signal-to-noise ratio (SNR), it is possible to analyze the position of the dipole through azimuthal orientation, θ {\displaystyle \theta } , and inclination orientation, ϕ {\displaystyle \phi } . A Disney research team has used this technology to effectively determine the position and orientation of an American football, something not traceable through conventional wave propagation techniques due to human body obstruction. They inserted an oscillator-driven coil, around the diameter of the center of the ball, to generate the magnetoquasistatic field. The signal was able to pass undisturbed through multiple players.

    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