Skip to main content

Posts

Showing posts from September, 2022

Swagger :: Suite of tools for API developers

 Swagger is a suite of tools for API developers from SmartBear Software and a former specification upon which the OpenAPI Specification is based. The Swagger API project was created in 2011 by Tony Tam, technical co-founder of the dictionary site Wordnik. Swagger's open-source tooling usage can be broken up into different use cases: development, interaction with APIs, and documentation. When creating APIs, Swagger tooling may be used to automatically generate an Open API document based on the code itself.  This embeds the API description in the source code of a project and is informally called code-first or bottom-up API development. Using the Swagger Codegen project, end users generate client SDKs directly from the OpenAPI document, reducing the need for human-generated client code. As of August 2017, the Swagger Codegen project supported over 50 different languages and formats for client SDK generation. When described by an OpenAPI document, Swagger open-source tooling may be use

Wireshark

 Wireshark is a free and open-source packet analyzer.  It is used for network troubleshooting, analysis, software and communications protocol development, and education. Originally named Ethereal, the project was renamed Wireshark in May 2006 due to trademark issues. Wireshark is very similar to tcpdump, but has a graphical front-end and integrated sorting and filtering options. Wireshark is a data capturing program that "understands" the structure (encapsulation) of different networking protocols. It can parse and display the fields, along with their meanings as specified by different networking protocols. Wireshark uses pcap to capture packets, so it can only capture packets on the types of networks that pcap supports. Wireshark can color packets based on rules that match particular fields in packets, to help the user identify the types of traffic at a glance. A default set of rules is provided; users can change existing rules for coloring packets, add new rules, or remove

PuTTY

 PuTTY is a free and open-source terminal emulator, serial console and network file transfer application.  It supports several network protocols, including SCP, SSH, Telnet, rlogin, and raw socket connection.  It can also connect to a serial port. The name "PuTTY" has no official meaning. PuTTY was originally written for Microsoft Windows, but it has been ported to various other operating systems. Official ports are available for some Unix-like platforms, with work-in-progress ports to Classic Mac OS and macOS, and unofficial ports have been contributed to platforms such as Symbian, Windows Mobile and Windows Phone. PuTTY was written and is maintained primarily by Simon Tatham, a British programmer. PuTTY development began late in 1998, and was a usable SSH-2 client by October 2000. Official Website :- https://www.chiark.greenend.org.uk/~sgtatham/putty/

WinSCP (Windows Secure Copy)

 WinSCP (Windows Secure Copy) is a free and open-source SSH File Transfer Protocol (SFTP), File Transfer Protocol (FTP), WebDAV, Amazon S3, and secure copy protocol (SCP) client for Microsoft Windows. Its main function is secure file transfer between a local computer and a remote server. Beyond this, WinSCP offers basic file manager and file synchronization functionality. For secure transfers, it uses the Secure Shell protocol (SSH) and supports the SCP protocol in addition to SFTP Development of WinSCP started around March 2000 and continues. Originally it was hosted by the University of Economics in Prague, where its author worked at the time. Since July 16, 2003, it is licensed under the GNU GPL. It is hosted on SourceForge and GitHub. WinSCP is based on the implementation of the SSH protocol from PuTTY and FTP protocol from FileZilla. Official Website :- https://winscp.net/ Documentation :- https://winscp.net/eng/docs/

JMeter (Apache JMeter)

 Apache JMeter is an Apache project that can be used as a load testing tool for analyzing and measuring the performance of a variety of services, with a focus on web applications. JMeter can be used as a unit-test tool for JDBC database connections, FTP, LDAP, web services, JMS, HTTP, generic TCP connections and OS-native processes. One can also configure JMeter as a monitor, although this is typically used as a basic monitoring solution rather than advanced monitoring.  It can be used for some functional testing as well JMeter supports variable parameterization, assertions (response validation), per-thread cookies, configuration variables and a variety of reports. Official Website :- https://jmeter.apache.org/

Postman

 Postman is an API platform for developers to design, build, test and iterate their APIs. As of April 2022, Postman reports having more than 20 million registered users and 75,000 open APIs, which it says constitutes the world's largest public API hub. The company is headquartered in San Francisco and maintains an office in Bangalore, where it was founded. In 2022, Postman was ranked #28 on the Forbes Cloud 100 list. Postman started in 2012 as a side project of software engineer Abhinav Asthana, who wanted to simplify API testing, while working at Yahoo Bangalore. He launched Postman as a free app in the Chrome Web Store.  As the app’s usage grew, Abhinav recruited former colleagues Ankit Sobti and Abhijit Kane to help create Postman Inc.  The three co-founders lead the company today, with Abhinav serving as CEO and Sobti as CTO. Official Website :- https://postman.com/

DBeaver

 DBeaver is a SQL client software application and a database administration tool.  For relational databases it uses the JDBC application programming interface (API) to interact with databases via a JDBC driver.  For other databases (NoSQL) it uses proprietary database drivers.  It provides an editor that supports code completion and syntax highlighting.  It provides a plug-in architecture (based on the Eclipse plugins architecture) that allows users to modify much of the application's behavior to provide database-specific functionality or features that are database-independent.  This is a desktop application written in Java and based on Eclipse platform. DBeaver was started in 2010 as a hobby project.  It was supposed to be free and open-source with a good-looking and convenient UI and to include frequently used features for database developers. The first official release was in 2011 on Freecode. Official Website :- http://dbeaver.io/

log4j2 (Apache Log4j 2)

 Apache Log4j 2 is the successor of Log4j 1 which was released as GA version in July 2014.  The framework was rewritten from scratch and has been inspired by existing logging solutions, including Log4j 1 and java.util.logging.  One of the most recognized features of Log4j 2 is the performance of the "Asynchronous Loggers". The library reduces the need for kernel locking and increases the logging performance by a factor of 12.  For example, in the same environment Log4j 2 can write more than 18,000,000 messages per second, whereas other frameworks like Logback and Log4j 1 just write < 2,000,000 messages per second. Log4j 2 allows users to define their own log levels. Log4j can be configured through a configuration file or through Java code.  Configuration files can be written in XML, JSON, YAML, or properties file format.  Within a configuration, you can define three main components: Loggers, Appenders, and Layouts.  Configuring logging via a file has the advantage that log

WildFly

 WildFly, formerly known as JBoss AS, or simply JBoss, is an application server written by JBoss, now developed by Red Hat.  WildFly is written in Java and implements the Java Platform, Enterprise Edition (Java EE) specification.  It runs on multiple platforms. WildFly is free and open-source software, subject to the requirements of the GNU Lesser General Public License (LGPL), version 2.1. On November 20, 2014, JBoss Application Server was renamed WildFly.  Configuration in WildFly is centralized, simple and user-focused.  The configuration file is organized by subsystems that you can easily comprehend and no internal server wiring is exposed.  All management capabilities are exposed in a unified manner across many forms of access.  These include a CLI, a web based administration console, a native Java API, an HTTP/JSON based REST API, and a JMX gateway. Official Website :- https://wildfly.org/ Download :- https://wildfly.org/downloads/

Jenkins

 Jenkins is an open source automation server.  It helps automate the parts of software development related to building, testing, and deploying, facilitating continuous integration and continuous delivery. It is a server-based system that runs in servlet containers such as Apache Tomcat.  It supports version control tools, including AccuRev, CVS, Subversion, Git, Mercurial, Perforce, ClearCase and RTC, and can execute Apache Ant, Apache Maven and sbt based projects as well as arbitrary shell scripts and Windows batch commands. The Jenkins project was originally named Hudson, and was renamed in 2011 after a dispute with Oracle, which had forked the project and claimed rights to the project name.  With hundreds of plugins in the Update Center, Jenkins integrates with practically every tool in the continuous integration and continuous delivery toolchain.

SonarQube

 SonarQube is an open-source platform developed by SonarSource for continuous inspection of code quality to perform automatic reviews with static analysis of code to detect bugs, code smells on 29 programming languages. SonarQube offers reports on duplicated code, coding standards, unit tests, code coverage, code complexity, comments, bugs, and security recommendations. SonarQube can record metrics history and provides evolution graphs. SonarQube provides fully automated analysis and integration with Maven, Ant, Gradle, MSBuild and continuous integration tools. SonarQube includes support for the programming languages Java (including Android), C#, C, C++, JavaScript, TypeScript, Python, Go, Swift, COBOL, Apex, PHP, Kotlin, Ruby, Scala, HTML, CSS, ABAP, Flex, Objective-C, PL/I, PL/SQL, RPG, T-SQL, VB.NET, VB6, and XML. As of December 2021, analyzing C, C++, Obj-C, Swift, ABAP, T-SQL and PL/SQL is only available via a commercial license.

Junit

 JUnit is a unit testing framework for the Java programming language. JUnit has been important in the development of test-driven development, and is one of a family of unit testing frameworks which is collectively known as xUnit that originated with SUnit. JUnit is linked as a JAR at compile-time. The latest version of the framework, JUnit 5, resides under package org.junit.jupiter. Previous versions JUnit 4 and JUnit 3 were under packages org.junit and junit.framework, respectively. A JUnit test fixture is a Java object. Test methods must be annotated by the @Test annotation. If the situation requires it, it is also possible to define a method to execute before (or after) each (or all) of the test methods with the @BeforeEach (or @AfterEach) and @BeforeAll (or @AfterAll) annotations.

React (JavaScript library)

 React is a free and open-source front-end JavaScript library for building user interfaces based on UI components. It is maintained by Meta (formerly Facebook) and a community of individual developers and companies. React can be used as a base in the development of single-page, mobile, or server-rendered applications with frameworks like Next.js.  React adheres to the declarative programming paradigm. Developers design views for each state of an application, and React updates and renders components when data changes. React code is made of entities called components. Components can be rendered to a particular element in the DOM using the React DOM library. When rendering a component, one can pass the values between components through "props". React creates an in-memory data-structure cache, computes the resulting differences, and then updates the browser's displayed DOM efficiently. The basic architecture of React applies beyond rendering HTML in the browser.  For example,

AWS (Amazon Web Services)

 AWS is a subsidiary of Amazon that provides on-demand cloud computing platforms and APIs to individuals, companies, and governments, on a metered pay-as-you-go basis. These cloud computing web services provide distributed computing processing capacity and software tools via AWS server farms. As of 2021, AWS comprises over 200+ products and services including computing, storage, networking, database, analytics, application services, deployment, management, machine learning, mobile, developer tools, RobOps and tools for the Internet of Things.  The most popular include Amazon Elastic Compute Cloud (EC2), Amazon Simple Storage Service (Amazon S3), Amazon Connect, and AWS Lambda (a serverless function enabling serverless ETL. Most services are not exposed directly to end users, but instead offer functionality through APIs for developers to use in their applications. Amazon Web Services' offerings are accessed over HTTP, using the REST architectural style and SOAP protocol for older AP

MongoDB

 MongoDB is a source-available cross-platform document-oriented database program. Classified as a NoSQL database program, MongoDB uses JSON-like documents with optional schemas. MongoDB is developed by MongoDB Inc. and licensed under the Server Side Public License (SSPL) which is deemed non-free by several distributions. MongoDB supports field, range query, and regular-expression searches. Fields in a MongoDB document can be indexed with primary and secondary indices or index. MongoDB provides high availability with replica sets. MongoDB scales horizontally using sharding. MongoDB can be used as a file system, called GridFS, with load balancing and data replication features over multiple machines for storing files. MongoDB provides three ways to perform aggregation: the aggregation pipeline, the map-reduce function, and single-purpose aggregation methods. MongoDB supports fixed-size collections called capped collections.  MongoDB claims to support multi-document ACID transactions since

Elasticsearch

 Elasticsearch is a search engine based on the Lucene library.  It provides a distributed, multitenant-capable full-text search engine with an HTTP web interface and schema-free JSON documents.  Elasticsearch is developed in Java and is dual-licensed under the source-available Server Side Public License and the Elastic license, while other parts fall under the proprietary Elastic License. Shay Banon created the precursor to Elasticsearch, called Compass, in 2004. Elasticsearch can be used to search any kind of document.  It provides scalable search, has near real-time search, and supports multitenancy. "Elasticsearch is distributed, which means that indices can be divided into shards and each shard can have zero or more replicas.  Each node hosts one or more shards and acts as a coordinator to delegate operations to the correct shard(s).  Rebalancing and routing are done automatically". Related data is often stored in the same index, which consists of one or more primary shar

Node.js

 Node.js is an open-source, cross-platform, back-end JavaScript runtime environment that runs on a JavaScript Engine (i.e. V8 engine) and executes JavaScript code outside a web browser, which was designed to build scalable network applications. There are thousands of open-source libraries for Node.js, most of them hosted on the npm website. There are multiple developer conferences and events that support the Node.js community, including NodeConf, Node Interactive, and Node Summit as well as a number of regional events. New major releases of Node.js are cut from the GitHub master branch every six months. Even-numbered versions are cut in April and odd-numbered versions are cut in October. When a new odd version is released, the previous even version undergoes transition to Long Term Support (LTS). Node.js is supported across a number of cloud-hosting platforms like Jelastic, Google Cloud Platform, AWS Elastic Beanstalk, Joyent and others.

Redis (Remote Dictionary Server)

 Redis is an in-memory data structure store, used as a distributed, in-memory key–value database, cache and message broker, with optional durability. Redis supports different kinds of abstract data structures, such as strings, lists, maps, sets, sorted sets, HyperLogLogs, bitmaps, streams, and spatial indices. The project was developed and maintained by Salvatore Sanfilippo, starting in 2009. Redis popularized the idea of a system that can be considered a store and a cache at the same time. It was designed so that data is always modified and read from the main computer memory, but also stored on disk in a format that is unsuitable for random data access. According to monthly DB-Engines rankings, Redis is often the most popular key–value database. Redis has also been ranked the #4 NoSQL database in user satisfaction and market presence based on user reviews, the most popular NoSQL database in containers.

Apache Kafka

 Kafka is a distributed event store and stream-processing platform. It is an open-source system developed by the Apache Software Foundation written in Java and Scala. Kafka was originally developed at LinkedIn, and was subsequently open sourced in early 2011. Apache Kafka is based on the commit log, and it allows users to subscribe to it and publish data to any number of systems or real-time applications. Kafka stores key-value messages that come from arbitrarily many processes called producers. The data can be partitioned into different "partitions" within different "topics". Within a partition, messages are strictly ordered by their offsets, and indexed and stored together with a timestamp. There are five major APIs in Kafka, Producer,Consumer,Connector,Streams & Admin. Monitoring E2E performance requires tracking metrics from brokers, consumer, and producers, in addition to monitoring ZooKeeper, which Kafka uses for coordination among consumers