AI Art Enhancer

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

  • Closest point method

    Closest point method

    The closest point method (CPM) is an embedding method for solving partial differential equations on surfaces. The closest point method uses standard numerical approaches such as finite differences, finite element or spectral methods in order to solve the embedding partial differential equation (PDE) which is equal to the original PDE on the surface. The solution is computed in a band surrounding the surface in order to be computationally efficient. In order to extend the data off the surface, the closest point method uses a closest point representation. This representation extends function values to be constant along directions normal to the surface. == Definitions == Closest Point function: Given a surface S , c p ( x ) {\displaystyle {\mathcal {S}},cp(\mathbf {x} )} refers to a (possibly non-unique) point belonging to S {\displaystyle {\mathcal {S}}} , which is closest to x {\displaystyle \mathbf {x} } [SE]. Closest point extension: Let S {\displaystyle {\mathcal {S}}} , be a smooth surface in R d {\displaystyle \mathbb {R} ^{d}} . The closest point extension of a function u : S → R {\displaystyle u:{\mathcal {S}}\rightarrow \mathbb {R} } , to a neighborhood Ω {\displaystyle \Omega } of S {\displaystyle {\mathcal {S}}} , is the function v : Ω → R {\displaystyle v:\Omega \rightarrow \mathbb {R} } , defined by v ( x ) = u ( c p ( x ) ) {\displaystyle v(\mathbf {x} )=u(cp(\mathbf {x} ))} . == Closest point method == Initialization consists of these steps [EW]: If it is not already given, a closest point representation of the surface is constructed. A computational domain is chosen. Typically this is a band around the surface. Replace surface gradients by standard gradients in R 3 {\displaystyle \mathbb {R} ^{3}} . Solution is initialized by extending the initial surface data on to the computational domain using the closest point function. After initialization, alternate between the following two steps: Using the closest point function, extend the solution off the surface to the computational domain. Compute the solution to the embedding PDE on a Cartesian mesh in the computational domain for one time step. == Banding == The surface PDE is extended into R 3 {\displaystyle \mathbb {R} ^{3}} however it is only necessary to solve this new PDE near the surface. Hence, we solve the PDE in a band surrounding the surface for efficient computational purposes. Ω c x : ‖ x − c p ( x ) ‖ 2 ≤ λ {\displaystyle \Omega _{c}{x:\|x-cp(x)\|_{2}\leq \lambda }} where λ {\displaystyle \lambda } is the bandwidth. == Example: Heat equation on a circle == Using initial profile u S ( θ , t ) = sin ⁡ ( θ ) {\displaystyle u_{S}(\theta ,t)=\sin(\theta )} leads to the solution u S ( θ , t ) = exp ⁡ ( − t ) sin ⁡ ( θ ) {\displaystyle u_{S}(\theta ,t)=\exp(-t)\sin(\theta )} for the heat equation. Forward Euler time-stepping is used with relation Δ t = 0.1 Δ x 2 {\displaystyle \Delta t=0.1\Delta x^{2}} and degree-four interpolation polynomials for the interpolations. Second-order centered differences are used for the spatial discretization. The CPM results in the expected second order error in the solution u {\displaystyle u} . == Applications == The closest point method can be applied to various PDEs on surfaces. Reaction–diffusion problems on point clouds [RD], eigenvalue problems [EV], and level set equations [LS] are a few examples.

    Read more →
  • Lingua Libre

    Lingua Libre

    Lingua Libre is an online collaborative project and tool by the Wikimédia France association, which aims to build a collaborative, multilingual, audiovisual speech corpus under a free license. It mostly consists of a rapid recording online service which allows the user to chain hundreds of recordings. Contributors have produced content in 310+ languages. == Description == Lingua Libre enables the recording of words, phrases or sentences of any language, oral (audio recording) or signed (video recording). Words are presented to the speaker in the form of a list, created on the spot, in advance, or by reusing an existing Wikimedia category. The speaker simply reads the word displayed on the screen, and the software moves on to the next word when it detects a silence after the read word. This principle, borrowed from the open source software Shtooka recorder with the help of its creator, Nicolas Vion, makes it possible to record several hundreds of words per hour. The recordings are then uploaded automatically from the web client to the Wikimedia Commons media library. In spring 2021, Lingua Libre was offline due to a fire in Strasbourg, but no audio recordings were lost. === Use of the recordings === The recordings can be consulted either on Lingua Libre or on Commons. They are mainly used on other Wikimedia projects, for example to illustrate entries on Wiktionaries or proper nouns in Wikipedia articles. The re-use of the recordings in a language teaching context is envisaged. Language learners can freely download pronunciations and use them on GoldenDict, a popular dictionary software. Thus, audio recordings can be used as “Pronunciation Dictionaries” on GoldenDict without needing internet connection. The recordings are also reused in Natural Language Processing projects, for example to drive Mozilla's DeepSpeech speech recognition engines. == Versions == Lingua Libre was initiated on January 23, 2015 and has had three successive versions: === Lingua Libre v.1 (2016) === As part of the Languages of France project, which aims to document and promote the regional languages of France on Wikimedia and Internet projects in general, the conception of Lingua Libre started in November 2015, partly funded by the DGLFLF (General Delegation for the French language and the languages of France). The first version of the project was launched in August 2016. Only suitable for audio recording, Lingua Libre was shown during a workshop on Occitan language in December 2016, and then presented to the online Wikimedia community and at international events in 2017. === Lingua Libre v.2 (2018) === A complete rebuilding was launched at the end of 2017. The new version of Lingua Libre is based on MediaWiki, uses Wikibase and OAuth to better integrate into the Wikimedia environment. The interface is translated via Translatewiki.net so that the project can be used by a large number of communities. The new version of the site was ready in June 2018 and opened to the public in August 2018. === Lingua Libre v.2.2 (2020) === In 2020, important changes were made to the platform; a new look was developed especially for the site, the .org domain replaced the .fr domain used until then, and added support for sign languages through video recording. == Statistics == In the first two years of the project's launch, approximately 10,000 recordings were made. The transition to v.2 was accompanied by a sharp increase in the contributions. The number of recordings multiplied by 10 in less than a year, exceeding the 100,000 threshold in May 2019. These recordings were made by 127 speakers in almost 50 languages. By September 2020, the platform had more than 300,000 recordings in 90 languages with more than 350 speakers. The 500,000 recordings milestone was reached in June 2021, thanks to 540 speakers of 120 languages.

    Read more →
  • FlowVella

    FlowVella

    FlowVella (formerly Flowboard) is an interactive presentation platform that includes an iPad/iPhone app, a Mac app and web site for viewing presentations, built first for the iPad and web. FlowVella allows users to create, publish and share presentations through their cloud-based SaaS system. FlowVella allows embedding of text, images, PDFs, video and gallery objects in easy linkable screens, defining modern interactive presentations. FlowVella grew out of Treemo Labs. == History == FlowVella launched as 'Flowboard' on April 18, 2013 after being built for almost a year. FlowVella was incubated out of Treemo Labs, which had years of experience building native apps for iPhone, iPad and Android devices. FlowVella is an iPad app and Mac app where users create, view, publish and share interactive presentations. Presentations are viewable on flowvella.com through a web-based viewer on any device or through the FlowVella native iPad app or Mac app. On December 18, 2014, Flowboard rebranded as FlowVella after a trademark dispute. == Presentation format == FlowVella is an interactive presentation format where instead of single directional slides, presentations are made up of linkable screens with embeddable media and content objects. While 'Flows' can be exported to PDF, they all have a web address and are meant to be viewed via a web browser or the FlowVella native applications. == Revenue model == FlowVella uses the freemium model for its presentation apps. Free users can make 4 public presentations with limited number of screens/slides, but most features are available to try out the software. In 2016, FlowVella introduced a second paid plan called PRO which includes team sharing, tracking and newly introduced 'Kiosk Mode' that launched in March of 2017. == Features == FlowVella is a native iPad app and Mac app which has advantages over web based tools. All downloaded presentations can be viewed offline, without an Internet connection. This includes videos which are enabled by caching the video files into memory. For students, teachers, sales people and all users, this is extremely important because this prevents having a presentation fail because of lack of an Internet connection. Beyond the offline capabilities, there is a trend to build native applications versus HTML5 as noted by Facebook and LinkedIn both rebuilding their mobile apps as 100% native applications.

    Read more →
  • Endomondo

    Endomondo

    Endomondo is a health and wellness website. It allows users to track their health statistics and provides insights on fitness trends. Originally launched in 2007, Endomondo was acquired by Under Armour in 2015. Under Armour shut down Endomondo in 2020, but, by 2024, Endomondo re-launched as its own entity. == History == Endomondo started in Denmark in 2007 by Mette Lykke, Christian Birk and Jakob Nordenhof Jønck. In 2011, the company opened an office in Silicon Valley, USA, but kept its research and development department in Denmark. In 2013, Endomondo LLC was listed in Red Herring as a European finalists for promising start-ups. The same year, Christian Birk and Jakob Nordenhof Jønck left the daily operation of the company, but kept co-ownership. In February 2015, Endomondo LLC was acquired by athletic apparel maker Under Armour for $85 million. Endomondo, at that time, had over 20 million users. In October 2020, Under Armour announced that Endomondo would be shutting down and selling off MyFitnessPal to the private equity firm Francisco Partners for $345 million. Service stopped on 31 December 2020, giving customers until 15 February 2021 to download an archive of their historic data. In 2024, Endomondo.com was brought back online as a professional fitness guidance website. == Features == Endomondo provides numerous workouts, guidance on exercises, performance-enhancing nutrition, and tips. Previously, Endomondo was able to track numerous fitness attributes such as running routes, distance, duration, and calories. The software helped analyze performance and recommend improvements. There was a free and a paid version available of Endomondo. The free version had advertisements. The paid Premium version was free of advertisements and included additional features such as the possibility to create one's own training plan. The offering of additional features was different between the Android, IOS and Windows platforms, and had significantly better features for tracking performance over time than UnderArmours suggested replacement. Endomondo offered challenges of various types to the user and allowed users to create their own challenges.

    Read more →
  • Umple

    Umple

    Umple is a language for both object-oriented programming and modelling with class diagrams and state diagrams. The name Umple is a portmanteau of "UML", "ample" and "Simple", indicating that it is designed to provide ample features to extend programming languages with UML capabilities. == History and philosophy == The design of Umple started in 2008 at the University of Ottawa. Umple was open-sourced and its development was moved to Google Code in early 2011 and to GitHub in 2015. Umple was developed, in part, to address certain problems observed in the modelling community. Most specifically, it was designed to bring modelling and programming into alignment, It was intended to help overcome inhibitions against modelling common in the programmer community. It was also intended to reduce some of the difficulties of model-driven development that arise from the need to use large, expensive or incomplete tools. One design objective is to enable programmers to model in a way they see as natural, by adding modelling constructs to programming languages. == Features and capabilities == Umple can be used to represent in a textual manner many UML modelling entities found in class diagrams and state diagrams. Umple can generate code for these in various programming languages. Currently Umple fully supports Java, C++ and PHP as target programming languages and has functional, but somewhat incomplete support for Ruby. Umple also incorporates various features not related to UML, such as the singleton pattern, keys, immutability, mixins and aspect-oriented code injection. The class diagram notations Umple supports includes classes, interfaces, attributes, associations, generalizations and operations. The code Umple generates for attributes include code in the constructor, 'get' methods and 'set' methods. The generated code differs considerably depending on whether the attribute has properties such as immutability, has a default value, or is part of a key. Umple generates many methods for manipulating, querying and navigating associations. It supports all combinations of UML multiplicity and enforces referential integrity. Umple supports the vast majority of UML state machine notation, including arbitrarily deep nested states, concurrent regions, actions on entry, exit and transition, plus long-lasting activities while in a state. A state machine is treated as an enumerated attribute where the value is controlled by events. Events encoded in the state machine can be methods written by the user, or else generated by the Umple compiler. Events are triggered by calling the method. An event can trigger transitions (subject to guards) in several different state machines. Since a program can be entirely written around one or more state machines, Umple enables automata-based programming. The bodies of methods are written in one of the target programming languages. The same is true for other imperative code such as state machine actions and guards, and code to be injected in an aspect-oriented manner. Such code can be injected before many of the methods in the code Umple generates, for example before or after setting or getting attributes and associations. The Umple notation for UML constructs can be embedded in any of its supported target programming languages. When this is done, Umple can be seen as a pre-processor: The Umple compiler expands the UML constructs into code of the target language. Code in a target language can be passed to the Umple compiler directly; if no Umple-specific notation is found, then the target-language code is emitted unchanged by the Umple compiler. Umple, combined with one of its target languages for imperative code, can be seen and used as a complete programming language. Umple plus Java can therefore be seen as an extension of Java. Alternatively, if imperative code and Umple-specific concepts are left out, Umple can be seen as a way of expressing a large subset of UML in a purely textual manner. Code in one of the supported programming languages can be added in the same manner as UML envisions adding action language code. == License == Umple is licensed under an MIT-style license. == Examples == Here is the classic Hello world program written in Umple (extending Java): This example looks just like Java, because Umple extends other programming languages. With the program saved in a file named HelloWorld.ump, it can be compiled from the command line: $ java -jar umple.jar HelloWorld.ump To run it: $ java HelloWorld The following is a fully executable example showing embedded Java methods and declaration of an association. The following example describes a state machine called status, with states Open, Closing, Closed, Opening and HalfOpen, and with various events that cause transitions from one state to another. class GarageDoor { status { Open { buttonOrObstacle -> Closing; } Closing { buttonOrObstacle -> Opening; reachBottom -> Closed; } Closed { buttonOrObstacle -> Opening; } Opening { buttonOrObstacle -> HalfOpen; reachTop -> Open; } HalfOpen { buttonOrObstacle -> Opening; } } } == Umple use in practice == The first version of the Umple compiler was written in Java, Antlr and Jet (Java Emitter Templates), but in a bootstrapping process, the Java code was converted to Umple following a technique called Umplification. The Antlr and Jet were also later converted to native Umple. Umple is therefore now written entirely in itself, in other words it is self-hosted and serves as its own largest test case. Umple and UmpleOnline have been used in the classroom by several instructors to teach UML and modelling. In one study it was found to help speed up the process of teaching UML, and was also found to improve the grades of students. == Tools == Umple is available as a Jar file so it can be run from the command line, and as an Eclipse plugin. There is also an online tool for Umple called UmpleOnline , which allows a developer to create an Umple system by drawing a UML class diagram, editing Umple code or both. Umple models created with UmpleOnline are stored in the cloud. Currently UmpleOnline only supports Umple programs consisting of a single input file. In addition to code, Umple's tools can generate a variety of other types of output, including user interfaces based on the Umple model.

    Read more →
  • ZygoteBody

    ZygoteBody

    ZygoteBody, formerly Google Body, is a web application by Zygote Media Group that renders manipulable 3D anatomical models of the human body. Several layers, from muscle tissues down to blood vessels, can be removed or made transparent to allow better study of individual body parts. Most of the body parts are labelled and are searchable. == Technology == The human models are based on data from the Zygote Media Group. The website uses JavaScript and WebGL technology to display 3D images inside the web browser without requiring the installation of external browser plug-ins. == History == ZygoteBody was launched as Google Body on December 15, 2010. On April Fools' Day 2011, users were greeted with the anatomy of a cow on the home page. The cow model is still available as part of the open-3d-viewer open source project. As part of the wind down on Google Labs, it was announced that Google Body will be shut down but will continue to be maintained by Zygote as ZygoteBody. On October 13, 2011, the Google Body site was shut down. Then, on January 9, 2012, ZygoteBody was launched and core code base (with the Google Cow model as a demo) was made available as an open source project called open-3d-viewer.

    Read more →
  • Color balance

    Color balance

    In photography and image processing, color balance is the global adjustment of the intensities of the colors (typically red, green, and blue primary colors). An important goal of this adjustment is to render specific colors – particularly neutral colors like white or grey – correctly. Hence, the general method is sometimes called gray balance, neutral balance, or white balance. Color balance changes the overall mixture of colors in an image and is used for color correction. Generalized versions of color balance are used to correct colors other than neutrals or to deliberately change them for effect. White balance is one of the most common kinds of balancing, and is when colors are adjusted to make a white object (such as a piece of paper or a wall) appear white and not a shade of any other colour. Image data acquired by sensors – either film or electronic image sensors – must be transformed from the acquired values to new values that are appropriate for color reproduction or display. Several aspects of the acquisition and display process make such color correction essential – including that the acquisition sensors do not match the sensors in the human eye, that the properties of the display medium must be accounted for, and that the ambient viewing conditions of the acquisition differ from the display viewing conditions. The color balance operations in popular image editing applications usually operate directly on the red, green, and blue channel pixel values, without respect to any color sensing or reproduction model. In film photography, color balance is typically achieved by using color correction filters over the lights or on the camera lens. == Generalized color balance == Sometimes the adjustment to keep neutrals neutral is called white balance, and the phrase color balance refers to the adjustment that in addition makes other colors in a displayed image appear to have the same general appearance as the colors in an original scene. It is particularly important that neutral (gray, neutral, white) colors in a scene appear neutral in the reproduction. === Psychological color balance === Humans relate to flesh tones more critically than other colors. Trees, grass and sky can all be off without concern, but if human flesh tones are 'off' then the human subject can look sick or dead. To address this critical color balance issue, the tri-color primaries themselves are formulated to not balance as a true neutral color. The purpose of this color primary imbalance is to more faithfully reproduce the flesh tones through the entire brightness range. == Illuminant estimation and adaptation == Most digital cameras have means to select color correction based on the type of scene lighting, using either manual lighting selection, automatic white balance, or custom white balance. The algorithms for these processes perform generalized chromatic adaptation. Many methods exist for color balancing. Setting a button on a camera is a way for the user to indicate to the processor the nature of the scene lighting. Another option on some cameras is a button which one may press when the camera is pointed at a gray card or other neutral colored object. This captures an image of the ambient light, which enables a digital camera to set the correct color balance for that light. There is a large literature on how one might estimate the ambient lighting from the camera data and then use this information to transform the image data. A variety of algorithms have been proposed, and the quality of these has been debated. A few examples and examination of the references therein will lead the reader to many others. Examples are Retinex, an artificial neural network or a Bayesian method. == Chromatic colors == Color balancing an image affects not only the neutrals, but other colors as well. An image that is not color balanced is said to have a color cast, as everything in the image appears to have been shifted towards one color. Color balancing may be thought in terms of removing this color cast. Color balance is also related to color constancy. Algorithms and techniques used to attain color constancy are frequently used for color balancing, as well. Color constancy is, in turn, related to chromatic adaptation. Conceptually, color balancing consists of two steps: first, determining the illuminant under which an image was captured; and second, scaling the components (e.g., R, G, and B) of the image or otherwise transforming the components so they conform to the viewing illuminant. Viggiano found that white balancing in the camera's native RGB color model tended to produce less color inconstancy (i.e., less distortion of the colors) than in monitor RGB for over 4000 hypothetical sets of camera sensitivities. This difference typically amounted to a factor of more than two in favor of camera RGB. This means that it is advantageous to get color balance right at the time an image is captured, rather than edit later on a monitor. If one must color balance later, balancing the raw image data will tend to produce less distortion of chromatic colors than balancing in monitor RGB. == Mathematics of color balance == Color balancing is sometimes performed on a three-component image (e.g., RGB) using a 3x3 matrix. This type of transformation is appropriate if the image was captured using the wrong white balance setting on a digital camera, or through a color filter. Changing the color balance of an image can improve classifier results on a trained ML model. === Scaling monitor R, G, and B === In principle, one wants to scale all relative luminances in an image so that objects which are believed to be neutral appear so. If, say, a surface with R = 240 {\displaystyle R=240} was believed to be a white object, and if 255 is the count which corresponds to white, one could multiply all red values by 255/240. Doing analogously for green and blue would result, at least in theory, in a color balanced image. In this type of transformation the 3x3 matrix is a diagonal matrix. [ R G B ] = [ 255 / R w ′ 0 0 0 255 / G w ′ 0 0 0 255 / B w ′ ] [ R ′ G ′ B ′ ] {\displaystyle \left[{\begin{array}{c}R\\G\\B\end{array}}\right]=\left[{\begin{array}{ccc}255/R'_{w}&0&0\\0&255/G'_{w}&0\\0&0&255/B'_{w}\end{array}}\right]\left[{\begin{array}{c}R'\\G'\\B'\end{array}}\right]} where R {\displaystyle R} , G {\displaystyle G} , and B {\displaystyle B} are the color balanced red, green, and blue components of a pixel in the image; R ′ {\displaystyle R'} , G ′ {\displaystyle G'} , and B ′ {\displaystyle B'} are the red, green, and blue components of the image before color balancing, and R w ′ {\displaystyle R'_{w}} , G w ′ {\displaystyle G'_{w}} , and B w ′ {\displaystyle B'_{w}} are the red, green, and blue components of a pixel which is believed to be a white surface in the image before color balancing. This is a simple scaling of the red, green, and blue channels, and is why color balance tools in Photoshop have a white eyedropper tool. It has been demonstrated that performing the white balancing in the phosphor set assumed by sRGB tends to produce large errors in chromatic colors, even though it can render the neutral surfaces perfectly neutral. === Scaling X, Y, Z === If the image may be transformed into CIE XYZ tristimulus values, the color balancing may be performed there. This has been termed a "wrong von Kries" transformation. Although it has been demonstrated to offer usually poorer results than balancing in monitor RGB, it is mentioned here as a bridge to other things. Mathematically, one computes: [ X Y Z ] = [ X w / X w ′ 0 0 0 Y w / Y w ′ 0 0 0 Z w / Z w ′ ] [ X ′ Y ′ Z ′ ] {\displaystyle \left[{\begin{array}{c}X\\Y\\Z\end{array}}\right]=\left[{\begin{array}{ccc}X_{w}/X'_{w}&0&0\\0&Y_{w}/Y'_{w}&0\\0&0&Z_{w}/Z'_{w}\end{array}}\right]\left[{\begin{array}{c}X'\\Y'\\Z'\end{array}}\right]} where X {\displaystyle X} , Y {\displaystyle Y} , and Z {\displaystyle Z} are the color-balanced tristimulus values; X w {\displaystyle X_{w}} , Y w {\displaystyle Y_{w}} , and Z w {\displaystyle Z_{w}} are the tristimulus values of the viewing illuminant (the white point to which the image is being transformed to conform to); X w ′ {\displaystyle X'_{w}} , Y w ′ {\displaystyle Y'_{w}} , and Z w ′ {\displaystyle Z'_{w}} are the tristimulus values of an object believed to be white in the un-color-balanced image, and X ′ {\displaystyle X'} , Y ′ {\displaystyle Y'} , and Z ′ {\displaystyle Z'} are the tristimulus values of a pixel in the un-color-balanced image. If the tristimulus values of the monitor primaries are in a matrix P {\displaystyle \mathbf {P} } so that: [ X Y Z ] = P [ L R L G L B ] {\displaystyle \left[{\begin{array}{c}X\\Y\\Z\end{array}}\right]=\mathbf {P} \left[{\begin{array}{c}L_{R}\\L_{G}\\L_{B}\end{array}}\right]} where L R {\displaystyle L_{R}} , L G {\displaystyle L_{G}} , and L B {\displaystyle L_{B}} are the un-gamma corrected monitor RGB, one may use: [ L R L G L B ] = P − 1 [ X w / X w ′ 0 0

    Read more →
  • List of ARM Cortex-M development tools

    List of ARM Cortex-M development tools

    This is a list of development tools for 32-bit ARM Cortex-M-based microcontrollers, which consists of Cortex-M0, Cortex-M0+, Cortex-M1, Cortex-M3, Cortex-M4, Cortex-M7, Cortex-M23, Cortex-M33, Cortex-M35P, Cortex-M52, Cortex-M55, and Cortex-M85 cores. == Development toolchains == IDE, compiler, linker, debugger, flashing (in alphabetical order): Ac6 System Workbench for STM32 (based on Eclipse and the GNU GCC toolchain with direct support for all ST-provided evaluation boards, Eval, Discovery and Nucleo, debug with ST-LINK) ARM Development Studio 5 by ARM Ltd. Atmel Studio by Atmel (based on Visual Studio and GNU GCC Toolchain) Code Composer Studio by Texas Instruments CoIDE by CooCox (note - website dead since 2018) Crossware Development Suite for ARM by Crossware CrossWorks for ARM by Rowley Dave by Infineon. For XMC processors only. Includes project wizard, detailed register decoding and a code library still under development. DRT by SOMNIUM Technologies. Based on GCC toolchain and proprietary linker technology. Available as a plugin for Atmel Studio and an Eclipse-based IDE. EmBitz (formerly Em::Blocks) – free, fast (non-eclipse) IDE for ST-LINK (live data updates), OpenOCD, including GNU Tools for ARM and project wizards for ST, Atmel, EnergyMicro etc. Embeetle IDE - free, fast (non-eclipse) IDE. Works both on Linux and Windows. emIDE by emide – free Visual Studio Style IDE including GNU Tools for ARM GNU ARM Eclipse – A family of Eclipse CDT extensions and tools for GNU ARM development GNU Tools (aka GCC) for ARM Embedded Processors by ARM Ltd – free GCC for bare metal IAR Embedded Workbench for ARM by IAR Systems ICC by ImageCraft Keil MDK-ARM by Keil LPCXpresso by NXP (formerly Red Suite by Code Red Technologies) MikroC by mikroe – mikroC MULTI by Green Hills Software, for all Arm 7, 9, Cortex-M, Cortex-R, Cortex-A Ride and RKit for ARM by Raisonance SEGGER Embedded Studio for ARM by Segger. SEGGER Ozone by Segger. STM32CubeIDE by STMicroelectronics - Combines STCubeMX with TrueSTUDIO into a single Eclipse style package Sourcery CodeBench by Mentor Graphics TASKING VX-Toolset by Altium TrueSTUDIO by Atollic Visual Studio by Microsoft as IDE, with GNU Tools as compiler/linker – e.g. supported by VisualGDB VXM Design's Buildroot toolchain for Cortex. It integrates GNU toolchain, Nuttx, filesystem and debugger/flasher in one build. winIDEA/winIDEAOpen by iSYSTEM YAGARTO – free GCC (no longer supported) Code::Blocks (EPS edition) (debug with ST-LINK no GDB and no OpenOCD required) IDE for Arduino ARM boards Arduino – IDE for Atmel SAM3X (Arduino Due) Energia – Arduino IDE for Texas Instruments Tiva and CC3200 Notes: == Debugging tools == JTAG and/or SWD debug interface host adapters (in alphabetical order): Black Magic Probe by 1BitSquared. CMSIS-DAP by Mbed. Crossconnect by Rowley Associates. DSTREAM by ARM Holdings Green Hills Probe and SuperTrace Probe by Green Hills Software. iTAG by iSYSTEM. I-jet by IAR Systems. Jaguar by Crossware. J-Link by Segger Supports JTAG and SWD. Supports ARM7, ARM9, ARM11, Cortex-A, Cortex-M, Cortex-R, Renesas RX, Microchip PIC32. Eclipse plug-in available. Supports GDB, RDI, Ozone debuggers. J-Trace by Segger. Supports JTAG, SWD, and ETM trace on Cortex-M. JTAGjet by Signum. LPC-LINK by Embedded Artists (for NXP) This is only embedded on NXP LPCXpresso development boards. LPC-LINK 2 by NXP. This device can be reconfigured to support 3 different protocols: J-LINK by Segger, CMSIS-DAP by ARM, Redlink by Code Red. Multilink debug probes, Cyclone in-system programming/debugging interfaces, and a GDB Server plug-in for Eclipse-based ARM IDEs by PEmicro. OpenOCD open source GDB server supports a variety of JTAG probes OpenOCD Eclipse plug-in available in GNU ARM Eclipse Plug-ins. AK-OPENJTAG by Artekit (Open JTAG-compatible). AK-LINK by Artekit. PEEDI by RONETIX Debug Probe by Raspberry Pi. RLink by Raisonance. ST-LINK/V2 by STMicroelectronics The ST-LINK/V2 debugger embedded on STM32 Nucleo and Discovery development boards can be converted to SEGGER J-LINK protocol. TRACE32 Debugger and ETM/ITM Trace by Lauterbach. ULINK by Keil. Debugging tools and/or debugging plug-ins (in alphabetical order): Memfault Error Analysis for post mortem debugging Percepio Tracealyzer, RTOS trace visualizer (with Eclipse plugin). Segger SystemView, RTOS trace visualizer. == Real-time operating systems == Commonly referred to as RTOS: == C/C++ software libraries == The following are free C/C++ libraries: ARM Cortex libraries: Cortex Microcontroller Software Interface Standard (CMSIS) libopencm3 (formerly called libopenstm32) libmaple for STM32F1 chips LPCOpen for NXP LPC chips Alternate C standard libraries: Bionic libc, dietlibc, EGLIBC, glibc, klibc, musl, Newlib, uClibc FAT file system libraries: EFSL, FatFs, Petit FatFs Fixed-point math libraries: libfixmath, fixedptc, FPMLib Encryption libraries: Comparison of TLS implementations wolfSSL == Non-C/C++ computer languages and software libraries ==

    Read more →
  • Bandhan Tod

    Bandhan Tod

    Bandhan Tod is a mobile app to stop child marriage in India's Bihar state through SOS button in the app. When the SOS on Bandhan Tod is activated, the nearest small NGO will attempt to resolve the issue. If the family resists, then the police gets notified. Till now so many child marriages has been cancelled through Bandhan Tod interventions. Bandhan Tod is an initiative of Gender Alliance managed by Prashanti Tiwari to support the state government's efforts to end child marriage and dowry.

    Read more →
  • Mobile simulator

    Mobile simulator

    A mobile simulator is a software application for a personal computer which creates a virtual machine version of a mobile device, such as a mobile phone, iPhone, other smartphone, or calculator, on the computer. This may sometimes also be termed an emulator. The mobile simulator allows the user to use features and run applications on the virtual mobile on their computer as though it was the actual mobile device. A mobile simulator lets you test a website and determine how well it performs on various types of mobile devices. A good simulator tests mobile content quickly on multiple browsers and emulates several device profiles simultaneously. This allows analysis of mobile content in real-time, locate errors in code, view rendering in an environment that simulates the mobile browser, and optimize the site for performance. Mobile simulators may be developed using programming languages such as Java, .NET and JavaScript.

    Read more →
  • CloudSim

    CloudSim

    CloudSim is a framework for modeling and simulation of cloud computing infrastructures and services. Originally built primarily at the Cloud Computing and Distributed Systems (CLOUDS) Laboratory, the University of Melbourne, Australia, CloudSim has become one of the most popular open source cloud simulators in the research and academia. CloudSim is completely written in Java. The latest version of CloudSim is CloudSim v6.0.0-beta on GitHub. Cloudsim is suitable for implementing simulations scenarios based on Infrastructure as a service as well as with latest version Platform as a service, so get started here == CloudSim extensions == Initially developed as a stand-alone cloud simulator, CloudSim has further been extended by independent researchers. GPUCloudSim is an enhanced CloudSim tool for modeling GPU-based cloud infrastructures and data centers. It offers simulations for multi-GPU setups, customizable GPU policies, GPU remoting, etc. It also examines performance impacts and interactions within virtualized GPU environments. CloudSim Plus is a totally re-engineered CloudSim fork providing general-purpose cloud computing simulation and exclusive features such as: multi-cloud simulations, vertical and horizontal VM scaling, host fault injection and recovery, joint power- and network-aware simulations and more. Though CloudSim itself does not have a graphical user interface, extensions such as CloudReports offer a GUI for CloudSim simulations. CloudSimEx extends CloudSim by adding MapReduce simulation capabilities and parallel simulations. Cloud2Sim extends CloudSim to execute on multiple distributed servers, by leveraging Hazelcast distributed execution framework. RECAP DES extends the CloudSim Plus framework to model synchronous hierarchical architectures (such as ElasticSearch). ThermoSim extends CloudSim toolkit by incorporating thermal characteristics, and uses Deep learning-based temperature predictor for cloud nodes.

    Read more →
  • List of Go software and tools

    List of Go software and tools

    This is a list of Go software and tools, including compilers, development environments, build tools, testing frameworks, web frameworks, database tools, and related software for the Go programming language. == Core toolchain == Go — programming language and toolchain go command — build and package tool gofmt — source code formatter go vet — static analysis tool == Compilers and runtimes == gc — default Go compiler gccgo — GCC front end for Go GopherJS — Go-to-JavaScript compiler gollvm — Go compiler using the LLVM backend llgo — experimental Go frontend for LLVM TinyGo — compiler for embedded systems and WebAssembly Yaegi — Go interpreter == Development environments and editors == Emacs — text editor with Go support GoLand — JetBrains integrated development environment LiteIDE — Go-focused integrated development environment Neovim — text editor with Go support TextMate — text editor with Go support Vim — text editor with Go support Visual Studio Code — editor with Go support == Language servers and editor tools == delve — debugger gopls — Go language server golangci-lint — lint runner revive — linter staticcheck — static analysis tool == Build, dependency and release tools == Air — live reload development tool dep — deprecated dependency manager Go modules — dependency management system Goreleaser — release automation tool Mage — build tool Task — task runner == Testing and benchmarking == benchstat — benchmark comparison tool Ginkgo — testing framework GoMock — mock generation tool testify — testing toolkit testing — standard testing package == Web frameworks and HTTP tools == Beego — web framework Caddy — web server Chi — router Echo — web framework Fiber — web framework Gin — web framework Gorilla Mux — router Hugo — static site generator Revel — web framework Traefik — reverse proxy and load balancer == RPC and API tools == Goa — API design framework gRPC — remote procedure call framework grpc-gateway — REST gateway oapi-codegen — OpenAPI code generator Swag — OpenAPI documentation tool == Database and ORM tools == Bun — SQL toolkit and ORM CockroachDB client libraries — database drivers and tools ent — entity framework GORM — object–relational mapper sqlx — SQL toolkit == Command-line and terminal tools == Bubble Tea — terminal user interface framework Cobra — command-line framework pflag — flag parsing library urfave/cli — command-line framework Viper — configuration library == GUI toolkits and application frameworks == Fyne — cross-platform graphical user interface toolkit == Documentation, generation and analysis == errcheck — unchecked error checker godoc — documentation tool goimports — import management tool mockgen — mock generator pkgsite — package documentation site Prometheus — monitoring and alerting toolkit stringer — code generation tool wire — dependency injection code generator == Package hosting and community services == GoCenter — former Go package repository pkg.go.dev — package documentation and discovery site proxy.golang.org — module proxy == Major applications written in Go == Consul — service networking platform Docker — containerization platform InfluxDB — time-series database written in Go Kubernetes — container orchestration platform Ollama — platform for running and managing large language models locally Terraform — infrastructure as code tool Vault — secrets management tool

    Read more →
  • IBM ALP

    IBM ALP

    IBM Assembly Language Processor (ALP) is an assembler written by IBM for 32-bit OS/2 Warp (OS/2 3.0), which was released in 1994. ALP accepts source programs compatible with Microsoft Macro Assembler (MASM) version 5.1, which was originally used to build many of the device drivers included with OS/2. For OS/2 versions 3 and 4, ALP was distributed, along with other tools and documentation, as part of the Device Driver Kit (DDK). The DDK was withdrawn in 2004 as part of IBM's discontinuance of OS/2.

    Read more →
  • Conservative morphological anti-aliasing

    Conservative morphological anti-aliasing

    Conservative morphological anti-aliasing (CMAA) is an antialiasing technique originally developed by Filip Strugar at Intel. CMAA is an image-based, post processing technique similar to that of morphological antialiasing. CMAA uses 4 main steps which are image analysis for color discontinuities, locally dominant edge detection, simple shape handling, and lastly symmetrical long edge shape handling. A couple of years after CMAA was introduced, Intel unveiled an updated version which they named CMAA2.

    Read more →
  • Drush

    Drush

    Drush (DRUpal SHell) is a computer software shell-based application used to control, manipulate, and administer Drupal websites. == Details == Drush was originally developed by Arto Bendiken for Drupal 4.7. In May 2007, it was partly rewritten and redesigned for Drupal 5 by Franz Heinzmann. Drush is maintained by Moshe Weitzman with the support of Owen Barton, greg.1.anderson, jonhattan, Mark Sonnabaum, Jonathan Hedstrom and Christopher Gervais.

    Read more →