UNA (software)

UNA (software)

Infobox Software
name = UNA



caption = An UNA Coding session
developer = [http://www.n-brain.net N-BRAIN, Inc.]
latest_release_version = 1.0
latest_release_date = March 6, 2008
operating_system = Windows Mac OS X Linux BSD Solaris
genre = Real-time collaborative development environment, Text editor, Source code editor
license = Proprietary
website = http://www.n-brain.net

UNA is a real-time collaborative development environment developed by N-BRAIN, Inc and targeted at software engineers. UNA combines a real-time collaborative editor, collaborative whiteboard, chat system, collaborative note taking, and standard features of source code editors. [ [http://www.n-brain.net N-BRAIN, Inc. Website] ]

History

Several applications exist that provide support for real-time collaborative text editing. However, most of these applications are plain text editors, and do not support syntax highlighting, compiling, auto-complete, and the other standard features of source code editors. Moreover, all of these editors make solo editing the default mode of operation: if a user wants to collaborate on a document, the user must share it with one more more target users.

UNA was designed as a real-time collaborative development environment. [http://www.n-brain.net/about.htm History of UNA] ] Consequently, UNA supports all the standard features of programmer editors, including syntax highlighting, regular expression search and replace, file templates, source snippets, auto-complete, integration of external tools, object hierarchy views, and file structure views. [Comparison of text editors] [ [http://www.n-brain.net/features.htm The features of UNA.] ]

UNA was designed so that collaboration is the default mode of operation. All users who have opened a particular projectspace see the same set of opened files, the same chat history, the same notes, the same whiteboard, and the same set of users who are currently logged into the projectspace. No action is required to collaborate on files -- users can edit any file freely, and see the changes of other users as they occur.

Overview

Real-Time Collaborative Source Code Editor

The centerpiece of UNA is a real-time collaborative editor. The underlying algorithm used by the editor has the following properties:
*All users can freely edit all parts of a document, without locking.
*No server is used for collaborative merging (although UNA requires a server for other reasons).
*The algorithm is broadcast-based, instead of point-to-point like dOpt and its kin. [ [http://www.cs.uwaterloo.ca/research/tr/1995/08/dopt.pdf A Counterexample to the Distributed Operational Transform and a Corrected Algorithm for Point-to-point Communication] ]

The advantage of a broadcast-based merging algorithm is that it achieves theoretical maximum communication efficiency. Point-to-point algorithms must arrange users into a tree topology, requiring that some clients be fronts for other clients. However, broadcast-based algorithms allow all clients to directly send their edits to all other clients, with no intermediaries. Each client then figures out how to merge the edits of other clients on its own. This minimizes edit latency, which is important when clients are widely distributed.

UNA is the only known example of a real-time collaborative editor that uses a broadcast-based algorithm for server-less, lock-free editing.Fact|date=June 2008

Other Real-Time Collaborative Features

In addition to a real-time collaborative editor, UNA includes the following collaborative features:
* A chat system. It is always possible to chat, and chat messages are visible from everywhere in the program.
* A collaborative whiteboard. The whiteboard supports basic shapes and text.
* Persistent, collaborative notes.
* The ability to share tools and search queries with the whole team, or with specific users.
* The ability to follow other users as they code.
* The ability to enforce collaboration. Optionally, UNA may be configured so that a team member cannot make a change to the source code unless he or she is actively supervised by another team member.

Development Features

yntax Highlighting

UNA features syntax highlighting for more than 20 languages. Users can add support for additional languages by creating XML syntax definition files.

Tool Integration

An important feature of UNA is the Tools interface, which allows the integration of external tools, such as compilers, testing frameworks, and debuggers.

The Tools interface allows users to specify a number of properties for each tool:

*A name, which appears on the Tools menu.
*A description, which is used as a tooltip in the menu and to let other team members know what the tool is for.
*A keystroke, which can be used to activate the tool using the keyboard.
*A file mask, which can be used to restrict activation of the tool to files that match the mask.
*The tool executable.
*The tool working directory.
*The tool input, which represents the standard input for the tool process. This can take on many options, such as User Input, for an interactive tool, the Active File, the selected text, the line the caret is on, and so forth.
*The tool output, which represents the standard output for the tool process. Generally, this is displayed as text, but other options include displaying as HTML, displaying as a tool tip, using it to replace the contents of the active file, etc.
*The tool options, which are passed to the tool as command-line arguments.
*The tool environment variables, which are propagated to the environment that the tool runs in.

There are two kinds of tools: My Tools, and Team Tools. My Tools are accessible only to the developer who created them. Team Tools are accessible to every member of the team (i.e. everyone who is a member of the projectspace). The executable for the tool can be located inside the projectspace itself, in which case it is possible for a user to join a projectspace, and run all the team tools, "without first installing or configuring any software".

earch & Replace

The Search & Replace interface of UNA takes a different approach than most other text editors. Instead of having 3-6 different search dialogs, each tailored for a different purpose, UNA uses a single search & replace interface to perform all kinds of searching and replacing. Because some options will be used more than others, UNA allows users to save searches. Saved searches appear on the Search menu, and can also be activated by keystroke.

The UNA search interface is non-modal, so users can switch from performing search and replace to editing the document or using any other part of UNA.

Searches can be performed in one of three modes: literal, advanced, or regular expression. Advanced mode allows a glob-like syntax, while the regular expression mode uses a Perl-like syntax taken directly from Java's built-in support for regular expressions.

Searches can be limited to the active file, all opened files, or all files in the projectspace. Optionally, a mask may be used to limit searches to files with a certain file extension.

A notable feature of Search & Replace is that file names can be included in the search. When this option is selected, replacing "foo.txt" with "bar.txt" would not only replace content inside files, but would also rename any files called "foo.txt" to "bar.txt".

As with Tools, there are two kinds of saved search queries: My Searches, and Team Searches. My Searches can be seen and used only by the user who created them, while Team Searches can be used by the whole team.

ource Snippets

Source snippets allow a user to create templates for commonly used constructs of code, and activate them with a keystroke. They are analogous to snippets in TextMate and live templates in IntelliJ Idea.

Version Control

UNA has built-in support for version control systems, such as Subversion, Perforce, and CVS. Creating, renaming and deleting files and directories automatically schedules the corresponding operations in the version control system. This feature allows users to interact with the projectspace as an ordinary file system, instead of interacting in the constrained manner that most version control systems require.

Editions of UNA

UNA comes in three editions, all of which may be used for commercial or non-commercial software development.

*UNA Demo Edition. This edition is free of charge, but is limited to a single user, does not support version control, and imposes a maximum project size of 15 MB.
*UNA Personal Edition. Like UNA Demo Edition, UNA Personal Edition is limited to a single user. However, Personal Edition also supports version control and has no limit on project size.
*UNA Collaborative Edition. This edition has all features, no space restrictions, and is limited only by the number of licensed users.

External links

* [http://www.n-brain.net N-BRAIN, Inc. Website]

References


Wikimedia Foundation. 2010.

Игры ⚽ Поможем написать реферат

Look at other dictionaries:

  • Software libre en la administración pública — Saltar a navegación, búsqueda Hay una serie de administraciones públicas que han mostrado su apoyo al software libre, sea ya migrando total o parcialmente sus servidores y sistemas de escritorio, o bien sea subvencionándolo. El Estado requiere un …   Wikipedia Español

  • Software como servicio — (del inglés: Software as a Service, SaaS) es un modelo de distribución de software donde el software y los datos que maneja se alojan en servidores de la compañía de tecnologías de información y comunicación (TIC) y se accede con un navegador web …   Wikipedia Español

  • Software colaborativo — o groupware se refiere al conjunto de programas informáticos que integran el trabajo en un sólo proyecto con muchos usuarios concurrentes que se encuentran en diversas estaciones de trabajo, conectadas a través de una red (internet o intranet).… …   Wikipedia Español

  • Software development kit — Saltar a navegación, búsqueda Un software development kit (SDK) o kit de desarrollo de software es generalmente un conjunto de herramientas de desarrollo que le permite a un programador crear aplicaciones para un sistema concreto, por ejemplo… …   Wikipedia Español

  • Software configuration management — Saltar a navegación, búsqueda Software Configuration Management (SCM) ó en castellano Gestión de configuración de software es una especialización de la Gestión de configuración a todas las actividades en el sector del desarrollo de software. SCM… …   Wikipedia Español

  • Software de manejo de proyectos — Saltar a navegación, búsqueda El software para manejo de proyectos es un término utilizado en la ingeniería de software que encubre varios tipos de software, entre ellos planeación de proyectos, manejo y control de presupuesto, asignación de… …   Wikipedia Español

  • Software inflado — es un término que se emplea, con connotación tanto neutra como peyorativa, para describir la tendencia reciente de los programas informáticos modernos a ser más grandes y usar mayor cantidad de recursos del sistema (espacio de almacenamiento,… …   Wikipedia Español

  • Software libre para una sociedad libre — Autor Richard M. Stallman Género Ensayo Tema(s) Software libre Idioma …   Wikipedia Español

  • Software análisis técnico — son aplicaciones informáticas desarrolladas para facilitar el Análisis Técnico de los gráficos financieros, para realizar simulaciones de inversión a partir de datos históricos, para automatizar procesos de compra / venta de activos financieros …   Wikipedia Español

  • Software in the Public Interest — Acrónimo SPI Tipo Organización sin Ánimo de Lucro Fundación 16 de junio de 1997 (14 años) Fundador( …   Wikipedia Español

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”