Vaadin is an open-sourceweb framework for rich Internet applications. In contrast to JavaScript libraries and browser-plugin based solutions, it features a server-side architecture, which means that the majority of the logic runs on the servers. Ajax technology runs on the browser-side to ensure a rich and interactive user experience. On the client-side Vaadin is built on top of and can be extended with Google Web Toolkit.

Vaadin's default component set can be extended with custom GWT widgets and themed with CSS.

Vaadin is distributed as a collection of JAR files (either as direct downloads, or with Maven or Ivy integration), which can be included in any kind of Java web project developed with standard Java tools. In addition, there exist Vaadin plugins for the Eclipse IDE and NetBeans for easing the development of Vaadin applications as well as direct support of (and distribution through) Maven.

Vaadin applications can be deployed as Java servlets for any Java web server, including Google App Engine. Applications can also be deployed as portlets to any Java portal like eXo Platform.[2] Vaadin also has some deeper integration with the Liferay Portal.

Development was first started as an adapter on top of the Millstone 3 open source Web framework released in year 2002. It introduced an Ajax based client communication and rendering engine. During 2006 this concept was then developed separately as a commercial product. As a consequence for this, a large part of Vaadin's server-sideAPI is still compatible with Millstone's Swing-like APIs.

In early 2007 the product name was changed to IT Mill Toolkit and version 4 was released. It used a proprietary JavaScript Ajax-implementation for the client-side rendering, which made it rather complicated to implement new widgets. By the end of year 2007 the proprietary client-side implementation was abandoned and GWT was integrated on top of the server-side components. At the same time the product license was changed to open source Apache License 2.0. The first production ready release of IT Mill Toolkit 5 was made on March 4, 2009 after an over one year beta period.

On September 11, 2008, it was publicly announced[3][4] that Michael Widenius, the main author of the original version of MySQL, invested in IT Mill, the developer of Vaadin. The size of the investment is undisclosed.

On May 20, 2009, IT Mill Toolkit changed its name to Vaadin Framework. The name originates from the Finnish word for doe, more precisely put, a female reindeer. It can also be translated from Finnish as "I insist". In addition to the name change, a pre-release of version 6 along with a community web-site was launched. Later, IT Mill Ltd, the company behind the open source Vaadin Framework, changed its name to Vaadin Ltd.

On March 30, 2010, Vaadin Directory was opened. Directory added a channel for distributing add-on components to the core Vaadin Framework, both for free or commercially. On launch date there were 95 add-ons already available for download.[citation needed]

On Feb 22, 2017, Vaadin 8 was released.[5] Improvements include a re-written data binding API utilizing modern Java features such as type parameters and lambda expressions, and more efficient memory and CPU usage.

1.
Software developer
–
A software developer is a person concerned with facets of the software development process, including the research, design, programming, and testing of computer software. Other job titles which are used with similar meanings are programmer, software analyst. According to developer Eric Sink, the differences between system design, software development, and programming are more apparent, even more so that developers become systems architects, those who design the multi-leveled architecture or component interactions of a large software system. In a large company, there may be employees whose sole responsibility consists of one of the phases above. In smaller development environments, a few people or even an individual might handle the complete process. The word software was coined as a prank as early as 1953, before this time, computers were programmed either by customers, or the few commercial computer vendors of the time, such as UNIVAC and IBM. The first company founded to provide products and services was Computer Usage Company in 1955. The software industry expanded in the early 1960s, almost immediately after computers were first sold in mass-produced quantities, universities, government, and business customers created a demand for software. Many of these programs were written in-house by full-time staff programmers, some were distributed freely between users of a particular machine for no charge. Others were done on a basis, and other firms such as Computer Sciences Corporation started to grow. The computer/hardware makers started bundling operating systems, systems software and programming environments with their machines, new software was built for microcomputers, so other manufacturers including IBM, followed DECs example quickly, resulting in the IBM AS/400 amongst others. The industry expanded greatly with the rise of the computer in the mid-1970s. In the following years, it created a growing market for games, applications. DOS, Microsofts first operating system product, was the dominant operating system at the time, by 2014 the role of cloud developer had been defined, in this context, one definition of a developer in general was published, Developers make software for the world to use. The job of a developer is to crank out code -- fresh code for new products, code fixes for maintenance, code for business logic, bus factor Software Developer description from the US Department of Labor

2.
Software release life cycle
–
Usage of the alpha/beta test terminology originated at IBM. As long ago as the 1950s, IBM used similar terminology for their hardware development, a test was the verification of a new product before public announcement. B test was the verification before releasing the product to be manufactured, C test was the final test before general availability of the product. Martin Belsky, a manager on some of IBMs earlier software projects claimed to have invented the terminology, IBM dropped the alpha/beta terminology during the 1960s, but by then it had received fairly wide notice. The usage of beta test to refer to testing done by customers was not done in IBM, rather, IBM used the term field test. Pre-alpha refers to all activities performed during the project before formal testing. These activities can include requirements analysis, software design, software development, in typical open source development, there are several types of pre-alpha versions. Milestone versions include specific sets of functions and are released as soon as the functionality is complete, the alpha phase of the release life cycle is the first phase to begin software testing. In this phase, developers generally test the software using white-box techniques, additional validation is then performed using black-box or gray-box techniques, by another testing team. Moving to black-box testing inside the organization is known as alpha release, alpha software can be unstable and could cause crashes or data loss. Alpha software may not contain all of the features that are planned for the final version, in general, external availability of alpha software is uncommon in proprietary software, while open source software often has publicly available alpha versions. The alpha phase usually ends with a freeze, indicating that no more features will be added to the software. At this time, the software is said to be feature complete, Beta, named after the second letter of the Greek alphabet, is the software development phase following alpha. Software in the stage is also known as betaware. Beta phase generally begins when the software is complete but likely to contain a number of known or unknown bugs. Software in the phase will generally have many more bugs in it than completed software, as well as speed/performance issues. The focus of beta testing is reducing impacts to users, often incorporating usability testing, the process of delivering a beta version to the users is called beta release and this is typically the first time that the software is available outside of the organization that developed it. Beta version software is useful for demonstrations and previews within an organization

3.
Repository (version control)
–
In revision control systems, a repository is an on-disk data structure which stores metadata for a set of files and/or directory structure. Some of the metadata that a repository contains includes, among other things, a set of references to commit objects, called heads. The main purpose of a repository is to store a set of files and these differences in methodology have generally led to diverse uses of revision control by different groups, depending on their needs. Software repository Codebase Forge Comparison of source code hosting facilities

4.
Computing platform
–
Computing platform means in general sense, where any piece of software is executed. It may be the hardware or the system, even a web browser or other application. The term computing platform can refer to different abstraction levels, including a hardware architecture, an operating system. In total it can be said to be the stage on which programs can run. For example, an OS may be a platform that abstracts the underlying differences in hardware, platforms may also include, Hardware alone, in the case of small embedded systems. Embedded systems can access hardware directly, without an OS, this is referred to as running on bare metal, a browser in the case of web-based software. The browser itself runs on a platform, but this is not relevant to software running within the browser. An application, such as a spreadsheet or word processor, which hosts software written in a scripting language. This can be extended to writing fully-fledged applications with the Microsoft Office suite as a platform, software frameworks that provide ready-made functionality. Cloud computing and Platform as a Service, the social networking sites Twitter and facebook are also considered development platforms. A virtual machine such as the Java virtual machine, applications are compiled into a format similar to machine code, known as bytecode, which is then executed by the VM. A virtualized version of a system, including virtualized hardware, OS, software. These allow, for instance, a typical Windows program to run on what is physically a Mac, some architectures have multiple layers, with each layer acting as a platform to the one above it. In general, a component only has to be adapted to the layer immediately beneath it, however, the JVM, the layer beneath the application, does have to be built separately for each OS

5.
Java (programming language)
–
Java is a general-purpose computer programming language that is concurrent, class-based, object-oriented, and specifically designed to have as few implementation dependencies as possible. It is intended to let application developers write once, run anywhere, Java applications are typically compiled to bytecode that can run on any Java virtual machine regardless of computer architecture. As of 2016, Java is one of the most popular programming languages in use, particularly for client-server web applications, Java was originally developed by James Gosling at Sun Microsystems and released in 1995 as a core component of Sun Microsystems Java platform. The language derives much of its syntax from C and C++, the original and reference implementation Java compilers, virtual machines, and class libraries were originally released by Sun under proprietary licences. As of May 2007, in compliance with the specifications of the Java Community Process, others have also developed alternative implementations of these Sun technologies, such as the GNU Compiler for Java, GNU Classpath, and IcedTea-Web. James Gosling, Mike Sheridan, and Patrick Naughton initiated the Java language project in June 1991, Java was originally designed for interactive television, but it was too advanced for the digital cable television industry at the time. The language was initially called Oak after an oak tree that stood outside Goslings office, later the project went by the name Green and was finally renamed Java, from Java coffee. Gosling designed Java with a C/C++-style syntax that system and application programmers would find familiar, Sun Microsystems released the first public implementation as Java 1.0 in 1995. It promised Write Once, Run Anywhere, providing no-cost run-times on popular platforms, fairly secure and featuring configurable security, it allowed network- and file-access restrictions. Major web browsers soon incorporated the ability to run Java applets within web pages, and Java quickly became popular, while mostly outside of browsers, in January 2016, Oracle announced that Java runtime environments based on JDK9 will discontinue the browser plugin. The Java 1.0 compiler was re-written in Java by Arthur van Hoff to comply strictly with the Java 1.0 language specification, with the advent of Java 2, new versions had multiple configurations built for different types of platforms. J2EE included technologies and APIs for enterprise applications typically run in server environments, the desktop version was renamed J2SE. In 2006, for marketing purposes, Sun renamed new J2 versions as Java EE, Java ME, in 1997, Sun Microsystems approached the ISO/IEC JTC1 standards body and later the Ecma International to formalize Java, but it soon withdrew from the process. Java remains a de facto standard, controlled through the Java Community Process, at one time, Sun made most of its Java implementations available without charge, despite their proprietary software status. Sun generated revenue from Java through the selling of licenses for specialized products such as the Java Enterprise System, on November 13,2006, Sun released much of its Java virtual machine as free and open-source software, under the terms of the GNU General Public License. Suns vice-president Rich Green said that Suns ideal role with regard to Java was as an evangelist and this did not prevent Oracle from filing a lawsuit against Google shortly after that for using Java inside the Android SDK. Java software runs on everything from laptops to data centers, game consoles to scientific supercomputers, on April 2,2010, James Gosling resigned from Oracle. There were five primary goals in the creation of the Java language, It must be simple, object-oriented and it must be robust and secure

6.
Software license
–
A software license is a legal instrument governing the use or redistribution of software. Under United States copyright law all software is copyright protected, in code as also object code form. The only exception is software in the public domain, most distributed software can be categorized according to its license type. Two common categories for software under copyright law, and therefore with licenses which grant the licensee specific rights, are proprietary software and free, unlicensed software outside the copyright protection is either public domain software or software which is non-distributed, non-licensed and handled as internal business trade secret. Contrary to popular belief, distributed unlicensed software is copyright protected. Examples for this are unauthorized software leaks or software projects which are placed on public software repositories like GitHub without specified license. As voluntarily handing software into the domain is problematic in some international law domains, there are also licenses granting PD-like rights. Therefore, the owner of a copy of software is legally entitled to use that copy of software. Hence, if the end-user of software is the owner of the respective copy, as many proprietary licenses only enumerate the rights that the user already has under 17 U. S. C. §117, and yet proclaim to take away from the user. Proprietary software licenses often proclaim to give software publishers more control over the way their software is used by keeping ownership of each copy of software with the software publisher. The form of the relationship if it is a lease or a purchase, for example UMG v. Augusto or Vernor v. Autodesk. The ownership of goods, like software applications and video games, is challenged by licensed. The Swiss based company UsedSoft innovated the resale of business software and this feature of proprietary software licenses means that certain rights regarding the software are reserved by the software publisher. Therefore, it is typical of EULAs to include terms which define the uses of the software, the most significant effect of this form of licensing is that, if ownership of the software remains with the software publisher, then the end-user must accept the software license. In other words, without acceptance of the license, the end-user may not use the software at all, one example of such a proprietary software license is the license for Microsoft Windows. The most common licensing models are per single user or per user in the appropriate volume discount level, Licensing per concurrent/floating user also occurs, where all users in a network have access to the program, but only a specific number at the same time. Another license model is licensing per dongle which allows the owner of the dongle to use the program on any computer, Licensing per server, CPU or points, regardless the number of users, is common practice as well as site or company licenses

7.
Apache License
–
The Apache License, Version 2.0 is a permissive free software license written by the Apache Software Foundation. The Apache License requires preservation of the notice and disclaimer. This makes ALv2 a FRAND-RF license, the ASF and its projects release the software they produce under the Apache License and many non-ASF projects are also using the ALv2. A free software license is a notice that grants the recipient extensive rights to modify, Software using such a license is free software as conferred by the copyright holder. Free software licenses are applied to software in source code as also object code form. The ASF adopted the Apache License 2.0 in January 2004, the Apache License is permissive in that it does not require a derivative work of the software, or modifications to the original, to be distributed using the same license. Modifications may have appropriate copyright notices, and may provide different license terms for the modifications, in October 2012,8,708 projects located at SourceForge. net were available under the terms of the Apache License. In a blog post from May 2008, Google mentioned that over 25% of the nearly 100,000 projects then hosted on Google Code were using the Apache License, including the Android operating system. As of 2015, according to Black Duck Software and GitHub, free software license Comparison of free and open-source software licenses Software using the Apache license Apache Licenses Quick Summary of the Apache License 2.0

8.
Open-source
–
Open-source software may be developed in a collaborative public manner. According to scientists who studied it, open-source software is a prominent example of open collaboration, a 2008 report by the Standish Group states that adoption of open-source software models has resulted in savings of about $60 billion per year to consumers. In the early days of computing, programmers and developers shared software in order to learn from each other, eventually the open source notion moved to the way side of commercialization of software in the years 1970-1980. In 1997, Eric Raymond published The Cathedral and the Bazaar and this source code subsequently became the basis behind SeaMonkey, Mozilla Firefox, Thunderbird and KompoZer. Netscapes act prompted Raymond and others to look into how to bring the Free Software Foundations free software ideas, the new term they chose was open source, which was soon adopted by Bruce Perens, publisher Tim OReilly, Linus Torvalds, and others. The Open Source Initiative was founded in February 1998 to encourage use of the new term, a Microsoft executive publicly stated in 2001 that open source is an intellectual property destroyer. I cant imagine something that could be worse than this for the software business, IBM, Oracle, Google and State Farm are just a few of the companies with a serious public stake in todays competitive open-source market. There has been a significant shift in the corporate philosophy concerning the development of FOSS, the free software movement was launched in 1983. In 1998, a group of individuals advocated that the free software should be replaced by open-source software as an expression which is less ambiguous. Software developers may want to publish their software with an open-source license, the Open Source Definition, notably, presents an open-source philosophy, and further defines the terms of usage, modification and redistribution of open-source software. Software licenses grant rights to users which would otherwise be reserved by law to the copyright holder. Several open-source software licenses have qualified within the boundaries of the Open Source Definition, the open source label came out of a strategy session held on April 7,1998 in Palo Alto in reaction to Netscapes January 1998 announcement of a source code release for Navigator. They used the opportunity before the release of Navigators source code to clarify a potential confusion caused by the ambiguity of the free in English. Many people claimed that the birth of the Internet, since 1969, started the open source movement, the Free Software Foundation, started in 1985, intended the word free to mean freedom to distribute and not freedom from cost. Since a great deal of free software already was free of charge, such software became associated with zero cost. The Open Source Initiative was formed in February 1998 by Eric Raymond and they sought to bring a higher profile to the practical benefits of freely available source code, and they wanted to bring major software businesses and other high-tech industries into open source. Perens attempted to open source as a service mark for the OSI. The Open Source Initiatives definition is recognized by governments internationally as the standard or de facto definition, OSI uses The Open Source Definition to determine whether it considers a software license open source

9.
JavaScript
–
JavaScript is a high-level, dynamic, untyped, and interpreted programming language. It has been standardized in the ECMAScript language specification, JavaScript is prototype-based with first-class functions, making it a multi-paradigm language, supporting object-oriented, imperative, and functional programming styles. JavaScript was influenced by programming languages such as Self and Scheme, JavaScript is also used in environments that are not Web-based, such as PDF documents, site-specific browsers, and desktop widgets. Newer and faster JavaScript virtual machines and platforms built upon them have increased the popularity of JavaScript for server-side Web applications. On the client side, developers have traditionally implemented JavaScript as an interpreted language, programmers also use JavaScript in video-game development, in crafting desktop and mobile applications, and in server-side network programming with run-time environments such as Node. js. In 1994, a company called Mosaic Communications was founded in Mountain View, California, however, it intentionally shared no code with NCSA Mosaic. The internal codename for the browser was Mozilla, which stood for Mosaic killer. The first version of the Web browser, Mosaic Netscape 0.9, was released in late 1994, within four months it had already taken three-quarters of the browser market and became the main browser for Internet in the 1990s. To avoid trademark problems with the NCSA, the browser was subsequently renamed Netscape Navigator in the same year. Netscape Communications realized that the Web needed to more dynamic. In 1995, the company recruited Brendan Eich with the goal of embedding the Scheme programming language into its Netscape Navigator, to defend the idea of JavaScript against competing proposals, the company needed a prototype. Eich wrote one in 10 days, in May 1995, there is a common misconception that JavaScript was influenced by an earlier Web page scripting language developed by Nombas named C--. Brendan Eich, however, had never heard of C-- before he created LiveScript, Nombas did pitch their embedded Web page scripting to Netscape, though Web page scripting was not a new concept, as shown by the ViolaWWW Web browser. Nombas later switched to offering JavaScript instead of C-- in their ScriptEase product and was part of the TC39 group that standardized ECMAScript, in December 1995, soon after releasing JavaScript for browsers, Netscape introduced an implementation of the language for server-side scripting with Netscape Enterprise Server. Since the mid-2000s, additional server-side JavaScript implementations have been introduced, Microsoft script technologies including VBScript and JScript were released in 1996. JScript, an implementation of Netscapes JavaScript, was part of Internet Explorer 3. JScript was also available for server-side scripting in Internet Information Server, JavaScript began to acquire a reputation for being one of the roadblocks to a cross-platform and standards-driven Web. Some developers took on the task of trying to make their sites work in both major browsers, but many could not afford the time

10.
Google Web Toolkit
–
Google Web Toolkit, or GWT Web Toolkit, is an open source set of tools that allows web developers to create and maintain complex JavaScript front-end applications in Java. Other than a few libraries, everything is Java source that can be built on any supported platform with the included GWT Ant build files. It is licensed under the Apache License version 2.0, GWT version 1.0 RC1 was released on May 16,2006. Google announced GWT at the JavaOne conference,2006, in August 2010, Google acquired Instantiations, a company known for its focus on Eclipse Java developer tools, including GWT Designer, which is now bundled with Google Plugin for Eclipse. Theyve also admitted however that a number of engineers working on GWT are now working on Dart. In 2012 at their annual I/O conference, Google announced that GWT would be transformed from a Google project to an open sourced project. In July 2013, Google posted on its GWT blog that the transformation to an open source project was complete, using GWT, developers can develop and debug Ajax applications in the Java language using the Java development tools of their choice. When the application is deployed, the GWT cross-compiler translates the Java application to standalone JavaScript files that are optionally obfuscated, when needed, JavaScript can also be embedded directly into Java code, using Java comments. GWT does not revolve only around user interface programming, it is a set of tools for building any sort of high-performance client-side JavaScript functionality. Indeed, many key decisions are left completely to the developer. The GWT mission statement clarifies the philosophical breakdown of GWTs role versus the developers role, history is an example of such, although GWT manages history tokens as users click Back or Forward in the browser, it does not prescribe how to map history tokens to an application state. GWT applications can be run in two modes, Development mode, The application is run as Java bytecode within the Java Virtual Machine and this mode is typically used for development, supporting hot swapping of code and debugging. In 2014, the implementation of Dev Mode was rendered unusable by browser updates until its replacement with the more compatible Super Dev Mode. Production mode, The application is run as pure JavaScript and HTML and this mode is typically used for deployment. Several open-source plugins are available for making GWT development easier with other IDEs, including GWT4NB for NetBeans, Cypal Studio for GWT, the major GWT components include, GWT Java-to-JavaScript Compiler Translates the Java programming language to the JavaScript programming language. GWT Development Mode Allows the developers to run and execute GWT applications in development mode, prior to 2.0, GWT hosted mode provided a special-purpose hosted browser to debug your GWT code. In 2.0, the web page being debugged is viewed within a regular browser, Development mode is supported through the use of a native-code plugin called the Google Web Toolkit Developer Plugin for many popular browsers. JRE emulation library JavaScript implementations of the commonly used classes in the Java standard class library, GWT Web UI class library A set of custom interfaces and classes for creating widgets

11.
Programming language
–
A programming language is a formal computer language designed to communicate instructions to a machine, particularly a computer. Programming languages can be used to programs to control the behavior of a machine or to express algorithms. From the early 1800s, programs were used to direct the behavior of such as Jacquard looms. Thousands of different programming languages have created, mainly in the computer field. Many programming languages require computation to be specified in an imperative form while other languages use forms of program specification such as the declarative form. The description of a language is usually split into the two components of syntax and semantics. Some languages are defined by a document while other languages have a dominant implementation that is treated as a reference. Some languages have both, with the language defined by a standard and extensions taken from the dominant implementation being common. A programming language is a notation for writing programs, which are specifications of a computation or algorithm, some, but not all, authors restrict the term programming language to those languages that can express all possible algorithms. For example, PostScript programs are created by another program to control a computer printer or display. More generally, a language may describe computation on some, possibly abstract. It is generally accepted that a specification for a programming language includes a description, possibly idealized. In most practical contexts, a programming language involves a computer, consequently, abstractions Programming languages usually contain abstractions for defining and manipulating data structures or controlling the flow of execution. Expressive power The theory of computation classifies languages by the computations they are capable of expressing, all Turing complete languages can implement the same set of algorithms. ANSI/ISO SQL-92 and Charity are examples of languages that are not Turing complete, markup languages like XML, HTML, or troff, which define structured data, are not usually considered programming languages. Programming languages may, however, share the syntax with markup languages if a computational semantics is defined, XSLT, for example, is a Turing complete XML dialect. Moreover, LaTeX, which is used for structuring documents. The term computer language is used interchangeably with programming language

12.
World wide web
–
The World Wide Web is an information space where documents and other web resources are identified by Uniform Resource Locators, interlinked by hypertext links, and can be accessed via the Internet. English scientist Tim Berners-Lee invented the World Wide Web in 1989 and he wrote the first web browser computer program in 1990 while employed at CERN in Switzerland. The Web browser was released outside of CERN in 1991, first to research institutions starting in January 1991. The World Wide Web has been central to the development of the Information Age and is the primary tool billions of people use to interact on the Internet, Web pages are primarily text documents formatted and annotated with Hypertext Markup Language. In addition to formatted text, web pages may contain images, video, audio, embedded hyperlinks permit users to navigate between web pages. Multiple web pages with a theme, a common domain name. Website content can largely be provided by the publisher, or interactive where users contribute content or the content depends upon the user or their actions, websites may be mostly informative, primarily for entertainment, or largely for commercial, governmental, or non-governmental organisational purposes. In the 2006 Great British Design Quest organised by the BBC and the Design Museum, Tim Berners-Lees vision of a global hyperlinked information system became a possibility by the second half of the 1980s. By 1985, the global Internet began to proliferate in Europe, in 1988 the first direct IP connection between Europe and North America was made and Berners-Lee began to openly discuss the possibility of a web-like system at CERN. Such a system, he explained, could be referred to using one of the meanings of the word hypertext. At this point HTML and HTTP had already been in development for two months and the first Web server was about a month from completing its first successful test. While the read-only goal was met, accessible authorship of web content took longer to mature, with the concept, WebDAV, blogs, Web 2.0. The proposal was modelled after the SGML reader Dynatext by Electronic Book Technology, a NeXT Computer was used by Berners-Lee as the worlds first web server and also to write the first web browser, WorldWideWeb, in 1990. By Christmas 1990, Berners-Lee had built all the necessary for a working Web, the first web browser. The first web site, which described the project itself, was published on 20 December 1990, jones stored it on a magneto-optical drive and on his NeXT computer. On 6 August 1991, Berners-Lee published a summary of the World Wide Web project on the newsgroup alt. hypertext. This date is confused with the public availability of the first web servers. The first server outside Europe was installed at the Stanford Linear Accelerator Center in Palo Alto, California, accounts differ substantially as to the date of this event

13.
GUI widget
–
A control element in a graphical user interface is an element of interaction, such as a button or a scroll bar. Controls are software components that a user interacts with through direct manipulation to read or edit information about an application. User interface libraries such as Windows Presentation Foundation, GTK+, and Cocoa, contain a collection of controls, each widget facilitates a specific type of user-computer interaction, and appears as a visible part of the applications GUI as defined by the theme and rendered by the rendering engine. The theme makes all widgets adhere to an aesthetic design. Some widgets support interaction with the user, for labels, buttons. Others act as containers that group the widgets added to them, for windows, panels. Graphical user interface builders facilitate the authoring of GUIs in a WYSIWYG manner employing a user interface markup language and they automatically generate all the source code for a widget from general descriptions provided by the developer, usually through direct manipulation. Any widget displays an information arrangement changeable by the user, such as a window or a text box, the defining characteristic of a widget is to provide a single interaction point for the direct manipulation of a given kind of data. In other words, widgets are basic visual building blocks which, combined in an application, hold all the data processed by the application, GUI widgets are graphical elements used to build the human-machine-interface of a program. GUI widgets are implemented like software components, widget toolkits and software frameworks, like e. g. GTK+ or Qt, contain them in software libraries so that programmers can use them to build GUIs for their programs. A family of common reusable widgets has evolved for holding general information based on the Palo Alto Research Center Inc. research for the Xerox Alto User Interface, various implementations of these generic widgets are often packaged together in widget toolkits, which programmers use to build graphical user interfaces. Most operating systems include a set of widgets that a programmer can incorporate in an application. Each type of widget generally is defined as a class by object-oriented programming, therefore, many widgets are derived from class inheritance. In the context of an application, a widget may be enabled or disabled at a point in time. An enabled widget has the capacity to respond to events, such as keystrokes or mouse actions, a widget that cannot respond to such events is considered disabled. The appearance of a widget typically differs depending on whether it is enabled or disabled, when disabled, see the adjacent image for an example. These kinds of widgets are hosted by a widget engine, “Widget” entered American English around 1920, as a generic term for any useful device, particularly a product manufactured for sale. In computer use it has been borrowed as a form of “window gadget

14.
Graphical user interface
–
GUIs were introduced in reaction to the perceived steep learning curve of command-line interfaces, which require commands to be typed on a computer keyboard. The actions in a GUI are usually performed through direct manipulation of the graphical elements, beyond computers, GUIs are used in many handheld mobile devices such as MP3 players, portable media players, gaming devices, smartphones and smaller household, office and industrial controls. Designing the visual composition and temporal behavior of a GUI is an important part of application programming in the area of human–computer interaction. Its goal is to enhance the efficiency and ease of use for the logical design of a stored program. Methods of user-centered design are used to ensure that the language introduced in the design is well-tailored to the tasks. The visible graphical interface features of an application are sometimes referred to as chrome or GUI, typically, users interact with information by manipulating visual widgets that allow for interactions appropriate to the kind of data they hold. The widgets of an interface are selected to support the actions necessary to achieve the goals of users. A model–view–controller allows a structure in which the interface is independent from and indirectly linked to application functions. This allows users to select or design a different skin at will, good user interface design relates to users more, and to system architecture less. Large widgets, such as windows, usually provide a frame or container for the main presentation content such as a web page, smaller ones usually act as a user-input tool. A GUI may be designed for the requirements of a market as application-specific graphical user interfaces. By the 1990s, cell phones and handheld game systems also employed application specific touchscreen GUIs, newer automobiles use GUIs in their navigation systems and multimedia centers, or navigation multimedia center combinations. Sample graphical desktop environments A GUI uses a combination of technologies and devices to provide a platform that users can interact with, a series of elements conforming a visual language have evolved to represent information stored in computers. This makes it easier for people with few computer skills to work with, the most common combination of such elements in GUIs is the windows, icons, menus, pointer paradigm, especially in personal computers. The WIMP style of interaction uses a virtual device to represent the position of a pointing device, most often a mouse. Available commands are compiled together in menus, and actions are performed making gestures with the pointing device, a window manager facilitates the interactions between windows, applications, and the windowing system. The windowing system handles hardware devices such as pointing devices, graphics hardware, window managers and other software combine to simulate the desktop environment with varying degrees of realism. Smaller mobile devices such as personal assistants and smartphones typically use the WIMP elements with different unifying metaphors, due to constraints in space

15.
Desktop software
–
An application program is a computer program designed to perform a group of coordinated functions, tasks, or activities for the benefit of the user. Examples of an application include a processor, a spreadsheet, an accounting application, a web browser, a media player, an aeronautical flight simulator. The collective noun application software refers to all applications collectively and this contrasts with system software, which is mainly involved with running the computer. Applications may be bundled with the computer and its software or published separately. Apps built for mobile platforms are called mobile apps, in information technology, an application is a computer program designed to help people perform an activity. An application thus differs from a system, a utility. Depending on the activity for which it was designed, an application can manipulate text, numbers, graphics, some application packages focus on a single task, such as word processing, others, called integrated software include several applications. User-written software tailors systems to meet the specific needs. User-written software includes templates, word processor macros, scientific simulations, graphics. Even email filters are a kind of user software, users create this software themselves and often overlook how important it is. The delineation between system software such as operating systems and application software is not exact, however, and is occasionally the object of controversy. As another example, the GNU/Linux naming controversy is, in part, the above definitions may exclude some applications that may exist on some computers in large organizations. For an alternative definition of an app, see Application Portfolio Management, the word application, once used as an adjective, is not restricted to the of or pertaining to application software meaning. Sometimes a new and popular application arises which only runs on one platform and this is called a killer application or killer app. There are many different ways to divide up different types of application software, web apps have indeed greatly increased in popularity for some uses, but the advantages of applications make them unlikely to disappear soon, if ever. Furthermore, the two can be complementary, and even integrated, Application software can also be seen as being either horizontal or vertical. Horizontal applications are more popular and widespread, because they are general purpose, vertical applications are niche products, designed for a particular type of industry or business, or department within an organization. Integrated suites of software will try to handle every aspect possible of, for example, manufacturing or banking systems, or accounting

16.
Software development
–
Software development is the process of computer programming, documenting, testing, and bug fixing involved in creating and maintaining applications and frameworks resulting in a software product. Therefore, software development may include research, new development, prototyping, modification, reuse, re-engineering, maintenance, system software underlies applications and the programming process itself, and is often developed separately. There are many approaches to project management, known as software development life cycle models, methodologies, processes. The waterfall model is a version, contrasted with the more recent innovation of agile software development. A software development process is a framework that is used to structure, plan, a wide variety of such frameworks has evolved over the years, each with its own recognized strengths and weaknesses. One system development methodology is not necessarily suitable for use by all projects, each of the available methodologies is best suited to specific kinds of projects, based on various technical, organizational, project and team considerations. Different approaches to development may carry out these stages in different orders. The level of detail of the produced at each stage of software development may also vary. These stages may also be carried out in turn, or they may be repeated over various cycles or iterations, the more extreme approach usually involves less time spent on planning and documentation, and more time spent on coding and development of automated tests. More “extreme” approaches also promote continuous testing throughout the development lifecycle, there are significant advantages and disadvantages to the various methodologies, and the best approach to solving a problem using software will often depend on the type of problem. If the problem is understood and a solution can be effectively planned out ahead of time. If, on the hand, the problem is unique. The sources of ideas for software products are plenteous, in a marketing evaluation phase, the cost and time assumptions become evaluated. A decision is reached early in the first phase as to whether, based on the detailed information generated by the marketing and development staff. Students of marketing learn marketing and are exposed to finance or engineering. Most of us become specialists in just one area, to complicate matters, few of us meet interdisciplinary people in the workforce, so there are few roles to mimic. Yet, software product planning is critical to the development success and these processes may also cause the role of business development to overlap with software development. Planning is an objective of each and every activity, where we want to discover things that belong to the project, an important task in creating a software program is extracting the requirements or requirements analysis

17.
HTML
–
Hypertext Markup Language is the standard markup language for creating web pages and web applications. With Cascading Style Sheets and JavaScript it forms a triad of cornerstone technologies for the World Wide Web, Web browsers receive HTML documents from a webserver or from local storage and render them into multimedia web pages. HTML describes the structure of a web page semantically and originally included cues for the appearance of the document, HTML elements are the building blocks of HTML pages. With HTML constructs, images and other objects, such as interactive forms and it provides a means to create structured documents by denoting structural semantics for text such as headings, paragraphs, lists, links, quotes and other items. HTML elements are delineated by tags, written using angle brackets, tags such as <img /> and <input /> introduce content into the page directly. Include explicit close tags for elements that permit content but are left empty, by carefully following the W3Cs compatibility guidelines, a user agent should be able to interpret the document equally as HTML or XHTML. For documents that are XHTML1.0 and have made compatible in this way. When delivered as XHTML, browsers should use an XML parser, HTML4 defined three different versions of the language, Strict, Transitional and Frameset. The Transitional and Frameset versions allow for presentational markup, which is omitted in the Strict version, instead, cascading style sheets are encouraged to improve the presentation of HTML documents. Because XHTML1 only defines an XML syntax for the language defined by HTML4, as this list demonstrates, the loose versions of the specification are maintained for legacy support. However, contrary to popular misconceptions, the move to XHTML does not imply a removal of this legacy support, rather the X in XML stands for extensible and the W3C is modularizing the entire specification and opening it up to independent extensions. The primary achievement in the move from XHTML1.0 to XHTML1.1 is the modularization of the entire specification, the strict version of HTML is deployed in XHTML1.1 through a set of modular extensions to the base XHTML1.1 specification. Likewise, someone looking for the loose or frameset specifications will find similar extended XHTML1.1 support, the modularization also allows for separate features to develop on their own timetable. So for example, XHTML1.1 will allow quicker migration to emerging XML standards such as MathML, in summary, the HTML4 specification primarily reined in all the various HTML implementations into a single clearly written specification based on SGML. XHTML1.0, ported this specification, as is, next, XHTML1.1 takes advantage of the extensible nature of XML and modularizes the whole specification. XHTML2.0 was intended to be the first step in adding new features to the specification in a standards-body-based approach. The WHATWG considers their work as living standard HTML for what constitutes the state of the art in major browser implementations by Apple, Google, Mozilla, Opera, hTML5 is specified by the HTML Working Group of the W3C following the W3C process. HTML lacks some of the found in earlier hypertext systems, such as source tracking, fat links

18.
Client-side
–
Often clients and servers communicate over a computer network on separate hardware, but both client and server may reside in the same system. A server host runs one or more server programs which share their resources with clients, a client does not share any of its resources, but requests a servers content or service function. Clients therefore initiate communication sessions with servers which await incoming requests, examples of computer applications that use the client–server model are Email, network printing, and the World Wide Web. The client-server characteristic describes the relationship of cooperating programs in an application, the server component provides a function or service to one or many clients, which initiate requests for such services. Servers are classified by the services they provide, for example, a web server serves web pages and a file server serves computer files. A shared resource may be any of the computers software and electronic components, from programs and data to processors. The sharing of resources of a server constitutes a service, whether a computer is a client, a server, or both, is determined by the nature of the application that requires the service functions. For example, a computer can run web server and file server software at the same time to serve different data to clients making different kinds of requests. Client software can also communicate with server software within the same computer, communication between servers, such as to synchronize data, is sometimes called inter-server or server-to-server communication. In general, a service is an abstraction of computer resources, the client only has to understand the response based on the well-known application protocol, i. e. the content and the formatting of the data for the requested service. Clients and servers exchange messages in a request–response messaging pattern, the client sends a request, and the server returns a response. This exchange of messages is an example of inter-process communication, to communicate, the computers must have a common language, and they must follow rules so that both the client and the server know what to expect. The language and rules of communication are defined in a communications protocol, all client-server protocols operate in the application layer. The application layer defines the basic patterns of the dialogue. To formalize the data exchange even further, the server may implement an application programming interface, the API is an abstraction layer for accessing a service. By restricting communication to a content format, it facilitates parsing. By abstracting access, it facilitates cross-platform data exchange, a server may receive requests from many distinct clients in a short period of time. A computer can perform a limited number of tasks at any moment

19.
Web browser
–
A web browser is a software application for retrieving, presenting and traversing information resources on the World Wide Web. An information resource is identified by a Uniform Resource Identifier that may be a web page, image, hyperlinks present in resources enable users easily to navigate their browsers to related resources. Although browsers are primarily intended to use the World Wide Web, the most popular web browsers are Google Chrome, Microsoft Edge, Safari, Opera and Firefox. The first web browser was invented in 1990 by Sir Tim Berners-Lee, Berners-Lee is the director of the World Wide Web Consortium, which oversees the Webs continued development, and is also the founder of the World Wide Web Foundation. His browser was called WorldWideWeb and later renamed Nexus, the first commonly available web browser with a graphical user interface was Erwise. The development of Erwise was initiated by Robert Cailliau, andreesens browser sparked the internet boom of the 1990s. The introduction of Mosaic in 1993 – one of the first graphical web browsers – led to an explosion in web use, Microsoft responded with its Internet Explorer in 1995, also heavily influenced by Mosaic, initiating the industrys first browser war. Bundled with Windows, Internet Explorer gained dominance in the web browser market, Internet Explorer usage share peaked at over 95% by 2002. Opera debuted in 1996, it has never achieved widespread use and it is also available on several other embedded systems, including Nintendos Wii video game console. In 1998, Netscape launched what was to become the Mozilla Foundation in an attempt to produce a competitive browser using the open source software model, as of August 2011, Firefox has a 28% usage share. Apples Safari had its first beta release in January 2003, as of April 2011, the most recent major entrant to the browser market is Chrome, first released in September 2008. Chromes take-up has increased year by year, by doubling its usage share from 8% to 16% by August 2011. This increase seems largely to be at the expense of Internet Explorer, in December 2011, Chrome overtook Internet Explorer 8 as the most widely used web browser but still had lower usage than all versions of Internet Explorer combined. Chromes user-base continued to grow and in May 2012, Chromes usage passed the usage of all versions of Internet Explorer combined, by April 2014, Chromes usage had hit 45%. Internet Explorer was deprecated in Windows 10, with Microsoft Edge replacing it as the web browser. The ways that web browser makers fund their development costs has changed over time, the first web browser, WorldWideWeb, was a research project. In addition to being freeware, Netscape Navigator and Opera were also sold commercially, Internet Explorer, on the other hand, was bundled free with the Windows operating system, and therefore it was funded partly by the sales of Windows to computer manufacturers and direct to users. Internet Explorer also used to be available for the Mac, in this respect, IE may have contributed to Windows and Microsoft applications sales in another way, through lock-in to Microsofts browser

20.
CSS
–
Cascading Style Sheets is a style sheet language used for describing the presentation of a document written in a markup language. It can also display the web page differently depending on the size or viewing device. Readers can also specify a different style sheet, such as a CSS file stored on their own computer, to override the one the author specified. Changes to the design of a document can be applied quickly and easily, by editing a few lines in the CSS file they use. The CSS specification describes a priority scheme to determine which style rules apply if more than one rule matches against a particular element, in this so-called cascade, priorities are calculated and assigned to rules, so that the results are predictable. The CSS specifications are maintained by the World Wide Web Consortium, Internet media type text/css is registered for use with CSS by RFC2318. The W3C operates a free CSS validation service for CSS documents, CSS has a simple syntax and uses a number of English keywords to specify the names of various style properties. A style sheet consists of a list of rules, each rule or rule-set consists of one or more selectors, and a declaration block. In CSS, selectors declare which part of the markup a style applies to by matching tags, Selectors may apply to, all elements of a specific type, e. g. Classes and IDs are case-sensitive, start with letters, and can include alphanumeric characters and underscores. A class may apply to any number of instances of any elements, an ID may only be applied to a single element. Pseudo-classes are used in CSS selectors to permit formatting based on information that is not contained in the document tree. One example of a widely used pseudo-class is, hover, which identifies content only when the points to the visible element. It is appended to a selector as in a, hover or #elementid, a pseudo-class classifies document elements, such as, link or, visited, whereas a pseudo-element makes a selection that may consist of partial elements, such as, first-line or, first-letter. Selectors may be combined in ways to achieve great specificity and flexibility. Multiple selectors may be joined in a spaced list to specify elements by location, element type, id, class, the order of the selectors is important. For example, div. myClass applies to all elements of class myClass that are inside div elements, the following table provides a summary of selector syntax indicating usage and the version of CSS that introduced it. A declaration block consists of a list of declarations in braces, each declaration itself consists of a property, a colon, and a value. If there are multiple declarations in a block, a semi-colon must be inserted to separate each declaration, properties are specified in the CSS standard

21.
Apache Maven
–
Maven is a build automation tool used primarily for Java projects. The word maven means accumulator of knowledge in Yiddish, Maven addresses two aspects of building software, first, it describes how software is built, and second, it describes its dependencies. Contrary to preceding tools like Apache Ant, it uses conventions for the build procedure, an XML file describes the software project being built, its dependencies on other external modules and components, the build order, directories, and required plug-ins. It comes with pre-defined targets for performing certain well-defined tasks such as compilation of code, Maven dynamically downloads Java libraries and Maven plug-ins from one or more repositories such as the Maven 2 Central Repository, and stores them in a local cache. This local cache of downloaded artifacts can also be updated with artifacts created by local projects, public repositories can also be updated. Maven can also be used to build and manage projects written in C#, Ruby, Scala, the Maven project is hosted by the Apache Software Foundation, where it was formerly part of the Jakarta Project. Maven is built using an architecture that allows it to make use of any application controllable through standard input. Theoretically, this would allow anyone to write plugins to interface with build tools for any other language, in reality, support and use for languages other than Java has been minimal. Currently a plugin for the. NET framework exists and is maintained, alternative technologies like Gradle and sbt as build tools do not rely on XML, but keep the key concepts Maven introduced. With Apache Ivy, a dependency manager was developed as well that also supports Maven repositories. Maven projects are configured using a Project Object Model, which is stored in a pom. xml-file, heres a minimal example, This POM only defines a unique identifier for the project and its dependency on the JUnit framework. However, that is enough for building the project and running the unit tests associated with the project. Maven accomplishes this by embracing the idea of Convention over Configuration, in general, users should not have to write plugins themselves. Contrast this with Ant and make, in which one writes imperative procedures for doing the aforementioned tasks, a Project Object Model provides all the configuration for a single project. General configuration covers the name, its owner and its dependencies on other projects. One can also configure individual phases of the process, which are implemented as plugins. For example, one can configure the compiler-plugin to use Java version 1.5 for compilation, larger projects should be divided into several modules, or sub-projects, each with its own POM. One can then write a root POM through which one can compile all the modules with a single command, POMs can also inherit configuration from other POMs

22.
Eclipse (software)
–
Eclipse is an integrated development environment used in computer programming, and is the most widely used Java IDE. It contains a base workspace and an extensible plug-in system for customizing the environment and it can also be used to develop documents with LaTeX and packages for the software Mathematica. Development environments include the Eclipse Java development tools for Java and Scala, Eclipse CDT for C/C++, the initial codebase originated from IBM VisualAge. The Eclipse software development kit, which includes the Java development tools, is meant for Java developers and it was one of the first IDEs to run under GNU Classpath and it runs without problems under IcedTea. Eclipse was inspired by the Smalltalk-based VisualAge family of integrated development environment products, although fairly successful, a major drawback of the VisualAge products was that developed code was not in a component-based software engineering model. Instead, all code for a project was held in a compressed lump, individual classes could not be easily accessed, certainly not outside the tool. A team primarily at the IBM Cary NC lab developed the new product as a Java-based replacement, in November 2001, a consortium was formed with a board of stewards to further the development of Eclipse as open-source software. It is estimated that IBM had already invested nearly $40 million by that time, the original members were Borland, IBM, Merant, QNX Software Systems, Rational Software, Red Hat, SuSE, TogetherSoft, and WebGain. The number of stewards increased to over 80 by the end of 2003, in January 2004, the Eclipse Foundation was created. Eclipse 3.0 selected the OSGi Service Platform specifications as the runtime architecture, the Association for Computing Machinery recognized Eclipse with the 2011 ACM Software Systems Award on 26 April 2012. The Eclipse Public License is the license under which Eclipse projects are released. Some projects require dual licensing, for which the Eclipse Distribution License is available, Eclipse was originally released under the Common Public License, but was later re-licensed under the Eclipse Public License. The Free Software Foundation has said that both licenses are free software licenses, but are incompatible with the GNU General Public License, different versions of Eclipse have been given different science-related names. The versions named after Callisto, Europa, and Ganymede, which are moons of Jupiter, were followed by a named after Galileo the discoverer of those moons. These were followed by two sun-themed names, Helios of Greek mythology, and Indigo, one of the seven colors of a rainbow, the version after that, Juno, has a triple meaning, a Roman mythological figure, an asteroid, and a spacecraft to Jupiter. Kepler, Luna, and Mars continued the theme, and then a new theme of chemical elements began with Neon. Since 2006 the Foundation has coordinated an annual Simultaneous Release, each release includes the Eclipse Platform and several other Eclipse projects. As of 2008, each Simultaneous Release has occurred on the 4th Wednesday of June, Eclipse uses plug-ins to provide all the functionality within and on top of the runtime system

23.
NetBeans
–
NetBeans is a software development platform written in Java. The NetBeans Platform allows applications to be developed from a set of software components called modules. Applications based on the NetBeans Platform, including the NetBeans integrated development environment, the NetBeans IDE is primarily intended for development in Java, but also supports other languages, in particular PHP, C/C++ and HTML5. NetBeans is cross-platform and runs on Microsoft Windows, Mac OS X, Linux, Solaris, the NetBeans Team actively support the product and seek feature suggestions from the wider community. In 1997, Roman Staněk formed a company around the project, Sun open-sourced the NetBeans IDE in June of the following year. Since then, the NetBeans community has continued to grow, in 2010, Sun was acquired by Oracle Corporation. Under Oracle, NetBeans competed with JDeveloper, a freeware IDE that has historically been a product of the company, the move was endorsed by Java creator James Gosling. NetBeans 6 is available in official repositories of major Linux distributions, NetBeans IDE6.5, released in November 2008, extended the existing Java EE features. The NetBeans IDE Bundle for C/C++ supports C/C++ and FORTRAN development, NetBeans IDE6.8 is the first IDE to provide complete support of Java EE6 and the GlassFish Enterprise Server v3. NetBeans IDE7.0 was released in April 2011, on August 1,2011, the NetBeans Team released NetBeans IDE7.0.1, which has full support for the official release of the Java SE7 platform. NetBeans IDE7.3 was released in February 2013 which added support for HTML5, NetBeans IDE7.4 was released on October 15,2013. NetBeans IDE8.0 was released on March 18,2014, NetBeans IDE8.1 was released on November 4,2015. NetBeans IDE8.2 was released on October 3,2016, NetBeans has a roadmap document for release plans. The NetBeans Platform is a framework for simplifying the development of Java Swing desktop applications, the NetBeans IDE bundle for Java SE contains what is needed to start developing NetBeans plugins and NetBeans Platform based applications, no additional SDK is required. Any application can include the Update Center module to allow users of the application to download digitally signed upgrades, reinstalling an upgrade or a new release does not force users to download the entire application again. NetBeans IDE supports development of all Java application types out of the box, among other features are an Ant-based project system, Maven support, refactorings, version control. Modularity, All the functions of the IDE are provided by modules, each module provides a well-defined function, such as support for the Java language, editing, or support for the CVS versioning system, and SVN. NetBeans contains all the modules needed for Java development in a single download, modules also allow NetBeans to be extended

24.
EXo Platform
–
EXo Platform is an open source, standard-based, Enterprise Social Collaboration Platform written in Java and distributed under the GNU Lesser General Public License. The platform is sold and distributed by eXo Platform, a company with U. S. headquarters in San Francisco, California, global headquarters in France. EXo Platform started in 2002 as an implementation of the JSR168 - Portlet API specification, several introduction articles were then published between 2003 and 2005 on TheServerSide Java news website. As a side effect, the eXo Platform Project grew into a company - eXo - in 2003, as a response to a customer demand, late 2005, eXo Platform v2 was released. In 2006 eXo introduced the WebOS concept where an Enterprise Portal Layout could reproduce a Desktop UI, in May 2013, the 4th and current version of eXo Platform was introduced with a strong focus on Social Network and Social Integration capabilities. By December 2013, eXo offered a cloud based intranet product

25.
Liferay
–
Liferay Portal is a free and open source enterprise portal software product. Distributed under the GNU Lesser General Public License and optional commercial license and it is primarily used to power corporate intranets and extranets. Written in Java, Liferay Portal is a web platform with features commonly required for the development of websites, Liferay includes a built-in web content management system allowing users to build websites and portals as an assembly of themes, pages, portlets/gadgets and a common navigation. Liferay is sometimes described as a content management framework or a web application framework, Liferays support for plugins extends into multiple programming languages, including support for PHP and Ruby portlets. Liferays programming interface is accessible to users with no programming skills for the basic installation and administration. Liferay Portal is Java-based and runs on any computing platform capable of running the Java Runtime Environment, Liferay is available bundled with a servlet container such as Apache Tomcat. Liferay, Inc. is a professional company that provides free documentation. Mainly focused on enterprise portal technology, the company has its headquarters in Diamond Bar, California, Liferay Portal was created in 2000 by chief software architect Brian Chan to provide an enterprise portal solution for non-profit organizations. In 2004, the company was incorporated under the name Liferay, Inc. in 2007, the company opened new Asian headquarters in Dalian, China, and the Spanish subsidiary Liferay SL. In March 2009, the opened a new office in Bangalore. To date there are 18 offices in 15 countries worldwide with a over 110 partners in 40 countries, the companys enterprise portal product has been acknowledged by several notable organizations. It was recognized by EContent magazine in its EContent 100 list of leaders and in 2007. In July 2007, it announced a partnership with ICEsoft Technologies, provider of the ICEfaces library, in January 2008, the company hired the lead engineer for jQuery UI, to exclusively work full-time on the JavaScript library. Gartner recognized Liferay as visionary leader in the Magic Quadrant for Horizontal Portal Products in 2008,2010,2011,2012 and 2013. Most recently in the Gartner 2014 report, Liferay out performed SAP, Oracle, Liferay offers different levels of partnership across various geographies for its global SI partners which includes Platinum, Gold and Silver Liferay Service Partners. Sun Microsystems and Liferay signed an agreement during May 2008. Sun Microsystems rebranded the offering GlassFish Web Space Server, zDNet further describes the relationship in the May 2008 article Sun and Liferay launch web-presentation platform. In 2010 Sun was acquired by Oracle and the GlassFish Web Space Server was not included in their portal roadmap, with all prospects turned over to Liferay, Inc

26.
Apache Tomcat
–
Apache Tomcat, often referred to as Tomcat Server, is an open-source Java Servlet Container developed by the Apache Software Foundation. Tomcat implements several Java EE specifications including Java Servlet, JavaServer Pages, Java EL, and WebSocket, and provides a pure Java HTTP web server environment in which Java code can run. Tomcat is developed and maintained by a community of developers under the auspices of the Apache Software Foundation, released under the Apache License 2.0 license. Tomcat 4. x was released with Catalina, Coyote and Jasper, Catalina implements Sun Microsystemss specifications for servlet and JavaServer Pages. In Tomcat, a Realm element represents a database of usernames, passwords, Coyote is a Connector component for Tomcat that supports the HTTP1.1 protocol as a web server. This allows Catalina, nominally a Java Servlet or JSP container, Coyote listens for incoming connections to the server on a specific TCP port and forwards the request to the Tomcat Engine to process the request and send back a response to the requesting client. Another Coyote Connector, Coyote JK, listens similarly but instead forwards its requests to another web server, such as Apache, Jasper is Tomcats JSP Engine. Jasper parses JSP files to compile them into Java code as servlets. At runtime, Jasper detects changes to JSP files and recompiles them, as of version 5, Tomcat uses Jasper 2, which is an implementation of the Sun Microsystemss JSP2.0 specification. From Jasper to Jasper 2, important features were added, JSP Tag library pooling - Each tag markup in JSP file is handled by a tag handler class, Tag handler class objects can be pooled and reused in the whole JSP servlet. Background JSP compilation - While recompiling modified JSP Java code, the version is still available for server requests. The older JSP servlet is deleted once the new JSP servlet has finished being recompiled, recompile JSP when included page changes - Pages can be inserted and included into a JSP at runtime. The JSP will not only be recompiled with JSP file changes, JDT Java compiler - Jasper 2 can use the Eclipse JDT Java compiler instead of Ant and javac. Three new components were added with the release of Tomcat 7 and it is used for load balancing that can be achieved through many techniques. Clustering support currently requires the JDK version 1.5 or A high-availability feature has been added to facilitate the scheduling of system upgrades without affecting the live environment. This is done by dispatching live traffic requests to a server on a different port while the main server is upgraded on the main port. It is very useful in handling user requests on high-traffic web applications and it has also added user- as well as system-based web applications enhancement to add support for deployment across the variety of environments. It also tries to manage sessions as well as applications across the network, a number of additional components may be used with Apache Tomcat. These components may be built by users should they need them or they can be downloaded from one of the mirrors, Tomcat 7. x implements the Servlet 3.0 and JSP2.2 specifications

28.
IBM WebSphere
–
IBM WebSphere refers to a brand of computer software products in the genre of enterprise software known as application and integration middleware. These software products are used by end-users to create applications and integrate applications with other applications, IBM WebSphere has been available to the general market since 1998. IBM introduced the first product in this brand, IBM WebSphere Performance Pack, as of 2012 this original component forms a part of IBM WebSphere2 Application Server Network Deployment, which itself is one of many WebSphere-branded enterprise software products. The following complete list of IBM WebSphere software uses IBM classifications, several tools appear in more than one category. IBM has also classified WebSphere software according to the capabilities offered for individual industries, G. DeCandio, R. Earle, T. Francis, J. Jones, J. Li, M. Nally, C. Nelin, V. Popescu, S. Rich, A. Ryman, T. Wilson

29.
Jetty (web server)
–
Eclipse Jetty is a Java HTTP server and Java Servlet container. While Web Servers are usually associated with serving documents to people, Jetty is now used for machine to machine communications. Jetty is developed as a free and open source project as part of the Eclipse Foundation. The web server is used in such as Apache ActiveMQ, Alfresco, Apache Geronimo, Apache Maven, Apache Spark, Google App Engine, Eclipse, FUSE, iDempiere, Twitters Streaming API. Jetty is also the server in open source such as Lift, Eucalyptus, Red5, Hadoop. Jetty supports the latest Java Servlet API as well as protocols HTTP/2, developed as an independent open source project, in 2009 Jetty moved to Eclipse. Jetty provides Web services in an embedded Java application and it is already a component of the Eclipse IDE and it supports AJP, JASPI, JMX, JNDI, OSGi, WebSocket and other Java technologies. Originally developed in the Sydney suburb of Balmain by software engineer Greg Wilkins, Jetty was originally called IssueTracker and then MBServler. Neither of these were much liked, so Jetty was finally picked, Jetty was started in 1995 and was hosted by MortBay, creating version 1. x and 2. x, until 2000. From 2000 to 2005, Jetty was hosted by sourceforge. net where version 3. x,4. x, in 2005, the entire Jetty project moved to codehaus. org. Application server List of Java application servers Java Platform, Enterprise Edition Java Servlet JavaServer Pages Jetty home page Jetty Documentation Jetty Developer Blog Jetty on GitHub

30.
Wildfly
–
WildFly, formerly known as JBoss AS, or simply JBoss, is an application server authored by JBoss, now developed by Red Hat. WildFly is written in Java, and implements the Java Platform, WildFly is free and open-source software, subject to the requirements of the GNU Lesser General Public License, version 2.1. On 20 November 2014, JBoss Application Server was renamed WildFly, the JBoss Community and other Red Hat JBoss products like JBoss Enterprise Application Platform were not renamed. In 1999, Marc Fleury started a software project named EJB-OSS implementing the EJB API from J2EE. Sun Microsystems asked the project to stop using the trademarked EJB within its name, EJB-OSS was then renamed to JBOSS, then JBoss later. Upgrades to newer versions of WildFly or JBoss EAP may be handled using the JBoss Windup migration tool, clustering Deployment API Distributed caching Distributed deployment Enterprise JavaBeans versions 3 and 2.2 Java Server Pages / Java Servlet 2. 1/2. Before November 2010 JBoss was licensed as annual subscription in bundles of 4 and 32 CPU sockets, as of November 2010 the licensing changed and all cores on the system are now counted. The core bundles licensing is available for 16 and 64 cores

31.
Open source
–
The open-source model is a decentralized development model that encourages open collaboration. A main principle of open-source software development is peer production, with such as source code, blueprints. The open-source movement in software began as a response to the limitations of proprietary code, the model is used for projects such as in open-source appropriate technologies, and open-source drug discovery. Open source promotes universal access via an open-source or free license to a design or blueprint. Before the phrase open source became widely adopted, developers and producers used a variety of other terms, Open source gained hold with the rise of the Internet. The open-source software movement arose to clarify copyright, licensing, domain, generally, open source refers to a computer program in which the source code is available to the general public for use and/or modification from its original design. Open-source code is meant to be an effort, where programmers improve upon the source code. Code is released under the terms of a software license, depending on the license terms, others may then download, modify, and publish their version back to the community. The sharing of technical information predates the Internet and the personal computer considerably, for instance, in the early years of automobile development a group of capital monopolists owned the rights to a 2-cycle gasoline engine patent originally filed by George B. By controlling this patent, they were able to monopolize the industry and force car manufacturers to adhere to their demands, in 1911, independent automaker Henry Ford won a challenge to the Selden patent. The result was that the Selden patent became virtually worthless and a new association was formed, by the time the US entered World War II,92 Ford patents and 515 patents from other companies were being shared among these manufacturers, without any exchange of money. Beginning in the 1960s, ARPANET researchers used an open Request for Comments process to encourage feedback in early telecommunication network protocols and this led to the birth of the early Internet in 1969. The sharing of code on the Internet began when the Internet was relatively primitive, with software distributed via UUCP, Usenet, IRC. BSD, for example, was first widely distributed by posts to comp. os. linux on the Usenet, in addition, the ambiguity of the term free software was seen as discouraging business adoption. The group included Christine Peterson, Todd Anderson, Larry Augustin, Jon Hall, Sam Ockman, Michael Tiemann, Peterson suggested open source at a meeting held at Palo Alto, California, in reaction to Netscapes announcement in January 1998 of a source code release for Navigator. Linus Torvalds gave his support the day, and Phil Hughes backed the term in Linux Journal. Richard Stallman, the founder of the free movement, initially seemed to adopt the term. Netscape released its code under the Netscape Public License and later under the Mozilla Public License

32.
Swing (Java)
–
Swing is a GUI widget toolkit for Java. It is part of Oracles Java Foundation Classes – an API for providing a user interface for Java programs. Swing was developed to provide a sophisticated set of GUI components than the earlier Abstract Window Toolkit. It has more powerful and flexible components than AWT, in addition to familiar components such as buttons, check boxes and labels, Swing provides several advanced components such as tabbed panel, scroll panes, trees, tables, and lists. Unlike AWT components, Swing components are not implemented by platform-specific code, instead, they are written entirely in Java and therefore are platform-independent. The term lightweight is used to such an element. Though Swing is intended to be replaced by JavaFX, it will part of the Java SE specification for the foreseeable future. The Internet Foundation Classes were a library for Java originally developed by Netscape Communications Corporation. On April 2,1997, Sun Microsystems and Netscape Communications Corporation announced their intention to incorporate IFC with other technologies to form the Java Foundation Classes, the Java Foundation Classes were later renamed Swing. Swing introduced a mechanism that allowed the look and feel of every component in an application to be altered without making changes to the application code. The introduction of support for a look and feel allows Swing components to emulate the appearance of native components while still retaining the benefits of platform independence. Originally distributed as a separately downloadable library, Swing has been included as part of the Java Standard Edition since release 1.2, the Swing classes and components are contained in the javax. swing package hierarchy. Swing is a platform-independent, model-view-controller GUI framework for Java, which follows a single-threaded programming model, additionally, this framework provides a layer of abstraction between the code structure and graphic presentation of a Swing-based GUI. Swing is platform-independent because it is written in Java. Complete documentation for all Swing classes can be found in the Java API Guide for Version 6 or the Java Platform Standard Edition 8 API Specification for Version 8, Swing is a component-based framework, whose components are all ultimately derived from the javax. swing. JComponent class. Swing objects asynchronously fire events, have properties, and respond to a documented set of methods specific to the component. Swing components are Java Beans components, compliant with the Java Beans Component Architecture specifications, Swings heavy reliance on runtime mechanisms and indirect composition patterns allows it to respond at run time to fundamental changes in its settings. For example, a Swing-based application is capable of hot swapping its user-interface during runtime, lightweight UI Swings high level of flexibility is reflected in its inherent ability to override the native host operating system s GUI controls for displaying itself

33.
IT Mill Toolkit
–
Vaadin is an open-source web framework for rich Internet applications. In contrast to JavaScript libraries and browser-plugin based solutions, it features a server-side architecture, Ajax technology runs on the browser-side to ensure a rich and interactive user experience. On the client-side Vaadin is built on top of and can be extended with Google Web Toolkit, Vaadin uses Java as the programming language for creating web content. Vaadin uses Google Web Toolkit for rendering the web page. While the way Vaadin uses Google Web Toolkit could lead to trust issues – it only operates client-side – Vaadin adds server-side data validation to all actions and this means that if the client data is tampered with, the server notices this and doesnt allow it. Vaadins default component set can be extended with custom GWT widgets, Vaadin is distributed as a collection of JAR files, which can be included in any kind of Java web project developed with standard Java tools. In addition, there exist Vaadin plugins for the Eclipse IDE, Vaadin applications can be deployed as Java servlets for any Java web server, including Google App Engine. Applications can also be deployed as portlets to any Java portal like eXo Platform, Vaadin also has some deeper integration with the Liferay Portal. The following application servers are supported, Apache Tomcat 5-8 Apache TomEE1 Oracle WebLogic Server 10 and it introduced an Ajax based client communication and rendering engine. During 2006 this concept was developed separately as a commercial product. As a consequence for this, a part of Vaadins server-side API is still compatible with Millstones Swing-like APIs. In early 2007 the product name was changed to IT Mill Toolkit and it used a proprietary JavaScript Ajax-implementation for the client-side rendering, which made it rather complicated to implement new widgets. By the end of year 2007 the proprietary client-side implementation was abandoned, at the same time the product license was changed to open source Apache License 2.0. The first production release of IT Mill Toolkit 5 was made on March 4,2009 after an over one year beta period. On September 11,2008, it was announced that Michael Widenius, the main author of the original version of MySQL, invested in IT Mill. The size of the investment is undisclosed, on May 20,2009, IT Mill Toolkit changed its name to Vaadin Framework to attract more community. The name originates from the Finnish word for doe, more precisely put and it can also be translated from Finnish as I insist. In addition to the change, a pre-release of version 6 along with a community web-site was launched

34.
Michael Widenius
–
Ulf Michael Widenius is the main author of the original version of the open source MySQL database, a founding member of the MySQL AB company and is currently CTO of the MariaDB Corporation Ab. After dropping out of Helsinki University of Technology, Widenius started working for Tapio Laakso Oy in 1981, in 1985 he founded TCX DataKonsult AB with Allan Larsson. In 1995 he began writing the first version of the MySQL database with David Axmark and he is the co-author of the MySQL Reference Manual, published by OReilly in June 2002, and in 2003 he was awarded the Finnish Software Entrepreneur of The Year prize. Until MySQL ABs sale to Sun Microsystems in 2008, he was the technical officer of MySQL AB. Widenius sold MySQL to Sun in January 2008, earning about €16.6 million in gains in 2008. On 5 February 2009, he announced that he was leaving Sun in order to create his own company, after leaving Sun, he formed Monty Program AB and forked MySQL into MariaDB, named after his youngest daughter, Maria. It includes several patches and plugins developed by the company itself or the community, one of these plugins is Aria storage engine, which was renamed from Maria to avoid confusion with MariaDB. Monty Program AB merged with SkySQL, who renamed themselves MariaDB Corporation. He is also CTO of the MariaDB Foundation, the organisation charged with promoting, protecting and advancing the MariaDB codebase, community. The Open Database Alliance, also known as ODBA, was founded in 2009 by the Monty Program and he lives in Helsinki with his second wife Anna and daughter Maria, and has a daughter My and a son Max from his first marriage

Software developer
–
A software developer is a person concerned with facets of the software development process, including the research, design, programming, and testing of computer software. Other job titles which are used with similar meanings are programmer, software analyst. According to developer Eric Sink, the differences between system design, software developme

1.
Mistory software developer group

Software release life cycle
–
Usage of the alpha/beta test terminology originated at IBM. As long ago as the 1950s, IBM used similar terminology for their hardware development, a test was the verification of a new product before public announcement. B test was the verification before releasing the product to be manufactured, C test was the final test before general availability

1.
Software release life cycle map

Repository (version control)
–
In revision control systems, a repository is an on-disk data structure which stores metadata for a set of files and/or directory structure. Some of the metadata that a repository contains includes, among other things, a set of references to commit objects, called heads. The main purpose of a repository is to store a set of files and these differenc

1.
Local only

Computing platform
–
Computing platform means in general sense, where any piece of software is executed. It may be the hardware or the system, even a web browser or other application. The term computing platform can refer to different abstraction levels, including a hardware architecture, an operating system. In total it can be said to be the stage on which programs ca

1.
Android, a popular mobile operating system

Java (programming language)
–
Java is a general-purpose computer programming language that is concurrent, class-based, object-oriented, and specifically designed to have as few implementation dependencies as possible. It is intended to let application developers write once, run anywhere, Java applications are typically compiled to bytecode that can run on any Java virtual machi

1.
James Gosling, the creator of Java (2008)

2.
Java

3.
Java Control Panel, version 7

Software license
–
A software license is a legal instrument governing the use or redistribution of software. Under United States copyright law all software is copyright protected, in code as also object code form. The only exception is software in the public domain, most distributed software can be categorized according to its license type. Two common categories for

1.
Diagram of software under various licenses

Apache License
–
The Apache License, Version 2.0 is a permissive free software license written by the Apache Software Foundation. The Apache License requires preservation of the notice and disclaimer. This makes ALv2 a FRAND-RF license, the ASF and its projects release the software they produce under the Apache License and many non-ASF projects are also using the A

1.
The Apache logo

Open-source
–
Open-source software may be developed in a collaborative public manner. According to scientists who studied it, open-source software is a prominent example of open collaboration, a 2008 report by the Standish Group states that adoption of open-source software models has resulted in savings of about $60 billion per year to consumers. In the early da

1.
Google Android operating system

2.
Barack Obama and Dakota Meyer drinking White House Honey Ale in 2011. The recipe is available for free.

3.
VIA OpenBook, is an open-source hardware laptop reference design.

JavaScript
–
JavaScript is a high-level, dynamic, untyped, and interpreted programming language. It has been standardized in the ECMAScript language specification, JavaScript is prototype-based with first-class functions, making it a multi-paradigm language, supporting object-oriented, imperative, and functional programming styles. JavaScript was influenced by

1.
JavaScript

Google Web Toolkit
–
Google Web Toolkit, or GWT Web Toolkit, is an open source set of tools that allows web developers to create and maintain complex JavaScript front-end applications in Java. Other than a few libraries, everything is Java source that can be built on any supported platform with the included GWT Ant build files. It is licensed under the Apache License v

1.
Google Web Toolkit

Programming language
–
A programming language is a formal computer language designed to communicate instructions to a machine, particularly a computer. Programming languages can be used to programs to control the behavior of a machine or to express algorithms. From the early 1800s, programs were used to direct the behavior of such as Jacquard looms. Thousands of differen

1.
The Manchester Mark 1 ran programs written in Autocode from 1952.

2.
A selection of textbooks that teach programming, in languages both popular and obscure. These are only a few of the thousands of programming languages and dialects that have been designed in history.

World wide web
–
The World Wide Web is an information space where documents and other web resources are identified by Uniform Resource Locators, interlinked by hypertext links, and can be accessed via the Internet. English scientist Tim Berners-Lee invented the World Wide Web in 1989 and he wrote the first web browser computer program in 1990 while employed at CERN

1.
The NeXT Computer used by Tim Berners-Lee at CERN.

2.
The CERN data center in 2010 housing some WWW servers

GUI widget
–
A control element in a graphical user interface is an element of interaction, such as a button or a scroll bar. Controls are software components that a user interacts with through direct manipulation to read or edit information about an application. User interface libraries such as Windows Presentation Foundation, GTK+, and Cocoa, contain a collect

1.
gtk3-demo, a program to demonstrate the widgets in GTK+ version 3.

Graphical user interface
–
GUIs were introduced in reaction to the perceived steep learning curve of command-line interfaces, which require commands to be typed on a computer keyboard. The actions in a GUI are usually performed through direct manipulation of the graphical elements, beyond computers, GUIs are used in many handheld mobile devices such as MP3 players, portable

1.
Sugar

2.
A Unix-based X Window System desktop

3.
The Xerox Alto was the first device to use a graphical user interface.

Desktop software
–
An application program is a computer program designed to perform a group of coordinated functions, tasks, or activities for the benefit of the user. Examples of an application include a processor, a spreadsheet, an accounting application, a web browser, a media player, an aeronautical flight simulator. The collective noun application software refer

1.
OpenOffice.org Writer, an open-source word processor that is a component of OpenOffice.org

Software development
–
Software development is the process of computer programming, documenting, testing, and bug fixing involved in creating and maintaining applications and frameworks resulting in a software product. Therefore, software development may include research, new development, prototyping, modification, reuse, re-engineering, maintenance, system software unde

1.
The TEAF Matrix of Views and Perspectives.

HTML
–
Hypertext Markup Language is the standard markup language for creating web pages and web applications. With Cascading Style Sheets and JavaScript it forms a triad of cornerstone technologies for the World Wide Web, Web browsers receive HTML documents from a webserver or from local storage and render them into multimedia web pages. HTML describes th

1.
Tim Berners-Lee

2.
HTML (HyperText Markup Language)

Client-side
–
Often clients and servers communicate over a computer network on separate hardware, but both client and server may reside in the same system. A server host runs one or more server programs which share their resources with clients, a client does not share any of its resources, but requests a servers content or service function. Clients therefore ini

1.
A computer network diagram of clients communicating with a server via the Internet.

Web browser
–
A web browser is a software application for retrieving, presenting and traversing information resources on the World Wide Web. An information resource is identified by a Uniform Resource Identifier that may be a web page, image, hyperlinks present in resources enable users easily to navigate their browsers to related resources. Although browsers ar

1.
Marc Andreessen, inventor of Netscape

2.
Usage share of web browsers according to StatCounter

3.
Some home media devices now include web browsers, like this LG Smart TV. The browser is controlled using an on-screen keyboard and LG's "Magic Motion" remote.

CSS
–
Cascading Style Sheets is a style sheet language used for describing the presentation of a document written in a markup language. It can also display the web page differently depending on the size or viewing device. Readers can also specify a different style sheet, such as a CSS file stored on their own computer, to override the one the author spec

1.
Håkon Wium Lie, chief technical officer of the Opera Software company and co-creator of the CSS web standard

2.
Cascading Style Sheets (CSS)

Apache Maven
–
Maven is a build automation tool used primarily for Java projects. The word maven means accumulator of knowledge in Yiddish, Maven addresses two aspects of building software, first, it describes how software is built, and second, it describes its dependencies. Contrary to preceding tools like Apache Ant, it uses conventions for the build procedure,

1.
The Maven software tool auto-generated this directory structure for a Java project.

Eclipse (software)
–
Eclipse is an integrated development environment used in computer programming, and is the most widely used Java IDE. It contains a base workspace and an extensible plug-in system for customizing the environment and it can also be used to develop documents with LaTeX and packages for the software Mathematica. Development environments include the Ecl

1.
Eclipse 4.5 Mars in the Java EE perspective

NetBeans
–
NetBeans is a software development platform written in Java. The NetBeans Platform allows applications to be developed from a set of software components called modules. Applications based on the NetBeans Platform, including the NetBeans integrated development environment, the NetBeans IDE is primarily intended for development in Java, but also supp

1.
NetBeans IDE 7.4 in Mac OS X

EXo Platform
–
EXo Platform is an open source, standard-based, Enterprise Social Collaboration Platform written in Java and distributed under the GNU Lesser General Public License. The platform is sold and distributed by eXo Platform, a company with U. S. headquarters in San Francisco, California, global headquarters in France. EXo Platform started in 2002 as an

1.
eXo Platform product screenshot

Liferay
–
Liferay Portal is a free and open source enterprise portal software product. Distributed under the GNU Lesser General Public License and optional commercial license and it is primarily used to power corporate intranets and extranets. Written in Java, Liferay Portal is a web platform with features commonly required for the development of websites, L

Apache Tomcat
–
Apache Tomcat, often referred to as Tomcat Server, is an open-source Java Servlet Container developed by the Apache Software Foundation. Tomcat implements several Java EE specifications including Java Servlet, JavaServer Pages, Java EL, and WebSocket, and provides a pure Java HTTP web server environment in which Java code can run. Tomcat is develop

IBM WebSphere
–
IBM WebSphere refers to a brand of computer software products in the genre of enterprise software known as application and integration middleware. These software products are used by end-users to create applications and integrate applications with other applications, IBM WebSphere has been available to the general market since 1998. IBM introduced

1.
IBM WebSphere logo

Jetty (web server)
–
Eclipse Jetty is a Java HTTP server and Java Servlet container. While Web Servers are usually associated with serving documents to people, Jetty is now used for machine to machine communications. Jetty is developed as a free and open source project as part of the Eclipse Foundation. The web server is used in such as Apache ActiveMQ, Alfresco, Apach

1.
Jetty

Wildfly
–
WildFly, formerly known as JBoss AS, or simply JBoss, is an application server authored by JBoss, now developed by Red Hat. WildFly is written in Java, and implements the Java Platform, WildFly is free and open-source software, subject to the requirements of the GNU Lesser General Public License, version 2.1. On 20 November 2014, JBoss Application

1.
WildFly

Open source
–
The open-source model is a decentralized development model that encourages open collaboration. A main principle of open-source software development is peer production, with such as source code, blueprints. The open-source movement in software began as a response to the limitations of proprietary code, the model is used for projects such as in open-

1.
Google Android operating system

2.
Barack Obama and Dakota Meyer drinking White House Honey Ale in 2011. The recipe is available for free.

3.
VIA OpenBook, is an open-source hardware laptop reference design.

Swing (Java)
–
Swing is a GUI widget toolkit for Java. It is part of Oracles Java Foundation Classes – an API for providing a user interface for Java programs. Swing was developed to provide a sophisticated set of GUI components than the earlier Abstract Window Toolkit. It has more powerful and flexible components than AWT, in addition to familiar components such

1.
Example Swing widgets in Java 5 for the X Window System

IT Mill Toolkit
–
Vaadin is an open-source web framework for rich Internet applications. In contrast to JavaScript libraries and browser-plugin based solutions, it features a server-side architecture, Ajax technology runs on the browser-side to ensure a rich and interactive user experience. On the client-side Vaadin is built on top of and can be extended with Google

1.
Vaadin

Michael Widenius
–
Ulf Michael Widenius is the main author of the original version of the open source MySQL database, a founding member of the MySQL AB company and is currently CTO of the MariaDB Corporation Ab. After dropping out of Helsinki University of Technology, Widenius started working for Tapio Laakso Oy in 1981, in 1985 he founded TCX DataKonsult AB with All

1.
The shading of the map illustrates the number of users as a proportion of each country’s Internet population. The circular charts surrounding the two hemispheres depict the total number of GitHub users (left) and commits (right) per country.